modelsim仿真Word文档格式.docx

上传人:b****5 文档编号:19071810 上传时间:2023-01-03 格式:DOCX 页数:15 大小:347.77KB
下载 相关 举报
modelsim仿真Word文档格式.docx_第1页
第1页 / 共15页
modelsim仿真Word文档格式.docx_第2页
第2页 / 共15页
modelsim仿真Word文档格式.docx_第3页
第3页 / 共15页
modelsim仿真Word文档格式.docx_第4页
第4页 / 共15页
modelsim仿真Word文档格式.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

modelsim仿真Word文档格式.docx

《modelsim仿真Word文档格式.docx》由会员分享,可在线阅读,更多相关《modelsim仿真Word文档格式.docx(15页珍藏版)》请在冰豆网上搜索。

modelsim仿真Word文档格式.docx

使用QuartusII的waveformeditor作前仿真與後仿真,我就不再多談,本文主要是談如何使用ModelSim-Altera作前仿與後仿。

1.使用GUI的方式在ModelSim-Altera作前仿真。

2.使用DOmacro在ModelSim-Altera作前仿真。

3.使用QuartusII+ModelSim-Altera作後仿真。

Counter.v/Verilog

/* 

(C)OOMusou2008

Filename 

 

:

Counter.v

Compiler 

QuartusII8.1/ModelSim-Altera6.3g

Description:

simplecounter

Release 

01/30/20091.0

*/

10 

`timescale1ns/100ps

11 

12 

moduleCounter(

13 

input 

CLK,

14 

RST_N,

15 

output[3:

0]CNT

16 

);

17 

18 

reg[3:

0]cnt;

19 

assignCNT=cnt;

20 

21 

always@(posedgeCLK,negedgeRST_N)begin

22 

if(!

RST_N)

23 

cnt<

=#5 

4'

h0;

24 

else

25 

=#5cnt+ 

1'

b1;

26 

end

27 

28 

endmodule

复制代码

一個很簡單的counter,從0數到15重複數。

由於要使用ModelSim作前仿,所以在reg做了delay,不過這在QuartusII作合成時會自動忽略,因為delay並非可合成的Verilog。

一般寫給FPGA的RTL,都不會去設定timescale,不過由於要用ModelSim作前仿,所以要加上timescale。

Counter_tb.v/Verilog 

Counter_tb.v

simplecountertestbench

moduleCounter_tb;

reg 

clk;

rst_n;

wire[3:

parameterPERIOD= 

20;

Countercounter(

.CLK(clk),

.RST_N(rst_n),

.CNT(cnt)

initial 

begin

#0clk 

b0;

rst_n= 

29 

#5rst_n= 

30 

31 

32 

//50MHz

33 

always#(PERIOD/2)clk= 

~clk;

34 

35 

一個很典型的testbench,唯一要注意的是第28行。

#5rst_n= 

之所以一開始要將rst_n為0,是因為ModelSim與QuartusII對reg初始值看法不一樣,QuartusII認為reg初始值為0,但ModelSim認為reg初始值為x,所以需要rst_n=1'

b0將reg歸0,這樣用ModelSim前仿才會正確,但ModelSim後仿可以不這樣做,因為QuartusII會先做處理。

不過為了前仿與後仿都使用同一個testbench,建議加上rst_n=1'

b0設定reg初始值為0。

有了RTL與testbench之後,來看看如何使用ModelSim作前仿與後仿。

1.使用GUI的方式在ModelSim-Altera作前仿真

ModelSim提供了全GUI的方式,只要使用操作的方式,就能做前仿。

Step1:

File->

NewProject

Step2:

AddExistingFile

將Counter.v與Counter_tb.v加入

Step3:

CompileAll

選擇Counter.v或者Counter_tb.v,按滑鼠右鍵,選擇Compile->

CompileAll,編譯所有Verilogcode。

編譯成功。

Step4:

Simulate

在Librarytab選擇Counter_tb,按滑鼠右鍵,選Simulate。

Simulate成功。

Step5:

AddSignaltoWave

將欲觀察的信號從Objects加入Wave,加入clk,rst_n與cnt。

最後結果。

Step6:

Run300ns

最後前仿結果。

2.使用DOmacro在ModelSim-Altera作前仿真

ModelSim也提供macro的方式,以上所有的GUI操作,都可以使用TCLscript描述。

Step1與Step2與之前一樣。

ExecuteMacro

Counter_wave.do/ModelSimMacro 

#compile

vlogCounter.v

vlogCounter_tb.v

#simulate

vsimCounter_tb

#probesignals

addwave*

#300ns

run 

300ns

3.使用QuartusII+ModelSim-Altera作後仿真

設定QuartusII使用ModelSim-Altera作後仿真

Assignments->

Settings->

Category:

EDAToolSettings->

Simulation:

Toolname:

ModelSim-Altera

選取Rungate-levelsimulationautomaticallyaftercompilation

Formatforoutputnetlist:

Verilog

Timescale:

1ns

設定testbench

在同一頁的NativeLinksettings選擇Compiletestbench,按下TestBenches..加入Counter_tb.v。

比較詭異的是,Testbenchname、Toplevelmoduleintestbench與Designinstancenameintestbench無法自己抓到,必須自己填。

編譯與模擬

Processing->

StartCompilation

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 营销活动策划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1