完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
下面是基于在Altera Quartus II 下如何调用ModelSim 进行仿真的一个实例。
不能否认,Quartus II(我用的7.0)无法像ISE 那样方便的直接调用ModelSim,而是需要额外的做一些工作。这确实给我们的仿真调试带来了一些不便。特权同学也是在摸索了好久以后才彻底搞定这个问题,下面分享下,力求明白易懂,让大家少走一些弯路。 1、 打开Quartus II,新建一个工程,工程代码如下(只是做一个简单的二分频电路): module modelsim_test( 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 《= 1‘b0; else div 《= ~div; endmodule 2、 进入菜单栏的Assignments EDA Tool Settings,进入如下界面: 双击“EDA tools”下的“Simulation”选项,弹出如下界面: 点击Tool name 最右侧的下拉条,选择“ModelSim”,在弹出的界面做如下设置: 3、 以上设置完成,重新编译工程。 打开工程目录,看到多了一个“simulation”文件夹,再打开该文件夹下的“modelsim”文件夹。看到有三个文件,其中.vo 文件就是我们的代码布局布线信息。仿真还需要几个文件,我们把它们都拷贝到该目录下。 4、 打开“C:altera70quartusedasim_lib”(具体quartus 软件安装文件的根目录视您的实际情况而定,大体路径都一样),因为我们用的是MAX II器件,所以把“maxii_atoms.v”拷贝到3 中提到的目录下,这个文件是仿真元件库。 5、 编写一个工程RTL 源码的Testbench 文件,用于作为仿真激励(具体如何编写清参考相关数据文档资料)。这个实例的testbench 如下: module vtf_test; // Inputs reg clk; reg rst_n; // Output wire div; modelsim_test u1( .clk(clk), .rst_n(rst_n), .div(div) ); initial begin clk = 0; forever #10 clk = ~clk; //产生50MHz 的时钟 end initial begin rst_n = 0; #1000 rst_n = 1; //上电后1us 复位信号 #1000; $stop; end endmodule 将该文件命名为tb_test.v,保存到3 提到的文件夹下。 6、 在wokspace 的library 面板的空白处单击右键,选择“new”→“library” 在新弹出界面中做如下设置,然后点击“OK”。 7、 启动ModelSim 软件,点击菜单栏的Compile |
|
|
|
只有小组成员才能发言,加入小组>>
791 浏览 0 评论
1151 浏览 1 评论
2527 浏览 5 评论
2860 浏览 9 评论
移植了freeRTOS到STMf103之后显示没有定义的原因?
2710 浏览 6 评论
keil5中manage run-time environment怎么是灰色,不可以操作吗?
1070浏览 3评论
193浏览 2评论
455浏览 2评论
368浏览 2评论
M0518 PWM的电压输出只有2V左右,没有3.3V是怎么回事?
453浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 14:56 , Processed in 0.974587 second(s), Total 51, Slave 41 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号