向明尚, 劉延軍, 劉志剛, 唐 克
( 1. 東北石油大學 軟件學院,黑龍江 大慶 163318; 2. 大慶油田有限責任公司 儲運銷售分公司,黑龍江 大慶 163453 )
隨著電子技術和計算機技術飛速發展,新技術、新產品層出不窮,對高校辦學理念、教學手段、實驗環節提出更嚴格的要求.高校教學中實驗教學的教學手段和實驗設備往往落后于新技術發展,制約教學發展和人才培養水平.借助于新技術的發展,可以利用虛擬實驗室原理結合電子設計自動化(Electronic Design Automation,簡稱EDA)仿真、現場可編程邏輯陣列(Field Programmable Gate Array,簡稱FPGA)技術解決.
虛擬實驗教學環境包括硬件和軟件環境2部分[1].EDA仿真技術以計算機大規模可編程器件的開發軟件及實驗開發系統為設計工具,自動完成電子系統由軟件設計到硬件系統的實現[2].文中提出基于EDA的一體化、網絡化解決方案,結合虛擬實驗室理論和仿真技術,以圖形、數字、曲線等形式即時顯示理論課程中難以用語言、文字表達的復雜現象的變化過程[3];集成計算機硬件教學中各門課程、各種技術并統籌考慮,構成內容豐富、實驗、仿真相結合的教學仿真平臺,給出仿真結果.

圖1 仿真平臺系統結構
仿真平臺的系統結構見圖1.通過該仿真平臺,可完成軟件、硬件理論教學和綜合性實驗訓練,將理論學習、實驗編程、仿真測試等結合,形成完整的模擬系統,通過外部接口與目標機進行聯機驗證.
(1)EDA學習.集成Quartus , ModelSim , Proteus , Keil , Altium Designer , EWB , Pspice , ARM developer , Device Emulator , DSP , Sopc , Matlab , Nios IDE等通用EDA工具,以硬件系統為目標,配置多種能兼容和混合使用的邏輯描述輸入工具,能為FPGA等硬件設計提供保障[4],為理論和實驗教學提供學習、實驗、仿真環境.
(2)模擬電路仿真.進行電子元件、模擬電路、模數混合等實驗仿真.對設計階段電路性能的仿真分析,使設計過程更加快捷、方便,具有針對性[5];通過仿真測試后,可實現PCB電路板制作等功能.
(3)數字電路仿真:可進行數字邏輯、數字電路、計算機原理、接口技術、單片機系統、嵌入式系統等實驗仿真;CPLD,FPGA,SOC,SOPC,ISP等編程實驗.
(4)語言學習訓練.進行匯編語言、硬件描述語言VHDL和Verilog HDL、C51等語言的程序設計訓練,掌握軟件與硬件聯合編程技巧,提高軟件編程和硬件系統設計能力.
(5)外部系統接口:提供與外部專用實驗設備的接口.如單片機開發板、嵌入式開發板、數字邏輯實驗儀、計算機原理實驗儀、SOPC實驗箱、DE0實驗版等.
仿真平臺中設計和集成多種外部實驗設備的驅動接口,主機通過接口轉換模塊和USB、串行口、并行口、JTAG連接多種目標機,對實驗程序下載驗證.
軟件系統在Microsoft Visual Studio平臺上開發,集成相關EDA工具,提供人機交互界面,實現參數輸入、數據圖表和仿真結果的即時輸出;以教學、實驗、仿真等軟件模塊為框架形成完整仿真平臺系統;以外部設備I/O接口作為通訊工具,將實驗程序下載到目標機驗證.
仿真平臺集成EDA工具種類較多,為使軟件系統正常運行,軟件設計中需解決環境變量設置、工作路徑選擇、軟件參數傳遞、調用信息返回等關鍵問題,使EDA工具能夠與平臺良好地融合.以數字邏輯仿真模塊為例,仿真平臺與Quartus和ModelSim的集成過程:
(1)安裝2個EDA工具,修改平臺中相應軟件的環境變量(見表1).

表1 EDA軟件環境變量設置
(2)在Quartus中配置ModelSim的工作路徑,用其查看、分析仿真結果,并在平臺中作出相應修改.
(3)參數處理,在平臺中將EDA工具的啟動文件和實驗項目名稱作為啟動參數,傳遞到相應的EDA中,自動啟動EDA并顯示與項目有關的仿真電路及仿真結果.
(4)EDA的返回信息由平臺軟件集中處理,進行本地存儲和網絡發布,提供參考信息給用戶.
仿真平臺可完成多種類型的仿真教學任務,不同EDA工具仿真過程和軟件配置不同,以數字電路仿真學習中的數字電路設計和數字邏輯為例進行描述.
2.2.1 數字電路設計
包括邏輯功能分析與確定、生成描述邏輯功能的邏輯函數并化簡、原理圖設計及優化、門電路選型、建立最優邏輯電路、功能驗證、時序驗證、形成實際電路等步驟[6].其中門電路選型受實驗設備、材料制約,難以滿足開放性、創新性實驗要求;建立最優邏輯電路、功能驗證、時序驗證是數字電路設計中的重要環節.仿真平臺引入FPGA技術,避免門電路限制;運用集成的Quartus 和 ModelSim等EDA工具,進行電路優化、邏輯功能和時序驗證[7],確保電路設計正確.
2.2.2 數字邏輯
以半加器設計為例描述數字邏輯仿真教學任務.在仿真平臺中選擇“數字電路仿真”下“數字邏輯”中的“半加器”,進入Quartus仿真環境.
首先,完成半加器的設計輸入.根據半加器原理圖[5]選擇所需的門電路、輸入輸出引腳.使用具有2個輸入端的“與”門和“異或”門、2個輸入引腳、2個輸出引腳,用畫線工具建立連接關系(見圖2).與通過HDL語言描述相比,該連接關系圖更為直觀,易于理解數字電路功能、數字信號間邏輯關系,以及數字電路的時序關系、門電路的延遲、信號的傳輸過程.

圖2 半加器線路連接關系
其次,建立仿真環境.在Quartus環境的EDA Tool Options中配置ModelSim的工作路徑[8],在Simulation中選擇ModelSim作為仿真工具;執行編譯并轉換為HDL設計文件,加入到項目中;編譯、生成TestBench測試文件“ bjq.vt ”,修改其內容,建立包含輸入變量x,y的激勵文件;將“ bjq.vt ”加到項目中,執行EDA RTL Simulation,啟動ModelSim得到半加(half—sum)和半進位(half—carry)的輸出波形(見圖3);觀察波形,驗證設計結果的正確性.配置過程在仿真平臺中設置,學習項目自動仿真.

圖3 半加器仿真輸出波形
經過仿真驗證的邏輯電路,為檢驗實際硬件電路功能和性能,可將其下載到目標機進行驗證.以目標機Altera DE0為例描述下載驗證過程.
由于FPGA引腳關系可編程,作為仿真平臺的實驗載體能夠取代具體門電路,通用性強,應用靈活[9].選擇目標機類型及所用FPGA型號(以Cyclone Ⅲ EP3C16F484C6為例),全程編譯項目,通過后分配引腳.引腳分配采用“引腳管理器”和TCL腳本方式完成.以半加器為例,引腳分配關系見表2.再次編譯項目,生成下載文件“Bjq.sof”和“Bjq.pof”,通過 JTAG 方式將“Bjq.sof”下載到FPGA內部,作為臨時測試的下載文件,斷電后文件消失.通過 Active Serial 方式將“ Bjq.pof ”作為永久保存的下載文件,寫入串行配置器件(PECS4),目標機開機后自動寫入 FPGA 中,實現相應邏輯電路功能.下載完成后,通過Key的輸入和LED的亮滅,判斷半加器電路設計的正確性.

表2 半加器引腳分配關系
仿真平臺提供多種語言的學習.如VHDL、Verilog HDL等硬件描述語言,用以描述硬件的結構和行為[10],作為Quartus、ModelSim等EDA工具的設計輸入文件,具有從簡單門電路到任意復雜度數字系統的設計描述能力[11];匯編語言具有面向硬件、控制硬件的特點,是理解計算機系統技術、原理、工作方法的起點和途徑;C語言具有可讀性好、可移植性強、代碼效率高的特點,在軟、硬件系統及嵌入式系統等領域得到廣泛應用.
仿真平臺可組織對語言學習進行仿真設計并給出仿真結果.以C51語言學習為例,仿真系統實現過程為:進入相應學習單元,選擇“定時器”設計,進入Keil仿真調試環境,顯示相應代碼描述文件(見圖4(a)).該環境中對程序進行編譯、修改、調試、執行,查看寄存器狀態以驗證程序正確性.為直觀地看到執行結果,可將結果輸出到 Proteus 環境中,通過仿真儀器觀察定時器程序相應輸出結果(圖4(b)).圖4(b)中A為定時器P1_0口的輸出波形.觀察波形分析程序運行結果,有助于理解程序及定時器的工方式.

圖4 C51語言學習仿真定時器程序設計和輸出波形
protens和keil作為EDA設計和仿真環境可協調工作,需要在平臺中進行配置.首先在Proteus中畫出仿真原理圖,選中Proteus中Debug菜單的“Use Remote Debug Monitor”,使其有效;其次在Keil中“Options for Target”設置,確定CPU類型,在Debug菜單中選用“Proteus VSM Simulation”,即可實現聯合仿真.配置過程在平臺中已經設置好,選擇學習項目后,即可自動完成仿真過程.
仿真平臺提供多門課程的理論學習、實驗驗證和仿真測試.包括:數字邏輯、計算機原理、接口技術、單片機原理及應用、嵌入式系統及應用、電工學基礎、電子線路設計、PCB制作,FPGA、SOC、SOPC、ISP編程應用,MCS-51匯編語言、C51、HDL程序設計等.以邏輯函數、真值表、原理圖、程序代碼、仿真波形、平面圖形、三維圖形、動畫、多媒體演示等多種表現形式,從不同角度描述和展示多學科教學內容,充實教學內容并提高學生學習興趣,有助于學生學習和理解教學內容.提供大量開放性、創新性學習項目.除平臺內提供的的學習項目外,還可進行自主學習,建立個人學習項目并仿真驗證.平臺提供 EDA 擴展接口,可對現有 EDA 及時升級,也可把其他 EDA 工具集成到平臺內并建立相應學習環境,進一步豐富平臺的教學手段和教學內容.
仿真平臺包括軟、硬件系統的設計和集成,涉及的技術門類和外部設備接口較多,對系統穩定性、可靠性要求較高;教學案例的組織涉及到多門課程,教學內容安排需符合各門課程教學大綱要求;考慮自主學習和創新能力的培養,增加大量開放性、創新性教學案例,提供自主學習環境和素材.進行系統設計、開發和論證,并對教學內容、教學素材、實驗案例、程序代碼、仿真結果全面測試.結果表明,系統達到設計要求,可保證教學內容的準確性和正確性,平臺運行穩定可靠,可以滿足理論教學、實驗驗證、硬件仿真等的需要.
教學仿真平臺將10余種EDA工具及外部設備集成、優化,滿足不同種類課程需要;教學內容豐富,滿足不同層次學生學習要求;對實驗設備和條件不足的課程,通過平臺提供的仿真學習,可以提高學生高專業知識水平、鍛煉動手能力、培養創新性思維能力;通過網絡訪問平臺進行遠程教學實踐,節省實驗室空間,方便教學任務實施,應用效果較好.