范 琳,翟社平,王曉婕
(西安郵電大學 計算機學院,陜西 西安 710121)
計算機組成原理是計算機科學與技術(shù)、軟件工程和網(wǎng)絡(luò)工程專業(yè)本科培養(yǎng)過程中的核心課程,是技術(shù)性、工程性和實踐性很強的一門課。以組成原理為主線,硬件課程體系還包括微機原理與接口技術(shù)、匯編語言、硬件課程設(shè)計、計算機系統(tǒng)結(jié)構(gòu)等課程,目的是讓學生能深入理解計算機系統(tǒng)各功能部件的組成,工作原理及設(shè)計方法[1-4]。在后續(xù)工作或?qū)W習中,無論是進行軟件開發(fā)、硬件設(shè)計,還是進行更上層的算法研究,打下堅實的基礎(chǔ)都能讓學生更好地開展后續(xù)工作。
目前,多數(shù)高校在計算機組成原理的實踐教學中采用實驗箱,該方式受到硬件資源的限制,存在較多的局限性。隨著計算機軟件技術(shù)的發(fā)展,利用EDA設(shè)計工具[5],能方便地實現(xiàn)硬件仿真,降低做實驗的門檻,更利于學生學習興趣的培養(yǎng)。
Proteus軟件是英國Lab Center Electronics公司出版的EDA工具軟件,能仿真多種型號的CPU及外圍器件,是目前較好的仿真單片機及外圍器件的工具,受到單片機愛好者、從事單片機教學的教師、致力于單片機開發(fā)應用的科技工作者的青睞[6-9]。
目前在本科教學中,大部分高校采用實驗箱來進行硬件類課程實驗教學,例如西安郵電大學計算機組成原理課程采用唐都TD-CMA實驗箱,實驗箱內(nèi)有運算器、寄存器、存儲器、輸入設(shè)備、輸出設(shè)備等固件,學生通過連線、錄入指令和微指令等方式來完成實驗,但上述實驗方法存在若干問題。
(1)一學期只有5次實驗,學生很難及時通過實驗來驗證所學的理論,課程知識面廣,難度大,概念抽象,學生在學習過程中缺乏對知識的驗證,無法建立計算機單機系統(tǒng)的整體認識,導致學習興趣下降。
(2)實驗箱較大,無法讓學生帶回宿舍繼續(xù)研究,因此學生離開了實驗室就沒辦法再做實驗。在每次實驗的2個小時中,部分同學充分理解實驗內(nèi)容并完成了實驗,但還有一部分同學并沒有完成實驗,回到宿舍也沒法繼續(xù)進行。
(3)實驗箱上做實驗,存在很大的“不確定性”,即使學生的連線正確,但由于芯片壞了、導線壞了或者連接過程中的接觸不良等,也看不到正確的運行結(jié)果。學生需要花大量的時間反復檢查連線,但也不一定能完成實驗。
(4)1名教師帶3個班的實驗,在實驗的2小時內(nèi),30%好學的學生主動問問題,老師的時間已經(jīng)全部占滿,無法關(guān)注到每個學生,想要“逼”所有學生都認真自覺地學習其實是做不到的。
(5)學生在實驗過程中,按照指導書的步驟在實驗箱完成簡單的連線與開關(guān)撥動,限制了學生主觀能動性的發(fā)揮,照貓畫虎,不求甚解,沒有自己的思考,實驗完成后收獲很有限。
針對以上的問題,可以將EDA軟件Proteus應用于教學實驗中,通過增加針對小型知識點的細粒度實驗,學生能體會到計算機各個組成部件的工作原理與設(shè)計方法,能從純理論過渡到仿真系統(tǒng),從而體會到計算機設(shè)計的魅力。
以往教學中采用下列方式來加深理解:學生在課堂上完成習題,課后完成作業(yè),通過問答題、計算題、畫設(shè)計圖等方式來鞏固學習內(nèi)容。但是很多同學對抽象的難度較大的理論不感興趣,作業(yè)存在抄襲現(xiàn)象。
為了提高學生的主觀能動性,將Proteus應用于組成原理的教學過程中,如果本次課的內(nèi)容涉及仿真實驗,則提前通知學生攜帶筆記本電腦,2~3名同學共用一臺電腦,在課堂理論講解結(jié)束后,可以在老師的指導下完成小型的驗證型實驗。
改革前組成原理的5次實驗為運算器組成實驗、存儲器實驗、總線控制實驗、微控制器實驗和基本模型機設(shè)計與實現(xiàn)。改革后,增加基于Proteus的仿真實驗:一位全加器、行波進位加法器、行波進位加減法器、BCD碼加法器、一片74ls181構(gòu)成4位運算器和兩片74ls181構(gòu)成8位運算器。仿真實驗粒度較細,用于驗證課本中的細節(jié)知識,能讓學生隨學隨用,增加學習成就感。仿真實驗能給學生打下好的EDA使用基礎(chǔ),在后續(xù)的組成原理課程設(shè)計中,學生可完成基本模型機和擴展指令的模型機。兩種實驗情況對比見表1。
采用Proteus進行仿真實驗,從一位全加器到基本模型機都可以設(shè)計。與實驗箱實驗過程相比具有以下一些優(yōu)點。
1)實驗門檻低。
使用Proteus進行實驗,環(huán)境搭建很簡單,在任何一臺PC上安裝Proteus,都能進行仿真,可以在宿舍完成實驗,學生對課堂上未理解的知識,也可以使用Proteus驗證。
2)易學易用。
Protues入門簡單,在元件庫里搜索相應器件,并正確連線,就能仿真并看到實驗效果。
3)減少“不確定性”。
實驗箱里的芯片,因為使用不當或者使用時間過長,有一些壞的。學生在實驗時,連線且完成操作后,卻看不到運行結(jié)果,需要反復檢查,浪費大量的時間,實際原因也許是某根線接觸不良、某塊芯片壞了。而使用Proteus,只要連線與操作正確,Proteus就能給出仿真的運行結(jié)果,能讓學生在學習過程中,建立更多的成就感,更有學習興趣。
表1 組成原理實驗箱實驗與仿真實驗的對應關(guān)系表
4)查錯更方便。
在實驗箱發(fā)生錯誤時,很難很快定位到出錯位置,因為無法看到每條線里傳輸?shù)氖?還是1,在Proteus中尋找錯誤時,加上Logic Probe(邏輯探針),就能看到每個點的值,能輕松找出錯誤。
5)實驗粒度更細。
使用實驗箱能做5次實驗,在指導書上,實驗步驟寫得非常明確,具體操作就是連線。使用Proteus能完成更細致的驗證,如可以搭建半加器、一位全加器、行波進位加法器、ALU等,來驗證課本上的理論,促使學生思考:為什么幾個與或門就能實現(xiàn)加法運算呢?做了驗證性實驗就會發(fā)現(xiàn):它們的輸入和輸出是一樣的,真值表是一樣的。圖1給出了在Proteus中構(gòu)建的一位全加器,使用開關(guān)和燈進行輸入輸出。
6)更具針對性。
圖1 基于Proteus構(gòu)建一位全加器(使用開關(guān)和燈進行輸入輸出)
屏蔽底層電路知識,讓沒有數(shù)字電路與模擬電路基礎(chǔ)的學生能專注于組成原理的知識,不需要通過搭建電路來獲取高低電平。圖2為邏輯全加器,不需要使用電源、開關(guān)、地線和電阻,采用Logic State進行輸入,Logic Probe顯示輸出。
7)答疑更方便。
學生在課后基于Proteus做實驗時,遇到任何問題都可以把設(shè)計文件通過郵件發(fā)給老師,老師可以及時回復。
8)方便學生自學。
Proteus方便制作MOOC并進行網(wǎng)絡(luò)教學,能給學生進行自學提供便利條件。
傳統(tǒng)基于實驗箱的實驗過程中,提供給學生的都是固化的模塊,如741s181芯片,沒有細節(jié)的實驗;使用改進型細粒度實驗設(shè)計,能提高學生的自學與思考能力,讓學生能真正理解實驗的內(nèi)容。
圖2 基于Proteus構(gòu)建一位全加器(邏輯輸入與輸出)
在運算器設(shè)計章節(jié),可以按順序完成多次細粒度實驗:①一位全加器。②行波進位加法器?;谝晃蝗悠餍酒?4ls183設(shè)計能進行4位二進制運算的行波進位加法器。③行波進位加減法器。增加方式控制位M,可以使得行波進位加法器能完成減法。當M為0時,完成加法運算。M為1時,完成減法運算。④BCD碼加法器。使用4位二進制表示1位十進制數(shù)的壓縮型BCD碼,在做加法運算時,如果采用二進制的加法規(guī)則來運算,則運算完畢有可能需要進行調(diào)整,設(shè)計加法與調(diào)整電路。⑤一片74ls181構(gòu)成4位運算器。使用74ls181ALU芯片來完成兩個操作數(shù)的多種算術(shù)和邏輯運算,開關(guān)通過三態(tài)門74HC245連接總線,打開三態(tài)門能將開關(guān)上的信息送到總線上,并使用鎖存器74273將信息鎖存并提供給運算器74ls181,運算結(jié)果能通過三態(tài)門再輸出到總線上,送到輸出設(shè)備。⑥兩片74ls181構(gòu)成8位運算器。使用兩片74ls181構(gòu)成8位運算器,能一次性完成兩個8位二進制數(shù)據(jù)的運算。Proteus設(shè)計圖如圖3所示。
圖3 兩片74ls181構(gòu)成8位運算器設(shè)計圖
為試驗改革效果,針對多個班級指導組成原理課程,3個班分別執(zhí)行實驗改革方案,其余3個班按原實驗計劃進行,執(zhí)行改革方案的班級中,大部分同學更有學習興趣,課后答疑的同學更多,最后考試結(jié)果見表2。
進行改革的班級在設(shè)計題中表現(xiàn)很好,設(shè)計題平均提高1.2分,因此組成原理實驗改革有助于提高學生的設(shè)計能力,更好地支撐學生的畢業(yè)要求,讓學生具備分析并解決復雜計算機系統(tǒng)工程問題的能力,能夠基于科學原理,采用科學方法,使用現(xiàn)代工具,進行復雜計算機軟硬件系統(tǒng)的研究、規(guī)劃、設(shè)計與開發(fā),具備較強的工程實踐能力。
將Proteus應用到組成原理的實驗教學,作為傳統(tǒng)教學的有益補充,可以激發(fā)學生的學習興趣,深化學生對理論的理解,讓學生能使用現(xiàn)代工具,進行計算機軟硬件系統(tǒng)設(shè)計與開發(fā),該項改革取得了良好的教學效果,提高了學生設(shè)計能力,更好地支撐了學生的畢業(yè)要求,是一項值得推廣的教學改革。基于Proteus的強大仿真能力,下一步計劃將Proteus推廣到計算機硬件課程群的其他課程中進行實驗改革。
表2 組成原理實驗改革結(jié)果比較