FPGA - 7系列 FPGA内部结构之SelectIO -08- 高级逻辑资源之OSERDESE2

这篇具有很好参考价值的文章主要介绍了FPGA - 7系列 FPGA内部结构之SelectIO -08- 高级逻辑资源之OSERDESE2。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

本文节选UG471的第三章,进行整理翻译,用于介绍高级SelectIO逻辑资源内部的OSERDESE2资源。

输出并串逻辑资源 (OSERDESE2)简介

7 系列器件中的 OSERDESE2 是专用的并串转换器,具有特定的时钟和逻辑资源,旨在促进高速源同步接口的实现。 每个 OSERDESE2 模块都包含一个用于数据和三态控制的专用串行器。 数据和三态串行器都可以配置为 SDR 和 DDR 模式。 数据序列化可高达 8:1(如果使用 OSERDESE2 宽度扩展,则为 10:1 和 14:1)。 三态序列化可高达 14:1。 有一个专用的 DDR3 模式来支持高速内存应用。

下图显示了 OSERDESE2 的框图,突出显示了该块的所有主要组件和特性。

FPGA - 7系列 FPGA内部结构之SelectIO -08- 高级逻辑资源之OSERDESE2

数据并串转换器

一个 OSERDESE2 模块中的数据并串转换器从结构接收 2 到 8 位并行数据(如果使用 OSERDESE2 宽度扩展,则为 14 位),对数据进行串行化,并将其呈现给 IOB 通过 OQ 输出。 并行数据从最低位数据输入引脚串行化到最高位(即,D1 输入引脚上的数据是在 OQ 引脚上传输的第一位)。 数据并串转换器有两种模式:单数据速率 (SDR) 和双数据速率 (DDR)。

OSERDESE2 使用两个时钟 CLK 和 CLKDIV 进行数据速率转换。 CLK是高速串行时钟,CLKDIV是分频并行时钟。 CLK 和 CLKDIV 必须相位对齐。

使用前,必须对 OSERDESE2 进行复位。 OSERDESE2 包含一个控制数据流的内部计数器。 未能将复位取消断言与 CLKDIV 同步将产生意外的输出。

三态并串转换

除了数据的并串转换外,OSERDESE2 模块还包含一个用于对 IOB 进行三态控制的并串转换器。 与数据转换不同,三态转换器最多只能串行化四位并行三态信号。 三态转换器不能级联。

OSERDESE2 原语

OSERDESE2 原语框图如下图所示。

FPGA - 7系列 FPGA内部结构之SelectIO -08- 高级逻辑资源之OSERDESE2

OSERDESE2 端口

下表列出了 OSERDESE2 原语中的可用端口。

Port Name Type Width Description
OQ Output 1 仅输出到 IOB 的数据路径。
OFB Output 1 数据路径输出反馈到 ISERDESE2 或连接到 ODELAYE2。
TQ Output 1 三态控制输出到 IOB。
TFB Output 三态控制输出到结构fabric。
SHIFTOUT1 Output 1 进行数据宽度扩展的输出。 连接到主 OSERDESE2 的 SHIFTIN1。
SHIFTOUT2 Output 1 进行数据宽度扩展的输出。 连接到主 OSERDESE2 的 SHIFTIN2。
CLK Input 1 高速时钟输入。
CLKDIV Input 1 分频时钟输入。 时钟延迟元件、反序列化数据和 CE 单元。
D1 to D8 Input 1 (each) 并行数据输入。 请参阅并行数据输入 - D1 至 D8。
TCE Input 1 三态时钟使能。
OCE Input 1 输出数据时钟使能。
TBYTEIN Input 1 字节组三态输入。
TBYTEOUT Output 1 字节组三态输出。
RST Input 1 高电平有效复位。
SHIFTIN1 Input 1 携带数据宽度扩展的输入。 连接到从机 OSERDESE2 的 SHIFTOUT1。
SHIFTIN2 Input 1 携带数据宽度扩展的输入。 连接到从机 OSERDESE2 的 SHIFTOUT2。
T1 to T4 Input 1 (each) 并行三态输入。

数据路径输出 - OQ

OQ 端口是 OSERDESE2 模块的数据输出端口。 输入端口 D1 的数据将首先出现在 OQ。 该端口将数据并串转换器的输出连接到 IOB 的数据输入。 该端口不能驱动ODELAYE2; 必须使用 OFB 引脚。

OSERDESE2 的输出反馈 - OFB

输出反馈端口 (OFB) 是 OSERDESE2 的串行(高速)数据输出端口,用于 ODELAYE2 原语,或者 OFB 端口可用于向 ISERDESE2 发送串行数据。

三态控制输出 - TQ

此端口是 OSERDESE2 模块的三态控制输出。 使用时,此端口将三态并串转换器的输出连接到 IOB 的控制/三态输入。

三态控制输出 - TFB

如果用户需要,此端口是 OSERDESE2 模块的三态控制输出,发送到结构。 它表明 OSERDESE2 是三态的。

高速时钟输入 - CLK

该高速时钟输入驱动并串转换器的串行端。

分频时钟输入 - CLKDIV

该分频高速时钟输入驱动并串转换器的并行端。 该时钟是连接到 CLK 端口的时钟的分频版本。

并行数据输入 - D1 到 D8

所有传入的并行数据通过端口 D1 到 D8 进入 OSERDESE2 模块。 这些端口连接到 FPGA 架构,可以配置为 2 到 8 位(即 8:1 串行化)。 在 SLAVE 模式下使用第二个 OSERDESE2 可以支持大于八位(10 和 14)的位宽。

复位输入 - RST

置位时,复位输入会导致 CLK 和 CLKDIV 域中的所有数据触发器的输出异步驱动为低电平**。 当与 CLKDIV 同步取消断言时,内部逻辑会将此取消断言重新计时到 CLK 的第一个上升沿。** 因此,多位输出结构中的每个 OSERDESE2 都应由相同的复位信号驱动,异步断言,并与 CLKDIV 同步取消断言,以确保所有 OSERDESE2 元素同步退出复位。 仅当已知 CLK 和 CLKDIV 稳定且存在时,才应取消置位复位信号。

输出数据时钟使能 - OCE

OCE 是数据路径的有效高时钟使能。

三态信号时钟使能 - TCE

TCE 是三态控制路径的有效高时钟使能。

并行三态输入 - T1 到 T4

所有并行三态信号通过端口 T1 到 T4 进入 OSERDESE2 模块。 端口连接到 FPGA 架构。 它们可以配置为一位、两位或四位,或被绕过。 这些端口的行为由 DATA_RATE_TQ 和 TRISTATE_WIDTH 属性控制。

OSERDESE2 属性

下表列出并描述了可用于 OSERDESE2 原语的各种属性。 该表包括默认值。

Attribute Description Value Default Value
DATA_RATE_OQ 定义数据 (OQ) 是否在每个时钟沿或每个正时钟沿相对于 CLK 发生变化。 String: SDR or DDR DDR
DATA_RATE_TQ 定义三态 (TQ) 是在每个时钟沿、每个时钟正沿相对于时钟发生变化,还是设置为缓冲区配置。 String: BUF, SDR, or DDR DDR
DATA_WIDTH 定义并行到串行数据转换器的宽度。 此值还取决于 DATA_RATE_OQ 值。 Integer: 2, 3, 4, 5, 6, 7, 8, 10, or 14 In SDR mode, 2, 3, 4, 5, 6, 7, and 8 are valid. In DDR mode, 2, 4, 6, 8, 10, and 14 are valid. 4
SERDES_MODE 定义使用宽度扩展时 OSERDESE2 模块是主模块还是从模块。 String: MASTER or SLAVE MASTER
TRISTATE_WIDTH 定义并行到串行三态转换器的宽度。 Integer: 1 or 4 See OSERDESE2 Attributes (Table 3-8) for valid combinations 4
TBYTE_CTL 仅用于通过 MIG 工具使用。 设置为假。 FALSE, TRUE FALSE
TBYTE_SRC 仅用于通过 MIG 工具使用。 设置为假。 FALSE, TRUE FALSE

DATA_RATE_OQ 属性

DATA_RATE_OQ 属性定义数据是以单数据速率 (SDR) 还是双数据速率 (DDR) 处理。 此属性的允许值为 SDR 和 DDR。 默认值为 DDR。

DATA_RATE_TQ 属性

DATA_RATE_TQ 属性定义是将三态控制作为单数据速率 (SDR) 还是双数据速率 (DDR) 进行处理。 此属性的允许值为 SDR、DDR 或 BUF。 默认值为 DDR。 在 SDR 和 DDR 模式下,使用四个 T 输入,它们的行为可以通过 TRISTATE_WIDTH 属性进行配置。 在 BUF 模式下,SDR 和 DDR 模式寄存器被旁路,因此应使用 T1 输入。 施加到 T1 输入的信号与所有其他信号异步,因为它只是通过 OSERDESE2。

DATA_WIDTH 属性

DATA_WIDTH 属性定义并串转换器的并行数据输入宽度。 此属性的可能值取决于 DATA_RATE_OQ 属性。
当 DATA_RATE_OQ 设置为 SDR 时,DATA_WIDTH 属性的可能值为 2、3、4、5、6、7 和 8。当 DATA_RATE_OQ 设置为 DDR 时,DATA_WIDTH 属性的可能值为 4、6、8 、 10 和 14。
当 DATA_WIDTH 设置为大于 8 的宽度时,一对 OSERDESE2 必须配置为主从配置。

SERDES_MODE 属性

SERDES_MODE 属性定义 OSERDESE2 模块在使用宽度扩展时是主模块还是从模块。 可能的值为 MASTER 和 SLAVE。 默认值为 MASTER。

TRISTATE_WIDTH 属性

TRISTATE_WIDTH 属性定义了三态控制并串转换器的并行三态输入宽度。 此属性的可能值取决于 DATA_RATE_TQ 属性。 当 DATA_RATE_TQ 设置为 SDR 或 BUF 时,TRISTATE_WIDTH 属性只能设置为 1。当 DATA_RATE_TQ 设置为 DDR 时,TRISTATE_WIDTH 属性的可能值为 1 和 4。

TRISTATE_WIDTH 不能设置为大于 4 的宽度。当 DATA_WIDTH 大于 4 时,将 TRISTATE_WIDTH 设置为 1。

下表显示使用 OSERDESE2 的有效设置和组合。

FPGA - 7系列 FPGA内部结构之SelectIO -08- 高级逻辑资源之OSERDESE2

OSERDESE2 时钟方法

CLK 和 CLKDIV 的相位关系在并串转换过程中很重要。 CLK 和 CLKDIV(理想情况下)在容差范围内相位对齐。

FPGA 内有多种时钟安排可帮助设计满足 CLK 和 CLKDIV 的相位关系要求。 OSERDESE2 唯一有效的时钟安排是:

  • CLK 由 BUFIO 驱动,CLKDIV 由 BUFR 驱动
  • 由同一个 MMCM 或 PLL 的 CLKOUT[0:6] 驱动的 CLK 和 CLKDIV。

当使用 MMCM 驱动 OSERDESE2 的 CLK 和 CLKDIV 时,不能混合提供 OSERDESE2 的缓冲器类型。 例如,如果 CLK 由 BUFG 驱动,则 CLKDIV 也必须由 BUFG 驱动。

OSERDESE2 宽度扩展

OSERDESE2 模块用于构建大于 8:1 的并串转换器。 在每个 I/O 块中都有两个 OSERDESE2 模块; 一主一从。 通过将主 OSERDESE2 的 SHIFTIN 端口连接到从 OSERDESE2 的 SHIFTOUT 端口,并行到串行转换器可以扩展到高达 10:1 和 14:1(仅限 DDR 模式)。 对于差分输出,主 OSERDESE2 必须位于差分输出对的正极(_P 引脚)侧。 当输出不是差分时,与从机 OSERDESE2 关联的输出缓冲区不可用,也不能使用宽度扩展。

当使用互补的单端标准(例如,DIFF_HSTL 和 DIFF_SSTL)时,可能不使用宽度扩展。 这是因为互补单端标准使用 I/O 块中的两个 OLOGICE2/3 块来传输两个互补信号,没有 OLOGICE2/3 块可用于宽度扩展。

下图显示了使用主从 OSERDESE2 模块的 10:1 DDR 并串转换器的框图。 在这种情况下,端口 D3–D4 用于从属 OSERDESE2 上并行接口的最后两位。

FPGA - 7系列 FPGA内部结构之SelectIO -08- 高级逻辑资源之OSERDESE2

下表列出了 SDR 和 DDR 模式的数据宽度可用性。

数据模式 可用位宽
SDR Data Widths 2, 3, 4, 5, 6, 7, 8
DDR Data Widths 4, 6, 8, 10, 14

扩展并串转换器位宽的指南

  1. OSERDESE2 模块都必须是相邻的主从对。

  2. 将主 OSERDESE2 的 SERDES_MODE 属性设置为 MASTER,将从 OSERDESE2 设置为 SLAVE。

  3. 用户必须将 MASTER 的 SHIFTIN 端口连接到 SLAVE 的 SHIFTOUT 端口。

  4. SLAVE 仅使用端口 D3 到 D8 作为输入。

  5. Master 和 Slave 的 DATA_WIDTH 相等。

  6. 属性 INTERFACE_TYPE 设置为 DEFAULT。
    用于需要宽度扩展的数据宽度的从输入在表 3-10 中列出。

Data Width Slave Inputs Used
10 D3–D4
14 D3–D8

输出反馈 OSERDESE2 引脚 OFB 有两个功能:

  • 作为 ISERDESE2 OFB 引脚的反馈路径。
  • 作为与ODELAYE2 的连接。 OSERDESE2 的输出可以通过 OFB 引脚路由,然后通过 ODELAYE2 延迟。

OSERDESE2 延迟

默认接口类型延迟

OSERDESE2 块的输入到输出延迟取决于 DATA_RATE 和 DATA_WIDTH 属性。 延迟定义为以下两个事件之间的时间段:

  1. 当 CLKDIV 的上升沿将输入 D1-D8 处的数据输入 OSERDESE2 时;
  2. 当串行流的第一位出现在 OQ 时。

下表总结了各种 OSERDESE2 延迟值。CLK 和 CLKDIV 时钟边沿通常不是相位对齐的。 当两个时钟的边沿相位对齐时,延迟可以变化一个周期。

FPGA - 7系列 FPGA内部结构之SelectIO -08- 高级逻辑资源之OSERDESE2

OSERDESE2 时序模型和参数

下面讨论与 OSERDESE2 原语相关的所有时序模型。

下表描述了 7 系列 FPGA 数据手册中 OSERDESE2 开关特性的功能和控制信号。

FPGA - 7系列 FPGA内部结构之SelectIO -08- 高级逻辑资源之OSERDESE2

2:1 SDR 串行化的时序特性

下图显示了 2:1 SDR 数据串行化的时序。

FPGA - 7系列 FPGA内部结构之SelectIO -08- 高级逻辑资源之OSERDESE2

时钟事件 1

在 CLKDIV 的上升沿,字 AB 被从 FPGA 逻辑驱动到 OSERDESE2 的 D1 和 D2 输入(经过一些传播延迟)。

时钟事件 2

在 CLKDIV 的上升沿,字 AB 从 D1 和 D2 输入采样到 OSERDESE2。

时钟事件 3

在 AB 被采样到 OSERDESE2 之后的一个 CLK 周期后,数据位 A 出现在 OQ。 该延迟与表中列出的 2:1 SDR 模式 OSERDESE2 一个 CLK 周期的延迟一致。

8:1 DDR 串行化的时序特性

下图说明了 8:1 DDR 数据串行化的时序。 与需要级联的前几代相比,所有八个位都连接到主 OSERDESE2 的 D1-D8。

FPGA - 7系列 FPGA内部结构之SelectIO -08- 高级逻辑资源之OSERDESE2

时钟事件 1

在 CLKDIV 的上升沿,字 ABCDEFGH 从 FPGA 逻辑驱动到 OSERDESE2 的 D1-D8 输入。

时钟事件 2

在 CLKDIV 的上升沿,字 ABCDEFGH 从 D1–D8 被采样到 OSERDESE2。

时钟事件 3

在将 ABCDEFGH 采样到 OSERDESE2 之后,数据位 A 出现在 OQ 四个 CLK 周期。 此延迟与表中列出的 8:1 DDR 模式 OSERDESE2 延迟的四个 CLK 周期一致。

第二个word IJKLMNOP 从 D1-D8 采样到 OSERDESE2。

时钟事件 4

在时钟事件 3 和 4 之间,整个字 ABCDEFGH 在 OQ 上串行传输,在一个 CLKDIV 周期内传输总共 8 位。

在 IJKLMNOP 被采样到 OSERDESE2 之后,数据位 I 出现在 OQ 四个 CLK 周期。 此延迟与表中列出的 8:1 DDR 模式 OSERDESE2 延迟的四个 CLK 周期一致。

4:1 DDR 三态控制器串行化的时序特性

三态控制器的操作如下图所示。 该示例是双向系统中显示的 4:1 DDR 情况,其中 IOB 必须经常为 3 态。

FPGA - 7系列 FPGA内部结构之SelectIO -08- 高级逻辑资源之OSERDESE2

时钟事件 1

T1、T2 和 T4 被驱动为低电平以释放三态条件。 OSERDESE2 中的 T1–T4 和 D1–D4 的串行化路径是相同的(包括延迟),因此 EFGH 位始终与时钟事件 1 期间出现在 T1–T4 引脚的 0010 对齐。

时钟事件 2

在 EFGH 被采样到 OSERDESE2 之后,数据位 E 出现在 OQ 一个 CLK 周期。
此延迟与表中列出的 4:1 DDR 模式 OSERDESE2 延迟一个 CLK 周期一致。

时钟事件 1 期间 T1 的三态位 0 出现在 TQ 一个 CLK 周期后,0010 被采样到 OSERDESE2 三态模块。 此延迟与表中列出的 4:1 DDR 模式 OSERDESE2 延迟一个 CLK 周期一致。文章来源地址https://www.toymoban.com/news/detail-426767.html

reference

  1. UG471

到了这里,关于FPGA - 7系列 FPGA内部结构之SelectIO -08- 高级逻辑资源之OSERDESE2的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【惊喜揭秘】xilinx 7系列FPGA时钟区域内部结构大揭秘,让你轻松掌握!

      本文对xilinx 7系列FPGA的时钟布线资源进行讲解,内容是对ug472手册的解读和总结,需要该手册的可以直接在xilinx官网获取,或者在公众号回复“ xilinx手册 ”即可获取。   7系列器件根据芯片大小不同,会有8至24个时钟区域,如图1所示,图中的每个虚线框就表示一个时钟

    2024年02月03日
    浏览(57)
  • FPGA引脚物理电平(内部资源,Select IO)-认知2

    引脚电平 The SelectIO pins can be configured to various I/O standards, both single-ended and differential. • Single-ended I/O standards (e.g., LVCMOS, LVTTL, HSTL, PCI, and SSTL) • Differential I/O standards (e.g., LVDS, Mini_LVDS, RSDS, PPDS, BLVDS, and differential HSTL and SSTL) 引脚种类 VCCO ,for PL 每个Bank对应一个电压,HP Bank VC

    2024年01月22日
    浏览(31)
  • FPGA时序分析实例篇(上)------逻辑重组和DSP资源合理利用

    声明:本文章转载自FPGA开源工坊,作者xiaotudou 在开始之前,有个预备知识:当时序不满足下列给出的图的要求时,STA分析(静态时序分析)会报错,在低频时可能忽略不计可以正常运行,但是频率上去之后很有可能会导致电路功能的错误。因此我们不能忽略,要对logic修改或者

    2024年01月17日
    浏览(32)
  • 第08章_面向对象编程(高级)(static,单例设计模式,理解mian方法,代码块,final,抽象类与抽象方法,接口,内部类,枚举类,注解,包装类)

    回顾类中的实例变量(即非static的成员变量) 创建两个Circle对象: Circle类中的变量radius是一个实例变量(instance variable),它属于类的每一个对象,c1中的radius变化不会影响c2的radius,反之亦然。 如果想让一个成员变量被类的所有实例所共享,就用static修饰即可,称为类变量(

    2024年01月25日
    浏览(41)
  • FPGA经验谈系列文章——逻辑级数

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 在FPGA经验谈系列文章中,我说道我的第一份工作的内容: 在第一家公司,使用FPGA主要是进行算法实现,要求的主频不高,资源一般也不太受限制。难点在于算法的理解,性能的提升和以及和软件的配合

    2024年02月16日
    浏览(28)
  • FPGA纯verilog实现4路视频拼接,纯逻辑资源搭建,提供4套工程源码和技术支持

    FPGA高端项目:Xilinx Kintex7系列FPGA多路视频拼接 工程解决方案 提供6套工程源码和技术支持 没玩过图像拼接都不好意思说自己玩儿过FPGA,这是CSDN某大佬说过的一句话,鄙人深信不疑。。。 图像拼接在实际项目中应用广泛,特别是在医疗和军工行业,目前市面上的图像拼接方

    2024年02月08日
    浏览(37)
  • 基于FPGA的 SelectIO IP核 的仿真验证-----( LVDS差分高速传输)

    由于系统功能实现日益增多,主控芯片的外围芯片也越来越多,因此主控芯片的引脚 资源相对变得紧俏,在数字系统互联的设计中,并行传输的方式将会被高速串行传输逐步 替代。而在串行传输标准中,低电压差分信号传输( LVDS)接口具有高速率、低功耗、低 噪声和低电

    2024年02月02日
    浏览(36)
  • Xilinx 7系列FPGA局部时钟资源

    局部时钟网络是玩去哪独立于全局时钟网络的。与全局时钟不同,局部时钟信号(BUFR)的覆盖范围仅限于一个时钟区域。一个I/O时钟信号驱动单个时钟区域。这些网络对于源同步接口设计特别有用。在7系列器件中,I/O bank与局部时钟域的大小相同。 在7系列器件中,局部时钟

    2024年04月29日
    浏览(35)
  • xilinx 7系列FPGA时钟布线资源

    7系列FPGA拥有多种时钟路由资源,以支持各种时钟方案和需求,包括高扇出、短传播延迟以及极低的偏斜。为了最佳地利用时钟路由资源,需要了解如何将用户时钟从PCB传递到FPGA,确定哪种时钟路由资源最优,然后通过利用适当的I/O和时钟缓冲器来访问这些时钟路由资源。

    2024年04月22日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包