HDLBits (108) — 左/右旋轉(zhuǎn)器
本題鏈接:
https://hdlbits.01xz.net/wiki/Rotate100
創(chuàng)建一個100位左/右旋轉(zhuǎn)器,帶有同步加載和左/右使能。旋轉(zhuǎn)器將移位出的位從寄存器的另一端移入,這與丟棄移位的移位器以及用零補位的移位器不同。如果啟用,旋轉(zhuǎn)器會旋轉(zhuǎn)位,而不會修改/丟棄位。
load: 用數(shù)據(jù)[99:0]加載移位寄存器,而不是旋轉(zhuǎn)。
ena[1:0]: 選擇是否旋轉(zhuǎn)以及旋轉(zhuǎn)的方向。
2'b01?向右旋轉(zhuǎn)一位
2'b10?向左旋轉(zhuǎn)一位
2'b00 和?2'b11 不要旋轉(zhuǎn)
q: 旋轉(zhuǎn)器的內(nèi)容

題目

答案

向量
當位寬大于 1 時,wire 或 reg 即可聲明為向量的形式。Verilog 支持可變的向量域選擇,
Verillog 還支持指定 bit 位后固定位寬的向量域選擇訪問。
[bit+: width]?: 從起始 bit 位開始遞增,位寬為 width。
[bit-: width]?: 從起始 bit 位開始遞減,位寬為 width。
對信號重新進行組合成新的向量時,需要借助大括號。
異步復(fù)位
異步復(fù)位是指無論時鐘到來與否,只要復(fù)位信號有效,電路就會執(zhí)行復(fù)位操作。
異步復(fù)位常常會被綜合成如下電路:

異步復(fù)位的優(yōu)點:大多數(shù)觸發(fā)器單元有異步復(fù)位端,不會占用額外的邏輯資源。且異步復(fù)位信號不經(jīng)過處理直接引用,設(shè)計相對簡單,信號識別快速方便。
異步復(fù)位的缺點:復(fù)位信號與時鐘信號無確定的時序關(guān)系,異步復(fù)位很容易引起時序上 removal 和 recovery 的不滿足。且異步復(fù)位容易受到毛刺的干擾,產(chǎn)生意外的復(fù)位操作。
參考內(nèi)容:
?2.3 Verilog 數(shù)據(jù)類型?| 菜鳥教程:
https://www.runoob.com/w3cnote/verilog-data-type.html
5.1 Verilog 復(fù)位簡介 | 菜鳥教程:
https://www.runoob.com/w3cnote/verilog2-reset.html