Xilinx原语——FPGA学习笔记4

一、XILINX器件原语

原语,是FPGA厂商针对其器件特征开发的一系列常用模块的名称。原语是FPGA芯片中基本元件,代表FPGA中实际拥有的硬件逻辑单元,如LUT,D触发器,RAM等。原语在设计中可以直接例化使用,是最直接的代码输入方式,原语和HDL原语的关系,类似于汇编语言和C语言的关系。

Xilinx公司的原语按功能分为10类,包括计算组件、I/O端口组件、寄存器、时钟组件、处理器组件、移位寄存器、配置和检测组件、RAM/ROM组件、Slice/CLB组件以及吉比特收发器组件。常用的原语包括时钟缓冲、差分和单端信号相互转换以及I/O处理(IDDR、ODDR)原语等。

二、7系列FPGA高级时钟结构视图

三、时钟组件

时钟组件包括各种全局时钟缓冲器(BUFG)、全局时钟复用器、普通I/O本地的时钟缓冲器(BUFR)以及高级时钟管理模块。与其相关的原语包括: BUFG、 BUFR、BUFH、 BUFIO、 BUFGCE、 BUFGDLL和DCM等。

1、BUFG

全局缓冲器, BUFG 的输出到达 FPGA 内部的 IOB、 CLB、块 RAM 的时钟延迟和抖动最小 可以到达FPGA任何一个节点。

SRCCs只可以对本区域内时钟使用。MRCCs可以对相邻两个区域时钟使用 。

2、BUFH

水平时钟缓冲器,它相当于一个功能受限的BUFG,其输出时钟只能通过HROW在左右相邻的时钟区域内工作。每个区域内有12个BUFH可用。

3、BUFR

区域时钟缓冲器,其输出只能作用在一个时钟区域,相当于BUFH的阉割版。

4、BUFIO

IO时钟缓冲器,其输出时钟只能作用在一个时钟区域的IO寄存器处,无法在FPGA内部逻辑使用。

5、时钟区域视图

6、缓冲器使用场景

BUFG

BUFH

BUFMR

BUFR

BUFIO

使用场景

一般用在跨多个时钟区域的时钟上

一般用在相同时钟区域或者相邻时钟区域的时钟

当输入时钟需要连接多个区域的BUFR或者BUFIO时使用

可用于不需要跨区域的时钟,但一般用作IO资源的接口时钟

只能用于IO资源的接口时钟

四、IO端口组件

I/O组件提供了标准单端I/O缓存(IBUF/OBUF)、DDR专用I/O信号缓存(IDDR/ODDR)、可变抽头延迟链(IDELAY/ODELAY)、上拉(PULLUP)、下拉(PULLDOWN)以及单端信号和差分信号之间的相互转换(IBUFDS/ OBUFDS) 等。

1、XA735T BANK分布

2、IO资源分布

3、IDDR

输入数据的双沿采样,是ILOGIC块中专用的寄存器,用于实现输入数据双沿采样。

ILOGICE3结构:

(1)工作模式

①OPPOSITE_EDGE mode 相反沿

②SAME_EDGE mode 相同沿

③SAME_EDGE_PIPELINED mode 相同沿流水模式

(2)IDDR原语

4、ODDR

输出数据的双沿采样,是OLOGIC块中专用的寄存器,用于实现输出数据双沿采样。

OLOGICE3 结构

(1)工作模式

①OPPOSITE_EDGE mode 相反沿

②SAME_EDGE mode 相同沿

(2)ODDR原语

五、IDELAY原语

每个I/O模块都包含了一个可编程的延迟原语,称作IDELAYE2 。 IDELAY2是一个可编程的31阶延迟原语,它既可以应用于组合逻辑也可以应用于时序逻辑或者同时用于两者。

1、IDELAY参数

2、IDELAY端口

3、FIXED模式

在固定延迟模式中,延迟值在配置时预设为属性 IDELAY_VALUE 确定的延迟值。 配置后,此值无法更改。

FIXED时序

输入输出延迟值为tap0,如果IDELAY_VALUE为0,那么DATAOUTA相对于输入延迟600ps

4、VARIABLE模式

在该模式下,延迟值可以在配置后通过CE和INC端口进行动态配置。

VARIABLE时序:

5、VAR_LOAD模式

该模式下功能与VARIABLE模式下类似,只不过可以通过CNTVALUEIN加载延迟节拍数,多了一种延迟加载方法。当LD端口有效时可以加载新的延迟CNTVALUE值到控制模块。

VAR_LOAD时序:

6、VAR_LOAD_PIPE模式

VAR_LOAD_PIPE 类似于 VAR_LOAD 模式,能够存储 CNTVALUEIN 值以备将来更新。

VAR_LOAD_PIPE时序:

7、IDELAY原语

8、IDELAYCTRL

IDELAYCTRL 模块连续校准其区域内的各个 IDELAY/ODELAY,以减少工艺、电压和温度变化的影响。 IDELAYCTRL 模块使用用户提供的 REFCLK 校准 IDELAY 和 ODELAY 。

IDELAYCTRL时序:

9、IDELAYCTRL 位置分布

IDELAYCTRL 模块存在于每个时钟区域的每个 I/O 列中。 IDELAYCTRL 模块校准其时钟区域内的所有 IDELAYE2 和 ODELAYE2 模块


TOP