HDLBits (18) — 擴(kuò)展操作符
2022-01-26 00:15 作者:僚機(jī)Wingplane | 我要投稿
本題鏈接:
https://hdlbits.01xz.net/wiki/Vector4
拼接操作符允許將向量拼接在一起以形成更大的向量。 但有時您會希望將同一向量多次拼接在一起,并且執(zhí)行諸如 assign a = {b,b,b,b,b,b}; 之類的乏味操作。 擴(kuò)展操作符允許重復(fù)一個向量并將它們拼接在一起:
{num{vector}}
這將vector復(fù)制 num 次。 num 必須是一個常數(shù)。 這兩個大括號都是必需的。
例子:

題目
一個常見使用擴(kuò)展操作符的地方是將較小的數(shù)字符號擴(kuò)展為較大的數(shù)字,同時保留其符號值。 它是通過將較小數(shù)字的符號位(最高有效位)復(fù)制到左側(cè)來完成的。 例如,將 ?4'b0101?(5) 符號擴(kuò)展至 8 位會產(chǎn)生 8'b00000101?(5),而將 4'b1101?(-3) 符號擴(kuò)展至 8 位會產(chǎn)生 8'b11111101?(-3)。
構(gòu)建一個 8 位數(shù)字符號擴(kuò)展為 32 位的電路。 這需要拼接 24 個符號位副本(即復(fù)制 bit[7] 24 次),之后才是這 8 位數(shù)字本身。

答案

拼接操作符用大括號?{,}?來表示,用于將多個操作數(shù)(向量)拼接成新的操作數(shù)(向量),信號間用逗號隔開。
拼接符操作數(shù)必須指定位寬,常數(shù)的話也需要指定位寬。
這里所說的擴(kuò)展操作符可以看作是包含了我們所說的拼接操作符。
參考內(nèi)容:
2.4?Verilog 表達(dá)式?| 菜鳥教程:
https://www.runoob.com/w3cnote/verilog-expression.html
標(biāo)簽: