将线值转换为verilog中的整数

Bra*_*esh 6 syntax binary integer verilog

我想将有线中的数据转换为整数.例如:

wire [2:0] w = 3'b101;
Run Code Online (Sandbox Code Playgroud)

我想要一个将其转换为'5'并将其存储在整数中的方法.我怎么能以比这更好的方式做到这一点:

j=1;
for(i=0; i<=2; i=i+1)
begin
  a=a+(w[i]*j);   
  j=j*2;
end
Run Code Online (Sandbox Code Playgroud)

另外,如果我有一个整数值,如何将其转换回二进制?这似乎是一种笨拙的方式.谢谢.

Mar*_*rty 11

简单!如果分配给整数,则转换在verilog中自动进行.在verilog中,所有数据类型都只是位上的集合.

integer my_int;
always @( w )
    my_int = w;
Run Code Online (Sandbox Code Playgroud)

  • 它是,但你只能在`w`中存储`my_int`的3个LSB.例如,如果数字''d16`(`10000`)在`my_int`中,`w`将变为=`3'b000` (2认同)