app开发者平台在数字化时代的重要性与发展趋势解析
1317
2022-11-16
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小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~