Verilog分配功能有什么作用?

时间:2019-04-06 23:08:12

标签: verilog

如果sig_in = 0000、0001、0010,...,1111

sig_out = {sig_in[3], sig_in[3], sig_in[3: 2]};

如果我没看错,sig_out [3]将是sig_in [3],sig_out [2]也将是sig_in [3],并且我不确定sig_in [3:2]会做什么。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

在分配的右侧,您有一个concatination运算符{...}; 它将参数中的位连接成单个位流。

因此,如果sign_in[3:0]为0101,则示例中的结果将为:

sign_in[3:0] = 4'b0101
        bit 3 ----^
        bit 0 -------^

{
   1'b0, // sign_in[3]
   1'b0, // sigh_in[3]
   2'b01 // sign_in[3:2] -- extracts 2 bits - bit 3 (0) an d bit 2 (1)
}

因此,sign_out [3:0]如下所示

==>          4'b0001;
sign_in[3]    --^
sign_in[3]    ---^
sign_in[3:2]  ----^^