【问题标题】:System Verilog DPI Checker masking 128-bit valueSystem Verilog DPI Checker 屏蔽 128 位值
【发布时间】:2019-10-11 21:01:32
【问题描述】:

我正在编写一个 DPI 检查器(.cpp 文件),在此,检查器读取每一行的 128 位值,我想用 128 位掩码对其进行屏蔽并将其与 RTL 值进行比较,但问题是我我看到的是我从中创建掩码的数据类型仅包含 32 位值,我需要对原始数据进行按位与运算。谁能给点建议?

typedef struct {
   BitVector<128>   data
} read_line;

svBitVecVal  mask;
mask = 0xffffffffffffffffffffffffffffffff;

BitVector<128>   data_masked;
data_masked = read_line->data & mask;

这里svBitVecVal最多只能保存32bit的值。如果掩码超过 32 位,data_masked 将不会显示正确的值。

【问题讨论】:

    标签: verilog system-verilog monitor bitvector system-verilog-dpi


    【解决方案1】:

    我不知道你的BitVector 模板是从哪里得到的,但svBitVecVal 通常用作svBitVecVal* 指向一个32 位数组

    mask 需要是一个 4 元素数组来保存 128 位。

    您需要先将mask 转换为BitVector 类型,或者确保它具有正确的重载函数来为您完成。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-07-02
      • 1970-01-01
      • 2017-11-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多