modelsim仿真基本流程
好久没再用过modelsim,都忘的一干二净了。刚换了份工作,又要重新拾起来,不过现在感觉modelsim的仿真其实是比较快的,很有用处。再者这么长时间老是学了忘,忘了再学,觉得真浪费时间,平时确实应该好好总结下的,关于modelsim的仿真这一次一定要系统的总结出来,顺便再练下写文档的能力。
modelsim仿真方法1:用modelsim直接建立工程。
1、建工程

输入工程名,选择工程路径。

添加源文件及测试文件。

在这里为什么要选择第二项,我也不在了然的,改天再查下。

文件添加进来之后就是编译了。

如果编译通过会出现下面的对勾,如果不对当然就是XX了

下一步是仿真

选择测试脚本。另外把下面的优化去掉,不然有些信号优化就没有了,具体是怎么回事我还不明白,再查吧。

单击OK进入下面的界面,选择信号右击添加信号到wave文件中。

设置下仿真时间。就可以run了。

可以看到波形了

这个过程还是比较简单的,有些Ip的仿真却要添加库,怎样处理,在随后的modelsim仿真2中再说了。
附录:
源文件.v
module counter(
rst_n,
clk,
valid
);
parameter CNT_WIDTH = 3'd4 ;
parameter CNT_NUM = 4'd15;
input clk ;
input rst_n ;
output valid ;
reg valid;
reg [CNT_WIDTH-1:0] cnt ;
always@( posedge clk )
begin
if (rst_n == 0)
begin
cnt <= 4'd15;
end
else
begin
cnt <= cnt + 1'b1;
end
end
always@( posedge clk)
begin
if(rst_n == 0)
begin
valid <= 1'b0;
end
else if(cnt == CNT_NUM)
begin
valid <= 1'b1;
end
else
begin
valid <= 1'b0;
end
end
endmodule
测试脚本.v
module counter_tb;
reg rst_n;
reg clk;
wire valid;
counter u_counter(
.rst_n (rst_n),
.clk(clk),
.valid(valid)
);
initial
begin
#0 rst_n = 0;
clk = 0;
#100
rst_n = 1;
end
always
begin
#10 clk = ~clk;
end
endmodule
modelsim仿真基本流程的更多相关文章
- ModelSim仿真入门
ModelSim仿真入门之一:软件介绍 编写这个教程之前,为了让不同水平阶段的人都能阅读,我尽量做到了零基础入门这个目标,所有的操作步骤都经过缜密的思考,做到了详细再详细的程度. 如果您是FPGA开发 ...
- 【黑金原创教程】【Modelsim】【第一章】Modelsim仿真的扫盲文
声明:本文为黑金动力社区(http://www.heijin.org)原创教程,如需转载请注明出处,谢谢! 黑金动力社区2013年原创教程连载计划: http://www.cnblogs.com/al ...
- 45.modelsim仿真include文件
modelsim仿真include文件会出现找不到文件的情况,这是因为include文件路径有两种,一种是相对路径,另一种是绝对路径. 相对路径: 如果 ‘include "primitiv ...
- 14.quartus联合modelsim仿真
在quartus调用modelsim仿真过程中,出现了一个错误,如下所示: Check the NativeLink log file I:/Quartus11.0/Myproject/testi_n ...
- 用Modelsim仿真QuartusII综合后网表时库的添加方法(转)
这两天做综合后仿真,发现FPGA器件库又不会加了,无奈上网找方法.说起来不好意思,很早就接触Modelsim这个仿真软件了,可是没有好好琢磨.把这两天找的方法贴出来,再加上自己的理解,以后忘了可以上博 ...
- modelsim 仿真时出现无限迭代(iteration reach limitation)的原因及其解决办法
modelsim 仿真时出现无限迭代(iteration reach limitation) 出现这种故障的原因: 一般都是代码里出现的组合逻辑无限循环或者组合逻辑A产生signal_A,signa ...
- modelsim仿真时让状态机波形显示状态的名字
在使用Verilog编写有限状态机等逻辑的时候,状态机的各个状态通常以参数表示(如IDLE等).当使用ModelSim仿真的时候,状态机变量在wave窗口中以二进制编码的形式显示,如下面所示,这种显示 ...
- 用ModelSim仿真SDRAM操作
之前写了两篇关于Modelsim仿真的blog,其中模块管脚的命名可能让人觉得有些奇怪,其实不然,之前的两篇内容都是为了仿真SDRAM操作做铺垫的. 由于SDRAM的仿真过程相对比较复杂,也比较繁琐. ...
- ModelSim仿真教程
本文章详细介绍了怎样用ModelSim仿真Verilog,虽然只是很简单的一个二分频器的例子,但却正式小白入门所需要的. 本教程以ModelSim SE 10.4为例 1. 新建工程 file-> ...
随机推荐
- vue深入了解组件——插槽
一.插槽内容 Vue实现了一套内容分发的API,这套API基于当前的Web Components规范草案,将 <slot> 元素作为承载分发的内容的出口. 它允许你像这样合成组件: &l ...
- 关于gevent的一些理解(一)
前言:gevent是python的一个并发框架,以微线程greenlet为核心,使用了epoll事件监听机制以及诸多其他优化而变得高效.而且其中有个monkey类, 将现有基于Python线程直接转化 ...
- 深入理解const char*p,char const*p,char *const p,const char **p,char const**p,char *const*p,char**const p
由于没有const*运算,const实际上修饰的是前面的char*,但不能在定义时转换写成 const(char *)*p,因为在定义是"()"是表示函数. 三.深入理解7种组合 ...
- mysqldump之不老将
–add-drop-database 每个数据库创建之前添加drop数据库语句.mysqldump -uroot -p –all-databases –add-drop-database –add-d ...
- 数据文件导入mysql时出现中文乱码问题
http://www.ynpxrz.com/n773257c2024.aspx 从shell进入mysql, mysql> show variables like ‘%char%'; +---- ...
- python 刷题必备
1.判断输入的数字是否是回文数: 学习内容:把数字转成字符串 1. def is_palindrome(n): n=str(n) m=n[::-1] return n==m 2. tmp_str = ...
- JDK、JRE和JAR区别(转载)
JDK里面的工具也是用Java编写的,它们本身运行的时候也需要一套JRE,如C:/Program Files/Java/jdk1.5.x/目录下的JRE.而C:/Program Files/Java/ ...
- ubuntu中vim的设置
问题:刚安装的VIM中,backspace不能删除字符,且上下左右箭头没反应. 解决方法: sudo vi /etc/vim/vimrc.tiny 修改 set compatible为set noc ...
- Spring boot集成 MyBatis 通用Mapper
配置 POM文件 <parent> <groupId>org.springframework.boot</groupId> <artifactId>sp ...
- python之多并发socket
先看socket多并发的服务端的代码,这里是用多线程实现的多并发socketserver import socketserver # socketserver有四个基本的类,后两个不常用,这4个类处理 ...