1

我正在编写一个 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 的值。data_masked如果掩码超过 32 位,则不会显示正确的值。

4

1 回答 1

1

我不知道您BitVector从哪里获得模板,但svBitVecVal通常用作svBitVecVal*指向 32 位数组的数组。

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

而且您需要先转换maskBitVector类型,或者确保它具有正确的重载函数来为您执行此操作。

于 2019-10-12T00:29:34.453 回答