文章目录

  • 前言
  • 一、Vivado Simulato介绍
  • 二、功能仿真需要的文件
  • 三、具体步骤

文章目录

  • 前言
  • 一、Vivado Simulato介绍
  • 二、功能仿真需要的文件
  • 三、具体步骤

前言

本章关于vivado仿真软件的使用介绍


提示:以下是本篇文章正文内容,下面案例可供参考

一、Vivado Simulato介绍

Vivado Simulato是我们的仿真模拟器,用于硬件调试和判断代码正确性。
Vivado 设计套件内部集成了仿真器Vivado Simulator,能够在设计流程的不同阶段运行设计的功能仿真和时序仿真,结果可以在Vivado IDE 集成的波形查看器中显示。Vivado 还支持与诸如ModelSim、Verilog Compiler Simulator (VCS)、Questa Advanced Simulator 等第三方仿真器的联合仿真。

二、功能仿真需要的文件

1.设计HDL 源代码,也被称为UUT(Unit Under Test):可以是VHDL 语言或Verilog 语言,既可以是设计的顶层模块,也可以是设计的下层子模块。
2.测试激励代码,也被称为TestBench:根据UUT 顶层输入/输出接口的设计要求,来产生顶层输入接口的测试激励并监视顶层输出接口。由于不需要进行综合,书写具有很大的灵活性。
3.仿真模型/库:根据设计内调用的器件供应商提供的模块而定,如:FIFO、ADD_SUB 等。在使用Vivado Simulator 时,仿真器所需的仿真模型/库是预编译好并集成在Vivado 中的,因此不需要进行额外的预编译操作,直接加载HDL 设计和TestBench 即可执行仿真。

三、具体步骤

在Vivado IDE 中进行仿真,首先需要创建一个TestBench。我们点击“Sources”窗口中的“+”号(Add Sources 命令),在弹出的窗口中选择“Add or Create Simulation Sources”,如下图所示:

点击next,在接下来的页面中点击“Create File”,如下图所示:

在弹出的对话框中输入TestBench 的文件名“tb_led_twinkle”,如下图所示:

![](https://img-blog.csdnimg.cn/63220601fd534f6e859f21f0c1cfa3ab.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6I-c5piv5Y6f572q77yM5oiR5pyJ572q,size_9,color_FFFFFF,t_70,g_se,x_16![在这里插入图片描述](https://img-blog.csdnimg.cn/241644ba368d4bdcbda891b83f9cf261.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6I-c5piv5Y6f572q77yM5oiR5pyJ572q,size_14,color_FFFFFF,t_70,g_se,x_16

TestBench 源文件名称的前缀“tb_”可以用来向用户示意:该源文件是一个TestBench 源文件,仅用于
仿真,并不能用于设计的综合和实现。建议大家按照这种规范来创建TestBench,以免设计源文件和仿真源
文件相混淆。
点击OK,然后直接点击“Finish”即可,如下图所示:

在弹出的自动定义模块窗口中我们直接点击OK 即可,结束TestBench 源文件的创建,如下图所示:

此时我们就可以在Source 窗口中看到刚刚创建的TestBench,双击打开它后发现其模块内部什么都没有定义,如下图所示:

然后写入test bench的代码

`timescale 1ns / 1ps //仿真时间单位/仿真时间精度module tb_led_twinkle();reg sys_clk;reg sys_rst_n;wire [1:0]led;initial beginsys_clk = 1'b0;sys_rst_n = 1'b0;#200sys_rst_n = 1'b1;endalways #10 sys_clk = ~sys_clk;//生成时钟led_twinkle u_led_twinkle(.sys_clk          (sys_clk),  //系统时钟.sys_rst_n        (sys_rst_n),  //系统复位,低电平有效.led           (led)   //LED灯);    endmodule

保存之后,因为仿真主要看的是逻辑功能,所以有时候为了快一点,可以先在源代码里修改一下。

在“Flow Navigator”窗口中点击“Run Simulation”并选择“Run Behavioral Simulation”,如下图所示:
Run Behavior Simulation 功能仿真

Run Post-Systhesis Functional Simulation 综合后的功能仿真

Run Post-Systhesis Timing Simulation 综合后的时序仿真

Run Post-Implementation Functional Simulation 实现后/布局布线后的功能仿真

Run Post-Implementation Timing Simulation 实现后/布局布线后的时序仿真
之后我们就进入了仿真界面,如下图所示:

(1)Scope 窗口。Scope(范围)是HDL 设计的层次划分。在Scope 窗口中,您可以看到设计层次结构。当您选择了一个Scope 层次结构中的作用域时,该作用域内的所有HDL 对象,包括reg、wire 等都会出现在“Objects”窗口中。您可以在“Objects”窗口中选择HDL 对象,并将它们添加到波形窗口中。

(2)Object 窗口。“Objects”窗口会显示在“Scopes”窗口中选择的范围内的所有HDL 仿真对象。例如,我们在Scope 窗口中选择“u_led_twinkle”,在“Objects”窗口中就会自动显示出led_twinkle 模块中所有的对象。如下图所示:

(3)波形窗口。用于显示所要观察信号的波形。若要向波形窗口添加单个HDL 对象或多个HDL 对象,在“Objects”窗口中,右键单击一个或多个对象,然后从下拉菜单中选择“Add to Wave Window”选项。例如,我们把“u_led_twinkle”模块下的“cnt”计数器添加到波形窗口中,如下图所示:

一般地,每当我们进行一次仿真时,都会把当前波形的配置信息保存下来,包括波形窗口中具有哪些信号等等,以便在下一次打开仿真器进行仿真时,继续使用上一次仿真的配置信息。我们点击波形窗口中的保存按钮,如下图所示:

之后会弹出“Save Waveform”对话框,提示用户将当前波形配置信息保存为“.wcfg”后缀的文件,且工具已经自动地输入了文件名“tb_led_twinkle_behav”,文件的保存目录也被工具自动设置为了当前的工程目录,所以我们保持其默认状态即可,直接点击“Save”。如下图所示:

注意,.wcfg 文件只是包含波形窗口的配置信息,并不包含波形的数据文件,波形的数据文件被存储在另外的文件中。

(4)仿真工具栏。仿真工具栏包含运行各个仿真动作的命令按钮,从左至右依次是:

• Restart:将仿真时间重置为零,此时波形窗口中原有的波形都会被清除。下次执行仿真时,会从0时刻重新开始。
• Run all:运行仿真,直到其完成所有事件或遇到HDL 语句中的stop或stop 或stop或finish 命令为止。注意,如果没有在TestBench 语句中加入stop或stop 或stop或finish 命令,当点击Run all 命令时,仿真器会无休止地一直仿真下去,除非用户点击仿真工具栏中的“Break”按钮来手动地结束仿真。但是,如果此时需要仿真的设计比较复杂,则仿真器在运行仿真时会耗费电脑大量的CPU 和内存资源,此时有可能会造成电脑卡顿甚至死机的情况。所以,如果设计比较复杂,且没有在TestBench 语句中加入stop或stop 或stop或finish 命令,最好不要轻易点击Run all 命令。
• Run For:运行特定的一段时间。紧随在后面的两个文本框用于设定仿真时长的数值大小和时间单位。
• Step:按步运行仿真,每一步仿真一个HDL 语句。
• Break:暂停当前仿真。
• Relaunch:重新编译仿真源并重新启动仿真。在使用Vivado 仿真器来调试HDL 设计时,您可能会根据仿真结果来对您的HDL 源代码进行修改。在修改完HDL 源代码后,可以点击Relaunch 按钮来重新加载UUT 设计和TestBench,以重新对修改后的HDL 源代码进行仿真。此时就不需要再关闭并重新打开仿真器了

在刚打开仿真器时,仿真器会首先将TestBench 中的信号加入到波形窗口中,并执行一段时长的仿真,仿真的时长由Settings 设置窗口中的参数值指定,如下图所示:

此时就可以看到波形窗口中就出现了波形,我们点击波形窗口中的显示工具栏中的“Zoom Fit”按钮,波形就会自动缩放到整个窗口,如下图所示:

然后查看之间的时间之类的。

实验笔记——Vivado仿真模拟相关推荐

  1. 光的干涉衍射计算机模拟仿真技术,实验报告之仿真(光的干涉与衍射).doc

    实验报告之仿真(光的干涉与衍射) 大学物理创新性试验 实验项目:单缝﹑双缝﹑多缝衍射现象仿真实验 专业班级:材料成型及控制工程0903班 姓 名:曹惠敏 学 号:090201097 目录 1光的衍射 ...

  2. 单片机实验笔记(汇编、Proteus仿真)(下)

    接上一条单片机实验笔记(汇编.Proteus仿真) 第五节课 第五节课 内容为驱动多位数码管.和驱动一位数码管大同小异. ORG 0000H LJMP MAINORG 0100H MAIN: MOV ...

  3. 模拟仿真最终利用计算机,基于计算机仿真模拟实验的应用分析

    计算机技术应用 t h e A p p l i c a t i o n o f C o mp u t e r T e c h n o l o g y 基于计算机仿真模拟实验的应用分析 文/吴婷 Mi ...

  4. ROS实验笔记之——基于Prometheus自主无人机开源项目的学习与仿真

    最近在公众号上看到Prometheus无人机的资料,发现里面开源了很好的无人机的仿真环境,并且有很好的教程.而本人正好在上<Introduction to Aerial Robotics> ...

  5. 计算机物理仿真模拟培养方案,中学物理仿真模拟实验.doc

    中央电大毕业设计 毕 业 论 文 专 业:计算机基础与应用 年 级:2004年春计算机本科 学 号:041060219 姓 名:倪亚非 指导老师:李征 2005年12月28日 物理仿真模拟实验 --- ...

  6. 单片机实验笔记(汇编、Proteus仿真)

    实验基础 51单片机 本门课程硬件平台为ATMEL公司的AT89C52单片机,在Proteus软件进行仿真实验. 51单片机是8位单片机.8k ROM .256bytes RAM.四个8位并行I/O口 ...

  7. 利用计算机软件模拟光栅衍射实验,光栅衍射实验的MATLAB仿真学案.doc

    届 别 2012届 学 号 200814060106 毕业设计 光栅衍射实验的MATLAB仿真 姓 名 吴 帅 系 别. 专 业 物理与电子信息工程系 应用物理专业 导 师 姓 名.职 称 姚 敏 教 ...

  8. Proteus 8微机接口仿真模拟实验,8086,8255A,DAC0832输出四种波形

    Proteus 8微机接口仿真模拟实验,8086,8255A,DAC0832输出四种波形 文章目录 Proteus 8微机接口仿真模拟实验,8086,8255A,DAC0832输出四种波形 一.设计名 ...

  9. 计算机应用虚拟仿真实验答案,虚拟仿真 实验教学+.ppt

    一 二 三 虚拟仿真实验概述 虚拟仿真实验教学 虚拟仿真实验中心建设 一 二 三 虚拟仿真实验概述 虚拟仿真实验教学 虚拟仿真实验中心建设 随着计算机.互联网等先进技术的迅速发展和大面积普及推广,虚拟 ...

最新文章

  1. 被操纵的BCE与去中心化的BCH
  2. photon四种同步方式_【Linux】多线程同步的四种方式
  3. xhtml代码 中<pre>元素简单介绍
  4. 机载计算机结构,机载计算机
  5. iOS 数据解析之使用TFHpple解析html
  6. java 107问_JAVA面试题26-107(答案)
  7. 计算机网络---ICMP、IGMP协议
  8. golang读写excel
  9. AC日记——阶乘之和 洛谷 P1009(高精度)
  10. Dorado 7 使用到的 注释
  11. Google Code checkout v8 方法
  12. iOS----------Apple id如何关闭双重认证?
  13. Http免费升级Https详细步骤【Let's Encrypt】
  14. 从ServerSwitch到SONiC Chassis:数据中心交换机技术的十年探索历程
  15. warning: LF will be replaced by CRLF in The file will hav
  16. python 计算一年内的所有周的具体日期
  17. 草莓tv 无法播放_草莓:高质量的声音,开源音乐播放器
  18. spring事务 调用同类方法,同类方法要事务不生效怎么办
  19. oracle ola_访谈和书摘:Ola Bini,“实用的JRuby on Rails Web 2.0项目”
  20. 万能显卡驱动win7_使命召唤:战区442.59驱动介绍

热门文章

  1. spring aop的@Before,@Around,@After,@AfterReturn,@AfterThrowing执行顺序
  2. java相机开发_控制相机  |  Android 开发者  |  Android Developers
  3. 中学教师计算机运用培训简报,做新时代的信息化教师:位育初中2017暑期教师培训专题报道(三)...
  4. 关于Cheat Enginee的详细使用指南
  5. Spring AOP中自我调用的问题
  6. 软件工程专业适合考软考中级哪个科目?
  7. php实现excel表格的转置
  8. 【live2D看板娘】为你的网站添加萌萌的二次元板娘,这都拿不下你?
  9. 锐龙R7 4800U和锐龙R7 4700U 性能差距
  10. 潮流计算程序(极坐标)——python