摘要:將ROBEI設計軟件引入到“EDA電子設計自動化”課程教學改革中,并利用實例表明該教學方法可以使學生更加直觀、深刻地理解EDA設計技術與方法學。通過使學生掌握該設計軟件的使用方法,培養提高學生的設計、調試與實踐創新能力,進一步明確專業發展方向,使學生更加符合就業與用人單位的實際需求。
關鍵詞:ROBEI;數字電路設計;ALU;Verilog
作者簡介:張雷鳴(1980-),男,河南洛陽人,河南科技大學電氣工程學院,講師;劉博(1982-),男,河北樂亭人,河南科技大學電氣工程學院,副教授。(河南#8194;洛陽#8194;471000)
基金項目:本文系河南省教育廳科學技術重點研究項目(項目編號:14B510004)、河南科技大學實驗技術開發基金項目(項目編號:SY1314018)的研究成果。
中圖分類號:G642.0#8195;#8195;#8195;#8195;#8195;文獻標識碼:A#8195;#8195;#8195;#8195;#8195;文章編號:1007-0079(2014)14-0131-02
“EDA電子設計自動化”是面向電子信息與科學技術方向本科生所開設的一門重要的專業基礎課。該門課程具有邏輯性強、概念多、與工程實際聯系緊密的特點,而設計實踐環節是本課程極為重要的組成部分。通過在實踐環節中有針對性地使用ROBEI設計軟件可以使學生全面理解面向市場需求和工程應用的電子系統設計的概念和方法,鞏固和加深學生理解所學的理論知識,并通過實踐環節的訓練,使學生樹立正確的設計觀點、嚴謹的科學作風、理論聯系實際的能力與動手操作的能力,達到提高學生綜合素質的目的。ROBEI作為功能強大的數字電子系統虛擬仿真平臺,已經成為“EDA電子設計自動化”課程教學改革的重要工具。在課程的各教學環節中,如何使用ROBEI培養學生的實踐創新能力,是目前EDA課程深入改革需要重點研究與解決的問題。[1]
一、ROBEI軟件簡介
ROBEI軟件是由美國若貝科技公司開發并推出的一款可視化跨平臺EDA設計工具,提供了超級簡化的設計流程、可視化的分層設計理念、透明的模型庫與友好的用戶界面。該軟件將先進的圖形化與代碼設計相融合,將框圖與代碼設計的優勢進行互補。ROBEI軟件是目前世界上最小的芯片設計仿真工具,也是唯一能在移動平臺上應用的EDA工具。該軟件不需要任何芯片,在仿真后可以自動生成Verilog代碼,并與其他EDA工具無縫銜接,完成虛擬仿真設計的各個流程,如圖1所示。ROBEI軟件通過對Verilog代碼設計基礎的進一步抽象,讓框圖設計與代碼設計實現完美融合。傳統的EDA設計軟件使用原理圖設計,其靈活性差,且用戶需要利用現成的模塊來拼湊設計,而代碼設計相當靈活但不直觀。ROBEI集成了先進的圖形化與代碼設計的優勢,同時具備Verilog編譯仿真和波形分析,可以實現各種系統的快速設計、仿真和測試。
傳統的EDA設計需要工程師在腦海中將電路結構與接口構思好,然后根據結構完成代碼設計,這樣做容易導致設計出錯。[2]通過使用ROBEI軟件,工程師可以一邊構思系統結構,一邊設計接口。當結構與接口完成后,工程師可以專注于完成核心算法,并利用軟件自動生成結構層的代碼與工程師輸入的算法代碼相結合進行仿真。該軟件將模型設計,測試文件和引腳分配集成在一個超級簡化的設計流程中,可以進行快速設計仿真。
正是基于以上特點,在“EDA電子設計自動化”課程的實踐教學中使用ROBEI軟件作為學生的輔助學習工具,可以大大提高學生的學習興趣與學習效率。本文主要結合在教學與實踐過程中遇到的典型例子,安排課堂演示幫助學生更形象掌握數字電路的設計方法,并使大家了解仿真軟件的強大功能及其在教學和實踐中的重要作用。
二、ROBEI使用方法介紹
ROBEI軟件啟動后,界面如圖2所示。軟件界面分為菜單、工具條、工具箱、屬性欄、工作空間和輸出窗口幾個部分,菜單和工具條在軟件的頂部,工具條上分布著一些常用的按鈕。左側的工具箱里包含設計可用的module模型,是可以重復利用的。中間的工作空間是主要設計區域,當前設計模塊默認名是“module”。用戶可以在界面右側屬性欄里修改當前設計模塊的屬性,底部為輸出窗口,用來顯示錯誤以及警告信息。工作空間是一個圖形化設計區域,在這個空間用戶可以利用模塊、模型、引腳和連接線來設計復雜的數字電路。工作空間由兩個部分組成,一個是圖形化設計視窗,一個是代碼設計視窗,可以通過底端的“Graph”和“Code”選項卡進行切換。
三、基于Robei的ALU設計實踐
1.設計要求
ALU(算數邏輯單元)是CPU的基本組成部分,也是學習EDA過程中比較常見的一種典型實際電路結構。[3,4]要求設計一個8位ALU,并能實現數據與、或、非、異或、不帶進位加法、帶進位加法、不帶借位減法和帶借位減法運算。運算符采用3bit表示,A、B、R均為8bit數據。用測試文件測試ALU功能,并用級聯方式將4個8bit的ALU實現32bit的ALU,使學生通過實踐設計環節掌握算術邏輯運算加、減操作原理,驗證運算器的組合功能。
(1)加法運算包含2種類型:一種是不帶進位的加法器,另外一種是帶進位的加法器。
不帶進位的加法器公式: (1)
帶進位的可以進行加法器級聯,實現更高位數的串行加法運算。帶進位的加法器公式: (2)
(2)減法運算也包含 2 種類型。
不帶借位的減法運算: (3)
帶借位的減法運算: (4)
2.設計內容
新建一個模型命名為ALU,類型為 module,同時具備 4 輸入 2 輸出。點擊模型下方的 Code添加代碼。在代碼設計區內輸入以下 Verilog 代碼:
always @ (A or B or op or F)
case ( op )
3'b000: {D,R}=AB;//實現與運算
3'b001: {D,R}=A|B; //實現或運算
3'b010: {D,R}=~A;//實現非運算
3'b011: {D,R}=A^B;//實現異或運算
3'b100: {D,R}=A+B;//實現不帶進位的加運算
3'b101: {D,R}=A+B+F; //實現帶進位的加運算
3'b110: {D,R}=A-B;//實現不帶借位的減運算
3'b111: {D,R}=A-B-F;//實現帶借位的減運算
default: {D,R}=AB;//默認為與運算
endcase
保存模型到一個文件夾中,運行并檢查有無錯誤輸出。如果沒有錯誤輸出,則新建一個4輸入2輸出的測試文件,并將Module Type設置為“testbench”。將測試文件保存到ALU模型所在的文件夾下。此時,Toolbox工具箱的Current欄里會出現一個ALU模型,單擊該模型在alutest上添加并連接引腳。
接著點擊測試模塊下方的“Code”,輸入激勵算法。然后執行仿真并查看輸出信息,檢查沒有錯誤之后查看波形。點擊右側 Workspace中的信號,進行添加并查看分析仿真結果。對照真值表,查看設計波形輸入輸出是否一致。
創建一個新的具有10個輸入引腳和5個輸出引腳的電路模型,并保存到ALU模型所在的文件夾下;添加4個ALU連接引腳,并將4個8位的ALU進行級聯;然后從 Toolbox里面的Current 欄找到alu32bit模型,并添加到測試模塊上,將對應引腳相連;最后測試激勵代碼設計好后進行仿真,并查看結果,仿真圖形如圖3所示。
四、教學效果分析
從學生提交的設計報告中可以看出通過利用ROBEI軟件仿真上述的ALU算數邏輯單元,使學生能夠通過本系統很好地掌握數字電路的設計過程。同時由于采用ROBEI仿真軟件進行虛擬實驗,無需涉及和消耗電子元件即可設計好電路圖,并可詳盡了解該電路的各個設計參數及電路的性能,從而使實踐環節的設計內容具有更加全面、硬件投入更少、更加省時省力的優點。另外,通過使用該軟件可以使學生結合自己在相關專業課程當中所學過的知識,進行數字電子系統的功能設計和驗證,建立系統級設計的概念,掌握實際工程中數字電子系統設計的方法,激發學生學習EDA電子設計的興趣,提高其理論聯系實際的能力。
目前在我國,部分高校已經開始在“EDA電子設計自動化”的課程教學中將ROBEI軟件應用在課程的各個教學環節中。該軟件的應用使得傳統的“EDA電子設計自動化”課程教學模式發生了根本的改變,也使得數字電子系統的調試方法與設計理念發生了根本的變革,克服了傳統的教學模式存在的許多不足和弊病,對提高學生的設計與調試能力以及實踐能力有了一個質的飛躍。總之,學生在學習過程中發揮了主體作用,提高了綜合分析能力和創新能力。
參考文獻:
[1]趙恒平,龍婷.研究型大學本科教學定位與質量提升的路徑選擇[J].華北電力大學學報(社會科學版),2008,(2).
[2]趙永熹,黃云峰.基于項目驅動法的單片機課程體系建設[J].中國電力教育,2013,(4).
[3]王軍.現代電子技術綜合實驗[M].成都:電子科技大學出版社,
2003.
[4]朱定華.電子電路實驗與課程設計[M].北京:清華大學出版社,
2009.
(責任編輯:王意琴)