我有一个像这样的Verilog定义:
`define NUM_BANKS 4
如果想在以下代码中使用它:
if (`NUM_BANKS > 1)
do something ..
else
do something else ..
Lint工具抱怨这个表达式总是被评估为true。
答案 0 :(得分:1)
在应用`define之后,if将始终评估4> 1.编译器发出错误,因为if总是无关紧要。
我建议将`define替换为parameter
(如果您希望通过更高级别的模块或实例化来更改它),或者使用编译器指令({{3}例如)
`define HASBANKS
`ifdef (HASBANKS)
...
`else
...
`endif
答案 1 :(得分:0)
Lint是正确的,因为在你的表达中,4> 1总是如此。所以,如果这是你想要的,没有问题。
理学