亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        結(jié)合開源軟件的國產(chǎn)FPGA設(shè)計教學(xué)實驗

        2022-09-01 10:10:42潘曉明
        實驗室研究與探索 2022年5期
        關(guān)鍵詞:實驗設(shè)計

        潘曉明,龔 軍

        (華中科技大學(xué)電子信息與通信學(xué)院,武漢 430074)

        0 引言

        當前,國內(nèi)半導(dǎo)體行業(yè)的發(fā)展蒸蒸日上,尤其是在電子行業(yè)各個領(lǐng)域都有非常廣泛用途的可編程邏輯門陣列(Field Programmable Gate Array,F(xiàn)PGA)芯片,其產(chǎn)業(yè)發(fā)展狀況受到國內(nèi)外密切關(guān)注。

        目前絕大部分工科高校都有開設(shè)FPGA電路設(shè)計課程,但教學(xué)使用的FPGA 軟硬件基本都來自于國外公司。實際上,美國FPGA 產(chǎn)業(yè)占有世界FPGA 領(lǐng)域?qū)⒔?6%市場份額[1],專利達6 000 余項,居于絕對壟斷地位。而國內(nèi)FPGA 廠商正在奮起直追,但畢竟還處于起步期,技術(shù)不夠成熟完善,主流硬件性能指標上也較為落后,市場占有率低[2]。國產(chǎn)FPGA相關(guān)工程實例與教學(xué)資源零碎稀少,在校學(xué)生偶爾使用國產(chǎn)FPGA芯片感覺上手比較困難,這對國產(chǎn)FPGA產(chǎn)業(yè)發(fā)展是很不利的。為給國內(nèi)相關(guān)行業(yè)未來發(fā)展提供更有力的支撐,加強國產(chǎn)FPGA在教學(xué)領(lǐng)域的應(yīng)用勢在必行。

        本文結(jié)合FPGA 正弦信號產(chǎn)生電路設(shè)計實驗,對本科教學(xué)中開設(shè)以國產(chǎn)FPGA芯片為核心的電路設(shè)計實驗流程進行研討,并引入開源仿真工具來完善實驗環(huán)節(jié)。

        1 教學(xué)實驗軟硬件環(huán)境

        1.1 實驗用核心FPGA芯片

        本文探討的教學(xué)實驗所使用的核心FPGA芯片是國內(nèi)2014 年推出的一款入門級產(chǎn)品GW1NLV1QN48[4]。其主要結(jié)構(gòu)與主流FPGA 基本一致,包括查找表、寄存器、布線、輸入輸出等,并加入了非易失性的閃存儲存器、鎖相環(huán)等內(nèi)部硬件單元[5],圖1 所示為GW1N-1 器件結(jié)構(gòu)示意圖。

        圖1 GW1N-1器件結(jié)構(gòu)示意圖

        和目前教學(xué)常用的國外公司在其大學(xué)計劃中推廣的入門級FPGA 芯片相比,GW1N-1的55 nm制作工藝和片內(nèi)資源數(shù)量都相對較弱,但資源類型并不少,數(shù)量也足夠本科教學(xué)用,性價比很不錯。而且片內(nèi)包含非易失性存儲器,能有效降低外圍電路復(fù)雜度,使用上更為方便靈活。

        1.2 實驗用開發(fā)板

        教學(xué)實驗選用的搭載GW1N-1 芯片的小型簡約型開發(fā)板如圖2 所示。板上載有系統(tǒng)開發(fā)必需的調(diào)試下載器以及外部支撐電路和少量用戶資源[6],小巧實用,價格低廉。

        圖2 實驗用國產(chǎn)FPGA開發(fā)板

        上位機通過一根數(shù)據(jù)線以通用串行總線(Universal Serial Bus,USB)方式連接開發(fā)板,完成+5 V供電、下載調(diào)試以及串口通信功能,實驗者使用配套開發(fā)軟件即可完成相應(yīng)FPGA 設(shè)計物理實現(xiàn)流程,操作簡便。開發(fā)板兩側(cè)引出腳可直插面包板,使得拓展外部電路連接很方便,非常適合基礎(chǔ)教學(xué)實驗。

        1.3 實驗用開發(fā)軟件

        實驗開發(fā)軟件主要是配套GW1N系列芯片的云源設(shè)計軟件。該軟件從其官網(wǎng)可免費下載,免費申請許可證,教學(xué)使用無成本和版權(quán)問題。云源軟件包括了從硬件描述語言(Hardware Description Language,HDL)代碼輸入到FPGA芯片編程的物理實現(xiàn)全流程[7]。圖3 所示為云源集成開發(fā)環(huán)境界面部分展開示意圖。

        圖3 云源界面部分展開界面圖

        云源軟件開發(fā)可使用主流的兩種HDL 代碼輸入方式,支持相應(yīng)語言新特性,但不支持教學(xué)中盡量淡化的傳統(tǒng)原理圖設(shè)計輸入方式[8]。軟件中關(guān)鍵的HDL綜合工具是國內(nèi)自主開發(fā)的Gowin Synthesis,功能較完備。

        使用云源軟件進行開發(fā),物理實現(xiàn)流程和主流FPGA 基本一致,主要功能操作集中在綜合處理Process菜單項和工具組件Tools菜單項。軟件帶有頗為詳細的中文用戶指南,初學(xué)者使用沒有太大難度。

        目前FPGA 業(yè)界設(shè)計流行基于知識產(chǎn)權(quán)核(Intellectual Property core,IP core)的設(shè)計方法,以此促進新功能模塊的增添并壓縮項目完成時間。GW1N系列FPGA也有不少自主開發(fā)的IP core,包括硬核和軟核,根據(jù)選定芯片片內(nèi)的硬件資源不同,提供的可用IP core有增減。

        1.4 FPGA設(shè)計開源仿真方案

        云源軟件實現(xiàn)了物理實現(xiàn)全流程開發(fā),但暫時沒有內(nèi)置HDL 仿真功能,而軟件HDL 仿真調(diào)試對于實際工程和教學(xué)實驗都是非常重要。目前的解決方案是結(jié)合云源提供的自有IP core 仿真庫,在云源外部運行第3方獨立仿真軟件對相應(yīng)測試Testbench代碼進行再編譯并仿真。目前高校常用的是業(yè)界優(yōu)秀的HDL仿真工具ModelSim,但從本科教學(xué)角度,考慮成本和特殊情況下的版權(quán)問題,引入逐漸流行的開源仿真工具補足仿真環(huán)節(jié)是更為合理的方式。輕量、免費、開源的HDL仿真套件Icarus Verilog就是一個不錯的選擇[9]。

        Icarus Verilog支持常見三大系統(tǒng)平臺,相比于主流FPGA廠商相關(guān)商業(yè)軟件,其顯得極為小巧,但教學(xué)使用效果并不弱,而且有開源的優(yōu)勢。一般使用是以命令行方式依次執(zhí)行套件中3 個工具。

        Iverilog.exe:處理HDL 文件,進行語法檢查、轉(zhuǎn)換、編譯并生成中間文件。

        Vvp.exe:執(zhí)行中間文件,生成特定格式的VCD數(shù)據(jù)文件。

        GTKWave.exe:打開VCD 文件,圖形化交互顯示設(shè)計中變量仿真結(jié)果。

        其中VCD(.vcd)數(shù)據(jù)文件是Verilog HDL語言標準中定義的一種通用的文件格式。它主要包含了頭信息、變量預(yù)定義和變量值變化信息,即記錄了整個仿真運行的信息,可以用它來再現(xiàn)仿真,顯示各端口各變量的數(shù)據(jù)[10]。作為語言標準的一部分,可以用Verilog HDL系統(tǒng)函數(shù)來產(chǎn)生,包括ModelSim 和GTKWave 等主流HDL仿真器都能夠查看該類文件。

        2 基于FPGA的正弦波產(chǎn)生電路設(shè)計

        2.1 實驗電路硬件搭建

        正弦波產(chǎn)生實驗電路設(shè)計思路是基于直接數(shù)字合成(Direct Digtal Synthesis,DDS)波形產(chǎn)生的基本原理,原理框圖如圖4 所示,電路設(shè)計的關(guān)鍵是波形數(shù)據(jù)查找表[11]。實驗電路中,正弦波形數(shù)據(jù)查找表和相位累加器正是以HDL 設(shè)計由FPGA 來實現(xiàn)。時鐘源由板載晶振電路輸出時鐘在FPGA片內(nèi)分頻得到。

        圖4 DDS波形產(chǎn)生原理框圖

        數(shù)模轉(zhuǎn)換器(Digital-to-Analog Converter,D/AC)和低通濾波器(Low Pass Filter,LPF)在實驗電路中由FPGA外部的8 bit并行電流型模數(shù)轉(zhuǎn)換DAC0808 芯片級聯(lián)運放芯片UA741實現(xiàn),后級電路原理如圖5所示。

        圖5 后級D/AC+LPF電路原理圖

        實驗電路直流工作電源用正負5 V,+5 V由上位機通過USB數(shù)據(jù)線提供;-5 V 則由電源轉(zhuǎn)換模塊轉(zhuǎn)換+5 V得到??紤]到D/AC和LPF工作正電源接同一個+5 V,LPF運放增益需要調(diào)節(jié)到小于1 以避免輸出信號截頂失真。實驗整體硬件電路樣例見圖6。

        圖6 實驗整體硬件電路樣例

        2.2 實驗電路FPGA的HDL整體設(shè)計

        實驗工程頂層HDL文件主要工作包括:

        (1)調(diào)用分頻子模塊(Gowin_CLKDIV)對輸入時鐘分頻以產(chǎn)生DDS工作時鐘;

        (2)調(diào)用帶復(fù)位及使能的相位累加器子模塊(memaddr)以產(chǎn)生查找表輸出地址;

        (3)調(diào)用存儲正弦波形數(shù)據(jù)的查找表子模塊(sin_pROM)以根據(jù)地址輸出相應(yīng)數(shù)據(jù);

        (4)幅度衰減處理語句;

        如圖7 所示為頂層HDL設(shè)計在通過綜合后,以云源原理圖展示組件生成的設(shè)計電路原理圖。

        圖7 實驗電路FPGA的HDL設(shè)計原理圖

        子模塊中,相位累加器子模塊主體是單獨編寫手動加入的.v文件,關(guān)鍵語句:mem_addr <=mem_addr+’b1 +freq_sel;實現(xiàn)每個時鐘地址增1,若開關(guān)freq_sel按下,則地址再增1(使輸出頻率加倍)。時鐘分頻子模塊和關(guān)鍵的數(shù)據(jù)查找表子模塊主體則是基于GW1N系列IP core設(shè)計的單獨文件,由云源獨立組件操作生成并引入工程。

        2.3 實驗中IP core設(shè)計輸入

        在云源軟件中運行IP core Generator獨立組件,界面如圖8 所示。在芯片型號下方列出了相應(yīng)型號FPGA硬件能提供的不同功能類型IP core,逐層展開功能類型,名稱為黑色字的是當前工程可選用的,相應(yīng)說明信息展示在窗口右邊。

        圖8 云源的IP Core Generator界面

        本實驗中,以只讀存儲器(Read-Only Memory,ROM)方式存放數(shù)據(jù)的查找表子模塊是基于GW1N pROM 核設(shè)計的。FPGA正弦信號數(shù)據(jù)按8 bit并行輸出,即數(shù)據(jù)查找表位寬為8,地址深度即周期采樣點數(shù)定為256。選用IP core 列表中的pROM核,按上述參數(shù)定制查找表FPGA硬件結(jié)構(gòu),定制界面如圖9 所示。最后是導(dǎo)入指定的存放正弦波形數(shù)據(jù)的存儲初始化.mi文件。

        圖9 pROM核定制界面

        本實驗用兼容Matlab 語法的Octave 開源科學(xué)計算軟件來編程處理生成初始化.mi文件。處理程序?qū)?個周期的正弦函數(shù)進行采樣;將采樣得到的-1~1之間的小數(shù)轉(zhuǎn)換為0~255 的整數(shù),即硬件需要的正弦波形數(shù)據(jù);創(chuàng)建需要的.mi文件,寫入合乎pROM規(guī)范的文件頭后,依序?qū)⒉ㄐ螖?shù)據(jù)填入。主要代碼如下:

        云源IP core Generator組件完成pROM核設(shè)計后,自動在工程源碼文件夾下生成子文件夾以存放IP core子模塊主體以及相應(yīng)輔助文件。云源主界面自動打開輔助的臨時示例文件,方便用戶將定制的IP core正確引入主設(shè)計中。實驗電路中的時鐘分頻子模塊也以類似過程基于CLKDIV核生成。

        HDL設(shè)計全部輸入后,執(zhí)行云源中的Synthesize菜單項做語法檢查、編譯和綜合,完成主體電路初步設(shè)計。

        2.4 實驗電路HDL功能仿真

        和通常FPGA教學(xué)實驗流程稍有區(qū)別的是,由于云源軟件目前沒有內(nèi)置HDL 仿真功能和仿真工具接口,所以根據(jù)主體電路設(shè)計編寫的仿真測試HDL文件不加進設(shè)計工程,而是獨立供第3 方仿真工具調(diào)用。

        本實驗電路仿真測試HDL代碼中,除了通常的輸入信號仿真生成變化等語句外,還增加了幾處配合Icarus Verilog仿真工具的Verilog HDL語句。

        (1)在initial 塊開始處加入如下語句,使仿真數(shù)據(jù)輸出到VCD文件。

        其中wave.vcd參數(shù)是生成的VCD文件名稱。

        (2)在initial塊結(jié)束處設(shè)定仿真結(jié)束條件或足夠的仿真運行時長,并加系統(tǒng)函數(shù)$stop 以便仿真運行能自行完整結(jié)束。

        (3)在endmodule語句之后,用include 語句將主體電路各模塊代碼文件(不包括輔助文件)按相應(yīng)存放路徑引入仿真測試文件。

        由于實驗使用了IP core設(shè)計,仿真需要調(diào)用云源軟件安裝文件夾下的IP core 仿真庫prim_sim.v。為簡化后續(xù)操作,將該文件拷貝到仿真測試文件所在文件夾下,并將其用`include語句也引入仿真文件中。

        在系統(tǒng)命令行終端,依次運行開源仿真套件中3個工具,對仿真測試文件進行處理,常用命令行如下:

        iverilog 對指定名稱的實驗仿真測試文件(TB_top.v)處理后產(chǎn)生中間文件(缺省名a.out)。Vvp 執(zhí)行中間文件,按仿真測試代碼中指定名稱生成lxt2 壓縮格式的wave.vcd 數(shù)據(jù)文件。實驗者操作Gtkwave圖形化工具讀取.vcd文件,選定需要展示的變量并設(shè)定變量值顯示方式[12],觀察其仿真波形,從中分析仍可能有的深層邏輯錯誤,以便修正設(shè)計。

        GTKWave交互界面如圖10 所示,圖中的正弦波正是本實驗FPGA 最終8 bit 并行輸出數(shù)據(jù)以模擬Analog(仿DAC處理)顯示方式展示的結(jié)果,表明當前的HDL設(shè)計在功能邏輯上已達實驗要求。

        圖10 GTKwave交互界面及實驗輸出仿真波形

        2.5 電路HDL仿真后的實驗步驟

        功能仿真驗證無誤后,由云源軟件執(zhí)行后續(xù)物理實現(xiàn)操作,包括User Constraints(物理約束、時序約束)、Place&Route(布局布線、時序分析)和Program Device(芯片編程)。過程中的詳細反饋可以查看信息窗口和相應(yīng)詳細文本報告。

        其中物理約束操作會自動產(chǎn)生包含管腳綁定及時序約束的.cst 文本文件并加進工程。而Place&Route操作在本實驗中會警告需要修改管腳配置,這是由于本實驗用的并行數(shù)據(jù)傳輸管腳占用了硬件缺省規(guī)定的可復(fù)用功能管腳。此時需開啟Place&Route 菜單項的復(fù)用配置界面做相應(yīng)設(shè)定,如圖11 所示。

        圖11 云源復(fù)用管腳設(shè)定界面

        物理實現(xiàn)最后步驟是生成bit流(.fs)文件并編程到硬件FPGA芯片,具體操作調(diào)用云源獨立組件編程器Programmer完成。芯片編程時可選擇對片內(nèi)易失性的靜態(tài)隨機存取存儲器(Static Random-Access Memory,SRAM)或非易失性的閃存Flash 操作。若選擇后者,則上電時,無需上位機開發(fā)軟件,芯片會自動加載片內(nèi)Flash 中的內(nèi)容配置給SRAM 運行。片內(nèi)Flash讀寫速度要高過目前教學(xué)FPGA 實驗板中配置用可編程只讀存儲器(Programmable Read-Only Memory,PROM)的固化和加載速度[13]。

        硬件系統(tǒng)測試,可使用云源內(nèi)置邏輯分析儀(Gowin Analyzer Oscilloscope,GAO)組件輔助調(diào)試,其功能類似主流FPGA的片上調(diào)試工具[14]。

        2.6 實驗結(jié)果展示和教學(xué)拓展

        本實驗達到教學(xué)要求的最終輸出模擬信號樣例在數(shù)字和模擬示波器上分別顯示如圖12(a)、(b)所示。

        圖12 實驗最終輸出信號樣例

        圖13 是云源軟件在設(shè)計過程中生成的報告節(jié)選,可見,該FPGA片內(nèi)資源足夠本次實驗教學(xué)需要。學(xué)生還可在文中設(shè)計思路的基礎(chǔ)上,進一步加強此設(shè)計,充分利用剩余片內(nèi)資源拓展諸如多類型信號、串行D/A、數(shù)字調(diào)制等功能[15];也可自主進行其他HDL設(shè)計,選用資源配置更高的其他國產(chǎn)FPGA 芯片,實現(xiàn)更復(fù)雜的綜合拓展創(chuàng)新實驗。

        圖13 實驗設(shè)計占用資源報告節(jié)選

        3 結(jié)語

        綜上,以低成本國產(chǎn)FPGA 芯片為核心的實驗硬件配合相關(guān)開發(fā)軟件足以很好地實現(xiàn)本科課程中FPGA設(shè)計課內(nèi)教學(xué)內(nèi)容。第3 方開源仿真方案雖稍有別于目前FPGA 課程使用的開發(fā)軟件內(nèi)聯(lián)仿真工具,但不錯的HDL 解析編譯性能,同樣能增強設(shè)計和調(diào)試的靈活性,降低實驗成本,提升教學(xué)實驗效率[16]。而并不復(fù)雜的操作和開源的特性,使其非常適合目前國內(nèi)FPGA教學(xué)。

        相關(guān)教學(xué)實驗開設(shè)讓學(xué)生在學(xué)習(xí)、掌握FPGA 知識和HDL開發(fā)技術(shù)的同時,深入了解國產(chǎn)FPGA軟硬件,激發(fā)他們對國內(nèi)相關(guān)行業(yè)的興趣,在為國家高科技產(chǎn)業(yè)發(fā)展培養(yǎng)后備力量方面有事半功倍的效果。相信國內(nèi)相關(guān)行業(yè)會繼續(xù)奮進,自主開發(fā)出更優(yōu)秀的FPGA專業(yè)軟件和更高性能的國產(chǎn)FPGA 芯片一起支撐起我國電子信息產(chǎn)業(yè)無限廣闊的未來。

        猜你喜歡
        實驗設(shè)計
        記一次有趣的實驗
        微型實驗里看“燃燒”
        何為設(shè)計的守護之道?
        《豐收的喜悅展示設(shè)計》
        流行色(2020年1期)2020-04-28 11:16:38
        做個怪怪長實驗
        瞞天過海——仿生設(shè)計萌到家
        設(shè)計秀
        海峽姐妹(2017年7期)2017-07-31 19:08:17
        有種設(shè)計叫而專
        Coco薇(2017年5期)2017-06-05 08:53:16
        NO與NO2相互轉(zhuǎn)化實驗的改進
        實踐十號上的19項實驗
        太空探索(2016年5期)2016-07-12 15:17:55
        色婷婷在线一区二区三区| 久久精品片| 欧美破处在线观看| 亚洲av综合日韩精品久久| 少妇夜夜春夜夜爽试看视频| 国产在线视频一区二区三区| 2021国内精品久久久久精免费| 亚洲另类国产精品中文字幕| 久久久久人妻精品一区二区三区| 在线亚洲+欧美+日本专区| 亚洲AV无码精品色欲av| 午夜一区二区三区在线观看| 亚洲成av人片在线观看| 免费观看又色又爽又黄的| 一本一本久久久久a久久综合激情 91短视频在线观看免费 | 国产xxxxx在线观看免费| 国产一区二区三区不卡在线播放| 揄拍成人国产精品视频| 影音先锋每日av色资源站| 久久婷婷是五月综合色狠狠 | 吃下面吃胸在线看无码| 国产一区二区三区的区| 三a级做爰片免费观看| 狠狠色狠狠色综合久久第一次| 国产精品一区二区日韩精品 | 国产午夜手机精彩视频| 无限看片在线版免费视频大全| 国产精品一级av一区二区| 亚洲av免费不卡在线观看| 天天燥日日燥| 国产亚洲欧洲AⅤ综合一区| 国产av一区二区三区天美| 人成午夜免费视频无码| 亚洲一区中文字幕在线电影网| 中文字幕中文一区中文字幕| 色呦呦九九七七国产精品| 日本熟妇色xxxxx欧美老妇| 亚洲精品成人网线在线播放va| 高清少妇二区三区视频在线观看| 人与动牲交av免费| 九九精品无码专区免费|