1、編譯ModelSim需要的Xilinx庫(kù) 首先要將安裝的ModelSim目錄下的ModelSim.ini屬性設(shè)置為存檔類(lèi)型(去掉只讀).然后從DOS界面到ISE安裝目錄bin t(如果在Windows的環(huán)境變量中已經(jīng)設(shè)置過(guò)Xilinx路徑,就不必了), 運(yùn)行命令: (for ISE 6) compxlib -s mti_se -f all -l all -p e:modeltech_6.0win32 -o e:modeltech_6.0xilinx_libs (for ISE 6) -p 指定modelsim安裝目錄 -o 指定編譯庫(kù)輸出目錄 (for ISE 7) compxlib -s mti_se -arch all -lib all -l all -p e:modeltech_6.0win32 -dir e:modeltech_6.0xilinx_libs (for ISE 7) -arch : device architecture:spartan2, virtex, etc. -lib : library: unisim, smartmodel, etc. 新的版本把原來(lái)的-f拆開(kāi)成了-arch和-lib,而-f則指讀取文件,不過(guò)也還可以兼容原來(lái)的寫(xiě)法的編譯之后,compxlib會(huì)自動(dòng)修改modelsim.ini,重新打開(kāi)ModelSim,就能看到新的庫(kù)了 2、ISE中一些常用的實(shí)用功能 鏡像:Project --> Take Snapshot,用這個(gè)很容易做版本控制; 打包:Project --> Archive,將工程文件夾打包,方便轉(zhuǎn)移與交流 3、門(mén)控時(shí)鐘整理與總結(jié) 當(dāng)綜合器出現(xiàn)這樣的Warning時(shí),即提示發(fā)現(xiàn)了門(mén)控時(shí)鐘 WARNING DesignRules:372 - Netcheck: Gated clock. Clock net _n0019 is sourced by a combinatorial pin. This is not good design practice. Use the CE pin to control the loading of data into the flip-flop. 如果一個(gè)時(shí)鐘節(jié)點(diǎn)由組合邏輯驅(qū)動(dòng),那么它就形成了門(mén)控時(shí)鐘了。綜合器建議用組合邏輯驅(qū)動(dòng)CE引腳。 為什么綜合器會(huì)出現(xiàn)這樣的警告呢? 原來(lái)門(mén)控時(shí)鐘容易產(chǎn)生毛刺、增加延時(shí)、引起時(shí)鐘漂移(Clock Skew),并且還會(huì)降低可測(cè)性。 門(mén)控時(shí)鐘引起的這些問(wèn)題怎么解決呢? 用組合邏輯來(lái)驅(qū)動(dòng)CE端口,而不要驅(qū)動(dòng)Clock端口,這樣能更好地保持同步。 說(shuō)了那么多壞處,有沒(méi)有好處呢? 門(mén)控時(shí)鐘的好處常用在ASIC而不是fpga中。在ASIC中可以通過(guò)門(mén)控時(shí)鐘降低功耗。不過(guò)即使是在ASIC中,上述的缺點(diǎn)還是存在的,所以必須要小心地設(shè)計(jì)。 4、JTAG連接不上 有時(shí)候碰到這樣的問(wèn)題:在iMPACT中執(zhí)行Initialize命令后出現(xiàn)一連串的Error,無(wú)論如何找不到FPGA了。 如果你遇到的問(wèn)題跟我描述的一樣,那么下面的方法可能可以為你解決: 1、首先確認(rèn)并口是否打開(kāi): 在BIOS設(shè)置中找到Parallel Port的選項(xiàng),一般情況下將它設(shè)置到EPP+ECP(增強(qiáng)型并口)模式。 2、重新安裝ISE附帶的并口驅(qū)動(dòng)程序: 通常情況下產(chǎn)生這種問(wèn)題的最主要的原因是Xilinx ISE的并口驅(qū)動(dòng)被覆蓋,或者你安裝ISE的時(shí)候就沒(méi)有安裝并口驅(qū)動(dòng)程序。因此,解決方法就是重新安裝并口驅(qū)動(dòng)程序。提醒:你只需要安裝并口驅(qū)動(dòng)程序,而不需要安裝整個(gè)ISE,整個(gè)過(guò)程只需要不到1分鐘就可以解決的。 5、ISE中添加屬性,使ModelSim能顯示仿真代碼覆蓋率在ISE中的操作 1) 點(diǎn)中modelsim圖標(biāo),右鍵屬性 2) VLOG命令行加入-cover bcest 3) VSIM命令行加入-coverage 6、Xilinx軟件安裝事項(xiàng) Xilinx全部軟件都不能安裝在帶空格帶中文字符的目錄中,也就是說(shuō)不能裝在Program Files這個(gè)目錄下。建議所有軟件都 裝在某個(gè)盤(pán)的根目錄下。 需要注意的是,SysGen因?yàn)樾枰惭b在Matlab的toolbox目錄下,因此Matlab也不可以安裝在帶空格帶中文的目錄中! 7、為什么Xilinx器件中BRAM大小是18K? 18K是為了存放校驗(yàn)位的考慮。通常需要校驗(yàn)時(shí),每8bit需一位校驗(yàn)位,因此長(zhǎng)度是16+2=18。 但是,BRAM并沒(méi)有產(chǎn)生校驗(yàn)位的功能,他內(nèi)部所有的位功能都是一致的,都可以用作存儲(chǔ)。 在使用BRAM時(shí),存儲(chǔ)深度以2k為分界點(diǎn),如果存儲(chǔ)深度<=2k,即存儲(chǔ)形式為9bit x 2k,那么此時(shí)可以用滿(mǎn)18K的BRAM;而如果存儲(chǔ)深度>2k,即4bit x 4K或2 bit x 8k這種形式,則最多只能用到16K的BRAM。 8、Toggle Path是什么意思? ISE中有個(gè)命令叫做Toggle Path,它的作用就是改變Project中文件的相對(duì)路徑/絕對(duì)路徑存儲(chǔ)方式。這里所說(shuō)的文件,是指非工程目錄下的文件。 具體解釋參見(jiàn)Xilinx Answer Record 23415 9、iMPACT可不可以單獨(dú)裝? iMPACT可以單獨(dú)安裝。 ISE8.2安裝時(shí)可以選Standalone Programming Tool,這樣就會(huì)只裝impact。不過(guò)還要記得還要選你使用的Cable Driver。 但是8.2有個(gè)問(wèn)題:裝好的impact會(huì)因?yàn)槿鄙費(fèi)SVCR7.dll而不能啟動(dòng) http://www.xilinx.com/xlnx/xil_ans_display.jsp?iLanguageID=1&iCountryID=1&getPagePath=17468 所以,要么你還隨手帶一個(gè)MSVCR7.dll,要么用別的版本:) |