王華東 晏中華 何豐
【摘要】邏輯器件的延遲問題在傳統(tǒng)數(shù)字電路課程中通常是被忽略的內(nèi)容,但在現(xiàn)代數(shù)字邏輯電路設(shè)計過程中,邏輯器件的傳輸延遲及相關(guān)時序問題已經(jīng)成為電路設(shè)計的關(guān)鍵。本文探討了數(shù)字邏輯電路課程中引入時延及時序問題的必要性,并在實際的數(shù)字電路課程教學(xué)過程中進行試點,最終對試點結(jié)果進行了分析總結(jié)。
【關(guān)鍵詞】數(shù)字邏輯電路? 時延? 時序約束
【Abstract】Delay of the logical devices has usually been neglected in traditional digital logical circuits course. However, it and relevant timing analysis problem play more important roles than before in current logical circuit design process. In this paper, the necessary of adding logical devices delay and timing analysis problem in digital logical circuit course is discussed, and actual teaching process of the delay and time constraints in logical circuits course is introduced. At the end of the paper, the conclusion of the attempt is given.
【Keywords】digital logical circuits; delay; timing constraint
【基金項目】重慶郵電大學(xué)教育教改項目(項目編號:XJG19207)。
【中圖分類號】TN79 【文獻標識碼】A 【文章編號】2095-3089(2021)08-0136-03
在目前常見的數(shù)字邏輯電路的教材中[1],數(shù)字邏輯電路中的信號傳輸延遲通常是一個被回避掉的問題。一般來說,數(shù)字電路教材只有三處會涉及到時延的相關(guān)內(nèi)容:第一處是競爭和競爭冒險;第二處是SR鎖存器的不定態(tài)介紹;第三處是傳輸延遲邊沿JK觸發(fā)器的原理講解。雖然有涉及,但除了競爭冒險,通常教材并不會對時延問題的影響展開深入的討論。
產(chǎn)生這個現(xiàn)象的主要原因可能是,在傳統(tǒng)的數(shù)字電路課程中,除了競爭冒險現(xiàn)象以外,邏輯器件的信號延遲不會對數(shù)字電路的分析設(shè)計有明顯的影響。由于晶體管電壓電流變化導(dǎo)致的時延通常都是微秒甚至納秒級別,因此在傳統(tǒng)數(shù)字電路設(shè)計中時延的影響確實可以忽略不計。但隨著半導(dǎo)體技術(shù)的飛速發(fā)展,邏輯電路的工作時鐘越來越高。邏輯器件的時延對邏輯電路設(shè)計的影響也越來越明顯。因此,在當前數(shù)字邏輯電路的課程中,是否需要對邏輯器件的延遲問題展開分析討論,讓學(xué)生理解時延問題的原理及對邏輯電路設(shè)計的影響,應(yīng)當是數(shù)字邏輯電路課程教師重視和并進行討論的問題。
1.數(shù)字電路課程中時延問題的意義
目前數(shù)字邏輯電路課程的教學(xué)內(nèi)容正面臨著從傳統(tǒng)74系列芯片向FPGA平臺轉(zhuǎn)變的過程[2-3]。由于歷史原因,部分高校數(shù)字電路課程的教學(xué)重點放在電路邏輯功能的實現(xiàn)。即學(xué)生只要做好電路設(shè)計,或者寫好邏輯代碼就可以了,其他的都可以通過EDA軟件來解決。但就實際的情況來看,這種情況僅適用于時鐘頻率低的場景。在一些時鐘頻率較高的邏輯電路設(shè)計場景下,情況就會有所不同。譬如在采用HLS設(shè)計實現(xiàn)高性能邏輯電路時,經(jīng)常會發(fā)生同樣C代碼,在有的FPGA芯片上綜合成組合邏輯電路,而在另一些FPGA芯片上綜合成時序邏輯;或者有的循環(huán)運算在展開成流水線設(shè)計時,第一個數(shù)據(jù)到下一個數(shù)據(jù)需要延遲兩個時鐘,而同樣功能的代碼,只是實現(xiàn)形不同,流水線展開后數(shù)據(jù)之間的延遲就變成一個時鐘[4]。這些問題體現(xiàn)出一點,就是當前的邏輯電路設(shè)計是和邏輯器件的延遲特性密切相關(guān)的。沒有對邏輯電路時延問題的認識和理解,很難對邏輯電路進行優(yōu)化設(shè)計。
部分教師認為時延問題既然主要體現(xiàn)在FPGA設(shè)計當中,那相關(guān)內(nèi)容在FPGA及相關(guān)課程中進行教學(xué)就可以了,不一定非要放到數(shù)字電路課程當中。事實上,目前國內(nèi)關(guān)于邏輯電路時延及時序分析的內(nèi)容介紹都出自比較專業(yè)的FPGA教材[5]。但經(jīng)過思考,我們認為,從物理上講,時延是由晶體管中的寄生電容產(chǎn)生的,本質(zhì)上屬于電路問題,因此有必要在講邏輯電路的時候就對這個問題展開分析討論。以前在數(shù)字電路課程中沒有進行深入介紹只是因為當時時延對數(shù)字電路的影響主要表現(xiàn)為競爭冒險現(xiàn)象?,F(xiàn)代邏輯電路設(shè)計需要考慮邏輯器件時延的影響,就應(yīng)該對其及其產(chǎn)生的時序問題進行介紹。這樣才有助于學(xué)生更好地理解邏輯電路設(shè)計的本質(zhì)。從另一個層面講,邏輯電路的延遲本質(zhì)上也是一系列邏輯門電路延遲的疊加,因此在數(shù)字邏輯電路課程進行相關(guān)教學(xué)也具有合理性。而在FPGA課程中進行時序問題的介紹還需要從RTL代碼映射到邏輯門電路,反倒不如直接在邏輯電路課程中進行講解來的直觀。實際上,不少國外的數(shù)字邏輯電路教材和網(wǎng)絡(luò)公開課是包含時延及時序分析的相關(guān)內(nèi)容[6-7],證明了這種做法的合理性。
2.延遲和時序內(nèi)容的教學(xué)試點
2.1教學(xué)內(nèi)容
在課程內(nèi)容建設(shè)過程中,將邏輯電路的競爭冒險的相關(guān)內(nèi)容和時延問題整合到一起,命名為“邏輯電路的時延及時序問題”,占用1個課時(共2學(xué)時)。課程內(nèi)容包含四個部分:數(shù)字邏輯電路的延遲;競爭和競爭冒險問題;邏輯電路的時序問題;亞穩(wěn)態(tài)介紹。由于教學(xué)時間的限制,時鐘抖動及其影響暫時沒有包括進來。具體教學(xué)內(nèi)容如下:
(1)數(shù)字邏輯電路的延遲定義。
延遲定義部分包括六個定義:晶體管的傳輸延遲t和最小延遲t;組合邏輯電路的最短路徑和關(guān)鍵路徑;組合邏輯電路的傳輸延遲和最小延遲。其中t為晶體管輸入端進入新狀態(tài)出現(xiàn)到輸出端進入新狀態(tài)的延遲。t為晶體管輸入端舊狀態(tài)消失到輸出端舊狀態(tài)消失的延遲。最短路徑指的是組合邏輯電路中從輸入端到輸出端變化最快的路徑。關(guān)鍵路徑是指組合邏輯電路中從輸入端到輸出端變化最慢的路徑。
有了上述定義,即可以計算組合邏輯電路的傳輸延遲和最小延遲:
組合邏輯電路的t:關(guān)鍵路徑上所有器件的t之和;組合邏輯電路的t:最短路徑上所有器件的t之和。
(2)競爭和競爭冒險部分
這部分主要包括組合邏輯電路的競爭和競爭冒險現(xiàn)象產(chǎn)生的原因、競爭冒險現(xiàn)象的解決方法、異步時序邏輯電路中的競爭冒險現(xiàn)象。具體內(nèi)容與傳統(tǒng)教材區(qū)別不大[1,8],這里不再贅述。
(3)邏輯電路時序約束討論
這部分是本次課程教學(xué)內(nèi)容的核心。首先介紹時序約束的前提:當時鐘信號有效時,輸入信號應(yīng)當保持穩(wěn)定,即從時鐘信號到來前的t到時鐘信號到來后的thold內(nèi),觸發(fā)器的輸入都應(yīng)保持不變。其中t和t均取決于觸發(fā)器本身特性。所以對于時序邏輯電路來說(如圖1所示),上述要求實際上等價于以下兩個基本準則:建立時間約束和保持時間約束。
本次時鐘信號產(chǎn)生的D2信號的新狀態(tài)必須在下一次時鐘到來之前的t時間達到穩(wěn)定。圖2給出了觸發(fā)器1輸出端和觸發(fā)器2輸入端的波形圖。其中t為觸發(fā)器的傳輸延遲,t為組合邏輯電路的傳輸延遲。這樣,可以得到時序邏輯電路的建立時間約束方程。
本次時鐘引起的觸發(fā)器Q1狀態(tài)變化必須要在t時間之后傳遞到下一級觸發(fā)器Q2的輸入端。具體波形如圖3。其中tccq為觸發(fā)器的最小延遲,tcd為組合邏輯電路的最小延遲。這樣,可以得到時序分析的保持時間約束方程:
可以看到,方程(2)和(4)描述了時序邏輯電路對觸發(fā)器之間的組合邏輯電路延遲特性的要求。其中方程(2)還表明觸發(fā)器之間的組合邏輯電路的傳輸延遲與FPGA時鐘周期之間存在著約束關(guān)系。
顯然,當理解上述兩個方程后,就能夠正確解釋在本文前面提到的幾個HLS的問題產(chǎn)生的原因。當C代碼轉(zhuǎn)換后的運算電路的傳輸延遲滿足方程(2),則被綜合成組合邏輯電路。當運算電路的傳輸延遲無法滿足方程(2)時,將被綜合成時序邏輯電路,在多個時鐘周期內(nèi)完成。對于不同的FPGA芯片,由于工藝不同,內(nèi)部器件的t,t,t,t,的參數(shù)不同,因此同樣的C代碼,在有的FPGA芯片內(nèi)容會綜合成組合邏輯電路,在有的芯片內(nèi)會綜合成時序邏輯電路,即FPGA芯片本身也會影響邏輯電路設(shè)計。
(4)亞穩(wěn)態(tài)問題
當時序約束的前提條件不滿足時,即在時鐘信號到來時,邏輯電路的輸入信號也同時也發(fā)生變化。此時,觸發(fā)器會進入亞穩(wěn)態(tài),即電路的輸出電壓可能為0-Vcc之間的任意電壓,并在分辨時間內(nèi)返回穩(wěn)態(tài)。其中分辨時間的定義由式(5)給出。
對于邏輯電路來說,亞穩(wěn)態(tài)的出現(xiàn)將會導(dǎo)致電路的輸出出現(xiàn)不可預(yù)測的結(jié)果。因此,邏輯電路設(shè)計需要避免亞穩(wěn)態(tài)的出現(xiàn)。這表明邏輯電路時序分析的重要性不亞于電路的功能設(shè)計。事實上,觸發(fā)器章節(jié)提到的SR鎖存器的不定態(tài)本質(zhì)上就是由于SR鎖存器輸入端的信號不滿足時序約束,鎖存器進入了亞穩(wěn)態(tài)所導(dǎo)致的。
2.2教學(xué)安排和執(zhí)行
本次課程的教學(xué)目標為以下幾點:(1)理解邏輯器件延遲的定義,掌握組合邏輯電路的傳輸延遲t和最小延遲t的計算方法;(2)了解競爭和競爭冒險的定義,掌握組合邏輯電路和時序邏輯電路的競爭冒險的解決方法;(3)理解邏輯電路的時序約束條件,掌握時序分析的基本方法;(4)了解亞穩(wěn)態(tài)產(chǎn)生的原因。教學(xué)的重點是關(guān)于時序約束條件產(chǎn)生原因的理解和時序分析的方法掌握。
在完成延遲和時序約束的相關(guān)理論教學(xué)后,通過兩個例題對教學(xué)內(nèi)容進行鞏固和加深。其中例題1為計算某組合邏輯電路的傳輸延遲和最小延遲。例題2為判斷某時序邏輯電路是否能正常工作,如果不能,給出邏輯電路的修改方案,要求在保持邏輯功能不變的條件下,修改后電路能夠正常工作。課堂教學(xué)的具體時間安排如表1所示。
3.教學(xué)實踐及總結(jié)
在完成上述教學(xué)內(nèi)容的準備后,在我校某系實驗班的數(shù)字邏輯電路課程進行了兩期試點工作,試點過程如下:
在第一期試點中,時延部分只作為教學(xué)內(nèi)容,并不作為期末考核內(nèi)容。從課堂表現(xiàn)來看,學(xué)生是能夠掌握時延的相關(guān)概念,體現(xiàn)在大多數(shù)學(xué)生對例題1的內(nèi)容都能夠比較快地掌握,并正確完成類似題目的計算。但時序約束部分的學(xué)習(xí)效果就要差一些,體現(xiàn)在對例題2,只有少部分學(xué)生能夠正確理解整個電路的時序約束關(guān)系,并找到合適的電路修改方案。原因可能是因為時序分析的相關(guān)內(nèi)容比較抽象,學(xué)生短時間不容易掌握。
在第二期試點中,在期末考試中增加了時延相關(guān)內(nèi)容的考核??己酥R點為組合邏輯電路的t和t的計算,題型為填空題。期末考試結(jié)果顯示,大多數(shù)同學(xué)是能夠計算出正確結(jié)果,表明學(xué)生對傳輸延遲和最小延遲有著較好的掌握和理解。這個結(jié)論和課程教學(xué)過程中觀察到的學(xué)生學(xué)習(xí)情況是基本相符合的。
試點結(jié)果也顯示,時序約束的理解是這部分內(nèi)容的難點。解決方法有兩種:一種是通過更多的習(xí)題進行練習(xí);另一種是通過仿真實驗加深理解。但在試點發(fā)現(xiàn),當前常見的數(shù)字邏輯電路實驗與時序約束的內(nèi)容并不相關(guān),因此需要建設(shè)新的實驗案例,將時序部分的內(nèi)容和邏輯電路設(shè)計結(jié)合起來,使得學(xué)生能夠更為直觀的理解時序分析的原理和意義,了解時序約束對邏輯電路設(shè)計的影響,這也是我們下一階段計劃解決的問題。
4.結(jié)語
隨著數(shù)字邏輯技術(shù)的飛速發(fā)展,邏輯器件的時延和時序問題在邏輯電路設(shè)計中的重要性越來越明顯,如何讓學(xué)生更好的掌握數(shù)字邏輯設(shè)計能力,是當前數(shù)字電路課程教學(xué)所面臨的嚴峻挑戰(zhàn)。本文介紹了我們對數(shù)字邏輯電路中時延和時序問題的認識和思考,以及相應(yīng)的教學(xué)試點工作。試點結(jié)果顯示,數(shù)字邏輯電路課程中引入延遲和時序的相關(guān)內(nèi)容是可行的和合理的。但在如何提升教學(xué)效果,以及如何選擇合適的教學(xué)實驗案例方面還需要做進一步的探索和研究。
參考文獻:
[1]閆石,王紅著.數(shù)字電子技術(shù)基礎(chǔ)(第六版)[M]. 北京: 高等教育出版社,2016年4月.
[2]李文淵,王蓉,孟橋,王志功,“數(shù)字電路與系統(tǒng)”課程教學(xué)改革與探索[J].南京: 電氣電子教學(xué)學(xué)報,2018(6):35-39.
[3]張秀榮,“數(shù)字電子技術(shù)”課程教學(xué)現(xiàn)狀的調(diào)研[J].南京: 電氣電子教學(xué)學(xué)報,2017(1):95-97.
[4]徐紅,賈立新,吳根忠,基于EDA技術(shù)的“數(shù)字電路”課程教學(xué)實踐[J].南京: 電氣電子教學(xué)學(xué)報,2019(1):36-39.
[5]徐文波,田耘.Xilinx FPGA開發(fā)實用教程(第二版)[M]. 北京: 清華大學(xué)出版社,2016年4月.
[6]莎拉·哈里斯著,陳俊穎譯,數(shù)字設(shè)計和計算機體系結(jié)構(gòu)電路[M].北京:機械工業(yè)出版社,2019 年 7 月.
[7]Chris Terman, https://www.edx.org/course/computation -structures-part-1-digital-circuits.
[8]丁偉,關(guān)宇,馬麗梅,吳元亮.基于Multisim的組合電路中競爭冒險的仿真分析[J].北京:工業(yè)和信息化教育, 2013(8):24-63.
作者簡介:
王華東(1977年-),男,博士,副教授,主要從事數(shù)字邏輯電路課程教學(xué),非線性電路模型研究。