




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第七章第七章 FPGA FPGA仿真工具仿真工具n常用的硬件描述語(yǔ)言的仿真器有很多種,例如 VCS、Ncsim、Affirima、Verilog-XL、SpeedWave、Finsim 和ModelSim等。n根據(jù)所使用的編程語(yǔ)言的不同可以將這些工具分為Verilog語(yǔ)言仿真器和VHDL語(yǔ)言仿真器。n根據(jù)工作方式的不同分為事件驅(qū)動(dòng)Event-Driven的仿真器和時(shí)鐘驅(qū)動(dòng)Cycle-Driven的仿真器等。nModelSim 仿真器在FPGA/CPLD設(shè)計(jì)中使用得比較廣泛,這是因?yàn)镸odel Technology公司為各個(gè)FPGA/CPLD廠家都提供了 OEM 版本的ModelSim工具,同時(shí)
2、Model Technology公司也對(duì)ModelSim工具進(jìn)行了大力推廣。nModelSim仿真器是基于事件驅(qū)動(dòng)的,它可以用來(lái)仿真Ve r i log語(yǔ)言,也可以用來(lái)仿真VHDL語(yǔ)言,同時(shí)也支持兩種語(yǔ)言的混合仿真。n根據(jù)設(shè)計(jì)階段不同,仿真可以分為RTL行為級(jí)仿真、綜合后門級(jí)功能仿真和時(shí)序仿真等三大類型。n第一個(gè)仿真是RTL行為級(jí)仿真。這個(gè)階段的仿真可以用來(lái)檢查代碼中的語(yǔ)法錯(cuò)誤以及代碼行為的正確性,其中不包括延時(shí)信息。n第二個(gè)仿真是綜合后門級(jí)功能仿真。絕大多數(shù)的綜合工具除了可以輸出一個(gè)標(biāo)準(zhǔn)網(wǎng)表文件以外,還可以輸出Verilog或者VHDL網(wǎng)表。n第三個(gè)仿真是時(shí)序仿真。在設(shè)計(jì)布局布線完成以后可以
3、提供一個(gè)時(shí)序仿真模型,這種模型中包括了器件的信息,同時(shí)還會(huì)提供一個(gè) SDF 時(shí)序標(biāo)注文件Standard Delay format Timing Anotation) 。nModelSim仿真工具在默認(rèn)條件下提供 11 種不同的用戶窗口:n主窗口、數(shù)據(jù)流窗口、列表窗口、存儲(chǔ)器窗口、進(jìn)程窗口、信號(hào)窗口、源程序窗口、結(jié)構(gòu)窗口、變量窗口、波形窗口、斷言窗口等。nModelSim 軟件的用戶窗口全部是基于 Tcl/Tk 語(yǔ)言編寫的,所以可以通過(guò)使用 Tcl/Tk 語(yǔ)言來(lái)添加各種不同的用戶窗口,也可以通過(guò)軟件自帶的一些工具來(lái)定制仿真環(huán)境。7.1 ModelSim仿真窗口 主窗口結(jié)構(gòu)體窗口 進(jìn)程窗口 信號(hào)
4、窗口 變量窗口 源程序窗口 波形窗口 數(shù)據(jù)流窗口 列表窗口 7.1.1 主窗口主窗口是Modelsim的核心窗口,在默認(rèn)狀態(tài)下,在啟動(dòng)Modelsim時(shí)會(huì)自動(dòng)打開(kāi)。主窗口分為工作區(qū)和腳本區(qū)兩部分。在工作區(qū),可以很方便地對(duì)當(dāng)前工程的工作庫(kù)以及所有數(shù)據(jù)集合進(jìn)行控制。在腳本區(qū),可以輸入Modelsim的各種命令,命令執(zhí)行后會(huì)反饋執(zhí)行后的信息,使用戶了解執(zhí)行的實(shí)際情況。 n主窗口中的工作區(qū)以及命令控制臺(tái)腳本區(qū)都是浮動(dòng)窗口,同時(shí)還可以在主窗口中使用【View】/【Active Processes】命令打開(kāi)一個(gè)活動(dòng)進(jìn)程窗口【Active Processes】 。n可以通過(guò)在主窗口中選擇【View】/【W(wǎng)o
5、rkspace】命令來(lái)顯示或者隱藏工作區(qū)。經(jīng)過(guò)【View】/【Active Processes】命令來(lái)顯示或者隱藏活動(dòng)進(jìn)程窗口。 7.1.2 數(shù)據(jù)流窗口n數(shù)據(jù)流窗口Dataflow可以跟蹤設(shè)計(jì)中的物理連接,跟蹤設(shè)計(jì)中事件的傳播,也可以用來(lái)跟蹤寄存器、網(wǎng)線和進(jìn)程等。n【Navigate】菜單: n【Expand net to drivers】 :顯示所選擇信號(hào)、網(wǎng)線以及寄存器的驅(qū)動(dòng)。 n【Expand net to readers】 :顯示所選擇信號(hào)、網(wǎng)線以及寄存器的輸出。 n【Expand net】 :顯示所選擇信號(hào)、網(wǎng)線以及寄存器的驅(qū)動(dòng)以及輸出。 n【Expand to design inp
6、uts】 :顯示網(wǎng)線的頂層驅(qū)動(dòng),一般在 testbench或者頂層模塊中。 n【Expand to hierarchy input】 :顯示網(wǎng)線所在層次的一級(jí)驅(qū)動(dòng)。 n【Trace】菜單: n【TraceX】 :?jiǎn)尾礁櫜淮_定值的上一個(gè)驅(qū)動(dòng)。 n【ChaseX】 :直接跟蹤不確定值的源頭。 n【Trace next event】 :挪動(dòng)。 n【Trace event set】 :跳轉(zhuǎn)到輸入時(shí)間的源頭。7.1.3 列表窗口n列表窗口使用表格的形式顯示仿真的結(jié)果。n窗口被分為兩個(gè)可調(diào)整的部分,右邊為信號(hào)列表,左邊為仿真運(yùn)行時(shí)間以及仿真的 Delta 時(shí)間。n在列表窗口中通過(guò)選擇【Tools】/【W(wǎng)
7、indow Properties】命令可以彈出【Modify Display Properties(list)】對(duì)話框,使用這個(gè)對(duì)話框窗口可以對(duì)屬性設(shè)置【W(wǎng)indow Properties】和觸發(fā)設(shè)置【Triggers】進(jìn)行設(shè)置。7.1.4 存數(shù)器窗口n 存儲(chǔ)器窗口可以顯示設(shè)計(jì)中存儲(chǔ)器的內(nèi)容,左邊為存儲(chǔ)器列表,右邊為對(duì)應(yīng)的存儲(chǔ)器的內(nèi)容。7.1.5 進(jìn)程窗口選擇Veiw Active命令后,窗口中顯示的是當(dāng)前工程中的所有進(jìn)程。 選擇In Regin 命令后,在窗口中顯示的是當(dāng)前層次結(jié)構(gòu)中包含的進(jìn)程。Ready表示此進(jìn)程將在當(dāng)前的很短的一個(gè)時(shí)間內(nèi)被執(zhí)行;Wait表示進(jìn)程正等待信號(hào)的變化。Done表
8、示進(jìn)程正在執(zhí)行等待語(yǔ)句。 7.1.6 信號(hào)窗口當(dāng)前層次結(jié)構(gòu)中的所有信號(hào)名稱 信號(hào)的值 用戶必須在結(jié)構(gòu)窗口中選擇確定的層次結(jié)構(gòu),來(lái)獲得想要仿真的信號(hào)。 7.1.7 源程序窗口n源程序窗口主要用來(lái)顯示和編輯 HDL 源文件代碼。7.1.8 結(jié)構(gòu)窗口結(jié)構(gòu)窗口用來(lái)顯示仿真中的層次信息,選擇不同的結(jié)構(gòu)層次,其他窗口中的信息都會(huì)發(fā)生相應(yīng)的變化。 7.1.9 變量窗口進(jìn)程中的變量 n變量窗口被分為兩個(gè)不同的部分,左邊為當(dāng)前進(jìn)程中用到的所有變量,右邊為與變量相關(guān)的當(dāng)前值。n在變量窗口中可以查看 VHDL 中的常數(shù)、類屬、變量以及Verilog 中的寄存器和變量等。 7.1.10 波形窗口信號(hào)波形 信號(hào)名稱和路
9、徑 指針?biāo)谖恢玫闹?光標(biāo)工具 波形查看工具仿真控制工具 波形窗口中信號(hào)模擬化以及光標(biāo)鎖定 7.1.11 斷言窗口n斷言允許設(shè)計(jì)人員將一些判斷語(yǔ)句嵌入到設(shè)計(jì)中,可以對(duì)某些設(shè)計(jì)的意向行為做成的假設(shè)進(jìn)行說(shuō)明。傳統(tǒng)的硬件調(diào)試是假定了錯(cuò)誤能夠在整個(gè)設(shè)計(jì)當(dāng)中傳播并可以在輸出端口捕獲到,為了確定錯(cuò)誤出現(xiàn)的位置,設(shè)計(jì)者不得不花費(fèi)大量的時(shí)間來(lái)查找問(wèn)題。而使用斷言則能夠在錯(cuò)誤發(fā)生時(shí)及時(shí)捕獲,允許設(shè)計(jì)人員迅速明確地對(duì)錯(cuò)誤進(jìn)行定位,大大簡(jiǎn)化了糾錯(cuò)的工作。7.1.12 信號(hào)屬性對(duì)話框一)n雙擊波形窗口中的信號(hào)名-信號(hào)屬性對(duì)話框 顯示的信號(hào)名稱 波形的顏色名稱的顏色 信號(hào)數(shù)據(jù)的顯示方式 信號(hào)屬性對(duì)話框二)波形顯示的格式
10、 7.2 ModelSim用戶接口nXilinx 公司的 ISE 集成開(kāi)發(fā)環(huán)境中給ModelSim仿真軟件預(yù)留了接口,通過(guò)這個(gè)接口可以從ISE 集成環(huán)境中直接啟動(dòng)ModelSim 工具進(jìn)行仿真。n從 ISE 集成開(kāi)發(fā)環(huán)境中直接啟動(dòng)ModelSim仿真工具需要具備 3 個(gè)條件:n啟動(dòng) ISE 集成開(kāi)發(fā)環(huán)境并建立了一個(gè)FPGA/CPLD的工程項(xiàng)目;n添加設(shè)計(jì)源代碼并且編譯通過(guò);n運(yùn)用 ISE 中的Test Fixture或者Test Bench Waveform工具為當(dāng)前的設(shè)計(jì)提供一個(gè)測(cè)試模板Testbench),并且在測(cè)試模板中添加設(shè)計(jì)激勵(lì)。屬性設(shè)置設(shè)置Modelsim可執(zhí)行文件的路徑 7.2.
11、1 在ISE中直接啟動(dòng) ModelSimn1. 在 Windows 操作系統(tǒng)中選擇【開(kāi)場(chǎng)】/【程序】/【Xilinx ISE 6】/【Project Navigator】命令,啟動(dòng) ISE 集成開(kāi)發(fā)環(huán)境。 n2. 在 ISE主窗口中選擇【File】/【Open Example】命令,翻開(kāi)【Open Example】對(duì)話框。n3. 在資源管理窗口Source in Project中的模塊視圖Module View中選中所用的測(cè)試文件,在相應(yīng)的當(dāng)前資源操作窗口Processes for Current Source中將會(huì)出現(xiàn)與 ModelSim仿真器相關(guān)的行為仿真Simulate Behavior
12、al Verilog Model) 、翻譯后仿真Simulate Post-Translate Verilog Model) 、映射后仿真Simulate Post-Map Verilog Model和布局布線后仿真Simulate Post-Place & Route Verilog Model等 4個(gè)不同的操作選項(xiàng)。 n4. 雙擊【Simulate Behavioral Model】操作選項(xiàng),將啟動(dòng) ModelSim仿真器。 n5. 在 ModelSim的主窗口中選擇【View】/【All】命令,將顯示所有的窗口。 7.2.2 行為仿真n以一個(gè)異步FIFO為例講述【ISE Proj
13、ect Navigator】集成環(huán)境中與仿真有關(guān)的大部分選項(xiàng)的設(shè)置。n1. 啟動(dòng)Project Navigator集成開(kāi)發(fā)環(huán)境,在主窗口中選擇【File】/【Open examples】命令,打開(kāi)例子選擇窗口,在其中選擇【fifo_ver_131】工程,單擊 按鈕,打開(kāi)工程。 n2. 在這個(gè)工程中包括了兩個(gè)頂層文件“fifoctrl_cc和“fifoctrl_ic” ,其中“fifoctrl_cc文件實(shí)現(xiàn)了一個(gè)同步 FIFO, “fifoctrl_ic文件實(shí)現(xiàn)了一個(gè)異步 FIFO的設(shè)計(jì)。n3. 選擇頂層文件“fifoctrl_ic” ,這個(gè)文件包括了3個(gè)子模塊,分別為【muxor_p】 、【x
14、or4_p】和【xor5_p】 。同時(shí)包括了兩個(gè)功能仿真文件【tb_ic_func1】 、【tb_ic_func2】 ,兩個(gè)時(shí)序仿真文件【tb_ic_time1】和【tb_ic_time2】 。選中頂層文件后,可以在【Process View】窗口中對(duì)一個(gè)屬性進(jìn)行配置。 n4. 選擇功能仿真文件【tb_ic_func1fifocrtl_ic_tb2.tf)】,然后在相應(yīng)的【Process View】窗口中選中【Simulate Behavioral Model】仿真的階段,單擊鼠標(biāo)右鍵,在彈出菜單中選擇【Properties】命令。n5. 以上操作將打開(kāi)程序?qū)傩詫?duì)話框,在這個(gè)對(duì)話框中有兩個(gè)不同
15、的選項(xiàng)卡。n在【Simulation Properties】中有以下 4 個(gè)不同的選項(xiàng):n Use Custom Do File n Custom Do File n Use Automatic Do File n Simulation Run Timesn【Displays Properties】選項(xiàng)卡用來(lái)設(shè)置顯示的屬性,其中包含以下8 個(gè)復(fù)選框: nSignal window nWave window nStructure window nSource window nList window nVariables window nProcess window nData Flow wind
16、own6. 選擇完成之后,可以進(jìn)行相應(yīng)的行為仿真。 7.2.3 時(shí)序仿真n選擇時(shí)序仿真文件【tb_ic_time1fifoctrl_ic_tb1_timing.tf) 】 ,然后在相應(yīng)的【Process View】窗口中選中【Simulate Post-Place & Route Verilog Model】仿真,單擊鼠標(biāo)右鍵,在彈出菜單中選擇【Properties】命令,打開(kāi)的屬性對(duì)話框。 7.2.4 高級(jí)設(shè)置n在 Project Navigator 集成環(huán)境中使用【Edit】/【Preferences】命令打開(kāi)屬性選擇窗口。將【Processes】選項(xiàng)卡中的【Process Set
17、tings】設(shè)置為【Advanced】,單擊“確定按鈕保存之后就可以啟動(dòng) Project Navigator高級(jí)操作模式。n 在【Simulation Properties】選項(xiàng)卡中除了包括標(biāo)準(zhǔn)模式下的選項(xiàng)外還增加了如下選項(xiàng):nOther VSIM Command Line Options:輸入其他的 VSIM 命令行參數(shù),多個(gè)參數(shù)之間使用空格。 nOther VLOG Command Line Options:輸入其他的 VLOG 命令行參數(shù),多個(gè)參數(shù)之間使用空格。nOther VCOM Command Line Options:輸入其他的 VCOM 命令行參數(shù),多個(gè)參數(shù)之間使用空格。 nS
18、imulation Resolution:指定仿真器的仿真時(shí)間精度,開(kāi)始仿真后可以使用仿真器的【report】命令檢查當(dāng)前的仿真時(shí)間精度。 nSimulation Mode:設(shè)置仿真延時(shí)模型,使用最大、最小或者典型的延時(shí)模型,在默認(rèn)條件下,SDF 中的三類延時(shí)都使用最大延時(shí)。 nVHDL Syntax:指定 VHDL 的語(yǔ)法版本,默認(rèn)使用 93版。 n在【Simulation Model Properties】標(biāo)簽頁(yè)面中各個(gè)選項(xiàng)說(shuō)明如下:nSimulation Model Target:指定產(chǎn)生的網(wǎng)表所適用的仿真器。nPost Place & Route Simulation Mode
19、l Name:指定仿真模型名稱。 nRename Top Level Module To:指定使用 NetGen程序產(chǎn)生的頂層模塊的名稱,默認(rèn)條件下,輸出的模塊名將繼承輸入設(shè)計(jì)的頂層文件名稱。 nChange Device Speed To:改變生成仿真模型時(shí)使用的目標(biāo)器件的速度。 nCorrelate Simulation Data to Input Design:該參數(shù)需要配合【Retain Hierarchy】參數(shù)以及設(shè)計(jì)源代碼一起使用,如果該參數(shù)以及【Retain Hierarchy】參數(shù)都設(shè)置為【True】 ,同時(shí)在源代碼中都使用【Keep Hierarchical】屬性,就可以在時(shí)
20、序仿真時(shí)將輸出的時(shí)序仿真模型的信號(hào)與源代碼中的信號(hào)關(guān)聯(lián)起來(lái)。 nRetain Hierarchy:該參數(shù)主要配合【Correlate Simulation Data to Input Design】參數(shù),完成時(shí)序仿真時(shí)信號(hào)的檢查,詳細(xì)內(nèi)容參考【Correlate Simulation Data to Input Design】參數(shù)說(shuō)明。 nGenerate Multiple Hierarchical Netlist Files:該參數(shù)指定是否對(duì)設(shè)計(jì)中保留層次的每一個(gè)層次產(chǎn)生時(shí)序仿真模型以及 SDF 時(shí)序標(biāo)注文件。這個(gè)參數(shù)有效的前提有: 【Retain Hierarchy】參數(shù)設(shè)置為【True】
21、的同時(shí)在源代碼中各個(gè)模塊都使用【Keep Hierarchical】屬性。如果這個(gè)參數(shù)設(shè)置為【True】之后, 【Use Automatic Do File for ModelSim Simulation】參數(shù)將被設(shè)置為【False】 ,原因在于如果需要 Project Navigator 環(huán)境中運(yùn)行 ModelSim 仿真器就必須指定相應(yīng)的DO 文件,產(chǎn)生了多個(gè)時(shí)序仿真模型之后,其仿真的 DO 文件就需要明確指定,而不能使用自動(dòng)生成的 DO文件。 nUse Automatic Do File for ModelSim Simulation:設(shè)置使用自動(dòng) DO文件,該參數(shù)僅僅在 Project
22、 Navigator集成環(huán)境中啟動(dòng) ModelSim時(shí)有效。 nBring Out Global Tristate Net as a Port:該參數(shù)指定是否在輸出的仿真模型的頂層添加一個(gè)端口來(lái)連接全局三態(tài)網(wǎng)線全局三態(tài)網(wǎng)線將強(qiáng)制所有的輸出為高阻態(tài)) ,全局三態(tài)信號(hào)沒(méi)有驅(qū)動(dòng)的情況下該參數(shù)有效。 nGlobal Trstate Port Name:指定全局三態(tài)端口名稱,默認(rèn)為 GST。nBring out Global Set/Reset Net as a port:這個(gè)參數(shù)指定是否在輸出的仿真模型的頂層添加一個(gè)端口來(lái)連接全局的置位/復(fù)位網(wǎng)線,全局置位/復(fù)位網(wǎng)線沒(méi)有驅(qū)動(dòng)的情況下這個(gè)參數(shù)有效。nGl
23、obal Set/Reset Port Name:指定全局復(fù)位/置位端口名稱,默認(rèn)為 GSR。 nGenerate Test Fixture File:指定是否從輸出的網(wǎng)表中創(chuàng)建一個(gè)測(cè)試模板。 nRename Design Instance In Test Fixture File to:指定測(cè)試模板中設(shè)計(jì)的實(shí)例化名稱,默認(rèn)為 UUT。 nInclude uselib Directive in Verilog File:指定是否在輸出的網(wǎng)表文件中使用Verilog uselib指示,總是指向系統(tǒng)中的 SIMPRIM源文件處,該參數(shù)在大多數(shù)仿真器中不推薦使用。默認(rèn)條件下設(shè)置為【False】。nP
24、ath Used in $SDF_annotate:指定 SDF標(biāo)注文件的路徑,一般情況下,當(dāng)網(wǎng)表文件與 SDF標(biāo)注文件不在一個(gè)目錄下時(shí)需要使用該參數(shù)。nDo Not Escape Signal and Instance Names in Netlist:是否在網(wǎng)表中對(duì)信號(hào)以及實(shí)例化名稱進(jìn)行轉(zhuǎn)義。 nOther NETGEN Command Line Options:輸入其他的 NETGEN命令行參數(shù),多個(gè)參數(shù)之間使用空格。 7.3 仿真環(huán)境的建立 nModelSim 有很多不同的版本,例如Xilinx 公司使用的 ModelSim 為 ModelSim XE 的 OEM 版,這個(gè)版本只支持
25、Xilinx 公司的所有器件的時(shí)序仿真,但是不支持其他公司的 FPGA/CPLD 的仿真。n在完全版本發(fā)行時(shí),不發(fā)行任何公司的 FPGA/CPLD 的仿真庫(kù),所以在使用之前需要建立相應(yīng) FPGA/CPLD 器件的仿真庫(kù)。 7.3.1 各仿真切入點(diǎn)需要的庫(kù)文件 n各個(gè)仿真階段需要的仿真庫(kù)模型 nRTL 行為級(jí)仿真可能需要的文件包括:RTL 代碼、實(shí)例化的 UNISIM 庫(kù)元件、XilinxCoreLib 和 UNISIM 門級(jí)模型、SmartModels。 n綜合后功能仿真可能需要的文件包括:綜合工具輸出的包含了 UNISIM 庫(kù)元件的門級(jí)網(wǎng)表、XilinxCoreLib 和 UNISIM 門級(jí)
26、模型、SmartModels模型等。nNGDBuild 后功能仿真可能需要的文件包括:包含了 SIMPRIM 庫(kù)元件的門級(jí)網(wǎng)表和SmartModels。n映射后時(shí)序仿真可能需要的文件包括:包含了 SIMPRIM 庫(kù)元件的門級(jí)網(wǎng)表、SmartModels、標(biāo)準(zhǔn)延時(shí)格式文件 SDF。這個(gè)階段的設(shè)計(jì)沒(méi)有進(jìn)行布局布線,仿真也類似于IC 設(shè)計(jì)過(guò)程中的門級(jí)仿真,提供了各種門的延時(shí),但是沒(méi)有連線延時(shí),可以認(rèn)為是不完全的時(shí)序仿真。 n布局布線后時(shí)序仿真可能需要的文件包括:包含了 SIMPRIM 庫(kù)元件的門級(jí)網(wǎng)表、SmartModels、標(biāo)準(zhǔn)延時(shí)格式文件 SDF。 7.3.2 仿真庫(kù)文件說(shuō)明 nUNISIMLi
27、brary of Unified component simulation models庫(kù)僅僅用來(lái)做功能仿真,在這個(gè)庫(kù)中包括了 Xilinx 公司全部的標(biāo)準(zhǔn)元件。nUNISIM 庫(kù)被分為VHDL和Verilog兩種:nVHDL UNISIM 庫(kù)被分成 4 個(gè)不同的文件,包括元件聲明unisim_VCOMP.vhd) 、程序包文件unisim_VPKG.vhd) 、實(shí)體和結(jié)構(gòu)體聲明unisim_VITAL.vhd和 SmartModel 聲明unisim_SMODEL.vhd)。nVerilog UNISIM庫(kù)文件中每一個(gè)元件使用一個(gè)獨(dú)立的文件,對(duì)于FPGA 器件族UNISIM 庫(kù)源文件位于$X
28、ILINX/verilog/src/unisims 目錄下,對(duì)于 CPLD 器件族UNISIM 庫(kù)源文件位于$XILINX/verilog/src/uni9000 目錄下。nXilinxCoreLibCORE Generator HDL library models庫(kù)僅僅用來(lái)做功能仿真,在這個(gè)庫(kù)中包括了使用 Xilinx Core Generator 工具產(chǎn)生的 IP的仿真模型。n對(duì)于 VHDL 代碼來(lái)說(shuō),這個(gè)庫(kù)位于$XILINX/vhdl/src/XilinxCoreLib 目錄。n對(duì)于 Verilog 代碼來(lái)說(shuō),這個(gè)庫(kù)位于$XILINX/verilog/src/XilinxCoreLib
29、目錄。nSIMPRIMLibrary of generic simulation primitives庫(kù)用來(lái)做時(shí)序仿真或者門級(jí)功能仿真。n對(duì)于 VHDL 代碼來(lái)說(shuō),這個(gè)庫(kù)位于$XILINX/vhdl/src/simprims 目錄。n對(duì)于 Verilog 代碼來(lái)說(shuō),這個(gè)庫(kù)位于$XILINX/verilog/src/simprims目錄。 nSmartModel 庫(kù)被用來(lái)模擬非常復(fù)雜的一些 FPGA 設(shè)計(jì),其中用到了 PowerPCPPC或者 RocketIO 等。n這個(gè)庫(kù)的源代碼是加密的,它通過(guò) SWIFT 接口與仿真器通信,庫(kù)文件位于$XILINX/smartmodel目錄。 7.3.3 庫(kù)
30、文件編譯 7.3.3.1 在仿真器中編譯仿真庫(kù)n以使用 Verilog 語(yǔ)言中時(shí)序仿真庫(kù) simprims 為例來(lái)說(shuō)明仿真庫(kù)的手動(dòng)建立過(guò)程。n1. 將 ModelSim 根目錄下的配置文件 modelsim.ini 的屬性由只讀改為可寫,這個(gè)操作是為了使軟件可以記錄仿真庫(kù)建立的路徑以及映射關(guān)系。n2. 啟動(dòng) ModelSim 仿真工具,在主窗口中選擇【File】/【Change Directory】命令,將工作目錄改變到想要存放仿真庫(kù)的目錄下。n3. 在主窗口中選擇【File】/【New】/【Library】命令,彈出【Create a New Library】窗口。將【Create】選項(xiàng)設(shè)置
31、為【a new library and a logical mapping to it】 ,在【Library Name】欄中輸入“simprims_ver” ,同時(shí)軟件在【Library Maps to】欄中自動(dòng)輸入“simprims_ver” ,單擊“OK按鈕保存。n4. 在主窗口中選擇【Compile】/【Compile】命令,彈出【Compile Source Files】窗口,如圖 3-21 所示。在【Library】選項(xiàng)的下拉列表中選擇“simprims_ver仿真庫(kù),在【查找范圍】選項(xiàng)中選中【Xilinxverilogsrcsimprims】目錄下的全部文件,單擊“Compile
32、按鈕進(jìn)行編譯。 7.3.3.2 在 Project Navigator 中編譯仿真庫(kù)n1. 運(yùn)用 Project Navigator創(chuàng)建一個(gè)新的工程或者打開(kāi)一個(gè)現(xiàn)有的工程。 n2.選擇設(shè)計(jì)的目標(biāo)器件,在【Source in Project】窗口中選中器件,【Processes for Source】窗口中會(huì)出現(xiàn)【Design Entry Utilities】菜單,使用右鍵選中其中的【Compile HDL simulation libraries】項(xiàng),在下拉菜單中選中【Properties】命令,打開(kāi)屬性對(duì)話框。n3. 【Process Properties】對(duì)話框中的各項(xiàng)很明了,根據(jù)需要選擇
33、相應(yīng)的仿真庫(kù)文件,然后單擊 關(guān)閉對(duì)話框。 n4. 雙擊【Compile HDL simulation Libraries】 ,程序?qū)⒆詣?dòng)對(duì)完成對(duì)庫(kù)文件的編譯。 n5. 庫(kù)文件編譯完成以后,在 Project Navigator 集成環(huán)境中運(yùn)行 ModelSim 仿真器進(jìn)行仿真時(shí),軟件將自動(dòng)在當(dāng)前工程目錄下生成一個(gè) modelsim.ini 配置文件,在這個(gè)配置文件中添加了編譯后的各種仿真庫(kù)路徑。 7.3.3.3 使用命令行編譯仿真庫(kù)nCOMPXLIB 命令可以支持Xilinx的所有器件族,支持編譯如下的仿真庫(kù)文件: nUNISIMFunctional) nUni9000Timing) nSIM
34、PRIMTiming) nXilinxCoreLibFunctional) nSmartModel Library(Functional & Timing) nCoolRunner(Functional) nAbelFunctional) 7.3.4 仿真庫(kù)的命名n在 ISE 集成開(kāi)發(fā)環(huán)境中直接啟動(dòng)ModelSim進(jìn)行仿真時(shí):nVerilog 仿真庫(kù)的命名使用Xilinxcorelib_ver、 unisims_ver 和 simprims_ver三種名稱,分別對(duì)應(yīng)Xilinx/verilog/src/目錄下的 Xilinxcorelib、unisims 和 simprims 三個(gè)庫(kù)。
35、nVHDL仿真庫(kù)的命名使用Xilinxcore、unisims 和 simprim 三種名稱分別對(duì)應(yīng) Xilinx/vhdl/src/目錄下的Xilinxcorelib、unisims 和 simprims三個(gè)庫(kù)。n庫(kù)文件編譯好之后,為了方便以后使用可以修改 modelsim.ini 配置文件。打開(kāi)配置文件之后,可添加對(duì) Xilinx 仿真庫(kù)的映射。7.4 ModelSim和ISE仿真實(shí)例n說(shuō)明在ModelSim獨(dú)立環(huán)境下進(jìn)行仿真的各種仿真流程,同時(shí)說(shuō)明在ISE集成開(kāi)發(fā)環(huán)境啟動(dòng)ModelSim進(jìn)行仿真的方法。n創(chuàng)建工作庫(kù)。使用ModelSim進(jìn)行仿真時(shí),全部的設(shè)計(jì)文件不管是Verilog、HD
36、L或者Verilog 與 VHDL的混合文件都需要編譯到一個(gè)庫(kù)中。n編譯。創(chuàng)建完一個(gè)庫(kù)之后,就可以在庫(kù)中編譯設(shè)計(jì)單元。n運(yùn)行仿真。編譯完成之后可以從設(shè)計(jì)頂層模塊或者實(shí)體運(yùn)行仿真器。n結(jié)果調(diào)試。如果仿真結(jié)果與最初預(yù)期不相符,就需要對(duì)程序進(jìn)行調(diào)試。nModelSim提供的調(diào)試手段與工具有以下幾種: n在源文件窗口中設(shè)置斷點(diǎn)或者單步執(zhí)行。 n觀察波形測(cè)量時(shí)間。 n在數(shù)據(jù)流窗口中瀏覽設(shè)計(jì)的物理連接。 n查看或者初始化存儲(chǔ)器。 n分析仿真效率。 n測(cè)試代碼覆蓋率。 n波形比較。n1. 啟動(dòng) ModelSim。運(yùn)用 Windows 系統(tǒng)中的 ModelSim 快捷圖標(biāo)或者在命令控制臺(tái)使用“vsim命令都可
37、以啟動(dòng)仿真器。nUI) Design - Load New DesignnCmd) vsim -lib nVHDLnvsim top_entity top_architecturenVerilognvsim top_level1 top_level2n2. 創(chuàng)建工作庫(kù)。在主窗口選擇【File】/【New】/【Library】命令,打開(kāi)創(chuàng)建庫(kù)對(duì)話框。7.4.1 在ModelSim環(huán)境下進(jìn)行仿真n3. 編譯源文件。在主窗口中選擇【Compile】/【Compile】命令,打開(kāi)源文件編譯窗口。n4. 運(yùn)行仿真。從主菜單中選擇【View】/【All Windows】命令,打開(kāi)所有ModelSim 的窗
38、口。在信號(hào)窗口中使用【Add】/【W(wǎng)ave】/【Signal in Region】命令,添加所在層次所有信號(hào)到波形窗口。7.4.2 在ISE集成環(huán)境中進(jìn)行仿真n1. 在 Windows 操作系統(tǒng)中選擇【開(kāi)場(chǎng)】/【程序】/【Xilinx ISE 6】/【Project Navigator】命令,啟動(dòng) ISE Project Navigator集成開(kāi)發(fā)環(huán)境。n2. 在 ISE主窗口中選擇【File】/【New Project】命令,將彈出【New Project】對(duì)話框,在【Project】欄中單擊 按鈕,彈出【瀏覽文件夾】對(duì)話框。n3. 單擊“下一步按鈕,打開(kāi)新建工程對(duì)話框的下一個(gè)頁(yè)面。在其中選
39、擇所使用的器件、模塊類型、綜合器和仿真器等信息。n4. 單擊 按鈕,打開(kāi)新建工程對(duì)話框的下一個(gè)頁(yè)面。n5. 單擊“OK按鈕后,出現(xiàn)新建工程內(nèi)容報(bào)告對(duì)話框。n6. 在工程內(nèi)容報(bào)告對(duì)話框中單擊“完成按鈕完成設(shè)置,回到ISE主界面,從源文件視圖中選擇源文件。n7. 在 ModelSim 仿真器下面有 4 個(gè)不同的仿真選項(xiàng),對(duì)應(yīng)4 個(gè)不同的仿真階段,行為仿真、翻譯后仿真、映射后仿真和布局布線后仿真。7.5 ModelSim中的調(diào)試方法7.5.1 源文件窗口調(diào)試 n源文件窗口主要用來(lái)顯示和編輯 HDL 源文件代碼。n在源文件窗口中可以設(shè)置斷點(diǎn)調(diào)試,同時(shí)支持單步調(diào)試等。 7.5.2 波形窗口調(diào)試n1. 啟
40、動(dòng) ModelSim,并改變當(dāng)前目錄到設(shè)計(jì)目錄。n2. 加載設(shè)計(jì)單元進(jìn)行仿真。n3. 向波形窗口中添加項(xiàng)目。n從信號(hào)窗口添加。n從其他窗口選中并拖動(dòng)??梢詮闹鞔翱?、信號(hào)窗口、變量窗口或結(jié)構(gòu)窗口等多個(gè)窗中中選擇需要查看的n項(xiàng)目并拖動(dòng)到波形窗口中。n使用命令行添加項(xiàng)目。在主窗口命令控制臺(tái)【VSIM】命令提示符后鍵入 add wave *命令將加入當(dāng)n前區(qū)域內(nèi)的所有信號(hào)。n4. 縮放波形顯示。n在波形窗口的工具欄中有很多用來(lái)進(jìn)行顯示縮放的快捷按鈕,通過(guò)這些按鈕可以很方便地控制波形的顯示大小。n5. 在波形窗口中使用指針。n光標(biāo)重命名n光標(biāo)鎖定對(duì)話框以及鎖定后的光標(biāo)n6. 保存波形窗口格式。n可以通過(guò)
41、存儲(chǔ)窗口格式的方法將信號(hào)設(shè)置等屬性存儲(chǔ)成一個(gè) DO 文件,下次打開(kāi)波形窗口時(shí)加載 DO 文件就可以了。 7.5.3 數(shù)據(jù)流窗口調(diào)試n1. 啟動(dòng)仿真器并改變目錄到設(shè)計(jì)目錄。n2. 在命令提示符后鍵入 do run.do 命令執(zhí)行程序。使用文本編輯器打開(kāi) DO 文件對(duì)其中的指令進(jìn)行分析。n# Copyright Model Technology, a Mentor Graphics n# Corporation company 2019, - All rights reserved. n# Simulation script for Dataflow tutorial nonbreak resum
42、e n# create library nif file exists work n vdel -all n nvlib work n# compile all source files nvlog gates.v and2.v cache.v memory.v proc.v set.v top.v n# open debugging windows nset PrefDataflow(geometry) 582x378+1+562 nset PrefSignals(geometry) 287x249+738+307 nset PrefWave(geometry) 682x352+590+61
43、4 nset PrefSource(geometry) 534x249+746+0 nset PrefMain(geometry) 730 x503+1+1 nview da si wa n# start simulator nvsim top n# wave signals nadd wave /top/p/* nadd log -r * n# run simulation nrun -all n3. 數(shù)據(jù)流窗口的一個(gè)主要作用就是瀏覽設(shè)計(jì)中的各種連接,可以用來(lái)檢查指定信號(hào)、網(wǎng)線寄存器的驅(qū)動(dòng)以及接收等特點(diǎn)。n4. 數(shù)據(jù)流窗口中的另外一個(gè)重要的特點(diǎn)是可以通過(guò)事件追蹤來(lái)定位輸出信號(hào),數(shù)據(jù)流窗口中內(nèi)
44、置的波形查看窗口給類似操作提供了極大的方便。n5. 追蹤未知信號(hào)X。使用數(shù)據(jù)流窗口可以很快確定產(chǎn)生未知信號(hào)的原因,數(shù)據(jù)流窗口和標(biāo)準(zhǔn)的波形窗口是互相聯(lián)系的,所以可以在波形窗口中觀察一個(gè)信號(hào)然后在數(shù)據(jù)流窗口中對(duì)這個(gè)信號(hào)進(jìn)行追蹤,進(jìn)而查找問(wèn)題的源頭。追蹤未知態(tài)n6. 在數(shù)據(jù)流窗口中顯示層次。 7.5.4 存儲(chǔ)器窗口調(diào)試n1. 啟動(dòng) ModelSim仿真器并改變目錄到設(shè)計(jì)目錄。n2. 創(chuàng)建工作目錄、編譯設(shè)計(jì)。 n在主窗口的【ModelSim】提示符后鍵入 vlib work 命令創(chuàng)建工作目錄。 n在主窗口的【ModelSim】提示符后鍵入 vlog sp_syn_ram.v dp_syn_ram.v
45、ram_tb.v命令編譯設(shè)計(jì)文件。 n在主窗口的【ModelSim】提示符后鍵入 set NumericStdNoWarnings 1 命令。n3. 加載設(shè)計(jì)。 n4. 查看一個(gè)存儲(chǔ)器。 n在主窗口中選擇【View】/【Memory】命令打開(kāi)存儲(chǔ)器窗口,在存儲(chǔ)器窗口的【List】區(qū)域顯示了當(dāng)前設(shè)計(jì)中使用到的所有存儲(chǔ)器。 n在存儲(chǔ)器列表中選擇【/ram_tb/spram1】實(shí)例,存儲(chǔ)器窗口中將顯示這個(gè)存儲(chǔ)器的地址以及數(shù)據(jù)等內(nèi)容。n在主窗口【sim】視圖中選擇【spram2】實(shí)例。n運(yùn)行仿真。n存儲(chǔ)器窗口中的地址數(shù)據(jù)區(qū)域隨著仿真的進(jìn)行自動(dòng)更新。n5. 將存儲(chǔ)器的內(nèi)容保存成一個(gè)文件。n6. 初始化一
46、個(gè)存儲(chǔ)器。在 ModelSim 中有 3 種方法來(lái)初始化一個(gè)存儲(chǔ)器,分別如下:n通過(guò)加載保存好的文件初始化存儲(chǔ)器。n部分使用保存好的文件,部分使用模板。n使用數(shù)據(jù)模板填充的方式。 7.5.5 變量窗口調(diào)試 n1. 啟動(dòng)仿真器并改變目錄到設(shè)計(jì)目錄。n2. 在主窗口的命令控制臺(tái)【Modelsim】提示符后鍵入 vlib library_4 命令創(chuàng)建一個(gè)新的工作庫(kù)。n3. 在命令提示符后鍵入vcom work library_4 gates.vhd adder.vhd testadder.vhd命令,編譯這三個(gè)文件到工作庫(kù)中。n4. 在命令提示符后鍵入vmap work library_4命令,映射
47、新建的庫(kù)到工作庫(kù)中,同時(shí)這個(gè)命令將修改 ModelSim 的配置文件 Modelsim.ini。n5. 在主窗口中選擇【Simulate】/【Simulate】命令,打開(kāi)仿真參數(shù)對(duì)話框。n6. 在主窗口輸入 view *命令,彈出仿真器的全部窗口。 n7. 輸入 add list *命令將頂層模塊的全部信號(hào)添加到列表窗口中。 n8. 輸入 add wave *命令將頂層模塊的全部信號(hào)添加到波形窗口中。 n9. 運(yùn)行仿真。 n10. 查看命令控制臺(tái)反饋的信息,查找錯(cuò)誤,并重新運(yùn)行仿真,反復(fù)調(diào)試,直到仿真成功。 7.5.6 列表窗口調(diào)試 n1. 在列表窗口中選擇【Tools】/【W(wǎng)indow Preference】命令,打開(kāi)列表窗口屬性對(duì)話框。 n2. 選擇其中的觸發(fā)選項(xiàng)卡【Triggers】。n3. 在窗口中選中某一個(gè)信號(hào)或者全部信號(hào),然后在菜單欄中選擇【View】/【Signal Properties】命令打開(kāi)相應(yīng)的對(duì)話框,可以在對(duì)話框中改變信號(hào)顯示的名稱以及信號(hào)數(shù)據(jù)顯示的數(shù)值類型。7.6 ModelSim的其他常用操作7.6.1 自動(dòng)仿真n在ModelSim中宏文件通常使用“do作為
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度退股及員工持股計(jì)劃合同
- 個(gè)人股權(quán)轉(zhuǎn)讓合同2025年度含業(yè)績(jī)對(duì)賭條款
- 二零二五年度臨時(shí)項(xiàng)目經(jīng)理職務(wù)聘用與成果轉(zhuǎn)化合同
- 二零二五年度旅游團(tuán)隊(duì)保險(xiǎn)責(zé)任免除聲明
- 電線電纜購(gòu)銷合同
- 管理層勞動(dòng)合同工資
- 個(gè)人數(shù)字資產(chǎn)管理協(xié)議
- 全新池塘出租協(xié)議
- 月餅產(chǎn)品代銷合同
- 鄉(xiāng)村旅游發(fā)展策略與實(shí)施方案
- 體育競(jìng)賽的組織與編排
- 動(dòng)靜脈內(nèi)瘺的圍手術(shù)期護(hù)理-課件
- reaxys使用介紹課件
- 工程建設(shè)項(xiàng)目管理培訓(xùn)教材課件
- 11-化學(xué)動(dòng)力學(xué)基礎(chǔ)-2-考研試題資料系列
- 《簡(jiǎn)愛(ài)》課本劇劇本
- 社區(qū)獲得性肺炎臨床路徑
- 產(chǎn)品品質(zhì)檢驗(yàn)流程標(biāo)準(zhǔn)規(guī)范模板()
- GB∕T 7260.40-2020 不間斷電源系統(tǒng) UPS 第4部分:環(huán)境 要求及報(bào)告
- 安全文明施工管理(EHS)方案(24頁(yè))
- 水廠項(xiàng)目基于BIM技術(shù)全生命周期解決方案-城市智慧水務(wù)講座課件
評(píng)論
0/150
提交評(píng)論