微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 硬件工程师文库 > Xilinx可编程逻辑器件设计与开发(基础篇)连载15:Spartan

Xilinx可编程逻辑器件设计与开发(基础篇)连载15:Spartan

时间:02-11 来源:网络整理 点击:

锁存器。

异步/组合逻辑。

图2-43 OLOGIC2 逻辑模块

(1) 组合数据输出和三态控制路径。

当有下列情况之一时,软件会自动生成组合通路,将FPGA 内部数据直接输出到输出驱动器或驱动器的控制端。

FPGA 内部逻辑数据直接输出到输出驱动器或驱动器的三态控制端,而没有经过寄存器。

"打包I/O 寄存器/锁存器到IOB 中"的属性设置为OFF。

(2) ODDR模式。

Spartan-6器件的OLOGIC2中具有专用寄存器,用来实现DDR输出寄存器。例化ODDR2原语可以使用此功能。当使用OLOGIC2时,会自动使用多路复用器,多路复用器的控制端产生于时钟信号,不需要手动控制。ODDR2 有两个时钟输入,相位差180°。

ODDR2 支持以下操作模式。

NONE 模式:允许设计人员在C0 和C1 时钟的上升沿将两个数据通过DDR多路复用器送至输出引脚,如图2-44所示。

图2-44 DDR_ALIGNMENT=NONE 下的ODDR2

C0模式:在时钟C0上升沿时,将两个数据通过DDR多路复用器送至输出引脚。

C1模式:在时钟C1上升沿时,将两个数据通过DDR多路复用器送至输出引脚。

ODDR原语如图2-45所示。

图2-45 ODDR原语

五、 可编程延迟单元IODELAY2

每个IOB包含一个延时单元,可以配置成输入延时或者输出延时,当引脚用作双向口时,还可以通过T端来控制输入/输出延时的切换。Spartan-6中IODELAY2的延时不会自动补偿温度或电压带来的延时差异,但是用户可以通过精确计算,来设置IODELAY2的具体延时值。

图2-46所示为延时单元的结构图。8位延时值对应0~255个延时Tap,该延时值最低三位控制RING晶振的起始点。该晶振由输入信号触发,经过0~7个Tap的延时之后,其输出作为时钟,用来钟控5位计数器。5位计数器中装载了延时值的高5位,它会一直在0~31循环,直到它的输出翻转到最初输入到该模块时的输入值Data Input。延时精度范围为1~255TAP。

图2-46 延时单元的结构图

此延时单元有两个局限,第一,延时最大值为1个位周期,超过此限制,接收数据会出错;第二,在下一个边沿到来之前,必须完成对第一个边沿的处理,这种情况会发生在接收高速数据流时。

如何避免上述两个局限呢?

对于第一个限制,通过确保延时值小于一个输入数据的位周期(1UI)就可以避免,通常设置为0.5UI,使数据采样点位于眼图的中心。

对于第二个限制,可以通过图2-47所示的两个延时链解决。一个延迟链延时输入数据的正值部分,另一个延时链延时输入数据的负值部分,这个处理机制的价值在于:通过设置两个延迟链的不同延时值,校正了输入数据的占空比。读者可以在设计中调用IODRP2原语使用此功能。

图2-47 每个延时模块使用两个延时链

六、 SelectIO的高级特性

除了上述SelectIO资源之外,Spartan-6还提供了更高级的逻辑特性,介绍如下。

(1) 串并转换器ISERDES2。

图2-48和图2-49分别为ISERDES2接收串行数据时的逻辑框图和时序图,利用ISERDES2将串行数据接收为4位并行数据。从时序图中可以看到,Bitslip为4位数据的同步使能控制信号。

图2-48 ISERDES2逻辑框图

图2-49 ISERDES2时序图(1:4)

ISERDES2可以实现1:2、1:3或1:4串并转换器功能,而且通过级联的方式还可以实现1:5、1:6、1:7、1:8串并转换器功能。

(2) 并串转换器OSERDES2。

图2-50与图2-51分别为OSERDES2的逻辑框图和时序图,利用OSERDES2将4位并行数据转换为串行数据输出。
一个OSERDES2可以实现2:1、3:1、4:1并口转换功能。当用差分输出时,相关的2个IOB中的OSERDES2可以级联,从而可以实现5:1、6:1、7:1和8:1并串转换功能。

设计者可以在HDL设计中,例化ISERDES2/OSERDES2原语来实现输入数据解串和输出数据串行化操作。

利用这些资源,可以很方便地实现高速串行数据的收发,例如用它实现LVDS接口。

更多资料请参考附带光盘中的《Spartan-6 IO资源用户手册》。

图2-50 OSERDES2逻辑框图

图2-51 OSERDES2时序图(4:1)

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top