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

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

3天内不再提示

硬件设计中教你如何正确的约束时钟

FPGA学习交流 2019-07-15 15:35 次阅读

现在的硬件设计中,大量的时钟之间彼此相互连接是很典型的现象。为了保证Vivado优化到关键路径,我们必须要理解时钟之间是如何相互作用,也就是同步和异步时钟之间是如何联系。

同步时钟是彼此联系的时钟。例如,由MMCM或PLL生成的两个相同周期的时钟是典型的同步时钟。如果MMCM或PLL生成了不同周期的时钟,那么我们最好把他们当作异步时钟处理,需要用到相应的同步技术。你可以通过运行report_clock_interaction生成报告,然后看报告中的“Path Req (WNS)”列、“Clock Pair Classification”列和 “Clock Pair Classification”列可以容易的辨别出同步时钟。下面是3个场景,你需要使用合适的时钟约束处理异步时钟之间的关系。

1. 如果时钟互联报告有很多(或者一个)红色的"Timed (unsafe)" 或者还有桔色的"Partial False Path (unsafe)"方框,那你应该是没有正确地对异步时钟约束。如果你的设计中有大量的跨时钟域的异步时钟,那么你需要对那些时钟互联约束。

2. 在时钟互联报告中看"Clock Pair Classification" 和 "Inter-Clock Constraints"这两列。如果时钟对类型是"No Common Clock" 或者 "No Common Period"或者Inter-clock约束显示"Timed (unsafe)",就要把这种互联当作异步时钟。

3. 如果“Path Requirement (WNS)”列显示时序非常紧,典型的是小于1ns,或者“Inter-Clock Constraints”列标记为时序“Unsafe”,或者“Partial False Path (unsafe)”,那么你需要把这种时钟互联看作异步时钟。

如果“WNS Path Requirement (ns)”这一列的值是合理的(>1 ns), 并且"Inter-Clock Constraints”是满足的,同时,“Clock Pair Classification”是“干净”的,那么这样的时钟互联可以被看作是同步的,你不需要添加任何时序约束。时序工具会自动的把那些路径当作同步路径处理。



为了正确约束跨时钟域的路径,需要考虑以下4个方面:

1. 如果两个时钟之间没有路径,在两个时钟之间可以简单的使用set_clock_groups 或者set_false_path约束

2. 如果跨时钟域路径都是一位的,那么你可以在两个时钟之间使用set_clock_groups 或者 set_false_path。

3. 如果路径都是多位的路径,你需要考虑延迟和数据位的偏移,然后使用set_max_delay –datapath_only 和set_bus_skew约束。

4. 如果在两个时钟域之间存在单位和多位混合的跨时钟域路径,那么对于单位的跨时钟域路径要明确的对每一条路径设置伪路径来约束,对于多位的跨时钟域路径,使用set_max_delay –datapath_only 和 set_bus_skew约束。

如果时钟是同步的,不需要任何约束。vivado的静态时钟分析工具会自动的设定路径的时序。

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

    关注

    1629

    文章

    21729

    浏览量

    603002
收藏 人收藏

    评论

    相关推荐

    时序约束一主时钟与生成时钟

    的输出,对于Ultrascale和Ultrascale+系列的器件,定时器会自动地接入到GT的输出。 1.2 约束设置格式 主时钟约束使用命令create_clock进行创建,进入Timing
    的头像 发表于 11-29 11:03 293次阅读
    时序<b class='flag-5'>约束</b>一主<b class='flag-5'>时钟</b>与生成<b class='flag-5'>时钟</b>

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

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

    深度解析FPGA的时序约束

    建立时间和保持时间是FPGA时序约束两个最基本的概念,同样在芯片电路时序分析也存在。
    的头像 发表于 08-06 11:40 661次阅读
    深度解析FPGA<b class='flag-5'>中</b>的时序<b class='flag-5'>约束</b>

    谷景教你正确处理贴片电感表面开裂故障

    谷景教你正确处理贴片电感表面开裂故障 编辑:谷景电子 贴片电感作为当下应用普遍的一种电子元器件,我们在很多电子产品上都可以看到贴片电感的存在。大部分人在使用贴片电感的时候,都会遇到电感表面开裂的故障
    的头像 发表于 07-10 21:21 337次阅读

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

    的异常路径(Path specific exceptions),使用虚假路径、多周期路径约束 一、输入约束Input Constraint OFFSET IN约束限定了输入数据和输入
    发表于 05-06 15:51

    时序约束实操

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

    Xilinx FPGA的约束设置基础

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

    谷景教你如何正确选择铁氧体磁芯电感的规格

    谷景教你如何正确选择铁氧体磁芯电感的规格 编辑:谷景电子 我们都知道在电感方案的应用,选型工作至关重要。近年来随着电子设备功能的不断增强与完善,电磁兼容性成为了电路设计不可忽视的问
    的头像 发表于 04-24 16:14 436次阅读

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

    ,这一约束降低工具的布线难度而又不会影响时序性能。这种约束通常用在有时钟使能控制的同步元件路径。 必须说明的是上图Enable信号的产生周期必须大于等于n*PERIOD,且每
    发表于 04-12 17:39

    谷景教你正确解决扼流圈功率电感噪音问题

    谷景教你正确解决扼流圈功率电感噪音问题 编辑:谷景电子 扼流圈功率电感噪音是比较常见的一个应用故障,噪音的问题对扼流圈功率电感的应用和电路的运行稳定性还是会有很直接的影响的。如果发现电感在应用中出
    的头像 发表于 03-25 22:36 318次阅读

    从DeepSleep模式过渡到活动模式时,IMO和ECO时钟在唤醒过程是如何运行的呢?

    ) 在 DeepSleep-Act &gt; ive 过渡期间,IMO 是通过硬件操作启用的,这是正确的吗? 问题 2) 当使用 ECO 作为 FLL/PLL 参考时钟时,它在
    发表于 01-24 07:52

    网络时钟同步有哪些要求?如何在5G网络测试时间与时钟同步?

    网络时钟同步有哪些要求?要注意哪些问题?如何在5G网络测试时间与时钟同步? 网络时钟同步是指在计算机网络,各个
    的头像 发表于 01-16 16:03 1373次阅读

    异步电路时钟同步处理方法

    异步电路时钟同步处理方法  时钟同步在异步电路是至关重要的,它确保了电路的各个部件在正确
    的头像 发表于 01-16 14:42 1169次阅读

    FPGA时钟的用法

    生成时钟包括自动生成时钟(又称为自动衍生时钟)和用户生成时钟。自动生成时钟通常由PLL或MMCM生成,也可以由具有分频功能的
    的头像 发表于 01-11 09:50 1841次阅读
    FPGA<b class='flag-5'>中</b><b class='flag-5'>时钟</b>的用法

    【Vivado约束学习】 时钟约束介绍

    在数字设计时钟代表从寄存器(register)到寄存器可靠传输数据的时间基准。
    的头像 发表于 01-04 09:16 3062次阅读
    【Vivado<b class='flag-5'>约束</b>学习】 <b class='flag-5'>时钟</b><b class='flag-5'>约束</b>介绍