HDLBits (105) — 4位二進(jìn)制編碼十進(jìn)制計(jì)數(shù)器
本題鏈接:
https://hdlbits.01xz.net/wiki/Countbcd
構(gòu)建一個(gè)4位BCD(二進(jìn)制編碼十進(jìn)制)計(jì)數(shù)器。每個(gè)十進(jìn)制數(shù)字使用4位編碼:q[3:0]是一位數(shù)字,q[7:4]是十位數(shù)字,等等。對(duì)于數(shù)字[3:1],還輸出一個(gè)啟用信號(hào),指示上三位中的每一位何時(shí)應(yīng)遞增。
你可以根據(jù)需要實(shí)例化或修改某些一位數(shù)十進(jìn)制計(jì)數(shù)器。


題目

答案

輸出波形



為確保系統(tǒng)上電后有一個(gè)明確、穩(wěn)定的初始狀態(tài),或系統(tǒng)運(yùn)行狀態(tài)紊亂時(shí)可以恢復(fù)到正常的初始狀態(tài),數(shù)字系統(tǒng)設(shè)計(jì)中一定要有復(fù)位電路模塊。復(fù)位電路異??赡軙?huì)導(dǎo)致整個(gè)系統(tǒng)的功能異常,所以在一定程度上,復(fù)位電路的重要性也不亞于時(shí)鐘電路。
復(fù)位電路可分類為同步復(fù)位和異步復(fù)位。
同步復(fù)位
同步復(fù)位是指復(fù)位信號(hào)在時(shí)鐘有效邊沿到來(lái)時(shí)有效。如果沒(méi)有時(shí)鐘,無(wú)論復(fù)位信號(hào)怎樣變化,電路也不執(zhí)行復(fù)位操作。
同步復(fù)位常常會(huì)被綜合成如下電路:

同步復(fù)位的優(yōu)點(diǎn):信號(hào)間是同步的,能濾除復(fù)位信號(hào)中的毛刺,有利于時(shí)序分析。
同步復(fù)位的缺點(diǎn):大多數(shù)觸發(fā)器單元是沒(méi)有同步復(fù)位端的,采用同步復(fù)位會(huì)多消耗部分邏輯資源。且復(fù)位信號(hào)的寬度必須大于一個(gè)時(shí)鐘周期,否則可能會(huì)漏掉復(fù)位信號(hào)。
異步復(fù)位
異步復(fù)位是指無(wú)論時(shí)鐘到來(lái)與否,只要復(fù)位信號(hào)有效,電路就會(huì)執(zhí)行復(fù)位操作。
異步復(fù)位常常會(huì)被綜合成如下電路:

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