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

    关注

    1601

    文章

    21296

    浏览量

    593036
  • Vivado
    +关注

    关注

    18

    文章

    789

    浏览量

    65091
收藏 人收藏

    评论

    相关推荐

    FPGA的IO口时序约束分析

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

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

    FPGA设计中,时序约束的设置对于电路性能和可靠性都至关重要。在上一篇的文章中,已经详细介绍了FPGA时序约束的基础知识。
    发表于 06-06 18:27 6975次阅读
    <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 1408次阅读

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

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

    FPGA时钟周期约束讲解

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

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

    今天给大侠带来Xilinx FPGA编程技巧常用时序约束详解,话不多说,上货。 基本的约束方法为了保证成功的设计,所有路径的时序要求必须能够让执行工具获取。最普遍的三种路径以及
    发表于 04-12 17:39

    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时序约束OFFSET

    FPGA时序约束,总体来分可以分为3类,输入时序约束,输出时序约束,和寄存器到寄存器路径的约束。其中输入时序
    发表于 09-05 21:13

    FPGA altera 时钟约束和IO约束说明

    在设计以太网中继器时,因为没有配置时钟约束,导致中继器工作不正常。后面根据手册配置时钟约束解决了此问题。
    发表于 10-07 18:51

    FPGA时钟约束问题

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

    FPGA设计之时钟约束操作

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

    如何理解和使用做FPGA设计时的过约束

    有人希望能谈谈在做FPGA设计的时候,如何理解和使用过约束。我就以个人的经验谈谈: 什么是过约束; 为什么会使用过约束; 过约束的优点和缺点
    的头像 发表于 03-29 11:56 4553次阅读
    如何理解和使用做<b class='flag-5'>FPGA</b>设计时的过<b class='flag-5'>约束</b>?

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

    在设计FPGA项目的时候,对时钟进行约束,但是因为算法或者硬件的原因,都使得时钟约束出现超差现象,接下来主要就是解决
    的头像 发表于 10-11 14:52 2934次阅读
    简述<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 926次阅读
    <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>设置