HDLBits (104) — 1000計數(shù)器
本題鏈接:
https://hdlbits.01xz.net/wiki/Exams/ece241_2014_q7b
從一個1000赫茲的時鐘中,導(dǎo)出一個1赫茲的信號,稱為OneHertz,該信號可用于驅(qū)動一組時/分/秒計數(shù)器的使能信號,以創(chuàng)建數(shù)字掛鐘。我們希望時鐘每秒計數(shù)一次,因此OneHertz信號的一個周期必須準(zhǔn)確地對應(yīng)每一秒。為此需要使用模10(BCD)計數(shù)器和盡可能少的其他門構(gòu)建分頻器。還可以從您使用的每個BCD計數(shù)器輸出啟用信號(c_enable[0]表示最快的計數(shù)器,c_enable[2]表示最慢的計數(shù)器)。
以下是為您提供的BCD計數(shù)器。Enable必須為高,計數(shù)器才能運行。Reset是同步復(fù)位的,設(shè)置為高會強制計數(shù)器歸零。電路中的所有計數(shù)器必須直接使用相同的1000 Hz信號。

題目

答案

輸出波形



在990和1000間計數(shù)循環(huán)

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

同步復(fù)位的優(yōu)點:信號間是同步的,能濾除復(fù)位信號中的毛刺,有利于時序分析。
同步復(fù)位的缺點:大多數(shù)觸發(fā)器單元是沒有同步復(fù)位端的,采用同步復(fù)位會多消耗部分邏輯資源。且復(fù)位信號的寬度必須大于一個時鐘周期,否則可能會漏掉復(fù)位信號。
異步復(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)容:
5.1 Verilog 復(fù)位簡介 | 菜鳥教程:
https://www.runoob.com/w3cnote/verilog2-reset.html