Verilog:在if语句中使用参数

时间:2018-01-21 22:24:53

标签: verilog

如何在if语句中检查基于参数的值?

我有一个参数化计数器,我找不到如何检查最大尺寸的答案,例如

sed -e :a -e 's/^\(.....\**\)[^*]/\1*/;ta' filename

我有机会得到一些帮助:)?

if(count_val == WIDTH'b1) count_pulse = 1'b1;

2 个答案:

答案 0 :(得分:0)

您可以使用复制。

if(count_val == {WIDTH{1'b1}}) count_pulse = 1'b1;

或班次

if(count_val == ((32'b1<<WIDTH)-1) count_pulse = 1'b1;

或在SystemVerilog中,有点填充

if(count_val == '1) count_pulse = 1'b1;

答案 1 :(得分:0)

您尝试使用WIDTH'b1的语法应转换为3'b1 001。如果是这种情况,您实际上不需要宽度说明符。以下是:

if (counter_val == 1)

或使用精确的宽度:

if (counter_val == { {WIDTH-1{0}}, 1'b1} )

如果您的意思是111,请参阅dave_59的回答。