Edit - Preference,找modelsim執行檔的位置
先寫個檔案
dynamicHazard.v:
module hazard_dynamic(w,x,y,z,f);
input w,x,y,z;
output f;
//internal declaration
wire a,b,c,d,e;
//logic circuit body
nand #5 nand1(b,x,w);
not #5 n1(a,w);
nand #5 nand2(c,a,y);
nand #5 nand3(d,b,c);
nand #5 nand4(e,w,z);
nand #5 nand5(f,d,e);
endmodule
隨便找個地方放。
@啟動Xilinx
@File - New Project
project name:dynamicHazard
@Add Existing Source
把dynamicHazard.v加進去
project開好了
@ RTL View
下面窗格,View RTL Schematic點兩下,右邊會開出來。
右邊再點兩下可以切換view level。
波形模擬
需要testbench
@Creat New Source
@Verilog Test Fixture(這樣是用自己寫的testbench)
如果選Test Bench Waveform,自訂的彈性很差。
File Name : dynamicHazard_tb
接下來選source,選擇要測試的module
@貼上自己寫的test bench
`timescale 1ns / 10ps
module dynamicHazard_tb_v;
// Inputs
reg w;
reg x;
reg y;
reg z;
// Outputs
wire f;
// Instantiate the Unit Under Test (UUT)
hazard_dynamic uut (
.w(w),
.x(x),
.y(y),
.z(z),
.f(f)
);
initial begin
w=1'b0; x=1'b0; y=1'b0; z=1'b0;
#5 x=1'b1; y=1'b1; z=1'b1;
#20 w=1'b0;
#30 w=1'b1;
#190 $finish;
end
endmodule
儲存testbench
@ Implement Design
切換source到Synthesis/Implementation
點下面Translate的加號 - 點兩下Generate Post-Translate Simulation Model
同樣的把Post-Map, Post-Route simulation model都執行
@丟到ModelSim產生波形
切換source。要模擬哪個階段,就切換到那一個source
@processes會切換到對應的source,點選dynamicHazard_tb之後,下面才會跳出Simulate選項
@Simulate Post-Translate Model點兩下
接下來就交給ModelSim了
喔喔~有錯誤
上面說找不到simprims_ver這個library,手動加進去。
-File - New - Library,name輸入simprims_ver
-Compile - Compile
-Library改成 simprims_ver
-搜尋位置:C:\Xilinx\verilog\src,加入glbl.v。Compile
進入C:\Xilinx\verilog\src\simprims,Ctrl-A全選。Compile
Done
- 關掉ModelSim,從Xilinx再呼叫一次
右邊的紅圈:把波形圖放大。
左邊的紅圈:調整zoom成觀看整個波形
(一定要調.....否則會看起來一片平坦...以為是做錯了)
就這樣...還有很多要學
just begining....
0 comments:
Post a Comment