System verilog 为什么我不能在SystemVerilog的逻辑中存储16位?!
我目前在尝试将来自模块输入的16位数字存储到逻辑变量中时遇到问题。当我在测试台上将所有位设置为高位时,我得到一个值:000000000000000 1。希望你能帮忙!抱歉,不知道如何在这里插入代码 我的代码如下所示:System verilog 为什么我不能在SystemVerilog的逻辑中存储16位?!,system-verilog,System Verilog,我目前在尝试将来自模块输入的16位数字存储到逻辑变量中时遇到问题。当我在测试台上将所有位设置为高位时,我得到一个值:000000000000000 1。希望你能帮忙!抱歉,不知道如何在这里插入代码 我的代码如下所示: 我认为您的问题可能与这一行有关: regy = (!regy)+1; regy是一个16位的值。对多位值使用求反运算符(!)相当于(value!=0)。因此,对于regy中除零以外的任何值,将regy设置为1 如果要反转所有位并添加1,则需要使用~运算符 例如: regy = (
我认为您的问题可能与这一行有关:
regy = (!regy)+1;
regy
是一个16位的值。对多位值使用求反运算符(!)
相当于(value!=0)
。因此,对于regy
中除零以外的任何值,将regy
设置为1
如果要反转所有位并添加1,则需要使用~
运算符
例如:
regy = (~regy)+1;
~x+1
是一个两补倒置,可以写成-x