Vivado时序约束之—— set_max_delay、set_min_dealy(最大最小延迟约束)

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

set_max_delay、set_min_delay(最大、最小延迟约束)

1. set_max_delay、set_min_delay约束的目的

最大最小延迟约束主要是为了解决异步信号之间的时序路径进行时序约束的问题。最大延迟约束(set_max_delay)将默认覆盖建立时间分析中的最大路径延迟;最小延迟约束(set_min_delay)将默认覆盖保持时间分析中的最小路径延迟。所谓的最大、最小延迟约束主要应用于异步跨时钟域路径中,而对于其他的路径,一般不使用最大最小延迟约束,特别是Pin2Reg与Reg2Pin的路径,一般不使用最大最小延迟约束。
注:
(1) 跨时钟域是异步跨时钟域的简称,只要是跨时钟域的路径,本质上都是异步的;
(2) 对于set_max_delay、set_min_delay主要应用于异步跨时钟域路径,我们在使用时可以认为它只用于异步跨时钟域路径的约束分析中;
(3) 异步信号之间的时序路径进行约束时,采用set_max_delay、set_min_delay进行约束;
(4) 异步信号之间从某种意义上来说,它们之间是没有确切的时序关系与时序要求的,但为了对从源端到目的端的数据传输延迟有一个基本限制,不至于让其延时不受控,因此采用set_max_delay可以对系统的时序性能做到一个基本的控制;
Vivado时序约束之—— set_max_delay、set_min_dealy(最大最小延迟约束)

图2.1 异步跨时钟域路径
(4)图2.3中,从Reg_1/Q到Reg_2/D的路径就是异步跨时钟域的路径。

2. 最大、最小延迟约束的格式

最大、最小延迟约束的指令格式如下所示:
set_max_delay [-datapath_only] -from [ node_list] -to [node_list] delay_value
set_min_delay -from [ node_list] -to [node_list] delay_value
如:
set_max_delay -from [get_pins data_in1_reg_reg/C] -to [get_pins data_out1_reg/D] 4.000

Notes:
(1) datapath_only只能用于set_max_delay中,不能用于set_min_delay中;
(2) -from用于指定路径的源节点,-to用于指定路径的目的节点,可以使用get_pins、get_cells等进行源节点与目的节点的指定;
(3) delay_value为指定的延时值最大(最小)范围,单位默认为“ns”;
(4) 一般的跨时钟域路径,要么约束为虚假路径(false_path),要么进行set_max_delay约束。

3. 采用GUI或直接编写的方式添加约束

(1) 添加最大最小约束时,可以使用直接编写xdc约束命令的方式,添加时序约束,也可以使用GUI的方式添加,因为在添加时,对于路径中源节点、目的节点的指定,我们可能不知道什么时候使用get_pins,什么时候使用get_ports、get_clocks等,以及节点路径的访问层级,因此在添加时序约束时,强烈建议采用GUI的方式进行添加,这样可以保证不会出错。
(2) set_max_delay、set_min_delay约束,在设计时我们不会主动去添加,因为在设计之前,我们一般不会知道具体哪条路径为异步信号之间的时序路径,并且对于异步信号之间的路径,我们一般不关心其时序要求,通常是设为伪路径处理,如果我们确实要对某条异步信号之间的时序路径提出时序要求时,我们才设定它的最大最小延时,因此进行set_max_delay、set_min_delay时,我们一般是对整个工程进行综合实现了,根据时序报告和我们的要求,再对相应的路径添加set_max_delay、set_min_delay。

4. 添加set_max_delay、set_min_delay的步骤
(1) 进入到Timing Constraints界面
Vivado时序约束之—— set_max_delay、set_min_dealy(最大最小延迟约束)

(2)选择set_max_delay后点击,右侧的“+”号。
Vivado时序约束之—— set_max_delay、set_min_dealy(最大最小延迟约束)
(3)添加后的结果如下图所示。
Vivado时序约束之—— set_max_delay、set_min_dealy(最大最小延迟约束)
注:时序约束的作用就是告诉EDA工具,该设计对时序的要求,以及时序分析所需要的未知量;然后EDA向着这个目标布局布线。
转载请说明出处,希望能够帮到大家。文章来源地址https://www.toymoban.com/news/detail-406980.html

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

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

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

相关文章

  • 浅谈时序:set_input_delay

    1、set_input_delay的本质 set_input_delay是对模块input信号在模块外部延迟的约束,本质上EDA工具会根据约束调整设计内部的器件类型,摆放的位置以及优化内部组合逻辑保证满足约束要求。 约束指导原则:尽量照顾设计外部逻辑延时 set_input_delay -max delay_vaule 中delay_vaule 数值尽量大

    2024年02月12日
    浏览(39)
  • FPGA时序约束--实战篇(Vivado添加时序约束)

    前面几篇文章已经详细介绍了FPGA时序约束基础知识以及常用的时序约束命令,相信大家已经基本掌握了时序约束的方法。 今天介绍一下,如何在Vivado中添加时序约束,Vivado添加约束的方法有3种:xdc文件、时序约束向导(Constraints Wizard)、时序约束编辑器(Edit Timing Constrain

    2024年02月10日
    浏览(50)
  • FPGA时序分析与时序约束(Vivado)

    后缀L的这个单元中,会生成锁存器 查看布线 定位线路 时间分析,还要考虑数据变化的建立时间与保持时间 经过图上计算可得公式 : Tsu裕量 = (Tskew + 时钟周期 - Tsu) - (Tco + Tdelay) Thd裕量 = Tco + Tdelay - Thd 两个时间都大于0,才能保证系统不产生亚稳态。 建立时间裕量、组

    2024年01月19日
    浏览(45)
  • Vivado时序约束基础

          今天这篇博客,笔者向大家简单介绍Xilinx FPGA中的Vivado时序约束基础知识,也为后续的学习打好铺垫。 Xilinx Design Constraints (XDC) 概述 • XDC 在本质上就是Tcl 语言,但其仅支持基本的Tcl 语法,如变量、列表和运算符等等,对其他复杂的循环以及文件I/O 等语法可以通过在

    2024年02月10日
    浏览(47)
  • vivado 如何添加时序约束

    一个 FPGA 设计除了管脚分配以外,还有一个重要的约束,那就是时序约束,这里通过向 导方式演示如果进行一个时序约束 点击“Run Synthesis”开始综合 弹出对话框点击“OK” 综合完成以后点击“Cancel” 4) 点击“Constraints Wizard” 5) 在弹出的窗口中点击“Next” 6) 时序约束向导

    2023年04月10日
    浏览(42)
  • FPGA时序约束--实战篇(读懂Vivado时序报告)

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

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

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

    2024年01月20日
    浏览(40)
  • Vivado操作之时序约束介绍

    目录 一、前言 二、时序约束界面 三、时序约束介绍 四、参考        任何一个FPGA工程都需要设置相关的时序约束,下面将介绍Vivado中如何进行时序约束操作以及各种约束的使用方法。          在一个工程运行到IMPLEMENTATION后,进入到左侧的Flow Navigator窗口,点击IMPL

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

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

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

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

    2023年04月14日
    浏览(86)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包