一、部分常用时钟原语介绍

 1、

        IBUFDS、OBUFDS:差分信号缓冲器,用于不同电平接口之间缓冲和转换。用于普通bank的差分时钟转单端。

1)、IBUFDS为差分输入缓冲器,支持低压差分信号LVCMOS、LVDS等:

端口 IO 位宽 功能
I        input 1 差分输入+
IB input 1 差分输入-
O output 1 输出
input output
I IB O
0 0 不改变,和上次输出相同
0 1 0
1 0 1
1 1 不改变,和上次输出相同
//   IBUFDS    : In order to incorporate this function into the design,
//   Verilog   : the following instance declaration needs to be placed
//  instance   : in the body of the design code.  The instance name
// declaration : (IBUFDS_inst) and/or the port declarations within the
//    code     : parenthesis may be changed to properly reference and
//             : connect this function to the design.  All inputs
//             : and outputs must be connected.//  <-----Cut code below this line---->// IBUFDS: Differential Input Buffer//         Virtex-7// Xilinx HDL Language Template, version 2018.2IBUFDS #(.DIFF_TERM("FALSE"),       // Differential Termination.IBUF_LOW_PWR("TRUE"),     // Low power="TRUE", Highest performance="FALSE" .IOSTANDARD("DEFAULT")     // Specify the input I/O standard) IBUFDS_inst (.O(O),  // Buffer output.I(I),  // Diff_p buffer input (connect directly to top-level port).IB(IB) // Diff_n buffer input (connect directly to top-level port));// End of IBUFDS_inst instantiation

2)、 OBUFDS为查分数出缓冲器,用于将内部逻辑信号转换成差分信号输出,支持TMDS、LVDS等电平。

端口 IO 位宽 功能
O output 1 差分输出+
OB output 1 差分输出-
I input 1 输入
input output
I O OB
0 0 1
1 1 0
//     OBUFDS      : In order to incorporate this function into the design,
//     Verilog     : the following instance declaration needs to be placed
//    instance     : in the body of the design code.  The instance name
//   declaration   : (OBUFDS_inst) and/or the port declarations within the
//      code       : parenthesis may be changed to properly reference and
//                 : connect this function to the design.  Delete or comment
//                 : out inputs/outs that are not necessary.//  <-----Cut code below this line---->// OBUFDS: Differential Output Buffer//         Artix-7// Xilinx HDL Language Template, version 2018.2OBUFDS #(.IOSTANDARD("DEFAULT"), // Specify the output I/O standard.SLEW("SLOW")           // Specify the output slew rate) OBUFDS_inst (.O(O),     // Diff_p output (connect directly to top-level port).OB(OB),   // Diff_n output (connect directly to top-level port).I(I)      // Buffer input);// End of OBUFDS_inst instantiation

2、

IBUFDS_GTEx,x=2/3/4,差分缓冲器,用于高速BANK(GTY BANK)的两路参考时钟输入。

其中UltraScale使用IBUFDS_GTE3作为GTY bank的差分缓冲器,UltraScale+采用IBUFDS_GTE4。对于高速BANK,需要使用IBUFDS_GTEx(不同系列的FPGA x的值不同,如x=2/3/4),如果仍然使用IBUFDS,可能会在编译或者生成bit文件时报错,提示时钟约束有问题,约束后可以生成bit文件,但是转出的单端时钟不能使用(正常情况下差分时钟的电平是不需要约束的)。

UltraScale架构中的GTY收发器是高速收发器,在UltraScale FPGA中支持500Mb/s到30.5Gb/s,在UltraScale+ FPGA中支持32.75Gb/s。每个GTY BANK包括四路收发通道,即一个QUAD,每个收发通道具有独立的通道锁相环CPLL,为收发数据提供参考时钟,每个QUAD还有两个共用的QPLL时钟资源可提供到四个收发通道。

使用原语驱动GTX/GTH/GHY参考时钟,每个Quad有两个IBUFDS_GTEx元件,驱动GTREFCLK0和GTREFCLK1,常用模式是实例化一个IBUFDS_GTEx并驱动两个参考时钟之一。

// IBUFDS_GTE4 : In order to incorporate this function into the design,
//   Verilog   : the following instance declaration needs to be placed
//  instance   : in the body of the design code.  The instance name
// declaration : (IBUFDS_GTE4_inst) and/or the port declarations within the
//    code     : parenthesis may be changed to properly reference and
//             : connect this function to the design.  All inputs
//             : and outputs must be connected.//  <-----Cut code below this line---->// IBUFDS_GTE4: Gigabit Transceiver Buffer//              Kintex UltraScale+// Xilinx HDL Language Template, version 2018.2IBUFDS_GTE4 #(.REFCLK_EN_TX_PATH(1'b0),   // Refer to Transceiver User Guide.REFCLK_HROW_CK_SEL(2'b00), // Refer to Transceiver User Guide.REFCLK_ICNTL_RX(2'b00)     // Refer to Transceiver User Guide)IBUFDS_GTE4_inst (.O(O),         // 1-bit output: Refer to Transceiver User Guide.ODIV2(ODIV2), // 1-bit output: Refer to Transceiver User Guide.CEB(CEB),     // 1-bit input: Refer to Transceiver User Guide.I(I),         // 1-bit input: Refer to Transceiver User Guide.IB(IB)        // 1-bit input: Refer to Transceiver User Guide);// End of IBUFDS_GTE4_inst instantiation

///        IBUFG/BUFG/......中'G'为Global  Clock/General Clock? 

3、

IBUFG即输入全局缓冲,  是与专用全局时钟输入管脚相连接的首级全局缓冲。所有从全局时钟管脚输入的信号必须经过IBUF单元,否则布局布线时会报错。IBUFG支持AGP、CTT、GTL、GTLP、HSTL、LVCMOS、LVDCI等多种格式的IO标准。

4、

BUFG是全局缓冲它的输入是IBUFG的输出,BUFG的输出到达FPGA内部的IOB、CLB、RAM的时钟延迟和抖动最小。

5、

BUFGP相当于IBUFG + BUFG。

6、

BUFGCE是带有使能端的全局缓冲。有一个输入I、一个使能端CE、一个输出O,只有当BUFGCE使能端有效时,BUFGCE才有输出。

7、

BUFGMUX全局时钟选择缓冲,有I0和I1两个输入,一个控制端S,一个输出端口O。当S为低电平时输出时钟为I0,否则为I1。BUFGMUX使用灵活,I0和I1两个输入时钟可以是异步关系。

8、

BUFGDLL全局缓冲延迟锁相环,相当于BUFG+DLL的结合,在早期设计中经常使用,用以完成全局时钟同步和驱动等功能,随着数字时钟管理单元(DCM)的日益完善,目前BUFGDLL的应用已经逐渐被DCM替代。

9、

IBUFGDS/OBUFGDS(专用差分输入时钟缓冲器)是IBUFG/OBUFG的差分形式,当信号从一对差分全局时钟管脚输入时,必须使用IBUFGDS作为全局时钟输入缓冲。IBUFGDS实质上是一个连接时钟信号BUFG或DCM的专用的差分信号输入缓冲器,在IBUFGDS中一个电平接口用两个独立的电平接口(I和IB)表示,一个认为是主信号一个是从信号,相位相反。(7系列中没有找到?)

10、

DCM数字时钟管理单元,主要完成时钟同步、移相、分频、倍频、去抖等。DCM与全局时钟有着密不可分的联系,为达到最小延迟和抖动,几乎所有的DCM应用都要使用全局缓冲资源。DCM可以用xilinx ISE中的Architecture Wizard直接生成。

二、全局时钟资源使用方法

1、 IBUFG  + BUFG

IBUFG后面连接BUFG,这种组合相当于BUFGP。

2、IBUFGDS + BUFG

当输入时钟信号为差分信号时,使用IBUFGDS代替IBUFG,即IBUFGDS + BUFG。

3、IBUFG + DCM + BUFG

这种灵活的方法对全局时钟的控制更加有效,通过DCM模块不仅能对时钟进行同步、移相、分频、倍频等,而且可以使全局时钟输出达到无抖动延迟。

参考:XILINX Ultrascale/Ultrascale+ 高速收发器时钟MGTHREFCLK原语调用_青豆哒哒的博客-CSDN博客

IBUFDS、IBUFGDS和OBUFDS_hi请叫我学霸的博客-CSDN博客_ibufds

BUFG、差分转单端之IBUFDS和IBUFDS_GTE2区别_朝阳群众&热心市民的博客-CSDN博客_ibufds_gte2

https://www.csdn.net/tags/OtDaIgzsNDYwMDMtYmxvZwO0O0OO0O0O.html

xilinx提供了丰富的原语,可以将之看成FPGA开发可以使用的库函数,原语在FPGA中具有与之对应的硬件逻辑单元,但也注意,不同的FPGA的原语可能会有所不同,但常用的原语不同器件相似度极高。按照功能,主要分为:计算组件、I/O端口组件、寄存器和锁存器、时钟组件、处理器组件、移位寄存器、配置和检测组件、RAM/ROM组件、Slice/CLB组件以及G比特组件。

选择时钟组件,对时钟组件的原语进行介绍,时钟组件包括各种全局时钟缓冲器、全局时钟复用器以及高级数字时钟管理模块,主要介绍前两个。

参考:

xilinx时钟组件的原语

//-----------------------------------下一篇博客参考文章----------------------------------------

Xilinx FPGA器件中时钟资源的说明以及使用 - 简书

FPGA时钟资源介绍-元件功能 - 天山明月 - 博客园

xilinx FPGA全局时钟资源的使用 - 朝雨轻尘 - 博客园

Xilinx 7系列原语使用(时钟相关)——(一)相关推荐

  1. 【Vivado那些事】Xilinx 7系列时钟结构详解

    Xilinx 7系列时钟结构 xilinx 的 FPGA 时钟结构,7 系列 FPGA 的时钟结构和前面几个系列的时钟结构有了很大的区别,7系列的时钟结构如下图所示. Clock Region:FPG ...

  2. 痞子衡嵌入式:浅谈i.MXRT1xxx系列MCU时钟相关功能引脚的作用

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是i.MXRT1xxx系列MCU时钟相关功能引脚作用. 如果我们从一颗 MCU 芯片的引脚分类来看芯片功能,大概可以分为三大类:电源.时钟 ...

  3. 7,xilinx 7系列FPGA理论篇——CMT时钟模块简介

    上篇咱们仅仅简要的介绍了时钟的用法,并未详细的说明,主要是因为很多时钟用法是针对特定的应用需求,无法一一介绍.本篇咱们将重提上篇的CMT时钟模块,聊一聊它的用法.可以这么说,每个靠谱的FPGA设计里都 ...

  4. 6,xilinx 7系列FPGA理论篇——时钟操作法则

    上一篇咱们介绍了7系列FPGA的时钟区域的内部结构,本篇咱们接着介绍如何实际操作时钟.不说其它的,直接先上两张图,大家如果能看懂这两张图,那么就不用浪费时间往下看了..... 1,MRCC:被外部差分 ...

  5. Xilinx 7系列FPGA 高速收发器GTX/GTH的一些基本概念

    本来写了一篇关于高速收发器的初步调试方案的介绍,给出一些遇到问题时初步的调试建议.但是发现其中涉及到很多概念.逐一解释会导致文章过于冗长.所以单独写一篇基本概念的介绍,基于Xilinx 7系列的GTX ...

  6. axi dma 寄存器配置_FPGA Xilinx Zynq 系列(三十二)AXI 接口

    大侠好,欢迎来到FPGA技术江湖,江湖偌大,相见即是缘分.大侠可以关注FPGA技术江湖,在"闯荡江湖"."行侠仗义"栏里获取其他感兴趣的资源,或者一起煮酒言欢. ...

  7. FPGA block RAM和distributed RAM区别(以及xilinx 7系列CLB资源)

    原地地址:FPGA block RAM和distributed RAM区别 区别之1 block ram 的输出需要时钟,distributed ram在给出地址后既可输出数据. 区别之2 distr ...

  8. Xilinx FPGA用户原语介绍

    原语,即primitive.不同的厂商,原语不同:同一家的FPGA,不同型号的芯片,可以也不一样:原语类似最底层的描述方法.使用原语的好处,可以直接例化使用,不用定制IP:即可通过复制原语的语句,然后 ...

  9. Xilinx 7系列FPGA收发器架构之硬件设计指导(一)

    引言:本文我们介绍Xilinx 7系列FPGA收发器硬件设计主要注意的一些问题,指导硬件设计人员进行原理图及PCB设计.本文介绍以下内容: GTX/GTH收发器管脚概述 GTX/GTH收发器时钟设计 ...

最新文章

  1. 旅游网站的主页代码_一个在优化的网站主页内容应该如何设计?
  2. 根据卡号获取银行卡名字
  3. ADO.NET Entity Framework之ObjectQuery
  4. Firefox必备的24款web开发插件[转]
  5. Xilinx FPGA单端时钟设计方法
  6. 华为100万部鸿蒙,2019年Q4发布 华为100万部鸿蒙OS手机已开测
  7. easyui 年份下拉框的构建
  8. 在windows下安装Linux双系统共存不需要改引导(U盘安装版本)
  9. JDK1.8下载 百度网盘
  10. 直面不确定性 看致远互联如何帮助组织自生长
  11. 根据汉字自动生成拼音
  12. 争议带货达人董明珠:直播带货476亿 却被质疑经销商刷单
  13. R语言中的函数5:purrr:map()
  14. RT-Thread实战笔记|LD3320非限定词条语音控制器使用详解
  15. ZK-SNARKS | 创建第一个零知识snark电路
  16. 成长与危险相伴是常态,加强安全审计才是硬道理
  17. Eclipse中Tomcat“子容器启动失败”
  18. 京东计算机新书销量榜 TOP 1
  19. android基础题型
  20. Unity 关于MatchVS使用static类型导致GameObject.Find与Action等不可用的解决方法

热门文章

  1. matlab仿真直流电机,[转载]基于Matlab/Simulink的无刷直流电机控制仿真研究
  2. 电子设计教程12:Buck降压电路
  3. win11cf烟雾头怎么调?
  4. 杰里之升级复位可以选择软复位跳转和绝对地址跳转【篇】
  5. 同样协调个事情,为什么有人一说就通,有人一说就炸?(转,知乎)
  6. 骑行中央公园,探索纽约“后花园”别样的美
  7. 【Unity】Unity 欧拉角、四元数、万向节死锁、四元数转轴角
  8. 是你吗?为超炫的 USB 硬件编写更好的软件
  9. 全球及中国M2M组件行业需求规模与投资效益预测报告2022~2027年
  10. 用史上最牛学习法自学编程,不香吗?