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

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

3天内不再提示

FPGA案例之衍生时钟约束

454398 来源:科学计算technomania 作者:猫叔 2020-11-17 16:28 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

约束衍生时钟

系统中有4个衍生时钟,但其中有两个是MMCM输出的,不需要我们手动约束,因此我们只需要对clk_samp和spi_clk进行约束即可。约束如下:

create_generated_clock -name clk_samp -source [get_pins clk_gen_i0/clk_core_i0/clk_tx] -divide_by 32 [get_pins clk_gen_i0/BUFHCE_clk_samp_i0/O]
create_generated_clock -name spi_clk -source [get_pins dac_spi_i0/out_ddr_flop_spi_clk_i0/ODDR_inst/C] -divide_by 1 -invert [get_ports spi_clk_pin]

这里需要注意的是,如果该约束中使用get_pins(即产生的时钟并非输出到管脚),那么无论是source的时钟还是我们衍生的时钟,在get_pins后面的一定是这个时钟最初的产生位置。在视频中我们会具体展示)。

我们再运行report_clocks,显示如下:

我们在理论篇的“create_generated_clock”一节中讲到,我们可以重新设置Vivado自动生成的衍生时钟的名字,这样可以更方便我们后续的使用。按照前文所讲,只需设置name和source参数即可,其中这个source可以直接从report_clocks中得到,因此我们的约束如下:

create_generated_clock -name clk_tx -source [get_pins clk_gen_i0/clk_core_i0/inst/mmcm_adv_inst/CLKIN1] [get_pins clk_gen_i0/clk_core_i0/inst/mmcm_adv_inst/CLKOUT1]
create_generated_clock -name clk_rx -source [get_pins clk_gen_i0/clk_core_i0/inst/mmcm_adv_inst/CLKIN1] [get_pins clk_gen_i0/clk_core_i0/inst/mmcm_adv_inst/CLKOUT0]

大家可以对比下report_clocks的内容和约束指令,很容易就能看出它们之间的关系。

把上述的约束指令在tcl中运行后,我们再运行一遍report_clocks,显示如下:

在时序树的分析中,我们看到,clk_samp和clk2两个异步时钟之间存在数据交互,因此要进行约束,如下:

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

    关注

    1655

    文章

    22288

    浏览量

    630340
  • Vivado
    +关注

    关注

    19

    文章

    846

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    FPGA的IO口时序约束分析

      在高速系统中FPGA时序约束不止包括内部时钟约束,还应包括完整的IO时序约束和时序例外约束
    发表于 09-27 09:56 2328次阅读

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

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

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

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

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

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

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

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

    FPGA时钟周期约束讲解

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

    FPGA全局时钟约束(Xilinx版本)

    FPGA上的全局时钟管脚用完了就出现不够用的情况。FPGA全局时钟约束(Xilinx版本)[hide][/hide]
    发表于 02-29 09:46

    FPGA实战演练逻辑篇56:VGA驱动接口时序设计3时钟约束

    VGA驱动接口时序设计3时钟约束本文节选自特权同学的图书《FPGA设计实战演练(逻辑篇)》配套例程下载链接:http://pan.baidu.com/s/1pJ5bCtt 如图8.2
    发表于 07-30 22:07

    FPGA时钟约束问题

    FPGA的DCM模块,40MHz时钟输入,得到clkout1 40MHz,clkout2 60MHz,clkout1 120MHz。对40MHz时钟添加了约束,系统不是会自动对三个输出
    发表于 05-25 15:06

    FPGA设计约束技巧XDC约束I/O篇(下)

    XDC中的I/O约束虽然形式简单,但整体思路和约束方法却与UCF大相径庭。加之FPGA的应用特性决定了其在接口上有多种构建和实现方式,所以从UCF到XDC的转换过程中,最具挑战的可以说便是本文将要
    发表于 11-17 19:01 8108次阅读
    <b class='flag-5'>FPGA</b>设计<b class='flag-5'>约束</b>技巧<b class='flag-5'>之</b>XDC<b class='flag-5'>约束</b><b class='flag-5'>之</b>I/O篇(下)

    FPGA设计之时钟约束操作

    确定了主时钟衍生时钟后,再看各个时钟是否有交互,即clka产生的数据是否在clkb的时钟域中被使用。
    发表于 04-06 10:20 5333次阅读

    简述FPGA时钟约束时钟余量超差解决方法

    在设计FPGA项目的时候,对时钟进行约束,但是因为算法或者硬件的原因,都使得时钟约束出现超差现象,接下来主要就是解决
    的头像 发表于 10-11 14:52 4171次阅读
    简述<b class='flag-5'>FPGA</b><b class='flag-5'>时钟</b><b class='flag-5'>约束</b><b class='flag-5'>时钟</b>余量超差解决方法

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

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

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

    一、主时钟create_clock 1.1 定义 主时钟是来自FPGA芯片外部的时钟,通过时钟输入端口或高速收发器GT的输出引脚进入
    的头像 发表于 11-29 11:03 2190次阅读
    时序<b class='flag-5'>约束</b>一主<b class='flag-5'>时钟</b>与生成<b class='flag-5'>时钟</b>

    FPGA时序约束设置时钟

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