verilog语言中请问这是什么意思啊?

1个回答

  • 这个赋值语句主要是由拼接操作符{},重复操作符{{}}和位选构成.这个赋值语句的具体意思是:

    其中{h11_a_re[11],h11_a_re,4'h0}就是h11_a_re的第11位(0或1)和h11_a_re(本身),以及4位的0(0000)拼接在一起组成一个数加上后面的部分,其中{3{h11_a_re[11]}}由重复操作符{{}}构成,即{h11_a_re[11],h11_a_re[11],h11_a_re[11]}也就是有3位.要理解这个只要将拼接操作符和重复操作符,位选弄懂就很容易看懂了.举个例子:定义 wire [15:0] h11_a_re = 16'b1010_0111_1011_0000;其中位选第15位h11_a_re[15] =1,第11位h11_a_re[11] = 0;

    wire a = 3'b101; wire b = 2'b01; {a,b}即a和b的拼接等于{3'b101,2'b01}=5'b10101; {h11_a_re[11],a,b}即{0,101,01} = 6‘b010101; 重复操作符{2{b}}= {2'b01,2'b01}= 4'b0101;也就相当与复制.弄懂这3个看上面的就没问题了.