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
    +关注

    关注

    1611

    文章

    21393

    浏览量

    595450

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

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

收藏 人收藏

    评论

    相关推荐

    Xilinx FPGA编程技巧之常用时序约束详解

    的异常路径(Path specific exceptions),使用虚假路径周期路径约束
    发表于 05-06 15:51

    Xilinx FPGA的约束设置基础

    LOC约束是FPGA设计中最基本的布局约束和综合约束,能够定义基本设计单元在FPGA芯片中的位置,可实现绝对定位、范围定位以及区域定位。
    发表于 04-26 17:05 316次阅读
    Xilinx FPGA的<b class='flag-5'>约束</b>设置基础

    Xilinx FPGA编程技巧之常用时序约束详解

    路径(Path specific exceptions),使用虚假路径周期路径约束
    发表于 04-12 17:39

    FPGA物理约束之布局约束

    在进行布局约束前,通常会对现有设计进行设计实现(Implementation)编译。在完成第一次设计实现编译后,工程设计通常会不断更新迭代,此时对于设计中一些固定不变的逻辑,设计者希望它们的编译结果
    的头像 发表于 01-02 14:13 763次阅读
    FPGA物理<b class='flag-5'>约束</b>之布局<b class='flag-5'>约束</b>

    物理约束实践:I/O约束

    I/O约束(I/O Constraints)包括I/O标准(I/OStandard)约束和I/O位置(I/O location)约束
    的头像 发表于 11-18 16:42 721次阅读
    物理<b class='flag-5'>约束</b>实践:I/O<b class='flag-5'>约束</b>

    CBS多机器人路径规划实例讲解

    实例讲解 以下将通过一个简单的实例讲解CBS的基本过程,实例如图2所示。 图2 初始和目标状态 CBS的搜索过程如图3所示。 图3 CBS搜索过程 CBS开始时没有冲突约束,每个机器人按照各自的路径
    的头像 发表于 11-17 16:44 397次阅读
    CBS多机器人<b class='flag-5'>路径</b>规划实例讲解

    FPGA时序约束--基础理论篇

    FPGA开发过程中,离不开时序约束,那么时序约束是什么?简单点说,FPGA芯片中的逻辑电路,从输入到输出所需要的时间,这个时间必须在设定的时钟周期内完成,更详细一点,即需要满足建立和保持时间
    发表于 11-15 17:41

    如何在FPGA设计环境中加入时序约束

    在给FPGA做逻辑综合和布局布线时,需要在工具中设定时序的约束。通常,在FPGA设计工具中都FPGA中包含有4种路径:从输入端口到寄存器,从寄存器到寄存器,从寄存器到输出,从输入到输出的纯组合逻辑
    的头像 发表于 10-12 12:00 1016次阅读
    如何在FPGA设计环境中加入时序<b class='flag-5'>约束</b>?

    FPGA设计存在的4类时序路径

    命令set_multicycle_path常用来约束放松路径约束。通常情况下,这种路径具有一个典型的特征:数据多个周期翻转一次,如下图所示
    的头像 发表于 09-14 09:05 655次阅读
    FPGA设计存在的4类时序<b class='flag-5'>路径</b>

    FPGA时钟周期约束讲解

    时钟周期约束是用于对时钟周期约束,属于时序约束中最重要的约束之一。
    发表于 08-14 18:25 649次阅读

    FPGA I/O口时序约束讲解

    前面讲解了时序约束的理论知识FPGA时序约束理论篇,本章讲解时序约束实际使用。
    发表于 08-14 18:22 1116次阅读
    FPGA I/O口时序<b class='flag-5'>约束</b>讲解

    FPGA时序约束之时序路径和时序模型

    时序路径作为时序约束和时序分析的物理连接关系,可分为片间路径和片内路径
    发表于 08-14 17:50 593次阅读
    FPGA时序<b class='flag-5'>约束</b>之时序<b class='flag-5'>路径</b>和时序模型

    请问时序约束文件SDC支持哪些约束

    时序约束文件SDC支持哪些约束
    发表于 08-11 09:27

    时序约束连载03~约束步骤总结

    本小节对时序约束做最终的总结
    的头像 发表于 07-11 17:18 453次阅读
    时序<b class='flag-5'>约束</b>连载03~<b class='flag-5'>约束</b>步骤总结

    时序约束连载01~output delay约束

    本文将详细介绍输出延时的概念、场景分类、约束参数获取方法以及约束方法
    的头像 发表于 07-11 17:12 1982次阅读
    时序<b class='flag-5'>约束</b>连载01~output delay<b class='flag-5'>约束</b>