quartus工具篇——modelsim的使用

news2024/11/24 22:51:55

文章目录

  • quartus工具篇——modelsim的使用
    • 1、modelsim简介
    • 二、使用教程
      • 1、新建工程添加文件
    • 2、生成编写仿真文件
    • 3、设置仿真
    • 4、开启功能仿真
    • 5、开启时序仿真
    • 6、总结
    • 参考视频:

quartus工具篇——modelsim的使用

1、modelsim简介

Quartus Prime是一款由英特尔开发的集成电路设计软件,而ModelSim是Quartus的一个可选工具,用于进行数字电路仿真和验证。下面是对ModelSim在Quartus中的一些简要介绍:

  1. 工作原理:ModelSim是一款基于事件驱动的数字仿真器,使用硬件描述语言(如VHDL或Verilog)来描述和模拟电路行为。它可以帮助设计人员验证他们的电路设计在真实硬件上的功能和时序。
  2. 仿真功能:ModelSim提供了丰富的仿真功能,包括单步执行、断点设置、波形查看、变量监视等。您可以在仿真环境中模拟和观察电路的行为,以确保其在各种情况下都能正确运行。
  3. 波形编辑器:ModelSim配备了强大的波形编辑器,可以用于查看和分析仿真波形。您可以对信号值、时间、层次结构等进行详细设置和调整,以便更好地理解电路的工作方式。
  4. 调试功能:ModelSim还提供了强大的调试功能,可用于定位和修复电路设计中的问题。您可以设置断点、监视变量、跟踪信号路径等,以辅助调试过程。
  5. 与Quartus集成:Quartus提供了与ModelSim的紧密集成,使您可以在Quartus环境中直接启动ModelSim仿真。这种无缝集成简化了设计流程,并使您能够快速切换设计和仿真环境。

需要注意的是,ModelSim作为Quartus的可选工具,通常需要单独安装,并且可能会需要额外的许可证。因此,在使用ModelSim之前,您需要检查您的Quartus版本以及相关许可证要求。

二、使用教程

1、新建工程添加文件

这里操作很简单,这里就不再赘述,结果如下图:

在这里插入图片描述

2、生成编写仿真文件

生成仿真文件

在这里插入图片描述

生成的文件会在你创建工程的目录下,如图:

在这里插入图片描述

我这里是工程是创建在prj下,所以文件会生成在simulation->modelsim文件夹下,将.vt的文件添加进工程

在这里插入图片描述

重写.vt文件,可以将里面的内容替换成你自己编写的仿真文件的内容,一般是修改initial后的内容,

修改前:

// Copyright (C) 2018  Intel Corporation. All rights reserved.
// Your use of Intel Corporation's design tools, logic functions 
// and other software and tools, and its AMPP partner logic 
// functions, and any output files from any of the foregoing 
// (including device programming or simulation files), and any 
// associated documentation or information are expressly subject 
// to the terms and conditions of the Intel Program License 
// Subscription Agreement, the Intel Quartus Prime License Agreement,
// the Intel FPGA IP License Agreement, or other applicable license
// agreement, including, without limitation, that your use is for
// the sole purpose of programming logic devices manufactured by
// Intel and sold by Intel or its authorized distributors.  Please
// refer to the applicable agreement for further details.

// *****************************************************************************
// This file contains a Verilog test bench template that is freely editable to  
// suit user's needs .Comments are provided in each section to help the user    
// fill out necessary details.                                                  
// *****************************************************************************
// Generated on "07/16/2023 17:23:03"
                                                                                
// Verilog Test Bench template for design : pwm
// 
// Simulation tool : ModelSim-Altera (Verilog)
// 

`timescale 1 ps/ 1 ps
module pwm_vlg_tst();
// constants                                           
// general purpose registers
reg eachvec;
// test vector input registers
reg clk;
reg rst_n;
// wires                                               
wire led;

// assign statements (if any)                          
pwm i1 (
// port map - connection between master ports and signals/registers   
	.clk(clk),
	.led(led),
	.rst_n(rst_n)
);
initial                                                
begin                                                  
// code that executes only once                        
// insert code here --> begin                          
                                                       
// --> end                                             
$display("Running 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

修改后:

// Copyright (C) 2018  Intel Corporation. All rights reserved.
// Your use of Intel Corporation's design tools, logic functions 
// and other software and tools, and its AMPP partner logic 
// functions, and any output files from any of the foregoing 
// (including device programming or simulation files), and any 
// associated documentation or information are expressly subject 
// to the terms and conditions of the Intel Program License 
// Subscription Agreement, the Intel Quartus Prime License Agreement,
// the Intel FPGA IP License Agreement, or other applicable license
// agreement, including, without limitation, that your use is for
// the sole purpose of programming logic devices manufactured by
// Intel and sold by Intel or its authorized distributors.  Please
// refer to the applicable agreement for further details.

// *****************************************************************************
// This file contains a Verilog test bench template that is freely editable to  
// suit user's needs .Comments are provided in each section to help the user    
// fill out necessary details.                                                  
// *****************************************************************************
// Generated on "07/16/2023 17:23:03"
                                                                                
// Verilog Test Bench template for design : pwm
// 
// Simulation tool : ModelSim-Altera (Verilog)
// 

`timescale 1 ps/ 1 ps
module pwm_vlg_tst();
reg clk;
reg rst_n;

wire led;

parameter SYS_CLK = 20;
parameter TIME_US = 5;
parameter TIME_MS = 10;
parameter TIME_S = 10;

always #(SYS_CLK/2) clk = ~clk;

initial begin
	clk<=1'b0;
	rst_n<=1'b0;
	#(SYS_CLK*2);
	rst_n<=1'b1;
	#(2*(TIME_S+1)*(TIME_MS+1)*(TIME_US+1)*SYS_CLK);
	$stop;
end
pwm #(
		.COUNT1(TIME_US),
		.COUNT2(TIME_MS),
		.COUNT3(TIME_S)
	) inst_pwm (
		.clk   (clk),
		.rst_n (rst_n),
		.led   (led)
	);                               
endmodule

3、设置仿真

打开simuation选项:

在这里插入图片描述

在这里插入图片描述

添加.vt文件
在这里插入图片描述

testbench填入仿真文件中的模块名

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-a3CSTLKZ-1689500876759)(C:/Users/HP/AppData/Roaming/Typora/typora-user-images/image-20230716173546161.png)]

点击add添加即可,结果如下图

在这里插入图片描述

4、开启功能仿真

编译文件:

在这里插入图片描述

开启仿真:

在这里插入图片描述

运行后会打开modelsim

在这里插入图片描述

点击wave查看仿真

在这里插入图片描述

具体的modelsim操作这里就不进行细讲了

5、开启时序仿真

时序仿真需要运行项目

在这里插入图片描述

开启时序仿真

在这里插入图片描述

点击默认的,点击run开始运行

在这里插入图片描述

结果:

在这里插入图片描述

与功能仿真不同的是,时序仿真有延时,不能像功能仿真理想化

6、总结

modelsim在quartus中的操作相对简单,当然也可以直接在modelsim中进行操作,相对来说很复杂,得出的效果也是一样的。

参考视频:

讲的很详细:02_ModelSim软件使用讲解_哔哩哔哩_bilibili

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/760786.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【JavaEE初阶】博客系统的前端页面设计

文案分享~ 许多人终其一生都想从别人身上找寻爱&#xff0c; 以为爱是自然界的第二个太阳。 却忘了自己才是那道照耀全世界的光。 文章目录 1.博客主要组成页面2.博客列表页3.博客详情页4.博客登录页5.博客编辑页 1.博客主要组成页面 博客主要是由四个页面组成.分别是: 博…

3.3 Bootstrap 按钮组

文章目录 Bootstrap 按钮组基本的按钮组按钮工具栏按钮的大小嵌套垂直的按钮组 Bootstrap 按钮组 按钮组允许多个按钮被堆叠在同一行上。当你想要把按钮对齐在一起时&#xff0c;这就显得非常有用。您可以通过 Bootstrap 按钮&#xff08;Button&#xff09; 插件 添加可选的 J…

数据结构(2.1)——时间复杂度和空间复杂度计算

前言 &#xff08;1&#xff09;因为上一篇博客&#xff1a;数据结构&#xff08;2&#xff09;—算法对于时间复杂度和空间复杂度计算的讲解太少。所以我在次增加多个案例讲解。 &#xff08;2&#xff09;上一篇已经详细介绍了&#xff0c;为什么我们的算法要使用复杂度这一个…

Docker部署jar包运行

目录 场景 方法 运行 场景 springboot项目,打包成jar包&#xff0c;想要放到docker中运行 这种方式就是运行一个jdk的容器&#xff0c;然后挂载其中的目录到宿主机&#xff0c;然后运行之后&#xff0c;就可以将需要运行的jar放在宿主机的挂载目录下&#xff0c;然后每次…

匈牙利算法解决英雄配色问题

匈牙利算法解决英雄配色问题 最近在开发中遇到了这种情况&#xff0c;策划要为每个英雄去做配色&#xff0c;一个英雄在表中可能有多个配色&#xff08;可能重复&#xff09;&#xff0c;每次对局要选出五个英雄并让他们的颜色不同 (实际不是这个&#xff0c;简化成的这个需求)…

nacos面经详解

1 为什么要懂nacos的详细原理&#xff1f; 只要你简历写过你用过nacos&#xff0c;则大厂&#xff08;阿里&#xff09;&#xff0c;尤其是使用过这款产品的大中厂&#xff0c;基本必问其中的原理。里面的设计理念还有很多分布式系统的原理值得学习和深究。 2 分布式理论基础…

进制转换详解(解释原理简单易懂)

前言&#xff1a;在网上看了许多篇关于不同进制之间如何转换的文章&#xff0c;包括很多浏览量上万的博客。大多都只是把转换的规则罗列了出来&#xff0c;例如十进制转二进制&#xff0c;可能大家都知道方法&#xff0c;“除以2反向取余数&#xff0c;直到商为0”。应用该方法…

黎曼猜想的验证

11 for n 1 : 100000 sum sum cos(14.134725*log(n))/(n^(-0.5)) end sum -1.1151e06

IDEA设置自动导包功能

IDEA设置自动导包功能 选择File--Settings--Edotor-General-Auto Import&#xff0c;勾选上下图中的选项后点击 OK 即可。导包无忧~~ Add unambiguous imports on the fly&#xff1a;自动导入不明确的结构 Optimize imports on the fly&#xff1a;自动帮我们优化导入的包

vep加密视频破解转换翻录为mp4教程

可能有很多人都没有听说过这个视频格式&#xff0c;这是大黄蜂云课堂播放器所独有的格式&#xff0c;只有通过该播放器才能够打开这个加密的视频&#xff0c;安全系数很高&#xff0c;但也极大的限制了一个视频的传播和播放。如果我们在网络上下载了vep格式的视频&#xff0c;可…

消息队列总结(2)- RabbitMQ Kafka RocketMQ运行架构

目录 1 RabbitMQ 1.1 工作原理 1.2 名词解释 1.3 交换机的几种类型 2 Kafka 2.1 工作原理 2.2 基本概念 3 RocketMQ 3.1 工作原理 3.2 基本概念 4 RabbitMQ & Kafka & RocketMQ的差异 5 参考文档 1 RabbitMQ 1.1 工作原理 1.【消息生产】生产者&#xff0…

TMS FNC Core Crack

TMS FNC Core Crack 跨框架核心层&#xff0c;用于创建丰富的可视化和非可视化组件。 特点 JSON读、写和解析功能 Base64和URL编码和解码 组件持久性 撤消/恢复管理器 数字、字母数字字符集的验证 消息、文件打开和保存对话框 轻松访问应用程序和文档文件夹 打开文件和URL 位图…

非对称加密算法关于公钥和私钥

公钥和私钥成对出现 公开的密钥叫公钥&#xff0c;只有自己知道的叫私钥 用公钥加密的数据只有对应的私钥可以解密 用私钥加密的数据只有对应的公钥可以解密 如果可以用公钥解密&#xff0c;则必然是对应的私钥加的密 如果可以用私钥解密&#xff0c;则必然是对应的公钥加的密 …

leetcode 17 电话号码的字母组合

题目描述&#xff1a; 给定一个仅包含数字 2-9 的字符串&#xff0c;返回所有它能表示的字母组合。答案可以按任意顺序返回。 给出数字到字母的映射如下&#xff08;与电话按键相同&#xff09;。注意 1 不对应任何字母。 思路&#xff1a; 从示例上来说&#xff0c;输入"…

第十七章:Dual Attention Network for Scene Segmentation ——双重注意力网络用于场景分割

0.摘要 在本文中&#xff0c;我们通过基于自注意机制捕捉丰富的上下文依赖来解决场景分割任务。与以往通过多尺度特征融合来捕捉上下文的方法不同&#xff0c;我们提出了一种双重注意力网络&#xff08;DANet&#xff09;&#xff0c;以自适应地将局部特征与全局依赖性相结合。…

.net6中WPF的串口通信和USB通信

之前写过串口通信&#xff0c;不过是winform的。 c#使用串口进行通信_c# 串口通信_故里2130的博客-CSDN博客 今天说一下&#xff0c;.net6中wpf的串口通信和USB通信&#xff0c;在工控行业中&#xff0c;这2种的方式非常多&#xff0c;还有网口通信&#xff0c;它们都是用来和…

TypeScript基础教程

ts与js区别 TypeScript is a syntactic sugar for JavaScript. TypeScript syntax is a superset of ECMAScript 2015 (ES2015) syntax. Every JavaScript program is also a TypeScript program. 语言层面&#xff1a;JavaScript和TypeScript都是ECMAScript&#xff08;ECMA-2…

【布局优化】基于遗传算法的车间布局优化 车间设施布局优化【Matlab代码#50】

文章目录 【获取资源请见文章第5节&#xff1a;资源获取】1. 车间布局优化2. 基于GA的布局优化模型3. 部分代码展示4. 仿真结果展示5. 资源获取 【获取资源请见文章第5节&#xff1a;资源获取】 1. 车间布局优化 车间设施布置的规划一直是工业工程领域不断研究和探索的内容&am…

【2023江西省研究生数学建模竞赛】第二题 国际“合作-冲突”的演化规律研究 80页论文及Python代码

【2023江西省研究生数学建模竞赛】第二题 国际“合作-冲突”的演化规律研究 80页论文及Python代码 相关链接 【江西省研究生数学建模竞赛】第一题 蒸汽发生器倒U型管内液体流动 70页论文及MATLAB代码 【江西省研究生数学建模竞赛】第一题 蒸汽发生器倒U型管内液体流动 70页论…

<数据结构>并查集

目录 并查集概念 合并 查找集合的数量 并查集类代码实现 并查集概念 并查集和堆一样&#xff0c;都是通过数组来实现树的节点映射&#xff0c;不过并查集作用是&#xff0c;把一堆数据分为不同的几个小集合 不过并查集是森林的概念&#xff0c;并查集的学习可以帮助我们去更…