LatticeECP3 sysIO 使用指南 2012 年 6 月 技术说明 TN1177 引言 LatticeECP3™ sysIO™ 缓冲器让设计人员能够方便地使用先进的系统 I/O 标准与其他器件接口。本技术说明阐述了 现行的 sysIO 标准以及如何使用莱迪思的 ispLEVER® 设计软件来进行实现。 sysIO 缓冲器概述 LatticeECP3 sysIO 接口包含多个可编程 I/O 单元 (PIC)块。每个 PIC 块包含两个可编程 I/O (PIO), PIOA 和 PIOB,分别连接到各自的 sysIO 缓冲器。可以将两个相邻的 PIO 用作差分 I/O 对 (标为 “T” 和 “C”)。 每个 PIO 包括一个 sysIO 缓冲器和 I/O 逻辑 (IOLOGIC)。 LatticeECP3 sysIO 缓冲器支持各种单端和差分信号标 准。sysIO 缓冲器还支持与 DDR 存储器接口所需的 DQS 选通脉冲信号。LatticeECP3 中每 12 个 PIO 中有一个包含 了一个用以产生 DQS 信号的延迟单元。总线上的 DQS 信号是用来选通从存储器到输入寄存器块的 DDR 数据。欲 了解更多关于 sysIO 缓冲器架构的信息,请参阅 LatticeECP3 系列数据手册。 IOLOGIC 包括输入、输出和三态寄存器,与必要的时钟和数据选择逻辑一起实现单倍数据速率 (SDR)和双倍数据 速率 (DDR)应用。 IOLOGIC 内的可编程延时线和专用逻辑是用来提供输入时钟和数据信号以及 DDR 存储器中 DQS 输入所需的相位移位。有关 IOLOGIC 中的 DDR 实现和 DDR 存储器接口支持的详细讨论请参见 TN1180, LatticeECP3 高速 I/O 接口。 sysIO 标准支持 LatticeECP3 sysIO 缓冲器支持单端和差分标准。单端标准可进一步细分为内部比例电平标准 (internally ratioed standard),例如 LVCMOS、LVTTL 和 PCI,以及外部参考电平标准(externally referenced standard),例如 HSTL 和 SSTL。缓冲器支持 LVTTL、LVCMOS 1.2,1.5,1.8,2.5 和 3.3V 标准。在 LVCMOS 和 LVTTL 模式下,缓冲器 有用于驱动电流强度、总线维持 (弱上拉、弱下拉或总线保持锁存)的独立配置选项。其他支持的单端标准还包括 SSTL 和 HSTL。支持的差分标准包括 LVDS、RSDS、BLVDS、LVPECL、差分 SSTL 和差分 HSTL。 LatticeECP3 也支持 mini-LVDS、PPLVDS(点到点 LVDS)和 TRLVDS(Transition Reduced LVDS)。表 1 列出了 LatticeECP3 器件支持的 sysIO 标准。 Lattice Semiconductor Corp.2012 版权所有 © 所有莱迪思的商标、注册商标、图案和标识符均在 www.latticesemi.com/legal 网站上列出。所有其它品牌或产品名称均 为其所有者的商标或注册商标。此处的参数规格和信息可能会更改,恕不另行通知。中文翻译文档仅为您提供方便。莱迪思将尽力为您提供准确的中文翻译文档,但 鉴于翻译的难度,译文可能会与英文文档存在一些微小差别,其准确性也难以保证。请参考英文源文件,获取最新、最准确的信息。所有的翻译文档中的信息均以英 文源文件为准。 www.latticesemi.com 1 tn1177_02.0-C LatticeECP3 sysIO 使用指南 表 1. 支持的输入标准 VREF (标称值) VCCIO (标称值) LVTTL — 3.3 LVCMOS33 — 3.31 LVCMOS25 — 2.51 LVCMOS18 — 1.8 LVCMOS15 — 1.5 LVCMOS12 — — 输入标准 单端接口 PCI33 — — HSTL18 Class I, II 0.9 — HSTL15 Class I 0.75 — SSTL33 Class I, II 1.5 3.3, 2.5 SSTL25 Class I, II 1.25 3.3, 2.5, 1.8 SSTL18 Class I, II 0.9 — SSTL15 0.75 — 差分 SSTL33 Class I, II — 3.3, 2.5 差分 SSTL18 Class I, II 参见注 2 — 差分 SSTL25 Class I, II — 3.3, 2.5, 1.8 差分 HSTL15 Class I — — 差分 HSTL18 Class I, II — — 差分接口 差分 SSTL 15 LVDS 参见注 2 — — — Transition Reduced LVDS — 3.3 LVPECL — 3.3 总线 LVDS — — MLVDS — — 1. 如果 PCICLAMP 为 OFF,LVTTL33、LVCMOS33 和 LVCMOS25 可在器件上侧的 bank 中独立于 VCCIO 使用。 2. 使用差分 SSTL 接口到 DDR 存储器时, VREF 是必需的。 2 LatticeECP3 sysIO 使用指南 表 2. 支持的输出标准 输出标准 VCCIO (标称值) 驱动 单端接口 LVTTL 4mA, 8mA, 12mA, 16mA, 20mA 3.3 LVCMOS33 4mA, 8mA, 12mA, 16mA, 20mA 3.3 LVCMOS25 4mA, 8mA, 12mA, 16mA, 20mA 2.5 3 LVCMOS18 4mA, 8mA, 12mA, 16mA, 20mA LVCMOS15 4mA, 8mA, 12mA3, 16mA3, 20mA3 3 3 3 1.8 1.5 3 3 LVCMOS12 2mA, 4mA , 6mA, 8mA , 12mA , 16mA , 20mA PCI33 N/A 3.3 HSTL18 Class I 8mA, 12mA 1.8 HSTL18 Class II N/A 1.8 HSTL15 Class I 4mA, 8mA 1.5 SSTL33 Class I, II N/A 3.3 SSTL25 Class I 8mA, 12mA 2.5 SSTL25 Class II 16mA, 20mA 2.5 1.2 SSTL18 Class I N/A 1.8 SSTL18 Class II 8mA, 12mA 1.8 SSTL15 10mA 1.5 差分 HSTL18 Class I 8mA, 12mA 1.8 差分 HSTL18 Class II N/A 1.8 差分 HSTL15 Class I 4mA, 8mA 1.5 差分 SSTL33 Class I, II N/A 3.3 差分 SSTL25 Class I 8mA, 12mA 2.5 差分 SSTL25 Class II 16mA, 20mA 2.5 差分接口 差分 SSTL18 Class I N/A 1.8 差分 SSTL18 Class II 8mA, 12mA 1.8 差分 SSTL15 10mA 1.5 LVDS N/A 2.5 点到点 LVDS (PPLVDS) N/A 2.5, 3.3 RSDS, RSDSE2 N/A 2.5 Mini-LVDS 1 N/A 2.5 MLVDS2 N/A 2.5 2 BLVDS N/A 2.5 LVPECL2 N/A 3.3 1. 使用 DiffDrive 和 MultDrive 的多驱动支持。 2. 使用 LVCMOS 驱动器和外部电阻进行仿真。 3. 该驱动强度仅当输出配置为漏极开路时可用。 sysIO Bank 机制 LatticeECP3 器件有 6 个通用可编程 sysIO bank 和第七个配置 bank。 6 个通用 sysIO bank 中的每一个都有一个 VCCIO 供电电压和两个参考电压, VREF1 和 VREF2。图 1 展示了 6 个通用 bank 和配置 bank 及其相关的电源。 Bank 8 是专用于配置逻辑的 bank,并有 7 个专用配置 I/O 和 14 个多路复用配置 I/O。Bank 8 有电源焊盘(VCCIO 和 VCCAUX),但没有独立的 VREF 焊盘。 Bank 8 中的 I/O 是连接到 Bank 3 的 VREF。 3 LatticeECP3 sysIO 使用指南 在器件的上侧和下侧的 bank 中,sysIO 缓冲器对包括 2 个单端输出驱动器和 2 组单端输入缓冲器(比例电平和参考 电平)。左侧和右侧的 sysIO 缓冲器对包括 2 个单端输出驱动器和 2 组单端输入缓冲器(比例电平和参考电平)。参 考输入缓冲器也可以配置为差分输入。在 50%的缓冲器对中有一个差分输出驱动器。两个配对的焊盘被称为 “true” 和 “comp”, “true” 连到差分输入缓冲器的正极, “comp” 连到差分输入缓冲器的负极。 图 1. sysIO Banking TOP JTAG BANK7 BANK6 BANK3 GND SERDES Wrap from Left VCCIO8 GND VCCIO2 VREF1(2) VREF2(2) GND RIGHT BANK2 LEFT BANK8 BANK1 GND VREF2(1) VCCIO1 BANK0 VREF1(1) VREF2(6) GND VCCIO6 VREF1(6) VREF2(0) VCCIO7 VREF1(7) VREF2(7) GND VREF1(0) VCCIO0 VCCJ VCCIO3 VREF1(3) VREF2(3) GND Wrap from Right BOTTOM VCCIO (1.2V/1.5V/1.8V/2.5V/3.3V) 一共有 6 个 VCCIO 电源, VCCIO0 - VCCIO8。每个 bank 有一个独立的 VCCIO 电源为单端输出驱动器和比例电平输入 缓冲器 LVTTL、 LVCMOS 和 PCI 供电。 LVTTL、 LVCMOS3.3、LVCMOS2.5 和 LVCMOS1.2 输入还有固定阈值选 项,可用于任意 bank。表 4 和表 6 列出了给定 bank 所允许的混合电压支持。加到 bank 上的 VCCIO 电压决定了该 bank 所支持的比例电平输入标准。 VCCIO 电压还被用于对差分输出驱动进行供电。此外, VCCIO8 用于对 sysCONFIG™ 信号进行供电。 4 LatticeECP3 sysIO 使用指南 VCCAUX (3.3V) 除了 bank 上的 VCCIO 电源,LatticeECP3 器件还有一个 VCC 内核逻辑电源和一个 VCCAUX 辅助电源,VCCAUX 为差 分和参考输入缓冲器供电。VCCAUX 用于提供 I/O 参考电压所需要的 3.3V,以满足驱动器和输入缓冲器的共模工作电 压范围。 VCCJ (1.2V/1.5V/1.8V/2.5V/3.3V) JTAG 引脚有一个独立于 bank 内 VCCIO 电源的 VCCJ 电源。 VCCJ 决定了 LVCMOS JTAG 引脚的电气特性,包括输 出高电平和输入阈值。 表 3 为所需电源的总结列表。 表 3. 电源 电源 值1 说明 VCC 核电源 1.2V VCCIO I/O 和配置 bank 的电源 1.2V/1.5V/1.8V/2.5V/3.3V VCCAUX 辅助电源 3.3V VCCJ JTAG 引脚的电源 1.2V/1.5V/1.8V/2.5V/3.3V 1. 关于建议使用的最小和最大值,请参见 LatticeECP3 系列数据手册。 输入参考电压 (VREF1, VREF2) 每个 bank 最多可支持两个独立的 VREF 输入电压, VREF1 和 VREF2,用于设置参考输入缓冲器的阈值。这些 VREF 引脚在 bank 内的位置是预先确定的。如果 bank 不需要 VREF 电压,这些引脚还可以用作普通的 I/O。 VREF1 用于 DDR 存储器接口 当连接到 DDR 存储器时,VREF1 输入必须被用作来自存储器的 DQS 和 DQ 输入的参考电压。VREF1 和地之间使用 一个分压器来产生一个片上参考电压,用于 DQS 变化检测电路。这个分压器仅用于 VREF1,而不能用于 VREF2。有 关 DQS 变化检测逻辑及其实现的进一步信息,请参见 TN1180, LatticeECP3 高速 I/O 接口。当不用作 VREF 时, 这些预定义的参考电压引脚还可以用作用户 I/O 引脚。 对于 DDR1 存储器接口, VREF1 应连到 1.25V,因为只允许使用 SSTL25 信号。对于 DDR2 存储器接口, VREF1 应连接到 0.9V,因为只允许使用 SSTL18 信号。对于 DDR3 存储器接口, VREF1 应连接 0.75V,因为只允许使用 SSTL15 信号。 VTT 终端电压 LatticeECP3 器件上的 VTT 终端电压用于参考标准终端和共模差分终端。这些终端电压引脚仅在器件的左右两侧提 供。可选择是否使用 VTT,如果不需要端接到 VTT,那么这些引脚应悬空。 VTT 允许的范围为 0.5V 至 1.25V,与 VCCIO 值无关。用户决定加到 VTT 上最佳的终端电压。许多应用会选择 VTT 的标称值等于所使用的接口标准的开 关阈值,容差为 +/- 5% (这通常是驱动器电源电压的一半)。 VTT 终端匹配可以是动态的 (当双向引脚的输出缓冲 器为三态时使能)或静态 (总是处于 ON 状态)。 热插拔支持 器件上、下侧的 I/O 都具有热插拔功能 。器件上侧的 I/O 同时支持热插拔、在一个 bank 内的混合电压,并有支持 PCI 的可编程钳位二极管。器件的左右两侧 I/O 不支持热插拔。请参见 LatticeECP3 系列数据手册,了解有关热插拔 (IDK)的要求。 5 LatticeECP3 sysIO 使用指南 一个 Bank 内的混合电压支持 LatticeECP3 sysIO 缓冲器连到三个并行的比例电平输入缓冲器。这三个并行的缓冲器连接到 VCCIO、 VCCAUX 和 VCC,支持追踪 VCCIO 的阈值以及 3.3V (VCCAUX)和 1.2V (Vcc)输入的固定阈值。这使得比例电平缓冲器的输 入阈值可按每个引脚来设置,而不只是追踪 VCCIO 电压。该选项可用于所有 1.2V、 2.5V 和 3.3V 比例电平输入并且 当 PCICLAMP 为 OFF 时,独立于器件上侧 bank 的 VCCIO 电压。在左、右侧 bank,始终使能 PCICLAMP,当 VINPUT 高于 VCCIO 时限制电流。因此,当 VINPUT 低于 VCCIO,只有 1.2V 输入和 2.5V 输入可独立于 VCCIO。例如,如果 bank 的 VCCIO 为 1.8V 且 PCICLAMP 为 OFF,可以在器件上侧 bank 实现固定阈值的 1.2V 和 3.3V 比例电平输入缓 冲器,以及追踪阈值的 2.5V 比例电平输入。对于左、右侧 bank,当 VCCIO 为 1.8V 时,仅能实现固定阈值的 1.2V 比例电平输入缓冲器。但如果 VCCIO 在左侧,右侧为 3.3V,则可实现固定阈值的 1.2V 输入和追踪阈值的 2.5V 输入。 在器件配置之前,比例电平输入阈值追踪 bank 的 VCCIO。这个选项只需要配置即可生效。 bank 内的输出标准总是 由 VCCIO 设置,但可以驱动更低的输出标准至另一器件,只要该器件的输入容限达到 VCCIO。表 4 和 5 显示了可以 在同一个 bank 内混合的 sysIO 标准。 表 4. 器件上侧 Bank 内的混合电压支持 输入 sysIO 标准 1, 2, 3, 4, 5 1.5V 1.8V VCCIO 1.2V 1.2V 是 1.5V 是 1.8V 是 是 是 2.5V 是 是 是 3.3V 是 是 是 是 是 2.5V 输出 sysIO 标准 6 3.3V 1.2V 是 是 是 是 是 1.5V 1.8V 2.5V 3.3V 是 是 是 是 1. 器件上侧 bank 的混合电压输入支持仅当 PCICLAMP 为 OFF 时可用。 2. 除了 LVPECL33 和 TRLVDS, bank 内支持所有差分输入缓冲器,与 VCCIO 无关。 3. 对于任意 VCCIO, bank 支持 1.5V 和 1.8V HSTL 以及 SSTL 参考输入。 4. 当 VCCIO 设为 1.8V、 2.5V 或 3.3V 时, bank 支持 2.5V SSTL 参考输入。 5. 当 VCCIO 设为 2.5V 或 3.3V 时, bank 支持 3.3V SSTL 参考输入。 6. 当输出配置为开漏时, bank 使用的输出与 VCCIO 无关。 表 5. 左侧和右侧 Bank 的混合电压支持 输入 sysIO 标准 1, 2, 3, 4 VCCIO 1.2V 1.2V 是 1.5V 1.8V 2.5V 1.5V 是 1.8V 是 2.5V 是 是 3.3V 是 是 输出 sysIO 标准 5 3.3V 1.2V 1.5V 1.8V 2.5V 3.3V 是 是 是 是 是 是 是 是 1. 当 VCCIO 设为 2.5V 或 3.3V 时,bank 支持所有差分输入缓冲器,除了 LVPECL33 和 TRLVDS。LVPECL33 和 TRLVDS 需要 3.3V VCCIO。如果 VCCIO 设为 1.8V 或 1.5V,这将降低 VCM (max) 和 VIN (max) 到 1.7V 左右,当 bank 上的 VINPUT > VCCIO,这一侧的 PCICLAMP 一直为使能 状态。 2. 对于任意 VCCIO, bank 支持 1.5V 和 1.8V HSTL 以及 SSTL 参考输入。 3. 当 VCCIO 设为 1.8V、 2.5V 或 3.3V 时, bank 支持 2.5V SSTL 参考输入。 4. 当 VCCIO 设为 2.5V 或 3.3V 时, bank 支持 3.3V SSTL 参考输入。 5. 当输出配置为开漏时, bank 使用的输出与 VCCIO 无关。 6 LatticeECP3 sysIO 使用指南 每个 Bank 支持的 sysIO 标准 表 6. 每个 Bank 支持的 I/O 标准 说明 上侧 右侧 下侧 左侧 I/O 缓冲器的类型 单端 单端和差分 单端 单端和差分 单端标准输出 LVTTL LVCMOS33 LVCMOS25 LVCMOS18 LVCMOS15 LVCMOS12 SSTL15 SSTL18 Class I, II SSTL25 Class I, II SSTL33 Class I, II HSTL15 Class I HSTL18_I, II LVTTL LVCMOS33 LVCMOS25 LVCMOS18 LVCMOS15 LVCMOS12 SSTL15 SSTL18 Class I, II SSTL25 Class I, II SSTL33 Class I, II HSTL15 Class I HSTL18 Class I, II LVTTL LVCMOS33 LVCMOS25 LVCMOS18 LVCMOS15 LVCMOS12 SSTL15 SSTL18 Class I, II SSTL2 Class I, II SSTL3 Class I, II HSTL15 Class I HSTL18 Class I, II LVTTL LVCMOS33 LVCMOS25 LVCMOS18 LVCMOS15 LVCMOS12 SSTL15 SSTL18 Class I, II SSTL2 Class I, II SSTL3 Class I, II HSTL15 Class I HSTL18 Class I, II 差分标准输出 LVCMOS33D LVCMOS33D LVCMOS33D LVCMOS33D SSTL15D SSTL18D Class I, II SSTL25D Class I, II SSTL33D Class I, II HSTL15D Class I HSTL18D Class I, II SSTL15D SSTL18D Class I, II SSTL25D Class I, II SSTL33D Class I, II HSTL15D Class I HSTL18D Class I, II SSTL15D SSTL18D Class I, II SSTL25D Class I, II, SSTL33D Class I, II HSTL15D Class I HSTL18D Class I, II SSTL15D SSTL18D Class I, II SSTL25D Class I, II, SSTL33D_I, II HSTL15D Class I HSTL18D Class I, II LVDS25E1 LVPECL1 BLVDS1 RSDSE1 LVDS2, 3 RSDS2 Mini-LVDS2 PPLVDS2 (点到点) LVDS25E1 LVPECL1 BLVDS1 RSDSE1 LVDS25E1 LVPECL1 BLVDS1 RSDSE1 LVDS2 RSDS2 Mini-LVDS2 PPLVDS2 (点到点) LVDS25E1 LVPECL1 BLVDS1 RSDSE1 输入 所有的单端,差分 TRLVDS (Transition Reduced LVDS) 所有的单端,差分 所有的单端,差分 所有的单端,差分 时钟输入 所有的单端,差分 所有的单端,差分 所有的单端,差分 所有的单端,差分 热插拔 是 否 是 否 输入均衡 否 是 否 是 ISI 校正 用于 DDR3 存储器 用于 DDR3 存储器 用于 DDR3 存储器 用于 DDR3 存储器 片上终端匹配电阻 否 片上并行终端匹配电阻 否 片上并行终端匹配电阻 PCI 支持 PCI33,带有或不带钳 位电路 片上差分终端匹配电阻 PCI33,带有钳位电路 片上差分终端匹配电阻 PCI33,带有钳位电路 PCI33,带有钳位电路 1. 这些差分标准通过使用带有外部电阻组合的互补 LVCMOS 驱动器来实现。 2. 在 bank 内 50% 的 I/O 可用。 3. Bank 8 的 I/O 和 sysCONFIG 引脚共用,不支持真 LVDS 和 DDR 寄存器。 7 LatticeECP3 sysIO 使用指南 sysIO 缓冲器配置 这个部分阐述了 LatticeECP3 FPGA 上可用的各种 sysIO 特性。 总线维持电路 输入类型 LVCMOS、LVTTL 和 PCI 都有弱上拉、弱下拉和弱总线保持功能。上拉和下拉设置提供了固定的特性,有 助于实现布线逻辑,如:线或逻辑。但是,根据信号状态,电流要比其他选项下的稍大。总线保持选项锁存了最后 一次驱动状态下的信号值,在最小的功耗的状态下以有效电平保持该信号。您还可以选择关闭总线保持电路,使功 耗和输入漏电流最小化。请注意,在这种情况下,确保输入驱动为已知状态以避免输入缓冲器的不必要的功耗是很 重要的。 在输出端,弱上拉一直打开。用户可以在软件中选择关闭上拉设置。 可编程驱动 每个 LVCMOS 或 LVTTL 以及一些参考(SSTL 和 HSTL)输出缓冲器都具有一个可编程驱动强度选项。该选项可针 对每个 I/O 单独配置。驱动强度可设置为 2mA、4mA、6mA、8mA、12mA、16mA 和 20mA。实际选项根据不同的 I/O 电压而不同。用户在选择驱动电流强度时,必须考虑每个 bank 最大允许的电流以及封装的热极限电流。表 7 显 示了每个输出标准可选的驱动设置。 表 7. 单端缓冲器的可编程驱动值 单端 I/O 标准 可编程驱动电流 (mA) HSTL15_I/ HSTL15D_I 4, 8 HSTL18_I/ HSTL18D_I 8, 12 SSTL25_I/ SSTL25D_I 8, 12 SSTL25_II/ SSTL25D_II 16, 20 SSTL18_II/SSTL18D_II 8, 12 LVCMOS12 (PCI Clamp OFF) 4, 8, 12, 16, 20 LVCMOS12 (PCI Clamp ON) 2, 6 LVCMOS15 (PCI Clamp OFF) 4, 8, 12, 16, 20 LVCMOS15 (PCI Clamp ON) 4, 8 LVCMOS18 (PCI Clamp OFF) 4, 8, 12, 16, 20 LVCMOS18 (PCI Clamp ON) 4, 8, 12, 16 LVCMOS25 4, 8, 12, 16, 20 LVCMOS33 4, 8, 12, 16, 20 LVTTL 4, 8, 12, 16, 20 可编程摆率 每个 LVCMOS 或 LVTTL 输出缓冲引脚还有一个可编程输出摆率控制,可配置为低噪声或高速性能。每个 I/O 引脚 有其单独的摆率控制。这使得设计者可以分别控制每个引脚的摆率。这个摆率控制影响上升和下降边沿。 开漏控制 所有的 LVCMOS 和 LVTTL 输出缓冲器可配置用作开漏输出。用户可通过在软件将 OPENDRAIN 属性设为 ON 来实 现开漏输出。 8 LatticeECP3 sysIO 使用指南 差分 SSTL 和 HSTL 支持 单端驱动器的互补极 “C” 可以选择由驱动单端驱动器 “true” 极的互补信号来驱动。这使得单端驱动器对能以信号间可 能的最小相偏来驱动互补输出。这是用于驱动互补的 SSTL 和 HSTL 信号 (这是同步 DRAM 和同步 SRAM 器件的 差分 SSTL 和 HSTL 时钟输入分别所需的)。此功能还可以结合片外电阻来仿真 LVPECL 和 BLVDS 输出驱动器。 使用可编程 PCICLAMP 的 PCI 支持 每个 sysIO 缓冲器可以配置用于支持 PCI33。器件上侧的缓冲器有一个可选的支持 PCI 的钳位二极管,可以选择在 ispLEVER 设计工具中进行设置。可编程 PCICLAMP 可以打开或关闭。该选项仅可针对器件上侧 bank 内的每个 I/O 单独进行设置。 在器件的其他三侧上, PCICLAMP 总是设为 ON。 差分 I/O 支持 左右两侧中 50% 的 sysIO 缓冲器对包含一个差分输出驱动器,可选择用于驱动缓冲器对。支持这些差分输出对的标 准如下: • LVDS • 点到点 LVDS (PPLVDS) • Mini-LVDS • RSDS 器件上各侧的所有其他引脚都通过使用带有外部电阻的互补 LVCMOS 驱动器支持仿真差分标准 (Emulated Differential standard)。差分输出对支持的标准如下: • BLVDS • LVDS25E • RSDSE • LVPECL LatticeECP3 系列数据手册列出了实现这些仿真的标准所需的 LVCMOS 驱动器和外部电阻。数据手册还列出了支持 所有差分标准的电气规范。 差分 SSTL 和 HSTL 所有的单端 sysIO 缓冲器对都支持差分 SSTL 和 HSTL。请参见 LatticeECP3 系列数据手册,了解差分 HSTL 和 SSTL 实现的详细说明。 差分 LVCMOS33 所有的单端 sysIO 缓冲器对还支持具有可配置驱动强度和摆率设置的 LVCMOS33D(差分)标准。这个通用的 3.3V 差分缓冲器使用户能根据应用需求,配置驱动强度并计算外部电阻的值,来实现任何类型的 3.3V 差分缓冲器。 GTL+ 输入支持 使用 SSTL15 或者 HSTL15_I 输入标准当 VREF 设为 1.0V 且外部 VTT 终端设为 1.5V 时,支持 GTL+ 输入。使用这 种方式实现的 GTL+ 输入可支持 LatticeECP3 系列数据手册中 SSTL 和 HSTL 标准列出的最高速率。LatticeECP3 器 件不支持 GTL+ 输出。 9 LatticeECP3 sysIO 使用指南 图 2. 使用 HSTL15 输入的 GTL+ 输入缓冲器仿真 VTT = 1.5V z0 + - VREF = 1.0V HSTL15 片上终端匹配 LatticeECP3 器件支持使用 VTT 引脚将片上并行终端匹配电阻或共模差分终端匹配电阻连到 VTT。器件的左右侧有 片上终端匹配电阻。当使用共模差分终端匹配时, VTT 引脚应悬空。双向缓冲器的终端匹配可设为动态,终端匹配 仅当输出缓冲器通过三态控制禁用时有效。实现 DDR2 和 DDR3 存储器接口时,需要使用外部终端匹配电阻连到 VTT。 均衡设置 单端输入的正极和互补极 I/O,以及差分输入的正极 I/O 都具有均衡滤波。需要用均衡来补偿在相对比较缓慢的摆率 下采样交替逻辑变化的困难。这对于 DDR3 存储器使用的输入 DDR 模式和快速 SPI4.2 模式信号来说是很有用的。 器件左右两侧的 bank 提供该功能。 均衡可用作带有校正级别设置的可调谐滤波器。有四种可用的设置:Zero(无)、One、Two 和 Three。均衡逻辑位 于 I/O 缓冲器中。对于 DDR3 存储器,每个 I/O 可以在 DQS-12 组内有其特定的均衡设置。 软件 sysIO 属性 sysIO 属性可以使用 Preference Editor GUI 在 HDL 中指定或直接在 ASCII Preference 文件 (.prf)中指定。本文档 的附录提供了如何使用上面所述的方法来进行属性设置的示例。本章节详细说明了这些属性。 IO_TYPE 这个属性是用来设置一个 I/O 的 sysIO 标准。属性名称中已经嵌入了设置这些 I/O 标准所需的 VCCIO。没有单独的属 性来设置对 VCCIO 的要求。表 8 列出了可用的 I/O 类型。 10 LatticeECP3 sysIO 使用指南 表 8. IO_TYPE 属性值 sysIO 信号标准 IO_TYPE DEFAULT LVCMOS25 LVDS 2.5V LVDS252 点到点 LVDS PPLVDS2 Mini-LVDS MINILVDS2 RSDS RSDS2 Transition Reduced LVDS TRLVDS3 Emulated LVDS 2.5V LVDS25E1 Bus LVDS 2.5V BLVDS251 LVPECL 3.3V LVPECL331 Emulated RSDS RSDSE1 MLVDS MLVDS HSTL18 Class I 和 II HSTL18_I, HTSL18_II 差分 HSTL 18 Class I 和 II HSTL18D_I HSTL18D_II HSTL 15 Class I HSTL15_I 差分 HSTL 15 Class I HSTL15D_I SSTL 33 Class I 和 II SSTL33_I, SSTL33_II 差分 SSTL 33 Class I 和 II SSTL33D_I SSTL3D_II SSTL 25 Class I 和 II SSTL25_I SSTL25_II 差分 SSTL 25 Class I 和 II SSTL25D_I SSTL25D_II SSTL 18 Class I 和 II SSTL18_I SSTL18_II 差分 SSTL 18 Class I 和 II SSTL18D_I SSTL18D_II SSTL 15 SSTL15 LVTTL LVTTL33 3.3V LVCMOS LVCMOS33 3.3V LVCMOS 差分 LVCMOS33D 2.5V LVCMOS LVCMOS25 1.8V LVCMOS LVCMOS18 1.5V LVCMOS LVCMOS15 1.2V LVCMOS LVCMOS12 3.3V PCI PCI33 1. 这些差分标准通过使用互补 LVCMOS 驱动器和外部电阻组合实现。 2. 器件左右侧的 50% 差分对支持。 3. 仅输入支持。仅器件上侧的 bank 可用。 OPENDRAIN LVCMOS 和 LVTTL IO 标准可通过 OPENDRAIN 属性设为开漏配置。当将左右侧 bank 中的 I/O 配置为开漏时,要 求外部上拉电压低于 bank 的 VCCIO。 表 9. 开漏属性值 属性 值 默认值 OPENDRAIN ON, OFF OFF 11 LatticeECP3 sysIO 使用指南 DRIVE DRIVE 属性可用于为有可编程驱动能力的输出标准设置可编程驱动强度。 表 10. DRIVE 设置 输出标准 驱动 (mA) 默认值 (mA) HSTL15_I/ HSTL15D_I 4, 8 8 HSTL18_I/ HSTL18D_I 8, 12 12 SSTL25_I/ SSTL25D_I 8, 12 8 SSTL25_II/ SSTL25D_II 16, 20 16 SSTL18_II/SSTL18D_II 8, 12 12 LVCMOS12 (有 OPENDRAIN) LVCMOS12 (无 OPENDRAIN) 2, 6 6 4, 8, 12, 16, 20 12 LVCMOS15 (有 OPENDRAIN) 4, 8 8 LVCMOS15 (无 OPENDRAIN) 4, 8, 12, 16, 20 12 LVCMOS18 (有 OPENDRAIN) 4, 8, 12, 16 12 LVCMOS18 (无 OPENDRAIN) 4, 8, 12, 16, 20 12 LVCMOS25 4, 8, 12, 16, 20 12 LVCMOS33 4, 8, 12, 16, 20 12 LVTTL 4, 8, 12, 16, 20 12 DIFFDRIVE DIFFDRIVE 是用于当需要调整驱动器设置来支持不同的外部终端匹配电阻时,对 Mini-LVDS 驱动器的差分驱动进行 设置。一个 I/O bank 使用相同 DIFFDRIVE 设置的差分输出。不同 DIFFDRIVE 设置的差分输出不能在同一个 I/O bank 中使用。 表 11. DIFFDRIVE 值 I/O 标准 MULTDRIVE 值 默认值 MINILVDS 1.6, 1.65, 1.7, 1.75,1.81, 1.87, 1.93, 2.0 1.6 LVDS 1.75 1.75 RSDS 2.0 2.0 PPLVDS 2.0 2.0 MULTDRIVE DIFFDRIVE 仅支持部分 Mini-LVDS 驱动电流。所以,除了 DIFFDRIVE,必须使用 MULTDRIVE 设置来调整 MiniLVDS 的输出驱动强度。 表 12. MULTDRIVE 值 I/O 标准 MULTDRIVE 值 默认值 MINILVDS 1x, 2x, 3x, 4x 1x LVDS 2x 2x RSDS 1x 1x PPLVDS 1x 1x 12 LatticeECP3 sysIO 使用指南 TERMINATEVTT 对于参考缓冲器输入,该属性是用于设置连接到 VTT 的片上并行终端匹配电阻。相应 bank 中的 VTT 引脚应连到外 部正确的电平。如果不使用该终端, bank 的 VTT 应保持浮动。 表 13. TERMINATEVTT 值 属性 值 TERMINATEVTT 默认值 OFF, 40, 50, 60 OFF DIFFRESISTOR 该属性是用于设置片上差分终端匹配电阻 , 使用了共模终端连接到 VTT。该片上终端匹配专门针对为 LVDS I/O 类型 工作而优化。当设置了 DIFFRESISTOR 的属性值, VTT 引脚应悬空。 表 14. DIFFRESISTOR 值 属性 值 DIFFRESISTOR 默认值 OFF, 80, 100, 120 OFF EQ_CAL 该属性是用于对器件的左右侧输入引脚上可用的均衡进行设置。 表 15. EQ_CAL 值 属性 值 EQ_CAL 默认值 0, 1, 2, 3, 4 0 PULLMODE PULLMODE 属性可用于所有 LVTLL 和 LVCMOS 的输入和输出。该属性可单独针对每个 I/O 进行使能。 表 16. PULLMODE 值 PULL 选项 PULLMODE 值 Pull up (默认) UP Pull Down DOWN Bus Keeper KEEPER Pull Off NONE 表 17. PULLMODE 设置 缓冲器 值 默认值 Input UP, DOWN, KEEPER, NONE UP Output UP, DOWN, KEEPER, NONE UP PCICLAMP PCICLAMP 可用于器件的所有焊盘。器件上侧的 PCICLAMP 设置可选择设为 OFF。其余 bank 的 PCICLAMP 只能 设为 ON。 13 LatticeECP3 sysIO 使用指南 表 18. PCICLAMP 值 属性 PCI33 值 ON, OFF 默认值 ON SLEWRATE SLEWRATE 属性可用于所有 LVTTL 和 LVCMOS 输出驱动器。每个 I/O 引脚有其单独的摆率控制。这使得设计师可 以对每个引脚进行摆率控制。 表 19. 摆率值 属性 SLEWRATE 值 FAST, SLOW 默认值 SLOW INBUF 默认情况下,所有未使用的输入缓冲器都禁用。INBUF 属性用于在执行边界扫描测试时,使能未使用的输入缓冲器。 这是一个全局属性可统一设为 ON 或 OFF。 • 属性值:ON, OFF • 默认值:OFF FIXEDDELAY 可以在 HDL 中使用该属性来使能 SDR 输入寄存器的输入固定延迟 (input Fixed Delay)。当设为 TRUE 时,您可 以在输入寄存器上实现零保持时间。 • 属性值:TRUE, FALSE • 默认值:FALSE DIN/DOUT 该属性可用于 I/O 寄存器的分配。使用 DIN 为设计分配一个输入寄存器,使用 DOUT 来分配输出寄存器。默认情况 下,软件会分配可用的 I/O 寄存器。用户可以通过使用综合属性或 ispLEVER Preference Editor 关闭该功能。这两 个属性只能用于寄存器。 LOC 该属性可用于设计中 I/O 端口的引脚分配。该属性仅在 HDL 源代码中进行引脚分配时使用。引脚还可以直接通过软 件的 Preference Editor GUI 进行分配。进一步信息请参见附录。 设计考虑和使用 本章节讨论了使用 LatticeECP3 sysIO 缓冲器进行设计时的一些规则和考虑。 Bank 规则 • 如果任何一个 bank 的 VCCIO 或 VCCJ 设为 3.3V,建议 VCCAUX 也连到相同的电源,从而使漏电流最小化。 • 如果任何一个 bank 的 VCCIO 或 VCCJ 设为 1.2V,建议 VCC 也连到相同的电源,从而使漏电流最小化。 • 当实现 DDR 存储器接口时, bank 的 VREF1 是用于提供接口引脚的参考电压,并且不能对其他任何参考输入进行 供电。 14 LatticeECP3 sysIO 使用指南 • 仅上侧 bank 支持可编程的 PCI 钳位二极管。 • 在上侧 bank,所有合法的输入缓冲器都独立于 bank 的 VCCIO,除了 1.8V 和 1.5V 缓冲器,它们要求 bank 的 VCCIO 为 1.8V 和 1.5V。在左右侧 bank,1.2V 输入缓冲器可分配给任意一个 bank,与 VCCIO 无关。 2.5V 输入缓 冲器可分配给 VCCIO 为 2.5V 和 3.3V 的 bank。所有其他缓冲器都应根据 bank 的 VCCIO 进行分配。 • 当使用了 DIFFRESITOR 时,该 bank 的 VTT 引脚应悬空。 • 当使用了 TERMINATEVTT, VTT 应根据 IO_TYPE 的设置连到正确的电压。例如,对于 SSTL18 标准, VTT 应 连到 0.9V。 • TERMINATEVTT 和 DIFFRESISTOR 都使用 VTT 引脚,因而它们不能在一个 bank 中同时使用。 • 均衡仅在左右侧 bank 提供。 • 在器件上侧 bank 0 和 1 的 PCICLAMP 是可编程的。对于所有其他的 bank, PCICLAMP 始终为 ON。 • Bank 8 没有任何 VREF 输入。 Bank 8 的参考输入要使用 Bank 3 的 VREF 引脚。参见附录 B,了解更多有关如何 在软件中设置 Bank 8 的 VREF 引脚的详细信息。 差分 I/O 规则 • 所有 bank 都支持 LVDS 输入缓冲器。仅右侧和左侧的 bank (Bank 2、 3、 6 和 7)可支持真差分输出缓冲器。 上侧和下侧的 bank 可支持 LVDS 输入缓冲器,但不支持真 LVDS 输出。用户可在这些 bank 上使用仿真 LVDS 输出缓冲器。 • 所有 bank 都支持使用外部电阻组合和互补 LVCMOS 驱动器的仿真差分缓冲器。 • 左、右侧 bank 中仅 50% 的 I/O 可提供 LVDS、 mini-LVDS、 PPLVDS 和 RSDS 输出缓冲器。参见 LatticeECP3 系列数据手册,查阅所有真差分对的引脚列表。 • 差分缓冲器的 IO_TYPE 属性仅可分配给 TRUE 极。 ispLEVER 设计工具会自动将差分对的另一个 I/O 分配给互 补极。 • 仅上侧 bank 支持 TRLVDS 输入。 • LVDS、 MINILVDS、 RSDS 和 PPDS 不能同时在一个 bank 中使用。 • 一个 I/O bank 仅可使用相同 DIFFDRIVE 属性设置的差分输出。不同的 DIFFDRIVE 设置的差分输出不能在同一 个 I/O bank 中使用。 • DIFFRESISTOR 终端匹配电阻仅在左右侧 bank 可用。如果使能了 bank 上的 VTT,则 VTT 引脚应悬空。如果使 能了 DIFFRESISTOR,则该 bank 不能使用参考输入。 技术支持 热线电话:+86-21-52989090 电子邮件:[email protected] 网站: www.latticesemi.com.cn 15 LatticeECP3 sysIO 使用指南 修订历史 日期 版本 2009 年 2 月 01.0 最初的版本。 更改摘要 2009 年 5 月 01.1 更新了器件上侧 Bank 中的混合电压支持表。 更新了器件左右侧 Bank 中的混合电压支持表。 2009 年 8 月 01.2 更新了片上终端章节。 添加了 SDR 寄存器的 FIXEDDELAY 属性支持。 更新了 DIFFRESISTOR 章节。 更新了 Bank 规则要点。 2010 年 4 月 01.3 2010 年 6 月 01.4 新增附录 C—— 使用 Diamond 数据表视图用户界面的 sysIO 属性设置。 2010 年 11 月 01.5 更新了支持的输入标准表。 删除了 Bank 8 中的可编程 PCICLAMP、均衡和 VREF 引脚的支持。 更新了热插拔支持的文字部分。 更新了热插拔行中每个 bank 支持的 I/O 标准表。 更新了左右侧 Bank 的混合电压支持表的第一个引脚注释。 2011 年 3 月 01.6 添加了 GTL+ 输入标准,使用 HSTL 输入缓冲器。 2011 年 4 月 01.7 更新说明了可编程 PCICLAMP 和有无 OPENDRAIN 的 DRIVE 的可用 设置。 2012 年 2 月 01.8 2012 年 3 月 01.9 更新文档,加入了新的公司标志。 Verilog Synplicity 属性语法表 —— 更正了语法列中的信息。 2012 年 6 月 02.0 支持的输入标准表 —— 更新了 VCCIO 列并移除了 GTL+ 行。 支持的输出标准表 —— 更新了点到点 LVDS 的 VCCIO 信息。 器件上侧 Bank 内的混合电压支持 —— 更新了脚注 2。 左侧和右侧 Bank 的混合电压支持 —— 更新了脚注 1。 16 LatticeECP3 sysIO 使用指南 附录 A. HDL 属性 您可以直接在 HDL 源代码中指定 sysIO 属性。您需要了解您准备使用的综合工具的属性定义和语法。下面是适用于 Synplify Pro® 综合工具的 sysIO 属性、语法和示例的列表。本章节仅列出了适用于这些器件的 sysIO 缓冲器属性。 您可以参考 Synplify Pro 用户手册,查阅综合属性的完整列表。您还可以通过 ispLEVER 软件的 Help 查看用户手册。 VHDL Synplify Pro 本章节列出了使用 Synplify Pro 综合工具时,所有 sysIO 属性的 VHDL 语法和示例。 语法 表 20. 用于 Synplify Pro 的 VHDL 属性语法 属性 语法 IO_TYPE attribute IO_TYPE: string; attribute IO_TYPE of Pinname: signal is “IO_TYPE Value”; OPENDRAIN attribute OPENDRAIN: string; attribute OPENDRAIN of Pinname: signal is “OpenDrain Value”; DRIVE attribute DRIVE: string; attribute DRIVE of Pinname: signal is “Drive Value”; DIFFDRIVE attribute DIFFDRIVE: string; attribute DIFFDRIVE of Pinname: signal is “Diffdrive Value”; MULTIDRIVE attribute MULTIDRIVE: string; attribute MULTIDRIVE of Pinname: signal is “MULTIDRIVE Value”; EQ_CAL attribute EQ_CAL: string; attribute EQ_CAL of Pinname: signal is “EQ_CAL Value”; TERMINATEVTT attribute TERMINATEVTT: string; attribute TERMINATEVTT of Pinname: signal is “TERMINATEVTT Value”; DIFFRESISTOR attribute DIFFRESISTOR: string; attribute DIFFRESISTOR of Pinname: signal is “DIFFRESISTOR Value”; PULLMODE attribute PULLMODE: string; attribute PULLMODE of Pinname: signal is “Pullmode Value”; PCICLAMP attribute PCICLAMP: string; attribute PCICLAMP of Pinname: signal is “PCIClamp Value”; SLEWRATE attribute PULLMODE: string; attribute PULLMODE of Pinname: signal is “Slewrate Value”; DIN attribute DIN: string; attribute DIN of Pinname: signal is “ “; DOUT attribute DOUT: string; attribute DOUT of Pinname: signal is “ “; LOC attribute LOC: string; attribute LOC of Pinname: signal is “pin_locations”; FIXEDDELAY attribute FIXEDDELAY:string; attribute FIXEDELAY of Pinname: signal is "FIXEDDELAY Value"; 示例 IO_TYPE --***Attribute Declaration*** ATTRIBUTE IO_TYPE: string; --***IO_TYPE assignment for I/O Pin*** ATTRIBUTE IO_TYPE OF portA: SIGNAL IS “PCI33”; ATTRIBUTE IO_TYPE OF portB: SIGNAL IS “LVCMOS33”; 17 LatticeECP3 sysIO 使用指南 ATTRIBUTE IO_TYPE OF portC: SIGNAL IS “LVDS25”; OPENDRAIN --***Attribute Declaration*** ATTRIBUTE OPENDRAIN: string; --***Open Drain assignment for I/O Pin*** ATTRIBUTE OPENDRAIN OF portB: SIGNAL IS “ON”; DRIVE --***Attribute Declaration*** ATTRIBUTE DRIVE: string; --***DRIVE assignment for I/O Pin*** ATTRIBUTE DRIVE OF portB: SIGNAL IS “20”; DIFFDRIVE --***Attribute Declaration*** ATTRIBUTE DIFFDRIVE: string; --*** DIFFDRIVE assignment for I/O Pin*** ATTRIBUTE DIFFDRIVE OF portB: SIGNAL IS “2.0”; MULTDRIVE --***Attribute Declaration*** ATTRIBUTE MULTDRIVE: string; --*** MULTDRIVE assignment for I/O Pin*** ATTRIBUTE MULTDRIVE OF portB: SIGNAL IS “2X”; EQ_CAL --***Attribute Declaration*** ATTRIBUTE EQ_CAL: string; --*** EQ_CAL assignment for I/O Pin*** ATTRIBUTE EQ_CAL OF portB: SIGNAL IS “1”; TERMINATEVTT --***Attribute Declaration*** ATTRIBUTE TERMINATEVTT: string; --*** TERMINATEVTT assignment for I/O Pin*** ATTRIBUTE TERMINATEVTT OF portB: SIGNAL IS “40”; DIFFERESISTOR --***Attribute Declaration*** ATTRIBUTE DIFFRESISTOR: string; --*** DIFFRESISTOR assignment for I/O Pin*** ATTRIBUTE DIFFRESISTOR OF portB: SIGNAL IS “80”; 18 LatticeECP3 sysIO 使用指南 PULLMODE --***Attribute Declaration*** ATTRIBUTE PULLMODE : string; --***PULLMODE assignment for I/O Pin*** ATTRIBUTE PULLMODE OF portA: SIGNAL IS “DOWN”; ATTRIBUTE PULLMODE OF portB: SIGNAL IS “UP”; PCICLAMP --***Attribute Declaration*** ATTRIBUTE PCICLAMP: string; --***PULLMODE assignment for I/O Pin*** ATTRIBUTE PCICLAMP OF portA: SIGNAL IS “OFF”; SLEWRATE --***Attribute Declaration*** ATTRIBUTE SLEWRATE : string; --*** SLEWRATE assignment for I/O Pin*** ATTRIBUTE SLEWRATE OF portB: SIGNAL IS “FAST”; DIN/DOUT --***Attribute Declaration*** ATTRIBUTE din : string; ATTRIBUTE dout : string; --*** din/dout assignment for I/O Pin*** ATTRIBUTE din OF input_vector: SIGNAL IS “ “; ATTRIBUTE dout OF output_vector: SIGNAL IS “ “; LOC --***Attribute Declaration*** ATTRIBUTE LOC : string; --*** LOC assignment for I/O Pin*** ATTRIBUTE LOC OF input_vector: SIGNAL IS “E3,B3,C3 “; FIXEDDELAY --***Attribute Declaration*** ATTRIBUTE FIXEDDELAY : string; --*** FIXEDDELAY assignment for I/O Pin*** ATTRIBUTE FIXEDDELAY OF portA: SIGNAL IS “True”; 19 LatticeECP3 sysIO 使用指南 Verilog Synplicity 本章节列出了使用 Synplicity® 综合工具时,所有 sysIO 属性的 Verilog 语法和示例。 语法 表 21. Verilog Synplicity 的属性语法 属性 语法 IO_TYPE PinType PinName /* synthesis IO_TYPE=“IO_Type Value”*/; OPENDRAIN PinType PinName /* synthesis OPENDRAIN =“OpenDrain Value”*/; DRIVE PinType PinName /* synthesis DRIVE=“Drive Value”*/; DIFFDRIVE PinType PinName /* synthesis DIFFDRIVE =“DIFFDRIVE Value”*/; MULTDRIVE PinType PinName /* synthesis MULTDRIVE =“MULTDRIVE Value”*/; EQ_CAL PinType PinName /* synthesis EQ_CAL =“EQ_CAL Value”*/; TERMINATEVTT PinType PinName /* synthesis TERMINATEVTT =“TERMINATEVTT Value”*/; DIFFRESISTOR PinType PinName /* synthesis DIFFRESISTOR =“DIFFRESISTOR Value”*/; PULLMODE PinType PinName /* synthesis PULLMODE=“Pullmode Value”*/; PCICLAMP PinType PinName /* synthesis PCICLAMP =“PCIClamp Value”*/; SLEWRATE PinType PinName /* synthesis SLEWRATE=“Slewrate Value”*/; DIN PinType PinName /* synthesis DIN=“ ”*/; DOUT PinType PinName /* synthesis DOUT=“ ”*/; LOC PinType PinName /* synthesis LOC=“pin_locations”*/; FIXEDDELAY PinType PinName/*synthesis FIXEDDELAY = “FIXEDDELAY value”*/; 示例 //IO_TYPE, PULLMODE, SLEWRATE and DRIVE assignment output portB /*synthesis IO_TYPE=”LVCMOS33” PULLMODE =”UP” SLEWRATE =”FAST” DRIVE =”20”*/; output portC /*synthesis IO_TYPE=”LVDS25” */; //DIFFRESISTOR input portB /*synthesis IO_TYPE=”LVDS” DIFFRESITOR=”80” */; //DIFFDRIVE, MULTDRIVE output portB /*synthesis IO_TYPE=”MINILVDS” DIFFDRIVE=”2.0” MULTDRIVE=”2X”*/; //TERMINATEVTT, EQ_CAL input portB /*synthesis IO_TYPE=”SSTL15” TERMINATEVTT=”60” EQ_CAL=”2”*/; //OPENDRAIN output portA /*synthesis OPENDRAIN =”ON”*/; //PCICLAMP output portA /*synthesis IO_TYPE=”PCI33” PCICLAMP =”OFF”*/; //FIXEDDELAY input portB /*synthesis FIXEDDELAY = "true" */; 20 LatticeECP3 sysIO 使用指南 // Place the flip-flops near the load input input load /* synthesis din=”” */; // Place the flip-flops near the outload output output outload /* synthesis dout=”” */; //I/O pin location input [3:0] DATA0 /* synthesis loc=”E3,B1,F3”*/; //Register pin location reg data_in_ch1_buf_reg3 /* synthesis loc=”R40C47” */; //Vectored internal bus reg [3:0] data_in_ch1_reg /*synthesis loc =”R40C47,R40C46,R40C45,R40C44” */; 21 LatticeECP3 sysIO 使用指南 附录 B. 使用 Design Planner 用户界面的 sysIO 属性设置 sysIO 缓冲器属性也可以通过 ispLEVER 设计工具中的 Design Planner 数据表视图来指定。Pin Attribue 表列出了设 计中的所有端口和所有可用的 sysIO 属性。点击每个单元格,查看该端口所有有效的 I/O 可选属性列表。每一列的可 选项由前一列所决定。因此,当您选择一个特定的 IO_TYPE, DRIVE、 PULLMODE、 SLEW-RATE 和其他列的属 性将只列出适用于该 IO_TYPE 的有效属性组合。引脚位置可通过 Pin Attribute 表的 Pin Location 列锁定。右击单元 格列出所有可用的引脚位置。 Design Planner 还将执行 DRC 检查, 以确定是否有不正确的引脚分配。 您可以通过 Design Planner 的 Cell Attributes 表输入 DIN/ DOUT 的可选值。所有通过 Design Planner 分配的可选 值都会写入逻辑可选文件 (logical preference file (.lpf))。 图 3 和 4 展示了 Design Planner 中 Port Attribute 表和 Cell Attribute 表。有关如何使用 Design Planner 的进一步信 息,请参考软件 Help 菜单选项下的 ispLEVER Help 文档。 图 3. Design Planner 数据表视图中的 Port Attributes 选项卡 图 4. Cell Attributes 选项卡 用户可以在 Design Planner 中,使用 VREF 设置选项为一个 bank 分配 VREF 。参见软件的在线帮助,了解更多有关 此设置的详细说明。 22 LatticeECP3 sysIO 使用指南 图 5. Design Planner 中的 VREF 分配 Bank 8 的 VREF 分配 对于 LatticeECP3 器件, Bank 8 没有任何 VREF 引脚。 Bank 8 的参考缓冲器使用 Bank 3 的 VREF 引脚。 Design Planner 不允许用户给 Bank 8 上的引脚分配 VREF。如果使用 lpf 文件来手动将 Bank 3 的 VREF 引脚分配给 Bank 8 的信号,那么信号将锁存在该 VREF 引脚所锁定的 Bank 3 上。 下面的示例是基于 lpf 文件中的如下可选属性: IOBUF PORT "DataI2_0" IO_TYPE=SSTL15 PCICLAMP=ON BANK=8 VREF="VrefB3"; 在此示例中,IO_TYPE SSTL15 信号正常情况下应加到 BANK 8。但是由于 VrefB3 的分配 ,设计中的 DataI2_0 信 号不会加到 Bank 8。相反,该信号会锁存到 VrefB3 所在 Bank 3 上的引脚。这是由于当软件处理 IOBUF 时,可选 属性 VREF="VrefB3" 的优先级高于 BANK=8。 在 Bank 8 上锁存 VREF 的最佳方法是将信号本身锁存到 Bank 8,然后让软件在 Bank 3 中选择正确的 VREF 引脚。 如果软件重新运行,软件可能会重新选择一个 VREF 引脚。可使用软件的 PAD 报告查看用作 VREF 的引脚。 23 LatticeECP3 sysIO 使用指南 附录 C. 使用 Diamond 数据表视图用户界面的 sysIO 属性设置 sysIO缓冲器属性可以使用Lattice Diamond设计软件的数据表视图来指定。Port Assignments表在多个列中列出了设 计中的所有端口以及所有可用的 sysIO 属性。点击每个单元格,查看这些端口所有有效的 I/O 可选项列表。每一列的 可选项由前一列所决定。因此,当您选择一个特定的 IO_TYPE, DRIVE、 PULLMODE、 SLEW-RATE 和其他列的 属性将只列出适用于该 IO_TYPE 的有效输入。 引脚位置可通过 Port Assignments 表的 Pin 列锁定。右击单元格选择 Assign Pins,查看可用引脚列表。 数据表视图还有一个选项来执行 DRC 检查, 以确定是否有不正确的引脚分配。你可以使用 Cell Mapping 选项卡输 入 DIN/ DOUT 属性。所有的选择项通过数据表视图指定,并写入逻辑选择文件 (.lpf)。 图 5 为数据表视图的 Port Assignments 表。欲进一步了解如何使用数据表视图的信息,请参考 Diamond 帮助文档, 可通过软件中的帮助菜单获取。 图 6. 数据表视图中的 Port Attributes 选项卡 用户可以使用如图 7 所示的数据表视图创建 VREF 引脚,然后使用如图 8 所示数据表视图中的 Port Assignments 选 项卡中的 VREF 列,为一个 bank 指定 VREF 引脚。请参见 Diamond 在线帮助,了解该设置的更多详细说明。 图 7. 在数据表视图中创建 VREF 24 LatticeECP3 sysIO 使用指南 图 8. 在数据表视图中为一个输入端口指定 VREF 25