在verilog中将线向量转换为整数

时间:2021-02-02 03:20:30

标签: verilog

以这样的例子

function module(
    input [3:0] in
    output out); 
    for(integer i = in; i < in+10; i += 1) begin
        // do stuff
    end
endfunction

如何将 in 转换为 i? 据我所知,整数是一个 32 位的位向量,用 2 的补码来解释。 那么 verilog 是否用 28{in[3]} 填充位向量?

1 个答案:

答案 0 :(得分:0)

来自 LRM

<块引用>

如果需要,扩展右侧的大小,当且仅当右侧的类型为有符号时才执行符号扩展。

因此,在您的情况下,i 将填充“0”,而不是 in[3],因为 in 未签名。

要进行签名扩展,您需要输入签名:input signed [3:0] in;

相关问题