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

    关注

    1602

    文章

    21317

    浏览量

    593152
收藏 人收藏

    评论

    相关推荐

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

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

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

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

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

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

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

    时钟偏差组成的。 二、时序路径 时序路径是指从FPGA输入到输出的所有逻辑路径组成的路径。当存在时序路径时,需要考虑时序约束以确保正确的逻辑功能和时序性能。 时序路径的关键元素
    发表于 11-15 17:41

    教你正确使用1500w手提式激光焊接机

    教你正确使用1500w手提式激光焊接机
    发表于 10-12 13:40 0次下载

    FPGA时钟周期约束讲解

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

    FPGA时序约束之建立时间和保持时间

    FPGA中时序约束是设计的关键点之一,准确的时钟约束有利于代码功能的完整呈现。进行时序约束,让软件布局布线后的电路能够满足使用的要求。
    发表于 08-14 17:49 825次阅读
    FPGA时序<b class='flag-5'>约束</b>之建立时间和保持时间

    FPGA设计中动态时钟的使用方法

    时钟是每个 FPGA 设计的核心。如果我们正确地设计时钟架构、没有 CDC 问题并正确进行约束设计,就可以减少与工具斗争的时间。
    发表于 07-12 11:17 845次阅读
    FPGA设计中动态<b class='flag-5'>时钟</b>的使用方法

    时序约束连载04~随路时钟

    本文讲一下随路时钟,什么是随路的时钟呢?
    的头像 发表于 07-11 17:19 3217次阅读
    时序<b class='flag-5'>约束</b>连载04~随路<b class='flag-5'>时钟</b>

    动态时钟的使用

    时钟是每个 FPGA 设计的核心。如果我们正确地设计时钟架构、没有 CDC 问题并正确进行约束设计,就可以减少与工具斗争的时间。
    的头像 发表于 07-05 09:05 725次阅读
    动态<b class='flag-5'>时钟</b>的使用

    FPGA设计衍生时钟约束时钟分组约束设置

    FPGA设计中,时序约束对于电路性能和可靠性非常重要。
    发表于 06-26 14:53 933次阅读
    FPGA设计衍生<b class='flag-5'>时钟</b><b class='flag-5'>约束</b>和<b class='flag-5'>时钟</b>分组<b class='flag-5'>约束</b>设置

    FPGA时序约束之伪路径和多周期路径

    前面几篇FPGA时序约束进阶篇,介绍了常用主时钟约束、衍生时钟约束时钟分组
    发表于 06-12 17:33 990次阅读

    FPGA时序约束之衍生时钟约束时钟分组约束

    在FPGA设计中,时序约束对于电路性能和可靠性非常重要。在上一篇的文章中,已经详细介绍了FPGA时序约束的主时钟约束
    发表于 06-12 17:29 1435次阅读

    FPGA主时钟约束详解 Vivado添加时序约束方法

    在FPGA设计中,时序约束的设置对于电路性能和可靠性都至关重要。在上一篇的文章中,已经详细介绍了FPGA时序约束的基础知识。
    发表于 06-06 18:27 7028次阅读
    FPGA主<b class='flag-5'>时钟</b><b class='flag-5'>约束</b>详解 Vivado添加时序<b class='flag-5'>约束</b>方法

    约束、时序分析的概念

    很多人询问关于约束、时序分析的问题,比如:如何设置setup,hold时间?如何使用全局时钟和第二全局时钟(长线资源)?如何进行分组约束?如何约束
    的头像 发表于 05-29 10:06 412次阅读
    <b class='flag-5'>约束</b>、时序分析的概念