目录

简介

1、 时钟组件

IBUFG

IBUFGDS

BUFG


简介

原语(Primitive),是Xilinx针对其器件特征开发的一系列常用模块的名字,用户可以将其看成Xilinx公司为用户提供的库函数,是芯片中的基本元件,代表FPGA中实际拥有的硬件逻辑单元,如LUT,D触发器,RAM等,相当于软件中的机器语言。在实现过程中的翻译步骤时,要将所有的设计单元都转译为目标器件中的基本元件,否则就是不可实现的。原语在设计中可以直接例化使用,是最直接的代码输入方式,其和HDL语言的关系,类似于汇编语言和C语言的关系。
Xilinx公司提供的原语,涵盖了FPGA开发的常用领域,但只有相应配置的硬件才能执行相应的原语,并不是所有的原语都可以在任何一款芯片上运行。在Verilog中使用原语非常简单,将其作为模块名直接例化即可。

Xilinx公司的原语按照功能分为10类,包括:计算组件、I/O端口组件、寄存器和锁存器、时钟组件、处理器组件、移位寄存器、配置和检测组件、RAM/ROM组件、Slice/CLB组件以及G比特收发器组件。下面分别对其进行详细介绍。

1、 时钟组件

目前,大型设计一般推荐使用同步时序电路。同步时序电路基于时钟触发沿设计,对时钟的周期、占空比、延时和抖动提出了更高的要求。为了满足同步时序设计的要求,一般在FPGA设计中采用全局时钟资源驱动设计的主时钟,以达到最低的时钟抖动和延迟。 FPGA 全局时钟资源一般使用全铜层工艺实现,并设计了专用时钟缓冲与驱动结构,从而使全局时钟到达芯片内部的所有可配置单元(CLB)、I/O单元(IOB)和选择性块RAM(Block Select RAM)的时延和抖动都为最小。为了适应复杂设计的需要,Xilinx的FPGA中集成的专用时钟资源与数字延迟锁相环(DLL)的数目不断增加,最新的 Virtex II器件最多可以提供16个全局时钟输入端口和8个数字时钟管理模块(DCM)。
与全局时钟资源相关的原语常用的与全局时钟资源相关的Xilinx器件原语包括:IBUFG、IBUFGDS、BUFG、BUFGP、BUFGCE、BUFGMUX、BUFGDLL和DCM等。

IBUFG

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

IBUFGDS

IBUFG的差分形式,当信号从一对差分全局时钟管脚输入时,必须使用IBUFGDS作为全局时钟输入缓冲。IBUFG支持BLVDS、LDT、LVDSEXT、LVDS、LVPECL和ULVDS等多种格式的IO标准。

BUFG

全局缓冲,它的输入是IBUFG的输出,BUFG的输出到达FPGA内部的IOB、CLB、选择性块RAM的时钟延迟和抖动最小。
BUFG是具有高扇出的全局时钟缓冲器,一般由综合器自动推断并使用,其和同类原语的RTL结构如图所示。全局时钟是具有高扇出驱动能力的缓冲器,可以将信号连到时钟抖动可以忽略不计的全局时钟网络,BUFG组件还可应用于典型的高扇出信号和网络,如复位信号和时钟使能信号。如果要对全局时钟实现PLL或DCM等时钟管理,则需要手动例化该缓冲器。其例化的代码模板如下所示:
// BUFG: 全局时钟缓存(Global Clock Buffer),只能以内部信号驱动
// Xilinx HDL库向导版本,ISE 9.1
BUFG BUFG_inst (
.O(O), //时钟缓存输出信号
.I(I) // /时钟缓存输入信号
);
// 结束BUFG_ins模块的例化过程

BUFG—RTL

4. BUFGCE是带有时钟使能端的全局缓冲。它有一个输入I、一个使能端CE和一个输出端O。只有当BUFGCE的使能端CE有效(高电平)时,BUFGCE才有输出。

5. BUFGMUX是全局时钟选择缓冲,它有I0和I1两个输入,一个控制端S,一个输出端O。当S为低电平时输出时钟为I0,反之为I1。需要指出的是BUFGMUX的应用十分灵活,I0和I1两个输入时钟甚至可以为异步关系。

6. BUFGP相当于IBUG加上BUFG。

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

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

全局时钟资源的使用方法 全局时钟资源的使用方法(五种)

1:IBUFG + BUFG的使用方法:

IBUFG后面连接BUFG的方法是最基本的全局时钟资源使用方法,由于IBUFG组合BUFG相当于BUFGP,所以在这种使用方法也称为BUFGP方法。

2. IBUFGDS + BUFG的使用方法:

当输入时钟信号为差分信号时,需要使用IBUFGDS代替IBUFG。

3. IBUFG + DCM + BUFG的使用方法:

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

4. Logic + BUFG的使用方法:

BUFG不但可以驱动IBUFG的输出,还可以驱动其它普通信号的输出。当某个信号(时钟、使能、快速路径)的扇出非常大,并且要求抖动延迟最小时,可以使用BUFG驱动该信号,使该信号利用全局时钟资源。但需要注意的是,普通IO的输入或普通片内信号进入全局时钟布线层需要一个固有的延时,一般在 10ns左右,即普通IO和普通片内信号从输入到BUFG输出有一个约10ns左右的固有延时,但是BUFG的输出到片内所有单元(IOB、CLB、选择性块RAM)的延时可以忽略不计为“0”ns。

5. Logic + DCM + BUFG的使用方法:

DCM同样也可以控制并变换普通时钟信号,即DCM的输入也可以是普通片内信号。使用全局时钟资源的注意事项全局时钟资源必须满足的重要原则是:使用 IBUFG或IBUFGDS的充分必要条件是信号从专用全局时钟管脚输入。换言之,当某个信号从全局时钟管脚输入,不论它是否为时钟信号,都必须使用 IBUFG或IBUFGDS;如果对某个信号使用了IBUFG或IBUFGDS硬件原语,则这个信号必定是从全局时钟管脚输入的。如果违反了这条原则,那么在布局布线时会报错。这条规则的使用是由FPGA的内部结构决定的:IBUFG和IBUFGDS的输入端仅仅与芯片的专用全局时钟输入管脚有物理连接,与普通IO和其它内部CLB等没有物理连接。另外,由于BUFGP相当于IBUFG和BUFG的组合,所以BUFGP的使用也必须遵循上述的原则。

Xilinx原语使用方法相关推荐

  1. Xilinx 原语简介--(Xilinx FPGA开发实用教程)

    目录 前言 1.Xilinx 原语简介 1.1 时钟组件原语(Clock Components) 1.1.1 BUFG 1.1.2 BUFGMUX 1.2 I/O端口组件(IO Components) ...

  2. FPGA原语使用方法

    1.1 FPGA原语使用方法 1.1.1 本节目录 1)本节目录: 2)本节引言: 3)FPGA简介: 4)FPGA原语使用方法: 5)结束语. 1.1.2 本节引言 "不积跬步,无以至千里 ...

  3. Xilinx原语的用法

    Xilinx公司原语的使用方法 原语,其英文名字为Primitive,是Xilinx针对其器件特征开发的一系列常用模块的名字,用户可以将其看成Xilinx公司为用户提供的库函数,类似于C++中的&qu ...

  4. (21)xilinx PCIE 开发方法(学无止境)

    1 xilinx FPGA PCIE开发总结 1)参考资料 主要是阅读PCIE IP用户手册:其次就是利用网络平台进行PCIE理论知识充电. <pg054-7series-pcie.pdf> ...

  5. Xilinx原语的使用

    一.什么是原语? 原语,英文名称primitive,是FPGA软件集成开发环境所提供的一系列底层逻辑功能单元.由于是底层逻辑功能单元,所以它们往往跟目标FPGA芯片以及芯片厂商紧密相关,因此不同厂商. ...

  6. 【XINLIX 原语】XILINX 原语的使用之 IBUFDS 差分转单端、OBUFDS 单端转差分

    目录 IBUFGDS IBUFDS 介绍 IBUFDS 示意图 例化方式 OBUFDS OBUFDS 介绍 OBUFDS 示意图 例化方式 在 XILINX 中有许多原语,常见的差分转单端 IBUFD ...

  7. Xilinx原语ODDR的使用

    ODDR is Xilinx HDL Language Template. ODDR:Output Double Data Rate(DDR) . 在介绍ODDR之前,我们先简单了解一下OLOGIC. ...

  8. ODDR2原语使用方法

    前言 写出这篇博客是因为在spartan6使用中,发现PLL产生的时钟不能直接接在通用I/O管脚上,两者之间通常会加上ODDR2缓冲来实现连接. ODDR2模块 通过查看spartan6 select ...

  9. Xilinx FPGA中SRL(移位寄存器)资源

    SRL(移位寄存器)资源,在FPGA中都有,不过是叫不同的名字.Xilinx FPGA内部的LUT有个特殊功能,就是可以配置成可变长度SRL. 5输入的一个LUT可以变成32bit 的SRL 6输入的 ...

最新文章

  1. eclipes 安装 pytdev,svn,插件
  2. 004_列表list操作
  3. C#语言基础——7月21日
  4. 跟一个傻逼程序员合作是什么感受?
  5. java字符串的方法 1118
  6. java7 文件_Java SE 7新特性之文件操作(9) - 遍历目录树
  7. iStack详解(一)——iStack基本原理
  8. landsat8数据下载相关小知识
  9. linux中安装无线网卡驱动,在linux下安装无线网卡驱动
  10. win7录屏_好哈屏幕录制下载_好哈屏幕录制最新官方版下载[录屏软件]
  11. Docker实时查看日志命令
  12. 戴尔燃7000笔记本充不进去电,开机提示Alert!,点Continue进去后电脑变卡的解决方案。
  13. 最最最详细的C语言教程笔记零起步(10)进阶必备 同笔者一起学习
  14. SCI (SSCI) 投稿全过程信件模板一览(Cover letter,催稿信,修改稿及回复,感谢信,询问校稿及校稿信) (转)
  15. 春招实习之路(附面经)-Laochou
  16. petalinux使用-终极教程
  17. ES6 数组转为对象 ,以及 find 在数组里面找到对应一条数据
  18. FFmpeg如何进行简单的音频转换
  19. oracle打开mdb文件,MDB文件扩展名 - 什么是.mdb以及如何打开? - ReviverSoft
  20. 互联网消费金融----互联网消费金融【刘洋*著】的总结

热门文章

  1. 品牌数字化升级,如何借力用户画像实现精准营销? - whale 帷幄
  2. deepfakes怎么用_如何使用 Deepfakes 换脸(示例代码)
  3. 如何将手机投屏到windows10上?
  4. 光交换机配置与维护常用命令
  5. IMU参数对比(未完待续)
  6. CCS8.0和XDS100V3仿真器连接目标板失败的解决办法
  7. rust最美建筑_美丽心灵16_ If I Rest, I Rust
  8. python 董付国程序设计基础与应用第三版pdf_Python 程序设计基础(董付国 著)完整版PDF[6MB]...
  9. 原始值(primitive value)
  10. 通过网络地址下载图片示例