關於數字邏輯實驗技術改革的研究論文

才智咖 人氣:1.66W

近年來,教育部電腦科學與技術專業教學指導委員會制定的《電腦科學與技術本科專業規範》對於計算機專業的課程設定和教學要求都發生了變化,對於硬體類基礎課程的要求與其他電子、電氣類專業有所不同。考慮到電腦科學與技術專業需要掌握的是計算機邏輯結構的設計方法而不是其電子實現,我國許多高校的計算機專業陸續將基礎課程“數位電子技術”改為“數字邏輯”。與“數位電子技術”相比,“數字邏輯”課程的教學注重“邏輯”而不是“電子”,強調積體電路的外部特性而非其內部電路。

關於數字邏輯實驗技術改革的研究論文

1 傳統實驗技術的弊端

多年來,“數位電子技術”的實驗教學與其他電子技術類課程一樣使用專門的實驗箱。實驗通常使用74系列的TTL或CMOS中小規模積體電路。在實驗箱上用插線把積體電路和其他元件連線成題目要求的實驗電路,在實驗過程中一般需要使用示波器、萬用表等儀器進行觀察。做實驗的時候,學生能夠實際看到並接觸積體電路晶片和其他元器件,實際進行電路的連線,對電子電路、積體電路晶片、電壓、訊號等的印象比較深刻。早期的數位電子實驗是在麵包板上插線,極易發生接觸不良、斷線等問題,往往需要花費大量時間排除接觸問題和錯誤的連線。後來發展為將積體電路晶片插在固定的積體電路插座上並使用專門的接插頭、插孔等,改善了接觸,實驗成功率有所提高。此外,實驗過程中經常會因為學生的操作錯誤而導致積體電路等元件的損壞,實驗箱和其他儀器裝置也會出現故障或損壞,反覆的插拔器件和導線也容易造成引線折斷,每年都發生器件材料消耗和裝置維修的費用,實驗裝置完好率比較低。

用實驗箱做實驗,受連線線路等的限制,基本上只能按實驗指導書的電路做指定的驗證性實驗,難以開展設計性實驗。做驗證性實驗,不能發揮學生的主觀能動性,實驗教學與理論教學之間銜接得不好,沒有真正起到“通過實驗加深對理論知識的理解”和“理論與實際相結合”的作用,實驗效果很不理想,既影響學生動手能力的提高,也影響學生對相關知識的掌握。認識到這個問題,一些學校也對實驗內容進行了改革,增加了若干設計性實驗課題。但是,由於在實驗中需要花費較多時間進行線路連線和排查,受時間限制,實驗電路只能是用很少幾片積體電路的簡單邏輯,難以完成比較複雜的邏輯設計實驗。

2 改革的必要性

作為先修課,“數字邏輯”應該為後繼的“計算機組成原理”準備所需要的邏輯電路設計知識、分析技術和設計技術。現代計算機邏輯結構的設計方法是基於大規模、超大規模積體電路的,而非中小規模積體電路的。“數位電子技術”課程的實驗教學是基於中小規模積體電路的,要求學生熟悉常用SSI、MSI的型號、外部引腳和連線方法。這些知識對於電子、電氣類專業的教學是必需的,但是對於計算機專業和“計算機組成原理”課程的學習卻不是必需的。因為計算機專業的任務是設計計算機的體系結構和邏輯結構,應該掌握基於LSI、VLSI的計算機邏輯結構(主要是CPU)的設計技術。但是“數位電子技術”的教學內容和實驗課題都沒有涉及基於LSI、VLSI的設計技術。如果“數字邏輯”沿用“數位電子技術”的實驗技術,雖然對“數字邏輯”課程本身沒有多少影響,但是卻使“計算機組成原理”課程的實驗教學改革難以進行。

“計算機組成原理”課程的實驗教學涉及運算器、控制器等計算機主要部件的邏輯設計問題。由於運算器、控制器等部件的邏輯相當複雜,如果想用74系列的中小規模積體電路來設計,需要的晶片數量太多,實驗電路規模比較大,線路連線太複雜。因此,在課程內的實驗教學中不可能用74系列的中小規模積體電路設計和實現運算器、控制器這樣的邏輯。所以,除了儲存器擴充套件實驗外,基於中小規模積體電路的“計算機組成原理”實驗箱一般只能做驗證性實驗,這就是為什麼“計算機組成原理”課程的實驗教學長期侷限在做驗證性實驗的主要原因。探索了在“計算機組成原理實驗”課程中增加幾個用VHDL設計邏輯電路的實驗後,蔣本珊指出,受學時限制,在“計算機組成原理”課程內學習硬體描述語言是不現實的,應該在前導的“數字邏輯”課程中增加硬體描述語言的內容,或者增設介紹EDA工具和硬體描述語言的選修課程。

20世紀90年代以來,隨著電子技術和VLSI技術的進步,大規模積體電路PLD晶片逐漸取代了數字系統中傳統的中小規模積體電路。同時,用硬體描述語言設計數字系統的EDA 技術發展成熟並廣泛應用。數字系統和計算機系統的設計方法從傳統的邏輯電路設計方法向“硬體設計軟體化”方向轉變。將EDA技術用於實驗教學就是“硬體實驗軟體化”,屬於“虛擬實驗”範疇。“數字邏輯”課程的實驗教學應該適應技術的進步,採用先進的基於VLSI的EDA技術。我國高校的計算機專業硬體類課程的教學和實驗技術落後於技術的進步,與國外有明顯差距。進入21世紀以來,我國一些高校開始探索“數字邏輯”和“數位電子技術”課程的實驗教學改革。

青島理工大學計算機學院於2008年修改了計算機類各專業的培養方案,將“數位電子技術”改為“數字邏輯”,2010年開始在“數字邏輯”課程實驗教學中採用新的實驗技術。經過9輪教學的改革探索和不斷改進,現在不僅完善了基於VLSI的“數字邏輯”課程實驗技術,而且已經形成了計算機專業硬體基礎課程的'實驗教學體系。

3 基於VLSI的“數字邏輯”實驗技術基於VLSI的“數字邏輯”課程實驗技術主要包括8個方面。

3.1 增加硬體描述語言VHDL的學習

EDA技術並非都是基於VLSI的,也可以是基於中小規模積體電路和分立元件的。基於VLSI的EDA技術是用硬體描述語言而不是傳統的邏輯電路設計方法進行邏輯設計,用軟體模擬來檢驗邏輯設計是否正確,最後下載到FPGA 等大規模PLD晶片成為數字系統。因此,學生在實驗前必須先學習硬體描述語言和用硬體描述語言做邏輯設計的方法。在“數字邏輯”課程中學習硬體描述語言為實驗技術改革創造了有利的前提。目前最常用的硬體描述語言有VHDL和Verilog HDL,在“數字邏輯”課程中採用VHDL進行教學比較好。

3.2 硬體實驗軟體化

放棄在實驗箱上插接積體電路晶片和連線線的方式,“數字邏輯”課程的全部實驗不需任何實驗箱,都通過VHDL文字編輯、編譯和軟體模擬在普通PC機上實現。實驗平臺用Altera公司的Quartus II或者Xilinx公司的ISE。我們在教學中用的是Quartus II。如此改革的另一個好處是使計算機專業硬體基礎課程的實驗可以在軟體實驗室進行,從而節省大量的裝置投資及材料消耗費用。這種新的實驗技術既能夠實現驗證性實驗,也能夠實現設計性實驗,能夠看到使用傳統實驗方法難以看到的完整的輸入輸出波形圖和競爭冒險現象,具有實驗成功率高、教學效果好、一人一組、節省裝置投資與維護費用、元件材料消耗低等優點。

3.3 “數字邏輯”設計性實驗的實驗步驟

邏輯設計→VHDL程式設計→啟動Quartus II系統建立設計工程→輸入程式文字→編譯和消除語法錯誤→設計模擬輸入波形→模擬→分析模擬波形消除邏輯錯誤→記錄結果寫實驗報告。

做設計性實驗,要求學生在進入實驗室之前先進行邏輯設計,然後用VHDL程式設計和模擬。一般提前1星期佈置實驗課題。

用VHDL設計組合邏輯電路和時序邏輯電路的方法與傳統的用邏輯代數和邏輯圖設計的方法有很大不同。組合邏輯設計是首先根據問題抽象出真值表。如果採用行為描述,在VHDL設計實體的結構體中描述真值表就可以了;如果採用資料流描述,邏輯設計還需要做出邏輯函式,然後在VHDL設計實體的結構體中描述邏輯函式;如果採用結構描述,則邏輯設計需要做出邏輯圖,然後在VHDL設計實體的結構體中描述邏輯圖中各個低層元件的連線。

時序邏輯設計是首先根據問題抽象出狀態轉換圖和狀態轉換圖表。如果採用行為描述,可在VHDL設計實體的結構體中描述狀態轉換圖。複雜的時序邏輯系統需要採用結構描述,在VHDL設計實體的結構體中描述邏輯圖中各個低層元件的連線。

實驗指導教師要挨個檢查學生的預習情況(真值表、邏輯函式、邏輯圖、狀態轉換圖等),只有完成了邏輯設計的才算“到”,實驗後才收實驗報告、給予成績。如果學生的邏輯設計有錯誤,當場指出並要求改正。

3.4 學生一人一組

用實驗箱做實驗,一般是2~5人一組,其主要原因是儀器裝置的套數不夠,其次是在實驗過程中需要花很多時間連線線路、排查故障,還要看儀表、記錄資料,有幾人配合比較好。基於VLSI的EDA技術做實驗,是在普通的PC機上用專門的軟體平臺做實驗,不受儀器裝置的限制。現在各高校計算機學院的軟體機房中配置的機器數量往往足夠至少3個班的學生同時使用,完全能夠做到一人一組。一人一組有利於調動每個學生的學習積極性。

3.5 精心設計和選擇實驗課題

實驗課題的設計是開展設計性實驗教學必須妥善處理的關鍵問題之一,需要考慮各方面的問題。實驗課題應該有合適的難度,使得大部分學生在現有基礎上通過自己的分析和努力能夠做出設計(不一定是完全正確的設計)。實驗課題應該在本課程教學的重要知識點範圍內,通過實驗可以使學生更好地掌握相關知識點,實現理論教學與實驗教學相輔相成。實驗課題應該在書本或網路等其他資訊源上沒有現成的解答,學生必須自己進行分析設計才能得到解答。實驗課題的設計還應該考慮到與後繼課的實驗課題的銜接。實驗課題是開放的,可以做出不同的設計。

3.6 以設計性實驗為主

EDA技術既可以做設計性實驗,也可以做驗證性實驗。“數字邏輯”課程的實驗應該以設計性實驗為主。我們在進一步改革後,實際達到了全部實驗都是設計性實驗。

設計性實驗比驗證性實驗的難度有明顯提高,學生也要花更多的時間做預習、設計和寫實驗報告。在學習“數字邏輯”之前的各課程(物理、電路、類比電子)實驗,多是驗證性實驗,不少學生已經養成不做實驗預習的習慣。因此,採取了要求學生提前做實驗預習,寫出實驗設計和程式才允許進實驗室做實驗的措施。

3.7 實驗教學與理論教學同步

改革後,“數字邏輯”的實驗教學與理論教學同步進行,而不是像過去做驗證性實驗那樣可以集中安排在課程的最後階段或課程結束之後,使學生能夠通過設計性實驗加深對理論知識的理解,達到實驗教學與理論教學相輔相成的效果。

3.8 手寫實驗報告

做“數字邏輯”設計性實驗,要求學生手寫實驗報告,禁止列印。這樣做,一方面使部分偷懶的學生不能簡單地拷貝別人的報告,即使抄襲也需要花時間抄寫、畫圖;另一方面,“數字邏輯”課程增加的VHDL的教學內容,在課程考試的範圍內,手寫實驗報告有利於加深對VHDL語句和程式的印象。

作為一門工程性課程,不僅要學習如何做設計,也要學習如何寫設計報告。訓練學生寫好實驗報告,實際上也是在訓練學生如何寫工程設計報告,所以,對報告的格式和內容都要有明確的嚴格要求。實驗報告的批改最好能在下一次實驗之前完成,以便將發現的問題及時反饋到教學中,使學生能夠及時糾正。第一次實驗的報告如果發現有嚴重問題一律退回重新寫。

4 實驗課題的設計

在設計實驗課題時不僅要考慮“數字邏輯”教學的需要,也要考慮與後繼課程的銜接,對課題的難易程度、系統的複雜性、工作量的大小、知識點在課程中的重要程度等進行綜合評價,篩選出合適的課題。

作為計算機組成原理的先修課,“數字邏輯”課程的實驗教學應該訓練學生掌握各種典型組合邏輯電路和時序邏輯電路(譯碼器、加法器、計數器、暫存器、狀態機等)的設計和實現方法,同時,也有針對性地設計一些“數字邏輯”實驗課題以支援“計算機組成原理”課程的實驗課題,例如:“多功能加法器設計”實驗就是為“計算機組成原理”的“ALU 設計”實驗做準備的;“暫存器設計”實驗就是為“計算機組成原理”的“通用暫存器組設計”實驗做準備的;“用N 進位制計數器晶片構成M 進位制計數器”的設計實驗,是為“計算機組成原理”課程設計複雜的計算機部件(運算器、控制器等)準備“層次結構設計”方法的。

我們設計的“數字邏輯”實驗課題包括:

(1)熟悉Quartus系統,用VHDL結構描述方法設計一個半加器;

(2)用VHDL設計一個程式碼轉換邏輯電路,把7位的ASCII碼轉換成7段字元顯示程式碼;

(3)用VHDL設計一個多功能的運算器,在控制訊號M、S2、S1、S0的控制下能完成8種算術運算和8種邏輯運算;

(4)用VHDL設計一個自動售飲料機的控制邏

(5)用VHDL結構描述方法設計M 進位制計數器(利用N 進位制計數器晶片);

(6)用VHDL結構描述方法設計一個餘3碼計數器(利用16進位制計數器晶片);

(7)用VHDL設計一個三態輸出的暫存器;

(8)用VHDL設計一個時序脈衝波形產生電路(順序脈衝發生器);

(9)用VHDL設計一個可控計數器;

(10)用VHDL設計一個數字鍾電路。

教師可根據實際情況選做其中6~8個實驗。一般可做2~3個組合邏輯設計實驗,3~5個時序邏輯設計實驗。

實驗課題(1)的目的是使學生掌握層次結構設計方法。實驗課題(2)的目的是強化譯碼器、7段字元顯示程式碼和ASCII碼等知識點。實驗課題(3)的目的是強化加法器、全加器、算術運算、進位和邏輯運算等知識點,並且考慮到與後繼課程“計算機組成原理”的ALU等知識點教學的銜接。實驗課題(4)的目的是強化狀態機和Mealy型時序邏輯電路設計等知識點。實驗課題(5)的目的是強化計數器、用整合計數器實現任意進位制計數器和Moore型時序邏輯電路設計等知識點。每輪教學可選擇不同的計數器晶片(74161與74163),所實現的M 進位制計數器的模可在19~21之間改變。實驗課題(6)的目的是強化餘3碼、用整合計數器實現任意進位制計數器等知識點。實驗課題(7)的目的是強化三態門和暫存器等知識點。實驗課題(8)的目的是強化順序脈衝發生器和時序脈衝波形產生電路等知識點,同時也為後繼課程“計算機組成原理”的控制器和三級時序做準備。實驗課題(9)的目的是強化可控計數器等知識點。實驗課題(10)的目的是強化複雜系統設計和模擬設計的能力,像數字鐘這樣的複雜實驗在過去用中小規模積體電路在實驗箱上插接連線的方式是不可想象的,但是現在用Quartus II系統上設計和模擬的方式卻是可以完成的。

5 結束語

基於VLSI的“數字邏輯”實驗技術放棄了傳統的實驗箱,改為用計算機軟體平臺;放棄了在實驗箱上用插線把積體電路和其他元件連線成實驗電路,用示波器、萬用表等儀器進行觀察的傳統方法,改為根據邏輯設計(真值表、邏輯函式或邏輯圖)用硬體設計語言程式設計,用文字形式輸入計算機,編譯後在專門的軟體平臺上進行邏輯模擬,根據模擬結果分析邏輯設計的正確性。學生不僅要做邏輯設計,還要做模擬輸入波形設計。這種新的實驗技術既能夠實現驗證性實驗,也能夠實現設計性實驗,能夠看到在傳統實驗方法難以看到的完整的輸入輸出波形圖和競爭冒險現象。新的實驗技術比在麵包板上插接、連線、除錯要方便容易,避免了接觸不良造成的故障和連線錯誤損壞器件等問題,實驗成功率高、消耗低,實現了硬體設計和實驗的軟體化以及從驗證性實驗到設計性實驗的轉變。實驗教學的改革在一定程度上調動了學生的主觀能動性,促進了學生的學習積極性。