新聞中心

        EEPW首頁 > EDA/PCB > 設計應用 > 通過EDA設計工具了解FPGA的設計流程

        通過EDA設計工具了解FPGA的設計流程

        作者: 時間:2016-10-16 來源:網絡 收藏

        對于初學者而言,的設計流程是否顯的又臭又長呢?呵呵,如果真的有這樣的感覺,沒有關系,下面我就通過對軟件的使用來了解的設計流程。

        本文引用地址:http://www.104case.com/article/201610/308325.htm

        1)使用synplify pro對硬件描述語言編譯并生成netlist

        綜合前要注意對器件的選擇,方法是在project->implementation option中對要下載的器件和網表的生成情況進行選擇。綜合后的網表有兩種: RTL級網表和門級網表(gate netlist),通過對網表的分析可以對設計的實現方式有初步的了解,并分析其中的錯誤和不合理的地方,另外還可以對關鍵路徑的delay和slack進行分析。

        使用synplify pro要先新建工程,注意修改工作目錄,然后添加所要編譯的文件,要注意top文件要最后一個添加,這樣才可以保證生成的文件是以top文件來命名的

        2)使用modelsim進行功能仿真

        導入源程序和testbench進行仿真,并保存波形文件(.wlf)

        3)使用quartusⅡ根據netlist進行布線,并進行時序分析

        在使用quartusⅡ前要做一些必要的設置,在assignments-> tools setting中的simulation中選擇modelsim,并選擇選項run this tools automatically after compilation。如果沒有提前做這些設置,可以quartus做完編譯布線后,做同樣的設置,然后運行 netlist writer和eda simulation tool

        在使用synplify pro得到滿意的netlist后,可以在synplify pro中通過option-> quartusⅡ直接調用quartusⅡ,quartusⅡ對synplify pro生成的.vqm文件進行編譯,布線。然后根據設計要求進行時序分析和引腳調整。

        4)使用modelsim進行布線后仿真

        由于quartusⅡ提前做了設置,因此在編譯布線完成后,會在工作目錄下生成modelsim仿真所需要的文件和庫(modelsim_work),在modelsim中將產生的文件和庫所在的文件夾設置為當前目錄,modelsim_work庫會自動導入,新建工程會提示所使用的modelsim.ini文件,應使用quartus生成的,然后導入文件(包括testbench),進行編譯,仿真的時候在library中添加modelsim_work庫,在sdf選項中可以添加quartus生成的延遲信息文件.sdo,注意作用域的選擇,如果testbench中調用被測試模塊的語句是send3a tb,那么作用域應該寫tb,在option選擇中可以選擇是否看代碼覆蓋率。另外,還可以將布線后的仿真結果與功能仿真的結果進行對比。下圖就是小型Soc中send3a模塊前后仿真的對比圖

        通過EDA設計工具了解FPGA的設計流程.jpg

        從圖中可以看出,除了有一定的延遲外,輸出波形不變。

        5)將quartus的波形轉化成testbench的方法:

        畫好波形后,通過file->export可以將波形輸出到quatus的工作目錄,verilog語言擴展名為.vt,修改為.v后可以在modelsim中使用,需要說明的是如果波形中包括輸出端口的話,輸出的testbench包含三個模塊,一般情況下,只需將輸入波形畫好后,輸出到testbench就可以。

        實際上,我們可以看出,整個過程實際就是: 代碼編寫--->功能仿真---->綜合---->布局,布線---->門級仿真----->下載------>板子調試這樣一看,原來HDL設計流程其實也很明了和簡單..不是嗎??



        關鍵詞: EDA FPGA

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 开封县| 甘泉县| 冷水江市| 连南| 饶平县| 房山区| 土默特左旗| 女性| 邳州市| 类乌齐县| 大同县| 武宁县| 赤壁市| 菏泽市| 马鞍山市| 金乡县| 北海市| 郁南县| 于都县| 温州市| 克拉玛依市| 金乡县| 如东县| 赤峰市| 镇安县| 丽水市| 永宁县| 镇平县| 沙河市| 江油市| 临西县| 宜都市| 祥云县| 青浦区| 广水市| 镇远县| 温宿县| 海晏县| 和林格尔县| 南召县| 资兴市|