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

    关注

    1626

    文章

    21667

    浏览量

    601858
  • 虚拟时钟
    +关注

    关注

    0

    文章

    5

    浏览量

    6574

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

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

收藏 人收藏

    评论

    相关推荐

    请问TLV320AIC3254EVM-U 开发板程序丢失,怎么通过USB重新写入,程序从什么地方可以得到?

    请问TLV320AIC3254EVM-U 开发板程序丢失,怎么通过USB重新写入,程序从什么地方可以得到,谢谢?
    发表于 11-06 06:55

    110配线架可用于什么地方?rj4模块化配线架可用于什么地方

    110配线架和RJ45模块化配线架都是网络综合布线中的重要组成部分,它们各自具有特定的应用场景和功能。 110配线架可用于: 计算机网络:在大型数据网络中,110配线架能够建立和管理配线系统,确保
    的头像 发表于 09-11 09:55 392次阅读

    FPGA如何消除时钟抖动

    FPGA(现场可编程门阵列)设计中,消除时钟抖动是一个关键任务,因为时钟抖动会直接影响系统的时序性能、稳定性和可靠性。以下将详细阐述FPGA中消除
    的头像 发表于 08-19 17:58 1036次阅读

    MAX13085EESA+与MAX13485EESA+的差异在什么地方

    MAX13085EESA+与MAX13485EESA+,这两款同系列的8SO芯片的差异在什么地方,是否可以互相替代
    发表于 05-23 08:10

    FPGA时钟电路结构原理

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

    什么是CBB81高压谐振电容器?CBB81电容主要用在什么地方呢?

    像我们平时使用量最大的CBB22电容,它的体积、耐压都不算太大,但CBB81电容有点不一样,它的体积相对更大,而且额定电压最高可以做到3000VDC,耐高频、高压、大电流的性能更好,CBB81电容主要用在什么地方呢?
    的头像 发表于 04-02 12:24 1303次阅读

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

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

    FPGA输入的时钟信号必须是方波么?正弦波会有影响么?

    FPGA输入的时钟信号必须是方波么?正弦波会有影响么? FPGA是一种可编程逻辑器件,通常用于实现数字电路。输入时钟信号是
    的头像 发表于 01-31 11:31 3265次阅读

    FPGA时钟内部设计方案

    。 Xilinx FPGA提供了一些用于差分时钟的专用原语:IBUFDS、IBUFGDS、IBUFGDS_DIFF、OBUFDS、0BUFTDS等(见图2)。     时钟
    发表于 01-22 09:30 569次阅读
    <b class='flag-5'>FPGA</b><b class='flag-5'>时钟</b>内部设计方案

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

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

    FPGA时钟的用法

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

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

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

    AD7705读出16位数据始终是0x8001,问题出在什么地方

    AD7705采用3.3V供电,REF=2.5V,按照数据手册写入 0x200x0c0x100x40,写入0x38后,读出16位数据始终是0x8001.不知问题出在什么地方
    发表于 12-11 07:23

    高压放大器用于什么地方使用

    高压放大器是一种电子设备,用于将低电压信号放大到高电压水平。它主要应用于需要高电压的领域,下面将详细介绍其主要应用地方。 科研实验室:科研实验室通常需要进行高电压实验,例如粒子加速器、高压放电实验等
    的头像 发表于 11-30 10:42 312次阅读
    高压放大器<b class='flag-5'>用于</b><b class='flag-5'>什么地方</b>使用

    虹科干货 | 适用于基于FPGA的网络设备的IEEE 1588透明时钟架构

    导读:在基于FPGA的网络设备中,精确的时间同步至关重要。IEEE 1588标准定义的精确时间协议(PTP)为网络中的设备提供了纳秒级的时间同步。本文将介绍虹科提供的适用于基于FPGA的网络设备
    的头像 发表于 11-27 10:57 1202次阅读
    虹科干货 | 适<b class='flag-5'>用于</b>基于<b class='flag-5'>FPGA</b>的网络设备的IEEE 1588透明<b class='flag-5'>时钟</b>架构