摘? 要:針對目前高校電子信息類專業(yè)人才中FPGA數字設計實驗環(huán)境受限的問題,分析了實驗教學過程中的難點,提出一種“線上-線下混合,本地-遠程結合”的實驗教學模式,為地方高校培養(yǎng)創(chuàng)新實踐型的軟硬件系統(tǒng)人才提供有效途徑。
關鍵詞:FPGA;實驗教學;遠程實驗
中圖分類號:G642 文獻標志碼:A? ? ? ? ?文章編號:2096-000X(2020)35-0128-04
Abstract: Aiming at the problem of limited FPGA digital design experiment environment among electronic information professionals in colleges and universities, the difficulties in the experimental teaching process are analyzed, an experimental teaching mode by online-offline mixing and local-remote combination is proposed. An effective experimental teaching is provide way for local universities to train innovative and practical software and hardware system talents.
Keywords: FPGA; experimental teaching; remote experiment
隨著人類社會邁向萬物互聯的物聯網時代,人工智能技術代替手工方式對大數據進行高效實時的處理已成為社會發(fā)展的必然選擇,萬物互聯的未來之路必然走向萬物智能。在此背景下,無處不在的人工智能對數字系統(tǒng)的設計提出了挑戰(zhàn)性的需求[1]。然而,半導體行業(yè)遵循的摩爾定律已經難以為繼,這意味著數字芯片的設計需要依賴架構的創(chuàng)新。FPGA(Field Programmable Gate Array)全名叫“現場可編程門陣列”,是一種可編程的芯片。人們利用FPGA的可編程存儲器部分,把硬件設計重復燒寫在里面,從而使FPGA芯片可以完成不同的硬件功能和設計。FPGA本質上是并行處理,而人工智能的很多算法都需要并行處理,通過把人工智能的模型轉換之后,FPGA非常適合執(zhí)行人工智能推理。
FPGA數字系統(tǒng)設計作為一門電子信息專業(yè)的專業(yè)課,課程不僅介紹了FPGA數字系統(tǒng)設計的理論知識,而且需要相關的實驗內容將理論知識和實踐環(huán)節(jié)相結合,培養(yǎng)學生的工程能力和創(chuàng)新實踐能力[2-4]。而如何充分發(fā)揮實驗教學的作用,設計一套適合電子信息類專業(yè)學生的實驗設計項目,以培養(yǎng)出人工智能時代的創(chuàng)新人才是值得思考與探索的問題。
一、傳統(tǒng)的FPGA數字系統(tǒng)設計實驗平臺及其存在的問題
FPGA 憑借其獨特的架構,具有并行性、靈活性、小型性方面的優(yōu)勢,現已成為數字系統(tǒng)首選的開發(fā)平臺。與此同時,越來越多的高校也采用 FPGA作為數字系統(tǒng)實驗教學的硬件平臺??傮w上看,目前高校圍繞 FPGA數字系統(tǒng)設計進行的實驗教學具有以下不足之處[5-10]:
1. 從實驗平臺來看,現有的平臺仍是以線下的 FPGA開發(fā)板或實驗箱為載體開展課程的實驗教學,這在時間和空間上極大地限制了學生隨時隨地進行實驗。
2. 從實驗的調試和交互方式來看,目前的實驗平臺主要使用 FPGA開發(fā)板上的撥碼開關、LED等物理 I/O進行教學。由于開發(fā)板資源有限,這極大地影響了學生調試實驗的便利性。
3. 從實驗內容來看,理論教學與實踐訓練缺乏廣泛聯系,難以掩飾其產業(yè)界影響小,產學融合深度和廣度有限的缺憾。
此外,由于受到新冠肺炎疫情的影響,部分高校理論教學采取了線上視頻的教學方式,教師利用遠程教學平臺為學生教授理論知識,但是動手實驗環(huán)節(jié)卻成為線上教學的難題和瓶頸。學生雖然學習了理論知識,但是實際的硬件驗證工作卻無法進行,這極大地影響了理論教學的鞏固,無法達到學以致用的效果??聘傎?、創(chuàng)客空間等第二課堂,進一步加強實踐技能和理論知識的提升。
二、線上-線下混合的FPGA數字系統(tǒng)設計實驗教學模式
實驗的教學模式采用“線下與線上”結合的實驗環(huán)境,“本地與遠程”混合的開發(fā)流程,如圖1所示。線下-本地實驗過程中,利用硬件描述語言(Verilog HDL)進行數字電路或系統(tǒng)的描述,并使用Xilinx公司提供的設計軟件Vivado進行數字系統(tǒng)的設計與仿真驗證;線上-遠程實驗過程中,實驗基于Open HEC遠程FPGA云平臺系統(tǒng),在Jupyter環(huán)境中編寫Python應用程序與設計的硬件電路完成交互式驗證。
下面以FPGA的遠程門電路設計與交互式驗證為例(實現一個兩輸入多輸出的門電路,其電路功能包括異或、同或、與、或、與非和或非),如圖2所示,詳細說明線上-線下混合的FPGA數字系統(tǒng)設計的開發(fā)流程。
(一)線下-本地實驗教學建設的新思路
線下-本地實驗過程在本地完成FPGA邏輯部分的開發(fā)。該階段在Xilinx公司的Vivado軟件中完成硬件電路模塊的設計、監(jiān)控驗證模塊的構建及模塊之間的相互連接。具體而言,首先對硬件電路模塊進行設計并仿真,確保功能正確后,將該模塊封裝為IP。然后,調用ZYNQ7 Porcessing System、AXI GPIO及封裝的硬件電路IP進行互聯和參數設置,構建軟硬件協同系統(tǒng)。最后將系統(tǒng)進行綜合、實現、生成比特流文件。
線下-本地實驗的開發(fā)流程具體步驟包括:
1. 在 Xilinx公司的Vivado 2015.4開發(fā)環(huán)境中,設計并仿真門電路的功能是否正確,將正確的設計文件封裝為 IP,具體過程如圖3所示。
2. 調用ZYNQ7 Porcessing System、AXI GPIO等IP實現監(jiān)控驗證模塊,與封裝的門電路IP進行互聯,并構建一個軟硬件實驗協同驗證系統(tǒng),如圖4所示。
3. 最后將系統(tǒng)進行整體封裝,完成綜合、實現和生產比特流文件。
(二)線上-云端實驗教學建設的新思路
線上-遠程實驗過程在云端完成Python應用程序的開發(fā)與調試。線上的實驗是基于Open HEC遠程FPGA云平臺系統(tǒng),該系統(tǒng)在數據中心部署Vivado虛擬機及PYNQ-Z2開發(fā)板。用戶無需安裝軟件或購買FPGA板卡就可以進行實驗,其Jupyter Notebook開發(fā)環(huán)境如圖5所示。編寫Python程序完成比特流的加載,實現處理器部分運行的應用程序與可編程邏輯部分的硬件模塊進行交互式的調試驗證。
線上-云端實驗的開發(fā)流程具體步驟包括:
1. 首先,在Jupyter Notebook導入PYNQ板卡需要的*.bit和*.hwh兩個文件(文件名需相同)。在使用Python代碼下載比特流文件時,需要引入PYNQ包中的Overlay文件。然后,通過Overlay來加載比特流到PYNQ中。本實驗中將design2.bit(本例中.bit文件命名為design2.bit)文件加載到PYNQ板卡上的FPGA芯片中,參考代碼如下:
(1) from? ?pynq? ? ?import? ?Overlay
(2) from? ?pynq.lib? import? ?AxiGPIO
(3) overlay=Overlay("/home/xilinx/jupyter_notebooks/oDisk/design_2.bit")
2. 然后,利用Python應用程序完成引腳綁定。在加載Overlay之后,將使用的AxiGPIO模塊在Jupyter Notebook環(huán)境中重新命名,并對AxiGPIO模塊的各個通道進行命名,參考代碼如下:
(1) #AxiGPIO命名
(2) gpio_0=overlay.ip_dict['axi_gpio_0']
(3) gpio_1=overlay.ip_dict['axi_gpio_1']
(4) #通道命名
(5) ina=AxiGPIO(gpio_0).channel1
(6) inb=AxiGPIO(gpio_0).channel2
(7) gate_out=AxiGPIO(gpio_1).channel1
3. 最后,調試驗證過程中axi_gpio_0的輸出端口使用write()進行賦值,測試值送到PL的門電路硬件模塊處理,待PL處理后將結果返回axi_gpio_1的輸入端,通過read()讀取處理后的結果,參考代碼如下:
(1) ina.write(a_value,mask)
(2) inb.write(b_value,mask)
(3) out=gate_out.read()
接收端收到數據后不會顯示出來,此時需要使用print()來顯示得到的結果,進而加強軟硬件的交互式驗證,參考代碼及運行結果如圖6所示。
三、結束語
本文提出了一種線下線上相結合的實驗環(huán)境,本地與遠程混合的開發(fā)流程FPGA數字系統(tǒng)設計實驗的教學模式。通過線下線上相結合的遠程實驗,學生完成FPGA數字設計與驗證。這種全新的實驗模式,學生不僅對傳統(tǒng)的FPGA數字設計有所了解,而且能夠不受時間和空間的限制遠程訪問實驗設備進行自主創(chuàng)新。實驗過程中采用Python程序與所設計的硬件模塊進行交互式的調試驗證,學生不僅可以利用這種“軟件定義的交互”突破實驗設備物理I/O的局限,提升數字系統(tǒng)軟硬件協同設計的能力,還為后續(xù)人工智能課程奠定基礎。
參考文獻:
[1]聶陽.校企合作模式下地方高校電子信息類嵌入式方向核心課程的體系結構探索研究[J].高教學刊,2019(08):53-55.
[2]胡愛華,李建科,張鵬云,等.“互聯網+實踐教學”范式改革嘗試——以FPGA為例[J].實驗技術與管理,2020,37(04):181-183.
[3]吳迪,譚克俊,張雅楠,等.FPGA層次化實驗教學案例分析[J].電氣電子教學學報,2020,42(01):151-154.
[4]華一村,曹源,張義紅,等.應用型創(chuàng)新人才培養(yǎng)的FPGA實驗教學研究[J].實驗室研究與探索,2019,38(08):184-188.
[5]金偉正,夏可為,李皓,等.基于無線游戲的FPGA創(chuàng)新實驗系統(tǒng)[J].電氣電子教學學報,2019,41(02):85-88.
[6]王彩鳳.應用型本科院校電子設計自動化課程實踐教學改革[J].高師理科學刊,2019,39(03):89-92.
[7]舒雙寶,張育中.“FPGA技術及應用”課程教學研究與實踐[J].高教學刊,2019(05):80-82.
[8]湯知日,常勝.機器學習FPGA硬件實驗設計[J].實驗技術與管理,2018,35(12):152-155.
[9]王墨林,戚昊琛,魯迎春,等.FPGA課程創(chuàng)新型實驗教學體系的實踐[J].實驗科學與技術,2018,16(04):134-139.
[10]盧有亮,姜書艷.數字設計FPGA應用課程的挑戰(zhàn)式實驗教學設計[J].實驗科學與技術,2018,16(06):82-85.