如何在if语句中检查基于参数的值?
我有一个参数化计数器,我找不到如何检查最大尺寸的答案,例如
sed -e :a -e 's/^\(.....\**\)[^*]/\1*/;ta' filename
我有机会得到一些帮助:)?
if(count_val == WIDTH'b1) count_pulse = 1'b1;
答案 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的回答。