0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

《Xilinx—UG471中文翻译》(3)OSERDESE2原语介绍

C29F_xilinx_inc 来源:赛灵思 作者:赛灵思 2022-02-16 16:21 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

FPGA大部分拿来做接口,不就是靠的SelectIO么~

二、输出(并-转-串)逻辑资源
7系列设备中的OSERDESE2是专用的 并-转-串 转换器,使用特定的时钟和逻辑资源设计来使得高速源同步接口实现变得容易。每个OSERDESE2模块都包含一个特定的串化器(serializer)用于数据和三态(3-state)控制。数据和3态(3-state)串化器都可以配置成SDR和DDR模式。数据串行化的位宽可以达到8:1(如果使用原语模块级联,则可以到10:1和14:1)。3态的串行化最高可达14:1,有一个专用的DDR3模式可用于支持高速内存应用程序。

The OSERDESE2 in 7 series devices is a dedicated parallel-to-serial converter with specific

clocking and logic resources designed to facilitate the implementation of high-speed

source-synchronous interfaces. Every OSERDESE2 module includes a dedicated serializer

for data and 3-state control. Both data and 3-state serializers can be configured in SDR and

DDR mode. Data serialization can be up to 8:1 (10:1 and 14:1 if using OSERDESE2 Width

Expansion). 3-state serialization can be up to 14:1. There is a dedicated DDR3 mode to

support high-speed memory applications.

Figure 3-13 shows a block diagram of the OSERDESE2, highlighting all the major

components and features of the block.

下图是 OSERDESE2的模块图,显示了主要的组成部件和特性:

pYYBAGIMohSAekpWAADG7NZR0NU226.png

2.1数据(并-转-串)转换器
在一个OSERDESE2块中,数据(并-转-串)转换器接收2-8位的并行数据 (14位:使用OSERDESE2 位宽扩展),将数据串行化,然后通过OQ输出接口传递给IOB。并行数据串行化是从从最低位开始。也就是说:从D1管脚输入的数据最先传输到OQ输出管脚。数据并串转换器支持两种模式:SDR和DDR。

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

在使用之前,必须对OSERDESE2进行复位操作。OSERDESE2包含一个内部计数器用来控制数据流。如果没有成功对复位同步(CLKDIV时钟域)释放,则会引起非预期的输出。

The data parallel-to-serial converter in one OSERDESE2 blocks receives two to eight bits of

parallel data from the fabric (14 bits if using OSERDESE2 Width Expansion), serializes the

data, and presents it to the IOB via the OQ outputs. Parallel data is serialized from lowest

order data input pin to highest (i.e., data on the D1 input pin is the first bit transmitted at

the OQ pins). The data parallel-to-serial converter is available in two modes: single-data

rate (SDR) and double-data rate (DDR).

The OSERDESE2 uses two clocks, CLK and CLKDIV, for data rate conversion. CLK is the

high-speed serial clock, CLKDIV is the divided parallel clock. CLK and CLKDIV must be

phase aligned. See OSERDESE2 Clocking Methods.

Prior to use, a reset must be applied to the OSERDESE2. The OSERDESE2 contains an

internal counter that controls dataflow. Failure to synchronize the reset deassertion with

the CLKDIV will produce an unexpected output

2.2 3-State Parallel-to-Serial Conversion
除了数据的并串转换之外,一个OSERDESE2模块还包含了一个3态并串转换器。与数据的并串转换不同,3态转换器串行化最高只能支持4位的并行3态信号。3态转换器不能进行级联。

In addition to parallel-to-serial conversion of data, an OSERDESE2 module also contains a

parallel-to-serial converter for 3-state control of the IOB. Unlike data conversion, the

3-state converter can only serialize up to four bits of parallel 3-state signals. The 3-state

converter cannot be cascaded.

三、OSERDESE2原语介绍

3.1 OSERDESE2框图

poYBAGIMohaAQ9_cAAD4qNA6nKY323.png

3.2 OSERDESE2例化
扫一眼,直接看3.3

OSERDESE2 #(
.DATA_RATE_OQ("DDR"), // DDR, SDR
.DATA_RATE_TQ("DDR"), // DDR, BUF, SDR
.DATA_WIDTH(4), // Parallel data width (2-8,10,14)
.INIT_OQ(1'b0), // Initial value of OQ output (1'b0,1'b1)
.INIT_TQ(1'b0), // Initial value of TQ output (1'b0,1'b1)
.SERDES_MODE("MASTER"), // MASTER, SLAVE
.SRVAL_OQ(1'b0), // OQ output value when SR is used (1'b0,1'b1)
.SRVAL_TQ(1'b0), // TQ output value when SR is used (1'b0,1'b1)
.TBYTE_CTL("FALSE"), // Enable tristate byte operation (FALSE, TRUE)
.TBYTE_SRC("FALSE"), // Tristate byte source (FALSE, TRUE)
.TRISTATE_WIDTH(4) // 3-state converter width (1,4)
)
OSERDESE2_inst (
.OFB(OFB), // 1-bit output: Feedback path for data
.OQ(OQ), // 1-bit output: Data path output
// SHIFTOUT1 / SHIFTOUT2: 1-bit (each) output: Data output expansion (1-bit each)
.SHIFTOUT1(SHIFTOUT1),
.SHIFTOUT2(SHIFTOUT2),
.TBYTEOUT(TBYTEOUT), // 1-bit output: Byte group tristate
.TFB(TFB), // 1-bit output: 3-state control
.TQ(TQ), // 1-bit output: 3-state control
.CLK(CLK), // 1-bit input: High speed clock
.CLKDIV(CLKDIV), // 1-bit input: Divided clock
// D1 - D8: 1-bit (each) input: Parallel data inputs (1-bit each)
.D1(D1),
.D2(D2),
.D3(D3),
.D4(D4),
.D5(D5),
.D6(D6),
.D7(D7),
.D8(D8),
.OCE(OCE), // 1-bit input: Output data clock enable
.RST(RST), // 1-bit input: Reset
// SHIFTIN1 / SHIFTIN2: 1-bit (each) input: Data input expansion (1-bit each)
.SHIFTIN1(SHIFTIN1),
.SHIFTIN2(SHIFTIN2),
// T1 - T4: 1-bit (each) input: Parallel 3-state inputs
.T1(T1),
.T2(T2),
.T3(T3),
.T4(T4),
.TBYTEIN(TBYTEIN), // 1-bit input: Byte group tristate
.TCE(TCE) // 1-bit input: 3-state clock enable
);

3.3 OSERDESE2端口

为了便于查看,后文对端口的进一步介绍一并写到表格。

poYBAGIMohiAUDMIAAITqpKKNg0517.jpg

下图为原文:

pYYBAGIMoh2AT2yQAAL23OKY9Kg856.png

3.4 OSERDESE2属性

poYBAGIMoiCAJ_RgAAFgLhGOnkg380.jpg

下图为原文:

pYYBAGIMoiOAB6kOAAI_GiTzLWI853.png

下图为OSERDESE2属性组合:

poYBAGIMoiSABW1rAABE7VyZGLc757.png

3.5 OSERDESE2时钟

在并转串过程中,CLK和 CLKDIV的相位关系是非常重要的。理想情况下,CLK和 CLKDIV是相位对齐的。在FPGA中有好几种时钟设置方式来帮助设计满足CLK和 CLKDIV的相位关系要求。对于OSERDESE2来说,只有一种是有效的:

  • CLK由BUFIO驱动,CLKDIV由BUFR驱动
  • CLK和CLKDIV由同一个MMCM或PLL驱动 (常用)

当使用一个MMCM来驱动OSERDESE2的CLK 和CLKDIV时,buffer类型不能混用。举个栗子:如果CLK由BUFG驱动,CLKDIV也必须由BUFG驱动。

The phase relationship of CLK and CLKDIV is important in the parallel-to-serial

conversion process. CLK and CLKDIV are (ideally) phase-aligned within a tolerance.

There are several clocking arrangements within the FPGA to help the design meet the

phase relationship requirements of CLK and CLKDIV. The only valid clocking

arrangements for the OSERDESE2 are:

• CLK driven by BUFIO, CLKDIV driven by BUFR

• CLK and CLKDIV driven by CLKOUT[0:6] of the same MMCM or PLL

When using a MMCM to drive the CLK and CLKDIV of the OSERDESE2 the buffer types

suppling the OSERDESE2 can not be mixed. For example, if CLK is driven by a BUFG,

CLKDIV must be driven by a BUFG as well.

3.6 OSERDESE2级联
用两个OSERDESE2模块级联来构造一个超过8:1的并-串转换器。通过连接主OSERDESE2的SHIFTIN端口和从OSERDESE2的SHIFTOUT端口,转换器可以扩展为10:1和14:1(仅DDR模式)。(注:笔者感觉有点懵,曾在项目用主的SHIFTOUT端口接到从的SHIFTIN端口 = =||)。对于差分输出,连接_P管脚。当输出不是差分信号时,从OSERDESE2的输出buffer是不允许的,位宽扩展无法使用。

当使用补充的signal-ended标准时(也就是说DIFF_HSTL和DIFF_SSTL),位宽扩展可能不能使用。这是因为在I/O块的OLOGICE2/3块全部用作补充的signal-ended标准来传输这两个补充的信号,没有多余的OLOOGICE2/3资源可用来位宽扩展。

The OSERDESE2 modules be used to build a parallel-to-serial converter larger than 8:1. In

every I/O tile there are two OSERDESE2 modules; one master and one slave. By

connecting the SHIFTIN ports of the master OSERDESE2 to the SHIFTOUT ports of the

slave OSERDESE2, the parallel-to-serial converter can be expanded to up to 10:1 and 14:1

(DDR mode only). For a differential output, the master OSERDESE2 must be on the

positive (_P pin) side of the differential output pair. When the output is not differential, the

output buffer associated with the slave OSERDESE2 is not available and width expansion

cannot be used.

When using complementary single-ended standards (e.g., DIFF_HSTL and DIFF_SSTL),

width expansion might not be used. This is because both OLOGICE2/3 blocks in an I/O

tile are used by the complementary single-ended standards to transmit the two

complementary signals, leaving no OLOGICE2/3 blocks available for width expansion

purposes.

下图是10:1DDR模式并-串转换器,使用一主一从两个OSERDESE2模块。在这个例子中中从OSERDES端口D3-D4被用作并行数据接口的最后两位。

pYYBAGIMoieAFs29AAENdLub_bk445.png

注:位宽扩展时,从OSERDESE2模块使用端口D3-D8; D1-D2不用。

3.7 OSERDESE2潜伏期
之前文章也介绍过:

Delay:延迟,延迟时间后才发生

Latency:潜伏,潜伏时间后信号才稳定

OSERDESE2块输入到输出的潜伏期由DATA_RATE和DATA_WIDTH属性决定。潜伏期被定义为事件a到事件b的一段时间:(a)当CLKDIV的上升沿,D1-D8的数据输入到OSERDESE2,(b)当串行数据流的第一位出现在OQ。简单解释下:就是输入到输出的时间。下图整理了不同OSERDESE2潜伏期的值。

The input to output latencies of OSERDESE2 blocks depend on the DATA_RATE and

DATA_WIDTH attributes. Latency is defined as a period of time between the following

two events: (a) when the rising edge of CLKDIV clocks the data at inputs D1–D8 into the

OSERDESE2, and (b) when the first bit of the serial stream appears at OQ. Table 3-11

summarizes the various OSERDESE2 latency values.

pYYBAGIMoimAZCnjAAFDhphQa50531.png

四、图解OSERDES串行化数据流

4.1 案例①SDR模式
2:1 SDR 数据串行化的时序图:

poYBAGIMoiuAV_CaAADhxULQYeI084.png

Clock Event 1:

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

Clock Event 2 :

在CLKDIV的上升沿,由D1和D2输入的字AB被采样到OSERDES。

Clock Event 3

在AB被采样进入OSERDESE2后,数据A在OQ输出一个CLK时钟周期。这个潜伏期由3.7章节的表格查询可知。

4.2 案例②DDR模式
8:1 DDR数据串行化时序图:

pYYBAGIMoi6ACK1mAAFbyKtgZ7s480.png

Clock Event 1:

在CLKDIV的时钟上升沿,由FPGA逻辑驱动的字ABCDEFGH给到OSERDESE2的输入管脚D1-D8。

Clock Event 2:

在CLKDIV的时钟上升沿,D1-D8输入的ABCDEFGH被采样进OSERDESE2。

Clock Event 3:

在ABCDEFGH被采样进OSERDESE2后,数据位A首先在OQ输出4个CLK周期。这个潜伏期由3.7章节的表格查询可知。

D1-D8输入的第二个字 IJKLMNOP 被采样进入 OSERDESE2 。

Clock Event 4

在Clock Events 3和4之间, ABCDEFGH整个字被连续的传输到OQ,,一个完整的8位传输在一个CLKDIV周期内完成。

4.3 案例③3-state
The operation of a 3-state controller:

pYYBAGIMojKAXcBYAAEAopB6ghs172.png

Clock Event 1

T1,T2,T4被驱动位低电平来释放3-态条件。OSERDESE2的T1-T4和D1-D4串行化路径是完全相同的(包括潜伏期),所以EFGH和0010在Clock Event 1是始终对齐的。

Clock Event 2

在EFGH被采样进入OSERDESE2后,数据位E出现在OQ一个CLK周期,潜伏期可看3.7。

在0010被采样进入OSERDESE2 3态块后,三态输入的0在TQ输出一个CLK周期,潜伏期可看3.7。

看图得知:OBUFT的输出端O输出EFH,对应三态输入0释放掉三态条件时候的D1-D4输入,并且输出在TQ为低时有效。(这是笔者根据上图猜测的结论,实际上笔者还没使用过 = =)

五、后记
最后的I/O FIFO先略过。

加上前两篇,《UG471-SelectIO》(1-3) 基本翻译完成。

算是小小的成就,给自己打Call~

如有错误,欢迎拍砖~

但是,本系列UG471文章还停留在翻译介绍阶段,下一步我会将其整理到LVDS接口的使用中进行介绍。未完待续。

审核编辑:符乾江

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1664

    文章

    22502

    浏览量

    639104
  • Xilinx
    +关注

    关注

    73

    文章

    2206

    浏览量

    131866
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    安森美NVTFS5C471NL单通道N沟道功率MOSFET深度解析

    安森美NVTFS5C471NL单通道N沟道功率MOSFET深度解析 在电子设计领域,功率MOSFET是至关重要的元件,广泛应用于各种电源管理和功率转换电路。今天我们来深入了解安森美(onsemi
    的头像 发表于 04-02 11:30 162次阅读

    Xilinx FPGA输入延迟原语介绍

    在高速接口设计,时序收敛往往是工程师面临的最大“噩梦”。当数据传输速率突破 800Mbps 时,微小的 PCB 走线差异都足以让系统崩溃。本文将深度剖析 Xilinx 7 系列(IDELAYE2)与 UltraScale 系列
    的头像 发表于 03-11 09:29 1618次阅读
    <b class='flag-5'>Xilinx</b> FPGA输入延迟<b class='flag-5'>原语</b><b class='flag-5'>介绍</b>

    RDMA设计46:RoCE v2原语功能:单边语义

    本博主要交流设计思路,在本博客已给出相关博约170篇,希望对初学者有用。注意这里只是抛砖引玉,切莫认为参考这就可以完成商用IP设计。 续上,为便于查看,给出表1部分表1 RoCE v2原语
    发表于 03-01 23:14

    Xilinx FPGAIDELAYCTRL参考时钟控制模块的使用

    IDELAYCTRL 是 Xilinx FPGA(特别是支持高速 I/O 的系列,如 Virtex-5/6/7、Kintex-7、Artix-7、Spartan-6/7 等)中用于管理和校准输入延迟模块(IDELAYE2/IDELAYE
    的头像 发表于 02-26 14:41 4687次阅读

    RDMA设计45:RoCE v2 原语功能验证与分析2

    本博主要交流设计思路,在本博客已给出相关博约170篇,希望对初学者有用。注意这里只是抛砖引玉,切莫认为参考这就可以完成商用IP设计。续上,为便于查看,给出表1部分 表1 RoCE v2原语
    发表于 02-26 07:52

    探索OP471:高性能四通道运算放大器的卓越之选

    探索OP471:高性能四通道运算放大器的卓越之选 在电子工程师的工具箱,运算放大器是不可或缺的基础元件。今天,我们聚焦于Analog Devices公司推出的OP471,一款高速、低噪声的四通
    的头像 发表于 01-25 09:30 572次阅读

    DLP471TP 0.47 4K 超高清 DMD 的技术解析与设计要点

    DLP471TP 0.47 4K 超高清 DMD 的技术解析与设计要点 在显示技术领域,4K 超高清分辨率已成为主流趋势,为用户带来了更加清晰、细腻的视觉体验。DLP471TP 作为一款 0.47
    的头像 发表于 12-11 11:25 877次阅读

    DLP471NE 0.47 英寸全高清数字微镜器件:技术解析与应用指南

    DLP471NE 0.47 英寸全高清数字微镜器件:技术解析与应用指南 在电子显示领域,数字微镜器件(DMD)凭借其独特的优势,广泛应用于各种显示系统。TI 的 DLP471NE 作为一款
    的头像 发表于 12-11 11:00 1011次阅读

    Xilinx FPGA串行通信协议介绍

    Xilinx FPGA因其高性能和低延迟,常用于串行通信接口设计。本文深入分析了Aurora、PCI Express和Serial RapidIO这三种在Xilinx系统设计关键的串行通信协议。
    的头像 发表于 11-14 15:02 2794次阅读
    <b class='flag-5'>Xilinx</b> FPGA串行通信协议<b class='flag-5'>介绍</b>

    贴片压敏电阻SMD3225K471的全面解析

    一、SMD3225K471 的基本参数与标识解读 SMD3225K471 这一型号,“SMD” 代表表面贴装器件,是当前电子元件安装的主流方式,极大提升了电子设备的集成度与生产效率。“3225
    的头像 发表于 07-23 11:31 1188次阅读
    贴片压敏电阻SMD3225K<b class='flag-5'>471</b>的全面解析

    SN8F5762中文规格书

    电子发烧友网站提供《SN8F5762中文规格书.pdf》资料免费下载
    发表于 07-08 14:51 14次下载

    多轴运动控制器JMC-F2-A6中文手册

    电子发烧友网站提供《多轴运动控制器JMC-F2-A6中文手册.pdf》资料免费下载
    发表于 06-23 15:14 2次下载

    AD7606的VxGND必须接地吗?

    and Analog Input Pin V2. All analog input AGND pins should connect to the AGND plane of a system. 中文翻译
    发表于 06-10 21:51

    STM32固件库使用手册的中文翻译

    STM32固件库使用手册的中文翻译
    发表于 06-09 22:38

    PIC16F630/676中文数据手册

    电子发烧友网站提供《PIC16F630/676中文数据手册.pdf》资料免费下载
    发表于 04-27 17:55 3次下载