MiZ702学习笔记11——如何使用vivado isim仿真
说到vivado的仿真确实是很有意思,不管是ISE还是Quartus都可以自己自动生成测试平台的完整构架,但是vivado不行,所有的测试代码自己写!(我反正是查了好久,都没发现vivado如何自动生成测试平台的完整构架)。
而且vivado与众不同的地方是,他的测试文件和设计文件的类型是一模一样的。不像Quartus或者ISE那样测试文件是单独的类型。
比如Quartus中测试文件都是以.vt类型的。
这也正是vivado胜人一筹的地方,他的测试文件和设计文件的类型是一模一样,这意味着vivado将不会区分测试文件和设计文件,设计的一致性得到统一。
不知道读者发现没有,设计文件新建完成后,在Design Sources和Simulation Sources中都会出现我们添加的设计文件,所以vivado
的这种设计模式,道出了一个真谛——编写测试文件(及编写TestBench),和编写设计文件别无二致,都是建模!
我们要编写的测试文件,不过是基于我们的设计文件的最顶层再次建模而已。测试文件的目的就是“给些激励”、“看些反应”如此而已。

添加仿真文件:



将仿真文件设置为顶层文件:

添加代码如下:
module sim(
); reg CLK,RSTn;
initial
begin
RSTn = ; #; RSTn = ;
CLK = ; forever # CLK = ~CLK;
end // 输出信号
wire lcd_hs;
wire lcd_vs;
wire [:]lcd_red;
wire [:]lcd_green;
wire [:]lcd_blue; // 例化vga_demo模块
vga_demo vga_demo(
.CLK(CLK),
.RSTn(RSTn),
//硬件接口
.lcd_hs(lcd_hs), //lcd horizontal sync
.lcd_vs(lcd_vs), //lcd vertical sync
//output lcd_blank, //lcd blank(L:blank)
.lcd_red(lcd_red), //lcd red data
.lcd_green(lcd_green), //lcd green data
.lcd_blue(lcd_blue) //lcd blue data
); endmodule
sim作为最顶层的文件,不需要任何输入或者输出引脚,应为他的任务只是给激励,刺激它所仿真的模块。一般情况真正需要自己写的代码其实没有多少。
文件添加完了就可以开始仿真了:

出现如下画面:

面板1显示的是工程的层次结构,当在面板1选择了一个模块后,面板2会对应变化,显示当前模块的的所以信号,这些信号都可以添加到波形显示框里观察。
一开始波形显示框里,只会显示你在顶层仿真文件中声明的信号,如果想观察其他模块内部寄存器或者引脚的值,可以通过如下方法:

这个三个按钮,用的比较多:
第一个为复位,仿真会重新开始,一般在添加了新的观察信号后使用。
第二个是run all 单击后ISIM会一直仿真知道按下暂停。根据笔者经验这个按键不要轻易按下,
一般电脑承受不起,容易卡住。所以一般会有第三个。
第三个是仿真一段时间,图中表示一次仿真20000us。相对于run all不容易卡。
MiZ702学习笔记11——如何使用vivado isim仿真的更多相关文章
- MiZ702学习笔记13——ZYNQ通过AXI-Lite与PL交互
在<MiZ702学习笔记7——尝试自制带总线IP>,我曾提到了AXI4-Lite的简单用法,驱动了下流水灯,只涉及到了写总线.今天,我想利用之前的VGA模块,将AXI4-Lite的读写都应 ...
- MiZ702学习笔记12——封装一个普通的VGA IP
还记得<MiZ702学习笔记(番外篇)--纯PL VGA驱动>这篇文章中,用verilog写了一个VGA驱动.我们今天要介绍的就是将这个工程打包成一个普通的IP,目的是为后面的一篇文章做个 ...
- Ext.Net学习笔记11:Ext.Net GridPanel的用法
Ext.Net学习笔记11:Ext.Net GridPanel的用法 GridPanel是用来显示数据的表格,与ASP.NET中的GridView类似. GridPanel用法 直接看代码: < ...
- SQL反模式学习笔记11 限定列的有效值
目标:限定列的有效值,将一列的有效字段值约束在一个固定的集合中.类似于数据字典. 反模式:在列定义上指定可选值 1. 对某一列定义一个检查约束项,这个约束不允许往列中插入或者更新任何会导致约束失败的值 ...
- golang学习笔记11 golang要用jetbrain的golang这个IDE工具开发才好
golang学习笔记11 golang要用jetbrain的golang这个IDE工具开发才好 jetbrain家的全套ide都很好用,一定要dark背景风格才装B 从File-->s ...
- Spring MVC 学习笔记11 —— 后端返回json格式数据
Spring MVC 学习笔记11 -- 后端返回json格式数据 我们常常听说json数据,首先,什么是json数据,总结起来,有以下几点: 1. JSON的全称是"JavaScript ...
- Python3+Selenium3+webdriver学习笔记11(cookie处理)
#!/usr/bin/env python# -*- coding:utf-8 -*-'''Selenium3+webdriver学习笔记11(cookie处理)'''from selenium im ...
- 并发编程学习笔记(11)----FutureTask的使用及实现
1. Future的使用 Future模式解决的问题是.在实际的运用场景中,可能某一个任务执行起来非常耗时,如果我们线程一直等着该任务执行完成再去执行其他的代码,就会损耗很大的性能,而Future接口 ...
- 《C++ Primer Plus》学习笔记11
<C++ Primer Plus>学习笔记11 第17章 输入.输出和文件 <<<<<<<<<<<<<< ...
随机推荐
- 安卓基础之Activity的生命周期
Activity的生命周期 onCreate 在Activity被创建时调用 onDesdroty 在Activity销毁时调用 onRestart 在Activity重新打开时调用 onStart ...
- [iOS] UICollectionView初始化滚动到中间的bug
转载请保留地址wossoneri.com 问题 首先看一下我之前写的demo:link demo是封装了一个控件,直接在MainViewController的viewWillAppear里初始化,并且 ...
- Jenkins 执行python脚本
操作很简单: * 最新版本的Jenkins,插件管理中下载两个python需要的插: * 重启Jenkins 任务中添加python脚本即可,点击保存时候,自动会在下图中目录生成.py文件 过程如下 ...
- c#创建文件( File.Create() )后对文件写操作出错的分析
在C#中,使用system.IO.File.Create()创建完一个文件之后,如果需要对这个文件进行写操作,会出现错误,提示你“这个文件正在被使用”. 原因是System.IO.File.Creat ...
- MySQL安全策略
0.导读 MySQL被运用于越来越多的业务中,在关键业务中对数据安全性的要求也更高,如何保证MySQL的数据安全? MySQL被运用于越来越多的业务中,在关键业务中对数据安全性的要求也更高,如何保证M ...
- HTML5学习资料
HTML5 的一些经典demo收集 Animated Books with CSS 3D Transforms 这是一个3D书本,CSS3完成 =========HTML5特效聚集网站======== ...
- python基础学习22----协程
协程,又称微线程.英文名Coroutine. 协程最大的优势就是协程极高的执行效率.因为子程序切换不是线程切换,而是由程序自身控制,因此,没有线程切换的开销,和多线程比,线程数量越多,协程的性能优势就 ...
- Markdown 进阶
目录 markdown进阶语法 内容目录 加强代码块 脚注 流程图 时序图 LaTeX公式 markdown进阶语法 内容目录 使用 [TOC] 引用目录,将 [TOC] 放至文本的首行,编辑器将自动 ...
- MySQL主从复制日常管理维护篇
日常工作中,我们需要经常进行一些监控和管理维护工作,以便能及时发现一些复制中的问题,并尽快解决,以此来保证复制能够正常工作 1.查看从库状态 MySQL [(none)]> show slave ...
- Hyper-v虚拟化
1.打开Hyper-V管理器,新建虚拟机 2.点击下一步,继续设置 3.设置虚拟机名称和存储位置,点击选择打钩,自定义路径 4.设置虚拟机运行内存 5.设置虚拟机设置好的网络 6.创建虚拟磁盘 7创建 ...