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

网友投稿 1317 2022-11-16

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 的框图,突出显示了该块的所有主要组件和特性。

数据并串转换器

一个 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 原语框图如下图所示。

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

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 的有效设置和组合。

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 上并行接口的最后两位。

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

数据模式

可用位宽

SDR Data Widths

2, 3, 4, 5, 6, 7, 8

DDR Data Widths

4, 6, 8, 10, 14

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

OSERDESE2 模块都必须是相邻的主从对。将主 OSERDESE2 的 SERDES_MODE 属性设置为 MASTER,将从 OSERDESE2 设置为 SLAVE。用户必须将 MASTER 的 SHIFTIN 端口连接到 SLAVE 的 SHIFTOUT 端口。SLAVE 仅使用端口 D3 到 D8 作为输入。Master 和 Slave 的 DATA_WIDTH 相等。属性 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 属性。 延迟定义为以下两个事件之间的时间段:

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

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

OSERDESE2 时序模型和参数

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

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

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

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

时钟事件 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。

时钟事件 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 态。

时钟事件 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 周期一致。

reference

UG471

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:HLS - intel HLS 指令使用指南
下一篇:小程序容器技术,App热更新与敏捷开发新方案
相关文章

 发表评论

暂时没有评论,来抢沙发吧~