如果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]会做什么。有人可以帮忙吗?
答案 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] ----^^