劉春玲
(黑龍江信息技術(shù)職業(yè)學(xué)院,黑龍江 哈爾濱 150025)
FPGA教學(xué)的實(shí)踐研究
劉春玲
(黑龍江信息技術(shù)職業(yè)學(xué)院,黑龍江 哈爾濱 150025)
FPGA是目前電子設(shè)計(jì)中的熱點(diǎn)之一。在教學(xué)中,如何調(diào)動(dòng)學(xué)生的學(xué)習(xí)興趣,培養(yǎng)學(xué)生的創(chuàng)造能力,是教育者應(yīng)該思考的問(wèn)題。文章從FPGA教學(xué)實(shí)踐出發(fā),對(duì)教學(xué)改革進(jìn)行了探索和嘗試,介紹了一些觀點(diǎn)和具體做法。
FPGA教學(xué);數(shù)字系統(tǒng)設(shè)計(jì);電子設(shè)計(jì)自動(dòng)化
FPGA(Field-Programmable Gate Array)即現(xiàn)場(chǎng)可編程門(mén)陣列,一種半定制的集成電路,主要用在航空航天等高端領(lǐng)域。隨著技術(shù)的進(jìn)步和成本的降低,F(xiàn)PGA性價(jià)比越來(lái)越高、集成度越來(lái)越大,可編程性能方面呈現(xiàn)出快速構(gòu)建系統(tǒng)(System-In-Weeks)的優(yōu)勢(shì),逐步滲透至計(jì)算機(jī)、通信、控制、消費(fèi)電子和汽車(chē)電子等民用領(lǐng)域。尤其是在數(shù)據(jù)通信、無(wú)線通信、先進(jìn)消費(fèi)電子領(lǐng)域,F(xiàn)PGA更是已經(jīng)取代了一些處理器,成為新一代的系統(tǒng)級(jí)的硬件開(kāi)發(fā)平臺(tái),各高校也紛紛開(kāi)設(shè)了FPGA課程。
FPGA是在PAL、GAL、CPLD等可編程器件的基礎(chǔ)上進(jìn)一步發(fā)展的產(chǎn)物。它是作為專用集成電路(ASIC)領(lǐng)域中的一種半定制電路而出現(xiàn)的,既解決了定制電路的不足,又克服了原有可編程器件門(mén)電路數(shù)有限的缺點(diǎn)。由于涉及門(mén)電路、時(shí)序電路以及硬件描述語(yǔ)言開(kāi)發(fā),因此,學(xué)習(xí)這門(mén)技術(shù)之前,應(yīng)對(duì)數(shù)字電路課程和計(jì)算機(jī)軟件編程有一定程度的認(rèn)識(shí)。此外,這門(mén)技術(shù)的實(shí)踐性較強(qiáng),應(yīng)給與足夠的實(shí)驗(yàn)課時(shí),以培養(yǎng)學(xué)生的動(dòng)手能力和創(chuàng)造力。通過(guò)對(duì)FPGA的學(xué)習(xí),應(yīng)能使學(xué)生了解FPGA器件結(jié)構(gòu)、特性,掌握設(shè)計(jì)方法,最終達(dá)到能進(jìn)行簡(jiǎn)單的數(shù)字系統(tǒng)設(shè)計(jì),并能對(duì)所設(shè)計(jì)的電子系統(tǒng)進(jìn)行模擬仿真或在實(shí)驗(yàn)開(kāi)發(fā)板上硬件實(shí)現(xiàn)。
(1)遵循學(xué)習(xí)規(guī)律,教學(xué)內(nèi)容應(yīng)循序漸進(jìn)給出新知識(shí)點(diǎn)。以學(xué)生為主體,強(qiáng)調(diào)“學(xué)習(xí)者取向”。教學(xué)內(nèi)容的安排應(yīng)從最簡(jiǎn)單的數(shù)字電路設(shè)計(jì)和已經(jīng)掌握的基本的語(yǔ)言語(yǔ)法開(kāi)始,讓初學(xué)者不知不覺(jué)中掌握了一種新技術(shù),利用所學(xué)過(guò)的數(shù)字電路知識(shí)和C語(yǔ)言類似的基本Verilog語(yǔ)句就能實(shí)現(xiàn)。然后在此基礎(chǔ)之上安排一些新的電路設(shè)計(jì)點(diǎn)和介入Verilog HDL語(yǔ)法。例如,在講述半加器電路設(shè)計(jì)時(shí)可以采用數(shù)字電路中的設(shè)計(jì)方式,使用兩個(gè)門(mén)(與門(mén)和或門(mén))就可以實(shí)現(xiàn)半加器的設(shè)計(jì)。然后分析電路的行為,完全可以使用拼接符去實(shí)現(xiàn),并重點(diǎn)從功能角度講述。即:兩個(gè)一位數(shù)相加,結(jié)果最多為兩位,結(jié)果中高位即為進(jìn)位位,低位則為和輸出位。語(yǔ)法實(shí)現(xiàn)為assign{co,s}=a+b,一方面引入了新的語(yǔ)法(拼接符{}),另一方面從“行為”角度講述了半加器的工作,避開(kāi)了數(shù)字電路中的化簡(jiǎn)過(guò)程,且符合學(xué)生思考解決問(wèn)題的思路,課堂教學(xué)效果很好。
(2)教學(xué)內(nèi)容應(yīng)盡可能結(jié)合應(yīng)用或者結(jié)合應(yīng)用的構(gòu)成部分。FPGA是一項(xiàng)實(shí)用技術(shù),在小的電路設(shè)計(jì)系統(tǒng)中經(jīng)常作為外設(shè)的譯碼電路,可以結(jié)合多路譯碼器電路進(jìn)行設(shè)計(jì)應(yīng)用,在實(shí)驗(yàn)過(guò)程中盡可能采用此類內(nèi)容作為實(shí)驗(yàn)。在較大型的設(shè)計(jì)中可能會(huì)涉及到DSP算法或者復(fù)雜的通信協(xié)議,結(jié)合學(xué)生已經(jīng)掌握的知識(shí)點(diǎn)設(shè)計(jì)一些內(nèi)容進(jìn)行講授。如:奇偶校驗(yàn),在串行口的通信中校驗(yàn)是基本的功能之一,在Verilog HDL中使用一條簡(jiǎn)單的語(yǔ)句“assign P= ^D;”就可以實(shí)現(xiàn)。一方面實(shí)現(xiàn)了使用邏輯門(mén)電路很難實(shí)現(xiàn)的算法,另一方面也增加了新語(yǔ)法(“^”為縮位異或運(yùn)算)的應(yīng)用。再如:并串轉(zhuǎn)換和串并轉(zhuǎn)換,是現(xiàn)在串行通信中幾乎不可缺少的組成部分,大多數(shù)教材講述的方法不具有實(shí)用價(jià)值,應(yīng)該結(jié)合應(yīng)用時(shí)的通信技術(shù),增加部分控制信號(hào),使講述的內(nèi)容能夠直接應(yīng)用到系統(tǒng)中。
(3)入門(mén)知識(shí)點(diǎn)要盡可能簡(jiǎn)單,最好使用所學(xué)知識(shí)引導(dǎo)進(jìn)入新的知識(shí)點(diǎn),然后擴(kuò)展至知識(shí)面,最后達(dá)到全面掌握本課程全部知識(shí)點(diǎn)的范疇?,F(xiàn)有教學(xué)內(nèi)容的入門(mén)教學(xué)方式不符合思維方式,它采用的方法為從抽象化到具體化的安排過(guò)程。現(xiàn)有的教材內(nèi)容一般在第一章介紹EDA技術(shù)領(lǐng)域的一些新概念,發(fā)展過(guò)程和擴(kuò)展至系統(tǒng)級(jí)中的一些內(nèi)容,例如IP的概念、固核硬核軟核等。這些內(nèi)容在基礎(chǔ)類教學(xué)中往往不會(huì)涉及,有些即使涉及了,學(xué)生也不明白和前面的概念之間的聯(lián)系,不利于教學(xué)的開(kāi)展。按照常規(guī)的思維方式,教學(xué)的入門(mén)可以從一個(gè)熟悉的知識(shí)點(diǎn)入手,進(jìn)而輻射至其他的新知識(shí)點(diǎn)、新概念。在教學(xué)內(nèi)容安排上,可以從與門(mén)電路設(shè)計(jì)開(kāi)始,然后引入兩個(gè)門(mén)電路同時(shí)實(shí)現(xiàn),并給出HDL并行執(zhí)行的概念,有利于重點(diǎn)突出HDL的特點(diǎn),激發(fā)學(xué)生學(xué)習(xí)FPGA的積極性。
(4)簡(jiǎn)化邏輯產(chǎn)生過(guò)程,注重輸入輸出之間的行為關(guān)系。部分FPGA教學(xué)內(nèi)容安排在數(shù)字電路設(shè)計(jì)之后。受數(shù)字電路設(shè)計(jì)思想的影響,很多學(xué)生認(rèn)為HDL僅僅是用于描述門(mén)級(jí)電路的,而實(shí)際上HDL能夠從更高的系統(tǒng)級(jí)角度描述電路行為。以N位全加器為例,不需要知道內(nèi)部電路構(gòu)成的細(xì)節(jié),從行為級(jí)角度就可以直接描述出電路。再如:在教學(xué)內(nèi)容的后期設(shè)計(jì)一個(gè)簡(jiǎn)單的CPU。CPU是復(fù)雜數(shù)字電路的代表,通過(guò)CPU的設(shè)計(jì)一方面可以使學(xué)生掌握CPU的基本原理和設(shè)計(jì)方法,另一方面可以讓學(xué)生們了解,即使再?gòu)?fù)雜的電路都可以使用HDL描述,讓學(xué)生們有系統(tǒng)級(jí)的概念,為今后進(jìn)行更加復(fù)雜的系統(tǒng)設(shè)計(jì)打下思想基礎(chǔ)。
(5)仿真要與物理綜合結(jié)果相結(jié)合。從物理意義上講解,注重設(shè)計(jì)綜合細(xì)節(jié)的說(shuō)明。EDA仿真工具一般有專用仿真工具和廠家軟件自帶的仿真工具兩類。專業(yè)的仿真工具,如modelsim,嚴(yán)格遵守Verilog HDL仿真語(yǔ)法要求;而廠家的仿真一般會(huì)結(jié)合綜合效果,不完全符合HDL語(yǔ)言本身的要求。例如,若有always@(a)c=a&b;在modelsim中進(jìn)行仿真結(jié)果和QuartusII中的仿真結(jié)果不同。在modelsim中,若b信號(hào)發(fā)生了變化,仿真結(jié)果不會(huì)出現(xiàn)變化,而在QuartusII中若b變化了,c輸出也會(huì)跟著變化的(規(guī)律是與門(mén)的規(guī)律)。從語(yǔ)法角度上講,若b信號(hào)變化,但它不在敏感信號(hào)列表里,所以不會(huì)觸發(fā)always塊,因此modelsim仿真結(jié)果不變;而QuartuII認(rèn)為,這個(gè)代碼就是用來(lái)描述一組合電路-與門(mén)的,它會(huì)按照與門(mén)的輸入輸出關(guān)系變化仿真結(jié)果,實(shí)際教學(xué)中應(yīng)注意兩者仿真的不同,并對(duì)學(xué)生進(jìn)行科學(xué)的解釋。當(dāng)然,教學(xué)過(guò)程中應(yīng)盡可能引導(dǎo)學(xué)生把這類代碼寫(xiě)成完整的形式:always@(a,b)c=a&b,避免出現(xiàn)不必要的錯(cuò)誤結(jié)果。
The FPGA Teaching Practice Research
LIU Chun-ling
(Information Technology Vocational College in Heilongjiang Province,Harbin,Heilongjiang 150025,China)
At present,the FPGA is one of the hot spots of electronic design.Educators should reflects on how to arouse students'interest in learning and cultivate the students'creative ability in the process of teaching.This article,starting from the practiceof the FPGA teaching,exploresand attempts the teaching reform,introducessome ideasand specificmethods.
the FPGA teaching;digitalsystem design;electronic design automation
G434
A
2095-980X(2016)08-0135-01
2016-07-14
劉春玲(1985-),女,湖北宜昌人,大學(xué)本科,講師,主要研究方向:FPGA實(shí)踐研究。