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

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

3天内不再提示

FPGA的虚拟时钟用于什么地方?

OpenFPGA 来源:OpenFPGA 作者:OpenFPGA 2022-06-23 10:15 次阅读

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

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


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

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

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

set_input_delay0.5-clockclkA[get_portsA]
set_output_delay1-clockclkB[get_portsB]

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

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

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

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

320b7c64-f28d-11ec-ba43-dac502259ad0.png

create_clock-namesysclk-period10[get_portsclkin]
create_clock-namevirtclk-period10
set_clock_latency-source1[get_clockvirtclk]
set_input_delay-clockvirtclk-max4[get_portsdina]
set_input_delay-clockvirtclk-min2[get_portsdina]
  1. FPGA I/O路径参考时钟来源于内部衍生时钟,但与主时钟的频率关系并不是整数倍

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

32269c7e-f28d-11ec-ba43-dac502259ad0.pngimage-20211206203529124

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

create_clock-period100.000-nameclk[get_portsclk]
set_input_delay-clockclk-max2.000[get_portsdatain]
set_input_delay-clockclk-min1.000[get_portsdatain]

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

create_clock-period100.000-nameclk[get_portsclk]
create_clock-nameclk_port_vclk-period16.67
set_input_delay-clockclk_port_vclk-max2[get_portsdatain]
set_input_delay-clockclk_port_vclk-min1[get_portsdatain]
  1. 在不修改时钟特性的情况下针对I/O指定不同的jitter和latency

这个需求我们可以在Constraints Wizards中指定,简单又方便

3233a7b6-f28d-11ec-ba43-dac502259ad0.pngimage-20211206212729797

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

审核编辑 :李倩


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

    关注

    1602

    文章

    21320

    浏览量

    593156
  • 虚拟时钟
    +关注

    关注

    0

    文章

    4

    浏览量

    6549

原文标题:FPGA的虚拟时钟如何使用?

文章出处:【微信号:Open_FPGA,微信公众号:OpenFPGA】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    FPGA时钟电路结构原理

    FPGA 中包含一些全局时钟资源。以AMD公司近年的主流FPGA为例,这些时钟资源由CMT(时钟管理器)产生,包括DCM、PLL和MMCM等
    发表于 04-25 12:58 43次阅读
    <b class='flag-5'>FPGA</b>的<b class='flag-5'>时钟</b>电路结构原理

    怎么将变量(如const 修饰的变量)统一放到某个地址区域里,应该在什么地方修改?

    怎么将变量(如const 修饰的变量)统一放到某个地址区域里,应该在什么地方修改?
    发表于 02-18 06:22

    时钟Buffer芯片是什么?其作用是啥?它被用在什么地方

    时钟Buffer芯片是什么?其作用是啥?它被用在什么地方时钟Buffer芯片是一种用于管理和增强电子设备中的时钟信号的集成电路。
    的头像 发表于 01-16 15:10 1437次阅读

    FPGA时钟的用法

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

    等电位的作用是什么?等电位箱装在什么地方合适?

    等电位的作用是什么?等电位箱装在什么地方合适? 等电位的作用是为了保持电路中的电势差不发生变化,以确保电路的正常运行。等电位箱是一种用来生成稳定电位并测量电压的仪器,它的主要作用是提供一个稳定
    的头像 发表于 12-26 13:42 556次阅读

    cpld的外接有源晶振频率大小从什么地方看?

    我想问一下altera系列CPLD芯片支持的外接的晶振的最大时钟频率从手册的什么地方能查到,有那个高手能跟我讲一下的?
    发表于 11-06 07:49

    请问软件串口比较适合用在什么地方上?

    软件串口比较适合用在什么地方上?
    发表于 11-02 06:59

    stm8复位电路电容选择要注意什么地方

    stm8复位电路电容选择要注意什么地方
    发表于 10-23 07:23

    在使用和访问数组的时候需要注意些什么地方

    在使用和访问数组的时候需要注意些什么地方
    发表于 10-10 07:41

    ST的LL库在使用的过程中需要注意些什么地方

    ST的LL库在使用的过程中需要注意些什么地方
    发表于 10-09 06:48

    Xilinx FPGA的GTx的参考时钟

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

    请问有keil5下的包吗?在什么地方下载?

    请问有keil5下的包吗?在什么地方下载?
    发表于 09-04 07:59

    请问NVIC_相关函数在什么地方

    如题,NVIC可启动设置中断优先级,这些函数可以用,但是就是找不到定义在什么地方,有点强迫证,想找开看看,请高手指教在哪个文件里面。
    发表于 08-29 06:30

    请问有keil5下的包吗?在什么地方下载?

    请问有keil5下的包吗?在什么地方下载?
    发表于 06-13 06:26

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

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