王建民,曹一江,田曉華,賀訓軍,梅金碩
(哈爾濱理工大學 電子科學與技術系,黑龍江 哈爾濱150080)
近年來,隨著計算機和微電子技術的發(fā)展,硬件描述語言HDL 逐漸成為數字設計的主流方法[1]。高校電子信息類相關專業(yè)已開設了“硬件描述語言”課程。由于硬件描述語言的出現與發(fā)展僅有20多年的歷史,該課程在高校課程體系中的地位以及教學內容并不明確。不同專業(yè)講授的內容,培養(yǎng)目標也各有不同。我校從2007 級開始,對“硬件描述語言”課程進行了一系列的改革與實踐,取得了良好的效果。
在教學實踐中,我們發(fā)現“硬件描述語言”課程存在以下一些問題:①課程設置目標并不明確,筆者認為該課程的目標應該是數字設計的基本理論和實踐,而硬件描述語言只是設計工具;②課程內容與數字電路基礎課程有所重復。教學中出現的設計實例,基本上以演示Verilog HDL 語言結構的使用為目的,大多數是數字電路基礎課程中一些設計實例的重復,如數據選擇、計數器和全加器等;③課程實踐環(huán)節(jié)以軟件仿真為主,學生缺乏實際動手機會。即使課程中安排相關的基本FPGA 或者CPLD 的設計實驗項目,也多為數字電路基礎課程實驗內容的簡單重復。
我們針對以上存在的問題及我系的實際情況,明確了“硬件描述語言”課程在整個教學體系中的地位以及培養(yǎng)目標。
數字設計類課程體系分為三個層次:①第一層次為數字設計基礎性課程。主要內容包括數字電路基本概念,以及基于中小規(guī)模集成電路的數字電路的分析和設計;②第二個層次是“硬件描述語言”課程,定位為數字電路基礎課程的延伸,以Verilog HDL 為工具,介紹寄存器傳輸級RTL(Register Transfer Level)數字系統(tǒng)設計的基本概念和方法,以數字設計的理論和方法作為課程重點[2,3];③第三層次為數字集成電路設計。
該課程改革的總體目標:①以培養(yǎng)應用型數字設計人才為目標,介紹基于硬件描述語言的數字設計的基本概念和原理;②硬件描述語言作為設計工具,講授與實際設計密切相關的語法結構;③加強實踐教學環(huán)節(jié),提高學生綜合實踐能力。
目前國內已出版的“硬件描述語言”課程教材多以講授語法為主,為體現“用語言,講設計,重實踐”的改革思路,我們編寫出版了新教材[4]。該教材以Verilog HDL 為工具,介紹現代數字系統(tǒng)設計的基本概念和方法,有如下主要特點:①以數字系統(tǒng)設計為主線;②以Verilog HDL 為工具;③闡述數字系統(tǒng)設計的基本概念、原理和方法;④以數字系統(tǒng)的基本結構安排全書內容。
本課程的理論教學內容按照RTL 數字系統(tǒng)的典型結構(如圖1所示)進行組織。通常情況下,典型的數字系統(tǒng)由數據通道和控制器兩部分組成。數據通道由路由網絡、功能單元以及數據寄存器組成??刂破鲃t由次態(tài)邏輯、狀態(tài)寄存器和輸出邏輯三個部分組成。
我們在教學中強調基于標準模板方式進行數字邏輯電路的設計[1],將電路中的組合邏輯和存儲元件分開描述,使理論教學思路更加清晰。每個主題對應數字系統(tǒng)結構一部分,教學內容如表1所示。
表中的設計實例對理論教學起至關重要的作用,理論教學中特別注重設計實例的選擇。主要考慮如下方面:①設計實例的連續(xù)性;②設計實例的應用背景,方便在CPLD 和FPGA 上實現;③幫助學生理解設計概念,難度適中。
圖1 數字系統(tǒng)的基本結構
表1 理論教學內容
在教學過程中,我們精心選擇和安排設計實例以加強理論教學的效果。例如,在基本時序邏輯電路設計教學中,以往教師常采用計數器、移位寄存作為設計實例。但由于比較抽象,不容易實際驗證,只能通過軟件仿真方式對設計進行驗證,教學效果并不好。現在,我們改為采用反應時間測試電路作為設計實例,采用線性反饋移位寄存器作為隨機序列發(fā)生器使用,而且還涉及按鍵、以及7 段顯示譯碼電路等組合邏輯的使用。不但達到了講解線性反饋移位寄存器的目的,而且由于反應時間測試電路易于采用CPLD 或者FPGA 實現,學生能夠直觀體會到設計成果。
我們在教學中還涉及許多其他類似的設計實例,比如鍵盤消抖電路、掃描編碼電路、信號邊沿檢測電路及SRAM 的讀寫電路等[5,6]。
我們依托我校電路與系統(tǒng)實驗室較好的軟硬件設施,建立一套具有如下特色的“硬件描述語言”課程實踐教學體系。
1)實踐教學體系的層次化
課程實踐教學體系分為三個不同層次展開。
(1)實驗教學環(huán)節(jié),要求所有學生必須完成。主要實驗內容包括:熟悉設計軟件、FPGA 開發(fā)流程和理論教學內容匹配的驗證性和設計性實驗項目。此類實驗項目一般難度不高,學生借助實驗指導書可獨立完成。
(2)依托學校開放性和創(chuàng)新性實驗項目開展的開放性實驗項目,由學生組隊或者個體獨立完成。首先需要向指導教師提出完整的項目申請,指導教師根據實驗項目的內容、難度和可行性等指標進行評估,并與提出申請學生進行交流討論,最終決定可以開展的實驗項目。實驗期間指導教師需要根據學生的申請對實驗內容進行改進和完善。
(3)以各類電子設計比賽以及省級和國家級創(chuàng)新實驗項目為目標的實踐項目。在開放性實驗項目基礎上,鼓勵學生積極參與。在電子科學與技術系四年實踐教學中,我們共同完成校級創(chuàng)新性實驗項目5 項,其中3 項成功申報并獲批國家級大學生創(chuàng)新實驗項目。
2)實踐教學體系的開放性
一是開放實驗室,學生通過預約就可以隨時到實驗室完成自己的實驗工作。二是實驗項目的開放性,除少數實驗項目有所規(guī)定絕大多數的實驗項目都是開放的,并沒有統(tǒng)一的標準答案。學生可以充分發(fā)揮自己的創(chuàng)造力,設計并完成實驗內容。
3)以學生為本,教師發(fā)揮引導作用
在實踐教學中充分發(fā)揮學生的主觀能動性和創(chuàng)造性、教師在實踐環(huán)節(jié)中主要起指導和督促作用。例如,電子科學與技術專業(yè)2007 級個別學生對簡易CPU 設計實驗很感興趣,教師根據這一情況,積極引導學生查閱有關CPU 設計的相關資料,進行深入學習,最后成功地申請到2009年一項國家級大學生創(chuàng)新實驗項目。
4)面向工程應用
針對學校實踐環(huán)節(jié)與學生畢業(yè)后工作實踐存在差距,我們在實踐教學中也做了一些嘗試,具體措施還包括:①實驗代碼必須嚴格遵守工程項目的一些統(tǒng)一規(guī)定,比如嚴格注釋要求、變量和信號命名要遵守統(tǒng)一的規(guī)范,代碼的編寫要遵從前后一致的風格等;②要求預習報告、實驗報告以及開放性實驗申請書等都按照實際工程項目文檔格式進行編寫。學生在提交申請開放性實驗項目時,其申請書必須包括功能需求分析和方案分析以及成本控制分析、市場前景展望等一些工程項目實踐報告必須包含的基本內容;③要求學生在實驗過程記錄并完成調試筆記。
必須提到我們某些實驗課程還是比較簡單的,與實際的工程項目相比還有較大差距。但通過這些措施的落實,學生對實際工程問題會有更多了解。他們的工程意識得到了提高,畢業(yè)后適應工作崗位的時間便縮短了。
[1] 夏雨聞. Verilog 數字系統(tǒng)設計教程(第2 版)[M],北京:北京航空航天大學出版社,2003.7
[2] 黃偉軍等. “單片機原理與應用”課程教學改革的研究[J],南京:電氣電子教學學報,2010,32(6):29-30
[3] 李愛濤,孫桂萍,徐俊. 關于通信類專業(yè)實驗教學的研究[J].南京:電氣電子教學學報,2012,34(1):63-64
[4] 王建民,田曉華,江曉林. Verilog HDL 數字系統(tǒng)設計[M]. 哈爾濱:哈爾濱工業(yè)大學出版社,2011.6
[5] 謝躍雷,偉雪明.“數字系統(tǒng)設計基礎”教學探索與研究[J].南京:電氣電子教學學報,2007,29(3):23-25
[6] Pong P. Chu. FPGA Prototyping by Verilog Examples[M]. New Jersey:A John Wiley & Sons,Inc. Publication,2008.7