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

    关注

    1625

    文章

    21663

    浏览量

    601670

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

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

收藏 人收藏

    评论

    相关推荐

    常用时序约束使用说明-v1

    的完整路径all_inputs/all_outputs 可以查看输入输出端口get_ports *get_nets *get_pins *|*get cells
    的头像 发表于 11-01 11:06 134次阅读

    多台仓储AGV协作全局路径规划算法的研究

    AGV动态路径规划需解决冲突避免,核心在整体协调最优。规划时考虑道路设计、拥堵、最短路径和交通管制,用A*算法避免重复路径和转弯,同时需交通管制防相撞。创新响应需求是关键,良好
    的头像 发表于 10-28 17:38 191次阅读
    多台仓储AGV协作全局<b class='flag-5'>路径</b>规划算法的研究

    CPU时钟周期、机器周期和指令周期的关系

    CPU时钟周期、机器周期和指令周期是计算机体系结构中三个紧密相连且至关重要的概念,它们共同构成了CPU执行指令和处理数据的基本时间框架。以下是对这三个周期之间关系的详细解析。
    的头像 发表于 09-26 15:38 1659次阅读

    电路的两类约束指的是哪两类

    电路的两类约束通常指的是电气约束和物理约束。这两类约束在电路设计和分析中起着至关重要的作用。 一、电气约束 电气
    的头像 发表于 08-25 09:34 719次阅读

    FPGA 高级设计:时序分析和收敛

    是 FPGA/ASIC 时序定义的基础概念。后面要讲到的其它时序约束都是建立在周期约束的基础上的,很多其它时序公式,可以用周期公式推导。周期约束是一个基本时序和综合
    发表于 06-17 17:07

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

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

    FPGA工程的时序约束实践案例

    详细的原时钟时序、数据路径时序、目标时钟时序的各延迟数据如下图所示。值得注意的是数据路径信息,其中包括Tco延迟和布线延迟,各级累加之后得到总的延迟时间。
    发表于 04-29 10:39 663次阅读
    FPGA工程的时序<b class='flag-5'>约束</b>实践案例

    时序约束实操

    添加约束的目的是为了告诉FPGA你的设计指标及运行情况。在上面的生成约束之后,在Result àxx.sdc中提供约束参考(请注意该文件不能直接添加到工程中,需要热复制到别的指定目录或者新建自己的SDC文件添加到工程)。
    的头像 发表于 04-28 18:36 2183次阅读
    时序<b class='flag-5'>约束</b>实操

    Xilinx FPGA的约束设置基础

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

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

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

    FPGA物理约束之布局约束

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

    辐射源“径效应”几种常见的路径

    径效应是一种现象,某个辐射源的波经过两条或多条路径传播到接收机,如果波保持相干,波的两个或多个分量会相互叠加抵消,这就是常说的径衰落。
    发表于 12-27 10:01 724次阅读
    辐射源“<b class='flag-5'>多</b>径效应”几种常见的<b class='flag-5'>路径</b>

    FPGA物理约束之布线约束

    IS_ROUTE_FIXED命令用于指定网络的所有布线进行固定约束。进入Implemented页面后,Netlist窗口如图1所示,其中Nets文件展开后可以看到工程中所有的布线网络。
    的头像 发表于 12-16 14:04 1131次阅读
    FPGA物理<b class='flag-5'>约束</b>之布线<b class='flag-5'>约束</b>

    SV约束随机化总结

    constraint 约束随机化类中的变量 在main_phase 之前就已经提前产生一个变量的随机值。 用法:一般在类中定义一个rand 类型的变量, 然后根据需求写约束就可以
    的头像 发表于 12-14 14:30 798次阅读
    SV<b class='flag-5'>约束</b>随机化总结

    什么是信号回流路径

    什么是信号回流路径? 信号回流路径,也称为信号返回路径,是指电子系统中信号从输出端返回到输入端的路径。在一个电路或系统中,信号在经过各种组件和部件的作用后,可能会反射、散射、干扰等,形
    的头像 发表于 11-24 14:44 1896次阅读