高速电路EDA设计第一次实验
一.利用74LS138實現4-16譯碼器
設計要求:
· 用2片3-8 譯碼器拼接成4-16 譯碼器
· 仿真驗證電路的正確性
· 注意觀察輸出信號的毛刺(競爭冒險)
設計思路:
如下圖所示,我們讓最高位輸入IN_D接到片1的G2BN,接到片2的G1,這樣若IN_D=0,則上方的芯片被選中,下方芯片被禁用,若IN_D=1,則相反。
電路邏輯設計如下:
用QuartusⅡ進行功能性仿真后得:
用QuartusⅡ進行時序性仿真后得:
仿真結果符合預期,且出現了“毛刺”,即電路的冒險與競爭現象,這是由于邏輯門存在延遲以及信號的傳輸路徑不同造成的,當輸入信號電平發生瞬時變化時,電路就可能產生與穩態時不一致的錯誤輸出。
二.利用74LS161計數器芯片實現模12的計數器
設計要求:
設計思路:
要實現模12的計數器,及從0到11,現在QD為高位,及從0000到1011,然后復位,再從0000開始循環計數。因為在一個計數周期中,QA,QB,QD都為1的時候只有在1011的時候才會出現,故利用這個特點,使QA,QB,QD相與非得到0,并把這個信號輸入到LDN端,使計數器置位回到0000的初始狀態,并且OV端會輸出高電平,表示一個計時周期的結束。
電路邏輯設計如下:
用QuartusⅡ進行功能性仿真后得:
用QuartusⅡ進行時序性仿真后得:
可見,時序仿真對信號的響應有一定的延遲。
三.利用74LS161計數器芯片實現模20的計數器
設計要求:
設計思路:
因為一片161最大只能實現模16的計數功能,故要用兩片161芯片級聯來實現這個功能,那么首先要解決的問題是如何使兩個161芯片協同工作呢,即要使第一片計數從0到15,然后再激活第二個芯片開始工作,這里把低位片的溢出端RCO,接到高位片的LND端,而使ENT端常為1,這樣當低位片一個周期計數結束之后,RCO產生高電平,會使高位片開始工作,即高位片輸出0001,但是下一個脈沖到來的時候,RCO就會變為低電平,此時高位片進入保持狀態,保持0001的狀態,直到00010011,然后復位開始下一個周期的循環。那么如何復位呢?
設兩個芯片的八個輸出位分別為QH,QG,QF,QE,QD,QC,QB,QA(從高位到低位)計數周期為00000000到00010011(0到19),通過觀察發現只有在一個周期結束的時候才會出現QA,QB,QE同時為1的情況,故可利用這一特性,讓3個信號相與非(得0)接到兩個161芯片的LND端,實現兩個計數器的復位。
電路邏輯設計如下:
用QuartusⅡ進行功能性仿真后得:
用QuartusⅡ進行時序性仿真后得:
總結
以上是生活随笔為你收集整理的高速电路EDA设计第一次实验的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 欢迎使用CSDN-markdown编辑器
- 下一篇: Verilog RTL 代码设计示例