沒(méi)有任何寄存器邏輯,RTL設(shè)計(jì)是不完整的。RTL是寄存器傳輸級(jí)或邏輯,用于描述依賴于當(dāng)前輸入和過(guò)去輸出的數(shù)字邏輯。
同步和異步復(fù)位
在ASIC/FPGA設(shè)計(jì)中,何時(shí)使用異步復(fù)位或同步復(fù)位總是導(dǎo)致設(shè)計(jì)者頭腦混亂。同步復(fù)位信號(hào)在時(shí)鐘邊緣和數(shù)據(jù)路徑的一部分進(jìn)行采樣,而異步復(fù)位信號(hào)的采樣與時(shí)鐘信號(hào)無(wú)關(guān),而與數(shù)據(jù)路徑或數(shù)據(jù)輸入邏輯的一部分無(wú)關(guān)。本節(jié)介紹使用異步和同步復(fù)位的Verilog RTL for 觸發(fā)器。
D觸發(fā)器異步復(fù)位
異步復(fù)位不是數(shù)據(jù)路徑的一部分,用于初始化觸發(fā)器,而不考慮時(shí)鐘邊沿,因此稱為異步復(fù)位。這種初始化觸發(fā)器的技術(shù)不推薦用于生成內(nèi)部復(fù)位信號(hào),因?yàn)樗菀壮霈F(xiàn)故障。設(shè)計(jì)者需要注意在內(nèi)部同步該復(fù)位信號(hào),以避免出現(xiàn)故障。內(nèi)部同步復(fù)位信號(hào)應(yīng)用于存儲(chǔ)元件。復(fù)位解除(reset deassertion)是異步復(fù)位信號(hào)的主要問(wèn)題,采用兩級(jí)同步器可以克服這一問(wèn)題。兩級(jí)同步器(Level synchronizer)避免了復(fù)位解除期間的繞線情況。
Verilog RTL如圖所示,使用低電平異步復(fù)位信號(hào)“reset_n”(示例5.3)。
圖5.10顯示了具有異步復(fù)位“reset_n”的D觸發(fā)器的綜合邏輯。
示例5.3 D觸發(fā)器,帶低電平異步復(fù)位信號(hào)“reset_n”輸入
圖5.10 帶低電平異步復(fù)位信號(hào)輸入的綜合D觸發(fā)器
D觸發(fā)器同步復(fù)位
在同步復(fù)位中,復(fù)位信號(hào)是作為數(shù)據(jù)路徑的數(shù)據(jù)輸入的一部分,取決于活動(dòng)時(shí)鐘邊沿。同步復(fù)位不存在故障或危險(xiǎn)(glitches or hazards)問(wèn)題,因此這種方法最適合設(shè)計(jì)。該機(jī)制不需要額外的同步電路。
例5.4中描述了Verilog RTL,它使用低電平同步復(fù)位信號(hào)“reset_n”。
示例5.4 D觸發(fā)器,帶有源低同步復(fù)位輸入
圖5.11同步復(fù)位D觸發(fā)器的綜合邏輯
帶同步復(fù)位輸入的正邊沿觸發(fā)D觸發(fā)器的綜合邏輯如圖5.11所示。
帶使能異步復(fù)位的觸發(fā)器
在大多數(shù)實(shí)際應(yīng)用中,需要多個(gè)異步輸入??紤]一個(gè)應(yīng)用程序,當(dāng)激活輸入時(shí),它需要加載輸入數(shù)據(jù)。即使在復(fù)位信號(hào)激活且有效時(shí),也必須等待初始化寄存器。如果兩個(gè)異步輸入同時(shí)到達(dá),則輸出應(yīng)取決于這些信號(hào)的優(yōu)先級(jí)分配。
如示例5.5所示,兩個(gè)異步輸入被命名為“reset_n”和“l(fā)oad_en”?!?reset_n”具有最高優(yōu)先級(jí),“l(fā)oad_en”具有最低優(yōu)先級(jí)。使用“if-else”構(gòu)造優(yōu)先級(jí)。
綜合邏輯如圖5.12所示。
示例5.5帶異步“reset_n”和“l(fā)oad_en”的D觸發(fā)器的Verilog RTL
圖5.12異步復(fù)位D觸發(fā)器的綜合輸出
帶使能同步復(fù)位的觸發(fā)器
如果多個(gè)信號(hào)或輸入是數(shù)據(jù)路徑的一部分,并且在時(shí)鐘的活動(dòng)邊沿上采樣,則在時(shí)鐘的活動(dòng)邊緣上分配時(shí)序單元的輸出??紤]示例5.6中所示的Verilog RTL,輸入“reset_n”和“l(fā)oad_en”是同步輸入并在時(shí)鐘的正邊上采樣。同步輸入“reset_n”具有最高優(yōu)先級(jí),“l(fā)oad_en”具有最低優(yōu)先級(jí)。
綜合邏輯如圖5.13所示,“reset_n”和“l(fā)oad_en”是數(shù)據(jù)路徑的一部分。
示例5.6帶同步“reset_n”和“l(fā)oad_en”的D觸發(fā)器
圖5.13帶同步“reset_n”和“l(fā)oad_en”的綜合邏輯
審核編輯:郭婷
-
FPGA
+關(guān)注
關(guān)注
1645文章
22049瀏覽量
618394 -
asic
+關(guān)注
關(guān)注
34文章
1246瀏覽量
122385 -
觸發(fā)器
+關(guān)注
關(guān)注
14文章
2039瀏覽量
62142
原文標(biāo)題:Verilog時(shí)序邏輯硬件建模設(shè)計(jì)(二)同步和異步復(fù)位
文章出處:【微信號(hào):Open_FPGA,微信公眾號(hào):OpenFPGA】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
異步復(fù)位與同步復(fù)位的綜合后電路圖講解

verilog描述異步置0,異步置1功能的D觸發(fā)器
同步復(fù)位和異步復(fù)位的比較(轉(zhuǎn)載)
FPGA的復(fù)位設(shè)計(jì)分析(Verilog HDL與RTL圖)
哪些觸發(fā)器時(shí)鐘有效哪些無(wú)效
異步復(fù)位信號(hào)亞穩(wěn)態(tài)的原因與D觸發(fā)器的Verilog描述

D觸發(fā)器的幾種表示形式同步復(fù)位、同步釋放

異步復(fù)位D觸發(fā)器原理詳解 Reset信號(hào)怎么產(chǎn)生的
帶復(fù)位功能的雙 JK 觸發(fā)器;下降沿觸發(fā)-74HC73

D觸發(fā)器的類型詳解 同步復(fù)位和異步復(fù)位D觸發(fā)器講解

JK觸發(fā)器與T觸發(fā)器的Verilog代碼實(shí)現(xiàn)和RTL電路實(shí)現(xiàn)

評(píng)論