目录

背景

IOBUF

IOBUFDS

OBUF

OBUFDS

OBUFT

OBUFTDS


背景

首先给出这个专题的第一个地址:【FPGA】Buffer专题介绍(一)

第二篇的地址:【FPGA】Buffer专题介绍(二)

好了,正式进入主题:


IOBUF

原语:双向缓冲(Primitive: Bi-Directional Buffer)

The design element is a bidirectional single-ended I/O Buffer used to connect internal logic to an external bidirectional pin.

设计元素是双向单端I / O缓冲器,用于将内部逻辑连接到外部双向引脚。

这个Buffer不需要用户自己例化,综合工具来推断什么时候使用,并自动添加到设计中。

有关双向端口我还没用过,这里不便说太多。

如果非要例化使用,也可以,给出例化模板:

Verilog Instantiation Template
// IOBUF: Single-ended Bi-directional Buffer
// All devices
// Xilinx HDL Libraries Guide, version 11.2
IOBUF #(
.DRIVE(12), // Specify the output drive strength
.IBUF_DELAY_VALUE("0"), // Specify the amount of added input delay for the buffer,
// "0"-"12" (Spartan-3E only), "0"-"16" (Spartan-3A only)
.IFD_DELAY_VALUE("AUTO"), // Specify the amount of added delay for input register,
// "AUTO", "0"-"6" (Spartan-3E only), "0"-"8" (Spartan-3A only)
.IOSTANDARD("DEFAULT"), // Specify the I/O standard
.SLEW("SLOW") // Specify the output slew rate
) IOBUF_inst (
.O(O), // Buffer output
.IO(IO), // Buffer inout port (connect directly to top-level port)
.I(I), // Buffer input
.T(T) // 3-state enable input, high=input, low=output
);
// End of IOBUF_inst instantiation

IOBUFDS

原语:具有低电平有效输出的3态差分信号I / O缓冲器(Primitive: 3-State Differential Signaling I/O Buffer with Active Low Output Enable)

需要自己例化使用,有没有发现只要是差分转单端的,都需要自己例化使用。

Verilog Instantiation Template
// IOBUFDS: Differential Bi-directional Buffer
// Virtex-4/5, Spartan-3/3E/3A
// Xilinx HDL Libraries Guide, version 11.2
IOBUFDS #(
.IBUF_DELAY_VALUE("0"), // Specify the amount of added input delay for the buffer,
// "0"-"12" (Spartan-3E only), "0"-"16" (Spartan-3A only)
.IFD_DELAY_VALUE("AUTO"), // Specify the amount of added delay for input register,
// "AUTO", "0"-"6" (Spartan-3E only), "0"-"8" (Spartan-3A only)
.IOSTANDARD("DEFAULT") // Specify the I/O standard
) IOBUFDS_inst (
.O(O), // Buffer output
.IO(IO), // Diff_p inout (connect directly to top-level port)
.IOB(IOB), // Diff_n inout (connect directly to top-level port)
.I(I), // Buffer input
.T(T) // 3-state enable input, high=input, low=output
);
// End of IOBUFDS_inst instantiation

OBUF

数据手册描述仅供参考:

This design element is a simple output buffer used to drive output signals to the FPGA device pins that do not need to be 3-stated (constantly driven). Either an OBUF, OBUFT, OBUFDS, or OBUFTDS must be connected to every output port in the design.
This element isolates the internal circuit and provides drive current for signals leaving a chip. It exists in input/output blocks (IOB). Its output (O) is connected to an OPAD or an IOPAD. The interface standard used by this element is LVTTL. Also, this element has selectable drive and slew rates using the DRIVE and SLOW or FAST constraints. The defaults are DRIVE=12 mA and SLOW slew.

该设计元素是一个简单的输出缓冲器,用于将输出信号驱动到FPGA器件引脚,这些引脚不需要是三态的(恒定驱动)。 必须将OBUF,OBUFT,OBUFDS或OBUFTDS连接到设计中的每个输出端口。
该元件隔离内部电路并为离开芯片的信号提供驱动电流。 它存在于输入/输出块(IOB)中。 其输出(O)连接到OPAD或IOPAD。 该元素使用的接口标准是LVTTL。 此外,该元件具有可选的驱动和转换速率,使用DRIVE和SLOW或FAST约束。 默认值为DRIVE = 12 mA和SLOW转换。

该元件不需要用户干预,综合工具根据需求自动添加。如果非要例化使用,也可以,给出模板;

Verilog Instantiation Template
// OBUF: Single-ended Output Buffer
// All devices
// Xilinx HDL Libraries Guide, version 11.2
OBUF #(
.DRIVE(12), // Specify the output drive strength
.IOSTANDARD("DEFAULT"), // Specify the output I/O standard
.SLEW("SLOW") // Specify the output slew rate
) OBUF_inst (
.O(O), // Buffer output (connect directly to top-level port)
.I(I) // Buffer input
);
// End of OBUF_inst instantiation

OBUFDS

差分信号输出缓冲

看了这么多Buffer,也该总结出规律了,这个是差分的输出buffer,肯定需要用户自己例化使用。

给出用户手册的描述吧:

This design element is a single output buffer that supports low-voltage, differential signaling (1.8 v CMOS). OBUFDS isolates the internal circuit and provides drive current for signals leaving the chip. Its output is represented as two distinct ports (O and OB), one deemed the "master" and the other the "slave." The master and the slave are opposite phases of the same logical signal (for example, MYNET and MYNETB).

该设计元件是单输出缓冲器,支持低压差分信号(1.8 v CMOS)。 OBUFDS隔离内部电路,为离开芯片的信号提供驱动电流。 它的输出表示为两个不同的端口(O和OB),一个被视为“主”,另一个被视为“从属”。 主设备和从设备是相同逻辑信号的相位(例如,MYNET和MYNETB)。

不用看也知道这是干嘛的。

Verilog Instantiation Template
// OBUFDS: Differential Output Buffer
// Virtex-4/5, Spartan-3/3E/3A
// Xilinx HDL Libraries Guide, version 11.2
OBUFDS #(
.IOSTANDARD("DEFAULT") // Specify the output I/O standard
) 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

OBUFT

有一个低电平有效的使能端,三态输出缓冲

This design element is a single, 3-state output buffer with input I, output O, and active-Low output enables (T).
This element uses the LVTTL standard and has selectable drive and slew rates using the DRIVE and SLOW or FAST constraints. The defaults are DRIVE=12 mA and SLOW slew.
When T is Low, data on the inputs of the buffers is transferred to the corresponding outputs. When T is High, the output is high impedance (off or Z state). OBUFTs are generally used when a single-ended output is needed with a 3-state capability, such as the case when building bidirectional I/O.

此设计元素是单个3态输出缓冲器,具有输入I,输出O和低电平有效输出使能(T)。
该元件使用LVTTL标准,并使用DRIVE和SLOW或FAST约束选择驱动和转换速率。 默认值为DRIVE = 12 mA和SLOW转换。
当T为低时,缓冲器输入的数据被传送到相应的输出。 当T为高电平时,输出为高阻抗(关闭或Z状态)。 OBUFT通常在需要具有3态功能的单端输出时使用,例如构建双向I / O时的情况。

综合工具自己添加进设计中。但也可以例化使用:

Verilog Instantiation Template
// OBUFT: Single-ended 3-state Output Buffer
// All devices
// Xilinx HDL Libraries Guide, version 11.2
OBUFT #(
.DRIVE(12), // Specify the output drive strength
.IOSTANDARD("DEFAULT"), // Specify the output I/O standard
.SLEW("SLOW") // Specify the output slew rate
) OBUFT_inst (
.O(O), // Buffer output (connect directly to top-level port)
.I(I), // Buffer input
.T(T) // 3-state enable input
);
// End of OBUFT_inst instantiation

OBUFTDS

这个我真的不想说了,就多了一个输出是差分的。

自己例化使用。

Verilog Instantiation Template
// OBUFTDS: Differential 3-state Output Buffer
// Virtex-4/5, Spartan-3/3E/3A
// Xilinx HDL Libraries Guide, version 11.2
OBUFTDS #(
.IOSTANDARD("DEFAULT") // Specify the output I/O standard
) OBUFTDS_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
.T(T) // 3-state enable input
);
// End of OBUFTDS_inst instantiation

三篇文章,终于把有关buffer的东西总结的差不多了,说实话,有点力不从心了,由于感冒,导致胃口也不好,几天没好好吃东西了,眼睛也有点花,可还是坚持学习,把这一块写完,我就可以回去休息了。

有些东西理解的不够,还望见谅。

我最后应该还会总结一篇关于Buffer的博文,聚集需要用户自己例化才能使用的一些常见的buffer,有针对性而非这样笼统。撤了撤了,想法真多,流水线还没总结呢。

【FPGA】Buffer专题介绍(三)相关推荐

  1. 【FPGA】Buffer专题介绍(二)

    目录 背景 IBUF IBUFDS IBUFG IBUFGDS 背景 这篇博文是下面这篇博文的继续: [FPGA]Buffer专题介绍(一) 但介绍方式我想放的更自由一点,要不然就是官方文档了. IB ...

  2. 【FPGA】Buffer专题介绍(一)

    目录 背景 BUFG BUFGCE BUFGCE_1 BUFGMUX and BUFGMUX_1 BUFGP BUFH BUFIO2 BUFIO2FB 背景 在数据手册 Spartan-6 Libra ...

  3. FPGA通信第三篇--TCP

    FPGA通信第三篇–TCP 1 开发目的 本文针对UDP等通信技术不可靠以及速率低的问题,开发基于NIOS软核的TCP通信技术,以实现稳定可靠的高速数据通信. 2 TCP通信技术开发流程 2.1 简介 ...

  4. FPGA篇(三)基于FPGA的几种排序算法

    目录 1      冒泡法和比较排序法 1.1        算法原理 1.2        仿真结果 1.3        算法优缺点 2      并行全比较排序法 2.1        算法原理 ...

  5. FPGA时钟篇(三) MRCC和SRCC的区别

    我们前面的两篇文章讲了7系列的时钟结构和clock region内部具体组成,这篇文章我们来讨论下MRCC和SRCC的区别.只有7系列的FPGA中才有MRCC和SRCC的说法,到了UltraScale ...

  6. USB IP核FPGA调试(三)

    硬件修复上节提到的单字节读写问题后,就可以继续往下跑了. 我们需要把usb设备枚举成一个rndis设备,基于USB实现RNDIS实际上就是TCP/IP over USB,就是在USB设备上跑TCP/I ...

  7. FPGA实现俄罗斯方块 (三)

    一. 完整视频演示 欢迎关注 微信公众号 FPGA之旅 回复 FPGA俄罗斯方块 获取完整代码哦. 如果觉得不错的话,欢迎给点个赞哦. 地址 :完整视频演示 在这个项目中,主要介绍一下两个功能 : 1 ...

  8. SPI接口的FPGA实现(三)——Verilog代码实现SPI接口

    上一篇文章我们介绍了DAC81416的配置过程,这一篇我们就用Verilog代码具体实现这个过程,这一篇的代码具有普遍性,以后所有DA/AD的配置代码都可以在本文所展示的代码上进行修改获得.这里先给出 ...

  9. 图像颜色迁移专题介绍(三): Deep Examplar-based Colorization

    在之前的两篇博客中,我们已经介绍了关于color transfer在2015年之前的一些主流的研究思路,即在相应的颜色空间中,利用语义对应关系,实现语义一致的颜色迁移.博客链接: 图像颜色迁移专题介绍 ...

最新文章

  1. 实例分割综述(单阶段/两阶段/实时分割算法汇总)
  2. 学JS的心路历程Day28 - PixiJS -基础(二)
  3. Java注解(Annotation)详解
  4. [Spark]-RDD详解之变量操作
  5. C#OOP之二 变量和表达式
  6. 策略模式java 用例_java策略模式简单用例
  7. java 文曲星猜数字,文曲星里的猜数字代码(原创)
  8. bzoj 2832 宅男小c
  9. Linux强制重新启动系统——重启服务器的最终救济途径
  10. python是什么 自学-怎么自学python,大概要多久?
  11. python谱聚类算法_谱聚类 - python挖掘 - 博客园
  12. python纸牌游戏_《升级》扑克牌游戏——Python实现
  13. oracle enlist,针对各版本的 .NET 的 Oracle 新特性
  14. 淘宝的商品管理是怎样的?
  15. 项目管理-人力资源管理-人力资源管理计划-工具-RACI矩阵-Responsible与Accountable的区别
  16. js——浏览器缓存(http缓存)和本地存储
  17. 内存按字节 (Byte)编址,地址从A0000H到DFFFFH,共有多少个字节呢?
  18. python评价指标_详解分类评价指标和回归评价指标以及Python代码实现
  19. php 写入文件编码,PHP写入到文本文件乱码
  20. 详解笔记本屏幕的那点事儿

热门文章

  1. MySQL 关于毫秒的处理
  2. C语言的内存分配模型
  3. python 新运算符定义_【干货系列之萌新知识点】python与变量和运算符
  4. python里面的类和对象_Python中类和对象在内存中是如何保存?
  5. python比较excel表格内容并提取_python 实现excel数据的提取和整理
  6. 在我方某前沿防守地域 matlab,蒙特卡洛方法模拟小例子
  7. java中怪物移动_java中两大怪物,附带面试题!
  8. 虚拟机红帽linux登陆密码,[操作系统]vmware虚拟机安装了linux(redhat)系统忘记登录密码怎么办...
  9. seo说_百度指数看世间沉浮_如何快速排名-互点快速排名_网站关键词排名常见问题 - 搜狗快速排名...
  10. w10系统老是自动息屏_大师解答win10系统无法自动关屏/待机和睡眠的恢复教程