HDLBits-02-Verilog语言–向量部分*
Vector4
矢量反转
所述并置运算符允许矢量串联起来以形成更大的载体。但是有时您想将同一事物连接在一起很多次,而做类似分配a = {b,b,b,b,b,b,b}的工作仍然很繁琐;。复制运算符允许重复向量并将它们串联在一起:
{num {vector}}
这种复制载体由NUM倍。num必须为常数。两组牙套都是必需的。
例子:
{5 {1’b1}} // 5’b11111(或5’d31或5’h1f)
{2 {a,b,c}}} //与{a,b,c,a,b,c }
{3’d5,{2 {3’d6}}} // 9’b101_110_110。它是101与
第二个向量的串联,第二个向量是3’b110的两个副本。
练习
一个复制运算符的常见用法是将一个较小的数字符号扩展为一个较大的数字,同时保留其符号值。这是通过将较小数字的符号位(最高有效位)复制到左侧来完成的。例如,符号扩展4’B 0 101(5),以8位结果在8’b000001015),而符号扩展4’b1101在(-3)至8位结果8’b11111101(-3)。
建立一个将8位数字符号扩展为32位的电路。这需要串联24个符号位的副本(即,复制bit [7] 24次){复制in[7:0]中的最高位in[7]24次},然后是8位数字本身。
具体代码如下: