費 翔 高天迎 張運杰
(天津城建大學 計算機與信息工程學院,天津 300384)
計算機組成原理(后面簡稱“組成”)是計算機方向一門重要的專業(yè)基礎課[3],內容偏向原理,為了深化學生的理解,必須在實踐環(huán)節(jié)配合具體、形象的教學內容。但是由于計算機結構的高度復雜性,很難選取合適的具體元件來進行實踐教學,而FPGA 技術既可以進行波形仿真以便學生分析實驗原理,又能夠實現開發(fā)板驗證,直觀的展示現象,極大地滿足了教學需求。我校計算機專業(yè)在第三學期會進行分方向培養(yǎng),其中的嵌入式方向與物聯網方向以ARM 處理器為學習對象。“組成”課程實驗包括馮諾依曼結構定義的計算機五部分,并逐步構建出RISC型模型機以銜接后續(xù)方向課。而且,前期的數字邏輯設計課程(后面簡稱“數電”)也根據計算機專業(yè)的特點[4],在課程內容上做出了革新,進而形成“數電——組成——ARM”相互連接的知識鏈。
模型機以RISC,4 位數據/地址寬度,哈佛存儲結構,定長度(12bits)、定周期(8 節(jié)拍)指令為總體思路。按實驗內容的漸進順序,總體框圖如圖1 所示。

圖1 總體結構框圖
“組成”實驗采用Altera 的EP4CE6 芯片,其具有10320 個邏輯單元。因此該型號芯片可以適應各類數字信號系統(tǒng)的設計,同時擁有較靈活的時序設計資源[5]。實驗開發(fā)環(huán)境采用官方的Quartus II 13.0。
課程實驗總體思路,包括以下幾點:
2.2.1 實驗項目串接知識鏈
這里的知識鏈,既包含課程內容的漸進順序,也包括不同課程之間的銜接[6-8]。比如,在前期“數電”中,組合邏輯部分突出全加器及加減電路的講解,并且設計“一位全加器實驗”、“加減電路實驗”,然后在其課設中包含“ALU 系統(tǒng)設計”題目,傳導ALU是CPU 運算器的核心部件[9]的思想。時序邏輯部分突出D 觸發(fā)器與地址譯碼器的結合應用,設計“寄存器實驗”、“地址譯碼器實驗”,然后在其課設中包含“存儲體設計”題目。
這樣在進入“組成”后,學生已經積累了ALU、存儲體等知識。然后,課程教學上引入運算器內部緩存概念,利用CPU 內總線,將存儲體變形為寄存器堆,與ALU 構建完整的運算器。同樣,儲存系統(tǒng)環(huán)節(jié)突出存儲器擴展原理的講解,利用存儲體和譯碼器進行存儲器長度擴展[10]。
2.2.2 針對計算機的專業(yè)特點靈活使用FPGA
FPGA 的靈活性,很大原因是因為可以采用可編程邏輯語言如:VHDL、Verilog 等進行代碼開發(fā)。雖然,計算機專業(yè)的基本功就是編程能力,但是可編程邏輯語言的學習卻不是本專業(yè)的重點。本專業(yè)學習更看重邏輯關系轉化為功能電路的過程。
因此,前期基礎電路實驗,比如:全加器、D 觸發(fā)器等,是要求學生以繪制電路原理圖的形式完成的。然后,利用Quartus II的代碼轉換功能,生成Verilog 源碼,接著對這種語言特性進行學習和理解。后面的綜合電路實驗,則是利用基礎電路構建的IP 核,進行原理圖綜合設計,這樣更加直觀的體現“組成”的完整過程。
實驗模型機包括:數據通路模塊,取指通路模塊和控制模塊三個部分[11]。
數據通路是運算器與數據存儲器通過數據總線和地址總線[12]進行連接而成,闡述一次計算機運算的完成過程的子模型。它的結構及各級結點說明如圖2、表1 所示。

表1 數據通路控制信號說明表

圖2 數據通路模塊
取指部件的主要功能是根據指令地址從指令存儲器中取出指令[13-15],包括程序計數器PC、指令存儲器和指令寄存器IR,闡述程序指令序列讀取過程。它的結構及各級結點說明如圖3、表2 所示。

圖3 取指通路模塊

表2 控制器取指通路控制信號說明表
控制模塊包含時序系統(tǒng)和控制單元。所有指令采用定周期設計,包含2 個機器周期(4 節(jié)拍每周期)共計8 個節(jié)拍。控制單元使用Verilog 編寫,依據組合邏輯指令譯碼思想,對IR 中操作碼、地址碼等展開解析[16]。它的結構如圖4 所示。

圖4 控制模塊
通過引入FPGA 技術,設計一個RISC 模型機,形象具體的實踐模式增強了學生對“組成”理論的理解。同時,該模型機也提供向后擴展的接口,在實驗階段后的課程設計環(huán)節(jié)學生可以在這個模型基礎上進行自主設計,完成諸如“堆棧程序設計”、“中斷系統(tǒng)設計”、“外圍接口系統(tǒng)設計”等內容。