【发布时间】:2015-12-10 00:37:31
【问题描述】:
我想知道是否有一种方法可以在 Verilog 中计算 reg 的大小。我研究了一番,发现了$size(a),但它只在SystemVerilog中,在我的verilog程序中不起作用。
有人知道这个的替代品吗?
我还想顺便问一下;我的测试台遇到了一些问题,因为当我更新文件中的值时,在模拟时没有考虑到这种变化。有人告诉我,我可能一直在使用旧的测试台,但我不断模拟的那个是这个项目中唯一可用的。
编辑:
为了让您了解问题所在:在我的代码中有一个“开始”信号,当它设置为 1 时,操作开始。否则,它将保持空闲状态。我开始用 start=0 编写测试台,测试并模拟它,然后通过将 start 设置为 1 来编辑测试台。但是当我模拟它时,波形中的启动信号仍然为 0。我试图检查我是否在使用另一个测试台,但它是我在这个项目中使用的唯一测试台。
鉴于我已经到了最后期限,我编写了代码,以便它能够适应“冻结”的测试平台。我现在得到了我想要的所有结果,但我想测试我的代码的一些其他功能,所以我创建了一个新项目并将代码复制粘贴到新文件中(包括相同的测试台)。但是当我运行仿真时,波形显示错误的结果(即使我在所有模块和测试台中使用完全相同的代码)。知道为什么吗?
任何帮助将不胜感激:)
【问题讨论】:
-
您使用什么 Verilog 模拟器和版本?
-
Icarus Verilog (0.10.0 11/23/14) 支持 $size() 系统函数。看看这个例子:edaplayground.com/x/Gph
-
我使用的是 ModelSim 10.4a PE 学生版。我确实尝试了 $size() 但它不适用于我的程序,它只是一直返回 0。
标签: testing size verilog system-verilog test-bench