FPGA設(shè)計(jì)全流程
發(fā)布時(shí)間:2008/5/28 0:00:00 訪問(wèn)次數(shù):608
第一章modelsim編譯xilinx庫(kù)
本章介紹如何編譯hdl必須的xilinx庫(kù)和結(jié)構(gòu)仿真。
創(chuàng)建將被編譯庫(kù)的目錄
在編譯庫(kù)之前,最好先建立一個(gè)目錄(事實(shí)上必須建立一個(gè)目錄),步驟如下。(假設(shè)modelsim的安裝目錄是“$modeltech_6.0”,ise的安裝目錄是“$xilinx”)
◆在“$modeltech_6.0/”目錄下建立一個(gè)名為xilinxlib的文件夾;
◆啟動(dòng)modelsim后,從“file”菜單項(xiàng)中點(diǎn)擊“changedirectory”并指定到剛剛建立的那個(gè)文件夾“xilinxlib”;
◆接下來(lái)要做的事情是將xilinx庫(kù)編譯到“xilinxlib”文件夾中。有三個(gè)庫(kù)需要被編譯。它們分別是“simprims”,“unisims”和“xilinxcorelib”;(所有這些庫(kù)文件都在“$xilinx/verilog/src”目錄下)
◆點(diǎn)擊modelsim中的“workspace”窗口,建立一個(gè)名為xilinx_corelib的新庫(kù);(這個(gè)操作創(chuàng)建一個(gè)名為“xilinx_corelib”的文件夾,你可以在“workspace”窗口中看到它)
◆現(xiàn)在開(kāi)始編譯!在“compile”菜單中點(diǎn)擊“compile”,選擇“$xinlinx/verilog/scr/xilinxcorelib”目錄中所有的文件,在彈出的對(duì)話框中選中剛剛建立的“xilinx_corelib”文件夾,再點(diǎn)擊“compile”按鈕就可以了編譯了;
◆用同樣的方式編譯其他兩個(gè)本地庫(kù)(“simprims”和“unisims”);
第二章調(diào)用xilinxcore-generator
當(dāng)需要在設(shè)計(jì)中生成參數(shù)化和免費(fèi)的ip內(nèi)核(黑箱子)時(shí),無(wú)論是通過(guò)原理圖方式還是hdl方式,core-generator都是一個(gè)非常有用的程序。
利用core-generator創(chuàng)建一個(gè)ip核
利用xilinx提供的core-generator來(lái)生成ip核是非常簡(jiǎn)單的。內(nèi)核是全參數(shù)化的,這就意味著你只需要在空白處填入幾個(gè)數(shù)字和參數(shù),然后程序就會(huì)自動(dòng)產(chǎn)生一個(gè)你所需要的
內(nèi)核。(有些內(nèi)核是全免費(fèi)的,有些則沒(méi)有這么慷慨)
利用core-generator來(lái)生成ip核的步驟如下:
◆在“程序”中找到“xilinx”項(xiàng),然后在“accessories”中啟動(dòng)單獨(dú)存在的“core-generator”;
◆在“part”標(biāo)簽欄中選擇恰當(dāng)?shù)膄pga模型;
◆從“generation”標(biāo)簽欄中選擇正確的設(shè)計(jì)流;(完成后按“ok”按鈕)
◆定制你的參數(shù)化內(nèi)核;
◆在內(nèi)核生成的同時(shí),會(huì)彈出一個(gè)“readmefile”的信息框來(lái)通知一些重要的信息;
◆“*.v”文件是用來(lái)作仿真和綜合用的,而“*.veo”文件是用來(lái)作綜合實(shí)例用的。(調(diào)用意味著把相應(yīng)的文件加入synplify.pro工程中,而實(shí)例指的是可以拷貝這個(gè)文件中的某些線到hdl設(shè)計(jì)的頂層模塊中去。退出。
第三章使用synplify.pro綜合hdl和內(nèi)核
綜合是將設(shè)計(jì)好的hdl代碼,圖形代碼和原理圖轉(zhuǎn)變成邏輯單元的技術(shù)。同與硬件執(zhí)行和物理布線非常接近的物理綜合相比,邏輯綜合是更高層次的綜合技術(shù)。
利用synplify.pro進(jìn)行邏輯綜合
synplify.pro對(duì)于大容量低價(jià)格的xilinxspartan系列fpga而言,有著非常好的綜合能力。
具體步驟如下:
◆首先創(chuàng)建一個(gè)工程;
◆往工程中加入hdl文件(我的演示文件有三個(gè)文件,core-generator生成的“async_fifo.v”和“dcm4clk”和一個(gè)verilog頂層文件“top.v”)。在synplify.pro環(huán)境中設(shè)置“implementationoption”;(如果讀者非常熟練的話,可以省略這步)
◆往core-generator生成的兩個(gè)verilog文件中插入synplify.pro能夠識(shí)別的指示這些指示告訴綜合器如何處理這兩個(gè)特殊的文件;
◆插入“/*synthesissyn_black_box*/”指示通知synplify.pro把模塊當(dāng)作黑箱子來(lái)處理,同時(shí)指示“/*synthesissyn_isclock=1*/”表示這個(gè)作為時(shí)鐘輸入端的端口不能被綜合器識(shí)別,因?yàn)樗硕丝诿鉀](méi)有下層結(jié)構(gòu);
◆將工程保存在合適的地方,然后綜合這個(gè)工程;
◆在綜合完成后,選擇“technologyview”按鈕來(lái)觀察層次結(jié)構(gòu);(你可以發(fā)現(xiàn)內(nèi)核
◆不管你相信與否!synplify.pro已經(jīng)生成了你所希望的東西。(擁有專用clock-input-buffer,ibug連接的dcm結(jié)構(gòu),并且有一個(gè)從global-clock-buffer,bufg的反饋結(jié)構(gòu)“clkfb”)
第四章綜合后的項(xiàng)目執(zhí)行
執(zhí)行是將生成的位文件下載到fpga的最后一個(gè)步驟。
同時(shí)創(chuàng)建不同的時(shí)序模型(post-translate模型,post-map模型和post-par模型)和時(shí)序報(bào)告。
ise,唯一可以用來(lái)執(zhí)行的工具
ise控制著設(shè)計(jì)流的各個(gè)方面。通過(guò)projectnavigator界面,可以進(jìn)入所有不同的設(shè)計(jì)實(shí)體和實(shí)際執(zhí)行工具。同時(shí)也可以訪問(wèn)于工程有關(guān)的文件和文檔。projectnavigator包含一個(gè)平坦的目錄結(jié)構(gòu);
在演示項(xiàng)目中,ise的一些貧乏的功能不得不讓道給其他的第三方軟件,例如modelsim.pro和synplify.pro,因此ise一般僅僅被用作執(zhí)行工具。
◆啟動(dòng)ise,用“edif”作為文件輸入;(“edif”文件由synplify.pro軟件生成,作為終端設(shè)計(jì)文件,可以被大多數(shù)的fpga開(kāi)發(fā)環(huán)境識(shí)別,例如ise,quartus,isplevel。)
◆在建立了ise工程后,可以加入其他兩個(gè)文件,一個(gè)是與內(nèi)核相關(guān)的“*.xco”文件,另一個(gè)是與dcm結(jié)構(gòu)有關(guān)的“*.xaw”;
◆現(xiàn)在
第一章modelsim編譯xilinx庫(kù)
本章介紹如何編譯hdl必須的xilinx庫(kù)和結(jié)構(gòu)仿真。
創(chuàng)建將被編譯庫(kù)的目錄
在編譯庫(kù)之前,最好先建立一個(gè)目錄(事實(shí)上必須建立一個(gè)目錄),步驟如下。(假設(shè)modelsim的安裝目錄是“$modeltech_6.0”,ise的安裝目錄是“$xilinx”)
◆在“$modeltech_6.0/”目錄下建立一個(gè)名為xilinxlib的文件夾;
◆啟動(dòng)modelsim后,從“file”菜單項(xiàng)中點(diǎn)擊“changedirectory”并指定到剛剛建立的那個(gè)文件夾“xilinxlib”;
◆接下來(lái)要做的事情是將xilinx庫(kù)編譯到“xilinxlib”文件夾中。有三個(gè)庫(kù)需要被編譯。它們分別是“simprims”,“unisims”和“xilinxcorelib”;(所有這些庫(kù)文件都在“$xilinx/verilog/src”目錄下)
◆點(diǎn)擊modelsim中的“workspace”窗口,建立一個(gè)名為xilinx_corelib的新庫(kù);(這個(gè)操作創(chuàng)建一個(gè)名為“xilinx_corelib”的文件夾,你可以在“workspace”窗口中看到它)
◆現(xiàn)在開(kāi)始編譯!在“compile”菜單中點(diǎn)擊“compile”,選擇“$xinlinx/verilog/scr/xilinxcorelib”目錄中所有的文件,在彈出的對(duì)話框中選中剛剛建立的“xilinx_corelib”文件夾,再點(diǎn)擊“compile”按鈕就可以了編譯了;
◆用同樣的方式編譯其他兩個(gè)本地庫(kù)(“simprims”和“unisims”);
第二章調(diào)用xilinxcore-generator
當(dāng)需要在設(shè)計(jì)中生成參數(shù)化和免費(fèi)的ip內(nèi)核(黑箱子)時(shí),無(wú)論是通過(guò)原理圖方式還是hdl方式,core-generator都是一個(gè)非常有用的程序。
利用core-generator創(chuàng)建一個(gè)ip核
利用xilinx提供的core-generator來(lái)生成ip核是非常簡(jiǎn)單的。內(nèi)核是全參數(shù)化的,這就意味著你只需要在空白處填入幾個(gè)數(shù)字和參數(shù),然后程序就會(huì)自動(dòng)產(chǎn)生一個(gè)你所需要的
內(nèi)核。(有些內(nèi)核是全免費(fèi)的,有些則沒(méi)有這么慷慨)
利用core-generator來(lái)生成ip核的步驟如下:
◆在“程序”中找到“xilinx”項(xiàng),然后在“accessories”中啟動(dòng)單獨(dú)存在的“core-generator”;
◆在“part”標(biāo)簽欄中選擇恰當(dāng)?shù)膄pga模型;
◆從“generation”標(biāo)簽欄中選擇正確的設(shè)計(jì)流;(完成后按“ok”按鈕)
◆定制你的參數(shù)化內(nèi)核;
◆在內(nèi)核生成的同時(shí),會(huì)彈出一個(gè)“readmefile”的信息框來(lái)通知一些重要的信息;
◆“*.v”文件是用來(lái)作仿真和綜合用的,而“*.veo”文件是用來(lái)作綜合實(shí)例用的。(調(diào)用意味著把相應(yīng)的文件加入synplify.pro工程中,而實(shí)例指的是可以拷貝這個(gè)文件中的某些線到hdl設(shè)計(jì)的頂層模塊中去。退出。
第三章使用synplify.pro綜合hdl和內(nèi)核
綜合是將設(shè)計(jì)好的hdl代碼,圖形代碼和原理圖轉(zhuǎn)變成邏輯單元的技術(shù)。同與硬件執(zhí)行和物理布線非常接近的物理綜合相比,邏輯綜合是更高層次的綜合技術(shù)。
利用synplify.pro進(jìn)行邏輯綜合
synplify.pro對(duì)于大容量低價(jià)格的xilinxspartan系列fpga而言,有著非常好的綜合能力。
具體步驟如下:
◆首先創(chuàng)建一個(gè)工程;
◆往工程中加入hdl文件(我的演示文件有三個(gè)文件,core-generator生成的“async_fifo.v”和“dcm4clk”和一個(gè)verilog頂層文件“top.v”)。在synplify.pro環(huán)境中設(shè)置“implementationoption”;(如果讀者非常熟練的話,可以省略這步)
◆往core-generator生成的兩個(gè)verilog文件中插入synplify.pro能夠識(shí)別的指示這些指示告訴綜合器如何處理這兩個(gè)特殊的文件;
◆插入“/*synthesissyn_black_box*/”指示通知synplify.pro把模塊當(dāng)作黑箱子來(lái)處理,同時(shí)指示“/*synthesissyn_isclock=1*/”表示這個(gè)作為時(shí)鐘輸入端的端口不能被綜合器識(shí)別,因?yàn)樗硕丝诿鉀](méi)有下層結(jié)構(gòu);
◆將工程保存在合適的地方,然后綜合這個(gè)工程;
◆在綜合完成后,選擇“technologyview”按鈕來(lái)觀察層次結(jié)構(gòu);(你可以發(fā)現(xiàn)內(nèi)核
◆不管你相信與否!synplify.pro已經(jīng)生成了你所希望的東西。(擁有專用clock-input-buffer,ibug連接的dcm結(jié)構(gòu),并且有一個(gè)從global-clock-buffer,bufg的反饋結(jié)構(gòu)“clkfb”)
第四章綜合后的項(xiàng)目執(zhí)行
執(zhí)行是將生成的位文件下載到fpga的最后一個(gè)步驟。
同時(shí)創(chuàng)建不同的時(shí)序模型(post-translate模型,post-map模型和post-par模型)和時(shí)序報(bào)告。
ise,唯一可以用來(lái)執(zhí)行的工具
ise控制著設(shè)計(jì)流的各個(gè)方面。通過(guò)projectnavigator界面,可以進(jìn)入所有不同的設(shè)計(jì)實(shí)體和實(shí)際執(zhí)行工具。同時(shí)也可以訪問(wèn)于工程有關(guān)的文件和文檔。projectnavigator包含一個(gè)平坦的目錄結(jié)構(gòu);
在演示項(xiàng)目中,ise的一些貧乏的功能不得不讓道給其他的第三方軟件,例如modelsim.pro和synplify.pro,因此ise一般僅僅被用作執(zhí)行工具。
◆啟動(dòng)ise,用“edif”作為文件輸入;(“edif”文件由synplify.pro軟件生成,作為終端設(shè)計(jì)文件,可以被大多數(shù)的fpga開(kāi)發(fā)環(huán)境識(shí)別,例如ise,quartus,isplevel。)
◆在建立了ise工程后,可以加入其他兩個(gè)文件,一個(gè)是與內(nèi)核相關(guān)的“*.xco”文件,另一個(gè)是與dcm結(jié)構(gòu)有關(guān)的“*.xaw”;
◆現(xiàn)在
熱門(mén)點(diǎn)擊
- 基于FPGA的可編程定時(shí)器/計(jì)數(shù)器8253的
- PLC和PLD的區(qū)別與聯(lián)系
- Xilinx FPGA全局時(shí)鐘和第二全局時(shí)鐘
- 基于FPGA片上PowerPC和VxWork
- 基于FPGA的數(shù)字正交混頻變換算法的實(shí)現(xiàn)
- 使用C編譯器+ICD2調(diào)試程序需要注意的問(wèn)題
- Altera發(fā)布低成本低功耗CPLD EPM
- 基于VHDL的彩燈控制
- 32位單精度浮點(diǎn)乘法器的FPGA實(shí)現(xiàn)
- 用CAM實(shí)現(xiàn)OC-48線速字符串匹配的FPG
推薦技術(shù)資料
- 聲道前級(jí)設(shè)計(jì)特點(diǎn)
- 與通常的Hi-Fi前級(jí)不同,EP9307-CRZ這臺(tái)分... [詳細(xì)]
- CV/CC InnoSwitch3-AQ 開(kāi)
- URF1DxxM-60WR3系
- 1-6W URA24xxN-x
- 閉環(huán)磁通門(mén)信號(hào)調(diào)節(jié)芯片NSDRV401
- SK-RiSC-SOM-H27X-V1.1應(yīng)
- RISC技術(shù)8位微控制器參數(shù)設(shè)
- 多媒體協(xié)處理器SM501在嵌入式系統(tǒng)中的應(yīng)用
- 基于IEEE802.11b的EPA溫度變送器
- QUICCEngine新引擎推動(dòng)IP網(wǎng)絡(luò)革新
- SoC面世八年后的產(chǎn)業(yè)機(jī)遇
- MPC8xx系列處理器的嵌入式系統(tǒng)電源設(shè)計(jì)
- dsPIC及其在交流變頻調(diào)速中的應(yīng)用研究