本文主要描述了如何在QUARTUS II 中输入程序文件,生成网表及标准延时文件,然后通过MODELSIM 进行功能仿真与后仿真的过程,主要为图解,含全部代码及仿真波形。
工具:
- Quartus II 5.0 sp1
- ModelSim SE 6.1b
- 芯片:MAX II :EMP570T100I5
- 语言:Verilog HDL
- 程序功能:太简单了,自己看源程序吧
源程序:
module sim(reset,clk_in,clk_o1,clk_o2);
input reset,clk_in;
output clk_o1,clk_o2;
reg clk_o2;
assign clk_o1 = clk_in;
always @(negedge reset or posedge clk_in) //
begin
if(!reset)
clk_o2 = 0;
else
clk_o2 = ~clk_o2;
end
endmodule
测试程序:
`timescale 1ns/1ns
module testsim;
reg reset,clk_in;
wire clk_o1,clk_o2;
sim aa(.reset(reset),.clk_in(clk_in),.clk_o1(clk_o1), .clk_o2(clk_o2));
//sim aa(reset,clk_in,clk_o1,clk_o2);
always
#5000 clk_in = ~clk_in;
initial
begin
clk_in = 0;
reset = 0;
#10000;
reset = 1;
#1000000 $stop;
end
endmodule
测试程序注意:
例化时,最好用名称关联的方法进行例化,我曾试过用位置关联的方法,但后仿真不正常。不知道是不是Modelsim 在语法上的要求。
一、 程序输入与网表、延时文件的生成,相关库文件的拷贝
在建立Quartus II 源文件时,选择modelsim 作为仿真工具,这个不详说了。
输入文件sim.v,testsim.v,开始编译Start Complation,源文件在QII 的工程目录sim 下,
下图为生成的网表文件及延时文件,在目录QII 工程sim\simulation\modelsim\work,其中,maxii_atoms.v 是MAX II系列CPLD 的库文件,在QII 安装目录\quartus50\eda\sim_lib 下拷贝过来,同时,将sim 工程目录下的测试文件testsim.v 拷到该目录,为后仿真做准备。
二、 前仿真
1、选择QII 工程目录sim 为当前工作目录
2、编译源文件 sim.v , testsim.v
3、新建一个work 库
4、编译源文件 sim.v , testsim.v
5、将信号加到波形窗口
6、点击RUN ALL 按钮,进行仿真,功能仿真完成
三、 后仿真
1、前面已经生成相关网表、延时文件,并已经拷贝需要的文件了。现在,将工作目录变换到生成的网表文件、延时文件所在目录,这里为
..sim/simulation/modelsim并新建一个工作库,与功能仿真一样操作。
2、编译以下三个文件
3、选择菜单simulate —> start simulation。选择SDF 卡片,点击browse,选择延时文件sim_v.sdo Apply to Region 中,填写测试文件中例化用的名字,这里为aa。点击OK。
4、再选择Design 卡片页选择 WORK—>testsim点击OK,到下一步选择要显示的信号
5、将要显示的信号加入波形窗口。
6、点击RUN ALL,开始仿真,后仿真步骤完成