0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

关于多周期路径约束

FPGA设计论坛 来源:未知 2022-12-10 12:05 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

一、什么是多周期路径约束?

不管是quartus中还是在Vivado中,默认的建立时间和保持时间的检查都是单周期的,如图1所示,也就是说如果A时刻发送,B时刻捕获,这两者之间相差一个时钟周期,也就是很多文献所说的current launch和current latch,但是某些情况下,这两者之间并不一定只是一个时钟周期,比如加上一个捕获使能信号,或者跨时钟域的情况,两者时钟有相位差的情况,此时就需要设置多周期。

二、如何理解多周期路径约束?

首先要理解一个数据的发送流程,如图2所示:

这里的数据在发送以后,并不是理想状态下,瞬间达到下一个寄存器,二是包括Tskew时钟偏斜,Tdelay传输延迟,Tco源寄存器的输出延迟,Tsu和Th寄存器需要的建立保持时间等时间延迟,slack就是时间余量,理想的情况自然是slack为0,但是这是不可能达到的,因此要使得slack>0,有以下式子:

setup slack = (current latch edge - current launch edge ) + Tskew - (Tdelay + Tco + Tsu)

= T + Tskew - (Tdelay + Tco + Tsu)

hold slack = Tdelay + Tco - (Th + previous latch edge - current launch edge)

= Tdelay + Tco - Th

根据上式可以看出来,由于Tskew、Tco、Tdelay、Tsu、Th都是固定的,也就是跟实际硬件代码书写布局布线等相关,一旦这些都确定了,就是无法改变的,所以当在工程时序检查建立时间和保持时间出现问题,这些数据是无法改变的,只能改变 latch和 launch的沿的位置,这就是多周期路径约束的本质。

那么为什么约束形式是这样的?set_multicycle_path -from [get_clocks clk1] -to [get_clocks clk2] -setup -end 3

这是由于改变了建立时间和保持时间检查的位置,实际上就改变了 latch和 launch的沿的位置,处于人机交互的便利和理解,采取了这种语言。

三、实例讲解

假设A时刻发送一个数据,那么默认情况下就是单周期路径,B就是捕获沿,也就是上文所提到的latch edge和 launch edge。红色箭头起点和重点也就是代表了current launch edge和current latch edge,此时,如果加入了一个使能信号,如果仍然在B时刻作为current latch edge,那么建立时间余量就会比较紧张(悲观),当然实际的不是在这里捕获的,只是时序分析工具默认是在这里的,那么往后移动一个时钟周期,current latch edge就在C时刻了,此时的检查时间就是比较充裕的。再看保持时间的检查,如果并不设置采取默认情况,那么应该是1线,B为previous latch edge时刻,也是next launch edge。

根据原则:

1)当前发起沿发送的数据不能被前一个捕捉沿捕捉。

2)下一发起沿发送的数据不能被当前捕捉沿捕捉。

显然,A时刻发送的数据也就是current launch edge时可能被B时刻捕获的,不满足第一个条件,于是需要往前调一个周期。如图4

同样的分析方法,此时的满足上述原则的。


四、总结

当时序检查报告中出现建立时间或者保持时间出现违规的情况,就需要考虑进行多周期路径约束。






精彩推荐



至芯科技12年不忘初心、再度起航11月12日北京中心FPGA工程师就业班开课、线上线下多维教学、欢迎咨询!
FPGA需要跑多快?影响FPGA计算性能的几大因素
浅谈Xillinx 和 altera的区别
扫码加微信邀请您加入FPGA学习交流群




欢迎加入至芯科技FPGA微信学习交流群,这里有一群优秀的FPGA工程师、学生、老师、这里FPGA技术交流学习氛围浓厚、相互分享、相互帮助、叫上小伙伴一起加入吧!


点个在看你最好看





原文标题:关于多周期路径约束

文章出处:【微信公众号:FPGA设计论坛】欢迎添加关注!文章转载请注明出处。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1664

    文章

    22509

    浏览量

    639589

原文标题:关于多周期路径约束

文章出处:【微信号:gh_9d70b445f494,微信公众号:FPGA设计论坛】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    2026深入拆解:Gemini 3.0 镜像官网如何理解 FPGA 时序约束并自动生成 SDC 文件

    让 AI 直接根据一句“这个 200MHz 时钟需要 5% 的抖动约束,跨时钟域路径设为 false_path”自动吐出符合 Synopsys Design Constraints 格式的 SDC
    的头像 发表于 05-04 12:29 1915次阅读
    2026深入拆解:Gemini 3.0 镜像官网如何理解 FPGA 时序<b class='flag-5'>约束</b>并自动生成 SDC 文件

    无线充电线圈和单线圈区别大吗?

    线圈无线充电通过动态路径调节提升效率,实现智能对齐与高效能量传输,兼顾设备同时充电与热控安全。
    的头像 发表于 04-21 08:19 434次阅读
    无线充电<b class='flag-5'>多</b>线圈和单线圈区别大吗?

    SST固变的技术经济学分析与商业化部署路径

    倾佳杨茜-死磕固变:SST固变的技术经济学分析、全生命周期评估与商业化部署路径 产业宏观背景与市场动力学演进 在全球能源系统加速向低碳化、数字化和高度分散化转型的宏观背景下,现代电力系统正面
    的头像 发表于 02-25 11:43 856次阅读
    SST固变的技术经济学分析与商业化部署<b class='flag-5'>路径</b>

    Vivado时序约束中invert参数的作用和应用场景

    在Vivado的时序约束中,-invert是用于控制信号极性的特殊参数,应用于时钟约束(Clock Constraints)和延迟约束(Delay Constraints)中,用于指定信号的有效边沿或逻辑极性。
    的头像 发表于 02-09 13:49 456次阅读
    Vivado时序<b class='flag-5'>约束</b>中invert参数的作用和应用场景

    vivado中常用时序约束指令介绍

    在vivado中,我们常用的时序约束指令主要包括如下几个方面。
    的头像 发表于 01-20 16:15 669次阅读

    输入引脚时钟约束_Xilinx FPGA编程技巧-常用时序约束详解

    (Register-to-Register Path),使用周期约束 输出路径(Output Path),使用输出约束 具体的异常路径(Path specific exceptions
    发表于 01-16 08:19

    零碳园区的实施路径:从目标设定到净零落地的全周期

    在 “双碳” 目标驱动下,零碳园区已成为城市低碳转型的核心载体,其实施并非单一技术的堆砌,而是需贯穿 “规划 - 建设 - 运营 - 优化” 全周期的系统工程。不同类型园区(如产业园区、园区、文旅
    的头像 发表于 12-22 09:34 825次阅读
    零碳园区的实施<b class='flag-5'>路径</b>:从目标设定到净零落地的全<b class='flag-5'>周期</b>

    时钟周期、机器周期、指令周期介绍

    时钟周期:一个时钟脉冲所需要的时间。在计算机组成原理中又叫T周期或节拍脉冲。是CPU和其他单片机的基本时间单位。它可以表示为时钟晶振频率(1秒钟的时钟脉冲数)的倒数(也就是1S/时钟脉冲数,比如1
    发表于 11-17 07:54

    E203的乘法和除法这种周期指令是怎么解决数据相关性的?

    请问E203的乘法和除法这种周期指令是怎么解决数据相关性的?
    发表于 11-07 06:50

    时序约束问题的解决办法

    slack 计算如下图所示: 所以 slakc 为负数时,说明路径的组合逻辑延时过长。解决办法有两个:第一个是降低时钟频率,第二个是将延时过长的组合逻辑拆成两个或者多个时钟周期执行。 无论 Setup
    发表于 10-24 09:55

    关于综合保持时间约束不满足的问题

    1、将 nuclei-config.xdc 和 nuclei-master.xdc 加入到项目工程中,综合得到时序约束报告如下: 保持时间约束不满足,分析原因,发现所有不满足均出现在
    发表于 10-24 07:42

    技术资讯 I Allegro 设计中的走线约束设计

    本文要点在进行时序等长布线操作的时候,在布线操作的时候不管你是走蛇形线还是走折线,约束管理器会自动帮你计算长度、标偏差,通过精确控制走线长度,来实现信号的时序匹配。约束设计就是一套精准的导航系统
    的头像 发表于 09-05 15:19 1577次阅读
    技术资讯 I Allegro 设计中的走线<b class='flag-5'>约束</b>设计

    技术资讯 I 图文详解约束管理器-差分对规则约束

    本文要点你是否经常在Layout设计中抓瞎,拿着板子无从下手,拿着鼠标深夜狂按;DDR等长没做好导致系统不稳定,PCIe没设相位容差造成链路训练失败……这些都是血泪教训,关键时刻需要靠约束管理器救命
    的头像 发表于 08-08 17:01 1510次阅读
    技术资讯 I 图文详解<b class='flag-5'>约束</b>管理器-差分对规则<b class='flag-5'>约束</b>

    有一个关于 VBUS_FET_EN 电源路径行为的问题求解

    我们有一个关于 VBUS_FET_EN 电源路径行为的问题。 如果 BCR hw 设置为 VBUS_MIN = 5V,VBUS_MAX = 9V,ISNK_COARSE + ISNK_FINE
    发表于 05-23 08:09

    PCB Layout 约束管理,助力优化设计

    本文重点PCBlayout约束管理在设计中的重要性Layout约束有助避免一些设计问题设计中可以使用的不同约束在PCB设计规则和约束管理方面,许多设计师试图采用“一刀切”的方法,认为同
    的头像 发表于 05-16 13:02 1230次阅读
    PCB Layout <b class='flag-5'>约束</b>管理,助力优化设计