丁家峰, 龍孟秋, 尹林子, 王會海, 趙 巖
(中南大學 物理與電子學院, 長沙 410083)
隨著電子工藝的逐步提升,現代電子產品在體積變小的同時功能卻在增強,在手掌甚至手指尺度的空間里設計一款功能強大的智能電子系統成為熱門技術[1]。然而,當前的電子工程教學中仍然普遍采用實驗箱進行教學,雖然資源豐富,但體積龐大,且需要在固定空間開展實驗,與最新電子系統設計模式存在較大差距,學生們不能享受隨時隨地使用實驗資源的便利。新型的便攜式口袋實驗平臺逐漸被納入專業(yè)實踐課程,兩者互相補充,共同擔負著新工科背景下現代化大學生的實踐能力培養(yǎng)任務[2]。
“EDA技術與應用”課程是一門工程實踐類課程,主要講述基于FPGA的數字系統自動化設計技術[3]。在Intel公司收購Altera事件和中美貿易戰(zhàn)的刺激下,基于FPGA的電子系統設計成為了研究熱點[4],國內很多企業(yè)開始進軍FPGA器件和EDA工具研究,對相關大學畢業(yè)生的需求也逐漸增多。為了應對這種變化,許多教改措施被應用于EDA課程[5-7]。
近年來,我們擴充了EDA課程的實驗平臺,以DE2-115口袋實驗室為核心,通過融合項目式管理和信息化快反饋技術,在實踐教學、綜合創(chuàng)新和教學考評環(huán)節(jié)進行了改革實踐,取得了一些經驗和教訓。本文對其進行總結,供相關專業(yè)師生們參考。
我們采用的是DE2-115開發(fā)系統,其外觀和各模塊功能如圖1所示。從圖1可知,該開發(fā)板下半部分提供了18個撥鍵、4個按鍵、18個紅色發(fā)光管、8個綠色數碼管、LCD1602液晶顯示器、紅外遙控接收單元,適合于“數字邏輯”和“EDA”課程的實踐教學;上半部分提供了PS/2、RS232、VGA、以太網、多媒體語音、USB主從接口,適合于“計算機組成原理”和“嵌入式系統”課程的實踐教學;左邊集成了與電腦連接的usb-blaster下載線,縮小了整套開發(fā)系統的體積;右邊提供了兩個擴展接口,以應對額外的開發(fā)需求。
圖1 DE2-115開發(fā)板
該開發(fā)系統還提供了兩套完整的循序漸進的實踐訓練題庫,第一套用于“數字邏輯”和“EDA”,第二套用于“計算機組成原理”和“嵌入式系統”,本次教學改革使用了第一套訓練題庫,如表1所示。從表1可知,Lab0(即My First FPGA for DE2-115)為傳統的驗證性實驗,提供的資料最為詳細,可以通過該訓練掌握FPGA開發(fā)流程。Lab1-3為數字邏輯基礎實驗,可以通過這個訓練學習硬件描述語言。Lab4-6為簡單數字系統設計,可以對Lab0-3部分的掌握情況進行檢驗。Lab7為數字邏輯向計算機組成的過渡內容,鍛煉狀態(tài)機的使用,為處理器控制單元設計打下基礎。Lab8-10為計算機的存儲器、處理器設計,難度較高,考核對前述知識點的掌握情況。特別需要說明的是:每個Lab中的設計環(huán)環(huán)相扣,但未提供參考答案,增加了教改的難度。
表1 實驗內容分析
考慮到DE2-115系統復雜且實驗繁重,我們?yōu)榱吮WC教改的順利進行,提前作了三項準備工作:①申請了FPGA大學計劃項目,獲得芯片及開發(fā)板廠家的資源和支持;②申請中南大學教改項目,獲得學校的支持;③采用了《數字系統設計與Verilog HDL》(第7版)教材,該教材提供了大量的參考代碼,且配套的實驗板為DE2-115。在上述工作順利完成之后,于2019年秋季開展了本次教改,詳細實施方案如表2所示。
表2 教改實施方案和執(zhí)行情況
該課程為選修課,安排在大學三年級第一學期,共14周,理論44課時,實驗12課時,將其分為三個階段。第一階段完成EDA綜述和三要素(器件、工具和語言)的講解,夯實基礎。通過用圖形法、硬件描述語言法設計組合和時序電路,然后通過PROM、GAL和LUT方式實現,使同學們了解完整的數字IC設計和基于PLD的實現過程。該階段共分配了8周,前2周完成試聽和選修,然后再分組完成第一個驗證實驗,因為初次使用Quartus II軟件,再加上英文文檔指導書,學生們很快感受到了壓力。因為實驗主要在宿舍中完成,我們通過建立QQ群的方式提供技術支持,和一些走在比較前面的學生一起幫助大家完成了入門實驗,在實驗課堂上則主要進行實驗成果分享和下一個實驗的安排工作。第二階段講解基于Verilog的數字系統設計,集中訓練6周。要求每組完成從lab1到lab8的芯片設計,lab9和lab10選做。雖然平均每人每周需要完成兩顆芯片的設計,但因為每個lab中的各個part之間的設計是緊相關的,且難度逐步增加,盡管各個組長在分配任務時想了不少辦法,而且教師在中途對lab3-5進行了任務減負的調整,但仍有部分小組未能完成全部任務,一方面是設計難度逐步增加,另一方面是期末其它課程的復習任務也加重了。第三階段為課程設計環(huán)節(jié),根據自己對知識點的掌握情況,設計一款程序員計算器或者普通計算器,以面試的形式考核大家最終的掌握情況,達到學以致用的效果。雖然該設計為綜合性知識技能考核,但所有同學集中精力設計一道題,并且有教師在課堂上講解幫助,大家都能在一周內完成設計任務,且解決方案多樣化,效果甚佳。唯一的問題是,課程設計安排在學期末,與其他課程的任務重疊在一起,學生們感覺時間緊迫。
通過課程設計面試和設計報告反饋,絕大部分同學從本次教改中受益匪淺,充實了自己的業(yè)余時間,完成了專業(yè)級的作品設計,成就感滿滿。如下幾項改革措施得到認可:①“一個驗證實驗+多個設計實驗+一個課程設計”的模式特色鮮明,實踐訓練環(huán)環(huán)相扣,學生們很容易通過這種訓練掌握數字系統設計的一般方法,并順利完成一個綜合性產品設計,明白該門課程的意義和價值,易獲得成就感;②階段性小考的方式起到及時總結和夯實基礎的作用,第一次小考加深了同學們對專業(yè)術語的理解,第二次小考讓同學們掌握了算術運算的基本原理,小考方式使很多同學不僅知其然而且知其所以然。如下幾個方面需要進一步優(yōu)化調整:①6周的實驗安排過于緊湊,最好在第三周開始實驗,12周的時間將使得實驗任務輕松自如,且課程設計的任務也可提前完成,避免與其它課程任務沖突;②實驗后再進行理論講述更好,同學們普遍反映在實踐后聽課會更加專注,帶著問題學習效果更好。實驗前簡單講述和演示,實驗后及時總結和分享,這種方式不僅可以充實實驗課堂,還使得理論講述更有針對性。最后,通過中南大學教學質量平臺的信息化快速反饋通道對DE2-115的實驗進行了評價,結果如表3所示。表中每一行表示一個實驗的統計數據,同學們根據自己的體會對實驗難度進行投票。表中記錄了支持不同難度系數的學生比例,實驗難度為學生比例與難度系數的乘法累加計算結果,表征該實驗的統計難度。
表3 實驗難度評估
從表3可知,Lab1-4的難度適中,只有Lab3稍微偏高,說明同學們對鎖存器、觸發(fā)器和寄存器的設計掌握得還不夠牢固。Lab5的難度突然上升,因為時鐘和定時器是前面所有實驗的綜合運用,設計工作量比較大,該實驗可作為第一階段的綜合考核實驗。Lab6-8整體偏難,但lab6的算術運算部分與lab5的定時器與時鐘難度相當,lab7-8部分有相當一部分同學感覺難度過大,尤其在概念方面,這兩部分需要課堂更多的講解和演示。
在教學過程中,經過廣泛征集意見,大家認為該平臺提供的實驗內容可以與理論課堂平行甚至超前進行,并對進一步的教學優(yōu)化提出了如下建議,如表4所示。
表4 教學建議
從表中可以看出,同學們對題庫中構建塊的原理部分有較多的要求,而這部分內容是數字邏輯課程的重點。所以,選擇數字邏輯與EDA綜合類型的教材是較好的解決辦法,如加拿大Stephen Brown編寫的《數字邏輯基礎與Verilog設計》(原書第3版)。
實踐證明,在EDA課程中采用口袋實驗室平臺進行教學,收到了不錯的教學效果。這一方面得益于基于Cyclone IV的DE2-115口袋實驗平臺提供的印制電路板設計樣板,以及環(huán)環(huán)相扣、逐步深入的數字邏輯和嵌入式系統實驗訓練,實現了從基本數字電路到處理器設計的平滑過渡;另一方面得益于我們構建的“一個驗證實驗+多個設計實驗+一個課程設計”的培養(yǎng)模式。
基于DE2-115口袋實驗室的EDA課程教改經驗將進一步被應用于“嵌入式系統”課程,相關工作正在進行當中。