前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Modelsim与Quartus联合调用

Modelsim与Quartus联合调用

作者头像
zstar
发布2022-06-14 14:02:59
3490
发布2022-06-14 14:02:59
举报
文章被收录于专栏:往期博文往期博文

Quartus II和Modelsim的联合仿真

这里拿正点原子FPGA的教程中的例子:

首先编写流水灯的verilog文件:

代码语言:javascript
复制
module flow_red(
    input               sys_clk  ,  //系统时钟
    input               sys_rst_n,  //系统复位,低电平有效
	 
    output  reg  [3:0]  led         //4个LED灯
    );

//reg define
reg [23:0] counter;

//*****************************************************
//**                    main code
//***************************************************** 
                                                                                                                                                                                                                         
//计数器对系统时钟计数,计时0.2秒
always @(posedge sys_clk or negedge sys_rst_n) begin
    if (!sys_rst_n)
        counter <= 24'd0;
    else if (counter < 24'd10)
        counter <= counter + 1'b1;
    else
        counter <= 24'd0;
end

//通过移位寄存器控制IO口的高低电平,从而改变LED的显示状态
always @(posedge sys_clk or negedge sys_rst_n) begin
    if (!sys_rst_n)
        led <= 4'b0001;
    else if(counter == 24'd10) 
        led[3:0] <= {led[2:0],led[3]};
    else
        led <= led;
end

endmodule 

注意:这里为了仿真清晰,counter计数器判断改成了24’d10

编译之后,编写vt文件,这个文件用于设定仿真情况的激励信号和时钟信号

代码语言:javascript
复制
`timescale 1 ns/ 1 ns
module flow_red_vlg_tst();
// constants                                           
// general purpose registers
// test vector input registers
reg sys_clk;
reg sys_rst_n;
// wires                                               
wire [3:0]  led;

// assign statements (if any)                          
flow_red i1 (
// port map - connection between master ports and signals/registers   
	.led(led),
	.sys_clk(sys_clk),
	.sys_rst_n(sys_rst_n)
);
initial                                                
begin                                                  
    sys_clk = 1'b0;
    sys_rst_n = 1'b0;
    #100 sys_rst_n = 1'b1;
    #1000 $stop;
end                                                    
always #10 sys_clk = ~sys_clk;   
endmodule

注意:教程中sys_clk 取反用的是 负号"-",实际应当用波浪号"~",否则语句不报错,但不生效。

之后,在Assignments->setting里面将vt文件进行绑定。

在这里插入图片描述
在这里插入图片描述

最后,选择Tools->RunSimulation Tool->RTL Simulation,即可成功运行Modelsim

在这里插入图片描述
在这里插入图片描述

进入Modelsim界面,点击第三个放大镜可以显示全部波形。

在这里插入图片描述
在这里插入图片描述

点击 Foemat->Toggle Leaf Names ,可以将变量路径名隐藏。

仿真效果如图所示:

的
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021-10-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Quartus II和Modelsim的联合仿真
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档