{<<{signal}} 和 {signal<<1} 之间的 Systemverilog 位移差异?
Systemverilog bit-shift difference between {<<{signal}} and {signal<<1}?
我有以下 Vivado 模拟器似乎不支持的代码(导致错误:[XSIM 43-3209] - 不支持的构造):
assign b = {<<{a}};
想知道我是否可以将此代码更改为以下内容:
assign b = a<<1;
有人可以确认上面两行是相同的吗?
请注意,a 和 b 都是 8 位宽。谢谢!
不,它们不一样。 {<<{a}}
有点反转。
假设 a
的声明范围为 [7:0]
,您需要编写
assign b = {a[0],a[1],a[2],a[3],a[4],a[5],a[6],a[7]};
我有以下 Vivado 模拟器似乎不支持的代码(导致错误:[XSIM 43-3209] - 不支持的构造):
assign b = {<<{a}};
想知道我是否可以将此代码更改为以下内容:
assign b = a<<1;
有人可以确认上面两行是相同的吗? 请注意,a 和 b 都是 8 位宽。谢谢!
不,它们不一样。 {<<{a}}
有点反转。
假设 a
的声明范围为 [7:0]
,您需要编写
assign b = {a[0],a[1],a[2],a[3],a[4],a[5],a[6],a[7]};