福建信息職業(yè)技術學院 陳岳林
基于現場可編程門陣列(FPGA,Field Programmable Gate Array)器件,開發(fā)了一體化教學硬件平臺及其配套的實踐項目。該硬件平臺利用Cyclone IV FPGA,在外圍加入顯示模塊、按鍵模塊、存儲模塊、時鐘模塊、溫度模塊和擴展接口等,與配套項目教材結合進行一體化教學,可提高高職學生的FPGA設計實踐能力。該平臺已成功應用于高職電子信息工程技術專業(yè)的FPGA教學,教學效果良好。
隨著可編程邏輯技術的不斷進步和創(chuàng)新,FPGA器件已被廣泛應用于通信、航天、圖像處理、醫(yī)療電子、人工智能等領域。由于其現場邏輯功能可重構且具有高集成度、高密度和高性能等特點,因而得到了迅猛發(fā)展。
面向社會對這方面人才的需求,大多數院校都開設FPGA相關的專業(yè)課程,但高職學生不同于本科學生,高職學生理論基礎較差,實踐動手能力較強,教學層面不應該停留在基礎理論和技術的講解上,而應在實踐操作中學習。但FPGA芯片相比單片機貴不少,導致FPGA實驗箱的價格高,且實驗箱兼容內容多,導致實驗箱的體積大,不方便教學使用,再者,FPGA領域發(fā)展快,實驗箱升級不方便費用又高,實驗箱易淘汰。為了更好地培養(yǎng)學生的學習興趣及實際操作能力,本文搭建相應的硬件平臺并配套實驗項目,讓學生更直觀地看到各種電路的實現過程及實現效果,建立一個以項目化學習與活頁式教材結合的一體化教學平臺。
結合高職FPGA教學目標,以“夠用、通用、可擴展”的原則進行硬件平臺設計。通過該平臺,鍛煉學生的實踐應用能力,掌握FPGA基本開發(fā)能力。學有余力的學生還可以借助對平臺進行擴展外圍電路,自由設計實驗項目,參與電子設計競賽、教師的科研項目等等,實現該平臺應用多樣化。
為增強硬件平臺的通用性,提升平臺的可擴展性,方便學生直觀理解FPGA芯片及外圍電路連接方式,采用FPGA最小系統板和外圍電路分離的設計方式搭建硬件平臺。整個平臺通過FPGA最小系統板和擴展板實現,兩塊電路板用排針連接,可以共享部分資源,也可以單獨使用,它們擁有各自獨立的供電系統。這樣根據需要,FPGA最小系統板可選擇不同的FPGA芯片進行設計,比如Intel(原Altera)、Xilinx或是國產的FPGA器件。
FPGA核心板硬件是一個FPGA最小系統板,主要包括FPGA芯片、電源模塊、JTAG下載接口、晶振及外部時鐘接口電路、I/O擴展接口電路、EPCS配置芯片電路等。本設計中采用的FPGA為Intel公司Cyclone IV系列的EP4CE6E22C8N,內部包含有6272個邏輯單元(LE)和270Kbit的片上RAM,有91個用戶I/O口,封裝為TQFP144,對于FPGA的初學者,芯片資源夠用。電源輸入采用USB Type-C接口,同時設計了3個獨立按鍵和4個發(fā)光二極管,方便核心板調試,也可支持核心板單獨使用。
FPGA擴展板上設計的外圍電路模塊主要有:USB轉串口模塊、按鍵、七段數碼管、發(fā)光二極管、蜂鳴器、溫度模塊DS18B20、時鐘模塊DS1302和存儲模塊24C02等。其中USB轉串口模塊采用USB Type-A接口,除了支持串口通信外,可給板子提供電源;八段數碼管設計了6位,方便多位顯示;發(fā)光二極管采用紅黃綠三種顏色,方便項目交通燈使用,發(fā)光二極管在電路板上布局也有針對性考慮,使用更直觀;按鍵有設計了1個8位的撥碼開關和4個獨立按鍵,使用靈活。
兩塊板組合成一個實驗平臺,該平臺可以讓學生快速驗證FPGA相關設計,實現理論知識和實踐應用融合一體。
(1)電源電路設計
EP4CE6E22C8N的供電需要有3個電壓,分別為3.3V、2.5V和1.2V,采用3片AMS1117芯片來供電。電源接口采用USB Type C接口,方便使用。此外,對于EP4CE6E22C8N的供電引腳都加了0.1uF的電容,全部擺放在PCB的背面,即擺放在芯片底部,盡量靠近芯片的供電引腳,保證電源完整性。
(2)時鐘電路設計
時鐘電路可以說是FPGA設計的心臟,是必不可少的。為了后續(xù)教學實驗方便,設計了2個時鐘電路,一個是用有源晶振直接產生高速時鐘50MHz,一個是用MIC1557 RC振蕩產生低速時鐘10Hz左右。2個時鐘信號都接入EP4CE6E22C8N芯片的專用時鐘引腳,進入全局時鐘網絡。全局時鐘網絡是芯片內部的一種全局布線資源,對稱分布,它可以保證時鐘信號到達各個目標邏輯單元的觸發(fā)器的時延基本相同。
(3)數碼管電路設計
設計中采用6位一體的數碼管,FPGA管腳的最大驅動電流為8mA,不適合直接驅動數碼管,這里是使用型號為9012的PNP三極管驅動數碼管的位選端(公共端),提高電流驅動能力。
實踐課是FPGA課程不可缺少的環(huán)節(jié)。實踐課的目的是對學生進行Verilog HDL語法訓練和FPGA平臺的操作訓練,通過訓練加強學生對課程知識的理解,并提高學生的動手操作能力。良好的實踐項目設計既可以服務于理論教學,幫助學生有效地掌握已學理論知識,又可以引導學生提高電路設計及程序設計的能力。實踐項目的選取由簡單到復雜、循序漸進,并將Verilog HDL的應用知識點分散到各個實踐項目中進行介紹。采用典型的基本數字電路模塊有最基本的邏輯門電路、數據選擇器、譯碼顯示、觸發(fā)器、計數器、分頻器、移位寄存器等,配合流水燈、電子秒表、電子骰子和交通燈項目等設計實例,讓學生從整體上把握Verilog HDL的特點和設計原則,掌握常用組合邏輯電路、時序邏輯電路、狀態(tài)機以及FPGA內部資源使用的設計方法。
當撥碼開關撥到高電平時,表示開始擲骰子,骰子循環(huán)顯示1~6的示意圖如圖1所示,黑點表示點亮對應的燈,白點表示不亮;當撥碼開關撥到低電平時,表示骰子停下,點亮燈的數目即為此次點數。要求循環(huán)顯示的時間間隔為50ms。
圖1 骰子1~6顯示圖
硬件平臺設計7個LED與FPGA的IO口直接相連,系統時鐘輸入為50MHz,任務要求50ms間隔循環(huán)顯示,則需要一個分頻器電路,將50MHz分頻成20Hz。先利用FPGA芯片內部的PLL做第一次分頻,把50MHz分頻成2KHz作為主時鐘,再將2KHz時鐘采用計數分頻實現,產生一個周期50ms,高電平為0.5ms的脈沖信號,該信號作為后級計數器的使能信號En_20Hz。骰子循環(huán)顯示1~6,且要控制骰子的開始與停下,所以需設計一個帶使能、計數從1~6的6進制計數器。設計時計數器的時鐘驅動采用PLL分頻出來的2KHz,將計數分頻器和計數器模塊通過使能信號En_20Hz連接后,兩個模塊的時鐘都是2KHz時鐘,符合FPGA設計優(yōu)先用同步設計思想。顯示效果是指定的圖形效果,則需根據硬件電路完成一個顯示譯碼電路。因此,整個實驗任務的實現框圖如圖2所示。
圖2 電子骰子實現框圖
將整個工程仿真正確后,進行管腳綁定、時鐘約束,最后將生成的sof文件通過JTAG下載到硬件平臺的FPGA器件內進行驗證,實際運行效果如圖3所示,右下角亮了5個紅燈,表示骰子點數顯示為5。
圖3 骰子實際顯示效果
完成一個通用的FPGA平臺的設計,配套項目化教材用于教學。通過項目式教學法,把理論和實際應用結合起來,提高學生電子設計的綜合能力,培養(yǎng)學生主動獲取知識,靈活運用知識的能力,真正把FPGA玩轉起來。
目前,該硬件平臺和配套的實踐項目已用于我校的FPGA課程教學中,并取得良好的效果。通過該課程的學習,提高了學生FPGA設計水平,在TI杯福建省大學生電子設計競賽高職組中,學生用FPGA平臺進行設計,項目獲得高職高專組一等獎,同時該課程也開放給實驗室參加技能大賽集訓的學生。以賽促教,以賽促學,不斷調整FPGA課程項目教學,培養(yǎng)學生電子設計的興趣,提升技術技能。