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

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

3天内不再提示

FPGA虚拟时钟的使用方法

C29F_xilinx_inc 来源:赛灵思 作者:赛灵思 2022-02-16 16:21 次阅读

在我之前写的FPGA时序约束教程中,有一篇中讲到了虚拟时钟

FPGA时序约束理论篇之时钟周期约束

但文中对虚拟时钟的应用介绍的还不够详细,因此这里我们再对虚拟时钟做一个更加细致的介绍。

首先,虚拟时钟用于什么地方?

虚拟时钟通常用于设定输入和输出的延时,即set_input_delay和set_output_delay。可能有同学忘记这两个约束的用法了,这里我们再展示一下:

set_input_delay 0.5 -clock clkA [get_ports A]
set_output_delay 1 -clock clkB [get_ports B]

其中clkA和clkB就是我们使用create_clock创建的主时钟或者虚拟时钟。

主时钟在创建的时候需要指定时钟输入端口,虚拟时钟不需要指定端口,所以称之为虚拟时钟。那什么场景下要用到虚拟时钟呢?

1. 外部IO的参考时钟并不是设计中的时钟

下图中,外部IO的参考时钟比设计中主时钟的路径上多了一个BUFFER,因此我们需要使用虚拟时钟来进行约束。

FPGA虚拟时钟的使用方法
create_clock -name sysclk -period 10 [get_ports clkin]
create_clock -name virtclk -period 10
set_clock_latency -source 1 [get_clock virtclk]
set_input_delay -clock virtclk -max 4 [get_ports dina]
set_input_delay -clock virtclk -min 2 [get_ports dina]

2. FPGA I/O路径参考时钟来源于内部衍生时钟,但与主时钟的频率关系并不是整数倍

如果I/O路径参考时钟源于内部的衍生时钟,那set_input_delay和set_output_delay约束中-clock参数后的时钟不能是衍生时钟,比如下图的例子中,输入10MHz时钟经过了MMCM后去采输入的数据。

FPGA虚拟时钟的使用方法

a) 如果MMCM没有负的相移而且输出的频率也是10MHz,那么直接使用主时钟来约束input delay。

create_clock -period 100.000 -name clk [get_ports clk]
set_input_delay -clock clk -max 2.000 [get_ports datain]
set_input_delay -clock clk -min 1.000 [get_ports datain]

b) 如果MMCM输出频率是60MHz,那么这个衍生时钟跟主时钟并不是整数倍关系,这时就需要用到虚拟时钟了

create_clock -period 100.000 -name clk [get_ports clk] 
create_clock -name clk_port_vclk -period 16.67
set_input_delay -clock clk_port_vclk -max 2 [get_ports datain]
set_input_delay -clock clk_port_vclk -min 1 [get_ports datain]

3. 在不修改时钟特性的情况下针对I/O指定不同的jitter和latency

这个需求我们可以在Constraints Wizards中指定,简单又方便
FPGA虚拟时钟的使用方法

在设置完成后,可以看到Tcl Command Preview中提示的约束指令。

审核编辑:汤梓红

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

    关注

    1600

    文章

    21281

    浏览量

    592860
  • 端口
    +关注

    关注

    4

    文章

    820

    浏览量

    31572
  • 虚拟时钟
    +关注

    关注

    0

    文章

    4

    浏览量

    6549
收藏 人收藏

    评论

    相关推荐

    FPGA时钟的用法

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

    Xilinx FPGA芯片内部时钟和复位信号使用方法

    如果FPGA没有外部时钟源输入,可以通过调用STARTUP原语,来使用FPGA芯片内部的时钟和复位信号,Spartan-6系列内部时钟源是5
    的头像 发表于 10-27 11:26 1067次阅读
    Xilinx <b class='flag-5'>FPGA</b>芯片内部<b class='flag-5'>时钟</b>和复位信号<b class='flag-5'>使用方法</b>

    AT32F系列主频1MHz的使用方法

    演示AT32F系列 主频1MHz的使用方法。MCU系统时钟只可由HICK、HEXT或PLL提供,其时钟最小只能达到4MHz。为了降低功耗,有时应用期望系统时钟只跑1MHz或者更低,此时
    发表于 10-27 07:27

    fpga时钟域通信时,慢时钟如何读取快时钟发送过来的数据?

    域时,由于时钟频率不同,所以可能会产生元件的不稳定情况,导致传输数据的错误。此时我们需要采取一些特殊的措施,来保证跨时钟域传输的正确性。 FPGA时钟域通信的基本实现
    的头像 发表于 10-18 15:23 642次阅读

    Xilinx FPGA的GTx的参考时钟

    本文主要介绍Xilinx FPGA的GTx的参考时钟。下面就从参考时钟的模式、参考时钟的选择等方面进行介绍。
    发表于 09-15 09:14 2332次阅读
    Xilinx <b class='flag-5'>FPGA</b>的GTx的参考<b class='flag-5'>时钟</b>

    Xilinx 7系列FPGA时钟结构解析

    通过上一篇文章“时钟管理技术”,我们了解Xilinx 7系列FPGA主要有全局时钟、区域时钟时钟管理块(CMT)。 通过以上
    发表于 08-31 10:44 1236次阅读
    Xilinx 7系列<b class='flag-5'>FPGA</b>的<b class='flag-5'>时钟</b>结构解析

    FPGA学习笔记:ROM IP核的使用方法

    上一篇介绍了常用的锁相环IP,这一节将介绍一种较为常用的 存储类IP核 ——ROM的使用方法。ROM是 只读存储器 (Read-Only Memory),顾名思义,我们只能读出事先存放在固态中的数据
    的头像 发表于 08-22 15:06 1984次阅读
    <b class='flag-5'>FPGA</b>学习笔记:ROM IP核的<b class='flag-5'>使用方法</b>

    功率电感器的使用方法

    功率电感器的使用方法
    的头像 发表于 07-28 15:21 579次阅读
    功率电感器的<b class='flag-5'>使用方法</b>

    XR虚拟拍摄中摄像机的使用方法

    XR虚拟拍摄是一种新型的拍摄技术,它结合了虚拟现实技术、计算机技术和影像技术,让摄影师能够在虚拟环境中进行拍摄,创造出更加逼真、立体的影像效果。在使用XR虚拟拍摄时,摄像机的
    的头像 发表于 07-24 17:51 591次阅读

    Xilinx FPGA时钟资源概述

    “全局时钟和第二全局时钟资源”是FPGA同步设计的一个重要概念。合理利用该资源可以改善设计的综合和实现效果;如果使用不当,不但会影响设计的工作频率和稳定性等,甚至会导致设计的综合、实现过程出错
    发表于 07-24 11:07 701次阅读
    Xilinx <b class='flag-5'>FPGA</b><b class='flag-5'>时钟</b>资源概述

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

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

    FPGA多bit跨时钟域之格雷码(一)

    FPGA多bit跨时钟域适合将计数器信号转换为格雷码。
    的头像 发表于 05-25 15:21 2027次阅读
    <b class='flag-5'>FPGA</b>多bit跨<b class='flag-5'>时钟</b>域之格雷码(一)

    FPGA时钟域处理方法(二)

    上一篇文章已经讲过了单bit跨时钟域的处理方法,这次解说一下多bit的跨时钟方法
    的头像 发表于 05-25 15:07 621次阅读
    <b class='flag-5'>FPGA</b>跨<b class='flag-5'>时钟</b>域处理<b class='flag-5'>方法</b>(二)

    FPGA时钟域处理方法(一)

    时钟域是FPGA设计中最容易出错的设计模块,而且一旦跨时钟域出现问题,定位排查会非常困难,因为跨时钟域问题一般是偶现的,而且除非是构造特殊用例一般的仿真是发现不了这类问题的。
    的头像 发表于 05-25 15:06 1206次阅读
    <b class='flag-5'>FPGA</b>跨<b class='flag-5'>时钟</b>域处理<b class='flag-5'>方法</b>(一)

    安全光栅,光幕的使用方法

    安全光栅的使用方法
    的头像 发表于 05-16 09:51 662次阅读
    安全光栅,光幕的<b class='flag-5'>使用方法</b>