王華東 晏中華 何豐



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