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

        ?

        基于國產(chǎn)軟硬件系統(tǒng)的實驗教學FPGA仿真工具設計

        2022-02-20 10:25:50王建新肖超恩張磊孫猛韓英許弘可
        實驗室研究與探索 2022年11期
        關(guān)鍵詞:插件菜單代碼

        王建新,肖超恩,張磊,孫猛,韓英,許弘可

        (北京電子科技學院電子與通信工程系,北京 100070)

        0 引言

        目前,我國高等教育正處于內(nèi)涵發(fā)展的關(guān)鍵時期和全面提高人才培養(yǎng)能力、建設教育強國的關(guān)鍵階段[1-2]。實驗教學應著力于新工科建設與發(fā)展,在EDA領(lǐng)域,如何提高相關(guān)仿真工具軟件的自主化程度,提升學生解決復雜工程問題的能力,是我們面臨的一個重要問題[3-4]。

        可編程門陣列(Field Programmable Gate Array,F(xiàn)PGA)可通過編程方式組合成任意數(shù)字電路,廣泛應用于電子、通信、計算機、人工智能等領(lǐng)域。FPGA 作為專用集成電路領(lǐng)域中的一種半定制電路,既解決了定制電路功能單一,又克服了通用處理器計算效率低下的問題。硬件描述語言將硬件設計軟件化,軟件設計虛擬化,以大規(guī)??删幊踢壿嬈骷樵O計載體,以軟件設計為基礎,結(jié)合仿真綜合,完成對FPGA芯片的編譯、布局布線、邏輯映射和下載工作[5-6]。

        目前,F(xiàn)PGA 集成開發(fā)工具在Windows 操作系統(tǒng)(某些Linux操作系統(tǒng))和X86 平臺下能夠完美運行,其集成開發(fā)工具主要包括:國外的Quartus Ⅱ、Vivado、Diamond等;國產(chǎn)FPGA 開發(fā)工具主要包括:Pango、TangDynasty、云源軟件、HqFpga、FX 伏羲軟件、Supra軟件等[7-8]。

        在代碼仿真方面,主要軟件包括:Modelsim、NCVerilog、NC-VHDL、NC-SIM等付費軟件[9-10],目前不支持國產(chǎn)操作系統(tǒng)及國產(chǎn)CPU,主要用于大型芯片或設備開發(fā)、生產(chǎn)測試環(huán)境,且使用受限,授權(quán)價格昂貴,在高校FPGA實驗教學環(huán)境建設和國產(chǎn)化方面存在一定問題。為便于實驗教學,基于Linux 操作系統(tǒng)下的開源軟件開發(fā)工具Gambas設計并實現(xiàn)了基于國產(chǎn)操作系統(tǒng)和國產(chǎn)CPU的FPGA 仿真工具EasyVerilog,針對不同架構(gòu)CPU的不同指令集問題,集成并適配了相關(guān)開源插件,可實現(xiàn)Verilog 代碼編寫、編譯、仿真、綜合等相關(guān)功能,可用于數(shù)字電子技術(shù)、EDA、FPGA 等相關(guān)實驗課程的數(shù)字邏輯設計與仿真,在一定程度上降低了實驗教學中對如ModelSim等國外EDA仿真工具軟件的依賴。

        1 系統(tǒng)架構(gòu)

        本文采用Gambas 進行FPGA 集成開發(fā)工具EasyVerilog的設計與實現(xiàn)[11-13],主要工作包括:工程管理,代碼編輯,Verilog 代碼的編譯、仿真、綜合,Verilog轉(zhuǎn)VHDL,代碼模板,系統(tǒng)升級、時序圖和狀態(tài)轉(zhuǎn)移圖繪制等功能,系統(tǒng)架構(gòu)如圖1 所示。

        圖1 系統(tǒng)架構(gòu)

        該仿真工具可運行于Deepin、UOS、銀河麒麟、優(yōu)麒麟、Loongnix等國產(chǎn)操作系統(tǒng),以及龍芯、飛騰、鯤鵬、兆芯等國產(chǎn)CPU,可用于FPGA硬件邏輯設計中輕量級Verilog代碼編寫、編譯、仿真與綜合。

        2 實現(xiàn)方案

        2.1 Gambas開發(fā)工具

        Gambas是一套基于類Unix 操作系統(tǒng)的開源程序設計工具。Gambas以可視化為主要特點,采用面向?qū)ο?、事件?qū)動機制,把Linux程序設計的復雜性封裝起來,使研究和開發(fā)Linux 環(huán)境下的應用程序變得簡單易行。實際上,Gambas可以看作是具有對象擴展功能的BASIC解釋器,使用BASIC 和C 混合語法規(guī)則,在體系結(jié)構(gòu)上參考Java實現(xiàn)方案,界面實現(xiàn)上采用Qt4、Qt5、GTK +2、GTK +3 兼容方案[14-16]。用Gambas 開發(fā)的應用程序是一組文件的集合,每個文件描述一個類,類文件編譯后由解釋器執(zhí)行。

        2.2 系統(tǒng)實現(xiàn)

        2.2.1 工程管理

        EasyVerilog集成開發(fā)工具窗體的左側(cè)設計了一個工程管理窗口,以樹狀列表形式列出了當前工程中的Verilog代碼和Testbench 文件等,采用TreeView 控件實現(xiàn),開發(fā)工具窗口如圖2 所示。

        圖2 開發(fā)工具窗口

        可通過“文件”菜單下“新建”中的“工程文件”菜單新建一個工程,也可以在“打開”菜單下打開一個已經(jīng)存在的工程,如圖3 所示。當點擊左側(cè)區(qū)域的工程管理窗口中相關(guān)文件時,會在中間區(qū)域的代碼編輯窗口顯示Verilog 代碼或Testbench 文件,右側(cè)為代碼縮略圖窗口,最下側(cè)為控制臺窗口。

        圖3 “文件”菜單

        2.2.2 代碼編輯

        代碼編輯窗口實現(xiàn)源代碼編輯功能,用來編寫和編輯Verilog代碼。主要包括撤消、恢復、剪切、復制、粘貼、刪除、全選、查找和轉(zhuǎn)到等文本操作功能,采用TextEditor控件實現(xiàn),與主流代碼編輯器風格保持一致。使用查找功能時,會在底部出現(xiàn)一個文本框,輸入要查找的文本,代碼編輯窗口中的相關(guān)文本會高亮顯示,使用Highlight屬性實現(xiàn),如圖4 所示。

        圖4 “編輯”菜單

        2.2.3 編譯

        EasyVerilog開發(fā)工具采用插件(Plugin)技術(shù)實現(xiàn)快速開發(fā)。在編譯、仿真和綜合階段,設計了一種通用插件接口方案,借鑒Qt 中信號(Signal)與槽(Slot)的通信機制,通過類回調(diào)(函數(shù))形式進行“隱式”連接,“顯示”收發(fā)數(shù)據(jù),在操作系統(tǒng)中以流(Stream)的形式向插件發(fā)送相關(guān)命令(Command),插件接收到命令后返回相關(guān)計算結(jié)果(Result)到流,系統(tǒng)再以過程(Process)方式將結(jié)果截獲并回顯。該方案有利于系統(tǒng)功能擴展、升級與整體遷移。

        Verilog代碼編譯采用了Icarus Verilog(iverilog)開源插件,由Stephen Williams 開發(fā),也可配置其他編譯插件。Icarus Verilog 能將符合IEEE-1364 格式的Verilog 代碼編譯為指定格式,當前支持IEEE Std 1364-2005。Icarus Verilog 通過下載源碼并進行本地編譯形式,僅需要進行少量配置文件和接口代碼修改,可通過一次代碼編寫,指定平臺編譯的形式支持所有的國產(chǎn)操作系統(tǒng)和國產(chǎn)CPU,包括最新的龍芯LoongArch指令集。通過iverilog 命令編譯Verilog 代碼,如果出錯,會在最下側(cè)的控制臺窗口輸出相關(guān)錯誤信息,如果無誤,則根據(jù)代碼要求輸出相關(guān)信息?!肮こ獭辈藛翁峁┝恕熬幾g當前文件”“編譯全部”“仿真”“綜合”和“Verilog轉(zhuǎn)VHDL”等功能,如圖5 所示。

        圖5 “工程”菜單

        2.2.4 仿真

        Verilog代碼編譯完成后,通過vvp 命令生成波形文件,使用GTKWave 插件顯示波形。GTKWave 是一個功能齊全的波形查看工具,可讀取LXT、LXT2、VZT、FST和GHW文件以及標準Verilog VCD/EVCD文件。

        2.2.5 綜合

        Verilog代碼綜合采用yosys插件。yosys是一款開源FPGA 綜合工具,支持Verilog-2005,并為各應用領(lǐng)域提供了一套基礎綜合算法,主要特性包括:可將Verilog轉(zhuǎn)換為BLIF、EDIF、BTOR、SMT-LIB 和simple RTL Verilog 等格式;可進行屬性和等價性檢查,邏輯化簡和優(yōu)化;可映射到ASIC 標準單元庫;可映射到Xilinx 7 系列和Lattice iCE40、ECP5 等FPGA;自定義綜合流程、擴展自定義綜合算法、擴展針對其他FPGA的綜合等。

        由于綜合需要大量命令行操作,EasyVerilog 采用內(nèi)置命令行輸出與虛擬終端設計方法,有效避免與其他終端的干擾與數(shù)據(jù)阻塞,實現(xiàn)一個與終端并行執(zhí)行的虛擬終端系統(tǒng)來模擬終端,通過命令緩沖批處理形式依次發(fā)送相關(guān)綜合操作命令到虛擬終端,并將執(zhí)行結(jié)果回饋,提高了運行效率。

        2.2.6 繪制時序圖

        在Verilog代碼編寫前,可能需要對所設計的硬件邏輯功能進行全面、深入的分析,此時需要列出相關(guān)控制信號并按需繪制狀態(tài)轉(zhuǎn)移圖或(和)時序圖。EasyVerilog開發(fā)工具集成了網(wǎng)頁版本的狀態(tài)轉(zhuǎn)移圖繪制工具SequenceDiagrams 和時序圖繪制工具WaveDromEditor。該功能放置在“工具”菜單中。此外,“工具”菜單可插入Verilog 代碼的相關(guān)模板,如時序邏輯、組合邏輯等代碼模板框架,可打開并瀏覽當前工程文件夾,安裝與升級插件,并設計有一個文本計算器,如圖6 所示。

        圖6 “工具”菜單

        3 實例分析

        通過一個實例來說明利用該集成開發(fā)工具實現(xiàn)Verilog數(shù)字邏輯設計的基本步驟和技巧。例如:實現(xiàn)一個4 bit計數(shù)器,并進行編譯、仿真、綜合。

        (1)功能設計。編寫一個4 bit計數(shù)器實例,當系統(tǒng)復位時計數(shù)器清零,否則進行累加操作。采用WaveDromEditor設計并編輯時序圖,如圖7 所示。

        圖7 計數(shù)器時序圖

        (2)Verilog HDL 硬件描述。在代碼編輯窗口中編寫Verilog代碼,描述硬件邏輯功能,包括兩類基本模塊(module),即功能模塊和測試模塊(Testbench),文件名分別為counter.v 和counter_tb.v,4 bit 計數(shù)器功能模塊代碼為:

        (3)編譯與仿真。當選擇“工程”菜單中的“編譯當前文件”時,可編譯當前的功能模塊,當選擇“編譯全部”時,則可編譯該工程中所有功能模塊和測試模塊。當全部模塊編譯無誤后,選擇“仿真”,即可生成波形文件,并調(diào)用GTKWave 插件顯示仿真波形,如圖8 所示。

        圖8 計數(shù)器仿真波形

        (4)綜合。對功能模塊進行綜合,生成網(wǎng)表文件并以圖形方式顯示,在虛擬終端顯示輸出信息,如圖9、10 所示。

        圖9 網(wǎng)表文件

        4 結(jié)語

        本文設計了一個輕量級,支持國產(chǎn)操作系統(tǒng)和國產(chǎn)CPU的FPGA仿真工具EasyVerilog。經(jīng)過測試,運行時內(nèi)存占用約為20 MB,不含插件安裝程序約為100 KB,包含插件完全安裝約為500 MB,適合于目前國產(chǎn)計算設備軟硬件資源少,需要對Verilog 代碼邏輯進行仿真的場合,適用于輕量級科研仿真、實驗教學等場景。目前,該系統(tǒng)已經(jīng)應用于數(shù)字系統(tǒng)設計、專業(yè)實習、電子電路課程設計等相關(guān)課程的實驗教學,經(jīng)相關(guān)實驗課程的反復測試驗證與使用,結(jié)果表明:該系統(tǒng)能夠在龍芯派二代2K1000 +Loongnix 操作系統(tǒng)以及樹莓派等單板計算機上流暢運行,也可在FT2000 +銀河麒麟、龍芯3A4000 +UOS國產(chǎn)計算機上完美運行。同時,支持在國產(chǎn)X86 平臺+各類國產(chǎn)操作系統(tǒng)運行,在教學上能做到對FPGA代碼編輯和編譯工具的替代和ModelSim仿真工具的部分替代,并且可為后續(xù)開發(fā)提供理論基礎與技術(shù)支持。

        圖10 圖形顯示及虛擬終端

        猜你喜歡
        插件菜單代碼
        中國新年菜單
        自編插件完善App Inventor與樂高機器人通信
        電子制作(2019年22期)2020-01-14 03:16:34
        創(chuàng)世代碼
        動漫星空(2018年11期)2018-10-26 02:24:02
        創(chuàng)世代碼
        動漫星空(2018年2期)2018-10-26 02:11:00
        創(chuàng)世代碼
        動漫星空(2018年9期)2018-10-26 01:16:48
        創(chuàng)世代碼
        動漫星空(2018年5期)2018-10-26 01:15:02
        本月菜單
        美食堂(2017年1期)2017-01-13 01:37:42
        MapWindowGIS插件機制及應用
        基于Revit MEP的插件制作探討
        一個“公海龜”的求偶菜單
        鴨綠江(2013年10期)2013-03-11 19:41:55
        亚洲日韩av无码| 日韩不卡一区二区三区色图| 中文字日产幕码三区的做法步| 内射人妻少妇无码一本一道| 无码一区二区三区老色鬼| 亚色中文字幕| 亚洲第一大av在线综合| 人人爽久久久噜人人看| 品色永久免费| 99久久久无码国产精品动漫| 日韩国产一区二区三区在线观看| 日本道色综合久久影院| 欧美精品一区二区蜜臀亚洲| 久久国产亚洲高清观看5388| 99久久精品国产一区色| 亚洲国产a∨无码中文777| 欧美日韩不卡合集视频| 欧美中文字幕在线看| 亚洲专区一区二区三区四区五区 | 欧美丰满熟妇xxxx性ppx人交| 国产精品久久毛片av大全日韩 | a级国产乱理论片在线观看| 国产乱人视频在线观看播放器| 久久老熟女一区二区三区| 麻豆网神马久久人鬼片| 蜜桃精品免费久久久久影院| 国产精品国产三级国产AvkTV| 国产午夜免费一区二区三区视频| а√天堂资源官网在线资源 | 亚洲午夜久久久久中文字幕久| 精品婷婷国产综合久久| 欧美三级不卡在线观看| 国内精品九九久久久精品| 亚洲国产av自拍精选| 亚洲av精二区三区日韩| 人妻少妇av中文字幕乱码| 亚洲AV乱码毛片在线播放| 国产精品一区久久综合| 99精品人妻无码专区在线视频区| 欧美色欧美亚洲另类二区不卡| 熟女人妻一区二区中文字幕|