余安喜, 羅笑冰, 李德鑫, 杜湘瑜
(國(guó)防科技大學(xué) 電子科學(xué)學(xué)院, 長(zhǎng)沙 410073)
時(shí)序邏輯電路設(shè)計(jì)是“數(shù)字電路與邏輯設(shè)計(jì)”課程教學(xué)的重點(diǎn)和難點(diǎn)之一??紤]到同步時(shí)序邏輯電路的工作頻率范圍較寬,不易產(chǎn)生競(jìng)爭(zhēng)-冒險(xiǎn)現(xiàn)象,盡管電路較為復(fù)雜,在設(shè)計(jì)穩(wěn)定性和工作頻率要求較高的中大規(guī)模時(shí)序系統(tǒng)時(shí)一般采用同步時(shí)序電路來(lái)設(shè)計(jì)。
同步時(shí)序邏輯電路的一般設(shè)計(jì)方法如圖1所示,主要包括邏輯抽象、狀態(tài)化簡(jiǎn)、狀態(tài)分配、邏輯化簡(jiǎn)、觸發(fā)器選型、畫邏輯圖、自啟動(dòng)驗(yàn)證等設(shè)計(jì)過(guò)程。
圖1 同步時(shí)序邏輯電路的一般設(shè)計(jì)方法
為了形象展示時(shí)序邏輯電路的設(shè)計(jì)方法和設(shè)計(jì)過(guò)程,許多教材采用了串行數(shù)據(jù)檢測(cè)器的經(jīng)典設(shè)計(jì)案例:設(shè)計(jì)一個(gè)串行數(shù)據(jù)檢測(cè)器,要求連續(xù)輸入3個(gè)或3個(gè)以上的1 時(shí)輸出為1,其它輸入情況下輸出為0[1-2]。
教材通過(guò)詳細(xì)介紹檢測(cè)器的設(shè)計(jì)過(guò)程,較為清晰地表達(dá)出了狀態(tài)化簡(jiǎn)的基本思想和基本原則。然而,多年來(lái)在廣大師生之間圍繞該經(jīng)典案例引發(fā)的疑問(wèn)、爭(zhēng)論和質(zhì)疑不斷涌現(xiàn),使得該教學(xué)案例成為本門課程的教學(xué)難點(diǎn)之一。2002年,龍勝春指出傳統(tǒng)設(shè)計(jì)方法中狀態(tài)化簡(jiǎn)后的電路在有些情況下是不能正常工作的[3]。2006年,陳云洽指出狀態(tài)化簡(jiǎn)本質(zhì)上不會(huì)改變電路的邏輯功能,并提出在輸入數(shù)據(jù)穩(wěn)定時(shí)進(jìn)行檢測(cè)的米利型和摩爾型電路設(shè)計(jì)方法[4]。
需要注意的是,教材指出,其所用方法要求輸入數(shù)據(jù)與時(shí)鐘信號(hào)同步,即狀態(tài)轉(zhuǎn)換的同時(shí)(時(shí)鐘信號(hào)的有效邊沿到來(lái)時(shí)),輸入也改換為下一個(gè)輸入數(shù)據(jù)。這一說(shuō)明很自然給同學(xué)們帶來(lái)疑問(wèn),實(shí)際情況下輸入數(shù)據(jù)不大可能與時(shí)鐘信號(hào)嚴(yán)格同步,而如果兩者不同步,電路又該如何設(shè)計(jì)呢?應(yīng)該如何選擇電路結(jié)構(gòu),米利型和摩爾型電路的差異在哪里呢?圍繞這些疑問(wèn),如果教師不能在教學(xué)過(guò)程中從基礎(chǔ)概念上加以解釋,勢(shì)必造成學(xué)生在基本概念和知識(shí)體系學(xué)習(xí)上的不扎實(shí)、不完整,嚴(yán)重影響學(xué)習(xí)效果。
在輸入數(shù)據(jù)與時(shí)鐘信號(hào)完全同步的理想情況下,教材給出的傳統(tǒng)電路設(shè)計(jì)如圖2所示。
圖2 傳統(tǒng)串行數(shù)據(jù)檢測(cè)器設(shè)計(jì)
實(shí)際情況下,由于電路延時(shí),這里同步假設(shè)過(guò)于理想。不失一般性,假設(shè)時(shí)鐘周期和輸入數(shù)據(jù)變化周期均為T(數(shù)據(jù)常常依時(shí)鐘周期采樣獲得),而時(shí)鐘下降沿較輸入數(shù)據(jù)延遲時(shí)間d。取T=60 ns,d=20 ns,獲得檢測(cè)波形如圖3所示。
圖3 傳統(tǒng)檢測(cè)器的錯(cuò)誤輸出波形(d=20 ns)
可見,檢測(cè)器在連續(xù)輸入2個(gè)1時(shí)即錯(cuò)誤輸出了有效檢測(cè)結(jié)果,且結(jié)果出現(xiàn)在數(shù)據(jù)輸入1后(40+d) ns處,尚不足2個(gè)時(shí)鐘周期,顯然與設(shè)計(jì)目標(biāo)不符。
考慮實(shí)際應(yīng)用系統(tǒng)不應(yīng)在數(shù)據(jù)轉(zhuǎn)換瞬間進(jìn)行檢測(cè),文獻(xiàn)給出了兩種改進(jìn)方法[4]。
方法一是通過(guò)增加1個(gè)上升沿的D觸發(fā)器,將觸發(fā)器狀態(tài)延遲到上升沿,然后再生成檢測(cè)器輸出。然而,該電路兩種不同邊沿觸發(fā)器的使用讓同學(xué)們理解問(wèn)題更加困難,并且當(dāng)時(shí)延d 圖4 改進(jìn)方法一的錯(cuò)誤輸出波形(d=20 ns) 方法二是設(shè)計(jì)一種摩爾型電路,在S3狀態(tài)下輸出檢測(cè)結(jié)果,輸出與時(shí)鐘周期保持同步,且與輸入不直接相關(guān)。盡管該方法可有效解決實(shí)際情況下數(shù)據(jù)與時(shí)鐘不同步情況下的檢測(cè)問(wèn)題,但該解決方案不僅無(wú)法向同學(xué)們展示米利型電路設(shè)計(jì)實(shí)例,同時(shí)也不能引出等價(jià)狀態(tài)的狀態(tài)化簡(jiǎn)問(wèn)題,失去了一個(gè)很好的狀態(tài)化簡(jiǎn)實(shí)例,不符合本部分課程教學(xué)目標(biāo)。 讓我們回到電路設(shè)計(jì)的第一步邏輯抽象,來(lái)分析電路設(shè)計(jì)的本質(zhì),從而揭示產(chǎn)生以上現(xiàn)象的原因。實(shí)際上前述不同的電路設(shè)計(jì)是達(dá)成了不同的設(shè)計(jì)目標(biāo),進(jìn)而形成了不同的邏輯抽象結(jié)果。由于原題目對(duì)設(shè)計(jì)目標(biāo)描述不夠具體,造成不同設(shè)計(jì)者對(duì)設(shè)計(jì)目標(biāo)的具象不同,相應(yīng)的邏輯抽象也不同。 (1)傳統(tǒng)檢測(cè)器的邏輯抽象是建立在數(shù)據(jù)同步的理想假設(shè)下,此時(shí)S2和S3兩種狀態(tài)下的輸出和次態(tài)都是相同的,因此兩狀態(tài)等價(jià),可以化簡(jiǎn)。這種情況下,檢測(cè)輸出與輸入數(shù)據(jù)、時(shí)鐘信號(hào)都是同步的。 (2)當(dāng)數(shù)據(jù)不同步時(shí),進(jìn)入S2狀態(tài)僅表示連續(xù)輸入了兩個(gè)1,此時(shí)輸出應(yīng)保持為0,而只有進(jìn)入S3狀態(tài),才表明連續(xù)輸入了3個(gè)或3個(gè)以上的1,此時(shí)輸出應(yīng)為1??梢?,S2和S3兩種狀態(tài)的輸出不同,即兩狀態(tài)不等價(jià),也就不能做狀態(tài)化簡(jiǎn)。此時(shí),可將電路設(shè)計(jì)為摩爾型(改進(jìn)方法二),讓檢測(cè)輸出與時(shí)鐘信號(hào)保持同步。 可見,數(shù)據(jù)轉(zhuǎn)換與觸發(fā)時(shí)鐘是否同步,決定了電路設(shè)計(jì)要解決的問(wèn)題在根本上就是不同的,相應(yīng)的邏輯抽象也是不同的。不同的邏輯抽象結(jié)果下,狀態(tài)的等價(jià)性發(fā)生了根本變化,狀態(tài)化簡(jiǎn)過(guò)程也將隨之改變,米利型和摩爾型的電路結(jié)構(gòu)選擇也就清晰了。更多情況、更詳細(xì)的討論可參見文獻(xiàn)[5]。 考慮到實(shí)際應(yīng)用中,檢測(cè)時(shí)鐘信號(hào)與輸入數(shù)據(jù)有一定時(shí)延的,合理的解決思路是:首先將輸入數(shù)據(jù)進(jìn)行預(yù)處理,即通過(guò)一個(gè)時(shí)鐘控制的寄存器,實(shí)現(xiàn)與檢測(cè)時(shí)鐘的同步,然后再輸入一個(gè)傳統(tǒng)的串行數(shù)據(jù)檢測(cè)器。實(shí)用的串行數(shù)據(jù)檢測(cè)器電路如圖5所示。 圖5 實(shí)用的串行數(shù)據(jù)檢測(cè)器設(shè)計(jì) 圖6給出了數(shù)據(jù)不同步時(shí)(d=20 ns)下的檢測(cè)波形,可見檢測(cè)結(jié)果的波形與設(shè)計(jì)目標(biāo)相一致。 圖6 實(shí)用電路的輸出波形(d=20 ns) 需要說(shuō)明的是,原教材在原例題解析中也給出了類似的補(bǔ)充說(shuō)明,但未就數(shù)據(jù)不同步帶來(lái)的影響展開深入討論,也沒(méi)有給出完整的電路設(shè)計(jì),理解起來(lái)難度較大。 通過(guò)上面的分析,我們從檢測(cè)時(shí)鐘信號(hào)與輸入數(shù)據(jù)不嚴(yán)格同步的實(shí)際情況出發(fā),理清了數(shù)據(jù)同步預(yù)處理環(huán)節(jié)與經(jīng)典電路設(shè)計(jì)方法的關(guān)系。我們可以通過(guò)將傳統(tǒng)設(shè)計(jì)方法和實(shí)用的電路設(shè)計(jì)相結(jié)合,在課堂上以教學(xué)案例的形式,把時(shí)序邏輯電路設(shè)計(jì)方法與流程中涉及的邏輯抽象、狀態(tài)等價(jià)、狀態(tài)化簡(jiǎn)等理論問(wèn)題完整的實(shí)例化展開,同時(shí)鼓勵(lì)同學(xué)們?cè)趯?shí)驗(yàn)室實(shí)現(xiàn)該電路或者完成Verilog仿真,嘗試分析其中的數(shù)據(jù)與時(shí)鐘同步問(wèn)題,通過(guò)觀察記錄不同延時(shí)情形下的波形,更加深入地去思考電路運(yùn)行的內(nèi)在機(jī)理,體會(huì)實(shí)際電路與經(jīng)典理論之間的聯(lián)系與區(qū)別,從而激發(fā)同學(xué)們夯實(shí)理論知識(shí)體系和解決實(shí)際問(wèn)題的創(chuàng)新性思維能力。 本文圍繞串行數(shù)據(jù)檢測(cè)器這一時(shí)序邏輯電路設(shè)計(jì)的教學(xué)案例進(jìn)行探討,根據(jù)檢測(cè)觸發(fā)時(shí)鐘與輸入數(shù)據(jù)同步和非同步兩種情形,分析了傳統(tǒng)電路和兩種改進(jìn)型電路的輸出波形、設(shè)計(jì)缺陷及其邏輯抽象本質(zhì),提出了實(shí)用化的電路設(shè)計(jì),最后從如何激發(fā)同學(xué)們夯實(shí)理論知識(shí)體系和解決實(shí)際問(wèn)題的創(chuàng)新性思維能力的角度,給出了本案例教學(xué)的具體實(shí)施方法。 總之,傳統(tǒng)電路設(shè)計(jì)有利于理解時(shí)序邏輯電路設(shè)計(jì)中的狀態(tài)化簡(jiǎn)問(wèn)題,實(shí)用化的電路設(shè)計(jì)只需對(duì)電路前端引入預(yù)處理過(guò)程,實(shí)現(xiàn)簡(jiǎn)單。同時(shí)教學(xué)過(guò)程中,還可通過(guò)繪制各種情形下的波形圖,形象展示米利型和摩爾型兩種電路結(jié)構(gòu)對(duì)輸出波形的影響,還可鼓勵(lì)同學(xué)們課后完成電路設(shè)計(jì)的全流程仿真。這樣,教學(xué)過(guò)程的理論體系更完整、邏輯性更強(qiáng),理論與實(shí)際應(yīng)用相結(jié)合,對(duì)于活躍同學(xué)們應(yīng)用理論知識(shí)解決實(shí)際問(wèn)題的創(chuàng)新性思維很有益處。2 從邏輯抽象解釋電路設(shè)計(jì)本質(zhì)
3 實(shí)用的串行數(shù)據(jù)監(jiān)測(cè)器電路設(shè)計(jì)
4 具體案例教學(xué)實(shí)施方法
5 結(jié)語(yǔ)
電氣電子教學(xué)學(xué)報(bào)2022年1期