劉寧莊 劉華旭
摘要:體驗式FPGA教學(xué)是一種有別于傳統(tǒng)教學(xué)方式的新的教學(xué)理論和教學(xué)思想,其主旨是強(qiáng)化在FPGA教學(xué)過程中學(xué)生的主體地位,充分發(fā)揮學(xué)生的主觀能動性和創(chuàng)造性,強(qiáng)調(diào)互動性和親歷性。針對目前FPGA教學(xué)中的主要內(nèi)容及主要問題,提出了改進(jìn)的教學(xué)方法,并構(gòu)建了構(gòu)件化的實踐平臺。通過學(xué)生的親身體驗,大大激發(fā)了學(xué)生的學(xué)習(xí)興趣,提高了學(xué)生面向社會的適應(yīng)能力。
關(guān)鍵詞:體驗式;可編程器件;FPGA;構(gòu)件化
中圖分類號:G642.423 文獻(xiàn)標(biāo)識碼:A 文章編號:1007-0079(2014)24-0069-03
隨著計算機(jī)技術(shù)、電子技術(shù)及IC技術(shù)的高速發(fā)展,集成電路的設(shè)計正朝著速度快、性能高、容量大、體積小和微功耗的方向發(fā)展,這種變化勢必會導(dǎo)致集成電路的設(shè)計規(guī)模日益增大、復(fù)雜程度日益增高。FPGA(Field Programmable Gate Array)是現(xiàn)場可編程器件的重要一員,它是在PAL、GAL、CPLD等可編程器件的基礎(chǔ)上發(fā)展起來的產(chǎn)物。FPGA設(shè)計及應(yīng)用是微電子學(xué)專業(yè)及電子相關(guān)類專業(yè)學(xué)生的一門專業(yè)課,也是后續(xù)學(xué)好SOPC技術(shù)及嵌入式系統(tǒng)的基礎(chǔ),具有很強(qiáng)的實踐性?,F(xiàn)在很多高等院校都開設(shè)了“FPGA設(shè)計及應(yīng)用”課程。該課程的實踐性較強(qiáng),在理論教學(xué)的同時,應(yīng)安排足夠的實驗課時,以培養(yǎng)學(xué)生的動手能力和創(chuàng)造力。通過對FPGA的學(xué)習(xí),應(yīng)能使學(xué)生了解FPGA器件結(jié)構(gòu)、特性,掌握設(shè)計方法,最終達(dá)到能進(jìn)行簡單的數(shù)字系統(tǒng)設(shè)計,并能對所設(shè)計的電子系統(tǒng)進(jìn)行模擬仿真或在實驗開發(fā)板上硬件實現(xiàn)。
一、FPGA教學(xué)中的主要內(nèi)容[1]
FPGA教學(xué)的主要內(nèi)容包括理論教學(xué)部分和實踐教學(xué)環(huán)節(jié)兩部分。理論部分主要涉及可編程器件的介紹、TOP-DOWN開發(fā)流程、硬件描述語言、EDA軟件的學(xué)習(xí)、FPGA設(shè)計中基本問題的分析及解決。
1.可編程器件的學(xué)習(xí)
在介紹FPGA之前,先介紹簡單低密度器件(SPLD)的三種結(jié)構(gòu)——可編程邏輯陣列(PLA)、可編程陣列邏輯(PAL)、通用陣列邏輯(GAL)的器件結(jié)構(gòu)及編程原理,然后學(xué)習(xí)復(fù)雜可編程器件(CPLD),學(xué)習(xí)它們之間的結(jié)構(gòu)差異及共同點,最后再學(xué)習(xí)與CPLD相似,但復(fù)雜度遠(yuǎn)遠(yuǎn)高于SPLD和CPLD的FPGA,學(xué)習(xí)其基本組成、工作原理、配置技術(shù)等。通過該階段的學(xué)習(xí),應(yīng)能使學(xué)生了解各類公司FPGA器件的結(jié)構(gòu)、特性及產(chǎn)品性價比,為后續(xù)FPGA實踐開發(fā)平臺的核心器件的選型做好準(zhǔn)備。
2.FPGA通用TOP-DOWN開發(fā)流程
FPGA的設(shè)計多采用自頂向下的設(shè)計方法,屬于現(xiàn)代設(shè)計方法。首先要自頂向下生成各設(shè)計層次,將設(shè)計任務(wù)分解為若干不同的功能元件,每個元件具有特定的輸入輸出接口,并具備特定的邏輯或時序功能;接著根據(jù)設(shè)計任務(wù)將各功能元件有機(jī)的組成頂層模塊、次頂層模塊,以此類推;最后設(shè)計其中的各個元件(COMPONENT)。自頂向下設(shè)計的各個層次,其描述方式既可以采用圖形、VHDL語言進(jìn)行設(shè)計描述,也可以采用混合描述方式完成設(shè)計任務(wù)。
3.硬件描述語言(HDL)[2]
目前國際最流行的已成為IEEE標(biāo)準(zhǔn)的兩種硬件描述語言是VHDL和VERILOG,兩種HDL各具特色。相比較而言,VHDL更加注重設(shè)計理念、語法嚴(yán)謹(jǐn)、結(jié)構(gòu)復(fù)雜,適合軍事、航天等專業(yè)領(lǐng)域。VERILOG簡單易懂、結(jié)構(gòu)簡單,接近于C語言。無論選擇哪種硬件描述語言,它們都是高速集成電路的硬件描述語言,即用軟件編程的方式來描述電子系統(tǒng)的邏輯功能、電路結(jié)構(gòu)和連接形式,與傳統(tǒng)描述相比,它更適合大規(guī)模系統(tǒng)的設(shè)計。在學(xué)習(xí)中除了要掌握必要的硬件描述語句之外,應(yīng)重點掌握它與常規(guī)的高級語言的區(qū)別,是如何描述硬件電路的,區(qū)分哪些語句僅僅是用于算法仿真,哪些語言具有可綜合的特性,信號和變量的區(qū)別,如何簡化電路結(jié)構(gòu)、優(yōu)化電路設(shè)計等,為后續(xù)FPGA平臺的設(shè)計打下良好的基礎(chǔ)。
4.EDA軟件的學(xué)習(xí)
(1)ModelSim功能仿真軟件。ModelSim仿真工具是Mentor公司開發(fā)的,支持VERILOG、VHDL以及它們的混合仿真,可以將整個程序分步執(zhí)行,使設(shè)計者直接看到程序下一步要執(zhí)行的語句,而且在程序執(zhí)行的任何步驟任何時刻都可以查看任意變量的當(dāng)前值,可以在Dataflow窗口查看某一單元或模塊的輸入輸出的連續(xù)變化等,比Quartus自帶的仿真器功能強(qiáng)大得多,是目前業(yè)界最通用的仿真器之一。它可以完全脫離硬件環(huán)境完成仿真,是學(xué)生學(xué)好硬件描述語言必須要掌握的EDA工具。
(2)Quartus集成開發(fā)環(huán)境。Quartus II是Altera公司的綜合性PLD/FPGA開發(fā)軟件,支持原理圖、VHDL、VERILOG以及AHDL(Altera Hardware Description Language)等多種設(shè)計輸入形式,內(nèi)嵌綜合器以及仿真器,可以完成從設(shè)計輸入到硬件配置的完整PLD設(shè)計流程。Quartus II可以在XP、Linux以及Unix上使用,除了可以使用腳本完成設(shè)計流程外,還提供了完善的用戶圖形界面設(shè)計方式,具有運(yùn)行速度快,界面統(tǒng)一,功能集中,易學(xué)易用等特點,是基于Altera器件FPGA開發(fā)必備的學(xué)習(xí)軟件。
5.FPGA設(shè)計中基本問題的分析及解決
在FPGA的設(shè)計中,時鐘、毛刺、時延等問題是長期困擾電子設(shè)計工程師的問題之一,是影響工程師設(shè)計效率和數(shù)字系統(tǒng)有效性與可靠性的主要因素,而這些基本問題的處理是否得當(dāng),直接影響系統(tǒng)的正常運(yùn)行。在時鐘的設(shè)計中,主要處理好全局時鐘、門控時鐘、多時鐘系統(tǒng)及時鐘歪斜問題。在毛刺的問題上,主要解決毛刺的發(fā)現(xiàn)和毛刺的消除方法,包括利用冗余項、采樣法及吸收法完成毛刺的處理。大部分FPGA器件都為時鐘、復(fù)位、預(yù)置等信號提供特殊的全局布線資源。充分利用這些資源,可以減少電路中的毛刺并且大大提高設(shè)計電路的性能。
二、目前存在的問題[3]
1.FPGA實踐教學(xué)的不足
由于FPGA本身涉及的內(nèi)容較廣,需要學(xué)習(xí)的理論知識較多,再加上學(xué)校實驗條件以及授課學(xué)時的限制,使得理論教學(xué)多于實踐,兩者不能很好地結(jié)合,學(xué)生在學(xué)習(xí)過程中往往注重理論的學(xué)習(xí),而忽視了實踐鍛煉。
2.FPGA教學(xué)中存在“重軟輕硬”的現(xiàn)象
目前高校的FPGA實驗設(shè)備絕大多數(shù)是購買由專業(yè)公司開發(fā)的FPGA實驗箱。硬件集成度高,功能齊全,因此學(xué)生在進(jìn)行實驗時通常不用進(jìn)行硬件設(shè)計,而是直接進(jìn)行軟件實驗、連接和調(diào)試。這樣的實驗會使學(xué)生偏重FPGA的軟件設(shè)計和調(diào)試,從而造成對FPGA硬件設(shè)計的不熟練甚至不重視。
3.FPGA課程實驗功能過于單一
FPGA課程實驗是以進(jìn)行基本的FPGA驗證性實驗為主。這些實驗對于初學(xué)者熟悉和掌握FPGA器件及其設(shè)計流程是必要的,但課程實驗設(shè)置中綜合性實驗不足,針對FPGA器件和其他處理器綜合應(yīng)用的實驗更是缺乏。顯然,這樣不利于提高學(xué)生FPGA的應(yīng)用水平。
三、FPGA教學(xué)方法改進(jìn)[4-6]
第一,項目驅(qū)動教學(xué)。將項目驅(qū)動法引入到FPGA實踐教學(xué)當(dāng)中,就是要結(jié)合具體課題或項目,把所要講授的各項理論知識和實踐技能按由淺入深、循序漸進(jìn)的原則分解到一個個實驗任務(wù)中,讓學(xué)生在規(guī)定時間內(nèi)依次完成項目教學(xué)任務(wù),并遵循全國大學(xué)生電子設(shè)計競賽的形式和設(shè)計要求。首先應(yīng)確定一個總?cè)蝿?wù),然后根據(jù)總?cè)蝿?wù)將其進(jìn)行具體的分解,在各個任務(wù)的順序安排上,必須合理按照教學(xué)進(jìn)度,在理論教學(xué)的基礎(chǔ)上,將項目驅(qū)動教學(xué)方法貫徹在整個教學(xué)過程中,使學(xué)生有目的的學(xué)習(xí)。
第二,以基礎(chǔ)實驗為前提,融入綜合實驗。在保證現(xiàn)有FPGA課程基礎(chǔ)性實驗教學(xué)的基礎(chǔ)上,適當(dāng)引入FPGA器件與其他處理器綜合應(yīng)用的實驗,以夯實學(xué)生FPGA的綜合應(yīng)用能力。
第三,“自制”實踐教學(xué)平臺的創(chuàng)建?!白灾啤睂嵺`教學(xué)平臺的創(chuàng)建是以教師為主導(dǎo)、學(xué)生參與的方式,讓學(xué)生有機(jī)會接觸到最新電路組成與設(shè)計方面的知識,增強(qiáng)理論知識向工程設(shè)計的轉(zhuǎn)化,側(cè)重知識傳授與創(chuàng)新能力的培養(yǎng)。FPGA實踐教學(xué)平臺的設(shè)計具有超前意識的設(shè)計性和綜合性實驗體系,可以讓學(xué)生自行設(shè)計,并充分發(fā)揮學(xué)生的潛力,實現(xiàn)體驗式教學(xué)。
四、創(chuàng)建實踐教學(xué)平臺的基本原則
1.強(qiáng)化自主創(chuàng)新,體現(xiàn)教學(xué)特點[7,8]
FPGA創(chuàng)新開發(fā)實驗教學(xué)平臺設(shè)計的核心在于培養(yǎng)學(xué)生的自主創(chuàng)新能力,目標(biāo)是培養(yǎng)掌握自主知識產(chǎn)權(quán)系統(tǒng)設(shè)計技術(shù)及創(chuàng)新設(shè)計能力的人才。目前有些項目設(shè)計完成后,盡管包含一些前人未曾有過的創(chuàng)新,甚至可以擁有自己的知識產(chǎn)權(quán),但卻沒有完全自主知識產(chǎn)權(quán)的項目。因此,創(chuàng)新能力的培養(yǎng)絕不能脫離自主創(chuàng)造設(shè)計能力的培養(yǎng),沒有了自主的創(chuàng)新便不是真正意義上的創(chuàng)新。
2.兼顧工程設(shè)計的要求
創(chuàng)新實驗平臺采用工程化設(shè)計規(guī)范與業(yè)界正在使用的開發(fā)工具兼容,并追蹤FPGA系統(tǒng)國際流行趨勢。創(chuàng)新實驗平臺除了應(yīng)滿足FPGA技術(shù)課程實驗和課程設(shè)計的要求外,還要滿足大學(xué)生課外創(chuàng)新活動、畢業(yè)設(shè)計及全國大學(xué)生電子競賽的需求。首先通過軟件編程調(diào)試和軟件的前、后功能仿真,讓學(xué)生鞏固掌握TOP-DOWN軟件設(shè)計方法以及電路設(shè)計原理,然后通過FPGA開發(fā)板進(jìn)行實際電路的設(shè)計制作,最終使學(xué)生掌握基本的FPGA應(yīng)用技能,培養(yǎng)學(xué)生的實踐和創(chuàng)新能力,檢驗課堂教學(xué)效果,促進(jìn)教學(xué)質(zhì)量的提高。
3.構(gòu)件化的設(shè)計
當(dāng)前電子類教學(xué)改革的重點是要擺脫傳統(tǒng)實驗教學(xué)的既定驗證模式,擺脫電子設(shè)計依賴獨立器件的束縛,讓學(xué)生在系統(tǒng)的高度來進(jìn)行統(tǒng)籌和設(shè)計,使其具有較強(qiáng)的軟硬件協(xié)同設(shè)計能力。構(gòu)件化的創(chuàng)新實驗平臺各功能模塊相對獨立,不但能適應(yīng)當(dāng)前的實驗要求,而且能夠經(jīng)過不同的功能組件滿足新技術(shù)和新實驗的要求,做到既有固定電路可用,又能自行擴(kuò)展電路,滿足二次開發(fā)和升級,達(dá)到讓學(xué)生親自去體驗、提高學(xué)生實際操作能力的目的。
五、構(gòu)件化教學(xué)平臺的基本框架設(shè)計[9]
可編程邏輯器件是整個實驗平臺的核心器件,依據(jù)目標(biāo)定位選擇市場上性價比較好的FPGA,最后選中ALTERA公司Cyclone II系列的低成本、低功耗器件作為主芯片,其具體型號為EP2C5T144C8。該FPGA芯片具有4608個邏輯單元,119808BIT RAM,26個9×9 bit嵌入式乘法器、2個PLL和8個全局時鐘,內(nèi)部資源豐富,可以滿足消費類、工業(yè)類、汽車業(yè)、計算機(jī)和通信類產(chǎn)品及相關(guān)應(yīng)用。整個實驗平臺分為核心板和功能組件擴(kuò)展板。
1.FPGA最小系統(tǒng)設(shè)計
Cyclone II核心芯片采用擴(kuò)展卡設(shè)計,方便升級、更換,也可以作為最小系統(tǒng)使用。包括電源、FPGA主芯片、EPC16配置芯片、128MbitsSDRAM存儲器、JTAG和AS下載接口。具體框架原理見圖1。
2.FPGA功能擴(kuò)展板的設(shè)計
功能擴(kuò)展板設(shè)計的總體法則是滿足教學(xué)基本要求、綜合實驗及學(xué)生電子競賽的要求。擴(kuò)展模塊分為三大類:數(shù)字部件擴(kuò)展功能接口、模擬部件擴(kuò)展接口、通信部件擴(kuò)展接口。其中在數(shù)字部件擴(kuò)展功能接口中,主要包含16*16點陣電路、交通燈電路、4*4鍵盤電路、4*8數(shù)碼管電路、8個LED顯示及撥碼開關(guān),在此功能平臺上可以完成一些基本數(shù)字電路的設(shè)計,包括一些門電路、編碼器、譯碼器、數(shù)據(jù)分配器的設(shè)計,其具體框架如圖2所示。
模擬部件、通信部件和FPGA核心板組合使用,可以完成一些小型綜合實驗,包括直流電機(jī)的控制、步進(jìn)電機(jī)的控制、FLASH芯片存儲的讀寫、溫度傳感器的信號采集等實驗。通信接口擴(kuò)展口主要完成FPGA和外圍器件的通訊與交換功能,包括單片機(jī)、ARM或其他工控設(shè)備的連接。此擴(kuò)展板可以用于一些綜合實驗的完成,比如遠(yuǎn)程控制功能的DCS控制系統(tǒng),其具體框圖如圖3、4所示。
六、構(gòu)件化的FPGA實踐平臺的實驗功能
在西安科技大學(xué)電氣與控制工程學(xué)院所開設(shè)的FPGA設(shè)計應(yīng)用課程教學(xué)中,實驗主要包括穿插在理論教學(xué)當(dāng)中的基礎(chǔ)實驗、課程設(shè)計及綜合實驗。
1.基礎(chǔ)課程實驗
基礎(chǔ)課程實驗包括簡單的門電路驗證、組合邏輯電路和時序邏輯電路實驗。其中時序邏輯電路實驗為教學(xué)重點,包括技術(shù)器,定時器,數(shù)控分頻器,觸發(fā)器,A/D、D/A時序設(shè)計。
2.綜合設(shè)計實驗
綜合性實驗是在基礎(chǔ)性實驗的基礎(chǔ)上完成的,主要運(yùn)用FPGA核心板和外圍的擴(kuò)展板完成一定的項目功能,其中包括信號發(fā)生器的設(shè)計、多功能時鐘的設(shè)計、LED點陣漢字滾動顯示、RS232通訊控制器的設(shè)計、VGA圖像顯示控制器設(shè)計、DDS的數(shù)字移相信號發(fā)生器、通信控制器設(shè)計、交通燈控制器、步進(jìn)電機(jī)驅(qū)動設(shè)計等。
3.工程項目實驗與設(shè)計
工程項目實驗是以實際的生產(chǎn)需求為背景,旨在鍛煉學(xué)生的工程訓(xùn)練能力,達(dá)到為社會培養(yǎng)實用型人才的目的。這些實驗內(nèi)容不拘一格,比如一些現(xiàn)場控制器的設(shè)計、工業(yè)IP核的設(shè)計等。通過不同組件開發(fā)平臺的綜合使用,針對實際工程要求設(shè)計出滿足要求的技術(shù)方案。
七、結(jié)論
構(gòu)件化創(chuàng)新實驗平臺目前已完成核心控制板和部分外圍功能板的設(shè)計,并已應(yīng)用于學(xué)生的綜合設(shè)計及畢業(yè)設(shè)計當(dāng)中。實踐證明,該平臺大大激發(fā)了學(xué)生自主學(xué)習(xí)的興趣,提高了教學(xué)質(zhì)量和教學(xué)效果。該系統(tǒng)能為學(xué)生的自主、開放性實驗創(chuàng)造條件,也為更新實驗教學(xué)方法、提高實驗教學(xué)質(zhì)量起到了積極的促進(jìn)作用。同時培養(yǎng)了學(xué)生的自主創(chuàng)新能力,增強(qiáng)了學(xué)生的社會競爭力。
參考文獻(xiàn):
[1]馮柳.FPGA 設(shè)計課程教學(xué)方法的研究[J].中國電力教育,2010,(18):137-139.
[2]柏俊杰,張小云,吳英.VHDL教學(xué)實踐與探索[J].重慶科技學(xué)院學(xué)報(社會科學(xué)版),2012,(11).
[3]王革思,劉勉,羿宗琪.FPGA創(chuàng)新開發(fā)實驗教學(xué)平臺的設(shè)計與應(yīng)用[J].中國電力教育,2009,(10):145-146.
[4]鄭恭明.FPGA創(chuàng)新實驗平臺的設(shè)計與應(yīng)用[J].實驗技術(shù)與管理,2012,(12):113-114.
[5]馬志強(qiáng),張德興,孔昭煜.FPGA課程教學(xué)改革研究[J].中國校外教育,2009,(8):248.
[6]朱磊,衛(wèi)建華,邱春婷.FPGA課程實踐環(huán)節(jié)教學(xué)改革[J].高等工程教育研究,2008,(S1):134-136.
[7]鮑慧玲,金劍波.基于FPGA的教學(xué)平臺設(shè)計[J].淮北師范大學(xué)學(xué)報(自然科學(xué)版),2012,(3):67-69.
[8]朱?;?,郭朝勇,李寶峰,等.體驗式創(chuàng)新教學(xué)的研究及教學(xué)實踐[J].Third International Conference on Education Technology and Training (ETT),2010.
[9]李志強(qiáng),楊波,孫濤.一種基于FPGA的面向網(wǎng)絡(luò)應(yīng)用的開發(fā)平臺設(shè)計[J].山東科學(xué),2010,(10).
(責(zé)任編輯:孫晴)