Vivado

Vivado使用技巧(21)——仿真中的Debug特性

源代码级别调试
Vivado Simulator提供了在仿真过程中debug设计的特性,通过为源代码添加一些可控制的执行条件来检查出问题的地方。总的来说有三种调试方法:

1.使用Step逐行调试
Step命令一次只执行HDL代码中的一行,从而验证和调试设计。运行仿真后,点击Run->Step或工具栏中的Step可执行该命令。Restart可以将时间复位到TestBench的开始。当前执行的代码会高亮显示并且前方有箭头指示:

运行Step后会打开与顶层设计单元相关的HDL文件窗口,在窗口名称上右键->新建水平分组或新建垂直分组即可同时查看HDL和波形窗口。

2.使用断点(breakpoint)调试

Vivado使用技巧(20)——Waveform功能详解

使用波形配置文件

Vivado Simulator允许用户自定义波形显示方式,当前的显示状态称作波形配置。波形配置可以保存为WCFG文件,供以后使用。一个波形配置对应一个Wave窗口,没有保存的波形配置显示为untitled。打开仿真后,File菜单中有与波形配置相关的指令:

这些控制功能依次是:

  • New Waveform Configuration:创建一个新的波形配置,Vivado会打开一个新波形窗口,但是不包含任何HDL对象,设计者从Scope或Object窗口中人工添加;
  • Open Waveform Configuration:打开配置文件同时打开一个波形窗口,会显示存储在WCFG文件中对象的波形数据;
  • Saving a Wave Configuration:保存当前波形配置到WCFG文件中。
  • Vivado使用技巧(19)——使用Vivado Simulator

    Vivado Simulator基本操作
    Vivado Simulator是一款硬件描述语言事件驱动的仿真器,支持功能仿真和时序仿真,支持VHDL、Verilog、SystemVerilog和混合语言仿真。点击运行仿真后,工具栏中显示了控制仿真过程的常用功能按钮:

    这些控制功能依次是:

  • Restart:从0时刻开始重新运行仿真;
  • Run All:运行仿真一直到处理完所有event或遇到指令指示停止仿真 ;
  • Run For:按照设定的时间运行仿真,每点击一次都运行指定时长;
  • Step:运行仿真直到下一个HDL状态;
  • Break:暂停仿真运行;
  • Relaunch Simulation:重新编译仿真源文件且restart仿真,当修改了源代码并且保存了文件后,只需要Relaunch即可,而不必关闭仿真再重新打开运行。
  • Scope窗口

    Vivado使用技巧(18)——仿真功能概述

    仿真功能概述

    仿真FPGA开发中常用的功能,通过给设计注入激励和观察输出结果,验证设计的功能性。Vivado设计套件支持如下仿真工具:Vivado Simulator、Questa、ModelSim、IES、VCS、Rivera-PRO和Active-HDl。

    Vivado的仿真流程如下图所示:

    仿真可以在设计阶段的不同时间点进行,主要包括如下三个阶段:
    RTL级行为仿真:在综合和实现前便可验证设计,用来检查代码语法和验证代码像设计者想要的功能一样工作,早期的行为级仿真可以尽早发现问题;
    综合后仿真:使用综合网表仿真,验证综合后设计满足功能需求。该阶段仿真不太常用,可以用时序仿真(timing simulation)来估计时间;功能仿真(functional sumulation)由层次化的网表组成,最底层由Xilinx原语构成;

    Vivado下的仿真入门

    本文通过一个简单的例子,介绍Vivado 下的仿真过程。主要参考了miz702的教程,同时也参考了Xilinx的ug937,  xapp199.。

    我的软件平台是Vivado 2015.4, 硬件平台是黑金的AC7010, Zynq 7000, 其实与平台关系不大。

    本文分为四部分:工程的建立,测试代码,仿真图形输出,更复杂点的例子。

    工程和源码下载链接: 链接:http://pan.baidu.com/s/1gflHSdH 密码:fpi5

    1:工程的建立:

    打开Vivado 软件,
    并点击新建工程, New Project,并点击Next

    出现如图界面, 输入工程名和路径,我这里是qim

    【视频】Vivado 报告介绍

    生成并使用 Vivado 时序报告分析不成功的时序路径。

    Vivado使用技巧(17)——创建IBIS模型

    IBIS模型概述
    IBIS是一种器件模型标准,允许使用行为模型进行开发,这些行为模型描述了器件内部互联的信号。IBIS模型保留专用的电路信息,不像SPICE这种结构化模型,IBIS模型是基于测量或电路仿真得到的 V/I曲线数据。

    每个IOB标准都有IBIS模型,器件的所有I/O标准的IBIS模型组合在一起便是IBIS文件。IBIS文件还包含器件中所使用的管脚列表,这些管脚连接到配置为支持特定I/O标准的IOB上,该标准会将管脚与特定的IBIS buffer模型关联在一起。

    IBIS标准规定了输出文件的格式,包括一个文件头部分和一个组件描述部分。IBIS开源论坛小组(www.ibis.org)开发了Golden Parser这款工具,可以通过检查IBIS数据格式中的语法来验证IBIS模型文件。

    当使用Vivado IDE导出IBIS模型时,软件会生成一个.ibs文件,其中包含了:设计使用管脚列表、FPGA内部与管脚连接的信号、与管脚连接的IOB的IBIS buffer模型。

    导出IBIS模型

    采用Vivado 配置xilinx GTX的SATA设计

    从Vivado开始,配置GTX的时候,多了一个SATA协议支持,但有些小地方还需要自己另外设置。整理了一下,分享给大家。

    首先打开Transceivers wizard:

    打开页签,线速率和参考时钟选择,在协议里面选择SATA2或者SATA3,设置参考时钟。

    选择编码和时钟设置,设置外部数据宽度为32位,内部40bit,8B/10B编码,使能收发缓存,全部使用发送时钟。

    Vivado使用技巧(16)——SSN转换噪声分析

    SSN概述
    SSN(Simultaneously Switching Noise)分析可以估计I/O Bank中管脚在同时转换输出状态时对其它输出端口造成的干扰。这是一个常见的问题,许多总线有大量的位宽,当总线数据有多位同时变化时,很容易在其它I/O上产生噪声。比如数字电路设计中倾向于使用格雷码编码,正是因为两个相邻的数字用格雷码表示时只有1bit的差异,使得同时转换噪声最小。

    SSN分析会将I/O Bank的规格电气特性考虑在估算中,以获得更准确的模型封装对SSN的影响。我们知道FPGA中将I/O隔离地分布在多个I/O Bank中,每个I/O Bank都有独立的电源分布和独立的同时转换响应。并且,不同的电源分布网络对噪声有不同的响应,因此设计者需要理解不同I/O标准、设计中用到的I/O数量、FPGA电源系统对转换响应的影响。

    Xilinx通过三维提取和仿真刻画了所有Bank的特征,这些信息会用于SSN分析中,预测转换对系统电源网络和I/O Bank中其它输出管脚的影响。SSN分析仅分析输出信号和双向端口的输出状态,计算中会忽略输入信号。SSN分析可以帮助设计者发现设计中潜在的噪声问题。

    运行SSN分析
    不是所有的FPGA都支持SSN分析,使用下面Tcl命令可以参看支持情况:

    Vivado使用技巧(15)——DRC设计规则检查

    在I/O和时钟规划之后,需要验证设计以确保其满足设计需求。Vivado提供了两种验证途径:DRCs用来检查设计违反规则情况;SSN分析用来估计转换噪声等级。本文将介绍DRCs,本系列第16篇介绍了SSN分析。

    运行DRCs
    DRCs可以说是管脚规划中最严苛的一个步骤,DRCs会使用一套设计检查项(通常称作rule deck),来检查当前设计是否违反这套规则。本文将以运行DRCs检查I/O端口和时钟逻辑为例。

    打开某一阶段的设计,点击Tools->Report->Report DRC,或在Flow Navigator中直接点击Report DRC,弹出如下窗口:

    Results name规定了显示DRC结果的窗口名称;Output file可以选中一个保存DRC结果的文件。Rule Decks中选择用于DRCs的rule deck,一个rule deck便是一套设计规则。可以同时选择多个rule deck,同一个规则也可以包含在多个rule deck中。

    同步内容