第一章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)在可以生成需要仿真的所有的模塊;(點(diǎn)擊下劃紅線的選項(xiàng))
◆如果想仿真post-PAR模塊,最好首先定義引腳,特別是專用的外部時(shí)鐘引腳;
◆啟動(dòng)“map”程序中的“Floorplaner”選項(xiàng)來(lái)定義引腳;
◆“DCMs”和“IBUFGs”應(yīng)該被放在正確的位置。
仿真是用來(lái)驗(yàn)證設(shè)計(jì)的時(shí)序和功能是否正確的調(diào)試方法之一。
在驗(yàn)證調(diào)試電路和觀察波形的過(guò)程中,應(yīng)該進(jìn)行四個(gè)不同類(lèi)型的仿真。
不同的仿真類(lèi)型針對(duì)的不同的平臺(tái)。功能仿真用來(lái)驗(yàn)證設(shè)計(jì)的功能是否正確;
post-translate仿真用來(lái)驗(yàn)證設(shè)計(jì)的基于原語(yǔ)延時(shí);post-map仿真用來(lái)仿真基于原語(yǔ)延時(shí)和網(wǎng)絡(luò)延時(shí);最后,post-PAR仿真在post-map仿真的基礎(chǔ)上加入了輸入輸出和布線延時(shí)。
我不會(huì)給出演示設(shè)計(jì)的全部詳細(xì)的仿真過(guò)程,但是給出了重點(diǎn)和重要的步驟。只給出了post-PAR仿真過(guò)程,列出了對(duì)于所有其他三種仿真需要的不同文件。(實(shí)際上,不同的文件是不同的參考時(shí)序模型:<DesignName>_translate.v是post-translate模型,<DesignName>_map.v是post-map模型。)
◆對(duì)于post-PAR仿真,需要四種類(lèi)型的文件,“glb1.v”是用來(lái)作FPGA全局復(fù)位的(從“$Xilinx/verilog/src”目錄中拷貝),“<DesignName>_timesim.v”用來(lái)作post-PAR仿真(必須命名為<DesignName>.v),<TestBenchName.v>用來(lái)作仿真用和<DesignName>_timesim.sdf用來(lái)作時(shí)序后注。
◆post-map仿真跟上述類(lèi)似,post-translate沒(méi)有“*.sdf”文件,功能仿真除了沒(méi)有“*.sdf”文件外還沒(méi)有“glb1.v”文件;
◆通過(guò)點(diǎn)擊“Simulation”菜單下的“StartSimulation”命令把前面討論過(guò)的三個(gè)Xilinx庫(kù)文件加入到當(dāng)前仿真庫(kù)中;
◆在“Design”欄中選擇“glb1”和“<TestbenchName>”,仿真設(shè)計(jì);
◆在“Transcript”窗口中輸入“addwave*”命令,你就可以到在波形窗口中出現(xiàn)了信號(hào)
來(lái)源:零八我的愛(ài)0次