時海亮,田保慧
(1.鄭州輕工業(yè)學院 河南 鄭州 450002;2.河南交通職業(yè)技術學院 河南 鄭州 450005)
《計算機組成原理》是計算機科學與技術專業(yè)的主干課程,自2008年起列為碩士研究生入學專業(yè)課綜合考試全國統(tǒng)一命題重點課程[1],全國各高校對該課程都十分重視。計算機組成原理涉及的知識面寬、跨度大、概念抽象,從而對相應的實踐教學提出了很高的要求。
傳統(tǒng)的計算機組成原理實驗大多是在組成原理實驗箱上進行,如COP2000實驗箱、Dais-CMH+實驗箱等。這類實驗需要使用眾多電子芯片,器件之間的連線較多,容易出錯,對于初學者來說查錯也比較困難[2],費時費力,影響實驗目的的實現(xiàn),影響教學效果。另外,在實驗之前,需要先學習實驗箱的相關配置,無異于開設一門新的課程,比較耗時,增加學生的工作量。更重要的是,實驗在很大程度上受實驗箱的限制,只能做固定的幾個實驗,修改和擴展都有相當難度,不利于調動學生的自主創(chuàng)新意識。另外,還有現(xiàn)實的問題,購置實驗箱的成本比較高,一些大中專院校無力承擔這些項目,同時也受場地、空間的限制。
近年來迅速發(fā)展的電子設計自動化(EDA)技術,將計算機技術應用于電子設計過程,被廣泛應用于電子電路設計、仿真、集成電路版的設計以及可編程器件的編程等各項工作中。各高校也逐漸將EDA技術引入計算機組成原理實驗教學中[3-4]。學生先掌握VHDL硬件描述語言,然后利用FPGA廠商提供的軟件設計和綜合工具進行計算機部件的設計、仿真和調試,完成各組成部件的設計任務。將EDA仿真引入到組成原理實驗中,可豐富實驗內容,提高實驗效率,也可使學生接觸到現(xiàn)代電子設計的新方法、新手段。但也存在一定的問題,實驗中要使用的EDA環(huán)境和VHDL系統(tǒng)龐大、內容繁多,學習本身就相當于開設一門新課程。為了完成計算機組成原理實驗,要學習一門新的課程,這無疑代價挺大,憑空增加學生的學習負擔。當然,也可有這樣一種折中方案,對學生增加一門新的選修課來鼓勵學生先行學習這些基礎知識。但在學習EDA和VHDL的過程中又會產生如何應用這些知識的問題。當然還可能牽扯學期的安排、與組成原理配合講述等問題。
所以,在此,筆者提倡使用一種新的方式,既類似于EDA的積木式設計,又無關VHDL,利用Simulink模擬仿真的形式進行實驗,使學生著重于對計算機的組成原理的理解。
Simulink是Matlab的重要分支產品,是一個結合了框圖界面和交互仿真能力的系統(tǒng)級設計和仿真工具。它以Matlab的核心數(shù)學、圖形和語言為基礎,可以讓用戶毫不費力的完成算法開發(fā)、仿真及模型驗證的全過程,而不需傳遞數(shù)據(jù)、重寫代碼或改變軟件環(huán)境[5]。
下面以計算機組成原理課程中的加法器為例來說明利用Simulink進行仿真實驗的過程。加法器是算術邏輯運算部件的基本單元,因為在兩個二進制數(shù)據(jù)進行算術運算時,無論進行的是加、減、乘、除中的何種運算,最后都將化作若干步相加運算進行。
1)半加器
圖1為1位二進制加法單元示意圖,它有3個輸入量:操作數(shù)Ai、Bi以及低位傳來的進位信號Ci-1,有2個輸出量:本位和Si和向高位傳送的進位信號Ci。加法器有半加器和全加器之分。
圖1 1位加法單元示意圖Fig.1 Diagram of 1 bit addition unit
半加器是不考慮進位的加法單元,其本質是進行異或運算。利用Simulink仿真半加器的過程如下:
①打開Matlab,在其命令行方式下輸入“simulink”啟動Simulink。在菜單欄中選擇“File/New/Model”新建一仿真模型。
②在所啟動的 “Simulink Library Browser”窗口中選擇“Pulse Generator”模塊作為輸入信號A和B,參數(shù)設置如表所示,選擇“Logical Operator”模塊作為半加器,將其“Operator”改為“XOR”,選擇“Scope”模塊查看輸出信號,將其“Number of input ports”屬性設置為“3”。將各模塊用信號線連接起來,如圖2所示。
圖2 半加器Fig.2 1 bit half adder
③保存并進行仿真,雙擊“Scope”模塊即可看到結果,如圖3所示。
2)全加器
表1 “Pulse Generator”模塊參數(shù)設置Tab.1 Arguments of“Pulse Generator” model
圖3 半加器實驗結果Fig.3 Result of 1 bit half adder
全加器[6]是考慮進位的加法器。1位全加器的模型如圖4所示(圖中用D表示向高位傳遞的進位,下同),為節(jié)省篇幅,略去模型建立過程,其實驗結果如圖5所示。
圖4 1位全加器Fig.4 1 bit full adder
3)并行加法器
并行加法器[6]由若干個全加器組成。圖6所示為由4個全加器組成的4位并行加法器,該加法器采用逐級傳遞進位的結構(“ADD”模塊為由圖4所示的1位全加器創(chuàng)建并封裝而成的子系統(tǒng)),每個全加器的進位輸出是高一位全加器的進位輸入。為方便檢驗實驗結果,兩個4位加數(shù)分別設為“0101”和“0111”,低位進位為“1”,故結果應為“01101”。 從圖中右上角的“Display”模塊可以看到,結果正為“01101”。
圖5 1位全加器實驗結果Fig.5 Result of 1 bit full adder
圖6 4位并行加法器Fig.6 4 bit parallel adder
4)串行進位鏈
串行進位鏈[6]是指并行加法器中的進位信號采用串行傳遞,圖7所示為一個典型的串行進位的4位并行加法器。
5)并行進位鏈
并行進位鏈[6]是指并行加法器中的進位信號是同時產生的,又稱先行進位。圖8所示為一個典型的并行進位的4位并行加法器。
文中首先分析了傳統(tǒng)計算機組成原理實驗的不足,提出利用Simulink仿真來模擬進行實驗的思路,并以加法器為例說明利用Simulink進行仿真實驗的過程。通過這種實驗思路,可使學生僅利用少量的新知識便能進行組成原理的相關實驗,避免產生類似于組成原理實驗箱或Quartus II等EDA軟件的缺點,讓學生把更多的精力放在對組成原理實驗的理解和學習上。同時,近幾年的教學經歷也充分說明該實驗思路是行之有效的。
圖7 串行進位鏈Fig.7 Ripple carry chain
圖8 并行進位鏈Fig.8 Parallel carry chain
[1]戚梅,張鵬.多媒體技術在《計算機組成原理》實驗教學中的應用[J].現(xiàn)代計算機,2007(Z1):96-98.QI Mei,ZHANG Peng.Application of multimedia technology in the experiment teaching of computer principles[J].Modern Computer,2007(Z1):96-98.
[2]樸希南.基于EDA技術的計算機組成原理虛擬實驗[J].電腦知識與技術,2011,7(7):1707-1709.PIAO Xi-nan.Principles of computer organization virtual experiment based on EDA technology [J].Computer Knowledge and Technology, 2011,7(7):1707-1709.
[3]連晉平.EDA在組成原理課程教學中的應用[J].科技創(chuàng)新導報,2011(15):204.LIAN Jin-ping.Application of EDA in computer principle teaching[J].Science and Technology Innovation Herald,2011(15):204
[4]董再秀,溫衛(wèi)敏,趙亮.計算機組成原理課程教學改革與實踐[J].滁州學院學報,2011,13(2):94-96.DONG Zai-xiu,WEN Wei-min,ZHAO Liang.The reforms in teaching of the course computer composition principle[J].Journal of Chuzhou University, 2011,13(2):94-96.
[5]鐘麟,王峰.Matlab仿真技術與應用教程[M].北京:國防工業(yè)出版社,2004.
[6]唐朔飛.計算機組成原理[M].北京:高等教育出版社,2008.