VIVADO时序分析练习

VIVADO时序分析练习

时序分析在FPGA设计中是分析工程很重要的手段,时序分析的原理和相关的公式小编在这里不再介绍,这篇文章是小编在练习VIVADO软件时序分析的笔记,小编这里使用的是18.1版本的VIVADO。

这次的练习选择的是ZYNQ的芯片,原本工程是工作在100MHz的时钟,但是作为练习,我们可以把时钟调到一个极限的程度来进行优化。

首先,打开一个工程,更改一下时钟频率,使得工程能够有一些时序问题,我们再通过时序分析的方法对它进行优化。我们这里把原本的100M时钟改成了200M时钟,具体步骤如下:

  • :更改时钟之后进行综合,并打开timing analysis

  • :通过report clock可以查看全局时钟树的情况

  • :通过report timing summary可以看到出现了12个时序问题,总的时序问题达到9个ns多,说明时序问题已经比较糟糕了

  • :在timing窗口里面可以查看相关的时序违例信息,这里只显示了10个,可以在report timing summary中选择要查看的个数,比如选择100个

  • :我们可以打开setting ->synthesis,更改strategy里面VIVADO提供的优化strategy来进行相关的优化,不同的strategy对应不同的综合模式

    也可以在design runs里面,右键点击相应的sunth->change run settings来修改不同的综合方案

  • :这里我们选择Flow_PerfOptimized_high来进行综合(也可以一个一个的尝试),综合完成之后,可以看到,违例的现象优化到了8条,总的违例时间减少了1ns。

  • :小编在尝试各种综合方案之后,发现并不能够优化很好,所以我们开始进行下一步操作——Run Implementation,看看通过Implementation VIVADO能够把时序问题优化到什么程度。

完成布局布线之后,可以看到先前的时序问题通过布局布线已经被优化了,现在没有了时序问题,但是最差的余量只有0.152ns,这个结果并不是很理想。

  • :通过查看时序路径详情,可以看到时序的余量很不理想

那么我们可以通过修改Implementation的方案来进行优化,在settings里面找到Implementation的strategy,选择不同的方案进行尝试

  • :这里我们选择Performance Explore进行尝试,可以看到通过更改Implementation的strategy,时序被优化了,最差的余量达到了0.556ns,比之前更好了,但是似乎还可以再进行优化,需要不断的尝试,从而找到最优的结果。

  • :在synthesis的strategy和Implementation的strategy里面可以看到其他的一些选项,都可以尝试,比如在Implementation的strategy里面有一个Flow quick的模式,选择Flow quick模式对比之前的模式可以发现,VIVADO在这个模式下进行布局布线会快很多,但是时序也变的一塌糊涂。小编认为这种模式可以在一些比较大的工程里,比较赶时间的情况下尝试使用。

  • 十一:同样的,我们还可以通过report power来查看功耗情况,并通过更改一些策略进行优化,其他的一些功能小编也在探索中。

原文地址:https://www.cnblogs.com/chinkwo/p/9001853.html

时间: 2024-08-30 04:43:09

VIVADO时序分析练习的相关文章

Vivado时序分析方法——report_design_analysis(一)

report_design_analysis可以用来对时序问题的根本原因进行分析,进而寻找合适的时序优化方案,达到时序收敛的目的. 一.分析时序违例路径 Vivado工具会优先对最差的路径进行时序优化,最终并不一定成为critical path.因此分析时序违例路径时,并不仅仅关注critical 路径.以下tcl命令可以报告最差的50条setup timing path. report_design_analysis -max_paths 50 -setup 时序报告如下图所示: 首先关注逻辑

VIVADO时序约束及STA基础

一.前言 无论是FPGA应用开发还是数字IC设计,时序约束和静态时序分析(STA)都是十分重要的设计环节.在FPGA设计中,可以在综合后和实现后进行STA来查看设计是否能满足时序上的要求.本文阐述基本的时序约束和STA操作流程.内容主要来源于<Vivado从此开始>这本书,我只是知识的搬运工. 二.时序约束与XDC脚本 时序约束的目的就是告诉工具当前的时序状态,以让工具尽量优化时序并给出详细的分析报告.一般在行为仿真后.综合前即创建基本的时序约束.Vivado使用SDC基础上的XDC脚本以文本

Vivado Zynq 学习

目标 --------------------------------------------------- 视图菜单 (Vivado SDK) 文件目录 文件格式 流程:工程 -> 非工程 -> 脚本 Create Hardware Design Create Hardware IP Use    Hardware IP:  ARM AXI USB DMA RAM CLK RST Create Software Design 方法 ------------------------------

Vivado增量式编译

Vivado 中的增量设计会重新利用已有的布局布线数据来缩短运行时间,并生成可预测的结果.当设计有 95% 以上的相似度时,增量布局布线的运行时间会比一般布局布线平均缩短2倍.若相似度低于80%,则使用增量布局布线只有很小的优势或者基本没有优势. 当设计进行到后期,每次运行改动很小,在开始后端实现前读入的设计网表具有较高相似度的情况下,推荐使用 Vivado 的增量布局布线功能.运行增量流程的前提是有一个已经完成布局布线的参考设计检查点(Design Checkpoint, DCP)文件,并以此

Timequest Timing Analyzer进行时序分析(二)

四.用TimeQuest对DAC7512控制器进行时序分析 在对某个对象下时序约束的时候,首先要能正确识别它,TimeQuest会对设计中各组成部分根据属性进行归类,我们在下时序约束的时候,可以通过命令查找对应类别的某个对象. TimeQuest对设计中各组成部分的归类主要有cells,pins,nets和ports几种.寄存器,门电路等为cells:设计的输入输出端口为ports:寄存器,门电路等的输入输出引脚为pins:ports和pins之间的连线为nets.具体可以参照下图(此图出自Al

Timequest Timing Analyzer进行时序分析(三)

上面已经把DAC7512控制器中所有的时钟都创建好了.下面我们再额外讨论一下关于时钟属性方面的一些问题和在做时序分析时的处理方法.对于具有单一时钟的系统,设计和时序分析都相对简单.但是现在很多设计都有多个甚至几十个时钟乃至更多的时钟.比如说DAC7512控制器,在设计中用到的时钟实际上是有3个,CLK25M,CLK50M和DA_SCLK.在对多时钟设计进行时序分析的时候,我们首先要搞清楚各时钟之间的关系. 当设计中有多个时钟时,时钟之间可能存在三种关系,分别是同步,异步和互斥.如果两个或者多个时

Vivado的helloword程序(一):硬件工程部分

硬件平台:ZedBoard 软件平台:vivado2013.3 本示例通过综合.实现,生成比特流,发送到SDK实现. 启动vivado并且创建一个项目 根据提示操作一步步创建新项目的时候记得选择RTL Project 板子选择ZedBoard,其他默认. 创建一个IP综合设计 在IP Integrator中选择Create Block Design 在Create Block Design弹出页,为IP子系统设计定义个名字 在IP子系统中,在中间的Diagram中选择Add IP 在搜索页,输入

vivado与modelsim的关联以及器件库编译

vivado软件中也自带仿真工具,但用了几天之后感觉仿真速度有点慢,至少比modelsim慢挺多的.而modelsim是我比较熟悉的一款仿真软件,固然选它作为设计功能的验证.为了将vivado和modelsim关联,需要进行一些设置,下面一一介绍. 一.在vivado中设置modelsim(即第三方仿真工具)的安装路径.在vivado菜单中选择“Tools”——>“Options...”,选择“General”选项卡,将滚动条拉倒最底部,在“QuestaSim/ModelSim install

vivado编译出错 [Synth 8-729] [Synth 8-787]

打开vivado工程后,发现右上角如下图所示: 重新编译这两个ip核后,对整个工程synthesis,工程报错 [Synth 8-729] Failed to open './.Xil/Vivado-4460-WIN-QGJR3VNA4GQ/realtime/tmp/25F5B000.rtd.straps.rtd': No such file or directory [Synth 8-787] cannot access rtd files in './.Xil/Vivado-4460-WIN