Vivado操作之时序约束介绍

这篇具有很好参考价值的文章主要介绍了Vivado操作之时序约束介绍。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、前言

二、时序约束界面

三、时序约束介绍

四、参考


一、前言

       任何一个FPGA工程都需要设置相关的时序约束,下面将介绍Vivado中如何进行时序约束操作以及各种约束的使用方法。

二、时序约束界面

        在一个工程运行到IMPLEMENTATION后,进入到左侧的Flow Navigator窗口,点击IMPLEMENTION下的Edit Constraints,右侧会出现Timing Constraints窗口,即可添加时序约束

Vivado操作之时序约束介绍

        左侧Clocks目录下点击任意一个时钟类型进行选定,双击右侧空白处将弹出对应类型时钟约束设置界面,下图示例为Set Clock Sense的设置

Vivado操作之时序约束介绍

    

        也可使用Constraints Wizard,将弹出设置时序约束的引导窗口。

三、时序约束介绍

        通过时序约束界面添加设置中可看到,时序约束可分为6大类:Clocks,Inputs,Outputs,Assertions,Exceptions,Others,本文主要介绍其中常用的时序约束

Clocks:主要关于时钟源相关的约束;

Inputs/Outputs:设置外部芯片到FPGA的时钟源输入延时,FPGA信号输出到外部芯片的输出延时

Assertions:设置数据路径检查以及总线偏斜

Exceptions:设置一些时序路径例外的约束

Others:除上述几类之外的时钟约束

Vivado操作之时序约束介绍

3.1 Clocks

3.1.1 Create Clock

        Create Clock约束为创建时钟源信号,即外部传入到FPGA的时钟信号,Clock name即为设置时钟名称,Waveform中Period为时钟周期,Rise at和Fall at为时钟上升沿,下降沿的时钟位置,Fall at减去Rise at即为时钟信号的占空比。

Vivado操作之时序约束介绍

        Source Objects是将该时钟信号约束的对象,可设置到I/O Port,Cell pins,Nets上,对于设置的对象,可在Options上输入搜查条件查找,Results中展示搜索结果,在Results中选定对象,点击右移图标即移入到Selected及时选定了约束对象

Vivado操作之时序约束介绍

        设定后同时在Create Clock窗口的Command将显示自动生成对应的约束命令,再保存生成的文件。

Vivado操作之时序约束介绍

        在Constraints中可以看到生成的约束文件time_constraints.xdc,文件内容为约束命令

Vivado操作之时序约束介绍

3.1.2 Create Generated Clock(生成时钟)

        生成时钟Generated Clock是在以Create Clock中的时钟为主时钟,生成新的时钟,优点是主时钟变化时,Generated Clock自动同步更新,一般是在时钟频率很低且扇出小时才建议使用生成时钟,原因是生成时钟一般由组合逻辑和时序逻辑生成,相对质量差。生成可以是主时钟的分频时钟或者倍频时钟,占空比可以设置。如下图

Vivado操作之时序约束介绍

         也可以通过时钟边沿来设置生成时钟,设置界面如下图

Vivado操作之时序约束介绍

对应的命令为create_generated_clock -name gen_clk -source [get_pins clk_IBUF_BUFG_inst/O] -edges {1 3 4} -edge_shift {2.0 0.0 1.0} -add -master_clock [get_clocks  "*"] [get_pins {shiftr_reg[13]/C}]

含义解释:-edge {1,3,4}即生成时钟的第1个上升沿位置,第1个下降沿位置,第2个上升沿位置分别对应源时钟的第1,3,4个变化边沿,-edge_shift的3个值为在源时钟基础上的偏移。假设源时钟clk周期为10ns,占空比为50%,从0时刻开始,统计了边沿变化的数目,-edge {1,3,4}如中间波形所示,对应了clk第1,3,4的边沿;Generate clk即为各个边沿的偏移值,分别是0+2,10+0,15+1,即为Generate clk的波形。

Vivado操作之时序约束介绍

3.1.3 Set Clock Uncertainty

        Set Clock Uncertainty可以设置时钟网络的Skew,Clock Skew为时钟偏斜,表示同一时钟或生成时钟到达不同触发器存在时差,Uncertainty applies to 可设置setup,hold,setup/hold;simple uncertainty可以设置到不同的Objects,设置Objects对象可以是Clocks,Cell pins,I/O Ports;Interclock uncertainty只能设置Clocks间的skew

设置格式如下图所示

Vivado操作之时序约束介绍

3.1.4 Set Clock Groups

        Vivado在进行时序分析时,默认所有时钟都是同步的,工程实际使用中,会存在一些时钟为异步时钟,此时当做同步时钟进行分析导致结果不准确,通过设置时钟组可以让工具不进行时序分析,下图中设置{clk1 gen_clk1}和{clk2 gen_clk2}为异步时钟组,组间的任何两个时钟间都不会进行时序分析。

Vivado操作之时序约束介绍

        同时,除了选项asynchronous,也可以设置为logically exclusive和physically exclusive,

区别是如果两组时钟不能同时存在,则使用-physically exclusive,如果是两组时钟逻辑分析上不存在交互路径,则使用-logically exclusive

Vivado操作之时序约束介绍

3.1.5 Set Input Delay/Set output Delay

        设置端口或者pin上时钟的输入或输出时延值.

Vivado操作之时序约束介绍

3.2 Exceptions

        添加时序例外路径约束可减少编译时间,降低约束的调试难度以及阻止工具优化掉一些需要的信号,常用的时序例外约束Set minimum Delay/Set maximum Delay,Set Multicycle Path,Set False Path.

3.2.1 Set minimum Delay/Set maximum Delay

         设置某些路径的最大时延或最小时延,对象可以是Cell pins,Cells,clocks,I/O port,通常使用场景如下:

1)对某些时序路径实施过约束

2)代替多周期路径约束

3)对异步跨时钟域进行set_max_

设定path delay值后,设置起点start points,中间路径Through points,终点End Points即可

Vivado操作之时序约束介绍

3.2.2 Set Multicycle Path

        设计中存在一些发起沿到捕获沿的周期非单个周期,如果按单个周期进行分析,可能出现时序违例的情况,也不符合实际工程需求,Specify path multiplier设置周期数,然后再设置起点和终点

Vivado操作之时序约束介绍

        其他Options中参数含义,-setup表示建立时间需要的周期,-hold表示保持时间需要回调的时钟周期个数,-end表示已目的时钟作为基准周期,-start表示以源时钟作为基准周期

Vivado操作之时序约束介绍

3.2.3 Set False Path

        Set False Path的作用类似Set Clock Group,对于设置了该约束的路径不会进行时序分析,主要是针对一些路径的电路功能不会发生或者路径不需要时序约束;

        常见的一些可设置False的路径:

        1)通过双触发器同步的跨时钟域路径

        2)只在上电时工作的寄存器对应的电路

        3)异步复位电路

        4)只在测试时使用的路径

设置界面如下图,设定起点终点,也可添加中间路径,

Vivado操作之时序约束介绍

                Options中可设置Setup/Hold,Rise/Fall

Vivado操作之时序约束介绍

四、参考

1、书籍《Vivado 从此开始》 高亚军文章来源地址https://www.toymoban.com/news/detail-452235.html

到了这里,关于Vivado操作之时序约束介绍的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • FPGA时序约束--实战篇(读懂Vivado时序报告)

    目录 一、新建工程 二、时序报告分析 1、打开时序报告界面 2、时序报告界面介绍 3、时序路径分析 三、总结 FPGA开发过程中,vivado和quartus等开发软件都会提供时序报告,以方便开发者判断自己的工程时序是否满足时序要求。 本文将详细介绍如何读懂Vivado时序报告,包括报告

    2024年02月12日
    浏览(32)
  • vivado 一文归纳出时序约束

    对于时序路径来说,一共有4种时序路径,如下图: (1)从上游芯片最后一级触发器的时钟发送沿有效到FPGA中第一级触发器的输入。 (2)FPGA内部从上级触发器时钟发送沿有效到下级触发器的输入。 (3)从FPGA最后一级触发器的时钟发送沿有效到下游芯片第一级触发器的输入

    2024年01月20日
    浏览(27)
  • Vivado约束添加方法:一文全面解析IO和时序约束

    FPGA开发离不开IO约束和时序约束,IO约束用于确定输入/输出端口的物理端口和电气特性,与芯片和电路设计有关。而时序约束则用于设定FPGA设计中的时序特性,以确保系统能够在预期时钟频率下正常运行。本文将介绍vivado中常见的设置约束的方法。 IO约束,实际上是将工程的

    2024年02月02日
    浏览(33)
  • Vivado XDC约束与时序优化(一)

    摘要:有关xdc约束、时序优化的文章很多,并不重头开始介绍,仅仅记录一下在实际工程中遇到的情况。时序不好是非常正常的现象,此时需要进行大量的约束。我认为时序约束的难点其实更多的是在,有时候约束一条路径之后导致了功能出现异常。此时不得不采取其它的方

    2023年04月14日
    浏览(71)
  • tcl学习之路(五)(Vivado时序约束)

      主时钟通常是FPGA器件外部的板机时钟或FPGA的高速收发器输出数据的同步恢复时钟信号等。下面这句语法大家一定不会陌生。该语句用于对主时钟的名称、周期、占空比以及对应物理引脚进行约束。   在设计中,未约束的时钟可以通过时钟网络报告和时钟确认报告查看

    2024年02月12日
    浏览(34)
  • FPGA的时序分析、约束和收敛(6)----如何读懂vivado下的时序报告?

    目录 写在前面 1、建立工程与添加时序约束 2、时序报表         在之前的文章中写了一些时序分析的基础概念,同时还说了文章中提到的公式根本就不需要记忆,因为综合工具vivado会帮你把所有时序路径都做详尽的分析,你所需要做的就是理解概念。         光说不

    2024年02月12日
    浏览(40)
  • Vivado时序约束TCL命令——获取引脚(get_pins)在FPGA设计中起着重要作用。本文将为大家详细介绍get_pins命令的语法和使用方法。

    Vivado时序约束TCL命令——获取引脚(get_pins)在FPGA设计中起着重要作用。本文将为大家详细介绍get_pins命令的语法和使用方法。 get_pins命令用于获取指定对象(Object)的引脚(Pin)列表。我们可以使用get_pins来获取具有特定命名约定的引脚(如CLOCK、RESET等),并通过对这些引

    2024年02月05日
    浏览(31)
  • Vivado时序约束之—— set_max_delay、set_min_dealy(最大最小延迟约束)

    1. set_max_delay、set_min_delay约束的目的 最大最小延迟约束主要是为了解决异步信号之间的时序路径进行时序约束的问题。最大延迟约束(set_max_delay)将默认覆盖建立时间分析中的最大路径延迟;最小延迟约束(set_min_delay)将默认覆盖保持时间分析中的最小路径延迟。所谓的最

    2023年04月09日
    浏览(33)
  • FPGA时序分析与约束(0)——目录与传送门

            关于时序分析和约束的学习似乎是学习FPGA的一道分水岭,似乎只有理解了时序约束才能算是真正入门了FPGA,对于FPGA从业者或者未来想要从事FPGA开发的工程师来说,时序约束可以说是一道躲不过去的坎,所以这个系列我们会详细介绍FPGA时序分析与约束的相关内容

    2024年02月05日
    浏览(36)
  • 《FPGA的时序分析、约束和收敛》目录与传送门

    知识付费时代,多做一些尝试 免费内容非常容易被其他网站爬虫获取,付费是某种意义上的版权保护 付费即意味着责任,有利于提高专栏质量,驱使作者对读者、对内容更负责         本专栏内容均与FPGA的时序分析、约束、优化和收敛相关,是真真正正能用起来的 实战

    2024年02月12日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包