为什么我不能在SystemVerilog的逻辑中存储16位?!

时间:2012-12-21 23:13:02

标签: system-verilog

我在尝试将来自模块输入的16位数存储到我的逻辑变量之一时遇到问题。当我在测试台中将所有位设置为高时,我得到一个值:0000000000000001。希望你能帮忙! PS:对不起,不知道如何在这里插入代码....

我的代码如下所示:

http://pastebin.com/cZCYKJqV

1 个答案:

答案 0 :(得分:1)

我认为你的问题可能在这一行:

regy = (!regy)+1;

regy是一个16位值。在多位值上使用否定运算符(!)等效于(value != 0)。因此,对于除{0}之外的任何regy值,都会将regy设置为1。

如果您尝试反转所有位并添加1,则需要使用~运算符。

示例:

regy = (~regy)+1;