TN1102_01.6J Apr. 2008 LatticeECP2/M sysIO使用ガイド はじめに LatticeECP2™ とLatticeECP2M™ のsysIOバッファは先進のシステムI/O規格を用いて容易に他のデバイス とインターフェイスする機能を設計者に与えます。このテクニカルノートは利用できるsysIO規格について、 またラティスの設計ソフトウェアを用いてどうそれらを実装するかを説明します。 sysIOバッファ概要 LatticeECP2/M sysIOインターフェイスは複数のプログラマブルI/Oセル(PIC)ブロックを含んでいます。各 PICはそれらのそれぞれのsysIOバッファに接続された2つのプログラマブルI/O (PIOA、およびPIOB)を含ん でいます。差動のI/Oペア( “T” と “C” として表記)を提供するために、隣接している2PIOを一緒にすること ができます。 各PIOはsysIOバッファとI/Oロジック(IOLOGIC)を含んでいます。LatticeECP2/M sysIOバッファは種々シン グルエンドと差動のシグナリング規格をサポートします。また、sysIOバッファはDDRメモリとインターフ ェイスするために必要なDQSストローブ信号をサポートします。16∼18PIO毎に1つ遅延素子があり、遅延 DQSストローブ信号が生成できるようになっています。遅延DQS信号はメモリからのDDRデータを入力レジ スタブロックに取り込むストローブとして用いられます。sysIOバッファのアーキテクチャに関する詳しい 情報については、LatticeECP2/Mファミリ・データシートを参照してください。 必要なクロックやデータ選択ロジックと共に、IOLOGICはシングル・データレート(SDR)やダブル・データ レート(DDR)アプリケーションを実装するための入力、出力、およびトライステート・レジスタを含んでい ます。IOLOGICの中のプログラマブル遅延線と専用ロジックは、入力されるクロックとデータ信号に必要な シフトのため、またDDRメモリにおけるDQS入力に必要な遅延のために用いられます。IOLOGICのDDR実 装とDDRメモリ・インターフェイス・サポートのその他詳細については、ラティス・テクニカルノートTN1105 (LatticeECP2/M 高速I/Oインターフェイス使用ガイド)で議論します。 サポートするsysIO規格 LatticeECP2/M sysIOバッファは、シングルエンドと差動の規格を共にサポートします。シングルエンド規 格は(内部)レシオ型の規格であるLVCMOS、LVTTL、及びPCIと、外部参照型のHSTL、SSTLなどに細分 化することができます。バッファはLVTTL、LVCMOS 1.2/1.5/1.8/2.5/3.3Vの規格をサポートします。LVCMOS とLVTTLモードでは、バッファは個別に構成可能なオプションとして、ドライブ強度、バス・メンテナンス (弱いプルアップ、弱いプルダウンまたはバスキーパ・ラッチ)、およびオープン・ドレインなどが指定でき ます。サポートする他のシングルエンド規格にはSSTLとHSTLが含まれます。サポートされる差動規格には LVDS、RSDS、BLVDS、LVPECL、差動SSTL、および差動HSTLを含みます。表9-1と表9-2はLatticeECP2/M デバイスでサポートするsysIO規格を記載します。 表9-1 サポートする入力規格 入力規格 VREF (Nom., [V]) 1 VCCIO (Nom., [V]) シングルエンド・インターフェイス LVTTL — — LVCMOS33 — — LVCMOS25 — — LVCMOS18 — 1.8 LVCMOS15 — 1.5 LatticeECP2/M 9-1 sysIO UGJ TN1102_01.6J Apr. 2008 LVCMOS12 — — PCI 33 — 3.3 HSTL18 Class I, II 0.9 — HSTL15 Class I 0.75 — SSTL3 Class I, II 1.5 — SSTL2 Class I, II 1.25 — SSTL18 Class I, II 0..9 — 差動SSTL18 Class I, II — — 差動SSTL2 Class I, II — — 差動インターフェイス 差動SSTL3 Class I, II — — 差動HSTL15 Class I — — 差動HSTL18 Class I, II — — LVDS, MLVDS, LVPECL, BLVDS, RSDS — — 1. 特に明記していないものは、Vccioを有効な値のどこに設定しても良いことを示す 表9-2サポートする出力規格 出力規格 ドライブ VCCIO (Nom., [V]) LVTTL 4mA, 8mA, 12 mA, 16 mA, 20 mA 3.3 LVCMOS33 4mA, 8mA, 12 mA, 16 mA, 20 mA 3.3 LVCMOS25 4mA, 8mA, 12 mA, 16 mA, 20 mA 2.5 LVCMOS18 4mA, 8mA, 12 mA, 16 mA 1.8 LVCMOS15 4mA, 8mA 1.5 LVCMOS12 2mA, 6mA 1.2 LVCMOS33、オープンドレイン 4mA, 8mA, 12 mA, 16 mA, 20 mA — LVCMOS25、オープンドレイン 4mA, 8mA, 12 mA, 16 mA, 20 mA — LVCMOS18、オープンドレイン 4mA, 8mA, 12 mA, 16 mA — LVCMOS15、オープンドレイン 4mA, 8mA — LVCMOS12、オープンドレイン 2mA, 6mA — シングルエンド・インターフェイス PCI 33 / PCIX N/A 3.3 8mA, 12mA 1.8 HSTL18 Class II N/A 1.8 HSTL15 Class I 4mA, 8mA 1.5 SSTL3 Class I, II N/A 3.3 HSTL18 Class I SSTL2 Class I 8mA, 12mA 2.5 SSTL2 Class II 16mA, 20mA 2.5 SSTL18 Class I N/A 1.8 SSTL18 Class II 8mA, 12mA 1.8 N/A 3.3 差動インターフェイス 差動SSTL3 Class I, II 差動SSTL2 Class I 8mA, 12mA 2.5 差動SSTL2 Class II 16mA, 20mA 2.5 差動SSTL18 Class I N/A 1.8 LatticeECP2/M 9-2 sysIO UGJ TN1102_01.6J Apr. 2008 差動SSTL18 Class II 8mA, 12mA 1.8 差動HSTL18 Class I 8mA, 12mA 1.8 差動HSTL18 Class II N/A 1.8 差動HSTL15 Class I 4mA, 8mA 1.5 LVDS N/A 2.5 1 N/A 2.5 BLVDS 1 N/A 2.5 N/A 3.3 N/A 2.5 MLVDS LVPECL 1 RSDS 1 1. 外部抵抗を加えてエミュレート sysIOのバンク体系 LatticeECP2/Mデバイスには、8つの汎用プログラマブルsysIOバンクと9番目のコンフィグレーション用バン クがあります。8つの汎用sysIOバンクには、それぞれ一本のVCCIO 供給電圧、2本の基準電圧(VREF1 および VREF2 )があります。図9-1は8汎用バンクとコンフィグレーション・バンクを関連する供給電源と共に示し ます。バンク8は、コンフィグレーション・ロジック専用のバンクであり、7本のコンフィグレーション専用 I/Oと、14本のデュアル・ファンクションのコンフィグレーションI/Oがあります。バンク8は供給電源パッド (VCCIO とVCCAUX )を持っていますが、独立しているVREF パッドはありません。バンク8のI/Oはバンク3からの VREF に接続されています。 上辺・底辺バンクでは、sysIOバッファペアは2本のシングルエンド出力ドライバと、二組のシングルエンド 入力バッファ(レシオ型と参照型共に)があります。左右のsysIOバッファペアは2本のシングルエンド出力 ドライバと、二組のシングルエンド入力バッファ(レシオ型と参照型共に)があります。参照型の入力バッ ファは差動入力としても構成できます。50%のペアには差動出力ドライバがあります。ペアの両パッドはそ れぞれ ”true” と ”comp” と表記されており、trueは差動入力ペアの正(非反転)側を意味し、compは負(反 転)側を意味しています。 図 9-1 LattceECP2/M sysIOバンク構成 LatticeECP2/M 9-3 sysIO UGJ TN1102_01.6J Apr. 2008 VCCIO (1.2V/1.5V/1.8V/2.5V/3.3V) 合計8つのVCCIO 電源があり、それらはVCCIO0 ∼VCCIO7 です。各バンクには、シングルエンド出力ドライバ用 と、LVTTLや、LVCMOS、PCIなどのレシオ入力バッファを動作させる別々のVCCIO 電源があります。LVTTL、 LVCMOS3.3、LVCMOS2.5、およびLVCMOS1.2は、それらがどこのバンクに置かれても良い固定スレッシ ョルド・オプションを持っています。バンクに適用されたVCCIO 電圧が、そのバンクでサポートすることが できるレシオ入力規格を決定します。また、それは、差動出力ドライバを動作させるのにも用いられます。 加えてVCCIO8 はsysCONFIG信号に供給される電源として用いられます。 VCCAUX (3.3V) バンクVCCIO 電源以外に、デバイスにはVCC コアロジック電源、さらに参照電圧を用いる差動入力バッファを 動作させるためのVCCAUX 補助電源があります。これらドライバと入力バッファのコモンモード範囲要件を満 たすため、VCCAUX をI/O参照電圧として用いる3.3Vが必要です。 VCCJ (1.2V / 1.5V / 1.8V / 2.5V / 3.3V) JTAGピンには、バンクVCCIO 電源から独立している別のVCCJ 電源があります。VCCJ はLVCMOS JTAGピンの 電気特性、すなわち出力のHighレベルと入力スレッショルドの両方を決定します。 表9-3に供給電源のまとめを示します。 表9-3 供給電源 供給電源 VCC VCCIO VCCAUX VCCJ 記 述 コア電源 I/Oとコンフィグレーション・バンク用電源 補助(Auxiliary)電源 JTAGピン用電源 値 1.2V 1.2V/1.5V/1.8V/2.5V/3.3V 3.3V 1.2V/1.5V/1.8V/2.5V/3.3V 注;推奨min. / max.値についてはLatticeECP2/Mデータシートを参照 入力参照電圧(VREF1, VREF2 ) 各バンクは、最大2つの別々のVREF 入力電圧(VREF1 とVREF2 )をサポートし、これらは参照電圧を用いる入力 バッファのスレッショルドを設定するのに用いられます。これらのVREF ピンの位置はバンク内で予め決めら れています。バンクがVREF 電圧を必要としない場合、通常のI/Oとしてこれらのピンを用いることができま す。 DDRメモリ・インターフェイスのためのVREF1 DDRメモリにインターフェイスするとき、メモリからのDQSとDQ入力のために、参照電圧としてVREF1 入力 を用いなければなりません。VREF1 とGNDの間の電圧分割器が、DQS遷移検出回路によって用いられるオン チップ基準電圧を発生させるのに用いられます。この電圧分割器はVREF1 にのみ存在しており、VREF2 は利用 できません。DQS遷移検出ロジックについてと、その実装についての詳しい情報は、ラティス・テクニカル ノートTN1105を参照してください。DDR1メモリ・インターフェイスではSSTL25_II 規格に従い、DDR2メ モリ・インターフェイスにおいては、SSTL18_II 規格に従います。 バンク内における複数電圧のサポート LatticeECP2/M sysIOバッファは3本のパラレル・レシオ入力バッファに接続されています。これらの3本の パラレル・バッファはVCCIO とVCCAUX 、そしてVCC に接続されており、VCCIO に追従するスレッショルド、お よび3.3V (VCCAUX ) / 1.2V (VCC )の固定スレッショルドを共にサポートします。これによって、VCCIO に追従す るだけでなく、レシオ・バッファの入力スレッショルドをピンごとに割り当てることができます。このオプ LatticeECP2/M 9-4 sysIO UGJ TN1102_01.6J Apr. 2008 ションは、1.2V、2.5V、および3.3Vの全レシオ入力で利用でき、バンクVCCIO 電圧から独立しています。例 えばバンクVCCIO が1.8Vである場合、固定スレッショルドを1.2Vと3.3Vレシオ入力バッファに与え、同時に 2.5Vレシオ入力に対して追従するスレッショルドを持たせることが可能です。 デバイスのコンフィグレーション前には、レシオ入力スレッショルドは常にバンクVCCIO に追従します。この オプションはコンフィグレーションの後にのみ有効になります。バンク内の出力規格はいつもVCCIO によって 設定されます。表9-4は、ユーザが同じバンクで混用することができるsysIO規格を示します。 表9-4 電圧の混在のサポート VCCIO 1.2V 1.5V 1.8V 2.5V 3.3V 1.2V Yes Yes Yes Yes Yes sysIO 入力規格 1.5V 1.8V 2.5V Yes Yes Yes Yes Yes Yes Yes 3.3V Yes Yes Yes Yes Yes sysIO 出力規格 1.5V 1.8V 2.5V 1.2V Yes 3.3V Yes Yes Yes Yes 各バンクでサポートするsysIO規格 表9-5 各バンクのサポートするI/O規格 記述 I/Oバッファタイプ サポートする 出力規格 上辺 バンク0-1 シングルエンド 右辺 バンク2-3 シングルエンドと差動 下辺 バンク4-5 シングルエンド 左辺 バンク6-7 シングルエンドと差動 LVTTL LVCMOS33 LVCMOS25 LVCMOS18 LVCMOS15 LVCMOS12 LVTTL LVCMOS33 LVCMOS25 LVCMOS18 LVCMOS15 LVCMOS12 LVTTL LVCMOS33 LVCMOS25 LVCMOS18 LVCMOS15 LVCMOS12 LVTTL LVCMOS33 LVCMOS25 LVCMOS18 LVCMOS15 LVCMOS12 SSTL18クラス I, II SSTL25クラス I, II SSTL33クラス I, II SSTL18クラス I, II SSTL25クラス I, II SSTL33クラス I, II SSTL18クラス I, II SSTL25クラス I, II SSTL33クラス I, II SSTL18クラス I, II SSTL25クラス I, II SSTL33クラス I, II HSTL15クラス I HSTL18クラス I, II HSTL15クラス I HSTL18クラス I, II HSTL15クラス I HSTL18クラス I, II HSTL15クラス I HSTL18クラス I, II SSTL18Dクラス I, SSTL25Dクラス I, II SSTL33Dクラス I, II SSTL18Dクラス I, SSTL25Dクラス I, II SSTL33Dクラス I, II SSTL18Dクラス I, SSTL25Dクラス I, II SSTL33Dクラス I, II SSTL18Dクラス I, SSTL25Dクラス I, II SSTL33Dクラス I, II HSTL15Dクラス I HSTL18Dクラス I, II HSTL15Dクラス I, II HSTL18Dクラス I, II HSTL15Dクラス I HSTL18Dクラス I, II HSTL15Dクラス I HSTL18Dクラス I, II LVDS25E1 LVPECL1 1 BLVDS 1 RSDS LVDS LVDS25E1 1 LVPECL 1 BLVDS RSDS1 PCI33 LVDS25E1 1 LVPECL 1 BLVDS RSDS1 LVDS LVDS25E1 1 LVPECL 1 BLVDS RSDS1 入力 全シングルエンドと差動 全シングルエンドと差動 全シングルエンドと差動 全シングルエンドと差動 クロック入力 全シングルエンドと差動 全シングルエンドと差動 全シングルエンドと差動 全シングルエンドと差動 PCIサポート クランプなしPCI33 LVDS出力バッファ LatticeECP2/M クランプなしPCI33 クランプありPCI33 2 LVDS (3.5mA)バッファ 9-5 クランプなしPCI33 (ECP2Mはクランプあり) LVDS(3.5mA)バッファ2 sysIO UGJ TN1102_01.6J Apr. 2008 1.これらの差動規格は、外付け抵抗パックと共にコンプリメンタリLVCMOSドライバを用いる ことによって、実装されます。 2. バンク内の50%のI/Oのみ LVCMOSバッファの構成 すべてのLVCMOSバッファには、ソフトウェアで設定することができるプログラマブル・プル、プログラマ ブル・ドライブ、およびプログラマブル・スルーレートの各コンフィグレーションがあります。 バス・メンテナンス回路 各パッドには弱いプルアップ、弱いプルダウン、および弱いバスキーパ機能があります。プルアップとプル ダウン設定は固定特性を提供し、ワイヤードORなどのロジックを作成する際に役に立ちます。しかし、信号 ステートによっては電流は他のオプションよりわずかに高い場合があります。バスキーパ・オプションは最 後にドライブされたステートで信号をラッチし、最小の電力消費で有効なレベルを保持します。またユーザ はバス・メンテナンス回路をオフに選択することができ、電力消費と入力リークを最小にできます。この場 合重要なのは、入力が既知のステートにドライブされることを確実にすることであり、入力バッファにおけ る不要な電力消費を避けなければなりません。バンクのVCCIO が3.3Vに割り当てられるとき、弱いバスキー パは利用できません。 プログラマブル・ドライブ LVCMOSとLVTTL出力バッファ・ピンは、幾つかの電圧参照タイプ(SSTL/HSTL)と共に、それぞれがプ ログラマブルなドライブ強度オプションを持っています。各I/Oにこのオプションを個別に設定することがで きます。用意されているドライブ強度設定は、2mA、4mA、6mA、8mA、12mA、16mA、そして20mAです。 利用できる実際のオプションはI/O電圧で異なります。ドライブ強度を選択するとき、ユーザは、バンクあた りの最大許容電流とパッケージの熱限界となる電流を考慮しなければなりません。表9-6はそれぞれの出力規 格で利用できるドライブ設定を示します。 表9-6 シングルエンド・バッファのプログラマブル・ドライブ強度値 シングルエンドI/O規格 プログラマブル・ドライブ (mA) HSTL15_I / HSTL15D_1 HSTL18_I / HSTL18D_I SSTL25_I / SSTL25D_I SSTL25_II / SSTL25D_II SSTL18_II / SSTL18D_II LVCMOS12 LVCMOS15 LVCMOS18 LVCMOS25 LVCMOS33 LVTTL 4, 8 8, 12 8, 12 16, 20 8, 12 2, 6 4, 8 4, 8, 12, 16 4, 8, 12, 16, 20 4, 8, 12, 16, 20 4, 8, 12, 16, 20 プログラマブル・スルーレート LVCMOSとLVTTL出力バッファ・ピンは、プログラマブルな出力スルーレート制御も持っており、それぞれ 低雑音もしくは高速性能などのために構成することができます。各I/Oピンには、個々にスルーレート制御が あります。これにより、スルーレート制御をピンごとに指定できます。このスルーレート制御は、立ち上が りエッジと立ち下がりエッジの両方に影響します。 LatticeECP2/M 9-6 sysIO UGJ TN1102_01.6J Apr. 2008 オープンドレイン・コントロール 全てのLVCMOSとLVTTL 出力バッファはオープンドレインとして構成することができます。これはソフト ウェアでOPENDRAINアトリビュートをオンにすることによって行います。 差動SSTLとHSTLサポート コンプリメンタリなCパッドに関連付けられたシングルエンド・ドライバは、Trueパッドと関連づけられた シングルエンド・ドライバをドライブするデータをコンプリメント(反転)して任意にドライブすることが できます。これは、信号間のスキューが最も低い1組のシングルエンド・ドライバでコンプリメンタリな出 力をドライブするのに用いることを可能にします。同期タイプのDRAMとSRAMで用いられるそれぞれ差動 のSSTL/HSTLクロック入力で必要とされます。この機能はデバイス外部の抵抗と共に用いてLVPECLと BLVDS両出力ドライバをエミュレートして行います。 プログラマブルPCICLAMPによるPCIのサポート それぞれのsysIOバッファはPCI33をサポートするために構成することができます。デバイスの上辺バンク (LatticeECP2)、又は左辺と底辺(LatticeECP2M)のバッファには、ispLEVERデザインツールで任意に 指定できるオプションのPCIクランプ・ダイオードがあります。 プログラマブルPCICLAMPは該当バンクのI/Oで個別にオン、オフできます。 プログラマブル入力遅延 各入力は、コアロジックか入力レジスタに渡される前に任意に遅延させることができます。入力遅延の第一 の用途は、ダイレクト・ドライブ・プライマリクロックを用いるとき、入力レジスタのためのゼロホールド 時間を達成することです。ゼロホールド時間に到着するように、少なくともプライマリクロックの注入遅れ と同じくらい入力遅延でデータを遅らせます。このオプションはソフトウェアでFIXEDDELAYアトリビュー ト(属性)を用いることで、各I/O個別にON/OFFすることができます。このアトリビュートはさらに “ソフト ウェアsysIOアトリビュート” セクションで説明されます。付録AはHDLアトリビュートでどのようにこの機 能をイネーブルできるかを示します。 ソフトウェアsysIOアトリビュート(属性) sysIOアトリビュートは、デザインプランナ(Design Planner) GUIを用いて、或いはHDLで指定するか、また はASCIIプリファレンス・ファイル(.lpf)中で直接指定することができます。付録A、B、およびCはこれらの 方法を用いることで、どう割り当てることができるかの例をそれぞれリストアップします。このセクション はこれらのアトリビュートについてそれぞれ詳細に説明します。 IO_TYPE これはI/OのsysIO標準を設定するのに用いられます。これらI/O規格に対応しなければならないVCCIO 値は、 アトリビュート名自体に組み込まれているのみです。表9-7は利用できるI/Oタイプをリストしています。 表9-7 IO_TYPEアトリビュート値 sysIO シグナリング規格 DEFAULT LVDS 2.5V RSDS エミュレートLVDS 2.5V バスLVDS 2.5V LVPECL 3.3V HSTL18 Class I, II LatticeECP2/M 9-7 IO_TYPE LVCMOS25 LVDS25 RSDS LVDS25E 1 BLVDS25 1 LVPECL33 1 HSTL18_I, HSTL18_II sysIO UGJ TN1102_01.6J Apr. 2008 差動HSTL18 Class I, II HSTL15 Class I 差動HSTL15 Class I SSTL33 Class I, II 差動SSTL33 Class I, II SSTL25 Class I, II 差動SSTL25 Class I, II SSTL18 Class I, II 差動SSTL18 Class I LVTTL 3.3V LVCMOS 2.5V LVCMOS 1.8V LVCMOS 1.5V LVCMOS 1.2V LVCMOS 3.3V PCI HSTL18D_I, HSTL18D_II HSTL15_I HSTL15D_I SSTL33_I, SSTL33_II SSTL33D_I, SSTL33D_II SSTL25_I, SSTL25_II SSTL25D_I, SSTL25D_II SSTL18_I, SSTL18_II SSTL18D_I, SSTL18D_II LVTTL33 LVCMOS33 LVCMOS25 LVCMOS18 LVCMOS15 LVCMOS12 PCI33 注1; これらの差動規格はコンプリメンタリLVCMOSドライバと外部抵抗パックを用いて実装する OPENDRAIN OPENDRAINアトリビュートを用いることによって、LVCMOSとLVTTL規格を指定したポートをオープンド レインとして設定することができます。 値: ON, OFF デフォルト:OFF DRIVE ドライブ強度アトリビュートはプログラマブル・ドライブ強度を持つLVTTLとLVCMOS出力規格に設定でき ます。 表9-8 DRIVE設定値 出力規格 DRIVE (mA) デフォルト HSTL15_I / HSTL15D_1 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 2, 6 6 LVCMOS15 4, 8 8 LVCMOS18 4, 8, 12, 16 12 LVCMOS25 4, 8, 12, 16, 20 12 LVCMOS33 4, 8, 12, 16, 20 12 LVTTL 4, 8, 12, 16, 20 12 PULLMODE PULLMODEアトリビュートはすべてのLVTLL / LVCMOS I/Oで利用できます。このアトリビュートを各I/O ごと独立してイネーブルすることができます。 値: UP, DOWN, NONE, KEEPER LatticeECP2/M 9-8 sysIO UGJ TN1102_01.6J Apr. 2008 デフォルト: UP 表9-9 PULLMODE値 PULLオプション プルアップ(デフォルト) プルダウン バスキーパ プルオフ PULLMODE値 UP DOWN KEEPER NONE PCICLAMP デバイスの底辺(LatticeECP2)、またはデバイスの左辺と底辺(LatticeECP2M)にあるPCI33バッファには、オ プションのPCIクランプ・ダイオードがあり、ispLEVERデザインツールでPCICLAMPアトリビュートでイネ ーブルできます。また、PCICLAMPはすべてのLVCMOS33とLVTTL入力で利用できます。 値: ON, OFF デフォルト: OFF 表9-10 PCICLAMP値 入力タイプ PCI33 LVCMOS33 LVTTL PCICLAMP値 ON OFF (デフォルト)、ON OFF (デフォルト)、ON SLEWRATE SLEWRATEアトリビュートはすべてのLVTTL / LVCMOS出力ドライバに利用できます。それぞれのI/Oピン には、個々のスルーレート制御があります。 値: FAST, SLOW デフォルト: FAST FIXEDDELAY FIXEDDELAYアトリビュートはそれぞれの入力ピンで利用できます。このアトリビュートがイネーブルされ ると、グローバル・クロックを用いるときの入力レジスタがゼロホールド時間を達成するのに用いられます。 このアトリビュートはHDLソースコード内でのみアサイン可能です。 値: TRUE, FALSE デフォルト: FALSE INBUF デフォルトですべての未使用の入力バッファはディセーブルされます。INBUFアトリビュートは、バウンダ リスキャン・テストを実行するとき、未使用の入力バッファをイーブルするために用いられます。これはグ ローバルなアトリビュートであり、ONかOFFに設定することができます。 値:ON, OFF デフォルト:OFF DIN / DOUT I/Oレジスタを割り当てる必要があるときに、このアトリビュートを用いることができます。DINを用いると 設計内の入力レジスタがI/Oブロックに配置され、同様にDOUTアトリビュートを用いると出力レジスタが I/Oブロックに配置されます。ソフトウェアは、デフォルトでなるべくI/Oレジスタを割り当てようとします。 ユーザは、論理合成のアトリビュート、またはソフトウェアのデザインプランナを用いることによって、オ フにすることができます。これらのアトリビュートはレジスタにのみ適用することができます。 LatticeECP2/M 9-9 sysIO UGJ TN1102_01.6J Apr. 2008 LOC 設計内のI/Oポートへのピン割り当てにこのアトリビュートを用いることができます。このアトリビュートは、 HDLソース内でピン割り当てがされているときだけ用いられます。ソフトウェアのデザインプランナGUIを 用いることでピンの割り当てをすることもできます。付録でさらに詳細に説明します。 設計における考察と用法 このセクションでは、LatticeECP2/M sysIOバッファを設計するとき、考慮に入れる必要がある設計ルール と配慮事項のいくつかについて論じます。 バンクに関するルール • どのバンクでもVCCIO かVCCJ が3.3Vに設定される場合、それをVCCAUX と同じ電源に接続されることを 勧めます。その結果リークを最小にします。 • どのバンクでもVCCIO かVCCJ が1.2Vに設定される場合、それをVCC と同じ電源に接続されることを勧 めます。その結果リークを最小にします。 • DDRメモリ・インターフェイスを実装するとき、バンクのVREF1 をインターフェイス・ピンの参照電 圧を提供するのに用います。いかなる他の参照電圧を用いる入力の動作にも用いることはできません。 • LatticeECP2の底辺バンク(バンク4、5)と、LatticeECP2Mの左辺・底辺バンク(バンク4、5、6、7)だ けが、PCIクランプをサポートします。 • すべての有効な入力バッファはバンクVCCIO から独立していますが、1.8Vと1.5Vバッファのみはバン クVCCIO としてそれぞれ1.8Vと1.5Vが必要です。 差動I/Oルール • すべてのバンクがLVDS入力バッファをサポートすることができます。左右バンク(2、3、6、および 7)のバンクだけが、真のLVDS差動出力バッファをサポートします。従って上下バンクは、LVDS入力 バッファをサポートしますが、真のLVDS出力はサポートしません。ユーザはこれらバンクではエミ ュレートしたLVDS出力バッファとして用いることができます。 • 全バンクは、外部抵抗パックとコンプリメンタリなLVCMOSドライバを用いることで、差動バッファ をエミュレートすることをサポートします。 • 左右辺のI/Oのうち50%のみにLVDSバッファ出力機能があります。LVDSはTRUEパッドのみに割り当 てることができます。差動ペアの他方のI/OをコンプリメンタリなパッドにispLEVERデザインツール が自動的にアサインします。すべてのLVDSペアのピンについてはデバイスのデータシートを参照し てください。 参照電圧を用いる入力用のVREF1 / VREF2 グループの割り当て 各バンクには2本の専用VREF 入力ピン、VREF1 およびVREF2 があります。複数のバッファを特定のVREF レイル (VREF1 またはVREF2 )に分類することができます。LOCATE PGROUPプリファレンスと共に、PGROUP VREFプリファレンスを割り当てることによって、この組分けをします。 プリファレンス構文(シンタックス) PGROUP <pgrp_name> [(VREF <vref_name>)+] (COMP <comp_name>)+; LOCATE PGROUP <pgrp_name> BANK <bank_num>; LOCATE VREF <vref_name> SITE <site_name>; LatticeECP2/M 9-10 sysIO UGJ TN1102_01.6J Apr. 2008 VREFグループの例 PGROUP “vref_pg1” VREF “ref1” COMP “ah(0)” COMP “ah(1)” COMP “ah(2)” COMP “ah(3)” COMP “ah(4)” COMP “ah(5)” COMP “ah(6)” COMP “ah(7)”; PGROUP “vref_pg2” VREF “ref2” COMP “al(0)” COMP “al(1)” COMP “al(2)” COMP “al(3)” COMP “al(4)” COMP “al(5)” COMP “al(6)” COMP “al(7)”; LOCATE VREF “ref1” SITE PR29C; LOCATE VREF “ref2” SITE PR48B; または LOCATE PGROUP “ vref_pg1” BANK 2; LOCATE PGROUP “ vref_pg2” BANK 2; この例は2つのVREF グループを示し、”vref_pg1" は “ref1" に割り当て、 vref_pg2" を "ref2" に割り当てて います。ユーザはLOCATEプリファレンスを用いることでVREF1 かVREF2 のどちらかにVREF をロックしなけれ ばなりません。または単にどのバンクVREF グループに置く(入れる)かをユーザは指定することができます。 この場合、ソフトウェアがこれらをバンクのVREF1 かVREF2 のどちらかに割り当てます。 PGROUP VREFが使用されていないと、ソフトウェアは同じVREF 参照電圧の必要なすべてのピンを自動的に 分類します。同じ参照電圧を用いる1系統以上のバスがあって、ユーザがそれぞれのこれらのバスを異なっ たVREF リソースに関連づけたい場合、このプリファレンスは最も役に立ちます。 差動I/Oの実装 LatticeECP2/Mデバイスは以下のセクションで詳しく述べるように種々の差動規格をサポートします。 LVDS 真のLVDS (LVDS25)出力ドライバは、デバイスの左右辺バンクの50%で利用でき、外部抵抗を一切必要とし ません。LVDS入力はデバイスの全バンクでサポートします。またすべてのバンクで外部抵抗と共にコンプ リメンタリLVCMOSドライバ(LVDS25E)を用いてLVDSをサポート(エミュレート)します。これらLVDS 実装についてはLatticeECP2/Mファミリ・データシートを参照してください。 BLVDS LatticeECP2/Mファミリにおける全てのシングルエンドsysIOバッファペアが、外部抵抗と共にコンプリメン タリなLVCMOSドライバを用いることでバスLVDS (BLVDS)規格をサポートします。BLVDS実装に関しては、 LatticeECP2/Mファミリ・データシートを参照してください。 RSDS LatticeECP2/MファミリすべてのシングルエンドsysIOバッファペアが、外部抵抗と共にコンプリメンタリな LVCMOSドライバを用いることでRSDS規格をサポートします。RSDS実装に関しては、LatticeECP2/Mファ ミリ・データシートを参照してください。 LVPECL すべてのsysIOバッファがLVPECL入力をサポートします。LVPECL出力は、外部抵抗と共にコンプリメンタ リLVCMOSドライバを用いることでサポートされます。LVPECL実装に関しては、LatticeECP2/Mファミリ・ データシートを参照してください。 差動SSTLと差動HSTL LatticeECP2/MとLatticeXPファミリ全てのシングルエンドsysIOバッファペアは、差動のSSTLとHSTLをサ ポートします。差動HSTL / SSTLの実装についてはLatticeECP2/Mファミリ・データシートを参照してくだ さい。 LatticeECP2/M 9-11 sysIO UGJ TN1102_01.6J Apr. 2008 テクニカル・サポート支援 ホットライン: 1-800-LATTICE (North America) +1-503-268-8001 (Outside North America) e-mail: [email protected] インターネット: http://www.latticesemi.com 変更履歴(日本語版) 日付 Rev.# 1.5J 1.6J Aug.2008 変更箇所 既発行 Jan.5, 2008 図9-1 sysIO Banking を更新。全面的に文章・用語を校正。 LatticeECP2/M 9-12 sysIO UGJ TN1102_01.6J Apr. 2008 付録A Synplicity® とPrecision® RTL Synthesis用HDLアトリビュート HDLアトリビュートを用いて、直接ソース内でsysIOに属性を割り当てることができます。設計者は、用い ようとしている論理合成ツール・ベンダのアトリビュート定義と構文を用いる必要があります。以下は、 PrecisionとSynplifyのための全sysIOアトリビュート構文のリストと例です。このセクションはこれらデバイ スのためのsysIOバッファ・アトリビュートのみを記載します。設計者は論理合成アトリビュートに関する 全リストについてPrecisionとSynplifyのユーザ・マニュアルを参照して下さい。これらのマニュアルは ispLEVERソフトウェア・ヘルプでも利用できます。 VHDL Synplify / Precision RTL Synthesis PrecisionかSynplify論理合成ツールを用いる場合のため、このセクションはVHDLのすべてのsysIOアトリビ ュートの構文と例をリストアップします。 構文(シンタックス) 表9-8 SynplifyとPrecisionのためのVHDLアトリビュート構文 アトリビュート (属性) IO_TYPE OPENDRAIN DRIVE PULLMODE PCICLAMP SLEWRATE 構 文 attribute IO_TYPE: string; attribute IO_TYPE of Pinname: signal is “IO_TYPE Value”; attribute OPENDRAIN: string; attribute OPENDRAIN of Pinname: signal is “OpenDrain Value”; attribute DRIVE: string; attribute DRIVE of Pinname: signal is “Drive Value”; attribute PULLMODE: string; attribute PULLMODE of Pinname: signal is “Pullmode Value”; attribute PCICLAMP: string; attribute PCICLAMP of Pinname: signal is “PCIClamp Value” attribute PULLMODE: string; attribute PULLMODE of Pinname: signal is “Pullmode Value”; FIXEDDELAY attribute FIXEDDELAY: string; attribute FIXEDDELAY of Pinname: signal is “Fixeddelay 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”; 例 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”; ATTRIBUTE IO_TYPE OF portC: SIGNAL IS “LVDS25”; OPENDRAIN --***Attribute Declaration*** ATTRIBUTE OPENDRAIN: string; --***OPENDRAIN assignment for I/O Pin*** LatticeECP2/M 9-13 sysIO UGJ TN1102_01.6J Apr. 2008 ATTRIBUTE OPENDRAIN OF portB: SIGNAL IS “ON”; PCICLAMP --***Attribute Declaration*** ATTRIBUTE PCICLAMP : string; --***PCICLAMP assignment for I/O Pin*** ATTRIBUTE PCICLAMP OF portA: SIGNAL IS “ON”; DRIVE --***Attribute Declaration*** ATTRIBUTE DRIVE: string; --***DRIVE assignment for I/O Pin*** ATTRIBUTE DRIVE OF portB: SIGNAL IS “20”; 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”; SLEWRATE --***Attribute Declaration*** ATTRIBUTE SLEWRATE : string; --*** SLEWRATE assignment for I/O Pin*** ATTRIBUTE SLEWRATE OF portB: SIGNAL IS “FAST”; FIXEDDELAY --***Attribute Declaration*** ATTRIBUTE FIXEDDELAY: string; --*** FIXEDDELAY assignment for I/O Pin*** ATTRIBUTE FIXEDDELAY OF portB: SIGNAL IS “TRUE”; 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 “; Verilog / Synplify このセクションは、Synplify合成ツールを用いる場合の、すべてのsysIOアトリビュートVerilog構文と例をリ ストアップします。 LatticeECP2/M 9-14 sysIO UGJ TN1102_01.6J Apr. 2008 構文 表9-9 Verilog / Synplifyアトリビュート構文 アトリビュート 構文 IO_TYPE PinType PinName /* synthesis IO_TYPE=”IO_Type Value”*/; OPENDRAIN PinType PinName /* synthesis OPENDRAIN=”OpenDrain Value” */ DRIVE PinType PinName /* synthesis DRIVE=”Drive Value”*/; PULLMODE PinType PinName /* synthesis PULLMODE=”Pullmode Value”*/; PCICLAMP PinType PinName /* synthesis PCICLAMP=”PCIClamp Value”*/ SLEWRATE PinType PinName /* synthesis SLEWRATE=”Slewrate Value”*/; FIXEDDELAY PinType PinName /* synthesis FIXEDELAY=”Fixeddelay Value”*/; DIN PinType PinName /* synthesis DIN=” “*/; DOUT PinType PinName /* synthesis DOUT=” “*/; LOC PinType PinName /* synthesis LOC=”pin_locations “*/; 例 //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” */; // OPENDRAIN input load /* synthesis OPENDRAIN=”ON” */; // PCICLAMP output portA /* synthesis IO_TYPE=”PCI33” PULLMODE=”PCICLAMP”*/; // Fixeddelay input load /* synthesis FIXEDDELAY=”TRUE” */; // 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” */; Verilog / Precision このセクションは、Precision RTL Synthesisツールを用いる場合の、すべてのsysIOアトリビュートVerilog 構文と例をリストアップします。 構文 LatticeECP2/M 9-15 sysIO UGJ TN1102_01.6J Apr. 2008 表9-10 Verilog / Precisionアトリビュート構文 アトリビュート 構文 IO_TYPE //Precision attribute PinName IO_TYPE IO_TYPE Value OPENDRAIN //Precision attribute PinName OPENDRAIN OpenDrain Value DRIVE //Precision attribute PinName DRIVE Drive Value PULLMODE //Precision attribute PinName IO_TYPE Pullmode Value PCICLAMP //Precision attribute PinName PCICLAMP PCIClamp Value SLEWRATE //Precision attribute PinName IO_TYPE Slewrate Value FIXEDDELAY //Precision attribute PinName IO_TYPE Fixeddelay Value LOC //Precision attribute PinName LOC pin_location 例 //****IO_TYPE *** //pragma attribute portA IO_TYPE PCI33 //pragma attribute portB IO_TYPE LVCMOS33 //pragma attribute portC IO_TYPE SSTL25_II //*** Opendrain *** //pragma attribute portB OPENDRAIN ON //pragma attribute portD OPENDRAIN OFF //*** Drive *** //pragma attribute portB DRIVE 20 //pragma attribute portD DRIVE 8 //*** Pullmode*** //pragma attribute portB PULLMODE UP //*** PCICLAMP*** //pragma attribute portA PCICLAMP ON //*** Slewrate *** //pragma attribute portB SLEWRATE FAST //pragma attribute portD SLEWRATE SLOW // ***Fixeddelay*** //pragma attribute load FIXEDDELAY TRUE //***LOC*** //pragma attribute portB loc E3 LatticeECP2/M 9-16 sysIO UGJ TN1102_01.6J Apr. 2008 付録B デザインプランナ・ユーザGUIを用いるsysIOアトリビュート (日本語注;英文オリジナルは プリファレンス・エディタ Preference Editor とあるが、これはispLEVER6.0 以降は デザインプランナDesign Planner と呼ばれ機能拡充された。ここでは後者の名称を使用する。) ispLEVERツールのDesign Planner GUIを用いることでsysIOバッファ・アトリビュートを割り当てることも できます。ピン・アトリビュート(Pin Attribute)タブが、設計内の全てのポートと、プリファレンスとして 指定している全sysIOアトリビュートをリストします。これらの各セルをクリックすると、そのポートに有 効な全てのI/Oプリファレンスのリストが与えられます。特定のIO_TYPEが選ばれていると、そのIO_TYPE のために有効な組み合わせDRIVE、PULLMODE、およびSLEWRATEコラムのみをリストします。ユーザは、 ピン・アトリビュート・シート内のピン・ロケーション(pin location)コラムを用いることでピン位置をロッ クすることができます。セル上で右クリックすると、全ての利用できるピン位置がリストされます。またデ ザインプランナは、不正なピン割り当てを探すためにDRCチェックを実行します。 デザインプランナのセル・アトリビュート(Cell Attributes)タブを用いることで、DIN / DOUTプリファレ ンスを入れることができます。デザインプランナを用いて割り当てた全てのプリファレンスは、プリファレ ンス・ファイル(.lpf)の中に書き出されます。 図9-2と図9-3はデザインプランナのピン・アトリビュート・タブとセル・アトリビュート・タブの概観です。 デザインプランナに関する詳細については、ソフトウェアのヘルプ・メニュー・オプションにあるispLEVER ヘルプ・ドキュメントを参照してください。 図9-2 ピン・アトリビュート・タブ 図9-3 セル・アトリビュート・タブ LatticeECP2/M 9-17 sysIO UGJ TN1102_01.6J Apr. 2008 付録C プリファレンス・ファイル(ASCIIファイル)を用いるsysIOアトリビュート sysIOバッファ・プリファレンスは、プリファレンス・ファイルにsysIOアトリビュートとして直接入れるこ ともできます。プリファレンス・ファイルは2つのセクションを含むASCIIファイルです。マッパやトランス レータによって作成されたスケマティック・プリファレンスのセクション、およびユーザによって入られた プリファレンスのためのユーザ・セクションです。設計者はこのファイル内のユーザ・プリファレンスを直 接書くことができます。論理合成アトリビュートはプリファレンス・ファイル内のスケマティック最終行の 後に、以下の構文例のようにsysIOバッファ・プリファレンス入れることができます。 IOBUF このプリファレンスは、アトリビュートのIO_TYPE、PULLMODE、SLEWRATE、およびDRIVEを割り当て るのに用いられます。 構文 IOBUF [ALLPORTS | PORT <port_name> | GROUP <group_name>] (keyword=<value>)+; ここで: <port_name> = これらは実際のトップレベル・ポート名ではなく、ポートに付けられた信号名である必要が あります。物理設計ファイル(.ncd)内のPIOはこの慣例(コンベンション)を用いて命名されます。複数のリ スティングやワイルドカードの場合は、GROUPを用いないといけません。 キーワード = IO_TYPE, OPENDRAIN, DRIVE, PULLMODE, PCICLAMP, SLEWRATE. 例 IOBUF PORT “port1” IO_TYPE=LVTTL33 PCICLAMP=OFF SLEWRATE=FAST; DEFINE GROUP “bank1” “in*” “out_[0-31]”; IOBUF GROUP “bank1” IO_TYPE=SSTL18_II; OPENDRAIN=ON DRIVE=8 PULLMODE=UP LOCATE 明示されたコンポーネントに適用されるとき、このプリファレンスは、指定されたサイトにそのコンポーネ ントを配置してロックします。指定されたマクロ・インスタンスに適用される場合、(1)マクロの参照コンポ ーネントを指定されたサイトに配置し、(2)マクロ内のライブラリ・ファイルに事前に配置された全てのコン ポーネントをサイトに配置し、そして(3)これらのコンポーネントのすべてをそのサイトにロックします。ま た、これは指定されたPGROUPにも適用することができます。 構文 LOCATE [COMP <comp_name> | MACRO <macro_name>] SITE <site_name>; LOCATE PGROUP <pgroup_name> [SITE <site_name>; | REGION <region_name>;] LOCATE PGROUP <pgroup_name> RANGE <site_1> [<site_2> | <count>] [<direction>] | RANGE <chip_side> [<direction>]; LOCATE BUS < bus_name> ROW|COL <number>; <bus_name> := string <number> := integer 注;comp_name、macro_name、あるいはsite_nameがアルファ・キャラクタ以外の何か(例えば、"11C7") で始まる場合、名前をクウォート記号で囲まなければなりません。ワイルドカード表記は<comp_name>で 許容されています。 例 このコマンドはポートClk0をサイトA4に置きます。 LOCATE COMP “Clk0” SITE “A4”; LatticeECP2/M 9-18 sysIO UGJ TN1102_01.6J Apr. 2008 このコマンドはコンポーネントPFU1をサイトにR1C7置きます。 LOCATE COMP “PFU1” SITE “R1C7”; このコマンドはbus1をROW 3に、bus2をCOL4に置きます。 LOCATE BUS “bus1” ROW 3; LOCATE BUS “bus2” COL 4; USE DIN CELL このプリファレンスは、入力フリップフロップとして用いる特定のレジスタを指定します。 構文 USE DIN CELL <cell_name>; ここで: <cell_name> := string 例 USE DIN CELL “din0”; USE DOUT CELL 出力フリップフロップとして用いる特定のレジスタを指定します。 構文 USE DOUT CELL <cell_name>; ここで: <cell_name> := string 例 USE DOUT CELL “dout1”; PGROUP VREF このプリファレンスは、バンク内の1本のVREF ピンに関連づけられる必要があるすべてのコンポーネントを グループ化するのに用いられます。 構文 PGROUP <pgrp_name> [(VREF <vref_name>)+] (COMP <comp_name>)+; LOCATE PGROUP <pgrp_name> BANK <bank_num>; LOCATE VREF <vref_name> SITE <site_name>; 例 PGROUP “vref_pg1” VREF “ref1” COMP “ah(0)” COMP “ah(1)” COMP “ah(2)” COMP “ah(3)” COMP “ah(4)” COMP “ah(5)” COMP “ah(6)” COMP “ah(7)”; PGROUP “vref_pg2” VREF “ref2” COMP “al(0)” COMP “al(1)” COMP “al(2)” COMP “al(3)” COMP “al(4)” COMP “al(5)” COMP “al(6)” COMP “al(7)”; LOCATE VREF “ref1” SITE PR29C; LOCATE VREF “ref2” SITE PR48B; または LOCATE PGROUP “ vref_pg1” BANK 2; LOCATE PGROUP “ vref_pg2” BANK 2; LatticeECP2/M 9-19 sysIO UGJ