quartus与modelsim联合调试

上传人:第*** 文档编号:32695375 上传时间:2018-02-12 格式:DOCX 页数:17 大小:870.83KB
返回 下载 相关 举报
quartus与modelsim联合调试_第1页
第1页 / 共17页
quartus与modelsim联合调试_第2页
第2页 / 共17页
quartus与modelsim联合调试_第3页
第3页 / 共17页
quartus与modelsim联合调试_第4页
第4页 / 共17页
quartus与modelsim联合调试_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《quartus与modelsim联合调试》由会员分享,可在线阅读,更多相关《quartus与modelsim联合调试(17页珍藏版)》请在金锄头文库上搜索。

1、下面是基于在 Altera Quartus II 下如何调用 M odelS im 进行仿真的一个实例。本来想和上一张 modesin 破解应用一起讲解,但是我在写的时候发现太多了,为了清楚明了,我就单独出了一篇。Quartus II 9.1,modesim 版本为 modesim 6.5a,Quartus 无法像 ISE 那样方便的直接调用 ModelSim,而是需要额外的做一些工作。这确实给我们的仿真调试带来了一些不便。我也是在摸索了好久以后才彻底搞定这个问题,下面分享下,力求明白易懂,让大家少走一些弯路。1、首先我们写一个代码如下的文件,保存为.v,因为我们采用的是 verilog 语言

2、,代码意思为 DIV 输出一个 2 分频的一个时钟,我们这里为什么要用到时钟呢,因为在我们不用到时钟的 modesim 仿真中,要简单很多,使用到时钟的modesim 仿真,要全面一点,因此,我们这里主要讲解这个。module clkdiv /clkdiv 这个名一定要跟文件名相同(clk,rst_n,div);input clk; /系统时钟input rst_n; /复位信号,低有效output div; / 2 分频信号reg div;always (posedge clk or negedge rst_n ) if( !rst_n )div begin / end $display(R

3、unning testbench); end always / optional sensitivity list / (event1 or event2 or . eventn) begin / code executes for every event on sensitivity list / insert code here begin eachvec; / end end endmodule我们要注意到,默认的模块名字是 clkdiv_vlg_tst ,把我们所写的 clkdiv.v 文件封装成了 clkdiv i1 的文件名,通过 write 连接。因此我们需要修改下面的 init

4、ial 文件,timescale 1 ps/ 1 psmodule clkdiv_vlg_tst();/ constants / general purpose registersreg eachvec;/ test vector input registersreg clk;reg rst_n;/ wires wire div;/ assign statements (if any) clkdiv i1 (/ port map - connection between master ports and signals/registers .clk(clk),.div(div),.rst_n(

5、rst_n);initial beginclk = 0;forever#10 clk = clk; endinitial beginrst_n = 0;#1000 rst_n = 1;#1000;$stop;endendmodule修改完后的 test bench 文件如上面代码。我们进行保存意思为:上电后 1us 复位信号运行时间为 1us,(当然我们可以一直运行,这个我们可以自行设定)。6、下面我们设置仿真选项,打开 Assignments - EDA Tool Settings 其中在 N ativeLink settings 选择 c ompile test bench 对 test

6、bench 进行设置非常关键参考如下:按“test benches”进入设定如下选择 NEW进入下面页面设置test bench name 填写的是:simulation/modelsim 目录下的 clkdiv.vt 文件名clkdiv。 Top level module in test bench 填写的是:打开 clkdiv.vt 文件内的 module 名字。Design inst ance name in test bench: 默认 i1 . 这里的文件名字,我们在修改 test bench 已经讲过了。完成以上 3 步填写,在 Test bench files 下面添加 test

7、 bench files-clkdiv.vt 点击OK完成设置。7、设置完成以后,在进行编译。8、在 quartus 调用 modesim9、由于我们设置了仿真时间,默认就已经运行完了,得到如下波形1us 后复位,然后运行 1us 的 2 分频,10、如果我们需要一点一点的看,那么我们在下面的命令行中输入命令首先我们结束当前仿真 quit sim 回车。 然后在 library 中找到 work 下面的工作文件为什么要选择 clkdiv_vlg_tst 文件仿真呢?在前面我们就说了,因为我们把clkdiv 封装成了一个文件,让 clkdiv_vlg_tst 去调用,因此我们只需要仿真clkdiv_vlg_tst 就 OK,添加仿真网络假设我们先运行 100ps,那么我们如数 run 100得到如下波形如果我们要运行 1ms ,那么出现如下: 其中波形为这里提示为:# Break in Module clkdiv_vlg_tst at F:/modelsim/san/simulation/modelsim/clkdiv.vt line 77意思我们仿真超过了所设定的值。到这里我们的仿真和 modesim 基本应用就讲完咯! 886

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 职业教育

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号