ModelSim软件怎么理解
发表于:2025-02-04 作者:千家信息网编辑
千家信息网最后更新 2025年02月04日,ModelSim软件怎么理解,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。1,ModelSim软件介绍Mentor 公司
千家信息网最后更新 2025年02月04日ModelSim软件怎么理解1,ModelSim软件介绍
Mentor 公司的 ModelSim 是工业界最优秀的语言仿真器,它支持 XP、Win7 和 Linux 系统,是单一内核支持 VHDL 和 Verilog 混合仿真的仿真器。它采用直接优化的编译技术、Tcl/Tk 技术、单一内核仿真,不仅编译仿真速度业界最快、编译的代码与平台无关,而且便于保护 IP 核。它还提供了最友好的调试环境,具有个性化的图形界面和用户接口,为用户加快调试提供强有力的手段,它是 FPGA/ASIC 设计的首选仿真软件。 Modelsim 有几种不同的版本:SE(System Edition)、DE(Deluxe Edition)、PE(Personal Edition)和 OEM(Orignal Equipment Manufactuce,即原始设备制造商),其中 SE 是最高级的版本,而集成在 Actel、Atmel、Altera、Xilinx 以及 Lattice 等 FPGA 厂商设计工具中的均是OEM 版本。我们这里选择使用的是 Altera 公司提供的 OEM 版本,也就是我们常说的 ModelSim AE(即:ModelSim-Altera Edition)。下面我们给出 Altera 官方对 ModelSim AE 的介绍,如图 所示。 该图中我们可以看出,Modelsim Altera 是有两个版本的,一个是免费版本(ModelSim-Altera Starter Edition);一个是收费版本(ModelSim-Altera Edition)。由于图中给出了收费版本和免费版本的区别,所以我们就不在进一步介绍它们了,这里我们说一下,ModelSim-Altera 版软件与 ModelSim PE/DE 软件的区别,ModelSim-Altera 版软件仅支持 Altera 门级库。ModelSim-Altera 版软件包括 ModelSim PE 的基本特性,包括了行为仿真、HDL 测试台和Tcl 脚本。但是,ModelSim-Altera 版软件并不支持 ModelSim PE 的可选特性,ModelSimAltera 版的仿真性能要低于 ModelSim PE/DE 软件。 2,ModelSim使用流程 介绍完了 ModelSim 软件,接下来我们再来介绍一下 ModelSim 使用流程。在介绍 ModelSim的使用流程之前,我们需要对给大家说明一下仿真的两个概念,仿真一般分为前仿真与后仿真:(1) 前仿真也就是纯粹的功能仿真,主旨在于验证电路的功能是否符合设计要求,其特点是不考虑电路门延迟与线延迟。(2) 后仿真也就是时序仿真。是指电路已经映射到特定的工艺环境下,综合考虑电路的路径延迟与门延迟的影响,验证电路在一定时序条件下是否满足设计构想的过程。说完了仿真的两个概念,接下来我们在来说一说 ModelSim 的使用,ModelSim 的使用主要分为两种情况,第一种就是通过 Quartus II 软件调用我们的 ModelSim 来进行仿真,这种情况也就是我们通常所说的自动仿真。第二种情况就是直接打开 ModelSim 进行仿真,不经过我们的Quaruts II 软件,这种情况也就是我们通常所说的手动仿真。不管是自动仿真还是手动仿真,它们的都遵循以下 5 个步骤: (1) 新建工程。 (2) 编写 Verilog 仿真文件。 (3) 编写 Testbench 仿真文件。 (4) 开始功能仿真。 (5) 开始时序仿真。 当我们执行了仿真以后,ModelSim 软件会根据我们的设计文件和仿真文件生成波形图,最后,我们观察波形并判断设计的代码功能是否正常。前仿真完成以后,接下来我们就需要进行后仿真了,后仿真与前仿真的步骤大体相同,只不过中间需要添加仿真库、网表和延时文件等步骤。这里我们要注意的是,对于时序要求不严格的小规模设计,我们一般只进行功能仿真。 【注】文章使用的源码和testbench代码如下: 源码: testbench:
ModelSim软件怎么理解,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
module Verilog_First
(
//输入端口
CLK_50M,RST_N,
//输出端口
LED1
);
//---------------------------------------------------------------------------
//-- 外部端口声明
//---------------------------------------------------------------------------
input CLK_50M; //时钟的端口,开发板用的50M晶振
input RST_N; //复位的端口,低电平复位
output LED1; //对应开发板上的LED
//---------------------------------------------------------------------------
//-- 内部端口声明
//---------------------------------------------------------------------------
reg [26:0] time_cnt; //用来控制LED闪烁频率的定时计数器
reg led_reg; //用来控制LED亮灭的显示寄存器
//设置定时器的时间为1s,计算方法为 (1*10^6)us / (1/50)us 50MHz为开发板晶振
//parameter SET_TIME_1S = 27'd49_999_999;
parameter SET_TIME_1S = 27'd49 ; //用于仿真
//---------------------------------------------------------------------------
//-- 逻辑功能实现
//---------------------------------------------------------------------------
//时序电路,实现1s的定时计数器
always @ (posedge CLK_50M or negedge RST_N)
begin
if(!RST_N) //判断复位
time_cnt <= 27'h0; //初始化time_cnt值
else if(time_cnt == SET_TIME_1S) //判断1s时间
time_cnt = 27'h0; //如果到达1s,定时计数器将会被清零
else
time_cnt = time_cnt + 27'h2;//如果未到1s,定时计数器将会继续累加
end
//---------------------------------------------------------------------------
//时序电路,判断时间,控制LED的亮或灭
always @ (posedge CLK_50M or negedge RST_N)
begin
if(!RST_N) //判断复位
led_reg <= 1'b0; //初始化led_reg值
else if(time_cnt == SET_TIME_1S) //判断1s时间
led_reg = ~led_reg; //如果到达1s,显示寄存器将会改变LED的状态
else
led_reg = led_reg; //如果未到1s,显示寄存器将会将保持LED的原状态
end
assign LED1 = led_reg; //最后,将显示寄存器的值赋值给端口LED1
endmodule
`timescale 1 ps/ 1 ps
module Verilog_First_vlg_tst();
reg CLK_50M;
reg RST_N;
// wires
wire LED1;
// assign statements (if any)
Verilog_First i1 (
// port map - connection between master ports and signals/registers
.CLK_50M(CLK_50M),
.LED1(LED1),
.RST_N(RST_N)
);
initial
begin
#0 CLK_50M = 1'b0;
#10000 RST_N = 1'b0;
#10000 RST_N = 1'b1;
#10000000 $stop;
end
always #10000
begin
CLK_50M = ~CLK_50M;
end
endmodule
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。
仿真
软件
版本
电路
端口
设计
功能
时序
也就是
文件
支持
寄存器
情况
时间
计数器
延迟
接下来
两个
代码
步骤
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
阿泰斯特 nba数据库
上海设备报修管理软件开发
日本驻场软件开发
什么是pe服务器
软件开发工程量如何确认
明日之后莱文市的服务器
网络安全的定义和主要目标
统计大数据库建立研究
网络安全软硬件销售
数据库数据特别多负载
我的世界服务器红石变慢
现在网络技术越来越发达英文
查询数据库某一列数据
服务器泄漏风险
数据库 insert频繁
国内专业的分布式内存数据库
新西兰 软件开发
猫咪服务器错误500什么意思
安徽卫视网络安全宣传访谈节目
个人用服务器app
四年级网络安全内容
网络安全分为那四种安全
列举影响网络安全的因素
数据库尚未完成建账初始化
2019漳浦网络安全竞赛
黎明网络安全
设计数据库的三步骤
酒店网络安全重保期间工作总结
中专生可学网络安全吗
东莞自动炒币机器人软件开发费用