Bootstrap

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 模块

 

;