吳榮海+姚麗+李霞
摘 要: 將Logisim引入計算機硬件基礎課程開放實驗項目的綜合性實驗項目中,并給出“利用Logisim設計實現原碼一位乘法器”實驗項目的設計仿真過程,仿真結果證明,將Logisim引入綜合性實驗項目中具有可行性。
關鍵詞: 計算機硬件基礎課程 開放實驗項目 綜合性實驗項目 Logisim
“計算機組成原理”與“數字邏輯電路”是計算機科學與技術專業(yè)的硬件基礎課程,這兩門課程均需要通過實驗教學加深學生對理論知識的理解及動手能力的培養(yǎng)。盡管上述兩門課程理論與實驗教學的先后銜接關系非常明確,但是長期以來兩門課程的實驗教學缺少有效銜接,導致學生在計算機硬件實驗技術方面訓練嚴重不足并影響對相關知識點的理解和掌握[1],從而出現計算機硬件基礎課程教師難教、學生厭學的不利現狀。
開放實驗的目的是更好地培養(yǎng)學生的創(chuàng)新精神和實踐能力,其中開設的綜合性實驗項目旨在培養(yǎng)學生的綜合分析能力、實驗動手能力、數據處理能力及查閱中外文獻資料的能力。研究如何利用開放實驗中的綜合性實驗項目,實現在涵蓋計算機組成原理課程教學重點的同時又兼顧到與數字邏輯電路課程間的相互銜接,以形成計算機專業(yè)硬件基礎課程實驗教學體系是十分必要的[2-4]。
1.Logisim在計算機專業(yè)硬件基礎課程實驗教學中的應用可行性
Logisim[6]作為一個數字邏輯電路的設計與仿真軟件,相比較EWB,LabVIEW,Multisim,ELVIS,Proteus等軟件,具有開源免費可二次開發(fā)、無須安裝即可運行、軟件使用簡單易學、仿真結果直觀易于理解等優(yōu)點,適合用于數字邏輯電路的設計與仿真。Logisim除了提供基本的門電路(Gate),還提供編碼器(Plexer)、算術單元(Arithmatic)、存儲(時序)電路(Memory)、按鈕、LED、7段數碼管等輸入輸出(Input/Output)設備。在Logisim中通過簡單的鼠標拖拽操作就可以建立起邏輯電路,并通過仿真直觀地看到運行結果;另外,在Logisim中還可以利用真值表、邏輯表達式的方式建立邏輯電路。Logisim在“數字邏輯電路”實驗教學中的應用是完全可行的[5]。
利用Logisim所提供的子電路(Subcircuit)工具、探查(Probe)工具、通道(Tunnel)工具與分割(Splitter)工具,可以將各個功能部件封裝為獨立的子電路,然后通過總線連接為一個整體?!坝嬎銠C組成原理”中大量由基本門電路通過總線連接而成的計算機功能部件實例適合利用Logisim軟件設計及仿真[7]。
2.基于Logisim的計算機硬件基礎課程綜合性實驗項目實例
借助Logisim所提供的組件,將理論教學中一些抽象、不便于理解的概念和實現技術進行門電路級的仿真實現并加以調試,加深學生對于所學知識的理解,加強學生利用所學知識解決實際問題的能力。
原碼一位乘法對于學生進一步認識計算機ALU中數據信息的加工處理流程,從而進一步加深對計算機硬件組成及整機工作原理的理解,并綜合運用硬件基礎科學和所學知識設計實現功能部件有重要意義[8]?!袄肔ogisim設計實現原碼一位乘法器”實驗項目要求實現兩個17位原碼表示機器數的乘法,并能夠仿真通過。學生在設計實現乘法器過程中,必須綜合運用“數字邏輯電路”、“計算機組成原理”課程中學過的設計方法、理論知識才能最終完成項目。因此,將“利用Logisim設計實現原碼一位乘法器”作為計算機專業(yè)硬件基礎課程的綜合性實驗項目,實現了“利用開放實驗中的綜合性實驗項目涵蓋計算機組成原理課程教學重點的同時又能夠兼顧到與數字邏輯電路課程間的相互銜接,以形成計算機專業(yè)硬件基礎課程實驗教學體系”的目標。
2.1原碼一位乘法
利用原碼實現乘法運算是十分方便的。原碼表示的兩個數相乘,其乘積符號為相乘兩個數符號的異域值,數值則為兩個數絕對值之積。設:
2.2基于Logisim的原碼一位乘法的仿真電路
2.2.1基于Logisim的原碼一位乘法的仿真電路控制部分
2.1.2基于Logisim的原碼一位乘法的仿真電路運算部分
2.3原碼一位乘仿真電路3組測試數據驗證
2.3.1第1組測試數據結果
寄存器X:0 1111 1111 1111 1111 B,寄存器Q:1111 1111 1111 1111 B,結果為(其中左邊17個LED對應乘積的高17位,右邊16個LED對應乘積的低16位):
寄存器X中存放的是被乘數的數值部分,寄存器Q中存放的是乘數的數值部分,即:
利用原碼1位乘運算規(guī)則[8]計算得:
電路仿真結果與計算結果一致,該組測試數據通過。
2.3.2第2組測試數據結果
寄存器X:0 0001 0010 0011 0100 B,寄存器Q:1010 1011 1100 1101 B,結果為(其中左邊17個LED對應乘積的高17位,右邊16個LED對應乘積的低16位):
寄存器X中存放的是被乘數的數值部分,寄存器Q中存放的是乘數的數值部分,即:
利用原碼1位乘運算規(guī)則[8]計算得:
電路仿真結果與計算結果一致,該組測試數據通過。
2.3.3第3組測試數據結果
寄存器X:0 0000 0000 0000 0000 B,寄存器Q:0000 0000 0000 0000 B,結果為(其中左邊17個LED對應乘積的高17位,右邊16個LED對應乘積的低16位):
寄存器X中存放的是被乘數的數值部分,寄存器Q中存放的是乘數的數值部分,即:
利用原碼1位乘運算規(guī)則[8]計算得:
電路仿真結果與計算結果一致,該組測試數據通過。
3.結語
通過仿真結果及驗證,3組測試數據均通過測試,證明所給基于Logisim的原碼一位乘法仿真電路正確,“利用Logisim設計實現原碼一位乘法器”作為計算機硬件類基礎課程開放實驗項目中的綜合性實驗項目可行。
參考文獻:
[1]盛建倫,鞏玉璽,劉淑霞,等.計算機專業(yè)硬件基礎課程實驗教學體系的研究[J].實驗室研究與探索,2013(10):387-391.
[2]侯宏霞.關于提高“計算機組成原理實驗”課程教學質量的探索[J].計算機教育,2009(15):154-156.
[3]劉京銳,李志平.計算機硬件類課程實踐教學改革與實踐[J].實驗技術與管理,2010,27(4):130-132.
[4]馬漢達,鮑可進.計算機硬件課程實驗教學改革與實踐[J].實驗室研究與探索,2013(10):360-362.
[5]胡世昌.用Logisim改革數字電路實驗[J].沈陽師范大學學報(自然科學版),2015,33(2):301-304.
[6]BURCH C.Logisim[EB/OL].[2016-1-23].http://www.cburch.com/logisim/
[7]Minnies Stuff.An Example Hardwired CPU[EB/OL].[2016-1-23].http://minnie.tuhs.org/CompArch/Tutes/week03.html
[8]唐朔飛.計算機組成原理[M].北京:高等教育出版社,2008:219-247.