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

    关注

    1655

    文章

    22281

    浏览量

    630051
  • 端口
    +关注

    关注

    4

    文章

    1097

    浏览量

    33822
  • 虚拟时钟
    +关注

    关注

    0

    文章

    5

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    芯源IR调制器都有哪些具体使用?使用方法是怎样的?

    芯源IR调制器都有哪些具体使用?以及使用方法是怎样的?
    发表于 12-02 06:33

    堆栈的定义,堆栈的使用方法

    和使用; 对于8086CPU,进出堆栈的只能是2字节的数据。 2 堆栈的使用方法 常用的堆栈相关指令包括PUSH POP PUSHF和POPF,语法如下: PUSH 源操作数;将指定操作数入栈保护 POP
    发表于 11-21 06:49

    锡膏的储存及使用方法详解

    锡膏是一种常用的焊接辅助材料,广泛应用于电子、电器、通讯、仪表等行业的焊接工艺中。正确的储存和使用方法对于保证锡膏的品质和焊接效果至关重要。本文将就锡膏的储存和使用方法进行详细介绍,希望能对广大焊接工作者有所帮助。
    的头像 发表于 07-18 17:36 1050次阅读
    锡膏的储存及<b class='flag-5'>使用方法</b>详解

    LCR测试仪的使用方法与注意事项

    LCR测试仪的使用方法、操作注意事项及常见故障处理,帮助读者高效、安全地掌握这一仪器的使用技巧。   二、LCR测试仪的基本使用方法 1. 准备阶段 (1)设备检查:确保测试仪电源线、连接线完好,电源开关关闭。检查测试夹具或探针
    的头像 发表于 04-29 10:36 5172次阅读
    LCR测试仪的<b class='flag-5'>使用方法</b>与注意事项

    Xilinx Ultrascale系列FPGA时钟资源与架构解析

    Ultrascale是赛灵思开发的支持包含步进功能的增强型FPGA架构,相比7系列的28nm工艺,Ultrascale采用20nm的工艺,主要有2个系列:Kintex和Virtex
    的头像 发表于 04-24 11:29 2064次阅读
    Xilinx Ultrascale系列<b class='flag-5'>FPGA</b>的<b class='flag-5'>时钟</b>资源与架构解析

    西门子PLC-模拟量采集计算使用方法

    西门子PLC-模拟量采集计算使用方法,很实用
    发表于 04-09 15:29 0次下载

    【国产FPGA必备教程】——紫光同创FPGA图像视频教程,适用于小眼睛FPGA盘古全系列开发板

    本帖最后由 jf_25420317 于 2025-2-19 18:15 编辑 小眼睛科技针对赛事推出配套视频教程,涵盖紫光同创工具的使用方法、基于紫光同创FPGA图像处理技巧、高速通信
    发表于 02-19 15:44

    精密空调操作使用方法详解

    精密空调操作使用方法详解
    的头像 发表于 02-10 14:44 1874次阅读
    精密空调操作<b class='flag-5'>使用方法</b>详解

    快速了解电源模块的使用方法

    电源是整个电路可靠工作的核心部分。然而,由于电源电路的电流和发热量较大,容易出现故障。今天我为大家介绍一下电源模块的使用方法
    的头像 发表于 01-21 15:24 1390次阅读

    基于FPGA的数字时钟设计

    本次的设计的数字钟思路描述如下,使用3个key按键,上电后,需要先配置数字时钟的时分秒,设计一个按键来控制数字时钟的时,第二个按键来控制数字时钟的分,本次设计没有用按键控制数字时钟的秒
    的头像 发表于 01-21 10:29 1194次阅读
    基于<b class='flag-5'>FPGA</b>的数字<b class='flag-5'>时钟</b>设计

    请问ADC32xx的时钟FPGA直接输出吗?

    大家好,我的ADC32XX 采样率为125M,将转换后的数据发送给FPGA,请问ADC32xx的时钟FPGA直接输出吗?FPGA IO口是3.3V的,如果是这样的话是不是得电平转换
    发表于 01-02 08:30

    瑞芯微开发板/主板Android系统APK签名文件使用方法,实用干货

    瑞芯微主板/开发板Android系统,APK系统签名文件使用方法
    的头像 发表于 12-26 09:43 1497次阅读
    瑞芯微开发板/主板Android系统APK签名文件<b class='flag-5'>使用方法</b>,实用干货

    AB伺服软件使用方法

    AB伺服软件使用方法
    发表于 12-24 14:45 1次下载

    如果用FPGA采集AD1672,如何保障FPGA时钟同1672时钟一致?

    第一次用这种AD芯片,买了个开发板,发现,开发板母板上没有晶振。请教几个问题。 1。母板上用的时钟是SCLK作为源时钟吗? 2、如果用FPGA采集AD1672,如何保障FPGA
    发表于 12-24 06:17

    ADS58C48的输出给FPGA时钟怎样产生的,是只要有输入时钟,就有输出时钟吗?

    最近采用ADS58C48采集数据,ADS58C48的时钟FPGA差分提供。上电后,FPGA首先给ADS58C48配置。ADS58C48输出时钟作为
    发表于 12-20 06:32