高一沅
(福州大學至誠學院 信息工程系,福建 福州 350002)
?
應用型本科專業FPGA相關課程教學模式的探討
高一沅
(福州大學至誠學院信息工程系,福建福州350002)
摘要:FPGA設計是當今應用型信息電子類專業方向學生必須掌握的一門技能。分析現階段FPGA相關課程教學現狀,梳理出在理論教學和實驗實訓方面存在的問題,針對性地給出改進的方案:以實例帶動HDL語法教學,詳細分解FPGA的設計流程和系統搭建 ,設置多層次的創新實踐體系。實踐證明,所提出的措施針對性強,能將FPGA相關課程教學效果有效地提高。
關鍵詞:FPGA;教學模式;實踐;應用型
可編程邏輯器件(ProgrammableLogicDevice,PLD)設計是一門發展迅速、工程性強、緊密結合技術發展前沿的現代電子設計技術。PLD目前主要以現場可編程門陣列(FieldProgrammableGateArray,FPGA)為主,其應用領域涵蓋了主要工業、科學研究和國防軍事各個門類。
因此,FPGA設計是當今電子工程師基本功,也是作為應用型信息電子類專業方向學生必須掌握的一門技能。目前許多高等院校都開設了FPGA相關內容課程,由于是一門發展的新興課程,還有諸多需要完善的環節。
一、現階段邏輯設計與FPGA相關課程教學現狀分析
1.基礎理論知識不完善
PLD器件特別是FPGA,由于設計流程和傳統的諸如單片機、嵌入式微處理器相比,對學生基礎要求比較高,不僅前序課程諸如數字電子線路、微機原理等要求基礎扎實,還要求在學習過程中掌握一門硬件描述語言(HardwareDescriptionLanguage,HDL),諸如VerilogHDL。另外設計流程復雜并且不同于普通微處理器,無論是基本功還是工程實際都較以往微處理器要求高,因此學生普遍感覺偏難。
可編程邏輯器件是一門理論和實踐要求較高的課程,學生適合在修完數字電子電路、微機原理等信息類專業基礎課程后進行學習,具體主要有《邏輯設計與FPGA》課程,以及后續相關一些實用性更強的實踐實訓環節,如《可編程邏輯設計實踐》、《綜合電子設計》、畢業設計等。
2.FPGA相關實驗教學存在的突出問題
目前在眾多高校中相關課程普遍采用廠家提供的FPGA實驗箱,優點在于教學規范,易于學生和教師上手,但其缺點也十分突出:
(1)這些FPGA實驗箱功能固定,大部分實驗為驗證性。實驗所設計內容與其他微處理器無異,諸如鍵盤、LED燈、數碼管顯示等,體現FPGA器件自身結構、功能上獨有特性的實驗內容不多;
(2)實驗過程中,學生無需過多的了解其硬件組成和連接,無需動手設計、裝配和調試硬件電路,學生大部分時間主要在電腦上操作,只需按照實驗參考書的要求按部就班即可。
在這一系列過程中,學生并沒有對整個FPGA系統深入了解和操作,因此通過傳統的實驗教學對學生各方面能力提升有限。
因此,目前FPGA教學各環節主要問題也就凸顯出來:
重HDL語法輕系統設計,重軟件操作輕流程管理,重實驗結果忽視對實驗過程中如何排錯糾錯,因此表現出學生修完課程后,仍無法掌握設計方法,面對實踐的設計要求仍是無從下手,不知所措。
二、FPGA教學模式的改革與實踐
針對傳統教學模式存在的問題,結合本院相關教學資源,對FPGA相關體系課程進行系統革新,提出既符合相應人才培養方案又針對相關專業學生的教學實踐改進方案。
1.不斷做教學的“新人”
當今時代,高校老師如果僅是當書本的“復讀機”遠遠不夠,哪怕年輕教師,其教學效果也是“老氣沉沉”。PLD尤其是FPGA相關領域技術在不斷前進,如何不斷地將這一領域的最新技術引入到課堂教學中,尤為重要。只有身處在該領域科研第一線,與工程實際聯系緊密,承擔相關的科研項目,不斷更新自身知識內容才能使所教內容不斷緊跟潮流,學生才能夠在課堂上獲得最接近前沿的資訊和技術。
2.以實例帶動HDL語言教學
傳統HDL教學方法采用是語法書常用的按部就班、逐點、逐條地講解所有的VerilogHDL語法,這樣扁平式語法教學優點在于教學嚴謹,講解細致。但也造成語法點松散,內容結構性不強,作為初學者的學生來說,看懂語法卻在應用時無所適從。因此在教學中以電子線路設計為基點,從實例介紹中引出HDL語句語法內容。
針對學生在HDL語言學習過程中出現的問題,突破傳統的軟件語言教學模式和流程,采用全新的教學理念和教學方式,通過HDL語言和電子設計自動化(ElectronicDesignAutomation,EDA)二者有機融合,采用“以實例帶動HDL語言教學”,在授課學時有效地減少前提下仍能保證良好的教學效果。
從最簡單的2路選擇器開始,程序例子規模由小到大,先對Verilog程序總體框架結構進行分析,再對每部分語法進行講解。在講解過程中,特別要讓學生明白每一部分該使用哪些語句,有哪些語句可以選擇使用。在典型示例的說明中,自然地給出完整的VerilogHDL語言描述,同時給出其綜合后的寄存器傳輸級(RegisterTransferLevel,RTL)電路圖及表現該電路系統功能的時序波形圖。通過采用一些簡單、經典的實例,將VerilogHDL中最核心和基本的內容講明白。因此在很短的時間內,這種立體式語法實例教學可以幫助學生有效地掌握Verilog語法的主干內容,并能快速上手,付諸設計。
3.不斷塑造邏輯電路系統框架的概念
VerilogHDL在語法上與C語言相似,因此初次接觸很多學生采用相同學習方法,重掌握語法,忽視了硬件描述語言自身的硬件含義。所以讓學生在學習硬件描述語言中,建立起HDL語句和硬件電路的緊密關系。
因此在教學過程中,在以實例作為引導前提下,不斷利用數字電路基本單元作為實例講授語法,特別強調哪些是可綜合實例設計,強調設計可綜合性的重要。不斷向學生重復:雖然也和軟件程序員一樣一行行敲代碼,但是大腦中一定要有邏輯電路和系統概念和框架。
4.詳解FPGA的設計流程
FPGA的設計流程更體現相同于IC集成電路的設計方法和流程,這對于信息類非微電子專業學生來說,著實是一個不小的挑戰。
當前無論是學生中還是在某些教師的觀念中,把FPGA當作一種和單片機一樣普通的MCU來看待。因此,對于FPGA的學習簡單地理解為就是學習一門HDL語言和一個器件對應公司開發軟件的基本操作,然后把代碼放在實驗箱上跑起來,就算是學會了、教完了,而沒有認識到FPGA是一個不同于以往的開發實現工具。
PLD尤其是FPGA設計過程特別強調流程設計和流程管理,因此教學過程中始終貫穿系統設計各流程的闡述,同時注意各個部分流程的內在聯系,使學生對所學內容建立起清晰、完整的設計流程。
在流程講解中,一些比較生僻的概念也是學生比較難理解的。諸如,在集成電路設計中的“邏輯綜合”(LogicSynthesis)。它是指所設計數字電路的行為級的描述,經過布爾函數化繁為簡并且優化后,轉換為邏輯門級別電子網表的過程。而其中“綜合”這一名詞是從外文synthesis直接翻譯,如果僅字面來看,無法由其中文含義去解釋這一過程。這一過程類似于軟件編譯,但是又有所不同。諸如此類概念,在講解時需要教師特別強調。
5.實踐教學的改進方案
根據國家普通高校尤其是獨立學院主要培養應用技術型專業人才的定位,作為一門非常注重理論聯系實踐的學科,根據FPGA課程實踐性強的特點,設計由淺入深、自主創新等多層次開放類實驗項目。
學生在通過課堂語法、理論及軟件工具教學后,經過幾個實驗的操作,他們根據實驗指導書所羅列步驟說明引導下“StepbyStep”地操作,完成所要求的一些簡單基礎模塊實驗。當他們面對一個實際的電路設計時,卻不知如何從何做起。因此在實驗實訓內容的組織上,驗證性質適當收縮,為內容的多層次化騰出學時空間。為此,基于這一設計理念,精心設計不同層次、不同類型并且側重點各有不同的多個實驗,除了傳統的驗證和設計性質外,還增設綜合型和自主型實驗。
前2個層次的實驗主要是根據現有購置的實驗箱基礎上完成。通過編寫代碼強化語言運用,熟悉開發軟件的操作。
后2個實驗實訓層級屬于自主設計或創新拓展性質的,融合一些競賽課題和工程項目實例供有能力學習的學生進一步探究。在其中,只給基本原理、基本功能、詳細的各方面技術指標要求和設計提示等。借鑒企業開發項目書的做法,對于每個實驗,不再詳細敘述步驟和設計過程,只提供整個系統設計要求;基于教學考慮,必要的設計思路和相關難點處仍給出適當的提示,學生根據要求自己查資料,從設計到實現的全過程均由學生獨立完成。
同時結合實驗室的靈活開放制度,調動學生充分的自由想象,促使學生積極主動思考、規劃設計方案,在這一過程中能夠有效啟發和引導學生綜合運用現有的知識。有時甚至需要學生跑圖書館找書籍,上網查資料,自學一些未教過的新知識和技術,自主設計、獨立完成。對于培養學生的自主學習、自主設計能力和創新精神,這一過程都是一個很好的鍛煉和促進。
實驗實訓內容涉及數字邏輯、系統控制以及儀器設備等不同方向的應用;內容安排上,循序漸進、由淺入深,追求多樣性,并且應用性強。在完成規定的實驗外,學生可以根據自身情況,有選擇性地選做難度較大的實驗。通過這些行之有效的措施才能夠有效引導學生去主動學習、思考和探究,并通過實踐真正掌握數字系統的設計、仿真及驗證方法。
6.積極探索SPOC在實踐教學中開展的可能性
在目前條件下,積極利用目前豐富的公共在線視頻和慕課MOOC(AMassiveOpenOnlineCourse,MOOC)/SPOC(SmallPrivateOnlineCourse,小規模限制性在線課程)平臺作為實踐教學的補充,一些固定教學內容可以利用在線視頻方式保存,采用在線與面授教學的結合(混合學習),學生再將自學過程中產生的問題和思考帶到面授課堂和實驗具體操作中與老師交流。
三、結語
課內講授與實驗,獨立實踐實訓設計加強相結合,通過這種FPGA教學方式,以往滿堂枯燥的語法內容和生硬的器件結構不再占據全部課堂時間,進而強調實踐動手開發的訓練。在較短的課堂教學和實驗實訓過程中,學生能夠快速的掌握相關基本知識和操作,并且能夠提升學生的獨立自主學習及設計開發能力,不斷豐富他們的工程經驗。
通過一段時間的實際運行表明,所提出的改進方案較好的教學效果,主要體現在: 第一,針對以往HDL語言普遍采用的程序語法教條式教學方法,給以實例驅動,強調硬件的可綜合性表述和系統概念的教學方式。第二,改變實驗教學只是簡單的驗證;綜合型、自主型實驗提升了學生自主學習和工程開發能力,使創新意識得以增強。第三,通過多層級的創新實驗體系,學生主動學習、思考和探究的行為得以有效引導,并在實踐中真正掌握數字系統的設計、仿真和驗證方法。
參考文獻:
[1]潘松, 黃繼業, 潘明.EDA技術實用教程(VerilogHDL版) [M].北京:科學出版社,2013.
[2]EDA先鋒工作室.ALTERAFPGA/CPLD設計[M].北京: 人民郵電出版社,2005.
[3]李兆光. 數字電子技術課程中FPGA技術教學內容的改革[J]. 山西電子技術, 2015,(2): 23~24, 31.
[4] 龐前娟. 應用型本科EDA技術教學改革的研究[J]. 大學教育, 2015,(7): 125~126.
[5] 胡靖,杜西亮. 基于FPGA技術的課程教學改革探索[J]. 黑龍江教育(高教研究與評估), 2015 ,(3): 35~36.
文章編號:2095-4654(2016)04-0084-03
收稿日期:2016-02-07
基金項目:福州大學至誠學院教學改革研究項目“可編程邏輯器件相關課程創新型教學及實訓拓展研究”的資助(ZCJG201406)
中圖分類號:TN702;G642.0
文獻標識碼:A