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