我正在将一些 SystemVerilog 代码移植到 SystemC/C++。我正在使用 std::bitset 来表示位向量,但我可以看到它已经没有提供访问切片的方法。
例如,如果我想使用 SystemVerilog 代码将 reg1 设置为 reg2 的第 4-8 位:
bit [3:0] reg1;
bit [15:0] reg2;
reg1 = reg2[7:4];
我怎么能用 std::bitset 做到这一点?
bitset<4> reg1;
bitset<16> reg2;
reg1[0] = reg2[4];
reg1[1] = reg2[5];
reg1[2] = reg2[6];
reg1[3] = reg2[7];
有没有更好的办法?