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

    关注

    1655

    文章

    22282

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    E203软核提高CPU时钟频率方法

    运行时,无法达到100MHZ的时钟速度,超过33MHZ左右就会出现时序约束违例。 因此我们通过修改IP_MMCM的16MHZ的clk输出,将其修改为32MHZ,重新综合,实现,烧写到FPGA。即可
    发表于 10-29 06:19

    板子的差分时钟如何正确地转化为单端

    ,将输入信号设置为diff,即为差分含义 但是这种方法,最后通过约束之后得到的时序是有问题的。一种正确的解决方法如下 解决方法② 使用IBUFGDS原语,将差分时钟信号转为单端 如上设置,可以得到
    发表于 10-27 07:29

    时序约束问题的解决办法

    Time 是否满足约束。 我们要留意的是 WNS 和 WHS 两个数值,如果这两个数值为红色,就说明时序不满足约束。下面将解释怎么解决这个问题。 1. Setup Time 违例 Setup
    发表于 10-24 09:55

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

    两个时钟是没有约束的异步时钟 3、在 synthesis 打开 edit timing constraints 设置异步时钟,如下图:
    发表于 10-24 07:42

    硬件加速模块的时钟设计

    硬件加速模块需要四个时钟,分别为clk_l , clk_r , clk_c , clk_n 。 clk_l : 整个硬件加速模块为了最大化的节约时间成本而采用了类似处理器的流水线设计,具体上将每一层
    发表于 10-23 07:28

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

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

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

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

    TI的ADS129x器件SPI 时钟极性CPOL和时钟相位 CPHA的正确设置模式

    TI的ADS129x器件SPI 时钟极性CPOL和时钟相位 CPHA的正确设置模式
    的头像 发表于 06-18 16:36 930次阅读
    TI的ADS129x器件SPI <b class='flag-5'>时钟</b>极性CPOL和<b class='flag-5'>时钟</b>相位 CPHA的<b class='flag-5'>正确</b>设置模式

    西门子再收购EDA公司 西门子宣布收购Excellicon公司 时序约束工具开发商

    精彩看点 此次收购将帮助系统级芯片 (SoC) 设计人员通过经市场检验的时序约束管理能力来加速设计,并提高功能约束和结构约束正确性   西门子宣布 收购 Excellicon 公司
    的头像 发表于 05-20 19:04 1268次阅读
    西门子再收购EDA公司  西门子宣布收购Excellicon公司  时序<b class='flag-5'>约束</b>工具开发商

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

    本文重点PCBlayout约束管理在设计的重要性Layout约束有助避免一些设计问题设计可以使用的不同约束在PCB设计规则和
    的头像 发表于 05-16 13:02 807次阅读
    PCB Layout <b class='flag-5'>约束</b>管理,助力优化设计

    FPGA时序约束之设置时钟

    Vivado时序分析工具默认会分析设计中所有时钟相关的时序路径,除非时序约束设置了时钟组或false路径。使用set_clock_gro
    的头像 发表于 04-23 09:50 963次阅读
    FPGA时序<b class='flag-5'>约束</b>之设置<b class='flag-5'>时钟</b>组

    关于S32GLLCE时钟问题求解

    , Linux_BSP:BSP42 (内核:5.15.158) 我在 M0内核初始化了 LLCE,并将 llce_pe 时钟配置为40M (FXOSC_CLK),并将 LLCE_can 的波特率配置为
    发表于 04-08 07:27

    一文详解Vivado时序约束

    Vivado的时序约束是保存在xdc文件,添加或创建设计的工程源文件后,需要创建xdc文件设置时序约束。时序约束文件可以直接创建或添加已存在的约束
    的头像 发表于 03-24 09:44 4379次阅读
    一文详解Vivado时序<b class='flag-5'>约束</b>

    开源项目!手把手教你制作一个互动式LED墙壁时钟

    在这篇教程,将教你使用Arduino创建一个互动式LED墙壁时钟。这个项目结合了创意和技术,设计出一个功能性强且视觉效果惊人的时钟,它配备了互动式的LED灯。无论你是Arduino
    发表于 02-08 17:47

    xilinx FPGA IOB约束使用以及注意事项

    xilinx FPGA IOB约束使用以及注意事项 一、什么是IOB约束 在xilinx FPGA,IOB是位于IO附近的寄存器,是FPGA上距离IO最近的寄存器,同时位置固定。当你输入或者输出
    的头像 发表于 01-16 11:02 1484次阅读
    xilinx FPGA IOB<b class='flag-5'>约束</b>使用以及注意事项