吳華
【摘 要】“FPGA開發與應用”這門課主要應用VHDL語言進行數字系統設計,本文提出采用項目化教學使學生提高VHDL語言的編程能力,理解自頂向下的系統設計方法,熟悉利用ISE平臺進行數字系統設計流程,激發學生的學習興趣。
【關鍵詞】項目化教學;FPGA開發與應用;VHDL
1 基于FPGA的數字系統設計簡介
FPGA是Field Programmable Gate Array的縮寫,即現場可編程門陣列,它完全由用戶通過軟件進行編程和配置,從而完成某種特定的功能,且可以反復擦寫的新型器件。傳統的數字系統設計方法是自底向上的設計方法,它是以各種不同的中小規模集成電路芯片為基礎,按照功能要求在印刷電路板上將不同的芯片連接起來,構成實現某種功能的電子系統。基于FPGA[1]的數字系統設計方法采用自頂向下的設計方法,把系統分成若干個基本單元,然后再把每個基本單元劃分為下一層次的基本單元。它以FPGA芯片為核心,通過編程的方式完成系統功能的設計并將設計寫入FPGA芯片內,使芯片具有設計的功能。設計過程中通過不同階段的仿真可以及時檢查設計的正確性,電路的修改只需要通過修改程序并重新下載到FPGA中即可。因此基于FPGA的數字系統設計易于測試和修改,設計周期短,便于移植。
2 項目化教學實施過程
“FPGA開發與應用”這門課是針對大三計算機網絡工程專業學生開設的一門專業課,學生在前期已學過《電路》、《數字電路》、《模擬電路》、《C語言程序設計》等課程。通過該門課,使學生掌握VHDL語言(超高速集成電路硬件描述語言)的編程方法,能熟練應用ISE平臺進行數字系統設計,理解自頂向下的系統設計方法,積累數字系統設計經驗。
傳統的教學方法重在介紹VHDL語言的語法規則和語句,知識點較零散,學起來較枯燥,而且不知如何應用這些語句。而項目化教學重在將知識點融在項目中理解,學生通過做一個小項目可以掌握相應的知識點,并通過3-4人一組協作完成,培養其團隊合作能力、溝通能力和語言表達能力等。項目化教學真正實現了三個轉變:以教師為中心轉變為以學生為中心;以課本為中心轉變為以項目為中心;以課堂為中心轉變為以實際經驗為中心[2]。
下面將通過“點亮兩位數字”項目分析如何實施項目化教學[3][4]。“點亮兩位數字”項目即利用Xilinx公司的ISE軟件平臺進行系統設計,通過VHDL語言編程實現顯示兩位數字的功能,并最終生成二進制文件,下載到Basys2開發板上驗證。
2.1 項目立項階段
教師先向學生展示最終要完成的效果,講明項目任務,再對學生進行分組,盡量采取自愿原則,教師可對小組成員適當調整,保證每組中至少有一人學習情況較好,并任命一人為組長。
2.2 需求分析階段
根據項目要求,分析最終要呈現的效果,確定程序的功能模塊和性能需求。比如要用兩個數碼管顯示、動態掃描問題、譯碼問題等。
2.3 系統設計階段
首先每個小組要確定總體方案設計,例如分哪幾個模塊、每個模塊要實現什么功能,再進行詳細設計,包括用Visio軟件繪制系統功能結構圖(如圖1所示)、每個模塊如何用VHDL語言實現等。在詳細設計中,涉及每個模塊具體的功能,寫出詳細的系統設計報告,以此進行編碼和測試,從而保證系統設計的可靠性。可以由組長分配任務,讓每個組員完成一個模塊的編寫工作。
2.4 編碼、測試階段
教師檢查每組的系統功能結構圖,若無問題,則可以開始編程。在用VHDL語言編程階段,學生可根據系統功能結構圖分模塊進行調試,先將底層三個模塊(分頻器、控制模塊、譯碼器)都編好后,通過ISE軟件編譯檢查語法錯誤、并進行仿真,若無問題,再進行頂層文件編寫;若有問題,則需修改源代碼,直至無錯誤為止。頂層文件主要是通過元件例化語句將底層三個模塊進行連接,編好后,也需要經過ISE軟件編譯檢查語法錯誤。
2.5 下載、驗證階段
最后將生成的二進制文件下載到basys2開發板上驗證,若能正確顯示兩位數字,即成功。若不能正常顯示,則需返回到ISE軟件中,修改底層文件或頂層文件,直至驗證成功為止。
2.6 驗收階段
在編寫代碼的過程中,教師可適當給予指導,給學生提供一些參考資料或相似的例子,幫助學生完成項目。教師要檢查各組最終能否實現“顯示兩位數字”,協助并指導各組,完成編寫“顯示兩位數字”項目文檔,并對各組進行成績評定。各組組長向全班匯報、展示本組的作品,并列舉項目開發中遇到的各種問題,其他組的學生可以提問,最后教師對各組進行點評。各組組長根據小組成員的貢獻對小組成員進行打分,教師根據小組成績和組長對各成員的打分,確定每位學生的成績。
3 總結
由于傳統的教學方法重在介紹VHDL語言的語法和語句,學生學起來較枯燥,因此結合《FPGA開發與應用》課程的特點,通過“顯示兩位數字”項目,展示如何在《FPGA開發與應用》課程中實施項目化教學。通過項目化教學,不但能使學生掌握VHDL語言的編程方法和自頂向下的系統設計方法,熟悉真實項目的實施過程,而且通過分組協作完成一個項目,可以鍛煉學生的團隊協作能力、溝通能力、語言表達能力等,從而激發學生的學習興趣,提高學生的自主學習能力。
【參考文獻】
[1]陳學英,李穎.FPGA應用實驗教程[M].國防工業出版社,2013,05.
[2]張學琳,陳齊超,段珊,胡波.項目教學法在“C語言課程設計”中的研究與應用[J].實驗技術與管理,2011,28(02):164-167.
[3]吳玲.《EDA技術與應用》項目化教學改革研究與探索[J].科技信息,2012(21):244.
[4]張輝,王彥.項目教學法在《EDA技術及應用》課程中的應用[J].新課程研究:高等教育,2011(2):73-76.
[責任編輯:楊玉潔]