



摘" 要:針對目前FPGA應用技術課程教學內容中多課程實驗內容融合度欠缺、實踐教學與工程應用契合度不夠等問題,提出教學案例選取應結合專業培養方向、FPGA工程師應用細分領域和學科融合的教學內容改革措施。為面向工程應用與FPGA職業技能細分領域,實驗系統基于模塊化開發,并根據學生能力水平設計教學案例,分為初階篇與進階篇。實踐證明,改革措施不僅可以加深學生對理論知識的理解,還可以鍛煉他們的工程實踐能力,為地方應用型高校FPGA應用技術課程教學改革提供一定的參考。
關鍵詞:FPGA應用技術;案例教學;課程融合
文章編號:1671-489X(2025)04-00-04
DOI:10.3969/j.issn.1671-489X.2025.04.0
0" 引言
在數字電路設計中,FPGA具有編程語言豐富、數據并行處理、編程次數不做限制和設計方案驗證時間短等特點[1],硬件平臺采用EDA技術實現電子應用系統中既定功能和相關技術指標。基于FPGA的軟硬件開發平臺,項目開發靈活性較高,與各門學科聯系緊密,常應用于雷達、通信信號的預處理、高速數據傳輸、非標準協議的開發、圖像視頻編解碼和大數據加速等眾多領域。
FPGA應用技術是通信、電子信息類等專業的技術課程,在部分高校中作為數字邏輯電路后續課程的一種延展,目的是增強學生對專業知識的理解,培養綜合實踐能力。課程的入門具有一定難度,基于教學的基本需求,學生需要掌握FPGA的基本概念、原理和設計方法,通過項目開發熟練掌握FPGA工具的使用。在工程項目開發中,將FPGA初學者培養成一名合格的工程師,需要多個項目的實練與打磨。為了加強對學生專業能力的培養,本文在教學內容中設計一些工程案例,幫助學生獲取工程開發經驗,提高教學質量,滿足通信、電子信息產業對人才的需求。
1" 課程教學現狀
1.1" 課程內容分析
通過專業調研和查閱高校課程開設情況,FPGA應用技術課程的學習一般設置在數字邏輯電路、計算機語言等課程之后。該課程一般作為選修課,教學方法以理論與實踐相結合為主,教學課時設置為32課時或48課時不等,教學內容主要包括六個方面:第一章,認識數字系統設計開發環境;第二章,Verilog設計基礎;第三章,組合邏輯電路設計;第四章,時序邏輯電路設計;第五章,數字系統的驗證;第六章,數字系統設計實踐[2]。
理論講授重點為Verilog設計基礎,了解硬件描述語言的基本概念,學習數字系統的設計方法;FPGA應用技術課程實驗內容以數字電路為主,通過對組合邏輯門電路中加法器、譯碼器和表決器的學習,掌握組合邏輯電路的建模方法;對D觸發器、計數器和分頻器等電路的設計建立同步時序電路的設計思想;數字系統驗證是確保電路模型符合設計規范,確定電路的邏輯功能是否正確。
1.2" 教學實驗設備分析
FPGA應用技術課程的實踐性很強,為提高學生的學習積極性,需要配備相應的實驗設備。完整的FPGA教學實驗設備需要配置計算機與FPGA硬件設計平臺。基于FPGA的系統教學平臺在市場上種類有很多,主要分為試驗箱和最小系統開發板兩類。試驗箱體積大,優點是集成度高、外設配置功能多,缺點是價格昂貴、器件損壞后維修困難;最小系統開發板價格低廉,缺點是幾乎沒有外設,需要實訓室額外提供耗材做擴展性實驗[3]。
1.3" 教學中的問題分析
數字電路教學案例簡單,例如,組合邏輯電路設計中三人表決器、3-8譯碼器等電路設計與實際工程應用貼合度不高,綜合實踐設計章節中的案例與之前章節的內容關聯度不夠,沒有延續性。實驗課前的準備階段,教師常常會把源代碼與仿真文件提供給學生,學生只需要根據需求修改參數,完成編譯仿真等操作步驟,最后查看仿真結果完成實驗。學生在實驗過程中甚至會出現自始至終沒有寫過一遍完整程序的情況,自然也就不會遇到相關的電路設計問題,更不會去思考實現同樣的功能有幾種設計方法。部分學校由于缺少開發板,導致學生對FPGA的電路設計沒有直觀印象,只停留在功能仿真階段,無法培養綜合能力。
課程內容多、教學課時少是現階段FPGA應用技術課程教學的一個突出問題,王靜霞[2]給出的參考教學課時是80課時,這在緊張的教學安排中是難以實現的。作為選修課,FPGA教學課時常設置為48課時,其中實踐課課時排課較少會導致學生缺乏動手能力。因此,設計合適的教學案例讓學生在學中做、做中學是很有必要的。
無論是在高校的教學還是在企業項目開發中,FPGA的學習都存在一定的誤區。FPGA的學習者往往會把學習重點放在Verilog HDL語言上,而忽視了數字邏輯電路是FPGA的基礎。教師在教學過程中一定要時常引導學生對數字電路的理解,Verilog HDL語言只是一個搭建門電路的工具,不能用軟件的思維去開發項目。
2" 課程教學內容改革
2.1" 結合專業培養方向
以桂林師范高等專科學校為例,學校有兩個專業開設FPGA應用技術課程,分別是電子信息工程技術專業和現代移動通信專業。這兩個專業的人才培養目標是培養面向電子、通信設備制造業和信息技術服務等行業的設備調試、嵌入式系統設計工程技術人員。因此,教學內容設計要結合專業的培養方向。在電子、通信領域中,采用FPGA作為主處理器進行項目開發的應用有很多,授課教師可以根據自己的專業領域設計教學案例,讓教學內容更貼近工程實踐。
2.2" 結合FPGA工程師應用細分領域
面向社會需求的FPGA應用開發工程師在細分領域可以分為邏輯開發工程師、邏輯驗證工程師和邏輯測試工程師。FPGA應用技術課程開始階段,教師可以向學生講述FPGA應用的崗位分工和需要掌握的職業技能、熟練度與相關嵌入式開發軟件比較等,引導學生去招聘網站查看崗位職責、需求,讓學生對未來的規劃、就業產生直觀的認識,激發學習興趣。關于課程內容教師要先做好頂層設計,將項目分成不同的子模塊(包含邏輯功能開發、數字邏輯電路功能驗證、人機交互等)和整機電路測試等,學生可以按照工程實現場景分組承擔任務,每個小組中的成員在項目中又有不同分工。
2.3" 學科融合
FPGA應用技術課程的學習不能僅僅存在于仿真階段,需要在FPGA實驗設備中實際操作,才能讓學生對FPGA開發設計工作有直觀的印象。作為一門實踐性很強的課程,FPGA應用技術和數字邏輯電路、電子信號測量、印制電路板設計與制作、通信原理等課程聯系緊密。基于FPGA可以實現通信原理中信號的調制與解調;電子信號測量課程采用FPGA實驗設備完成信號檢測課程的學習;印制電路板設計與制作是電子信息、通信專業的核心課程,在選擇最小系統開發板的前提條件下,可以將兩門課程的需求進行融合,比如,可以將FPGA最小系統板的一些3×4矩陣鍵盤、LED顯示、ADC模塊等外設制作放在印制電路板設計與制作課程中進行;設計單片機控制模塊與FPGA最小系統板的串行接口通信實驗時,針對IO口電平不一致的問題,則可以制作電平轉換模塊解決問題,這樣就可以將兩門學科融合在一起,實現項目的分工。
3" 教學案例設計
本文按照教學內容改革的方向設計教學案例。為了促進學生更好地掌握FPGA開發這項工程實踐要求比較高的技能,獲得工程開發經驗,案例的設計從結構上層層漸進,在實例中逐步引導學生形成對FPGA的認識。教學案例分為初階篇和進階篇,初階篇的作用是培養學生對本門課程的興趣,讓學生掌握FPGA基本開發流程,并對FPGA工程應用有一個初步的認識;進階篇的工程設計較為復雜,通過案例的設計培養學生的自主創新性能力,將所學專業課中的相關知識點進行有效的融合,加強學生對理論知識的理解,鞏固專業知識。
FPGA實驗設備是用于教學的重要工具,本文選用正點原子的最小系統開發板,如圖1所示。主處理芯片為Xilinx ZYNQ系列7010,主頻為666 MHz,包含28 k邏輯資源、2.1 Mbit的BRAM,外接有USB UART、SD卡接口、千兆網口、RGB LCD接口和HDMI輸出接口等,可以滿足FPGA的教學要求。
3.1" 教學案例初階篇
初階案例的設計需要考慮教學課時的分配、涵蓋的知識點和學生的基礎能力。數字時鐘管理系統是日常生活中最常見的電路之一,案例需求是設計一個數字鐘,在液晶屏上實現“小時”“分鐘”和“秒”的計時與顯示,通過鍵盤可以設置鬧鐘和定時器,精度為0.01秒。數字時鐘管理系統可以通過串口接收時間信息并在液晶屏上顯示,在沒有外來時間信息的情況下,需要通過鍵盤手動修改時間信息。數字時鐘系統管理框圖如圖2所示。
對數字時鐘系統進行功能分解,形成不同的實驗教學模塊,如表1所示。實驗一:蜂鳴器模塊學習IO口的使用,引入FPGA設計環境;實驗二:按鍵控制模塊學習組合邏輯電路;實驗三:計時器模塊,結合按鍵控制模塊與蜂鳴器電路設計一個定時器、分頻器電路學習時序邏輯電路;實驗四:串口收發模塊學習底層驅動協議開發;實驗五:顯示控制模塊學習IP核的使用;最后綜合所有基礎課程形成數字時鐘系統。對相關模塊進行教學時,通用的如按鍵鍵盤去抖、串口收發等功能,教師可以將實現方法與其單片機、ARM開發平臺做比較,用于加深學習印象、鞏固學生知識。在課后學習過程中,學生可以在開發平臺設計相關電路進行擴展學習。Verilog語法知識根據實際教學課時可以鑲嵌在功能模塊中,也可以單獨作為一個章節進行學習。
FPGA內嵌的IP核是FPGA開發的一個重要工具,功能設計較為復雜,涵蓋了數字電路、接口、音頻圖形處理等,調用IP核進行電路設計可以大大減少工程師的工作量,但在部分教材上沒有對其進行介紹,所以在案例設計時需要將其考慮進去。初階案例中不需要講解太復雜的IP核,只需要學生對IP核的產生和調用有初步的了解。本文的功能模塊中,液晶顯示控制電路設計時需要鎖相環(PLL)對時鐘進行分頻,字符信息存儲在ROM核中。
IRIG-B格式碼簡稱為B碼[4],是將時間同步信號和秒、分、時、天等時間信息碼加載到頻率為1 KHz的信號載體中。B碼的解碼功能可以作為一個功能擴展模塊放到學生課后學習過程中,它需要對脈沖寬度進行統計,涵蓋時序邏輯電路中計數器知識點,對功能測試驗證時,可以和電子信號測量課程中示波器應用相結合,讓學生對IRIG-B格式碼有一個直觀的印象。
3.2" 教學案例進階篇
進階篇案例的設計建立在學生初步掌握FPGA開發能力的基礎之上,并對電路設計有一定的了解。FPGA在工程應用中常用于信號、數據處理,數據采集系統是FPGA電路進階設計中很重要的一環,將數據采集與所學專業相結合構成符合專業特色的教學內容。
本文將教學內容與通信專業融合,進行教學案例的設計。《無線通信的MATLAB和FPGA實現》詳細介紹了無線通信中數字處理基礎、數字調制、信道編解碼接收機等關鍵技術及其MATLAB和FPGA的實現[5],教師可以將其作為零散的知識點,在需要理解或者使用某個功能時讓學生學習和調用,但不具有連貫性,不是一個完整的工程應用。
低空經濟是我國未來發展的一個重點,對無人機信號的監測任務也會越來越多,超外差接收機的設計可以有效解決相關問題。無人機常用工作頻段有2.4 GHz和5.8 GHz,對無人機信號監測可以歸屬于無線電信號檢測。無線電信號檢測系統框圖如圖3所示,系統主要包括ADC數據采樣等模塊。中頻信號可以通過MATLAB生成,也可以對無人機信號進行實際采樣,ADC數據采樣模塊實現對輸入數據的正確接收,并恢復成數據流形式的數據,用于后級的超外差數據處理,超外差接收模塊完成對中頻信號的窄帶濾波、時域檢測和參數提取、頻率參數估計運算,將最終結果封包形成全脈沖描述字(PDW)通過網口發送到計算機終端。
在教學過程中,將上述功能模塊進行分解教學可以形成接口、信號處理兩大類知識點。
1)接口包含ADC配置、DDR3數據存儲和網口通信:ADC采樣知識點結合通信原理有系統靈敏度、接收動態范圍等指標內容;網口通信可以結合計算機網絡方面知識點教學,根據具體的應用場景和需求決定數據接口采用RGMII還是SGMII、通信協議采用TCP還是UDP通信。
2)信號處理包含濾波器設計、FFT頻率測量、時域檢測算法實現等知識點。在對部分知識點進行講解時,如濾波器的設計,教師可以先給出源碼,讓學生學會調用、修改參數實現濾波器配置,配合開發軟件的仿真功能進行驗證。
4" 結束語
教學案例的設計與專業培養、跨學科相融合,可以更好地幫助學生鞏固知識,培養學習興趣。根據教學內容設計教學案例,分為初階篇和進階篇,能讓學生更快地入門,掌握FPGA開發的基礎知識,對電路設計有初步的認識。進入高階篇后,教學內容與所學專業相結合,設計完整的工程案例,可以讓學生對工程開發有直觀了解,鍛煉學生分析問題、研究問題和解決問題的能力。
5" 參考文獻
[1] 薛一鳴,文娟.FPGA數字系統設計[M].北京:清華大學出版社,2019.
[2] 王靜霞.FPGA/CPLD應用技術(Verilog語言版)[M].2版,北京:電子工業出版社,2014.
[3] 陳衛兵,陳曙光.“FPGA”課程教學模式的改革研究[J].工業和信息化教育,2020(3):65-69.
[4] 張軍科,張雪梅,段海彬,等.基于FPGA的IRIG-B碼
國軍標編解碼設計[J].航空計算技術,2023,53(5):93-95.
[5] 西瑞克斯(北京)通信設備有限公司.無線通信的MATLAB和FPGA實現[M].北京:人民郵電出版社,2009.
*項目來源:廣西壯族自治區教育廳2023年度廣西高校中青年教師科研基礎能力提升項目“IFF信號接收檢測算法的研究與實現”(編號:2023KY0980);2023年度幫扶全州縣中等職業技術學校專項研究課題“‘崗課賽證’背景下電子信息技術專業中高職銜接人才培養方案研究與實踐”(編號:ZXB202302)。
作者簡介:陳昱均,工程師;周國瓊,副教授。