系统verilog中的信号msb,不使用$ bits

时间:2016-04-28 23:15:48

标签: system-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或函数更简单的方法。

由于

1 个答案:

答案 0 :(得分:0)

您可能想要尝试let构造或宏。

let MSB(sig) = sig[$left(sig)];
assign msb1 = MSB(long_signal_name1);
assign msb2 = MSB(long_signal_name2);

您也可以尝试反转这些位,并希望编译器将其优化为一个简单的表达式。

assign msb = {<<{long_signal_name}};