- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
在 QuartusⅡ中调用 ModelSim 进行仿真 Quartus Ⅱ版本:Quartus Ⅱ10.0 (32-bit);安装路径为 D:\Myfiles\QUARTUS_10.0
ModelSim 版本:ModelSim SE 6.5;安装路径为 D:\Myfiles\ModelsimSE
一、 Quartus 设置
在 Quartus Ⅱ中指明仿真工具及其路径
在 Quartus Ⅱ中编译所需的元器件库
二、建立工程及仿真
在 Quartus Ⅱ中建立工程 counter ,并指明仿真工具
顶层文件代码
激励文件代码
在 Quartus 中添加 testbench 文件
在 Quartus 中全编译工程
前仿真
后仿真
一、 QuartusⅡ的相关设置
(1)在 QuartusⅡ中指明仿真工具及其路径
在 QuartusⅡ中执行 Tools\Options,打开 EDA Tool Options 选项卡。我们使用 ModelSim 进 行仿真,所以在 ModelSim 对应的 Location of Executable 中选择 ModelSim 的安装路径 D:\Myfiles\ModelsimSE\win32,如图 1 所示:
1
图 1
(2)在 QuartusⅡ中编译所需的元器件库
在 ModelSim 安装路径 D:\Myfiles\ModelsimSE 中新建文件夹 modelsimSE_lib,用于存 放编译的文件
在 QuartusⅡ10.0 中执行 Tools\Launch EAD Simiulation Library Compiler,在打开的界 面中 Executable location 一项选择 ModelSim 的安装路径 D:\Myfiles\ModelsimSE\Win32 在 Avaliable families 中根据自己需要选择可能用的到器件系列,如 cyclone、stratix 等;在 这里可以多选择一些,以备能用到,并且一次编译后,以后就不用再编译了。
Library Language 一项勾选 Verilog;
Output directory 选择 D:\Myfiles\ModelsimSE\modelsimSE_lib;
设置好后界面如图 2 所示:
2
图 2
3)在图 1 所示界面中单击 Start Compilation,开始编译; 4)编译完成后如图 3 所示,依次点击 OK、Close。
3
图 3
二、在 QuartusⅡ中建立工程及仿真
(1)在QuartusⅡ中建立工程counter,并指明仿真工具为Modelsim(Verilog),这一步可 以在New Project Wizard中指定,如图4所示;也可以先建立好工程在 Assignments\Setting\EDA Tool Settings中的simulation选项中设置,如图5所示。
4
图 4
在 New Project Wizard 中指定仿真工具
5
图 5
在 EDA Tool Settings 中指定仿真工具
(2)Quartus 工程顶层文件 counter.v 代码: `timescale 1ns/1ps
module counter (
// 时间单位/时间精度
input
input
clk_100M,
rst,
output reg[3:0] cnt,
//时钟计数器
output
output
output
);
always @ ( posedge
begin
if (rst) begin
cnt=4h0;
end
else begin
div_2,
div_4,
div_8
clk_100M or posedge rst)
//2 分频
//4 分频
//8 分频
6
cnt=cnt+1;
end
end
assign div_2 =cnt[0];
assign div_4 =cnt[1];
assign div_8 =cnt[2];
endmodule
(3)testbench 文件 counter_test.v 代码: `timescale 1ns/1ps
module counter_test( );
reg clk_100M;
reg rst;
wire [3:0] cnt;
wire div_2;
wire div_4;
wire div_8;
// 仿真时间单位/时间精度
parameter
parameter
clk_cycle=10;
clk_hcycle=5;
// 20M
文档评论(0)