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