基于Quartus II+ModelSim SE的后仿真(Verilog版)
在您的ModelSim安装目录中建立两个文件夹,一个是用于存放公用的库我给它取名altera_base_v;另一个是用于存放您要用到的特定的器件库,我用到的是cyclone系列所以命名为cyclone_v。我是这样建的:
注意要在altera_base_v和cyclone_v两个目录下分别新建一个 _info ,否则在对库文件进行编译的时候会提示找不到_info文件。
<!--[endif]-->
图3 图4
图5
图6
第一步 选中modelsim.ini文件,右键单击属性,将只读属性去掉。
第二步 用写字板或其它工具打开modelsim.ini文件,在[Library]这个位置下面添加如下2行,如图7所示:
图7
第三步 保存文件,关闭文件后,再将只读属性打开。 最后在左侧面板位置点鼠标右键->Refresh一下。
1. 在ModelSim 中新建一个工程工程目录可以直接使用 Quartus生成的 “Quartus工程所在目录\simulation\modelsim”,把 counter.v 还有测试文件 counter_tb.v一起 Copy 到这个文件夹中。
2. 点击ModelSim面板中的File->New->Project…选项,新建一个工程,点击 Add new file to project 将counter.v , coumter_tb.v , 和 counter.vo三个文件添加到工程中去,这三个文件是后仿真所需要的。
4. 编译上述的三个文件,如果正确会在命令窗口出现如图8的提示信息
图8
图9
图10
图11
可以发现,后仿真的信号数量比功能仿真要多得多,并且从波形输出中也可以看到明显的由器件本身带来的延时。图12是信号的局部放大图。
图12
附录:
/***** 顶层文件 : counter.v *****/
module counter(
clk,
dout
);
input clk;
output [7:0]dout;
reg [7:0] cnt;
initial
cnt = 8‘d0;
always @ (posedge clk)
begin
if(cnt == 8‘d255)
cnt = 8‘d0;
else
cnt = cnt + 8‘d1;
end
assign dout = cnt;
endmodule
/***** test bentch : counter_tb.v *********/
`timescale 1ns/1ns
module counter_tb;
reg clk;
wire [7:0] dout;
always
#10 clk = ~clk;
initial
clk = 0;
counter u1(.clk(clk),.dout(dout));
endmodule
基于Quartus II+ModelSim SE的后仿真(Verilog版),布布扣,bubuko.com
基于Quartus II+ModelSim SE的后仿真(Verilog版)
原文:http://www.cnblogs.com/iversonblog/p/3577457.html