課件:數(shù)字電路實(shí)驗(yàn)課程_第1頁(yè)
課件:數(shù)字電路實(shí)驗(yàn)課程_第2頁(yè)
課件:數(shù)字電路實(shí)驗(yàn)課程_第3頁(yè)
課件:數(shù)字電路實(shí)驗(yàn)課程_第4頁(yè)
課件:數(shù)字電路實(shí)驗(yàn)課程_第5頁(yè)
已閱讀5頁(yè),還剩73頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、ModelSim概覽系統(tǒng)產(chǎn)品設(shè)計(jì)規(guī)范數(shù)字集成電路自動(dòng)設(shè)計(jì)流程設(shè)計(jì)輸入RTL仿真設(shè)計(jì)綜合門(mén)級(jí)仿真布局和布線時(shí)序分析系統(tǒng)上驗(yàn)證修改設(shè)計(jì)設(shè)計(jì)流程3設(shè)計(jì)輸入設(shè)計(jì)的行為或結(jié)構(gòu)描述RTL仿真(ModelSim)功能仿真驗(yàn)證邏輯模型(沒(méi)有使用時(shí)間延遲)可能要求編輯設(shè)計(jì)綜合把設(shè)計(jì)翻譯成原始的目標(biāo)工藝最優(yōu)化合適的面積要求和性能要求布局和布線 映射設(shè)計(jì)到目標(biāo)工藝?yán)镏付ㄎ恢?指定的布線資源應(yīng)被使用設(shè)計(jì)流程4門(mén)級(jí)仿真 (ModelSim)時(shí)序仿真驗(yàn)證設(shè)計(jì)一旦編程或配置將能在目標(biāo)工藝?yán)锕ぷ骺赡芤缶庉嬙O(shè)計(jì)時(shí)序分析驗(yàn)證合乎性能規(guī)范可能要求編輯設(shè)計(jì)版圖設(shè)計(jì)仿真版圖設(shè)計(jì)在板編程和測(cè)試器件ModelSim簡(jiǎn)介ModelSim由

2、Model技術(shù)公司開(kāi)發(fā)工業(yè)上最通用的仿真器之一支持Verilog , VHDL以及它們的混合仿真可以將整個(gè)仿真程序分步執(zhí)行,使設(shè)計(jì)者可以直接看到他的程序下一步要執(zhí)行的語(yǔ)句,在程序執(zhí)行的任何步驟任何時(shí)刻都可以查看任意變量的當(dāng)前值ModelSim產(chǎn)品1:ModelSim/VHDL或ModelSimVerilog -OEM2:ModelSim/LNL -許可VHDL或Verilog,但不同時(shí)許可3:ModelSim/PLUS -設(shè)計(jì)者能立刻混合仿真VHDL和Verilog4:ModelSim/SE -首要的版本 -PLUS的所有功能連同附加功能 ModelSim OEM功能1:提供完全的標(biāo)準(zhǔn) -87

3、 VHDL -93 VHDL -IEEE 1364-95 Verilog -SDF 1.0 - 3.0 -VITAL 2.2b -VITAL 952:易用的界面 -通用的平臺(tái)課程安排第一課時(shí): 1:建立項(xiàng)目 2:建立庫(kù) 3:編譯源代碼 4:執(zhí)行前仿真 建立項(xiàng)目1:打開(kāi)MODELSIM2: 選擇File/New/Project, 出現(xiàn)右圖所示的界面。3: Project Name 項(xiàng)目名稱(chēng)4:Project Location 項(xiàng)目存放路徑5:Default Library Name 缺省庫(kù)名(一般情況為work,系統(tǒng)會(huì)在項(xiàng)目存放路徑自建work子目錄)建立庫(kù)1:需編譯的引入文件 -激勵(lì)文件 -源

4、文件 -源文件調(diào)用的子模塊2:庫(kù)的兩種類(lèi)型 (1)本次新建需編譯的庫(kù)(缺省為WORK) -包含當(dāng)前被編譯的設(shè)計(jì)單元 -編譯前必須先建立WORK庫(kù) -每個(gè)項(xiàng)目只允許一個(gè)WORK庫(kù) (2)引用已有的庫(kù) -包含能被當(dāng)前編譯引用的設(shè)計(jì)單元 -在編譯期間允許多個(gè)建立庫(kù)的具體操作選擇FileNew Library,出現(xiàn)下面的對(duì)話框 選擇a new library and a logical mapping to it和輸入庫(kù)名 庫(kù)的編譯:選擇CompileCompile,出現(xiàn)如下對(duì)話框:庫(kù)文件存放的庫(kù)名 庫(kù)文件存放的路徑映射邏輯新庫(kù):選擇FileNew Library,出現(xiàn)下面的對(duì)話框。選擇a map t

5、o an exciting library映射現(xiàn)有的庫(kù):選擇FileNew Library,出現(xiàn)下面的對(duì)話框 選擇箭頭所示的選項(xiàng) 瀏覽庫(kù)的路徑使用這條命令映射到已經(jīng)編譯的庫(kù)刪除庫(kù)命令:選中庫(kù)名以后,右擊出現(xiàn)快捷菜單,選擇其中的Delete選項(xiàng)。編譯源代碼1:ModelSim中源代碼的編譯包括兩部分:第一部分是對(duì)電路進(jìn)行描述,可以是門(mén)級(jí)描述,也可以是行為級(jí)的描述;第二部分是測(cè)試文件的編寫(xiě)。2:以D觸發(fā)器為例,對(duì)源代碼的編譯過(guò)程進(jìn)行說(shuō)明。(轉(zhuǎn)下頁(yè))(1):按前面介紹的方法,先建一個(gè)D觸發(fā)器的工程,D觸發(fā)器的工程建完以后,出現(xiàn)如下界面: 選擇Create New File在彈出的對(duì)話框中輸入描述D觸

6、發(fā)器電路的文件名:dff該對(duì)話框一定要選擇Verilog再重復(fù)一次上面的步驟,選擇Create New File,彈出相同的對(duì)話框:此對(duì)話框依然選擇Verilog文件名為dff_test,表示測(cè)試文件。(一般測(cè)試文件的文件名都在原文件名后加test)(2):雙擊Project列表中的文件dff,打開(kāi)文件編譯的界面。在該界面中,可以輸入D觸發(fā)器的門(mén)級(jí)描述源代碼,也可輸入D觸發(fā)器的行為級(jí)描述源代碼。(如下圖): 行為級(jí)描述門(mén)級(jí)描述-門(mén)級(jí)描述: 門(mén)級(jí)描述必須根據(jù)D觸發(fā)器的原理圖來(lái)進(jìn)行描述。(原理圖如下所示)(3):對(duì)描述D觸發(fā)器的兩種代碼進(jìn)行分析: -行為級(jí)描述的源代碼:module sy_d_ff

7、(q,d,ck,clr); input d,ck,clr; output q; reg q; always (posedge ck or negedge clr)q=(!clr)?0:d;endmoduleq為輸出信號(hào),d為輸入信號(hào),ck為時(shí)鐘信號(hào),clr為清零信號(hào)。檢測(cè)時(shí)鐘上升沿和清零信號(hào)下降沿若clr=0,則q=0;若clr=1,則q=d寄存器門(mén)級(jí)描述的源代碼如下所示:module dff_clr(q,data,clock,clear); input data,clock,clear; output q; nand nd1(a,data,nclk,clear); nand nd2(b,nd

8、ata,nclk); nand nd4(d,c,b,clear); nand nd5(e,c,nclock); nand nd6(f,d,nclock); nand nd8(qb,q,f,clear); nand nd3(c,a,d); nand nd7(q,e,qb); not iv1(ndata,data); not iv2(nclock,nclk); not iv3(nclk,clock);endmodule輸入端data,clock,clear;輸出端q。對(duì)照觸發(fā)器的原理圖,對(duì)圖中所有的邏輯門(mén)進(jìn)行了描述。語(yǔ)句的基本格式為:門(mén)的類(lèi)型門(mén)的名稱(chēng)(輸出端,輸出端,輸入端,輸入端)。注意,必須是

9、輸出端在前,輸入端在后。但是,輸出端之間可以交換位置,輸入端之間也可以交換位置。()測(cè)試文件的描述:timescale 10ns/1nsmodule dff_clr_test(); reg data,clock,clear; wire q; dff_clr dff_clr_test(q,data,clock,clear); initial begin data=0; clock=0; clear=0; # 5 clear=1; end always #7 clock=clock; always #20 data=data;endmodule定義時(shí)間精度為1ns,時(shí)間單位為ns。輸入信號(hào)輸出信號(hào)

10、開(kāi)始時(shí),三個(gè)輸入量都為0。5個(gè)時(shí)間單位后,clear變1。每過(guò)7個(gè)時(shí)間單位,clock翻轉(zhuǎn)。每過(guò)20個(gè)時(shí)間單位,data翻轉(zhuǎn)。(5):文件的編譯: 在左邊Project界面的空白處右擊彈出快捷菜單,選擇CompileCompile All。(如下圖)通過(guò)編譯以后,會(huì)在下面顯示出編譯成功的提示信息。(如下圖所示)也可以選擇快捷鍵來(lái)進(jìn)行編譯。編譯所有文件編譯選中的文件執(zhí)行前仿真 在兩個(gè)文件都通過(guò)編譯以后就可以直接進(jìn)行前仿真了。所謂前仿真,就是功能仿真,主要目的是驗(yàn)證電路的功能是否符合設(shè)計(jì)的要求,其特點(diǎn)是不考慮電路門(mén)延遲與線延遲,主要是驗(yàn)證電路與理想情況是否一致。前仿真的步驟: (1):?jiǎn)螕艨旖萱I

11、(2):彈出右圖對(duì)話框去掉Enable前的鉤雙擊WORK,展開(kāi)對(duì)話框。(3):將WORK展開(kāi)后選擇測(cè)試文件dff_clr_test。(如下圖): 選擇測(cè)試文件 選擇完測(cè)試文件后點(diǎn)擊OK(4):打開(kāi)Objects(端口)窗口: 選擇ViewObjects(如右圖所示)打開(kāi)的Objects窗口,D觸發(fā)器的四個(gè)端口全在列表中。在debug windows中選擇objects(5):加入波形: 選擇ViewWave,出現(xiàn)對(duì)話框wave-default。(如下圖) 在Objects列表中選中任何一個(gè)端口后右擊,出現(xiàn)快捷菜單后按右下圖方式選擇,將所有端口全部移入波形文件中。加入端口后的波形文件點(diǎn)擊RUN的

12、快捷鍵D觸發(fā)器的波形100ns表示每按一次RUN,就向前推進(jìn)100ns,讀者可根據(jù)具體情況進(jìn)行調(diào)節(jié)。 到此,D觸發(fā)器的前仿真就結(jié)束了。實(shí)驗(yàn)一 簡(jiǎn)單組合邏輯設(shè)計(jì)描述一個(gè)可綜合的數(shù)據(jù)比較器。功能是比較數(shù)據(jù)a7:0和數(shù)據(jù)b7:0的結(jié)果,如果兩個(gè)數(shù)據(jù)相同,則給出結(jié)果為1,否則則結(jié)果為0.*如果可以,請(qǐng)寫(xiě)出行為級(jí)和門(mén)級(jí)兩種不同的描述方式。第二課時(shí): 1:FORCE命令的介紹 2:DO文件的介紹 3:界面介紹 4:設(shè)計(jì)調(diào)試 5:其他相關(guān)內(nèi)容仿真 . ?!設(shè)計(jì)組織虛線表示編譯時(shí)檢測(cè)輸入文件是否存在及可讀并允許生成輸出文件。 test bench組織簡(jiǎn)單的test bench向要驗(yàn)證的設(shè)計(jì)提供向量,人工驗(yàn)證輸

13、出。復(fù)雜的test bench是自檢測(cè)的,其結(jié)果自動(dòng)驗(yàn)證。 stimulus要驗(yàn)證的設(shè)計(jì)簡(jiǎn)單的test bench復(fù)雜的test bench激勵(lì)驗(yàn)證結(jié)果要驗(yàn)證的設(shè)計(jì)包含文件包含文件用于讀入代碼的重復(fù)部分或公共數(shù)據(jù)。 module clk_gen (clk);output clk; reg clk;include common.txtinitial begin while ($ time sim_end) begin clk = initial_clock; #(period/2) clk = !initial_clock; #(period/2); end $finish;endendmodu

14、le在上面的例子中,公共參數(shù)在一個(gè)獨(dú)立的文件中定義。此文件在不同的仿真中可被不同的測(cè)試文件調(diào)用。 / common. txt/ clock and simulator constantsparameter initial_clock = 1;parameter period = 15;parameter max_cyc = 100;parameter sim_end = period * max_cyc施加激勵(lì)產(chǎn)生激勵(lì)并加到設(shè)計(jì)有很多 種方法。一些常用的方法有:從一個(gè)initial塊中施加線激勵(lì)從一個(gè)循環(huán)或always塊施加激勵(lì)從一個(gè)向量或整數(shù)數(shù)組施加激勵(lì)記錄一個(gè)仿真過(guò)程,然后在另一個(gè)仿真中回

15、放施加激勵(lì)線性激勵(lì)線性激勵(lì)有以下特性:只有變量的值改變時(shí)才列出易于定義復(fù)雜的時(shí)序關(guān)系對(duì)一個(gè)復(fù)雜的測(cè)試,測(cè)試基準(zhǔn)(test bench)可能非常大module inline_ tb; reg 7: 0 data_ bus, addr; wire 7: 0 results; DUT u1 (results, data_ bus, addr); initial fork data_bus = 8h00; addr = 8h3f; #10 data_ bus = 8h45; #15 addr = 8hf0; #40 data_ bus = 8h0f; #60 $finish; joinendmodul

16、e循環(huán)激勵(lì)從循環(huán)產(chǎn)生激勵(lì)有以下特性:在每一次循環(huán),修改同一組激勵(lì)變量時(shí)序關(guān)系規(guī)則代碼緊湊 module loop_tb; reg clk; reg 7:0 stimulus; wire 7:0 results; integer i; DUT u1 (results, stimulus); always begin / clock generation clk = 1; #5 clk = 0; #5 end initial begin for (i = 0; i 1; i = i - 1) / 循環(huán) #50 stimulus = stim_arrayi ; #30 $finish; endend

17、module矢量采樣在仿真過(guò)程中可以對(duì)激勵(lì)和響應(yīng)矢量進(jìn)行采樣,作為其它仿真的激勵(lì)和期望結(jié)果。module capture_tb; parameter period = 20 reg 7:0 in_vec, out_vec; integer RESULTS, STIMULUS; DUT u1 (out_ vec, in_ vec); initial begin STIMULUS = $fopen(stimulus. txt) ; RESULTS = $fopen(results. txt) ; fork if (STIMULUS != 0 ) forever #( period/2) $fstr

18、obeb (STIMULUS, %b, in_vec); if (RESULTS != 0 ) #( period/2) forever #( period/2) $fstrobeb (RESULTS, %b, out_vec); join endendmodule矢量回放保存在文件中的矢量反過(guò)來(lái)可以作為激勵(lì)module read_file_tb; parameter num_vecs = 256; reg 7:0 data_bus; reg 7:0 stim num_vecs-1:0; integer i; DUT u1 (results, data_bus) initial begin /

19、 Vectors are loaded $readmemb (vec. txt, stim); for (i =0; i num_vecs ; i = i + 1) #50 data_bus = stimi; endendmodule/ 激勵(lì)文件vec.txt001110000011100100111010001111000011000000101000000110000111100010111000.使用矢量文件輸入/輸出的優(yōu)點(diǎn):激勵(lì)修改簡(jiǎn)單設(shè)計(jì)反復(fù)驗(yàn)證時(shí)直接使用工具比較矢量文件。錯(cuò)誤及警告報(bào)告使用文本或文件輸出類(lèi)的系統(tǒng)任務(wù)報(bào)告錯(cuò)誤及警告always ( posedge par_err) $

20、display ( error-bus parity errors detected);always ( posedge cor_err) $display(warning-correctable error detected);一個(gè)更為復(fù)雜的test bench可以:不但能報(bào)告錯(cuò)誤,而能進(jìn)行一些動(dòng)作,如取消一個(gè)激勵(lì)塊并跳轉(zhuǎn)到下一個(gè)激勵(lì)。在內(nèi)部保持錯(cuò)誤跟蹤,并在每次測(cè)試結(jié)束時(shí)產(chǎn)生一個(gè)錯(cuò)誤報(bào)告。強(qiáng)制激勵(lì)在過(guò)程塊中,可以用兩種持續(xù)賦值語(yǔ)句驅(qū)動(dòng)一個(gè)值或表達(dá)式到一個(gè)信號(hào)。過(guò)程持續(xù)賦值通常不可綜合,所以它們通常用于測(cè)試基準(zhǔn)描述。對(duì)每一種持續(xù)賦值,都有對(duì)應(yīng)的命令停止信號(hào)賦值。不允許在賦值語(yǔ)句內(nèi)部出現(xiàn)時(shí)序控

21、制。對(duì)一個(gè)寄存器使用assign和deassign,將覆蓋所有其他在該信號(hào)上的賦值。這個(gè)寄存器可以是RTL設(shè)計(jì)中的一個(gè)節(jié)點(diǎn)或測(cè)試基準(zhǔn)中在多個(gè)地方賦值的信號(hào)等。 initial begin #10 assign top.dut.fsm1.state_reg = init_state ; #20 deassign top.dut.fsm1.state_reg ; end在register和net上(例如一個(gè)門(mén)級(jí)掃描寄存器的輸出)使用force和release,將覆蓋該信號(hào)上的所有其他驅(qū)動(dòng)。 initial begin #10 force top. dut. counter. scan_ reg.

22、q = 0 ; #20 release top. dut. counter. scan_ reg. q ; end強(qiáng)制激勵(lì)可以強(qiáng)制(force)并釋放一個(gè)信號(hào)的指定位、部分位或連接,但位的指定不能是一個(gè)變量(例如out_veci)不能對(duì)register的一位或部分位使用assign和deassign對(duì)同一個(gè)信號(hào),force覆蓋assign。后面的assign或force語(yǔ)句覆蓋以前相同類(lèi)型的語(yǔ)句。如果對(duì)一個(gè)信號(hào)先assign然后force,它將保持force值。在對(duì)其進(jìn)行release后,信號(hào)為assign值。如果在一個(gè)信號(hào)上force多個(gè)值,然后release該信號(hào),則不出現(xiàn)任何force值

23、。 在上面兩個(gè)例子中,在 net或register上所賦的常數(shù)值,覆蓋所有在時(shí)刻10和時(shí)刻20之間可能發(fā)生在該信號(hào)上的其他任何賦值或驅(qū)動(dòng)。如果所賦值是一個(gè)表達(dá)式,則該表達(dá)式將被持續(xù)計(jì)算。建立時(shí)鐘例1:雖然有時(shí)候在設(shè)計(jì)中給出時(shí)鐘,但通常時(shí)鐘是測(cè)試基準(zhǔn)中建立。下面介紹如何產(chǎn)生不同的時(shí)鐘波形。同時(shí)給出用門(mén)級(jí)和行為級(jí)描述方法下面是一個(gè)簡(jiǎn)單對(duì)稱(chēng)時(shí)鐘的例子: reg ck;always begin #( period/2) ck = 0; #( period/2) ck = 1;endreg go; wire ck;nand #( period/2) u1 (ck, ck, go);initial beg

24、in go = 0; #( period/2) go = 1;end注意:在一些仿真器中,時(shí)鐘與設(shè)計(jì)使用相同的抽象級(jí)描述時(shí),仿真性能會(huì)好一些。 產(chǎn)生的波形(假定period為20)建立時(shí)鐘例2:有啟動(dòng)延時(shí)的對(duì)稱(chēng)時(shí)鐘的例子:reg ck;initial begin ck = 0; #( period) forever #( period/2) ck = !ck;endreg go; wire ck;nand #( period/2) u1 (ck, ck, go);initialbegin go = 0; #(period) go = 1;end注意:在行為描述中,在時(shí)間0將CK初始化為0;而在

25、結(jié)構(gòu)描述中,直到period/2才影響CK值。當(dāng)go信號(hào)在時(shí)間0初始化時(shí),CK值到period/2才變化??梢允褂锰厥饷頵orce和release立即影響CK值。產(chǎn)生的波形(假定period為20)建立時(shí)鐘例3:有不規(guī)則啟動(dòng)延時(shí)的不對(duì)稱(chēng)時(shí)鐘的例子:注意:在行為描述中,CK值立刻被影響;而在結(jié)構(gòu)描述中,在傳播延時(shí)后才輸出正確波形。產(chǎn)生的波形(假定period為20)reg ck;initial begin #(period + 1) ck = 1; #(period/2 1) forever begin #(period/4) ck = 0; #(3*period/4) ck = 1; end

26、endreg go; wire ck;nand #(3*period/4, period/4) u1(ck, ck, go);initial begin #(period/4 + 1) go = 0; #(5*period/4 1) go = 1;end使用task在test bench中使用task可以壓縮重復(fù)操作,提高代碼效率。module bus_ctrl_tb; reg 7: 0 data; reg data_valid, data_rd; cpu u1 (data_valid, data,data_rd); initial begin cpu_driver (8b0000_0000)

27、; cpu_driver (8b1010_1010); cpu_driver (8b0101_0101); end task cpu_driver; input 7:0 data_in; begin #30 data_valid = 1; wait (data_rd = 1); #20 data = data_ in; wait (data_rd = 0); #20 data = 8hzz; #30 data_valid = 0; end endtaskendmodule 使用task產(chǎn)生的波形復(fù)習(xí)問(wèn)題:什么操作可以容易的在forkjoin塊做到,而不容易在beginend塊做到?通常怎樣產(chǎn)生

28、規(guī)則激勵(lì)和不規(guī)則激勵(lì)?從一個(gè)文件中讀取激勵(lì)時(shí)使用什么數(shù)據(jù)類(lèi)型?在行為級(jí)時(shí)鐘模型中能做哪些在門(mén)級(jí)時(shí)鐘模型中很難或不能作到的事? 解答:forkjoin塊中不但能夠賦值,還可以并行執(zhí)行循環(huán)、條件語(yǔ)句、任務(wù)或函數(shù)調(diào)用。循環(huán)或always塊能有效地產(chǎn)生規(guī)則激勵(lì),不規(guī)則激勵(lì)適合用在initial塊產(chǎn)生。用寄存器組(存儲(chǔ)器)并用$readmem系統(tǒng)任務(wù)從一個(gè)文件以讀取向量。行為級(jí)代碼可以很容易地產(chǎn)生一個(gè)啟動(dòng)時(shí)間不規(guī)則的時(shí)鐘波形,并且可以在時(shí)刻零初始化時(shí)鐘。 Force命令的介紹1:Force的使用對(duì)象: 簡(jiǎn)單的模塊仿真。2:Force命令的輸入方式: 直接從命令控制臺(tái)輸。 DO文件(宏文件)。3:forc

29、e命令的常規(guī)語(yǔ)法: force , 例:force fp 1 4000ps , 0 8000ps/信號(hào)fp在4000ps處置,8000ps處置0。4:force命令的參數(shù): item_name 強(qiáng)迫對(duì)象 必須的 可以使用通配符 5:其他參數(shù): value被強(qiáng)制的項(xiàng)的值必須適合項(xiàng)的數(shù)據(jù)類(lèi)型必需的 time指定值的時(shí)間單位相對(duì)于當(dāng)前的仿真時(shí)間用 character指定絕對(duì)時(shí)間時(shí)間單位能被指定缺省值是仿真分辨率可選的6:force命令舉例:force clr 0在當(dāng)前仿真時(shí)間強(qiáng)制 clr 到 0force bus1 01XZ 100 ns在當(dāng)前仿真時(shí)間后100ns強(qiáng)制 bus1到 01XZforce

30、 bus2 16#4F 200仿真啟動(dòng)后強(qiáng)制 bus2到 4F直到200時(shí)間單位 ,分辨率在仿真啟動(dòng)時(shí)選擇force clk 0 0, 1 20 -repeat 50 -cancel 1000在當(dāng)前仿真后0時(shí)間單位強(qiáng)制clk到0和在20時(shí)間單位強(qiáng)制到1. 每50時(shí)間單位重復(fù)直到1000. 因此, 下一個(gè) 1 將在70時(shí)間單位發(fā)生force clk2 1 10 ns, 0 20 ns -r 100 ns和上一個(gè)例子相似。-r前面的時(shí)間單位表達(dá)式必須放在大括號(hào)里DO文件自動(dòng)完成仿真步驟的宏文件庫(kù)設(shè)置編譯仿真強(qiáng)制仿真激勵(lì)能在所有的ModelSim 模式里被調(diào)用能調(diào)用其他的DO文件DO文件舉例:cd

31、c:mydirvlib workvcom counter.vhdvsim counterview *do stimulus.domy_sim.doadd wave /clkadd wave /clradd wave /loadadd wave -hex /dataadd wave /qforce /clk 0 0, 1 50 -repeat 100force /clr 0 0, 1 100run 500force /load 1 0, 0 100force /data 16#A5 0force /clk 0 0, 1 50 -repeat 100run 1000stimulus.do界面介紹m

32、ain主窗口:structure結(jié)構(gòu)窗口process處理窗口:Signal&variable信號(hào)和變量窗口dataflow數(shù)據(jù)流窗口source源窗口Wave&list波形和列表窗口1:ModelSim共有9個(gè)窗口: main, structure, source, signals, process, variables, dataflow, wave, 和list 窗口。2:支持任何窗口的多個(gè)副本。3:拖放在一個(gè)窗口選擇HDL項(xiàng)后, 用鼠標(biāo)左鍵,這些項(xiàng)能被從一個(gè)窗口拖和放到另一個(gè)窗口.HDL項(xiàng)可從 Dataflow, List, Signals, Source, Structure, Va

33、riables, 和 Wave窗口拖出.可把它們放到 List 或者 Wave 窗口Main窗口(1):ModelSim 這是設(shè)計(jì)加載前的提示符能瀏覽幫助, 編輯庫(kù), 編輯源代碼而不用調(diào)用一個(gè)設(shè)計(jì)VSIM 設(shè)計(jì)加載后顯示的提示符 告訴我們仿真器的行為動(dòng)作 命令 信息 聲明Main窗口(2)Main窗口()Structure窗口:VHDL (o) - Package, component instantiation, generate and block statementsVerilog () module實(shí)例, named fork, named begin, task, 和 functio

34、nInstantiation label, entity/module, architecture成為當(dāng)前層 for Source 和 Signals 窗口, updates Process 和Variables 窗口Source窗口:從Structure窗口選擇Options 菜單 (源代碼的控制瀏覽)Color-coded注釋, 關(guān)鍵字, 字符串, 數(shù)字, 執(zhí)行行, 標(biāo)識(shí)符, 系統(tǒng)任務(wù), 文本完全的編輯能力保存 編譯和重啟拖放描述/檢查VHDL 信號(hào), 變量和常數(shù)Source窗口:描述顯示所選的HDL項(xiàng)的信息檢查顯示所選HDL項(xiàng)當(dāng)前仿真值Process窗口:顯示外部和內(nèi)部的處理View -

35、 ActiveShows all processes scheduled for execution during the current simulation cycleView - In RegionShows names of all processes in the region selected in the Structure windowProcess窗口:指示器Process is scheduled to be executed處理正等待 VHDL 信號(hào)或Verilog 線網(wǎng)改變 或等待超時(shí)Process has executed a VHDL wait statement

36、without a time-out or sensitivity listSignals窗口:緊跟Structure窗口顯示Structure窗口的當(dāng)前層HDL項(xiàng)的名稱(chēng)和值排序 升序,降序或聲明順序?qū)哟?- (+)可展開(kāi)的, (-)已展開(kāi)的VHDL 信號(hào)Verilog 線網(wǎng), 寄存器變量和已命名的時(shí)間“拖放”Wave和List窗口Force用于激勵(lì)Filter為瀏覽選擇信號(hào)類(lèi)型 (輸入, 輸出, 內(nèi)部, 等)Dataflow窗口:VHDL信號(hào)或Verilog線網(wǎng)的圖形描繪信號(hào)或線網(wǎng)在窗口中央Processes that drive signal or net on the leftProcesses that read the signal or are triggered by the net on the rightDataflow窗口:ProcessesSignals read by or nets that trigger the process on the leftSignals or nets driven b

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論