如何避免verilog中大数字的科学记数法?

时间:2013-07-22 17:26:19

标签: verilog

在案例陈述案例中,s的n值增加2的幂。

input[127:0] s 
output[127:0] y

case(s)
  128'b1: y=a1; 
  128'b2: y=a2;
...

当它变为2 ^ 64时,数字是如此之大,它将由科学记数法自动表示,例如。

128'b1.84467e19: y=a64

这会给我一个语法错误,有没有办法避免这种情况?

我不想将其定义为真实,因为我想合成这段代码。

1 个答案:

答案 0 :(得分:2)

如果只设置了s的一位(一热),您可以使用“case case中的常量表达式”(参见免费IEEE Std 1800-2012的§12.5.2):

case (1'b1)
    s[0]  : y=a1;
    s[1]  : y=a2;
    s[127]: y=a64;
endcase