◆邵平凡
(武漢科技大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院)
淺談Proteus VSM在數(shù)字邏輯課程教學(xué)中的應(yīng)用
◆邵平凡
(武漢科技大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院)
本文從數(shù)字邏輯課程的特點(diǎn)、現(xiàn)狀及教學(xué)需求出發(fā),介紹了引入Proteus VSM的必要性及其在實(shí)際教學(xué)過程中取得的效果,充分說明了Proteus VSM在該課程教學(xué)中的作用。
組合邏輯 時(shí)序邏輯 虛擬系統(tǒng)模型
數(shù)字邏輯是數(shù)字電路邏輯設(shè)計(jì)的簡稱,是計(jì)算機(jī)及相關(guān)專業(yè)的一門必修的專業(yè)基礎(chǔ)課,其主要內(nèi)容是用數(shù)字電路進(jìn)行數(shù)字系統(tǒng)邏輯設(shè)計(jì),包括組合邏輯電路、時(shí)序邏輯電路及其混合邏輯電路的分析與設(shè)計(jì)技術(shù)。不管是什么樣的電子數(shù)字計(jì)算機(jī),無非是由具有各種邏輯功能的邏輯部件組成的,但在設(shè)計(jì)過程中一定需要進(jìn)行各種單元電路和系統(tǒng)整體的實(shí)驗(yàn)和測試,以確保邏輯正確,時(shí)序無誤,并且性能良好。
需要實(shí)驗(yàn)和測試,就需要相應(yīng)的邏輯元器件來構(gòu)建電路,還需要測量、測試及輔助分析用的儀器設(shè)備,當(dāng)然也需要相應(yīng)的電源、信號(hào)源等。如果一切都需要真材實(shí)料,毫無疑問是一般學(xué)習(xí)者無法解決的問題。因?yàn)閷W(xué)校的教學(xué)資源有限,即使是在校的大學(xué)生,實(shí)驗(yàn)室的資源也不可能滿足其所有需求,對于校外的其他學(xué)習(xí)者就更加困難。因此,尋找一種接近實(shí)際的虛擬系統(tǒng)作為實(shí)現(xiàn)數(shù)字邏輯電路的分析與設(shè)計(jì)、實(shí)驗(yàn)和測試的工具,會(huì)對學(xué)習(xí)者有很大的幫助,只有通過理論與實(shí)踐的結(jié)合,才可能加深學(xué)習(xí)印象,提高學(xué)習(xí)效果,減少設(shè)計(jì)錯(cuò)誤,明確電路的設(shè)計(jì)性能。
Proteus VSM(Virtual System Model,虛擬系統(tǒng)模型)正好可以滿足學(xué)習(xí)者的這些需求,它是由英國Labcenter Electronics公司開發(fā)的一款EDA軟件,是目前世界上最先進(jìn)、最完整的仿真平臺(tái)。Proteus軟件具有多種元件庫,其中的元器件大多均可直接用于實(shí)際電路的搭建,而且該軟件提供了多種與實(shí)際儀器儀表用法相似的虛擬儀器設(shè)備,還有各種信號(hào)源,幾乎可以完成各類數(shù)字邏輯電路的設(shè)計(jì)、測試和輔助分析工作。由于這些虛擬元器件、儀器設(shè)備和信號(hào)源可以隨意取用,既不需要花錢購買,又接近實(shí)際實(shí)物的效果,而且不需要維護(hù),不會(huì)因?yàn)閷W(xué)習(xí)者的誤操作或使用不當(dāng)而造成元器件和儀器設(shè)備的損壞,更不會(huì)影響到人身安全,而且仿真效果非常逼真。因此,不僅使任課老師可在課堂上以形象生動(dòng)的仿真演示提高學(xué)生的學(xué)習(xí)興趣,而且可引導(dǎo)學(xué)生將相應(yīng)實(shí)驗(yàn)推廣至課外的任何地點(diǎn)。學(xué)習(xí)者可根據(jù)自己的需要,自行設(shè)計(jì)實(shí)驗(yàn)項(xiàng)目,從系統(tǒng)提供的元件庫中找到相應(yīng)的虛擬元件,形成自己的實(shí)驗(yàn)電路,從系統(tǒng)提供的虛擬儀器中找出自己需要的儀器設(shè)備,從系統(tǒng)提供的信號(hào)源中隨意取得所需使用的各種信號(hào)源,從而實(shí)現(xiàn)對所需電路進(jìn)行設(shè)計(jì)、測試和分析,有效地解決學(xué)習(xí)過程中的各種疑難問題,提高自己的實(shí)際設(shè)計(jì)能力。
組合邏輯電路是由與門、或門和非門等門電路組合形成的邏輯電路,對于一些常用的組合邏輯電路,許多IC芯片制造商已經(jīng)提供了相應(yīng)的集成電路芯片,即使是一些復(fù)雜的組合邏輯關(guān)系也可以通過常用IC芯片和一些輔助門電路組合而成。
所謂組合邏輯電路的分析,就是根據(jù)已知邏輯電路圖,找出組合邏輯電路的輸入與輸出關(guān)系,確定在什么樣的輸入取值下對應(yīng)的輸出為1。當(dāng)然,輸入通常是多個(gè)邏輯量,而輸出可以是1個(gè)或多個(gè)。
在對組合邏輯電路進(jìn)行分析時(shí),Proteus VSM提供了很好的仿真手段,如圖1(a)所示的組合電路,如果需要分析其輸入與輸出的邏輯關(guān)系,可以設(shè)計(jì)一些輔助電路如圖1(b),通過三個(gè)開關(guān)的按下與彈起為電路的三個(gè)輸入端A、B、C提供不同的輸入組合,觀察不同輸入所對應(yīng)的兩個(gè)輸出端的邏輯電平,可列出真值表如表1所示。圖中所示的情況是:輸入A、B、C的值是1、0、1,而輸出 F2 的值是1,F(xiàn)1 的值是0。
圖1 組合電路及其分析方法
表1 圖1電路真值表
根據(jù)真值表可以寫出邏輯表達(dá)式:
從公式1可見,F(xiàn)1是在奇數(shù)個(gè)輸入為1時(shí)才輸出為1,而F2是兩個(gè)或三個(gè)輸入為1時(shí)才輸出1,這正是一位全加器的邏輯表達(dá)式。其中,F(xiàn)1為本位和,F(xiàn)2為向高位的進(jìn)位。對以上邏輯表達(dá)式進(jìn)行化簡可得:
這樣就與電路完全一致了。
組合邏輯電路的設(shè)計(jì)是組合邏輯電路分析的逆過程,即根據(jù)輸入與輸出的邏輯關(guān)系要求,設(shè)計(jì)出滿足符合要求的組合邏輯電路。
常用的組合邏輯電路包括譯碼器、編碼器、多路選擇器、比較器、加法器等,這些電路通常都有多種型號(hào)的IC芯片可供選擇。在實(shí)際應(yīng)用中,組合邏輯電路的設(shè)計(jì)通常都采用常用的IC芯片來構(gòu)建,必要時(shí)再配合一些輔助門電路,這樣的設(shè)計(jì)簡單可靠,設(shè)計(jì)方法可按常規(guī)方式進(jìn)行,但對于設(shè)計(jì)出的組合邏輯電路是否正確,就必須通過實(shí)驗(yàn)測試才能進(jìn)一步確認(rèn),有了Proteus VSM,只需按設(shè)計(jì)電路圖將所設(shè)計(jì)的電路在Proteus的ISIS(Intelligent Schematic Input System,智能原理圖輸入系統(tǒng))中繪制出來,再配合一些輔助電路進(jìn)行仿真,就可實(shí)現(xiàn)正確性的驗(yàn)證了。
比如,設(shè)計(jì)一個(gè)8位二進(jìn)制加法器,可以用兩片74LS283來實(shí)現(xiàn),如圖2(a)所示,具體電路的仿真結(jié)果如圖2(b)所示,在圖2(b)中兩個(gè)8位二進(jìn)數(shù)分別為:A=00001111B=0FH,B=10011111B=9FH,相加的結(jié)果通過兩個(gè)數(shù)碼管顯示為AEH。用鼠標(biāo)點(diǎn)擊構(gòu)成數(shù)據(jù)輸入端的每一個(gè)LAGICSTATE圖標(biāo),就可以像改變圖1(b)的輸入開關(guān)狀態(tài)一樣,使每一位的值在0和1之間切換,從而實(shí)現(xiàn)對不同的兩組8位二進(jìn)制數(shù)據(jù)進(jìn)行相加運(yùn)算,并將相應(yīng)結(jié)果通過LED數(shù)碼管顯示出來。其實(shí),即使不用LED數(shù)碼管,通過仿真電平的顏色顯示也可判斷其值(紅顏色為1,藍(lán)顏色為0)。比如,從圖2(b)可見,其輸出引腳8位的值,其從高位到低位的二進(jìn)制數(shù)為1010 1110,所以顯示的十六進(jìn)制值為AEH。從U2的C4腳輸出電平可見(用LOGIC PROB)顯示,沒有向高位進(jìn)位。
圖2 8位加法器的設(shè)計(jì)與仿真
時(shí)序邏輯電路是由觸發(fā)器和門電路組成的具有記憶功能的邏輯電路,對時(shí)序邏輯電路的分析與設(shè)計(jì)采用Proteus VSM作為輔助手段,更能起到事半功倍的效果。
下面以設(shè)計(jì)一個(gè)六十進(jìn)制計(jì)數(shù)器為例,簡要介紹其分析與設(shè)計(jì)過程。首先已知常用IC中有BCD計(jì)數(shù)器功能的IC芯片,如74HC160是同步預(yù)置數(shù),異步清0的十進(jìn)制加法計(jì)數(shù)器,對于六十進(jìn)制計(jì)數(shù),只需用兩片74HC160再配以少量輔助門電路即可完成。但在設(shè)計(jì)過程中,方式方法可以有多種,比如兩個(gè)BCD計(jì)數(shù)之間的計(jì)數(shù)過程是同步還是異步、如何處理進(jìn)位等。
圖3 六十進(jìn)制計(jì)數(shù)器設(shè)計(jì)之一
以圖3(a)為例,其計(jì)數(shù)過程就是異步方式,其十位的計(jì)數(shù)脈沖單純由個(gè)位的進(jìn)位提供。這種方式在仿真時(shí),有可能出現(xiàn)錯(cuò)誤。其原因有二:一是由于個(gè)位的進(jìn)位RCO經(jīng)反相后給十位作為計(jì)數(shù)脈沖。剛開始工作時(shí),由于個(gè)位的RCO為0,所以經(jīng)反相后為1,這就使得十位得到一個(gè)不應(yīng)有的進(jìn)位而產(chǎn)生了一個(gè)誤計(jì)數(shù),其仿真如圖3(b)所示,還沒有按過按鈕時(shí),其計(jì)數(shù)顯示結(jié)果居然是10,顯然這就是由于十位的誤計(jì)數(shù)造成的;二是由于個(gè)位的進(jìn)位RCO=D3&D0&T,當(dāng)計(jì)數(shù)值由0111(1000時(shí),因電路中的競爭冒險(xiǎn)可能存在短暫的D3=D0=1的時(shí)刻,也可能導(dǎo)致十位計(jì)數(shù)器誤計(jì)數(shù)。因此需要對電路進(jìn)行改進(jìn),將十位的計(jì)數(shù)脈沖改成同步方式,即計(jì)數(shù)脈沖同時(shí)供給個(gè)位和十位,而十位的計(jì)數(shù)使能信號(hào)由個(gè)位的RCO輸出提供,十位的回零裝入信號(hào)LOAD設(shè)置為個(gè)位的RCO和十位的Q2、Q0三者的與非提供。改進(jìn)后的電路如圖4所示,在剛開始仿真時(shí),計(jì)數(shù)結(jié)果顯示為00,每按一次按鈕,計(jì)數(shù)值加1,計(jì)到59時(shí),再按一下按鈕,則計(jì)數(shù)顯示回零,這樣就達(dá)到了預(yù)期的設(shè)計(jì)要求。
圖4 六十進(jìn)制計(jì)數(shù)器設(shè)計(jì)之二
課程設(shè)計(jì)是數(shù)字邏輯課程的一次綜合應(yīng)用實(shí)訓(xùn),是對本課程的各個(gè)知識(shí)點(diǎn)的溶匯貫通,在以往的課程設(shè)計(jì)中,由于實(shí)驗(yàn)箱的數(shù)量有限,元器件也不可能滿足所有課程設(shè)計(jì)者的要求,所以學(xué)生的課程設(shè)計(jì)大多停留在理論設(shè)計(jì)上,無法進(jìn)行真實(shí)的正確性驗(yàn)證。通過引入Proteus VSM后,可以滿足所有愿意參與在該虛擬平臺(tái)上進(jìn)行課程設(shè)計(jì)的學(xué)生要求。在課程設(shè)計(jì)的驗(yàn)收過程中,十多個(gè)題目都有人參與,設(shè)計(jì)結(jié)果多種多樣,但都可以保證在虛擬系統(tǒng)環(huán)境下的運(yùn)行正確,學(xué)生的興趣很大,設(shè)計(jì)完全可達(dá)到預(yù)定的要求。如圖5所示為某個(gè)學(xué)生設(shè)計(jì)的數(shù)字時(shí)鐘的仿真運(yùn)行效果。
圖5 數(shù)字時(shí)鐘設(shè)計(jì)方案之一
數(shù)字邏輯是一門實(shí)踐性很強(qiáng)的課程,以往由于實(shí)驗(yàn)器材和實(shí)驗(yàn)設(shè)備的不足,使學(xué)生的動(dòng)手能力不能得到充分的發(fā)揮。采用了Proteus VSM后,可以很大程度彌補(bǔ)這一缺失,使教學(xué)過程與實(shí)踐環(huán)節(jié)有效結(jié)合,既提高了學(xué)生的學(xué)習(xí)興趣,同時(shí)也鍛煉了學(xué)生的實(shí)踐操作能力。這得益于Proteus軟件擁有豐富的元器件庫、強(qiáng)大的原理圖繪制功能、逼真的仿真效果和品種齊全而且精確可靠的各種虛擬儀器儀表,因此大大地提高了教學(xué)效果,緩解的實(shí)驗(yàn)室的壓力。特別是對于改善電類課程的遠(yuǎn)程教育和多媒體教育效果,更是有著不可估量的好處。
實(shí)際上,Proteus VSM不僅可以實(shí)現(xiàn)諸如數(shù)字邏輯這樣的硬件電路的設(shè)計(jì)與仿真,而且可以軟、硬件結(jié)合,因?yàn)镻roteus軟件還提供了對多種系列的單片機(jī)系統(tǒng)的支持,并且還支持第三方軟件的編譯和調(diào)試環(huán)境,如KeilμVision2~4。因此,在數(shù)字邏輯課程中就掌握了Proteus軟件的應(yīng)用,也就為諸如計(jì)算機(jī)組成原理、單片機(jī)技術(shù)、接口技術(shù)、嵌入式系統(tǒng)等后續(xù)課程打下了良好的基礎(chǔ)。