笔记如何使用ModelSim作前仿真与后仿真SOCQuartusIIModelSimWord下载.docx

上传人:b****3 文档编号:18393066 上传时间:2022-12-16 格式:DOCX 页数:16 大小:348.48KB
下载 相关 举报
笔记如何使用ModelSim作前仿真与后仿真SOCQuartusIIModelSimWord下载.docx_第1页
第1页 / 共16页
笔记如何使用ModelSim作前仿真与后仿真SOCQuartusIIModelSimWord下载.docx_第2页
第2页 / 共16页
笔记如何使用ModelSim作前仿真与后仿真SOCQuartusIIModelSimWord下载.docx_第3页
第3页 / 共16页
笔记如何使用ModelSim作前仿真与后仿真SOCQuartusIIModelSimWord下载.docx_第4页
第4页 / 共16页
笔记如何使用ModelSim作前仿真与后仿真SOCQuartusIIModelSimWord下载.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

笔记如何使用ModelSim作前仿真与后仿真SOCQuartusIIModelSimWord下载.docx

《笔记如何使用ModelSim作前仿真与后仿真SOCQuartusIIModelSimWord下载.docx》由会员分享,可在线阅读,更多相关《笔记如何使用ModelSim作前仿真与后仿真SOCQuartusIIModelSimWord下载.docx(16页珍藏版)》请在冰豆网上搜索。

笔记如何使用ModelSim作前仿真与后仿真SOCQuartusIIModelSimWord下载.docx

但fitter在QuartusII编译需耗费很多时间,所以建议『前仿真』正确后,再考虑『后仿真』。

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

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

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

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

Counter.v/Verilog

/* 

(C)OOMusou2008:

//oomusoublogs

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),

T(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

完整程序代码下载

Counter.7z

Conclusion

本文介绍了使用ModelSim作前仿真与后仿真,善用ModelSim,将可加快FPGA与SOPC的开发。

SeeAlso

(原创)如何使用ModelSim-Altera作电路仿真?

(原创)如何解决在QuartusII无法使用ModelSim-Altera模拟的问题?

(原创)如何做functionalsimulation?

(SOC)(QuartusII)(ModelSim) 

Reference

[1]EDA先锋工作室,AlteraFPGA/CPLA设计(基础篇),人民电邮出版社

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

当前位置:首页 > 医药卫生 > 基础医学

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

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