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