Virtex-5 中文版用户手册

Preview:

Citation preview

R�

Virtex-5 用户指南

UG190 (v3.1) 2007 年 9 月 11 日

Virtex-5 用户指南 www.xilinx.com/cn UG190 (v3.1) 2007 年 9 月 11 日

Xilinx is disclosing this Document and Intellectual Property (hereinafter "the Design") to you for use in the development of designs to operate on, or interface with Xilinx FPGAs. Except as stated herein, none of the Design may be copied, reproduced, distributed, republished, downloaded, displayed, posted, or transmitted in any form or by any means including, but not limited to, electronic, mechanical, photocopying, recording, or otherwise, without the prior written consent of Xilinx. Any unauthorized use of the Design may violate copyright laws, trademark laws, the laws of privacy and publicity, and communications regulations and statutes.

Xilinx does not assume any liability arising out of the application or use of the Design; nor does Xilinx convey any license under its patents, copyrights, or any rights of others. You are responsible for obtaining any rights you may require for your use or implementation of the Design. Xilinx reserves the right to make changes, at any time, to the Design as deemed desirable in the sole discretion of Xilinx. Xilinx assumes no obligation to correct any errors contained herein or to advise you of any correction if such be made. Xilinx will not assume any liability for the accuracy or correctness of any engineering or technical support or assistance provided to you in connection with the Design.

THE DESIGN IS PROVIDED "AS IS" WITH ALL FAULTS, AND THE ENTIRE RISK AS TO ITS FUNCTION AND IMPLEMENTATION IS WITH YOU. YOU ACKNOWLEDGE AND AGREE THAT YOU HAVE NOT RELIED ON ANY ORAL OR WRITTEN INFORMATION OR ADVICE, WHETHER GIVEN BY XILINX, OR ITS AGENTS OR EMPLOYEES. XILINX MAKES NO OTHER WARRANTIES, WHETHER EXPRESS, IMPLIED, OR STATUTORY, REGARDING THE DESIGN, INCLUDING ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE, AND NONINFRINGEMENT OF THIRD-PARTY RIGHTS.

IN NO EVENT WILL XILINX BE LIABLE FOR ANY CONSEQUENTIAL, INDIRECT, EXEMPLARY, SPECIAL, OR INCIDENTAL DAMAGES, INCLUDING ANY LOST DATA AND LOST PROFITS, ARISING FROM OR RELATING TO YOUR USE OF THE DESIGN, EVEN IF YOU HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. THE TOTAL CUMULATIVE LIABILITY OF XILINX IN CONNECTION WITH YOUR USE OF THE DESIGN, WHETHER IN CONTRACT OR TORT OR OTHERWISE, WILL IN NO EVENT EXCEED THE AMOUNT OF FEES PAID BY YOU TO XILINX HEREUNDER FOR USE OF THE DESIGN. YOU ACKNOWLEDGE THAT THE FEES, IF ANY, REFLECT THE ALLOCATION OF RISK SET FORTH IN THIS AGREEMENT AND THAT XILINX WOULD NOT MAKE AVAILABLE THE DESIGN TO YOU WITHOUT THESE LIMITATIONS OF LIABILITY.

The Design is not designed or intended for use in the development of on-line control equipment in hazardous environments requiring fail-safe controls, such as in the operation of nuclear facilities, aircraft navigation or communications systems, air traffic control, life support, or weapons systems ("High-Risk Applications"). Xilinx specifically disclaims any express or implied warranties of fitness for such High-Risk Applications. You represent that use of the Design in such High-Risk Applications is fully at your risk.

© 2006-2007 Xilinx, Inc. All rights reserved. XILINX, the Xilinx logo, and other designated brands included herein are trademarks of Xilinx, Inc. PowerPC is a trademark of IBM, Inc. All other trademarks are the property of their respective owners.

修订历史下表说明此技术文档的修订历史。

日期 版本 修订

2006 年4 月 14 日

1.0 Xilinx 初版本。

R

UG190 (v3.1) 2007 年 9 月 11 日 www.xilinx.com/cn Virtex-5 用户指南

2006 年5 月 12 日

1.1 少量版面修改与澄清。

第 1 章:修改图 1-21。

第 2 章:修改图 2-2 和图 2-4。删除对 DCM_PS 基元的引用。从第 76 页删除过时的时钟控制向导部分。

第 3 章:修改图 3-1、图 3-2、表 3-2、表 3-4、图 3-9、公式 3-8 和图 3-12。增加“Virtex-4 PMCD 传统模式下的 PLL”部分。

第 4 章:为第 119 页的表 4-5 加注。澄清第 126 页上的 RAMB36 端口映射设计规则。

第 5 章:增加图 5-7 和图 5-11,修改图 5-32,以提高明确性。

第 6 章:更新 “同步开关输出限制”部分。

第 7 章:修改第 310 页的 “ILOGIC 资源”(包括图 7-1)。修改表 7-3。

第 8 章:修改表 8-1。

2006 年7 月 19 日

1.2 第 1 章:修改第 21 页的 “全局时钟缓冲器”,以澄清单端时钟引脚。修改图 1-19 中 P 和 N 的 I/O 标识。

第 4 章:增加第 127 页的 “寄存器模式下的 Block RAM SSR”和第 137 页的 “FIFO 架构:顶层视图”。修改第 139 页 “FIFO 操作”项下的 “复位”说明。

第 6 章:少量澄清性修改。将表 6-36、表 6-37 和表 6-38 中的 “未使用”改成 “不适用”。

第 7 章:小修改,以澄清本章中的 IODELAY。

第 8 章:第 349 页的 “ISERDES 端口”中的澄清性小修改。

2006 年9 月 6 日

2.0 在整个技术文档中增加 LXT 平台器件。

第 1 章:修改第 38 页的图 1-22。更新第 33 页的 “Clock Capable I/O”。

第 2 章:更新第 58 页的 “输出时钟”。

第 4 章:澄清第 134 页上有关 FULL 和 EMPTY 标志的规则。

第 5 章:修改第 172 页的 “存储元件”。

第 6 章:更新第 231 页的 “差分终端属性”,以使用 新语法和设置。更换 SSO 计算器的链接。

2006 年10 月 12 日

2.1 在前言中增加 《系统监视器用户指南》参考。

在表 1-5、表 2-1 和表 5-2 中增加 XC5VLX85T。

第 3 章:修改图 3-1。

第 4 章:在第 120 页的表 4-7 中增加级联。修改第 118 页的图 4-9 中的 ADDR。删除“内置纠错”部分中的擦除模式。

第 5 章:修改第 191 页的图 5-22。

2007 年2 月 2 日

3.0 在表 1-5、表 2-1 和表 5-2 增加三个 SXT 器件和 XC5VLX220T。

第 4 章:澄清第 113 页的 “同步时钟控制”中的措词。

第 6 章:增加第 214 页的 “DCI 级联”。将表 6-39 中 SSTL18_II_T_DCI 的 VREF 改成 0.9。

第 7 章:修改第 343 页的图 7-27 中的 OQ。

第 8 章:第 350 页的 “时钟使能输入 - CE1 和 CE2”。

日期 版本 修订

Virtex-5 用户指南 www.xilinx.com/cn UG190 (v3.1) 2007 年 9 月 11 日

2007 年9 月 11 日

3.1 第 1 章:增加第 20 页的 “节能时钟门控”。修改第 24 页的图 1-2。修改第 31 页的图 1-16。

第 2 章:修改第 46 页的 “复位输入 - RST”中的 DCM 复位和锁定过程。更新第 50 页的表 2-4 中的 DO[2] 说明。修改第 51 页上的乘数值范围。修改第 54 页的“FACTORY_JF 属性”的说明。修改第 58 页的 “输出时钟”,更新第 67 页的图 2-7,并且在第 69 页的图 2-10 中增加一个 BUFG。在第 65 页的动态重配置 (DRP) 下增加加载新 M 和 D 值时的步骤。更新第 67 页的图 2-7。修改第 80 页的图 2-21 下带圆点项号的说明。

第 3 章:更新第 84 页的图 3-1。为第 88 页的表 3-2 加注。为第 90 页的 “相移”加注。在公式 3-3 到公式 3-6 中增加圆整运算。修改 CLKFBIN、CLKFBDCM、CLKFBOUT、RST 和 LOCKED,并且在第 91 页的表 3-3 中增加 REL 引脚和注 2。在第 93 页的表 3-4 中增加 RESET_ON_LOSS_OF_LOCK 属性。从 “PLL 时钟输入信号”中删除关于通用布线的讨论。修改 “缺失输入时钟或反馈时钟”部分。在图 3-13 中增加波形图。纠正第 105 页的图 3-17 和表 3-8 中的 Virtex-4 端口映射。

第 4 章:修改并澄清 “内置纠错”。修改全部 WE 信号。澄清第 115 页的 “简单双端口 Block RAM”中的读回限制。修改第 120 页的 “设置 / 复位 - SSR[A|B]”。增加第 134 页的“Block RAM 重定向”。为第 140 页的表 4-16 修改延迟值并增加注 1。更新第 152 页的 “级联 FIFO 以增加深度”。

第 5 章:在第 172 页的 “存储元件”中澄清关于一个 Slice 中的公共控制信号的信息。

第 6 章:更新第 216 页的 DCI 级联指南。删除对 “带单向终端的 HSLVDCI 控制阻抗驱动器”的引用,因为软件中不支持这种功能。为第 249 页的表 6-17 增加注 3。澄清对第 267 页的 “SSTL (线脚系列终端逻辑)”的简介。修改第 268 页的“DIFF_SSTL2_II_DCI、DIFF_SSTL18_II_DCI”。纠正第 275 页的图 6-73 中的 DIFF_SSTL2_II 参考值。修改第 291 页的 “在同组中合并 I/O 标准的规则”中的规则 2 和 3。从第 295 页的 “上过冲 / 下过冲”中删除绝对 大值表。

第 7 章:从第 313 页的 IDDR 基元中删除 DDLY 端口。在第 321 页的表 7-10 中增加 SIGNAL _PATTERN、DELAY_SRC 和 REFCLK_FREQUENCY 属性。修改第 323 页的图 7-9。在第 331 页上,删除表 7-12 “从 DCM 生成参考时钟”,并更新 “IDELAYCTRL 端口”中的 REFCLK 部分。澄清第 332 页的 “IDELAYCTRL 位置”中的简介。修改第 340 页的 ODDR “随路时钟”。

第 8 章:更新第 348 页的图 8-2 和表 8-1 中的 SR 和 O。更新整个第 356 页的“BITSLIP 子模块”部分。纠正第 359 页的图 8-11 中的排版错误。

日期 版本 修订

UG190 (v3.1) 2007 年 9 月 11 日 www.xilinx.com/cn Virtex-5 用户指南

前言 : 关于本指南其他技术文档. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

其他支持资源. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

排版约定. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18联机技术文档. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

第 1 章 : 时钟资源全局和区域时钟. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

全局时钟 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19区域时钟和 I/O 时钟 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

全局时钟控制资源. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20全局时钟输入. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

全局时钟输入缓冲器基元. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20节能时钟门控. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20全局时钟缓冲器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

全局时钟缓冲器基元 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22其他使用模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

时钟树和时钟网 - GCLK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32时钟区域 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

区域时钟控制资源. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33Clock Capable I/O . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33I/O 时钟缓冲器 - BUFIO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

BUFIO 基元 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34BUFIO 使用模型. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

区域时钟缓冲器 - BUFR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36BUFR 基元. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36BUFR 属性和模式. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37BUFR 使用模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

区域时钟网 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

VHDL 和 Verilog 模板. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

第 2 章 : 时钟管理技术时钟管理概述. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

DCM 概述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

DCM 基元 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43DCM_BASE 基元 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44DCM_ADV 基元 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

DCM 端口 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44DCM 时钟输入端口 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

时钟源输入 - CLKIN. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44反馈时钟输入 - CLKFB. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45相移时钟输入 - PSCLK. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46动态重配置时钟输入 - DCLK. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

DCM 控制和数据输入端口 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46复位输入 - RST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46相移递增 / 递减输入 - PSINCDEC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47相移使能输入 - PSEN. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47动态重配置数据输入 - DI[15:0] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47动态重配置地址输入 - DADDR[6:0] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

UG190 (v3.1) 2007 年 9 月 11 日 www.xilinx.com/cn Virtex-5 用户指南

动态重配置写使能输入 - DWE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47动态重配置使能输入 - DEN. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

DCM 时钟输出端口 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 471x 输出时钟 - CLK0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 481x 输出时钟,90°相移 - CLK90. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 481x 输出时钟,180°相移 - CLK180 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 481x 输出时钟,270°相移 - CLK270 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 482x 输出时钟 - CLK2X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 482x 输出时钟,180°相移 - CLK2X180 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48分频输出时钟 - CLKDV. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48频率合成输出时钟 - CLKFX. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48频率合成输出时钟,180°- CLKFX180 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

DCM 状态和数据输出端口 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49锁定输出 - LOCKED . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49相移完成输出 - PSDONE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49状态或动态重配置数据输出 - DO[15:0] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49动态重配置就绪输出 - DRDY. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

DCM 属性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51CLKDV_DIVIDE 属性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51CLKFX_MULTIPLY 和 CLKFX_DIVIDE 属性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51CLKIN_PERIOD 属性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51CLKIN_DIVIDE_BY_2 属性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52CLKOUT_PHASE_SHIFT 属性. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52CLK_FEEDBACK 属性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52DESKEW_ADJUST 属性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53DFS_FREQUENCY_MODE 属性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53DLL_FREQUENCY_MODE 属性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53DUTY_CYCLE_CORRECTION 属性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53DCM_PERFORMANCE_MODE 属性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53FACTORY_JF 属性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54PHASE_SHIFT 属性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54STARTUP_WAIT 属性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

DCM 设计指南 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56时钟去歪斜 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

时钟去歪斜工作原理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56输入时钟要求 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57输入时钟变化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57输出时钟 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58配置和启动过程中的 DCM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58去歪斜调整 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58去歪斜电路的特性. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

频率合成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60频率合成工作原理. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60频率合成器特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

相移 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61相移工作原理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61PSEN、PSINCDEC、PSCLK 和 PSDONE 的相互作用 . . . . . . . . . . . . . . . . . . . . . . . 63相移溢出 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64相移特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

动态重配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

将 DCM 连接到 Virtex-5 器件中的其他时钟资源. . . . . . . . . . . . . . . . . . . . . . . . . . . . 66IBUFG 到 DCM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66DCM 到 BUFGCTRL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

UG190 (v3.1) 2007 年 9 月 11 日 www.xilinx.com/cn Virtex-5 用户指南

BUFGCTRL 到 DCM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66PLL 到 DCM 和 DCM 到 PLL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66DCM 到 PMCD 和 PMCD 到 DCM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

应用示例. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67标准用法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67板级时钟生成. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68具有内部去歪斜的电路板去歪斜 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70两个 DCM 之间的时钟切换 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73从 PLL 输入的 DCM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74

VHDL 和 Verilog 模板及时钟控制向导. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76

DCM 时序模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77复位 / 锁定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77固定相移 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78可变相移 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79状态标记 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

传统器件支持. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

第 3 章 : 锁相环 (PLL)简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83

锁相环 (PLL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84

一般用法说明. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87PLL 基元 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87

PLL_BASE 基元 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87PLL_ADV 基元 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88

时钟网络去歪斜 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88仅用于频率合成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88抖动滤波器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89限制 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89

VCO 的工作范围. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89低和 高输入频率 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89

占空比可编程性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89相移 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90

PLL 编程 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90确定输入频率 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90确定 M 和 D 值. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91

PLL 端口 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91PLL 属性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93PLL CLKIN1 和 CLKIN2 用法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94PLL 时钟输入信号 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95计数器控制 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96时钟移相 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97

VCO 和输出计数器的详细波形 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97

参考时钟切换. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98缺失输入时钟或反馈时钟 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99

PLL 使用模型. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99时钟网络去歪斜 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99零延迟缓冲器. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100DCM 驱动 PLL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101PLL 驱动 DCM. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102PLL 到 PLL 的连接 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103

应用指南. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103

UG190 (v3.1) 2007 年 9 月 11 日 www.xilinx.com/cn Virtex-5 用户指南

PLL 应用示例. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104

Virtex-4 PMCD 传统模式下的 PLL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105

第 4 章 : Block RAMBlock RAM 概述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107

Block RAM 简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109

同步双端口和单端口 RAM. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109数据流 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109读操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111写操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111写模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111

WRITE_FIRST 模式,即透明模式 (默认). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112READ_FIRST 模式,即先读后写模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112NO_CHANGE 模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112

避免冲突 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113异步时钟控制 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113同步时钟控制 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113

Virtex-5 器件中的其他 Block RAM 功能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114可选输出寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114独立读写端口宽度选择 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114简单双端口 Block RAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115可级联 Block RAM. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116字节宽度写使能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116Block RAM 纠错代码 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117

Block RAM 库基元 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117

Block RAM 端口信号 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119时钟 - CLK[A|B] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119使能 - EN[A|B] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119字节宽度写使能 - WE[A|B] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119寄存器使能 - REGCE[A|B] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119设置 / 复位 - SSR[A|B] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120地址总线 - ADDR[A|B]<13:#><14:#><15:#> . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120数据输入总线 - DI[A|B]<#:0> 和 DIP[A|B]<#:0> . . . . . . . . . . . . . . . . . . . . . . . . . . 121数据输出总线 - DO[A|B]<#:0> 和 DOP[A|B]<#:0> . . . . . . . . . . . . . . . . . . . . . . . . 121级联输入 - CASCADEINLAT[A|B] 和 CASCADEINREG[A|B] . . . . . . . . . . . . . . . . . 121级联输出 - CASCADEOUTLAT[A|B] 和 CASCADEOUTREG[A|B] . . . . . . . . . . . . . 121反转控制引脚. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122GSR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122未用输入 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122

Block RAM 地址映射 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122

Block RAM 属性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122内容初始化 - INIT_xx . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123内容初始化 - INITP_xx . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124输出锁存器初始化 - INIT (INIT_A 或 INIT_B) . . . . . . . . . . . . . . . . . . . . . . . . . . . 124输出锁存器 / 寄存器同步设置 / 复位 (SRVAL_[A|B]) . . . . . . . . . . . . . . . . . . . . . . . . 124可选输出寄存器开关 - DO[A|B]_REG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124扩展模式地址判定 - RAM_EXTENSION_[A|B] . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124读宽度 - READ_WIDTH_[A|B] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125写宽度 - WRITE_WIDTH_[A|B] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125写模式 - WRITE_MODE_[A|B] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125Block RAM 位置约束 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125

UG190 (v3.1) 2007 年 9 月 11 日 www.xilinx.com/cn Virtex-5 用户指南

用 VHDL 或 Verilog 代码初始化 Block RAM. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125

其他 RAMB18 和 RAMB36 基元设计考虑事项 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125可选输出寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126独立读写端口宽度选择 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126RAMB18 和 RAMB36 端口映射设计规则 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126可级联 Block RAM. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126字节宽度写使能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127

其他 Block RAM 基元. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127

Block RAM 应用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127创建较大的 RAM 结构 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127寄存器模式下的 Block RAM SSR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127

Block RAM 时序模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129Block RAM 时序参数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130Block RAM 时序特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131

时钟事件 1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131时钟事件 2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132时钟事件 4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132时钟事件 5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132

Block RAM 时序模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133Block RAM 重定向. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134

内置 FIFO 支持 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134多速率 FIFO. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134同步 FIFO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135

同步 FIFO 的实现 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136

FIFO 架构:顶层视图. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137

FIFO 基元. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137

FIFO 端口描述. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138

FIFO 操作. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139复位 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139操作模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139

标准模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139首字直通 (FWFT) 模式. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139

状态标记 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140Empty 标记 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140Almost Empty 标记 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141Read Error 标记 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141Full 标记 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141Write Error 标记 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141Almost Full 标记 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141

FIFO 的属性. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142FIFO Almost Full/Empty 标记偏移范围 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142

FIFO 的 VHDL 和 Verilog 模板 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144

FIFO 时序模型和参数. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144FIFO 时序特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145

情形 1:写入空 FIFO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146情形 2:写入满或近满 FIFO. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147情形 3:从满 FIFO 中读取 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149情形 4:从空或近空 FIFO 中读取 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150情形 5:复位所有标记. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151情形 6:多速率 FIFO 的同时读取 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152

UG190 (v3.1) 2007 年 9 月 11 日 www.xilinx.com/cn Virtex-5 用户指南

FIFO 应用. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152级联 FIFO 以增加深度 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152并联 FIFO 以增加宽度 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153

内置纠错. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153ECC 模式概述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154Block RAM ECC 架构的顶层视图 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155Block RAM 和 FIFO ECC 基元 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156Block RAM 和 FIFO ECC 端口描述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157Block RAM 和 FIFO ECC 属性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159ECC 的操作模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160

标准 ECC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161ECC 只编码模式. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161ECC 只解码模式. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162

ECC 时序特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163标准 ECC 写时序 (图 4-31) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163标准 ECC 读时序 (图 4-32) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163只编码 ECC 写时序 (图 4-31) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164只编码 ECC 读时序. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164只解码 ECC 写时序. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164只解码 ECC 读时序. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164

Block RAM ECC 模式时序参数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164在 72 位字中制造故意错误 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165为 64 位字创建八个奇偶校验位 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165将单位元或双位元错误插入 72 位字 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165Block RAM ECC 的 VHDL 和 Verilog 模板 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165

第 5 章 : 可配置逻辑块 (CLB)CLB 概述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167

Slice 描述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168CLB/Slice 配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171查找表 (LUT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171存储元件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172分布式 RAM 和存储器 (只能在 SLICEM 中使用). . . . . . . . . . . . . . . . . . . . . . . . . 174只读存储器 (ROM) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184移位寄存器 (只能在 SLICEM 中使用). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184多路复用器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189设计大型多路复用器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190快速先行进位逻辑. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192

CLB/Slice 时序模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194通用 Slice 时序模型与参数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195

时序参数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196时序特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197

Slice 分布式 RAM 时序模型与参数 (只能在 SLICEM 中使用) . . . . . . . . . . . . . . . 198分布式 RAM 时序参数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199分布式 RAM 时序特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200

Slice SRL 时序模型与参数 (只能在 SLICEM 中使用). . . . . . . . . . . . . . . . . . . . . . 201Slice SRL 时序参数. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202Slice SRL 时序特性. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202

Slice 进位链时序模型与参数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204Slice 进位链时序特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204

CLB 基元 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205分布式 RAM 基元 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205

UG190 (v3.1) 2007 年 9 月 11 日 www.xilinx.com/cn Virtex-5 用户指南

端口信号 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206移位寄存器 (SRL) 基元 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207

端口信号 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207其他移位寄存器应用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208

同步移位寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208静态长度移位寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208

多路复用器基元 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209端口信号 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209

进位链基元 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209端口信号 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210

第 6 章 : SelectIO 资源I/O 模块概述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211

SelectIO 资源简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212

SelectIO 资源一般指导原则 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212Virtex-5 I/O 组规则 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213

参考电压 (VREF) 引脚 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213输出驱动源电压 (VCCO) 引脚 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213

Virtex-5 数控阻抗 (DCI) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214DCI 级联 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214Xilinx DCI. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216可控阻抗驱动器 (源终端) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217半阻抗可控阻抗驱动器 (源终端) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219接 VCCO 的输入终端 (单终端) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219接 VCCO/2 的输入终端 (分裂终端). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220终端接 VCCO (单终端)的驱动器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221终端接 VCCO/2 (分裂终端)的驱动器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222

Virtex-5 I/O 标准中的 DCI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223DCI 用法示例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224

Virtex-5 SelectIO 基元 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227IBUF 和 IBUFG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227OBUF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227OBUFT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228IOBUF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228IBUFDS 和 IBUFGDS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228OBUFDS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229OBUFTDS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229IOBUFDS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229Virtex-5 SelectIO 属性 / 约束 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230

位置约束 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230IOSTANDARD 属性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230输出斜率属性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230输出驱动强度属性. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231IBUF、OBUFT 和 IOBUF 的 PULLUP/PULLDOWN/KEEPER . . . . . . . . . . . . . . . . . . 231差分终端属性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231

Virtex-5 I/O 资源 VHDL/Verilog 示例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231

关于 Virtex-5 I/O 所支持标准的具体指导原则 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232LVTTL (低压晶体管 - 晶体管逻辑) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232LVCMOS (低压互补金属氧化物半导体). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234

LVDCI (低压数控阻抗). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236LVDCI_DV2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237

UG190 (v3.1) 2007 年 9 月 11 日 www.xilinx.com/cn Virtex-5 用户指南

HSLVDCI (高速低压数控阻抗) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239PCIX、PCI33、PCI66 (外设组件接口 ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240GTL (射电收发器逻辑). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241

GTL_DCI 用法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241GTLP (射电收发器逻辑增强版) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242

GTLP_DCI 用法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242HSTL (高速收发器逻辑). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243

HSTL_ I、HSTL_ III、HSTL_ I_18、HSTL_ III_18、HSTL_I_12 . . . . . . . . . . . . . . . . 243HSTL_ I_DCI、HSTL_ III_DCI、HSTL_ I_DCI_18、HSTL_ III_DCI_18. . . . . . . . . . . . 243HSTL_ II、HSTL_ IV、HSTL_ II_18、HSTL_ IV_18 . . . . . . . . . . . . . . . . . . . . . . . . . 243HSTL_ II_DCI、HSTL_ IV_DCI、HSTL_ II_DCI_18、HSTL_ IV_DCI_18 . . . . . . . . . . 244HSTL_ II_T_DCI、HSTL_ II_T_DCI_18 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244DIFF_HSTL_ II、DIFF_HSTL_II_18 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244DIFF_HSTL_II_DCI、DIFF_HSTL_II_DCI_18 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244DIFF_HSTL_I、DIFF_HSTL_I_18 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244DIFF_HSTL_I_DCI、DIFF_HSTL_I_DCI_18 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244

HSTL I 类 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245差分 HSTL I 类. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246HSTL II 类 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247差分 HSTL II 类 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249HSTL III 类 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252HSTL IV 类. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253HSTL_II_T_DCI (1.5V) 分裂 Thevenin 终端 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255HSTL I 类 (1.8V) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256差分 HSTL I 类 (1.8V) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257HSTL II 类 (1.8V) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258差分 HSTL II 类 (1.8V) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260HSTL III 类 (1.8V) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263HSTL IV 类 (1.8V) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264HSTL_II_T_DCI_18 (1.8V) 分裂 Thevenin 终端 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266HSTL I 类 (1.2V) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267SSTL (线脚系列终端逻辑) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267

SSTL2_I、SSTL18_I . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268SSTL2_I_DCI、SSTL18_I_DCI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268SSTL2_II、SSTL18_II . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268SSTL2_II_DCI、SSTL18_II_DCI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268DIFF_SSTL2_I、DIFF_SSTL18_I. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268DIFF_SSTL2_I_DCI、DIFF_SSTL18_I_DCI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268DIFF_SSTL2_II、DIFF_SSTL18_II . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268DIFF_SSTL2_II_DCI、DIFF_SSTL18_II_DCI. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268SSTL2_II_T_DCI、SSTL18_II_T_DCI. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268

SSTL2 I 类 (2.5V) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269差分 SSTL2 I 类 (2.5V) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270SSTL2 II 类 (2.5V) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272差分 SSTL2 II 类 (2.5V) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274SSTL2_II_T_DCI (2.5V) 分裂 Thevenin 终端 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277SSTL18 I 类 (1.8V). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278差分 SSTL I 类 (1.8V) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279SSTL18 II 类 (1.8V) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281差分 SSTL II 类 (1.8V) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284SSTL18_II_T_DCI (1.8V) 分裂 Thevenin 终端 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286差分终端:DIFF_TERM 属性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287LVDS 和扩展 LVDS (低压差分信令) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287

发射器终端 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287

UG190 (v3.1) 2007 年 9 月 11 日 www.xilinx.com/cn Virtex-5 用户指南

接收器终端 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288HyperTransport™ 协议 (HT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289低摆幅差分信令 (RSDS) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289BLVDS (总线 LVDS) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289差分 LVPECL (低压正发射极耦合逻辑). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290

LVPECL 收发器终端 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290

在同组中合并 I/O 标准的规则 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2913.3V I/O 设计指导原则. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295

I/O 标准设计规则 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295混合方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297

同步开关输出限制. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298稀疏锯齿形 (Sparse-Chevron) 封装 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298标称 PCB 指标. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299

PCB 结构. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299信号回流管理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299负载迹线 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299功率分配系统设计. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299

标称 SSO 极限值 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300实际 SSO 极限值与标称 SSO 极限值的关系 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305SSO 噪声的电气原理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305寄生系数降额法 (PFDM) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305SSO 的加权平均计算 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307全器件 SSO 计算器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308其他 SSO 假定条件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308

LVDCI 和 HSLVDCI 驱动器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308组 0. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308

第 7 章 : SelectIO 逻辑资源简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309

ILOGIC 资源 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310组合输入通路. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311输入 DDR 概述 (IDDR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311

OPPOSITE_EDGE 模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311SAME_EDGE 模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312SAME_EDGE_PIPELINED 模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312

输入 DDR 基元 (IDDR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313IDDR 的 VHDL 和 Verilog 模板 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314ILOGIC 时序模型. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314

ILOGIC 时序特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315ILOGIC 时序特性,DDR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315

输入 / 输出延迟单元 (IODELAY) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317IODELAY 基元 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319IODELAY 端口 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319IODELAY 属性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321IODELAY 时序 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323

递增 / 递减操作后的稳定性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324IODELAY 的 VHDL 和 Verilog 实例模板 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324IODELAY 转换时间使用模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324

IDELAYCTRL 概述. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330IDELAYCTRL 基元 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331IDELAYCTRL 端口 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331IDELAYCTRL 时序 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332

UG190 (v3.1) 2007 年 9 月 11 日 www.xilinx.com/cn Virtex-5 用户指南

IDELAYCTRL 位置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332IDELAYCTRL 用法及设计指导原则 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333

OLOGIC 资源 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 338组合输出数据和三态控制通路 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 338

输出 DDR 概述 (ODDR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339OPPOSITE_EDGE 模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339SAME_EDGE 模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339随路时钟 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340

输出 DDR 基元 (ODDR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340ODDR 的 VHDL 和 Verilog 模板 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341OLOGIC 时序模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341

时序特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342

第 8 章 : 高级 SelectIO 逻辑资源简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347

输入串并转换逻辑资源 (ISERDES). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347ISERDES 基元 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348ISERDES 端口 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349

寄存输出 - Q1 到 Q6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349Bitslip 操作 - BITSLIP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349时钟使能输入 - CE1 和 CE2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350高速时钟输入 - CLK. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350分频时钟输入 - CLKDIV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350来自 IOB 的串行输入数据 - D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350选通存储器接口的高速时钟 - OCLK. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350

ISERDES 属性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350BITSLIP_ENABLE 属性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351DATA_RATE 属性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351DATA_WIDTH 属性. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351INTERFACE_TYPE 属性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351NUM_CE 属性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351SERDES_MODE 属性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351

ISERDES 宽度扩展 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352扩展串并转换器位宽的指导原则 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352

ISERDES 延迟 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353ISERDES 时序模型和参数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353

时序特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3538:1 SDR ISERDES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354

ISERDES 的 VHDL 和 Verilog 实例模板 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355BITSLIP 子模块 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356

Bitslip 操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356Bitslip 时序模型和参数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 357

输出并串转换逻辑资源 (OSERDES). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359数据并串转换器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359三态并串转换 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360

OSERDES 基元 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360OSERDES 端口 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361

数据通路输出 - OQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361三态控制输出 - TQ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361高速时钟输入 - CLK. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361分频时钟输入 - CLKDIV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361并行数据输入 - D1 到 D6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362

UG190 (v3.1) 2007 年 9 月 11 日 www.xilinx.com/cn Virtex-5 用户指南

输出数据时钟使能 - OCE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362并行三态输入 - T1 到 T4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362三态信号时钟使能 - TCE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362

OSERDES 属性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362DATA_RATE_OQ 属性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363DATA_RATE_TQ 属性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363DATA_WIDTH 属性. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363SERDES_MODE 属性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363TRISTATE_WIDTH 属性. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363

OSERDES 宽度扩展 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364扩展并串转换器位宽的指导原则 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364

OSERDES 延迟 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365OSERDES 时序模型和参数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366

时序特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366OSERDES 的 VHDL 和 Verilog 实例模板 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 368

索引 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369

Virtex-5 用户指南 www.xilinx.com/cn UG190 (v3.1) 2007 年 9 月 11 日

Virtex-5 用户指南 www.xilinx.com/cn 17UG190 (v3.1) 2007 年 9 月 11 日

R

前言

关于本指南

本技术文档介绍 Virtex™-5 架构。有关 Virtex-5 系列 FPGA 的 新完整技术文档可以从 Xilinx 网站获得,网址是 http://www.xilinx.com/cn/virtex5。

其他技术文档还可以从 http://www.xilinx.com/cn/virtex5 下载下列技术文档。

• Virtex-5 系列概述

本概述简要介绍 Virtex-5 系列的功能和产品选择。

• Virtex-5 数据手册:直流和开关特性

本数据手册包含 Virtex-5 系列的直流和开关特性指标。

• Virtex-5 RocketIO GTP 收发器用户指南

本指南介绍 Virtex-5 LXT 和 SXT 平台器件中提供的 RocketIO™ GTP 收发器。

• Virtex-5 三态以太网媒体访问控制器用户指南

本指南介绍 Virtex-5 LXT 和 SXT 平台器件中提供的专用三态以太网媒体访问控制器。

• 用于 PCI Express 设计的 Virtex-5 集成端点模块用户指南

本指南介绍兼容 PCI Express® 的 Virtex-5 LXT 和 SXT 平台器件中的集成端点模块。

• XtremeDSP 设计考虑因素

本指南介绍 XtremeDSP™ Slice,并包含使用 DSP48E 的参考设计。

• Virtex-5 配置指南

本配置指南包罗万象,包含有关配置接口 (串行和 SelectMAP)、比特流加密、边界扫描和 JTAG 配置、重配置技术以及通过 SelectMAP 和 JTAG 接口读回的章节。

• Virtex-5 系统监视器用户指南

本指南简要介绍所有 Virtex-5 器件中提供的系统监视器功能。

18 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 章:R

• Virtex-5 封装技术规范

本规范包含器件 / 封装组合和 大 I/O 数表、引脚定义表、管脚布局表、管脚图、机械图和热性能技术规范。

• Virtex-5 PCB 设计指南

本指南提供有关 Virtex-5 器件的 PCB 设计的信息,重点讲述在 PCB 和接口层制定设计决策的策略。

其他支持资源若要搜索硅片数据库和软件问题解答或者在 WebCase 中创建技术支持案例,请访问 Xilinx 的网站,网址是:http://www.xilinx.com/cn/support。

排版约定本技术文档使用以下排版约定,并举例说明各项约定。

联机技术文档本技术文档使用以下约定:

约定 意义或用途 示例

斜体字

引用其他技术文档有关详情,请见 《Virtex-5 配置指南》。

强调文字地址 (F) 在时钟事件 2 之后方可置为有效。

下划线文字 指示网页链接。 http://www.xilinx.com/cn/virtex5

约定 意义或用途 示例

蓝色文字当前技术文档某位置的交叉引用链接

详情请见 “其他技术文档”部分。

详情请参考第 2 章 “时钟管理技术”。

红色文字另一技术文档某位置的交叉引用链接

请见 《Virtex-5 数据手册》中的图 5

蓝色下划线文字 网站超级链接 (网址)请转到 http://www.xilinx.com/cn 查阅 新技术文档。

Virtex-5 用户指南 www.xilinx.com/cn 19UG190 (v3.1) 2007 年 9 月 11 日

R

第 1 章

时钟资源

全局和区域时钟为时钟控制之目的,每个 Virtex-5 器件分成若干个时钟区域。区域数因器件大小而异,从

小器件的八个区域到 大器件的 24 个区域。

全局时钟每个 Virtex-5 器件有 32 条全局时钟线,它们可以对整个器件上的所有顺序资源 (CLB、Block RAM、CMT 和 I/O)进行时钟控制,并且还可以驱动逻辑信号。可以将这 32 条全局时钟线中的任何十条用于任意区域。全局时钟线仅由一个全局时钟缓冲器驱动,该全局时钟缓冲器还可用作时钟使能电路或无毛刺信号的多路复用器。它可以在两个时钟源之间进行选择,还可以切离其中一个失效的时钟源。

一个全局时钟缓冲器常常由一个时钟管理模块 (CMT) 驱动,以消除时钟分配延迟或调整其相对于另一时钟的延迟。全局时钟多于 CMT,但一个 CMT 常常可驱动多个全局时钟。

区域时钟和 I/O 时钟每区域有两个区域时钟缓冲器和四个区域时钟树。除了中心列中的某些组 (bank) 以外,一个 Virtex-5 I/O 组恰好横跨一个区域。大小与区域完全相同的每个组含有四个 clock-capable 时钟输入。其中每个输入可以差分驱动或单端驱动同一组或区域中的四个 I/O 时钟和两个区域时钟。另外,区域时钟可以驱动相邻区域中的区域时钟树。如果 clock-capable I/O 由单端时钟驱动,则时钟必须连接到差分 “clock capable”引脚对的正 (P) 端。负 (N) 端可以用作通用 I/O 或者空出不连接。

通过对区域时钟缓冲器进行编程可对输入时钟的频率以 1 到 8 的任意整数进行分频。这一功能与 IOB 中的可编程串行器 / 解串器 (请见第 8 章 “高级 SelectIO 逻辑资源”)配合,使源同步系统无需使用附加逻辑资源即可跨时钟域。

第三种时钟控制资源是 I/O 时钟,其速度非常快,可用于局部化的 I/O 串行器 / 解串器电路。请见第 8 章 “高级 SelectIO 逻辑资源”。

20 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 1 章: 时钟资源R

全局时钟控制资源全局时钟是一种专用互连网络,是专为覆盖对 FPGA 中各种资源的所有时钟输入设计的。这些网络的设计旨在降低歪斜、占空比失真和功耗并提高抖动容限。其设计目的还在于支持甚高频信号。

了解全局时钟的信号通路可以加深对各种全局时钟资源的理解。全局时钟控制资源和网络由以下通路和组件构成:

• 全局时钟输入

• 全局时钟缓冲器

• 时钟树和时钟网 - GCLK

• 时钟区域

全局时钟输入Virtex-5 FPGA 包含专用的全局时钟输入位置,这些输入位置即使不用作时钟输入,也可用作常规用户 I/O。每个器件有 20 个全局时钟输入。时钟输入可以按任意 I/O 标准配置,包括差分 I/O 标准。每个时钟输入可以是单端输入,也可以是差分输入。如果需要,全部 20 个时钟输入都可以是差分输入。当用作输出时,全局时钟输入引脚可以按任意输出标准配置。每个全局输入引脚可支持任何单端或差分输出标准。

全局时钟输入缓冲器基元

表 1-1 中的基元是输入时钟 I/O 输入缓冲器的不同配置。

通过将 IOSTANDARD 属性设置成所需标准,这两个基元与 Virtex-5 I/O 资源配合工作。有关可用 I/O 标准的完整列表,请查阅第 6 章的表 6-39 “I/O 兼容性”。

节能时钟门控Virtex-5 时钟架构提供一种直截了当的方法,为降低设计中某些部分的功耗而实现时钟门控。多数设计都包含若干未使用的 BUFGMUX 资源。一个时钟可以驱动多个 BUFGMUX 输入,而相互间同步的 BUFGMUX 输出则可以驱动截然不同的逻辑区域。例如,如果将要求始终运行的全部逻辑都限制在几个时钟控制区域,则一个 BUFGMUX 输出就可以驱动这些区域。翻转另一 BUFGMUX 的使能,可以为停止可能节能的逻辑区域中的动态功率消耗提供一种简单的方法。

表 1-1: 时钟缓冲器基元

基元 输入 输出 描述

IBUFG I O 单端 I/O 的输入时钟缓冲器

IBUFGDS I、IB O 差分 I/O 的输入时钟缓冲器

Virtex-5 用户指南 www.xilinx.com/cn 21UG190 (v3.1) 2007 年 9 月 11 日

全局时钟控制资源R

XPower 工具估计节能情况,通过翻转 BUFGMUX 的使能或者将相应时钟网的频率设置为 0 MHz 来计算差值。

全局时钟缓冲器每个 Virtex-5 器件有 32 个全局时钟缓冲器。每半个晶片 (上半 / 下半)包含 16 个全局时钟缓冲器。一个全局时钟输入可以从差分输入引脚对的 P 端直接连接到器件同一半 (上半或下半)中的任意全局时钟缓冲器的输入。每个差分全局时钟引脚对可以连接到 PCB 上的一个差分或单端时钟。如果使用单端时钟,则必须使用引脚对的 P 端,因为只有这一引脚上存在直接连接。有关引脚命名的约定,请参阅 《Virtex-5 封装技术规范》。必须将一个单端时钟连接到差分全局时钟引脚的正 (P) 端。如果单端时钟连接到差分引脚对的 P 端,则不能用其 N 端作为另一个单端时钟引脚。不过,可以将其用作普通 I/O。Virtex-5 器件上的 20 个全局时钟引脚可以连接到 20 个差分电路板时钟或 20 个单端电路板时钟。

全局时钟缓冲器允许各种时钟源 / 信号源接入全局时钟树和网。可以输入全局时钟缓冲器的源包括:

• 全局时钟输入

• 时钟管理模块 (CMT) 输出,包括:

♦ 数字时钟管理器 (DCM)

♦ 锁相环 (PLL)

• 其他全局时钟缓冲器输出

• 通用互连

全局时钟缓冲器只能由同半个晶片 (上半 / 下半)中的源驱动。

所有全局时钟缓冲器都可以驱动 Virtex-5 器件中的全部时钟区域 (无需遵守 Virtex-II 和 Virtex-II Pro FPGA 的主要 / 次要规则),但是,在一个时钟区域中仅能驱动十个不同的时钟。一个时钟区域 (20 个 CLB)是由上十个 CLB 行和下十个 CLB 行组成的时钟树的一个枝。一个时钟区域仅横跨器件的一半。

时钟缓冲器的设计允许将其配置成一个具有两个时钟输入的同步或异步无毛刺信号 2:1 多路复用器。Virtex-5 控制引脚提供了广泛的功能性和可靠的输入切换性能。以下各小节详述 Virtex-5 时钟缓冲器的各种配置、基元和使用模型。

22 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 1 章: 时钟资源R

全局时钟缓冲器基元

表 1-2 中的基元是全局时钟缓冲器的不同配置。

BUFGCTRL

图 1-1 所示 BUFGCTRL 基元可以在两个异步时钟之间切换。所有其他全局时钟缓冲器基元均出自 BUFGCTRL 的某些配置。ISE 软件工具可管理所有这些基元的配置。

BUFGCTRL 具有 S0、S1、CE0 和 CE1 四条选择线。它还有 IGNORE0 和 IGNORE1 两条附加控制线路。这六条控制线路用于控制输入 I0 和 I1。

表 1-2: 全局时钟缓冲器基元

基元 输入 输出 控制

BUFGCTRL I0、I1 O CE0、CE1、IGNORE0、IGNORE1、S0、S1

BUFG I O -

BUFGCE I O CE

BUFGCE_1 I O CE

BUFGMUX I0、I1 O S

BUFGMUX_1 I0、I1 O S

BUFGMUX_VIRTEX4 (2) I0、I1 O S

注:1. 所有基元均出自 BUFGCTRL 的软件预设置。 2. BUFGMUX_VIRTEX4 是从 Virtex-4 系列沿用下来的传统基元名称。

图 1-1: BUFGCTRL 基元

IGNORE1

IGNORE0

CE1

CE0

S1

S0

I1

I0

O

BUFGCTRL

ug190_1_01_032206

Virtex-5 用户指南 www.xilinx.com/cn 23UG190 (v3.1) 2007 年 9 月 11 日

全局时钟控制资源R

BUFGCTRL 的设计目的是在两个时钟输入之间切换而不会产生毛刺信号。当目前所选时钟在 S0 和 S1 变化后从 High 转为 Low 时,输出保持为 Low,直到另一 (待选)时钟从 High 转为 Low。然后,新的时钟开始驱动输出。BUFGCTRL 的默认配置是对下降沿敏感,并且在输入切换之前保持为 Low。BUFGCTRL 也可以对上升沿敏感,并且在输入切换之前保持为 High。

在某些应用中,并不需要前述条件。将 IGNORE 引脚置为有效会忽略 BUFGCTRL 检测在两个时钟输入之间进行切换的条件。换言之,将 IGNORE 置为有效会使多路复用器在选择引脚变化的瞬间切换输入。IGNORE0 使输出在选择引脚变化时立即切离 I0 输入,而 IGNORE1 则使输出在选择引脚变化时立即切离 I1 输入。

输入时钟的选择需要将一个 “选择”对 (S0 和 CE0 或者 S1 和 CE1)置为 High 有效。如果 S 和 CE 二者之一未置为 High 有效,就不会选择所需的输入。在正常操作中,并不希望将 S 对和 CE 对二者 (全部四条选择线)同时置为 High 有效。通常仅将 “选择”对的一个引脚用作选择线,而将另一引脚固定为 High。真值表如表 1-3 所示。

虽然 S 和 CE 二者都用于选择所需输出,但其中各引脚的行为略有不同。当使用 CE 切换时钟时,时钟选择的变化会比使用 S 时更快。违反 CE 引脚的建立 / 保持时间会在时钟输出端造成毛刺信号。另一方面,使用 S 引脚允许用户在两个时钟输入之间切换而无须顾及建立 /保持时间。这样不会导致毛刺信号。请见 “BUFGMUX_VIRTEX4”。CE 引脚的设计允许从 Virtex-II 和 Virtex-II Pro FPGA 向后兼容。

表 1-3: 时钟资源真值表

CE0 S0 CE1 S1 O

1 1 0 X I0

1 1 X 0 I0

0 X 1 1 I1

X 0 1 1 I1

1 1 1 1 旧输入 (1)

注:1. 旧输入是指获得此状态之前的有效输入时钟。2. 对于所有其他状态,输出变为 INIT_OUT 的值并且不翻转。

24 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 1 章: 时钟资源R

图 1-2 中的时序图用 BUFGCTRL 基元说明各种时钟切换条件。速度指标中明确提供了确切的时序参数。

• 在时间事件 1 之前,输出 O 为输入 I0。

• 在时间事件 1 处上升沿之前的 TBCCCK_CE 时段,CE0 和 S0 均置为 Low 无效。几乎在同时,CE1 和 S1 均置为 High 有效。

• 在时间事件 3 之后的 TBCCKO_O 时段,输出 O 为输入 I1。这发生在 I0 (事件 2)从 High 向 Low 转换紧接 I1 从 High 向 Low 转换之后。

• 在时间事件 4 处,IGNORE1 置为有效。

• 在时间事件 5 处,CE0 和 S0 置为 High 有效,而 CE1 和 S1 置为 Low 无效。在时间事件 6 之后的 TBCCKO_O 时段,输出 O 在不要求 I1 从 High 向 Low 转换的情况下从 I1 切换到 I0。

BUFGCTRL 的其他功能有:

• 在配置之后但在器件运行之前,预选 I0 和 I1 输入。

• 可以将配置后的初始输出选定为 High 或 Low。

• 仅用 CE0 和 CE1(S0 和 S1 固定为 High)选择时钟,无须等待预选的时钟从 High 向 Low 转换即可改变时钟选择。

图 1-2: BUFGCTRL 时序图

I0

I1

S0

S1

IGNORE0

IGNORE1

O

CE0

CE1

1 2 3 4 5 6

TBCCCK_CE

ug190_1_02_071707

TBCCKO_O TBCCKO_O TBCCKO_O

at I0 Begin I1 Begin I0

Virtex-5 用户指南 www.xilinx.com/cn 25UG190 (v3.1) 2007 年 9 月 11 日

全局时钟控制资源R

表 1-4 概述了 BUFGCTRL 基元的属性。

BUFG

BUFG 其实就是具有一个时钟输入和一个时钟输出的时钟缓冲器。此基元在 BUFGCTRL 的基础上将某些引脚连接到逻辑 High 或 Low。图 1-3 所示为 BUFG 与 BUFGCTRL 的关系。可以对 BUFG 使用位置约束。

如图 1-4 中的时序图所示,输出是跟随在输入之后。

表 1-4: BUFGCTRL 属性

属性名称 描述 可能值

INIT_OUT 将 BUFGCTRL 输出初始化为配置后的指定值。设定正沿或负沿的行为。设定改变时钟选择时的输出电平。

0 (默认)、1

PRESELECT_I0 如果为 TRUE,则 BUFGCTRL 输出将使用配置后的 I0 输入。(1)

FALSE (默认)、TRUE

PRESELECT_I1 如果为 TRUE,则 BUFGCTRL 输出将使用配置后的 I1 输入。(1)

FALSE (默认)、TRUE

注:1. 两个 PRESELECT 属性不能同时为 TRUE。2. 可用位置约束。

图 1-3: BUFG 作为 BUFGCTRL

图 1-4: BUFG 时序图

IGNORE1

IGNORE0

CE1

CE0

S1

S0

I1

I0

O

BUFG

ug190_1_03_032206

VDDGND

VDD

VDD

VDD

I

OI

GND

GND

BUFG(I)

BUFG(O)

TBCCKO_Oug190_1_04_032206

26 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 1 章: 时钟资源R

BUFGCE 和 BUFGCE_1

与 BUFG 不同,BUFGCE 是具有一个时钟输入、一个时钟输出和一条时钟使能线的时钟缓冲器。此基元在 BUFGCTRL 的基础上将某些引脚连接到逻辑 High 或 Low。图 1-5 所示为 BUFGCE 与 BUFGCTRL 的关系。可以对 BUFGCE 和 BUFGCE_1 使用位置约束。

BUFGCE 的切换条件与 BUFGCTRL 的相似。如果 CE 输入在后续上升时钟沿之前为 Low,则下一个时钟脉冲不通过时钟缓冲器,输出保持为 Low。在下一个时钟 High 脉冲期间,CE 的任何电平变化都不起作用,直到时钟转换为 Low。禁用时钟后,输出保持为 Low。不过,在禁用时钟的过程中,它会完成时钟 High 脉冲。

因为时钟使能线使用 BUFGCTRL 的 CE 引脚,所以选择信号必须满足建立时间要求。违反这一建立时间可能导致毛刺信号。图 1-6 所示为 BUFGCE 的时序图。

除了切换条件外,BUFGCE_1 与 BUFGCE 相似。如果 CE 输入在后续下降时钟沿之前为 Low,则下一个时钟脉冲不通过时钟缓冲器,输出保持为 High。在下一个时钟 Low 脉冲期间,CE 的任何电平变化都不起作用,直到时钟转换为 High。禁用时钟后,输出保持为 High。不过,在禁用时钟的过程中,它会完成时钟 Low 脉冲。

图 1-7 所示为 BUFGCE_1 的时序图。

图 1-5: BUFGCE 作为 BUFGCTRL

图 1-6: BUFGCE 时序图

IGNORE1

IGNORE0

CE1

CE0

S1

S0

I1

I0

O

BUFGCE

BUFGCE as BUFGCTRL

ug190_1_05_032206

VDDGND

VDD

CE

VDDO

II

CEGND

GND

BUFGCE(I)

BUFGCE(CE)

BUFGCE(O)

ug190_1_06_032206TBCCKO_O

TBCCCK_CE

Virtex-5 用户指南 www.xilinx.com/cn 27UG190 (v3.1) 2007 年 9 月 11 日

全局时钟控制资源R

BUFGMUX 和 BUFGMUX_1

BUFGMUX 是具有两个时钟输入、一个时钟输出和一条选择线的时钟缓冲器。此基元在 BUFGCTRL 的基础上将某些引脚连接到逻辑 High 或 Low。

图 1-8 所示为 BUFGMUX 与 BUFGCTRL 的关系。可以对 BUFGMUX 和 BUFGCTRL 使用位置约束。

因为 BUFGMUX 用 CE 引脚作为选择引脚,所以在使用选择功能时必须满足建立时间要求。违反这一建立时间可能导致毛刺信号。

BUFGMUX 的切换条件与 BUFGCTRL 上 CE 引脚的相同。图 1-9 所示为 BUFGMUX 的时序图。

图 1-7: BUFGCE_1 时序图

图 1-8: BUFGMUX 作为 BUFGCTRL

图 1-9: BUFGMUX 时序图

BUFGCE_1(I)

BUFGCE_1(CE)

BUFGCE_1(O)

ug190_1_07_032206TBCCKO_O

TBCCCK_CE

IGNORE1

IGNORE0

CE1S

CE0

S1

S0

I1

I0

O

BUFGMUX

ug190_1_08_032206

VDD

VDD

OI1

I0

S

GND

GND

S

I0

I1

OTBCCKO_O

ug190_1_09_032306

TBCCKO_O

TBCCCK_CE

beginswitching using I1

28 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 1 章: 时钟资源R

在图 1-9 中:

• 当前时钟是 I0。

• S 为 High 有效。

• 如果 I0 当前为 High,则多路复用器等待将 I0 置为 Low 无效。

• 一旦 I0 为 Low,则多路复用器输出保持为 Low,直到 I1 从 High 转为 Low。

• 当 I1 从 High 转为 Low 时,输出切换到 I1。

• 如果满足了建立 / 保持要求,输出上就不会出现毛刺信号或短脉冲。

BUFGMUX_1 对上升沿敏感,并且在输入切换之前保持为 High。图 1-10 所示为 BUFGMUX_1 的时序图。可以对 BUFGMUX 和 BUFGMUX_1 使用位置约束。

在图 1-10 中:

• 当前时钟是 I0。

• S 置为 High 有效。

• 如果 I0 当前为 Low,则多路复用器等待将 I0 置为 High 有效。

• 一旦 I0 为 High,则多路复用器输出保持为 High,直到 I1 从 Low 转为 High。

• 当 I1 从 Low 转为 High 时,输出切换到 I1。

• 如果满足了建立 / 保持要求,输出上就不会出现毛刺信号或短脉冲。

BUFGMUX_VIRTEX4

BUFGMUX_VIRTEX4 是具有两个时钟输入、一个时钟输出和一条选择线的时钟缓冲器。此基元在 BUFGCTRL 的基础上将某些引脚连接到逻辑 High 或 Low。图 1-11 所示为 BUFGMUX_VIRTEX4 与 BUFGCTRL 的关系。

图 1-10: BUFGMUX_1 时序图

S

I0

I1

O

ug190_1_10_032306

TBCCCK_CE

TBCCKO_O

Virtex-5 用户指南 www.xilinx.com/cn 29UG190 (v3.1) 2007 年 9 月 11 日

全局时钟控制资源R

BUFGMUX_VIRTEX4 使用 S 引脚作为选择引脚。S 可随时切换而不引起毛刺。S 上的建立/ 保持时间用于确定输出是否在切换到新时钟之前传送预选时钟的一个附加脉冲。在建立时间 TBCCCK_S 之前以及在 I0 从 High 向 Low 转换之前,如果 S 如图 1-12 所示变化,则输出不会传送 I0 的附加脉冲。如果 S 在其保持时间后发生变化,则输出会传送一个附加脉冲。如果 S 违反建立 / 保持要求,则输出可能传送附加脉冲,但不会产生毛刺。在任一情况下,输出都会在较慢时钟的三个时钟周期内转换到新时钟。

S0 和 S1 的建立 / 保持要求是对下降沿 (设 INIT_OUT = 0)而言,不像 CE0 和 CE1 的建立 / 保持要求那样是对上升沿而言。

BUFGMUX_VIRTEX4 的切换条件与 BUFGCTRL 上 S 引脚的相同。图 1-12 所示为 BUFGMUX_VIRTEX4 的时序图。

BUFGMUX_VIRTEX4 基元的其他功能有:

• 在配置之后预选 I0 和 I1 输入。

• 可以将配置后的初始输出选定为 High 或 Low。

图 1-11: BUFGMUX_VIRTEX4 作为 BUFGCTRL

图 1-12: BUFGMUX_VIRTEX4 时序图

IGNORE1

IGNORE0

CE1

S

CE0

S1

S0

I1

I0

O

BUFGMUX_VIRTEX4

ug190_1_11_032206

VDD

VDD

OI1

I0

S

GND

GND

S

I0

I1

O

ug190_1_12_032306

TBCCKO_O TBCCKO_O

30 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 1 章: 时钟资源R

其他使用模型

基于 BUFGCTRL 的异步多路复用器

某些情况下的应用要求立即在各时钟输入之间切换或者忽略 BUFGCTRL 的边沿敏感性。其中一个例子就是当时钟输入之一不再切换时。如果发生这种情况,时钟输出就不会有适宜的切换条件,因为 BUFGCTRL 永远检测不到时钟沿。这种情况使用异步多路器。图 1-13 所示为使用 BUFGCTRL 设计示例的异步多路复用器。图 1-14 所示为该异步多路复用器的时序图。

在图 1-14 中:

• 当前时钟来自 I0。

• S 置为 High 有效。

• 时钟输出立即切换到 I1。

• 当 Ignore 信号置为 High 有效时,禁用毛刺信号保护。

图 1-13: 使用 BUFGCTRL 设计示例的异步多路复用器

图 1-14: 异步多路复用器的时序图

IGNORE1

IGNORE0

CE1

S

CE0

S1

S0

I1

I0

S

I1

I0

O

Asynchronous MUXDesign Example

ug190_1_13_032306

VDD

VDD

VDD

VDD

O

UG190_1_14_032306

TBCCKO_O TBCCKO_O

I0

I1

S

O

at I0 Begin I1

Virtex-5 用户指南 www.xilinx.com/cn 31UG190 (v3.1) 2007 年 9 月 11 日

全局时钟控制资源R

带时钟使能的 BUFGMUX_VIRTEX4

带时钟使能 BUFGCTRL 配置的 BUFGMUX_VIRTEX4 允许用户在后续的各时钟输入之间进行选择。如果需要,可以用时钟使能禁止输出。图 1-15 所示为 BUFGCTRL 使用设计示例;图 1-16 所示为其时序图。

在图 1-16 中:

• 在时间事件 1 处,输出 O 使用输入 I0。

• 在时间事件 2 之前,S 置为 High 有效。

• 在时间事件 2 之后的 TBCCKO_O 时段,输出 O 使用输入 I1。这发生在完成 I0 从 High 向 Low 转换紧接 I1 从 High 向 Low 转换之后。

• 在时间事件 3 之前的 TBCCCK_CE 时段,CE 置为 Low 有效。在 I1 完成从 High 向 Low 转换后,时钟输出切换到 Low 并保持为 Low。

图 1-15: 带 CE 的 BUFGMUX_VIRTEX4 和 BUFGCTRL

IGNORE1

IGNORE0

CE1

S

CE

CECE0

S1

S0

I1

I0

O

BUFGMUX_VIRTEX4+CEDesign Example

ug190_1_15_032206

OI1

I0

S

GND

GND

图 1-16: 带 CE 的 BUFGMUX_VIRTEX4 的时序图

ug190_1_16_040907

TBCCKO_O

TBCCCK_CE

TBCCKO_O

at I0 Clock Off

I0

I1

S

CE

O

Begin I1

1 2 3

32 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 1 章: 时钟资源R

时钟树和时钟网 - GCLKVirtex-5 时钟树是为低歪斜和低功耗操作设计的。任何未用分枝都不连接。当所有逻辑资源都使用时,时钟树还管理负载 / 扇出。

所有全局时钟线和缓冲器都以差分形式实现,这有助于大大改善占空比和共模噪声抑制能力。

在 Virtex-5 架构中,全局时钟线的引脚接入不仅限于逻辑资源的时钟引脚。全局时钟线不用局部互连即可接入 CLB 中的其他引脚。需要很快信号连接和大型负载 / 扇出的应用可得益于这种架构。

时钟区域Virtex-5 器件通过使用时钟区域改善时钟控制分配。每个时钟区域 多可有十个全局时钟域。这十个全局时钟可以由 32 个全局时钟缓冲器的任意组合驱动。时钟区域的尺寸固定为 20 个 CLB 高 (40 个 IOB),横跨半个晶片 (图 1-17)。通过固定时钟区域的尺寸,可使较大的 Virtex-5 器件具有较多时钟区域。因此,Virtex-5 器件可支持的跨时钟域比以前的 FPGA 架构多许多。表 1-5 所示为各 Virtex-5 器件中的时钟区域数。中心列中的逻辑资源(CMT、IOB 等)位于左侧时钟区域中。

CMT (如果使用)利用左侧区域中的全局时钟作为反馈线。一个特定区域中 多可有四个 CMT。如果在同一个区域中使用 IDELAYCTRL,则 IDELAYCTRL 使用该区域中的另一个全局时钟。请见第 2 章 “时钟管理技术”。

图 1-17: 时钟区域

ug190_1_17_042406

All clock regions are 20 CLBs tall (10 CLBs above and 10 CLBs below a horizontal clock line)

XC5VLX30 has 8 Clock Regions XC5VLX330 has 24 Clock Regions

Center ColumnLogic Resources

10 CLBs

10 CLBs

All clock regionsspan half the die

Virtex-5 用户指南 www.xilinx.com/cn 33UG190 (v3.1) 2007 年 9 月 11 日

区域时钟控制资源R

区域时钟控制资源区域时钟网络是一组独立于全局时钟网络的时钟网络。与全局时钟不同,区域时钟信号 (BUFR) 的跨度限于三个时钟区域,而 I/O 时钟信号只驱动一个区域。这些网络对于源同步接口设计尤其有用。Virtex-5 I/O 组大小与一个时钟区域相同。

要理解区域时钟控制如何工作,重要的是要了解区域时钟信号的信号通路。Virtex-5 时钟控制资源和网络由以下通路和组件构成:

• Clock Capable I/O

• I/O 时钟缓冲器 - BUFIO

• 区域时钟缓冲器 - BUFR

• 区域时钟网

Clock Capable I/O典型时钟区域中有四个 clock-capable I/O 引脚对 (中心列有例外)。Clock-capable I/O 对是选择位置中的常规 I/O 对,与附近区域的时钟资源具有特殊硬件连接。有些全局时钟输入也是 clock capable I/O。每个组中有四个专用 clock capable I/O 区。当用作时钟输入时,clock-capable 引脚可以驱动 BUFIO 和 BUFR。这些引脚不能直接连接到全局时钟缓冲器。如果用作单端时钟引脚,则如 “全局时钟缓冲器”中所述,必须使用引脚对的 P 端,因为只有这一引脚上存在直接连接。

表 1-5: Virtex-5 时钟区域

器件 时钟区域数

XC5VLX30 8

XC5VLX50 12

XC5VLX85 12

XC5VLX110 16

XC5VLX220 16

XC5VLX330 24

XC5VLX30T 8

XC5VLX50T 12

XC5VLX85T 12

XC5VLX110T 16

XC5VLX220T 16

XC5VLX330T 24

XC5VSX35T 8

XC5VSX50T 12

XC5VSX95T 16

34 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 1 章: 时钟资源R

I/O 时钟缓冲器 - BUFIOI/O 时钟缓冲器 (BUFIO) 是可以在 Virtex-5 器件中使用的一种时钟缓冲器。BUFIO 驱动 I/O 列内一个独立于全局时钟资源的专用时钟网。这样,BUFIO 就可以理想地适合源同步数据采集 (传送 / 接收器时钟分配)。BUFIO 只能由位于同一时钟区域的 clock capable I/O 驱动。典型的时钟区域中有四个 BUFIO。每个 BUFIO 可驱动同一区域 / 组中的一个 I/O 时钟网络,区域时钟缓冲器 (BUFR) 也是如此。BUFIO 不能驱动逻辑资源 (CLB、Block RAM 等),因为 I/O 时钟网络只能覆盖同一组或时钟区域内的 I/O 列。

BUFIO 基元

BUFIO 其实就是一个时钟输入和时钟输出缓冲器。输入与输出之间有一个相位延迟。图 1-18 所示为 BUFIO。表 1-6 列出了 BUFIO 的端口。可以对 BUFIO 使用位置约束。

BUFIO 使用模型

在图 1-19 中,使用一个 BUFIO 用 clock capable I/O 驱动 I/O 逻辑。这在源同步应用中是理想的实现方案,其中传送的时钟用于采集输入的数据。

图 1-18: BUFIO 基元

表 1-6: BUFIO 端口列表和定义

端口名称 类型 宽度 定义

O 输出 1 时钟输出端口

I 输入 1 时钟输入端口

BUFIO

ug190_1_18_032306

OI

Virtex-5 用户指南 www.xilinx.com/cn 35UG190 (v3.1) 2007 年 9 月 11 日

区域时钟控制资源R

图 1-19: 在一个时钟区域中驱动 I/O 逻辑的 BUFIO

I/O

I/O

I/O

I/O

I/O

I/O

I/O

BUFIO

BUFIO

BUFR

BUFR

ug190_1_19_060706

To Fabric

To AdjacentRegion

To AdjacentRegion

I/O

I/O

I/O

Clock Capable I/O

I/O

I/O

I/O

I/O

I/O

I/O

I/O

I/O

I/O

I/O

P

N

P

N

P

N

P

N

Not all available BUFIOs are shown.

Clock Capable I/O

Clock Capable I/O

Clock Capable I/O

36 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 1 章: 时钟资源R

区域时钟缓冲器 - BUFR区域时钟缓冲器 (BUFR) 是可以在 Virtex-5 器件中使用的另一种时钟缓冲器。BUFR 将时钟信号驱动到时钟区域内一个独立于全局时钟树的专用时钟网。每个 BUFR 可以驱动其所在区域中的四个区域时钟和相邻区域 ( 多三个时钟区域)中的四个时钟网。与 BUFIO 不同,BUFR 不仅可以驱动其所在时钟区域和相邻时钟区域中的 I/O 逻辑,还可以驱动其中的逻辑资源 (CLB、Block RAM 等)。BUFR 可由 clock capable 引脚或局部互连驱动。另外,BUFR 能够根据时钟输入生成分频时钟输出。分频值为一到八之间的整数。对于要求跨时钟域或串并转换的源同步应用来说,BUFR 是理想的。典型的时钟区域 (四个区域时钟网络)中有两个 BUFR。中心列没有 BUFR。

BUFR 基元

BUFR 是一个具有输入时钟分频功能的时钟输入 / 时钟输出缓冲器。

关于 CE 引脚的附加说明

将 CE 置为有效 / 无效后,输出时钟信号关闭。当全局设置 / 复位 (GSR) 信号为 High 时,BUFR 不翻转,即使 CE 保持为 High 也是如此。当 BUFR 输入端口上有时钟时,BUFR 输出在 GSR 信号置为无效后翻转。

图 1-20: BUFR 基元

表 1-7: BUFR 端口列表和定义

端口名称 类型 宽度 定义

O 输出 1 时钟输出端口

CE 输入 1 时钟使能端口。不能在 BYPASS 模式下使用。

CLR 输入 1 异步清除分频逻辑,并将输出设置为 Low。不能在 BYPASS 模式下使用。

I 输入 1 时钟输入端口

CLRCE

I O

ug190_1_20_032306

Virtex-5 用户指南 www.xilinx.com/cn 37UG190 (v3.1) 2007 年 9 月 11 日

区域时钟控制资源R

BUFR 属性和模式

BUFR 中的时钟分频是在软件中通过 BUFR_DIVIDE 属性进行控制。表 1-8 所列为使用 BUFR_DIVIDE 属性时的可能值。

对于 BUFR_DIVIDE = 1 和 BUFR_DIVIDE = BYPASS,通过 BUFR 的传播延迟不同。当设置为 1 时,延迟比 BYPASS 时稍长。所有其他分频系数都具有与 BUFR_DIVIDE = 1 时相同的延迟。对于除 BYPASS 以外的所有可能分频来说,输入时钟与输出时钟之间的相位关系均相同。

当使用 BUFR_DIVIDE 属性时,BUFR 的输入与输出之间的时序关系如图 1-21 所示。在本示例中,BUFR_DIVIDE 属性设置为三。在此图之前,CLR 曾置为有效。

在图 1-21 中:

• 在时钟事件 1 之前,CE 置为 High 有效。

• 当 CE 置为有效然后经过四个时钟周期和 TBRCKO_O 后,输出 O 开始以输入 I 的三分频速率翻转。速度指标中明确提供了 TBRCKO_O 及其他时序参数。

注:奇数分频的占空比不是 50/50。Low 脉冲长出 I 的一个周期。

• 在时间事件 2 处,CLR 置为有效。在时间事件 2 后再经过 TBRDO_CLRO,O 停止翻转。

• 在时间事件 3 处,CLR 置为无效。

• 在时钟事件 4 后再经过时段 TBRCKO_O,O 再次开始以输入 I 的三分频速率翻转。

表 1-8: BUFR_DIVIDE 属性

属性名称 描述 可能值

BUFR_DIVIDE 规定输出时钟是否是输入时钟的一个分频版本。

1、2、3、4、5、6、7、8、BYPASS (默认)

注:1. 可以对 BUFR 使用位置约束。

图 1-21: 带 BUFR_DIVIDE 值的 BUFR 时序图

ug190_1_21_050906

TBRCKO_O TBRCKO_OTBRDO_CLRO

I

CE

CLR

O

1 2 3 4

38 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 1 章: 时钟资源R

BUFR 使用模型

对于要求跨时钟域或串并转换的源同步应用来说,BUFR 是理想的。与 BUFIO 不同,BUFR 能够对 FPGA 中除 IOB 以外的逻辑资源进行时钟控制。图 1-22 是一个 BUFR 设计示例。

图 1-22: 驱动各种逻辑资源的 BUFR

ug190_1_22_072806

CLBs

CLBs

CLBs

CLBs

CLBs

CLBs

CLBs

CLBs

BRAM

BRAM

DSPTile

DSPTile

BUFR

To RegionAbove

To Centerof Die

To RegionBelow

I/O Tile

I/O Tile

I/O Tile

I/O Tile

I/O Tile

I/O Tile

I/O Tile

I/O Tile

BUFIO

Clock Capable I/O

Virtex-5 用户指南 www.xilinx.com/cn 39UG190 (v3.1) 2007 年 9 月 11 日

VHDL 和 Verilog 模板R

区域时钟网除了全局时钟树和网,Virtex-5 器件还包含区域时钟网。这些时钟树也是为低歪斜和低功耗操作设计的。未用分枝都不连接。当所有逻辑资源都使用时,时钟树还管理负载 / 扇出。

区域时钟网的传播并非遍及整个 Virtex-5 器件,而是仅限于一个时钟区域。一个时钟区域包含四个独立的区域时钟网。

要接入区域时钟网,BUFR 必须例化。一个 BUFR 多可以驱动两个相邻时钟区域中的区域时钟 (图 1-23)。顶部或底部区域中的 BUFR 只能相应接入下边或上边的一个相邻区域。左侧的 BUFR 可以向中心列 I/O 馈送信号。

VHDL 和 Verilog 模板《库指南》中提供了所有时钟控制资源之基元的 VHDL 和 Verilog 代码以及 ISE 语言模板。

图 1-23: 驱动多区域的 BUFR

ug190_1_23_012306

BUFRs

40 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 1 章: 时钟资源R

Virtex-5 用户指南 www.xilinx.com/cn 41UG190 (v3.1) 2007 年 9 月 11 日

R

第 2 章

时钟管理技术

时钟管理概述Virtex-5 时钟管理模块 (CMT) 提供非常灵活的高性能时钟控制。每个 CMT 包含两个 DCM 和一个 PLL。图 2-1 所示为包括 CMT 模块在内的 Virtex-5 中心列资源的简化视图,DCM 位于 CMT 模块当中。每个 CMT 模块包含两个 DCM 和一个 PLL。

图 2-1: CMT 的位置

ug190_2_01_032506

CMT Blocks(Top Half DCMs/PLLs)

CMT Blocks(Bottom Half DCMs/PLLs)

Clock I/O(Top Half)

Clock I/O(Bottom Half)

Config I/O(Top Half)

Config I/O(Bottom Half)

I/O Banks(Larger Devices Only)

I/O Banks(Larger Devices Only)

Virtex-5Center ColumnConfig Blocks and

BUFGs

42 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 2 章: 时钟管理技术R

表 2-1 列举了不同 Virtex-5 器件中的 CMT、DCM 和 PLL 资源。

DCM 概述Virtex-5 数字时钟管理器 (DCM) 提供广泛而强大的时钟管理功能:

• 时钟去歪斜

DCM 包含一个延迟锁定环 (DLL),该延迟锁定环根据输入时钟去除 DCM 的输出时钟歪斜,以完全消除时钟分布延迟。DLL 包含延迟单元 (分立的小型缓冲器)和控制逻辑。输入的时钟驱动一连串延迟单元,因此,每个延迟单元的输出代表在不同点延迟的输入时钟的一个版本。

控制逻辑包含一个相位检测器和一个延迟线选择器。相位检测器将输入的时钟信号 (CLKIN) 与一个反馈输入 (CLKFB) 进行比较,然后控制延迟线选择器,这实质上是通过对 DCM 的输出加入延迟直到 CLKIN 与 CLKFB 重合。

• 频率合成

提供两个独立的倍频时钟 (CLK2X 和 CLK2X180)输出。另外还提供一个对输入频率进行指定分频的输出 CLKDV。

另外两个输出 CLKFX 和 CLKFX180,提供对输入时钟分频和倍频后获得的输出频率。用户可以在 《Virtex-5 数据手册》的 “DCM 时序参数”部分规定的范围内指定任意整数的倍频系数 (M) 和分频系数 (D)。内部计算器通过确定适当的 tap 连接选择,在每若干个周期使输出时钟沿与输入时钟重合。例如,当 M = 9 以及 D = 5 时,即 1.8 倍频,那么在每五个输入周期后或每九个输出周期后,输出的时钟的上升沿就会与输入时钟的上升沿重合。

表 2-1: CMT、DCM 和 PLL 资源

器件 CMT 数可用的DCM

区名称

XC5VLX30XC5VLX30TXC5VSX35T

2 4 下半部:

DCM_ADV_X0Y0、DCM_ADV_X0Y1、PLL_ADV_X0Y0

上半部:

DCM_ADV_X0Y2、DCM_ADV_X0Y3、PLL_ADV_X0Y1

XC5VLX50XC5VLX50TXC5VSX50TXC5VLX85XC5VLX85TXC5VSX95TXC5VLX110XC5VLX110TXC5VLX220XC5VLX220TXC5VLX330XC5VLX330T

6 12 下半部:

DCM_ADV_X0Y0、DCM_ADV_X0Y1、PLL_ADV_X0Y0

DCM_ADV_X0Y2、DCM_ADV_X0Y3、PLL_ADV_X0Y1

DCM_ADV_X0Y4、DCM_ADV_X0Y5、PLL_ADV_X0Y2

上半部:

DCM_ADV_X0Y6、DCM_ADV_X0Y7、PLL_ADV_X0Y3

DCM_ADV_X0Y8、DCM_ADV_X0Y9、PLL_ADV_X0Y4

DCM_ADV_X0Y10、DCM_ADV_X0Y11、PLL_ADV_X0Y5

Virtex-5 用户指南 www.xilinx.com/cn 43UG190 (v3.1) 2007 年 9 月 11 日

DCM 基元R

• 相移

DCM 提供粗调和微调两种时钟相移。粗调相移通过对 CLK0 进行 90°、180° 和 270° 的相移得到 CLK90、CLK180 和 CLK270 输出。CLK2X180 和 CLKFX180 时钟输出分别是 CLK2X 和 CLKFX 的 180° 相移输出。

还有四种微调相移模式:固定相移、可变正相移、可变中心相移和直接相移模式。微调相移允许所有 DCM 输出时钟都相对 CLKIN 移相,同时保持各粗调移相输出之间的相位关系。使用固定相移模式,可以在配置过程中定义一个 1/256 个时钟周期若干倍的固定相移。使用可变正相移和可变中心相移模式,可以动态并重复进行前后移相 1/256 个时钟周期。使用直接相移模式,相位可以动态并重复进行前后移相一个 DCM_TAP 的值。参见 《Virtex-5 数据手册》的 “DCM 时序参数”部分。

• 动态重配置

DCM 具有一组总线,用户可以通过其改变 DCM 属性而不必重新配置器件的其他部分。详见 《Virtex-5 配置指南》的 “动态重配置”一章。

DADDR[6:0]、DI[15:0]、DWE、DEN 和 DCLK 输入端口以及 DO[15:0] 和 DRDY 输出端口可用来动态重配置 DCM 功能。使用动态重配置可以修改 DCM 属性,改变其相移、倍频系数 (M) 或分频系数 (D)。

DCM 基元图 2-2 所示为 DCM 基元 DCM_BASE 和 DCM_ADV。

图 2-2: DCM 基元

CLKINCLKFB

RST

CLK0CLK90

CLK180CLK270

CLK2XCLK2X180

CLKDV

CLKFXCLKFX180

LOCKED

CLKINCLKFB

PSINCDECPSENPSCLK

DADDR[6:0]DI[15:0]DWEDENDCLK

RST

CLK0CLK90

CLK180CLK270

CLK2XCLK2X180

CLKDV

CLKFXCLKFX180

LOCKED

PSDONEDO[15:0]

DRDY

DCM_ADVDCM_BASE

ug190_2_02_042706

44 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 2 章: 时钟管理技术R

DCM_BASE 基元DCM_BASE 基元包含常用的 DCM 基本功能,简化了用户接口。使用 DCM_BASE,可以完成对时钟去歪斜、进行频率合成和固定相移的功能。表 2-2 列出了 DCM_BASE 基元的可用端口。

DCM_ADV 基元DCM_ADV 基元除包含 DCM_BASE 中的所有 DCM 功能和可用端口之外,还包含具有动态重配置功能的端口。DCM_ADV 基元是 DCM_BASE 基元的扩展。DCM_ADV 包括所有 DCM 功能,包括时钟去歪斜、频率合成、固定或可变相移以及动态重配置。表 2-3 列出了 DCM_ADV 基元中的可用端口。

DCM 端口Virtex-5 有四种可用的 DCM 端口:

• DCM 时钟输入端口

• DCM 控制和数据输入端口

• DCM 时钟输出端口

• DCM 状态和数据输出端口

DCM 时钟输入端口

时钟源输入 - CLKIN

源时钟 (CLKIN) 输入引脚提供 DCM 的时钟源。CLKIN 的频率必须在 《Virtex-5 数据手册》中规定的范围内。时钟输入信号可以来自以下几种缓冲器之一:

表 2-2: DCM_BASE 基元

可用端口 端口名称

时钟输入 CLKIN、CLKFB

控制和数据输入 RST

时钟输出 CLK0、CLK90、CLK180、CLK270、CLK2X、CLK2X180、CLKDV、CLKFX、CLKFX180

状态和数据输出 LOCKED

表 2-3: DCM_ADV 基元

可用端口 端口名称

时钟输入 CLKIN、CLKFB、PSCLK、DCLK

控制和数据输入 RST、PSINCDEC、PSEN、DADDR[6:0]、DI[15:0]、DWE、DEN

时钟输出 CLK0、CLK90、CLK180、CLK270、CLK2X、CLK2X180、CLKDV、CLKFX、CLKFX180

状态和数据输出 LOCKED、PSDONE、DO[15:0]、DRDY

Virtex-5 用户指南 www.xilinx.com/cn 45UG190 (v3.1) 2007 年 9 月 11 日

DCM 端口R

1. IBUFG - 全局时钟输入缓冲器

当采用反馈时钟 CLKFB 并且使用器件与 DCM 相同半边(上半边或下半边)的 IBUFG 时,DCM 会补偿时钟输入通路上的相位延迟。

2. BUFGCTRL - 内部全局时钟缓冲器

任何 BUFGCTRL 都可以通过专用全局布线驱动 Virtex-5 器件中的任意一个 DCM。当用来串联两个 DCM 时,BUFGCTRL 可以驱动 DCM 的 CLKIN 端口。

3. PLL - 锁相环

PLL 模块可以驱动同一 CMT 内两个 DCM 中任一个的 CLKIN。二者之间不需要全局缓冲器。详情请见第 67 页的 “应用示例”。

4. IBUF - 输入缓冲器

当 IBUF 驱动 CLKIN 输入时,从 PAD 到 DCM 输入的相位延迟将得不到补偿。

反馈时钟输入 - CLKFB

反馈时钟 (CLKFB) 输入引脚向 DCM 提供一个参考或反馈信号,对输出时钟进行延迟补偿并且将其与输入时钟对齐。为了给 DCM 提供必须的反馈,应当将 DCM 的 CLK0 输出连接到 CLKFB 端口。采用 CLKFB 端口后,可以去除所有时钟输出对 CLKIN 的歪斜。若不采用 CLKFB 端口,则无法去除 DCM 时钟输出对 CLKIN 的歪斜,但仍可保持所有输出时钟之间的相对相位关系。

在内部反馈配置中,DCM 的 CLK0 输出连接到同一上半部或下半部的一个全局缓冲器。全局缓冲器的输出连接到同一 DCM 的 CLKFB 输入。

在外部反馈配置中,适用以下规则:

1. 要传输时钟信号,DCM 的 CLK0 必须直接驱动一个 OBUF 或 BUFG 到 DDR 配置。

2. 在 FPGA 外部,传输的时钟信号必须连接到 IBUFG (GCLK 引脚)或连接到驱动 DCM 的 CLKFB 的 IBUF。CLK 和 CLKFB 二者应采用相同的 I/O 缓冲器。

第 67 页的 “应用示例”中的图 2-9 和图 2-10 所示为外部反馈配置中的时钟传送。

反馈时钟输入信号可以由以下几种缓冲器驱动:

1. IBUFG - 全局时钟输入缓冲器

它是外部反馈配置中优先采用的。当 IBUFG 驱动器件同一上半或下半部分中的 DCM 的 CLKFB 引脚时,从引脚到 DCM 的相位延迟将得到补偿。

2. BUFGCTRL - 内部全局时钟缓冲器

它在内部反馈配置中由 CLK0 驱动。

3. IBUF - 输入缓冲器

它在外部反馈配置中被采用。当采用 IBUF 时,从引脚到 DCM 的相位延迟将得不到补偿,因而性能无法保证。

46 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 2 章: 时钟管理技术R

相移时钟输入 - PSCLK

相移时钟 (PSCLK) 输入端口为 DCM 相移提供时钟源。PSCLK 可以(在相位和频率上)与 CLKIN 异步。相移时钟信号可以由任何时钟源 (外部或内部)驱动,包括:

1. IBUF - 输入缓冲器

2. IBUFG - 全局时钟输入缓冲器

只用通过 DCM 同边 (上半边或下半边)的 IBUFG, 才能使用专用布线资源驱动 DCM 的 PSCLK 输入。

3. BUFGCTRL - 内部全局时钟缓冲器

4. 内部时钟 - 任何使用通用布线资源的内部时钟。

PSCLK 的频率范围由 PSCLK_FREQ_LF/HF 定义,请见 《Virtex-5 数据手册》。当 CLKOUT_PHASE_SHIFT 属性设置为 NONE 或 FIXED 时,此输入必须接地。

动态重配置时钟输入 - DCLK

动态重配置时钟 (DCLK) 输入端口为 DCM 的动态重配置电路提供时钟源。DCLK 的频率可以 (在相位和频率上)与 CLKIN 异步。动态重配置时钟信号可以由任何时钟源 (外部或内部)驱动,包括:

1. IBUF - 输入缓冲器

2. IBUFG - 全局时钟输入缓冲器

只有器件上与 DCM 同边 (上半边或下半边)的 IBUFG 可用于驱动 DCM 的 CLKIN 输入。

3. BUFGCTRL - 内部全局时钟缓冲器

4. 内部时钟 - 任何使用通用布线资源的内部时钟。

DCLK 的频率范围请参见 《Virtex-5 数据手册》。当不使用动态重配置时,此输入必须接地。详情请见 《Virtex-5 配置指南》的 “动态重配置”一章。

DCM 控制和数据输入端口

复位输入 - RST

复位 (RST) 输入端口用于对 DCM 电路进行复位。它是高电平有效的异步复位信号。采用 RST 信号异步复位使所有 DCM 输出 (LOCKED 信号、所有状态信号以及所有输出时钟)在一定传播延迟后都输出低电平。复位信号有效后, 后一个时钟周期会出现短脉冲和占空比严重失真,或者在高电平情况下无法去除相互间的歪斜。将 RST 信号置为无效后将在下一 CLKIN 周期开始锁定过程。

为了确保正确的 DCM 复位和锁定过程,必须将 RST 信号保持到 CLKIN 和 CLKFB 信号出现并且稳定至少三个 CLKIN 周期。对 CLKFB 稳定三个 CLKIN 周期的要求只在外部反馈时才适用。

《Virtex-5 数据手册》中将 DCM 在复位后锁定所需的时间定义为 LOCK_DLL (对于 DLL 输出)和 LOCK_FX (对于 DFS 输出)。这就是 “DCM 时钟输出端口”中所述的 CLK 和 CLKFX 输出。频率越高,DCM 锁定得越快。《Virtex-5 数据手册》中给出了 坏情况下的数据。在所有设计中,DCM 都必须将复位状态保持到 CLKIN 稳定下来。

Virtex-5 用户指南 www.xilinx.com/cn 47UG190 (v3.1) 2007 年 9 月 11 日

DCM 端口R

相移递增 / 递减输入 - PSINCDEC

相移递增 / 递减 (PSINCDEC) 输入信号必须与 PSCLK 同步。PSINCDEC 输入信号用于 PSEN 有效时递增或递减相移系数。其结果是使输出时钟移相。对于相位递减,PSINCDEC 置为高电平,对于相位递减,置为低电平。当 CLKOUT_PHASE_SHIFT 属性设置为 NONE 或 FIXED 时,此输入必须接地。

相移使能输入 - PSEN

相移使能 (PSEN) 输入信号必须与 PSCLK 同步。PSEN 输入信号启动一个可变相移操作。该信号必须保持一个 PSCLK 周期。相位在启动 PSEN 后渐变,以 PSDONE 的一个脉冲指示其完成。在相变过程中,任何输出上均无突变或毛刺信号。从启动 PSEN 时起到标记 PSDONE 时止,DCM 输出时钟从其初始相移向目标相移逐步移动。相移在标记 PSDONE 时结束。当 CLKOUT_PHASE_SHIFT 属性设置为 NONE 或 FIXED 时,PSEN 必须接地。图 2-6 所示为此输入的时序图。

动态重配置数据输入 - DI[15:0]

动态重配置数据 (DI) 输入总线为动态重配置提供重配置数据。在不使用时,必须将所有位赋零。有关详情,请见 《Virtex-5 配置指南》的 “动态重配置”一章。

动态重配置地址输入 - DADDR[6:0]

动态重配置地址 (DADDR) 输入总线为动态重配置提供重配置地址。在不使用时,必须将所有位赋零,DO 输出反映 DCM 的状态。有关详情,请见 《Virtex-5 配置指南》的 “动态重配置”一章。

动态重配置写使能输入 - DWE

动态重配置写使能 (DWE) 输入引脚提供写使能控制信号,以便将 DI 数据写入 DADDR 地址。在不使用时,必须将其置为低电平。有关详情,请见 《Virtex-5 配置指南》的 “动态重配置”一章。

动态重配置使能输入 - DEN

动态重配置使能 (DEN) 输入引脚为使用动态重配置功能提供使能控制信号。当不使用动态重配置功能时,必须将 DEN 置为低电平。当 DEN 置为低电平,DO 反映 DCM 的状态信号。有关详情,请见 《Virtex-5 配置指南》的 “动态重配置”一章。

DCM 时钟输出端口DCM 提供具有特定频率和相位关系的九个时钟输出。当连接 CLKFB 时,所有 DCM 时钟输出均与 CLKIN 具有固定的相位关系。当不连接 CLKFB 时,DCM 输出时钟的相位与输入不对齐。但是,仍可保持所有输出时钟之间的相对相位关系。

48 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 2 章: 时钟管理技术R

1x 输出时钟 - CLK0

CLK0 输出时钟提供一个频率与 DCM 的有效 CLKIN 频率相同的时钟。默认情况下,该有效输入时钟频率等于 CLKIN 频率。若将 CLKIN_DIVIDE_BY_2 属性设置为 TRUE,则使有效 CLKIN 频率等于 ½ 实际 CLKIN 频率。“CLKIN_DIVIDE_BY_2 属性”部分做了详细的说明。当连接 CLKFB 时,CLK0 与 CLKIN 相位对齐。

1x 输出时钟,90°相移 - CLK90

CLK90 输出时钟提供一个与 DCM 的 CLK0 相移 90° 后同频的时钟。

1x 输出时钟,180°相移 - CLK180

CLK180 输出时钟提供一个与 DCM 的 CLK0 相移 180° 后同频的时钟。

1x 输出时钟,270°相移 - CLK270

CLK270 输出时钟提供一个与 DCM 的 CLK0 相移 270° 后同频的时钟。

2x 输出时钟 - CLK2X

CLK2X 输出时钟提供一个与 CLK0 相位对齐的时钟,其频率是 CLK0 的两倍,具有 50/50 占空比自动校正。在 DCM 锁定之前,CLK2X 输出频率与输入时钟相同,具有 25/75 占空比。这使 DCM 能够在相对源时钟的正确沿上锁定。

2x 输出时钟,180°相移 - CLK2X180

CLK2X180 输出时钟提供一个与 DCM 的 CLK2X 同频,并移相 180° 后的时钟。

分频输出时钟 - CLKDV

CLKDV 输出时钟提供一个与 CLK0 相位对齐的时钟,其频率是有效 CLKIN 频率的一个分频。该分频值由 CLKDV_DIVIDE 属性确定。有关详情,请参见 “CLKDV_DIVIDE 属性”。

频率合成输出时钟 - CLKFX

CLKFX 输出时钟提供一个具有以下频率定义的时钟:

CLKFX 频率 = (M/D) × 有效 CLKIN 频率

在此公式中,M 是倍频系数 (分子),其值由 CLKFX_MULTIPLY 属性定义。D 是分频系数 (分母),其值由 CLKFX_DIVIDE 属性定义。《Virtex-5 数据手册》中提供了 M 和 D 以及频率合成器的输入和输出频率范围的技术指标。

CLKFX 输出的上升沿与 CLK0、CLK2X 和 CLKDV 的上升沿对齐。当 M 和 D 没有公因数时,CLK0 的每 D 个周期中只发生一次相位对齐。

Virtex-5 用户指南 www.xilinx.com/cn 49UG190 (v3.1) 2007 年 9 月 11 日

DCM 端口R

频率合成输出时钟,180°- CLKFX180

CLKFX180 输出时钟提供一个与 DCM 的 CLKFX 同频,并相移 180° 后的时钟。

DCM 状态和数据输出端口

锁定输出 - LOCKED

LOCKED 输出指示 DCM 时钟输出是否有效,即是否输出正确的频率和相位。复位后,DCM 对数千个时钟周期进行取样以获得锁定。DCM 锁定之后,LOCKED 信号置高电平。《Virtex-5 数据手册》的 “DCM 时序参数”部分提供了锁定时间的估算值。

为了保证在启动周期末尾建立起系统时钟,DCM 可以将器件配置过程的完成延迟到 DCM 锁定之后。STARTUP_WAIT 参数启动这一功能。“STARTUP_WAIT 属性”说明提供了进一步信息。

在 LOCKED 信号置为高有效之前,DCM 输出时钟无效,可能出现毛刺信号、尖脉冲或其他虚假动作。尤其是 CLK2X 输出表现为一个具有 25/75 占空比的 1x 时钟。

相移完成输出 - PSDONE

相移完成 (PSDONE) 输出信号与 PSCLK 同步。在请求的相移完成时,PSDONE 在 PSCLK 的一个周期内输出高电平。此信号还指示可以对相移开始新的变化。如果当前未使用相移功能或者该功能处于固定模式,则 PSDONE 输出信号无效。

状态或动态重配置数据输出 - DO[15:0]

当使用动态重配置时,DO 输出总线提供 DCM 状态或数据输出 (表 2-4)。《Virtex-5 配置指南》的 “动态重配置”一章提供了关于将 DO 用作数据输出的进一步信息。

50 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 2 章: 时钟管理技术R

如果未使用动态配置端口,强烈建议使用 DCM_BASE 而不使用 DCM_ADV。

当 (在复位或锁定过程中)LOCKED 为低电平时,所有状态信号均置为无效。

动态重配置就绪输出 - DRDY

动态重配置就绪 (DRDY) 输出引脚为 DCM 的动态重配置功能提供对 DEN 信号的响应。《Virtex-5 配置指南》的 “动态重配置”一章提供了关于 DRDY 引脚的进一步信息。

表 2-4: 映射到 DO 总线的 DCM 状态

DO 位 状态 描述

DO[0] 相移溢出 当 DCM 相移超过允许相移值时,或者当超过相移延迟线的绝对延迟范围时,置为有效。如果未使用相移功能 (CLKOUT_PHASE_SHIFT=NONE),DO[0] 置为无效。

DO[1] CLKIN 停止 当输入时钟停止 (CLKIN 在一个或多个时钟周期内保持为 High 或 Low)时,置为有效。当 CLKIN 停止时,DO[1],CLKIN 停止状态位在九个 CLKIN 周期内置为有效。当 CLKIN 重启时,CLK0 开始翻转,DO[1] 在九个时钟周期内置为无效。

DO[2] CLKFX 停止 当 CLKFX 停止时置为有效。DO[2],CLKFX 停止状态位,在 CLKFX 停止后的 260 个周期内置为有效。直到 DCM 复位后,CLKFX 才能恢复,DO[2] 才置为无效。如果未使用 CLKFX/CLKFX180 输出,DO[2] 置为无效。

DO[3] CLKFB 停止 当反馈时钟停止 (CLKFB 在一个或多个时钟周期内保持为 High 或 Low)时,置为有效。DO[3],CLKFB 停止状态位,在 CLKFB 停止后的六个 CLKIN 周期内置为有效。当 CLKFB 在瞬时停止后恢复时,CLKFB 停止状态在六个 CLKIN 周期内置为无效。CLKFB 偶尔遗漏不影响 DCM 操作。但是,CLKFB 长时间停止会导致 DCM 失锁。一旦失锁,DCM 就需要复位以恢复操作。当未使用 DCM 的 DLL 部分时 (例如,当仅使用 CLKFX 输出时),可保持 CLKFB 不连接。在这种情况下,DO[3] 置为无效。

DO[15:4] 未指定

Virtex-5 用户指南 www.xilinx.com/cn 51UG190 (v3.1) 2007 年 9 月 11 日

DCM 属性R

DCM 属性少许 DCM 属性控制 DCM 的功能。表 2-6 概述了所有适用的 DCM 属性。本部分详细介绍各属性。有关在 UCF、VHDL 或 Verilog 代码中应用这些属性的详细信息,请参阅 《约束指南》,网址是: http://www.support.xilinx.com/cn/support/software_manuals.htm。

CLKDV_DIVIDE 属性CLKDV_DIVIDE 属性控制 CLKDV 频率。源时钟用此属性的值分频。CLKDV_DIVIDE 的可能值有:1.5、2、2.5、3、3.5、4、4.5、5、5.5、6、6.5、7、7.5、8、9、10、11、12、13、14、15 或 16。默认值是 2。在低频模式下,任何 CLKDV_DIVIDE 值均产生一个具有 50/50 占空比的 CLKDV 输出。在高频模式下,CLKDV_DIVIDE 值必须设置为整数值才能产生具有 50/50 占空比的 CLKDV 输出。对于非整数 CLKDV_DIVIDE 值,CLKDV 输出的占空比如表 2-5 所示。

CLKFX_MULTIPLY 和 CLKFX_DIVIDE 属性CLKFX_MULTIPLY 属性设置 CLKFX 输出的倍频系数 (M) 值。CLKFX_DIVIDE 属性设置 CLKFX 输出的分频系数 (D) 值。这两个属性控制 CLKFX 输出,使 CLKFX 频率等于有效 CLKIN(源时钟)频率乘以 M/D。M 的可能值是 2 到 33 之间的任意整数。D 的可能值是 1 到 32 之间的任意整数。默认设置是 M = 4 和 D= 1。

CLKIN_PERIOD 属性CLKIN_PERIOD 属性指定源时钟周期 (纳秒数)。默认值是 0.0 ns。将此属性设置为输入周期值时效果 佳。

表 2-5: 非整数 CLKDV_DIVIDE

CLKDV_DIVIDE 值高频模式下的

CLKDV 占空比(高脉冲 / 低脉冲值)

1.5 1/3

2.5 2/5

3.5 3/7

4.5 4/9

5.5 5/11

6.5 6/13

7.5 7/15

52 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 2 章: 时钟管理技术R

CLKIN_DIVIDE_BY_2 属性CLKIN_DIVIDE_BY_2 属性用来启用通向 DCM 的输入时钟通路中的一个翻转触发器。当设置成 FALSE 时,DCM 的有效 CLKIN 频率等于驱动 CLKIN 输入的源时钟频率。当设置成 TRUE 时,CLKIN 频率在到达 DCM 的其余部分之前除以二。这样,DCM 看到的就是 CLKIN 输入频率的一半,并且根据这一频率操作。例如,如果由一个 100 MHz 的时钟驱动 CLKIN,并且将 CLKIN_DIVIDE_BY_2 设置为 TRUE,则有效 CLKIN 频率是 50 MHz。因此,CLK0 输出是 50 MHz,而 CLK2X 输出是 100 MHz。源自 CLKIN 频率的任何操作或指标都必须用有效 CLKIN 频率评价。CLKIN_DIVIDE_BY_2 的可能值是 TRUE 和 FALSE。默认值是 FALSE。

CLKOUT_PHASE_SHIFT 属性CLKOUT_PHASE_SHIFT 属性指示 DCM 输出使用的相移模式。其可能值是 NONE、FIXED、VARIABLE_POSITIVE、VARIABLE_CENTER 或 DIRECT。默认值是 NONE。

当设置成 NONE 时,不能执行相移,相移值对 DCM 输出不起作用。当设置成 FIXED 时,由相对 CLKIN 的固定相位作为 DCM 移相输出。相移值由 PHASE_SHIFT 属性确定。如果将 CLKOUT_PHASE_SHIFT 属性设置成 FIXED 或 NONE,则 PSEN、PSINCDEC 和 PSCLK 输入必须接地。

当设置成 VARIABLE_POSITIVE 时,DCM 输出可以在相对于 CLKIN 的正范围内以可变模式移相。当设置成 VARIABLE_CENTER 时,DCM 输出可以在相对于 CLKIN 的正范围和负范围内以可变模式移相。如果设置成 VARIABLE_POSITIVE 或 VARIABLE_CENTER,则每次相移递增 (或递减)将相移增大 (或减小)1/256 个 CLKIN 周期。

当设置成 DIRECT 时,DCM 输出可以在相对于 CLKIN 的正范围内以可变模式移相。每次相移递增 / 递减将相移增大 / 减小一个 DCM_TAP。请见 《Virtex-5 数据手册》。

VARIABLE_POSITIVE 和 VARIABLE_CENTER 模式下的起始相位由相移值确定。无论 PHASE_SHIFT 属性指定何值,DIRECT 模式下的起始相位始终为零。因此,当使用 DIRECT 模式时,应将 PHASE_SHIFT 属性设置为零。可以用 《Virtex-5 配置指南》所述“动态重配置端口”将 DIRECT 模式的非零相移值加载到 DCM。

CLK_FEEDBACK 属性CLK_FEEDBACK 属性确定 CLKFB 所用反馈的类型。其可能值是 1X 或 NONE。默认值是 1X。当设置成 1X 时,必须由 CLK0 驱动 CLKFB 引脚。当设置成 NONE 时,不连接 CLKFB 引脚。

Virtex-5 用户指南 www.xilinx.com/cn 53UG190 (v3.1) 2007 年 9 月 11 日

DCM 属性R

DESKEW_ADJUST 属性DESKEW_ADJUST 属性影响反馈通路中的延迟量。其可能值是 SYSTEM_SYNCHRONOUS、SOURCE_SYNCHRONOUS、0、1、2、3……或 31。默认值是 SYSTEM_SYNCHRONOUS。

默认值适宜大多数设计。在源同步设计中,请将此属性设置成 SOURCE_SYNCHRONOUS。与 Xilinx 协商后才可使用其余值。有关详情,请查阅 “源同步设置”部分。

DFS_FREQUENCY_MODE 属性DFS_FREQUENCY_MODE 属性指定数字频率合成器 (DFS) 的频率模式。其可能值是 Low 和 High。默认值是 Low。《Virtex-5 数据手册》中规定了这两种频率模式的频率范围。DFS_FREQUENCY_MODE 确定 CLKIN、CLKFX 和 CLKFX180 的频率范围。

DLL_FREQUENCY_MODE 属性DLL_FREQUENCY_MODE 属性指定延迟锁定环 (DLL) 的高频或低频模式。默认值是 Low。《Virtex-5 数据手册》中规定了这两种频率模式的频率范围。

DUTY_CYCLE_CORRECTION 属性DUTY_CYCLE_CORRECTION 属性控制 1x 时钟输出 (CLK0、CLK90、CLK180 和 CLK270)的占空比校正。其可能值是 TRUE 和 FALSE。默认值是 TRUE。当设置成 TRUE 时,将 1x 时钟输出的占空比校正到指定限度之内。详情请见 《Virtex-5 数据手册》。强烈建议将 DUTY_CYCLE_CORRECTION 属性始终设置为 TRUE。将此属性设置为 FALSE 不一定能产生具有与源时钟相同占空比的输出时钟。

DCM_PERFORMANCE_MODE 属性DCM_PERFORMANCE_MODE 属性允许选择针对高频低抖动或低频宽相移范围优化 DCM。此属性的值是 MAX_SPEED 和 MAX_RANGE。默认值是 MAX_SPEED。当设置成 MAX_SPEED 时,将 DCM 优化成产生低抖动高频时钟。不过,其相移范围比选择 MAX_RANGE 时的小。当设置成 MAX_RANGE 时,将 DCM 优化成产生相移范围较宽的低频时钟。DCM_PERFORMANCE_MODE 影响的指标有:DCM 的输入和输出频率范围、相移范围、输出抖动、DCM_TAP、CLKIN_CLKFB_PHASE、CLKOUT_PHASE 和占空比精度。《Virtex-5 数据手册》规定了这些值。

对于大多数情况来说,应将 DCM_PERFORMANCE_MODE 属性设置为 MAX_SPEED (默认)。仅在以下情况下才考虑改成 MAX_RANGE:

• 频率低于 MAX_SPEED 设置的频率下限。

• 需要更大的绝对相移范围。

54 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 2 章: 时钟管理技术R

FACTORY_JF 属性Factory_JF 属性影响 DCM 抖动滤波器的特性。此属性控制 DCM 的 tap 更新速率。DLL_FREQUENCY_MODE = LOW 和 DLL_FREQUENCY_MODE = HIGH 对应的默认值是 0xF0F0。

PHASE_SHIFT 属性PHASE_SHIFT 属性确定 DCM 输出使用的相移量。此属性在固定和可变相移模式下均可使用。如果用于可变模式,此属性设置起始相移。当 CLKOUT_PHASE_SHIFT = VARIABLE_POSITIVE 时,PHASE_SHIFT 值的范围是 0 到 255。当 CLKOUT_PHASE_SHIFT = VARIABLE_CENTER 或 FIXED 时,PHASE_SHIFT 值的范围是 -255 到 255。当 CLKOUT_PHASE_SHIFT = DIRECT 时,PHASE_SHIFT 值的范围是 0 到 1023。默认值是 0。

有关相移操作及其与 CLKOUT_PHASE_SHIFT 和 PHASE_SHIFT 属性之关系的信息,请参阅 “相移”部分。

STARTUP_WAIT 属性STARTUP_WAIT 属性确定 DCM 是否在启动周期之一中等待 DCM 锁定。此属性的可能值是 TRUE 和 FALSE。默认值是 FALSE。如果将 STARTUP_WAIT 设置成 TRUE 并且使用 BitGen 选项 LCK_cycle,则配置启动顺序在 LCK_cycle 指定的启动周期中等待,直到 DCM 锁定。

表 2-6: DCM 属性

DCM 属性名称 描述 值 默认值

CLKDV_DIVIDE 此属性控制 CLKDV,以使源时钟用 N 分频。

此功能提供占空比自动校正,以使 CLKDV 输出引脚在低频模式下始终具有 50/50 占空比,并且在高频模式下对应分频系数 N 的所有整数值也是如此。

实数:

1.5、2.0、2.5、3.0、3.5、4.0、4.5、5.0、5.5、6.0、6.5、7.0、7.5、8、9、10、11、12、13、14、15、16

2.0

CLKFX_DIVIDE 整数:1 到 32 1

CLKFX_MULTIPLY 整数:2 到 32 4

CLKIN_PERIOD 此属性指定源时钟周期,以帮助 DCM 调整到 佳 CLKFX/CLKFX180 输出。

实数 ns 数 0.0

CLKIN_DIVIDE_BY_2 此属性允许为满足 DCM 输入时钟频率的要求而将输入时钟频率减半。

布尔值:FALSE 或 TRUE FALSE

CLKOUT_PHASE_SHIFT 此属性指定相移模式。 字符串:NONE、FIXED、VARIABLE_POSITIVE、VARIABLE_CENTER 或 DIRECT

NONE

DESKEW_ADJUST 此属性影响反馈通路中的延迟量,应当用于源同步接口。

字符串:SYSTEM_SYNCHRONOUS 或 SOURCE_SYNCHRONOUS

SYSTEM_SYNCHRONOUS

DFS_FREQUENCY_MODE 此属性指定频率合成器的频率模式。 字符串:LOW 或 HIGH LOW

Virtex-5 用户指南 www.xilinx.com/cn 55UG190 (v3.1) 2007 年 9 月 11 日

DCM 属性R

DLL_FREQUENCY_MODE 此属性指定 DLL 的频率模式。 字符串:LOW 或 HIGH LOW

DUTY_CYCLE_CORRECTION 此属性控制 DCM 1X 输出 (CLK0、CLK90、CLK180 和 CLK270),产生 50/50 占空比。请保留此属性的默认值设置。

布尔值:TRUE 或 FALSE TRUE

DCM_PERFORMANCE_MODE 此属性允许在 高频率 / 小抖动和低频率 / 大相移范围之间进行选择。

字符串:MAX_SPEED 或 MAX_RANGE

MAX_SPEED

FACTORY_JF DLL_FREQUENCY_MODE=LOW 默认 (0xF0F0)。

DLL_FREQUENCY_MODE=HIGH 默认 (0xF0F0)。

BIT_VECTOR 0xF0F0

PHASE_SHIFT 此属性指定相移分子。取值范围取决于 CLKOUT_PHASE_SHIFT 和时钟频率。

整数:-255 到 1023 0

STARTUP_WAIT 当此属性设置成 TRUE 时,配置启动顺序在指定周期中等待,直到 DCM 锁定。

布尔值:FALSE 或 TRUE FALSE

表 2-6: DCM 属性 ( 续表 )

DCM 属性名称 描述 值 默认值

56 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 2 章: 时钟管理技术R

DCM 设计指南本部分提供关于使用 Virtex-5 DCM 的详细使用说明和设计指南。

时钟去歪斜Virtex-5 DCM 提供全数字专用片上时钟去歪斜功能。去歪斜功能提供源时钟和输出时钟之间的零传播延迟、可减小输出时钟由于在片上分布而产生的歪斜以及进行高级时钟域控制。

去歪斜功能的另一个作用是作为服务于多器件的板级时钟的时钟镜像。这一作用的过程是将 CLK0 从芯片输出到电路板 (以及板上其他器件),然后再将时钟作为反馈时钟送回芯片。请参见 “应用示例”部分。利用去歪斜功能,可大大简化和改进包含高扇出和高性能时钟的系统级设计。

时钟去歪斜工作原理

去歪斜功能利用 DCM 中的 DLL 电路。形式 简单的 DLL 由一条可变延迟线(包含分立的小型延迟单元或缓冲器)和控制逻辑组成。输入的时钟驱动延迟线。每个延迟单元的输出代表在不同点延迟的输入时钟 (CLKIN) 的一个版本。时钟分布网络将时钟传送到所有内部寄存器和时钟反馈 CLKFB 引脚。控制逻辑包含一个相位检测器和一个延迟线选择器。相位检测器将输入的时钟信号 (CLKIN) 与一个反馈输入 (CLKFB) 进行对比,然后操纵延迟线选择器,这实质上是不断增加 DCM 输出时钟的延迟直到 CLKIN 与 CLKFB 重合,即使两个时钟具有 360° 相位差 (从而达到同相)。当输入时钟各沿与反馈时钟各沿重合时,DCM 就可以锁定输出。这两个时钟没有明显差别。这样,DCM 输出时钟便可补偿时钟分布网络中的延迟,从而有效去除源时钟与其负载之间的延迟。每个内部延迟单元的大小是一个 DCM_TAP (请见 《Virtex-5 数据手册》中的 “交流特性”表)。图 2-3 所示为一个简单 DLL 电路。

DCM 依靠时钟源和反馈输入中使用的专用布线与其它资源来提供正确的时钟去歪斜功能。还有一个延迟单元 (参见 “去歪斜调整”) 可用来补偿时钟源或反馈通路。Xilinx ISE 工具分析 DCM 周边的布线,确定是否必须插入延迟以补偿时钟源或反馈通路。因此,需要使用专用布线获得可预见的去歪斜功能。

图 2-3: 简单 DLL 电路

ClockDistribution

NetworkVariable

Delay Line

CLKOUT

Control

CLKFB

CLKIN

ug190_2_03_032506

Virtex-5 用户指南 www.xilinx.com/cn 57UG190 (v3.1) 2007 年 9 月 11 日

DCM 设计指南R

输入时钟要求

DCM 的时钟输入可以由 IBUFG/IBUFGDS、IBUF 或 BUFGMUX 驱动,也可以由 BUFGCTRL 驱动。但由于 IBUF 与 DCM 时钟输入之间没有专用布线资源,所以使用 IBUF 会导致 DCM 额外的输入延迟,而且这部分延迟是无法补偿的,从而无法保证性能。

DCM 输出时钟信号实质上是输入时钟信号的一个延迟版本。因此输入时钟的任何不稳定都会反应在 DCM 的输出中。《Virtex-5 数据手册》中规定了 DCM 输入时钟要求。

一旦锁定,DCM 能承受的输入时钟周期变化可达 CLKIN_PER_JITT_DLL_HF (在高频模式下)或 CLKIN_PER_JITT_DLL_LF (在低频模式下)指定的值。较大的抖动 (周期变化)可导致 DCM 失锁,失锁由 LOCKED 输出置为无效予以指示。失锁后,用户必须将 DCM 复位,DCM 才能再次开始工作。必须保持周期对周期的输入抖动在低频模式下小于 CLKIN_CYC_JITT_DLL_LF 以及在高频模式下小于 CLKIN_CYC_JITT_DLL_HF。

输入时钟变化

当输入时钟周期变化超过 大输入周期抖动指标时,就需要手动复位 DCM。未复位 DCM 会产生不可靠的 LOCKED 信号和输出时钟。如果没有使用 CLKFX 或 CLKFX180,可以暂时停止输入时钟和反馈时钟,这对去歪斜电路几乎没有影响。

在使用 CLKFX 或 CLKFX180 的情况下停止输入时钟,则 CLKFX 或 CLKFX180 输出可能停止翻转,而 DO[2] (指示 CLKFX 已停止)置为有效。必须复位 DCM 才能从这一事件中恢复。

DO[2] CLKFX 停止状态位在 CLKFX 停止 100 µs 后置为有效。直到 DCM 复位后,CLKFX 才能恢复,DO[2] 才置为无效。

为尽量减少器件冷却的影响,时钟在任何其他情况下均不应停止 100 ms 以上,否则 tap 延迟可能改变。输入时钟可以停止在一个高电平或者低电平上,并且恢复时必须有着同样的输入时钟周期 / 频率。在这段时间内,LOCKED 处于 High 状态并且在时钟恢复时保持为 High。因此,LOCKED 的 High 状态不一定说明存在有效的时钟。

在停止输入时钟 (CLKIN 在一个或多个时钟周期内保持为 High 或 Low)时,由于延迟线处于活动状态,所以仍然会有一到九个时钟周期的输出。当输出时钟停止时,CLKIN 停止状态位 (DO[1]) 信号置为有效。在时钟重新开始有输入时,由于需要先 “填充”延迟线,在一到八个时钟周期内是没有时钟输出的。 常见的情况是两三个时钟周期内没有输出。一旦有时钟输出,则 DO[1] 信号置为无效。CLKIN 能够以前一 CLKIN 的任何相位关系重新开始输入。但如果频率已经改变,则 DCM 需要复位。只要 LOCKED 为 Low,就会迫使 DO[1] 为 Low。在 DCM 锁定过程中,DO[1] 状态保持为 Low,直到完成锁定 (LOCKED)信号为高。

58 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 2 章: 时钟管理技术R

输出时钟

可以用 DCM 的九个时钟输出的任意几个或全部驱动一个全局时钟网络。全缓冲式全局时钟分布网络可尽量减小负载差异引起的时钟歪斜。通过监测输出时钟的一个样本 (CLK0),去歪斜电路会补偿布线网络上的延迟,以有效去除从外部输入端口到器件内各时钟负载的延迟。

输出引脚的连接性具有几项限制。DCM 时钟输出必须驱动全局时钟缓冲器 BUFGCTRL。DCM 时钟输出不能驱动通用布线。要使用专用布线,DCM 时钟输出就必须驱动器件与 DCM 位于同一上半部或下半部上的 BUFGCTRL。如果 DCM 和 BUFGCTRL 不在同一上半部或下半部上,就会使用局部布线资源,则 DCM 可能无法妥善去歪斜。

请勿在 LOCKED 信号有效之前使用 DCM 输出时钟信号。在 LOCKED 信号有效之前,DCM 输出时钟无效。

配置和启动过程中的 DCM

在 FPGA 配置过程中,DCM 处于复位状态,并且在 FPGA 启动顺序开始时进行时钟的锁定。DCM 在开始锁定时需要 CLKIN 和 CLKFB 两个输入时钟存在并保持稳定。如果器件在没有输入时钟或输入时钟不稳定的情况下进入配置启动顺序,那么在器件配置成功后,且时钟输入稳定时,对 DCM 进行一次复位。

请注意以下启动周期依赖性问题:

1. 默认值是 -g LCK_cycle:NoWait。当使用这一设置时,启动顺序不等待 DCM 锁定而按步骤进行。当 LCK_cycle 设置成其他值时,配置启动在指定的启动周期中停留,直到 DCM 锁定才进行下一步的工作。

2. 如果在 BitGen 的选项中将 LCK_cycle 选项设置成启动的某一个周期,则必须将 DCM 的 STARTUP_WAIT 属性设置为 TRUE。

3. 如果要改变器件启动顺序 (用 BitGen 选项),请勿将 LCK_cycle (等待 DCM 锁定)放在 GTS_cycle (将 GTS 置为无效)之前。执行不正确会导致 DCM 不锁定且配置无法完成。

去歪斜调整

DESKEW_ADJUST 属性为可配置的可变 tap 延迟单元设置用来控制添加到 DCM 反馈通路的延迟量的数值大小 (见图 2-4)。

Virtex-5 用户指南 www.xilinx.com/cn 59UG190 (v3.1) 2007 年 9 月 11 日

DCM 设计指南R

此延迟单元允许调整时钟源与 CLK0 之间的有效时钟延迟,以保证器件中 IOB 输入触发器的非正保持时间。向 DCM 反馈通路增加延迟可缩短从 FPGA 时钟输入引脚到任意触发器时钟输入的实际时钟通路的有效延迟。缩短时钟延迟可延长输入触发器中显示的建立时间并缩短所有所需的正保持时间。时钟通路延迟包括通过 IBUFG、布线、DCM、BUFG 和时钟树到达目标触发器的延迟。如果反馈延迟等于时钟通路延迟,则有效时钟通路延迟为零。

系统同步设置 (默认)

在默认情况下,将反馈延迟设置为系统同步模式。对系统同步系统的主要时序要求是非正保持时间 (或 短正保持时间)以及 短时钟到输出时间和建立时间。较短的时钟到输出时间和建立时间可缩短系统时钟周期。在理想情况下,DLL 的用途是将时钟延迟清零,以产生较短的时钟到输出时间和非正保持时间。DESKEW_ADJUST 的系统同步设置 (默认)配置反馈延迟单元,以保证所有输入 IOB 寄存器都具有非正保持时间。添加到反馈通路的具体延迟数字取决于器件尺寸。这是用表征法确定的。在时序报告中,这是作为时序缩减包括在由 TDCMINO 参数表示的输入时钟通路中。如图 2-4 所示,在默认设置中,反馈通路包括 tap 延迟 (红色线)。《Virtex-5 数据手册》中的引脚对引脚时序参数 (有 DCM)部分反映 DCM 在系统同步模式下时的建立、保持和时钟到输出时间。

源同步设置

当 DESKEW_ADJUST 设置为源同步模式时,DCM 反馈延迟单元设置为零。如图 2-4 所示,在源同步模式下,DCM 时钟反馈延迟单元设置成取样窗口 小化。与系统同步模式相比,这样会导致较长的正保持时间和时钟到输出时间。《Virtex-5 数据手册》中的源同步开关特性部分反映 DCM 在系统同步模式下时源同步设计的各种时序参数。

图 2-4: DCM 和反馈 tap 延迟单元

DCMIBUFG

CLK0CLKIN

CLKFB

CLKSource

Feedback Tap Delays

FF

D Q

Data Input

Into theFPGA

VCCO

DCMPower

Regulator

VCCINT

ug190_2_04_042506

VCCAUX

System-SynchronousDefault Setting

Source-SynchronousSetting (Delay set to zero)

60 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 2 章: 时钟管理技术R

去歪斜电路的特性

• 通过添加一个有效时钟周期延迟消除时钟分布延迟。

• 将时钟歪斜调整到 CLKOUT_PHASE 指定的值之内,CLKOUT_PHASE 见 《Virtex-5 数据手册》。

• 消除片上及片外时钟延迟。

• 对反馈时钟通路中的延迟没有限制。

• 要求输入时钟是连续的。

• 输入频率范围较大。但是,一旦锁定在某个频率就不能承受大幅度输入频率变化。

• 不消除抖动。去歪斜电路的输出抖动是输入抖动与由去歪斜电路引起的全部附加抖动值的累计。

• 配置可以推迟到 DCM 锁定之后完成,以保证在启动器件之前建立起系统时钟。

频率合成DCM 提供若干种生成新时钟频率的灵活方法。每种方法有不同的工作频率范围和不同的交流特性。CLK2X 和 CLK2X180 输出将时钟频率加倍。CLKDV 输出提供分频输出时钟 (降低频率),可选分频系数有 1.5、2、2.5、3、3.5、4、4.5、5、5.5、6、6.5、7、7.5、8、9、10、11、12、13、14、15 和 16。

DCM 还提供全数字专用频率合成器输出 CLKFX 及其反相位 CLKFX180。输出频率可以是用 M ÷ D 表示的输入时钟频率的任意函数,其中 M 是倍频系数 (分子),D 是分频系数(分母)。

频率合成输出可以驱动器件内的全局时钟布线网络。充分缓冲的全局时钟分布网络可尽量减小距离或负载差异引起的时钟歪斜。

频率合成工作原理

DCM 时钟输出 CLKFX 是 DCM 时钟输入的任意 M ÷ D 倍。《Virtex-5 数据手册》中提供了 M 和 D 以及频率合成器的输入和输出频率范围的技术指标。

仅当向 CLKFB 提供反馈时,DCM 的输入才是与时钟输出 CLK0 对齐相位的频率合成器输出。

频率合成器的内部工作原理很复杂,已经超出本技术文档的范围。只要是在 《Virtex-5 数据手册》中规定的范围之内,频率合成器就可以将输入频率乘以预先计算的商 M ÷ D,从而生成正确的输出频率。

例如,假设输入频率为 50 MHz,M = 25,D = 8 (M 和 D 的值没有公因数,因此不能约分)。尽管分别计算 25 x 50 MHz = 1.25 GHz 和 50 MHz ÷ 8 = 6.25 MHz 所产生的似乎是落在输入频率范围之外的分散值,但输出频率是 156.25 MHz。

Virtex-5 用户指南 www.xilinx.com/cn 61UG190 (v3.1) 2007 年 9 月 11 日

DCM 设计指南R

频率合成器特性

• 频率合成器提供的输出频率等于输入频率乘以 M 再除以 D。

• 输出 CLKFX 和 CLKFX180 始终有 50/50 占空比。

• 较小的 M 和 D 值可获得较短的锁定时间。尽可能将 M 和 D 除以 大公因数,以得到小数值。(例如,如果所需

CLKFX = 9/6 x CLKIN,请使用 M = 3 和 D = 2,不要使用 M = 9 和 D = 6。)

• 当连接了 CLKFB 时,如果 M/D 是 简分数,则在 CLK0 的每 D 个周期和 CLKFX 的每 M 个周期处 CLKFX 与 CLK0 相位对齐。

相移DCM 提供粗粒度和细粒度时钟相移。对于粗粒度相位控制,CLK0、CLK90、CLK180 和 CLK270 输出依次相对移相 ¼ 个输入时钟周期。同样,CLK2X180 和 CLKFX180 分别提供 CLK2X 和 CLKFX 的 180° 粗调相移。粗粒度相移时钟从 DLL 电路的延迟线产生。当不连接 CLKFB 时,这些时钟的相位关系仍能保留。

细粒度相移使用 CLKOUT_PHASE_SHIFT 和 PHASE_SHIFT 属性相对 CLKIN 移动 DCM 输出时钟的相位。因为 CLKIN 用作参考时钟,所以相移电路需要反馈 (CLKFB) 连接,以便将输入时钟与已移相的时钟进行比较。本部分其余内容说明 Virtex-5 DCM 中的细粒度相移。

相移工作原理

启动细粒度相移时,九个 DCM 输出时钟都要调整。CLKIN 和 CLKFB 的上升沿之间的相移是输入时钟周期的指定分量或 DCM_TAP 的特定量。其他 DCM 输出时钟都保留其与 CLK0 的相位关系。

相移范围

CLKIN 和 CLKFB 之间的允许相移受相移范围限制。有两种不同的相移范围:

• PHASE_SHIFT 属性范围

• FINE_SHIFT_RANGE DCM 时序参数范围

在 FIXED、VARIABLE_POSITIVE 和 VARIABLE_CENTER 相移模式下,PHASE_SHIFT 属性是以下公式中的分子。

相移 (ns) = (PHASE_SHIFT/256)   PERIODCLKIN

其中 PERIODCLKIN 表示有效 CLKIN 频率。

在 VARIABLE_CENTER 和 FIXED 模式下,PHASE_SHIFT 属性的全范围始终是 -255 到 +255。在 VARIABLE_POSITIVE 模式下,PHASE_SHIFT 属性的范围是 0 到 +255。

在 DIRECT 相移模式下,PHASE_SHIFT 属性是以下公式中的乘数:

相移 (ns) = PHASE_SHIFT x DCM_TAP

在 DIRECT 模式下,PHASE_SHIFT 属性的全范围是 0 到 1023。

FINE_SHIFT_RANGE 表示可以用相移延迟线获得的总延迟。总延迟是电路中所用延迟 tap 数的函数。《Virtex-5 数据手册》的 “DCM 时序参数”部分中规定了涵盖过程、电压和温度的绝对范围。本部分概述了各种绝对范围。

固定模式允许 DCM 在 CLKFB 或 CLKIN 通路中插入一条延迟线。这样,当 PHASE_SHIFT 属性设置为正值时可以进入 +FINE_SHIFT_RANGE,而当 PHASE_SHIFT 属性设置为负值时可以进入 -FINE_SHIFT_RANGE。

62 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 2 章: 时钟管理技术R

绝对范围 (可变中心模式)= ± FINE_SHIFT_RANGE ÷ 2

可变中心模式令 DCM 在延迟线中间设置零相位歪斜点,从而允许从 -255/256 对称地动态扫描到 +255/256。这将总延迟线范围一分为二。

绝对范围 (固定模式)= ± FINE_SHIFT_RANGE

在固定模式下,配置过程中将相移设置在 -255/256 到 +255/256 的范围内。

绝对范围 (可变正相移模式和直接模式)= + FINE_SHIFT_RANGE

在可变正相移模式和直接模式下,相移仅在正范围内进行。DCM 在延迟线起始处设置零相位歪斜点。这样产生的整条延迟线都在一个方向上。

要确定每一应用的限制范围,PHASE_SHIFT 属性和 FINE_SHIFT_RANGE 参数都需要考虑。“相移示例”部分说明了可能的方案。

在可变和直接模式下,当 PSEN 输入有效时,PHASE_SHIFT 值可以由 PSINCDEC 确定与 PSCLK 同步动态增减。

相移示例

以下使用示例考虑到 PHASE_SHIFT 属性和 FINE_SHIFT_RANGE 参数:

• 如果 PERIODCLKIN = 2 × FINE_SHIFT_RANGE,则 PHASE_SHIFT 在固定模式下限于 ±128。在可变正相移模式下,PHASE_SHIFT 限于 +128。在可变中心模式下,PHASE_SHIFT 限于 ±64。

• 如果 PERIODCLKIN = FINE_SHIFT_RANGE,则 PHASE_SHIFT 在可变正相移模式下限于 +255。在固定和可变中心模式下,PHASE_SHIFT 限于 ±255。

• 如果 PERIODCLKIN ≤ FINE_SHIFT_RANGE,则 PHASE_SHIFT 在可变正相移模式下限于 +255。在固定和可变中心模式下,PHASE_SHIFT 限于 ±255。

• 对于上述所有情况,直接模式始终限于 +1023。

如果相移受限于 FINE_SHIFT_RANGE,请使用粗粒度相移扩大相移范围,或者将 DCM_PERFORMANCE_MODE 属性设置到 MAX_RANGE,以加大 FINE_SHIFT_RANGE。图 2-5 说明了使用 CLK90、CLK180 和 CLK270 输出的情况,设 FINE_SHIFT_RANGE = 10 ns。

Virtex-5 用户指南 www.xilinx.com/cn 63UG190 (v3.1) 2007 年 9 月 11 日

DCM 设计指南R

在可变模式下,通过将 PSEN 置为在一个 PSCLK 周期内有效来改变相移系数。在启动 PSEN 的 PSCLK 时钟周期处,PSINCDEC 的输入电平决定相移是增还是减。PSINCDEC 的 High 状态增加相移,Low 状态减少相移。

在去歪斜电路增减了相应相移之后,信号 PSDONE 置为在一个 PSCLK 周期内 High 有效。这样就可以执行下一变化了。

用户接口与物理实现不同。用户接口将相移描述为时钟周期的一个分量 (N/256)。物理实现将适当数量的缓冲级 (每个 DCM_TAP)添加到时钟延迟中。DCM_TAP 的粒度限制较高时钟频率下的相位分辨率。

除 DIRECT 模式以外,所有相移模式都需要调整温度和电压。因此,VCC 或温度调整不改变相移。DIRECT 相移直接控制 DCM_TAP,所以不需要调整温度或电压。改变 VCC/ 温度比会导致相移在特定电压和温度下与 DCM_TAP 大小成比例变化。

PSEN、PSINCDEC、PSCLK 和 PSDONE 的相互作用

可变和直接相移模式由 PSEN、PSINCDEC、PSCLK 和 PSDONE 端口控制。另外,相移溢出 (DO[0]) 状态指示何时相移计数器已经达到相移延迟线末端或 大值 (对于可变模式是 ±255,对于直接模式是 +1023)。

DCM 锁定之后,VARIABLE_POSITIVE 和 VARIABLE_CENTER 模式下的起始相由 PHASE_SHIFT 值确定。DIRECT 模式下的起始相始终为 0,与 PHASE_SHIFT 属性指定的值无关。仅当 “动态重配置”提供具体 “加载相移值”命令时,才能将 DIRECT 模式的非零 PHASE_SHIFT 值加载到 DCM。有关详情,请参阅 《Virtex-5 配置指南》中的 “技巧”部分。DCM 输出时钟的相位根据 PSEN、PSINCDEC、PSCLK 和 PSDONE 的相互作用在起始相位或动态重配置相位的基础上递增 / 递减。

图 2-5: 固定相移示例

For frequency ≥ 100 MHz (period ≤ 10 ns)CLK0 PHASE_SHIFT = 0 - 255 covers the whole range of period.

For frequency between 50 - 100 MHz(period 10 - 20 ns). At 50 MHz, useCLK0 PHASE_SHIFT= 0 - 127 for thefirst 10 ns.

Use CLK180 with PHASE_SHIFT= 0 - 127for the next 10 ns.

For frequency between 25 - 50 MHz(period 20 - 40 ns). At 25 MHz, useCLK0 PHASE_SHIFT= 0 - 63 for thefirst 10 ns.

Use CLK90 with PHASE_SHIFT= 0 - 63for the next 10 ns.

Use CLK180 with PHASE_SHIFT= 0 - 63for the next 10 ns.

Use CLK270 with PHASE_SHIFT= 0 - 63for the last 10 ns.

CLK0(100 MHz)

CLK0(50 MHz)

CLK180(50 MHz)

CLK0(25 MHz)

CLK90(25 MHz)

CLK180(25 MHz)

CLK270(25 MHz)

10 ns 10 ns 10 ns 10 ns

ug0190_2_05_032506

64 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 2 章: 时钟管理技术R

PSEN、PSINCDEC 和 PSDONE 与 PSCLK 同步。当 PSEN 置为在一个 PSCLK 时钟周期内有效时,开始相位递增 / 递减。PSINCDEC 为 High 时开始递增,PSINCDEC 为 Low 时开始递减。每次递增向 DCM 时钟输出的相移增加 1/256 个 CLKIN 周期。同样,每次递减从该相移减去 1/256 个 CLKIN 周期。PSEN 必须恰好在一个 PSCLK 周期内有效;否则不能保证相移只递增 / 递减一次。当相移完成时,PSDONE 恰好在一个时钟周期内为 High。完成一次相移操作所需的时间会变化。因此,必须监测 PSDONE,以掌握相移状态。在启动 PSEN 与标记 PSDONE 之间,DCM 输出时钟从其原始相移向递增 / 增减后的相移逐渐变化。PSDONE 置为 High 表示递增或递减的完成。PSDONE 发出 High 脉冲之后,可以开始另一次递增 / 递减。

图 2-6 所示为相移端口的相互作用。

在 PSEN 启动后某时刻,PSDONE 仍然在一个 PSCLK 周期内发出 High 脉冲 (如图 2-6 所示)。不过,相移溢出引脚 STATUS(0) 或 DO(0) 为 High 以标记这一状态,而且不执行任何相位调整。

相移溢出

当以下两种情况之一成立时,相移溢出 (DO[0]) 状态信号置为有效:

• DCM 相移超过允许的相移值。在这种情况下,如果相移在 VARIABLE_CENTER 模式下递减超过 -255 和递增超过 +255,在 VARIABLE_POSITIVE 模式下递增超过 +255,或者在 DIRECT 模式下递减超过 0 和递增超过 1023,则相移溢出信号置为 High 有效。

• DCM 相移超出相移延迟线的绝对范围。在这种情况下,如果一定时间 (ns) 内相移在 VARIABLE_CENTER 模式下超出 ±FINE_SHIFT_RANGE/2,在 VARIABLE_POSITIVE 模式下超出 +FINE_SHIFT_RANGE,或者在 DIRECT 模式下超出 0 到 +FINE_SHIFT_RANGE 的范围,则相移溢出信号置为 High 有效。相移溢出信号一旦置为有效便可以翻转。确定是否超出延迟线的条件是动态标定的。所以,在超出延迟线的边界处,可以在相移不变的情况下将相移溢出信号置为有效和无效。一旦置为有效,相移溢出信号就会至少在 40 个 CLKIN 周期内保持有效。如果 DCM 是在 FINE_SHIFT_RANGE 极限附近运行,请勿用相移溢出信号作为反转相移方向的标记。如果相移溢出在短程相移范围内置为有效、置为无效然后又置为有效,它就会错误地反转相移方向。请改用一个简单计数器跟踪相移值,并且仅当计算器达到预先确定的

大 / 小相移值时才反转相移方向 (PSINCDEC)。例如,如果相移必须在 0 到 128 之内,则将计算器设置成在达到 0 或 128 时翻转 PSINCDEC。

图 2-6: 相移时序图

PSCLK

PSEN

PSDONE

PSINCDEC

ug190_2_06_032506

Virtex-5 用户指南 www.xilinx.com/cn 65UG190 (v3.1) 2007 年 9 月 11 日

DCM 设计指南R

相移特性

• 提供分辨率为 ±1/256 个时钟周期 (或 ±1 个 DCM_TAP,取其中较大者)的相位微调。这可以在用户控制下动态更改。

• 相移设置影响全部九个 DCM 输出。

• 除了在直接相移模式下以外,VCC 和温度不影响相移。

• 在固定或可变模式下,可以选择 CLK90、CLK180 或 CLK270 而非 CLK0,选择 CLK2X180 而非 CLK2X,或者选择 CLKFX180 而非 CLKFX,以此扩大相移范围。固定模式与各种 CLK 相位相结合,甚至在 25 MHz 频率 (40 ns 周期)下仍允许在整个输入时钟周期范围内移动。

• 采用 MAX_RANGE 模式扩大相移范围。

• DCM 中的相移 (DPS) 功能需要 CLKFB 进行延迟调整。

因为 CLKFB 必须来自 CLK0,所以在此也使用了 DLL 的输出。DPS 功能的 低 CLKIN 频率由 DLL 频率模式确定。

动态重配置动态重配置端口 (DRP) 无需向 FPGA 重新加载新比特流即可更新 DCM 初始设置。Virtex-5 FPGA 中的 DRP 地址映射已经改变。《Virtex-5 配置指南》提供了关于使用 DRP 的更多信息。针对 DCM,DRP 可以完成以下功能:

• 允许动态调整 CLKFX_MULTIPLY(M) 和 CLKFX_DIVIDE(D) 值,以产生新的 CLKFX 频率。

• 允许动态调整 PHASE_SHIFT 值,以产生新相移。在固定、可变或直接相移模式下,可以用此功能设置特定相移值。

用 DRP 加载新的 M 和 D 值时,需要以下步骤:

• 将所需 M 和 D 值减去一。例如,如果所需 M/D = 9/4,则加载 M/D = 8/3。

• 将 DCM 保持在复位状态 (将 RST 信号置为有效),并在写入新的 M 和 D 值后将其从复位状态释放。在将 LOCKED 重新置为 High 有效之后,可以使用 CLKFX 输出。

• 读入 DADDR0,以恢复 D0 的默认状态。

• 释放 RST 状态。

66 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 2 章: 时钟管理技术R

将 DCM 连接到 Virtex-5 器件中的其他时钟资源大多数 DCM 功能都需要连接到专用的时钟资源,包括专用的时钟 I/O (IBUFG)、时钟缓冲器 (BUFGCTRL) 和 PLL。这些时钟资源位于 Virtex-5 器件的中央列中。本部分就如何将 DCM 连接到专用时钟资源提供指南。

IBUFG 到 DCMVirtex-5 器件包含 20 个时钟输入。通过例化 IBUFG 可以访问这些时钟输入。Virtex-5 器件的上半部和下半部各包含 10 个 IBUFG。Virtex-5 器件上半部或下半部中的任意 IBUFG 可以驱动位于该器件同一上 / 下半部中的 DCM 的时钟输入引脚 (CLKIN、CLKFB、PSCLK 或 DCLK)。

DCM 到 BUFGCTRL任何 DCM 时钟输出都可以驱动器件同一上 / 下半部中的任意 BUFGCTRL 输入。对于同时可使用多少个 DCM 输出没有限制。

BUFGCTRL 到 DCM任何 BUFGCTRL 都可以驱动 Virtex-5 器件中的任意 DCM。但是,一个特定时钟区域中多只存在八个专用时钟布线资源。因为要通过 BUFGCTRL 输出接入时钟布线,所以这间接限制了 BUFGCTRL 到 DCM 的连接。如果已经有八个 BUFGCTRL 输出接入某时钟区域,而且该区域中有一个 DCM,则该区域中不再有其他 BUFGCTRL 可用,包括对 DCM 的 FB 引脚的连接。

PLL 到 DCM 和 DCM 到 PLL图 2-7 概述了同一 CMT 块中 DCM 与 PLL 之间的专用连接。PLL 可以使用专用连接驱动同一 CMT 块中的两个 DCM 之一。同样,DCM 可以使用专用连接驱动同一 CMT 块中的 PLL。PLL 与 DCM 之间不需要 BUFGCTRL。

Virtex-5 用户指南 www.xilinx.com/cn 67UG190 (v3.1) 2007 年 9 月 11 日

应用示例R

DCM 到 PMCD 和 PMCD 到 DCMVirtex-5 器件中没有 PMCD 块。不过,可以用 PLL 实现到 PMCD 的一个映射,这个映射有一定限制。有关详情,请参阅第 3 章的 “Virtex-4 PMCD 传统模式下的 PLL”。

应用示例Virtex-5 DCM 可用于各种有用的创新应用。以下示例介绍一些较常见的应用。

标准用法图 2-8 中电路所示为应用了内部反馈以及 RST 和 LOCKED 引脚的 DCM_BASE。此示例介绍的是 简单的 DCM 用例。

图 2-7: 同一 CMT 块中 DCM 与 PLL 的连接

PLL

CLKIN

CLKFBIN

DCM1

CLKIN

CLKFB

DCM2

ug190_2_07_072307

CLKIN

CLKFB

To GlobalRouting (BUFG)

To GlobalRouting (BUFG)

To GlobalRouting (BUFG)

PLL to DCM Input

PLL to DCM Input

DCM to PLL Input

DCM to PLL Input

From any IBUFG implementation From any BUFG implementation

68 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 2 章: 时钟管理技术R

板级时钟生成图 2-9 中的板级时钟生成示例说明如何使用 DCM 为电路板上的其他组件生成输出时钟。这一时钟可用于与其他器件的接口连接。此示例中使用了一个 DDR 寄存器,其输入连接到 GND 和 VCC。因为 DCM 的输出通至 BUFG,所以该时钟在到达输出寄存器之前是使用全局布线资源。这样可以保证时钟的质量。

如果设计需要在其他部位有全局缓冲器,请使用 OBUF,不要使用 BUFG 和 ODDR(图 2-10)。

不过,时钟信号的质量不如用全局缓冲器和 DDR 寄存器连接时好 (图 2-11)。

图 2-8: 标准用法

CLKINCLK0

CLK90CLK180CLK270CLK2X

CLK2X180CLKDVCLKFX

CLKFX180

LOCKED

CLKFB

RST

IBUFGDCM_BASE

IBUF

BUFG

OBUF

ug190_2_08_032506

Virtex-5 用户指南 www.xilinx.com/cn 69UG190 (v3.1) 2007 年 9 月 11 日

应用示例R

图 2-9: 使用有外部反馈的 DDR 寄存器的板级时钟

CLKINCLK0

D1

D2

GND

VCC

C

Q

CLK90CLK180CLK270CLK2X

CLK2X180CLKDVCLKFX

CLKFX180

LOCKEDDO(15:0)

CLKFB

IBUFGDCM_ADV

ODDR

IBUFG

BUFG

UG190_2_09_032506

RST

PSINCDECPSENPSCLK

DADDR[6:0]DI[15:0]DWEDENDCLK

Outside FPGA

Inside FPGA

图 2-10: 使用有外部反馈的 OBUF 的板级时钟

CLKINCLK0

CLK90CLK180CLK270CLK2X

CLK2X180CLKDVCLKFX

CLKFX180

LOCKEDDO(15:0)

CLKFB

IBUFGDCM_ADV

IBUFG

BUFG

ug190_2_10_070607

RST

PSINCDECPSENPSCLK

DADDR[6:0]DI[15:0]DWEDENDCLK

Outside FPGA

Inside FPGAOBUF

70 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 2 章: 时钟管理技术R

具有内部去歪斜的电路板去歪斜有些应用需要具有内部去歪斜功能的电路板去时钟歪斜以实现与其他器件的接口连接。这些应用可以用两个或更多 DCM 实现。图 2-12 所示电路可用来为同一系统中多个 Virtex 器件之间的系统时钟去歪斜。

图 2-11: 使用内部反馈的板级时钟

CLKINCLK0

D1

D2

GND

VCC

C

Q

CLK90CLK180CLK270CLK2X

CLK2X180CLKDVCLKFX

CLKFX180

LOCKEDDO(15:0)

CLKFB

IBUFGDCM_ADV

ODDR

BUFG

ug190_2_11_032506

RST

PSINCDECPSENPSCLK

DADDR[6:0]DI[15:0]DWEDENDCLK

Virtex-5 用户指南 www.xilinx.com/cn 71UG190 (v3.1) 2007 年 9 月 11 日

应用示例R

图 2-12: 具有连接到其他 Virtex 器件的内部去歪斜的电路板去歪斜

CLKINCLK0

CLK90CLK180CLK270CLK2X

CLK2X180CLKDVCLKFX

CLKFX180

LOCKEDDO(15:0)

CLKFB

RST

PSINCDECPSENPSCLK

DADDR[6:0]DI[15:0]DWEDENDCLK

CLKINCLK0

CLK90CLK180CLK270CLK2X

CLK2X180CLKDVCLKFX

CLKFX180

LOCKEDDO[15:0]

CLKFB

RST

PSINCDECPSENPSCLK

DADDR[6:0]DI[15:0]DWEDENDCLK

IBUFG

DCM_ADV

DCM_ADV

IBUFG

IBUFG

BUFG

GND

BUFG

INV OBUF

BUFG

ug190_2_12_032506

D1

D2

C

Q

ODDR

Virtex-5 FPGA

CLKIN CLK0CLK90

CLK180CLK270CLK2X

CLK2X180CLKDVCLKFX

CLKFX180

LOCKEDDO[15:0]

CLKFB

RST

PSINCDECPSENPSCLK

DADDR[6:0]DI[15:0]DWEDENDCLK

DCM_ADV

Virtex-5 FPGA

This circuit can be duplicated to multiple Virtex devices. Use CLKDLLfor Virtex and Virtex-E devices, DCM for Virtex-II and Virtex-II Pro devices.

VCC

toRST

72 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 2 章: 时钟管理技术R

图 2-13 中的示例所示为从 Virtex-5 FPGA 到非 Virtex FPGA 组件的接口。

图 2-13: 具有连接到其他组件的内部去歪斜的电路板去歪斜

ug190_2_13_032506

CLKIN CLK0CLK90

CLK180CLK270CLK2X

CLK2X180CLKDVCLKFX

CLKFX180

LOCKEDDO[15:0]

CLKFB

RST

PSINCDECPSENPSCLK

DADDR[6:0]DI[15:0]DWEDENDCLK

IBUFG

DCM_ADV

...non-Virtex chips

IBUFG

BUFG

GND

BUFG

D1

D2

C

Q

ODDR

CLKIN CLK0CLK90

CLK180CLK270CLK2X

CLK2X180CLKDVCLKFX

CLKFX180

LOCKEDDO[15:0]

CLKFB

RST

PSINCDECPSENPSCLK

DADDR[6:0]DI[15:0]DWEDENDCLK

DCM_ADV

Virtex-5 FPGA VCC

Virtex-5 用户指南 www.xilinx.com/cn 73UG190 (v3.1) 2007 年 9 月 11 日

应用示例R

两个 DCM 之间的时钟切换图 2-14 所示为来自两个 DCM 的两个时钟之间的切换,同时两个 DCM 都保持锁定。

图 2-14: 两个 DCM 之间的时钟切换

CLKIN CLK0CLK90

CLK180CLK270CLK2X

CLK2X180CLKDVCLKFX

CLKFX180

LOCKEDDO(15:0)

CLKFB

RST

PSINCDECPSENPSCLK

DADDR[6:0]DI[15:0]DWEDENDCLK

CLKIN CLK0CLK90

CLK180CLK270CLK2X

CLK2X180CLKDVCLKFX

CLKFX180

LOCKEDDO(15:0)

CLKFB

RST

PSINCDECPSENPSCLK

DADDR[6:0]DI[15:0]DWEDENDCLK

IBUFG

IBUFG

CLKA

DCM_ADV

DCM_ADV

CLKB

I0

I0S

BUFGMUX

BUFG

BUFG

ug190_2_14_032506

74 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 2 章: 时钟管理技术R

从 PLL 输入的 DCMPLL 可用来驱动 DCM,以便在输入 DCM 之前减少源时钟的输入抖动。这种结构可减少源时钟抖动,同时使用户能够访问所有可用的 DCM 时钟输出。图 2-15 所示为 PLL 使用专用布线资源 (没有 BUFG)驱动同一 CMT 块内的 DCM。

图 2-15: PLL 驱动 DCM

CLKIN CLK0CLK90

CLK180CLK270CLK2X

CLK2X180CLKDV

CLKFX180CLKFX

CLKFBIN

DCMBUFG

BUFG

ug190_2_15_040906

IBUFG

CLKIN1 CLKOUT0

CLKOUT1

CLKOUT2

CLKOUT3

CLKOUT4

CLKOUT5

CLKFBOUT

RST

RST

CLKFBIN

PLL

Virtex-5 用户指南 www.xilinx.com/cn 75UG190 (v3.1) 2007 年 9 月 11 日

应用示例R

也可以用 DCM 驱动 PLL。这种结构可减少源时钟和 DCM 时钟输出的总体抖动。在这种情况下, 多只有两个 DCM 输出时钟可以驱动 PLL。所以, 多只有两个 DCM 时钟可以进入 PLL 并受益于减少的抖动。

图 2-16 和图 2-17 所示为 DCM 驱动 PLL 的两种情况。图 2-16 所示为一个 CMT 内 CDM 与 PLL 之间直接连接。在没有通过全局缓冲器 (BUFG) 布线的 CMT 内,只有一个 DCM 输出可以用直接连接驱动 PLL。DCM 和 PLL 可以在同一个或不同的 CMT 内。图 2-17 所示为两个 DCM 驱动 PLL。在这种情况下,还必须在驱动 PLL 输入时钟的两个 DCM 时钟之间插入 BUFG。DCM 和 PLL 可以在同一个或不同的 CMT 内。有关 PLL 的详情,请参阅第 3 章 “锁相环 (PLL)”。

图 2-16: DCM 与 PLL 之间直接连接

ug190_2_16_040906

BUFG

BUFG

IBUFG

CLKIN1 CLKOUT0

CLKOUT1

CLKOUT2

CLKOUT3

CLKOUT4

CLKOUT5

CLKFBOUT

RST

CLKIN CLK0CLK90

CLK180CLK270CLK2X

CLK2X180CLKDV

CLKFX180CLKFX

CLKFBIN

DCM

RST

CLKFBIN

PLL

76 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 2 章: 时钟管理技术R

VHDL 和 Verilog 模板及时钟控制向导《库指南》中提供了所有基元的 VHDL 和 Verilog 实例模板。另外,ISE 软件中的 “时钟控制向导”可生成 VHDL 和 Verilog 文件。“时钟控制向导”可设置相应的 DCM 属性、输入/ 输出时钟和通用缓冲器。

图 2-17: 两个 DCM 驱动 PLL

IBUFG BUFG

BUFG

ug190_2_18_040906

BUFG

BUFG

BUFG

CLKIN CLK0CLK90

CLK180CLK270CLK2X

CLK2X180CLKDV

CLKFX180CLKFX

CLKFBIN

DCM

CLKIN CLK0CLK90

CLK180CLK270CLK2X

CLK2X180CLKDV

CLKFX180CLKFX

CLKFBIN

DCM1

RST

CLKIN1

CLKIN2

CLKOUT0

CLKOUT1

CLKOUT2

CLKOUT3

CLKOUT4

CLKOUT5

CLKFBOUT

RST

CLKFBIN

PLL

IBUFG

Virtex-5 用户指南 www.xilinx.com/cn 77UG190 (v3.1) 2007 年 9 月 11 日

DCM 时序模型R

DCM 时序模型以下时序图说明 DCM 时钟输出在四种不同条件下的行为:

1. 复位 / 锁定

2. 固定相移

3. 可变相移

4. 状态标记

复位 / 锁定在图 2-18 中,DCM 已经锁定。用复位信号进行复位后,所有输出时钟均稳定到期望值,并且 LOCKED 信号置为有效。

• 时钟事件 1 之前

在时钟事件 1 之前,DCM 锁定。所有时钟输出均与正确的频率和行为同相。

• 时钟事件 1

在时钟事件 1 后某时刻,复位信号在 RST 引脚置为有效。复位置为有效时,所有时钟输出均变为逻辑零。复位信号是非同步复位。注:此图不是按比例绘制。为了使 DCM 工作正常,复位信号必须置为至少在三个 CLKIN 周期内有效。

• 时钟事件 2

时钟事件 2 在复位信号置为有效又置为无效后的若干周期后发生。在时钟事件 2 处,锁定过程开始。如果未选定固定相移,则所有时钟输出均在时钟事件 2 后的 LOCK_DLL 时段稳定并同相。同样,LOCKED 置为有效表示完成信号的锁定。

图 2-18: 复位 / 锁定示例

CLKIN

RST

CLK0

CLK90

CLK180

CLKFX

CLKFX180

CLKDV

LOCKED

1 2

3 Periods

LOCK DLL ug190_2_18_042406

78 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 2 章: 时钟管理技术R

固定相移在图 2-19 中,DCM 输出正确的频率。然而,时钟输出与所需时钟相位不同相。为时钟输出移相,使其比输入时钟晚些时候出现,然后置 LOCKED 为有效。

• 时钟事件 1

时钟事件 1 在将所需相移应用到 DCM 之后出现。此示例中的相移是正向移动。CLK0 和 CLK2X 不再与 CLKIN 对齐。但是,CLK0 和 CLK2X 相互对齐,同时 CLK90 和 CLK180 仍为 CLK0 的 90° 和 180° 版本。一旦时钟输出就绪,LOCK 信号也置为有效。

图 2-19: 相移示例:固定

CLKIN

CLK0

CLK90

CLK180

CLK2X

LOCKED

1

ug190_2_19_042406

Lock Time

Virtex-5 用户指南 www.xilinx.com/cn 79UG190 (v3.1) 2007 年 9 月 11 日

DCM 时序模型R

可变相移在图 2-20 中,CLK0 输出用同步用户接口中的动态相移调整移相。当 DCM 完成一次相位调整时,将 PSDONE 信号置为在一个周期内有效。在将 PSDONE 置为无效之后,可以将 PSEN 再次置为有效,为下次相移做准备。

如图 2-20 所示,所有可变相移的控制和状态信号都与 PSCLK 的上升沿同步。

• 时钟事件 1

在时钟事件 1 之前的 TDMCCK_PSEN 处,PSEN 置为有效。PSEN 必须恰好在一个时钟周期内有效;否则不能保证相移只递增 / 递减一次。另外,在时钟事件 1 之前的 TDMCCK_PSINCDEC 处,PSINCDEC 值确定它是递增 (逻辑 High)还是递减 (逻辑 Low)。

• 时钟事件 2

在时钟事件 2 之前的 TDMCKO_PSDONE 处,将 PSDONE 置为有效,以指示 DCM 输出的一次递增或递减。当相移完成时,PSDONE 恰好在一个时钟周期内为 High。完成一次相移操作所需的时间会变化。因此,必须监测 PSDONE,以掌握相移状态。

图 2-20: 相移示例:可变

CLKIN

CLK0

PSCLK

PSEN

PSDONE

PSINCDEC

1

D.C. D.C.

2

TDMCCK_PSEN

TDMCKO_PSDONE

TDMCCK_PSINCDEC

ug190_2_20_0042406

80 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 2 章: 时钟管理技术R

状态标记图 2-21 中和示例显示状态标记在相移溢出和 CLKIN/CLKFB/CLKFX 时的行为。

• 时钟事件 1

在此时序图的起点之前,CLK0 (未显示)已经在其 大值处移相。在时间事件 1 处,PSDONE 置为有效。但是,因为 DCM 已经达到其 大相移能力,所以不执行任何相位调整。反而是将相移溢出状态引脚 DO(0) 置为有效,以指示这一状态。

• 时钟事件 2

CLKFX 输出停止翻转。CLKFX 的停止状态 DO(2) 置为在此事件后的 257 到 260 个时钟周期内有效,以指示 CLKFX 输出停止翻转。

• 时钟事件 3

CLKFB 输入停止翻转。CLKFB 的停止状态 DO(3) 置为在此事件后的 257 到 260 个时钟周期内有效,以指示 CLKFB 输出停止翻转。

• 时钟事件 4

CLKIN 输入停止翻转。DO(1) 置为在此事件后的 9 个时钟周期内有效,以指示 CLKIN 输出停止翻转。

图 2-21: 状态标记示例

CLKIN

3

4

2

257 - 260 Cycles

CLKFB

PSEN

PSDONE

CLKFX

DO(0)

1

PSCLK

ug190_2_21_042406

DO(1)

DO(2)

DO(3)

Virtex-5 用户指南 www.xilinx.com/cn 81UG190 (v3.1) 2007 年 9 月 11 日

传统器件支持R

传统器件支持Virtex-5 DCM(DCM_BASE 和 DCM_ADV)的端口名称与 Virtex-4 DCM 的完全相同。不过,DRP 地址映射已经改变。有关详情,请参阅 《Virtex-5 配置指南》。

Virtex-5 器件支持 Virtex-II 系列和 Virtex-II Pro 的 DCM 基元的模式。Virtex-II 或 Virtex-II Pro 的 DCM 对 Virtex-5 DCM_ADV 的映射如下:

• Virtex-5 基元 (DCM_BASE/DCM_ADV) 的 CLKIN、CLKFB、PSCLK、PSINDEC、PSEN、RST、CLK0、CLK90、CLK180、CLK270、CLK2X、CLK2X180、CLKFX、CLKFX180、CLKDV、PSDONE 和 LOCKED 映射到 Virtex-II DCM 或 Virtex-II Pro 的 DCM 的相同对应引脚。

• 在使用 Virtex-II 或 Virtex-II Pro 的 DCM 时,除 DO[15:0] 以外,不可访问 Virtex-5 DCM_ADV 的动态重配置引脚。

• Virtex-5 DCM_ADV 的 DO[7:0] 引脚映射到 Virtex-II 或 Virtex-II Pro 的 DCM 的 Status[7:0]。当使用 Virtex-II 或 Virtex-II Pro 的 DCM 模式时,DCM_ADV 的 DO[15:8] 不可用。

82 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 2 章: 时钟管理技术R

Virtex-5 用户指南 www.xilinx.com/cn 83UG190 (v3.1) 2007 年 9 月 11 日

R

第 3 章

锁相环 (PLL)

简介Virtex-5 时钟管理模块 (CMT) 包括两个 DCM 和一个 PLL。CMT 内有专用布线将各种组件连接到一起。模块中的每个块可分别处理,不过,各块之间存在的专用布线对某些连接构成限制。使用这些专用布线可以将全局资源释放出来供其他设计单元使用。另外,因为局部布线是在局部操作,从而减少噪声耦合的可能性,所以在 CMT 内使用局部布线可以改进时钟通路。

图 3-1 所示 CMT 图是各种时钟输入源之间的连接以及 DCM 到 PLL 和 PLL 到 DCM 专用布线的高层视图。六个 (全部)PLL 输出时钟多路转换成一个时钟信号,用作 DCM 的参考时钟。来自 PLL 的两个输出时钟可以驱动 DCM。这两个时钟 100% 独立。PLL 输出时钟 0 可以驱动 DCM1,而 PLL 输出时钟 1 可以驱动 DCM2。每个 DCM 输出可以多路转换成一个时钟信号,用作 PLL 的参考时钟。在任意给定时间,只有一个 DCM 可以用作 PLL 的参考时钟。不可将 DCM 插入 PLL 的反馈通路。CMT 的 PLL 和 DCM 均可分别用作独立的功能元件。PLL 的输出不是扩展频谱。

84 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 3 章: 锁相环 (PLL)R

锁相环 (PLL)Virtex-5 器件 多包含六个 CMT 模块。PLL 的主要用途是作为广谱频率的频率合成器,并且与 CMT 的 DCM 配合作为外部或内部时钟的抖动滤波器。

图 3-2 所示 PLL 框图提供了 PLL 组件的一般概况。

图 3-1: Virtex-5 CMT 框图

From any IBUFG implementation

From any BUFG implementation

DCM1

DCM2

PLLclkout_pll<5:0>

To any BUFGimplementation

To any BUFGimplementation

To any BUFGimplementation

ug190_3_01_071207

Virtex-5 用户指南 www.xilinx.com/cn 85UG190 (v3.1) 2007 年 9 月 11 日

简介R

输入多路复用器从 IBUF、BUFG、通用布线或某个 DCM 中选择参考和反馈时钟。每个时钟输入有一个可编程计数器 D。相位 / 频率检测器 (PFD) 比较输入 (参考)时钟和反馈时钟的相位和频率。仅考虑上升沿即可,因为只要保持 小 High/Low 脉冲,则占空比无关紧要。PFD 用来生成与两个时钟之间的相位和频率差成比例的信号。此信号驱动电荷泵 (CP) 和环路滤波器 (LF),以便为 VCO 生成参考电压。PFD 为电荷泵和环路滤波器生成一个上升或下降信号,以确定 VCO 应该在较高频率还是较低频率工作。当 VCO 工作频率过高时,PFD 触发一个下降信号,致使控制电压下降,从而降低 VCO 的工作频率。当 VCO 工作频率过低时,上升信号会提高电压。VCO 产生八个输出相位。每个输出相位都可选作输出计数器的参考时钟 (图 3-3)。可以根据给定的客户设计对每个计数器独立编程。另外还提供了一个专用计数器 M。此计数器控制 PLL 的反馈时钟,以实现大范围频率合成。

图 3-2: Virtex-5 PLL 框图

Clock Pin

D

M

PFD CP LF VCO O0

O1

O2

O3

O4

O5

ug190_3_02_030506

86 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 3 章: 锁相环 (PLL)R

图 3-3: PLL 详细框图

D

ClockSwitchCircuit

M8

PFD

Lock DetectLock

Lock Monitor

CLKIN1

GeneralRouting

CLKIN2

CLKFB

CLKFBOUT

VCO feedback phaseselection for negative phase-shift affectingall outputs

CP LF VCO

8-phasetaps

O0

O1

O2

O3

ug190_3_03_050906

O4

O5

Virtex-5 用户指南 www.xilinx.com/cn 87UG190 (v3.1) 2007 年 9 月 11 日

一般用法说明R

一般用法说明

PLL 基元图 3-4 所示为两个 Virtex-5 PLL 基元 PLL_BASE 和 PLL_ADV。

PLL_BASE 基元

PLL_BASE 基元允许使用独立 PLL 的 常用功能。通过 PLL_BASE,可以使用时钟去歪斜、频率合成、粗粒度相移和占空比编程功能。其端口如表 3-1 所示。

图 3-4: PLL 基元

CLKIN1

CLKFBIN

RST

CLKOUT0

CLKOUT1

CLKOUT2

CLKOUT3

CLKOUT4

CLKOUT5

CLKFBOUT

LOCKED

PLL_BASE

ug190_3_04_050806

CLKIN1

CLKIN2

CLKFBIN

CLKINSEL

DADDR[4:0]

DI[15:0]

DWE

DEN

DCLK

REL

RST

CLKOUT0

CLKOUT1

CLKOUT2

CLKOUT3

CLKOUT4

CLKOUT5

CLKFBOUT

CLKOUTDCM0

CLKOUTDCM1

CLKOUTDCM2

CLKOUTDCM3

CLKOUTDCM4

CLKOUTDCM5

CLKFBDCM

LOCKED

DO[15:0]

DRDY

PLL_ADV

表 3-1: PLL_BASE 端口

描述 端口

时钟输入 CLKIN、CLKFBIN

控制输入 RST

时钟输出 CLKOUT0 到 CLOCKOUT5、CLKFBOUT

状态和数据输出 LOCKED

88 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 3 章: 锁相环 (PLL)R

PLL_ADV 基元

PLL_ADV 基元具备所有 PLL_BASE 功能以及时钟切换的其他端口、同一 CMT 中 DCM 的连接性以及动态重配置端口 (DRP) 的使用。其端口如表 3-2 所示。

Virtex-5 PLL 是为支持时钟网络去歪斜、频率合成和减少抖动而设计的混合信号模块。本部分详细讨论这三种工作模式。可用以下关系式确定压控振荡器 (VCO) 的工作频率:

公式 3-1

公式 3-2

其中的 M、D 和 O 计数器如图 3-3 所示。

六个 “O”计数器可以独立编程。例如,O0 可以编程为进行二分频操作,而 O1 编程为进行三分频操作。唯一的限制是 VCO 的工作频率对所有输出计数器来说必须相同,因为一个 VCO 驱动所有计数器。

时钟网络去歪斜在许多情况下,设计人员在其 I/O 时序预算中不希望造成时钟网络上的延迟,因此他们使用 PLL 或 DLL 补偿时钟网络延迟。Virtex-5 PLL 支持这一功能。一个与参考时钟 CLKIN 的频率相匹配的时钟输出 (通常是 O0)连接到 BUFG,并且反馈到 PLL 的 CLKFB 反馈引脚。其余输出仍可用来分解时钟频率,以合成更多频率。在这种情况下,所有输出时钟对于输入参考时钟都具有限定的相位关系。

仅用于频率合成PLL 还可以用于独立频率合成。在这种应用中,PLL 不能用于时钟网络去歪斜,而是用来为其他模块生成输出时钟频率。在这种模式下,PLL 反馈通路因为要将所有布线保留为局部布线而应设置成 INTERNAL,并且应当尽量减少抖动。图 3-5 所示为配置成频率合成器的 PLL。在此示例中,可以使用一个 33 MHz 的外部参考时钟。该参考时钟可以是一个晶振或另一 PLL 的输出。将 M 计数器设置到 16 可使 VCO 晶振的频率为 533 MHz (33.333 MHz x 16)。六个 PLL 输出编程为提供一个 533 MHz 的 PowerPC® 时钟、一个 266 MHz 的 PowerPC 衬垫时钟、一个 178 MHz 的时钟、一个 133 MHz 的存储器接口时钟、一个 66 MHz 的 PCI 时钟和一个 33 MHz 的 PCI 时钟。在此示例中,参考时钟和输出时钟之间没有相位关系,但是各输出时钟之间要求有相位关系。

表 3-2: PLL_ADV 端口

描述 端口

时钟输入 CLKIN1、CLKIN2、CLKFBIN、DCLK

控制和数据输入 RST、CLKINSEL、DWE、DEN、DADDR、DI、REL(1)

时钟输出 CLKOUT0 到 CLOCKOUT5、CLKFBOUT、CLKOUTDCM0 到 CLKOUTDCM5、CLKFBDCM

状态和数据输出 LOCKED、DO、DRDY

注:1. REL 仅用于 PMCD 模式。在 PLL 模式下,不连接 REL 或将其固定为 Low。

FVCO FCLKINMD-----×=

FOUT FCLKINMDO---------×=

Virtex-5 用户指南 www.xilinx.com/cn 89UG190 (v3.1) 2007 年 9 月 11 日

一般用法说明R

抖动滤波器PLL 始终可以降低参考时钟上固有的抖动。PLL 只能通过例化来滤掉外部时钟在驱动另一个模块前 (包括 DCM)的抖动。作为抖动滤波器,PLL 通常被设想成一个缓冲器,在输出上重新生成输入频率 (例如,FIN = 100 MHz,FOUT = 100 MHz)。一般来说,通过使用 PLL 的 BANDWIDTH 属性并且将其设置为 Low,可以实现较强的抖动过滤。将 BANDWIDTH 设置为 Low 会导致 PLL 的静态偏差增大。

限制PLL 有些必须遵守的限制。《Virtex-5 数据手册》中的 PLL 电气指标概括了这些限制。一般说来,主要限制是 VCO 的工作范围、输入频率、占空比可编程性和相移。

VCO 的工作范围

《Virtex-5 数据手册》中的电气指标规定了 VCO 的 低和 高工作频率。可以从速度指标中提取这些数值。

低和 高输入频率

《Virtex-5 数据手册》中的电气指标规定了 低和 高 CLKIN 输入频率。

占空比可编程性

在给定的 VCO 工作频率下,只可能有离散的占空比。“计数器控制”部分进一步讨论了确定输出占空比的计数器设置。

图 3-5: 用作频率合成器的 PLL

D = 133 MHz

ReferenceClock

Power PC Core

Power PC Gasket

CLB/Fabric

Memory Interface

PCI 66

PCI 33

PFD, CP,LF, VCO

M = 16

D0=1

ug190_3_05_040906

D0=2

D0=3

D0=4

D0=8

D=16

90 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 3 章: 锁相环 (PLL)R

相移

在许多情况下,各时钟之间需要有相移。VCO 能够以 45°的间隔提供八个移相的时钟,因此以时间为单位的相移分辨率定义为:PS = 1/8 FVCO 或 D/8MFIN。

VCO 的频率越高,相移分辨率就越高。因为 VCO 具有明确的工作范围,所以可以把相移分辨率的范围界定为从 1/8 FVCO_MIN 到 1/8 FVCO_MAX。

各输出计数器可分别编程,允许每个计数器在 VCO 的输出频率的基础上具有不同的相移。

注: 可能有非 45°相移。较高的相移分辨率取决于输出的占空比和 0 值。有关其他相移设置,请查阅架构向导。

PLL 编程PLL 的编程必须遵循规定的流程,以确保配置的稳定性和性能。本部分介绍如何根据特定设计要求为 PLL 编程。实现设计有两种方法,即直接通过 GUI 界面 (PLL 向导)实现,或者通过例化直接实现。无论选择哪种方法,以下信息对于 PLL 编程都是必要的:

• 参考时钟周期

• 输出时钟频率 ( 多六个频率)

• 输出时钟占空比 (默认 50%)

• 以 快输出时钟周期为单位的输出时钟相移关系

• PLL 的所需带宽 (默认 OPTIMIZED,在软件中选择带宽)

• 补偿模式 (由软件自动确定)

• 以 UI (即参考时钟周期的百分数)为单位的参考时钟抖动

确定输入频率

第一步是确定输入频率。这样就可以用 低和 高输入频率定义 D 计数器的范围,用 VCO 的工作范围确定 M 计数器的范围,并且直接使用输出计数器的范围 (因为它没有限制),从而确定所有可能的输出频率。可以有非常多种频率。在 坏的情况下,会有 52 x 64 x 128 = 425,984 种可能的组合。实际上不同频率的总数没有这么大,因为无法实现 M 和 D 计数器的整个范围,而且各种设置之间有重叠。作为例子,请考虑 FIN = 100 MHz。如果

低 PFD 频率是 20 MHz,则 D 只能是 1 到 5。对于 D = 1,M 的值只能是 4 到 11。如果 D = 2,M 的值可以是 8 到 22。另外,D = 1 和 M = 4 是 D = 2 和 M = 8 的一个子集,因而可以忽略 D = 1 和 M = 4 的情况。对于这种情况,只考虑 D = 3、4 和 5,因为所有其他 D 值都是这些情况的子集。这样便大大减少了可能的输出频率的数量。输出频率要按顺序选择。应当对照可能生成的输出频率检查所需输出频率。一旦确定了第一个输出频率,便可对 M 和 D 的值附加约束。这样做可以进一步限制可能作为第二个输出频率的输出频率数。继续这一过程,直到选定所有输出频率。

Virtex-5 用户指南 www.xilinx.com/cn 91UG190 (v3.1) 2007 年 9 月 11 日

一般用法说明R

用来确定允许的 M 和 D 值的约束如以下公式所示:

公式 3-3

公式 3-4

公式 3-5

公式 3-6

确定 M 和 D 值

确定输入频率可得若干可能的 M 和 D 值。下一步是确定 佳 M 和 D 值。首先确定 M 的起始值。这是根据 VCO 的目标频率 (即 VCO 的理想工作频率)计算出来的。

公式 3-7

其目的是找到与 VCO 的理想工作点 接近的 M 值。用 小 D 值来开始这一过程。其目的是在保持 ƒVCO 尽可能高的同时使 D 和 M 值尽可能小。

PLL 端口表 3-3 概述了 PLL 的端口。表 3-4 列出了 PLL 的属性。

DMIN roundupfIN

fPFD MAX------------------------=

DMAX rounddownfIN

fPFD MIN-----------------------=

MMIN roundupfVCOMINfIN

----------------------=

MMAX rounddownDMIN fVCOMAX×

fIN-------------------------------------------=

MIDEALDMIN fVCOMAX×

fIN-------------------------------------------=

表 3-3: PLL 端口

引脚名称 I/O 引脚描述

CLKIN1 输入 通用时钟输入。

CLKIN2 输入 用来动态切换 PLL 参考时钟的第二时钟输入。

CLKFBIN 输入 反馈时钟输入。

CLKINSEL 输入 控制输入多路复用器状态的信号,High = CLKIN1,Low = CLKIN2。

RST 输入异步复位信号。对于 PLL,复位信号是异步复位。当发出这一信号 (即重新启用 PLL)时,PLL 会同步地自我重新启用。当输入时钟条件 (如频率)改变时,需要复位。

DADDR[4:0] 输入动态重配置地址 (DADDR) 输入总线为动态重配置提供重配置地址。在不使用时,必须将所有位赋零。

DI[15:0] 输入动态重配置数据输入 (DI) 总线提供重配置数据。在不使用时,必须将所有位设置为零。

DWE 输入动态重配置写使能 (DWE) 输入引脚提供写使能控制信号,以便将 DI 数据写入 DADDR 地址。在不使用时,必须将其固定为 Low。

DEN 输入动态重配置使能 (DEN) 为使用动态重配置功能提供使能控制信号。当不使用动态重配置功能时,必须将 DEN 固定为 Low。当 DEN 固定为 Low 时,DO 输出反映状态信号。

92 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 3 章: 锁相环 (PLL)R

DCLK 输入 DCLK 信号是动态重配置端口的参考时钟。

REL 输入当 PLL 处在 PMCD 模式下时,使用释放引脚。在 PLL 模式下,不连接此引脚或将其固定为 Low。仅当移植包含传统 PMCD 模式的现有 Virtex-4 设计时才使用此引脚。

CLKOUT[0:5](1) 输出用户可配置时钟输出 (0 到 5),可以是 VCO 相位输出 (用户可控制)的 1 (忽略)到 128 分频版。输入时钟与输出时钟相位对齐。

CLKFBOUT(2) 输出专用的 PLL 反馈输出。用户可配置时钟输出,可以是 VCO 相位输出的 1(忽略)到 64 分频版。输入时钟与输出时钟相位对齐。

CLKOUTDCM[0:5](1) 输出 用户可配置时钟 (0 到 5),只可连接到 PLL 所在的同一 CMT 中的 DCM。

CLKFBDCM 输出PLL 反馈,当 PLL 驱动 DCM 时用于补偿。如果将 CLKFBOUT 引脚用于此目的,则软件会自动映射到正确的端口。

LOCKED 输出PLL 的同步输出,指示 PLL 何时达到预定义窗口内的相位对齐和预定义 PPM 范围内的频率匹配。接通电源后 PLL 自动锁定,无需另行复位。如果输入时钟停止或违反了相位对齐 (如输入时钟相移),则 LOCKED 置为无效。

DO[15:0] 输出 当使用动态重配置时,动态重配置输出总线提供 PLL 数据输出。

DRDY 输出 动态重配置就绪输出 (DRDY) 为 PLL 的动态重配置功能提供对 DEN 信号的响应。

注:1. CLKOUTN 和 CLKOUTDCMN 使用相同的输出计数器,因此不能独立工作。2. PLL 一旦达到 LOCKED 的 CLKFBOUT 频率,就会始终与 PFD 处的 CLKIN 频率匹配。设置 CLKFBOUT_MULT 可以有效地设置

CLKFBOUT 的分频值。

表 3-3: PLL 端口 ( 续表 )

引脚名称 I/O 引脚描述

Virtex-5 用户指南 www.xilinx.com/cn 93UG190 (v3.1) 2007 年 9 月 11 日

一般用法说明R

PLL 属性

表 3-4: PLL 属性

属性 类型 允许值 默认 描述

COMPENSATION 字符串 SYSTEM_SYNCHRONOUSSOURCE_SYNCHRONOUS

SYSTEM_SYNCHRONOUS

指定 PLL 对输入时钟的相位补偿。SYSTEM_SYNCHRONOUS 尝试补偿所有时钟延迟,以实现 0 保持时间。当与数据一起提供时钟从而使其与时钟同步时,使用 SOURCE_SYNCHRONOUS。

由软件自动选择的其他属性:INTERNALEXTERNALDCM2PLLPLL2DCM

BANDWIDTH 字符串 HIGHLOW

OPTIMIZED

OPTIMIZED 指定影响 PLL 的抖动、相位容限及其他特性的 PLL 编程算法。

CLKOUT[0:5]_DIVIDE 整数 1 到 128 1 如果需要不同的频率,指定相应 CLKOUT 时钟输出的分频量。此值与 FBCLKOUT_MULT 和 DIVCLK_DIVIDE 值相结合,将确定输出频率。

CLKOUT[0:5]_PHASE 实数 0.0 到 360.0 0.0 允许以偏移度数指定相关 CLKOUT 时钟输出的输出相位关系 (即,90 指示 90°或 ¼ 周期的相位偏移,而 180 指示 180°或 ½ 周期的相位偏移)。

CLKOUT[0:5]_DUTY_CYCLE

实数 0.01 到 0.99 0.50 以百分数指定相关 CLKOUT 时钟输出的占空比 (即,0.50 将产生 50% 的占空比)。

CLKFBOUT_MULT 整数 1 到 64 1 如果需要不同的频率,指定所有 CLKOUT 时钟输出的倍频量。此数字与相应的 CLKOUT#_DIVIDE 值相结合,将确定输出频率。

DIVCLK_DIVIDE 整数 1 到 52 1 指定所有输出时钟相对于输入时钟的分频比。

CLKFBOUT_PHASE 实数 0.0 到 360.0 0.0 以度数指定时钟反馈输出的相位偏移。反馈时钟的移相导致对 PLL 的所有输出时钟的负相移。

REF_JITTER 实数 0.000 到 0.999 0.100 允许为参考时钟指定所期望的抖动指标,以便更好地优化 PLL 性能。当此抖动未知时,OPTIMIZED 的带宽设置将尝试为输入时钟控制选择 佳参数。如果已知此抖动,则应以输入时钟上预期抖动的 UI 百分数 ( 大峰间值)指定提供的值。

CLKIN1_PERIOD 实数 1.408 到 52.630 0.000 以 ns 数指定 PLL 的 CLKIN1 输入的输入周期。分辨率可高达 ps 级。此信息是强制性的,必须提供。

94 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 3 章: 锁相环 (PLL)R

PLL CLKIN1 和 CLKIN2 用法CLKIN1 是 PLL 的通用输入。CLKIN2 引脚用来在工作过程中按照 CLKINSEL 引脚的选择在 CLKIN1 和 CLKIN2 之间动态切换。如果 CLKIN1 和 CLKIN2 都使用,并且 PLL 输入时钟由全局时钟引脚驱动,那么对两个时钟信号引脚的布局有几项限制。CLKIN1 只能来自 IBUFG[4-0]。CLKIN2 只能来自 IBUFG[9-5]。此外,CLKIN2 必须根据 CLKIN1 的值映射到特定位置。这些规则说明如下:

如果 CLKIN1 连接到 IBUFG [x],则 CLKIN2 必须是同样类型的 IBUFG [y]。表 3-5 所示为通用时钟引脚的配对。

CLKIN2_PERIOD 实数 1.408 到 52.630 0.000 以 ns 数指定 PLL 的 CLKIN2 输入的输入周期。分辨率可高达 ps 级。此信息是强制性的,必须提供。

RESET_ON_LOSS_OF_LOCK

字符串 FALSE FALSE 必须设置成 FALSE,硅片中不支持。

表 3-4: PLL 属性 ( 续表 )

属性 类型 允许值 默认 描述

表 3-5: 映射位置

CLKIN1 CLKIN2

[0] [5]

[1] [6]

[2] [7]

[3] [8]

[4] [9]

Virtex-5 用户指南 www.xilinx.com/cn 95UG190 (v3.1) 2007 年 9 月 11 日

一般用法说明R

当 PLL 输入时钟由全局时钟树 (BUFG) 驱动时,两个时钟输入必须连接到同样类型的时钟输入。不可能用 IBUFG 驱动一个 PLL 时钟输入却用 BUFG 驱动另一个 PLL 时钟输入。

以下两个表格对应 CLKIN1 和 CLKIN2 映射 Virtex-5 的全局时钟 IBUFG 引脚。Virtex-5 器件上半部中的 PLL 由组 3 的全局时钟引脚驱动,可以按表 3-6 所列配对。

Virtex-5 器件下半部中的 PLL 由组 4 的全局时钟引脚驱动,可以按表 3-7 所列配对。

关于这些配对的其他重要说明:

• 引脚的描述性名称不含其他可能的多用途功能,如 _CC、_VRN、_VRP 或 _VREF。

• 只显示 P 端引脚。对于差分时钟连接,请使用等效的 N 端引脚。在 FPGA 内部,只有差分引脚对的 P 端可以连接到 CMT。

• 有关对实际引脚号的映射,请查阅 《Virtex-5 封装技术规范》。

PLL 时钟输入信号PLL 时钟源可以来自若干种源,包括:

• –IBUFG 全局时钟输入缓冲器,PLL 会补偿此通路的延迟。

• –BUFGCTRL 内部全局时钟缓冲器,PLL 不会补偿此通路的延迟。

• –IBUF 不推荐,因为 PLL 不能补偿通用布线的延迟。IBUF 时钟输入在通至 PLL 之前必须先通至 BUFG。

• –DCMOUT 对 PLL 的任何 DCM 输出都会补偿此通路的延迟。

表 3-6: 上半部中 PLL 的配对

CLKIN1 CLKIN2

IO_L9P_GC_3 IO_L4P_GC_3

IO_L8P_GC_3 IO_L3P_GC_3

IO_L7P_GC_3 IO_L2P_GC_3

IO_L6P_GC_3 IO_L1P_GC_3

IO_L5P_GC_3 IO_L0P_GC_3

表 3-7: 下半部中 PLL 的配对

CLKIN1 CLKIN2

IO_L9P_GC_4 IO_L4P_GC_4

IO_L8P_GC_4 IO_L3P_GC_4

IO_L7P_GC_4 IO_L2P_GC_4

IO_L6P_GC_4 IO_L1P_GC_4

IO_L5P_GC_4 IO_L0P_GC_4

96 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 3 章: 锁相环 (PLL)R

计数器控制PLL 输出计数器使用 DIVIDE、DUTY_CYCLE 和 PHASE 的组合提供各种各样的合成时钟。图 3-6 说明了计数器设置如何影响计数器输出。

顶端的波形代表 PLL 模式下 VCO 的任一输出。

图 3-6: 输出计数器时钟合成示例

Counter Clock Input(VCO)

DIVIDE = 2DUTY_CYCLE = 0.5

PHASE = 0

DIVIDE = 2DUTY_CYCLE = 0.5

PHASE = 180

DIVIDE = 2DUTY_CYCLE = 0.75

PHASE = 180

DIVIDE = 1DUTY_CYCLE = 0.5

PHASE = 0

DIVIDE = 1DUTY_CYCLE = 0.5

PHASE = 360

DIVIDE = 3DUTY_CYCLE = 0.33

PHASE = 0

DIVIDE = 3DUTY_CYCLE = 0.5

PHASE = 0

UG190_3_06_041406

Virtex-5 用户指南 www.xilinx.com/cn 97UG190 (v3.1) 2007 年 9 月 11 日

VCO 和输出计数器的详细波形R

时钟移相可以通过选择参考通路或反馈通路中的八个相位之一插入延迟,以此来对 PLL 输出时钟进行移相。下图所示为没有任何移相的情况与反馈通路插入延迟和参考通路插入延迟这两种情况在 PLL 输出处对时钟信号边沿之影响的对比。

VCO 和输出计数器的详细波形图 3-8 所示为 VCO 的八个相位输出和四个不同计数器输出。各 VCO 相位按相应的启动顺序显示。这里保证了相位关系和启动顺序,以确保能保持正确的相位。这意味着 0°相位的上升沿先于 45°相位的上升沿出现。通过配置 O0 计数器对 0°相位 tap 的参考时钟进行简单的二分频。O1 计数器也配置为简单的二分频,但是相对于 VCO 有 180°的相差。这种计数器设置可以用来为 DDR 接口提供时钟,该接口的参考时钟与数据传输边沿对齐。O2 计数器配置为三分频。除了相位有一个周期的延迟外,O3 的输出配置与 O2 相同。

如果 PLL 用来配置特定相位关系并且输入频率有变化,那么这种相位关系也会因 VCO 频率变化而变化,因此以 ps 为单位的绝对相移会改变。用 PLL 进行设计时必须考虑这一方面。如果设计的一个重要方面是在各种时钟输出当中保持某种相位关系 (如 CLK 和 CLK90),那么无论输入频率如何都会保持这种关系。

图 3-7: 基本输出时钟移相

originalclock

added delay infeedback path

added delay inreference path

dT reference

dT feedback

ug190_03_07_032506

98 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 3 章: 锁相环 (PLL)R

所有 “O”计数器都是等同的,O0 可以做的任何事,O1 都可以做。各 PLL 输出完全相同,因而可以灵活地连接到时钟网络。因为软件和 PLL 向导通过 PLL 的属性和向导的输出确定正确的设置,所以在多数情况下,如此细节对于设计人员来说是难以察觉的。

参考时钟切换PLL 参考时钟可以用 CLKINSEL 引脚动态切换。切换是异步进行的。因为时钟信号可能生成导致 PLL 错误行为的窄脉冲,所以,当用 CLKINSEL (CLKSRC) 信号选择变换的时钟时,PLL 应保持为 RESET 状态。PLL 时钟多路切换如图 3-9 所示。CLKINSEL (CLKSRC) 信号直接控制多路复用器。不存在同步逻辑。

图 3-8: 选择 VCO 相位

One Cycle Delay

CounterOutputs

VCO8 Phases

45°

90°

135°

180°

225°

270°

315°

O0

O1

O2

O3

ug190_03_08_032506

图 3-9: 输入时钟切换

BUFGIBUFG

DCM

BUFGIBUFG

DCM

CLKIN1

CLKIN2

ug190_3_09_050906

CLKSRC

PLLCLKIN

Virtex-5 用户指南 www.xilinx.com/cn 99UG190 (v3.1) 2007 年 9 月 11 日

PLL 使用模型R

缺失输入时钟或反馈时钟当输入时钟或反馈时钟丢失时,PLL 会驱动输出时钟产生更低或更高的频率,从而导致所有输出时钟提高 / 降低频率。频率升高 / 降低会导致时钟输出频率变化达原配置的六倍之多。

PLL 使用模型用 PLL 设计有几种方法。ISE 软件中的 PLL 向导可以帮助生成各种 PLL 参数。另外,可以手动将 PLL 例化成一个组件。还可以将 PLL 与 IP 核合并。IP 核将包含并管理 PLL。

时钟网络去歪斜PLL 的主要用途之一是时钟网络去歪斜。图 3-10 所示为这种模式下的 PLL。O 计数器之一的时钟输出用来驱动片内逻辑或 I/O。反馈计数器用来控制输入时钟与输出时钟之间的精确相位关系 (例如,当需要 90°相移时)。右侧所示相关时钟的波形是输入时钟与输出时钟需要相位对齐的情况。这是 灵活的配置,但它需要两个全局时钟网络 (图 3-10)。

对实现反馈有某些限制。CLKFBOUT 输出可用来提供反馈时钟信号。根本性的限制是两个对 PFD 的输入频率必须完全相同。因此,必须满足以下关系式:

公式 3-8

作为例子,如果 ƒIN 是 166 MHz,D = 1,M = 3,O = 1,则 VCO 和时钟输出的频率都是 498 MHz。因为反馈通路中的 M 值是 3,所以 PFD 上的两个输入频率都是 166 MHz。

另一种更复杂的情况是输入频率为 66.66 MHz,D = 2,M = 15,O = 2。在这种情况下,VCO 的频率是 500 MHz,而 O 的输出频率是 250 MHz。所以,PFD 上的反馈频率是 500/15 即 33.33 MHz,与 PFD 上输入时钟频率的 66.66MHz/2 相符。

图 3-10: 使用两个 BUFG 的时钟去歪斜

CLKIN1

CLKFBIN

RST

CLKOUT0

CLKOUT1

CLKOUT2

CLKOUT3

CLKOUT4

CLKOUT5

CLKFBOUT

PLL

IBUFG

1 2 4 5

3

BUFG

BUFG

To Logic

6

UG190_3_10_032506

6

5

4

3

2

1

fIND------- fFB

fVCOM------------= =

100 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 3 章: 锁相环 (PLL)R

如果 PLL 用作频率合成器或抖动滤波器,并且 PLL 输入时钟与 PLL 输出时钟之间不要求有相位关系,那么 PLL 反馈可以是 PLL 的内部反馈。因为反馈时钟根本不通过内核电源供电,所以反馈时钟不受内核电源噪声干扰,因而 PLL 的性能应有所提升。当然,CLKIN 信号和 BUFG 上引入的噪声依然存在 (图 3-11)。

零延迟缓冲器PLL 还可用来生成零延迟缓冲器时钟。零延迟缓冲器可用于具有一个时钟信号扇出对多个相互间低歪斜的目标的应用。这种配置如图 3-12 所示。其中,反馈信号在片外传递,而电路板迹线反馈设计成与通向外部组件的迹线匹配。在这种配置中,假定时钟边沿在 FPGA 的输入与外部组件的输入处对齐。在反馈通路中,对允许的 大延迟有限制。

图 3-11: 带内部反馈的 PLL

CLKIN1

CLKFBIN

RST

CLKOUT0

CLKOUT1

CLKOUT2

CLKOUT3

CLKOUT4

CLKOUT5

CLKFBOUT

PLL

IBUFG BUFG

To Logic

UG190_3_11_040906

图 3-12: 零延迟缓冲器

CLKIN1

CLKFBIN

RST

CLKOUT0

CLKOUT1

CLKOUT2

CLKOUT3

CLKOUT4

CLKOUT5

CLKFBOUT

PLL

IBUFGInside FPGA

OBUF

ToExternalComponents

BUFG

BUFG

ug190_3_12_050906

Virtex-5 用户指南 www.xilinx.com/cn 101UG190 (v3.1) 2007 年 9 月 11 日

PLL 使用模型R

在某些情况下,因为外部组件输入电容与 FPGA 反馈通路电容之间存在负载差,所以不会实现精准对齐。例如,外部组件可有 1 pF 到 4 pF 的输入电容,而 FPGA 的输入电容是 8 pF 左右。信号斜率存在差异,这主要是歪斜。为了确保时序,设计人员有必要了解这种效应。

DCM 驱动 PLLDCM 提供了一种生成精确相移时钟的极好方法。但是,DCM 不能减少参考时钟上的抖动。PLL 可用来减少一个 DCM 时钟输出的输出抖动。这种配置如图 3-13 所示。PLL 配置成不引入任何相移 (通过 PLL 的零延迟)。框图右侧所示为相关波形。当使用 DCM 的输出直接驱动 PLL 时,DCM 和 PLL 必须同处在一个 CMT 模块内。这种实现方案在局部专用布线上产生的噪声量 小,因此是首选方案。不过,连接方法也可以是把 DCM 连接到 BUFG,然后再连接到 PLL 的 CLKIN 输入。

图 3-13: DCM 驱动一个 PLL

CLKIN

RST

IBUFG

1 2

3

4

5

6

7

8 9

BUFG

BUFG

To Logic, etc.

CLK0

CLK190

CLK270

CLK2X

CLK2X190

CLKDV

CLKFX

CLKFX180

CLK90

DCM

CLKFBIN

PLL

ug190_3_13_041007

CLKIN1Matches

RST

CLKFBIN

CLKOUT0

CLKOUT2

CLKOUT3

CLKOUT4

CLKOUT5

CLKFBOUT

CLKOUT1

1

2

3

4

5

6

7

9

8

102 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 3 章: 锁相环 (PLL)R

PLL 驱动 DCM减少时钟抖动的另一种可选方案是在输入时钟抖动传入 DCM 之前用 PLL 将其清除。这样可以改善所有 DCM 输出的输出抖动,但 DCM 附加的任何抖动都仍会传到时钟输出。PLL 和 DCM 应处在同一个 CMT 模块中,因为 PLL 与 DCM 之间存在用来支持零延迟模式的专用资源。如果 PLL 和 DCM 不在同一个 CMT 中,那么唯一的连接就是通过一个能抑制歪斜可能性的 BUFG。

只要参考频率可以由一个 PLL 生成,则一个 PLL 即可驱动多个 DCM。例如,如果将一个 33 MHz 的参考时钟送入 PLL,而设计用一个 DCM 在 200 MHz 频率下工作,同时用另一个在 100 MHz 频率下工作,那么 VCO 就可以在 600 MHz (M1 = 18) 频率下工作。可以对 VCO 的频率进行三分频以生成 200 MHz 的时钟,同时可以对另一个计数器进行六分频以生成 100 MHz 的时钟。对于图 3-14 中的示例,一个 PLL 可以驱动两个 DCM。

图 3-14: PLL 驱动一个 DCM

CLKIN

RST

IBUFG

1 2

3

To Logic, etc.

To Logic, etc.

CLK0

CLK190

CLK270

CLK2X

CLK2X190

CLKDV

CLKFX

CLKFX180

CLK90

DCM

CLKFBIN

PLL

ug190_3_14_040906

BUFG

CLKIN1

Matches

RST

CLKFBIN

CLKOUT0

CLKOUT2

CLKOUT3

CLKOUT4

CLKOUT5

CLKFBOUT

CLKOUT1

41

2

3

4

5

6

7

5

6

7

Virtex-5 用户指南 www.xilinx.com/cn 103UG190 (v3.1) 2007 年 9 月 11 日

应用指南R

PLL 到 PLL 的连接可以级联 PLL,以便生成更大范围的时钟频率。频率范围的限制仍然适用。公式 3-9 所示为 终输出频率与输入频率之间的关系。图 3-15 所示为两个 PLL 的计数器设置。未定义第二个 PLL 的输出时钟与输入时钟之间的相位关系。要级联 PLL,请将第一个 PLL 的输出连接到 BUFG,然后再连接到第二个 PLL 的 CLKIN 引脚。此通路产生的器件抖动 小。

公式 3-9

应用指南本部分概述何时优先选择 DCM,以及何时优先选择 PLL。

Virtex-5 PLL 多支持六个独立的输出。需要多个不同输出的设计应使用 PLL。下面举例说明使用多个不同输出的设计。PLL 是这种应用的理想之选,因为它可以生成一组范围广泛的可配置输出,而 DCM 的输出数目则是固定的,并且基于参考时钟之上。当应用需要细粒度相移或动态可调相移时,DCM 则是较好的解决方案。

fOUTPLL2 fOUTPLL1MPLL2

DPLL2 OPLL2×--------------------------------------- fIN

MPLL1DPLL1 OPLL1×---------------------------------------

MPLL2DPLL2 OPLL2×---------------------------------------×= =

图 3-15: 级联两个 PLL

CLKIN1

CLKFBIN

RST

CLKOUT0

CLKOUT1

CLKOUT2

CLKOUT3

CLKOUT4

CLKOUT5

CLKFBOUT

CLKIN1

CLKFBIN

RST

PLLPLL

CLKOUT0 To Logic

IBUFG BUFG BUFG

CLKOUT1

CLKOUT2

CLKOUT3

CLKOUT4

CLKOUT5

CLKFBOUT

ug190_3_16_032506

104 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 3 章: 锁相环 (PLL)R

PLL 应用示例以下 PLL 属性设置可产生各种各样的合成时钟:

CLKOUT0_PHASE = 0;CLKOUT0_DUTY_CYCLE = 0.5;CLKOUT0_DIVIDE = 2;CLKOUT1_PHASE = 90;CLKOUT1_DUTY_CYCLE = 0.5;CLKOUT1_DIVIDE = 2;CLKOUT2_PHASE = 0;CLKOUT2_DUTY_CYCLE = 0.25;CLKOUT2_DIVIDE = 4;CLKOUT3_PHASE = 90;CLKOUT3_DUTY_CYCLE = 0.5;CLKOUT3_DIVIDE = 8;CLKOUT4_PHASE = 0;CLKOUT4_DUTY_CYCLE = 0.5;CLKOUT4_DIVIDE = 8;CLKOUT5_PHASE = 135;CLKOUT5_DUTY_CYCLE = 0.5;CLKOUT5_DIVIDE = 8;CLKFBOUT_PHASE = 0;CLKFBOUT_MULT = 8;DIVCLK_DIVIDE = 1;CLKIN1_PERIOD = 10.0;

图 3-16 所示为产生的波形。

图 3-16: 示例波形

REFCLK

VCOCLK

CLKOUT0

CLKOUT1

CLKOUT2

CLKOUT3

CLKOUT4

CLKOUT5

UG190_3_19_032506

Virtex-5 用户指南 www.xilinx.com/cn 105UG190 (v3.1) 2007 年 9 月 11 日

Virtex-4 PMCD 传统模式下的 PLLR

Virtex-4 PMCD 传统模式下的 PLLVirtex-5 器件没有相位匹配时钟分频器 (PMCD)。Virtex-5 PLL 支持 Virtex-4 PMCD 的工作模式。为了利用 Virtex-5 PLL 更强大的功能,Xilinx 建议直接用 PLL 来重新设计 Virtex-4 PMCD。在 Virtex-4 PMCD 传统模式下,Virtex-5 PLL 与 Virtex-4 PMCD 模块之间的区别是 Virtex-5 的实现仅支持两个时钟输入,而 Virtex-4 的实现方法 多支持四个时钟输入。如果必须使用四个时钟输入,那么可以将两个 PLL 置于 PMCD 模式下。这种情况下的延迟匹配不是 佳匹配。

图 3-17 所示为用 PLL 实现的 Virtex-4 PMCD 基元。PLL 如果已经用作 PMCD 就不能再用作 PLL。

表 3-8 所示为 PMCD 传统模式下的 Virtex-5 PLL 与 Virtex-4 PMCD 端口名称之间的端口映射。

图 3-17: 在 PMCD 传统模式下用 PLL 实现的 PMCD 基元

表 3-8: 端口名称映射

Virtex-4 端口名称 Virtex-5 端口名称

CLKA CLKIN

CLKB CLKFBIN

CLKC 不适用

CLKD 不适用

CLKA1 CLKOUT3

CLKA1D2 CLKOUT2

CLKA1D4 CLKOUT1

CLKA1D8 CLKOUT0

CLKB1 CLKFBOUT

CLKC1 不适用

CLKD1 不适用

CLKFBOUT

CLKIN

CLKFBIN

O0

O1

O2

ug190_3_16_022207

O3

To BUFG

106 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 3 章: 锁相环 (PLL)R

表 3-9 所示为 Virtex-4 PMCD 传统模式下的 PLL 属性。

表 3-10 所示为 Virtex-4 PMCD 传统模式下的 PLL 端口。

RST RST

REL REL

表 3-8: 端口名称映射 ( 续表 )

Virtex-4 端口名称 Virtex-5 端口名称

表 3-9: Virtex-4 PMCD 传统模式下的 PLL 属性

属性 类型 允许值 默认 描述

PLL_PMCD_MODE 布尔值 TRUE 或 FALSE FALSE 启用 PLL 作为 PMCD。

EN_REL 布尔值 TRUE 或 FALSE FALSE在 PMCD 模式 (PLL_PMCD_MODE = TRUE) 下,当 REL 输入引脚置为有效时,指定分频时钟 CLKA 输出的释放。

RST_DEASSERT_CLK 字符串CLKACLKB

CLKA在 PMCD 模式 (PLL_PMCD_MODE = TRUE) 下,指定时钟与 RST 的释放同步。

表 3-10: Virtex-4 PMCD 传统模式下的 PLL 端口

端口名称 I/O 引脚描述

CLKFB 输入 Virtex-4 PMCD 传统模式下 PMCD 的 CLKB 输入时钟。

CLKIN 输入 Virtex-4 PMCD 传统模式下 PMCD 的 CLKA 输入时钟。

RST 输入RST 是传统模式 Virtex-4 PMCD 的复位输入。RST 信号的有效置位异步地强制所有输出为 Low。RST 信号的无效置位同步地允许所有输出翻转。

REL 输入REL 是传统模式 Virtex-4 PMCD 的释放输入。REL 信号的有效置位释放与 CLKA 同步的分频输出。

CLKOUT0 输出 Virtex-4 PMCD 传统模式的 CLKB1。

CLKOUT1 输出 Virtex-4 PMCD 传统模式的 CLKA1。

CLKOUT2 输出 Virtex-4 PMCD 传统模式的 CLKA1D2。

CLKOUT3 输出 Virtex-4 PMCD 传统模式的 CLKA1D4。

CLKOUT4 输出 Virtex-4 PMCD 传统模式的 CLKA1D8。

Virtex-5 用户指南 www.xilinx.com/cn 107UG190 (v3.1) 2007 年 9 月 11 日

R

第 4 章

Block RAM

Block RAM 概述Virtex-5 Block RAM 多存储 36K 位数据,并且可以配置成两个独立的 18 Kb RAM 或一个 36 Kb RAM。每个 36 Kb Block RAM 可配置成一个 64K x 1 (当与一个相邻的 36 Kb Block RAM 级联时)、32K x 1、16K x 2、8K x 4、4K x 9、2K x 18 或 1K x 36 存储器。每个 18 Kb Block RAM 可配置成一个 16K x 1、8K x2、4K x 4、2K x 9 或 1K x 18 存储器。

与 Virtex-4 Block RAM 相似,写和读是同步操作;两个端口对称且完全独立,仅共享存储的数据。每个端口均可配置成可用的宽度之一,与另一端口无关。另外,每个端口的读端口宽度可与写端口宽度不同。存储器内容可用配置比特流初始化或清除。在写操作过程中,存储器可以设置成让数据输出保持不变,或者令其反映正在写入的新数据或正在覆盖的旧数据。

Virtex-5 FPGA Block RAM 的新增特性包括:

• 提高了存储器的每块存储能力。每个 Block RAM 多可存储 36K 位数据。

• 支持两个独立的 18K 或一个 36K Block RAM。

• 每个 36K Block RAM 可以设置成简单双端口模式,从而将 Block RAM 的数据宽度加倍到 72 位。18K Block RAM 也可以设置成简单双端口模式,从而将数据宽度加倍到 36 位。简单双端口模式的定义是具有带独立时钟的一个只读端口和一个只写端口。

• 不使用任何外部逻辑即可将两个相邻的 Block RAM 组合成一个更深的 64K x 1 存储器。

• 每个 36 Kb Block RAM 或 36 Kb FIFO 提供一个 64 位纠错编码模块。可分别使用编码/ 解码功能。

• Block RAM 输出的锁存器和寄存器模式均可将输出同步设置 / 复位到初始值。

• 提供了将 Block RAM 配置成同步 FIFO 的属性,可以消除标记延迟的不确定性。

• Virtex-5 FIFO 的 FULL 标记没有置位延迟。

Virtex-5 FPGA Block RAM 的功能:

• 18、36 或 72 位宽的端口可以每字节各有一个写使能。此功能常用于对片上微处理器的接口连接。

• 每个 Block RAM 包含可选的地址排序和控制电路,可以用作内置多速率 FIFO 存储器。在 Virtex-5 架构中,Block RAM 可配置成一个 18Kb 或 36Kb 的 FIFO。

108 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 4 章: Block RAMR

• 所有输入都由端口时钟寄存,并且具有建立到时钟时序指标。

• 根据写使能 (WE) 引脚的状态,所有输出均具有读功能或边写边读功能。输出在时钟到输出时序间隔之后有效。边写边读输出具有 WRITE_FIRST、READ_FIRST 和 NO_CHANGE 三种操作模式之一。

• 写操作需要一个时钟沿。

• 读操作需要一个时钟沿。

• 所有输出端口均有锁存。输出端口的状态在端口再次执行读或写操作之前保持不变。默认的 Block RAM 输出是锁存器模式。

• 输出数据通路有一个可选内部流水线寄存器。我们强烈建议使用该寄存器模式。这样可使时钟速率较高,但会增加一个周期的时钟周期延迟。

Virtex-5 FPGA Block RAM 的使用规则:

• 如果启用了 ECC 解码器 (EN_ECC_READ = TRUE),则不能使用同步设置 / 复位 (SSR) 端口。

• 不得违反 Block RAM 地址和写使能引脚的建立时间。违反地址的建立时间 (即使写使能为 Low)会损坏 Block RAM 的数据内容。

• Block RAM 寄存器模式的 SSR 需要 REGCE = 1 来复位输出 DO 的寄存器值。在这种模式下不能复位 Block RAM 阵列的数据输出锁存器。Block RAM 锁存器模式的 SSR 需要 Block RAM 使能 EN = 1 来复位输出 DO 的锁存器值。

• 虽然 RAMB18SDP (x36 18k Block RAM) 和 RAMB36SDP (x72 36k Block RAM) 是简单双端口基元,但可以按一个只读端口和一个只写端口的方式使用真双口基元(RAMB18 和 RAMB36)。例如:一个 RAMB18 的 READ_WIDTH_A = 18,READ_WIDTH_B = 9,有 WEA = 0 和 WEB = 1,这显然是简单双端口 Block RAM,具有来自真双口基元的较小端口宽度。同样,也可以用真双口基元 (RAMB18 或 RAMB36)或简单双端口 Block RAM 基元 (RAMB18SDP 或 RAMB36SDP)实现 ROM 功能。

• 使用特定 Block RAM 基元时可选择不同的读端口和写端口宽度。奇偶校验位只可用于 x9、x18 和 x36 端口宽度。当读宽度为 x1、x2 或 x4 时,不能使用奇偶校验位。如果读宽度是 x1、x2 或 x4,则有效的写宽度是 x1、x2、x4、x8、x16 或 x32。同样,当写宽度是 x1、x2 或 x4 时,即使基元的属性分别设置为 1、2、4、9、18 或 3,实际的可用读宽度仍然是 x1、x2、x4、x8、x16 或 x32。表 4-1 所示为几种可能的情况。

表 4-1: 奇偶校验使用情况

基元设置

有效读宽度 有效写宽度读宽度 写宽度

RAMB18 1、2 或 4 9 或 18 与设置相同 8 或 16

RAMB18 9 或 18 1、2 或 4 8 或 16 与设置相同

RAMB18 1、2 或 4 1、2 或 4 与设置相同 与设置相同

RAMB18 9 或 18 9 或 18 与设置相同 与设置相同

RAMB36 1、2 或 4 9、18 或 36 与设置相同 8、16 或 32

RAMB36 9、18 或 36 1、2 或 4 8、16 或 32 与设置相同

RAMB36 1、2 或 4 1、2 或 4 与设置相同 与设置相同

Virtex-5 用户指南 www.xilinx.com/cn 109UG190 (v3.1) 2007 年 9 月 11 日

Block RAM 简介R

Block RAM 简介除了分布式 RAM 存储器接口和高速 SelectIO™ 存储器接口,Virtex-5 器件还具有大量 36 Kb Block RAM。每个 36 Kb Block RAM 包含两个可独立控制的 18 Kb RAM。Block RAM 按列布置,而 Block RAM 存储器的总数取决于 Virtex-5 器件的尺寸。36 Kb Block 可以级联,以便以 小的时序损失实现更深和更宽的存储器。

使用 Xilinx CORE Generator™ 块存储器模块,可轻松实现嵌入式双端口或单端口 RAM 模块、ROM 模块、同步 FIFO 和数据宽度转换器。使用 CORE Generator FIFO Generator 模块,可生成多速率 FIFO。同步或异步 (多速率)FIFO 的实现使用专用的硬件资源,所以不需要为 FIFO 控制逻辑消耗其他 CLB 资源。

同步双端口和单端口 RAM

数据流真双口 36 Kb Block RAM 双端口存储器由一个 36 Kb 存储区域以及 A 和 B 两个完全独立的访问端口组成。同样,每个 18 Kb Block RAM 双端口存储器由一个 18 Kb 存储区域以及 A 和 B 两个完全独立的访问端口组成。其结构完全对称,并且两个端口可互换。图 4-1 所示为真双口数据流。表 4-2 列出了端口的名称和描述。

可以向两个端口或其中任一端口写入数据,也可以从两个端口或其中任一端口读取数据。每次写操作都是同步的;每个端口都有自己的地址、数据输入、数据输出、时钟、时钟使能和写使能。读和写操作同步,需要一个时钟沿。

没有专用监视器对两端口上完全相同地址的作用进行仲裁。需要由用户为两个时钟适当定时。相互冲突地同时写入同一位置不会引起任何物理损坏,但会导致数据的不确定性。

RAMB36 9、18 或 36 9、18 或 36 与设置相同 与设置相同

注:1. 当一个端口宽度小于 9 而另一端口宽度大于或等于 9 时,请勿使用奇偶校验位 DIP/DOP。

表 4-1: 奇偶校验使用情况 ( 续表 )

基元设置

有效读宽度 有效写宽度读宽度 写宽度

110 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 4 章: Block RAMR

图 4-1: 真双口数据流

表 4-2: 真双口的名称和描述

端口名称 描述

DI[A | B] 数据输入总线

DIP[A | B](1) 数据输入奇偶校验总线,可用于其他数据输入

ADDR[A | B] 地址总线

WE[A | B] 字节宽度写使能

EN[A | B] 当无效时,没有数据写入 Block RAM,输出总线保持其原状态

SSR[A | B] 锁存器或寄存器模式的同步设置 / 复位

CLK[A | B] 时钟输入

DO[A | B] 数据输出总线

DOP[A | B](1) 数据输出奇偶校验总线,可用于其他数据输出

REGCE[A | B] 输出寄存器使能

CASCADEINLAT[A | B] 当未启用可选输出寄存器时,将输入引脚级联为 64K x 1 模式

DOPA

DIPA

ADDRA

WEA

ENA

CASCADEOUTLATB

CASCADEINLATB

SSRA

CLKAREGCEA

REGCEB

DIPB

ADDRB

WEB

ENBSSRB

CLKB

36-Kbit Block RAM

ug0190_4_01_032106

DOPBDOB

DOA

DIA

DIB

36 KbMemory

Array

Port A

Port B

CASCADEOUTLATA

CASCADEINLATA

CASCADEOUTREGBCASCADEOUTREGA

CASCADEINREGBCASCADEINREGA

Virtex-5 用户指南 www.xilinx.com/cn 111UG190 (v3.1) 2007 年 9 月 11 日

同步双端口和单端口 RAMR

读操作在锁存器模式下,读操作使用一个时钟沿。读地址寄存在读端口;存储的数据在 RAM 访问后加载到输出锁存器中。当使用输出寄存器时,读操作会多占用一个延迟周期。

写操作写操作是单时钟沿操作。写地址寄存在写端口;数据输入存储在存储器中。

写模式在写时钟沿之后,输出锁存器上有效数据的行为取决于 WRITE_FIRST、READ_FIRST 和 NO_CHANGE 三项写模式设置。写模式的选择由配置设定。可以为各端口分别选择写模式属性。默认模式是 WRITE_FIRST。WRITE_FIRST 将新写入的数据输出到输出总线。READ_FIRST 在写入新数据时输出原来存储的数据。NO_CHANGE 保持先前由读操作产生的输出。

CASCADEOUTLAT[A | B] 当未启用可选输出寄存器时,将输出引脚级联为 64K x 1 模式

CASCADEINREG[A | B] 当启用了可选输入寄存器时,将输入级联为 64K x 1 模式

CASCADEOUTREG[A | B] 当启用了可选输出寄存器时,将输出级联为 64K x 1 模式

注:1. “数据输入总线 - DI[A|B]<#:0> 和 DIP[A|B]<#:0>”部分有关于数据奇偶校验引脚的更多信息。

表 4-2: 真双口的名称和描述 ( 续表 )

端口名称 描述

112 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 4 章: Block RAMR

WRITE_FIRST 模式,即透明模式 (默认)

在 WRITE_FIRST 模式下,输入数据同时写入存储器并存入数据输出 (透明写),如图 4-2 所示。当未使用可选输出流水线寄存器时,这些波形对应于锁存器模式。

READ_FIRST 模式,即先读后写模式

在 READ_FIRST 模式下,原存储在写地址的数据出现在输出锁存器上,而输入数据则存入存储器 (先读后写)。当未使用可选输出流水线寄存器时,图 4-3 中的波形对应于锁存器模式。

NO_CHANGE 模式

在 NO_CHANGE 模式下,输出锁存器在写操作过程中保持不变。如图 4-4 所示,数据输出保持 后的读数据,不受同端口上写操作的影响。当未使用可选输出流水线寄存器时,这些波形对应于锁存器模式。

图 4-2: WRITE_FIRST 模式波形

CLK

WE

DI

ADDR

DO

EN

Disabled Read

XXXX 1111 2222 XXXX

aa bb cc dd

0000 MEM(aa) 1111 2222 MEM(dd)

ReadWriteMEM(bb)=1111

WriteMEM(cc)=2222

ug190_4_03_032206

图 4-3: READ_FIRST 模式波形

CLK

WE

DI

ADDR

DO

EN

Disabled Read

XXXX 1111 2222 XXXX

aa bb cc dd

0000 MEM(aa) old MEM(bb) old MEM(cc) MEM(dd)

ReadWriteMEM(bb)=1111

WriteMEM(cc)=2222

ug190_4_04_032206

Virtex-5 用户指南 www.xilinx.com/cn 113UG190 (v3.1) 2007 年 9 月 11 日

同步双端口和单端口 RAMR

避免冲突Virtex-5 Block RAM 存储器是真双口 RAM,其中两个端口可以在任意时间访问任意存储器。但是,当从两个端口访问同一存储器位置时,用户必须遵守某些限制。有两种截然不同的情况:两个端口共用一个时钟 (同步时钟控制),或者两个端口的时钟频率和相位不同 (异步时钟控制)。

异步时钟控制

异步时钟控制是较普遍的情况,其中两个时钟的有效沿不同时出现:

• 在两个端口都执行读操作时没有时序约束。

• 当一个端口执行写操作时,另一端口不得使用禁用的时钟间建立时间窗口内的时钟沿对同一存储器位置进行读或写访问。如果违反这一条件,仿真模型会产生错误。如果忽略这一限制,读或写操作会产生不可预见的结果。不过,没有对器件造成物理损坏的危险。

同步时钟控制

同步时钟控制是特殊情况,其中两个端口时钟的有效沿同时出现:

• 在两个端口都执行读操作时没有时序约束。

• 当一个端口执行写操作时,另一端口不得写入同一位置,除非两个端口写入完全相同的数据。

• 当一个端口执行写操作并且该写操作成功时,如果写端口是在 READ_FIRST 模式下,则另一端口可以从同一位置可靠地读取数据。这时,两个端口上的 DATA_OUT 都会反映原存储的数据。

如果写端口是在 WRITE_FIRST 或 NO_CHANGE 模式下,则读端口上的 DATA_OUT 将变为无效 (不稳定)。读端口的模式设置不影响此操作。

图 4-4: NO_CHANGE 模式波形

CLK

WE

DI

ADDR

DO

EN

Disable Read

XXXX 1111 2222 XXXX

aa bb cc dd

0000 MEM(aa) MEM(dd)

ReadWriteMEM(bb)=1111

WriteMEM(cc)=2222

ug190_4_05_032206

114 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 4 章: Block RAMR

Virtex-5 器件中的其他 Block RAM 功能

可选输出寄存器可选输出寄存器通过消除对流水线操作 CLB 触发器的布线延迟来提高设计的性能。这些输出寄存器具有独立的时钟和时钟使能输入。因此,输出数据寄存器可保持其值独立于输入寄存器的操作。图 4-5 显示了可选输出寄存器。

独立读写端口宽度选择每个 Block RAM 端口都具有控制数据宽度和地址深度(长宽比)的功能。Virtex-5 真双口 Block RAM 将这种灵活性推广到了读和写,可以用不同的数据位宽度配置各端口。例如,端口 A 可以有 36 位读宽度和 9 位写宽度,而端口 B 可以有 18 位读宽度和 36 位写宽度。请见第 122 页的 “Block RAM 属性”。

如果读端口宽度不同于写端口宽度并且配置为 WRITE_FIRST 模式,则 DO 显示所有已启用写字节的有效新数据和存储在存储器中的所有未启用字节的原数据。

独立的读写端口宽度选择提高了在 Block RAM 中实现内容可编址存储器 (CAM) 的效率。此选项可用于所有 Virtex-5 真双口 RAM 的端口尺寸和模式。

图 4-5: Block RAM 逻辑图 (显示一个端口)

Register

OptionalInverter

Latches Register

Address

DI

WEEN

CLK

WriteStrobe

ReadStrobe

QD QD

DO

Control Engine

Configurable OptionsUG190_4_06_040606

MemoryArray

(common toboth ports)

LatchEnable

Virtex-5 用户指南 www.xilinx.com/cn 115UG190 (v3.1) 2007 年 9 月 11 日

Virtex-5 器件中的其他 Block RAM 功能R

简单双端口 Block RAM每个 18 Kb 块和 36 Kb 块还可以配置成简单双端口 RAM 模式。在这种模式下,Block RAM 端口宽度对于 18 Kb Block RAM 加倍到 36 位,对于 36 Kb Block RAM 加倍到 72 位。在简单双端口模式下,可同时进行独立的读和写操作,其中端口 A 指定为读端口,端口 B 指定为写端口。当读和写端口同时访问同一数据位置时,将其作为碰撞处理,类似于真双口模式下的端口碰撞。简单双端口 Block RAM 模式不支持通过配置端口读回。图 4-6 所示为简单双端口数据流。

图 4-6: 简单双端口数据流

表 4-3: 简单双端口名称和描述

端口名称 描述

DO 数据输出总线

DOP 数据输出奇偶校验总线

DI 数据输入总线

DIP 数据输入奇偶校验总线

RDADDR 读数据地址总线

RDCLK 读数据时钟

RDEN 读端口使能

REGCE 输出寄存器时钟使能

SSR 同步设置 / 复位

WE 字节宽度写使能

WRADDR 写数据地址总线

WRCLK 写数据时钟

WREN 写端口使能

36 Kb Memory Array

DOP

RDEN

RDADDR

RDCLK

REGCE

SSR

DIP

WEADDR

WE

WRCLK

WREN

DODI

ug190_4_02_041206

64

8

8

9

9

64

8

116 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 4 章: Block RAMR

可级联 Block RAM在 Virtex-5 Block RAM 架构中,可将两个 32K x 1 RAM 组合起来形成一个 64K x 1 RAM,无需使用局部互连或其他 CLB 逻辑资源。任意两个相邻的 Block RAM 均可级联形成一个 64K x 1 Block RAM。只有在 64K x 1 模式下才可用级联两个 Block RAM 的方法增加 Block RAM 的深度。“其他 RAMB18 和 RAMB36 基元设计考虑事项”部分叙述了关于可级联 Block RAM 的进一步信息。有关其他更宽和 / 或更深的尺寸,请查阅 “创建较大的 RAM 结构”部分。图 4-7 所示为在可级联模式下已连接相应端口的 Block RAM。

字节宽度写使能Block RAM 的字节宽度写使能功能提供了以八位 (一个字节)为单位写入输入数据的能力。对于 RAMB36 真双口 RAM,有四个独立的字节宽度写使能输入。对于简单双端口模式下的 Block RAM (RAMB36SDP),有八个独立的字节宽度写使能输入。表 4-4 概述了 36K 和 18K Block RAM 的字节宽度写使能。每个字节宽度写使能与一个输入数据字节和一个奇偶校验位关联。在所有数据宽度配置中都必须驱动所有字节宽度写使能输入。用 Block RAM 与微处理器进行接口连接时,此功能很有用。字节宽度写使能不能用于多速率 FIFO 或 ECC 模式。“其他 RAMB18 和 RAMB36 基元设计考虑事项”部分中进一步说明了字节宽度写使能。图 4-8 所示为 RAMB36 的字节宽度写使能时序图。

图 4-7: 可级联 Block RAM

D0Not Used

DI DI

CASCADEINConnect to logic High or Low

CASCADEOUT(No Connect)

A[14:0]

WE

D0

A15A15

A[14:0]

D0

DI DI

A[14:0]

WE

D0

D Q

D Q

D Q

D Q

D Q

D Q

D Q

D Q

A15A15

A[14:0]

WE[3:0]

WE[3:0]

Interconnect Block RAM

RAM_EXTENSION = UPPER(0)

RAM_EXTENSION = LOWER(1)

01

0

1

0

1

01

ug190_4_07_071607

CASCADEIN of Top

CASCADEOUT of Bottom

OptionalOutput FF

OptionalOutput FF

Virtex-5 用户指南 www.xilinx.com/cn 117UG190 (v3.1) 2007 年 9 月 11 日

Block RAM 库基元R

当为 36 位或 18 位宽的数据通路配置 RAMB36 时,任何端口都可限制写入数据字内的指定字节位置。如果按 READ_FIRST 模式配置,则 DO 总线显示整个已编址字的原内容。在 WRITE_FIRST 模式下,DO 显示新写入的已启用字节和未写字节的初始存储器内容的组合。

Block RAM 纠错代码36 Kb Block RAM 的 Block RAM 和 FIFO 的实现都支持实现 64 位纠错代码 (ECC)。该代码用来检测 Block RAM 数据读出中的单位元和双位元错误。然后,单位元错误在输出数据中得到纠正。

Block RAM 库基元Virtex-5 Block RAM 库基元 RAMB18 和 RAMB36 是所有 Block RAM 配置的基本构建模块。其他 Block RAM 基元和宏以这些基元为基础。有些 Block RAM 属性只能用这些基元之一配置 (如流水线寄存器、级联等)。请见 “Block RAM 属性”部分。

输入和输出数据总线用 9 位宽度 (8 + 1)、18 位宽度 (16 + 2) 和 36 位宽度 (32 + 4) 配置的两条总线表示。与各字节相关的第九个位可以存储奇偶校验 / 纠错位或用作附加数据位。在第九个位上不执行任何特定功能。奇偶校验位的独立总线有助于某些设计。而其他设计可以通过合并常规数据总线和奇偶校验总线安全地使用 9 位、18 位或 36 位总线。所有位(包括奇偶校验位)的读 / 写和存储操作都完全相同。

表 4-4: 可用的字节宽度写使能

基元 大位宽度 字节宽度写使能数

RAMB36 36 4

RAMB36SDP 72 8

RAMB18 18 2

RAMB18SDP 36 4

图 4-8: 字节宽度写使能波形 (x36 WRITE_FIRST)

CLK

WE

DI

ADDR

DO

EN

Disabled Read

XXXX 1111 2222

1111 0011

XXXX

aa bb bb cc

0000 MEM(aa) 1111 1122 MEM(cc)

ReadWriteMEM(bb)=1111

Byte WriteMEM(bb)=1122

ug190_4_10_032106

118 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 4 章: Block RAMR

图 4-9 所示为 36 Kb 真双口 Block RAM 基元 (RAMB36) 的所有 I/O 端口。表 4-5 列出了这些基元。

图 4-9: Block RAM 端口信号 (RAMB36)

DOPA

DOPB

DIA

DIPAADDRA

WEAENA

SSRA

CLKA

DOA

DOB

REGCEA

DIBDIPB

ADDRB

WEBENB

SSRBREGCEB

CLKB

ug0190_4_10_100906

32

4

16

4

32

4

32

4

32

4

16

4

CASCADEOUTLATA CASCADEOUTLATB

CASCADEOUTREGA CASCADEOUTREGB

CASCADEINLATA CASCADEINLATB

CASCADEINREGA CASCADEINREGB

Virtex-5 用户指南 www.xilinx.com/cn 119UG190 (v3.1) 2007 年 9 月 11 日

Block RAM 端口信号R

Block RAM 端口信号在访问同一组 36K 位存储单元时,各 Block RAM 端口独立于另一端口操作。

时钟 - CLK[A|B]各端口与独立时钟引脚完全同步。所有端口输入引脚的建立时间均参照 CLK 引脚。输出数据总线的时钟到输出时间也参照 CLK 引脚。时钟的极性可配置 (默认为上升沿)。

使能 - EN[A|B]使能引脚影响端口的读、写和设置 / 复位功能。具有无效使能引脚的端口输出引脚保持为原状态,不向存储单元写入数据。使能的极性可配置 (默认为 High 有效)。

字节宽度写使能 - WE[A|B]要将数据输入总线的内容写入已编址的存储器位置,EN 和 WE 都必须在有效时钟沿之前的建立时间内有效。输出锁存器根据写配置 (WRITE_FIRST、READ_FIRST 或 NO_CHANGE)加载或不加载。当 WE 无效时,如果进行读操作,地址总线所指向的存储器单元的内容会出现在数据输出总线上,这与写模式属性无关。写使能的极性不可配置(High 有效)。

寄存器使能 - REGCE[A|B]寄存器使能引脚 (REGCE) 控制可选输出寄存器。当 RAM 在寄存器模式下时,REGCE = 1 在时钟沿上将输出寄存到寄存器中。REGCE 的极性不可配置 (High 有效)。

表 4-5: Virtex-5 Block RAM、FIFO、简单双端口和 ECC 基元

基元 描述

RAMB36 支持 x1、x2、x4、x9、x18 和 x36 端口宽度

RAMB36SDP 简单双端口 (端口宽度 x72)和 64 位 ECC 基元 (见图 4-29)

FIFO36 支持 x4、x9、x18 和 x36 端口宽度

FIFO36_72 FIFO (端口宽度 x72),可选支持 ECC

RAMB18 支持 x1、x2、x4、x9 和 x18 端口宽度

RAMB18SDP 简单双端口 (端口宽度 x36)

FIFO18 支持 x4、x9 和 x18 端口宽度

FIFO18_36 FIFO (端口宽度 x36)

注:1. FIFO18、FIFO36、RAMB18 和 RAMB36 在软件 《库指南》中有描述。全部八个基元在语言模板中均

有描述。

120 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 4 章: Block RAMR

设置 / 复位 - SSR[A|B]在锁存器模式下,SSR 引脚强制数据输出锁存等于 SRVAL。请见第 122 页的 “Block RAM 属性”。如果启用了可选输出寄存器,SSR 引脚也可把 SRVAL 值强行存入数据输出寄存器。SSR 不影响已锁存的值。数据输出锁存器或输出寄存器同步地置为 0 或 1 有效,包括奇偶校验位。各端口具有独立的 36 位 SRVAL[A|B] 属性。此操作不影响 RAM 存储单元,也不干扰另一端口上的写操作。与读写操作相似,设置 / 复位功能仅当端口的使能引脚有效时才有效。设置 / 复位的极性可配置 (默认为 High 有效)。

地址总线 - ADDR[A|B]<13:#><14:#><15:#>地址总线选择读或写的存储单元。端口的数据位宽度决定一个 RAMB18 或 RAMB36 所需的地址总线宽度,如表 4-6 和表 4-7 所示。

对于使用 RAMB36 的可级联 Block RAM,数据宽度是 1 位,地址总线是 16 位 <15:0>。地址位 15 仅用于可级联的 Block RAM。对于非级联 Block RAM,请连接为 High。

表 4-6: RAMB18 和 RAMB18SDP 的端口长宽比

端口数据宽度 端口地址宽度 深度 ADDR 总线 DI 总线 / DO 总线 DIP 总线 / DOP 总线

1 14 16,384 <13:0> <0> 不适用

2 13 8,192 <13:1> <1:0> 不适用

4 12 4,096 <13:2> <3:0> 不适用

9 11 2,048 <13:3> <7:0> <0>

18 10 1,024 <13:4> <15:0> <1:0>

36 (RAMB18SDP) 9 512 <13:5> <31:0> <3:0>

表 4-7: RAMB36 的端口长宽比

端口数据宽度 端口地址宽度 深度 ADDR 总线 DI 总线 / DO 总线 DIP 总线 / DOP 总线

1 15 32,768 <14:0> <0> 不适用

2 14 16,384 <14:1> <1:0> 不适用

4 13 8,192 <14:2> <3:0> 不适用

9 12 4,096 <14:3> <7:0> <0>

18 11 2,048 <14:4> <15:0> <1:0>

36 10 1,024 <14:5> <31:0> <3:0>

72 (RAMB36SDP) 9 512 <14:6> <63:0> <7:0>

1 (级联) 16 65536 <15:0> <0> 不适用

Virtex-5 用户指南 www.xilinx.com/cn 121UG190 (v3.1) 2007 年 9 月 11 日

Block RAM 端口信号R

“其他 RAMB18 和 RAMB36 基元设计考虑事项”部分中进一步说明了数据和地址引脚映射。

数据输入总线 - DI[A|B]<#:0> 和 DIP[A|B]<#:0>数据输入总线提供要写入 RAM 的新数据值。常规数据输入总线 (DI) 加上奇偶校验数据输入总线 (DIP) (如果有)的总宽度等于端口宽度。例如,36 位端口数据宽度用 DI<31:0> 和 DIP<3:0> 表示,如表 4-6 和表 4-7 所示。

数据输出总线 - DO[A|B]<#:0> 和 DOP[A|B]<#:0>在读操作过程中的 后一个有效时钟沿上,数据输出总线反映地址总线参考的存储器单元的内容。在写操作 (WRITE_FIRST 或 READ_FIRST 配置)过程中,数据输出总线反映正在写入的数据或写之前的已存储值。在 NO_CHANGE 模式下的写操作过程中,数据输出总线不变。常规数据输出总线 (DO) 加上奇偶校验数据输出总线 (DOP) (如果有)的总宽度等于端口宽度,如表 4-6 和表 4-7 所示。

级联输入 - CASCADEINLAT[A|B] 和 CASCADEINREG[A|B]CASCADEIN 引脚用来连接两个 Block RAM 以形成 64K x 1 模式 (图 4-10)。当 Block RAM 是 UPPER Block RAM 时使用此引脚,将其连接到同一端口的 LOWER Block RAM 的 CASCADEOUT 引脚。如果不使用级联模式,则不需要连接此引脚。请参阅 “可级联 Block RAM”获取进一步信息。

级联输出 - CASCADEOUTLAT[A|B] 和 CASCADEOUTREG[A|B]CASCADEIN 引脚用来连接两个 Block RAM 以形成 64K x 1 模式。当 Block RAM 是 LOWER Block RAM 时使用此引脚,将其连接到同一端口的 UPPER Block RAM 的 CASCADEIN 引脚。如果不使用级联模式,则不需要连接此引脚。请参阅 “可级联 Block RAM”获取进一步信息。

图 4-10: 两个 RAMB36 级联

ug190_4_12_040606

UpperRAMB36

LowerRAMB36

CASCADEINLATA/B CASCADEINREGA/B

CASCADEOUTLATA/B CASCADEOUTREGA/B

2 2

122 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 4 章: Block RAMR

反转控制引脚每个端口的六个控制引脚 (CLK、EN 和 SSR)各有独立的反转选项。EN 和 SSR 控制信号可以配置成 High 或 Low 有效,而时钟可以在上升沿或下降沿上有效 (默认为在上升沿上有效),不需要其他逻辑资源。

GSRVirtex-5 器件的全局设置 / 复位 (GSR) 信号是异步全局信号,在器件配置结束时有效。GSR 也可随时恢复 Virtex-5 的初始状态。GSR 信号将输出锁存器初始化为 INIT 值 (简单双端口)或 INIT_A 和 INIT_B 值 (真双口)。请见 “Block RAM 属性”。GSR 信号不影响内部存储器内容。因为 GSR 是全局信号,所以它在功能层 (Block RAM 基元)没有输入引脚。

未用输入未使用的数据和 / 或地址输入应连接为 High。

Block RAM 地址映射各端口根据它是 RAMB18 还是 RAMB36 使用一套编址方案访问同一组的 18,432 或 36,864 个存储单元。对应特定宽度编址的物理 RAM 位置由以下公式决定 (仅当两个端口使用不同长宽比时才有意义):

END = ((ADDR + 1) × Width) -1START = ADDR × Width

表 4-8 所示为对应各端口宽度的低阶地址映射。

Block RAM 属性“用 VHDL 或 Verilog 代码初始化 Block RAM”部分中讨论了所有属性代码的示例。“其他 RAMB18 和 RAMB36 基元设计考虑事项”部分提供了关于使用这些属性的进一步信息。

表 4-8: 端口地址映射

端口宽度

奇偶校验位置

数据位置

1 N.A. 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

2 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

4 7 6 5 4 3 2 1 0

8 + 1 3 2 1 0 3 2 1 0

16 + 2 1 0 1 0

32 + 4 0 0

Virtex-5 用户指南 www.xilinx.com/cn 123UG190 (v3.1) 2007 年 9 月 11 日

Block RAM 属性R

内容初始化 - INIT_xxINIT_xx 属性定义初始存储器内容。默认情况下,Block RAM 存储器在器件配置序列过程中初始化为全部归零。RAMB18 的 64 个初始化属性 (从 INIT_00 到 INIT_3F)和 RAMB36 的 128 个初始化属性 (从 INIT_00 到 INIT_7F)表示常规存储器内容。每个 INIT_xx 都是一个 64 位的十六进制编码位向量。存储器内容可以部分初始化,然后以零自动完成。

以下公式用来确定各 INIT_xx 属性的位元位置。

设 yy = 十六进制编码对十进制的换算系数 (xx),INIT_xx 对应以下存储单元:

• 从 [(yy + 1) × 256] – 1

• 到 (yy) × 256

例如,属性 INIT_1F 的换算如下:

• yy = 十六进制编码对十进制的换算系数 (xx) “1F”= 31

• 从 [(31+1) × 256] – 1 = 8191

• 到 31 × 256 = 7936

表 4-9 给出了更多示例。

表 4-9: Block RAM 初始化属性

属性存储器位置

从 到

INIT_00 255 0

INIT_01 511 256

INIT_02 767 512

… … …

INIT_0E 3839 3584

INIT_0F 4095 3840

INIT_10 4351 4096

… … …

INIT_1F 8191 7936

INIT_20 8447 8192

… … …

INIT_2F 12287 12032

INIT_30 12543 12288

… … …

INIT_3F 16383 16128

… … …

INIT_7F 32767 32512

124 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 4 章: Block RAMR

内容初始化 - INITP_xxINITP_xx 属性定义与 DIP/DOP 总线相对应的存储器单元的初始内容 (奇偶校验位)。默认情况下,这些存储器单元也初始化为全部归零。初始化属性表示奇偶校验位的存储器内容。RAMB18 的八个初始化属性是 INITP_00 到 INITP_07。RAMB36 的 16 个初始化属性是 INITP_00 到 INITP_0F。每个 INITP_xx 都是一个 64 位的十六进制编码位向量,具有常规 INIT_xx 属性的行为。可以用同样的公式计算用特定 INITP_xx 属性初始化的位元位置。

输出锁存器初始化 - INIT (INIT_A 或 INIT_B)INIT 属性 (单端口)或 INIT_A 和 INIT_B 属性 (双端口)定义配置后的输出锁存器或输出寄存器的值。INIT (INIT_A 和 INIT_B)属性的宽度即端口宽度,如表 4-10 所示。这些属性是十六进制编码位向量,其默认值是 0。在级联模式下,上下两个 Block RAM 应初始化为同样的值。

输出锁存器 / 寄存器同步设置 / 复位 (SRVAL_[A|B])当 SSR 输入置为有效时,SRVAL 属性 (单端口)或 SRVAL_A 和 SRVAL_B 属性 (双端口)定义输出锁存器的值。SRVAL (SRVAL_A 和 SRVAL_B)属性的宽度即端口宽度,如表 4-10 所示。这些属性是十六进制编码位向量,其默认值是 0。当设置了可选输出寄存器属性时,此属性设置输出寄存器的值。如果未使用寄存器,则锁存器设置为 SRVAL。在 36 位模式下,SRVAL[35:32] 对应于 DP[3:0]。

可选输出寄存器开关 - DO[A|B]_REG此属性设置 Block RAM 的 A/B 输出上流水线寄存器的数值。有效值是 0 (默认)或 1。

扩展模式地址判定 - RAM_EXTENSION_[A|B]当使用级联模式时,此属性确定所考虑的 Block RAM 是否将其 A/B 端口作为 UPPER/LOWER 地址。请参阅 “可级联 Block RAM”部分。如果未在级联模式下使用 Block RAM,则默认值为 NONE。

表 4-10: 端口宽度值

端口数据宽度 DOP 总线 DO 总线 INIT / SRVAL

1 不适用 <0> 1

2 不适用 <1:0> 2

4 不适用 <3:0> 4

9 <0> <7:0> (1 + 8) = 9

18 <1:0> <15:0> (2 + 16) = 18

36 <3:0> <31:0> (4 + 32) = 36

Virtex-5 用户指南 www.xilinx.com/cn 125UG190 (v3.1) 2007 年 9 月 11 日

用 VHDL 或 Verilog 代码初始化 Block RAMR

读宽度 - READ_WIDTH_[A|B]此属性确定 Block RAM 的 A/B 读端口宽度。有效值是 0 (默认)、1、2、4、9、18 和 36。

写宽度 - WRITE_WIDTH_[A|B]此属性确定 Block RAM 的 A/B 写端口宽度。有效值是 0 (默认)、1、2、4、9、18 和 36。

写模式 - WRITE_MODE_[A|B]此属性确定 A/B 输入端口的写模式。可能的值是 WRITE_FIRST(默认)、READ_FIRST 和 NO_CHANGE。“写模式”部分提供了关于写模式的进一步信息。

Block RAM 位置约束Block RAM 实例可以附带 LOC 属性以约束布局。Block RAM 布局位置与用来命名 CLB 位置的传统方法不同,便于在各阵列之间传输 LOC 属性。

LOC 属性使用以下形式:

LOC = RAMB36_X#Y#

RAMB36_X0Y0 是器件上左下方 Block RAM 的位置。如果将 RAMB36 约束在 RAMB36_X#Y#,则不可将 FIFO 约束在 FIFO36_X#Y#,因为它们共用一个位置。

通过使用 BEL UPPER/LOWER 约束,可以将两个 RAMB18 置于同一个 RAMB36 位置:

inst ”my_ramb18” LOC = RAMB36_X0Y0 | BEL = UPPERinst ”my_ramb18” LOC = RAMB36_X0Y0 | BEL = LOWER

另外,可以将一个 FIFO18 和一个 RAMB16 置于同一个 RAMB36 位置,不需要 BEL 约束:

inst ”my_fifo18” LOC = RAMB36_X0Y0 inst ”my_ramb18” LOC = RAMB36_X0Y0

用 VHDL 或 Verilog 代码初始化 Block RAM对于合成和仿真,都可以通过在例化的组件内使用类属映射表 (VHDL) 或定义参数 (Verilog) 的方法用 VHDL 或 Verilo 代码初始化 Block RAM 存储器的属性和内容。修改类属映射表或定义参数的值会影响仿真的行为和已实现的合成结果。Virtex-5 《库指南》包括用来例化 RAMB36 基元的代码。

其他 RAMB18 和 RAMB36 基元设计考虑事项在 Virtex-5 Block RAM 解决方案中,RAMB18 和 RAMB36 基元是不可分割的整体。

126 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 4 章: Block RAMR

可选输出寄存器可选输出寄存器可用于 RAMB18 和 RAMB36 的 A|B 输出端口或其中之一。其选择用 DO[A|B]_REG 属性完成。两个独立的时钟使能引脚是 REGCE[A|B]。当在端口 [A|B] 使用可选输出寄存器时,[A|B] 端口同步设置 / 复位 (SSR) 引脚的有效置位会使属性 SRVAL 指定的值寄存到输出。图 4-5 显示了可选输出寄存器。

独立读写端口宽度选择要用 Block RAM 的双端口模式指定端口宽度,设计人员必须使用 READ_WIDTH_[A|B] 和 WRITE_WIDTH_[A|B] 属性。应考虑以下规则:

• 设计单端口 Block RAM 需要设置一写一读端口对的宽度 (例如,READ_WIDTH_A 和 WRITE_WIDTH_A)。

• 设计双端口 Block RAM 需要设置所有端口的宽度。

• 在使用这些属性时,如果两个写端口或两个读端口都设置为 0,Xilinx ISE 工具就不会实现该设计。在简单双端口模式下,端口宽度是固定的,并且读端口宽度等于写端口宽度。RAMB18 的数据端口宽度是 36,而 RAMB36 的数据端口宽度是 72。

RAMB18 和 RAMB36 端口映射设计规则Virtex-5 Block RAM 可以配置成各种端口宽度和尺寸。根据配置,有些数据引脚和地址引脚不使用。第 120 页的表 4-6 所示为各种配置中使用的引脚。除了表 4-6 中的信息外,以下规则也可用来确定 RAMB36 的端口连接:

1. 在使用 RAMB36 时,如果 DI[A|B] 引脚不足 32 位宽,在 DI[A|B] 前串接 (32 – DI_BIT_WIDTH) 个逻辑零。

2. 如果 DIP[A|B] 引脚不足 4 位宽,在 DIP[A|B] 前串接 (4 – DIP_BIT_WIDTH) 个逻辑零。DIP[A|B] 在不使用时可以不连接。

3. DO[A|B] 引脚必须是 32 位宽。不过,只有从 DO_BIT_WIDTH – 1 下数到 0 的引脚上存在有效数据。

4. DOP[A|B] 引脚必须是 4 位宽。不过,只有从 DOP_BIT_WIDTH – 1 下数到 0 的引脚上存在有效数据。DOP[A|B] 在不使用时可以不连接。

5. ADDR[A|B] 引脚必须是 16 位宽。不过,只有从 14 到 (15 – 地址宽度)的引脚上存在非级联 Block RAM 的有效地址。其余引脚 (包括引脚 15)应固定为 High。第 120 页的表 4-6 中定义了地址宽度。

可级联 Block RAM 要使用可级联 Block RAM 功能,应考虑以下规则:

1. 两个 RAMB36 基元必须例化。

2. 将一个 RAMB36 的 RAM_EXTENSION_A 和 RAM_EXTENSION_B 属性设置成 UPPER,将另一个的设置成 LOWER。

3. 将上 RAMB36 的 CASCADEINA 和 CASCADEINB 端口连接到下 RAMB36 的 CASCADEOUTA 和 CASCADEOUTB 端口。上 RAMB36 的 CASCADEOUT 端口不需要连接。将下 RAMB36 的 CASCADEIN 端口连接到逻辑 High 或 Low。

Virtex-5 用户指南 www.xilinx.com/cn 127UG190 (v3.1) 2007 年 9 月 11 日

其他 Block RAM 基元R

4. 下 RAMB36 的数据输出端口不使用。这些引脚不连接。

5. 如果对两个 RAMB36 设置位置约束,则它们必须相邻。如果未指定位置约束,则 Xilinx ISE 软件会自动管理 RAMB36 的位置。

6. 地址引脚 ADDR[A|B] 必须是 16 位宽。读和写两个端口都必须是一位宽。

图 4-7 所示为可级联 Block RAM。

字节宽度写使能 使用字节宽度写使能功能时应考虑以下规则:

• 在 x36 模式下,WE[3:0] 连接到四个用户 WE 输入。

• 在 x18 模式下,WE[0] 和 WE[2] 连接到用户 WE[0] 并由用户 WE[0] 驱动,而 WE[1] 和 WE[3] 由用户 WE[1] 驱动。

• 在 x9、x4、x2 和 x1 模式下,WE[3:0] 全部连接到一个用户 WE。

• 在 x72 简单双端口模式下,WE[7:0] 连接到八个用户 WE 输入。

其他 Block RAM 基元除了 RAMB18 和 RAMB36,还有其他 Block RAM 基元可用于特定实现。RAMB18SDP 和 RAMB36SDP 用于实现 Block RAM 的简单双端口模式配置。第 115 页的表 4-3 所示为按简单双端口模式配置的 18 Kb Block RAM 的可用端口。

RAMB36SDP 还可配置成具有内置 Block RAM ECC。有关带 ECC 功能的 RAMB36SDP 的详细信息,请见第 153 页的 “内置纠错”。

Block RAM 应用

创建较大的 RAM 结构Block RAM 列具有专用布线,以便用布线延迟 小的 36 Kb Block RAM 创建更宽 / 更深的模块。这样便能以比使用常规布线资源时更小的时序损失获得更宽或更深的 RAM 结构。

Xilinx CORE Generator 程序为设计人员提供了一种简便方法,可以用多个 Block RAM 实例生成更宽更深的存储器结构。该程序输出 VHDL 或 Verilog 实例模板和仿真模型,附带一个可以包括在设计中的 EDIF 文件。

寄存器模式下的 Block RAM SSR寄存器模式下的 Block RAM SSR 可用来将输出寄存器作为独立于 Block RAM 的真流水线寄存器予以控制。如图 4-11 所示,Block RAM 不依赖寄存器使能或设置 / 复位即可读写。在寄存器模式下,SSR 将 DO 设置为 SRVAL,数据可以从 Block RAM 读出到 DBRAM。DBRAM 中的数据可以在下一周期中同步输出 (DO)。图 4-12 和图 4-13 中的时序图所示为 SSR 操作的不同情形。

128 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 4 章: Block RAMR

图 4-11: 寄存器模式下的 Block RAM SSR

Block RAM

OutputRegister

BRAM_SSR

DO

BRAM_RAMEN

In register mode, the block RAM SSR is disabledand the SSR pin only sets/resets the output registers.

EN

REGCE

SSR

DIDBRAM

ug190_4_28_071707

图 4-12: 寄存器模式下 REGCE 为 High 时的 SSR 操作

CLK

RAMEN

REGCE

SSR

DBRAM

Block RAM can be read when SSR is active.

Data appears on the output of the next REGCE.

D0 D1 D2 D3

D0 SRVAL SRVALD1 D2DO

ug190_4_29_071607

Virtex-5 用户指南 www.xilinx.com/cn 129UG190 (v3.1) 2007 年 9 月 11 日

Block RAM 时序模型R

Block RAM 时序模型本部分讲述 Virtex-5 器件中与 Block RAM 相关的时序参数 (图 4-14 所示)。同时提供《Virtex-5 数据手册》中的开关特性部分和 Xilinx 软件中的时序分析器 (TRCE) 报告作为参考。

图 4-13: 寄存器模式下带变量 REGCE 的 SSR 操作

CLK

RAMEN

REGCE

SSR

DBRAM D0 D1 D2 D3

D0 SRVAL D2D1DO

ug190_4_29_071607

SSR only sets/resets DO when REGCE is also High.

130 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 4 章: Block RAMR

Block RAM 时序参数表 4-11 所示为 Virtex-5 Block RAM 的时序参数。

表 4-11: Block RAM 时序参数

参数 功能控制信号

描述

相对于时钟 (CLK) 的建立和保持时间

TRxCK_x = 建立时间 (时钟沿之前),TRCKx_x = 保持时间 (时钟沿之后)

TRCCK_ADDR

地址输入 ADDR

时钟之前,地址信号必须在 Block RAM 的 ADDR 输入上稳定的时间。(1)

TRCKC_ADDR 时钟之后,地址信号必须在 Block RAM 的 ADDR 输入上稳定的时间。(1)

TRDCK_DI数据输入 DI

时钟之前,数据必须在 Block RAM 的 DI 输入上稳定的时间。

TRCKD_DI 时钟之后,数据必须在 Block RAM 的 DI 输入上稳定的时间。

TRCCK_EN

使能 EN

时钟之前,使能信号必须在 Block RAM 的 EN 输入上稳定的时间。

TRCKC_EN 时钟之后,使能信号必须在 Block RAM 的 EN 输入上稳定的时间。

TRCCK_SSR

同步设置 / 复位 SSR

时钟之前,同步设置 / 复位信号必须在 Block RAM 的 SSR 输入上稳定的时间。

TRCKC_SSR 时钟之后,同步设置 / 复位信号必须在 Block RAM 的 SSR 输入上稳定的时间。

TRCCK_WE

写使能 WE

时钟之前,写使能信号必须在 Block RAM 的 WE 输入上稳定的时间。

TRCKC_WE 时钟之后,写使能信号必须在 Block RAM 的 WE 输入上稳定的时间。

TRCCK_REGCE

可选输出寄存器使能

REGCE

CLK 之前,寄存器使能信号必须在 Block RAM 的 REGCE 输入上稳定的时间。

TRCKC_REGCE 时钟之后,寄存器使能信号必须在 Block RAM 的 REGCE 输入上稳定的时间。

时钟到输出延迟

TRCKO_DO

(锁存器模式)

时钟到输出 CLK to DO

时钟之后,输出数据在 Block RAM 的 DO 输出上稳定的时间(无输出寄存器)。

TRCKO_DO

(寄存器模式)

时钟到输出 CLK to DO

时钟之后,输出数据在 Block RAM 的 DO 输出上稳定的时间(有输出寄存器)。

注:1. 当 EN 有效时,即使 WE 无效,ADDR 输入也必须在整个建立 / 保持时间窗口期间稳定。违反这一要求可导致 Block RAM 数据损

坏。如果允许 ADDR 时序违反指定的要求,则 EN 必须无效 (禁用)。

Virtex-5 用户指南 www.xilinx.com/cn 131UG190 (v3.1) 2007 年 9 月 11 日

Block RAM 时序模型R

Block RAM 时序特性图 4-14 中的时序图所示为在先写模式下没有可选输出寄存器的单端口 Block RAM。先读和不变模式的时序与此相似。对于使用可选输出寄存器的时序,在 DO 引脚上出现一个附加的时钟延迟。当未使用可选输出流水线寄存器时,这些波形对应于锁存器模式。

在时间 0 处,Block RAM 禁用,EN (使能)为 Low。

时钟事件 1

读操作

在读操作过程中,在 ADDR 输入上地址处的存储器内容保持不变。

• 在时间事件 1 之前的时间 TRCCK_ADDR 处,地址 00 在 Block RAM 的 ADDR 输入上变为有效。

• 在时间事件 1 之前的时间 TRCCK_EN 处,使能在 Block RAM 的 EN 输入上置为 High 有效,从而为后续的 READ 操作启用存储器。

• 在时间事件 1 之后的时间 TRCKO_DO 处,地址 00 处的存储器内容在 Block RAM 的 DO 引脚上变得稳定。

• 只要 EN 置为有效,所有地址变化就必须满足指定的建立和保持窗口。异步地址变化会对存储器内容和 Block RAM 功能产生不可预见的影响。

图 4-14: Block RAM 时序图

ADDR

DI

DO

EN

SSR

WE

CLK

00

DDDD

TRCCK_ADDR

TRDCK_DI

TRCKO_DO

MEM (00)TRCCK_EN

TRCCK_WE

Disabled DisabledRead Write Read Reset

* Write Mode = "WRITE_FIRST"

** SRVAL = 0101

0F 7E 8F 20

CCCC BBBB AAAA 0000

CCCC* MEM (7E) 0101**

ug190_4_13_022207

1 2 3 54

TRCCK_SSR

132 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 4 章: Block RAMR

时钟事件 2

写操作

在写操作过程中,ADDR 输入上的地址所指定位置的存储器内容被 DI 引脚上的值取代,并且立即反映到输出锁存器上 (以 WRITE_FIRST 模式);此时写使能 (WE) 为 High。

• 在时间事件 2 之前的时间 TRCCK_ADDR 处,地址 0F 在 Block RAM 的 ADDR 输入上变为有效。

• 在时间事件 2 之前的时间 TRDCK_DI 处,数据 CCCC 在 Block RAM 的 DI 输入上变为有效。

• 在时间事件 2 之前的时间 TRCCK_WE 处,写使能在 Block RAM 后的 WE 处变为有效。

• 在时间事件 2 之后的时间 TRCKO_DO 处,数据 CCCC 在 Block RAM 的 DO 输出上变为有效。

时钟事件 4

SSR (同步设置 / 复位)操作

在 SSR 操作过程中,初始化参数值 SRVAL 加载到 Block RAM 的输出锁存器中。SSR 操作不会改变存储器的内容,并且与 ADDR 和 DI 输入无关。

• 在时间事件 4 之前的时间 TRCCK_SSR 处,同步设置 / 复位信号在 Block RAM 的 SSR 输入上变为有效 (High)。

• 在时间事件 4 之后的时间 TRCKO_DO 处,SRVAL 0101 在 Block RAM 的 DO 输出上变为有效。

时钟事件 5

禁止操作

将使能信号 EN 置为无效将禁止任何写、读或 SSR 操作。禁止操作不会改变存储器的内容或输出锁存器的值。

• 在时间事件 5 之前的时间 TRCCK_EN 处,使能信号在 Block RAM 的 EN 输入上变为无效 (Low)。

• 在时间事件 5 之后,Block RAM 的 DO 输出上的数据不变。

Virtex-5 用户指南 www.xilinx.com/cn 133UG190 (v3.1) 2007 年 9 月 11 日

Block RAM 时序模型R

Block RAM 时序模型图 4-15 所示为与 Block RAM 的实现相关的延迟通路。此示例采用 简单的片上和片外通路 (根据设计不同,这些通路可以有很大变化)。此时序模型说明如何以及在何处使用 Block RAM 时序参数。

• NET = 变化的互连延迟

• TIOPI = 焊盘到 IOB 的 I 输出的延迟

• TIOOP = IOB 的 O 输入到焊盘的延迟

• TBCCKO_O = BUFGCTRL 延迟

图 4-15: Block RAM 时序模型

Block RAM

ug190_4_14_022207

FPGA

[TIOPI + NET] + TRCCK_WENWrite Enable[TIOPI + NET] + TRCCK_ENEnable

[TIOPI + NET] + TRCCK_ADDRAddress

[TIOPI + NET] + TRDCK_DIData

[TBCCKO_O + NET]

Clock[TIOPI + NET]

BUFGCTRL

TRCKO_DO + [NET + TIOOP]Data

[TIOPI + NET] + TRCCK_SSRSynchronousSet/Reset DO

DI

ADDR

WE

ENSSR

CLK

134 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 4 章: Block RAMR

Block RAM 重定向表 4-12 所示为建议在新的 Virtex-5 设计中映射 Virtex-4 Block RAM 设计时选用的 适宜的基元。

内置 FIFO 支持许多 FPGA 设计都使用 Block RAM 实现 FIFO。在 Virtex-5 架构中,Block RAM 中的专用逻辑让用户能够轻松地实现同步或多速率 (异步)FIFO。这样就不必为计数器、比较器或状态标记的生成使用其他 CLB 逻辑,而是每个 FIFO 只使用一个 Block RAM 即可。标准和首字直通 (FWFT) 两种模式均可支持。

在 Virtex-5 架构中,FIFO 可以配置成 18 Kb 或 36 Kb 存储器。对于 18 Kb 模式,支持的配置是 4K x 4、2K x 9、1K x 18 和 512 x 36。36 Kb FIFO 的支持配置是 8K x 4、4K x 9、2K x 18、1K x 36 和 512 x 72。

Block RAM 可以配置成使用公共或独立读写时钟的先进 / 先出 (FIFO) 存储器。Block RAM 的端口 A 用作 FIFO 的读端口,而端口 B 是 FIFO 的写端口。数据在读时钟的上升沿上从 FIFO 读出,在写时钟的上升沿上写入 FIFO。如果没有外部 CLB 协助,FIFO 模式不支持独立读写端口宽度选择。

多速率 FIFO多速率 FIFO 提供了非常简单的用户接口。设计依靠自由运行的读写时钟,时钟频率可以相同也可以不同, 高可达指定的频率上限。设计甚至在两个频率完全无关时仍可避免任何歧义性、伪信号或亚稳态问题。

写操作是同步操作,每当 WREN 在 WRCLK 上升沿之前一个建立时间有效时将 DI 上提供的数据字写入 FIFO。

表 4-12: Block RAM 重定向

Virtex-4 Block RAM 18k Virtex-5 Block RAM 36k Virtex-5 Block RAM

基元 深度端口宽度

R/W基元 深度

端口宽度 R/W

基元 深度端口宽度

R/W

RAMB16真双口

1k 到 16k

1、2、4、9、18

RAMB18 1k 到 16k

1、2、4、9、18

RAMB36 2k 到 32k

1、2、4、9、18

RAMB16真双口

512 36/36 不适用 不适用

不适用 RAMB36 1k 36/36

RAMB16简单双端口

512 36/36 RAMB18简单双端口

512 36/36 RAMB36简单双端口

1k 36/36

RAMB16简单双端口

可变 使用 接近的 RAMB18 真双口

不适用

不适用 使用 接近的 RAMB36 真双口

不适用

不适用

两个 RAMB16 级联

32k 1 不适用 不适用

不适用 RAMB36 32k 1

Virtex-5 用户指南 www.xilinx.com/cn 135UG190 (v3.1) 2007 年 9 月 11 日

内置 FIFO 支持R

读操作也是同步操作,每当 RDEN 在 RDCLK 上升沿之前一个建立时间有效时将下一数据字送至 DO。

数据流控制是自动控制,用户不必关心 Block RAM 的编址顺序,尽管当特殊应用需要时还要引出 WRCOUNT 和 RDCOUNT。

但是,用户必须观察 FULL 和 EMPTY 标记,并且在 FULL 为 High 时停止写操作以及在 EMPTY 为 High 时停止读操作。如果违反这些规则,WREN 在 FULL 为 High 时有效就会激活 WRERR 标记,而 RDEN 在 EMPTY 为 High 时有效就会激活 RDERR 标记。不过,无论违反哪条规则,FIFO 内容都会保存下来,并且地址计数器会保持为有效。

为了在 FIFO 接近极限时给用户提供预警,引出可编程的 ALMOSTFULL 和 ALMOSTEMPTY 标记。可以设置这两个标记值,将其配置到 FIFO 地址段内的 (几乎)任何位置。

两种操作模式影响 FIFO 空出后的首字读取:

• 在标准模式下,写入空 FIFO 的首字会在用户激活 RDEN 后出现在 DO 上。用户必须从 FIFO 中提出数据。

• 在 FWFT 模式下,写入空 FIFO 的首字会自动出现在 DO 上,无需用户激活 RDEN。然后,下一个 RDEN 会将后续数据字转送到 DO 上。

• 标准模式和 FWFT 模式的区别仅在于 FIFO 空出后首条数据字的读取。

对于以下情形请使用 EN_SYN = FALSE 设置:

• 当时钟是异步时

• 当两个时钟的频率相同而相位不同时

• 当一个频率是另一频率的倍数时

同步 FIFOVirtex-4 设计对多速率和同步 FIFO 使用相同的 FIFO 逻辑,因此同步 FIFO 中的标记延迟可以不同。在使用 Virtex-5 的同步 FIFO 时将 EN_SYN 属性设置为 TRUE,即可消除标记有效或无效置位时的所有时钟周期延迟。

仅在多速率 FIFO (EN_SYN = FALSE) 下可支持首字直通 (FWFT) 模式。表 4-13 所示为两种模式下的 FIFO 容量。

136 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 4 章: Block RAMR

同步 FIFO 的实现

表 4-14 概述了同步 FIFO 的各种实现。图 4-16 所示为时序区别。

表 4-13: FIFO 容量

标准模式 FWFT 模式

18 Kb FIFO 36 Kb FIFO 18 Kb FIFO 36 Kb FIFO

4k + 1 条乘以 4 位 8k + 1 条乘以 4 位 4k + 2 条乘以 4 位 8k + 2 条乘以 4 位

2k + 1 条乘以 9 位 4k + 1 条乘以 9 位 2k + 2 条乘以 9 位 4k + 2 条乘以 9 位

1k + 1 条乘以 18 位 2k + 1 条乘以 18 位 1k + 2 条乘以 18 位 2k + 2 条乘以 18 位

512 + 1 条乘以 36 位 1k + 1 条乘以 36 位 512 + 2 条乘以 36 位 1k + 2 条乘以 36 位

512 + 1 条乘以 72 位 512 + 2 条乘以 72 位

表 4-14: 各种同步 FIFO 实现的比较

同步 FIFO 的实现 优点 缺点

EN_SYN = TRUE,DO_REG = 0 没有标记不确定性 时钟到输出信号较慢

EN_SYN = TRUE,DO_REG = 1 时钟到输出信号较快,没有标记不确定性

数据延迟加一。行为与具有一个附加数据输出流水线寄存器的同步 FIFO 相似

EN_SYN = FALSE,DO_REG = 1

RDCLK = WRCLK

时钟到输出信号较快。与 Virtex-4 FIFO 相似

下降沿有标记不确定性。上升沿可保证 FULL 和 EMPTY 标记

图 4-16: 同步 FIFO 数据时序图

ug190_c4_x1_071007

rdclk

rden

DOEN_SYN = TRUE

DO_REG = 0

DOEN_SYN = TRUE

DO_REG = 1

DOEN_SYN = FALSE

DO_REG = 1

TCKO = 1.9ns

Virtex-5 用户指南 www.xilinx.com/cn 137UG190 (v3.1) 2007 年 9 月 11 日

FIFO 架构:顶层视图R

FIFO 架构:顶层视图图 4-17 所示为 Virtex-5 FIFO 架构的顶层视图。读指针、写指针和状态标记逻辑仅为 FIFO 专用。

FIFO 基元图 4-18 所示为 FIFO36 基元。

图 4-17: Block RAM 中 FIFO 的顶层视图

BlockRAM

WRCOUNT RDCOUNT

WRCLK

WREN

RDCLK

DO/DOPDIN/DINP

RDEN

RST

Status FlagLogic

FU

LLE

MP

TY

ALM

OS

TF

ULL

ALM

OS

TE

MP

TY

RD

ER

RW

RE

RR

waddr raddr

oe

mem

_ren

mem

_wen

Write Pointer

ReadPointer

ug190_4_27_061906

图 4-18: FIFO36 基元

DOP[3:0]

DI[31:0]

DIP[3:0]

RDEN

RST

RDCLK

WRENWRCLK

DO[31:0]

RDCOUNT[12:0]WRCOUNT[12:0]

EMPTYFULL

ALMOSTEMPTY

ALMOSTFULL

WRERR

RDERR

FIFO36

ug190_4_15_021107

138 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 4 章: Block RAMR

图 4-19 所示为 FIFO18 基元。

FIFO 端口描述表 4-15 列出了 FIFO I/O 端口的名称和描述。

图 4-19: FIFO18 基元

DOP[1:0]

DI[15:0]

DIP[1:0]

RDEN

RST

RDCLK

WRENWRCLK

DO[15:0]

RDCOUNT[11:0]WRCOUNT[11:0]

EMPTYFULL

ALMOSTEMPTY

ALMOSTFULL

WRERR

RDERR

FIFO18

ug190_4_15_040606

表 4-15: FIFO I/O 端口的名称和描述

端口名称 方向 描述

DI 输入 数据输入。

DIP 输入 奇偶校验位输入。

WREN 输入 写使能。当 WREN = 1 时,将数据写入存储器。当 WREN = 0 时,禁止写操作。

WRCLK 输入 写域操作的时钟。

RDEN 输入 读使能。当 RDEN = 1 时,数据读出到输出寄存器。当 RDEN = 0 时,禁止读操作。

RDCLK 输入 读域操作的时钟。

RESET 输入 所有 FIFO 功能、标记和指针的异步复位。RESET 必须置为在三个时钟周期内有效。

DO 输出 数据输出,与 RDCLK 同步。

DOP 输出 奇偶校验位输出,与 RDCLK 同步。

FULL 输出 FIFO 存储器的所有字条均已填满。不再接受写操作。与 WRCLK 同步。

ALMOSTFULL 输出 几乎 FIFO 存储器的所有字条均已填满。与 WRCLK 同步。此标记的偏移可由用户配置。有关标记无效置位的时钟延迟,请见表 4-16。

EMPTY 输出 FIFO 空出。不再接受读操作。与 RDCLK 同步。

ALMOSTEMPTY 输出 几乎 FIFO 存储器的所有有效字条均已读取。与 RDCLK 同步。此标记的偏移可由用户配置。有关标记无效置位的时钟延迟,请见表 4-16。

Virtex-5 用户指南 www.xilinx.com/cn 139UG190 (v3.1) 2007 年 9 月 11 日

FIFO 操作R

FIFO 操作

复位复位对于多速率和同步 FIFO 都是异步信号。必须将复位置为在三个周期内有效才能在上电后复位所有读写地址指针并初始化标记。复位不清空存储器,也不清空输出寄存器。当复位置为 High 有效时,EMPTY 和 ALMOST_EMPTY 将设置为 1,FULL 和 ALMOST_FULL 将设置为 0。复位信号必须至少在三个读写时钟周期内为 High,以确保将所有内部状态复位到正确值。在 RESET 期间,RDEN 和 WREN 必须保持为 Low。

操作模式FIFO 功能有两种操作模式,其区别仅在于紧接首字写入原已空出的 FIFO 之后的输出行为。

标准模式

首字写入空 FIFO 之后,Empty 标记与 RDCLK 同步置为无效。Empty 置为 Low 无效以及 RDEN 置为有效之后,首字随着 RDCLK 的上升沿出现在 DO 上。

首字直通 (FWFT) 模式

首字写入空 FIFO 之后,该字在 RDEN 置为有效之前自动出现在 DO 上。后续的读操作需要 Empty 为 Low 和 RDEN 为 High。图 4-20 所示为标准模式与 FWFT 模式之间的区别。

RDCOUNT 输出 FIFO 数据的读指针。与 RDCLK 同步。如果已经达到读指针的 大值,则对该值进行圆整。

WRCOUNT 输出 FIFO 数据的写指针。与 WRCLK 同步。如果已经达到写指针的 大值,则对该值进行圆整。

WRERR 输出 当 FIFO 已满时,任何其他写操作都会生成错误标记。与 WRCLK 同步。

RDERR 输出 当 FIFO 已空时,任何其他读操作都会生成错误标记。与 RDCLK 同步。

表 4-15: FIFO I/O 端口的名称和描述 ( 续表 )

端口名称 方向 描述

140 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 4 章: Block RAMR

状态标记表 4-16 所示为多速率 FIFO 的各标记有效或无效置位所需的时钟周期数。同步 FIFO 在标记有效或无效置位时没有时钟周期延迟。

Empty 标记

Empty 标记与 RDCLK 同步,在 FIFO 中的末字条读取后置为有效。当 FIFO 队列中不再有有效字条时,读指针会冻结。在新数据写入 FIFO 之后的三个 (标准模式)或四个(FWFT 模式)读时钟后,Empty 标记置为无效。

Empty 标记在读时钟域中使用。EMPTY 的上升沿永远与 RDCLK 同步。Empty 状态只能由 WRCLK 终止,通常与 RDCLK 异步。因此,必须将 EMPTY 的下降沿人工移动到 RDCLK 时间域。因为这两个时钟具有未知的相位关系,所以需要用几个级联的触发器来保证这种移动不会引起伪信号或亚稳态问题。这样即可在首次写入原已空出的 FIFO 之后将 EMPTY 的下降沿延迟若干个 RDCLK 周期。此延迟在任何情况下都可保证正常操作,并且在 FIFO 空出后不会导致显著的性能损失。

图 4-20: 读操作周期时序 (标准模式和 FWFT 模式)

RDCLK

RDEN

EMPTY

DO (Standard)

DO (FWFT)

Previous Data

W1 W2 W3

W1 W2 W3

ug190_4_17_032506

表 4-16: 多速率 FIFO 标记的有效和无效置位延迟

状态标记

时钟周期延迟 (1)

有效置位 无效置位

标准 FWFT 标准 FWFT

EMPTY 0 0 3 4

FULL 0 0 3 3

ALMOST EMPTY(2) 1 1 3 3

ALMOST FULL(2) 1 1 3 3

READ ERROR 0 0 0 0

WRITE ERROR 0 0 0 0

注:1. 延迟是对 RDCLK 和 WRCLK 而言。2. 根据读写时钟沿之间的偏移,Almost Empty 和 Almost Full 标记的无效置位可以晚一个周期。

Virtex-5 用户指南 www.xilinx.com/cn 141UG190 (v3.1) 2007 年 9 月 11 日

FIFO 操作R

Almost Empty 标记

当 FIFO 包含的字条数等于或小于 ALMOST_EMPTY_OFFSET 值指定的字条数时,设置 Almost Empty 标记。Almost Empty 标记警告用户停止读操作。当 FIFO 中的字条数大于 ALMOST_EMPTY_OFFSET 值加一时,此标记置为无效。有效和无效置位与 RDCLK 同步。表 4-16 所示为标记延迟。

Read Error 标记

一旦 Empty 标记置为有效,任何进一步读尝试都不会使读地址指针移动,但会触发 Read Error 标记。当读使能或 Empty 置为 Low 无效时,Read Error 标记置为无效。Read Error 标记与 RDCLK 同步。

Full 标记

Full 标记与 WRCLK 同步,当 FIFO 队列中不再有可用字条时置为有效。当 FIFO 已满时,写指针冻结。Virtex-5 的 Full 标记在两次后续读操作之后的三个写时钟周期后置为无效。在 Virtex-4 设计中,Full 标记在 后一次写操作之后的一个写时钟周期后置为有效,而在首次读操作之后的三个写时钟周期后置为无效。

Write Error 标记

一旦 Full 标记置为有效,任何进一步写尝试都不会使写地址指针移动,但会触发 Write Error 标记。当读使能或 Full 置为 Low 无效时,Write Error 标记置为无效。此信号与 WRCLK 同步。

Almost Full 标记

当 FIFO 包含的可用空位数等于或小于 ALMOST_FULL_OFFSET 值指定的可用空位数时,设置 Almost Full 标记。Almost Full 标记警告用户停止写操作。当 FIFO 中的空位数大于 ALMOST_FULL_OFFSET 值加一时,此标记置为无效。有效和无效置位与 WRCLK 同步。表 4-16 所示为标记延迟。

142 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 4 章: Block RAMR

FIFO 的属性表 4-17 列出了 FIFO18 和 FIFO36 的属性。多速率 FIFO 的尺寸可通过设置 DATA_WIDTH 属性来配置。“FIFO 的 VHDL 和 Verilog 模板”部分提供了设置属性的示例。

FIFO Almost Full/Empty 标记偏移范围表 4-19 列出了 Almost Empty 和 Almost Full 的偏移范围。

表 4-17: FIFO18 和 FIFO36 的属性

属性名称 类型 值 默认 说明

ALMOST_FULL_OFFSET 13 位十六进制

请见表 4-19 设置确定 FULL 与 ALMOSTFULL 状态之间的区别。必须用十六进制记数法设置。

ALMOST_EMPTY_OFFSET 13 位十六进制

请见表 4-19 设置确定 EMPTY 与 ALMOSTEMPTY 状态之间的区别。必须用十六进制记数法设置。

FIRST_WORD_FALL_THROUGH 布尔值 FALSE、TRUE

FALSE 如果是 TRUE,则写入空 FIFO 的第一个字出现在 FIFO 的输出上,无需 RDEN 置为有效。

DO_REG 1 位二进制

0、1 1 对于多速率 (异步)FIFO,必须设置为 1。

对于同步 FIFO,DO_REG 必须设置为 0 才能使标记和数据遵循标准的同步 FIFO 操作。当 DO_REG 设置为 1 时,实际上是将一个流水线寄存器添加到同步 FIFO 的输出。数据因此会有一个时钟周期的延迟。但是时钟对输出的时序得到了改善。

DATA_WIDTH 整数 4、9、18、36、72

4

LOC(1, 2) 字符串 有效的 FIFO18 或 FIFO36 位置

设置 FIFO18 或 FIFO36 的位置。

EN_SYN 布尔值 FALSE、TRUE

FALSE 当设置为 TRUE 时,将 WRCLK 和 RDCLK 捆绑到一起。

当设置为 TRUE 时,FWFT 必须是 FALSE。

当设置为 FALSE 时,DO_REG 必须是 1。

注:1. 如果将 FIFO18 约束在 FIFO18_X#Y#,则不可将 RAMB18 约束在 RAMB18_X#Y#,因为这样将使用同一位置。2. 如果将 FIFO18 约束在 FIFO18_X#Y#,使其对应 RAMB18 对的下 RAMB18_X#Y#,则可以将 RAMB18 约束在该对的上

RAMB18_X#Y#。

Virtex-5 用户指南 www.xilinx.com/cn 143UG190 (v3.1) 2007 年 9 月 11 日

FIFO 的属性R

Almost Full 和 Almost Empty 偏移通常设计为小于 10 的较小数值,用来提供 FIFO 将达到极限的警告。因为任何 FIFO 的全容量一般都无关紧要,所以多数应用不仅将 ALMOST_FULL 标记用作警告,还将其用作停止写操作的信号。

同样,ALMOST_EMPTY 也可用来停止读操作。不过,这样会使 FIFO 中剩下的 后若干字条不能读取。用户可以忽略 Almost Empty 信号而继续读,直到 EMPTY 置为有效。

Almost Full 和 Almost Empty 偏移还可以在无间断的块传输应用中用来表示有完整的数据块可以写入或读出。

在设计工具中设置偏移范围时,请使用十六进制记数法。

表 4-18: FIFO 数据深度

数据宽度 Block RAM存储器

FIFO 容量

FIFO18 FIFO36 标准 FWFT

x4 8192 8193 8194

x4 x9 4096 4097 4098

x9 x18 2048 2049 2050

x18 x36 1024 1025 1026

x36 x72 512 513 514

注:1. 任何设计的 ALMOST_EMPTY_OFFSET 和 ALMOST_FULL_OFFSET 都必须小于总 FIFO 深度。

表 4-19: FIFO Almost Full/Almost Empty 标记偏移范围

数据宽度ALMOST_EMPTY_OFFSET

ALMOST_FULL_OFFSET标准 FWFT

FIFO18 FIFO36 小 大 小 大 小 大

多速率 (异步) – EN_SYN=FALSE

x4 5 8187 6 8188 4 8187

x4 x9 5 4091 6 4092 4 4091

x9 x18 5 2043 6 2044 4 2043

x18 x36 5 1019 6 1020 4 1019

x36 x72 5 507 6 508 4 507

同步模式 – EN_SYN=TRUE

x4 1 8190 1 8190

x4 x9 1 4094 1 4094

x9 x18 1 2046 1 2046

x18 x36 1 1022 1 1022

x36 x72 1 510 1 510

144 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 4 章: Block RAMR

FIFO 的 VHDL 和 Verilog 模板《库指南》中提供了 VHDL 和 Verilog 模板。

FIFO 时序模型和参数表 4-20 所示为 FIFO 参数。

表 4-20: FIFO 时序参数

参数 功能控制信号

描述

相对于时钟 (CLK) 的建立和保持时间

TRXCK = 建立时间 (时钟沿之前)TRCKX = 保持时间 (时钟沿之后)

TRDCK_DI/TRCKD_DI

(4)数据输入 DI WRCLK 之前 / 之后,D1 必须稳定的时间。

TRCCK_RDEN/TRCKC_RDEN

(5)读使能 RDEN RDCLK 之前 / 之后,RDEN 必须稳定的时间。

TRCCK_WREN/TRCKC_WREN

(5)写使能 WREN WRCLK 之前 / 之后,WREN 必须稳定的时间。

时钟到输出延迟

TRCKO_DO(1) 时钟到数据输出 DO RDCLK 之后,输出数据在 FIFO 的 DO 输出上稳定

的时间。DO_REG = 0 时的同步 FIFO 与在多速率模式下时不同。

TRCKO_AEMPTY(2) 时钟到近空输出 AEMPTY RDCLK 之后,Almost Empty 信号在 FIFO 的

ALMOSTEMPTY 输出上稳定的时间。

TRCKO_AFULL(2) 时钟到近满输出 AFULL WRCLK 之后,Almost Full 信号在 FIFO 的

ALMOSTFULL 输出上稳定的时间。

TRCKO_EMPTY(2) 时钟到空输出 EMPTY RDCLK 之后,Empty 信号在 FIFO 的 EMPTY 输出

上稳定的时间。

TRCKO_FULL(2) 时钟到满输出 FULL WRCLK 之后,Full 信号在 FIFO 的 FULL 输出上稳

定的时间。

TRCKO_RDERR(2) 时钟到读错误输出 RDERR RDCLK 之后,Read Error 信号在 FIFO 的 RDERR

输出上稳定的时间。

TRCKO_WRERR(2) 时钟到写错误输出 WRERR WRCLK 之后,Write Error 信号在 FIFO 的 WRERR

输出上稳定的时间。

TRCKO_RDCOUNT(3) 时钟到读指针输出 RDCOUNT RDCLK 之后,Read 指针信号在 FIFO 的

RDCOUNT 输出上稳定的时间。

TRCKO_WRCOUNT(3) 时钟到写指针输出 WRCOUNT WRCLK 之后,Write 指针信号在 FIFO 的

WRCOUNT 输出上稳定的时间。

Virtex-5 用户指南 www.xilinx.com/cn 145UG190 (v3.1) 2007 年 9 月 11 日

FIFO 时序模型和参数R

FIFO 时序特性本部分讲述 FIFO 中的各种时序参数。还有关于 FIFO 功能的其他数据。时序图说明以下六种情形的行为。

• “情形 1:写入空 FIFO”

• “情形 2:写入满或近满 FIFO”

• “情形 3:从满 FIFO 中读取”

• “情形 4:从空或近空 FIFO 中读取”

• “情形 5:复位所有标记”

• “情形 6:多速率 FIFO 的同时读取”

复位到输出

TRCO_AEMPTY 复位到近空输出 AEMPTY 复位之后,Almost Empty 信号在 FIFO 的 ALMOSTEMPTY 输出上稳定的时间。

TRCO_AFULL 复位到近满输出 AFULL 复位之后,Almost FULL 信号在 FIFO 的 ALMOSTFULL 输出上稳定的时间。

TRCO_EMPTY 复位到空输出 EMPTY 复位之后,Empty 信号在 FIFO 的 EMPTY 输出上稳定的时间。

TRCO_FULL 复位到满输出 FULL 复位之后,Full 信号在 FIFO 的 FULL 输出上稳定的时间。

TRCO_RDERR 复位到读错误输出 RDERR 复位之后,Read Error 信号在 FIFO 的 RDERR 输出上稳定的时间。

TRCO_WRERR 复位到写错误输出 WRERR 复位之后,Write Error 信号在 FIFO 的 WRERR 输出上稳定的时间。

TRCO_RDCOUNT 复位到读指针输出 RDCOUNT 复位之后,Read 指针信号在 FIFO 的 RDCOUNT 输出上稳定的时间。

TRCO_WRCOUNT 复位到写指针输出 WRCOUNT 复位之后,Write 指针信号在 FIFO 的 WRCOUNT 输出上稳定的时间。

注:1. TRCKO_DO 包括奇偶校验输出 (TRCKO_DOP)。2. 在 《Virtex-5 数据手册》中,TRCKO_AEMPTY、TRCKO_AFULL、TRCKO_EMPTY、TRCKO_FULL、TRCKO_RDERR 和 TRCKO_WRERR 组合到

了 TRCKO_FLAGS 中。3. 在 《Virtex-5 数据手册》中,TRCKO_RDCOUNT 和 TRCKO_WRCOUNT 组合到了 TRCKO_POINTERS 中。4. TRCDCK_DI 包括奇偶校验输入 (TRCDCK_DIP)。5. 在 《Virtex-5 数据手册》中,WRITE 使能和 READ 使能组合到了 TRCCK_EN 中。

表 4-20: FIFO 时序参数 ( 续表 )

参数 功能控制信号

描述

146 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 4 章: Block RAMR

情形 1:写入空 FIFO

在图 4-21 中执行的操作之前,FIFO 全空。

时钟事件 1 和时钟事件 3:写操作和 EMPTY 信号的无效置位

在对空 FIFO 的写操作过程中,第一个地址的 FIFO 内容被 DI 引脚上的数据值取代。三个读时钟周期后 (对于 FWFT 模式是四个读时钟周期后),EMPTY 引脚置为无效,此时 FIFO 不再是空的。由于内部读操作将数据预加载到输出寄存器,RDCOUNT 也加一。

对于图 4-21 中的示例,时序图反映的是 FWFT 模式。时钟事件 1 是对写时钟而言,而时钟事件 3 是对读时钟而言。时钟事件 3 在时钟事件 1 之后四个读时钟周期出现。

• 在时间事件 1 (WRCLK) 之前的时间 TFDCK_DI 处,数据 00 在 FIFO 的 DI 输入上变为有效。

• 在时间事件 1 (WRCLK) 之前的时间 TFCCK_WREN 处,写使能在 FIFO 的 WREN 输入上变为有效。

• 在时间事件 3 (RDCLK) 之后的时间 TFCKO_DO 处,数据 00 在 FIFO 的 DO 输出引脚上变为有效。在标准模式下,数据 00 不会出现在 FIFO 的 DO 输出引脚上。

• 在时钟事件 3 (RDCLK) 之后的时间 TFCKO_EMPTY 处,EMPTY 置为无效。在标准模式下,EMPTY 置为无效比时钟事件 3 早一个读时钟。

如果 WRCLK 的上升沿接近 RDCLK 的上升沿,则 EMPTY 置为无效可能晚一个 RDCLK 周期。

图 4-21: 写入 FWFT 模式的空 FIFO

ug190_4_18_032506

00

1 42 3

01 02 03 04

00

05 06

WRCLK

WREN

DI

RDCLK

RDEN

DO

EMPTY

AEMPTY

TFCCK_WREN

TFDCK_DI TFDCK_DI

TFCKO_DO

TFCKO_EMPTY

TFCKO_AEMPTY

Virtex-5 用户指南 www.xilinx.com/cn 147UG190 (v3.1) 2007 年 9 月 11 日

FIFO 时序模型和参数R

时钟事件 2 和时钟事件 4:写操作和 Almost EMPTY 信号的无效置位

第四组数据写入 FIFO 后三个读时钟周期,Almost EMPTY 引脚置为无效,表示 FIFO 未处于近 EMPTY 状态。

对于图 4-21 中的示例,时序图反映的是 FWFT 模式。时钟事件 2 是对写时钟而言,而时钟事件 4 是对读时钟而言。时钟事件 4 在时钟事件 2 之后三个读时钟周期出现。

• 在时间事件 2 (WRCLK) 之前的时间 TFDCK_DI 处,数据 03 在 FIFO 的 DI 输入上变为有效。

• 写使能在 FIFO 的 WREN 输入上保持为有效。

• 在时钟事件 4 处,FIFO 的 DO 输出引脚保持在 00,因为未执行任何读操作。在标准模式的情况下,数据 00 永远不会出现在 FIFO 的 DO 输出引脚上。

• 在时钟事件 4 (RDCLK) 之后的时间 TFCKO_AEMPTY 处,Almost Empty 在 AEMPTY 引脚上置为无效。在标准模式的情况下,AEMPTY 置为无效的方式与在 FWFT 模式下相同。

如果 WRCLK 的上升沿接近 RDCLK 的上升沿,则 AEMPTY 置为无效可能晚一个 RDCLK 周期。

情形 2:写入满或近满 FIFO

在图 4-22 中执行的操作之前,FIFO 接近全满。在此示例中,时序图反映的是标准和 FWFT 两种模式。

图 4-22: 写入满 / 近满 FIFO

ug190_4_18_012605

00 01 02 03 04 05 06

WRCLK

WREN

DI

RDCLK

RDEN

FULL

AFULL

WRERR

1 42 3

TFDCK_DI TFDCK_DITFDCK_DI

TFCKO_AFULL

TFCKO_WERR

TFCKO_FULL

TFCCK_WREN

TFCKO_WERR

TFCCK_WREN

148 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 4 章: Block RAMR

时钟事件 1:写操作和 Almost FULL 信号的有效置位

在对近满 FIFO 的写操作过程中,Almost FULL 信号置为有效。

• 在时间事件 1 (WRCLK) 之前的时间 TFDCK_DI 处,数据 00 在 FIFO 的 DI 输入上变为有效。

• 在时间事件 1 (WRCLK) 之前的时间 TFCCK_WREN 处,写使能在 FIFO 的 WREN 输入上变为有效。

• 在时间事件 1 (WRCLK) 之后一个时钟周期的时间 TFCKO_AFULL 处,Almost Full 在 FIFO 的 AFULL 输出引脚上置为有效。

时钟事件 2:写操作和 FULL 信号的有效置位

当 FIFO 已满时,FULL 信号引脚置为有效。

• 在时间事件 2 (WRCLK) 之前的时间 TFDCK_DI 处,数据 04 在 FIFO 的 DI 输入上变为有效。

• 写使能在 FIFO 的 WREN 输入上保持为有效。

• 在时间事件 2 (WRCLK) 之后的时间 TFCKO_FULL 处,Full 在 FIFO 的 FULL 输出引脚上置为有效。

如果 FIFO 已满,并且执行了一次读操作后接一次写操作,则 FULL 信号保持为有效。

时钟事件 3:写操作和 Write Error 信号的有效置位

当进入 FIFO 的数据由于 FIFO 处于 Full 状态而未写入时,Write Error 信号引脚置为有效。

• 在时间事件 3 (WRCLK) 之前的时间 TFDCK_DI 处,数据 05 在 FIFO 的 DI 输入上变为有效。

• 写使能在 FIFO 的 WREN 输入上保持为有效。

• 在时间事件 3 (WRCLK) 之后的时间 TFCKO_WRERR 处,Write Error 在 FIFO 的 WRERR 输出引脚上置为有效。数据 05 不写入 FIFO。

时钟事件 4:写操作和 Write Error 信号的无效置位

当用户停止尝试向满 FIFO 写入时,Write Error 信号引脚置为无效。

• 在时间事件 4 (WRCLK) 之前的时间 TFCCK_WREN 处,写使能在 FIFO 的 WREN 输入上置为无效。

• 在时间事件 4 (WRCLK) 之后的时间 TFCKO_WRERR 处,Write Error 在 FIFO 的 WRERR 输出引脚上置为无效。

Write Error 信号在每个写时钟正沿上置为有效 / 无效。只要写使能和 Full 信号都为 True,Write Error 就会保持为有效。

Virtex-5 用户指南 www.xilinx.com/cn 149UG190 (v3.1) 2007 年 9 月 11 日

FIFO 时序模型和参数R

情形 3:从满 FIFO 中读取

在图 4-23 中执行的操作之前,FIFO 全满。

时钟事件 1 和时钟事件 2:读操作和 Full 信号的无效置位

在对满 FIFO 的读操作过程中,第一个地址的 FIFO 内容在 FIFO 的 DO 输出引脚上置为有效。两次 RDEN 操作确保 FIFO 不再满,并且在三个 WRCLK 周期后 FULL 引脚置为无效。

图 4-23 中的示例反映标准和 FWFT 两种模式。时钟事件 1 和 2 是对读时钟而言。时钟事件 4 在时钟事件 2 之后三个写时钟周期出现。

• 在时间事件 1 (RDCLK) 之前的时间 TFCCK_RDEN 处,读使能在 FIFO 的 RDEN 输入上变为有效。

• 在时间事件 1 (RDCLK) 之后的时间 TFCKO_DO 处,数据 00 在 FIFO 的 DO 输出上变为有效。

• 在时钟事件 4 (WRCLK) 之后的时间 TFCKO_FULL 处,FULL 置为无效。

如果 RDCLK 的上升沿接近 WRCLK 的上升沿,则 FULL 置为无效可能晚一个 WRCLK 周期。

时钟事件 3 和时钟事件 5:读操作和 Almost FULL 信号的无效置位

从 FIFO 读取第四组数据后三个读时钟周期,Almost FULL 引脚置为无效,表示 FIFO 未处于近 FULL 状态。

图 4-23 中的示例反映标准和 FWFT 两种模式。时钟事件 3 是对读时钟而言,而时钟事件 5 是对写时钟而言。时钟事件 5 在时钟事件 3 之后三个写时钟周期出现。

• 读使能在 FIFO 的 RDEN 输入上保持为有效。

• 在时钟事件 5 (RDCLK) 之后的时间 TFCKO_AFULL 处,Almost FULL 在 AFULL 引脚上置为无效。

读时钟上沿与写时钟上沿之间有一个保证 AFULL 置为无效的 短时间。如果未满足这一短时间,则 AFULL 的无效置位会多占用一个写时钟周期。

图 4-23: 从满 FIFO 中读取

ug190_4_19_040606

1 542

020100 03 04 05 06

3

WRCLK

WREN

RDCLK

RDEN

DO

FULL

AFULL

TFCCK_RDEN

TFCKO_DO

TFCKO_AFULLTFCKO_FULL

150 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 4 章: Block RAMR

情形 4:从空或近空 FIFO 中读取

在图 4-24 中执行的操作之前,FIFO 接近全空。在此示例中,时序图反映的是标准模式。对于 FWFT 模式,DO 上的数据出现早一个读时钟周期。

时钟事件 1:读操作和 Almost EMPTY 信号的有效置位

在对近空 FIFO 的读操作过程中,Almost EMPTY 信号置为有效。

• 在时间事件 1 (RDCLK) 之前的时间 TFCCK_RDEN 处,读使能在 FIFO 的 RDEN 输入上变为有效。

• 在时间事件 1 (RDCLK) 之后的时间 TFCKO_DO 处,数据 00 在 FIFO 的 DO 输出上变为有效。

• 在时间事件 1 (RDCLK) 之后一个时钟周期的时间 TFCKO_AEMPTY 处,Almost EMPTY 在 FIFO 的 AEMPTY 输出引脚上置为有效。

时钟事件 2:读操作和 EMPTY 信号的有效置位

当 FIFO 已空时,EMPTY 信号引脚置为有效。

• 读使能在 FIFO 的 RDEN 输入上保持为有效。

• 在时间事件 2 (RDCLK) 之后的时间 TFCKO_DO 处,数据 04 ( 后一组数据)在 FIFO 的 DO 输出上变为有效。

• 在时间事件 2 (RDCLK) 之后的时间 TFCKO_EMPTY 处,Empty 在 FIFO 的 EMPTY 输出引脚上置为有效。

如果 FIFO 已空,并且执行了一次写操作后接一次读操作,则 EMPTY 信号保持为有效。

图 4-24: 从空 / 近空 FIFO 中读取 (标准模式)

ug190_4_21_032506

1 42

020100 03 04

3

WRCLK

WREN

RDCLK

RDEN

DO

EMPTY

AEMPTY

RDERR

TFCCK_RDEN

TFCKO_AEMPTY

TFCKO_DO TFCKO_DO

TFCKO_EMPTY

TFCCK_RDEN

TFCKO_RDERR

TFCKO_RDERR

Virtex-5 用户指南 www.xilinx.com/cn 151UG190 (v3.1) 2007 年 9 月 11 日

FIFO 时序模型和参数R

时钟事件 3:读操作和 Read Error 信号的有效置位

当由于 FIFO 处于 Empty 状态而无数据可读时,Read Error 信号引脚置为有效。

• 读使能在 FIFO 的 RDEN 输入上保持为有效。

• 在时间事件 3 (RDCLK) 之后的时间 TFCKO_RDERR 处,Read Error 在 FIFO 的 RDERR 输出引脚上置为有效。

• 数据 04 在 FIFO 的 DO 输出上保持不变。

时钟事件 4:读操作和 Read Error 信号的无效置位

当用户停止尝试从空 FIFO 读出时,Read Error 信号引脚置为无效。

• 在时间事件 4 (RDCLK) 之前的时间 TFCCK_RDEN 处,读使能在 FIFO 的 RDEN 输入上置为无效。

• 在时间事件 4 (RDCLK) 之后的时间 TFCKO_RDERR 处,Read Error 在 FIFO 的 RDERR 输出引脚上置为无效。

Read Error 信号在每个读时钟正沿上置为有效 / 无效。只要读使能和 Empty 信号都为 True,Read Error 就会保持为有效。

情形 5:复位所有标记

当复位信号置为有效时,所有标记都复位。

• 在复位 (RST) 之后的时间 TFCO_EMPTY 处,Empty 在 FIFO 的 EMPTY 输出引脚上置为有效。

• 在复位 (RST) 之后的时间 TFCO_AEMPTY 处,Almost Empty 在 FIFO 的 AEMPTY 输出引脚上置为有效。

• 在复位 (RST) 之后的时间 TFCO_FULL 处,Full 在 FIFO 的 FULL 输出引脚上置为无效。

• 在复位 (RST) 之后的时间 TFCO_AFULL 处,Almost Full 在 FIFO 的 AFULL 输出引脚上置为无效。

图 4-25: 复位所有标记

ug190_4_22_032506

WRCLK

RST

RDCLK

EMPTY

AEMPTY

FULL

AFULL

TFCO_EMPTY

TFCO_AEMPTY

TFCO_FULL

TFCO_AFULL

152 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 4 章: Block RAMR

复位是用来复位所有标记的异步信号。请保持复位信号在三个读写时钟周期内为 High,以确保将所有内部状态和标记复位到正确值。

情形 6:多速率 FIFO 的同时读取

当 FIFO 处在欲将状态标记置为有效的状态时,异步 FIFO 的同时读写操作是非确定性操作。FIFO 逻辑可解决这种情况 (无论是否将标记置为有效),而软件仿真模型不能反映这种行为,所以会出现不匹配。当 RDCLK 和 WRCLK 共用一个时钟时,请在同步模式 (EN_SYN=TRUE) 下使用 FIFO。

FIFO 应用可以用以下方法创建大于一个 Virtex-5 FIFO 模块的 FIFO:

• 用级联两个或更多 FIFO 的方法形成一个较深的 FIFO。

• 用并联两个或更多 FIFO 的方法构建一个较宽的 FIFO。

级联 FIFO 以增加深度图 4-26 所示为通过级联 N 个 FIFO36 来增加深度的方法。该应用将前 N–1 个 FIFO 设置为 FWFT 模式,并使用外部资源将它们连接到一起。此应用的数据延迟是各 FIFO 延迟之和。

高频率受反馈通路限制。NOR 门是用 CLB 逻辑实现。

• N 可以是 2 或更大的数字;如果 N 是 2,则不需要中间 FIFO。

• 如果 WRCLK 快于 RDCLK,则 INTCLK = WRCLK。

• 如果 WRCLK 等于或慢于 RDCLK,则 INTCLK = RDCLK。

• ALMOST_EMPTY 阈值是在第 N 个 FIFO 中设置; ALMOST_FULL 阈值是在第 1 个 FIFO 中设置。

图 4-26: 示例:按深度级联多个 FIFO

ug190_4_23_090407

DO<3:0>

ALMOSTEMPTY

EMPTY

ALMOSTEMPTY

EMPTY

ALMOSTFULL

FULLRDCLKWRCLK

DI<3:0> DO<3:0>

RDEN

WREN

DI<3:0>

RDENRDCLK

WREN

WRCLK

RDCLKWRCLK

DI<3:0> DO<3:0>

FULLRDEN

WREN

INTCLK

N x 8K x 4 FIFO

EMPTY

FIFO 1

FWFTMode

RDCLKWRCLK

DI<3:0> DO<3:0>

RDEN

WREN EMPTY

FULL

FIFO 2 ... (N–1)

FWFTMode

FIFO N

ALMOSTFULL

FULL

Virtex-5 用户指南 www.xilinx.com/cn 153UG190 (v3.1) 2007 年 9 月 11 日

内置纠错R

并联 FIFO 以增加宽度如图 4-27 所示,可以连接 Virtex-5 FIFO36 以增加设计的宽度。CLB 逻辑用来实现 AND/OR 门。所有 FIFO AFULL 信号都必须用 OR 门连接到一起,以建立 AFULL 输出信号;所有 FIFO EMPTY 信号都必须用 OR 门连接到一起,以建立 EMPTY 输出信号。 高频率受逻辑门反馈通路限制。

内置纠错每个简单双端口 Block RAM 可以配置成一个带内置汉明码纠错的 512 x 64 RAM,纠错码占用 72 位宽的 RAM 中的八个附加位。操作对用户透明。

每次写操作过程生成八个保护位 (ECCPARITY),与 64 位数据一起存到存储器中。这些 ECCPARITY 位在每次读操作过程中用来纠正任意单位元错误或检测 (但不纠正)任意双位元错误。ECCPARITY 位在 WRCLK 的每个上升沿写入存储器并输出到 FPGA 结构。在 ECCPARITY 输出位上不使用可选输出寄存器。

在每次读操作过程中,72 位数据 (64 个数据位加 8 个奇偶校验位)从存储器读出并馈入 ECC 解码器。ECC 解码器生成两个状态输出 (SBITERR 和 DBITERR),用来指示三种可能的读操作结果:无错误、已纠正单位元错误、检测到双位元错误。在标准 ECC 模式下,读操作不纠正存储器阵列中的错误,仅仅将已经纠正的数据送到 DO。为了改善 FMAX,可以将由 DO_REG 属性控制的可选寄存器用于数据输出 (DO)、SBITERR 和 DBITERR。

这种 ECC 配置方案可以用 36K Block RAM 简单双端口基元 (RAMB36SDP) 或 36K FIFO 基元 (FIFO36_72) 实现。针对 Virtex-5 设计映射的 Virtex-4 ECC 18K Block RAM 占用整个 RAMB36 区。FIFO36_72 仅支持标准 ECC 模式。

图 4-27: 示例:并联 FIFO 以增加宽度

RDCLK

WRCLK

DIN<71:0>

RDEN

WREN

RDCLK

WRCLK

DIN<71:0>DOUT<71:0>

EMPTYRDEN

WREN

AFULL

DOUT<71:0>

EMPTY

AFULL

DIN<71:0>

DIN<143:72>

DOUT<71:0>

DOUT<143:72>

RDEN

WREN

WRCLK

RDCLK

512 x 144 FIFO

FIFO #1

FIFO #2

AFULL

EMPTY

ug190_4_24_012706

154 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 4 章: Block RAMR

ECC 模式概述在标准 ECC 模式 (EN_ECC_READ = TRUE 和 EN_ECC_WRITE = TRUE)下,编码器和解码器二者都启用。在写过程中,64 位数据和 ECC 生成的 8 位奇偶校验码存储在阵列中,忽略外部奇偶校验位。在读过程中,读出 72 位解码数据和奇偶校验码。

在 RAMB36SDP 中,可以分别访问编码器和解码器以作外部之用。要单独使用编码器,请通过 DI 端口输入数据,并在 ECCPARITY 输出端口取样。要单独使用解码器,请禁用编码器,将数据写入 Block RAM,并从 Block RAM 读取经过纠错的数据和状态位。请见“Block RAM (RAMB36SDP) 的属性”。

要在仅 ECC 解码模式下使用解码器,请设置成 EN_ECC_WRITE = FALSE 和 EN_ECC_READ = TRUE。

可以按以下两种方式使用编码器:

• 要在标准 ECC 模式下使用编码器,请设置成 EN_ECC_WRITE = TRUE 和 EN_ECC_READ = TRUE。在这种模式下,DI 的建立时间较短,但 ECCPARITY 的时钟到输出时间较长。

• 要使用只编码器模式,请设置成 EN_ECC_WRITE = TRUE 和 EN_ECC_READ = FALSE。在这种模式下,DI 的建立时间较长,但 ECCPARITY 的时钟到输出时间较短。

使用 ECC 模式时的 Block RAM 功能说明如下:

• Block RAM 的两个端口仍具有独立的地址、时钟和使能输入,但一个是专用写端口,另一个是专用读端口 (简单双端口)。

• DO 表示纠错后的读数据。

• DO 保持有效,直到下一次有效的读操作。

• 允许同时解码和编码 (即便使用异步时钟),但如果读写地址完全相同就需要有缜密的时钟时序。

• 正常 Block RAM 操作的 READ_FIRST 或 WRITE_FIRST 模式对 ECC 配置不适用。

Virtex-5 用户指南 www.xilinx.com/cn 155UG190 (v3.1) 2007 年 9 月 11 日

内置纠错R

Block RAM ECC 架构的顶层视图图 4-28 所示为 ECC 模式下 Virtex-5 Block RAM 的顶层视图。

图 4-28: Block RAM ECC 的顶层视图

wraddr 9

Data InEN_ECC_WRITE

EN_ECC_READ

EN_ECC_READ

DataOut

ParityOut

rdaddr 9

BRAM512 x 72

64-bitECC

Encode

64

64

64

DI[63:0]

DO[63:0]

0

1

Decodeand

Correct

64

64

RDADDR[8:0]

WRADDR[8:0]

8

DOP[7:0]

8ECCPARITY[7:0]

8

8

DIP[7:0] 8

ug190_4_25_071707

8

0

1

0

1

81

0

1

0

11

DO_REG

0

164

Q D

DBITERR

DO_REG

0

11

Q D

SBITERR

DO_REG

0

11

Q D

DO_REG

0

18

Q D

156 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 4 章: Block RAMR

Block RAM 和 FIFO ECC 基元图 4-29 所示为 Block RAM (RAMB36SDP) ECC 基元。图 4-30 所示为 FIFO36_72 ECC 基元。FIFO36_72 仅支持标准模式。

图 4-29: RAMB36SDP:Block RAM ECC 基元

图 4-30: FIFO36_72:FIFO ECC 基元

SBITERR

DI[63:0]

WRADDR[8:0]

RDADDR[8:0]

SSR

WRCLK

DIP[7:0](Decode Only)

ECCPARITY[7:0](Standard or

Encode Only)

DBITERR

DO[63:0]

DOP[7:0]

WREN

RDEN

RDCLK

ug190_4_26_022207

RAMB36SDP

SBITERR

DI[63:0]

RST

WRCLK

DIP[7:0]ECCPARITY[7:0]

DBITERR

DO[63:0]

DOP[7:0]

WREN

RDEN

RDCLK

ug190_4_34_022207

FIFO36_72

EMPTY

FULL

ALMOSTEMPTY

ALMOSTFULL

RDERR

WRERR

RDCOUNT[8:0]

WRCOUNT[8:0]

Virtex-5 用户指南 www.xilinx.com/cn 157UG190 (v3.1) 2007 年 9 月 11 日

内置纠错R

Block RAM 和 FIFO ECC 端口描述表 4-21 列出并描述 Block RAM ECC 的 I/O 端口名称。

表 4-21: Block RAM ECC 端口名称及描述

端口名称 方向 信号描述

DI[63:0] 输入 数据输入总线。

DIP[7:0] 输入 数据输入奇偶校验总线。在只解码模式下用于输入预先计算的 ECC 奇偶校验位。

WRADDR[8:0] 输入 写地址总线。

RDADDR[8:0] 输入 读地址总线。

WREN 输入 写使能。当 WREN = 1 时,将数据写入存储器。当 WREN = 0 时,禁止写操作。

RDEN 输入 读使能。当 RDEN = 1 时,从存储器读出数据。当 RDEN = 0 时,禁止读操作。

SSR 输入 使用 Block RAM ECC 基元时不支持。始终接地。

WRCLK 输入 写操作的时钟。

RDCLK 输入 读操作的时钟。

DO[63:0] 输出 数据输出总线。

DOP[7:0] 输出 数据输出奇偶校验总线。在只编码模式下用于输出存储的 ECC 奇偶校验位。

SBITERR(1) 输出 单位元错误状态。

DBITERR(1) 输出 双位元错误状态。

ECCPARITY[7:0] 输出 ECC 编码器输出总线。

注:1. Block RAM ECC 逻辑中实现的汉明码检测这三种状态之一:没有可检测的错误、检测到单位元错误并已在 DO 上纠正 (但未在存

储器中纠正)、检测到双位元错误但未纠正。SBITERR 和 DBITERR 指示这三种状态。

158 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 4 章: Block RAMR

表 4-22 列出并描述 FIFO ECC 的 I/O 端口名称。

表 4-22: FIFO ECC 的端口名称和描述

端口名称 方向 信号描述

DI[63:0] 输入 数据输入总线。

DIP[7:0] 输入 数据输入奇偶校验总线。使用标准模式时不使用。

WREN 输入 写使能。当 WREN = 1 时,将数据写入存储器。当 WREN = 0 时,禁止写操作。

RDEN 输入 读使能。当 RDEN = 1 时,从存储器读出数据。当 RDEN = 0 时,禁止读操作。

RST 输入 FIFO 计数器和标记的异步复位。复位必须置为在三个时钟周期内有效。复位不影响 DO 或 ECC 信号。

WRCLK 输入 写操作的时钟。

RDCLK 输入 读操作的时钟。

DO[63:0] 输出 数据输出总线。

DOP[7:0] 输出 数据输出奇偶校验总线。

SBITERR(1) 输出 单位元错误状态。

DBITERR(1) 输出 双位元错误状态。

ECCPARITY[7:0] 输出 ECC 编码器输出总线。

FULL 输出 FIFO FULL 标记。

ALMOSTFULL 输出 FIFO ALMOSTFULL 标记。

EMPTY 输出 FIFO EMPTY 标记。

ALMOSTEMPTY 输出 FIFO ALMOSTEMPTY 标记。

RDCOUNT 输出 FIFO 数据的读指针。

WRCOUNT 输出 FIFO 数据的写指针。

WRERR 输出 当 FIFO 已满时,任何其他写操作都会生成错误标记。

RDERR 输出 当 FIFO 已空时,任何其他读操作都会生成错误标记。

注:1. FIFO ECC 逻辑中实现的汉明码检测这三种状态之一:没有可检测的错误、检测到单位元错误并已在 DO 上纠正 (但未在存储器中

纠正)、检测到双位元错误但未纠正。SBITERR 和 DBITERR 指示这三种状态。

Virtex-5 用户指南 www.xilinx.com/cn 159UG190 (v3.1) 2007 年 9 月 11 日

内置纠错R

Block RAM 和 FIFO ECC 属性除了解码和纠错逻辑中的内置寄存器,RAMB36SDP 基元还允许使用由 DO_REG 属性控制的可选流水线寄存器,以获得具有一个附加延迟的较高性能。表 4-23 和表 4-24 列出了 Block RAM 和 FIFO ECC 的属性。

表 4-23: Block RAM (RAMB36SDP) 的属性

属性名称 类型 值 默认 说明

EN_ECC_WRITE 布尔值 TRUE、FALSE FALSE 设置为 TRUE 时启用 ECC 编码器。

EN_ECC_READ 布尔值 TRUE、FALSE FALSE 设置为 TRUE 时启用 ECC 解码器。

DO_REG 1 位二进制 0、1 0 启用寄存器模式或锁存器模式。

表 4-24: FIFO (FIFO36_72) 的属性

属性名称 类型 值 默认 说明

EN_ECC_WRITE布尔值

TRUE、FALSE

FALSE要在 FIFO36_72 中启用 ECC 功能,两个属性都必须设置为 TRUE。

EN_ECC_READ布尔值

TRUE、FALSE

FALSE

DO_REG1 位二进制

0、1 1启用寄存器模式或锁存器模式。有关多速率和同步 FIFO 的详情,请见表 4-17。

EN_SYN 布尔值TRUE、FALSE

FALSE

当设置为 TRUE 时,将 WRCLK 和 RDCLK 捆绑到一起。

当设置为 TRUE 时,FWFT 必须是 FALSE。

当设置为 FALSE 时,DO_REG 必须是 1。

ALMOST_EMPTY_OFFSET9 位十六进制

请见表 4-19 请见表 4-19设置确定 EMPTY 与 ALMOST_EMPTY 状态之间的区别。必须用十六进制记数法设置。

ALMOST_FULL_OFFSET9 位十六进制

请见表 4-19 请见表 4-19设置确定 FULL 与 ALMOST_FULL 状态之间的区别。必须用十六进制记数法设置。

FIRST_WORD_FALL_THROUGH 布尔值TRUE、FALSE

FALSE当设置为 TRUE 时,写入空 FIFO36_72 的第一个字出现在 FIFO36_72 的输出上,无需 RDEN 置为有效。

160 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 4 章: Block RAMR

ECC 的操作模式ECC 操作有三种类型:标准、只编码、只解码。在标准 ECC 模式下,编码器和解码器二者都使用。

图 4-31 和图 4-32 显示了 Block RAM 和 FIFO 中的各种 ECC 操作模式。Block RAM 的 WRADDR 和 RDADDR 地址输入由用户提供。FIFO 的 WRADDR 和 RDADDR 地址由写计数器和读计数器内部生成。

图 4-31: ECC 写操作

WREN

WRCLK

WRADDR[8:0]

DI[63:0]

DIP[7:0] (Decode Only Mode)

ECCPARITY[7:0]

a b c d

A B C D

PC PDPBPA

PC PDPBPA

TRCCK_EN

TRCCK_ADDR

TRCCK_DI_ECC

ug190_4_32_022307

TRCKO_ECC_PARITY

T1W T2W T3W T4W T5W

图 4-32: ECC 读操作

RDEN

RDADDR[8:0]

RDCLK

DO[63:0] (Latch Mode)

DOP[7:0] (Latch Mode)

SBITERR(Register Mode)

DBITERR (Register Mode)

a b c d

A B C

PBPA PC

DO[63:0] (Register Mode)

DOP[7:0] (Register Mode)

A B C

PBPA PC

TRCCK_EN

TRCCK_ADDR

TRCKO_DO (Register Mode)

TRCKO_DO (Latch Mode)

TRCKO_ECC_SBITERR (Latch Mode)

TRCKO_ECC_DBITERR (Latch Mode)

Single Bit Error

Double Bit Error

ug190_4_33_020707

T1R T2R T3R T4R

TRCKO_ECC_SBITERR (Register Mode)

TRCKO_ECC_DBITERR (Register Mode)

SBITERR(Latch Mode)

DBITERR(Latch Mode)

Single Bit Error

Double Bit Error

Virtex-5 用户指南 www.xilinx.com/cn 161UG190 (v3.1) 2007 年 9 月 11 日

内置纠错R

标准 ECC

用以下属性设置

EN_ECC_READ = TRUEEN_ECC_WRITE = TRUE

标准 ECC 写操作

在时间 T1W 处,DI[63:0] = A 写入存储器的位置 a。ECC 奇偶校验值 PA (十六进制)对应的 8 个位由内部生成并附加到 64 个数据位,然后写入存储器。紧接写操作之后,奇偶校验值 PA 出现在输出 ECCPARITY[7:0] 上。因为 ECC 奇偶校验值是内部生成的,所以不使用 DIP[7:0] 引脚。

同样,在时间 T2W 和 T3W 处,DI[63:0] = B 和 C 与其对应的奇偶校验位 PB (十六进制)和 PC (十六进制)一起写入存储器的位置 b 和 c。在 T2W 和 T3W 之后,PB 和 PC 立即出现在输出 ECCPARITY[7:0] 上。

标准 ECC 读操作

在时间 T1R 处,地址位置 a 的 72 位存储器内容 (由数据 A 的 64 个位和奇偶校验值 PA(十六进制)的 8 个位组成)读出并在内部解码。如果没有错误,则在 DO[63:0] 和 DOP[7:0] 输出原数据和奇偶校验位。如果数据或奇偶校验位中有单位元错误,则纠正该错误,SBITERR 为 High。如果数据和奇偶校验位中有双位元错误,则不纠正该错误,输出原数据和奇偶校验位,DBITERR 为 High。

如果属性 DO_REG 设置为 0,则在 T1R 之后立即有 DO[63:0] = A 和 DOP[7:0] = PA。同样,在时间 T2R 和 T3R 处,地址位置 b 和 c 的存储器内容读出并在 DO[63:0] 和 DOP[7:0] 上解码。如果在数据集 A 上检测到单位元或双位元错误,SBITERR/DBITERR 输出还可以在 T1R 之后切换。图 4-32 显示了时钟沿 T1R 之后在锁存器模式的数据 A 上检测到单位元错误 (SBITERR),以及时钟沿 T2R 之后在锁存器模式的数据 B 上检测到双位元错误 (DBITERR)。

如果属性 DO_REG 设置为 1,则在 T2R 之后立即有 DO[63:0] = A 和 DOP[7:0] = PA。同样,在时间 T3R 和 T4R 处,地址位置 b 和 c 的存储器内容读出并在 DO[63:0] 和 DOP[7:0] 上解码。如果在数据集 A 上检测到单位元或双位元错误,SBITERR/DBITERR 输出还可以在 T2R 之后切换。图 4-32 显示了时钟沿 T2R 之后在寄存器模式的数据 A 上检测到单位元错误 (SBITERR),以及时钟沿 T3R 之后在寄存器模式的数据 B 上检测到双位元错误 (DBITERR)。

在 ECC 模式下,只编码端口和只解码端口相互独立操作。

ECC 只编码模式

用以下属性设置

EN_ECC_READ = FALSEEN_ECC_WRITE = TRUE

ECC 只编码写操作

在时间 T1W 处,DI[63:0] = A 写入存储器的位置 a。ECC 奇偶校验值 PA (十六进制)对应的 8 个位由内部生成并附加到 64 个数据位,然后写入存储器。紧接写操作之后,奇偶校验值 PA 出现在输出 ECCPARITY[7:0] 上。因为 ECC 奇偶校验值是内部生成的,所以不使用 DIP[7:0] 引脚。

162 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 4 章: Block RAMR

同样,在时间 T2W 和 T3W 处,DI[63:0] = B 和 C 与其对应的奇偶校验位 PB (十六进制)和 PC (十六进制)一起写入存储器的位置 b 和 c。在 T2W 和 T3W 之后,PB 和 PC 立即出现在输出 ECCPARITY[7:0] 上。

ECC 只编码读操作

ECC 只编码读操作与正常的 Block RAM 读操作完全相同。64 位数据出现在 DO[63:0],而 8 位数据出现在 DOP[7:0]。单位元纠错不会发生,错误标记 SBITERR 和 DBITERR 永远不会置为有效。

ECC 只解码模式

用以下属性设置

EN_ECC_READ = TRUEEN_ECC_WRITE = FALSE

在 ECC 只解码模式下,仅启用 ECC 解码器。ECC 编码器被禁用。只解码模式用来插入单位元或双位元错误,以测试 ECC 解码器的功能。ECC 奇偶校验位必须用 DIP[7:0] 引脚从外部提供。

用 ECC 只解码模式插入单位元错误

• 在时间 T1W、T2W、T3W 处,DI[63:0] = 有单位元错误的 A、B、C,而 DIP[7:0] = PA (十六进制)、PB (十六进制)、PC (十六进制),A、B 和 C 对应的 ECC 奇偶校验位写入存储器位置 a、b 和 c。

• 在时间 T1R、T2R 和 T3R 处,读出地址 a、b 和 c 的内容并按需要纠错。

• 锁存器模式:T1R、T2R、T3R 之后立即有 DO[63:0] = A、B、C 和 DOP[7:0] = PA、PB、PC。

• 寄存器模式:T2R、T3R、T4R 之后立即有 DO[63:0] = A、B、C 和 DOP[7:0] = PA、PB、PC。

• SBITERR 与相应的 DO/DOP 数据对齐。

ECC 解码器还纠正奇偶校验位中的单位元错误。

用 ECC 只解码模式插入双位元错误

• 在时间 T1W、T2W、T3W 处,DI[63:0] = 有双位元错误的 A、B、C,而 DIP[7:0] = PA (十六进制)、PB (十六进制)、PB (十六进制),A、B 和 C 对应的 ECC 奇偶校验位写入存储器位置 a、b 和 c。

• 在时间 T1R、T2R 和 T3R 处,读出地址 a、b 和 c 的原内容,并检测到双位元错误。

• 锁存器模式:T1R、T2R、T3R 之后立即有 DO[63:0] = 有双位元错误的 A、B、C 和 DOP[7:0] = PA、PB、PC。

• 寄存器模式:T2R、T3R、T4R 之后立即有 DO[63:0] = 有双位元错误的 A、B、C 和 DOP[7:0] = PA、PB、PC。

• DBITERR 与相应的 DO/DOP 数据对齐。

ECC 解码器还检测奇偶校验位中的双位元错误发生的时间,以及数据位中的单位元错误和相应奇偶校验位中的单位元错误发生的时间。

Virtex-5 用户指南 www.xilinx.com/cn 163UG190 (v3.1) 2007 年 9 月 11 日

内置纠错R

ECC 时序特性图 4-31 和图 4-32 还显示了各种 ECC 时序参数。

因为写时钟与读时钟相互独立,所以图 4-31 中的所有写时序均参考 WRCLK,而图 4-32 中的所有读时序均参考 RDCLK。

标准 ECC 写时序 (图 4-31)

• 在时间 T1W 之前的时间 TRCCK_EN 处,写使能在 Block RAM 的 WREN 输入上变为有效。

• 在时间 T1W 之前的时间 TRCCK_ADDR 处,写地址 a 在 Block RAM 的 WRADDR[8:0] 输入上变为有效。FIFO 不需要 WRADDR 输入。

• 在时间 T1W 之前的时间 TRDCK_DI_ECC (标准 ECC)处,写数据 A (十六进制)在 Block RAM 的 DI[63:0] 输入上变为有效。

• 在时间 T1W 之后的时间 TRCKO_ECC_PARITY (标准 ECC)处,ECC 奇偶校验数据 PA (十六进制)在 Block RAM 的 ECCPARITY[7:0] 输出引脚上变为有效。

标准 ECC 读时序 (图 4-32)

• 在时间 T1R 之前的时间 TRCCK_EN 处,读使能在 Block RAM 的 RDEN 输入上变为有效。

• 在时间 T1R 之前的时间 TRCCK_ADDR 处,写地址 a 在 Block RAM 的 RDADDR[8:0] 输入上变为有效。FIFO 不需要 RDADDR 输入。

DO_REG = 0

♦ 在时间 T1R 之后的时间 TRCKO_DO (锁存器模式)处,数据 A (十六进制)在 Block RAM 的 DO[63:0] 输出引脚上变为有效。

♦ 在时间 T1R 之后的时间 TRCKO_DOP (锁存器模式)处,数据 PA (十六进制)在 Block RAM 的 DOP[7:0] 输出引脚上变为有效。

♦ 在时间 T1R 之后的时间 TRCKO_ECC_SBITERR (锁存器模式)处,如果在数据集 A 上检测到并已纠正单位元错误,则 SBITERR 置为有效。

♦ 在时间 T2R 之后的时间 TRCKO_ECC_DBITERR (锁存器模式)处,如果在数据集 B 上检测到双位元错误,则 DBITERR 置为有效。

DO_REG = 1

♦ 在时间 T2R 之后的时间 TRCKO_DO (寄存器模式)处,数据 A (十六进制)在 Block RAM 的 DO[63:0] 输出引脚上变为有效。

♦ 在时间 T2R 之后的时间 TRCKO_DOP (寄存器模式)处,数据 PA (十六进制)在 Block RAM 的 DOP[7:0] 输出引脚上变为有效。

♦ 在时间 T2R 之后的时间 TRCKO_ECCR_SBITERR (寄存器模式)处,如果在数据集 A 上检测到并已纠正单位元错误,则 SBITERR 置为有效。

♦ 在时间 T3R 之后的时间 TRCKO_ECCR_DBITERR (寄存器模式)处,如果在数据集 B 上检测到双位元错误,则 DBITERR 置为有效。

164 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 4 章: Block RAMR

只编码 ECC 写时序 (图 4-31)

• WREN 和 WRADDR 的建立 / 保持时间与标准 ECC 相同。

• 在时间 T1W 之前的时间 TRDCK_DI_ECC (只编码 ECC)处,写数据 A (十六进制)在 Block RAM 的 DI[63:0] 输入上变为有效。

• 在时间 T1W 之后的时间 TRCKO_ECC_PARITY (只编码 ECC)处,ECC 奇偶校验数据 PA (十六进制)在 Block RAM 的 ECCPARITY[7:0] 输出引脚上变为有效。

只编码 ECC 读时序

• 只编码 ECC 读时序与正常的 Block RAM 读时序相同。

只解码 ECC 写时序

• 只解码 ECC 写时序与正常的 Block RAM 写时序相同。

只解码 ECC 读时序

• 只解码 ECC 读时序与标准 ECC 读时序相同。

Block RAM ECC 模式时序参数表 4-25 所示为 Virtex-5 Block RAM ECC 模式的时序参数。

表 4-25: Block RAM ECC 模式时序参数

参数 功能控制信号

描述

相对于时钟 (CLK) 的建立和保持时间

TRxCK_x = 建立时间 (时钟沿之前),TRCKx_x = 保持时间 (时钟沿之后)

TRDCK_DI_ECC(标准 ECC 模式)

数据输入 (1) DI

时钟之前,数据必须在 Block RAM 的 DI 输入上稳定的时间。标准 ECC 模式。

TRCKD_DI_ECC

(标准 ECC 模式)

时钟之后,数据必须在 Block RAM 的 DI 输入上稳定的时间。标准 ECC 模式。

TRDCK_DI_ECC(只编码模式)

数据输入 (1) DI

时钟之前,数据必须在 Block RAM 的 DI 输入上稳定的时间。只编码模式。

TRCKD_DI_ECC

(只编码模式)

时钟之后,数据必须在 Block RAM 的 DI 输入上稳定的时间。只编码模式。

时钟到输出延迟

TRCKO_DO

(锁存器模式)

时钟到输出 (2) CLK 到 DO 时钟之后,输出数据在 Block RAM 的 DO 输出上稳定的时间 (无输出寄存器)。

TRCKO_DO

(寄存器模式)

时钟到输出 (2) CLK 到 DO 时钟之后,输出数据在 Block RAM 的 DO 输出上稳定的时间 (有输出寄存器)。

Virtex-5 用户指南 www.xilinx.com/cn 165UG190 (v3.1) 2007 年 9 月 11 日

内置纠错R

在 72 位字中制造故意错误要在 72 字中故意制造错误,请配置 ECC 只解码模式,然后创建含有一位或两位错误的 72 位字。将该字写入 Block RAM。读出该 72 位字会自动纠正单位元错误并将 SBITERR 错误标记置为有效,或者检测双位元错误并将 DBITERR 错误标记置为有效。

为 64 位字创建八个奇偶校验位使用 Block RAM 外部的逻辑 (大量 XOR 电路),可以为 64 位字创建八个奇偶校验位。但是,如果使用 ECC 只编码模式就无需附加逻辑,通过将任意 64 位字写入另一个 Block RAM 即可自动创建八个奇偶校验位。这样,可立即得到编好码的 8 位 ECC 奇偶校验数据,即读出完整的 72 位字。

将单位元或双位元错误插入 72 位字读取一个 72 位字,有选择地修改一位或两位,然后在 ECC 只解码模式下将全部 72 位写入要测试的 Block RAM,这样即可插入单位元或双位元错误。

Block RAM ECC 的 VHDL 和 Verilog 模板《库指南》中提供了 VHDL 和 Verilog 模板。

时钟到 ECC 延迟

TRCKO_ECC_PARITY

(只编码模式)(3)

时钟到 ECC 奇偶校验输出

ECCPARITY WRCLK 之后,ECC 奇偶校验信号在 Block RAM 的 ECCPARITY 输出上稳定的时间 (只编码模式下)。

TRCKO_ECC_SBITERR(3) 时钟到 ECC 单位

元错误输出SBITERR RDCLK 之后,单位元错误信号在 Block RAM 的

SBITERR 输出上稳定的时间 (无输出寄存器)。

TRCKO_ECCR_SBITERR(4) 时钟到 ECCT 单

位元错误输出SBITERR RDCLK 之后,单位元错误信号在 Block RAM 的

SBITERR 输出上稳定的时间 (有输出寄存器)。

TRCKO_ECC_DBITERR(3) 时钟到 ECC 双位

元错误输出DBITERR RDCLK 之后,双位元错误信号在 Block RAM 的

DBITERR 输出上稳定的时间 (无输出寄存器)。

TRCKO_ECCR_DBITERR(4) 时钟到 ECC 双位

元错误输出DBITERR RDCLK 之后,双位元错误信号在 Block RAM 的

DBITERR 输出上稳定的时间 (有输出寄存器)。

注:1. TRDCK_DI_ECC/TRCKD_DI_ECC 包括奇偶校验输入 TRDCK_DIP_ECC/TRCKD_DIP_ECC。2. TRCKO_DO 包括奇偶校验输出 (TRCKO_DOP)。3. 在 《Virtex-5 数据手册》中,TRCKO_ECC_PARITY、TRCKO_ECC_SBITERR 和 TRCKO_ECC_DBITERR 组合到了 TRCKO_ECC 参数中。

4. 在 《Virtex-5 数据手册》中,TRCKO_ECC_SBITERR 和 TRCKO_ECC_DBITERR 组合到了 TRCKO_ECCR 参数中。

表 4-25: Block RAM ECC 模式时序参数 ( 续表 )

参数 功能控制信号

描述

166 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 4 章: Block RAMR

Virtex-5 用户指南 www.xilinx.com/cn 167UG190 (v3.1) 2007 年 9 月 11 日

R

第 5 章

可配置逻辑块 (CLB)

CLB 概述可配置逻辑块 (CLB) 是实现时序电路和组合电路的主要逻辑资源。每个 CLB 元件连接到一个可访问通用布线矩阵的开关矩阵 (如图 5-1 所示)。CLB 元件包含一对 Slice。这两个 Slice 相互间没有直接连接,各 Slice 组织成一个列。列中的每个 Slice 具有独立的进位链。对于每个 CLB,CLB 底部的 Slice 标为 SLICE(0),CLB 顶部的 Slice 标为 SLICE(1)。

Xilinx 工具用以下定义标示 Slice。“X”后跟一个数字表示各 Slice 在对中的位置以及该 Slice 的列位置。“X”的数字从底部起按 0、1 (第一 CLB 列),2、3 (第二 CLB 列)等依次计数 Slice。“Y”后跟一个数字表示 Slice 的列。此数字在一个 CLB 内保持不变,从底部起向上依次计数 CLB 行。图 5-2 所示为位于晶片左下角的四个 CLB。

图 5-1: CLB 内的 Slice 排列

SwitchMatrix

Slice(1)

COUTCOUT

CINCIN

Slice(0)

CLB

UG190_5_01_122605

168 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 5 章: 可配置逻辑块 (CLB)R

Slice 描述每个 Slice 包含四个逻辑函数发生器 (即查找表)、四个存储元件、多功能多路复用器和进位逻辑。所有 Slice 都通过这些元件进行逻辑、算术和 ROM 函数运算。除此之外,有些 Slice 还支持两个附加功能:用分布式 RAM 存储数据和用 32 位寄存器进行数据移位。支持这些附加功能的 Slice 称为 SLICEM ;其他 Slice 则称为 SLICEL。SLICEM (如图 5-3 所示)代表所有 Slice 中元件和连接功能的扩展集。SLICEL 如图 5-4 所示。

图 5-2: CLB 与 Slice 之间的行列关系

SliceX1Y1

COUTCOUT

CINCIN

SliceX0Y1

CLB

UG190_5_02_122605

SliceX1Y0

COUTCOUT

SliceX0Y0

CLB

SliceX3Y1

COUTCOUT

CINCIN

SliceX2Y1

CLB

SliceX3Y0

COUTCOUT

SliceX2Y0

CLB

Virtex-5 用户指南 www.xilinx.com/cn 169UG190 (v3.1) 2007 年 9 月 11 日

CLB 概述R

图 5-3: SLICEM 图

A6DI2

COUT

D

DX

C

CX

B

BX

A

AX

O6

DI1MC31

O5

UG190_5_03_041006

A5A4A3A2A1

D6

DIDMUX

D

DQ

C

CQ

CMUX

B

BQ

BMUX

A

AQ

AMUX

Reset Type

DX

D5D4D3D2D1

WA1-WA6WA7WA8

DPRAM64/32SPRAM64/32SRL32SRL16LUTRAMROM

DPRAM64/32SPRAM64/32SRL32SRL16LUTRAMROM

DPRAM64/32SPRAM64/32SRL32SRL16LUTRAMROM

DPRAM64/32SPRAM64/32SRL32SRL16LUTRAMROM

D

FFLATCHINIT1INIT0SRHIGHSRLOW

SR REV

CECK

D

FFLATCHINIT1INIT0SRHIGHSRLOW

SR REV

CECK

D

FFLATCHINIT1INIT0SRHIGHSRLOW

SR REV

CECK

D

FFLATCHINIT1INIT0SRHIGHSRLOW

SR REV

Q

CECK

CLKWSGEN

CIN

0/1

WE

Sync

Async

A6DI2

O6

DI1

MC31

O5

A5A4A3A2A1

C6

CI

CX

C5C4C3C2C1

A6DI2

O6

DI1

MC31

O5

A5A4A3A2A1

B6

BI

BX

B5B4B3B2B1

A6DI2

O6

DI1

MC31

O5

A5A4A3A2A1

A6

AI

AXSRCE

CLK

WE

A5A4A3A2A1

Q

Q

Q

WA1-WA6WA7WA8

WA1-WA6WA7WA8

WA1-WA6WA7WA8

170 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 5 章: 可配置逻辑块 (CLB)R

每个 CLB 可以包含零个或一个 SLICEM。每隔一个 CLB 列包含一个 SLICEM。另外,DSP48E 左边的两个 CLB 列各包含一个 SLICEL 和一个 SLICEM。

图 5-4: SLICEL 图

A6LUTROM

COUT

D

DX

C

CX

B

BX

A

AX

O6O5

UG190_5_04_032606

A5A4A3A2A1

D6

DMUX

D

DQ

C

CQ

CMUX

B

BQ

BMUX

A

AQ

AMUX

DX

D5D4D3D2D1

D

FFLATCHINIT1INIT0SRHIGHSRLOW

SR REV

CECK

D

FFLATCHINIT1INIT0SRHIGHSRLOW

SR REV

CECK

D

FFLATCHINIT1INIT0SRHIGHSRLOW

SR REV

CECK

D

FFLATCHINIT1INIT0SRHIGHSRLOW

SR REV

Q

CECK

CIN

0/1

A6LUTROM

O6O5

A5A4A3A2A1

C6

CX

C5C4C3C2C1

A6LUTROM

O6O5

A5A4A3A2A1

B6

BX

B5B4B3B2B1

A6LUTROM

O6O5

A5A4A3A2A1

A6

AXSRCE

CLK

A5A4A3A2A1

Q

Q

Q

Reset Type

Sync

Async

Virtex-5 用户指南 www.xilinx.com/cn 171UG190 (v3.1) 2007 年 9 月 11 日

CLB 概述R

CLB/Slice 配置

表 5-1 概述了 CLB 中的逻辑资源。每个 CLB 或 Slice 都可以配置为下表所列功能之一。表 5-2 所示为所有 CLB 中的可用资源。

查找表 (LUT)

Virtex-5 函数发生器是以六输入查找表 (LUT) 形式实现的。Slice 中的四个函数发生器(A、B、C 和 D)各有六个独立输入 (A 输入 - A1 到 A6)和两个独立输出 (O5 和 O6)。这些函数发生器可以实现任何任意定义的六输入布尔函数。各函数发生器还可以实现两个任意定义的五输入布尔函数,只要这两个函数可共用输入即可。实现六输入函数时,只使用函数发生器的 O6 输出。在实现的两个五输入函数发生器中,O5 和 O6 都会用到。在这种情况下,A6 由软件置为 High。通过 LUT 的传播延迟与所实现的函数无关,也与实现的是一个六输入发生器还是两个五输入发生器无关。来自函数发生器的信号可以离开 Slice (对于 O6 是通过 A、B、C、D 输出,对于 O5 是通过 AMUX、BMUX、CMUX、DMUX 输出),从 O6 输出进入专用的 XOR 门 (见 “快速先行进位逻辑”),或从 O5 输出进入进位逻辑链 (见 “快速先行进位逻辑”),或从 O6 输出进入进位逻辑多路复用器

表 5-1: 一个 CLB 中的逻辑资源

Slice LUT 触发器算术和进位链

分布式 RAM(1) 移位寄存器 (1)

2 8 8 2 256 位 128 位

注:1. 仅指 SLICEM,SLICEL 没有分布式 RAM 或移位寄存器。

表 5-2: 可在所有 CLB 中使用的 Virtex-5 逻辑资源

器件CLB 阵列

行 x 列6 输入LUT 数

大分布式 RAM (Kb)

移位寄存器 (Kb)

触发器数

XC5VLX30 80 x 30 19,200 320 160 19,200

XC5VLX30T 80 x 30 19,200 320 160 19,200

XC5VSX35T 80 x 34 21,760 520 260 21,760

XC5VLX50 120 x 30 28,800 480 240 28,800

XC5VLX50T 120 x 30 28,800 480 240 28,800

XC5VSX50T 120 x 34 32,640 780 390 32,640

XC5VLX85 120 x 54 51,840 840 420 51,840

XC5VLX85T 120 x 54 51,840 840 420 51,840

XC5VSX95T 160 x 46 58,880 1,520 760 58,880

XC5VLX110 160 x 54 69,120 1,120 560 69,120

XC5VLX110T 160 x 54 69,120 1,120 560 69,120

XC5VLX220 160 x 108 138,240 2,280 1140 138,240

XC5VLX220T 160 x 108 138,240 2,280 1140 138,240

XC5VLX330 240 x 108 207,360 3,420 1710 207,360

XC5VLX330T 240 x 108 207,360 3,420 1710 207,360

172 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 5 章: 可配置逻辑块 (CLB)R

的选择线 (见 “快速先行进位逻辑”),或馈入存储元件的 D 输入,或者从 O6 输出传送到 F7AMUX/F7BMUX。

除了基本 LUT,Virtex-5 Slice 还包含三个多路复用器 (F7AMUX、F7BMUX 和 F8MUX)。这些多路复用器用来将 多四个函数发生器组合在一起,以便在 Slice 中提供七个或八个输入的任意函数。F7AMUX 和 F7BMUX 用来从 Slice A 和 B 或者 C 和 D 生成七输入函数;而 F8MUX 则用来组合所有 Slice,以生成八输入函数。超过八个输入的函数可以用多个 Slice 实现。各 Slice 之间没有直接连接可用来在一个 CLB 中或在各 Slice 之间形成超过八个输入的函数发生器。

存储元件

Virtex-5 Slice 中的存储元件可以配置成边沿触发式 D 型触发器或电平敏感型锁存器。D 输入可由 LUT 的一个通过 AFFMUX、BFFMUX、CFFMUX 或 DFFMUX 的输出直接驱动,也可由 BYPASS Slice 输入通过 AX、BX、CX 或 DX 输入通过旁路函数发生器后直接驱动。如果配置成锁存器,则当 CLK 为 Low 时锁存器透明。

在一个 Slice 中,时钟 (CK)、时钟使能 (CE)、设置 / 复位 (SR) 和反转 (REV) 这些控制信号为所有存储元件共用。如果 Slice 中一个触发器的 SR 或 CE 已经激活,则该 Slice 中使用的其他触发器的 SR 或 CE 也会被公共信号激活。仅 CLK 信号具有独立极性。放置在时钟信号上的任何倒相器都被自动吸收。CE、SR 和 REV 信号为 High 有效。所有触发器和锁存器基元都有 CE 和非 CE 版本。

SR 信号强制存储元件进入由属性 SRHIGH 或 SRLOW 指定的状态。当 SR 置为有效时,SRHIGH 强制存储元件的输出为逻辑 High,而 SRLOW 则强制存储元件的输出为逻辑 Low。当使用 SR 时,可选的第二输入 (DX) 通过 REV 引脚强制存储元件的输出进入相反的状态。复位状态优先于设置状态 (见图 5-5)。表 5-3 和表 5-4 分别提供了使用 SRLOW 和使用 SRHIGH 时的 SR 和 REV 的真值表。

表 5-3: 使用 SRLOW 时的真值表 (默认状态)

SR REV 功能

0 0 无逻辑变化

0 1 1

1 0 0

1 1 0

表 5-4: 使用 SRHIGH 时的真值表

SR REV 功能

0 0 无逻辑变化

0 1 0

1 0 1

1 1 0

Virtex-5 用户指南 www.xilinx.com/cn 173UG190 (v3.1) 2007 年 9 月 11 日

CLB 概述R

对于 Slice 中的各存储元件,可分别设置 SRHIGH 和 SRLOW。对于 Slice 中的各存储元件,不可分别设置同步 (SYNC) 或异步 (ASYNC) 设置 / 复位 (SRTYPE) 选项。

配置后的初始状态或全局初始状态分别由 INIT0 和 INIT1 属性定义。默认状态下,设置 SRLOW 属性就是设置 INIT0,而设置 SRHIGH 属性就是设置 INIT1。Virtex-5 器件可以将 INIT0 和 INIT1 设置成与 SRHIGH 和 SRLOW 无关。

寄存器或锁存器的设置和复位功能的配置选项如下:

• 无设置或复位

• 同步设置

• 同步复位

• 同步设置和复位

• 异步设置 (预设置)

• 异步复位 (清零)

• 异步设置和复位 (预设置和清零)

图 5-5: Slice 中的寄存器 / 锁存器配置

UG190_5_05_071207

DX

CX

BX

CE

AX

DQ

CQ

BQ

AQ

D

FFLATCHINIT1INIT0SRHIGHSRLOW

SR REV

DFFLUT D Output

LUT C Output

CECK

D

FFLATCHINIT1INIT0SRHIGHSRLOW

SR REV

CECK

D

FFLATCHINIT1INIT0SRHIGHSRLOW

SR REV

CECK

D

FFLATCHINIT1INIT0SRHIGHSRLOW

SR REV

Q

CECK

Q

Q

Q

SR

LUT B Output

LUT A Output AFF

BFF

CFF

CLK

Reset Type

Sync

Async

174 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 5 章: 可配置逻辑块 (CLB)R

分布式 RAM 和存储器 (只能在 SLICEM 中使用)

可以用各种方法将 SLICEM 中的多个 LUT 组合起来,以存储较大量数据。

可以把 SLICEM 中的函数发生器 (LUT) 配置成一种称为分布式 RAM 元件的同步 RAM 资源。在 SLICEM 内可以将 RAM 元件配置成以下形式:

• 单端口 32 x 1 位 RAM

• 双端口 32 x 1 位 RAM

• 四端口 32 x 2 位 RAM

• 简单双端口 32 x 6 位 RAM

• 单端口 64 x 1 位 RAM

• 双端口 64 x 1 位 RAM

• 四端口 64 x 1 位 RAM

• 简单双端口 64 x 3 位 RAM

• 单端口 128 x 1 位 RAM

• 双端口 128 x 1 位 RAM

• 单端口 256 x 1 位 RAM

分布式 RAM 模块是同步 (写)资源。可以用同一 Slice 中的一个存储元件或触发器实现同步写。通过合理设置这个触发器的位置,可以将触发器的延迟缩短到触发器的时钟到输出范围内,从而提高分布式 RAM 的性能。不过,这样会附加一个时钟延迟。分布式元件共用相同的时钟输入。对于写操作,必须将写使能 (WE) 输入(由 SLICEM 的 CE 或 SLICEM 的 WE 引脚驱动)设置为 High。

Virtex-5 用户指南 www.xilinx.com/cn 175UG190 (v3.1) 2007 年 9 月 11 日

CLB 概述R

表 5-5 所示为各分布式 RAM 配置占用的 LUT 数 (每 Slice 四个)。

对于单端口配置,分布式 RAM 有一个同步写和异步读共用的地址端口。对于双端口配置,分布式 RAM 有一个同步写和异步读端口,另外还有一个异步读端口。在简单双端口配置中,没有来自写端口的数据输出 (读端口)。对于四端口配置,分布式 RAM 有一个同步写和异步读端口,另外还有三个异步读端口。

在单端口模式下,读和写地址共用同一地址总线。在双端口模式下,一个函数发生器与共用的读写端口地址连接。第二个函数发生器的 A 输入连接到另一个只读端口地址,WA 输入共用第一个读 / 写端口地址。

图 5-6 到图 5-14 所示为用一个 SLICEM 配置不同分布式 RAM 的示例。当使用 x2 配置 (RAM32X2Q) 时,A6 和 WA6 由软件置为 High,以保持 O5 与 O6 独立。

表 5-5: 分布式 RAM 配置

RAM LUT 数

32 x 1S 1

32 x 1D 2

32 x 2Q(2) 4

32 x 6SDP(2) 4

64 x 1S 1

64 x 1D 2

64 x 1Q(3) 4

64 x 3SDP(3) 4

128 x 1S 2

128 x 1D 4

256 x 1S 4

注:1. S = 单端口配置; D = 双端口配置; Q = 四端口配置; SDP = 简单双端口配置。2. RAM32M 是此配置的相关基元。3. RAM64M 是此配置的相关基元。

176 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 5 章: 可配置逻辑块 (CLB)R

图 5-6: 分布式 RAM (RAM32X2Q)

UG190_5_06_032706

DI1 DOD[0]

DOC[0]

DOD[1]

DOC[1]

DOB[0]

DOB[1]

DOA[0]

DOA[1]

DI2

DID[1]DID[0]

ADDRD[4:0]

ADDRC[4:0]

ADDRB[4:0]

ADDRA[4:0]

WCLK

WED

(CLK)

(WE)

5

5

DPRAM32

RAM 32X2Q

A[6:1]WA[6:1]CLKWE

O6

O5

DI1DI2

5

5

DPRAM32

A[6:1]WA[6:1]CLKWE

O6

DI1DI2

DI2

B[5:1]

C[5:1]

D[5:1](AI/BI/CI/DI)

(DX)

A[5:1]

5

5

DPRAM32

A[6:1]WA[6:1]CLKWE

O6

DI1

5

5

DPRAM32

A[6:1]WA[6:1]CLKWE

O6

O5

O5

O5

Virtex-5 用户指南 www.xilinx.com/cn 177UG190 (v3.1) 2007 年 9 月 11 日

CLB 概述R

图 5-7: 分布式 RAM (RAM32X6SDP)

UG190_5_06_032706

DI1

O[1]

O[2]

O[3]

O[4]

O[5]

O[6]

DI2

unusedunused

WADDR[5:1]WADDR[6] = 1

RADDR[5:1]RADDR[6] = 1

DATA[1]DATA[2]

DATA[3]DATA[4]

DATA[5]DATA[6]

WCLK

WED

(CLK)

(WE)

5

5

DPRAM32

RAM 32X6SDP

A[6:1]WA[6:1]CLKWE

DI1DI2

5

5

DPRAM32

A[6:1]WA[6:1]CLKWE

O6

DI1DI2

DI2

B[5:1]

C[5:1]

D[5:1]

A[5:1]

5

5

DPRAM32

A[6:1]WA[6:1]CLKWE

O6

DI1

5

5

DPRAM32

A[6:1]WA[6:1]CLKWE

O6

O5

O5

O5

178 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 5 章: 可配置逻辑块 (CLB)R

如果构建四个单端口 64 x 1 位模块,这四个 RAM64X1S 基元可以占用一个 SLICEM,只要它们共用相同的时钟和写使能并且共享了读写端口地址输入即可。这种配置相当于 64 x 4 位单端口分布式 RAM。

如果构建两个双端口 64 x 1 位模块,这两个 RAM64X1D 基元可以占用一个 SLICEM,只要它们共用相同的时钟、写使能和共享读写端口地址输入即可。这种配置相当于 64 x 2 位双端口分布式 RAM。

图 5-8: 分布式 RAM (RAM64X1S)

图 5-9: 分布式 RAM (RAM64X1D)

ug190_5_07_032706

Output

RegisteredOutput

(Optional)

DI1

D Q

(DX)D

A[5:0]

WCLKWE

(D[6:1])

(CLK)

(WE/CE)

6

SPRAM64

RAM64X1S

A[6:1]WA[6:1]CLKWE

O6O

6

UG190_5_09_050506

DI1(DX)

D

A[5:0]

WCLKWE

(D[6:1])

(CLK)

(WE/CE)

6

6

DPRAM64

RAM64X1D

A[6:1]WA[6:1]CLKWE

O6

DI1

DPRA[5:0](C[6:1]) 6

6

DPRAM64

A[6:1]WA[6:1]CLKWE

O6

RegisteredOutput

(Optional)

D Q

SPO

RegisteredOutput

(Optional)

D Q

DPO

Virtex-5 用户指南 www.xilinx.com/cn 179UG190 (v3.1) 2007 年 9 月 11 日

CLB 概述R

图 5-10: 分布式 RAM (RAM64X1Q)

ug190_5_10_032706

DI1DID

ADDRD

ADDRC

ADDRB

ADDRA

WCLK

WE

(CLK)

(WE)

DPRAM64

RAM64X1Q

A[6:1]WA[6:1]CLKWE

O6

DI1

DPRAM64

A[6:1]WA[6:1]CLKWE

O6

DI1

(B[6:1])

(C[6:1])

(D[6:1])

(DX)

(A[6:1])

DPRAM64

A[6:1]WA[6:1]CLKWE

O6

DI1

DPRAM64

A[6:1]WA[6:1]CLKWE

O6

RegisteredOutput

DOD

DOC

DOB

DOA

(Optional)

D Q

RegisteredOutput

(Optional)

D Q

RegisteredOutput

(Optional)

D Q

RegisteredOutput

(Optional)

D Q

180 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 5 章: 可配置逻辑块 (CLB)R

深度大于 64 的分布式 RAM 配置的实现需要使用多功能多路复用器(F7AMUX、F7BMUX 和 F8MUX)。

图 5-11: 分布式 RAM (RAM64X3SDP)

UG190_5_06_050506

DI1

O[1]

O[2]

O[3]

DI2

unusedunused

WADDR[6:1]

RADDR[6:1]

DATA[1]

DATA[2]

DATA[3]

WCLK

WED

(CLK)

(WE)

6

6

DPRAM32

RAM 64X3SDP

A[6:1]WA[6:1]CLKWE

DI1DI2

6

6

DPRAM32

A[6:1]WA[6:1]CLKWE

O6

DI1DI2

DI2

B[6:1]

C[6:1]

D[6:1]

A[6:1]

6

6

DPRAM32

A[6:1]WA[6:1]CLKWE

O6

DI1

6

6

DPRAM32

A[6:1]WA[6:1]CLKWE

O6

O5

O5

O5

Virtex-5 用户指南 www.xilinx.com/cn 181UG190 (v3.1) 2007 年 9 月 11 日

CLB 概述R

如果构建两个单端口 128 x 1 位模块,这两个 RAM128X1S 基元可以占用一个 SLICEM,只要它们共用相同的时钟、写使能和共享读写端口地址输入即可。这种配置相当于 128 x 2 位单端口分布式 RAM。

图 5-12: 分布式 RAM (RAM128X1S)

ug190_5_12_050506

DI1(DX)

A6 (CX)

D

A[6:0]

WCLK

WE

(CLK)

(WE/CE)

[5:0]

[5:0]

7

SPRAM64

RAM128X1S

A[6:1]WA[7:1]CLKWE

O6

DI1

7

SPRAM64

A[6:1]WA[7:1]CLKWE

O6

RegisteredOutput

Output

F7BMUX

(Optional)

D Q

0

182 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 5 章: 可配置逻辑块 (CLB)R

图 5-13: 分布式 RAM (RAM128X1D)

UG190_5_13_050506

DI1DDX

AX

A[6:0]

WCLK

DPRA[6:0]

WE

(CLK)

(WE)

7

DPRAM64

RAM128X1D

A[6:1]WA[7:1]CLKWE

O6

DI1

6

7

DPRAM64

A[6:1]WA[7:1]CLKWE

O6

RegisteredOutputF7BMUX

(Optional)

D Q

SPO

DI1

6

7

DPRAM64

A[6:1]WA[7:1]CLKWE

O6

DI1

6

7

DPRAM64

A[6:1]WA[7:1]CLKWE

O6

RegisteredOutputF7AMUX

(Optional)

D Q

DPO

A6 (CX)

6

Virtex-5 用户指南 www.xilinx.com/cn 183UG190 (v3.1) 2007 年 9 月 11 日

CLB 概述R

大于所提供示例的分布式 RAM 配置需要一个以上 SLICEM。各 Slice 之间没有直接连接以用来在一个 CLB 中或在各 Slice 之间形成较大的分布式 RAM 配置。

图 5-14: 分布式 RAM (RAM256X1S)

UG190_5_14_050506

DI1D

A[7:0]

WCLK

WE

(CLK)

(WE/CE)

6

8

SPRAM64

RAM256X1S

A[6:1]WA[8:1]CLKWE

O6

DI1

6

8

SPRAM64

A[6:1]WA[8:1]CLKWE

O6F7BMUX

F8MUXRegisteredOutput

Output

(Optional)

D Q

O

DI1

6

8

SPRAM64

A[6:1]WA[8:1]CLKWE

O6

DI1

6

8

SPRAM64

A[6:1]WA[8:1]CLKWE

O6F7AMUX

A6 (CX)

A6 (AX)

A7 (BX)

184 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 5 章: 可配置逻辑块 (CLB)R

分布式 RAM 数据流

同步写操作

同步写操作是具有 High 有效写使能 (WE) 功能的单时钟沿操作。当 WE 为 High 时,输入 (D) 加载到地址 A 处的存储器位置。

异步读操作

输出由地址 A (对于单端口模式的输出和双端口模式的 SPO 输出)或地址 DPRA (双端口模式的 DPO 输出)确定。每当有新地址施加到地址引脚,该地址处的存储器中的数据值就会在访问 LUT 的时间延迟之后出现在输出上。此操作是异步操作,与时钟信号无关。

分布式 RAM 小结

• SLICEM 可使用单端口和双端口模式。

• 写操作需要一个时钟沿。

• 读操作是异步操作 (Q 输出)。

• 数据输入具有建立到时钟时序指标。

只读存储器 (ROM)

SLICEM 和 SLICEL 中的每个函数发生器可以实现一个 64 x 1 位 ROM。有三种可用配置:ROM64x1、ROM128x1 和 ROM256x1。在每次器件配置时加载 ROM 内容。表 5-6 所示为各种 ROM 配置占用的 LUT 数。

移位寄存器 (只能在 SLICEM 中使用)

SLICEM 函数发生器还可配置成 32 位移位寄存器,无需使用 Slice 中提供的触发器。以这种方法使用的每个 LUT 可以将串行数据延迟 1 到 32 个时钟周期之间的任意长度。移位输入 D (DI1 LUT 引脚)线和移位输出 Q31 (MC31 LUT 引脚)线用来级联多个 LUT,以形成较大的移位寄存器。SLICEM 中的四个 LUT 以这种方式级联,可产生长达 128 个时钟周期的延迟。还可以跨一个以上 SLICEM 组合多个移位寄存器。请注意,各 Slice 之间没有直接连接可用来形成较长的移位寄存器,而且 LUT B/C/D 也没有 MC31 输出。由此产生的可编程延迟可用来平衡数据流水线的时序。

需要延时或延迟补偿的应用可使用这些移位寄存器开发高效设计。在同步 FIFO 和内容可寻址存储器 (CAM) 设计中,移位寄存器也很有用。

写操作是具有一个时钟输入 (CLK) 和一个可选时钟使能 (CE) 的同步操作。动态读访问通过 5 位地址总线 A[4:0] 执行。LUT 的 LSB 不使用,软件自动将其固定为逻辑 High。可配置移位寄存器不可设置或复位。读操作是异步操作;不过,可以用存储元件或触发器实现同步读操作。在这种情况下,触发器的时钟到输出时间控制总体延迟,因而可提高性能。不过,这样会附加一个周期的时钟延迟。通过变换 5 位地址,可以 (从 O6 LUT 输出)异步读出 32 个位的任意部分。这一功能可用来创建较小的移位寄存器 (小于 32 位)。例如,如果要构建 13 位移位寄存器,将地址设置到第 13 个位即可。图 5-15 所示为 32 位移位寄存器的逻辑框图。

表 5-6: ROM 配置

ROM LUT 数

64 x 1 1

128 x 1 2

256 x 1 4

Virtex-5 用户指南 www.xilinx.com/cn 185UG190 (v3.1) 2007 年 9 月 11 日

CLB 概述R

图 5-16 所示为占用一个函数发生器的移位寄存器配置示例。图 5-17 所示为 16 位移位寄存器。

图 5-15: 32 位移位寄存器配置

图 5-16: 移位寄存器图示

ug190_5_15_050506

Output (Q)

RegisteredOutput

(Optional)

(AQ)

DI1

D Q

(AX)

SHIFTIN (MC31 of Previous LUT)

SHIFTIN (D)

A[4:0]

CLKCE

(A[6:2])

(CLK)

(WE/CE)

SRL32

SRLC32E

A[6:2]

CLKCE

O6

MC31SHIFTOUT (Q31)

5

UG190_5_16_050506

SHIFTIN (D)

SHIFTOUT(Q31)WE

CLK

Address (A[4:0])

32-bit Shift Register

MUX

Q

5

186 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 5 章: 可配置逻辑块 (CLB)R

如前所述,可以用附加输出 (MC31) 和各移位寄存器之间的专用连接将一个移位寄存器的末位连接到下一个的首位,无需使用 LUT O6 输出。可以将较长的移位寄存器构建成能够动态访问寄存器链中的任意位。移位寄存器链接加上 F7AMUX、F7BMUX 和 F8MUX 多路复用器,可构建长达 128 位的移位寄存器,可以在一个 SLICEM 中实现可寻址访问。图 5-18 到图 5-20 所示为可以占用一个 SLICEM 的各种移位寄存器配置示例。

图 5-17: 16 位移位寄存器配置

图 5-18: 64 位移位寄存器配置

UG190_5_17_050506

DI1SHIFTIN1 (AX)

SHIFTIN2 (AI)

A[3:0]

CLK

CE

4

SRL16

A[5:2]

CLKWE

O5

MC31

DI2

4

SRL16

A[5:2]CLKWE

O6

UG190_5_18_050506

DI1SHIFTIN (D)

A[5:0]

CLK

WE

(CLK)

(WE/CE)

5

SRL32

A[6:2]

CLKWE

O6

MC31

MC31

DI1

5

SRL32

A[6:2]CLKWE

O6

RegisteredOutput

Output (Q)

F7AMUX

(Optional)

D Q

A5 (AX)

(AQ)

SHIFTOUT (Q63)

(MC31)

Virtex-5 用户指南 www.xilinx.com/cn 187UG190 (v3.1) 2007 年 9 月 11 日

CLB 概述R

图 5-19: 96 位移位寄存器配置

UG190_5_19_050506

DI1SHIFTIN (D)

A[6:0]

CLK

WE

AX (A5)

(CLK)

(WE/CE)

5

SRL32

A[6:2]

CLKWE

O6

MC31

MC31

MC31

DI1

5

SRL32

A[6:2]

CLKWE

O6

F7BMUX

Not Used

F8MUXRegisteredOutput

Output (Q)

SHIFTOUT (Q95)

(Optional)

D Q(BQ)

(BMUX)

(MC31)

DI1

5

SRL32

A[6:2]

CLKWE

O6F7AMUX

CX (A5)

BX (A6)

188 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 5 章: 可配置逻辑块 (CLB)R

可以跨一个以上 SLICEM 创建长度大于 128 位的移位寄存器。不过,各 Slice 之间没有直接连接可用来形成这些移位寄存器。

移位寄存器数据流

移位操作

移位操作是具有 High 有效时钟使能功能的单时钟沿操作。当使能为 High 时,输入 (D) 加载到移位寄存器的首位。同时,每个位移动到下一个 高位元位置。在可级联移位寄存器配置中,末位在 M31 输出上移出。

由 5 位地址端口 (A[4:0]) 选定的位出现在 Q 输出上。

图 5-20: 128 位移位寄存器配置

UG190_5_20_050506

DI1SHIFTIN (D)

A[6:0]

CLK

WE

(CLK)

(WE/CE)

5

SRL32

A[6:2]

CLKWE

O6

MC31

MC31

MC31

MC31

DI1

SRL32

A[6:2]

CLKWE

O6F7BMUX

F8MUX

CX (A5)

BX (A6)

RegisteredOutput

Output (Q)

(Optional)

D Q

(BMUX)

SHIFTOUT (Q127)

(MC31)

(BQ)

DI1

SRL32

A[6:2]

CLKWE

O6

DI1

SRL32

A[6:2]

CLKWE

O6F7AMUX

AX (A5)

Virtex-5 用户指南 www.xilinx.com/cn 189UG190 (v3.1) 2007 年 9 月 11 日

CLB 概述R

动态读操作

Q 输出由 5 位地址确定。每当有新地址施加到 5 输入地址引脚,新位元位置的值就会在访问 LUT 的时间延迟之后出现在 Q 输出上。此操作是异步操作,与时钟信号和时钟使能信号无关。

静态读操作

如果 5 位地址固定,则 Q 输出始终使用同一个地址的数据位。这种模式可以在一个 LUT 中实现从 1 到 16 位任意长度的移位寄存器。移位寄存器长度是 (N+1),其中 N 是输入地址 (0 - 31)。

Q 输出与每次移位操作同步变化。上一个地址的数据位移动到下一地址,并且出现在 Q 输出上。

移位寄存器小结

• 位移操作需要一个时钟沿。

• 动态长度读操作是异步操作 (Q 输出)。

• 静态长度读操作是同步操作 (Q 输出)。

• 数据输入具有建立到时钟时序指标。

• 在级联配置中,Q31 输出始终包含末位值。

• Q31 输出在每次移位操作后同步变化。

多路复用器

Virtex-5 函数发生器及相关多路复用器可以实现以下各项:

• 使用一个 LUT 的 4:1 多路复用器

• 使用两个 LUT 的 8:1 多路复用器

• 使用四个 LUT 的 16:1 多路复用器

这些宽输入多路复用器是使用专用的 F7AMUX、F7BMUX 和 F8MUX 多路复用器在一个层或逻辑 (或 LUT)中实现的。这些多路复用器允许在一个 Slice 中 多组合四个 LUT。

190 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 5 章: 可配置逻辑块 (CLB)R

设计大型多路复用器

4:1 多路复用器

每个 Virtex-5 LUT 可以配置成一个 4:1 多路器。4:1 多路器可以用同一 Slice 中的触发器实现。如图 5-21 所示,一个 Slice 中 多可以实现四个 4:1 多路器。

图 5-21: Slice 中的四个 4:1 多路复用器

UG190_5_21_050506

(D[6:1])

(C[6:1])

(B[6:1])

(A[6:1])

(CLK)CLK

6

SLICE

LUT

LUT

LUT

LUT

A[6:1]

O6

6A[6:1]

O6

RegisteredOutput

4:1 MUX Output

(Optional)

D Q

(D)

(DQ)

RegisteredOutput

4:1 MUX Output

(Optional)

D Q

(C)

(CQ)

RegisteredOutput

4:1 MUX Output

(Optional)

D Q

(B)

(BQ)

RegisteredOutput

4:1 MUX Output

(Optional)

D Q

(A)

(AQ)

6A[6:1]

O6

6A[6:1]

O6

SEL D [1:0], DATA D [3:0]Input

SEL C [1:0], DATA C [3:0]Input

SEL B [1:0], DATA B [3:0]Input

SEL A [1:0], DATA A [3:0]Input

Virtex-5 用户指南 www.xilinx.com/cn 191UG190 (v3.1) 2007 年 9 月 11 日

CLB 概述R

8:1 多路复用器

每个 Slice 有一个 F7AMUX 和一个 F7BMUX。这两个多路器与两个 LUT 的输出组合,形成多 13 个输入的组合函数 (即一个 8:1 多路器)。如图 5-22 所示,一个 Slice 中 多可

以实现两个 8:1 多路器。

图 5-22: Slice 中的两个 8:1 多路复用器

UG190_5_22_090806

(D[6:1])

(C[6:1])

(CX)

(B[6:1])

(A[6:1])

(AX)

SELF7(1)(CLK)

CLK

SELF7(2)

SEL D [1:0], DATA D [3:0]Input (1)

SEL C [1:0], DATA C [3:0]Input (1)

SEL B [1:0], DATA B [3:0]Input (2)

SEL A [1:0], DATA A [3:0]Input (2)

6

SLICE

LUT

LUT

LUT

LUT

A[6:1]

O6

6A[6:1]

O6 RegisteredOutput

8:1 MUXOutput (1)

(Optional)

D Q

(CMUX)

(CQ)

RegisteredOutput

8:1 MUXOutput (2)

(Optional)

D Q

(AMUX)

(AQ)

6A[6:1]

O6

6A[6:1]

O6

F7BMUX

F7AMUX

192 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 5 章: 可配置逻辑块 (CLB)R

16:1 多路复用器

每个 Slice 有一个 F8MUX。F8MUX 将 F7AMUX 和 F7BMUX 的输出组合,形成 多 27 个输入的组合函数 (即一个 16:1 多路器)。如图 5-23 所示,一个 Slice 中只能实现一个 16:1 多路器。

可以跨一个以上 SLICEM 创建宽度大于 16:1 的多路复用器。不过,各 Slice 之间没有直接连接可用来形成这些宽多路复用器。

快速先行进位逻辑

除了函数发生器,还提供了专用进位逻辑,用于在 Slice 中实现快速算术加减运算。Virtex-5 的 CLB 有两条独立进位链,如图 5-1 所示。进位链可以级联,以形成较宽的加减逻辑,如图 5-2 所示。

Virtex-5 器件中的进位链是上行进位链,每个 Slice 具有四位的高度。对于每个位,有一个进位多路复用器 (MUXCY) 和一个专用 XOR 门,用于按选定的进位位元对运算元进行加减运算。专用的进位通路和进位多路复用器 (MUXCY) 还可用来级联函数发生器,以实现宽逻辑函数。

图 5-23: Slice 中的 16:1 多路复用器

UG190_5_23_050506

(D[6:1])

(C[6:1])

(CX)

(B[6:1])

(A[6:1])

(AX)(BX)

(CLK)

SELF7

SELF7

SELF8

CLK

6

SLICE

LUT

LUT

LUT

LUT

A[6:1]

O6

6A[6:1]

O6

RegisteredOutput

16:1 MUXOutput

(Optional)

D Q

(BMUX)

(B)

6A[6:1]

O6

6A[6:1]

O6

F7BMUX

F8MUX

F7AMUX

SEL D [1:0], DATA D [3:0]Input

SEL C [1:0], DATA C [3:0]Input

SEL B [1:0], DATA B [3:0]Input

SEL A [1:0], DATA A [3:0]Input

Virtex-5 用户指南 www.xilinx.com/cn 193UG190 (v3.1) 2007 年 9 月 11 日

CLB 概述R

图 5-24 所示为 Slice 中的进位链和相关逻辑元件。

进位链还包含伴随函数发生器的先行逻辑。有十个独立输入 (S 输入 - S0 到 S3、DI 输入 - DI1 到 DI4、CYINIT 和 CIN)和八个独立输出 (O 输出 - O0 到 O3,以及 CO 输出 - CO0 到 CO3)。

S 输入用于进位先行逻辑的 “传播”信号。“传播”信号源自函数发生器的 O6 输出。DI 输入是进位先行逻辑的 “生成”信号。“生成”信号源自函数发生器的 O5 输出或 Slice 的 BYPASS 输入 (AX、BX、CX 或 DX)。前一输入用来创建乘法器,而后者用来创建加法器 / 累加器。CYINIT 是进位链中首位的 CIN。CYINIT 的值可以是 0 (对于加法)、1 (对于减法)或 AX 输入 (对于第一个动态进位位元)。CIN 输入用来级联各 Slice,以形成较长的进位链。O 输出包含加减运算的和数。CO 输出计算每个位的进位输出。CO3 连接到 Slice 的 COUT 输出,从而通过级联多个 Slice 形成较长的进位链。随着级联的进位链增

图 5-24: 快速进位逻辑通路和相关元件

UG190_5_24_050506

O6 From LUTD

DMUX/DQ*

DMUX

DQ

O5 From LUTD

DX

S3MUXCY

DI3

CO3

O3

COUT (To Next Slice)

Carry Chain Block(CARRY4)

(Optional)

D Q

O6 From LUTC

CMUX/CQ*

CMUX

CQ

O5 From LUTC

CX

S2MUXCY

DI2

CO2

CO1

CO0

O2

(Optional)

D Q

O6 From LUTB

BMUX/BQ*

BMUX

BQ

O5 From LUTB

BX

S1MUXCY

DI1

O1

(Optional)

D Q

O6 From LUTA

AMUX/AQ*

AMUX

AQ

O5 From LUTA

AX

S0MUXCY

DI0

CIN

CIN (From Previous Slice)

* Can be used ifunregistered/registeredoutputs are free.

CYINIT

10

O0

(Optional)

D Q

194 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 5 章: 可配置逻辑块 (CLB)R

多,加法器的传播延迟随运算元中的位数呈线性增加。进位链可以和同一 Slice 中的存储元件或触发器一起使用。

CLB/Slice 时序模型由于 Virtex-5 FPGA 的大尺寸和复杂性,理解与各种通路和功能元件关联的时序是一项困难而重要的任务。虽然不必理解用 Xilinx 软件实现大多数设计所需的各种时序参数,但是详尽的时序模型可以帮助高级用户分析关键通路或规划速度敏感型设计。

以下叙述三个时序模型部分:

• 功能元件图 - 说明引脚和连接的基本架构原理图

• 时序参数 - 《Virtex-5 数据手册》中时序参数的定义

• 时序图 - 说明彼此相关的功能元件时序参数

请结合 Xilinx 时序分析器软件 (TRCE) 和《Virtex-5 数据手册》中的开关特性部分使用本章中的模型。所有引脚名称、参数名称和通路均与布线后的时序报告和布线前的静态时序报告一致。本章讲述见于开关特性部分的大多数时序参数。

《Virtex-5 数据手册》中收录的所有时序参数均涉及 Slice 和 CLB。以下部分对应《Virtex-5 数据手册》中的特定开关特性部分。

• “通用 Slice 时序模型与参数”(CLB 开关特性)

• “Slice 分布式 RAM 时序模型与参数 (只能在 SLICEM 中使用)”(CLB 分布式 RAM 开关特性)

• “Slice SRL 时序模型与参数 (只能在 SLICEM 中使用)”(CLB SRL 开关特性)

• “Slice 进位链时序模型与参数”(CLB 应用开关特性)

Virtex-5 用户指南 www.xilinx.com/cn 195UG190 (v3.1) 2007 年 9 月 11 日

CLB/Slice 时序模型R

通用 Slice 时序模型与参数图 5-25 所示为简化的 Virtex-5 Slice。为简明起见,图中略去了 Virtex-5 Slice 的某些元件,只显示与本部分所述时序通路有关的元件。

图 5-25: 简化的 Virtex-5 Slice

UG190_5_25_050506

LUT

O6

O5

6D

FE/LAT

D

CE

CLK

SR REV

Q

F7BMUX

F8MUX

DMUX

DQ

D Inputs

LUT

O6

O5

6C

FE/LAT

D

CE

CLK

SR REV

Q CQ

CMUX

C Inputs

DX

CX

LUT

O6

O5

6B

FE/LAT

D

CE

CLK

SR REV

Q BQ

BMUX

B Inputs

BX

FE/LAT

D

CE

CLK

SR REV

Q AQ

F7AMUXLUT

O6

O5

6A

AMUX

A Inputs

AX

CE

CLK

SRREV(DX)

196 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 5 章: 可配置逻辑块 (CLB)R

时序参数

表 5-7 所示为图 5-25 中大多数通路的通用 Slice 时序参数。

表 5-7: 通用 Slice 时序参数

参数 功能 描述

组合延迟

TILO(1) A/B/C/D 输入到 A/B/C/D 输出

从 Slice 的 A/B/C/D 输入通过查找表 (LUT) 到 Slice 的 A/B/C/D 输出的传播延迟 (六输入函数)。

TILO_2 A/B/C/D 输入到 AMUX/CMUX 输出 从 Slice 的 A/B/C/D 输入通过 LUT 和

F7AMUX/F7BMUX 到 AMUX/CMUX 输出的传播延迟 (七输入函数)。

TILO_3 A/B/C/D 输入到 BMUX 输出从 Slice 的 A/B/C/D 输入通过 LUT、F7AMUX/F7BMUX 和 F8MUX 到 BMUX 输出的传播延迟 (八输入函数)。

时序延迟

TCKO FF 时钟 (CLK) 到 AQ/BQ/CQ/DQ 输出 时钟之后,数据在 Slice 时序元件 (配置为触发

器)的 AQ/BQ/CQ/DQ 输出上稳定的时间。

TCKLO 锁存器时钟 (CLK) 到 AQ/BQ/CQ/DQ 输出 时钟之后,数据在 Slice 时序元件 (配置为锁存

器)的 XQ/YQ 输出上稳定的时间。

Slice 时序元件的建立和保持时间 (2)

TDICK/TCKDI AX/BX/CX/DX 输入CLK 前 / 后,来自 Slice 的 AX/BX/CX/DX 输入的数据必须在 Slice 时序元件 (配置为触发器)的 D 输入上稳定的时间。

TCECK/TCKCE CE 输入CLK 前 / 后,Slice 的 CE 输入必须在 Slice 时序元件 (配置为触发器)的 CE 输入上稳定的时间。

TSRCK/TCKSR SR/BY 输入CLK 前 / 后,Slice 的 SR (设置 / 复位)和 BY (Rev) 输入必须在 Slice 时序元件 (配置为触发器)的 SR/Rev 输入上稳定的时间。

设置 / 复位

TRPW SR (设置 / 复位)和 BY (Rev) 引脚的 小脉宽。

TRQ Slice 时序元件的异步设置 / 复位从 SR/BY 输入到 AQ/BQ/CQ/DQ 输出的传播时间。

Virtex-5 用户指南 www.xilinx.com/cn 197UG190 (v3.1) 2007 年 9 月 11 日

CLB/Slice 时序模型R

时序特性

图 5-26 所示为 Virtex-5 Slice 的通用时序特性。

• 在时间事件 (1) 之前的时间 TCEO 处,时钟使能信号在 Slice 寄存器的 CE 输入上变为 High 有效。

• 在时间事件 (1) 之前的时间 TDICK 处,来自 AX、BX、CX 或 DX 输入的数据在 Slice 寄存器的 D 输入上变为 High 有效;在时间事件 (1) 之后的时间 TCKO 处,该数据分别反映在 AQ、BQ、CQ 或 DQ 引脚上。

• 在时间事件 (3) 之前的时间 TSRCK 处,SR 信号 (配置为同步复位)变为 High 有效,从而复位 Slice 寄存器。在时钟事件 (3) 之后的时间 TCKO 处,此信号反映在 AQ、BQ、CQ 或 DQ 引脚上。

FTOG 翻转频率 - CLB 触发器时钟控制的 高频率:1 / (TCH + TCL)。

注:1. 此参数包括一个配置为两个五输入函数的 LUT。2. TXXCK = 建立时间 (时钟沿之前),TCKXX = 保持时间 (时钟沿之后)。

表 5-7: 通用 Slice 时序参数 ( 续表 )

参数 功能 描述

图 5-26: 通用 Slice 时序特性

ug190_5_26_050506

TCEO

1 2 3

CLK

CE

AX/BX/CX/DX(DATA)

SR (RESET)

AQ/BQ/CQ/DQ(OUT)

TDICK

TCKO

TSRCK

TCKO

198 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 5 章: 可配置逻辑块 (CLB)R

Slice 分布式 RAM 时序模型与参数 (只能在 SLICEM 中使用)图 5-27 所示为 Virtex-5 Slice 中实现的分布式 RAM 的细节。为简明起见,图中略去了 Virtex-5 Slice 的某些元件,只显示与本部分所述时序通路有关的元件。

图 5-27: 简化的 Virtex-5 SLICEM 分布式 RAM

UG190_5_27_050506

6D

DXDI

D input

CXCI

C input

BXBI

B input

AXAI

A input

CLKWE

WA[6:0]

RAM

CLKWE

DI1DI2A[6:0]

O6

DMUXO5

6C

WA[6:0]

RAM

CLKWE

DI1DI2A[6:0]

O6

CMUXO5

6B

WA[6:0]

RAM

CLKWE

DI1DI2A[6:0]

O6

BMUXO5

6A

WA[6:0]

RAM

CLKWE

DI1DI2A[6:0]

O6

AMUXO5

Virtex-5 用户指南 www.xilinx.com/cn 199UG190 (v3.1) 2007 年 9 月 11 日

CLB/Slice 时序模型R

分布式 RAM 时序参数

表 5-8 所示为图 5-27 中大多数通路的 SLICEM 中的分布式 RAM 时序参数。

表 5-8: 分布式 RAM 时序参数

参数 功能 描述

配置为 RAM (分布式 RAM)的 Slice LUT 的时序延迟

TSHCKO(1) CLK 到 A/B/C/D 输出 写操作的 CLK 之后,写入分布式 RAM 的数据在

Slice 的 A/B/C/D 输出上稳定的时间。

配置为 RAM (分布式 RAM)的 Slice LUT 的建立和保持时间 (2)

TDS/TDH(3) 配置为数据输入 (DI1) 的

AX/BX/CX/DX时钟前 / 后,数据必须在 Slice 的 AX/BX/CX/DX 输入上稳定的时间。

TACK/TCKA A/B/C/D 地址输入 时钟前 / 后,地址信号必须在 Slice LUT(配置为 RAM)的 A/B/C/D 输入上稳定的时间。

TWS/TWH WE 输入 时钟前 / 后,写使能信号必须在 Slice LUT (配置为 RAM)的 WE 输入上稳定的时间。

时钟 CLK

TWPH 小脉宽,High

TWPL 小脉宽,Low

TWC 满足地址写周期时间的 小时钟周期。

注:1. 此参数包括一个配置为 2 位分布式 RAM 的 LUT。2. TXXCK = 建立时间 (时钟沿之前),TCKXX = 保持时间 (时钟沿之后)。3. 参数包括配置为数据输入 (DI2) 的 AI/BI/CI/DI。

200 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 5 章: 可配置逻辑块 (CLB)R

分布式 RAM 时序特性

图 5-28 所示为 Virtex-5 Slice 中实现的 16 位分布式 RAM 的时序特性 (LUT 配置为 RAM)。

时钟事件 1:写操作

在写操作过程中,ADDR 输入的地址处的存储器内容改变。写入此存储器位置的数据同步反映在 A/B/C/D 输出上。

• 在时间事件 1 之前的时间 TWS 处,写使能信号 (WE) 变为 High 有效,从而为写操作启用 RAM。

• 在时间事件 1 之前的时间 TAS 处,地址 (2) 在 RAM 的 A/B/C/D 输入上变为有效。

• 在时间事件 1 之前的时间 TDS 处,数据在 RAM 的 DI 输入上变为有效 (1);在时间事件 1 之后的时间 TSHCKO 处,该数据反映在 A/B/C/D 输出上。

在时钟事件 1 之后的时间 TSHCKO 和 TWOSCO 处,此过程也适用于 AMUX、BMUX、CMUX、DMUX 和 COUT 输出。

时钟事件 2:读操作

分布式 RAM 中的所有读操作都是异步操作。只要 WE 为 Low,地址总线即可随时置为有效。地址总线上的 RAM 内容在长度为 TILO 的延迟 (通过 LUT 的传播延迟)之后反映在 A/B/C/D 输出上。地址 (F) 在时钟事件 2 之后置为有效,而地址 (F) 处的 RAM 内容在长度为 TILO 的延迟之后反映在输出上。

图 5-28: Slice 分布式 RAM 时序特性

UG190_5_28_050506

TWPL

TWPH

TWC

1 2 3 4 5 6 7

CLK

WE

DATA_OUTA/B/C/D

Output

A/B/C/D(ADDR)

AX/BX/CX/DX(DI)

TAS

2

1

1 0 01MEM(F)

WRITE WRITE WRITE WRITEREAD READ

MEM(E)

X X0 01

F 3 4 5 E

TDS

TWS TILO TILO

TSHCKO

Virtex-5 用户指南 www.xilinx.com/cn 201UG190 (v3.1) 2007 年 9 月 11 日

CLB/Slice 时序模型R

Slice SRL 时序模型与参数 (只能在 SLICEM 中使用)图 5-29 所示为 Virtex-5 Slice 中的移位寄存器的实现。为简明起见,图中略去了 Virtex-5 Slice 的某些元件,只显示与本部分所述时序通路有关的元件。

图 5-29: 简化的 Virtex-5 Slice SRL

UG190_5_29_050506

6

DDX

CX

BX

AX

D address

SRL

CLK WE

DI1

A

O6

MC31

WCLK

6

C

C address

SRL

CLK WE

DI1

A

O6

MC31

6

B

B address

SRL

CLK WE

DI1

A

O6

MC31

6

A

A address

SRL

CLK WE

DI1

A

O6

DMUXMC31

202 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 5 章: 可配置逻辑块 (CLB)R

Slice SRL 时序参数

表 5-9 所示为图 5-29 中大多数通路的 SLICEM SRL 时序参数。

Slice SRL 时序特性

图 5-30 所示为 Virtex-5 Slice 中实现的 16 位移位寄存器的时序特性 (LUT 配置为 SRL)。

表 5-9: Slice SRL 时序参数

参数 功能 描述

配置为 SRL 的 Slice LUT 的时序延迟

TREG(1) CLK 到 A/B/C/D 输出 写操作的 CLK 之后,写入 SRL 的数据在 Slice 的

A/B/C/D 输出上稳定的时间。

TREG_MUX(1) CLK 到 AMUX - DMUX 输出 写操作的 CLK 之后,写入 SRL 的数据在 Slice 的

DMUX 输出上稳定的时间。

TREG_M31 CLK 通过 MC31 输出到 DMUX 输出

写操作的 CLK 之后,写入 SRL 的数据在通过 MC31 输出在 DMUX 输出上稳定的时间。

配置为 SRL 的 Slice LUT 的建立和保持时间 (2)

TWS/TWH CE 输入 (WE) 时钟前 / 后,写使能信号必须在 Slice LUT (配置为 SRL)的 WE 输入上稳定的时间。

TDS/TDH(3) 配置为数据输入 (DI) 的

AX/BX/CX/DX时钟之前,数据必须在 Slice (配置为 SRL)的 AX/BX/CX/DX 输入上稳定的时间。

注:1. 此参数包括一个配置为 2 位移位寄存器的 LUT。2. TXXCK = 建立时间 (时钟沿之前),TCKXX = 保持时间 (时钟沿之后)。3. 参数包括配置为一个数据输入 (DI2) 或具有共同移位的两个位元的 AI/BI/CI/DI。

图 5-30: Slice SRL 时序特性

ug190_5_30_050506

1 2 3 4 5 6 32

CLK

Write Enable(WE)

Shift_In (DI)

Address(A/B/C/D)

Data Out(A/B/C/D)

MSB(MC31/DMUX)

TDS

TILO TILO

0 1 1 0 1 0

20

X

X X X X X X X 0

0 1 1 1 1 10 0

TREG

TREG

TWS

1

Virtex-5 用户指南 www.xilinx.com/cn 203UG190 (v3.1) 2007 年 9 月 11 日

CLB/Slice 时序模型R

时钟事件 1:移位输入

在写 (移位输入)操作过程中,随着数据移到 SRL,A/B/C/D 输入上的地址处的寄存器单位元内容被改变。如果地址在时钟事件过程中未改变,则写入此寄存器的数据同步反映在 A/B/C/D 输出上。如果 A/B/C/D 输入在时钟事件过程中已改变,则可寻址输出 (A/B/C/D 输出)上的数据值无效。

• 在时间事件 1 之前的时间 TWS 处,写使能信号 (WE) 变为 High 有效,从而为后续的写操作启用 SRL。

• 在时间事件 1 之前的时间 TDS 处,数据在 SRL 的 DI 输入上变为有效 (0) ;在时间事件 1 后的长度为 TREG 的延迟之后,该数据反映在 A/B/C/D 输出上。因为地址 0 是在时钟事件 1 处指定的,而且 DI 输入上的数据是写入寄存器 0,所以该数据反映在 A/B/C/D 输出上。

时钟事件 2:移位输入

• 在时间事件 2 之前的时间 TDS 处,数据在 SRL 的 DI 输入上变为有效 (1) ;在时间事件 2 后的长度为 TREG 的延迟之后,该数据反映在 A/B/C/D 输出上。因为地址 0 仍然是在时钟事件 2 处指定的,而且 DI 输入上的数据是写入寄存器 0,所以该数据反映在 D 输出上。

时钟事件 3:移位输入 / 可寻址 (异步)读

所有读操作都是对 CLK 信号的异步操作。如果地址 (在各时钟事件之间)已经改变,则该地址处的寄存器内容在长度为 TILO 的延迟 (通过 LUT 的传播延迟)之后反映在可寻址输出 (A/B/C/D 输出)上。

• 在时间事件 3 之前的时间 TDS 处,数据在 SRL 的 DI 输入上变为有效 (1) ;在时间事件 3 之后的时间 TREG 处,该数据反映在 A/B/C/D 输出上。

• 地址已改变 (从 0 到 2)。此时寄存器 2 中存储的值是 0 (在本示例中,这是移入的第一个数据),该值在长度为 TILO 的延迟之后反映在 A/B/C/D 输出上。

时钟事件 32:MSB ( 高有效位)变化

在时间事件 32 之后的时间 TREG 处,移入 SRL 的首位经过 LUT A (SRL) 的 MC31 输出在 Slice 的 DMUX 输出上变为有效(在本例中是逻辑 0)。在时钟事件 1 之后的时间 TREG 和 TWOSCO 处,此过程也适用于 AMUX、BMUX、CMUX、DMUX 和 COUT 输出。

204 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 5 章: 可配置逻辑块 (CLB)R

Slice 进位链时序模型与参数第 193 页的图 5-24 所示为 Virtex-5 Slice 中的进位链。为简明起见,图中略去了 Virtex-5 Slice 的某些元件,只显示与本部分所述时序通路有关的元件。

Slice 进位链时序参数

表 5-10 所示为第 193 页的图 5-24 中大多数通路的 Slice 进位链时序参数。

Slice 进位链时序特性

图 5-31 所示为 Virtex-5 Slice 中实现的 Slice 进位链的时序特性。

表 5-10: Slice 进位链时序参数

参数 功能 描述

配置为进位链的 Slice LUT 的时序延迟

TAXCY/TBXCY/TCXCY/TDXCY AX/BX/CX/DX 输入到 COUT 输出

从 Slice 的 AX/BX/CX/DX 输入到 Slice 的 COUT 输出的传播延迟。

TBYP CIN 输入到 COUT 输出 从 Slice 的 CIN 输入到 Slice 的 COUT 输出的传播延迟。

TOPCYA/TOPCYB/TOPCYC/TOPCYD A/B/C/D 输入到 COUT 输出 从 Slice 的 A/B/C/D 输入到 Slice 的 COUT 输出的传播延迟。

TCINA/TCINB/TCINC/TCIND A/B/C/D 输入到 AMUX/BMUX/CMUX/DMUX 输出

使用 XOR(和数)时,从 Slice 的 A/B/C/D 输入到 Slice 的 AMUX/BMUX/CMUX/DMUX 输出的传播延迟。

配置为进位链的 Slice LUT 的建立和保持时间 (1)

TCINCK/TCKCIN CIN 数据输入 CLK 之前,来自 Slice 的 CIN 输入的数据必须在 Slice 时序元件 (配置为触发器)的 D 输入上稳定的时间。

注:1. TXXCK = 建立时间 (时钟沿之前),TCKXX = 保持时间 (时钟沿之后)。

图 5-31: Slice 进位链时序特性

ug190_5_31_050506

TCINCK

1 2 3

CLK

CIN(DATA)

SR (RESET)

AQ/BQ/CQ/DQ(OUT)

TCKO

TSRCK

TCKO

Virtex-5 用户指南 www.xilinx.com/cn 205UG190 (v3.1) 2007 年 9 月 11 日

CLB 基元R

• 在时间事件 1 之前的时间 TCINCK 处,来自 CIN 输入的数据在 Slice 寄存器的 D 输入上变为 High 有效。在时钟事件 (1) 之后的时间 TCKO 处,此数据反映在 AQ/BQ/CQ/DQ 当中的任一引脚上。

• 在时间事件 3 之前的时间 TSRCK 处,SR 信号 (配置为同步复位)变为 High 有效,从而复位 Slice 寄存器。在时钟事件 3 之后的时间 TCKO 处,此信号反映在 AQ/BQ/CQ/DQ 当中的任一引脚上。

CLB 基元《软件库指南》中提供了关于 CLB 基元的更多信息。

分布式 RAM 基元从 32 x 2 位到 256 x 1 位,共有七个可用基元,其中三个基元是单端口 RAM,两个基元是双端口 RAM,另外两个基元是四端口 RAM,如表 5-11 所示。

输入和输出数据是 1 位宽 (32 位 RAM 除外)。

图 5-32 所示为一般的单端口、双端口和四端口分布式 RAM 基元。A、ADDR 和 DPRA 信号是地址总线。

表 5-11: 单端口、双端口和四端口分布式 RAM

基元 RAM 大小 类型 地址输入

RAM32X1S 32 位 单端口 A[4:0] (读 / 写)

RAM32X1D 32 位 双端口 A[4:0] (读 / 写)

DPRA[4:0] (读)

RAM32M 32 位 四端口 ADDRA[4:0] (读)

ADDRB[4:0] (读)

ADDRC[4:0] (读)

ADDRD[4:0] (读 / 写)

RAM64X1S 64 位 单端口 A[5:0] (读 / 写)

RAM64X1D 64 位 双端口 A[5:0] (读 / 写)

DPRA[5:0] (读)

RAM64M 64 位 四端口 ADDRA[5:0] (读)

ADDRB[5:0] (读)

ADDRC[5:0] (读)

ADDRD[5:0] (读 / 写)

RAM128X1S 128 位 单端口 A[6:0] (读 / 写)

RAM128X1D 128 位 双端口 A[6:0] (读 / 写) DPRA[6:0] (读)

RAM256X1S 256 位 单端口 A[7:0] (读 / 写)

206 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 5 章: 可配置逻辑块 (CLB)R

可以用例化若干分布式 RAM 基元的方法实现宽存储器模块。

端口信号

在读取同一组存储单元时,各分布式 RAM 端口独立于另一端口操作。

时钟 - WCLK

此时钟用于同步写。数据和地址输入要求满足相对 WCLK 引脚的建立时间。

使能 - WE/WED

使能引脚影响端口的写功能。有效写使能阻止对存储器单元的任何写操作。有效写使能致使时钟沿将数据输入信号写入地址输入所指向的存储器位置。

地址 - A[#:0]、DPRA[#:0] 和 ADDRA[#:0] - ADDRD[#:0]

地址输入 A[#:0] (对于单端口和双端口)、DPRA[#:0] (对于双端口)和 ADDRA[#:0] - ADDRD[#:0] (对于四端口)选择读或写的存储器单元。端口的宽度确定所需的地址输入。有些地址输入不是 VHDL 或 Verilog 实例中的总线。表 5-11 概述了各地址引脚的功能。

数据输入 - D、DID[#:0]

数据输入 D (对于单端口和双端口)和 DID[#:0] (对于四端口)提供待写入 RAM 的新数据值。

数据输出 - O、SPO、DPO 和 DOA[#:0] - DOD[#:0]

数据输出 O (单端口或 SPO)、DPO (双端口)和 DOA[#:0] - DOD[#:0] (四端口)反映地址输入所指向的存储器单元的内容。继有效的写时钟沿之后,数据输出 (O、SPO 或 DOD[#:0])反映新写入的数据。

图 5-32: 单端口、双端口和四端口分布式 RAM 基元

RAM#X1S

UG190_5_32_051006

DO

WE

WCLK

A[#:0]

SPO DOD[#:0]

RAM#X1D

D

DPO

R/W Port

Read Port

WE

WCLK

A[#:0]

DPRA[#:0]

RAM#XM

DI[A:D][#:0]

DOC[#:0]

R/W Port

Read Port

Read Port

Read Port

WE

WCLK

ADDRD[#:0]

ADDRC[#:0]

DOB[#:0]ADDRB[#:0]

DOA[#:0]ADDRA[#:0]

Virtex-5 用户指南 www.xilinx.com/cn 207UG190 (v3.1) 2007 年 9 月 11 日

CLB 基元R

反转时钟引脚

时钟引脚 (CLK) 具有独立的反转选项。时钟信号可以在时钟的下降沿有效,也可以在时钟的上升沿有效,无需其他逻辑资源。默认是在时钟上升沿有效。

全局设置 / 复位 - GSR

全局设置 / 复位 (GSR) 信号不影响分布式 RAM 模块。

移位寄存器 (SRL) 基元一个基元可用于 32 位移位寄存器 (SRLC32E)。图 5-33 所示为该 32 位移位寄存器基元。

通过使用专用的多路器 (F7AMUX、F7BMUX 和 F8MUX)例化若干 32 位移位寄存器,可以在一个 Slice 中实现长达 128 位的可级联移位寄存器链。本技术文档的 “移位寄存器(只能在 SLICEM 中使用)”部分中的图 5-18 到图 5-20 所示为大于 32 位的可级联移位寄存器的各种实现。

端口信号

时钟 - CLK

可将时钟的上升沿或下降沿用于同步移位操作。数据和时钟使能输入引脚要求满足相对 CLK 沿的建立时间。

数据输入 - D

数据输入提供待移入移位寄存器的新数据 (1 位)。

时钟使能 - CE

时钟使能引脚作用于移位功能。无效的时钟使能引脚不向移位寄存器移入数据,也不写入新数据。将时钟使能置为有效允许将数据输入 (D) 写入第一个位置,并且将全部数据移动一个位置。当有新数据时,新数据会出现在输出引脚 (Q) 和可级联输出引脚 (Q31) 上。

地址 - A[4:0]

地址输入选择待读的数据位 (范围从 0 到 31)。第 n 个位出现在输出引脚 (Q) 上。地址输入对可级联输出引脚 (Q31) 没有影响。该引脚始终是移位寄存器的末位 (位 31)。

图 5-33: 32 位移位寄存器

SRLC32E

UG190_5_33_050506

DQ

A[4:0]6

CE

CLK

Q31

208 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 5 章: 可配置逻辑块 (CLB)R

数据输出 - Q

数据输出 Q 提供由地址输入选择的数据值 (1 位)。

数据输出 - Q31 (可选)

数据输出 Q31 提供 32 位移位寄存器的末位值。新数据在每次移位输入操作之后有效。

反转时钟引脚

时钟引脚 (CLK) 具有独立的反转选项。时钟信号可以在时钟的下降沿有效,也可以在其上升沿有效,无需其他逻辑资源。默认是时钟上升沿。

全局设置 / 复位 - GSR

全局设置 / 复位 (GSR) 信号不影响移位寄存器。

其他移位寄存器应用

同步移位寄存器

移位寄存器基元不使用同一 Slice 中的寄存器。要实现全同步读写移位寄存器,必须将输出引脚 Q 连接到触发器。如图 5-34 所示,移位寄存器和触发器共用一个时钟。

此配置提供了更好的时序方案并且简化了设计。因为必须考虑将触发器作为移位寄存器链中的 后一个寄存器,所以静态或动态地址应指向所需长度减一的位置。如果需要,亦可将可级联输出连接到触发器上。

静态长度移位寄存器

可级联 32 位移位寄存器可以实现任意静态长度模式的移位寄存器,无需使用专用多路复用器 (F7AMUX、F7BMUX 和 F8MUX)。图 5-35 所示为 72 位移位寄存器。只有 后一个 SRLC32E 基元需要将其地址输入固定为 0b00111。另外,也可以把移位寄存器的长度限制在 71 位 (地址固定为 0b00110),并且用触发器作为 后一级寄存器。(在 SRLC32E 基元中,移位寄存器的长度是地址输入 + 1。)

图 5-34: 同步移位寄存器

SynchronousOutputD QD Q

Address

CLK

(Write Enable)CE

SRLC32G FF

Q31

UG190_5_34_050506

Virtex-5 用户指南 www.xilinx.com/cn 209UG190 (v3.1) 2007 年 9 月 11 日

CLB 基元R

多路复用器基元每个 Slice 中有两个基元 (MUXF7 和 MUXF8)可用来访问专用的 F7AMUX、F7BMUX 和 F8MUX。这些多路复用器基元与 LUT 组合,还可用来构建较大宽度的多路复用器 (从 8:1 到 16:1)。“设计大型多路复用器”部分提供了关于构建较大多路复用器的更多信息。

端口信号

数据输入 - I0、I1

数据输入提供将由选择信号 (S) 选择的数据。

控制输入 - S

选择输入信号确定将输入数据连接到输出端 O。逻辑 0 选择 I0 输入,而逻辑 1 选择 I1 输入。

数据输出 - O

数据输出 Q 输出由控制输入所选择的数据值 (1 位)。

进位链基元CARRY4 基元为 Virtex-5 架构中的 Slice 提供快速进位逻辑。此基元与 LUT 配合工作,以便构建加法器和乘法器。通常可以用综合工具从标准 RTL 代码中推导出此基元。就性能和面积而言,综合工具可以找出 适合映射到此逻辑的算术和 / 或逻辑功能。 它还可正确地自动使用和连接此功能。第 193 页的图 5-24 所示为 CARRY4 框图。

图 5-35: 静态长度移位寄存器示例

LUT

SRLC32G

D

Q31

LUT

SRLC32G

D

Q31

LUT

SRLC32G

D OUT(72-bit SRL)

A[4:0]

Q31

Q

500111

D

UG190_5_35_050506

LUT

SRLC32G

D

Q31

LUT

SRLC32G

D

Q31

LUT

SRLC32G

D OUT(72-bit SRL)

A[4:0]

Q31

Q

FF

D Q

500110

D

210 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 5 章: 可配置逻辑块 (CLB)R

端口信号

和数输出 - O[3:0]

和数输出提供加减运算的 终结果。

进位输出 - CO[3:0]

进位输出提供每个位的进位输出。如果将 CO[3] 连接到另一 CARRY4 基元的 CI 输入,则可以创建更长的进位链。

数据输入 - DI[3:0]

数据输入用作进位先行逻辑的 “生成”信号。“生成”信号由 LUT 输出。

选择输入 - S[3:0]

选择输入用作进位先行逻辑的 “传播”信号。“传播”信号由 LUT 输出。

进位初始化 - CYINIT

进位初始化输入用来选择进位链中的首位。此引脚的值是 0 (对于加法)、1 (对于减法)或 AX 输入 (对于第一个动态进位位元)。

进位输入 - CI

进位输入用来级联各 Slice,以形成较长的进位链。要创建较长的进位链,将另一个 CARRY4 的 CO[3] 输出连接到此引脚即可。

Virtex-5 用户指南 www.xilinx.com/cn 211UG190 (v3.1) 2007 年 9 月 11 日

R

第 6 章

SelectIO 资源

I/O 模块概述本文连续三章介绍输入 / 输出特性和逻辑资源。

第 6 章 “SelectIO 资源”讲述输出驱动器和输入接收器的电气特性,并且给出多种标准接口的详尽示例。第 7 章 “SelectIO 逻辑资源”讲述输入输出数据寄存器及其双倍数据速率 (DDR) 操作以及可编程输入延迟 (IDELAY)。第 8 章 “高级 SelectIO 逻辑资源”讲述数据串行器 / 解串器 (SERDES)。

I/O 模块包含两个 IOB、两个 ILOGIC、两个 OLOGIC 和两个 IODELAY。图 6-1 所示为 Virtex-5 I/O 模块。

图 6-1: Virtex-5 I/O 模块

ug190_6_01_041106

ILOGIC(Chapter 7)

or ISERDES

(Chapter 8)

OLOGIC(Chapter 7)

or OSERDES(Chapter 8)

IODELAY(Chapter 7)

IODELAY(Chapter 7)

IOB(Chapter 6) Pad

ILOGIC(Chapter 7)

or ISERDES

(Chapter 8)

OLOGIC(Chapter 7)

or OSERDES(Chapter 8)

IOB(Chapter 6) Pad

212 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 6 章: SelectIO 资源R

SelectIO 资源简介Virtex-5 FPGA 具有可配置高性能 SelectIOTM 驱动器和接收器,可支持种类繁多的标准接口。强大的功能集包括输出强度和斜率的可编程控制以及使用数控阻抗 (DCI) 的片上终端。

每个 IOB 包含输入、输出和三态 SelectIO 驱动器。这些驱动器可以按照各种 I/O 标准配置。差分 I/O 使用在一个模块中的两个 IOB。

• 单端 I/O 标准 (LVCMOS、LVTTL、HSTL、SSTL、GTL、PCI)

• 差分 I/O 标准 (LVDS、HT、LVPECL、BLVDS、差分 HSTL 和 SSTL)

• 差分输入和 VREF 相关输入由 VCCAUX 供电

如第 7 章 “SelectIO 逻辑资源”中所述,每个 Virtex-5 I/O 模块包含两个 IOB,还包含两个 ILOGIC 块和两个 OLOGIC 块。

图 6-2 所示为基本 IOB 及其与内部逻辑和器件焊盘的连接。

各 IOB 直接连接 ILOGIC/OLOGIC 对,该逻辑对包含输入和输出逻辑资源,可用于数据和 IOB 的三态控制。如第 8 章 “高级 SelectIO 逻辑资源”中所述,ILOGIC 和 OLOGIC 可分别配置成 ISERDES 和 OSERDES。

SelectIO 资源一般指导原则本部分简要概括用 Virtex-5 SelectIO 资源进行设计时应考虑的一般指导原则。

图 6-2: 基本 IOB 图

ug190_6_02_021306

PADOUT

DIFFO_IN

DIFFO_OUT

I

T

O

DIFFI_IN

OUTBUFINBUF

PAD

Virtex-5 用户指南 www.xilinx.com/cn 213UG190 (v3.1) 2007 年 9 月 11 日

SelectIO 资源一般指导原则R

Virtex-5 I/O 组规则在 Virtex-5 器件中,除了中心列的某些例外,一个 I/O 组由 40 个 IOB 组成(高度为 20 个 CLB,一个时钟区域)。中心列中都有四个半尺寸组 (20 个 IOB)和一个配置组。组数取决于器件尺寸,较大的器件在中心列中还附加全尺寸组。《Virtex-5 概述》中按器件类型列出了 I/O 组的总数。例如,XC5VLX30 有 12 个可用 I/O 组和一个配置组。图 6-3 所示示例是 XC5VLX30 的 I/O 组的列式平面布置。

参考电压 (VREF) 引脚

带有差分放大器输入缓冲器的低压单端 I/O 标准需要输入参考电压 (VREF)。VREF 是对 Virtex-5 器件的外部输入引脚。如果使用需要差分放大器输入缓冲器的单端 I/O 标准,则在各个 I/O 组中,每 20 个 I/O 引脚中就有一个自动配置成 VREF 输入。

输出驱动源电压 (VCCO) 引脚

Virtex-5 器件支持的低压 I/O 标准有许多需要不同的输出驱动电压 (VCCO)。因此,各器件常常支持多个输出驱动源电压。

给定 VCCO 组中的各输出缓冲器必须共用同样的输出驱动源电压。使用 VCCO 电压源的输入缓冲器标准有:LVTTL、LVCMOS、PCI、LVDCI 及其他 DCI 标准。

图 6-3: Virtex-5 XC5VLX30 I/O 组

ug190_6_03_021306

BANK40 I/O

BANK20 I/O

BANK20 I/O

BANK20 I/O

BANK20 I/O

BANK40 I/O

BANK40 I/O

BANK40 I/O

CONFIG

BANK40 I/O

BANK40 I/O

BANK40 I/O

BANK40 I/O

214 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 6 章: SelectIO 资源R

Virtex-5 数控阻抗 (DCI)

简介

随着 FPGA 日益增大和系统时钟速率日益提高,PC 电路板设计和制造越来越困难。由于边沿速率不断提高,保持信号完整性成了关键问题。PC 电路板迹线必须妥善端接才能避免反射或振铃现象。

迹线端接的传统方法是加装电阻器,使得输出和 / 或输入能够将接收器或驱动器的阻抗与迹线的阻抗匹配起来。然而,由于器件 I/O 增多,在靠近器件引脚处加装电阻器会加大电路板面积和组件数,并且在某些情况下从物理角度讲是不可能的。为了解决这些问题并获得较好的信号完整性,Xilinx 开发了数控阻抗 (DCI) 技术。

DCI 通过调整输出阻抗或输入终端,以精确匹配传输线的特征阻抗。DCI 将 I/O 的阻抗自动调整到与外部参考电阻相等。这样就可补偿由工艺偏差引起的 I/O 阻抗变化。DCI 还会不断调整 I/O 的阻抗,以补偿温度变化和供电电压波动。

在使用可控阻抗驱动器的情况下,DCI 控制驱动器阻抗以匹配两个参考电阻器,也可以选择匹配这两个参考电阻器的一半阻值。DCI 免除了对外部串联终端电阻器的需要。

DCI 可以为发射器或接收器提供并联或串联终端。这样就免除了对板上终端电阻器的需要,可以降低电路板布线难度和组件数,并且可以通过消除短线反射来改善信号完整性。如果终端电阻器的位置距离传输线端点太远,就会发生短线反射。使用 DCI,可使终端电阻器尽量靠近输出驱动器或输入缓冲器,因此可以消除短线反射。

DCI 级联

以前,在组中使用 DCI I/O 标准需要将外部参考电阻器连接到同组中的 VRN 和 VRP 引脚。VRN/VRP 引脚提供一个参考电压,由内部 DCI 电路用来调整 I/O 输出阻抗,以匹配外部参考电阻器。如图 6-4 所示,一条数控总线遍布于整个组内,用来控制各 I/O 的阻抗。

使用 DCI I/O 标准的 Virtex-5 I/O 组现在可以选择从另一个 DCI 组得到 DCI 阻抗值。对于 DCI 级联,一个组 (主组)必须将其 VRN/VRP 引脚连接到外部参考电阻器。同列中的其他组 (从组)可以使用和主组同样阻抗的 DCI 标准,不必将自己的 VRN/VRP 引脚连接到外部电阻器。级联组中的 DCI 阻抗控制是从主组获得。

图 6-4: 在组内使用 DCI

UG190_6_95_019507

DCI VRN/VRPTo

LocalBank

Virtex-5 用户指南 www.xilinx.com/cn 215UG190 (v3.1) 2007 年 9 月 11 日

SelectIO 资源一般指导原则R

使用 DCI 级联时,主组中的 DCI 控制电路产生 DCI 控制,并以菊花链方式将其传送到级联组。特定组的 DCI 控制可以来自紧邻的上组或下组。使用 DCI 级联时,只需要用到主组的 VRN/VRP 引脚。

另外,使用 DCI 级联时,只有一对 VRN/VRP 引脚为多个组提供 DCI 参考电压。使用 DCI 级联的好处是:

• 降低总体功耗,因为需要的参考电压数较少。

• 腾出从组上的 VRN/VRP 引脚用于一般客户用途。

• 允许中心列中的非 DCI 组 (组 1 和 2)使用 DCI I/O 标准,即使这些组没有 VRN/VRP 引脚。级联不能跨越组 0。

图 6-5 所示为支持的 DCI 多组级联。组 B 是主组。

图 6-5: 支持的 DCI 多组级联

UG190_6_96_012907

DCI VRN/VRP

Bank A

Bank B

Bank C

ToLocalBank

ToLocalBank

ToLocalBank

To Banks Above (When Cascaded)

To Banks Below(When Cascaded)

216 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 6 章: SelectIO 资源R

使用 DCI 级联时的指导原则如下:

• 主组和从组必须都在器件的同一列上 (左列、中列或右列)。

• 主组和从组必须具有同样的 VCCO 和 VREF (如果适用)电压。

• 所有主从组之间必须满足 DCI I/O 组合兼容性规则 (例如,所有主从组之间只允许有一种使用单终端类型的 DCI I/O 标准)。实现 DCI 级联时的 DCI I/O 标准兼容性限制不只是针对一个组,而是制约所有主从组。

• DCI 级联必须是跨同列中的连续组延伸。使用 DCI 级联时不能跳过某些组。作为示例,请考虑同列中 A、B、C 和 D 四个组自上而下排列的情形。在这种情况下,若假定其他所有指导原则均已满足,则以下是允许的 DCI 级联方案:

♦ DCI 级联可以延伸到组 A 或组 C,也可同时延伸到这两个组。

♦ 既然组 D 是在同列中,DCI 级联也可以延伸到组 D。不过,DCI 级联还必须延伸到介于中间的组 C。如果在组 C 中实现 DCI I/O 标准,则全部三个组 (B、C 和 D)之间都必须遵守 DCI I/O 组合兼容性。

• 只要满足上述指导原则,DCI 级联就可以纵跨整个列。

• 要确定相邻组的位置。可以根据 Partgen 生成的封装文件 (partgen -v XC5VLX50TFF1136) 完全确定组位置信息。生成的封装文件 (扩展名为 .pkg)包含 XY I/O 位置信息。标识符 X 表示同列中的 I/O。标识符 Y 表示特定组中某 I/O 的位置。文件还能表示出组编号。跨组边界的连续 Y 位置表示相邻的组。例如,FF1136 封装中的 XC5VLXT 表示从 I/O 的 X0Y159 端起到 I/O 的 X0Y120 位置止的组 11。组 13 从 I/O X0Y119 起,到 X0Y80 止。组 15 从 I/O X0Y199 起,到 X0Y160 止。这说明组 13 是在组 11 的南侧,而组 15 是在其北侧。因为这两个组的 Y 坐标是连续的,所以认为这两个组连续,可以进行 DCI 级联。可以级联到未键合的组。

• 可以使用约束指南中所述的 DCI_CASCADE 约束启用 DCI 级联。

Xilinx DCI

DCI 使用每组中的两个多用途参考引脚控制驱动器的阻抗或该组中所有 I/O 的并联终端值。N 参考引脚 (VRN) 必须由一个参考电阻器上拉到 VCCO,而 P 参考引脚 (VRP) 则必须由另一个参考电阻器下拉到接地。各参考电阻器的阻值应等于 PC 电路板迹线的特征阻抗,或者应是该值的两倍。请见第 222 页的 “终端接 VCCO/2 (分裂终端)的驱动器”。

当在特定组上使用 DCI I/O 标准时,两个多用途参考引脚不可用作常规 I/O。但是,如果该组中未使用 DCI I/O 标准,则可以将这些引脚用作常规 I/O 引脚。《Virtex-5 封装技术规范》给出了详细的引脚描述。

DCI 通过有选择地开启或关闭 I/O 中的晶体管来调整 I/O 的阻抗,将阻抗调整到与外部参考电阻器匹配。阻抗调整过程有两个阶段。第一阶段是通过控制 I/O 中的较大晶体管来补偿工艺偏差。这个阶段是在器件启动程序过程中进行。第二阶段是通过控制 I/O 中的较小晶体管来保持阻抗与温度和供电电压的变化相适应。这个阶段紧接第一阶段之后开始并无限期地持续下去,即使在器件工作时也不停止。默认情况下,DONE 引脚直到阻抗调整过程的第一阶段完成才转为 High。

Virtex-5 用户指南 www.xilinx.com/cn 217UG190 (v3.1) 2007 年 9 月 11 日

SelectIO 资源一般指导原则R

在配置之后,可以通过例化 DCIRESET 基元来启动阻抗调整第一阶段中的阻抗粗校。在器件工作时,通过翻转对 DCIRESET 基元的 RST 输入,可以将 DCI 状态机复位,使阻抗调整的两个阶段相继进行。所有使用 DCI 的 I/O 都在来自 DCIRESET 块的 LOCKED 输出置为有效之后才可使用。

对于从器件上电到进入标称工作状态期间温度和 / 或供电电压变化显著的应用,这一功能很有用。一旦达到标称工作温度和电压,执行阻抗调整的第一阶段可给阻抗调整的第二阶段留下充分的余地。

对于可控阻抗输出驱动器,可以将阻抗调整为与参考电阻器匹配,也可以将其调整为与参考电阻器的一半阻值匹配。对于片上终端,始终将终端调整为与参考电阻器匹配。

DCI 可以将输出驱动器配置成以下类型:

1. 可控阻抗驱动器 (源终端)

2. 半阻抗可控阻抗驱动器 (源终端)

DCI 还可将输入配置成具有以下类型的片上终端:

1. 接 VCCO 的输入终端 (单终端)

2. 接 VCCO/2 的输入终端 (分裂终端,Thevenin 等效)

对于双向操作,线路两端都可加 DCI 终端,与方向无关:

1. 终端接 VCCO (单终端)的驱动器

2. 终端接 VCCO/2 (分裂终端,Thevenin 等效)的驱动器

另外,双向点对点线路也可以在两端使用可控阻抗驱动器 (带三态缓冲器)。

可控阻抗驱动器 (源终端)

有些 I/O 标准 (如 LVCMOS)必须具有与所驱动线路的特征阻抗相匹配的驱动阻抗。DCI 可以提供可控阻抗输出驱动器,无需外部源终端即可消除反射。阻抗由阻值与迹线阻抗相等的外部参考电阻器设定。

218 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 6 章: SelectIO 资源R

支持可控阻抗驱动器的 DCI I/O 标准有:LVDCI_15、LVDCI_18、LVDCI_25、LVDCI_33、HSLVDCI_15、HSLVDCI_18、HSLVDCI_25 和 HSLVDCI_33。图 6-6 所示为 Virtex-5 器件中的可控阻抗驱动器。

图 6-6: 可控阻抗驱动器

UG190_6_04_012706

IOBR

Virtex-5 DCI

Z0

Virtex-5 用户指南 www.xilinx.com/cn 219UG190 (v3.1) 2007 年 9 月 11 日

SelectIO 资源一般指导原则R

半阻抗可控阻抗驱动器 (源终端)

DCI 还提供具有参考电阻器一半阻抗的驱动器。这种参考电阻器阻值翻倍的方法可将这些电阻器的静态功耗减少一半。支持半阻抗可控阻抗驱动器的 DCI I/O 标准有 LVDCI_DV2_15、LVDCI_DV2_18 和 LVDCI_DV2_25。

图 6-7 所示为 Virtex-5 器件中的半阻抗可控驱动器。参考电阻器 R 必须是 2 × Z0 才能与 Z0 的阻抗匹配。

接 VCCO 的输入终端 (单终端)

有些 I/O 标准需要接 VCCO 的输入终端 (见图 6-8)。

DCI 还可使用单终端提供接 VCCO 的输入终端。终端电阻由参考电阻器设定。GTL 和 HSTL 标准均由 50 Ω 的参考电阻器控制。支持单终端的 DCI I/O 标准有:GTL_DCI、GTLP_DCI、HSTL_III_DCI、HSTL_III_DCI_18、HSTL_IV_DCI 和 HSTL_IV_DCI_18。

图 6-7: 半阻抗可控阻抗驱动器

UG190_6_05_021206

IOBR/2

Virtex-5 DCI

Z0

图 6-8: 接 VCCO 的输入终端 (不使用 DCI)

R

UG190_6_06_021306

VCCO

VREF

IOB

Z0

Virtex-5

220 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 6 章: SelectIO 资源R

图 6-9 所示为 Virtex-5 器件中的 DCI 单终端。

接 VCCO/2 的输入终端 (分裂终端)

有些 I/O 标准 (如 HSTL I 类和 II 类)需要 VCCO/2 的输入终端电压 (见图 6-10)。

这相当于使用由两个电阻器组成的分裂终端。一个电阻器接 VCCO,另一个接地。电阻器的阻值为 2R。DCI 使用分裂终端提供接 VCCO/2 的终端。终端电阻由外部参考电阻器设定,即接 VCCO 和接地的电阻器阻值各是参考电阻器的两倍。HSTL 和 SSTL 标准都需要 50 Ω 的外部参考电阻器。支持分裂终端的 DCI 输入标准如表 6-1 所示。

图 6-9: 使用 DCI 单终端的输入终端

R

UG190_6_07_021206

VCCO

VREF

IOB

Z0

Virtex-5 DCI

图 6-10: 接 VCCO/2 的输入终端 (不使用 DCI)

表 6-1: 支持分裂终端的 DCI 输入标准

HSTL_I_DCI DIFF_HSTL_I_DCI SSTL2_I_DCI DIFF_SSTL2_I_DCI

HSTL_I_DCI_18 DIFF_HSTL_I_DCI_18 SSTL2_II_DCI DIFF_SSTL2_II_DCI

HSTL_II_DCI DIFF_HSTL_II_DCI SSTL18_I_DCI DIFF_SSTL18_I_DCI

HSTL_II_DCI_18 DIFF_HSTL_II_DCI_18 SSTL18_II_DCI DIFF_SSTL18_II_DCI

HSTL_II_T_DCI SSTL2_II_T_DCI

HSTL_II_T_DCI_18 SSTL18_II_T_DCI

R

UG190_6_08_021206

VCCO/2

VREF

IOB

Z0

Virtex-5

Virtex-5 用户指南 www.xilinx.com/cn 221UG190 (v3.1) 2007 年 9 月 11 日

SelectIO 资源一般指导原则R

图 6-11 所示为 Virtex-5 器件中的分裂终端。

终端接 VCCO (单终端)的驱动器

有些 I/O 标准(如 HSTL IV 类)需要接 VCCO 的输出终端。图 6-12 所示为接 VCCO 的输出终端。

DCI 可使用单终端提供接 VCCO 的输出终端。在这种情况下,DCI 只控制终端的阻抗,不控制驱动器。GTL 和 HSTL 标准都需要 50 Ω 的外部参考电阻器。支持单终端驱动器的 DCI I/O 标准有:GTL_DCI、GTLP_DCI、HSTL_IV_DCI 和 HSTL_IV_DCI_18。

图 6-11: 接 VCCO/2 的输入终端 (使用 DCI 分裂终端)

2R

2R

UG190_6_09_021206

VCCO

VREF

IOB

Z0

Virtex-5 DCI

图 6-12: 终端接 VCCO 的驱动器 (不使用 DCI)

R

UG190_6_10_021206

VCCO

IOB

Z0

Virtex-5

222 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 6 章: SelectIO 资源R

图 6-13 所示为 Virtex-5 器件中的单终端驱动器。

终端接 VCCO/2 (分裂终端)的驱动器

有些 I/O 标准 (如 HSTL II 类)需要接 VCCO/2 的输出终端 (见图 6-14)。

DCI 可使用分裂终端提供接 VCCO/2 的输出终端。DCI 只控制终端的阻抗,不控制驱动器。HSTL 和 SSTL 标准都需要 50 Ω 的外部参考电阻器。支持分裂终端驱动器的 DCI 输出标准如表 6-2 所示。

图 6-13: 终端接 VCCO 的驱动器 (使用 DCI 单终端)

R

UG190_6_11_021206

VCCOIOB

Z0

Virtex-5 DCI

图 6-14: 终端接 VCCO/2 的驱动器 (不使用 DCI)

表 6-2: 支持分裂终端的 DCI 输出标准

HSTL_II_DCI DIFF_HSTL_II_DCI SSTL2_II_DCI DIFF_SSTL2_II_DCI

HSTL_II_DCI_18 DIFF_HSTL_II_DCI_18 SSTL18_II_DCI DIFF_SSTL18_II_DCI

R

UG190_6_12_021206

VCCO/2

IOB

Z0

Virtex-5

Virtex-5 用户指南 www.xilinx.com/cn 223UG190 (v3.1) 2007 年 9 月 11 日

SelectIO 资源一般指导原则R

图 6-15 所示为 Virtex-5 器件中的分裂终端驱动器。

Virtex-5 I/O 标准中的 DCIDCI 使用单端 I/O 标准。DCI 支持表 6-3 所列标准。

要正确使用 Virtex-5 器件中的 DCI,用户必须遵循以下规则:

1. VCCO 引脚必须根据该组中的 IOSTANDARD 连接到适当的 VCCO 电压。

2. 必须通过使用 IOSTANDARD 属性或 HDL 代码中的例化在软件中使用正确的 DCI I/O 缓冲器。

3. 外部参考电阻器必须连接到该组中的多用途引脚 (VRN 和 VRP)。这两个多用途引脚不得用作常规用户 I/O。关于引脚的具体位置,请查阅 Virtex-5 管脚表。引脚 VRN 必须由其参考电阻器上拉到 VCCO。引脚 VRP 必须由其参考电阻器下拉到地。

4. 所选外部参考电阻器的阻值应能提供所需输出阻抗。如果使用 GTL_DCI、HSTL_DCI 或 SSTL_DCI I/O 标准,则外部参考电阻器的阻值应为 50 Ω。

5. 参考电阻器的阻值必须在所支持的范围 (20 Ω - 100 Ω) 内。

6. 请遵循以下 DCI I/O 组合规则:

图 6-15: 终端接 VCCO/2 的驱动器 (使用 DCI 分裂终端)

2R

2R

UG190_6_13_021206

VCCOIOB

Z0

Virtex-5 DCI

表 6-3: Virtex-5 DCI I/O 标准

LVDCI HSTL_I_DCI DIFF_HSTL_I_DCI HSTL_III_DCI SSTL2_I_DCI DIFF_SSTL2_I_DCI

HSLVDCI HSTL_I_DCI_18 DIFF_HSTL_I_DCI_18 HSTL_III_DCI_18 SSTL2_II_DCI DIFF_SSTL2_II_DCI

LVDCI_DV2 HSTL_II_DCI DIFF_HSTL_II_DCI HSTL_IV_DCI SSTL18_I_DCI DIFF_SSTL18_I_DCI

GTL_DCI HSTL_II_DCI_18 DIFF_HSTL_II_DCI_18 HSTL_IV_DCI_18 SSTL18_II_DCI DIFF_SSTL18_II_DCI

GTLP_DCI HSTL_II_T_DCI SSTL2_II_T_DCI

HSTL_II_T_DCI_18 SSTL18_II_T_DCI

224 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 6 章: SelectIO 资源R

a. VREF 必须兼顾同组中的所有输入。

b. VCCO 必须兼顾同组中的所有输入和输出。

c. 每组中只可有一个使用单终端类型的 DCI I/O 标准。

d. 每组中只可有一个使用分裂终端类型的 DCI I/O 标准。

e. 单终端和分裂终端、可控阻抗驱动器和半阻抗可控阻抗驱动器可以在同组中并存。

7. 组 1 和组 2 不支持 DCI。

DCI 三态输出的行为如下:

如果一个 LVDCI 或 LVDCI_DV2 驱动器处于三态,则驱动器就是三态。如果一个单终端或分裂终端驱动器处于三态,则驱动器就是三态,但终端电阻器保持不变。

以下部分列出了针对各 DCI I/O 标准必须采取的措施。

DCI 用法示例

• 图 6-16 提供的示例说明如何使用 HSTL_I_DCI、HSTL_II_DCI、HSTL_III_DCI 和 HSTL_IV_DCI I/O 标准。

• 图 6-17 提供的示例说明如何使用 SSTL2_I_DCI 和 SSTL2_II_DCI I/O 标准。

Virtex-5 用户指南 www.xilinx.com/cn 225UG190 (v3.1) 2007 年 9 月 11 日

SelectIO 资源一般指导原则R

图 6-16: HSTL DCI 用法示例

R R

R R

R R

R R

R R

2R

2R

R

2R

R 2R

2R

2R 2R

2R

ug190_6_14_021206

Conventional

DCI TransmitConventionalReceive

ConventionalTransmitDCI Receive

DCI TransmitDCI Receive

Bidirectional

ReferenceResistor

RecommendedZ0

VRN = VRP = R = Z0

50Ω

VRN = VRP = R = Z0

50Ω

VRN = VRP = R = Z0

50Ω

VRN = VRP = R = Z0

50Ω

HSTL_I HSTL_II HSTL_III HSTL_IV

N/A N/A

R

R

R

R

Z0

R

R

2R

2R

2R

2R

Z0

Z0

Z0

Z0Z0

Z0Z0

Z0

Z0Z0Z0

Z0

Z0

Z0

Z0

Virtex-5DCI

Virtex-5DCI

Virtex-5DCI

Z0

Virtex-5DCI

Virtex-5DCI

Virtex-5DCI

Virtex-5DCI

Virtex-5DCI

Virtex-5DCI

Virtex-5DCI

Virtex-5DCI

Virtex-5DCI

Virtex-5DCI

Virtex-5DCI

Virtex-5DCIVirtex-5

DCI

Virtex-5DCI

Virtex-5DCI

2R

2R

2R

2RZ0

R R

VCCO/2

VCCO/2

VCCO/2

VCCO/2

VCCO/2 VCCO/2 VCCO VCCO VCCO

VCCOVCCO

VCCOVCCO

VCCO

VCCO

VCCOVCCOVCCOVCCO

VCCOVCCO

VCCOVCCOVCCO

VCCOVCCOVCCO VCCO

Notes:1. Z0 is the recommended PCB trace impedance.

226 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 6 章: SelectIO 资源R

图 6-17: SSTL DCI 用法示例

ug190_6_15_041106

Conventional

DCI TransmitConventionalReceive

ConventionalTransmitDCI Receive

DCI TransmitDCI Receive

Bidirectional

ReferenceResistor

RecommendedZ0(2)

VRN = VRP = R = Z0

50 Ω

VRN = VRP = R = Z0

50 Ω

SSTL2_I or SSTL18_I SSTL2_II or SSTL18_II

N/A

Z0

R

VCCO/2

Z0R/2

R R

VCCO/2 VCCO/2

Z0R/2

R

VCCO/2

Z0R/2

2R

2R

VCCO

Z0R/2

2R

2R

VCCO

2R R

VCCO VCCO/2

2R

Z0

R

VCCO/2

Z0

2R

2R

VCCO

2R

2R

VCCO

Z0

2R

2R

VCCO

Z0

2R

2R

VCCO

2R

2R

VCCO

25Ω(1)

25Ω(1) 25Ω(1)

25Ω(1)

25Ω(1)

25ΩVirtex-5

DCI

Virtex-5DCI Virtex-5

DCIVirtex-5

DCIVirtex-5 DCI

Virtex-5DCI

Virtex-5DCI

Virtex-5DCI Virtex-5

DCI

Virtex-5DCI

Notes:1. The SSTL-compatible 25 Ω or 20 Ω series resistor is accounted for in the DCI buffer, and it is not DCI controlled.2. Z0 is the recommended PCB trace impedance.

Virtex-5 用户指南 www.xilinx.com/cn 227UG190 (v3.1) 2007 年 9 月 11 日

Virtex-5 SelectIO 基元R

Virtex-5 SelectIO 基元Xilinx 软件库罗列了大量基元,可支持在 Virtex-5 I/O 基元中使用多种 I/O 标准。以下五个通用基元名称代表了大多数可用的单端 I/O 标准。

• IBUF (输入缓冲器)

• IBUFG (时钟输入缓冲器)

• OBUF (输出缓冲器)

• OBUFT (三态输出缓冲器)

• IOBUF (输入 / 输出缓冲器)

以下五个通用基元名称代表了大多数可用的差分 I/O 标准:

• IBUFDS (输入缓冲器)

• IBUFGDS (时钟输入缓冲器)

• OBUFDS (输出缓冲器)

• OBUFTDS (三态输出缓冲器)

• IOBUFDS (输入 / 输出缓冲器)

IBUF 和 IBUFG用作 Virtex-5 器件输入的信号必须使用一个输入缓冲器 (IBUF)。图 6-18 所示为通用 Virtex-5 IBUF 基元。

IBUF 与 IBUFG 基元相同。当输入缓冲器用作时钟输入时,使用 IBUFG。在 Xilinx 软件工具中,IBUFG 自动被放在时钟输入端。

OBUF必须使用输出缓冲器 (OBUF) 将信号从 Virtex-5 器件驱动到外部输出焊盘。图 6-19 所示为通用 Virtex-5 OBUF 基元。

图 6-18: 输入缓冲器 (IBUF/IBUFG) 基元

ug190_6_16_022806

IBUF/IBUFG

O (Output)into FPGA

I (Input)From device pad

图 6-19: 输出缓冲器 (OBUF) 基元

ug190_6_17_022806

OBUF

O (Output)to device pad

I (Input)From FPGA

228 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 6 章: SelectIO 资源R

OBUFT通用三态输出缓冲器 OBUFT (图 6-20 所示)通常用来实现三态输出或双向 I/O。

IOBUF当双向信号需要输入缓冲器和具有 High 有效三态引脚的三态输出缓冲器时,需要使用 IOBUF 基元。图 6-21 所示为通用 Virtex-5 I/O IOBUF。

IBUFDS 和 IBUFGDS差分基元的相应用法和规则与单端 SelectIO 基元的相似。差分 SelectIO 基元有两个来往于器件焊盘的引脚,用来显示差分对中的 P 沟道和 N 沟道引脚。N 沟道引脚带有 “B”后缀。

图 6-22 所示为差分输入缓冲器基元。

图 6-20: 三态输出缓冲器 (OBUFT) 基元

ug190_6_18_022806

OBUFT

O (Output)to device pad

I (Input)From FPGA

T3-state input

图 6-21: 输入 / 输出缓冲器 (IOBUF) 基元

ug190_6_19_022806

IOBUF

I/O to/from device pad

I (Input)from FPGA

O (Output)to FPGA

T3-state input

图 6-22: 差分输入缓冲器基元 (IBUFDS/IBUFGDS)

ug190_6_20_022806

+

I

IB

O

IBUFDS/IBUFGDS

Inputs fromdevice pads

Output toFPGA

Virtex-5 用户指南 www.xilinx.com/cn 229UG190 (v3.1) 2007 年 9 月 11 日

Virtex-5 SelectIO 基元R

OBUFDS图 6-23 所示为差分输出缓冲器基元。

OBUFTDS图 6-24 所示为差分三态输出缓冲器基元。

IOBUFDS图 6-25 所示为差分输入 / 输出缓冲器基元。

图 6-23: 差分输出缓冲器基元 (OBUFDS)

ug190_6_21_022806

+

– OB

OI

OBUFDS

Input from FPGA

Output toDevice Pads

图 6-24: 差分三态输出缓冲器基元 (OBUFTDS)

ug190_6_22_022806

+

– OB

OI

T

OBUFTDS

Input from FPGA

3-state Input

Output toDevice Pads

图 6-25: 差分输入 / 输出缓冲器基元 (IOBUFDS)

ug190_6_23_022806

IOBUFDS

I/O to/fromdevice pad

I (Input)from FPGA

O (Output)to FPGA

T3-state Input

+

+

IO

IOB

230 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 6 章: SelectIO 资源R

Virtex-5 SelectIO 属性 / 约束可以通过与某些 Virtex-5 I/O 资源功能 (如:位置约束、输入延迟、输出驱动强度和斜率)相关的属性 / 约束使用这些功能。有关更多信息,请到 Xilinx 网站查阅 “约束指南”,其中有语法示例和 VHDL/Verilog 参考代码。《软件手册》中提供了该指南,其网址是:http://www.support.xilinx.com/cn/support/software_manuals.htm

位置约束

必须使用位置约束 (LOC) 指定被例化的 I/O 基元的 I/O 位置。位置约束的可能值是全部外部端口标识符 (如 A8、M5、AM6 等)。这些值取决于器件和封装的尺寸。

LOC 属性在 UCF 文件中使用以下语法:

INST <I/O_BUFFER_INSTANTIATION_NAME> LOC = "<EXTERNAL_PORT_IDENTIFIER>";

例如:

INST MY_IO LOC=R7;

IOSTANDARD 属性

IOSTANDARD 属性可用来为所有 I/O 缓冲器选择一个 I/O 标准的值。表 6-39 列出了支持的标准。IOSTANDARD 属性在 UCF 文件中使用以下语法:

INST <I/O_BUFFER_INSTANTIATION_NAME> IOSTANDARD=”<IOSTANDARD VALUE>”;

对于单端 I/O,IOSTANDARD 的默认值是 LVCMOS25 ;对于差分 I/O,其默认值是 LVDS_25。

输出斜率属性

此属性有若干可选属性值,用来为单端 I/O 输出缓冲器选择所需斜率。对于 LVTTL 和 LVCMOS 输出缓冲器 (OBUF、OBUFT 和 IOBUF),可用 SLEW 属性指定所需斜率。

SLEW 属性的允许值是:

• SLEW = SLOW (默认)

• SLEW = FAST

SLEW 属性在 UCF 文件中使用以下语法:

INST <I/O_BUFFER_INSTANTIATION_NAME> SLEW = "<SLEW_VALUE>";

默认情况下,各输出缓冲器的斜率设置为 SLOW。此默认值用来 小化在切换非关键性信号时电源总线上的瞬时变化。

Virtex-5 用户指南 www.xilinx.com/cn 231UG190 (v3.1) 2007 年 9 月 11 日

Virtex-5 SelectIO 基元R

输出驱动强度属性

对于 LVTTL 和 LVCMOS 输出缓冲器(OBUF、OBUFT 和 IOBUF),可用 DRIVE 属性指定所需驱动强度 (单位 mA)。

DRIVE 属性的允许值是:

• DRIVE = 2

• DRIVE = 4

• DRIVE = 6

• DRIVE = 8

• DRIVE = 12 (默认)

• DRIVE = 16

• DRIVE = 24

LVCMOS12 仅支持 2、4、6 和 8 mA 的 DRIVE 设置。LVCMOS15 和 LVCMOS18 仅支持 2、4、6、8、12 和 16 mA 的 DRIVE 设置。

DRIVE 属性在 UCF 文件中使用以下语法:

INST <I/O_BUFFER_INSTANTIATION_NAME> DRIVE = "<DRIVE_VALUE>";

IBUF、OBUFT 和 IOBUF 的 PULLUP/PULLDOWN/KEEPER

当使用三态输出 (OBUFT) 或双向 (IOBUF) 缓冲器时,输出可以有一个弱上拉电阻器、弱下拉电阻器或弱 “保持器”电路。对于输入 (IBUF) 缓冲器,输入可以有一个弱上拉电阻器或弱下拉电阻器。将以下可能的约束值添加到相应的缓冲器网络上,即可调用这一功能:

• PULLUP

• PULLDOWN

• KEEPER

差分终端属性

差分终端 (DIFF_TERM) 属性专用于 Virtex-5 支持的差分输入 I/O 标准。此属性用来开启或关闭内置的 100Ω 差分终端。

DIFF_TERM 属性的允许值是:

• TRUE

• FALSE (默认)

要指定 DIFF_TERM 属性,请在例化 IBUFDS 或 IBUGDS 组件的类属映射表 (VHDL) 或内嵌语句参数 (Verilog) 中设置适当的值。关于例化此组件和设置 DIFF_TERM 属性恰当的语法,请参阅 ISE 《语言模板》或 Virtex-5 HDL 《库指南》。

Virtex-5 I/O 资源 VHDL/Verilog 示例Virtex-5 《库指南》提供了用来声明 Virtex-5 I/O 资源所用 I/O 标准的 VHDL 和 Verilog 示例语法。

232 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 6 章: SelectIO 资源R

关于 Virtex-5 I/O 所支持标准的具体指导原则以下几部分概述所有 Virtex-5 器件支持的 I/O 标准。

尽管 Virtex-5 I/O 支持的大多数标准都指定允许的电压范围,本章只收录典型电压值。可到电子工业联盟的 JEDEC 网站查阅关于各指标的详细信息,其网址是 http://www.jedec.org。

LVTTL (低压晶体管 - 晶体管逻辑)低压 TTL (LVTTL) 标准是针对使用 LVTTL 输入缓冲器和推挽式输出缓冲器的 3.3V 应用的通用 EIA/JESDSA 标准。此标准需要 3.3V 输入和输出供电电压 (VCCO),但不要求使用参考电压 (VREF) 或终端电压 (VTT)。

图 6-26 和图 6-27 表示单向和双向 LVTTL 终端方法的样本电路。

图 6-26: LVTTL 单向终端

Z0

IOB IOB

LVTTL LVTTL

Z0

IOB IOB

LVTTL LVTTL

Z0

IOB IOB

LVTTL LVTTL

ug190_6_24_022806

VTT

Note: VTT is any voltage from 0V to VCCO

RP = Z0

RS = Z0 – RD

Virtex-5 用户指南 www.xilinx.com/cn 233UG190 (v3.1) 2007 年 9 月 11 日

关于 Virtex-5 I/O 所支持标准的具体指导原则R

表 6-4 列出了 LVTTL 的直流电压指标。

图 6-27: LVTTL 双向终端

表 6-4: LVTTL 的直流电压指标

参数 小值 典型值 大值

VCCO 3.0 3.3 3.45

VREF - - -

VTT - - -

VIH 2.0 - 3.45

VIL -0.2 - 0.8

VOH 2.4 - -

VOL - - 0.4

VOH 对应的 IOH (mA) 注 2 - -

VOL 对应的 IOL (mA) 注 2 - -

注:1. 与较低驱动电流对应的 VOL 和 VOH 已经过采样测试。 2. 支持的 DRIVE 强度是 2、4、6、8、12、16 和 24 mA。

Z0

IOB IOB

LVTTL

Z0

IOB IOB

LVTTL LVTTL

VTT

Note: VTT is any voltage from 0V to VCCO

RP = Z0

VTT

RP = Z0

ug190_6_25_022806

LVTTL

234 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 6 章: SelectIO 资源R

表 6-5 详细列出了可用于 LVTTL I/O 标准的允许属性。

LVCMOS (低压互补金属氧化物半导体)LVCMOS 是一种广泛用于 CMOS 晶体管的开关标准。此标准是由 JEDEC 制定的 (JESD 8-5)。Virtex-5 FPGA 中支持的 LVCMOS 标准有:LVCMOS12、LVCMOS15、LVCMOS18、LVCMOS25 和 LVCMOS33。

图 6-28 和图 6-29 表示单向和双向 LVCMOS 终端方法的样本电路。

表 6-5: LVTTL I/O 标准的允许属性

属性基元

IBUF/IBUFG OBUF/OBUFT IOBUF

IOSTANDARD LVTTL LVTTL LVTTL

DRIVE UNUSED 2、4、6、8、12、16、24

2、4、6、8、12、16、24

SLEW UNUSED {FAST、SLOW} {FAST、SLOW}

图 6-28: LVCMOS 单向终端

Z0

IOB IOB

LVCMOS LVCMOS

Z0

IOB IOB

LVCMOS LVCMOS

Z0

IOB IOB

LVCMOS LVCMOS

ug190_6_26_022806

VTT

Note: VTT is any voltage from 0V to VCCO

RP = Z0

RS = Z0 – RD

Virtex-5 用户指南 www.xilinx.com/cn 235UG190 (v3.1) 2007 年 9 月 11 日

关于 Virtex-5 I/O 所支持标准的具体指导原则R

表 6-6 详细列出了可用于 LVCMOS33 和 LVCMOS25 I/O 标准的允许属性。

表 6-7 详细列出了可用于 LVCMOS18 和 LVCMOS15 I/O 标准的允许属性。

图 6-29: LVCMOS 双向终端

表 6-6: LVCMOS33 和 LVCMOS25 I/O 标准的允许属性

属性基元

IBUF/IBUFG OBUF/OBUFT IOBUF

IOSTANDARD LVCMOS33 LVCMOS25

LVCMOS33 LVCMOS25

LVCMOS33 LVCMOS25

DRIVE UNUSED 2、4、6、8、12、16、24

2、4、6、8、12、16、24

SLEW UNUSED {FAST、SLOW} {FAST、SLOW}

表 6-7: LVCMOS18 和 LVCMOS15 I/O 标准的允许属性

属性基元

IBUF/IBUFG OBUF/OBUFT IOBUF

IOSTANDARD LVCMOS18 LVCMOS15

LVCMOS18 LVCMOS15

LVCMOS18 LVCMOS15

DRIVE UNUSED 2、4、6、8、12、16

2、4、6、8、12、16

SLEW UNUSED {FAST、SLOW} {FAST、SLOW}

Z0

IOB IOB

LVCMOS

Z0

IOB IOB

LVCMOS LVCMOS

VTT

Note: VTT is any voltage from 0V to VCCO

RP = Z0

VTT

RP = Z0

ug190_6_27_022806

LVCMOS

236 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 6 章: SelectIO 资源R

表 6-8 详细列出了可用于 LVCMOS12 I/O 标准的允许属性。

LVDCI (低压数控阻抗)

使用这些 I/O 缓冲器可以将输出配置成可控阻抗驱动器。LVDCI 接收器与 LVCMOS 接收器完全相同。有些 I/O 标准 (如 LVTTL、LVCMOS 等)必须具有与所驱动线路的特征阻抗相匹配的驱动阻抗。Virtex-5 器件提供的可控阻抗驱动器可以提供不使用外部源终端电阻器的串联终端。阻抗由阻值与迹线特征阻抗 Z0 相等的公共外部参考电阻器设定。

图 6-30 和图 6-31 表示可控阻抗驱动器所用单向和双向 LVCMOS 终端方法的样本电路。支持可控阻抗驱动器的 DCI I/O 标准是:LVDCI_15、LVDCI_18、LVDCI_25 和 LVDCI_33。

表 6-8: LVCMOS12 I/O 标准的允许属性

属性基元

IBUF/IBUFG OBUF/OBUFT IOBUF

IOSTANDARD LVCMOS12 LVCMOS12 LVCMOS12

DRIVE UNUSED 2、4、6、8 2、4、6、8

SLEW UNUSED {FAST、SLOW} {FAST、SLOW}

图 6-30: 单向终端可控阻抗驱动器

图 6-31: 双向终端可控阻抗驱动器

Z0

IOB IOB

LVDCI LVDCI

ug190_6_28_022806

R0 = RVRN = RVRP = Z0

Z0

IOB IOB

LVDCI LVDCI

ug190_6_29_022806

R0 = RVRN = RVRP = Z0

R0 = RVRN = RVRP = Z0

Virtex-5 用户指南 www.xilinx.com/cn 237UG190 (v3.1) 2007 年 9 月 11 日

关于 Virtex-5 I/O 所支持标准的具体指导原则R

LVDCI_DV2

半阻抗 (源终端)可控阻抗驱动器还可提供具有参考电阻器一半阻抗的驱动器。这样便可使用两倍大的参考电阻器,从而减少通过 VRN/VRP 的静态功耗。支持半阻抗可控阻抗驱动器的 I/O 标准有:LVDCI_DV2_15、LVDCI_DV2_18 和 LVDCI_DV2_25。图 6-32 和图 6-33 所示为具有半阻抗单向和双向终端的可控驱动器。

当使用半阻抗驱动器时,为了让驱动阻抗与 Z0 匹配,参考电阻器 R 必须是 Z0 的两倍。

LVDCI 驱动器没有驱动强度设置。驱动器阻抗是 VRN/VRP 参考电阻器阻抗的一半,这时以属性名称中加入 DV2 表示。

图 6-32: 单向终端半阻抗可控阻抗驱动器

图 6-33: 双向终端半阻抗可控阻抗驱动器

Z0

IOB IOB

LVDCI_DV2 LVDCI_DV2

ug190_6_30_022806

R0 = ½RVRN = ½RVRP = Z0

Z0

IOB IOB

LVDCI_DV2 LVDCI_DV2

ug190_6_31_022806

R0 = ½RVRN = ½RVRP = Z0

R0 = ½RVRN = ½RVRP = Z0

238 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 6 章: SelectIO 资源R

表 6-9 列出了 LVCMOS、LVDCI 和 LVDCI_DV2 的电压指标。

表 6-9: LVCMOS、LVDCI 和 LVDCI_DV2 在各种参考电压下的直流电压指标

标准

+3.3V +2.5V +1.8V +1.5V +1.2V(2)

小值

典型值

大值

小值

典型值

大值

小值

典型值

大值

小值

典型值

大值

小值

典型值

大值

VCCO [V] 3.0 3.3 3.45 2.3 2.5 2.7 1.7 1.8 1.9 1.4 1.5 1.6 1.1 1.2 1.3

VIH [V] 2.0 - 3.45 1.7 - VCCO+0.3

1.105 - VCCO+0.3

0.91 - VCCO+0.3

0.715 - VCCO+0.3

VIL [V] -0.2 - 0.8 -0.3 - 0.7 -0.3 - 0.665 -0.3 - 0.56 0.3 - 0.455

VOH [V] 2.6 - - 1.9 - - 1.25 - - 1.05 - 0.825 - - -

VOL [V] - - 0.4 - - 0.4 - - 0.45 - - 0.4 - - 0.325

IIN [µA] - - ±5 - - ±5 - - ±5 - - ±10 - - ±10

注:1. 与较低驱动电流对应的 VOL 和 VOH 已经过采样测试。2. 当有效 DRIVE 属性为 2、4、6、8 时,在 + 1.2V 下仅支持 LVCMOS。

Virtex-5 用户指南 www.xilinx.com/cn 239UG190 (v3.1) 2007 年 9 月 11 日

关于 Virtex-5 I/O 所支持标准的具体指导原则R

HSLVDCI (高速低压数控阻抗)

HSLVDCI 标准为双向专用。其驱动器与 LVDCI 的完全相同,而输入与 HSTL 和 SSTL 的完全相同。HSLVDCI 的输入以 VREF 为参考电压,因而其接收器的输入灵敏度要比使用单端 LVCMOS 型接收器时高。

图 6-34 表示 HSLVDCI 可控阻抗驱动器所用双向终端方法的样本电路。支持以 VREF 为输入参考电压的可控阻抗驱动器的 DCI I/O 标准有:HSLVDCI_15、HSLVDCI_18、HSLVDCI_25 和 HSLVDCI_33。

关于输出直流电压指标,请参阅表 6-9 “LVCMOS、LVDCI 和 LVDCI_DV2 在各种参考电压下的直流电压指标”中的 LVDCI 的 VOH 和 VOL 条目。表 6-10 列出了使用 HSLVDCI 时的输入直流电压指标。VCCO 的有效值是 1.5V、1.8V、2.5V 和 3.3V。请选择 VREF,以便针对具体使用条件提供 佳噪声容限。

图 6-34: 双向终端 HSLVDCI 可控阻抗驱动器

表 6-10: HSLVDCI 输入直流电压指标

标准 小值 典型值 大值

VREF - VCCO/2 -

VIH VREF + 0.1 - -

VIL - - VREF - 0.1

Z0

IOB

HSLVDCI

ug190_6_33_022806

R0 = RVRN = RVRP = Z0

R0 = RVRN = RVRP = Z0

HSLVDCI

IOB

VREF = VCCO/2

+

240 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 6 章: SelectIO 资源R

PCIX、PCI33、PCI66 (外设组件接口 )PCI 标准规定支持 33 MHz、66 MHz 和 133 MHz PCI 总线应用。该标准使用一个 LVTTL 输入缓冲器和一个推挽式输出缓冲器。此标准不需要使用参考电压 (VREF) 或电路板终端电压 (VTT)。但是,此标准需要 3.3V 输入 / 输出源电压 (VCCO)。

如第 297 页的“将 VCCO调节到 3.0V”中所述,PCI 上过冲 / 下过冲指标可能需要将 VCCO 调节到 3.0V。如果能通过缜密设计来控制上过冲和下过冲,则不必这样做。

表 6-11 和表 6-12 列出了直流电压指标。

表 6-11: PCI33_3 和 PCI66_3 的电压指标 (2)

参数 最小值 典型值 最大值

VCCO 3.0 3.3 3.5

VREF - - -

VTT - - -

VIH = 0.5 × VCCO 1.5 1.65 VCCO

VIL = 0.3 × VCCO -0.2 0.99 1.05

VOH = 0.9 × VCCO 2.7 - -

VOL = 0.1 × VCCO - - 0.35

VOH 对应的 IOH (mA) (注 1) - -

VOL 对应的 IOL (mA) (注 1) - -

注:1. 已按照相关指标经过测试。2. 关于完整指标,请参阅 PCI 规范。

表 6-12: PCIX 的直流电压指标 (2)

参数 最小值 典型值 最大值

VCCO 3.0 3.3 3.5

VREF - - -

VTT - - -

VIH = 0.5 × VCCO 1.5 1.65 VCCO

VIL = 0.35 × VCCO -0.2 1.155 1.225

VOH = 0.9 × VCCO 2.7 - -

VOL = 0.1 × VCCO - - 0.35

VOH 对应的 IOH (mA) (注 1) - -

VOL 对应的 IOL (mA) (注 1) - -

注:1. 已按照相关指标经过测试。2. 关于完整指标,请参阅 PCIX 规范。

Virtex-5 用户指南 www.xilinx.com/cn 241UG190 (v3.1) 2007 年 9 月 11 日

关于 Virtex-5 I/O 所支持标准的具体指导原则R

GTL (射电收发器逻辑)射电收发器逻辑 (GTL) 标准是 Xerox 发明的高速总线标准 (JESD8.3)。Xilinx 实现了此标准的带终端的版本。此标准需要一个差分放大器输入缓冲器和一个开漏输出缓冲器。差分输入缓冲器的负端参考 VREF 引脚。

图 6-35 表示具有外部并联终端和未连接 VCCO 的 GTL 所用有效终端方法的样本电路。

GTL_DCI 用法

GTL 不需要 VCCO 电压。但对于 GTL_DCI 来说,VCCO 必须连接到 1.2V。GTL_DCI 提供接 VCCO 的输入或输出单终端。

图 6-36 表示具有内部并联驱动器和接收器终端的 GTL_DCI 所用有效终端方法的样本电路。

表 6-13 列出了 GTL 的直流电压指标。

图 6-35: 具有外部并联终端和未连接 VCCO 的 GTL

VTT = 1.2V

RP = Z0 = 50Ω RP = Z0 = 50ΩVCCO = Unconnected

VTT = 1.2V

Z0 = 50

IOB IOB

ug190_6_34_022806

VREF = 0.8V

+

图 6-36: 具有内部并联驱动器和接收器终端的 GTL_DCI

表 6-13: GTL 的直流电压指标

参数 小值 典型值 大值

VCCO - 不适用 -

VREF = N × VTT (1) 0.74 0.8 0.86

VTT 1.14 1.2 1.26

VIH = VREF + 0.05 0.79 0.83 -

VIL = VREF - 0.05 - 0.77 0.81

VOH - - -

VOL - 0.2 0.4

VCCO = 1.2V VCCO = 1.2V

Z0 = 50

IOB IOB

ug190_6_35_030206

VREF = 0.8V

+

RVRP = Z0 = 50ΩRVRP = Z0 = 50Ω

242 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 6 章: SelectIO 资源R

GTLP (射电收发器逻辑增强版)射电收发器逻辑增强版 (GTL+) 标准是 Pentium Pro 处理器首先使用的高速总线标准 (JESD8.3)。此标准需要一个差分放大器输入缓冲器和一个开漏输出缓冲器。差分输入缓冲器的负端参考 VREF 引脚。

图 6-37 表示具有外部并联终端和未连接 VCCO 的 GTL+ 所用有效终端方法的样本电路。

GTLP_DCI 用法

GTL+ 不需要 VCCO 电压。但对于 GTLP_DCI 来说,VCCO 必须连接到 1.5V。GTLP_DCI 提供接 VCCO 的输入或输出单终端。

图 6-38 表示具有内部并联驱动器和接收器终端的 GTLP_DCI 所用有效终端方法的样本电路。

VOH 对应的 IOH (mA) - - -

VOL 为 0.4V 时对应的 IOL (mA) 32 - -

VOL 为 0.2V 时对应的 IOL (mA) - - 40

注:1. N 必须大于或等于 0.653 且小于或等于 0.68。

表 6-13: GTL 的直流电压指标 ( 续表 )

参数 小值 典型值 大值

图 6-37: 具有外部并联终端和未连接 VCCO 的 GTL+

VTT = 1.5V

RP = Z0 = 50Ω RP = Z0 = 50ΩVCCO = Unconnected

VTT = 1.5V

Z0 = 50

IOB IOB

ug190_6_36_030206

VREF = 1.0V

+

图 6-38: 具有内部并联驱动器和接收器终端的 GTLP_DCI

VCCO = 1.5V

RVRP = Z0 = 50Ω50Ω

VCCO = 1.5V

Z0 = 50

IOB IOB

ug190_6_37_030206

VREF = 1.0V

+

Virtex-5 用户指南 www.xilinx.com/cn 243UG190 (v3.1) 2007 年 9 月 11 日

关于 Virtex-5 I/O 所支持标准的具体指导原则R

表 6-14 列出了 GTLP 的直流电压指标。

HSTL (高速收发器逻辑)高速收发器逻辑 (HSTL) 标准是 IBM 公司提出的通用高速总线标准 (EIA/JESD8-6)。1.5V 和 1.8V 有四个变化版本 (类)。为了支持高速存储器接口的时钟控制,此标准增加了一个差分版本。Virtex-5 I/O 支持 1.5V 和 1.8V 的全部四个类以及 I 类和 II 类差分版本。该标准的这些差分版本需要一个差分放大器输入缓冲器和一个推挽式输出缓冲器。

HSTL_ I、HSTL_ III、HSTL_ I_18、HSTL_ III_18、HSTL_I_12

HSTL_I 使用 VCCO/2 作为并联终端电压 (VTT)。HSTL_III 使用 VCCO 作为并联终端电压 (VTT)。HSTL_I 和 HSTL_III 专用于单向链路。

HSTL_ I_DCI、HSTL_ III_DCI、HSTL_ I_DCI_18、HSTL_ III_DCI_18

HSTL_I_DCI 提供由 VCCO 供电的片上分裂 Thevenin 终端,以建立 VCCO/2 的等效并联终端电压 (VTT)。HSTL_III_DCI 提供由 VCCO 供电的片上单终端。HSTL_I_DCI 和 HSTL_III_DCI 专用于单向链路。

HSTL_ II、HSTL_ IV、HSTL_ II_18、HSTL_ IV_18

HSTL_II 使用 VCCO/2 作为并联终端电压 (VTT)。HSTL_IV 使用 VCCO 作为并联终端电压 (VTT)。HSTL_II 和 HSTL_IV 专用于双向链路。

表 6-14: GTLP 的直流电压指标

小值 典型值 大值

VCCO - - -

VREF = N × VTT (1) 0.88 1.0 1.12

VTT 1.35 1.5 1.65

VIH = VREF + 0.1 0.98 1.1 -

VIL = VREF - 0.1 - 0.9 1.02

VOH - - -

VOL 0.3 0.45 0.6

VOH 对应的 IOH (mA) - - -

IOL 为 0.6V 时对应的 VOL (mA) 36 - -

IOL 为 0.3V 时对应的 VOL (mA) - - 48

注:1. N 必须大于或等于 0.653 且小于或等于 0.68。

244 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 6 章: SelectIO 资源R

HSTL_ II_DCI、HSTL_ IV_DCI、HSTL_ II_DCI_18、HSTL_ IV_DCI_18

HSTL_II_DCI 提供由 VCCO 供电的片上分裂 Thevenin 终端,以建立 VCCO/2 的等效终端电压。HSTL_IV_ DCI 提供接 VCCO (VTT) 的单终端。HSTL_II_DCI 和 HSTL_IV_DCI 专用于双向链路。

HSTL_ II_T_DCI、HSTL_ II_T_DCI_18

HSTL_ II_T_DCI 和 HSTL_ II_T_DCI_18 提供由 VCCO 供电的片上分裂 Thevenin 终端,以便当这些标准是三态时建立 VCCO/2 的等效终端电压。当不是三态时,这两个标准没有终端。

DIFF_HSTL_ II、DIFF_HSTL_II_18

差分 HSTL II 类组成具有差分接收器的互补单端 HSTL_II 型驱动器对。差分 HSTL II 类专用于双向链路。差分 HSTL 还可在存储器接口设计中用于差分时钟和 DQS 信号。

DIFF_HSTL_II_DCI、DIFF_HSTL_II_DCI_18

差分 HSTL II 类组成具有差分接收器 (包括片上差分分裂 Thevenin 终端)的互补单端 HSTL_II 型驱动器对。差分 HSTL II 类专用于双向链路。差分 HSTL 还可在存储器接口设计中用于差分时钟和 DQS 信号。

DIFF_HSTL_I、DIFF_HSTL_I_18

差分 HSTL I 类组成具有差分接收器的互补单端 HSTL_I 型驱动器对。差分 HSTL I 类专用于单向链路。

DIFF_HSTL_I_DCI、DIFF_HSTL_I_DCI_18

差分 HSTL I 类组成具有差分接收器 (包括片上差分分裂 Thevenin 终端)的互补单端 HSTL_I 型驱动器对。差分 HSTL I 类专用于单向链路。

Virtex-5 用户指南 www.xilinx.com/cn 245UG190 (v3.1) 2007 年 9 月 11 日

关于 Virtex-5 I/O 所支持标准的具体指导原则R

HSTL I 类图 6-39 表示 HSTL I 类所用有效终端方法的样本电路。

表 6-15 列出了 HSTL I 类的直流电压指标。

图 6-39: HSTL I 类终端

表 6-15: HSTL I 类的直流电压指标

小值 典型值 大值

VCCO 1.40 1.50 1.60

VREF (2) 0.68 0.75 0.90

VTT - VCCO × 0.5 -

VIH VREF + 0.1 - -

VIL   - VREF - 0.1

VOH VCCO - 0.4 - -

VOL - - 0.4

VOH 对应的 IOH (mA)(1) -8 - -

VOL 对应的 IOL (mA)(1) 8 - -

注:1. 与较低驱动电流对应的 VOL 和 VOH 已经过采样测试。2. 根据 EIA/JESD8-6,“VREF 的值应由用户选择,以便针对用户指定的使用条件提供 佳噪声容限。”

Z0

IOB IOB

HSTL_IHSTL_I

ug190_6_38_030206

VTT = 0.75V

RP = Z0 = 50Ω

Z0

IOB IOB

HSTL_I_DCI HSTL_I_DCI

VCCO = 1.5V

2RVRP = 2Z0= 100Ω

2RVRN = 2Z0= 100Ω

VREF = 0.75V

+

VREF = 0.75V

+

External Termination

DCI

246 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 6 章: SelectIO 资源R

差分 HSTL I 类图 6-40 表示单向终端差分 HSTL I 类 (1.5V) 所用有效终端方法的样本电路。

图 6-41 表示单向 DCI 终端差分 HSTL I 类 (1.5V) 所用有效终端方法的样本电路。

图 6-40: 差分 HSTL (1.5V) I 类单向终端

图 6-41: 差分 HSTL (1.5V) I 类 DCI 单向终端

ug190_6_39_030206

+

External Termination

Z0

IOB IOB

DIFF_HSTL_I

DIFF_HSTL_I

Z0

DIFF_HSTL_I

VTT = 0.75V

50Ω

VTT = 0.75V

50Ω

ug190_6_40_030206

IOB

DIFF_HSTL_I_DCI

DIFF_HSTL_I_DCI

VCCO = 1.5V

2RVRP = 2Z0= 100Ω

2RVRN = 2Z0= 100Ω

+

DCI

DIFF_HSTL_I_DCI

VCCO = 1.5V

2RVRP = 2Z0= 100Ω

2RVRN = 2Z0= 100Ω

IOB

Z0

Z0

Virtex-5 用户指南 www.xilinx.com/cn 247UG190 (v3.1) 2007 年 9 月 11 日

关于 Virtex-5 I/O 所支持标准的具体指导原则R

表 6-16 列出了差分 HSTL I 类的直流电压指标。

HSTL II 类图 6-42 表示单向终端 HSTL II 类 (1.5V) 所用有效终端方法的样本电路。

表 6-16: 差分 HSTL I 类的直流电压指标

小值 典型值 大值

VCCO 1.40 1.50 1.60

VTT - VCCO × 0.5 -

VIN (DC) -0.30 - VCCO + 0.30

VDIFF (DC) 0.20 - VCCO + 0.60

VCM (DC)(1) 0.68 - 0.90

VDIFF (AC) 0.40 - VCCO + 0.60

VX (交叉)(2) 0.68 - 0.90

注:1. 共模电压:VCM = VP - ((VP - VN)/2)2. 交叉点:VX,此处 VP - VN = 0 (交流耦合)

图 6-42: HSTL (1.5V) II 类单向终端

Z0

IOB IOB

HSTL_IIHSTL_II

ug190_6_41_030206

VTT = 0.75V

RP = Z0 = 50Ω

VTT = 0.75V

RP = Z0 = 50Ω

Z0

IOB IOB

HSTL_II_DCIHSTL_II_DCI

VCCO = 1.5V

2RVRP = 2Z0= 100Ω

2RVRN = 2Z0= 100Ω

VREF = 0.75V

+

VREF = 0.75V

+

External Termination

DCI

VCCO = 1.5V

2RVRP = 2Z0= 100Ω

2RVRN = 2Z0= 100Ω

248 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 6 章: SelectIO 资源R

图 6-43 表示双向终端 HSTL II 类 (1.5V) 所用有效终端方法的样本电路。

图 6-43: HSTL (1.5V) II 类双向终端

Z0

IOB IOB

HSTL_IIHSTL_II

ug190_6_42_030306

VTT = 0.75V

RP = Z0 = 50Ω

VTT = 0.75V

RP = Z0 = 50Ω

Z0

IOB IOB

HSTL_II_DCIHSTL_II_DCI

VCCO = 1.5V

2RVRP = 2Z0= 100Ω

2RVRN = 2Z0= 100Ω

VREF = 0.75V

VREF = 0.75V

+

VREF = 0.75V

+

External Termination

DCI

VCCO = 1.5V

2RVRP = 2Z0= 100Ω

2RVRN = 2Z0= 100Ω

VREF = 0.75V

Virtex-5 用户指南 www.xilinx.com/cn 249UG190 (v3.1) 2007 年 9 月 11 日

关于 Virtex-5 I/O 所支持标准的具体指导原则R

表 6-17 列出了 HSTL (1.5V) II 类的直流电压指标。

差分 HSTL II 类图 6-44 表示单向终端差分 HSTL II 类 (1.5V) 所用有效终端方法的样本电路。

表 6-17: HSTL (1.5V) II 类的直流电压指标

小值 典型值 大值

VCCO 1.40 1.50 1.60

VREF (2) 0.68 0.75 0.90

VTT - VCCO × 0.5 -

VIH VREF + 0.1 - -

VIL - - VREF - 0.1

VOH VCCO - 0.4 - -

VOL - - 0.4

VOH 对应的 IOH (mA)(1) -16 - -

VOL 对应的 IOL (mA)(1) (3) 16 - -

注:1. 与较低驱动电流对应的 VOL 和 VOH 已经过采样测试。2. 根据 EIA/JESD8-6,“VREF 的值应由用户选择,以便针对用户指定的使用条件提供 佳噪声容限。”3. HSTL_II_T_DCI 的驱动器比 HSTL_II_DCI 的弱。

图 6-44: 差分 HSTL (1.5V) II 类单向终端

ug190_6_40_030206

+

External Termination

Z0

IOB IOB

DIFF_HSTL_II

DIFF_HSTL_II

Z0

DIFF_HSTL_II

VTT = 0.75V

50Ω

VTT = 0.75V

50Ω

VTT = 0.75V

50Ω

VTT = 0.75V

50Ω

250 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 6 章: SelectIO 资源R

图 6-45 表示单向 DCI 终端差分 HSTL II 类 (1.5V) 所用有效终端方法的样本电路。

图 6-46 表示双向终端差分 HSTL II 类 (1.5V) 所用有效终端方法的样本电路。

图 6-45: 差分 HSTL (1.5V) II 类 DCI 单向终端

ug190_6_44_020306

IOB

DIFF_HSTL_II_DCI

DIFF_HSTL_II_DCI

VCCO = 1.5V

2RVRP = 2Z0= 100Ω

2RVRN = 2Z0= 100Ω

+

DCI

DIFF_HSTL_II_DCI

VCCO = 1.5V

2RVRP = 2Z0= 100Ω

2RVRN = 2Z0= 100Ω

IOB

VCCO = 1.5V

2RVRP = 2Z0= 100Ω

2RVRN = 2Z0= 100Ω

2RVRP = 2Z0= 100Ω

2RVRN = 2Z0= 100Ω

VCCO = 1.5V

Z0

Z0

图 6-46: 差分 HSTL (1.5V) II 类双向终端

Z0

IOB IOB

DIFF_HSTL_II DIFF_HSTL_II

+

External TerminationVTT = 0.75V

50Ω

DIFF_HSTL_II

ug190_6_45_020306

Z0

DIFF_HSTL_II

DIFF_HSTL_II DIFF_HSTL_II

+

VTT = 0.75V

50Ω

VTT = 0.75V

50Ω

VTT = 0.75V

50Ω

Virtex-5 用户指南 www.xilinx.com/cn 251UG190 (v3.1) 2007 年 9 月 11 日

关于 Virtex-5 I/O 所支持标准的具体指导原则R

图 6-47 表示双向 DCI 终端差分 HSTL II 类 (1.5V) 所用有效终端方法的样本电路。

表 6-18 列出了差分 HSTL II 类的直流电压指标。

图 6-47: 差分 HSTL (1.5V) II 类 DCI 双向终端

Z0

IOB IOB

DIFF_HSTL_II_DCI DIFF_HSTL_II_DCI

VCCO = 1.5V

2RVRP = 2Z0= 100Ω

2RVRN = 2Z0= 100Ω

+

DCI

VCCO = 1.5V

2RVRP = 2Z0= 100Ω

2RVRN = 2Z0= 100Ω

DIFF_HSTL_II_DCI

ug190_6_46_020306

Z0

DIFF_HSTL_II_DCI

DIFF_HSTL_II_DCI DIFF_HSTL_II_DCIVCCO = 1.5V

2RVRP = 2Z0= 100Ω

2RVRN = 2Z0= 100Ω

+

VCCO = 1.5V

2RVRP = 2Z0= 100Ω

2RVRN = 2Z0= 100Ω

表 6-18: 差分 HSTL II 类的直流电压指标

小值 典型值 大值

VCCO 1.40 1.50 1.60

VTT - VCCO × 0.5 -

VIN (DC) -0.30 - VCCO + 0.30

VDIFF (DC) 0.20 - VCCO + 0.60

VCM (DC)(1) 0.68 - 0.90

VDIFF (AC) 0.40 - VCCO + 0.60

VX (交叉)(2) 0.68 - 0.90

注:1. 共模电压:VCM = VP - ((VP - VN)/2)2. 交叉点:VX,此处 VP - VN = 0 (交流耦合)

252 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 6 章: SelectIO 资源R

HSTL III 类图 6-48 表示 HSTL III 类所用有效终端方法的样本电路。

表 6-19 列出了 HSTL III 类的直流电压指标。

图 6-48: HSTL III 类终端

表 6-19: HSTL III 类的直流电压指标

小值 典型值 大值

VCCO 1.40 1.50 1.60

VREF (2) - 0.90 -

VTT - VCCO -

VIH VREF + 0.1 - -

VIL   - VREF - 0.1

VOH VCCO - 0.4 - -

VOL - - 0.4

VOH 对应的 IOH (mA)(1) -8 - -

VOL 对应的 IOL (mA)(1) 24 - -

注:1. 与较低驱动电流对应的 VOL 和 VOH 已经过采样测试。2. 根据 EIA/JESD8-6,“VREF 的值应由用户选择,以便针对用户指定的使用条件提供 佳噪声容限。”

Z0

IOB IOB

HSTL_IIIHSTL_III

ug190_6_47_030306

VTT = 1.5V

RP = Z0 = 50Ω

Z0

IOB IOB

HSTL_III_DCI HSTL_III_DCI

VCCO = 1.5V

RVRP = Z0= 50Ω

VREF = 0.9V

+

VREF = 0.9V

+

External Termination

DCI

Virtex-5 用户指南 www.xilinx.com/cn 253UG190 (v3.1) 2007 年 9 月 11 日

关于 Virtex-5 I/O 所支持标准的具体指导原则R

HSTL IV 类图 6-49 表示 HSTL IV 类所用有效单向终端方法的样本电路。

图 6-49: HSTL IV 类单向终端

Z0

IOB IOB

HSTL_IVHSTL_IV

ug190_6_48_030306

VTT = 1.5V

RP = Z0 = 50Ω

VTT = 1.5V

RP = Z0 = 50Ω

Z0

IOB IOB

HSTL_IV_DCIHSTL_IV_DCI

VCCO = 1.5V

RVRP = Z0= 50Ω

VREF = 0.9V

+

VREF = 0.9V

+

External Termination

DCI

VCCO = 1.5V

RVRP = Z0= 50Ω

254 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 6 章: SelectIO 资源R

图 6-50 表示 HSTL IV 类所用有效双向终端方法的样本电路。

图 6-50: HSTL IV 类双向终端

Z0

IOB IOB

HSTL_IVHSTL_IV

ug190_6_49_030306

VTT = 1.5V

RP = Z0 = 50Ω

VTT = 1.5V

RP = Z0 = 50Ω

Z0

IOB IOB

HSTL_IV_DCIHSTL_IV_DCI

VCCO = 1.5V

RVRP = Z0= 50Ω

VREF = 0.9V

VREF = 0.9V

+

VREF = 0.9V

+

External Termination

DCI

VCCO = 1.5V

RVRP = Z0= 50Ω

VREF = 0.9V

Virtex-5 用户指南 www.xilinx.com/cn 255UG190 (v3.1) 2007 年 9 月 11 日

关于 Virtex-5 I/O 所支持标准的具体指导原则R

表 6-20 列出了 HSTL IV 类的直流电压指标。

HSTL_II_T_DCI (1.5V) 分裂 Thevenin 终端图 6-51 表示具有片上分裂 Thevenin 终端的 HSTL_II_T_DCI (1.5V) 所用有效终端方法的样本电路。在这种双向情况下,如果是三态,则在接收器而非驱动器上调用终端。

表 6-20: HSTL IV 类的直流电压指标

小值 典型值 大值

VCCO 1.40 1.50 1.60

VREF (2) - 0.90 -

VTT - VCCO -

VIH VREF + 0.1 - -

VIL - - VREF - 0.1

VOH VCCO - 0.4 - -

VOL - - 0.4

VOH 对应的 IOH (mA)(1) -8 - -

VOL 对应的 IOL (mA)(1) 48 - -

注:1. 与较低驱动电流对应的 VOL 和 VOH 已经过采样测试。2. 根据 EIA/JESD8-6,“VREF 的值应由用户选择,以便针对用户指定的使用条件提供 佳噪声容限。”

图 6-51: HSTL_II_T_DCI (1.5V) 分裂 Thevenin 终端

ug190_6_90_041206

Z0

IOB IOB

HSTL_II_T_DCIHSTL_II_T_DCI

VCCO = 1.5V

2RVRP = 2Z0= 100Ω

2RVRN = 2Z0= 100Ω

VREF = 0.75V

+

DCI

VREF = 0.75V

Not 3-stated 3-stated

256 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 6 章: SelectIO 资源R

HSTL I 类 (1.8V)图 6-52 表示 HSTL I 类 (1.8V) 所用有效终端方法的样本电路。

表 6-21 列出了 HSTL I 类 (1.8V) 的直流电压指标。

图 6-52: HSTL I 类 (1.8V) 终端

表 6-21: HSTL I 类 (1.8V) 的直流电压指标

小值 典型值 大值

VCCO 1.7 1.8 1.9

VREF (2) 0.83 0.9 1.08

VTT - VCCO × 0.5 -

VIH VREF + 0.1 - -

VIL - - VREF - 0.1

VOH VCCO - 0.4 - -

VOL - - 0.4

VOH 对应的 IOH (mA)(1) -8 - -

VOL 对应的 IOL (mA)(1) 8 - -

注:1. 与较低驱动电流对应的 VOL 和 VOH 已经过采样测试。2. 根据 EIA/JESD8-6,“VREF 的值应由用户选择,以便针对用户指定的使用条件提供 佳噪声容限。”

Z0

IOB IOB

HSTL_I_18HSTL_I_18

ug190_6_50_030306

VTT = 0.9V

RP = Z0 = 50Ω

Z0

IOB IOB

HSTL_I_DCI_18 HSTL_I_DCI_18

VCCO = 1.8V

2RVRP = 2Z0= 100Ω

2RVRN = 2Z0= 100Ω

VREF = 0.9V

+

VREF = 0.9V

+

External Termination

DCI

Virtex-5 用户指南 www.xilinx.com/cn 257UG190 (v3.1) 2007 年 9 月 11 日

关于 Virtex-5 I/O 所支持标准的具体指导原则R

差分 HSTL I 类 (1.8V)图 6-53 表示单向终端差分 HSTL I 类 (1.8V) 所用有效终端方法的样本电路。

图 6-54 表示单向 DCI 终端差分 HSTL I 类 (1.8V) 所用有效终端方法的样本电路。

图 6-53: 差分 HSTL (1.8V) I 类单向终端

图 6-54: 差分 HSTL (1.8V) I 类 DCI 单向终端

ug190_6_51_030306

+

External Termination

Z0

IOB IOB

DIFF_HSTL_I_18

DIFF_HSTL_I_18

Z0

DIFF_HSTL_I_18

VTT = 0.9V

50Ω

VTT = 0.9V

50Ω

ug190_6_52_030306

IOB

DIFF_HSTL_I_DCI_18

DIFF_HSTL_I_DCI_18

VCCO = 1.8V

2RVRP = 2Z0= 100Ω

2RVRN = 2Z0= 100Ω

+

DCI

DIFF_HSTL_I_DCI_18

VCCO = 1.8V

2RVRP = 2Z0= 100Ω

2RVRN = 2Z0= 100Ω

IOB

Z0

Z0

258 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 6 章: SelectIO 资源R

表 6-22 列出了差分 HSTL I 类 (1.8V) 的直流电压指标。

HSTL II 类 (1.8V)图 6-55 表示单向终端 HSTL II 类 (1.8V) 所用有效终端方法的样本电路。

表 6-22: 差分 HSTL I 类 (1.8V) 的直流电压指标

小值 典型值 大值

VCCO 1.7 1.8 1.9

VTT - VCCO × 0.5 -

VIN (DC) -0.30 - VCCO + 0.30

VDIFF (DC) 0.20 - VCCO + 0.60

VCM (DC)(1) 0.83 - 1.08

VDIFF (AC) 0.40 - VCCO + 0.60

VX (交叉)(2) 0.83 - 1.08

注:1. 共模电压:VCM = VP - ((VP - VN)/2)2. 交叉点:VX,此处 VP - VN = 0 (交流耦合)

图 6-55: 单向终端 HSTL II 类 (1.8V)

Z0

IOB IOB

HSTL_II_18HSTL_II_18

ug190_6_53_030306

VTT = 0.9V

RP = Z0 = 50Ω

VTT = 0.9V

RP = Z0 = 50Ω

Z0

IOB IOB

HSTL_II_DCI_18HSTL_II_DCI_18

VCCO = 1.8V

2RVRP = 2Z0= 100Ω

2RVRN = 2Z0= 100Ω

VREF = 0.9V

+

VREF = 0.9V

+

External Termination

DCI

VCCO = 1.8V

2RVRP = 2Z0= 100Ω

2RVRN = 2Z0= 100Ω

Virtex-5 用户指南 www.xilinx.com/cn 259UG190 (v3.1) 2007 年 9 月 11 日

关于 Virtex-5 I/O 所支持标准的具体指导原则R

图 6-56 表示双向终端 HSTL II 类 (1.8V) 所用有效终端方法的样本电路。

图 6-56: 双向终端 HSTL II 类 (1.8V)

Z0

IOB IOB

HSTL_II_18HSTL_II_18

ug190_6_54_030306

VTT = 0.9V

RP = Z0 = 50Ω

VTT = 0.9V

RP = Z0 = 50Ω

Z0

IOB IOB

HSTL_II_DCI_18HSTL_II_DCI_18

VCCO = 1.8V

2RVRP = 2Z0= 100Ω

2RVRN = 2Z0= 100Ω

VREF = 0.9V

VREF = 0.9V

+

VREF = 0.9V

+

External Termination

DCI

VCCO = 1.8V

2RVRP = 2Z0= 100Ω

2RVRN = 2Z0= 100Ω

VREF = 0.9V

260 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 6 章: SelectIO 资源R

表 6-23 列出了 HSTL II 类 (1.8V) 的直流电压指标。

差分 HSTL II 类 (1.8V)图 6-57 表示单向终端差分 HSTL II 类 (1.8V) 所用有效终端方法的样本电路。

表 6-23: HSTL II 类 (1.8V) 的直流电压指标

小值 典型值 大值

VCCO 1.7 1.8 1.9

VREF (2) - 0.9 -

VTT - VCCO × 0.5 -

VIH VREF + 0.1 - -

VIL - - VREF - 0.1

VOH VCCO - 0.4 - -

VOL - - 0.4

VOH 对应的 IOH (mA)(1) -16 - -

VOL 对应的 IOL (mA)(1) 16 - -

注:1. 与较低驱动电流对应的 VOL 和 VOH 已经过采样测试。2. 根据 EIA/JESD8-6,“VREF 的值应由用户选择,以便针对用户指定的使用条件提供 佳噪声容限。”

图 6-57: 差分 HSTL (1.8V) II 类单向终端

ug190_6_55_030306

+

External Termination

Z0

IOB IOB

DIFF_HSTL_II_18

DIFF_HSTL_II_18

Z0

DIFF_HSTL_II_18

VTT = 0.9V

50Ω

VTT = 0.9V

50Ω

VTT = 0.9V

50Ω

VTT = 0.9V

50Ω

Virtex-5 用户指南 www.xilinx.com/cn 261UG190 (v3.1) 2007 年 9 月 11 日

关于 Virtex-5 I/O 所支持标准的具体指导原则R

图 6-58 表示单向 DCI 终端差分 HSTL II 类 (1.8V) 所用有效终端方法的样本电路。

图 6-59 表示双向终端差分 HSTL II 类 (1.8V) 所用有效终端方法的样本电路。

图 6-58: 差分 HSTL (1.8V) II 类 DCI 单向终端

ug190_6_56_121506

IOB

DIFF_HSTL_II_DCI_18

DIFF_HSTL_II_DCI_18

VCCO = 1.8V

2RVRP = 2Z0= 100Ω

2RVRN = 2Z0= 100Ω

+

DCI

DIFF_HSTL_II_DCI_18

VCCO = 1.8V

2RVRP = 2Z0= 100Ω

2RVRN = 2Z0= 100Ω

IOB

VCCO = 1.8V

2RVRN = 2Z0= 100Ω

2RVRP = 2Z0= 100Ω

2RVRP = 2Z0= 100Ω

2RVRN = 2Z0= 100Ω

VCCO = 1.8V

Z0

Z0

图 6-59: 差分 HSTL (1.8V) II 类双向终端

Z0

IOB IOB

DIFF_HSTL_II_18 DIFF_HSTL_II_18

+

External Termination

VTT = 0.9V

50Ω

DIFF_HSTL_II_18

ug190_6_57_030306

Z0

DIFF_HSTL_II_18

DIFF_HSTL_II_18 DIFF_HSTL_II_18

+

VTT = 0.9V

50Ω

VTT = 0.9V

50Ω

VTT = 0.9V

50Ω

262 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 6 章: SelectIO 资源R

图 6-60 表示双向 DCI 终端差分 HSTL II 类 (1.8V) 所用有效终端方法的样本电路。

表 6-24 列出了差分 HSTL II 类 (1.8V) 的直流电压指标。

图 6-60: 差分 HSTL (1.8V) II 类 DCI 双向终端

Z0

IOB IOB

DIFF_HSTL_II_DCI_18 DIFF_HSTL_II_DCI_18

VCCO = 1.8V

2RVRP = 2Z0= 100Ω

2RVRN = 2Z0= 100Ω

+

DCI

VCCO = 1.8V

2RVRP = 2Z0= 100Ω

2RVRN = 2Z0= 100Ω

DIFF_HSTL_II_DCI_18

ug190_6_58_030306

Z0

DIFF_HSTL_II_DCI_18

DIFF_HSTL_II_DCI_18 DIFF_HSTL_II_DCI_18VCCO = 1.8V

2RVRP = 2Z0= 100Ω

2RVRN = 2Z0= 100Ω

+

VCCO = 1.8V

2RVRP = 2Z0= 100Ω

2RVRN = 2Z0= 100Ω

表 6-24: 差分 HSTL II 类 (1.8V) 的直流电压指标

小值 典型值 大值

VCCO 1.7 1.8 1.9

VTT - VCCO × 0.5 -

VIN (DC) -0.30 - VCCO + 0.30

VDIFF (DC) 0.20 - VCCO + 0.60

VCM (DC)(1) 0.83 - 1.08

VDIFF (AC) 0.40 - VCCO + 0.60

VX (交叉)(2) 0.83 - 1.08

注:1. 共模电压:VCM = VP - ((VP - VN)/2)2. 交叉点:VX,此处 VP - VN = 0 (交流耦合)

Virtex-5 用户指南 www.xilinx.com/cn 263UG190 (v3.1) 2007 年 9 月 11 日

关于 Virtex-5 I/O 所支持标准的具体指导原则R

HSTL III 类 (1.8V)图 6-61 表示 HSTL III 类 (1.8V) 所用有效终端方法的样本电路。

表 6-25 列出了 HSTL III 类 (1.8V) 的直流电压指标。

图 6-61: HSTL III 类 (1.8V) 终端

表 6-25: HSTL III 类 (1.8V) 的直流电压指标

小值 典型值 大值

VCCO 1.7 1.8 1.9

VREF (2) - 1.1 -

VTT - VCCO -

VIH VREF + 0.1 - -

VIL - - VREF - 0.1

VOH VCCO - 0.4 - -

VOL - - 0.4

VOH 对应的 IOH (mA)(1) -8 - -

VOL 对应的 IOL (mA)(1) 24 - -

注:1. 与较低驱动电流对应的 VOL 和 VOH 已经过采样测试。2. 根据 EIA/JESD8-6,“VREF 的值应由用户选择,以便针对用户指定的使用条件提供 佳噪声容限。”

Z0

IOB IOB

HSTL_III_18HSTL_III_18

ug190_6_59_030306

VTT = 1.8V

RP = Z0 = 50Ω

Z0

IOB IOB

HSTL_III_DCI_18 HSTL_III_DCI_18

VCCO = 1.8V

RVRP = Z0= 50Ω

VREF = 1.1V

+

VREF = 1.1V

+

External Termination

DCI

264 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 6 章: SelectIO 资源R

HSTL IV 类 (1.8V)图 6-62 表示 HSTL IV 类 (1.8V) 所用有效单向终端方法的样本电路。

图 6-62: 单向终端 HSTL IV 类 (1.8V)

Z0

IOB IOB

HSTL_IV_18HSTL_IV_18

ug190_6_60_030306

VTT = 1.8V

RP = Z0 = 50Ω

VTT = 1.8V

RP = Z0 = 50Ω

Z0

IOB IOB

HSTL_IV_DCI_18HSTL_IV_DCI_18

VCCO = 1.8V

RVRP = Z0= 50Ω

VREF = 1.1V

+

VREF = 1.1V

+

External Termination

DCI

VCCO = 1.8V

RVRP = Z0= 50Ω

Virtex-5 用户指南 www.xilinx.com/cn 265UG190 (v3.1) 2007 年 9 月 11 日

关于 Virtex-5 I/O 所支持标准的具体指导原则R

图 6-63 表示 HSTL IV 类 (1.8V) 所用有效双向终端方法的样本电路。

图 6-63: 双向终端 HSTL IV 类 (1.8V)

Z0

IOB IOB

HSTL_IV_18HSTL_IV_18

ug190_6_61_030306

VTT = 1.8V

RP = Z0 = 50Ω

VTT = 1.8V

RP = Z0 = 50Ω

Z0

IOB IOB

HSTL_IV_DCI_18HSTL_IV_DCI_18

VCCO = 1.8V

RVRP = Z0= 50Ω

VREF = 1.1V

VREF = 1.1V

+

VREF = 1.1V

+

External Termination

DCI

VCCO = 1.8V

RVRP = Z0= 50Ω

VREF = 1.1V

266 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 6 章: SelectIO 资源R

表 6-26 列出了 HSTL IV 类 (1.8V) 的直流电压指标。

HSTL_II_T_DCI_18 (1.8V) 分裂 Thevenin 终端图 6-64 表示具有片上分裂 Thevenin 终端的 HSTL_II_T_DCI_18 (1.8V) 所用有效终端方法的样本电路。在这种双向情况下,如果是三态,则在接收器而非驱动器上调用终端。

表 6-26: HSTL IV 类 (1.8V) 的直流电压指标

小值 典型值 大值

VCCO 1.7 1.8 1.9

VREF (2) - 1.1 -

VTT - VCCO -

VIH VREF + 0.1 - -

VIL - - VREF - 0.1

VOH VCCO - 0.4 - -

VOL - - 0.4

VOH 对应的 IOH (mA)(1) -8 - -

VOL 对应的 IOL (mA)(1) 48 - -

注:1. 与较低驱动电流对应的 VOL 和 VOH 已经过采样测试。2. 根据 EIA/JESD8-6,“VREF 的值应由用户选择,以便针对用户指定的使用条件提供 佳噪声容限。”

图 6-64: HSTL_II_T_DCI_18 分裂 Thevenin 终端

ug190_6_91_041206

Z0

IOB IOB

HSTL_II_T_DCI_18HSTL_II_T_DCI_18

VCCO = 1.8V

2RVRP = 2Z0= 100Ω

2RVRN = 2Z0= 100Ω

VREF = 0.9V

+

DCI

VREF = 0.9V

Not 3-stated 3-stated

Virtex-5 用户指南 www.xilinx.com/cn 267UG190 (v3.1) 2007 年 9 月 11 日

关于 Virtex-5 I/O 所支持标准的具体指导原则R

HSTL I 类 (1.2V)图 6-65 表示 HSTL I 类 (1.2V) 所用有效终端方法的样本电路,用于单向链路。

表 6-27 列出了 HSTL I 类 (1.2V) 的直流电压指标。

SSTL (线脚系列终端逻辑)线脚系列终端逻辑 (SSTL) 标准的 2.5V 版本 (SSTL2) 和 1.8V 版本 (SSTL18) 用于通用存储器总线。SSTL2 由 JEDEC 标准 JESD8-9B 定义; SSTL18 由 JEDEC 标准 JESD8-15 定义。SSTL2 标准有两个类; I 类用于单向信令,II 类用于双向信令。Virtex-5 I/O 支持单端信令和差分信令两种标准。此标准需要一个差分放大器输入缓冲器和一个推挽式输出缓冲器。

图 6-65: HSTL I 类 (1.2V) 终端

表 6-27: HSTL I 类 (1.2V) 的直流电压指标

小值 典型值 大值

VCCO 1.14 1.2 1.26

VREF (2) VCCO × 0.48 0.6 VCCO × 0.52

VTT - VCCO × 0.5 -

VIH VREF + 0.08 - -

VIL - - VREF - 0.08

VOH VCCO - .0.315 - -

VOL - - 0.315

VOH 对应的 IOH (mA)(1) -6.3 - -

VOL 对应的 IOL (mA)(1) 6.3 - -

注:1. 与较低驱动电流对应的 VOL 和 VOH 已经过采样测试。2. 根据 EIA/JESD8-6,“VREF 的值应由用户选择,以便针对用户指定的使用条件提供 佳噪声容限。”

Z0

IOB IOB

HSTL_I_12HSTL_I_12

ug190_6_62_030306

VTT = 0.6V

RP = Z0 = 50Ω

VREF = 0.6V

+

External Termination

268 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 6 章: SelectIO 资源R

SSTL2_I、SSTL18_I

I 类信令用 VTT (VCCO/2) 作为接收器上的 50 Ω 电阻器的并联终端电压。必须将一个串联电阻器 (在 2.5V 下是 25 Ω,在 1.8V 下是 20 Ω)连接到发射器输出。

SSTL2_I_DCI、SSTL18_I_DCI

DCI 发射器提供内部串联电阻(在 2.5V 下是 25 Ω,在 1.8V 下是 20 Ω)。DCI 接收器有一个由 VCCO 供电的内部分裂 Thevenin 终端,以建立等效 VTT 电压和终端阻抗。

SSTL2_II、SSTL18_II

II 类信令用 VTT (VCCO/2) 分别作为接收器和发射器上的 50 Ω 电阻器的并联终端电压。对于单向链路,必须将一个串联电阻器 (在 2.5V 下是 25 Ω,在 1.8V 下是 20 Ω)连接到发射器输出。对于双向链路,必须将 25 Ω 串联电阻器连接到收发器的发射器。

SSTL2_II_DCI、SSTL18_II_DCI

DCI 电路有一个由 VCCO 供电的分裂 Thevenin 终端和一个内部串联电阻器 (在 2.5V 下是 25 Ω,在 1.8V 下是 20 Ω)。对于单向链路,只为发射器提供内部串联电阻。双向链路的两个发射器都有内部串联电阻器。

DIFF_SSTL2_I、DIFF_SSTL18_I

差分 SSTL 2.5V 和 1.8V I 类组成具有差分接收器的互补单端 SSTL_I 型驱动器对。

DIFF_SSTL2_I_DCI、DIFF_SSTL18_I_DCI

差分 SSTL 2.5V 和 1.8V I 类组成具有差分接收器 (包括片上差分分裂 Thevenin 终端)的互补单端 SSTL_II 型驱动器对。

DIFF_SSTL2_II、DIFF_SSTL18_II

差分 SSTL 2.5V 和 1.8V II 类组成具有差分接收器的互补单端 SSTL_II 型驱动器对。对于双向链路,必须将串联电阻器连接到两个发射器。

DIFF_SSTL2_II_DCI、DIFF_SSTL18_II_DCI

差分 SSTL 2.5V 和 1.8V II 类组成具有差分接收器 (包括片上差分终端)的互补单端 SSTL_II 型驱动器对。DCI 可用于单向和双向链路。

SSTL2_II_T_DCI、SSTL18_II_T_DCI

SSTL2_II_T_DCI 和 SSTL18_II_T_DCI 提供由 VCCO 供电的片上分裂 Thevenin 终端,以便当这些标准是三态时建立 VCCO/2 的等效终端电压。这两个标准如果不是三态则没有并联终端,但在调用时具有一个内部串联电阻器 (在 2.5V 下是 25 Ω,在 1.8V 下是 20 Ω)。

Virtex-5 用户指南 www.xilinx.com/cn 269UG190 (v3.1) 2007 年 9 月 11 日

关于 Virtex-5 I/O 所支持标准的具体指导原则R

SSTL2 I 类 (2.5V)图 6-66 表示 SSTL2 I 类所用有效终端方法的样本电路。

图 6-66: SSTL2 I 类终端

Z0

IOB

SSTL2_IRS = 25Ω

IOB

SSTL2_I_DCI

R0 = 25Ω

Z0

IOB

SSTL2_I

ug190_6_63_030506

VTT = 1.25V

RP = Z0 = 50Ω

Z0

IOB

SSTL2_I_DCI

VCCO = 2.5V

2RVRP = 2Z0= 100Ω

2RVRN = 2Z0= 100Ω

VREF = 1.25V

+

VREF = 1.25V

+

External Termination

DCI

270 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 6 章: SelectIO 资源R

表 6-28 列出了 I 类 SSTL2 的直流电压指标。

差分 SSTL2 I 类 (2.5V)图 6-67 表示单向终端差分 SSTL2 I 类 (2.5V) 所用有效终端方法的样本电路。

表 6-28: I 类 SSTL2 的直流电压指标

小值 典型值 大值

VCCO 2.3 2.5 2.7

VREF = 0.5 × VCCO 1.13 1.25 1.38

VTT = VREF + N(1) 1.09 1.25 1.42

VIH ≥ VREF + 0.15 1.28 1.4 VCCO + 0.3(2)

VIL ≤ VREF - 0.15 -0.3(3) 1.1 1.23

VOH ≥ VREF + 0.61 1.74 1.84 1.94

VOL ≤ VREF - 0.61(4) 0.56 0.66 0.76

VOH 对应的 IOH (mA) -8.1 - -

VOL 对应的 IOL (mA) 8.1 - -

注:1. N 必须大于或等于 -0.04 且小于或等于 0.04。2. VIH 的 大值是 VCCO +0.3。3. VIL 的 小值不依据此公式。4. 因为 SSTL2_I_DCI 使用可控阻抗驱动器,所以 VOH 与 VOL 不同。

图 6-67: 差分 SSTL2 I 类单向终端

ug190_6_64_030506

+

External Termination

Z0

IOB IOB

DIFF_SSTL2_I

DIFF_SSTL2_I

Z0

DIFF_SSTL2_I

VTT = 1.25V

VTT = 1.25V

RP = Z0 = 50Ω

50ΩRS = 25Ω

RS = 25Ω

Virtex-5 用户指南 www.xilinx.com/cn 271UG190 (v3.1) 2007 年 9 月 11 日

关于 Virtex-5 I/O 所支持标准的具体指导原则R

图 6-68 表示单向 DCI 终端差分 SSTL2 I 类 (2.5V) 所用有效终端方法的样本电路。

表 6-29 列出了差分 SSTL2 I 类的直流电压指标。

图 6-68: 差分 SSTL2 (2.5V) I 类单向 DCI 终端

表 6-29: 差分 SSTL2 I 类的直流电压指标

小值 典型值 大值

VCCO 2.3 2.5 2.7

输入参数

VTT - VCCO × 0.5 -

VIN (DC)(1) -0.30 - VCCO + 0.30

VID (DC)(2) 0.3 - VCCO + 0.60

VID (AC) 0.62 - VCCO + 0.60

VIX (AC)(3) 0.95 - 1.55

输出参数

VOX (AC)(4) 1.0 - 1.5

注:1. VIN (DC) 指定各差分输入的允许直流偏移。2. VID (DC) 指定开关所需的输入差分电压。3. VIX (AC) 表示差分输入信号必须交叉处的电压。4. VOX (AC) 表示差分输出信号必须交叉处的电压。

ug190_6_65_030506

IOB

DIFF_SSTL2_I_DCI

DIFF_SSTL2_I_DCI

VCCO = 2.5V

2RVRP = 2Z0= 100Ω

2RVRN = 2Z0= 100Ω

+

DCI

DIFF_SSTL2_I_DCI

VCCO = 2.5V

2RVRP = 2Z0= 100Ω

2RVRN = 2Z0= 100Ω

Z0

Z0

R0 = 25Ω

R0 = 25Ω

272 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 6 章: SelectIO 资源R

SSTL2 II 类 (2.5V)图 6-69 表示 SSTL2 II 类所用有效单向终端方法的样本电路。

图 6-69: 单向终端 SSTL2 II 类

Z0

IOB IOB

SSTL2_IISSTL2_II

ug190_6_66_030506

VTT = 1.25V

RP = Z0 = 50Ω

VTT = 1.25V

RP = Z0 = 50Ω

Z0

IOB IOB

SSTL2_II_DCISSTL2_II_DCI

VCCO = 2.5V

2RVRP = 2Z0= 100Ω

2RVRN = 2Z0= 100Ω

VREF = 1.25V

+

VREF = 1.25V

+

External Termination

DCI

VCCO = 2.5V

2RVRP = 2Z0= 100Ω

2RVRN = 2Z0= 100ΩR0 = 25Ω

25Ω

Virtex-5 用户指南 www.xilinx.com/cn 273UG190 (v3.1) 2007 年 9 月 11 日

关于 Virtex-5 I/O 所支持标准的具体指导原则R

图 6-70 表示 SSTL2 II 类所用有效双向终端方法的样本电路。

图 6-70: 双向终端 SSTL2 II 类

Z0

IOB

SSTL2_II

ug190_6_67_030506

VTT = 1.25V

RP = Z0 = 50Ω

VTT = 1.25V

RP = Z0 = 50Ω

Z0

IOB IOB

SSTL2_II_DCISSTL2_II_DCI

VCCO = 2.5V

2RVRP = 2Z0= 100Ω

2RVRN = 2Z0= 100Ω

VREF = 1.25V

+

VREF = 1.25V

+

External Termination

DCI

VCCO = 2.5V

2RVRP = 2Z0= 100Ω

2RVRN = 2Z0= 100Ω

IOB

SSTL2_IIRS = 25Ω RS = 25Ω

R0 = 25Ω

VREF = 1.25V

VREF = 1.25V

R0 = 25Ω

274 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 6 章: SelectIO 资源R

表 6-30 列出了 II 类 SSTL2 的直流电压指标。

差分 SSTL2 II 类 (2.5V)图 6-71 表示单向终端差分 SSTL2 II 类 (2.5V) 所用有效终端方法的样本电路。

表 6-30: II 类 SSTL2 的直流电压指标

小值 典型值 大值

VCCO 2.3 2.5 2.7

VREF = 0.5 × VCCO 1.13 1.25 1.38

VTT = VREF + N(1) 1.09 1.25 1.42

VIH ≥ VREF + 0.15 1.28 1.40 VCCO + 0.3(2)

VIL ≤ VREF - 0.15 -0.3(3) 1.1 1.27

VOH ≥ VREF + 0.81 1.93 2.03 2.13

VOL ≤ VREF - 0.81(4) 0.36 0.46 0.55

VOH 对应的 IOH (mA) -16.2 - -

VOL 对应的 IOL (mA) 16.2 - -

注:1. N 必须大于或等于 -0.04 且小于或等于 0.04。2. VIH 的 大值是 VCCO +0.3。3. VIL 的 小值不依据此公式。4. 因为 SSTL2_I_DCI 使用可控阻抗驱动器,所以 VOH 与 VOL 不同。

图 6-71: 差分 SSTL2 II 类单向终端

ug190_6_68_030506

+

External Termination

Z0

IOB IOB

DIFF_SSTL2_II

DIFF_SSTL2_II

Z0

DIFF_SSTL2_II

VTT = 1.25V

VTT = 1.25V

50Ω

50Ω

VTT = 1.25V

VTT = 1.25V

50Ω

50ΩRS = 25Ω

RS = 25Ω

Virtex-5 用户指南 www.xilinx.com/cn 275UG190 (v3.1) 2007 年 9 月 11 日

关于 Virtex-5 I/O 所支持标准的具体指导原则R

图 6-72 表示单向 DCI 终端差分 SSTL2 II 类 (2.5V) 所用有效终端方法的样本电路。

图 6-73 表示双向终端差分 SSTL2 II 类 (2.5V) 所用有效终端方法的样本电路。

图 6-72: 差分 SSTL2 (2.5V) II 类单向 DCI 终端

ug190_6_69_030506

IOB

DIFF_SSTL2_II_DCI

DIFF_SSTL2_II_DCI

VCCO = 2.5V

2RVRP = 2Z0= 100Ω

2RVRN = 2Z0= 100Ω

+

DCI

DIFF_SSTL2_II_DCI

VCCO = 2.5V

2RVRP = 2Z0= 100Ω

2RVRN = 2Z0= 100Ω

IOB

VCCO = 2.5V

2RVRP = 2Z0= 100Ω

2RVRN = 2Z0= 100Ω

2RVRP = 2Z0= 100Ω

2RVRN = 2Z0= 100Ω

VCCO = 2.5V

Z0

Z0

R0 = 25Ω

R0 = 25Ω

图 6-73: 双向终端差分 SSTL2 (2.5V) II 类

Z0

IOB IOB

DIFF_SSTL2_II DIFF_SSTL2_II

+

External TerminationVTT = 1.25V

DIFF_SSTL2_II

ug190_6_70_071707

Z0

DIFF_SSTL2_II

DIFF_SSTL2_II DIFF_SSTL2_II

+

VTT = 1.25V

50Ω

50Ω

VTT = 1.25V

VTT = 1.25V

50Ω25Ω

25Ω 25Ω

25Ω

50Ω

276 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 6 章: SelectIO 资源R

图 6-74 表示双向 DCI 终端差分 SSTL2 II 类 (2.5V) 所用有效终端方法的样本电路。

表 6-31 列出了差分 SSTL2 II 类的直流电压指标。

图 6-74: DCI 双向终端差分 SSTL2 (2.5V) II 类

Z0

IOB IOB

DIFF_SSTL2_II_DCI DIFF_SSTL2_II_DCI

VCCO = 2.5V

2RVRP = 2Z0= 100Ω

2RVRN = 2Z0= 100Ω

+

DCI

VCCO = 2.5V

2RVRP = 2Z0= 100Ω

2RVRN = 2Z0= 100Ω

DIFF_SSTL2_II_DCI

ug190_6_71_041106

Z0

DIFF_SSTL2_II_DCI

DIFF_SSTL2_II_DCI DIFF_SSTL2_II_DCIVCCO = 2.5V

2RVRP = 2Z0= 100Ω

2RVRN = 2Z0= 100Ω

+

VCCO = 2.5V

2RVRP = 2Z0= 100Ω

2RVRN = 2Z0= 100Ω

R0 = 25Ω

R0 = 25Ω

R0 = 25Ω

R0 = 25Ω

表 6-31: 差分 SSTL2 II 类的直流电压指标

小值 典型值 大值

VCCO 2.3 2.5 2.7

输入参数

VTT - VCCO × 0.5 -

VIN (DC)(1) -0.30 - VCCO + 0.30

VID (DC)(2) 0.3 - VCCO + 0.60

VID (AC) 0.62 - VCCO + 0.60

VIX (AC)(3) 0.95 - 1.55

输出参数

VOX (AC)(4) 1.0 - 1.5

注:1. VIN (DC) 指定各差分输入的允许直流偏移。2. VID (DC) 指定开关所需的输入差分电压。3. VIX (AC) 表示差分输入信号必须交叉处的电压。4. VOX (AC) 表示差分输出信号必须交叉处的电压。

Virtex-5 用户指南 www.xilinx.com/cn 277UG190 (v3.1) 2007 年 9 月 11 日

关于 Virtex-5 I/O 所支持标准的具体指导原则R

SSTL2_II_T_DCI (2.5V) 分裂 Thevenin 终端图 6-75 表示具有片上分裂 Thevenin 终端的 SSTL2_II_T_DCI (2.5V) 所用有效终端方法的样本电路。在这种双向 I/O 标准中,如果是三态,则在接收器而非驱动器上调用终端。

图 6-75: SSTL2_II_T_DCI (2.5V) 分裂 Thevenin 终端

ug190_6_92_041206

Z0

IOB IOB

SSTL2_II_T_DCISSTL2_II_T_DCI

VCCO = 2.5V

2RVRP = 2Z0= 100Ω

2RVRN = 2Z0= 100Ω

VREF = 1.25V

+

DCI

R0 = 25Ω

VREF = 1.25V

R0 = 25Ω

Not 3-stated 3-stated

278 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 6 章: SelectIO 资源R

SSTL18 I 类 (1.8V)图 6-76 表示 SSTL I 类 (1.8V) 所用有效终端方法的样本电路。

图 6-76: SSTL18 (1.8V) I 类终端

Z0

IOB

SSTL18_I

RS = 20Ω

IOB

SSTL18_I_DCI

R0 = 20Ω

Z0

IOB

SSTL18_I

ug190_6_72_030506

VTT = 0.9V

50Ω

Z0

IOB

SSTL18_I_DCI

VCCO = 1.8V

2RVRP = 2Z0= 100Ω

2RVRN = 2Z0= 100Ω

VREF = 0.9V

+

VREF = 0.9V

+

External Termination

DCI

Virtex-5 用户指南 www.xilinx.com/cn 279UG190 (v3.1) 2007 年 9 月 11 日

关于 Virtex-5 I/O 所支持标准的具体指导原则R

差分 SSTL I 类 (1.8V)图 6-77 表示单向终端差分 SSTL I 类 (1.8V) 所用有效终端方法的样本电路。

图 6-78 表示单向 DCI 终端差分 SSTL I 类 (1.8V) 所用有效终端方法的样本电路。

图 6-77: 差分 SSTL (1.8V) I 类单向终端

图 6-78: 差分 SSTL (1.8V) I 类单向 DCI 终端

ug190_6_73_030506

+

External Termination

Z0

IOB IOB

DIFF_SSTL18_I

DIFF_SSTL18_I

Z0

DIFF_SSTL18_I

VTT = 0.9V

50Ω

VTT = 0.9V

RS = 20Ω

RP = Z0 = 50ΩRS = 20Ω

ug190_6_74_032206

IOB

DIFF_SSTL18_I_DCI

DIFF_SSTL18_I_DCI

VCCO = 1.8V

2RVRP = 2Z0= 100Ω

2RVRN = 2Z0= 100Ω

+

DCI

DIFF_SSTL18_I_DCI

VCCO = 1.8V

2RVRP = 2Z0= 100Ω

2RVRN = 2Z0= 100Ω

IOB

Z0

Z0

R0 = 20Ω

R0 = 20Ω

280 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 6 章: SelectIO 资源R

表 6-32 列出了差分 SSTL (1.8V) I 类的直流电压指标。

表 6-32: 差分 SSTL (1.8V) I 类和 II 类的直流电压指标

小值 典型值 大值

VCCO 1.7 1.8 1.9

输入参数

VTT - VCCO × 0.5 -

VIN (DC)(1) -0.30 - VCCO + 0.30

VID (DC)(3) 0.25 - VCCO + 0.60

VID (AC) 0.50 - VCCO + 0.60

VIX (AC)(4) 0.675 - 1.125

输出参数

VOX (AC)(5) 0.725 - 1.075

注:1. VIN (DC) 指定各差分输入的允许直流偏移。2. 根据 EIA/JESD8-6,“VREF 的值应由用户选择,以便针对用户指定的使用条件提供 佳噪声容限。”3. VID (DC) 指定开关所需的输入差分电压。4. VIX (AC) 表示差分输入信号必须交叉处的电压。5. VOX (AC) 表示差分输出信号必须交叉处的电压。

Virtex-5 用户指南 www.xilinx.com/cn 281UG190 (v3.1) 2007 年 9 月 11 日

关于 Virtex-5 I/O 所支持标准的具体指导原则R

SSTL18 II 类 (1.8V)图 6-79 表示 SSTL II 类 (1.8V) 所用有效单向终端方法的样本电路。

图 6-79: SSTL18 (1.8V) II 类单向终端

Z0

IOB IOB

SSTL18_IISSTL18_II

ug190_6_75_030506

VTT = 0.9V

RP = Z0 = 50Ω

VTT = 0.9V

RP = Z0 = 50Ω

Z0

IOB IOB

SSTL18_II_DCISSTL18_II_DCI

VCCO = 1.8V

2RVRP = 2Z0= 100Ω

2RVRN = 2Z0= 100Ω

VREF = 0.9V

+

VREF = 0.9V

+

External Termination

DCI

VCCO = 1.8V

2RVRP = 2Z0= 100Ω

2RVRN = 2Z0= 100Ω

RS = 20Ω

R0 = 20Ω

282 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 6 章: SelectIO 资源R

图 6-80 表示 SSTL (1.8V) II 类所用有效双向终端方法的样本电路。

图 6-80: SSTL (1.8V) II 类终端

Z0

IOB

SSTL18_II

ug190_6_76_071707

VTT = 0.9V

RP = Z0 = 50Ω

VTT = 0.9V

RP = Z0 = 50Ω

Z0

IOB IOB

SSTL18_II_DCISSTL18_II_DCI

VCCO = 1.8V

2RVRP = 2Z0= 100Ω

2RVRN = 2Z0= 100Ω

VREF = 0.9V

+

VREF = 0.9V

+

External Termination

DCI

VCCO = 1.8V

2RVRP = 2Z0= 100Ω

2RVRN = 2Z0= 100Ω

IOB

SSTL18_IIRS = 20Ω RS = 20Ω

R0 = 20Ω

VREF = 0.9V

VREF = 0.9V

R0 = 20Ω

Virtex-5 用户指南 www.xilinx.com/cn 283UG190 (v3.1) 2007 年 9 月 11 日

关于 Virtex-5 I/O 所支持标准的具体指导原则R

表 6-33 和表 6-34 分别列出了 I 类和 II 类 SSTL (1.8V) 的直流电压指标。

表 6-33: I 类 SSTL (1.8V) 的直流电压指标 I 类

I 类

小值 典型值 大值

VCCO 1.7 1.8 1.9

VREF = 0.5 × VCCO 0.833 0.9 0.969

VTT = VREF + N(1) 0.793 0.9 1.009

VIH ≥ VREF + 0.125 0.958 - VCCO + 0.3(2)

VIL ≤ VREF - 0.125 -0.3(3) - 0.844

VOH ≥ VTT + 0.47(4) 1.263 - -

VOL ≤ VTT - 0.47(4) - - 0.539

VOH 对应的 IOH (mA) -6.7 - -

VOL 对应的 IOL (mA) 6.7 - -

注:1. N 必须大于或等于 -0.04 且小于或等于 0.04。2. VIH 的 大值是 VCCO +0.3。3. VIL 的 小值不依据此公式。4. 因为 SSTL_I_DCI 使用可控阻抗驱动器,所以 VOH 与 VOL 不同。

表 6-34: II 类 SSTL (1.8V) 的直流电压指标

II 类

小值 典型值 大值

VCCO 1.7 1.8 1.9

VREF = 0.5 × VCCO 0.833 0.9 0.969

VTT = VREF + N(1) 0.793 0.9 1.009

VIH ≥ VREF + 0.125 0.958 - VCCO + 0.3(2)

VIL ≤ VREF - 0.125 -0.3(3) - 0.844

VOH ≥ VTT + 0.603(4) 1.396 - -

VOL ≤ VTT - 0.603(4) - - 0.406

VOH 对应的 IOH (mA) -13.4 - -

VOL 对应的 IOL (mA) 13.4 - -

注:1. N 必须大于或等于 -0.04 且小于或等于 0.04。2. VIH 的 大值是 VCCO +0.3。3. VIL 的 小值不依据此公式。4. 因为 SSTL_I_DCI 使用可控阻抗驱动器,所以 VOH 与 VOL 不同。

284 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 6 章: SelectIO 资源R

差分 SSTL II 类 (1.8V)图 6-81 表示单向终端差分 SSTL II 类 (1.8V) 所用有效终端方法的样本电路。

图 6-82 表示单向 DCI 终端差分 SSTL II 类 (1.8V) 所用有效终端方法的样本电路。

图 6-81: 差分 SSTL (1.8V) II 类单向终端

ug190_6_77_030506

+

External Termination

Z0

IOB IOB

DIFF_SSTL18_II

DIFF_SSTL18_II

Z0

DIFF_SSTL18_II

VTT = 0.9V

50Ω

50Ω

VTT = 0.9V

VTT = 0.9V

50Ω

50Ω

VTT = 0.9V

RS = 20Ω

RS = 20Ω

图 6-82: 差分 SSTL (1.8V) II 类单向 DCI 终端

ug190_6_78_030506

IOB

DIFF_SSTL18_II_DCI

DIFF_SSTL18_II_DCI

VCCO = 1.8V

2RVRP = 2Z0= 100Ω

2RVRN = 2Z0= 100Ω

+

DCI

DIFF_SSTL18_II_DCI

VCCO = 1.8V

2RVRP = 2Z0= 100Ω

2RVRN = 2Z0= 100Ω

IOB

VCCO = 1.8V

2RVRP = 2Z0= 100Ω

2RVRN = 2Z0= 100Ω

2RVRP = 2Z0= 100Ω

2RVRN = 2Z0= 100Ω

VCCO = 1.8V

Z0

Z0

R0 = 20Ω

R0 = 20Ω

Virtex-5 用户指南 www.xilinx.com/cn 285UG190 (v3.1) 2007 年 9 月 11 日

关于 Virtex-5 I/O 所支持标准的具体指导原则R

图 6-83 表示双向终端差分 SSTL II 类 (1.8V) 所用有效终端方法的样本电路。

图 6-84 表示双向 DCI 终端差分 SSTL II 类 (1.8V) 所用有效终端方法的样本电路。

图 6-83: 双向终端差分 SSTL (1.8V) II 类

Z0

IOB IOB

DIFF_SSTL18_II DIFF_SSTL18_II

+

External Termination

VCCO = 0.9V

50Ω

DIFF_SSTL18_II

ug190_6_79_030506

Z0

DIFF_SSTL18_II

DIFF_SSTL18_II DIFF_SSTL18_II

+

VCCO = 0.9V

50Ω

VCCO = 0.9V

50Ω

VCCO = 0.9V

50Ω20Ω

20Ω

20Ω

20Ω

图 6-84: DCI 双向终端差分 SSTL (1.8V) II 类

Z0

IOB IOB

DIFF_SSTL18_II_DCI DIFF_SSTL18_II_DCI

VCCO = 1.8V

2RVRP = 2Z0= 100Ω

2RVRN = 2Z0= 100Ω

+

DCI

VCCO = 1.8V

2RVRP = 2Z0= 100Ω

2RVRN = 2Z0= 100Ω

DIFF_SSTL18_II_DCI

ug190_6_80_030506

Z0

DIFF_SSTL18_II_DCI

DIFF_SSTL18_II_DCI DIFF_SSTL18_II_DCIVCCO = 1.8V

2RVRP = 2Z0= 100Ω

2RVRN = 2Z0= 100Ω

+

VCCO = 1.8V

2RVRP = 2Z0= 100Ω

2RVRN = 2Z0= 100Ω

R0 = 20Ω

R0 = 20Ω

R0 = 20Ω

R0 = 20Ω

286 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 6 章: SelectIO 资源R

表 6-35 列出了差分 SSTL (1.8V) II 类的直流电压指标。

SSTL18_II_T_DCI (1.8V) 分裂 Thevenin 终端图 6-85 表示具有片上分裂 Thevenin 终端的 SSTL18_II_T_DCI (1.8V) 所用有效终端方法的样本电路。在这种双向 I/O 标准中,如果是三态,则在接收器而非驱动器上调用终端。

表 6-35: 差分 SSTL (1.8V) II 类的直流电压指标

小值 典型值 大值

VCCO 1.7 1.8 1.9

输入参数

VTT - VCCO × 0.5 -

VIN (DC)(1) -0.30 - VCCO + 0.30

VID (DC)(3) 0.25 - VCCO + 0.60

VID (AC) 0.50 - VCCO + 0.60

VIX (AC)(4) 0.675 - 1.125

输出参数

VOX (AC)(5) 0.725 - 1.075

注:1. VIN (DC) 指定各差分输入的允许直流偏移。2. 根据 EIA/JESD8-6,“VREF 的值应由用户选择,以便针对用户指定的使用条件提供 佳噪声容限。”3. VID (DC) 指定开关所需的输入差分电压。4. VIX (AC) 表示差分输入信号必须交叉处的电压。5. VOX (AC) 表示差分输出信号必须交叉处的电压。

图 6-85: SSTL18_II_T_DCI (1.8V) 分裂 Thevenin 终端

ug190_6_93_041206

Z0

IOB IOB

SSTL18_II_T_DCISSTL18_II_T_DCI

VCCO = 1.8V

2RVRP = 2Z0= 100Ω

2RVRN = 2Z0= 100Ω

VREF = 0.9V

+

DCI Not 3-stated 3-stated

R0 = 20Ω

VREF = 0.9V

R0 = 20Ω

Virtex-5 用户指南 www.xilinx.com/cn 287UG190 (v3.1) 2007 年 9 月 11 日

关于 Virtex-5 I/O 所支持标准的具体指导原则R

差分终端:DIFF_TERM 属性Virtex-5 IOB 提供一个跨接输入差分接收器两端的 100Ω 差分终端。此属性与 LVDS_25、LVDSEXT_25、HT_25 和 RSDS_25 一起使用。HT_25 取代 Virtex-4 LDT_25 标准。

Virtex-5 器件中的片上输入差分终端完全去除了接收器上的短线,因而可显著改善信号完整性,具有以下两大优点:

• 比 DCI 终端功耗小

• 不使用 VRP/VRN 引脚 (DCI)

I/O 组的 VCCO 必须连接到 2.5V ±5%,以提供 100 Ω 的有效差分终端。DIFF_TERM 只可用于输入,而且只能与 VCCO =2.5V 的组电压一起使用。“差分终端属性”(DIFF_TERM) 部分简要描述了如何使用此功能。

LVDS 和扩展 LVDS (低压差分信令)低压差分信令 (LVDS) 是一种功能强大的高速接口,普遍见于许多系统应用。Virtex-5 I/O 是按照 EIA/TIA 的 LVDS 电气规范设计的,以便于系统和电路板设计。因为在 IOB 中使用了 LVDS 电流模式驱动器,因此免除了点对点应用对外部源终端的需要;而 Virtex-5 器件选用了扩展模式,从而为在 FPGA 中实现 LVDS 设计提供了极灵活的解决方案。

扩展 LVDS 提高了驱动能力和电压摆幅 (350 - 750 mV),因而是远距离或电缆 LVDS 链路的理想方案。LVDS 扩展模式驱动器的输出交流特性不在 EIA/TIA 规范的范围之内。LVDS 扩展模式驱动器适合需要较高驱动能力的场合,用于在接收器上产生符合 EIA/TIA 规范的 LVDS 信号。

发射器终端

Virtex-5 LVDS 发射器不需要任何外部终端。表 6-36 列出了对应于 Virtex-5 LVDS 电流模式驱动器的允许属性。Virtex-5 LVDS 电流模式驱动器是真电流源,可以产生适当 (符合 EIA/TIA)的 LVDS 信号。

288 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 6 章: SelectIO 资源R

接收器终端

图 6-86 中的示例是一个差分终端,用于具有 50 Ω 传输线的电路板上的 LVDS 接收器。

图 6-87 中的示例是一个差分终端,用于具有 50 Ω 传输线的电路板上的 LVDS 接收器。

表 6-36 列出了可用的 Virtex-5 LVDS I/O 标准和支持的属性。

图 6-86: LVDS_25 接收器终端

图 6-87: 具有 DIFF_TERM 接收器终端的 LVDS_25

表 6-36: LVDS I/O 标准的允许属性

属性基元

IBUFDS/IBUFGDS OBUFDS/OBUFTDS

IOSTANDARD LVDS_25、LVDSEXT_25

DIFF_TERM TRUE、FALSE 不适用

ug190_6_81_030506

+

External Termination

Z0

IOB IOB

LVDS_25 LVDS_25

Z0

RDIFF = 2Z0= 100Ω

ug190_6_82_030506

Data in

Z0 = 50Ω

Z0 = 50Ω

RDIFF= 100Ω

LVDS_25LVDS_25

+

0

0

IOB IOB

Virtex-5 用户指南 www.xilinx.com/cn 289UG190 (v3.1) 2007 年 9 月 11 日

关于 Virtex-5 I/O 所支持标准的具体指导原则R

HyperTransport™ 协议 (HT)HyperTransport 协议 (HT) 又称为闪电数据传输 (LDT),是一种高速接口的低压标准。其基于差分信令的接口与 LVDS 非常相似。Virtex-5 IOB 配备有 HT 缓冲器。表 6-37 简要描述了所有可用的 HT I/O 标准和支持的属性。

低摆幅差分信令 (RSDS)低摆幅差分信令 (RSDS) 与使用差分信令的 LVDS 高速接口相似。RSDS 的实现与 Virtex-5 器件中 LVDS 的实现相似,仅适用于点对点应用。

BLVDS (总线 LVDS)因为是面向点对点应用,所以 BLVDS 不是 EIA/TIA 标准实现,需要确保适用 I/O 和 PCB 布局设计规则。双向 LVDS 的软件库中提供的基元不使用 Virtex-5 LVDS 电流模式驱动器,而是使用互补单端差分驱动器,所以需要源终端。图 6-88 所示为 BLVDS 发射器终端。

表 6-37: HT I/O 标准的允许属性

属性基元

IBUFDS/IBUFGDS OBUFDS/OBUFTDS

IOSTANDARD HT_25

DIFF_TERM TRUE、FALSE 不适用

表 6-38: RSDS I/O 标准的允许属性

属性基元

IBUFDS/IBUFGDS OBUFDS/OBUFTDS

IOSTANDARD RSDS_25

DIFF_TERM TRUE、FALSE 不适用

图 6-88: BLVDS 发射器终端

ug190_6_83_030506

Z0 = 50Ω

Z0 = 50Ω

RDIV140Ω

RDIFF = 100Ω

RS

165Ω

RS

165Ω

IN

INX

Data in

-

+

BLVDS_25

IOBBLVDS_25

BLVDS_25

IOB

290 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 6 章: SelectIO 资源R

差分 LVPECL (低压正发射极耦合逻辑)LVPECL 是一种功能强大的高速接口,普遍见于许多系统应用。Virtex-5 I/O 是按照 EIA/TIA 的 2.5V LVPECL 电气规范设计的,以便于系统和电路板设计。

LVPECL 收发器终端

Virtex-5 LVPECL 发射器和接收器需要图 6-89 所示终端,图示为具有 50 Ω 传输线的电路板上的 Virtex-5 LVPECL 发射器和接收器。LVPECL 驱动器由两个 LVCMOS 驱动器组成,与三电阻器输出终端电路组合形成符合 LVPECL 的输出。

图 6-89: LVPECL 发射器终端

ug190_6_84_030506

Z0 = 50Ω

Z0 = 50Ω

RDIV187Ω

RDIFF = 100Ω

RS

70Ω

RS

70Ω

IN

INX

Data in

-

+

LVPECL_25

IOBLVPECL_25

LVPECL_25

IOB

Virtex-5 用户指南 www.xilinx.com/cn 291UG190 (v3.1) 2007 年 9 月 11 日

在同组中合并 I/O 标准的规则R

在同组中合并 I/O 标准的规则要在同组中合并不同的输入、输出和双向标准,必须遵守以下规则:

1. 仅合并输出标准。具有同样输出 VCCO 要求的输出标准可以在同组中合并。

兼容的示例:

SSTL2_I 输出和 LVDCI_25 输出

不兼容的示例:

SSTL2_I (输出 VCCO = 2.5V)输出和 LVCMOS33 (输出 VCCO = 3.3V)输出

2. 仅合并输入标准。具有同样 VCCO 和 VREF 要求的输入标准可以在同组中合并。

兼容的示例:

LVCMOS15 输入和 HSTL_IV 输入

不兼容的示例:

LVCMOS15 (输入 VCCO = 1.5V)输入和LVCMOS18 (输入 VCCO = 1.8V)输入

不兼容的示例:

HSTL_I_DCI_18 (VREF = 0.9V) 输入和HSTL_IV_DCI_18 (VREF = 1.1V) 输入

3. 合并输入标准和输出标准。具有同样 VCCO 要求的输入标准和输出标准可以在同组中合并。

兼容的示例:

LVDS_25 输出和 HSTL_I 输入

不兼容的示例:

LVDS_25 输出 (输出 VCCO = 2.5V)和HSTL_I_DCI_18 输入 (输入 VCCO = 1.8V)

4. 双向标准与输入或输出标准合并。双向 I/O 与其他标准合并时,双向标准务必满足前三条规则。

5. 合并 DCI I/O 标准的其他规则。

a. 同组中只可有一个单终端类型 (输入或输出)。

不兼容的示例:

HSTL_IV_DCI 输入和 HSTL_III_DCI 输入

b. 同组中只可有一个分裂终端类型 (输入或输出)。

不兼容的示例:

HSTL_I_DCI 输入和 HSTL_II_DCI 输入

实现工具强制执行这些设计规则。

292 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 6 章: SelectIO 资源R

表 6-39 简要描述了 Virtex-5 支持的 I/O 标准。

表 6-39: I/O 兼容性

I/O 标准VCCO VREF 终端类型

输出 输入 输入 输出 输入

LVTTL(1)

3.3 3.3

N/R N/R N/R

LVCMOS33(1) N/R N/R N/R

LVDCI_33(1) N/R 串联 N/R

HSLVDCI_33(1) VCCO/2 串联 N/R

PCIX(1) N/R N/R N/R

PCI33_3(1) N/R N/R N/R

PCI66_3(1) N/R N/R N/R

LVDS_25

2.5

注 (2)

N/R N/R N/R

LVDSEXT_25 N/R N/R N/R

HT_25 N/R N/R N/R

RSDS_25(4) N/R N/R N/R

BLVDS_25 N/R N/R N/R

LVPECL_25 N/R N/R N/R

SSTL2_I 1.25 N/R N/R

SSTL2_II 1.25 N/R N/R

DIFF_SSTL2_I N/R N/R N/R

DIFF_SSTL2_II N/R N/R N/R

LVCMOS25

2.5

N/R N/R N/R

LVDCI_25 N/R 串联 N/R

HSLVDCI_25 VCCO/2 串联 N/R

LVDCI_DV2_25 N/R 串联 N/R

SSTL2_I_DCI 1.25 N/R 分裂

SSTL2_II_DCI 1.25 分裂 分裂

SSTL2_II_T_DCI 1.25 N/R 分裂

DIFF_SSTL2_I_DCI N/R N/R 分裂

DIFF_SSTL2_II_DCI N/R 分裂 分裂

Virtex-5 用户指南 www.xilinx.com/cn 293UG190 (v3.1) 2007 年 9 月 11 日

在同组中合并 I/O 标准的规则R

HSTL_III_18

1.8

注 (2)

1.08 N/R N/R

HSTL_IV_18 1.08 N/R N/R

HSTL_I_18 0.9 N/R N/R

HSTL_II_18 0.9 N/R N/R

DIFF_HSTL_I_18 N/R N/R N/R

DIFF_HSTL_II_18 N/R N/R N/R

SSTL18_I 0.9 N/R N/R

SSTL18_II 0.9 N/R N/R

DIFF_SSTL18_I N/R N/R N/R

DIFF_SSTL18_II N/R N/R N/R

LVCMOS18

1.8

N/R N/R N/R

LVDCI_18 N/R 串联 N/R

HSLVDCI_18 VCCO/2 串联 N/R

LVDCI_DV2_18 N/R 串联 N/R

HSTL_III_18_DCI 1.08 N/R 单

HSTL_IV_18_DCI 1.08 单 单

HSTL_I_18_DCI 0.9 N/R 分裂

HSTL_II_18_DCI 0.9 分裂 分裂

HSTL_II_T_18_DCI N/R N/R 分裂

DIFF_HSTL_I_18_DCI N/R N/R 分裂

DIFF_HSTL_II_18_DCI N/R 分裂 分裂

SSTL18_I_DCI 0.9 N/R 分裂

SSTL18_II_DCI 0.9 分裂 分裂

SSTL18_II_T_DCI 0.9 N/R 分裂

DIFF_SSTL18_I_DCI N/R N/R 分裂

DIFF_SSTL18_II_DCI N/R 分裂 分裂

表 6-39: I/O 兼容性 ( 续表 )

I/O 标准VCCO VREF 终端类型

输出 输入 输入 输出 输入

294 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 6 章: SelectIO 资源R

HSTL_III

1.5

注 (2)

0.9 N/R N/R

HSTL_IV 0.9 N/R N/R

HSTL_I 0.75 N/R N/R

HSTL_II 0.75 N/R N/R

DIFF_HSTL_I N/R N/R N/R

DIFF_HSTL_II N/R N/R N/R

LVCMOS15

1.5

N/R N/R N/R

LVDCI_15 N/R 串联 N/R

HSLVDCI_15 VCCO/2 串联 N/R

LVDCI_DV2_15 N/R 串联 N/R

GTLP_DCI 1 单 单

HSTL_III_DCI 0.9 N/R 单

HSTL_IV_DCI 0.9 单 单

HSTL_I_DCI 0.75 N/R 分裂

HSTL_II_DCI 0.75 分裂 分裂

HSTL_II_T_DCI 0.75 N/R 分裂

DIFF_HSTL_I_DCI N/R N/R 分裂

DIFF_HSTL_II_DCI N/R 分裂 分裂

GTL_DCI 1.2 1.2 0.8 单 单

GTLPN/R 注 (2)

1 N/R N/R

GTL 0.8 N/R N/R

LVCMOS121.2 1.2

N/R N/R N/R

HSTL_I_12 0.6 N/R N/R

注:1. 关于更多详细信息,请见 “3.3V I/O 设计指导原则”。2. 差分输入和使用 VREF 的输入均由 VCCAUX 供电。不过,由于存在 VCCO 的箝位二极管,引脚

电压不得超过 VCCO。3. N/R = 无要求。4. RSDS_25 的直流指标与 LVDS_25 的相同。有关 LVDS_25 的所有信息都适用于 RSDS_25。5. I/O 标准是用 IOSTANDARD 属性来选择的。

表 6-39: I/O 兼容性 ( 续表 )

I/O 标准VCCO VREF 终端类型

输出 输入 输入 输出 输入

Virtex-5 用户指南 www.xilinx.com/cn 295UG190 (v3.1) 2007 年 9 月 11 日

在同组中合并 I/O 标准的规则R

3.3V I/O 设计指导原则为了获得 Virtex-5 器件的 高性能,本部分集中介绍若干 3.3V I/O 设计指导原则和方法,其中包括用终端方法处理上过冲 / 下过冲、用电压调节器将 VCCO 调节到 3.0V、使用外部总线开关、检查配置方法,以及其他设计考虑事项。

I/O 标准设计规则

上过冲 / 下过冲

当 VCCO 是 3.75V 时,工作电压为 3.3V 的 I/O 上的下过冲和上过冲电压分别不应超过-0.3V 到 4.05V 的绝对 大标称值。《Virtex-5 数据手册》中的绝对 大标称值表规定了这些绝对 大值限制。不过, 大下过冲值直接受 VCCO 值影响。

栅氧化层两侧的电压在任何时候均不得超过 4.05V。请考虑 I/O 作为输入或三态缓冲器的情形(如图 6-90 所示)。输出 PMOS 晶体管 P0 和 NMOS 晶体管 N0 的栅极实质上是分别接 VCCO 和接地。

不会使 PMOS 晶体管 P0 过载的允许下过冲的量是栅电压减去栅氧化层极限值,即VCCO - 4.05V。

同理,不会使 NMOS 晶体管 N0 过载的允许绝对 大上过冲的量是栅电压加上栅氧化层极限值,即地电压 + 4.05V。

箝位二极管在瞬时电压近乎超过 VCCO + 0.5V 和地电压 - 0.5V 时提供保护。二极管两端的电压与通过二极管的电流呈正比上升。所以,箝位电平不固定,而是因电路板的设计不同而有所变化。即使箝位二极管导通,仍可能超过绝对 大 I/O 极限值。

IBIS 模型包含 I/O 驱动器和箝位二极管的电压 - 电流特性。

为了验证上过冲和下过冲是否在 I/O 的绝对 大指标之内,Xilinx 建议妥善端接 I/O 并进行 IBIS 仿真。

图 6-90: Virtex-5 I/O:三态输出驱动器

ug190_6_85_030506

Output Driver

VCCO

Po

No

DG

DP

Ni

PiPowerClampDiode

GroundClampDiode

GND GND

VCCO

ExternalPin

Input Buffer

296 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 6 章: SelectIO 资源R

源终端与 LVDCI_33

一般而言,为了尽量减少上过冲和下过冲,I/O 驱动器应与电路板迹线阻抗匹配到 ±10% 之内。源终端常常用于单向接口。DCI 功能在所有用户输出引脚上都具有内置源终端。它可以补偿电压和 / 或温度波动引起的阻抗变化,并且可与参考电阻器的阻值匹配。假定参考电阻器阻值与电路板迹线阻抗相同,则驱动器的输出阻抗就会与电路板迹线近似匹配。

LVDCI_33 标准用来为 3.3V I/O 操作启用 DCI 功能。如图 6-91 所示,OBUF_LVDCI_33 基元用来实现 Virtex-5 输出驱动器中的源终端功能。连接 VRN 的上拉电阻器和连接 VRP 的下拉电阻器决定着同组中所有输出驱动器的输出阻抗。“Virtex-5 数控阻抗 (DCI)”部分提供了关于如何使用 DCI 的更多详细信息。

因为 LVDCI_33 标准不提供输入终端,所以必须在驱动器一侧实现源终端。图 6-91 所示为推荐在外部器件一侧加入的外部源终端电阻器。

为了尽量减少上过冲和下过冲,加到串联终端电阻器 R0 上的 LVTTL/LVCMOS 驱动器的总阻抗必须与电路板迹线阻抗匹配到 ±10% 之内。建议进行 IBIS 仿真,以计算 R0 所需的准确值。

图 6-91: 用 LVDCI_33 标准连接 LVTTL 或 LVCMOS

R0 + RDriver = Z0 = 50Ω (typical) Virtex-5 FPGA

Z0

LVTTL/LVCMOSDriver

IBUF_LVDCI_33 Any 3.3VI/O Device

R0

VCCO = 3.3V

ug190_6_86_030506

Z0

External Device

OBUF_LVDCI_33

RREF

VCCO

VRN

RREF

VRP

Virtex-5 用户指南 www.xilinx.com/cn 297UG190 (v3.1) 2007 年 9 月 11 日

在同组中合并 I/O 标准的规则R

图 6-92 所示接线图适用于双向总线方案。R0 可能会使信号性能下降。因此,建议用 IBIS 仿真验证 R0 值和性能。

当用 LVDCI_33 标准进行设计时:

• 输出驱动强度和斜率不可编程。输出阻抗参考 VRP 和 VRN 电阻器,而输出电流则由输出阻抗确定。

• 如果仅使用 LVDCI_33 输入,则不必将 VRP 和 VRN 连接到外部参考电阻器。实现的焊盘报告不记录正在使用的 VRP 和 VRN。仅当组中存在 LVDCI_33 输出时才需要外部参考电阻器。

• LVDCI_33 仅兼容 LVTTL 和 LVCMOS 标准。

另外,减慢斜率和 / 或降低电流驱动强度可能显著减少上过冲和下过冲。

《Virtex-5 PC 电路板设计指南》包含更多设计信息,可帮助 PCB 设计人员和信号完整性工程师。

将 VCCO调节到 3.0V

以下部分讨论管理 LVTTL、LVCMOS33 和 PCI 应用的上过冲和下过冲的其他办法。

当 VCCO 降至 3.0V 时,电源箝位二极管在 3.5V 左右导通,从而对任何高于 3.5V 的过冲在其达到 4.05V 绝对 大电平之前加以限制。另外,绝对 大值下限不是对应 VCCO = 3.75V 的 -0.3V,而是对应 VCCO = 3.0V 的 -1.05V。在这种情况下,地箝位二极管在下冲达到绝对 大值下限之前对其进行箝制。

因此,把 VCCO 降至 3.0V 便可满足全部所支持 3.3 V 标准 (包括 LVCMOS_33、LVTTL、LVDCI_33 和 PCI)的上过冲和下过冲指标。

混合方法

使用 LVDCI_33 标准和将 VCCO 降至 3.0V 都是解决上过冲和下过冲的好办法。也可把两种办法结合起来。如果 VCCO 已经降至 3.0V,则不必调整参考电阻器 VRP 和 VRN。VRP 和 VRN 的值应始终与电路板迹线阻抗相同。

图 6-92: 3.3V I/O 配置

ug190_6_87_030506

Virtex-5FPGA

OBUFT_LVDCI_33

IBUF_LVDCI

External Device

Z0

R0

298 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 6 章: SelectIO 资源R

同步开关输出限制如果多个输出驱动器同时改变状态,就会发生电源扰动。这种扰动会导致输出驱动器、输入接收器或内部逻辑发生不需要的瞬时行为。这种扰动通常称为同步开关输出 (SSO) 噪声。SSO 极限值对可同时开关的 I/O 输出驱动器的数量和类型进行控制,同时保持安全的 SSO 噪声水平。

稀疏锯齿形 (Sparse-Chevron) 封装Virtex-5 封装采用稀疏锯齿形管脚布置。稀疏锯齿形管脚布置形式是在过去设计基础上的改进,降低了串扰和 SSO 噪声。这种管脚布置旨在尽量减少 PDS 电感,并且使 I/O 信号回流通路与其相关 I/O 信号引脚紧密靠拢。

在稀疏锯齿形封装中,I/O 引脚数与参考引脚 (VCCO 和 GND)数的 大比率是 4:1。对于每四个 I/O 引脚,总是至少有一个参考引脚。

对于不满足“标称 PCB 指标”中所列标称 PCB 要求的电路板,可以使用 Virtex-5 SSO 计算器,其中包含针对所有 I/O 标准的全部 SSO 极限值数据。对于混用有限值和 “无限值”I/O 标准的标称 PCB 中的设计,必须使用 Virtex-5 SSO 计算器,以确保 I/O 的使用不超过极限值。“全器件 SSO 计算器”部分提供了关于计算器的信息。

与以前系列不同的是,Virtex-5 器件只有 20 I/O 和 40 I/O 两种组规格。因为信号引脚数与参考引脚数的比率保持不变,所以各 20 I/O 组的 SSO 能力都相同,各 40 I/O 组的能力也都相同。Virtex-5 器件的 SSO 极限值是按组列出,不是按 VCCO/GND 对设限。

Virtex-5 用户指南 www.xilinx.com/cn 299UG190 (v3.1) 2007 年 9 月 11 日

同步开关输出限制R

标称 PCB 指标标称 SSO 表 (表 6-40)包含针对 PCB 参数满足以下要求情形的 SSO 极限值。

注: 对于 PCB 参数不能完全满足下列要求的情况,必须使用 Virtex-5 SSO 计算器根据具体 PCB 的物理因素确定 SSO 极限值。

PCB 结构

• VCCO 和 GND 过孔直径应不小于 11 毫英寸 (279 µ)。

• 电路板总厚度不得大于 62 毫英寸 (1575 µ)。

信号回流管理

• 迹线必须以相邻 PCB 层上的平面作参考平面。

• 参考平面必须是与输出驱动器关联的 GND 或 VCCO。

• 器件与器件之间的参考层必须在其全长上保持连续。

负载迹线

• 所有 IOB 输出缓冲器必须驱动特征阻抗为 50Ω ± 10% 的可控阻抗迹线。

• 迹线远端的总容性负载 (接收器件的输入电容)不得大于 10 pF。

功率分配系统设计

• 按照 《Virtex-5 PC 电路板设计指南》设计。

♦ 去耦电容器符合器件指导原则

♦ 经过验证的焊盘图形

• VCCO 和 GND 平面相距不得超过 5.0 毫英寸 (152 µ)。

300 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 6 章: SelectIO 资源R

标称 SSO 极限值表 6-40 提供了关于每组允许 大同步开关输出数的指导原则,以避免地弹效应。

表 6-40: 每组允许 大同步开关输出数

电压 IOSTANDARD 每 20 引脚组极限值 每 40 引脚组极限值

1.2V

HSTL_I_12 20 40

LVCMOS12_2_slow 20 40

LVCMOS12_4_slow 20 40

LVCMOS12_6_slow 20 40

LVCMOS12_8_slow 20 40

LVCMOS12_2_fast 20 40

LVCMOS12_4_fast 20 40

LVCMOS12_6_fast 20 40

LVCMOS12_8_fast 20 40

Virtex-5 用户指南 www.xilinx.com/cn 301UG190 (v3.1) 2007 年 9 月 11 日

同步开关输出限制R

1.5V

LVCMOS15_2_slow 20 40

LVCMOS15_4_slow 20 40

LVCMOS15_6_slow 20 40

LVCMOS15_8_slow 20 40

LVCMOS15_12_slow 20 40

LVCMOS15_16_slow 20 40

LVCMOS15_2_fast 20 40

LVCMOS15_4_fast 20 40

LVCMOS15_6_fast 20 40

LVCMOS15_8_fast 20 40

LVCMOS15_12_fast 20 40

LVCMOS15_16_fast 20 40

LVDCI_15 50 Ω 20 40

HSTL_I_15 20 40

HSTL_I_15_DCI 20 40

HSTL_II_15 20 40

HSTL_II_15_DCI 20 40

HSTL_III_15 20 40

HSTL_III_15_DCI 20 40

HSTL_IV_15 12 25

HSTL_IV_15_DCI 12 25

HSLVDCI_15 50 Ω 20 40

DIFF_HSTL_I_15 20 40

DIFF_HSTL_I_15_DCI 20 40

DIFF_HSTL_II_15 20 40

DIFF_HSTL_II_15_DCI 20 40

表 6-40: 每组允许 大同步开关输出数 ( 续表 )

电压 IOSTANDARD 每 20 引脚组极限值 每 40 引脚组极限值

302 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 6 章: SelectIO 资源R

1.8V

LVCMOS18_2_slow 20 40

LVCMOS18_4_slow 20 40

LVCMOS18_6_slow 20 40

LVCMOS18_8_slow 20 40

LVCMOS18_12_slow 20 40

LVCMOS18_16_slow 20 40

LVCMOS18_2_fast 20 40

LVCMOS18_4_fast 20 40

LVCMOS18_6_fast 20 40

LVCMOS18_8_fast 20 40

LVCMOS18_12_fast 20 40

LVCMOS18_16_fast 20 40

LVDCI_18 50 Ω 20 40

HSTL_I_18 20 40

HSTL_I_18_DCI 20 40

HSTL_II_18 20 40

HSTL_II_18_DCI 20 40

HSTL_III_18 17 35

HSTL_III_18_DCI 17 35

HSTL_IV_18 10 20

HSTL_IV_18_DCI 10 20

SSTL18_I 20 40

SSTL18_I_DCI 20 40

SSTL18_II 20 40

SSTL18_II_DCI 20 40

HSLVDCI_18 50 Ω 20 40

DIFF_HSTL_I_18 20 40

DIFF_HSTL_I_18_DCI 20 40

DIFF_HSTL_II_18 20 40

DIFF_HSTL_II_18_DCI 20 40

DIFF_SSTL18_I 20 40

DIFF_SSTL18_I_DCI 20 40

DIFF_SSTL18_II 20 40

DIFF_SSTL18_II_DCI 20 40

表 6-40: 每组允许 大同步开关输出数 ( 续表 )

电压 IOSTANDARD 每 20 引脚组极限值 每 40 引脚组极限值

Virtex-5 用户指南 www.xilinx.com/cn 303UG190 (v3.1) 2007 年 9 月 11 日

同步开关输出限制R

2.5V

LVCMOS25_2_slow 20 40

LVCMOS25_4_slow 20 40

LVCMOS25_6_slow 20 40

LVCMOS25_8_slow 20 40

LVCMOS25_12_slow 20 40

LVCMOS25_16_slow 20 40

LVCMOS25_24_slow 20 40

LVCMOS25_2_fast 20 40

LVCMOS25_4_fast 20 40

LVCMOS25_6_fast 20 40

LVCMOS25_8_fast 20 40

LVCMOS25_12_fast 20 40

LVCMOS25_16_fast 20 40

LVCMOS25_24_fast 15 30

LVDCI_25 50 Ω 20 40

SSTL2_I 20 40

SSTL2_I_DCI 20 40

SSTL2_II 20 40

SSTL2_II_DCI 20 40

HSLVDCI_25 50 Ω 20 40

DIFF_SSTL_I 20 40

DIFF_SSTL_I_DCI 20 40

DIFF_SSTL_II 20 40

DIFF_SSTL_II_DCI 20 40

LVPECL_25 20 40

BLVDS_25 20 40

LVDS_25 20 40

LVDSEXT_25 20 40

RSDS_25 20 40

HT_25 20 40

表 6-40: 每组允许 大同步开关输出数 ( 续表 )

电压 IOSTANDARD 每 20 引脚组极限值 每 40 引脚组极限值

304 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 6 章: SelectIO 资源R

3.3V

LVCMOS33_2_slow 20 40

LVCMOS33_4_slow 20 40

LVCMOS33_6_slow 20 40

LVCMOS33_8_slow 20 40

LVCMOS33_12_slow 20 40

LVCMOS33_16_slow 20 40

LVCMOS33_24_slow 20 40

LVCMOS33_2_fast 20 40

LVCMOS33_4_fast 20 40

LVCMOS33_6_fast 20 40

LVCMOS33_8_fast 20 40

LVCMOS33_12_fast 20 40

LVCMOS33_16_fast 20 40

LVCMOS33_24_fast 15 30

LVTTL_2_slow 20 40

LVTTL_4_slow 20 40

LVTTL_6_slow 20 40

LVTTL_8_slow 20 40

LVTTL_12_slow 20 40

LVTTL_16_slow 20 40

LVTTL_24_slow 20 40

LVTTL_2_fast 20 40

LVTTL_4_fast 20 40

LVTTL_6_fast 20 40

LVTTL_8_fast 20 40

LVTTL_12_fast 20 40

LVTTL_16_fast 20 40

LVTTL_24_fast 15 30

PCI33_3 20 40

PCI66_3 20 40

PCIX 20 40

表 6-40: 每组允许 大同步开关输出数 ( 续表 )

电压 IOSTANDARD 每 20 引脚组极限值 每 40 引脚组极限值

Virtex-5 用户指南 www.xilinx.com/cn 305UG190 (v3.1) 2007 年 9 月 11 日

同步开关输出限制R

实际 SSO 极限值与标称 SSO 极限值的关系Virtex-5 SSO 极限值是针对表 6-40 中的一组标称系统条件规定的。要针对特定用户系统计算实际极限值,必须使用 “寄生系数降额法 (PFDM)”。用户可以用 PFDM 算出实际与标称 PCB 电源系统、接收器容性负载以及 大允许地弹或 VCC 反弹之间的差异。“全器件 SSO 计算器”是一种电子表格计算器,可以自动完成这一过程。

SSO 噪声的电气原理SSO 噪声可用地弹或 VCC 反弹的形式表示电源扰动。GND 和 VCC 反弹是晶片供电电压(晶片 GND 轨或晶片 VCC 轨)对相关的 PCB 供电电压(PCB GND 轨或 PCB VCC 轨)的偏差。晶片供电相对 PCB 供电的偏差源于供电瞬时电流在电源系统的寄生回路上产生的感应电压。瞬时电流的一个起因是输出驱动器开关事件。众多输出开关事件同时发生会导致较大的瞬时电流,从而产生较高的感应电压 (地弹、VCC 反弹或塌轨)。晶片、封装和 PCB 中都存在相应的瞬时电流通路,所以必须考虑来自这三者的寄生效应。这些寄生效应的值越大,瞬时电流 (电源扰动)感应的电压就越高。

VCC 反弹影响稳定的高输出。地弹影响稳定的低输出。地弹还影响按某些 I/O 标准配置的输入,因为这些输入是通过将输入信号与参考晶片地端的阈值进行比较来解释输入信号(这与输入阈值参考 VREF 电压的 I/O 标准不同)。如果晶片电压扰动超过接口的瞬时噪声容限,就会将无变化的输入或输出错误地解释为有变化。

SSO 噪声还表现为密集 I/O 之间串扰的形式。Virtex-5 器件的稀疏锯齿形管脚分配可将管脚分配区中的串扰降到 低。

寄生系数降额法 (PFDM)本部分介绍一种评估设计是否在 SSO 极限值范围内的方法,当考虑用户特定系统的具体电气参数时可以使用这种方法。

表 6-40 中的 SSO 极限值是以系统寄生系数的标称值为假定条件。这些系数分为以下三个电气参数组:

• PCB PDS 寄生电感 (标称每过孔 1 nH)

• 大允许电源系统扰动电压 (标称 600 mV)

• 容性负载 (标称每负载 10 pF)

当设计的电气参数与标称值有差异时,系统的 SSO 极限值就会变化。差异的程度决定着设计的新的有效极限值。我们将一个称为 “SSO 容限系数”的数字作为单一降额系数,用来考虑全部三组系统电气参数的综合影响。

3.3V

GTL 12 25

GTL_DCI 12 25

GTLP 12 25

GTLP_DCI 12 25

LVDCI_25 50 Ω 20 40

HSLVDCI_33 50 Ω 20 40

表 6-40: 每组允许 大同步开关输出数 ( 续表 )

电压 IOSTANDARD 每 20 引脚组极限值 每 40 引脚组极限值

306 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 6 章: SelectIO 资源R

SSO 容限系数是一个 0 到 100% 之间的数字,是以下三个换算系数的乘积:

“第一换算系数”表示 PCB PDS 寄生电感。其确定方法是以用户的 PCB PDS 电感 LPDS_USR 除以标称 PCB PDS 电感。PCB PDS 电感的确定是依据一组电路板几何参数:电路板厚度、过孔直径、中断迹线的宽度和长度,以及包括插槽在内的所有其他附加结构。

“第二换算系数”表示 大允许电源系统扰动。其确定方法是以标称 大电源系统扰动除以用户的 大允许电源系统扰动 (VDISTURBANCE_USER)。VDISTURBANCE_USER 的确定方法通常是取输入下过冲电压和输入逻辑低阈值二者中的较小者。

“第三换算系数”表示 FPGA 所驱动输出的容性负载。此换算系数的依据是在假定的标称值上每附加一皮法负载电容所产生的瞬时电流影响。在标称值上每附加 1 pF 负载电容,电源系统扰动就会增大约 9 mV。将增加的电源系统扰动与标称电源系统扰动进行比较,然后从这种关系中导出换算系数。CLOAD_USER 是用户的平均负载电容。

以下计算示例说明如何计算各换算系数以及 SSO 容限系数。此示例中使用的系统参数是:

LPDS_USER = 1.1 nH

VDISTURBANCE_USER = 550 mV

CLOAD_USER = 22 pF

第一换算系数 (SF1) = LPDS_NOM/LPDS_USER= 1.0 nH/1.1 nH= 0.909

第二换算系数 (SF2) = VDISTURBANCE_USER/VDISTURBANCE_NOM

= 550 mV/600 mV

= 0.917

第三换算系数 (SF3)

= VDISTURBANCE_NOM/((CLOAD_USER – CLOAD_NOM) × 9 mV/pF) + VDISTURBANCE_NOM

= 600 mV/((22 pF – 15 pF) × 9 mV/pF) + 600 mV

= 600 mV/663 mV

= 0.905

SSO 容限系数 = SF1 × SF2 × SF3 × 100%

= 0.909 × 0.917 × 0.905 × 100%

= 75.4%

Virtex-5 用户指南 www.xilinx.com/cn 307UG190 (v3.1) 2007 年 9 月 11 日

同步开关输出限制R

SSO 的加权平均计算本部分讲述 SSO 的计算,其中将组中所有 I/O 的 SSO 组分综合到一个数字中。

各组 SSO 的计算方法是求出组中各 I/O 标准的 SSO 组分之和。SSO 组分是任一组中的任一 I/O 标准充分使用时所占的百分比。对于各 I/O 标准的驱动器,计算如下:

SSO 组分 (第 n 个 I/O 组)= (驱动器数量)/ (组 SSO 极限值)

对于具有多 I/O 标准驱动器的组,SSO 的计算是:

以下是示例 SSO 计算。使用的系统参数是:

器件: XC5VLX50 FF1153

组号: 11

I/O 标准,数量:SSTL2_II,12

LVCMOS25_24 Fast,6

LVCMOS25_6 Fast,19

首先,从表 6-40 中查出各 I/O 标准的 SSO 极限值:

各 I/O 标准的 SSO 组分计算如下:

SSO 组分 = (驱动器数量)/ (组 SSO 极限值)

SSO 组分 (1) = 12/40 = 30%

SSO 组分 (2) = 6/30 = 20%

SSO 组分 (3) = 19/40 = 48%

后,计算组 SSO:

组 1 SSO = SSO 组分 (1) + SSO 组分 (2) + SSO 组分 (3)

= 30% + 20% + 48% = 98%

I/O 组 I/O 标准 SSO 极限值 (每组驱动器数)

1 SSTL2_II 40

2 LVCMOS25_24 Fast 30

3 LVCMOS25_6 Fast 40

Bank SSO SSO Contribution n( )1 to n( )∑=

308 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 6 章: SelectIO 资源R

全器件 SSO 计算器Virtex-5 SSO 计算器是一个基于 Microsoft Excel 的电子表格,可以自动完成所有 PFDM 和 SSO 计算。Virtex-5 SSO 计算器使用 PCB 几何参数 (电路板厚度、过孔直径以及中断迹线的宽度和长度)确定电源系统电感。此工具考虑本技术文档中提到的所有板级设计参数,从而确定所有输入器件中的 低下过冲和逻辑低阈值电压,计算平均输出电容,并且确定 SSO 容限系数。另外,Virtex-5 SSO 计算器还检查相邻组和封装的 SSO,以确保整个器件设计不超过 SSO 容限。由于 Virtex-5 器件的列式架构 (对照以前器件的外设 I/O 架构),其各种封装的组号分配不尽相同。因此,对于各 Virtex-5 封装,在 SSO 计算器屏显界面下端另有一个标签。使用此自定制功能可以布置实际相邻的组 (因为各组在每个特定封装中是按顺时针显示,即使它们不是按连续方式标记),并且可以为每组 VCCO/GND 对的数目进行硬编码。

可以从 Xilinx 网站下载 Virtex-5 SSO 计算器,其网址是:

http://www.xilinx.com/cn/bvdocs/userguides/ug190_SSO_Calculator.zip

其他 SSO 假定条件

LVDCI 和 HSLVDCI 驱动器

对于可控阻抗 DCI I/O 标准的所有极限值,均假定输出阻抗为 50 Ω。对于较高的参考电阻器 (RR) 阻值,需要的驱动强度较小,SSO 极限值呈线性增大。对于具有不同参考电阻器的可控阻抗驱动器,请使用以下公式计算 SSO 极限值:

示例

设计人员使用带有 65 Ω 参考电阻器的 LVDCI_18 驱动器。首先,从表 6-40 中查出 LVDCI_18 驱动器对应 50 Ω 阻抗的 SSO 极限值。LVDCI_18 驱动器对应 50 Ω 的 SSO 极限值是每 VCCO/GND 引脚对 11 个 SSO。所以,LVDCI_18 对应 65 Ω 的 SSO 极限值是:

LVDCI_18 对应 65 Ω 的 SSO 极限值 = ((65 Ω)/50 Ω) × 11 = 14.3

组 0

所有器件中的组 0 都只包含配置和专用信号。因为组 0 中没有用户 I/O,所以不必对此组进行 SSO 分析。

User SSO User RR50Ω

------------------------Ω⎝ ⎠⎛ ⎞ SSO Limit for Ω( )=

Virtex-5 用户指南 www.xilinx.com/cn 309UG190 (v3.1) 2007 年 9 月 11 日

R

第 7 章

SelectIO 逻辑资源

简介本章讲述位于第 6 章 “SelectIO 资源”中 I/O 驱动器与接收器之后的逻辑。

Virtex-5 FPGA 包含 Virtex-II/Virtex-II Pro FPGA 的所有基本 I/O 逻辑资源,其中包括:

• 组合输入 / 输出

• 三态输出控制

• 寄存输入 / 输出

• 寄存三态输出控制

• 双倍数据速率 (DDR) 输入 / 输出

• DDR 输出三态控制

另外,Virtex-5 FPGA 可实现以下架构功能,Virtex-4 FPGA 也支持这些功能:

• IODELAY 提供对高分辨率可调整延迟单元的用户控制

• SAME_EDGE 输出 DDR 模式

• SAME_EDGE 和 SAME_EDGE_PIPELINED 输入 DDR 模式

310 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 7 章: SelectIO 逻辑资源R

ILOGIC 资源图 7-1 所示为 ILOGIC 模块。

ILOGIC 可支持以下操作:

• 边沿触发 D 型触发器

• IDDR 模式 (OPPOSITE_EDGE、SAME_EDGE 或 SAME_EDGE_PIPELINED)。关于输入 DDR 的进一步讨论,请见第 311 页的 “输入 DDR 概述 (IDDR)”。

• 电平敏感型锁存器

• 异步 / 组合

所有 ILOGIC 模块寄存器都具有公共时钟使能信号 (CE1),该信号默认为 High 有效。如果不连接时钟使能引脚,则任何存储元件的该引脚都默认为有效状态。

所有 ILOGIC 模块寄存器都具有公共同步或异步设置和复位 (SR 和 REV)信号。设置 / 复位输入引脚 SR 强制存储元件进入由 SRVAL 属性指定的状态。当使用 SR 时,另一个输入 REV 强制存储元件进入相反的状态。复位状态优先于设置状态。表 7-1 和表 7-2 所示为 SR 与 REV 配合的操作。

图 7-1: ILOGIC 模块图

表 7-1: SRVAL = 0 时的真值表 (默认状态)

SR REV 功能

0 0 NOP

0 1 复位

1 0 设置

1 1 复位

D

DDLY

D Q1

Q2

Q1

O

Q2

CE

CKREVSR

CE1

CLK

SRREV

ug190_7_01_050906

Virtex-5 用户指南 www.xilinx.com/cn 311UG190 (v3.1) 2007 年 9 月 11 日

ILOGIC 资源R

对于 ILOGIC 模块中的各存储元件,可分别设置 SRVAL 属性,但不可分别选择同步或异步设置 / 复位 (SRTYPE)。

以下各部分讨论 ILOGIC 模块中的各种资源。ILOGIC 中各资源之间的所有连接均由 Xilinx 软件管理。

组合输入通路组合输入通路用来创建输入驱动器与 FPGA 内部资源之间的直接连接。当有以下情况时,此通路由软件自动使用:

1. 输入数据与 FPGA 架构中的逻辑资源之间存在直接 (非寄存)连接。

2. “将 I/O 寄存器 / 锁存器合并到 IOB 中”设置为 OFF。

输入 DDR 概述 (IDDR)Virtex-5 器件的 ILOGIC 中有专用寄存器来实现输入双倍数据速率 (DDR) 寄存器。可以通过例化 IDDR 基元来使用此功能。

IDDR 基元只有一个时钟输入。下降沿数据由输入时钟的反转版本 (在芯片上完成该反转)进行时钟控制。所有输入 I/O 模块的时钟均为完全多路复用,即 ILOGIC 与 OLOGIC 模块不共用时钟。IDDR 基元支持以下操作模式:

• OPPOSITE_EDGE 模式

• SAME_EDGE 模式

• SAME_EDGE_PIPELINED 模式

SAME_EDGE 和 SAME_EDGE_PIPELINED 模式与 Virtex-4 架构的相同。这些模式允许设计人员在 ILOGIC 模块内部将下降沿数据转移到上升沿时钟域,以节省 CLB 和时钟资源并提高性能。这些模式是用 DDR_CLK_EDGE 属性实现的。以下部分详述各模式。

OPPOSITE_EDGE 模式

OPPOSITE_EDGE 模式是在 ILOGIC 中通过单输入实现的传统输入 DDR 解决方案。数据在时钟上升沿上通过输出 Q1 以及在时钟下降沿上通过输出 Q2 送至内部资源。这种结构与 Virtex-II、Virtex-II Pro 和 Virtex-4 的实现相似。图 7-2 所示为使用 OPPOSITE_EDGE 模式时的输入 DDR 时序图。

表 7-2: SRVAL = 1 时的真值表

SR REV 功能

0 0 NOP

0 1 设置

1 0 复位

1 1 复位

312 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 7 章: SelectIO 逻辑资源R

SAME_EDGE 模式

在 SAME_EDGE 模式下,数据在同一时钟沿上送至 FPGA 内部资源。不过,一对数据之间要有一个时钟周期的间隔。这种结构与 Virtex-II、Virtex-II Pro 和 Virtex-4 的实现相似。

图 7-3 所示为使用 SAME_EDGE 模式时的输入 DDR 时序图。在此时序图中,输出对 Q1 和 Q2 不再是 (0) 和 (1)。取而代之的是输送的第一对为 Q1 分别与 Q2 (0) 和 ( 无用数据 ),后跟下一时钟周期的输出对 (1) 和 (2)。

SAME_EDGE_PIPELINED 模式

在 SAME_EDGE_PIPELINED 模式下,数据在同一时钟沿上送至 FPGA 内部资源。

与 SAME_EDGE 模式不同的是,数据对没有一个时钟周期的间隔。但是,需要增加一个时钟延迟,以消除 SAME_EDGE 模式的间隔效果。图 7-4 所示为使用 SAME_EDGE_PIPELINED 模式时的输入 DDR 时序图。输出对 Q1 和 Q2 同时送至 FPGA 内部资源。

图 7-2: OPPOSITE_EDGE 模式下的输入 DDR 时序

ug190_7_02_041206

C

CE

D

Q1

Q2

D0A D1A D2A

D0A D2A D4A D6A D8A D10A D12A

D1A D3A D5A D7A D9A D11A

D3A D4A D5A D6A D7A D8A D9A D10A D11A D12A D13A

图 7-3: SAME_EDGE 模式下的输入 DDR 时序

ug190_7_03_041206

C

CE

D

Q1

Q2

D1A

D0A D2A D4A D6A D8A D10A

D1A D3A D5A D7A D9A D11A

D3A D5A D7A D9A D11AD0A D2A D4A D6A D8A D10A

Don't care

Virtex-5 用户指南 www.xilinx.com/cn 313UG190 (v3.1) 2007 年 9 月 11 日

ILOGIC 资源R

输入 DDR 基元 (IDDR)图 7-5 所示为 IDDR 基元的框图。表 7-3 列出了 IDDR 端口信号。表 7-4 所示为 IDDR 基元的各种可用属性和默认值。

图 7-4: SAME_EDGE_PIPELINED 模式下的输入 DDR 时序

ug190_7_04_041206

C

CE

D

Q1

Q2

D0A D1A D2A

D0A D2A D4A D6A D8A D10A

D1A D3A D5A D7A D9A D11A

D3A D4A D5A D6A D7A D8A D9A D10A D11A D12A D13A

图 7-5: IDDR 基元框图

表 7-3: IDDR 端口信号

端口名称

功能 描述

Q1 和 Q2 数据输出 IDDR 寄存器输出。

C 时钟输入端口 C 引脚表示时钟输入引脚。

CE时钟使能端口

该使能引脚影响 DDR 触发器的数据加载。当置为 Low 时,忽略时钟的变化,不向 DDR 触发器中加载新数据。CE 必须为 High 才能向 DDR 触发器中加载新数据。

D数据输入 (DDR) 来自 IOB 的 IDDR 寄存器输入。

ug190_7_05_062207

CCE

D

S

R

Q1

Q2IDDR

314 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 7 章: SelectIO 逻辑资源R

IDDR 的 VHDL 和 Verilog 模板《库指南》包括用 VHDL 和 Verilog 例化 IDDR 基元的模板。

ILOGIC 时序模型本部分讲述 ILOGIC 模块中各种资源的相关时序。

R复位 同步 / 异步复位引脚。复位置为 High 有效。

S设置 同步 / 异步设置引脚。设置置为 High 有效。

表 7-4: IDDR 属性

属性名称 描述 可能值

DDR_CLK_EDGE 设置相对于时钟沿的 IDDR 操作模式

OPPOSITE_EDGE (默认)、SAME_EDGE、SAME_EDGE_PIPELINED

INIT_Q1 设置 Q1 端口的初始值 0 (默认)、1

INIT_Q2 设置 Q2 端口的初始值 0 (默认)、1

SRTYPE 相对于时钟 (C) 的设置 / 复位类型 ASYNC (默认)、SYNC

表 7-3: IDDR 端口信号 ( 续表 )

端口名称

功能 描述

Virtex-5 用户指南 www.xilinx.com/cn 315UG190 (v3.1) 2007 年 9 月 11 日

ILOGIC 资源R

ILOGIC 时序特性

图 7-6 所示为 ILOGIC 寄存器时序。当使用 IDELAY 时,用 TIDOCKD 取代 TIDOCK。

时钟事件 1

• 在时钟事件 1 之前的时间 TICE1CK 处,输入时钟使能信号在输入寄存器的 CE1 输入上变为高有效,允许输入数据使用输入寄存器。

• 在时钟事件 1 之前的时间 TIDOCK 处,输入信号在输入寄存器的 D 输入上变为高有效;在时钟事件 1 之后的时间 TICKQ 处,输入信号反映在输入寄存器的 Q1 输出上。

时钟事件 4

• 在时钟事件 4 之前的时间 TISRCK 处,SR 信号 (在本例中配置为同步复位)变为高有效,以复位输入寄存器;在时钟事件 4 之后的时间 TICKQ 处,该信号反映在 IOB 的 Q1 输出上。

ILOGIC 时序特性,DDR

图 7-7 所示为 IDDR 模式下的 ILOGIC 时序特性。当使用 IDELAY 时,用 TIDOCKD 取代 TIDOCK。所示示例为 OPPOSITE_EDGE 模式下的 IDDR。对于其他模式,按第 313 页的图 7-4 所示增加相应延迟。

图 7-6: ILOGIC 输入寄存器时序特性

1 2 3 4 5

CLK

D

CE1

SR

Q1

TICKQ TICKQ

TIDOCK

TICE1CK

TISRCK

ug190_7_06_041206

316 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 7 章: SelectIO 逻辑资源R

时钟事件 1

• 在时钟事件 1 之前的时间 TICE1CK 处,输入时钟使能信号在两个 DDR 输入寄存器的 CE1 输入上变为高有效,允许输入数据使用这两个输入寄存器。因为 CE1 和 D 信号是两个 DDR 寄存器共用,所以在 CLK 的上升沿和下降沿之间翻转这些信号时必须慎重,并且要满足相对于两个时钟的寄存器建立时间。

• 在时钟事件 1 之前的时间 TIDOCK 处 (CLK 的上升沿),输入信号在两个寄存器的 D 输入上变为高有效;在时钟事件 1 之后的时间 TICKQ 处,该信号反映在输入寄存器 1 的 Q1 输出上。

时钟事件 2

• 在时钟事件 2 之前的时间 TIDOCK 处 (CLK 的下降沿),输入信号在两个寄存器的 D 输入上变为低有效;在时钟事件 2 之后的时间 TICKQ 处,该信号反映在输入寄存器 2 的 Q2 输出上 (在本例中无变化)。

时钟事件 9

• 在时钟事件 9 之前的时间 TISRCK 处,SR 信号 (在本例中配置为同步复位)变为高有效,以在时钟事件 9 之后的时间 TICKQ 处复位 Q1,并且在时钟事件 10 之后的时间 TICKQ 处复位 Q2。

图 7-7: IDDR 模式下的 ILOGIC 时序特性

1 2 3 4 5 6 7 8 9 10 11

TIDOCK

TICE1CK

TISRCK

TICKQ

TICKQ

TICKQ

TIDOCK

CLK

D

CE1

SR(Reset)

Q1

Q2

TICKQ

UG190_7_07_041206

Virtex-5 用户指南 www.xilinx.com/cn 317UG190 (v3.1) 2007 年 9 月 11 日

输入 / 输出延迟单元 (IODELAY)R

表 7-5 所示为 《Virtex-5 数据手册》中 ILOGIC 开关特性的功能和控制信号。

注: DDLY 的时序图和参数与 D 的完全相同。

输入 / 输出延迟单元 (IODELAY)每个 I/O 模块包含一个可编程绝对延迟单元,称为 IODELAY。IODELAY 可以连接到 ILOGIC/ISERDES 或 OLOGIC/OSERDES 模块,也可同时连接到这两个模块。IODELAY 是具有 64 个 tap 的环绕延迟单元,具有标定的 tap 分辨率。请见 《Virtex-5 数据手册》。IODELAY 可用于组合输入通路、寄存输入通路、组合输出通路或寄存输出通路,还可以在内部资源中直接使用。IODELAY 允许各输入信号有独立的延迟。通过在 《Virtex-5 数据手册》中规定的范围内选择 IDELAYCTRL 参考时钟,可以改变 tap 延迟分辨率。IODELAY 资源可用作 IDELAY、ODELAY 或组合延迟。

当用作 IDELAY 时,数据从 IBUF 或内部资源输入,然后输出到 ILOGIC/ISERDES。有三种可用操作模式:

• 零保持时间延迟模式 (IDELAY_TYPE = DEFAULT)

这种操作模式允许向后兼容,以使用 Virtex-II、Virtex-II Pro 和 Virtex-4 器件中的零保持时间延迟功能的设计。当在没有 DCM 的情况下使用全局时钟采集数据 (引脚到引脚参数)时,用这种延迟单元提供非正保持时间。在这种模式下使用时,不需要例化 IDELAYCTRL 基元。有关更多详情,请见 “IDELAYCTRL 用法及设计指导原则”。

• 固定延迟模式 (IDELAY_TYPE = FIXED)

在固定延迟模式下,配置时将延迟值预设置成由属性 IDELAY_VALUE 确定的 tap 数。此值配置后不可更改。在这种模式下使用时,必须例化 IDELAYCTRL 基元。有关更多详情,请见 “IDELAYCTRL 用法及设计指导原则”。

• 可变延迟模式 (IDELAY_TYPE = VARIABLE)

在可变延迟模式下,可以在配置后通过操控控制信号 CE 和 INC 来改变延迟值。在这种模式下使用时,必须例化 IDELAYCTRL 基元。有关更多详情,请见 “IDELAYCTRL 用法及设计指导原则”。

表 7-5: ILOGIC 开关特性

符号 描述

建立 / 保持

TICE1CK/TICKCE1 相对于 CLK 的 CE1 引脚建立 / 保持

TISRCK/TICKSR 相对于 CLK 的 SR/REV 引脚建立 / 保持

TIDOCK/TIOCKD 相对于 CLK 的 D 引脚建立 / 保持

组合

TIDI D 引脚到 O 引脚的传播延迟,无延迟

时序延迟

TIDLO 触发器用作锁存器时 D 引脚到 Q1 引脚的延迟,无延迟

TICKQ CLK 到 Q 输出

TICE1Q 触发器用作锁存器时 CE1 引脚到 Q1 的传播延迟

TRQ SR/REV 引脚到 OQ/TQ 输出

318 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 7 章: SelectIO 逻辑资源R

当用作 ODELAY 时,数据从 OLOGIC/OSERDES 输入,然后输出到 OBUF。有一种可用操作模式:

• 固定延迟输出模式

在固定延迟输出模式下,配置时将延迟值预设置成由属性 ODELAY_VALUE 确定的 tap 数。此值配置后不可更改。在这种模式下使用时,必须例化 IDELAYCTRL 基元。有关更多详情,请见 “IDELAYCTRL 用法及设计指导原则”。

当用作双向延迟时,将 IOB 配置成双向模式。IODELAY 交替延迟输入通路和输出通路上的数据。有两种可用操作模式:

• 固定 IDELAY (IDELAY_TYPE = FIXED) 和固定 ODELAY 模式

在这种模式下,IDELAY 和 ODELAY 的值都是在配置时预设置,分别由 IDELAY_VALUE 和 ODELAY_VALUE 属性确定。此值配置后不可更改。在这种模式下使用时,必须例化 IDELAYCTRL 基元。有关更多详情,请见 “IDELAYCTRL 用法及设计指导原则”。

• 可变 IDELAY (IDELAY_TYPE = VARIABLE) 和固定 ODELAY 模式

在这种模式下,只有 IDELAY 值可以在配置后通过操控控制信号 CE 和 INC 来动态更改。IODELAY 基元中 T 引脚的逻辑级别动态确定模块是 IDELAY 模式还是 ODELAY 模式。在这种模式下使用时,必须例化 IDELAYCTRL 基元。有关更多详情,请见“IDELAYCTRL 用法及设计指导原则”。

表 7-6 列出了支持的 IODELAY 配置。

表 7-6: 支持的 IODELAY 配置

IODELAY模式

IODELAY的方向

IODELAY单元中使用的输入引脚

信号源 目标 支持的延迟模式

IDELAYI IDATAIN IBUF ILOGIC/ISERDES/ 内部资源 默认 / 固定 / 可变

DATAIN 内部资源 固定 / 可变

ODELAY O ODATAIN OLOGIC/OSERDES OBUF 固定

双向延迟I (T = 1 时) IDATAIN IBUF ILOGIC/ISERDES/ 内部资源 固定 / 可变

O (T = 0 时) ODATAIN OLOGIC/OSERDES OBUF 固定

Virtex-5 用户指南 www.xilinx.com/cn 319UG190 (v3.1) 2007 年 9 月 11 日

输入 / 输出延迟单元 (IODELAY)R

IODELAY 基元图 7-8 所示为 IODELAY 基元。

表 7-7 列出了 IODELAY 基元中的可用端口。所有端口均为 1 位宽。

IODELAY 端口

来自 IOB 的数据输入 - IDATAIN

IDATAIN 输入由相应的 IOB 驱动。在 IDELAY 模式下,可以将数据驱动到 ILOGIC/ISERDES 模块或直接驱动到 FPGA 内部资源中,也可以通过 DATAOUT 端口按照由 IDELAY_VALUE 设置的延迟将数据同时驱动到这二者。

图 7-8: IODELAY 基元

表 7-7: IODELAY 基元端口

端口名称

方向 功能

DATAOUT 输出来自三个数据输入端口 (IDATAIN、ODATAIN、DATAIN)之一的延迟数据

IDATAIN 输入 来自 IOB 的 IODELAY 的数据输入

ODATAIN 输入 来自 OSERDES/OLOGIC 的 IODELAY 的数据输入

DATAIN 输入 来自 FPGA 内部资源的 IODELAY 的数据输入

T 输入三态输入控制端口。此端口动态确定 IODELAY 是用作 IDELAY 还是用作 ODELAY

CE 输入 启用递增 / 递减功能

INC 输入 Tap 延迟的递增 / 递减数

RST 输入 将 IODELAY 单元复位到预设定值

C 输入 可变模式下使用的时钟输入

ODATAIN DATAOUT

T

IDATAIN

CE

DATAIN

C

INC

RST

IODELAY

ug190_7_08_041106

320 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 7 章: SelectIO 逻辑资源R

来自 FPGA 内部资源的数据输入 - ODATAIN

ODATAIN 输入由 OLOGIC/OSERDES 驱动。在 ODELAY 模式下,ODATAIN 按照由 ODELAY_VALUE 设置的延迟驱动连接到 IOB 的 DATAOUT 端口。

来自 FPGA 内部资源的 IODELAY 的数据输入 - DATAIN

DATAIN 输入直接由 FPGA 内部资源驱动,以提供一条可访问内部资源逻辑的延迟线。数据按照由 IDELAY_VALUE 设置的延迟通过 DATAOUT 端口返回到内部资源中。DATAIN 可以在芯片内反转。数据不能驱动到 IOB。

数据输出 - DATAOUT

来自三个数据输入端口的延迟数据。DATAOUT 连接到内部资源 (IDELAY 模式)或 IOB(ODELAY 模式),或同时连接到这二者 (双向延迟模式)。如果在双向延迟模式下使用,则 T 端口在 IDATAIN 和 ODATAIN 通路之间动态切换,根据来自 OLOGIC 模块的三态信号 T 所指示的方向交替提供输入 / 输入延迟。

三态输入 - T

这是三态输入控制端口。对于双向操作,T 引脚信号还控制 OBUFT 的 T 引脚。

时钟输入 - C

对 IODELAY 基元的所有控制输入 (RST、CE 和 INC)均与时钟输入 (C) 同步。当 IODELAY 配置成可变模式时,必须将一个时钟连接到此端口。C 可以在芯片内反转。

模块复位 - RST

IODELAY 复位信号 RST 将延迟单元复位到由 IDELAY_VALUE 或 ODELAY_VALUE 属性设置的值。如果未指定这些属性,则假定该值为零。RST 信号是高有效复位,与输入时钟信号 (C) 同步。

表 7-8 概述了控制引脚。

–递增 / 递减信号 CE、INC

递增 / 递减由使能信号 (CE) 控制。当 IDELAY_TYPE = VARIABLE 时,此接口只可用于 IDELAY 模式。

只要 CE 保持为 High,IDELAY 就会每时钟 (C) 周期按 IDELAYRESOLUTION 递增或递减。INC 的状态确定 IDELAY 是递增还是递减:INC = 1 为递增,INC = 0 为递减,与时钟 (C) 同步。如果 CE 为 Low,则通过 IDELAY 的延迟不变,与 INC 的状态无关。

表 7-8: 控制引脚描述

引脚 类型 值 描述

INC 输入 1 Tap 延迟的递增 / 递减数

CE 输入 1 启用递增 / 递减功能

RST 输入 1将延迟单元复位到预设定的值。如果没有预设定值则复位到 0

Virtex-5 用户指南 www.xilinx.com/cn 321UG190 (v3.1) 2007 年 9 月 11 日

输入 / 输出延迟单元 (IODELAY)R

当 CE 转为 High 时,在下一个时钟上升沿上开始递增 / 递减操作。当 CE 转为 Low 时,在下一个时钟上升沿上停止递增 / 递减操作。

IODELAY 是环绕可编程延迟单元。当达到延迟单元的末尾 (tap 63) 时,随后的递增功能就会返回到 tap 0。同样的规则也适用于递减功能,即低于零的递减会转到 tap 63。表 7-9 概述了递增 / 递减操作。

IODELAY 属性表 7-10 概述了 IODELAY 属性。

表 7-9: 递增 / 递减操作

操作 RST CE INC

复位到 IDELAY_VALUE 1 x x

递增 tap 数 0 1 1

递减 tap 数 0 1 0

无变化 0 0 x

注:1. RST 优先于 CE 和 INC。

表 7-10: IODELAY 属性概述

属性 值 默认值 描述

IDELAY_TYPE 字符串:DEFAULT、FIXED 或 VARIABLE

DEFAULT 设置 tap 延迟线的类型。默认延迟用于保证零保持时间,固定延迟用于设置静态延迟值,可变延迟用于动态调整延迟值。

IDELAY_VALUE 整数:0 到 63 0 指定固定模式下的固定延迟 tap 数或可变模式下的初始 tap 数 (输入通路)。

ODELAY_VALUE 整数:0 到 63 0 指定固定延迟 tap 数 (输出通路)。

HIGH_PERFORMANCE_MODE 布尔值:FALSE、TRUE

FALSE 当设置为 TRUE 时,此属性减少输出抖动。

SIGNAL_PATTERN 字符串:DATA、CLOCK

DATA

时钟和数据信号具有不同的电气特征曲线,因此在 IODELAY 链中累计的抖动量不同。通过设置此属性,用户可以令时序分析器在计算时序时计入相应的抖动。时钟信号具有周期性,没有 1 或 0 的连续长序列;而数据具有随机性,可以有 1 和 0 的长短序列。

322 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 7 章: SelectIO 逻辑资源R

IDELAY_TYPE 属性

IDELAY_TYPE 属性设置所用延迟的类型。此属性的值是 DEFAULT、FIXED 和 VARIABLE。当设置成 DEFAULT 时,选择零保持时间延迟单元。当在没有 DCM 的情况下使用全局时钟采集数据 (引脚到引脚参数)时,用这种延迟单元提供非正保持时间。

当设置成 FIXED 时,tap 延迟值固定为由 IDELAY_VALUE 属性设置确定的 tap 数。此值是预设置的,配置后不可更改。

当设置成 VARIABLE 时,选择可变 tap 延迟单元。Tap 延迟可以通过设置 CE = 1 和 INC = 1 递增,或通过设置 CE = 1 和 INC = 0 递减。递增 / 递减操作与输入时钟信号 C 同步。

IDELAY_VALUE 属性

IDELAY_VALUE 属性指定初始 tap 延迟数。可能的值是 0 到 63 之间的任意整数。默认值是零。当 tap 延迟复位时,tap 延迟值恢复到 IDELAY_VALUE。在可变模式下,此属性确定延迟线的初始设置。

ODELAY_VALUE 属性

ODELAY_VALUE 指定 tap 延迟数。可能的值是 0 到 63 之间的任意整数。默认值是零。当 tap 延迟复位时,tap 延迟值恢复到 ODELAY_VALUE。

HIGH_PERFORMANCE_MODE 属性

当设置为 TRUE 时,此属性减少输出抖动。输出抖动减少导致 IODELAY 单元的功率耗散略有上升。

SIGNAL_PATTERN 属性

SIGNAL_PATTERN 属性致使时序分析器计入数据或时钟通路中的相应延迟链抖动量。

REFCLK_FREQUENCY 实数:190.0 到 210.0

200 IDELAYCTRL 参考时钟频率 (MHz)。

DELAY_SRC 字符串:I、O、IO 或 DATAIN

DATAIN I:IODELAY 链输入是 IDATAIN

O:IODELAY 链输入是 ODATAIN

IO:IODELAY 链输入是 IDATAIN 和 ODATAIN(由 T 控制)

DATAIN:IODELAY 链输入是 DATAIN

表 7-10: IODELAY 属性概述 ( 续表 )

属性 值 默认值 描述

Virtex-5 用户指南 www.xilinx.com/cn 323UG190 (v3.1) 2007 年 9 月 11 日

输入 / 输出延迟单元 (IODELAY)R

IODELAY 时序表 7-11 所示为 IODELAY 开关特性。

图 7-9 所示为 IDELAY 时序图。假设 IDELAY_VALUE = 0。

时钟事件 1

在 C 的上升沿上检测到复位,致使输出 O 选择 tap 0 为 64 tap 链的输出 (假设 IDELAY_VALUE = 0)。

时钟事件 2

在 C 的上升沿上检测到 CE 和 INC 上的脉冲。这说明是递增操作。输出从 tap 0 到 tap 1 无毛刺变化。请见 “递增 / 递减操作后的稳定性”。

时钟事件 3

至此,输出已经稳定在 tap 1,因而完成了递增操作。输出无限期地保持在 tap 1,直到 RST、CE 或 INC 引脚上有进一步活动。

表 7-11: IODELAY 开关特性

符号 描述

TIDELAYRESOLUTION IDELAY 的 tap 分辨率

TICECK/TICKCE 相对于 C 的 CE 引脚建立 / 保持

TIINCCK/TICKINC 相对于 C 的 INC 引脚建立 / 保持

TIRSTCK/TICKRST 相对于 C 的 RST 引脚建立 / 保持

图 7-9: IDELAY 时序图

UG190_7_09_082107

RST

C

1 2 3

CE

INC

O Tap 0 Tap 1

324 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 7 章: SelectIO 逻辑资源R

递增 / 递减操作后的稳定性

图 7-9 显示了输出从一个 tap 向另一个变化时的不稳定时段。显然,当 tap 0 处的数据值与 tap 1 处的数据值不同时,输出必须改变状态。然而,如果 tap 0 和 tap 1 处的数据值相同 (例如两者都是 0 或 1),则从 tap 0 到 tap 1 的过渡就不会在输出上造成毛刺或混乱。这一概念可以通过设想 IODELAY 的 tap 链中的接收器数据信号来理解。如果 tap 0 和 tap 1 都靠近接收器数据眼的中心,则在 tap 0 处采样的数据应与在 tap 1 处采样的数据没有区别。在这种情况下,从 tap 0 到 tap 1 的过渡不会引起输出变化。为了确保这种情况,IODELAY 的递增 / 递减操作设计成了无毛刺操作。

在活动用户数据通过 IODELAY 单元时,用户可以实时动态调整 IODELAY 的 tap 设置,不会扰乱活动用户数据。

当在时钟信号通路中使用 IODELAY 单元时,也适用无毛刺行为。调整 tap 设置不会在输出上引起毛刺或混乱。可以调整时钟通路中 IODELAY 单元的 tap 设置,不会扰乱可能正在该时钟上运行的状态机。

IODELAY 的 VHDL 和 Verilog 实例模板

《库指南》中提供了所有基元和子模块的 VHDL 和 Verilog 实例模板。

每个 VHDL 模板都有一个元件声明部分和一个架构部分。模板的每个部分均应插到 VHDL 设计文件中。架构部分的端口映射应包括设计信号名称。

固定延迟模式

《库指南》包括的模板显示了如何在 tap 设置为 31 的固定延迟模式下例化 IODELAY 模块。在此模式下操作时,还必须例化 IDELAYCTRL。请见第 330 页的 “IDELAYCTRL 概述”。

可变延迟模式

《库指南》显示了如何在可变延迟模式下例化 IODELAY 模块。在此模式下操作时,还必须例化 IDELAYCTRL。请见第 330 页的 “IDELAYCTRL 概述”。

IODELAY 转换时间使用模型

当在双向模式下使用 IODELAY 时,需要考虑转换时间。图 7-10 所示为 Virtex-5 IOB 中 IODELAY 的简化框图,该框图适用于一次使用双向 IODELAY 功能。

Virtex-5 用户指南 www.xilinx.com/cn 325UG190 (v3.1) 2007 年 9 月 11 日

输入 / 输出延迟单元 (IODELAY)R

当 DELAY_SRC = IO 时,MUXE 和 MUXF 在 IODELAY 模块内动态选择 ODATAIN 或 IDATAIN 以及 ODELAY_VALUE 或 IDELAY_VALUE。

以下 Verilog 代码段用于演示双向 IODELAY:

IDDR #( .DDR_CLK_EDGE ("SAME_EDGE"), .INIT_Q1 (1'b0), .INIT_Q2 (1'b0), .SRTYPE ("SYNC")

)IDDR_INST ( .C(clk), .CE(1'b1), .D(DATAOUT), .R(1'b0), .S(1'b0), .Q1(Q1), .Q2(Q2)

);IOBUF #( .IOSTANDARD ("LVCMOS25")

)IOBUF_INST ( .I(DATAOUT), .T(TSCONTROL), .O(IDATAIN), .IO(IOPAD_DATA)

);

图 7-10: IODELAY 转换与有关通路的模块的基本组成

IODELAY_01_081407

IOB

IODELAY T

Q1Q2

T2

CLK

CLK

MUX E

DelayChain

ODATAINIDATAIN

MUX F

OBUF PAD

IBUF

D1

T1

D2

ODELAY_VALUE

IDELAY_VALUE

ODDR TSCONTROL

ODATAIN

DATAOUT

ODDR

IDDR

326 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 7 章: SelectIO 逻辑资源R

IODELAY #( .DELAY_SRC ("IO"), .IDELAY_TYPE ("FIXED"), .IDELAY_VALUE (12), .ODELAY_VALUE (12), .REFCLK_FREQUENCY (200.0)

)IODELAY_INST ( .C(1'b0), .CE(1'b0), .DATAIN(1'b0), .IDATAIN(IDATAIN), .INC(1'b0), .ODATAIN(ODATAIN), .RST(1'b0), .T(TSCONTROL), .DATAOUT(DATAOUT)

);ODDR #(

.DDR_CLK_EDGE ("SAME_EDGE"),

.INIT (1'b0),

.SRTYPE ("SYNC"))ODDR_INST ( .C(clk), .CE(1'b1), .D1(D1), .D2(D2), .R(1'b0), .S(1'b0), .Q(ODATAIN)

); ODDR #(

.DDR_CLK_EDGE ("SAME_EDGE"),

.INIT (1'b0),

.SRTYPE ("SYNC"))TRI_ODDR_INST ( .C(clk), .CE(1'b1), .D1(T1), .D2(T2), .R(1'b0), .S(1'b0), .Q(TSCONTROL)

);IDELAYCTRL IDELAYCTRL_INST ( .REFCLK(refclk), .RST(1'b0), .RDY()

);

Virtex-5 用户指南 www.xilinx.com/cn 327UG190 (v3.1) 2007 年 9 月 11 日

输入 / 输出延迟单元 (IODELAY)R

对于给定 I/O 引脚,使用双向 IODELAY 功能的情形主要有两种。第一种使用双向 IODELAY 的情形是 I/O 从输出切换为输入的过程。图 7-11 所示为 IOB 和 IODELAY 正在按照来自 ODDR 触发器的 TSCONTROL 网所设置向输入模式转移。此过程控制为 IOB 输入通路和 IDELAY_VALUE 分别选择多路器 E 和 F 的操作。另外,OBUF 是三态。

图 7-11: 禁用三态时输入模式下的 IODELAY 和 IOB

IODELAY_02_082107

IOB

IODELAY T

Q1Q2

T2

CLK

CLK

MUX E

DelayChain

ODATAINIDATAIN

MUX F

OBUF PAD

IBUF

D1

T1

D2

ODELAY_VALUE

IDELAY_VALUE

ODDR TSCONTROL

ODATAIN

DATAOUT

ODDR

IDDR

328 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 7 章: SelectIO 逻辑资源R

图 7-12 中的时序图所示为 I/O 使用三态控制从输出切换到输入时的相关信号时序。

OBUFT 引脚由来自 ODDR 触发器的 TSCONTROL 信号的传播与状态控制。在 OBUF 和 IDDR 触发器上,从 PAD 接收的三态控制数据相互并行;根据 IDELAY_VALUE 设置,IDDR 触发器输入上对应时钟沿的 终值在三态控制驱动焊盘之前或之后有效。在三态控制传播到 PAD 并且 IODELAY 已切换到输入之后,IDDR 建立时间是基于 IDELAY_VALUE 的时序的唯一确定因素,也是 Xilinx 速度指标中所定义和 ISE 工具中所显示的其他时序参数的唯一确定因素。

图 7-12: 当 IOB 从输出切换到输入时用来检查 IODELAY 时序的相关时序信号

IODELAY_03_082107

ODDR CLK

IDDR CLK

Pad to IDDR Setup Time is:

TIOPI + TIODDO_IDATAIN + TIDOCKD

(where TIODDO_IDATAIN is a

function of IDELAY_VALUE)

Previous PADOutput Value

New PADInput Value

TSCONTROL

PAD

ODDR CLK to IDELAY ready

TOCKQ

TIOTP

TIODDO_T

ODDR CLK to 3-statedeassertion time.

Virtex-5 用户指南 www.xilinx.com/cn 329UG190 (v3.1) 2007 年 9 月 11 日

输入 / 输出延迟单元 (IODELAY)R

第二种使用双向 IODELAY 的情形是 I/O 从输入切换为输出的过程。图 7-13 所示为 IOB 和 IODELAY 正在按照来自 ODDR T 触发器的三态 TSCONTROL 信号所设置向输出模式转移。此过程控制为输出通路和 ODELAY_VALUE 分别选择多路器 E 和 F 的操作。另外,OBUF 变为非三态并开始驱动 PAD。

图 7-13: 启用三态时输出模式下的 IODELAY 和 IOB

IODELAY_04_082107

IOB

IODELAY T

Q1Q2

T2

CLK

CLK

MUX E

DelayChain

ODATAINIDATAIN

MUX F

OBUF PAD

IBUF

D1

T1

D2

ODELAY_VALUE

IDELAY_VALUE

ODDR TSCONTROL

ODATAIN

DATAOUT

ODDR

IDDR

330 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 7 章: SelectIO 逻辑资源R

图 7-14 中的时序图所示为 I/O 使用三态控制从输入切换到输出时的相关信号时序。

在 IOB 和 ODDR 触发器的 OBUF 上,对 PAD 时序的三态控制相互并行;根据 ODELAY_VALUE 设置,ODDR CLK 引脚上对应时钟沿的 终输出值在三态控制驱动焊盘之前或之后有效。在三态控制传播到 PAD 并且 IODELAY 切换之后,通过 IODELAY 单元(具有 ODELAY_VALUE 设置)的 ODDR 触发器的时钟到输出时间是对焊盘的时钟到输出时间的唯一确定因素。

IDELAYCTRL 概述如果用设置为 FIXED 或 VARIABLE 的 IOBDELAY_TYPE 属性例化 IODELAY 或 ISERDES 基元,则必须在代码中例化 IDELAYCTRL 模块。IDELAYCTRL 模块在其区域内连续标定各延迟单元 (IODELAY) (见第 333 页的图 7-17),以减少随工艺、电压和温度变化的影响。IDELAYCTRL 模块使用用户提供的 REFCLK 标定 IODELAY。

图 7-14: 当 IOB 从输入切换到输出时用来检查 IODELAY 时序的相关时序信号

IODELAY_05_082107

ODDR CLK

DATAOUT

Previous PADinput value

TSCONTROL

PAD

Clock to DATAOUT is variablebased on internal timing theODELAY_VALUE (0-63)

Clock-to-Out withODELAY_VALUE = 0

Clock to PAD being driven or TOCKQ + TIODDO_ODATAIN + TIOOP

TOCKQ

TIOTP

TOCKQ + TIODDO_ODATAIN

Clock-to-Out withODELAY_VALUE = 63

Virtex-5 用户指南 www.xilinx.com/cn 331UG190 (v3.1) 2007 年 9 月 11 日

输入 / 输出延迟单元 (IODELAY)R

IDELAYCTRL 基元

图 7-15 所示为 IDELAYCTRL 基元。

IDELAYCTRL 端口

RST - 复位

复位输入引脚 (RST) 是 High 有效异步复位。IDELAYCTRL 在配置 (以及 REFCLK 信号稳定)之后必须复位,以确保 IODELAY 操作正常。要求复位脉冲宽度为 TIDELAYCTRL_RPW。IDELAYCTRL 在配置后必须复位。

REFCLK - 参考时钟

参考时钟 (REFCLK) 提供对 IDELAYCTRL 的时间参考,以标定同区域中的所有 IODELAY 模块。此时钟必须由全局时钟缓冲器 (BUFGCTRL) 驱动。REFCLK 必须是 FIDELAYCTRL_REF ± 指定的 ppm 容差 (IDELAYCTRL_REF_PRECISION),以保证指定的 IODELAY 分辨率 (TIDELAYRESOLUTION)。REFCLK 可以由用户提供的信号源、PLL 或 DCM 直接提供,必须在全局时钟缓冲器上传输。

RDY - 就绪

就绪 (RDY) 信号指示特定区域内的 IODELAY 模块标定完毕。如果 REFCLK 在一个或几个时钟周期内保持为 High 或 Low,则 RDY 信号置为无效。如果 RDY 置为 Low 无效,则 IDELAYCTRL 模块必须复位。实现工具允许不连接 / 忽略 RDY。图 7-16 所示为 RDY 与 RST 之间的时序关系。

图 7-15: IDELAYCTRL 基元

REFCLK RDY

RST

IDELAYCTRL

ug190_7_10_041206

332 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 7 章: SelectIO 逻辑资源R

IDELAYCTRL 时序

表 7-12 所示为 IDELAYCTRL 开关特性。

如图 7-16 所示,Virtex-5 RST 是边沿触发信号。

IDELAYCTRL 位置

每个时钟区域的每个 I/O 列中都有 IDELAYCTRL 模块。一个 IDELAYCTRL 模块标定其时钟区域内的所有 IDELAY 模块。有关时钟区域的定义,请见第 1 章中的 “全局和区域时钟”。

图 7-17 所示为各 IDELAYCTRL 模块的相对位置。

表 7-12: IDELAYCTRL 开关特性

符号 描述

FIDELAYCTRL_REF REFCLK 频率

IDELAYCTRL_REF_PRECISION REFCLK 精度

TIDELAYCTRLCO_RDY IDELAYCTRL 从复位 / 启动到就绪的时间

图 7-16: RST 与 RDY 之间的时序关系

RST

REFCLK

RDYug190_7_11_041206

TIDELAYCTRLCO_RDY

Virtex-5 用户指南 www.xilinx.com/cn 333UG190 (v3.1) 2007 年 9 月 11 日

输入 / 输出延迟单元 (IODELAY)R

IDELAYCTRL 用法及设计指导原则

本部分讲述 Virtex-5 IDELAYCTRL 模块的使用、设计指导原则和推荐用法。

例化无 LOC 约束的 IDELAYCTRL

当例化无 LOC 约束的 IDELAYCTRL 时,用户在 HDL 设计代码中必须只例化一个 IDELAYCTRL 实例。实现工具将 IDELAYCTRL 实例自动复制到整个器件,甚至复制到未使用延迟单元的时钟区域中。这样做资源占用率较高,在每个时钟区域内都要使用一个全局时钟资源,并且使用布线资源较多,因此功耗较大。已例化 IDELAYCTRL 实例的 RST 和 REFCLK 输入端口和所复制 IDELAYCTRL 实例的对应输入端口相连接。

有两个特例:

1. 当忽略 RDY 端口时,所有被复制的 IDELAYCTRL 实例的 RDY 信号均不连接。

对于例化无 LOC 约束的 IDELAYCTRL 基元并且不连接 RDY 输出端口的情况,《库指南》中提供了 VHDL 和 Verilog 使用模型。

图 7-18 所示为例化 IDELAYCTRL 组件后形成的电路。

图 7-17: 各 IDELAYCTRL 模块的相对位置

1 Clock Region

CMT

CMT

Configuration

Left I/OColumn

Center I/OColumn

Right I/OColumn

IDELAYCTRL

ug190_7_12_041206

334 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 7 章: SelectIO 逻辑资源R

2. 当连接 RDY 端口时,例化一个宽度等于时钟区域数的与门,并且将例化和复制的 IDELAYCTRL 实例的 RDY 输出端口连接到与门的输入。工具将连接到已例化 IDELAYCTRL 实例的 RDY 端口的信号名称赋予与门的输出。

对于例化无 LOC 约束的 IDELAYCTRL 基元并且连接 RDY 端口的情况,《库指南》中提供了 VHDL 和 Verilog 使用模型。

图 7-19 所示为例化 IDELAYCTRL 组件后形成的电路。

图 7-18: 例化无 LOC 约束的 IDELAYCTRL - 不连接 RDY

.

.

.

REFCLK

.

.

.

Replicated forall IDELAYCTRL

sites

RST

.

.

.

RDY signal ignored

Auto-generated bymapper tool

Instantiated by user

REFCLK RDY

RSTIDELAYCTRL

IDELAYCTRL

IDELAYCTRL

REFCLK RDY

RST

REFCLK RDY

RST

ug190_7_13_041206

Virtex-5 用户指南 www.xilinx.com/cn 335UG190 (v3.1) 2007 年 9 月 11 日

输入 / 输出延迟单元 (IODELAY)R

例化有位置 (LOC) 约束的 IDELAYCTRL

使用 IDELAYCTRL 模块的 有效方法是定义并锁定设计中所用每个 IDELAYCTRL 实例的位置。具体做法是例化有位置 (LOC) 约束的 IDELAYCTRL 实例。用户必须在用延迟单元时定义并锁定所有 ISERDES 和 IDELAY 组件的位置。(IOBDELAY_TYPE 属性设置为 FIXED 或 VARIABLE。)完成后,可以选择 IDELAYCTRL 的位置并指定 LOC 约束。Xilinx 强烈建议使用有 LOC 约束的 IDELAYCTRL。

位置约束

每个 IDELAYCTRL 模块都有 XY 位置坐标 (X:行,Y:列)。为了约束位置,IDELAYCTRL 实例可以附带 LOC 属性。IDELAYCTRL 位置坐标的命名规则与用来命名 CLB 位置的规则不同。这样做便于在各阵列之间传递 LOC 属性。

为 IDELAYCTRL 实例附加 LOC 属性有两种方法。

1. 在 UCF 文件中插入 LOC 约束

2. 在 HDL 设计文件中直接嵌入 LOC 约束

在 UCF 文件中插入 LOC 约束

下列语法用于在 UCF 文件中插入 LOC 约束。

INST "instance_name" LOC=IDELAYCTRL_X#Y#;

在 HDL 设计文件中直接嵌入 LOC 约束

下列语法用于在 HDL 设计文件中嵌入 LOC 约束。

// synthesis attribute loc of instance_name is "IDELAYCTRL_X#Y0#";

图 7-19: 例化无 LOC 约束的 IDELAYCTRL - 连接 RDY

REFCLK

RST

RDY

Instantiated by user

REFCLK RDY

RSTIDELAYCTRL

IDELAYCTRL

IDELAYCTRL

REFCLK RDY

RST

REFCLK RDY

RST

ug190_7_14_041306

.

.

.

.

.

.

Replicated forall IDELAYCTRL

sites

.

.

.

Auto-generated bymapper tool

336 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 7 章: SelectIO 逻辑资源R

在 VHDL 代码中,用 VHDL 属性描述 LOC 约束。约束必须用下列语法声明后才能使用:

attribute loc : string;

声明之后,LOC 约束可以指定为:

attribute loc of instance_name:label is "IDELAYCTRL_X#Y0#";

《库指南》包括用于例化有 LOC 约束的 IDELAYCTRL 基元的 VHDL 和 Verilog 使用模型模板。

图 7-20 所示为例化 IDELAYCTRL 组件后形成的电路。

例化有 LOC 约束和无 LOC 约束的 IDELAYCTRL

在有些情况下,用户例化有 LOC 约束的 IDELAYCTRL 模块,但还例化无 LOC 约束的 IDELAYCTRL 模块。如果用无位置约束的 IDELAYCTRL 模块例化 IP 核,但还需要为设计的另一部分例化无 LOC 约束的 IDELAYCTRL 模块,则实现工具会执行以下各项:

• 按 “例化有位置 (LOC) 约束的 IDELAYCTRL”部分所述例化 LOC IDELAYCTRL 实例。

• 复制无位置约束的 IDELAYCTRL 实例,以便用一个 IDELAYCTRL 实例填充每个不具备有位置约束 IDELAYCTRL 实例的时钟区域。

• 将无位置约束 IDELAYCTRL 实例的 RST 和 REFCLK 输入端口和所复制 IDELAYCTRL 实例的对应输入端口相连接。

• 如果忽略无位置约束 IDELAYCTRL 实例的 RDY 端口,则同时忽略所复制 IDELAYCTRL 实例的所有 RDY 信号。

• 如果连接无位置约束 IDELAYCTRL 实例的 RDY 端口,则将无位置约束实例的 RDY 端口和所复制实例的 RDY 端口连接到一个自动生成的与门。实现工具将连接到无位置约束实例的 RDY 端口的信号之名称赋予与门的输出。

• 有位置约束实例的所有端口 (RST、REFCLK 和 RDY)均相互独立并且独立于复制的实例。

图 7-20: 例化有 LOC 约束的 IDELAYCTRL

REFCLK RDY

RST

rdy_1

rst_1

rst_2

rst_n

.

.

. .

REFCLK

.

.

.

.

..

IDELAYCTRL_1

REFCLK RDY

RST

rdy_2IDELAYCTRL_2

REFCLK RDY

RST

rdy_nIDELAYCTRL_n

ug190_7_15_041306

Virtex-5 用户指南 www.xilinx.com/cn 337UG190 (v3.1) 2007 年 9 月 11 日

输入 / 输出延迟单元 (IODELAY)R

《库指南》中提供了用于例化混合用法的 VHDL 和 Verilog 使用模型。此例所示为用户例化无位置约束的 IDELAYCTRL 实例并连接了 RDY 信号。此讨论也适用于忽略 RDY 信号的情况。

图 7-21 所示为例化 IDELAYCTRL 组件后形成的电路。

图 7-21: IDELAYCTRL 单元的混合例化

REFCLK

RST_NOLOC

rst_n

RDY_NOLOC

rdy_n

Instantiated withoutLOC Constraint

Instantiated withLOC Constraint

REFCLK RDY

RSTIDELAYCTRL_noloc

IDELAYCTRL_noloc

IDELAYCTRL_noloc

REFCLK RDY

RST

REFCLK RDY

RST

ug190_7_16_041306

REFCLK RDY

RSTIDELAYCTRL_n

rst_2

rdy_2REFCLK RDY

RSTIDELAYCTRL_2

rst_1

rdy_1REFCLK RDY

RSTIDELAYCTRL_1

.

.

.

.

.

.

Replicated forall IDELAYCTRL

sites

.

.

.

Auto-generatedby mapper tool

.

.

.

.

.

.

.

.

.

338 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 7 章: SelectIO 逻辑资源R

例化多个无 LOC 约束的 IDELAYCTRL

禁止例化多个无 LOC 属性的 IDELAYCTRL。如果发生这种情况,实现工具就会报错。

OLOGIC 资源OLOGIC 由两个主要模块组成,一个用于配置输出数据通路,另一个用于配置三态控制通路。这两个模块具有共同的时钟 (CLK),但具有不同的使能信号 OCE 和 TCE。二者都具有由表 7-1 和表 7-2 中所述的独立的 SRVAL 属性控制的异步及同步设置和复位 (SR 和 REV)信号。

输出和三态通路可独立配置成以下模式之一。

• 边沿触发 D 型触发器

• DDR 模式 (SAME_EDGE 或 OPPOSITE_EDGE)

• 电平敏感锁存器

• 异步 / 组合

图 7-22 所示为 OLOGIC 模块中的各种逻辑资源。

文档的本部分讨论使用 OLOGIC 资源时的各种可用特性。各 OLOGIC 资源之间的所有连接均由 Xilinx 软件管理。

组合输出数据和三态控制通路

组合输出通路用于创建从 FPGA 内部资源到输出驱动器或输出驱动器控制的直接连接。这些通路用于以下情况:

1. FPGA 架构中的逻辑资源与输出数据或三态控制之间存在直接 (不寄存)连接。

2. “将 I/O 寄存器 / 锁存器合并到 IOB 中”设置为 OFF。

图 7-22: OLOGIC 模块图

D1

D2

T1

T2

TCE

CLK

SR

REV

QTQ

CE

CK

REVSR

ug190_7_17_041206

D1

D2

D1

D2

OCE

QOQ

CE

CK

REVSR

Virtex-5 用户指南 www.xilinx.com/cn 339UG190 (v3.1) 2007 年 9 月 11 日

OLOGIC 资源R

输出 DDR 概述 (ODDR)Virtex-5 器件的 OLOGIC 中具有专用寄存器,用来实现 DDR 输出寄存器。例化 ODDR 基元时可使用此功能。当使用 OLOGIC 时,DDR 自动为多路复用。无需手动控制多路器的选择。此控制信号从时钟生成。

ODDR 基元只有一个时钟输入。下降沿数据由输入时钟局部反转后进行时钟控制。提供给 I/O 模块的所有时钟均为完全多路复用,即在 ILOGIC 或 OLOGIC 模块之间没有时钟共用。ODDR 基元支持以下操作模式:

• OPPOSITE_EDGE 模式

• SAME_EDGE 模式

SAME_EDGE 模式与 Virtex-4 架构的相同。此模式允许设计人员在 ODDR 时钟的上升沿上将两个数据输入送至 ODDR 基元,以节省 CLB 和时钟资源并提高性能。此模式用 DDR_CLK_EDGE 属性实现。三态控制也支持这种模式。以下部分详述各模式。

OPPOSITE_EDGE 模式

在 OPPOSITE_EDGE 模式下,使用时钟 (CLK) 的两个沿以两倍吞吐量从 FPGA 内部资源采集数据。这种结构与 Virtex-II、Virtex-II Pro 和 Virtex-4 的实现相似。两个输出都送至 IOB 的数据输入或三态控制输入。图 7-23 所示为使用 OPPPOSITE_EDGE 模式时输出 DDR 的时序图。

SAME_EDGE 模式

在 SAME_EDGE 模式下,数据可以在同一时钟沿上送至 IOB。与使用 CLB 寄存器相比,在同一时钟沿上将数据送至 IOB 可以避免违反建立时间,并且使用户能够以尽量短的寄存

图 7-23: OPPOSITE_EDGE 模式下的输出 DDR 时序

ug190_7_18_041206

CLK

OCE

OQ

D1

D2

D1A D2A D1B

D1A D1B D1C D1D

D2A D2B D2C D2D

D2B D1C D2C D1D

340 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 7 章: SelectIO 逻辑资源R

器到寄存器延迟实现较高的 DDR 频率。图 7-24 所示为使用 SAME_EDGE 模式时输出 DDR 的时序图。

随路时钟

输出 DDR 可以将时钟的一个副本传送到输出。对于以完全相同的延迟传播时钟和 DDR 数据,以及对于生成多个时钟 (其中每个时钟负载具有独立的时钟驱动器),此功能很有用。实现此功能的方法是将 ODDR 基元的 D1 输入固定为 High,并将其 D2 输入固定为 Low。Xilinx 建议使用这种方案从 FPGA 内部资源向输出引脚传送时钟。

输出 DDR 基元 (ODDR)图 7-25 所示为 ODDR 基元框图。表 7-13 列出了 ODDR 端口信号。表 7-14 所示为 ODDR 基元的各种可用属性和默认值。

图 7-24: SAME_EDGE 模式下的输出 DDR 时序

ug190_7_19_041206

CLK

OCE

OQ

D1

D2

D1A D2A D1B

D1A D1B D1C D1D

D2A D2B D2C D2D

D2B D1C D2C D1D

图 7-25: ODDR 基元框图

表 7-13: ODDR 端口信号

端口名称

功能 描述

Q 数据输出 (DDR) ODDR 寄存器输出。

C 时钟输入端口 CLK 引脚表示时钟输入引脚。

ug190_7_20_012207

C

CE

D1

S

R

Q

D2 ODDR

Virtex-5 用户指南 www.xilinx.com/cn 341UG190 (v3.1) 2007 年 9 月 11 日

OLOGIC 资源R

ODDR 的 VHDL 和 Verilog 模板《库指南》包括用 VHDL 和 Verilog 例化 ODDR 模块的模板。

OLOGIC 时序模型本部分讨论与 OLOGIC 模块相关的所有时序模型。表 7-15 所示为 《Virtex-5 数据手册》中 OLOGIC 开关特性的功能和控制信号。

CE 时钟使能端口 CE 表示时钟使能引脚。当置为 Low 有效时,此端口关闭端口 Q 上的输出时钟。

D1 和 D2 数据输入 ODDR 寄存器输入。

R 复位 同步 / 异步复位引脚。复位置为 High 有效。

S 设置 同步 / 异步设置引脚。设置置为 High 有效。

表 7-14: ODDR 属性

属性名称 描述 可能值

DDR_CLK_EDGE 设置相对于时钟沿的 ODDR 操作模式 OPPOSITE_EDGE (默认)、SAME_EDGE

INIT 设置 Q 端口的初始值 0 (默认)、1

SRTYPE 相对于时钟 (C) 的设置 / 复位类型 ASYNC、SYNC (默认)

表 7-13: ODDR 端口信号 ( 续表 )

端口名称

功能 描述

表 7-15: OLOGIC 开关特性

符号 描述

建立 / 保持

TODCK/TOCKD 相对于 CLK 的 D1/D2 引脚建立 / 保持

TOOCECK/TOCKOCE 相对于 CLK 的 OCE 引脚建立 / 保持

TOSRCK/TOCKSR 相对于 CLK 的 SR/REV 引脚建立 / 保持

TOTCK/TOCKT 相对于 CLK 的 T1/T2 引脚建立 / 保持

TOTCECK/TOCKTCE 相对于 CLK 的 TCE 引脚建立 / 保持

时钟到输出

TOCKQ CLK 到 OQ/TQ 输出

TRQ SR/REV 引脚到 OQ/TQ 输出

342 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 7 章: SelectIO 逻辑资源R

时序特性

图 7-26 所示为 OLOGIC 输出寄存器时序。

时钟事件 1

• 在时钟事件 1 之前的时间 TOOCECK 处,输出时钟使能信号在输出寄存器的 OCE 输入上变为高有效,允许输入数据使用输出寄存器。

• 在时钟事件 1 之前的时间 TODCK 处,输出信号在输出寄存器的 D1 输入上变为高有效;在时钟事件 1 之后的时间 TOCKQ 处,该信号反映在 OQ 输出上。

时钟事件 4

在时钟事件 4 之前的时间 TOSRCK 处,SR 信号 (在本例中配置为同步复位)变为高有效,以复位输出寄存器;在时钟事件 4 之后的时间 TRQ 处,该信号反映在 OQ 输出上。

图 7-26: OLOGIC 输出寄存器时序特性

1 2 3 4 5

CLK

D1

OCE

SR

OQ

TOCKQ

TODCK

TOOCECK

TOSRCK

ug190_7_21_041206

Virtex-5 用户指南 www.xilinx.com/cn 343UG190 (v3.1) 2007 年 9 月 11 日

OLOGIC 资源R

图 7-27 所示为 OLOGIC ODDR 寄存器时序。

时钟事件 1

• 在时钟事件 1 之前的时间 TOOCECK 处,ODDR 时钟使能信号在 ODDR 的 OCE 输入上变为高有效,允许输入数据使用 ODDR。在 CLK 的上升沿和下降沿之间翻转 ODDR 寄存器的 OCE 信号时必须慎重,并且要满足相对于两个时钟沿的寄存器建立时间。

• 在时钟事件 1 之前的时间 TODCK 处(CLK 的上升沿),数据信号 D1 在 ODDR 寄存器的 D1 输入上变为高有效;在时钟事件 1 之后的时间 TOCKQ 处,该信号反映在 OQ 输出上。

时钟事件 2

• 在时钟事件 2 之前的时间 TODCK 处(CLK 的下降沿),数据信号 D2 在 ODDR 寄存器的 D2 输入上变为高有效;在时钟事件 2 之后的时间 TOCKQ 处,该信号反映在 OQ 输出上 (在本例中 OQ 输出上无变化)。

时钟事件 9

在时钟事件 9 之前的时间 TOSRCK 处 (CLK 的上升沿),SR 信号 (在本例中配置为同步复位)变为高有效,以复位 ODDR 寄存器;在时钟事件 9 之后的时间 TRQ 处,该信号反映在 OQ 输出上 (在本例中 OQ 输出上无变化),以复位 ODDR 寄存器;在时钟事件 10 之后的时间 TRQ 处,该信号反映在 OQ 输出上 (在本例中 OQ 输出上无变化)。

图 7-27: OLOGIC ODDR 寄存器时序特性

1 2 3 4 5 6 7 8 9 10 11

TODCK

TOOCECK

TODCK

TOSRCK

TRQ

CLK

D1

D2

OCE

SR

OQTOCKQ

ug190_7_22_012407

344 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 7 章: SelectIO 逻辑资源R

图 7-28 所示为 OLOGIC 三态寄存器时序。

时钟事件 1

• 在时钟事件 1 之前的时间 TOTCECK 处,三态时钟使能信号在三态寄存器的 TCE 输入上变为高有效,允许输入数据使用三态寄存器。

• 在时钟事件 1 之前的时间 TOTCK 处,三态信号在三态寄存器的 T 输入上变为高有效;在时钟事件 1 之后的时间 TOCKQ 处,将引脚恢复到高阻抗。

时钟事件 2

• 在时钟事件 2 之前的时间 TOSRCK 处,SR 信号 (在本例中配置为同步复位)变为高有效,以复位输出寄存器;在时钟事件 2 之后的时间 TRQ 处,复位三态寄存器。

图 7-29 所示为 IOB DDR 三态寄存器时序。示例所示为在反沿 (opposite edge) 模式下使用 DDR。对于其他模式,请按第 313 页的图 7-4 所示增加相应延迟。

图 7-28: OLOGIC 三态寄存器时序特性

1 2 3 4 5

CLK

T1

TCE

SR

TQ

TOCKQ TRQ

TOTCK

TOTCECK

TOSRCK

UG190_7_23_041106

Virtex-5 用户指南 www.xilinx.com/cn 345UG190 (v3.1) 2007 年 9 月 11 日

OLOGIC 资源R

时钟事件 1

• 在时钟事件 1 之前的时间 TOTCECK 处,三态时钟使能信号在三态 ODDR 寄存器的 TCE 输入上变为高有效,允许输入数据使用这些寄存器。在 CLK 的上升沿和下降沿之间翻转三态 ODDR 寄存器的 TCE 信号时必须慎重,并且要满足相对于两个时钟沿的寄存器建立时间。

• 在时钟事件 1 之前的时间 TOTCK 处 (CLK 的上升沿),三态信号 T1 在三态寄存器的 T1 输入上变为高有效;在时钟事件 1 之后的时间 TOCKQ 处,该信号反映在 TQ 输出上。

时钟事件 2

• 在时钟事件 2 之前的时间 TOTCK 处 (CLK 的下降沿),三态信号 T2 在三态寄存器的 T2 输入上变为高有效;在时钟事件 2 之后的时间 TOCKQ 处,该信号反映在 TQ 输出上(在本例中 TQ 输出上无变化)。

时钟事件 9

• 在时钟事件 9 之前的时间 TOSRCK 处 (CLK 的上升沿),SR 信号 (在本例中配置为同步复位)变为高有效,以复位三态寄存器;在时钟事件 9 之后的时间 TRQ 处,该信号反映在 TQ 输出上(在本例中 TQ 输出上无变化),以复位三态寄存器;在时钟事件 10 之后的时间 TRQ 处,该信号反映在 TQ 输出上 (在本例中 TQ 输出上无变化)。

图 7-29: OLOGIC ODDR 三态寄存器时序特性

1 2 3 4 5 6 7 8 9 10 11

TOTCK

TOTCECK

TOTCK

TOSRCK

TRQ

CLK

T1

T2

TCE

SR

TQTOCKQ

ug190_7_24_041106

346 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 7 章: SelectIO 逻辑资源R

Virtex-5 用户指南 www.xilinx.com/cn 347UG190 (v3.1) 2007 年 9 月 11 日

R

第 8 章

高级 SelectIO 逻辑资源

简介本用户指南的第 6 章到第 8 章讲述了 Virtex-5 I/O 功能。

• 第 6 章涵盖了输入接收器和输出驱动器的电气特性及其对多种行业标准的兼容性。

• 第 7 章讲述了专用于收发 SDR 或 DDR 数据的寄存器结构。

• 本章涵盖以下资源:

♦ 输入串并转换器 (ISERDES) 和输出并串转换器 (OSERDES),可支持非常高的 I/O 数据速率,允许内部逻辑以 I/O 十分之一的低速率运行。

♦ Bitslip 子模块,可以根据培训模式检测数据,重新对齐字节边界。

输入串并转换逻辑资源 (ISERDES)Virtex-5 ISERDES 是专用的串并转换器,具有专门用来帮助实现高速源同步应用的特定时钟控制与逻辑功能。当在 FPGA 架构中设计解串器时,ISERDES 可以避免由其带来的时序复杂性。

ISERDES 功能包括:

• 专用解串器 / 串并转换器

ISERDES 解串器可以实现高速数据传输,不要求 FPGA 内部资源与输入数据频率匹配。此转换器支持单倍数据速率 (SDR) 和双倍数据速率 (DDR) 两种模式。在 SDR 模式下,串并转换器可以创建 2、3、4、5、6、7 或 8 位宽的并行字。在 DDR 模式下,串并转换器可以创建 4、6、8 或 10 位宽的并行字。

• Bitslip 子模块

Bitslip 子模块允许设计人员对进入 FPGA 内部资源的并行数据流重新排序。此功能可用来培训包括培训模式的源同步接口。

• 对选通存储器接口的专门支持

ISERDES 包含专用电路 (包括 OCLK 输入引脚),可以完全在 ISERDES 模块内部处理选通门到 FPGA 跨时钟域的功能。此功能可以提高性能和简化实现。

• 对网络接口的专门支持

348 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 8 章: 高级 SelectIO 逻辑资源R

图 8-1 所示为 ISERDES 的框图,重点显示该模块的所有主要元件和功能。

ISERDES 基元图 8-2 所示为 ISERDES 基元。

图 8-1: ISERDES 框图

D

CLKDIV

Serial to ParallelConverter

BITSLIPModule

CEModule

OCLK

CLK

CE1

CE2

Q1 - Q6

SHIFTOUT1/2

SHIFTIN1/2

RST

Bitslipug190_8_01_050906

图 8-2: ISERDES 基元

BITSLIP

CE1

CE2

CLK

CLKDIV

D

OCLK

SHIFTIN1

SHIFTIN2

SR

SHIFTOUT1

SHIFTOUT2

Q5

Q6

Q3

Q4

Q1

O

Q2

ug190_8_02_071207

ISERDESPrimitive

Virtex-5 用户指南 www.xilinx.com/cn 349UG190 (v3.1) 2007 年 9 月 11 日

输入串并转换逻辑资源 (ISERDES)R

表 8-1 列出了 ISERDES 基元中的可用端口。

ISERDES 端口

寄存输出 - Q1 到 Q6

输出端口 Q1 到 Q6 是 ISERDES 模块的寄存输出。一个 ISERDES 模块 多可以支持六个数据位 (即 1:6 解串)。可以支持大于六的位宽 ( 多 10 位)。请见 “ISERDES 宽度扩展”。接收到的第一个数据位出现在 高阶 Q 输出上。

Bitslip 操作 - BITSLIP

当置为有效 (高有效)时,BITSLIP 引脚执行与 CLKDIV 同步的 Bitslip 操作。此后,如同桶式移位器操作,每当启动 Bitslip 操作,Q1 到 Q6 输出端口上的数据就会移动一个位置(DDR 的操作与 SDR 的不同)。有关更多详情,请见 “BITSLIP 子模块”。

表 8-1: ISERDES 端口列表和定义

端口名称 类型 宽度 描述

Q1 - Q6 输出 1 (每端口) 寄存输出。请见 “寄存输出 - Q1 到 Q6”。

O 输出 1 组合输出。

SHIFTOUT1 输出 1 数据宽度扩展的进位输出。连接到从 IOB 的 SHIFTIN1。请见 “ISERDES 宽度扩展”。

SHIFTOUT2 输出 1 数据宽度扩展的进位输出。连接到从 IOB 的 SHIFTIN2。请见 “ISERDES 宽度扩展”。

BITSLIP 输入 1 启动 Bitslip 操作。请见 “Bitslip 操作 - BITSLIP”。

CE1CE2

输入 1 (每端口) 时钟使能输入。请见 “时钟使能输入 - CE1 和 CE2”。

CLK 输入 1 高速时钟输入。对串行输入数据流进行时钟控制。请见 “高速时钟输入 - CLK”。

CLKDIV 输入 1 分频时钟输入。对延迟单元、解串数据、Bitslip 子模块和 CE 单元进行时钟控制。请见 “分频时钟输入 - CLKDIV”。

D 输入 1 来自 IOB 的串行输入数据。请见 “来自 IOB 的串行输入数据 - D”。

OCLK 输入 1 存储器应用的高速时钟输入。请见 “选通存储器接口的高速时钟 - OCLK”。

SHIFTIN1 输入 1 数据宽度扩展的进位输入。连接到主 IOB 的 SHIFTOUT1。请见 “ISERDES 宽度扩展”。

SHIFTIN2 输入 1 数据宽度扩展的进位输入。连接到主 IOB 的 SHIFTOUT2。请见 “ISERDES 宽度扩展”。

SR 输入 1 设置 / 复位。在 ISERDES 模块中,此引脚仅用作异步复位。

350 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 8 章: 高级 SelectIO 逻辑资源R

时钟使能输入 - CE1 和 CE2

每个 ISERDES 模块包含一个时钟使能模块。此时钟使能模块用作 2:1 串并转换器,由 CLKDIV 进行时钟控制。当 ISERDES 配置成 DDR 模式的 1:4 解串时,双向存储器接口需要特别的时钟使能模块。当属性 NUM_CE = 2 时,启用时钟使能模块,CE1 和 CE2 端口均可用。当 NUM_CE = 1 时,只能使用 CE1,将其作为常规时钟使能端口。

当 CE1 和 / 或 CE2 用作时钟禁用端口时,并非冻结 ISERDES 链中的所有数据。只有该链中的前四个触发器连接到 CE1 和 CE2。一旦 CE1 和 CE2 设置为 Low,这些寄存器中的数据就会填充该链的其余部分。在 DDR 模式下,读入 ISERDES 模块的后两位会传输到奇偶输出。

高速时钟输入 - CLK

高速时钟输入 (CLK) 用于对输入串行数据流进行时钟控制。

分频时钟输入 - CLKDIV

分频时钟输入 (CLKDIV) 通常是 CLK 的一个分频版本 (取决于所实现解串的宽度)。此端口驱动串并转换器、Bitslip 子模块和 CE 模块的输出。

来自 IOB 的串行输入数据 - D

串行输入数据端口 (D) 是 ISERDES 的串行(高速)数据输入端口。此端口与所有 Virtex-5 I/O 资源配合工作,以满足所需的 I/O 标准。

选通存储器接口的高速时钟 - OCLK

OCLK 时钟输入对选通存储器接口中的数据传输进行同步控制。

ISERDES 属性表 8-2 概述了所有适用的 ISERDES 属性。该表后面是各属性的详细描述。有关在 UCF、VHDL 或 Verilog 代码中应用这些属性的更多信息,请参阅 《Xilinx ISE 软件手册》。

表 8-2: ISERDES 属性

属性名称 描述 值 默认值

BITSLIP_ENABLE 允许用户使用或忽略 Bitslip 子模块。请见“BITSLIP_ENABLE 属性”。

字符串:TRUE 或 FALSE FALSE

DATA_RATE 允许将输入数据流作为 SDR 或 DDR 数据处理。请见 “DATA_RATE 属性”。

字符串:SDR 或 DDR DDR

DATA_WIDTH 定义串并转换器的宽度。合法值取决于 DATA_RATE 属性 (SDR 或 DDR)。请见“DATA_WIDTH 属性”。

整数:2、3、4、5、6、7、8 或 10。如果 DATA_RATE = DDR,则此值限制为 4、6、8 或 10。如果 DATA_RATE = SDR,则此值限制为 2、3、4、5、6、7 或 8。

4

INTERFACE_TYPE 选择 ISERDES 使用模型。请见“INTERFACE_TYPE 属性”。

字符串:MEMORY 或 NETWORKING

MEMORY

Virtex-5 用户指南 www.xilinx.com/cn 351UG190 (v3.1) 2007 年 9 月 11 日

输入串并转换逻辑资源 (ISERDES)R

BITSLIP_ENABLE 属性

BITSLIP_ENABLE 属性启用 Bitslip 子模块。其可能值是 TRUE 和 FALSE (默认)。当设置为 TRUE 时,Bitslip 子模块响应 BITSLIP 信号。当设置为 FALSE 时,忽略 Bitslip 子模块。请见 “BITSLIP 子模块”。

DATA_RATE 属性

DATA_RATE 属性定义将输入数据流作为单倍数据速率 (SDR) 还是双倍数据速率 (DDR) 数据处理。此属性的允许值是 SDR 和 DDR。默认值是 DDR。

DATA_WIDTH 属性

DATA_WIDTH 属性定义串并转换器的并行数据输出宽度。此属性的可能值取决于 DATA_RATE 属性。当 DATA_RATE 设置为 SDR 时,DATA_WIDTH 属性的可能值是 2、3、4、5、6、7 和 8。当 DATA_RATE 设置为 DDR 时,DATA_WIDTH 属性的可能值是 4、6、8 和 10。

当 DATA_WIDTH 设置为大于六的宽度时,必须将一对 ISERDES 配置成主从配置。请见“ISERDES 宽度扩展”。

INTERFACE_TYPE 属性

INTERFACE_TYPE 属性确定将 ISERDES 配置为存储器模式还是网络模式。此属性的允许值是 MEMORY 或 NETWORKING。默认模式是 MEMORY。

当 INTERFACE_TYPE 设置成 NETWORKING 时,可以使用 Bitslip 子模块,不使用 OCLK 端口。当设置成 MEMORY 时,不可使用 Bitslip 子模块,可以使用 OCLK 端口。

NUM_CE 属性

NUM_CE 属性定义所用时钟使能 (CE1 和 CE2)数。其可能值是 1 和 2 (默认值 = 2)。

SERDES_MODE 属性

当使用宽度扩展时,SERDES_MODE 属性定义 ISERDES 模块是主模块还是从模块。其可能值是 MASTER 和 SLAVE。默认值是 MASTER。请见 “ISERDES 宽度扩展”。

NUM_CE 定义时钟使能数。请见 “NUM_CE 属性”。 整数:1 或 2 2

SERDES_MODE 当使用宽度扩展时,定义 ISERDES 模块是主模块还是从模块。请见 “SERDES_MODE 属性”。

字符串:MASTER 或 SLAVEMASTER

MASTER

表 8-2: ISERDES 属性 ( 续表 )

属性名称 描述 值 默认值

352 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 8 章: 高级 SelectIO 逻辑资源R

ISERDES 宽度扩展构建大于 1:6 的串并转换器需要用两个 ISERDES 模块。每个 I/O 模块中有一主一从两个 ISERDES 模块。通过将主 ISERDES 的 SHIFTOUT 端口连接到从 ISERDES 的 SHIFTIN 端口,可以将串并转换器 大扩展到 1:10 (DDR) 和 1:8 (SDR)。

图 8-3 所示为使用主从 ISERDES 模块的 1:10 DDR 串并转换器的框图。端口 Q3 - Q6 用于从 ISERDES 上的并行接口的后四位。

扩展串并转换器位宽的指导原则

1. 两个 ISERDES 模块必须是相邻的主从对。

2. 将主 ISERDES 的 SERDES_MODE 属性设置为 MASTER,将从 ISERDES 的该属性设置为 SLAVE。请见 “SERDES_MODE 属性”。

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

4. SLAVE 仅使用端口 Q3 到 Q6 作为输入。

5. 在图 8-3 中,DATA_WIDTH 适用于 MASTER 和 SLAVE。

图 8-3: ISERDES 宽度扩展的框图

Q1D

Data Input

Q2Q3Q4

ISERDES(Slave)

SERDES_MODE=SLAVE

Q5Q6

Q1DQ2Q3Q4

ISERDES(Master)

SERDES_MODE=MASTER

Q5Q6

SHIFTOUT1 SHIFTOUT2

SHIFTIN1 SHIFTIN2

Data_internal [0:5]

Data_internal [6:9]

ug190_8_03_041206

Virtex-5 用户指南 www.xilinx.com/cn 353UG190 (v3.1) 2007 年 9 月 11 日

输入串并转换逻辑资源 (ISERDES)R

ISERDES 延迟ISERDES 模块的输入到输出延迟取决于 DATA_RATE、DATA_WIDTH 和 SERDES_MODE 属性。此处所述延迟是快时钟 (CLK) 采集数据位样本之后该数据位出现在 Q 输出上所需的慢时钟 (CLKDIV) 周期数。表 8-3 概述了各种 ISERDES 延迟值。

ISERDES 时序模型和参数表 8-4 所示为 《Virtex-5 数据手册》中 ISERDES 开关特性的功能和控制信号。

时序特性

在图 8-4 和图 8-5 所示时序图中,时序参数名称因模式不同 (SDR/DDR) 而变化,但不会因总线输入宽度不同而变化,包括当两个 ISERDES 级联形成 10 个数据位时。在 DDR 模式下,数据输入 (D) 在每个 CLK 沿 (上升和下降)上切换。

表 8-3: ISERDES 延迟

Data_RATESERDES_MODE

存储器模式的延迟 网络模式的延迟

SDR 1 个 CLKDIV 周期 2 个 CLKDIV 周期

DDR 1 个 CLKDIV 周期 2 个 CLKDIV 周期

表 8-4: ISERDES 开关特性

符号 描述

控制线的建立 / 保持

TISCCK_BITSLIP/ TISCKC_BITSLIP 相对于 CLKDIV 的 BITSLIP 引脚建立 / 保持

TISCCK_CE /TISCKC_CE 相对于 CLK 的 CE 引脚建立 / 保持 (对于 CE1)

TISCCK_CE /TISCKC_CE 相对于 CLKDIV 的 CE 引脚建立 / 保持 (对于 CE2)

数据线的建立 / 保持

TISDCK_D / TISCKD_D 相对于 CLK 的 D 引脚建立 / 保持

相对于 CLK 的 D 引脚建立 / 保持

相对于 CLK 的 D 引脚建立 / 保持

TISDCK_DDR / TISCKD_DDR DDR 模式下,相对于 CLK 的 D 引脚建立 / 保持

DDR 模式下,相对于 CLK 的 D 引脚建立 / 保持

DDR 模式下,相对于 CLK 的 D 引脚建立 / 保持

时序延迟

TISCKO_Q Q 引脚上的 CLKDIV 到输出

354 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 8 章: 高级 SelectIO 逻辑资源R

图 8-4 所示为向 ISERDES 输入数据时的 ISERDES 时序图。

时钟事件 1

• 在时钟事件 1 之前的时间 TISCCK_CE 处,时钟使能信号变为高有效,ISERDES 可以采集数据。

时钟事件 2

• 在时钟事件 2 之前的时间 TISDCK_D 处,输入数据引脚 (D) 变为有效;在下一个上升时钟沿上,在该引脚上采样。

图 8-5 所示为从 ISERDES 输出数据时的 ISERDES 时序图。

时钟事件 1

• 在时钟事件 1 之后的时间 TISCKO_Q 处,数据出现在 Q1 到 Q6 输出引脚上。

时钟事件 2

• 在时钟事件 2 的时间处,复位信号为高有效 (异步复位)。

• 在时钟事件 2 之后,Q1 到 Q6 输出引脚异步复位到零。

8:1 SDR ISERDES

图 8-6 所示为 8:1 SDR ISERDES 的 ISERDES 时序图。由于 ISERDES 的性质,数据需要多个 CLKDIV 周期才能出现。周期数取决于 INTERFACE_TYPE 属性。时序参数名称因模式不同 (SDR/DDR) 而不同,但不会因总线输入宽度不同而变化。除了数据输入 (D) 在每个 CLK 沿 (上升和下降)上切换外,同样的示例也适用于 DDR 模式。接收到的第一个数据位出现在 高阶输出上。

图 8-4: ISERDES 输入数据时序图

ug190_8_04_041206

CLK

CE

TISCCK_CE

TISDCK_D

1 2

D

图 8-5: ISERDES 输出数据时序图

ug190_8_05_041206

CLKDIV

TISCKO_Q

1 2

Q1 to Q6

Reset

AsynchronousReset

Virtex-5 用户指南 www.xilinx.com/cn 355UG190 (v3.1) 2007 年 9 月 11 日

输入串并转换逻辑资源 (ISERDES)R

CLKDIV 事件 1

• 在 CLKDIV 事件 1 之前的时间 TISCCK_CE 处,时钟使能信号变为高有效。ISERDES 可以从 CLKDIV 上升沿之后的第一个时钟边沿开始采样数据。

CLK 事件 1

• 在 CLK 事件 1 之前的时间 TISDCK_D 处,输入数据在 ISERDES 的 D 输入引脚上变为有效。对于 8:1 SERDES,在 CLK 事件 2 处采样总线上的第八个数据。对后续输入数据重复此过程。

CLKDIV 事件 2

• 在 CLKDIV 事件 2 之后的时间 TISCKO_Q 处,即第一个数据样本输入 ISERDES 之后两个 CLKDIV 周期,数据出现在 Q1 到 Q8 总线上。

Reset 事件 1

在 Reset 事件 1 处,Q1 到 Q8 输出异步变为零。

ISERDES 的 VHDL 和 Verilog 实例模板《库指南》中提供了所有基元和子模块的 VHDL 和 Verilog 实例模板。

每个 VHDL 模板具有一个元件声明部分和一个架构部分。

模板的每个部分均应插到 VHDL 设计文件中。架构部分的端口映射应包括设计信号名称。

图 8-6: 8:1 SDR ISERDES

ug190_8_06_041206

CLK

CLKDIVEvent 1 CLKDIV

Event 2CLK

1CLK

2Reset Event 1

CLKDIV

SR

CE

D

Q1 - Q8 00000000 00000000

11100101

0000000011111010

TISCCK_CE

TISDCK_D

TISCKO_Q

356 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 8 章: 高级 SelectIO 逻辑资源R

BITSLIP 子模块Virtex-5 器件中的所有 ISERDES 模块都包含一个 Bitslip 子模块。这个子模块可在源同步网络型应用中进行字对齐。Bitslip 对 ISERDES 模块中的并行数据重新排序,以便将解串器所接收重复串行模式的每种组合都送至 FPGA 结构。这种重复串行模式通常称为培训模式(许多网络和电信标准都支持培训模式)。

Bitslip 操作

通过将 ISERDES 模块的 Bitslip 引脚置为有效,可以在并行侧对输入串行数据流重新排序。此操作重复进行,直到形成训练模式。图 8-7 中的表格所示为 SDR 和 DDR 模式下 Bitslip 操作的效果。为了便于说明,采用了八位数据宽度。Bitslip 操作与 CLKDIV 同步。在 SDR 模式下,每次 Bitslip 操作使输出模式左移一位。在 DDR 模式下,每次 Bitslip 操作使输出模式在右移一位和左移三位之间交替变化。在此示例中,输出模式在第八次 Bitslip 操作时还原到初始模式。这里假定串行数据是八位重复模式。

图 8-8 所示为配置成 1:8 SDR 模式的 ISERDES,其 Bitslip_ENABLE 设置为 TRUE。两个 ISERDES 模块是八位数据宽度的主从配置。

图 8-7: Bitslip 操作示例

ug190_8_16_041206

BitslipOperationsExecuted

OutputPattern (8:1)

00100111010011101001110000111001011100101110010011001001

10010011Initial1234567

Bitslip Operation in SDR Mode

BitslipOperationsExecuted

OutputPattern (8:1)

10010011100111000100111001110010001110011100100111100100

00100111Initial1234567

Bitslip Operation in DDR Mode

Virtex-5 用户指南 www.xilinx.com/cn 357UG190 (v3.1) 2007 年 9 月 11 日

输入串并转换逻辑资源 (ISERDES)R

使用 Bitslip 子模块的指导原则

将 BITSLIP_ENABLE 属性设置为 TRUE。当 BITSLIP_ENABLE 设置为 FALSE 时,Bitslip 引脚无效。在主从配置中,两个模块的 BITSLIP_ENABLE 属性都必须设置为 TRUE。

要启动 Bitslip 操作,BITSLIP 端口置为 High 有效的时间必须持续在一个 CLKDIV 周期。在 SDR 模式下,Bitslip 的置位时间不能长达两个连续的 CLKDIV 周期;在两次 Bitslip 有效置位之间,Bitslip 的无效时间至少有一个 CLKDIV 周期。在 SDR 和 DDR 两种模式下,从 ISERDES 捕获到已置位的 Bitslip 输入起,到 CLKDIV 采集的 “bit-slipped”ISERDES 输出 Q1-Q6 的样本输入 FPGA 内部资源止,总延迟是两个 CLKDIV 周期。

Bitslip 时序模型和参数

本部分讨论 1:4 DDR 配置中 Bitslip 控制器的相关时序模型。数据 (D) 是重复的 4 位培训模式 ABCD。ABCD 在 ISERDES 的并行输出 Q1-Q4 上出现的可能方式有四种:ABCD、BCDA、CDAB 和 DABC。这四种并行字对齐方式中只有一种对用户的上游逻辑有意义,该逻辑是从 ISERDES 的 Q1-Q4 输出读取数据。在本例中,假定 ABCD 是有意义的字对齐方式。将 Bitslip 置为有效可以让用户看到 ABCD 的所有可能配置,然后选择所需的对齐方式 (ABCD)。图 8-9 所示为两种 Bitslip 操作的时序以及 ISERDES 并行输出 Q1-Q4 的相应重新对齐方式。

图 8-8: 1:8 SDR 模式 Bitslip 配置的电路图

Initial1st

Bitslip2nd

Bitslip3th

Bitslip4th

Bitslip5th

Bitslip6th

Bitslip7th

BitslipBITSLIP_ENABLE = TRUE

BITSLIP_ENABLE = TRUE

BITSLIP

BITSLIP

Bitslip signal from system

8th Bitslip(Back to initial)

Q1D

1001 0011

Q2(Q7)Q3(Q8)Q4

ISERDES(Slave)

SERDES_MODE=SLAVE

IOB

Q5Q6

Q1DQ2Q3Q4

ISERDES(Master)

SERDES_MODE=MASTER

Q5Q6

100100

11

110010

01

111001

00

011100

10

001110

01

100111

00

010011

10

001001

11

100100

11

SHIFTOUT1 SHIFTOUT2

SHIFTIN1 SHIFTIN2

ug190_8_08_071707

(Repeating Pattern)

358 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 8 章: 高级 SelectIO 逻辑资源R

时钟事件 1

第一个完整的字 CDAB 已经被采样到 ISERDES 的输入侧寄存器。Bitslip 引脚未置为有效;该字不经任何重新对齐传播到 ISERDES。

时钟事件 2

第二个字 CDAB 已经被采样到 ISERDES 的输入侧寄存器。Bitslip 引脚置为有效,使 Bitslip 控制器在内部将所有数据位右移一位。

时钟事件 3

第三个字 CDAB 已经被采样到 ISERDES 的输入侧寄存器。Bitslip 引脚再次置为有效,使 Bitslip 控制器在内部将所有数据位左移三位。

同样在此 CLKDIV 沿上,第一个字的样本不经任何重新对齐送至 Q1-Q4。图 8-10 中 A 项所示为在此周期中出现在 Q1-Q4 输出上的输入流中的实际数据位。

图 8-9: Bitslip 时序图

图 8-10: 图 8-9 中数据输入流 (D) 中的数据位

ug190_8_09_071707

C D A B C D C DA B C D A B

CLK

BITSLIP

CLKDIV

D

1 2

Bitslip1 Bitslip2

43 5

Q4–Q1 CDAB BCDA ABCD

ug190_c8_18_071707

C(2nd Bitslip, Rotate 3 Bits to Left)Q1–Q4 During Clock Event 5

B(1st Bitslip, Rotate 1 Bit to Right)Q1–Q4 During Clock Event 4

C D A B C D C DA B C D A B

C D A B C D C DA B C D A B

C D A B C D C DA B C D A B

A(No Bitslip)Q1–Q4 During Clock Event 3

Virtex-5 用户指南 www.xilinx.com/cn 359UG190 (v3.1) 2007 年 9 月 11 日

输出并串转换逻辑资源 (OSERDES)R

输出并串转换逻辑资源 (OSERDES)Virtex-5 OSERDES 是专用的并串转换器,具有专门用来帮助实现高速源同步接口的特定时钟控制和逻辑资源。每个 OSERDES 模块包括一个用于数据和三态控制的专用串行器。数据和三态串行器都可以配置成 SDR 和 DDR 模式。数据串行化可达 6:1 (如果使用“OSERDES 宽度扩展”则是 10:1)。三态串行化可达 4:1。

图 8-11 所示为 OSERDES 的框图,重点显示该模块的所有主要元件和功能。

数据并串转换器

一个 OSERDES 模块中的数据并串转换器接收来自内部资源的二到六位并行数据 (如果使用 “OSERDES 宽度扩展”则是 10:1),将数据串行化,然后通过 OQ 输出将数据送至 IOB。并行数据串行化是按照从数据输入引脚的 低位到 高的顺序进行的 (即 D1 输入引脚上的数据传输到 OQ 引脚的首位)。可以在两种模式下使用数据并串转换器:单倍数据速率 (SDR) 和双倍数据速率 (DDR)。

OSERDES 使用 CLK 和 CLKDIV 两个时钟进行数据速率转换。CLK 是高速串行时钟;CLKDIV 是分频并行时钟。假定 CLK 和 CLKDIV 相位对齐。表 8-5 所示为各种模式下 CLK 与 CLKDIV 之间的关系。

图 8-11: OSERDES 框图

3-StateParallel-to-Serial Converter

DataParallel-to-Serial Converter

CLK

CLKDIV

SR

D1 - D6

OCE

TCE

T1 - T4TQ

IOB

OQ

ug190_8_10_071707

Output Driver

360 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 8 章: 高级 SelectIO 逻辑资源R

三态并串转换

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

OSERDES 基元图 8-12 所示为 OSERDES 基元。

表 8-5: 数据并串转换器的 CLK/CLKDIV 关系

SDR 模式下的输入数据宽度输出

DDR 模式下的输入数据宽度输出

CLK CLKDIV

2 4 2X X

3 6 3X X

4 8 4X X

5 10 5X X

6 - 6X X

7 - 7X X

8 - 8X X

图 8-12: OSERDES 基元

ug190_8_11_041206

CLK

CLKDIV

D1

D2

D3

D4

D5

D6

OCE

SHIFTIN1

SHIFTIN2

SR

T1

T2

T3

T4

OQ

SHIFTOUT1

SHIFTOUT2

TQ

OSERDESPrimitive

Virtex-5 用户指南 www.xilinx.com/cn 361UG190 (v3.1) 2007 年 9 月 11 日

输出并串转换逻辑资源 (OSERDES)R

OSERDES 端口表 8-6 列出了 OSERDES 基元中的可用端口。

数据通路输出 - OQ

OQ 端口是 OSERDES 模块的数据输出端口。输入端口 D1 上的数据会首先出现在 OQ 上。此端口将数据并串转换器的输出连接到 IOB 的数据输入。

三态控制输出 - TQ

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

高速时钟输入 - CLK

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

分频时钟输入 - CLKDIV

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

表 8-6: OSERDES 端口列表和定义

端口名称 类型 宽度 描述

OQ 输出 1 数据通路输出。请见 “数据通路输出 - OQ”。

SHIFTOUT1 输出 1 数据宽度扩展的进位输出。连接到主 OSERDES 的 SHIFTIN1。请见“OSERDES 宽度扩展”。

SHIFTOUT2 输出 1 数据宽度扩展的进位输出。连接到主 OSERDES 的 SHIFTIN2。请见“OSERDES 宽度扩展”。

TQ 输出 1 三态控制输出。请见 “三态控制输出 - TQ”。

CLK 输入 1 高速时钟输入。请见 “高速时钟输入 - CLK”。

CLKDIV 输入 1 分频时钟输入。对延迟单元、解串数据、Bitslip 子模块和 CE 单元进行时钟控制。请见 “分频时钟输入 - CLKDIV”。

D1 - D6 输入 1 (每端口) 并行数据输入。请见 “并行数据输入 - D1 到 D6”。

OCE 输入 1 输出数据时钟使能。请见 “输出数据时钟使能 - OCE”。

REV 输入 1 反转 SR 引脚。OSERDES 模块中没有此端口。

SHIFTIN1 输入 1 数据宽度扩展的进位输入。连接到从 OSERDES 的 SHIFTOUT1。请见“OSERDES 宽度扩展”。

SHIFTIN2 输入 1 数据宽度扩展的进位输入。连接到从 OSERDES 的 SHIFTOUT2。请见“OSERDES 宽度扩展”。

SR 输入 1 设置 / 复位。在 OSERDES 模块中,此引脚仅用作异步复位。

T1 to T4 输入 1 (每端口) 并行三态输入。请见 “并行三态输入 - T1 到 T4”。

TCE 输入 1 三态时钟使能。请见 “三态信号时钟使能 - TCE”。

362 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 8 章: 高级 SelectIO 逻辑资源R

并行数据输入 - D1 到 D6

所有输入并行数据都通过端口 D1 到 D6 进入 OSERDES 模块。这些端口连接到 FPGA 内部资源,可以配置成二到六位 (即 6:1 串行化)。可以支持大于六的位宽 ( 多 10 位)。请见 “OSERDES 宽度扩展”。

输出数据时钟使能 - OCE

OCE 是数据通路的 High 有效时钟使能。

并行三态输入 - T1 到 T4

所有并行三态信号都通过端口 T1 到 T4 进入 OSERDES 模块。这些端口连接到 FPGA 内部资源,可以配置成一位或四位。

三态信号时钟使能 - TCE

TCE 是三态控制通路的 High 有效时钟使能。

OSERDES 属性表 8-7 列出并描述了 OSERDES 基元的各种可用属性。该表包括默认值。

表 8-7: OSERDES 属性概述

OSERDES 属性 描述 值 默认值

DATA_RATE_OQ 定义数据 (OQ) 是在相对于 CLK 的每个时钟边沿还是时钟上升沿上变化。

字符串:SDR 或 DDR DDR

DATA_RATE_TQ 定义三态 (TQ) 是在相对于时钟的每个时钟沿还是每个上升时钟沿上变化,或者是设置成缓冲器配置。

字符串:BUF、SDR 或 DDR DDR

DATA_WIDTH 定义并串数据转换器的宽度。此值还取决于 DATA_RATE_OQ 的值。

整数:2、3、4、5、6、7、8 或 10。如果 DATA_RATE_OQ = DDR,则此值限制为 4、6、8 或 10。如果 DATA_RATE_OQ = SDR,则此值限制为 2、3、4、5、6、7 或 8。

4

SERDES_MODE 当使用宽度扩展时,定义 OSERDES 模块是主模块还是从模块。

字符串:MASTER 或 SLAVE MASTER

TRISTATE_WIDTH 定义并串三态转换器的宽度。 整数:1 或 4

如果 ATA_RATE_TQ = DDR,则此值限制为 4。如果 ATA_RATE_TQ = SDR 或 BUF,则此值限制为 1。

4

Virtex-5 用户指南 www.xilinx.com/cn 363UG190 (v3.1) 2007 年 9 月 11 日

输出并串转换逻辑资源 (OSERDES)R

DATA_RATE_OQ 属性

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

DATA_RATE_TQ 属性

DATA_RATE_TQ 属性定义将三态控制作为单倍数据速率 (SDR) 还是双倍数据速率 (DDR) 数据处理。此属性的允许值是 SDR 和 DDR。默认值是 DDR。

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。

当 DATA_WIDTH 设置为大于六的宽度时,必须将一对 OSERDES 配置成主从配置。请见“OSERDES 宽度扩展”。

SERDES_MODE 属性

当使用宽度扩展时,SERDES_MODE 属性定义 OSERDES 模块是主模块还是从模块。其可能值是 MASTER 和 SLAVE。默认值是 MASTER。请见 “OSERDES 宽度扩展”。

TRISTATE_WIDTH 属性

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

在此情况下,TRISTATE_WIDTH 不能设置为大于四的宽度,应设置为 1。

364 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 8 章: 高级 SelectIO 逻辑资源R

OSERDES 宽度扩展构建大于 6:1 的并串转换器需要用两个 OSERDES 模块。每个 I/O 模块中有一主一从两个 OSERDES 模块。通过将主 OSERDES 的 SHIFTIN 端口连接到从 OSERDES 的 SHIFTOUT 端口,可以将并串转换器 大扩展到 10:1 (DDR) 和 8:1 (SDR)。

图 8-13 所示为使用主从 OSERDES 模块的 10:1 DDR 并串转换器的框图。端口 Q3 - Q6 用于从 OSERDES 上的并行接口的后四位 (LSB 到 MSB)。

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

扩展并串转换器位宽的指导原则

1. 两个 OSERDES 模块必须是相邻的主从对。

2. 将主 OSERDES 的 SERDES_MODE 属性设置为 MASTER,将从 OSERDES 的该属性设置为 SLAVE。请见 “SERDES_MODE 属性”。

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

4. SLAVE 仅将端口 D3 到 D6 作为输入。

5. Master 和 Slave 的 DATA_WIDTH 相等。请见 “DATA_WIDTH 属性”。

图 8-13: OSERDES 宽度扩展的模块图

表 8-8: SDR/DDR 模式下 OSERDES 的可用数据宽度

SDR 数据宽度 2、3、4、5、6、7、8

DDR 数据宽度 4、6、8、10

OQ

Data Inputs[0:5]

Data Inputs[6:9]

OSERDES(Slave)

SERDES_MODE=SLAVE

OQ

OSERDES(Master)

SERDES_MODE = MASTER

D1D2D3D4D5D6

D1D2D3D4D5D6

SHIFTIN1 SHIFTIN2

SHIFTOUT1 SHIFTOUT2

Data Out

ug190_8_12_041206

Virtex-5 用户指南 www.xilinx.com/cn 365UG190 (v3.1) 2007 年 9 月 11 日

输出并串转换逻辑资源 (OSERDES)R

OSERDES 延迟OSERDES 模块的输入到输出延迟取决于 DATA_RATE 和 DATA_WIDTH 属性。延迟的定义是,并行数据样本输入 OSERDES 所需的慢时钟 (CLKDIV) 周期数,后加 OSERDES 在并行数据采样之后将第一个串行化数据送入 QQ 输出所需的快时钟 (CLK) 周期数。表 8-9 概述了各种 OSERDES 延迟值。

表 8-9: OSERDES 延迟

DATA_RATE DATA_WIDTH 延迟

SDR 2:1 1 个 CLKDIV 周期加 1 个 CLK 周期

3:1 1 个 CLKDIV 周期加 3 个 CLK 周期

4:1 1 个 CLKDIV 周期加 4 个 CLK 周期

5:1 1 个 CLKDIV 周期加 4 个 CLK 周期

6:1 1 个 CLKDIV 周期加 5 个 CLK 周期

7:1 1 个 CLKDIV 周期加 5 个 CLK 周期

8:1 1 个 CLKDIV 周期加 6 个 CLK 周期

DDR 4:1 1 个 CLKDIV 周期加 1 个 CLK 周期

6:1 1 个 CLKDIV 周期加 3 个 CLK 周期

8:1 1 个 CLKDIV 周期加 4 个 CLK 周期

10:1 1 个 CLKDIV 周期加 4 个 CLK 周期

366 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 8 章: 高级 SelectIO 逻辑资源R

OSERDES 时序模型和参数本部分讨论 OSERDES 基元的所有相关时序模型。表 8-10 所示为 《Virtex-5 数据手册》中 OSERDES 开关特性的功能和控制信号。

时序特性

图 8-14 所示为 2:1 SDR 数据串行化的时序。时序参数名称和行为不随总线宽度不同而改变,包括两个 OSERDES 级联时。除了 OQ 在每个 CLK 沿 (上升和下降)上切换外,同样的示例也适用于 DDR 模式。

表 8-10: OSERDES 开关特性

符号 描述

建立 / 保持

TOSDCK_D/TOSCKD_D 相对于 CLKDIV 的 D 输入建立 / 保持

TOSDCK_T/TOSCKD_T 相对于 CLK 的 T 输入建立 / 保持

TOSDCK_T/TOSCKD_T 相对于 CLKDIV 的 T 输入建立 / 保持

TOSCCK_OCE/TOSCKC_OCE 相对于 CLK 的 OCE 输入建立 / 保持

TOSCCK_TCE/TOSCKC_TCE 相对于 CLK 的 TCE 输入建立 / 保持

时序延迟

TOSCKO_OQ 从 CLK 到 OQ 的时钟到输出

TOSCKO_TQ 从 CLK 到 TQ 的时钟到输出

组合

TOSCO_OQ 对 OQ 的异步复位

TOSCO_TQ 对 TQ 的异步复位

图 8-14: OSERDES 的 2:1 SDR 数据串行化时序图

ug190_8_13_041206

CLK

OCE

TOSCCK_OCE

TOSCKO_OQ

1 32

OQ

SR

TOSCO_OQ

CLKDIV

TOSDCK_D

D1 - D2

Virtex-5 用户指南 www.xilinx.com/cn 367UG190 (v3.1) 2007 年 9 月 11 日

输出并串转换逻辑资源 (OSERDES)R

时钟事件 1

• 在时钟事件 1 (CLK) 之前的时间 TOSCCK_OCE 处,输出时钟使能引脚在 OSERDES 的 OCE 输入上变为高有效,允许输出寄存器向 OQ 输出传送数据。

时钟事件 2

• 在时钟事件 2 (CLKDIV) 之前的时间 TOSDCK_D 处,数据在 D1 和 D2 输入上变为有效。

• 在时钟事件 2 (CLK) 之后的时间 TOSCKO_OQ 处,数据出现在 OQ 输出上。

时钟事件 3

• 在时钟事件 3 处,复位信号置为高有效 (异步复位)。

• 在时钟事件 3 之后的时间 TOSCO_OQ 处,OQ 输出被异步复位到零。

图 8-15 和图 8-16 中的时序图所示为 OSERDES 数据 I/O 端口及其与 CLK 和 CLKDIV 的关系。

图 8-15: SDR 6:1 OSERDES 操作示例

图 8-16: DDR 6:1 OSERDES 操作示例

ug190_8_14_041206

D6A

D1A

D6B

D1B

D6C

D4BD3BD2BD1BD6AD5AD4AD3AD2AD1A---

D1C

CLK

CLKDV

D1

D6

OQ

ug190_8_15_041206

1A 1B

2C1C6B5B4B3B2B1B6A5A4A3A2A1A ------

1C 1D 1E

6A 6B 6C 6D 6E

CLK

CLKDV

D1

D6

OQ

368 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

第 8 章: 高级 SelectIO 逻辑资源R

图 8-17 所示为 2:1 SDR 三态控制串行化的时序。时序参数名称和行为不随总线宽度不同而改变,包括两个 OSERDES 级联时。除了 OQ 在每个 CLK 沿 (上升和下降)上切换外,同样的示例也适用于 DDR 模式。

时钟事件 1

• 在时钟事件 1 (CLK) 之前的时间 TOSCCK_TCE 处,输出时钟使能引脚在 OSERDES 的 TCE 输入上变为高有效,允许输出寄存器向 TQ 输出传送数据。

时钟事件 2

• 在时钟事件 2 (CLKDIV) 之前的时间 TOSDCK_T 处,数据在 T1 和 T2 输入上变为有效。

• 在时钟事件 2 (CLK) 之后的时间 TOSCKO_TQ 处,数据出现在 TQ 输出上。

时钟事件 3

• 在时钟事件 3 的时间处,复位信号置为高有效 (异步复位)。

• 在时钟事件 3 之后的时间 TOSCO_TQ 处,TQ 输出被异步复位到零。

OSERDES 的 VHDL 和 Verilog 实例模板《库指南》包括 OSERDES 模块的 VHDL 和 Verilog 实例模板。

图 8-17: OSERDES 的 2:1 SDR 三态控制串行化时序图

ug190_8_16_041206

CLK

TCE

TOSCCK_TCE

TOSCKO_TQ TOSCO_TQ

1 32

TQ

SR

CLKDIV

TOSDCK_T

T1 - T2

Virtex-5 用户指南 www.xilinx.com/cn 369UG190 (v3.1) 2007 年 9 月 11 日

Aasynchronous 异步

clocking 时钟控制 113distributed RAM 分布式 RAM 175global set/reset 全局设置 / 复位 122mux 多路器 30set/reset in register or latch 寄存器或

锁存器中的设置 / 复位 173

BBitslip 356

guidelines for use 使用指导原则 357operation 操作 356See ISERDES 见 ISERDES 347timing 时序 357

block RAM

asynchronous clocking 异步时钟控制 113

defined 定义 109ECC 153

Primitive 基元 156ECC Port ECC 端口 157operating modes 操作模式

NO_CHANGE 112READ_FIRST 112WRITE_FIRST 112

ports 端口 119synchronous clocking 同步时钟控制

113BLVDS 289BUFG 25BUFGCE 26BUFGCTRL 22BUFGMUX 27BUFGMUX_VIRTEX4 28

with CE 带 CE 31BUFIO 34BUFR 36

CCLB 167

array size by device 按器件列出的阵列尺寸 171

distributed RAM 分布式 RAM 174maximum distributed RAM 大分布

式 RAM 171number of flip-flops 触发器数 171number of LUTs by device 按器件列

出的 LUT 数 171number of shift registers 移位寄存器

数 171register/latch configuration 寄存器 /

锁存器配置 173slice description Slice 描述 168SLICEL 168SLICEM 168

CLK2X 48CLKDV 48CLKFB 45CLKFX 48clock capable I/O 33clock forwarding 随路时钟 340clock regions 时钟区域 33clock tree 时钟树 32clocking wizard 时钟控制向导 76clocks 时钟

global clock buffers 全局时钟缓冲器 20, 21

I/O clock buffer I/O 时钟缓冲器 34regional clock buffers 区域时钟缓冲

器 33, 36regions 区域 32resources 资源 23

CMT 41allocation in device 器件中的分配 42

combinatorial input path 组合输入通路 311

configuration 配置

DCM 58

DDCI 214

defined 定义 214DCLK 46DCM 42

allocation in device 器件中的分配 42attributes 属性 51, 54clock deskew 时钟去歪斜 42, 56clocking wizard 时钟控制向导 76configuration 配置 58DCM_ADV 44DCM_BASE 44design guidelines 设计指南 56deskew 去歪斜 60dynamic reconfiguration 动态重配置

43, 65frequency synthesis 频率合成 42,

60output ports 输出端口 47phase shifting 相移 43, 61, 78ports 端口 44timing models 时序模型 77

DDR

IDDR 311delay element 延迟单元

See IDELAY 见 IDELAY 317differential termination 差分终端 287

DIFF_TERM 231, 287Differential 差分 243

HSTL Class II (1.8V) HSTL II 类 (1.8V) 257, 260

HSTL Class II HSTL II 类 249LVPECL 290SSTL Class II (1.8V) SSTL II 类 (1.8V)

279, 284SSTL2 Class II (2.5V) SSTL2 II 类

(2.5V) 270, 274

EError Correction Code (ECC) 纠错码

(ECC) 153

索引

370 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

R

FFIFO 134

attributes 属性 142cascading 级联 152FWFT mode FWFT 模式 139operating modes 操作模式 139ports 端口 138primitive 基元 137standard mode 标准模式 139status flags 状态标志 140timing parameters 时序参数 144

GGCLK 32global clocks 全局时钟

clock buffers 时钟缓冲器 19, 20clock I/O inputs 时钟 I/O 输入 20

GSR

defined 定义 122GTL 241

defined 定义 241GTL_DCI 241GTLP 242GTLP_DCI 242

HHSTL 243

class I (1.8V) I 类 (1.8V) 256, 267class I I 类 245class II (1.8V) II 类 (1.8V) 258class II II 类 247class III (1.8V) III 类 (1.8V) 263class III III 类 252class IV (1.8V) IV 类 (1.8V) 264class IV IV 类 253CSE differential HSTL class II CSE 差

分 HSTL II 类 258defined 定义 243Differential HSTL class II 差分 HSTL

II 类 257, 260differential HSTL class II 差分 HSTL II

类 249HyperTransport

HT 289

II/O standards

bank rules 组规则 291I/O standards I/O 标准 212

compatibility 兼容性 292differential I/O 差分 I/O 212single-ended I/O 单端 I/O 212

I/O tile I/O 模块 211ILOGIC 211IOB 211OLOGIC 211

IBUF 227PULLUP/PULLDOWN/KEEPER 231

IBUFDS 228IBUFG 20, 227IBUFGDS 20, 228IDDR 311

OPPOSITE_EDGE mode OPPOSITE_EDGE 模式 311

ports 端口 313primitive 基元 313SAME_EDGE mode SAME_EDGE 模

式 312SAME_EDGE_PIPELINED mode

SAME_EDGE_PIPELINED 模式 312

IDELAY 317attributes 属性 321defined 定义 317delay mode 延迟模式

fixed 固定 317variable 可变 317zero-hold time 零保持时间 317

IDELAYCTRL 330increment/decrement 递增 / 递减

321primitive 基元 319switching characteristics 开关特性

323timing 时序 323

IDELAYCTRL 330instantiating 例化 333, 335

RDY port RDY 端口 334location 位置 332primitive 基元 331REFCLK 330, 337

ILOGIC 211, 310IDDR 311SR 310switching characteristics 开关特性

317timing 时序 314

IOB 211

defined 定义 212IOBUF 228

PULLUP/PULLDOWN/KEEPER 231IOBUFDS 229IODELAY 317

DATAIN 320DATAOUT 320IDATAIN 319ODATAIN 320ports 端口 319

ISERDES 347attributes 属性 350bitslip 347, 349, 356

BITSLIP_ENABLE attribute BITSLIP_ENABLE 属性 351

defined 定义 347IDELAY

IDELAYCTRL 330ports 端口 349, 361primitive 基元 348SDR 354serial-to-parallel converter 串并转

换器 347, 352switching characteristics 开关特性

353timing models 时序模型 353width expansion 宽度扩展 352

LLDT

See HyperTransport 见 HyperTransport 289

LVCMOS 234defined 定义 234

LVDCI 236defined 定义 236LVDCI_DV2 237source termination 源终端 296

LVDS 287defined 定义 287LVDS_25_DCI 288

LVPECL 290defined 定义 290

LVTTL 232defined 定义 232

Mmultirate 多速率

FIFO 109, 134

Virtex-5 用户指南 www.xilinx.com/cn 371UG190 (v3.1) 2007 年 9 月 11 日

R

NNO_CHANGE mode NO_CHANGE 模式

112

OOBUF 227OBUFDS 229OBUFT 228

PULLUP/PULLDOWN/KEEPER 231OBUFTDS 229ODDR 339

clock forwarding 时钟随路 340OPPOSITE_EDGE mode

OPPOSITE_EDGE 模式 339ports 端口 340primitive 基元 340SAME_EDGE mode SAME_EDGE 模

式 339OLOGIC 211, 338

timing 时序 341OSERDES 359

parallel-to-serial converter 并串转换器 359

timing 时序 366

Pparallel-to-serial converter 并串转换器

359DDR 359SDR 359

PCI 240PFDM 305PLL

allocation in device 器件中的分配 42PSCLK 46

RREAD_FIRST mode READ_FIRST 模式

112REFCLK 331, 337regional clock buffers 区域时钟缓冲器

19, 33regional clocks 区域时钟

clock buffers 时钟缓冲器 36clock nets 时钟网 39

REV 310RSDS 289

SSelectIO

IBUF 227IBUFDS 228IBUFG 227IBUFGDS 228IOBUF 228IOBUFDS 229OBUF 227OBUFDS 229OBUFT 228OBUFTDS 229

Simultaneous Switching Output (SSO) 同步开关输出 (SSO) 298

Slew Rate 斜率

SLEW 230SRHIGH 172SRLOW 172SSTL 267

Differential SSTL Class II (1.8V) 差分 SSTL II 类 (1.8V) 279, 284

Differential SSTL2 Class II (2.5V) 差分 SSTL2 II 类 (2.5V) 270, 274

SSTL18 Class I (1.8V) SSTL18 I 类 (1.8V) 278

SSTL18 Class II (1.8V) SSTL18 II 类 (1.8V) 281

SSTL2 Class I (2.5V) SSTL2 I 类 (2.5V) 269

SSTL2 Class II (2.5V) SSTL2 II 类 (2.5V) 272

WWRITE_FIRST mode WRITE_FIRST 模式

112

372 www.xilinx.com/cn Virtex-5 用户指南UG190 (v3.1) 2007 年 9 月 11 日

R

Recommended