毫秒的系统信号在系统verilog不使用$位
问题描述:
logic msb
logic [<parametrized bit width>-1:0]long_signal_name
assign msb = long_signal_name[$bits(long_signal_name)-1];
//assign msb = long_signal_name[<parametrized bit width>-1];
我有这个多个实例,所以想检查是否有一个比$bits
或函数更容易的方法。
感谢
答
你可能想尝试let
结构或宏。
let MSB(sig) = sig[$left(sig)];
assign msb1 = MSB(long_signal_name1);
assign msb2 = MSB(long_signal_name2);
您也可以尝试颠倒这些位,并希望编译器将其优化为简单的表达式。
assign msb = {<<{long_signal_name}};
解释你想要什么使用$ bits。并使用正确的语法。 –
注释掉的线有什么问题?这是做这件事的标准方式。 – Morgan