1 / 14
文档名称:

如何使用ModelSim作前仿真与后仿真.doc

格式:doc   大小:392KB   页数:14页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

如何使用ModelSim作前仿真与后仿真.doc

上传人:86979448 2018/4/27 文件大小:392 KB

下载得到文件列表

如何使用ModelSim作前仿真与后仿真.doc

相关文档

文档介绍

文档介绍:(笔记) 如何使用ModelSim作前仿真与后仿真? (SOC) (Quartus II) (ModelSim)
2009-06-04 15:00
Abstract
本文介绍使用ModelSim做前仿真,并搭配Quartus II与ModelSim作后仿真。
Introduction
使用环境:Quartus II
+ ModelSim-Altera
由于FPGA可重复编程,所以不少开发人员就不写testbench,直接使用Quartus II的programmer烧进开发板看结果,或者使用Quartus II自带的Waveform Editor进行仿真,这种方式虽然可行,但仅适用于小project,若project越写越大,Quartus II光做fitter就很耗时间,一整天下来都在作Quartus II编译。
比较建议的方式,还是学ASIC那招:『写testbench先对每个module作前仿真,再对每个module作后仿真,最后再烧入FPGA测试。』
这种方式的优点是:
editor可更灵活的描述电路规格。
,如$display()、$fwrite()...等。
但要使用testbench作仿真,单独Qaurtus II并无法做到,就得使用ModelSim了,这又牵涉到『前仿真』与『后仿真』。
所谓的『前仿真』,就是Quartus II的Functional Simulation,不考虑电路的门延迟与线延迟,重点在观察电路在理想环境下的行为与设计构想是否一致[1]。由于没经过fitter阶段,所以仿真速度很快。前仿真结果正确,并不表示将来结果结果正确,但若前仿真结果不正确,则将来结果一定不正确。
所谓的『后仿真』,就是Quartus II的Timing Simulation,考虑了电路的门延迟与线延迟,由于经过fitter阶段,所以模拟结果最为精准。但fitter在Quartus II编译需耗费很多时间,所以建议『前仿真』正确后,再考虑『后仿真』。
使用Quartus II的waveform editor作前仿真与后仿真,我就不再多谈,本文主要是谈如何使用ModelSim-Altera作前仿与后仿。
-Altera作前仿真。
macro在ModelSim-Altera作前仿真。
II + ModelSim-Altera作后仿真。
/ Verilog
1 /*
2 (C) OOMusou 2008
3
4 Filename    :
piler    : Quartus II / ModelSim-Altera
6 Description : simple counter
7 Release     : 01/30/2009
8 */
9
10 `timescale 1ns/100ps
11
12 module Counter (
13 input        CLK,
14 input        RST_N,
15 output [3:0] CNT
16 );
17
18 reg [3:0] cnt;
19 T = cnt;
20
21 always@(posedge CLK, negedge RST_N) begin
22 if (!RST_N)
23     cnt <= #5 4'h0;
24 else
25     cnt <= #t + 1'b1;
26 end
27
28 endmodule
一个很简单的counter,从0数到15重复数。由于要使用ModelSim作前仿,所以在reg做了delay,不过这在Quartus II作合成时会自动忽略, 因为delay并非可合成的Verilog。
一般写给FPGA的RTL,都不会去设定timescale,不过由于要用ModelSim作前仿,所以要加上timescale。
/ Verilog
1 /*
2 (C) OOMusou 2008
3
4 Filename    :
piler    : Quartus II / ModelSim-Altera
6 Description : simple counter testbench
7 Release     : 01/30/2009
8 */