11.07.2015 Views

Spartan-3 ジェネレーション FPGA ユーザー ガイド (UG331) - Xilinx

Spartan-3 ジェネレーション FPGA ユーザー ガイド (UG331) - Xilinx

Spartan-3 ジェネレーション FPGA ユーザー ガイド (UG331) - Xilinx

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>Spartan</strong>-3 ジェネレーション<strong>FPGA</strong> ユーザー ガイド<strong>Spartan</strong>-3A DSP、 <strong>Spartan</strong>-3AN、<strong>Spartan</strong>-3A、 <strong>Spartan</strong>-3E、<strong>Spartan</strong>-3 <strong>FPGA</strong> プラッ トフォーム<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日本 資 料 は 英 語 版 (v1.4) を 翻 訳 し た ものです。 英 語 の 更 新 バージ ョ ンがリ リ ース されている 場 合 には、 最 新 の 英 語 版 を必 ずご 参 照 く だ さ い。R


R<strong>Xilinx</strong> is disclosing this Document and Intellectual Property (hereinafter “the Design”) to you for use in the development ofdesigns to operate on, or interface with <strong>Xilinx</strong> <strong>FPGA</strong>s. 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 <strong>Xilinx</strong>. Any unauthorized useof the Design may violate copyright laws, trademark laws, the laws of privacy and publicity, and communications regulations andstatutes.<strong>Xilinx</strong> does not assume any liability arising out of the application or use of the Design; nor does <strong>Xilinx</strong> convey any license underits patents, copyrights, or any rights of others. You are responsible for obtaining any rights you may require for your use orimplementation of the Design. <strong>Xilinx</strong> reserves the right to make changes, at any time, to the Design as deemed desirable in the solediscretion of <strong>Xilinx</strong>. <strong>Xilinx</strong> assumes no obligation to correct any errors contained herein or to advise you of any correction if suchbe made. <strong>Xilinx</strong> will not assume any liability for the accuracy or correctness of any engineering or technical support or assistanceprovided to you in connection with the Design.THE DESIGN IS PROVIDED “AS IS” WITH ALL FAULTS, AND THE ENTIRE RISK AS TO ITS FUNCTION ANDIMPLEMENTATION IS WITH YOU. YOU ACKNOWLEDGE AND AGREE THAT YOU HAVE NOT RELIED ON ANYORAL 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 THEDESIGN, 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, ORINCIDENTAL DAMAGES, INCLUDING ANY LOST DATA AND LOST PROFITS, ARISING FROM OR RELATING TOYOUR USE OF THE DESIGN, EVEN IF YOU HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. THETOTAL CUMULATIVE LIABILITY OF XILINX IN CONNECTION WITH YOUR USE OF THE DESIGN, WHETHER INCONTRACT OR TORT OR OTHERWISE, WILL IN NO EVENT EXCEED THE AMOUNT OF FEES PAID BY YOU TOXILINX HEREUNDER FOR USE OF THE DESIGN. YOU ACKNOWLEDGE THAT THE FEES, IF ANY, REFLECT THEALLOCATION OF RISK SET FORTH IN THIS AGREEMENT cc THAT XILINX WOULD NOT MAKE AVAILABLE THEDESIGN 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 environmentsrequiring fail-safe controls, such as in the operation of nuclear facilities, aircraft navigation or communications systems, air trafficcontrol, life support, or weapons systems (“High-Risk Applications”). <strong>Xilinx</strong> specifically disclaims any express or impliedwarranties of fitness for such High-Risk Applications. You represent that use of the Design in such High-Risk Applications is fullyat your risk.© 2002-2008 <strong>Xilinx</strong>, Inc. All rights reserved. XILINX, the <strong>Xilinx</strong> logo, and other designated brands included herein aretrademarks of <strong>Xilinx</strong>, Inc. PowerPC is a trademark of IBM Corp. and used under license. PCI, PCI-X, and PCI EXPRESS areregistered trademarks of PCI-SIG. All other trademarks are the property of their respective owners.こ の 日 本 語 訳 ( 参 考 のみ) は、 http://japan.xilinx.com/support/documentation/disclaimer.htm を 参 照 して く ださい。改 訂 履 歴次 の 表 に、 こ の 文 書 の 改 訂 履 歴 を 示 し ます。日 付 バージ ョ ン 改 訂 内 容2006 年 12 月 5 日 1.0 初 期 リ リ ース2007 年 2 月 26 日 1.1 <strong>Spartan</strong>-3AN <strong>FPGA</strong> を 追 加2007 年 4 月 2 日 1.2 <strong>Spartan</strong>-3A DSP <strong>FPGA</strong> を 追 加2008 年 2 月 14 日 1.3 最 新 のパ ッ ケージの 情 報 でア ッ プデー ト 。 説 明 と 図 をユーザー ガイド 全 体 でアップデー ト および 修 正 。 ザ イ リ ン ク ス Web サイトへのリンクをアップデート。2008 年 6 月 25 日 1.4 デザイ ン フ ァ イ ルへの リ ン ク を 追 加 およびア ッ プデー ト 。 I/O セクションのバンク規 則 をア ッ プデー ト 。 「 振 幅 が 大 き な 信 号 の 使 用 」 に XAPP459 への リ ン ク を 追 加 。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com <strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


目 次このマニュアルについてマニュアルの 内 容 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23その 他 の リ ソース . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24表 記 規 則 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25書 体 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25オンライン マニュアル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26セクション I : <strong>Spartan</strong>-3 ジェネレーション<strong>FPGA</strong> の 設 計第 1 章 : 概 要概 要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29<strong>Spartan</strong>-3 ジェネレーション プラッ ト フォーム . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30<strong>Spartan</strong>-3 ジェネレーションの 機 能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31<strong>Spartan</strong>-3E/3A に 追 加 されている 機 能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33<strong>Spartan</strong>-3A に 追 加 されている 機 能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33<strong>Spartan</strong>-3AN に 追 加 されている 機 能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34<strong>Spartan</strong>-3A DSP に 追 加 されている 機 能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34<strong>Spartan</strong>-3 ジェネレーションのリ ソース . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35アーキテ クチャの 概 要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37コンフィギュレーション . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38I/O 機 能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39パッケージ マーク . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43注 文 情 報 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44第 2 章 : グローバル クロック リ ソースの 使 用概 要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45はじめに . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> 間 でのグローバル クロック リソースの 違 い . . . . . . . . . . . . . 45グローバル クロック リソース . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46クロック インフラスト ラクチャ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46クロック 入 力 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48<strong>Spartan</strong>-3A/3AN/3A DSP のクロック 入 力 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49<strong>Spartan</strong>-3E のクロック 入 力 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50<strong>Spartan</strong>-3 のクロック 入 力 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51ク ロ ッ ク 入 力 と DCM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 512 つの 入 力 を 使 用 する 差 動 ク ロ ッ ク . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51専 用 ク ロ ッ ク 入 力 の 使 用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52IBUFG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52IBUFGDS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52クロック バッファ /マルチプレ クサ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53BUFGMUX によるクロック 選 択 の 詳 細 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 3<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R目 次クロック バッファ /マルチプレ クサの 使 用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54BUFGMUX および BUFGMUX_1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54BUFG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54BUFGCE および BUFGCE_1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55XST によるクロッ ク バッファの 合 成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56BUFGMUX の 接 続 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56BUFGMUX の 入 力 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56BUFGMUX の 出 力 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59<strong>Spartan</strong>-3 のグローバル クロック バッファ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59区 画 ク ロ ッ ク 配 線 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59上 辺 / 下 辺 および 左 辺 / 右 辺 のグ ローバル クロックの 選 択 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61<strong>Spartan</strong>-3 のグローバル クロック 配 線 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61その 他 の 情 報 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61ク ロ ッ ク の 消 費 電 力 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61クロックのセットアップ タイムとホールド タイム . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62まとめ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62その 他 の 情 報 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62第 3 章 : デジタル クロック マネージャ (DCM) の 使 用概 要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63はじめに . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63DCM に 関 する ト ピ ッ ク の 参 照 先 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65ほかのザイ リ ン ク ス <strong>FPGA</strong> フ ァ ミ リ と の 互 換 性 および 比 較 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65DCM の 位 置 と ク ロ ッ ク 分 配 ネ ッ ト ワーク インターフェイス . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67DCM の 機 能 の 概 要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68遅 延 ロ ッ ク ループ (DLL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69デジ タル 周 波 数 合 成 (DFS) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69位 相 シフ ト (PS) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69ステータス ロジック . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70DCM プリ ミティブ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70シンボル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71接 続 ポー ト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71属 性 、 プ ロパテ ィ 、 制 約 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76DCM のクロック 要 件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80入 力 ク ロ ッ ク 周 波 数 の 範 囲 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80出 力 ク ロ ッ ク 周 波 数 の 範 囲 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81入 力 ク ロ ッ ク と ク ロ ッ ク フィードバックの 変 動 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81サイクル 間 ジッタ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81周 期 ジ ッ タ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82DLL のフ ィ ー ド バ ッ ク 遅 延 の 変 動 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82スペク ト ラム 拡 散 ク ロ ッ ク . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82DCM ク ロ ッ ク 入 力 および 外 部 フ ィ ー ド バ ッ ク 入 力 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83<strong>Spartan</strong>-3E <strong>FPGA</strong> の DCM のクロック 入 力 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83<strong>Spartan</strong>-3A/3AN/3A DSP <strong>FPGA</strong> の DCM のクロック 入 力 . . . . . . . . . . . . . . . . . . . . . 86LOCKED 出 力 の 動 作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89LOCKED 信 号 の 使 用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 904 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R目 次メモリの 構 成 /アスペク ト 比 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170CORE Generator - メモリ サイズ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171VHDL/Verilog インスタンシエーション . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1712 つのポー ト 間 のア ド レ ス と データ マップ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171メ モ リ 内 容 の 初 期 化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172CORE Generator - 初 期 化 フ ァ イルの 読 み 込 み . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172VHDL/Verilog インスタンシエーション - INIT_xx、 INITP_xx . . . . . . . . . . . . . . . . 173データ 出 力 ラ ッ チの 初 期 化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173CORE Generator - グローバル INIT 値 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174VHDL/Verilog インスタンシエーション - INIT (INIT_A、 INIT_B) . . . . . . . . . . . . . 174データ 出 力 ラ ッ チの 同 期 セ ッ ト / リセット 値 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174CORE Generator - INIT 値 (SINIT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174VHDL/Verilog インスタンシエーション - SRVAL (SRVAL_A、 SRVAL_B) . . . . . 175同 時 書 き 込 み 中 の 読 み 出 し 動 作 - WRITE_MODE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175WRITE_FIRST ( 透 過 ) モード (デフォル ト) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176READ_FIRST ( 書 き 込 み 前 に 読 み 出 し) モード . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177NO_CHANGE ( 変 化 な し) モード . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177CORE Generator - 書 き 込 みモー ド . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178VHDL/Verilog インスタンシエーション - WRITE_MODE . . . . . . . . . . . . . . . . . . . . 179ロケーション 制 約 (LOC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179ブロッ ク RAM の 動 作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180コンフィギュレーション 中 の RAM の 初 期 化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181コンフィギュレーションまたはグローバル リセットの 直 後 のグローバルセッ ト/ リ セ ッ ト 信 号 に よ るデータ 出 力 ラ ッ チの 初 期 化 . . . . . . . . . . . . . . . . . . . . . . . . . 181イ ネーブル 入 力 によ る RAM のイネーブル/ディスエーブル . . . . . . . . . . . . . . . . . . . . . . . . 181同 期 セ ッ ト / リ セ ッ ト に よ るデータ 出 力 ラ ッ チの 初 期 化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182同 時 書 き 込 み と 同 期 セ ッ ト / リセット 操 作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182クロック イネーブルがアサート されていると クロック エッジごとに読 み 出 し 操 作 が 発 生 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182書 き 込 み 操 作 中 は 常 に 同 時 読 み 出 し 操 作 が 実 行 さ れ、 データ 出 力 ラ ッ チの動 作 に 影 響 する . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182全 般 的 な 特 徴 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182ほかの <strong>FPGA</strong> フ ァ ミ リ と の 互 換 性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183デュアル ポー ト RAM での 競 合 の 解 消 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183タイミング 違 反 による 競 合 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1832 つのポー ト で 異 な るデータ を 同 時 に 書 き 込 むこ と に よ り 発 生 する 競 合 . . . . . . . . . . . . . . 184出 力 ラ ッチでの 書 き 込 みモード の 競 合 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185競 合 の 解 消 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185ブロッ ク RAM のデザイ ン 入 力 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186CORE Generator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186VHDL/Verilog インスタンシエーション . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186ブロッ ク RAM の 推 論 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186インスタンシエーション テンプレート . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187VHDL または Verilog コー ド での 初 期 化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187ブロッ ク RAM のアプ リ ケーシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187大 型 RAM 構 造 の 作 成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187読 み 出 し 専 用 メ モ リ (ROM) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1878 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


目 次RFIFO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188エンベデッ ド プロセッサの 保 存 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188デバイ スのビ ッ ト ス ト リ ームの 変 更 に よ る ブ ロ ッ ク RAM/ROM 内 容 のア ッ プデー ト . . . 1881 つのブロ ッ ク RAM を 使 用 した 2 つの 独 立 し たシングル ポー ト RAM . . . . . . . . . . . . . . 1891 つのブロ ッ ク RAM を 使 用 した 256x72 シングル ポー ト RAM . . . . . . . . . . . . . . . . . . . 190循 環 バ ッ フ ァ 、 シフ ト レジスタ、 遅 延 ライン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191高 速 複 素 ス テー ト マシン とマイ ク ロシーケンサ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193RAM を 使 用 した 高 速 の 大 型 カウンタ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1944 ポー ト メモリ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196CAM (Content Addressable Memory) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196ブロック RAM を 使 用 したロジッ ク ファンクションのインプリ メント . . . . . . . . . . . . . . . 196あいまいパターン 照 合 回 路 の 例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197MAP -bp オプシ ョ ン を 使 用 し た ロ ジ ッ ク のブ ロ ッ ク RAM へのマ ッ プ . . . . . . . . . . 198ブロック RAM を 使 用 し た 波 形 格 納 、 フ ァ ン ク シ ョ ン テーブル、 ダイ レ ク トデジタル 合 成 (DDS) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198関 連 資 料 および リ フ ァ レ ン ス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200まとめ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200付 録 A : VHDL インスタンシエーション 例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200付 録 B : Verilog インスタンシエーション 例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203第 5 章 : CLB (コンフィギャブル ロジック ブロック) の 使 用CLB の 概 要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205CLB アレイ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> 間 での CLB の 違 い . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206スライス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207スライス ロケーションの 指 定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209スライスの 概 要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209ロジック セル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210スライスの 詳 細 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210主 要 な ロ ジ ッ ク パス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212ルッ クアップ テーブル (LUT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213多 入 力 マルチプレ ク サ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213キャ リー ロジックおよび 演 算 ロジック . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213記 憶 エレ メ ン ト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214初 期 化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215分 散 RAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215シフ ト レジスタ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215関 連 資 料 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216第 6 章 : 分 散 RAM としてのルックアップ テーブルの 使 用概 要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217はじめに . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217シングル ポー ト RAM およびデュ アル ポー ト RAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218データ フロー . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218書 き 込 み 操 作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218読 み 出 し 操 作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 9<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


目 次Rクロック イネーブル - CE (オプシ ョ ン) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239アドレス - A3、 A2、 A1、 A0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240データ 出 力 - Q . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240データ 出 力 - Q15 (オプシ ョ ン) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240制 御 ピ ンの 反 転 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240GSR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240属 性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240内 容 初 期 化 - INIT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240ロケーション 制 約 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240シフ ト レジスタの 動 作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241データ フロー . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241シフ ト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242ダ イナ ミ ッ ク 読 み 出 し . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242ス タ テ ィ ッ ク 読 み 出 し . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243特 徴 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243シフ ト レジスタの 推 論 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244VHDL 記 述 ( 推 論 ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244Verilog 記 述 ( 推 論 ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245シフ ト レジスタ サブモジュール . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245完 全 同 期 シフ ト レジスタ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247固 定 長 シフ ト レジスタ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247VHDL/Verilog インスタンシエーション . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248VHDL および Verilog テンプレート . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248CORE Generator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250応 用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251遅 延 ラ イ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251リニア フィードバック シフ ト レジスタ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251Gold 符 号 ジ ェ ネ レータ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252FIFO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253カウンタ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254関 連 資 料 および リ フ ァ レ ン ス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255まとめ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255第 8 章 : 専 用 マルチプ レ クサの 使 用概 要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257はじめに . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> 間 の 専 用 マルチプレ クサの 違 い . . . . . . . . . . . . . . . . . . . . . . 258専 用 マルチプレ ク サの 利 点 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258CLB マルチプレ クサの リ ソース . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259F5MUX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260FiMUX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261命 名 規 則 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261専 用 ローカル 配 線 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262マルチプレ クサ セレク ト 入 力 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263インプリ メンテーションの 例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263多 入 力 マルチプレ ク サ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 11<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R目 次多 入 力 フ ァ ン ク シ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265タイミング パラ メータ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268極 性 のプ ロ グ ラ ム . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268マルチプレ クサのフ ロアプラン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269その 他 のマルチプレ クサの 用 途 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269マルチプレ クサと ト ラ イ ステー ト バッファ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269マルチプレ クサの 代 わ り に メ モ リ を 使 用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269その 他 のマルチプレ クサ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270マルチプレ ク サを 使 用 し た 設 計 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270推 論 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270Verilog 記 述 ( 推 論 ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271VHDL 記 述 ( 推 論 ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271ライブラリ プリ ミティブ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272マルチプレ クサのイネーブル 信 号 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273ローカル 出 力 のタイ ミ ング . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273サブモジュール . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274ポー ト 信 号 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274データ 入 力 - DATA_I . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274セレク ト 入 力 - SELECT_I . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274データ 出 力 - DATA_O . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274アプ リ ケーシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275VHDL/Verilog インスタンシエーション . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275VHDL および Verilog のサブモジュール . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275CORE Generator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279関 連 資 料 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280まとめ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280第 9 章 : キャリー ロ ジ ッ ク および 演 算 ロ ジ ッ クの 使 用概 要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281はじめに . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> 間 のキ ャ リ ー ロジックおよび 演 算 ロジックの 違 い . . . . . . . 281ルッ クアヘッ ド キ ャ リ ー 加 算 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282リソースの 詳 細 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284MUXCY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285キャリー チェーンのバ イパス と 初 期 化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286XORCY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286キャリー ロジック 接 続 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286スライス 内 の 接 続 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286スライスおよび CLB 間 の 接 続 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286乗 算 リ ソース . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289コンポーネント 名 とピン 名 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290パフォーマンス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292仕 様 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297キャ リー ロジックおよび 演 算 ロジックを 使 用 した 設 計 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298キ ャ リ ーを 使 用 する ラ イ ブ ラ リ エレ メン ト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298プリ ミティブ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29912 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


目 次RXORCY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300MULT_AND . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301Virtex-II ORCY コンポーネントのエミ ュレーション . . . . . . . . . . . . . . . . . . . . . . . . . 302マクロ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302CORE Generator の 使 用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304加 算 器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304アキュムレータ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304コンパレータ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304乗 算 器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305論 理 ゲー ト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305キ ャ リ ーおよび 合 成 制 約 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305MUX_STYLE 制 約 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306MULT_STYLE 制 約 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306キ ャ リ ーおよび 相 対 ロ ケーシ ョ ン 制 約 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306キャ リーおよびフロアプラン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308応 用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309多 入 力 ゲー ト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309積 和 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310コンパレータ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311加 算 器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312カウンタ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312乗 算 器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314キャ リー ベースの 乗 算 器 の 最 適 化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316MULT_AND と MULT18X18 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317MULT_AND と CLB ロジック . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317その 他 の タ イ プの 乗 算 器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317まとめ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318関 連 資 料 および リ フ ァ レ ン ス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318第 10 章 : I/O リ ソースの 使 用IOB 概 要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> 間 の I/O の 相 違 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322デバイ ス ご と の リ ソース 数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322入 力 専 用 ピ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322パッケージ フ ッ ト プ リ ン ト の 互 換 性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323相 違 点 の 概 要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323デザイ ン 入 力 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324ライブラリ コンポーネント . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324レジスタ 付 き I/O . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325差 動 I/O . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326IBUF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326IBUFG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326IBUFDS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327OBUF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327OBUFT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327IOBUF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 13<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R目 次DDR および 調 整 可 能 な 遅 延 I/O コンポーネント . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328HDL 入 力 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328アーキテ クチャの 詳 細 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329入 力 遅 延 フ ァ ン ク シ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329プログラム 可 能 な 遅 延 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330<strong>Spartan</strong>-3A/3AN/3A DSP <strong>FPGA</strong> でのダイナ ミ ッ ク 遅 延 . . . . . . . . . . . . . . . . . . . . . . 331記 憶 エレ メ ン ト ファンクション . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333DDR (ダブル データ レート) 転 送 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334レジスタ カスケード 機 能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335IDDR2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335ODDR2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337プルア ップ 抵 抗 およびプルダウ ン 抵 抗 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 338<strong>FPGA</strong> プルア ッ プ 抵 抗 値 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339キーパ 回 路 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339JTAG バウンダ リ スキャン 機 能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340SelectIO 信 号 規 格 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340I/O 規 格 の 概 要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340LVTTL - 低 電 圧 TTL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342LVCMOS - 低 電 圧 CMOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342PCI - ペリフェラル コンポーネント インターフェイス . . . . . . . . . . . . . . . . . . . . . . . 342GTL - ガンニング トランシーバ ロジック 終 端 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342GTL+ - ガンニング トランシーバ ロジック プラス . . . . . . . . . . . . . . . . . . . . . . . . . . 342HSTL - 高 速 ト ラ ンシーバ ロジック . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342SSTL3 - 3.3V 用 SSTL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342SSTL25 - 2.5V 用 SSTL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342SSTL18 - 1.8V 用 SSTL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342LVDS - 低 電 圧 差 動 信 号 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343BLVDS - バス LVDS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343LVPECL - 低 電 圧 ポジテ ィ ブ エミッタ カップル ロジック . . . . . . . . . . . . . . . . . . . . 343LDT - HyperTransport ( 旧 Lightning Data Transport) . . . . . . . . . . . . . . . . . . . . . . . . . 343mini-LVDS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343LVDS 拡 張 - 拡 張 モー ド LVDS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343RSDS - 低 振 幅 差 動 信 号 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343TMDS - 遷 移 時 間 最 短 差 動 信 号 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343PPDS - ポイン ト トゥ ポ イ ン ト 差 動 信 号 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> 間 での I/O 規 格 の 違 い . . . . . . . . . . . . . . . . . . . . . . . . . 344IOSTANDARD 属 性 を 使 用 し た I/O 規 格 の 指 定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346タイミング 解 析 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347LVCMOS/LVTTL スルー レー ト 制 御 および 駆 動 電 流 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349同 時 ス イ ッ チ 出 力 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350HSTL/SSTL V REF 参 照 電 圧 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351シングルエンド I/O の 終 端 手 法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352差 動 I/O 規 格 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355オンチ ッ プ 差 動 終 端 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355DCI (デジ タル 制 御 イ ン ピーダン ス) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 357IOB の 電 源 電 圧 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35814 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


目 次RESD 耐 性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 358IOB バン ク . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 358シングルエンド I/O 規 格 のバン ク での 互 換 性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359差 動 I/O 規 格 のバン ク での 互 換 性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361I/O バンクの 規 則 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364振 幅 が 大 き な 信 号 の 使 用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365変 圧 器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365オープン ドレイン 接 続 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366内 部 ダ イ オー ド を 使 用 し た 電 圧 ク ラ ンプ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366電 源 投 入 時 、 コ ン フ ィ ギ ュ レーシ ョ ン 中 、 および ユーザー モード での入 力 専 用 ピ ンのビヘイ ビ ア . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367コ ン フ ィ ギ ュ レーシ ョ ン 後 の 未 使 用 I/O ピン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367関 連 資 料 および リ フ ァ レ ン ス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 368第 11 章 : エ ンベデ ッ ド 乗 算 器 の 使 用概 要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369はじめに . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> 間 でのエンベデ ッ ド 乗 算 器 リ ソースの 違 い . . . . . . . . . . . . . 3702 の 補 数 の 符 号 付 き 乗 算 器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 370ロケーション 制 約 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372乗 算 器 と ブ ロ ッ ク RAM の 接 続 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372パイプライン レジスタ (オプシ ョ ン) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372タイムスペック . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373乗 算 器 の 拡 張 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374乗 算 器 のカ ス ケー ド 接 続 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3761 つのプ リ ミ テ ィ ブに 2 つの 乗 算 器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377デザイ ン 入 力 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 378MULT_STYLE 制 約 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 380CORE Generator の 使 用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 380System Generator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382MAC コア . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382<strong>Spartan</strong>-3 <strong>FPGA</strong> のライブラ リ プリ ミティブ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382データ フロー . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383<strong>Spartan</strong>-3 ジェネレーション アーキテ ク チャ の 乗 算 器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384乗 算 器 以 外 の 利 用 方 法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384シフタ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385絶 対 値 の 生 成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3852 の 補 数 の 生 成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385複 素 乗 算 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 386マ ト リ ッ ク ス 乗 算 の 時 分 割 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 386浮 動 小 数 点 の 乗 算 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 386関 連 資 料 および リ フ ァ レ ン ス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 387まとめ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 387付 録 A : 2 の 補 数 の 乗 算 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 388<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 15<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R目 次第 12 章 : イ ン タ ーコ ネ ク ト の 使 用概 要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> 間 のイ ン ターコ ネ ク ト の 違 い . . . . . . . . . . . . . . . . . . . 389スイッチ マト リックス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 390ロング ライン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 391HEX ライン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 391ダブル ライン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 392ダイレク ト 接 続 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 392<strong>FPGA</strong> Editor を 使 用 したインターコネク ト の 表 示 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 392グ ローバル 制 御 信 号 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393STARTUP_SPARTAN3 プリ ミティブ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393まとめ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 394セクション II : デザイ ン ソフトウェア第 13 章 : ISE デザイ ン ツールの 使 用概 要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 397はじめに . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 397デザイ ン フロー . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 397デザ イ ン 入 力 および 合 成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 399階 層 デザ イ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 399回 路 図 入 力 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 400HDL 入 力 および 合 成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 400制 約 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401デザイ ン インプリ メンテーション . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401変 換 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402マップ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403配 置 配 線 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404ビッ トスト リームの 生 成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404デザイ ン 検 証 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404シミュレーション . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405スタティック タイミング 解 析 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406インサーキッ ト 検 証 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 407ISE 開 発 環 境 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 407ISE について . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 407デザイ ン 入 力 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 407合 成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 407シミュレーション . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 407インプリ メンテーション . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 408デバイ スのダ ウ ン ロー ド . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 408ISE のコンフィギュレーショ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 408Project Navigator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 408Project Navigator のメイン ウィンドウ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 409プロジェク ト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 409ソース . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41016 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


目 次Rソースの 階 層 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 410ISE ツール . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 410Schematic Editor/Symbol Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 410ISE Text Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 410StateCAD ステート マシン エデ ィ タ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 411XST (<strong>Xilinx</strong> Synthesis Technology) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 411HDL Advisor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 411パー ト ナー ツール . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 411IP (Intellectual Property) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 411CORE Generator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 411System Generator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 412EDK (エンベデ ッ ド 開 発 キ ッ ト ) と Platform Studio . . . . . . . . . . . . . . . . . . . . . . . . . . 412Clocking Wizard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 412Data2MEM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 412インプリ メンテーションの 機 能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413インク リ メンタル デザイ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413モジュール デザイ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414Constraints Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414PACE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414Floorplanner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414PlanAhead . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 415<strong>FPGA</strong> Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 415HDL Bencher . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 415Timing Analyzer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 416ISE Simulator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 416iMPACT コンフィギュレーション ツール . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 416ChipScope Pro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 416電 力 解 析 ツール . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 417関 連 資 料 および リ フ ァ レ ン ス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 417まとめ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 417第 14 章 : IP コ アの 使 用概 要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 419CORE Generator システム . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 419ザイ リ ンクス IP ソリューションおよび IP センタ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 419LogiCORE 製 品 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 420AllianceCORE 製 品 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 420Candidate コア 製 品 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 421デザイ ン ファイル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 421ザイ リ ンクス Alliance プログラム パー ト ナー サービ ス . . . . . . . . . . . . . . . . . . . . . . . . . . . 421SignOnce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 421<strong>Spartan</strong>-3 ジェネレーションの IP コア . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 421関 連 資 料 および リ フ ァ レ ン ス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 440<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 17<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


目 次RFT256/FTG256 Fine-Pitch Thin BGA パッケージ (pk053) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 469FG320/FGG320 Fine-Pitch BGA パッケージ (pk071) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 470FG400/FGG400 Fine-Pitch BGA パッケージ (pk083) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 471FG456/FGG456 Fine-Pitch BGA パッケージ (pk034) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 472FG484/FGG484 Fine-Pitch BGA パッケージ (pk081) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 473CS484/CSG484 Chip-Scale BGA パッケージ (pk223) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 474FG676/FGG676 Fine-Pitch BGA パッケージ (pk035) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 475FG900/FGG900 Fine-Pitch BGA パッケージ (pk038) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 476FG1156/FGG1156 Fine-Pitch BGA パッケージ (pk039) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 477第 18 章 : <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> の 電 源概 要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 479<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> 間 での 違 い . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 479電 源 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 480V REF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 481電 力 概 算 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 481電 圧 レ ギ ュ レータ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 481電 源 投 入 時 の 動 作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 482電 源 投 入 順 序 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 482V CCINT が V CCAUX よ り 前 に 投 入 された 場 合 の I CCINT . . . . . . . . . . . . . . . . . . . . . . . . . . . 483立 ち 上 が り 時 間 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 483ホッ ト スワップ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 483コンフィギュレーション データ の 保 持 と 電 圧 低 下 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 483節 電 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 484ク ロ ッ ク 配 線 におけ る 節 電 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 484パワーオフ モー ド . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 485一 時 停 止 モー ド . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 487ボード デザイ ン と シグナル インテグリティ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 487同 時 ス イ ッ チ 出 力 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 487PDS デザイ ン と キ ャパシ タのデカ ッ プ リ ング/バイパス . . . . . . . . . . . . . . . . . . . . . . . . . . . 487内 部 電 荷 ポンプま たはオシレータ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 487振 幅 の 大 き い 信 号 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 488関 連 文 書 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 488第 19 章 : パワー マネージメン ト ソリューション概 要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 489<strong>Spartan</strong>-3A/3AN/3A DSP の 一 時 停 止 モー ド . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 490一 時 停 止 の 機 能 と 利 点 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 491一 時 停 止 モー ド の 設 計 準 備 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 491一 時 停 止 モー ド の 開 始 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 492一 時 停 止 モー ド の 終 了 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 494PROG_B プログラム ピ ンに よ る 一 時 停 止 モー ド の 上 書 き . . . . . . . . . . . . . . . . . . . . . 495一 時 停 止 モー ド の タ イ ミ ング 例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 495一 時 停 止 を イ ネーブルにする 方 法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 497ユーザー 制 約 フ ァ イル (UCF) での 指 定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 497BitGen からの 指 定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 497<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 19<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


目 次R第 21 章 : バウンダ リ スキャンと BSDL フ ァ イルの 使 用概 要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 515バウンダリ スキャンの 概 要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 515IEEE 規 格 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 515バウンダリ スキャンの 機 能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 517バウンダリ スキャン ツール . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 517BSDL ファイル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 517BSDL ファイルの 構 成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 518BSDL ファイルの 検 証 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 520BSDLAnno の 使 用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 521ソフトウェア サポー ト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 521iMPACT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 522SVF ファイル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 522IEEE 1532 プログラム 用 J Drive Engine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 522BSCAN_SPARTAN3A マクロの 使 用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 522関 連 資 料 および リ フ ァ レ ン ス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 523<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 21<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R目 次22 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


Rこのマニュアルについてこのユーザー ガイ ド では、 <strong>Spartan</strong> ® -3、 <strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3A、 <strong>Spartan</strong>-3AN、 <strong>Spartan</strong>-3A DSP<strong>FPGA</strong> プラ ッ ト フ ォ ームを 含 む <strong>Spartan</strong>-3 ジェネレーショ ン <strong>FPGA</strong> のアーキテク チャ 機 能 の 使 用 方法 を 説 明 し ま す。 こ れら のプラ ッ ト フ ォ ーム すべてについて 説 明 さ れている ので、 類 似 点 や 相 違 点がわかり やすく なっ ており 、 複 数 のリ ソ ース で 同 じ 内 容 を 繰 り 返 す 必 要 を なく し ていま す。 プラ ットフォーム 間 の 比 較 には、「セ ク シ ョ ン I : <strong>Spartan</strong>-3 ジェネレーショ ン<strong>FPGA</strong> の 設 計 」 ま たはhttp://japan.xilinx.com/products/spartan3a/3a.htm を 参 照 してく ださい。このユーザー ガイドには、<strong>Spartan</strong> <strong>FPGA</strong> データ シー ト のモジ ュール 2 ( 機 能 の 説 明 ) やデバイ スのアプ リ ケーシ ョ ン ノー ト に 含 まれていた 内 容 が 記 述 されています。 プラッ ト フォーム 別 の DC 特 性およびスイ ッチ 特 性 (モジュール 3) およびピ ン 配 置 情 報 (モジュール 4) は、データ シー ト を 参 照 してください。<strong>Spartan</strong>-3E および <strong>Spartan</strong>-3A/3AN/3A DSP プラッ ト フォームの 機 能 はすべてこのユーザー ガイドで 説 明 されていますが、DCI やクロッ ク 構 造 などの <strong>Spartan</strong>-3 プラッ ト フォームとの 違 いについては、<strong>Spartan</strong>-3 <strong>FPGA</strong> データ シー ト のモジ ュール 2 またはデバイスのアプリケーション ノ ー ト を 参 照 し て く だ さ い。<strong>Spartan</strong>-3 ジェネレーショ ン <strong>FPGA</strong> のコ ン フ ィ ギ ュ レーシ ョ ンに 関 する 情 報 は、 『<strong>Spartan</strong>-3Generation Configuration User Guide』 (UG332) を 参 照 して く ださい。 <strong>Spartan</strong>-3AN <strong>FPGA</strong> の 内 部SPI フラッシュ メ モ リ の 使 用 方 法 については、 『<strong>Spartan</strong>-3AN <strong>FPGA</strong> In-System Flash User Guide』(UG333) を 参 照 して く ださい。 これらのユーザー ガ イ ド と データ シー ト の 仕 様 で、 <strong>Spartan</strong>-3 ジェネレーシ ョ ン アーキテ ク チャ のすべての 情 報 が 提 供 さ れます。http://japan.xilinx.com/support/documentation/spartan-3a.htm でこれらの 文 書 のアップデートを 確認 してください。 このユーザー ガイドがアップデート された 際 に 自 動 的 にアラート を 受 け 取 るには、 こ のページの 上 部 にあ る [アラートに 登 録 ] リンクをクリックしてください。マニ ュ アルの 内 容こ のマニ ュ アルは、 次 の 章 か ら 構 成 さ れています。• 「セ ク シ ョ ン I : <strong>Spartan</strong>-3 ジェネレーション<strong>FPGA</strong> の 設 計 」♦ 第 1 章 「 概 要 」♦ 第 2 章 「グローバル クロック リソースの 使 用 」♦ 第 3 章 「デジタル クロック マネージャ (DCM) の 使 用 」♦ 第 4 章 「ブロッ ク RAM の 使 用 」♦ 第 5 章 「CLB (コンフィギャブル ロジック ブロック) の 使 用 」♦ 第 6 章 「 分 散 RAM としてのルックアップ テーブルの 使 用 」♦ 第 7 章 「ルッ クアップ テーブルのシフ ト レジスタ (SRL16) と し ての 使 用 」♦ 第 8 章 「 専 用 マルチプレ ク サの 使 用 」<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 23<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


Rこのマニュアルについて♦ 第 9 章 「キャ リー ロ ジ ッ ク および 演 算 ロ ジ ッ ク の 使 用 」♦ 第 10 章 「I/O リ ソ ースの 使 用 」♦ 第 11 章 「エンベデ ッ ド 乗 算 器 の 使 用 」♦ 第 12 章 「インターコネク トの 使 用 」• 「セ ク シ ョ ン II : デザイ ン ソフトウェア」♦ 第 13 章 「ISE デザイ ン ツールの 使 用 」♦ 第 14 章 「IP コ アの 使 用 」♦ 第 15 章 「エンベデッ ド プロセッサとコン ト ローラのソ リ ューショ ン」• 「セ ク シ ョ ン III : PCB 設 計 の 考 慮 事 項 」♦ 第 16 章 「パ ッ ケージおよびピ ン 配 置 」♦ 第 17 章 「パッケージ 図 面 」♦ 第 18 章 「<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> の 電 源 」♦ 第 19 章 「パワー マネージ メ ン ト ソリューション」♦ 第 20 章 「IBIS モデルの 使 用 」♦ 第 21 章 「バウンダリ スキャンと BSDL フ ァ イ ルの 使 用 」その 他 の リ ソース追 加 の 資 料 は、 次 の Web サイ トから 参 照 できます。http://japan.xilinx.com/support/documentation/index.htmシリコンやソフトウェア、IP に 関 するアンサー データベース を 検 索 し た り 、 テ ク ニカル サポー トのウェブ ケースを 開 く 場 合 は、 次 の Web サイ トにアクセスしてください。http://japan.xilinx.com/support24 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


表 記 規 則R表 記 規 則こ のマニ ュ アルでは、 次 の 表 記 規 則 を 使 用 し ています。 各 規 則 について、 例 を 挙 げて 説 明 し ます。書 体次 の 規 則 は、 すべてのマニ ュ アルで 使 用 さ れています。表 記 規 則 使 用 箇 所 例Courier フォントCourier フォント( 太 字 )イタリック フォント二 重 / 一 重 かぎかっ こ『 』、 「」角 かっ こ [ ]中 かっ こ { }縦 棒 |縦 の 省 略 記 号...横 の 省 略 記 号 . . .シ ス テムが 表 示 する メ ッ セージ、プロンプト、 プログラム ファイルを 表 示 し ます。構 文 内 で 入 力 する コ マン ド を 示します。ユーザーが 値 を 入 力 する 必 要 のあ る 構 文 内 の 変 数 に 使 用 し ます。『 』 はマニュアル 名 を、 「 」 はセクション 名 を 示 します。オプシ ョ ンの 入 力 ま たはパ ラメータを 示 しますが、bus[7:0]の よ う なバス 仕 様 では 必 ず 使 用し ます。 ま た、 GUI 表 記 に も 使用 します。1 つ 以 上 の 項 目 を 選 択 する ためのリストを 示 します。選 択 する リ ス ト の 項 目 を 分 離 します。繰 り 返 し 項 目 が 省 略 されていることを 示 します。繰 り 返 し 項 目 が 省 略 されていることを 示 します。speed grade: - 100ngdbuild design_namengdbuild design_name詳 細 は、 『 開 発 シ ス テム リファレンス ガイド』 の 「PAR」 を 参 照してください。ngdbuild [option_name]design_name[File] → [Open] をク リ ックします。lowpwr ={on|off}lowpwr ={on|off}IOB #1: Name = QOUT’IOB #2: Name = CLKIN’...allow block block_name loc1loc2 ... locn;<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 25<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


Rこのマニュアルについてオンライン マニュアルこ のマニ ュ アルでは、 次 の 規 則 が 使 用 さ れています。表 記 規 則 使 用 箇 所 例青 色 の 文 字赤 色 の 文 字青 色 の 下 線 付 き 文 字マニ ュ アル 内 の 相 互 参 照 を 示 します。ほかのマニ ュ アルへの 相 互 参 照を 示 します。Web サイ ト (URL) へのハイパーリンクです。詳 細 は、 「その 他 の リ ソース」 を参 照 し て く だ さ い。詳 細 は、 第 1 章 「タイ トル フォーマッ ト」 を 参 照 して く ださい。詳 細 は、 『Virtex-II Platform<strong>FPGA</strong> ユーザー ガイド』の 図 2-5を 参 照 して く ださい。最 新 のス ピー ド ファイルは、http://japan.xilinx.com から 入 手できます。26 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


Rセクション I : <strong>Spartan</strong>-3 ジェネレーション<strong>FPGA</strong> の 設 計「 概 要 」「グローバル クロック リソースの 使 用 」「デジ タル クロック マネージャ (DCM) の 使 用 」「ブロ ッ ク RAM の 使 用 」「CLB (コンフィギャブル ロジック ブロック) の 使 用 」「 分 散 RAM としてのルックアップ テーブルの 使 用 」「ル ッ ク ア ッ プ テーブルのシフ ト レジスタ (SRL16) としての使 用 」「 専 用 マルチプレ ク サの 使 用 」「キャ リ ー ロ ジ ッ クおよび 演 算 ロ ジ ッ ク の 使 用 」「I/O リソースの 使 用 」「エンベデ ッ ド 乗 算 器 の 使 用 」「インターコネク ト の 使 用 」<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 27<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R28 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 1 章概 要この 章 では、<strong>Spartan</strong> ® -3 ジェネレーション プラッ ト フォームの 概 要 を 示 します。 詳 細 は、 表 1-1 のリ ン ク を 参 照 し て く だ さ い。表 1-1 : <strong>Spartan</strong>-3 ジェネレーション プラッ トフォームプ ラ ッ ト フ ォーム 製 品 情 報 技 術 文 書<strong>Spartan</strong>-3A DSP <strong>FPGA</strong> http://japan.xilinx.com/spartan3adsp http://japan.xilinx.com/support/documentation/spartan-3a_dsp.htm<strong>Spartan</strong>-3AN <strong>FPGA</strong> http://japan.xilinx.com/spartan3an http://japan.xilinx.com/support/documentation/spartan-3an.htm<strong>Spartan</strong>-3A <strong>FPGA</strong> http://japan.xilinx.com/spartan3a http://japan.xilinx.com/support/documentation/spartan-3a.htm<strong>Spartan</strong>-3E <strong>FPGA</strong> http://japan.xilinx.com/spartan3e http://japan.xilinx.com/support/documentation/spartan-3e.htm<strong>Spartan</strong>-3 <strong>FPGA</strong> http://japan.xilinx.com/spartan3 http://japan.xilinx.com/support/documentation/spartan-3.htm概 要<strong>Spartan</strong>-3 ジェネレーショ ンの <strong>FPGA</strong> には、 量 産 型 の <strong>Spartan</strong>-3、<strong>Spartan</strong>-3E、<strong>Spartan</strong>-3A、<strong>Spartan</strong>-3AN、 および <strong>Spartan</strong>-3A DSP プラッ ト フォームが 含 まれます。 これらの <strong>FPGA</strong> は、 特 に 消 費 者 向け 電 子 機 器 の よ う に 量 産 型 で コ ス ト 重 視 の 製 品 のニーズに 合 わせて 設 計 さ れてい ます。 <strong>Spartan</strong>-3ジェネレーショ ンでは、 表 1-5 ~ 表 1-7 に 示 すよ う に、システム ゲー ト 数 が 5 万 ~ 500 万 の 25 種類 のデバイ スが 提 供 されています。<strong>Spartan</strong>-3 プ ラ ッ ト フ ォームは 業 界 初 の 90nm <strong>FPGA</strong> で、 過 去 のどの <strong>FPGA</strong> よ り も 単 価 当 た り の 機能 数 および 帯 域 幅 が 大 き く 、 プ ロ グ ラ マブル ロジック 業 界 の 新 しい 標 準 を 確 立 しました。 <strong>Spartan</strong>-3E プラッ ト フォームは、 <strong>Spartan</strong>-3 プラッ ト フォームを 基 に I/O 当 た り の ロ ジ ッ ク 数 を 増 加 し た もので、ロ ジ ッ ク あた り の コ ス ト が 大 幅 に 削 減 さ れています。ま た、 新 機 能 に よ り 、シ ス テム パフォーマンスが 改 善 され、 コンフ ィギュレーシ ョ ンのコス トが 削 減 されています。 <strong>Spartan</strong>-3A プラッ トフォームは、 <strong>Spartan</strong>-3E プラッ ト フォームのロジック 当 りの I/O 数 を 増 加 したもので、 I/O 当 た りのコス トが 大 幅 に 削 減 されています。 <strong>Spartan</strong>-3AN プラッ ト フォームは 不 揮 発 性 で、 大 量 のオンボード ユーザー フ ラ ッ シ ュ を 使 用 で き る と い う 利 点 があ り ます。 <strong>Spartan</strong>-3A DSP プラッ ト フォームには、 DSP (デジ タル 信 号 処 理 ) アプ リ ケーシ ョ ンに 必 要 な リ ソースが 追 加 されています。<strong>Spartan</strong>-3 ジェネレーショ ン <strong>FPGA</strong> は 非 常 に 低 コ ス ト で、ブロー ド バン ド アクセス、ホーム ネッ トワーキング、 ディ スプレイ/プロジェクタ、 およびデジタル テ レ ビ な どの、 広 範 囲 な 消 費 者 向 け 電子 機 器 のアプ リ ケーシ ョ ンに 最 適 です。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> は、 マ ス ク プログラムされた ASIC に 代 わる 優 れた ソ リ ューションです。 従 来 の ASIC の よ う な 高 い 初 期 コ ス ト 、 長 い 開 発 サ イ ク ル、 柔 軟 性 の 欠 如 と いったデメリットはありません。 ハード ウ ェ アを 入 れ 替 えずにデザイ ン を フ ィ ール ド でア ッ プグレード することは ASIC では 不 可 能 で し たが、 <strong>FPGA</strong> では 可 能 です。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 29<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 1 章 : 概 要<strong>Spartan</strong>-3 ジェネレーション プラッ ト フォーム• <strong>Spartan</strong>-3A DSP プラッ ト フォーム♦ DSP (デジ タル 信 号 処 理 ) アプ リ ケーシ ョ ンに 最 適 化♦ DSP48A リソース♦ <strong>Spartan</strong>-3A プ ラ ッ ト フ ォーム よ り も 高 集 積• <strong>Spartan</strong>-3AN プラッ ト フォーム♦ 不 揮 発 性♦ スペースに 制 約 のあ る アプ リ ケーシ ョ ンに 最 適• <strong>Spartan</strong>-3A プラッ ト フォーム♦ I/O 重 視 型♦ ブ リ ッ ジ、 差 動 信 号 処 理 、 および メ モ リ インターフェイスに 最 適• <strong>Spartan</strong>-3E プラッ ト フォーム♦ ロ ジ ッ ク 重 視 型♦ ロ ジ ッ ク 統 合 およびエンベデ ッ ド 制 御 に 最 適• <strong>Spartan</strong>-3 プラッ ト フォーム♦ 集 積 度 重 視 型♦ 高 度 に 統 合 さ れたデータ 処 理 アプ リ ケーシ ョ ンに 最 適表 1-2 : <strong>Spartan</strong>-3 ジェネレーション プ ラ ッ ト フ ォームの 選 択アプリケーショ ン/ 機 能<strong>Spartan</strong>-3<strong>FPGA</strong><strong>Spartan</strong>-3 ジェネレーション プラッ トフォーム<strong>Spartan</strong>-3E<strong>FPGA</strong><strong>Spartan</strong>-3A<strong>FPGA</strong><strong>Spartan</strong>-3AN<strong>FPGA</strong><strong>Spartan</strong>-3A DSP<strong>FPGA</strong>基 本 的 なデザイ ン 特 性最 大 約 1.5M のシステム ゲー ト + ++ + + +1.5M を 超 えるシステム ゲー ト + +I/O ピン 500 個 以 下 + + ++ ++ ++I/O ピン 500 個 以 上 +エンベデッ ド プロセッサ32 ビッ ト MicroBlaze プロセッサ + + ++ ++ ++8 ビッ ト PicoBlaze コント ローラ + + + + +DDR SDRAM メモリ インターフェイスDDR SDRAM + + ++ ++ ++DDR2 SDRAM ++ + ++ ++ ++差 動 I/OLVDS + ++ +++ +++ +++RSDS + ++ +++ +++ +++miniLVDS + ++ ++ ++TMDS/PPDS + + +30 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


<strong>Spartan</strong>-3 ジ ェ ネレーシ ョ ンの 機 能R表 1-2 : <strong>Spartan</strong>-3 ジェネレーション プ ラ ッ ト フ ォームの 選 択 ( 続 き)アプリケーショ ン/ 機 能<strong>Spartan</strong>-3<strong>FPGA</strong><strong>Spartan</strong>-3 ジェネレーション プラッ トフォーム<strong>Spartan</strong>-3E<strong>FPGA</strong><strong>Spartan</strong>-3A<strong>FPGA</strong><strong>Spartan</strong>-3AN<strong>FPGA</strong><strong>Spartan</strong>-3A DSP<strong>FPGA</strong>PCI ® /PCI Express ® インターフェイス33MHz PCI インターフェイス + + ++ ++ ++66MHz PCI インターフェイス + ++ ++ ++PCI Express PIPE インターフェイス + + + + +パワー マネージ メ ン ト + + +I/O 機 能複 数 の I/O バンク ++ + + + +ホッ ト スワップ + + ++ ++ ++高 出 力 駆 動 電 流 + ++ ++ ++プ ロ グ ラ ム 可 能 な 入 力 遅 延 + ++ +++ +++ +++3.3V 専 用 アプ リ ケーシ ョ ン + + ++ ++ ++DCI (オンチップ 終 端 ) +クロック リソースDCM (デジタル クロック マネージャ ) + ++ ++ ++ ++ロー スキュー グローバル クロック + ++ ++ ++ ++<strong>FPGA</strong> コンフィギュレーションプラッ ト フォーム フラッシュ PROM + + + + +SPI フラッシュ コンフィギュレーション + + + +パラレル フラッシュ コンフィギュレーション + + + +マルチブー ト + + + +低 コス ト デザイ ン 保 護 + ++ +++ ++不 揮 発 性 +統 合 ユーザー フラッシュ +DSP (デジ タル 信 号 処 理 )18X18 ハー ド ウ ェ ア 乗 算 器 + ++ ++ ++ +++DSP48A +ブロッ ク RAM レジスタ + + ++ ++ +++メモ :1. + = サポー ト あ り、 ++ = 適 している、 +++ = 最 適<strong>Spartan</strong>-3 ジ ェ ネレーシ ョ ンの 機 能• 量 産 向 けおよび 民 生 向 けアプ リ ケーシ ョ ン を 対 象 と し た、 極 めて 低 価 格 で 高 性 能 な ロ ジ ッ クソリューション• 高 度 な 90nm プロセス テクノロジ<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 31<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 1 章 : 概 要• 複 数 の 電 圧 と 規 格 をサポー ト する SelectIO インターフェイス ピン♦♦♦♦♦♦最 大 633 個 の I/O ピンまたは 300 個 の 差 動 信 号 ペアLVCMOS、 LVTTL、 HSTL、 および SSTL シングルエン ド 信 号 規 格3.3V、 2.5V、 1.8V、 1.5V、 および 1.2V 信 号最 大 24 mA の 出 力 駆 動 電 流I/O 当 た り のデータ 転 送 レー ト 622Mb/s 以 上差 動 I/O (True LVDS、 RSDS、 mini-LVDS、 PPDS、 HSTL/SSTL)♦ DDR (ダブル データ レート) サポー ト♦ DDR/DDR2 SDRAM で 最 大 400Mb/s をサポート• 豊 富 で 柔 軟 な ロ ジ ッ ク リソース♦♦♦♦最 大 集 積 度 74,880 ロジック セルオプシ ョ ンの SRL16 シフ ト レジスタまたは 分 散 RAM サポー ト効 率 の 良 い、 多 入 力 マルチプレ ク サ、 多 入 力 ロ ジ ッ ク高 速 ル ッ ク アヘ ッ ド キャ リー ロジック♦ 専 用 18X18 乗 算 器♦ IEEE 1149.1/1532 JTAG プログラ ミング/デバ ッ グ ポー ト• 階 層 的 な SelectRAM メモリ アーキテ クチャ♦♦最 大 2,268 Kb の 高 速 ブロ ッ ク RAM最 大 373 Kb の 効 率 分 散 RAM• 最 大 8 個 の DCM (デジタル クロック マネージャ )♦♦クロック ス キ ュー 削 減 ( 遅 延 ロ ッ ク ループ (DLL))周 波 数 合 成 、 乗 算 、 除 算♦ 高 性 能 位 相 シフ ト♦ 広 範 囲 な 周 波 数 (5MHz ~ 300MHz 以 上 )• 8 個 のグ ローバル ク ロ ッ ク、 および 豊 富 な ロー ス キ ュー 配 線• 低 コス ト の JTAG 付 きザイ リ ンクス プラ ッ ト フォーム フラッシュへのコ ンフ ィ ギュ レーシ ョン インターフェイス• ザイ リンクス ISE ® および WebPACK 開 発 シ ス テムの 完 全 なサポー ト• 低 コス ト のスタータ キ ッ ト 開 発 シ ス テムおよび 高 機 能 なデモ ボード• 32 ビットの MicroBlaze および 8 ビッ トの PicoBlaze エンベデッ ド プロセッサ コア• 完 全 準 拠 の 32/64 ビット 66MHz PCI サポー ト• PCI Express PIPE エンドポイン ト およびその 他 の IP コア• 主 要 な EDA パー ト ナーのサポー ト• 低 コス ト の QFP パッケージおよび BGA パッケージのオプショ ン♦ 共 通 のフ ッ ト プ リ ン ト に よ る、 プ ラ ッ ト フ ォーム 内 の 容 易 な 集 積 度 移 行 のサポー ト♦ RoHS ( 鉛 フ リー ) パッケージ オプシ ョ ン• オー ト モーテ ィ ブ XA プラッ ト フォーム32 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


<strong>Spartan</strong>-3 ジ ェ ネレーシ ョ ンの 機 能R<strong>Spartan</strong>-3E/3A に 追 加 されている 機 能• ロ ジ ッ ク 重 視 型 アプ リ ケーシ ョ ンへの コ ス ト 最 適 化• パフ ォーマン ス を 向 上 さ せる オプシ ョ ンのパイ プ ラ イ ン 付 き 18X18 乗 算 器• タ イ ミ ングを き め 細 かに 制 御 する プ ロ グ ラ ム 可 能 な 入 力 遅 延• デバイ ス 半 分 ご と に ク ロ ッ ク を 8 個 追 加• ク ロ ッ ク 入 力 追 加 で、 ピ ン 配 置 および 差 動 ク ロ ッ ク の 柔 軟 性 向 上• 業 界 標 準 PROM へのコ ンフ ィ ギュ レーシ ョ ン インターフェイス♦♦低 コス ト、 省 スペースの SPI シリアル フラッシュ PROMX8 または X8/X16 パラレル NOR フラッシュ PROM• パラレル フラッシュ PROM に 保 存 された 2 つのフ ァ イル 間 のマルチブー ト 自 動リコンフィギュレーション• I/O 規 格 の 追 加<strong>Spartan</strong>-3A に 追 加 されている 機 能• I/O 重 視 型 アプ リ ケーシ ョ ンへの コ ス ト 最 適 化• 2.5V または 3.3V の 2 つの 電 圧 の V CCAUX で 電 源 供 給 設 計 を 簡 略 化♦ 1 つの 電 源 レールの 削 減• 一 時 停 止 モー ド に よ る シ ス テム 消 費 電 力 の 低 減♦♦♦♦全 デザ イ ン ステートおよび <strong>FPGA</strong> コンフィギュレーション データ の 保 持SUSPEND ピ ン を 使 用 し て 一 時 停 止 モー ド を 開 始<strong>FPGA</strong> を 最 小 の 静 止 電 力 まで 低 下I/O ビヘイ ビア をユーザー 制 御 可 能♦ 短 いウ ェーク ア ッ プ 時 間♦ AWAKE ピンで 現 在 のステータスを 表 示• 3.3V ± 10% の 電 源 互 換 性• 最 大 入 力 電 圧 4.6V• 完 全 なホ ッ ト スワップ 準 拠♦ コネクタ シーケンス 不 要♦ <strong>FPGA</strong> I/O は、デバイ スの 破 損 および 外 部 バスへの 影 響 な く 、 V CCO 電 源 投 入 前 に 外 部 か ら駆 動 可 能♦ <strong>FPGA</strong> では 電 源 投 入 シーケ ン スの 前 ま たは 実 行 中 は 専 用 ピ ン 以 外 の 駆 動 な し• プロセッサ アプ リ ケーシ ョ ンで 効 率 的 なバ イ ト ライト イネーブル 付 きのブロック RAM• 入 力 遅 延 を 直 接 プ ロ グ ラ ム 可 能• DDR レ ジ ス タ に ク ロ ッ ク 調 整 機 能 を 追 加• SPI モー ドおよび BPI モード のデイ ジー チェーン• どのソースの 2 フ ァ イルで も マルチブー ト 自 動 リ コ ン フ ィ ギ ュ レーシ ョ ン を 実 行 可 能• コンフィギュレーション ウォッチドッグ タイマによるコンフィギュレーション エラーからの自 動 回 復<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 33<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 1 章 : 概 要• コ ピー 防 止 アルゴ リ ズムに 役 立 つ、 デバイ スで 重 複 不 可 の ID (Device DNA)♦ Device DNA 認 証 に よ る コ ピー 防 止• I/O 規 格 の 追 加♦ TMDS、 PPDS、 および 改 良 さ れた DDR メモリ サポー ト<strong>Spartan</strong>-3AN に 追 加 されている 機 能• 統 合 さ れた 強 力 な コ ン フ ィ ギ ュ レーシ ョ ン メモリ♦♦♦♦ボード スペースの 節 約使 いやすさ の 向 上デザ イ ンの 簡 略 化サポー ト 問 題 の 低 減• ユーザーが 使 用 可 能 な 大 容 量 の 不 揮 発 性 メ モ リ♦♦♦♦最 大 11Mb 以 上 可マルチブー ト のサポー トエンベデッ ド プロセシングおよびコード シャドウイングスクラッチ パッ ド メモリ• フラッシュ メモリをページ 当 たり 10 万 回 までプ ロ グ ラ ム/ 消 去 繰 り 返 し 可 能• フラッシュ メモリのデータを 20 年 保 持• セキ ュ リ テ ィ 機 能 に よ る ビ ッ ト ス ト リ ームの コ ピー 防 止♦♦埋 め 込 まれた コ ンフ ィ ギュ レーシ ョ ン インターフェイスによる Device DNA 認 証 機 能 の強 化フラッシュ メモリ セ ク タ 保 護 およびロ ッ ク ダ ウ ン<strong>Spartan</strong>-3A DSP に 追 加 されている 機 能• 低 コス ト DSP シ ス テムへの 最 適 化♦ 高 ロ ジ ッ ク 容 量 、 33K ~ 47K ルッ クアップ テーブル (LUT)♦ ブロック RAM のブロ ッ ク 数 を 85 ~ 126 個 に、 メ モ リ を 1.5 ~ 2.3Mb に 増 加• 高 性 能 な DSP48A ブロッ ク♦ Virtex ® -4 <strong>FPGA</strong> の DSP ブロッ ク アーキテ ク チ ャ に 基 づ く♦ 完 全 な 積 和 機 能♦ 統 合 さ れた 48 ビ ッ ト の 後 置 加 算 器♦ 非 対 称 FIR フ ィ ルタ 用 の 統 合 さ れた 18 ビ ッ ト の 前 置 加 算 器♦ 独 立 配 線♦ 250MHz 動 作• 改 良 さ れたブ ロ ッ ク RAM♦ 内 部 出 力 レ ジ ス タ♦ 250MHz 動 作34 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


<strong>Spartan</strong>-3 ジェネレーションのリソースR<strong>Spartan</strong>-3 ジェネレーションのリソース表 1-3 : <strong>Spartan</strong>-3A DSP <strong>FPGA</strong> 属 性 の 概 要デバイスシステムゲー ト 数表 1-3 ~ 表 1-7 に、 <strong>Spartan</strong>-3A DSP、 <strong>Spartan</strong>-3AN、 <strong>Spartan</strong>-3A、 <strong>Spartan</strong>-3E、 および <strong>Spartan</strong>-3の 各 プ ラ ッ ト フ ォームで 使 用 可 能 な リ ソ ースの 数 を 示 し ます。メモ : 1Kb は 1,024 ビット とします。ロジックセル相 当 数行 数CLB アレイ(1 CLB = 4 スライス) 分 散列 数合 計 合 計CLB 数 スライス 数RAM のビット 数ブロックRAM のDSP48A 数 DCM 数ビット 数最 大ユーザーI/O 数最 大 差 動I/O ペア 数XC3SD1800A 1800K 37,440 88 48 4,160 16,640 260K 1,512K 84 8 519 227XC3SD3400A 3400K 53,712 104 58 5,968 23,872 373K 2,268K 126 8 469 213表 1-4 : <strong>Spartan</strong>-3AN <strong>FPGA</strong> 属 性 の 概 要デバイスシステムゲー ト 数ロジッ クセル相 当 数CLB 数スライス 数分 散RAM のビット 数ブロックRAM の専 用DCM 数乗 算 器 数ビット 数最 大ユーザーI/O 数最 大 差 動I/O ペア 数インシステムフラッシュのビット 数XC3S50AN 50K 1,584 176 704 11K 54K 3 2 108 50 1MXC3S200AN 200K 4,032 448 1,792 28K 288K 16 4 195 90 4MXC3S400AN 400K 8,064 896 3,584 56K 360K 20 4 311 142 4MXC3S700AN 700K 13,248 1472 5,888 92K 360K 20 8 372 165 8MXC3S1400AN 1400K 25,344 2816 11,264 176K 576K 32 8 502 227 16M表 1-5 : <strong>Spartan</strong>-3A <strong>FPGA</strong> 属 性 の 概 要デバイスシステムゲー ト 数ロジックセル相 当 数行 数CLB アレイ(1 CLB = 4 スライス) 分 散列 数合 計 合 計CLB 数 スライス 数RAM のビット 数ブロックRAM のビット 数専 用乗 算 器DCM 数最 大ユーザーI/O 数最 大 差 動I/O ペア 数XC3S50A 50K 1,584 16 12 176 704 11K 54K 3 2 144 64XC3S200A 200K 4,032 32 16 448 1,792 28K 288K 16 4 248 112XC3S400A 400K 8,064 40 24 896 3,584 56K 360K 20 4 311 142XC3S700A 700K 13,248 48 32 1472 5,888 92K 360K 20 8 372 165XC3S1400A 1400K 25,344 72 40 2816 11,264 176K 576K 32 8 502 227<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 35<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 1 章 : 概 要表 1-6 : <strong>Spartan</strong>-3E <strong>FPGA</strong> 属 性 の 概 要デバイスシステムゲー ト 数ロジックセル相 当 数行 数CLB アレイ(1 CLB = 4 スライス) 分 散列 数合 計 合 計CLB 数 スライス 数RAM のビット 数ブロックRAM のビット 数専 用乗 算 器DCM 数最 大ユーザーI/O 数最 大 差 動I/O ペア 数XC3S100E 100K 2,160 22 16 240 960 15K 72K 4 2 108 40XC3S250E 250K 5,508 34 26 612 2,448 38K 216K 12 4 172 68XC3S500E 500K 10,476 46 34 1,164 4,656 73K 360K 20 4 232 92XC3S1200E 1200K 19,512 60 46 2,168 8,672 136K 504K 28 8 304 124XC3S1600E 1600K 33,192 76 58 3,688 14,752 231K 648K 36 8 376 156表 1-7 : <strong>Spartan</strong>-3 <strong>FPGA</strong> 属 性 の 概 要デバイスシステムゲー ト 数ロジックセル相 当 数行 数CLB アレイ(1 CLB = 4 スライス) 分 散列 数合 計 合 計CLB 数 スライス 数RAM のビット 数ブロックRAM のビット 数専 用乗 算 器DCM 数最 大ユーザーI/O 数最 大 差 動I/O ペア 数XC3S50 50K 1,728 16 12 192 768 12K 72K 4 2 124 56XC3S200 200K 4,320 24 20 480 1,920 30K 216K 12 4 173 76XC3S400 400K 8,064 32 28 896 3,584 56K 288K 16 4 264 116XC3S1000 1000K 17,280 48 40 1,920 7,680 120K 432K 24 4 391 175XC3S1500 1500K 29,952 64 52 3,328 13,312 208K 576K 32 4 487 221XC3S2000 2000K 46,080 80 64 5,120 20,480 320K 720K 40 4 565 270XC3S4000 4000K 62,208 96 72 6,912 27,648 432K 1,728K 96 4 633 300XC3S5000 5000K 74,880 104 80 8,320 33,280 520K 1,872K 104 4 633 30036 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


アーキテ ク チ ャの 概 要Rアーキテ ク チ ャの 概 要<strong>Spartan</strong>-3 ジェネレーシ ョ ンのアーキテクチャは、5 つの 基 本 的 なプ ロ グ ラ ム 可 能 なフ ァ ン ク シ ョ ンエレ メン ト よ り 構 成 されています。• コンフィ ギャブル ロジック ブロ ッ ク (CLB) : ロジックをインプリ メ ント する 柔 軟 なルックアッ プ テーブル (LUT) およ びフ リ ッ プフ ロ ッ プま たはラ ッ チと し て 使 用 さ れる 記 憶 エレ メント が 含 まれます。 CLBでは、さ ま ざま な 論 理 フ ァ ン ク ショ ンおよ びデータ の 保 存 が 実 行 さ れます。• I/O ブロ ッ ク (IOB) : I/O ピ ン と デバイ ス の 内 部 ロ ジッ ク 間 のデータ フ ロ ーを 制 御 し ま す。IOB では、 双 方 向 のデータ フ ロ ーと ト ラ イ ス テート 動 作 がサポート さ れま す。 高 性 能 な 差 動規 格 を 含 む、 さ ま ざま な 信 号 規 格 がサポート さ れま す。 また、ダブル データ レート (DDR) レジス タ も 搭 載 さ れていま す。• ブロ ッ ク RAM : 18Kb のデュ アル ポート ブロ ッ ク 形 式 でデータ を 格 納 し ま す。• 乗 算 器 ブロ ッ ク : 2 つの 18 ビッ ト の 2 進 数 値 を 入 力 し 、 積 を 算 出 し ま す。 <strong>Spartan</strong>-3A DSP<strong>FPGA</strong> には、 特 別 な DSP 積 和 ブロ ッ ク が 含 ま れま す。• デジタ ル クロック マネージャ (DCM) ブロ ッ ク : ク ロ ッ ク 信 号 の 自 動 調 整 、 分 配 、 遅 延 、 逓倍 、 分 周 、 位 相 シフ ト を 実 行 する 完 全 なデジ タル ソ リ ューシ ョ ン を 提 供 し ます。これらのファンクショ ン エレ メン トの 構 成 を、<strong>Spartan</strong>-3A のアレイを 例 と して 図 1-1 に 示 し ます。<strong>Spartan</strong>-3 および <strong>Spartan</strong>-3A/3AN/3A DSP <strong>FPGA</strong> の IOB は、ス タ ガ 型 (CLB アレイを IOB 列 が 2重 に 取 り 囲 み、 1 列 目 と 2 列 目 の IOB が 互 い 違 いに 配 置 さ れる) で、 <strong>Spartan</strong>-3E の IOB は、 イ ンライン 型 (CLB を 囲 む IOB は 1 重 ) です。 各 ブロ ッ ク RAM 列 は、 数 個 の 18Kb RAM ブロックより 構 成 されています。 各 ブロ ッ ク RAMは、 専 用 乗 算 器 に 関 連 付 け ら れています。 DCM はデバイ ス上 部 に 2 個 、 下 部 に 2 個 配 置 さ れてお り 、 大 型 デバイ ス では 両 側 に も 配 置 さ れています。<strong>Spartan</strong>-3 ジェネレーション デバイ スには、 ネ ッ ト ワーク に 優 れた 特 徴 があ り 、 上 記 の 5 つのエレメ ン ト すべてが 相 互 接 続 さ れ、 信 号 を 送 信 で き る よ う になっ ています。 各 エレ メ ン ト には、 複 数 の配 線 ができるようにスイッチ マト リックスが 使 用 されています。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 37<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 1 章 : 概 要IOBsCLBDCMBlock RAMMultiplierIOBsDCMIOBsDCMCLBsBlock RAM / MultiplierIOBsIOBsDS312-1_01_032606コンフィギュレーション図 1-1 : <strong>Spartan</strong>-3A プラッ トフォームのアーキテクチャ<strong>Spartan</strong>-3 ジェネレーショ ン <strong>FPGA</strong> をプログラムするには、 コンフ ィギュレーシ ョ ン データ を、 再プログラム 可 能 なスタティ ック CMOS コンフィギュレーション ラッチ (CCL) に 読 み 込 みます。CCL は、すべてのフ ァ ン ク シ ョ ン エ レ メ ン ト および 配 線 リ ソ ース を 制 御 し ます。 <strong>FPGA</strong> のコンフィギュレーション データは、 外 部 PROM またはその 他 のオンボー ド またはオフボー ド の 不 揮 発 性 媒体 に 格 納 さ れます。 <strong>Spartan</strong>-3AN プラッ ト フォームには、 SPI フラッシュ コンフィギュレーションメ モ リ が 内 蔵 さ れています。 電 源 が 投 入 さ れる と 、 コ ン フ ィ ギ ュ レーシ ョ ン データは 次 のモー ド のいずれかを 使 用 し て <strong>FPGA</strong> に 書 き 込 まれます。• ザイ リンクス プラッ ト フォーム フラッシュ PROM のマス タ シリアル• 業 界 標 準 の SPI シリアル フラッシュのシリアル ペリフェラル インターフェイス (SPI)♦ <strong>Spartan</strong>-3E/3A/3AN/3A DSP <strong>FPGA</strong> のみ• 業 界 標 準 の X8 または X8/X16 パラレル NOR フラッシュのバイ ト ペリフェラル インターフェイス (BPI)♦ <strong>Spartan</strong>-3E/3A/3AN/3A DSP <strong>FPGA</strong> のみ• 通 常 プ ロ セ ッ サ よ り ダ ウ ン ロー ド さ れる スレーブ シリアル• 通 常 プ ロ セ ッ サ よ り ダ ウ ン ロー ド さ れる スレーブ パラレル• 通 常 プ ロ セ ッ サま たはシ ス テム テスタよ りダウンロード されるバウンダリ スキャン (JTAG)38 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


I/O 機 能RI/O 機 能<strong>Spartan</strong>-3 ジェネレーショ ンの SelectIO インターフェイスでは、 表 1-8 および 表 1-9 に 示 される よう に、 広 く 使 用 さ れてい る シングルエン ド および 差 動 規 格 が 多 く サポー ト さ れます。 表 1-10 ~ 表1-14 には、 <strong>Spartan</strong>-3A DSP、 <strong>Spartan</strong>-3AN、 <strong>Spartan</strong>-3A、 <strong>Spartan</strong>-3E、 および <strong>Spartan</strong>-3 <strong>FPGA</strong> の各 デバ イ ス/パ ッ ケージの 組 み 合 わせで 使 用 可 能 なユーザー I/O 数 および 差 動 I/O ペアの 数 を 示 します。 ユーザー I/O の 一 部 は、 表 で 示 さ れてい る よ う に 単 一 方 向 の 入 力 専 用 ピ ンです。表 1-8 : シングル エンド I/O 規 格規 格 V CCO クラス<strong>Spartan</strong>-3<strong>FPGA</strong><strong>Spartan</strong>-3E<strong>FPGA</strong><strong>Spartan</strong>-3A/3AN/3A DSP<strong>FPGA</strong>1.2V - ~ 6mA 2mA ~ 6mA1.5V - ~ 12mA ~ 6mA ~ 12mALVCMOS1.8V - ~ 16mA ~ 8mA ~ 16mA2.5V - ~ 24mA ~ 12mA ~ 24mA3.3V - ~ 24mA ~ 16mA ~ 24mALVTTL 3.3V - ~ 24mA ~ 16mA ~ 24mAPCI33PCI663.0V - √ √ √3.3V - √ √ √3.0V - √ √3.3V - √ √SSTLHSTL1.8V2.5V3.3V1.5V1.8VI √ √ √II √ √I √ √ √II √ √I√II√I √ √III √ √I √ √ √II √ √III √ √ √GTL- - √- Plus √DCI オプシ ョ ン - - √<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 39<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 1 章 : 概 要表 1-9 : 差 動 I/O 規 格規 格 V CCO<strong>Spartan</strong>-3<strong>FPGA</strong><strong>Spartan</strong>-3E<strong>FPGA</strong><strong>Spartan</strong>-3A/3AN/3A DSP<strong>FPGA</strong>LVDS2.5V √ √ √3.3V √BLVDS 2.5V √ √ √MINI_LVDSLVPECLRSDSTMDSPPDS2.5V √ √3.3V √2.5V √ √ √3.3V √2.5V √ √ √3.3V √2.5V3.3V √2.5V √3.3V √LDT 2.5V √LVDSEXT 2.5V √DIFF_SSTL - √ √ √DIFF_HSTL - √ √ √DIFF_TERM - √ √表 1-10 : <strong>Spartan</strong>-3A DSP で 使 用 可 能 なユーザー I/O および 差 動 I/O ペアの 数デバイスXC3SD1800ACS484CSG484FG676FGG676ユーザー 差 動 ユーザー 差 動309(56)140(78)519(110)227(131)XC3SD3400A309(56)140(78)469(60)213(117)メモ :1. 太 字 で 示 された 数 字 は I/O および 入 力 専 用 ピ ンの 最 大 数 です。 斜 体 で 示 された 数 字 は 入 力 専 用 ピ ンの 数 です。 差 動 入 力 専 用 ピ ン 数 には、 入 力 専 用 ピ ンの 差 動 ペア と 、 差 動 入 力 に 制 限 された I/O バンク 内 の I/O ピンの 差 動 ペアの 両 方 が 含 まれます。40 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


I/O 機 能R表 1-11 : <strong>Spartan</strong>-3AN で 使 用 可 能 なユーザー I/O および 差 動 I/O ペアの 数デバイスXC3S50ANTQG144 FTG256 FGG400 FGG484 FGG676ユーザー 差 動 ユーザー 差 動 ユーザー 差 動 ユーザー 差 動 ユーザー 差 動108(7)50(24)- - - - - - - -XC3S200AN - -195(35)90(50)- - - - - -XC3S400AN - - - -311(63)142(78)- - - -XC3S700AN - - - - - -372(84)165(93)- -XC3S1400AN - - - - - - - -502(94)227(131)メモ :1. 太 字 で 示 された 数 字 は I/O および 入 力 専 用 ピ ンの 最 大 数 です。 斜 体 で 示 された 数 字 は 入 力 専 用 ピ ンの 数 です。 差 動 入 力 専 用 ピ ン 数 には、入 力 専 用 ピ ンの 差 動 ペア と 、 差 動 入 力 に 制 限 された I/O バン ク 内 の I/O ピ ンの 差 動 ペアの 両 方 が 含 まれます。表 1-12 : <strong>Spartan</strong>-3A で 使 用 可 能 なユーザー I/O および 差 動 I/O ペアの 数デバイスVQ100VQG100ユーザー差 動TQ144TQG144ユーザー差 動FT256FTG256ユーザー差 動FG320FGG320ユーザー差 動FG400FGG400ユーザー差 動FG484FGG484ユーザー差 動FG676FGG676ユーザー差 動XC3S50A68(13)60(24)108(7)50(24)144(32)64(32)- - - - - - - -XC3S200A68(13)60(24)- -195(35)90(50)248(56)112(64)- - - - - -XC3S400A - - -195(35)90(50)251(59)112(64)311(63)142(78)- - - -XC3S700A - - -161(13)74(36)- -311(63)142(78)372(84)165(93)- -XC3S1400A - - -161(13)74(36)- - - -375(87)165(93)502(94)227(131)メモ :1. 太 字 で 示 された 数 字 は I/O および 入 力 専 用 ピ ンの 最 大 数 です。 斜 体 で 示 された 数 字 は 入 力 専 用 ピ ンの 数 です。 差 動 入 力 専 用 ピ ン 数 には、入 力 専 用 ピ ンの 差 動 ペア と 、 差 動 入 力 に 制 限 された I/O バン ク 内 の I/O ピ ンの 差 動 ペアの 両 方 が 含 まれます。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 41<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 1 章 : 概 要表 1-13 : <strong>Spartan</strong>-3E で 使 用 可 能 なユーザー I/O および 差 動 I/O ペアの 数デバイスVQ100VQG100ユーザー差 動CP132CPG132ユーザー差 動TQ144TQG144ユーザー差 動PQ208PQG208ユーザー差 動FT256FTG256ユーザー差 動FG320FGG320ユーザー差 動FG400FGG400ユーザー差 動FG484FGG484ユーザー差 動XC3S100E66(7)30(2)83(11)35(2)108(28)40(4)- - - - - - - - - -XC3S250E66(7)30(2)92(7)41(2)108(28)40(4)158(32)65(5)172(40)68(8)- - - - - -XC3S500E66(7)30(2)92(7)41(2)- -158(32)65(5)190(41)77(8)232(56)92(12)- - - -XC3S1200E - - - - - - - -190(40)77(8)250(56)99(12)304(72)124(20)- -XC3S1600E - - - - - - - - - -250(56)99(12)304(72)124(20)376(82)156(21)メモ :1. 太 字 で 示 された 数 字 は I/O および 入 力 専 用 ピ ンの 最 大 数 です。 斜 体 で 示 された 数 字 は 入 力 専 用 ピ ンの 数 です。表 1-14 : <strong>Spartan</strong>-3 で 使 用 可 能 なユーザー I/O および 差 動 I/O ペアの 数VQ100CP132TQ144PQ208FT256FG320FG456FG676FG900デバイスVQG100ユー差 動ザーCPG132ユー差 動ザーTQG144ユー差 動ザーPQG208ユー差 動ザーFTG256ユー差 動ザーFGG320ユー差 動ザーFGG456ユー差 動ザーFGG676ユー差 動ザーFGG900ユー差 動ザーXC3S50 63 29 89 44 97 46 124 56 - - - - - - - - - -XC3S200 63 29 - - 97 46 141 62 173 76 - - - - - - - -XC3S400 - - - - 97 46 141 62 173 76 221 100 264 116 - - - -XC3S1000 - - - - - - - - 173 76 221 100 333 149 391 175 - -XC3S1500 - - - - - - - - - - 221 100 333 149 487 221 - -XC3S2000 - - - - - - - - - - - - 333 149 489 221 565 270XC3S4000 - - - - - - - - - - - - - - 489 221 633 300XC3S5000 - - - - - - - - - - - - - - 489 221 633 30042 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


パッケージ マークRパッケージ マーク図 1-2 は、ク ワ ッ ド フラッ ト パッケージ (QFP) の <strong>Spartan</strong>-3A <strong>FPGA</strong> のトップ マークの 例 です。 図1-3 は、ボール グ リッド アレイ (BGA) パッケージの <strong>Spartan</strong>-3A <strong>FPGA</strong> のトップ マークの 例 です。BGA のマークは QFP のものとほとんど 同 じですが、 ボール A1 を 示 す 印 を 軸 に 回 転 し ています。<strong>Spartan</strong>-3E および <strong>Spartan</strong>-3A/3AN/3A DSP <strong>FPGA</strong> では、 5C と 4I が 5C/4I の よ う に 表 示 さ れることがあります。SPARTANXC3S50A TMTQ144 AGQ0625D1234567A4CRR P1DS529-1_03_080406図 1-2 : <strong>Spartan</strong>-3A QFP パッケージ マークの 例BGA A1RSPARTANXC3S50A TMFT256 AGQ0625D1234567A4CR DS529-1_02_021206図 1-3 : <strong>Spartan</strong>-3A BGA パッケージ マークの 例<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 43<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 1 章 : 概 要注 文 情 報<strong>Spartan</strong>-3 ジェネレーショ ン <strong>FPGA</strong> は、 ほ と んどのデバイ ス/パ ッ ケージの 組 み 合 わせで、 標 準 ま たは 鉛 フ リ ー パッケージで 提 供 されています。 オートモーティブ XA デバ イ スおよび 非 揮 発 性<strong>Spartan</strong>-3AN デバイ スは、 鉛 フ リ ー パ ッ ケージでのみ 提 供 さ れてい ます。 鉛 フ リ ー パッケージの注 文 コー ド には、 「G」 の 文 字 が 含 まれます。 オートモーティブ デバ イ ス のパーツ 番 号 は XC ではなく XA で 開 始 し、 オー ト モーテ ィ ブ 温 度 範 囲 はイ ンダ ス ト リ アル (I) とオートモーティブ (Q) の両 方 の 範 囲 を 含 む -40℃ ~ +125℃ です。図 1-4 に 注 文 コー ド 例 を 示 し ます。 イ ンダ ス ト リ アル 温 度 範 囲 は、 標 準 (-4) スピード グレードのみで 提 供 さ れています。 デバイ ス と パ ッ ケージの 組 み 合 わせは、 表 1-11 ~ 表 1-14 を 参 照 して く ださい。オー ト モーテ ィ ブ デバイ スの 注 文 コー ド は、XA デバイ スのデータ シー ト を 参 照 して く ださい。:XC3S50A -4 FT G 256 C-4: -5: ( ) C = (T J= 0 85)I = (T J= -40 100)DS529-1_04_080306図 1-4 : <strong>Spartan</strong>-3A <strong>FPGA</strong> の 注 文 コー ド 例44 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 2 章グローバル クロック リソースの 使 用概 要この 章 では、 <strong>Spartan</strong> ® -3 ジェネレーショ ンのグローバル クロック リソース ( 専 用 ク ロ ッ ク 入 力 、バッファ、 配 線 など) を 活 用 する 方 法 を 説 明 し ます。 クロック インフラスト ラクチャは、 <strong>FPGA</strong> 全体 に 高 周 波 数 の ク ロ ッ ク 信 号 を 分 配 する のに 適 し たキ ャパシ タ ン スの 低 い、ロー スキュー インターコネク トで 構 成 されており、 クロッ ク ス キ ューを 最 小 限 に 抑 え、 パフ ォーマン ス を 向 上 し ます。 すべての ク ロ ッ ク 信 号 に こ のイ ンフ ラ ス ト ラ クチャ を 使 用 する 必 要 があ り ます。 サー ド パーテ ィ の 合成 ツール、 ザ イ リ ン ク ス の 合 成 ツールおよびイ ンプ リ メ ンテーシ ョ ン ツールでは、 ファンアウ ト の大 き い ク ロ ッ ク 信 号 に 対 し て こ れ ら の リ ソ ースが 自 動 的 に 使 用 さ れます。この 章 では、すべての <strong>Spartan</strong>-3 ジェネレーション プラッ ト フォームに 含 まれるグローバル リソースと、<strong>Spartan</strong>-3E および <strong>Spartan</strong>-3A/3AN/3A DSP プラッ ト フォームに 含 まれる 4 区 画 の ク ロ ッ クリ ソ ースについて 主 に 説 明 し ます。 クロック 配 線 は、DCM と 組 み 合 わせて 使 用 で き ます。 DCM の詳 細 は、 第 3 章 「デジタル クロック マネージャ (DCM) の 使 用 」 を 参 照 して く ださい。 コンフ ィギュレーション (CCLK) およびバウンダ リ スキャン (TCK) で 使 用 さ れる 特 別 な ク ロ ッ ク 入 力 については、 『<strong>Spartan</strong>-3 Generation Configuration User Guide』 (UG332) を 参 照 して く ださい。はじめに<strong>Spartan</strong>-3 ジェネレーショ ンの 各 <strong>FPGA</strong> デバ イ スには、 最 適 なパフ ォーマン ス を 達 成 する ため、 高速 のロー スキュー グローバル クロック リソースが 8 個 含 まれてお り 、 ザイ リ ンクス ツールで 自 動的 に 使 用 さ れます。 クロック レー ト が 比 較 的 低 い 場 合 で も、 タ イ ミ ングの 問 題 を 防 ぐ ため、 グ ローバル 配 線 リ ソ ース を 使 用 する 必 要 があ り ます。 こ れ ら の リ ソ ース を 定 義 し、 最 大 限 に 活 用 する 方 法を 理 解 し てお く こ と が 重 要 です。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> 間 でのグローバル クロック リソースの 違 い<strong>Spartan</strong>-3E および <strong>Spartan</strong>-3A/3AN/3A DSP <strong>FPGA</strong> プラッ ト フォームのグローバル クロック リソースは 同 一 であり、8 個 のグ ローバル ク ロ ッ ク 入 力 と 、 デバイ スの 左 右 に 8 個 のク ロ ッ ク があ ります。 <strong>Spartan</strong>-3 プラッ ト フォームには、8 個 のグ ローバル クロック 入 力 しかありません。 クロックリ ソースおよび 配 線 は 似 ていますが、 プラ ッ ト フォームによって、 または 同 じプラ ッ ト フォームでも 集 積 度 の 違 いに よ り 、タ イ ミ ングは 異 な り ます。 この 章 では、<strong>Spartan</strong>-3E および <strong>Spartan</strong>-3A/3AN/3A DSP プラ ッ ト フォームのアーキテクチャに 焦 点 を 置 いています。 <strong>Spartan</strong>-3 プラッ ト フォームの 専 用 ク ロ ッ ク 入 力 および 配 線 は、<strong>Spartan</strong>-3E および <strong>Spartan</strong>-3A/3AN/3A DSP プラッ ト フォームよ り も 単 純 です。 詳 細 は、 <strong>Spartan</strong>-3 <strong>FPGA</strong> のデータ シー ト を 参 照 し て く だ さ い。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 45<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 2 章 : グローバル クロック リ ソースの 使 用グローバル クロック リソースグローバル クロック リソースには、GCLK グローバル クロック 入 力 パッド、BUFGMUX グローバル クロック マルチプレ クサ、 およびグローバル ク ロ ッ ク 配 線 の 3 つの 接 続 さ れた コ ンポーネントがあります。 図 2-1 を 参 照 して く ださい。GCLKPadDCMBUFGMUXGlobalRoutingClocksDoubles<strong>UG331</strong>_c4_01_080906図 2-1 : ク ロ ッ ク 接 続 の 概 略 図太 線 で 示 さ れてい る プ ラ イ マ リ クロック パスは、 専 用 ク ロ ッ ク パッ ド (GCLK) でグローバル クロック バッファ (BUFGMUX) を 駆 動 し、 グローバル 配 線 を 介 してフ リ ップフロ ップやその 他 のクロック エレメン トのクロッ ク 入 力 に 接 続 されます。 GCLK パッドは 汎 用 I/O としても 使 用 でき、LHCLK および RHCLK 入 力 ( 後 述 ) も 含 まれます。 クロック パッド とクロック バッファの 間 にDCM を 挿 入 し て ク ロ ッ ク を 調 整 し た り 、 汎 用 リ ソ ースか ら の ク ロ ッ ク 信 号 を DCM で 受 信 した りできます。 内 部 生 成 さ れた ク ロ ッ ク も、 汎 用 のダブル ラインを 介 してクロック バッファに 供 給 できます。 BUFGMUX は、 2 つのク ロ ッ ク ソースのいずれかを 選 択 する ため、 または 単 純 な BUFG クロック バッファ と して 使 用 できます。 クロック バッファで 駆 動 できるのはクロック 配 線 リ ソースのみで、 クロック 配 線 リソースで 駆 動 できるのはクロック 入 力 のみです。 フリ ップフロップのクロ ッ ク 入 力 は 汎 用 配 線 で 駆 動 する こ と も で き ますが、 ス キ ューが 大 き く な る ので、 こ の よ う な 配 線は 最 小 限 に 抑 えて く だ さ い。クロック インフラストラクチャ図 2-2 に、 <strong>Spartan</strong>-3E/3A/3AN/3A DSP の 詳 細 な ク ロ ッ ク インフラスト ラクチャを 示 します。46 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


グローバル クロック リソースR4Global Clock InputsGCLK11 GCLK10 GCLK9 GCLK8GCLK7 GCLK6 GCLK5 GCLK44Left-Half Clock InputsLHCLK4 LHCLK5LHCLK6 LHCLK7LHCLK0 LHCLK1LHCLK2 LHCLK3BUFGMUX222BUFGMUXpairX0Y6 X0Y7 X0Y8 X0Y9X0Y2 X0Y3 X0Y4 X0Y5DCMLeft, Top2222HGDCMLeft, BottomFEDCTop LeftQuadrant (TL)Left SpineBottom LeftQuadrant (BL)DCMTop, Left8 84••84••8 8 Horizontal Spine 88•8•X1Y10 X1Y11X2Y10 X2Y11Bottom SpineTop Spine8 48DCMTop, Right8••8•Top RightQuadrant (TR)Right Spine2 2••BA88DCMBottom, LeftNote 3Note 3HG4 4D C B AFEX1Y0 X1Y1 X2Y0 X2Y144•Note 4Note 4DCMBottom, Right88Bottom RightQuadrant (BR)Clock c Linein QuadrantHG22FEDC22BAX3Y9 X3Y8 X3Y7 X3Y6X3Y5 X3Y4 X3Y3 X3Y22DCMRight, Bottom22DCMRight, TopRHCLK3 RHCLK2RHCLK1 RHCLK0 RHCLK7 RHCLK6RHCLK5 RHCLK4Right-Half Clock Inputs4GCLK3 GCLK2GCLK1 GCLK0メモ :GCLK15 GCLK14GCLK13 GCLK12Global Clock Inputs<strong>UG331</strong>_c4_02_0110081. こ の 図 は、 電 気 的 な 接 続 を 示 し ています。 図 に 示 さ れてい る 座 標 は 正 し い も のですが、 物 理 的 な 位 置 は 実 際 のデバ イ ス と 必 ず し も 一 致していません。2. DCM の 数 と 位 置 は、 デバ イ ス の 集 積 度 に よ っ て 異 な り ます。 表 2-1 を 参 照 して ください。3. デバイ スの 左 辺 で 8 個 のク ロ ッ ク ラインがどのようにマルチプレクサに 接 続 されているかは、 図 2-12a を 参 照 して く ださい。4. デバイ スの 右 辺 で 8 個 のク ロ ッ ク ラインがどのようにマルチプレクサに 接 続 されているかは、 図 2-12b を 参 照 して く ださい。5. 特 定 の ク ロ ッ ク バッファに 最 適 なダイレク ト クロック 入 力 は、 表 2-7 を 参 照 して く ださい。6. 特 定 の DCM に 最 適 なダ イ レ ク ト ク ロ ッ ク 入 力 は、 第 3 章 「デジタル クロック マネージャ (DCM) の 使 用 」 を 参 照 して ください。図 2-2 : <strong>Spartan</strong>-3E/3A/3AN/3A DSP の 内 部 区 画 ベースのク ロ ッ ク インフラストラクチャ<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 47<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 2 章 : グローバル クロック リ ソースの 使 用表 2-1 : <strong>Spartan</strong>-3E/3A/3AN/3A DSP の DCM の 位 置上 辺 、 左 上 辺 、 右 右 辺 、 下 右 辺 、 上 下 辺 、 右 下 辺 、 左 左 辺 、 上 左 辺 、 下<strong>Spartan</strong>-3A DSPXC3SD1800A X1Y3 X2Y3 X3Y1 X3Y2 X2Y0 X1Y0 X0Y2 X0Y1XC3SD3400A X1Y3 X2Y3 X3Y1 X3Y2 X2Y0 X1Y0 X0Y2 X0Y1<strong>Spartan</strong>-3A/3ANXC3S50A/AN X0Y0 X1Y0 なし なし なし なし なし なしXC3S200A/AN X0Y1 X1Y1 なし なし X1Y0 X0Y0 なし なしXC3S400A/AN X0Y1 X1Y1 なし なし X1Y0 X0Y0 なし なしXC3S700A/AN X1Y3 X2Y3 X3Y1 X3Y2 X2Y0 X1Y0 X0Y2 X0Y1XC3S1400A/AN X1Y3 X2Y3 X3Y1 X3Y2 X2Y0 X1Y0 X0Y2 X0Y1<strong>Spartan</strong>-3EXC3S100E なし X0Y1 なし なし X0Y0 なし なし なしXC3S250E X0Y1 X1Y1 なし なし X1Y0 X0Y0 なし なしXC3S500E X0Y1 X1Y1 なし なし X1Y0 X0Y0 なし なしXC3S1200E X1Y3 X2Y3 X3Y1 X3Y2 X2Y0 X1Y0 X0Y2 X0Y1XC3S1600E X1Y3 X2Y3 X3Y1 X3Y2 X2Y0 X1Y0 X0Y2 X0Y1クロック 入 力クロック ピ ンは、 外 部 ク ロ ッ ク 信 号 を 受 信 し、 DCM および BUFGMUX エレ メ ン ト に 直 接 接 続 されます。 クロック ピンは、 汎 用 I/O と し て も 使 用 で き ます。 各 <strong>Spartan</strong>-3E/3A/3AN/3A DSP <strong>FPGA</strong>には、 次 の リ ソースが 含 まれています。• 16 個 のグ ローバル クロック 入 力 (GCLK0 ~ GCLK15) (<strong>FPGA</strong> の 上 辺 および 下 辺 )• 8 個 の 右 側 ク ロ ッ ク 入 力 (RHCLK0 ~ RHCLK7) (<strong>FPGA</strong> の 右 辺 )• 8 個 の 左 側 ク ロ ッ ク 入 力 (LHCLK0 ~ LHCLK7) (<strong>FPGA</strong> の 左 辺 )外 部 信 号 で ク ロ ッ ク バ ッ フ ァ が 駆 動 さ れる と 、ク ロ ッ ク 入 力 ピ ンが 自 動 的 に 使 用 さ れます。 LOC 制約 を 使 用 し て、 ク ロ ッ ク を 左 側 ま たは 右 側 の リ ージ ョ ナル クロックに 固 定 したり、クロックを 特 定のクロック バ ッ フ ァおよび ク ロ ッ ク 配 線 リ ソース を 使 用 する よ う 指 定 で き ます。49 ページの 表 2-2~ 51 ページの 表 2-4 に、 <strong>Spartan</strong>-3A/3AN/3A DSP、 <strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3 <strong>FPGA</strong> の 各 パッ ケージでのク ロ ッ ク 入 力 を 示 し ます。48 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


クロック 入 力R<strong>Spartan</strong>-3A/3AN/3A DSP のクロッ ク 入 力<strong>Spartan</strong>-3A/3AN/3A DSP の ク ロ ッ ク 入 力 は、 すべて 双 方 向 I/O ピン 上 にあり、 コンフィギュレーション 機 能 とは 共 有 されません。VQ100 パッケージには、23 個 のグ ローバル ク ロ ッ ク 入 力 があ ります。 TQ144 パッケージの XC3S50A/AN では、 GCLK12 および GCLK13 は 使 用 でき ないので、グローバル クロック 入 力 は 下 辺 の 6 つのみです。表 2-2 : <strong>Spartan</strong>-3A/3AN/3A DSP <strong>FPGA</strong> のグローバル ク ロ ッ ク 入 力 パ ッ ドパッ ド バンク VQ100 TQ144 FT256 FG320 FG400 CS484 FG484 FG676GCLK0 2 P43 P57 N9 U10 Y11 U12 AA12 Y14GCLK1 2 P44 P59 P9 T10 V11 V12 AB12 AA14GCLK2 2 なし P58 R9 V11 U11 AB13 V12 AF14GCLK3 2 なし P60 T9 U11 V12 AA14 U12 AE14GCLK4 0 P83 P124 C10 B10 D11 E12 C12 K14GCLK5 0 P84 P126 D9 C9 E11 F11 E12 J14GCLK6 0 P85 P125 C9 A10 A10 A9 A12 B14GCLK7 0 P86 P127 A9 B9 C10 B9 A11 A14GCLK8 0 P88 P129 C8 A8 D10 F10 B11 F13GCLK9 0 P89 P131 D8 B7 E10 E11 C11 G13GCLK10 0 なし P130 A8 B8 A9 A8 D11 B13GCLK11 0 P90 P132 B8 C8 A8 B8 E11 C13GCLK12 2 なし なし R7 (1) U8 W9 Y11 U11 AA13GCLK13 2 なし なし T7 (1) V8 Y9 Y10 V11 Y13GCLK14 2 P40 P54 P8 U9 V10 AA12 W12 AF13GCLK15 2 P41 P55 T8 V9 W10 AB12 Y12 AE13LHCLK0 3 P9 P12 G2 H3 J1 L6 L5 N6LHCLK1 3 P10 P13 H1 J3 K2 M5 L3 N7LHCLK2 3 P12 P15 H3 J2 K3 K1 K1 P1LHCLK3 3 P13 P16 J3 J1 L3 L1 L1 P2LHCLK4 3 なし P18 J2 J4 K4 L3 M1 P4LHCLK5 3 なし P20 J1 K5 L5 M2 M2 P3LHCLK6 3 P15 P19 K3 K2 L1 M6 M3 N9LHCLK7 3 P16 P21 K1 K3 M1 N7 M4 P10RHCLK0 1 P59 P83 K15 L18 M19 N18 M22 P21RHCLK1 1 P60 P85 K14 K17 M20 M17 L22 P20RHCLK2 1 P61 P87 K16 K18 L19 N21 L21 P26RHCLK3 1 P62 P88 J16 J17 L18 M20 L20 P25RHCLK4 1 なし P90 J14 J16 K18 L21 M18 P23RHCLK5 1 なし P92 H14 K15 L17 L20 M20 N24RHCLK6 1 P64 P91 H15 H18 K20 M18 K20 P18RHCLK7 1 P65 P93 H16 H17 J20 L17 K19 N19メモ :1. XC3S50A ではなし。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 49<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 2 章 : グローバル クロック リ ソースの 使 用<strong>Spartan</strong>-3E のクロッ ク 入 力<strong>Spartan</strong>-3E <strong>FPGA</strong> では、グ ローバル クロック 入 力 GCLK1 は M2 モード セレク ト ピンとしても 使用 されるので、 なるべく 使 用 しないでください。 グローバル クロック 入 力 GCLK0、 GCLK2、GCLK3、 GCLK12、 GCLK13、 GCLK14、 GCLK15 は、 一 部 のコ ン フ ィ ギ ュ レーシ ョ ン モード でも 使 用 され、 すべての RHCLK 入 力 は BPI モー ド でア ド レ ス ラインとしても 使 用 されます。 コンフ ィ ギ ュ レーシ ョ ン 中 と コ ンフ ィ ギ ュ レーシ ョ ン 後 でのピンの 使 用 に 競 合 がないこ と を 確 認 し て ください。また、 一 部 のクロッ ク パッ ド ピンは、 データシートの 「ピン 配 置 の 説 明 」 に 示 すよ うに、 入 力 のみのピ ンです。 これらのピンは、 使 用 しても I/O ピンの 数 は 減 少 しないので、 クロック 入 力 として使 用 する と 有 益 です。表 2-3 : <strong>Spartan</strong>-3E <strong>FPGA</strong> のグローバル ク ロ ッ ク 入 力 パ ッ ドパッ ド バンク VQ100 CP132 TQ144 PQ208 FT256 FG320 FG400 FG484GCLK0 2 P38 M6 P56 P80 T9 U10 P11 R12GCLK1 2 P39 N6 P57 P81 R9 T10 P12 P12GCLK2 2 P40 P6 P58 P82 P9 R10 V10 Y12GCLK3 2 P41 P7 P59 P83 N9 P10 V11 W12GCLK4 0 P83 A10 P122 P177 E9 D10 F11 F12GCLK5 0 P84 C9 P123 P178 F9 E10 G11 E12GCLK6 0 P85 B9 P125 P180 A10 B10 E11 B12GCLK7 0 P86 A9 P126 P181 A9 A10 E10 C12GCLK8 0 P88 B8 P128 P183 A8 B8 H10 H12GCLK9 0 P89 C8 P129 P184 B8 B9 G10 H11GCLK10 0 P90 A7 P130 P185 C8 C9 A10 C11GCLK11 0 P91 B7 P131 P186 D8 D9 A9 B11GCLK12 2 P32 M4 P50 P74 M8 N9 W9 V11GCLK13 2 P33 N4 P51 P75 L8 M9 W10 U11GCLK14 2 P35 M5 P53 P77 N8 U9 R10 R11GCLK15 2 P36 N5 P54 P78 P8 V9 P10 T11LHCLK0 3 P9 F3 P14 P22 H5 J5 K3 M5LHCLK1 3 P10 F2 P15 P23 H6 J4 K2 L5LHCLK2 3 P11 F1 P16 P24 H3 J1 K7 L8LHCLK3 3 P12 G1 P17 P25 H4 J2 L7 M8LHCLK4 3 P15 G3 P20 P28 J2 K3 M1 M1LHCLK5 3 P16 H1 P21 P29 J3 K4 L1 N1LHCLK6 3 P17 H2 P22 P30 J5 K6 M31 M3LHCLK7 3 P18 H3 P23 P31 J4 K5 L3 M4RHCLK0 1 P60 K14 P85 P126 K16 K13 M16 N22RHCLK1 1 P61 J12 P86 P127 J16 K12 L16 M22RHCLK2 1 P62 J13 P87 P128 J14 K15 L15 M15RHCLK3 1 P63 J14 P88 P129 J13 K14 L14 M1650 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


クロック 入 力R表 2-3 : <strong>Spartan</strong>-3E <strong>FPGA</strong> のグローバル ク ロ ッ ク 入 力 パ ッ ド ( 続 き)パッ ド バンク VQ100 CP132 TQ144 PQ208 FT256 FG320 FG400 FG484RHCLK4 1 P65 H13 P91 P132 H15 J17 K13 L20RHCLK5 1 P66 H12 P92 P133 H14 J16 K14 L21RHCLK6 1 P67 G14 P93 P134 H12 J15 K20 L18RHCLK7 1 P68 G13 P94 P135 H11 J14 J20 L19<strong>Spartan</strong>-3 のクロッ ク 入 力<strong>Spartan</strong>-3 デバイ スには、 8 個 のグ ローバル ク ロ ッ ク 入 力 パ ッ ド (GCLK0 ~ GCLK7) があ り ます。GCLK0 ~ GCLK3 はデバ イ ス の 下 辺 の 中 央 に 配 置 さ れてお り 、 GCLK4 ~ GCLK7 はデバイ スの上 辺 の 中 央 に 配 置 さ れています。 8 個 のグ ローバル ク ロ ッ ク 入 力 のどれで も、 デバ イ ス 上 のどの リソースにも 接 続 できます。 区 画 に よ る 制 限 はな く 、プ ラ イ マ リ クロックとセカンダリ クロックの 違いはないので、 I/O と ロ ジ ッ ク の 配 置 が 簡 潔 にな り ます。 <strong>Spartan</strong>-3 <strong>FPGA</strong> では、 ク ロ ッ ク 入 力 はコン フ ィ ギ ュ レーシ ョ ン 機 能 と は 共 有 さ れず、 すべて I/O ピン 上 にあり ます。表 2-4 に、 グ ローバル クロック 入 力 パッドのピン ロケーションを 示 します。表 2-4 : <strong>Spartan</strong>-3 <strong>FPGA</strong> のグローバル ク ロ ッ ク 入 力 パ ッ ドパッ ド バンク VQ100 CP132 TQ144 PQ208 FT256 FG320 FG456 FG676 FG900 FG1156GCLK0 4 P38 M7 P55 P79 T9 P10 AB12 AF14 AK16 AP18GCLK1 4 P39 P8 P56 P80 R9 N10 AA12 AE14 AJ16 AN18GCLK2 5 P36 P6 P52 P76 N8 P9 Y11 AD13 AH15 AM17GCLK3 5 P37 P7 P53 P77 P8 N9 AA11 AE13 AJ15 AN17GCLK4 1 P87 A9 P124 P180 D9 F10 C12 C14 C16 C18GCLK5 1 P88 A8 P125 P181 C9 E10 B12 B14 B16 B18GCLK6 0 P89 C8 P128 P183 A8 F9 A11 A13 A15 A17GCLK7 0 P90 A7 P127 P184 B8 E9 B11 B13 B15 B17ク ロ ッ ク 入 力 と DCMク ロ ッ ク 入 力 は、 専 用 接 続 を 使 用 し て DCM に 接 続 する こ と も で き ます。 各 デバ イ ス で 特 定 の DCMを 駆 動 する のに 最 適 な ク ロ ッ ク 入 力 は、 第 3 章 「デジタル クロック マネージャ (DCM) の 使 用 」 を参 照 し て く だ さ い。2 つの 入 力 を 使 用 する 差 動 ク ロ ッ ク差 動 ク ロ ッ ク 入 力 には、 2 つのグ ローバル ク ロ ッ ク 入 力 が 必 要 です。 P および N 入 力 は、 こ れら のピ ン 上 の 標 準 入 力 と 同 じ コ ン フ ィ ギ ュ レーシ ョ ンにな り ます。 クロック 番 号 が 連 続 したクロック 入力 ( 偶 数 番 号 の ク ロ ッ ク と それよ り 1 大 きい 奇 数 番 号 のク ロ ッ ク) がペア と な り ます。 たとえば、GCLK0 と GCLK1、 LHCLK6 と LHCLK7 が 差 動 ペア と な り ます。<strong>Spartan</strong>-3E および <strong>Spartan</strong>-3A/3AN/3A DSP <strong>FPGA</strong> では、 各 ク ロ ッ ク バッファに 2 つの ク ロ ッ ク入 力 を 接 続 で き る ので、 12 個 までの 差 動 グローバル ク ロ ッ ク 入 力 を 使 用 可 能 です。 <strong>Spartan</strong>-3<strong>FPGA</strong> では、 4 個 までの 差 動 ク ロ ッ ク 入 力 を 使 用 で き ます。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 51<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 2 章 : グローバル クロック リ ソースの 使 用専 用 ク ロ ッ ク 入 力 の 使 用IBUFGLHCLK および RHCLK ピ ン を 含 むすべての ク ロ ッ ク 入 力 ピ ンは、 デザ イ ンで IBUFG コンポーネントとして 表 されます。 IBUFG は 通 常 、 最 上 位 ク ロ ッ ク ポー ト に 対 し て 推 論 されますが、 インスタンシエー ト する と 、 細 かい 制 御 が 可 能 にな り ます。 I ポー ト は 最 上 位 ポー ト に 直 接 接 続 し、O ポー トは DCM、BUFG、ま たは 汎 用 ロ ジ ッ ク に 接 続 し ます。 ほとんどの 合 成 ツールでは、IBUFG を <strong>FPGA</strong>のクロック リ ソースに 接 続 する と 、 BUFG が 自 動 的 に 推 論 さ れます。IBUFG ( 図 2-3 を 参 照 ) は、BUFGMUX (またはその 代 替 コンポーネン ト) または DCM を 駆 動 する専 用 入 力 バ ッ フ ァ です。IBUFGIO<strong>UG331</strong>_c4_03_080906図 2-3 : IBUFG コンポーネントIBUFGDSIBUFGDS ( 図 2-4 を 参 照 ) は、 ク ロ ッ ク バッファ (BUFG) または DCM に 接 続 する ための 専 用 の差 動 信 号 入 力 バ ッ フ ァ です。 IBUFGDS では、 デザイン レベルの イ ン ターフ ェ イ ス 信 号 は、 一 方 が「マス タ」 で、 も う 一 方 が 「ス レーブ」 と なる 2 つの 異 な る ポー ト (I、 IB) で 表 されます。 マスタ とスレーブは MYNET と MYNETB の よ う に、 同 じ 論 理 信 号 の 反 対 の 状 態 を 示 し ます。IIBO<strong>UG331</strong>_c4_04_080906入 力出 力I IB O0 0 - (1)0 1 01 0 11 1 - (1)1. ダッシュ (-) は 変 化 な し を 意 味 し ます。図 2-4 : IBUFGDS コ ンポーネン ト と その 真 理 値 表IBUFGDS のデフ ォル ト の I/O 規 格 は LVDS_25 です。52 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


クロック バッファ /マルチプレ クサRクロック バッファ /マルチプレ クサクロック バッファ /マルチプレ クサは、 ク ロ ッ ク 信 号 を 直 接 ク ロ ッ ク ライン (BUFG) に 駆 動 するか、 2 つの 無 関 係 のク ロ ッ ク 信 号 から 1 つを 選 択 する ために 使 用 で き ます (BUFGMUX)。各 BUFGMUX エレメ ント は、 図 2-5 に 示 すよ う に、 2:1 マルチプレク サです。 セレク ト ライン S により、I0 または I1 のどちら を BUFGMUX 出 力 O から 出 力 する かを 選 択 し ま す ( 表 2-5 を 参 照 )。データ シー ト の 「DC 特 性 およびス イ ッ チ 特 性 」 に 示 すよ う に、 S 入 力 にはセ ッ ト ア ッ プ タイム 要件 があ り ます。 極 性 は 指 定 可 能 です。I0BUFGMUXOI1S<strong>UG331</strong>_c4_05_080906図 2-5 : BUFGMUX クロック マルチプレクサ表 2-5 : BUFGMUX によ る ク ロ ッ クの 選 択S 入 力O 出 力0 I0 入 力1 I1 入 力BUFGMUX によ る ク ロ ッ ク 選 択 の 詳 細BUFGMUX では、 ク ロ ッ ク 選 択 の 際 に、 タ イ ミ ングの 問 題 は 発 生 し ません。 1 つのク ロ ッ ク ソースか ら 完 全 に 無 関 係 の ク ロ ッ ク ソースに 切 り 替 える 場 合 でも、 グ リ ッチは 発 生 しません。 S がトグルして 別 のク ロ ッ ク ソ ース が 選 択 さ れる と 、 いずれかの 入 力 の 次 のア ク テ ィ ブ クロック エッジまで、 出 力 が 非 ア ク テ ィ ブに 保 持 さ れます。 このときの 出 力 は、High または Low にでき ます (デフォルトは Low)。 ク ロ ス に 接 続 さ れた レ ジ ス タ ペアによ り 、BUFGMUX の 出 力 で 不 正 な ク ロ ッ ク エッジが 生 成 さ れるのを 防 ぎ ます。S 入 力 が 変 化 する と 、 現 在 の ク ロ ッ ク 入 力 が Low にな り、 新 しいク ロ ッ ク 入 力 が High から Lowに 遷 移 する まで、 新 し い 入 力 は O に 出 力 されません。 出 力 の 切 り 替 えは、 入 力 の Low から High への 最 初 の 遷 移 では 発 生 し ないので、 出 力 ク ロ ッ ク パルスが 入 力 ク ロ ッ ク パルスの 最 短 パルス よ り短 くなることはありません。表 2-6 : BUFGMUX の 機 能入 力出 力I0 I1 S OI0 X 0 I0X I1 1 I1X X ↑ 0X X ↓ 0<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 53<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 2 章 : グローバル クロック リ ソースの 使 用S 入 力 が Low の 場 合 は I0 が 選 択 され、 High の 場 合 は I1 が 選 択 さ れますが、 極 性 は 指 定 可 能 で、I0 と I1 をスワップできます。 ク ロ ッ ク 信 号 の 極 性 は 各 フ リ ッ プフ ロ ッ プで 指 定 可 能 で、 立 ち 上 が りエッジまたは 立 ち 下 がりエッジでト リガできるので、 2 つの 異 な る ク ロ ッ ク 信 号 を 生 成 し、 伝 搬 する 必 要 はあ り ません。1 つのク ロ ッ ク 入 力 のみが 必 要 な 場 合 は、 2 つ 目 の ク ロ ッ ク 入 力 と セレ ク ト ラ イ ン を 使 用 する 必 要はあ り ません。BUFGMUX は、 電 源 供 給 時 およびグ ローバル セッ ト/ リセット (GSR) のアサート 時 に I0 が 選 択 される よ う 初 期 化 さ れます。 シミュレーションでも、 時 間 0 で S=0 が 選 択 される よ う にする 必 要 があります。 時 間 0 で S=1 が 選 択 される と 、I1 の 次 の 立 ち 下 が り エ ッ ジまで 出 力 が 不 明 にな り ます。セレク ト ラ イ ンは、 ク ロ ッ ク のステー ト および 遷 移 に 関 係 な く いつで も 変 更 でき ますが、 選 択 さ れた ク ロ ッ ク 入 力 の 立 ち 上 が り エ ッ ジの 前 、セ ッ ト ア ッ プ タイム 内 に S が 変 化 する と 、 出 力 に ラ ン トパルスが 現 れる こ と があ り ます。クロック バッファ /マルチプ レ クサの 使 用主 な 合 成 ツールでは、 フ ァ ンアウ ト が 最 大 のク ロ ッ ク ネッ トに 対 してクロック バッファが 推 論 されます。 バ ッ フ ァ 数 よ り ク ロ ッ ク 数 が 多 い 場 合 、 使 用 度 が 高 い ク ロ ッ ク に 優 先 的 にバ ッ フ ァ が 使 用されます。 バ ッ フ ァ を 明 示 的 に 指 定 し た り 、 ク ロ ッ ク マルチプレ ク サ 機 能 を 使 用 する 場 合 は、 ラ イブラ リ コ ンポーネン ト を 使 用 し ます。BUFGMUX および BUFGMUX_1BUFGBUFGMUX と BUFGMUX_1 では、 S の 値 が 変 化 し た 後 ク ロ ッ ク が 切 り 替 わる まで 保 持 される 出力 ステート が 異 な り ます。 BUFGMUX では 出 力 ステー ト が 0 に、 BUFGMUX_1 では 出 力 ステートが 1 に 保 持 されます。BUFGMUX は、 デバ イ スに 含 まれる 物 理 的 な ク ロ ッ ク バッファですが、 1 入 力 の ク ロ ッ ク バッファとしても 使 用 できます。 BUFG クロック バッファ プリ ミティブ ( 図 2-6 を 参 照 ) は、 1 つのクロック 信 号 をクロック ネ ッ ト ワーク に 駆 動 し ます。 ク ロ ッ ク 選 択 機 能 がないだけで、 基 本 的 にはBUFGMUX と 同 じエレメン トです。 BUFG は、 異 な る アーキテ ク チャ で 共 通 の ク ロ ッ ク バッファプリ ミティブです。BUFGIO<strong>UG331</strong>_c4_06_080906図 2-6 : BUFG コンポーネント54 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


クロック バッファ /マルチプレ クサR図 2-7 に 示 すよ う に、 BUFG は BUFGMUX か ら 構 築 さ れています。I0I1Oセレク ト ラインを 0 に 固 定 する のには、 専 用 VCC ソースを 使 用 し、S 入 力 の 極 性 を 指 定 し ていま す。BUFGCE および BUFGCE_1S<strong>UG331</strong>_c4_07_011008図 2-7 : BUFGMUX から 構 築 された BUFGBUFGCE プリ ミティブは、BUFGMUX のクロック 選 択 機 構 を 使 用 して、 クロック バッファのイネーブル 入 力 を 作 成 し ます。 BUFGCE は、 ク ロ ッ ク イ ネーブル 入 力 付 き グ ローバル クロック バッファです。 O 出 力 は、ク ロ ッ ク イネーブル (CE) が Low ( 非 ア クテ ィ ブ) のときに 0 にな り ます。 CEが High になる と、 I 入 力 の 値 が O に 出 力 されます。CEBUFGCEIO<strong>UG331</strong>_c4_08_080906入 力出 力I CE OX 0 01 1 1図 2-8 : BUFGCE コ ンポーネン ト と その 真 理 値 表BUFGCE は、BUFGMUX で 1 つの 入 力 を 固 定 値 にする こ と に よ り 構 成 さ れています。 ディスエーブルの 場 合 のデフ ォル ト 値 は Low です。 BUFGCE_1 プリ ミティブは、VCC を I1 に 接 続 する こ とによ り、ディ スエーブルの 場 合 のデフォルト 値 を High にしています。 BUFGMUX_1 プリ ミティブで も、 入 力 の 切 り 替 えの 際 にグ リ ッチは 発 生 し ません。 図 2-9 に、 等 価 機 能 を 示 し ます。 ただ し、このライブラ リ コンポーネントはプリ ミティブであり、 CE の 反 転 は BUFGMUX 機 能 に 組 み 込 まれています。 0 は、 未 使 用 のどの LUT か ら で も 供 給 で き ます。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 55<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 2 章 : グローバル クロック リ ソースの 使 用XGNDI0I1BUFGMUXOOGNDINVCE_INS図 2-9 : BUFGCE の 等 価 機 能<strong>UG331</strong>_c4_09_080906XST によるクロッ ク バッファの 合 成XST では、 フ ァ ンア ウ ト が 最 大 の ク ロ ッ ク ネ ッ ト に 対 し て 自 動 的 に ク ロ ッ ク バッファが 推 論 されますが、 ク ロ ッ ク バ ッ フ ァ の 使 用 は 合 成 制 約 に よ り 制 御 で き ます。BUFFER_TYPE は、 入 力 ポー ト に 挿 入 さ れる バ ッ フ ァ の タ イ プを 指 定 し ます。 デフォル ト はBUFGP で、 これは BUFG と 等 価 です。NET “signal_name” buffer_type={bufgdll|ibufg|bufgp|ibuf|bufr|none};BUFFER_TYPE 制 約 は、 汎 用 入 力 に 設 定 し て、 グ ローバル クロックが 使 用 される (= BUFGP) よう に 指 定 で き ます。 NONE に 設 定 する と、 グ ローバル クロック バ ッ フ ァ の 自 動 的 な 推 論 はオフになります。 こ の 制 約 は、 CLOCK_BUFFER 制 約 に 置 き 換 わ る も のです。 新 規 デザイ ンでは、CLOCK_BUFFER 制 約 ではな く BUFFER_TYPE 制 約 を 使 用 し て く だ さ い。1 つの ク ロ ッ ク ネ ッ ト のすべての ロー ド に 共 通 の ク ロ ッ ク イネーブルが 使 用 されている 場 合 は、BUFGCE = YES 制 約 を 使 用 し てフ ァ ンア ウ ト の 大 き い ク ロ ッ ク イネーブルを BUFGCE の 1 つのラ イ ンに 移 動 で き ます。NET “primary_clock_signal” bufgce={yes|no|true|false};CLOCK_SIGNAL は、 合 成 制 約 です。 ク ロ ッ ク 信 号 がフ リ ッ プフ ロ ッ プの ク ロ ッ ク 入 力 に 接 続 さ れる 前 に 組 み 合 わせロ ジ ッ ク を 通 過 する 場 合 、 ク ロ ッ ク ピンとなる 入 力 ピンが 認 識 されません。 この制 約 を 設 定 する と 、 ク ロ ッ ク ピンを 定 義 できます。NET “primary_clock_signal” clock_signal={yes|no|true|false};BUFGMUX の 接 続BUFGMUX の 入 力BUFGMUX エレ メン トの I0 および I1 入 力 には、 図 2-10 に 示 すよ う に、ク ロ ッ ク 入 力 ピン、DCM、ダブル ライン インターコネク トを 接 続 できます。 47 ページの 図 2-2 に 示 すよ う に、 24 個 のBUFGMUX エレメン トがデバイスの 4 辺 に 配 置 されています。 上 辺 および 下 辺 の BUFGMUX エレ メ ン ト か ら の ク ロ ッ ク 信 号 は 完 全 にグ ローバルであ り 、 すべての ク ロ ッ ク 区 画 に 接 続 で き ます。左 辺 にあ る 8 個 の BUFGMUX エレ メ ン ト は、デバ イ スの 左 側 の 2 つの ク ロ ッ ク 区 画 にのみ 接 続 可能 で、 右 辺 にあ る 8 個 の BUFGMUX エレ メ ン ト は、 デバ イ スの 右 側 の 2 つの ク ロ ッ ク 区 画 にのみ接 続 可 能 です。56 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


BUFGMUX の 接 続R BUFGMUXCLK SI0I101BUFGMUXO BUFGMUXCLK BUFGMUXSI0I101OI0I101OI0I101OSSLHCLK RHCLK DCM *1 GCLK 1 DCM 2 DCM 2 GCLK *( DCM )<strong>UG331</strong>_c4_10_080906図 2-10 : <strong>Spartan</strong>-3E/3A/3AN/3A DSP の BUFGMUX ペアと クロッ ク スイッチ マトリックスの 接 続BUFGMUX エレ メン トは 2 つずつペアになってお り 、 図 2-10 に 示 すよ う に、 共 通 のク ロ ッ ク スイッチ マト リックスから I0 と I1 への 接 続 は、 隣 接 する BUFGMUX と 共 有 されています。 たとえば、1 つの BUFGMUX の I0 への 入 力 は、 隣 接 する BUFGMUX の I1 への 入 力 と 共 有 さ れています。左 辺 および 右 辺 の BUFGMUX エレ メン トのクロ ッ ク スイッチ マト リックスには、LHCLK ( 左 辺 )または RHCLK ( 右 辺 ) ピン、 ダブル ライン イ ン ターコ ネ ク ト 、 ま たは 大 型 デバ イ ス では DCM から 信 号 を 供 給 できます。 左 辺 および 右 辺 に DCM を 含 む 大 型 デバイ スは、 <strong>Spartan</strong>-3E <strong>FPGA</strong> のXC3S1200E および XC3S1600E デバイ ス、 <strong>Spartan</strong>-3A/3AN <strong>FPGA</strong> の XC3S700A/AN およびXC3S1400A/AN デバイ ス、 <strong>Spartan</strong>-3A DSP の 両 デバイ スです。一 方 、 上 辺 および 下 辺 の ク ロ ッ ク スイッチ マ ト リックスには、2 つの GCLK ピン、 2 つの DCM出 力 、 ま たは 1 つのダブル ライン イ ン ターコ ネ ク ト か ら 信 号 を 供 給 で き ます。表 2-7 に、ク ロ ッ ク 入 力 と BUFGMUX エレ メ ント の 可 能 な 接 続 を 示 し ま す。 I0 入 力 はク ロ ッ ク バッフ ァ への 最 適 な 入 力 パス であり 、 I1 入 力 はク ロ ッ ク マルチプレ ク サ 機 能 のセカ ン ダリ 入 力 です。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 57<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 2 章 : グローバル クロック リ ソースの 使 用表 2-7 : <strong>Spartan</strong>-3E/3A/3AN/3A DSP のクロッ ク 入 力 と BUFGMUX エレ メ ン ト の 接 続 および 関 連 する 区 画 ク ロ ッ ク区 画 ク ロ ッ クライン (1)左 辺 の BUFGMUX 上 辺 または 下 辺 の BUFGMUX 右 辺 の BUFGMUX位 置 (2) I0 入 力 I1 入 力 位 置 (2) I0 入 力 I1 入 力 位 置 (2) I0 入 力 I1 入 力<strong>Spartan</strong>-3A (3) :<strong>Spartan</strong>-3A :H X0Y9 LHCLK7 LHCLK6 X1Y10GCLK6 またはGCLK10<strong>Spartan</strong>-3E :GCLK7 またはGCLK11<strong>Spartan</strong>-3E :X3Y9 RHCLK3 RHCLK2GCLK7 またはGCLK11GCLK6 またはGCLK10<strong>Spartan</strong>-3A :<strong>Spartan</strong>-3A :G X0Y8 LHCLK6 LHCLK7 X1Y11GCLK7 またはGCLK11<strong>Spartan</strong>-3E :GCLK6 またはGCLK10<strong>Spartan</strong>-3E :X3Y8 RHCLK2 RHCLK3GCLK6 またはGCLK10GCLK7 またはGCLK11<strong>Spartan</strong>-3A :<strong>Spartan</strong>-3A :F X0Y7 LHCLK5 LHCLK4 X2Y10GCLK4 またはGCLK8<strong>Spartan</strong>-3E :GCLK5 またはGCLK9<strong>Spartan</strong>-3E :X3Y7 RHCLK1 RHCLK0GCLK5 またはGCLK9GCLK4 またはGCLK8<strong>Spartan</strong>-3A :<strong>Spartan</strong>-3A :E X0Y6 LHCLK4 LHCLK5 X2Y11GCLK5 またはGCLK9<strong>Spartan</strong>-3E :GCLK4 またはGCLK8<strong>Spartan</strong>-3E :X3Y6 RHCLK0 RHCLK1GCLK4 またはGCLK8GCLK5 またはGCLK9D X0Y5 LHCLK3 LHCLK2 X1Y0GCLK3 またはGCLK15GCLK2 またはGCLK14X3Y5 RHCLK7 RHCLK6C X0Y4 LHCLK2 LHCLK3 X1Y1GCLK2 またはGCLK14GCLK3 またはGCLK15X3Y4 RHCLK6 RHCLK7B X0Y3 LHCLK1 LHCLK0 X2Y0GCLK1 またはGCLK13GCLK0 またはGCLK12X3Y3 RHCLK5 RHCLK4A X0Y2 LHCLK0 LHCLK1 X2Y1GCLK0 またはGCLK12GCLK1 またはGCLK13X3Y2 RHCLK4 RHCLK5メモ :1. 8 個 の 区 画 ク ロ ッ ク の 接 続 については、 59 ページの 「 区 画 ク ロ ッ ク 配 線 」 を 参 照 して ください。2. 特 定 の BUFGMUX の 位 置 は、 図 2-2 を 参 照 して く ださい。 BUFGMUX で 区 画 内 の 特 定 のク ロ ッ ク ラ イ ン を 駆 動 する 方 法 は、 図 2-12を 参 照 して く ださい。3. 「<strong>Spartan</strong>-3A」 ヘッダの 情 報 は、<strong>Spartan</strong>-3A、 <strong>Spartan</strong>-3AN、 および <strong>Spartan</strong>-3A DSP <strong>FPGA</strong> すべてに 適 用 さ れます。デバイ ス 上 辺 の 4 つの BUFGMUX エレ メン トは 2 つずつペアになっ てお り 、 上 辺 の 8 つのグ ローバル ク ロ ッ ク 入 力 か ら の 入 力 を 共 有 し ています。 各 BUFGMUX ペアは、47 ページの 図 2-2 に 示 すように、8 つのグ ローバル クロック 入 力 のうち 4 つに 接 続 されています。 この 構 造 によ り、BUFGMUX エレ メ ン ト を 無 駄 にせずに、 差 動 入 力 を グ ローバル ク ロ ッ ク 入 力 に 接 続 で き ます。下 辺 の BUFGMUX エレ メ ン ト の 接 続 は、 上 辺 の 接 続 と 同 様 です ( 図 2-10 を 参 照 )。 左 辺 および 右 辺では、 BUFGMUX エレ メ ン ト の 各 ペアに 接 続 さ れる ク ロ ッ ク 入 力 は 2 つのみです。58 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


区 画 ク ロ ッ ク 配 線RBUFGMUX の 出 力BUFGMUX はグローバル ク ロ ッ ク 配 線 を 駆 動 し、 こ の ク ロ ッ ク 配 線 がデバイ ス リソース 上 のクロ ッ ク 入 力 に 接 続 さ れます。 BUFGMUX は DCM に も 接 続 で き、 図 2-11 に 示 すよ う に、 主 に DCMCLKFB 入 力 への 内 部 フ ィ ー ド バ ッ ク と し て 使 用 さ れます。GCLKIBUFGIOCLKINDCMIBUFGOCLKFB<strong>UG331</strong>_c4_11_080906図 2-11 : DCM を 使 用 したクロ ッ ク スキューの 除 去DCM の 仕 様 に 関 する 詳 細 は、 第 3 章 「デジタル クロック マネージャ (DCM) の 使 用 」 を 参 照 してください。<strong>Spartan</strong>-3 のグローバル クロック バッファ区 画 ク ロ ッ ク 配 線<strong>Spartan</strong>-3 <strong>FPGA</strong> には、8 個 のグ ローバル クロック バッファが 含 まれています。 4 つの BUFGMUXエレ メ ン ト はデバイ ス 下 辺 中 央 、 GCLK0 ~ GCLK3 入 力 のすぐ 上 に 配 置 されてお り、 4 つのBUFGMUX エ レ メ ン ト はデバ イ ス 下 辺 中 央 、 GCLK4 ~ GCLK7 入 力 のすぐ 上 に 配 置 さ れてい ます。 BUFGMUX エレ メン トの 各 ペアは 2 つのソースを 共 有 しており、 各 ソースは 1 つのBUFGMUX の I0 入 力 と 隣 接 する BUFGMUX の I1 入 力 を 駆 動 し ます。 選 択 する 完 全 に 独 立 し た 2つの ク ロ ッ ク 入 力 はデバイ スの 同 じ 側 に 配 置 で き ますが、 隣 接 する BUFGMUX エレ メン トには 配置 でき ません。 詳 細 は、 <strong>Spartan</strong>-3 データ シー ト を 参 照 し て く だ さ い。47 ページの 図 2-2 に 示 すよ う に、 <strong>Spartan</strong>-3E/3A/3AN/3A DSP <strong>FPGA</strong> の ク ロ ッ ク 配 線 は 区 画 ベースです。 各 クロッ ク 区 画 では、 表 2-7 および 図 2-12 に 示 す A ~ H の 8 個 のク ロ ッ ク 信 号 がサポートされています。 1 つのク ロ ッ ク ラインには、 図 2-12 に 示 すよ う に、 上 辺 または 下 辺 のグ ローバルBUFGMUX エレ メ ン ト 、 ま たは 対 応 する 側 ( 左 辺 ま たは 右 辺 ) の BUFGMUX エレ メン トからのクロック ソース を 供 給 で き ます。 クロック ラ イ ンは、 区 画 内 の 同 期 リ ソース エレ メン ト (CLB、IOB、ブロック RAM、 乗 算 器 、および DCM) を 駆 動 し ます。 これらのリ ソースのクロッ ク 入 力 の 極 性 は、指 定 可 能 です。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 59<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 2 章 : グローバル クロック リ ソースの 使 用BUFGMUX BUFGMUX X1Y10 ()X0Y9 ()HX1Y10 ()X3Y9 ()HX1Y11 ()X0Y8 ()GX1Y11 ()X3Y8 ()GX2Y10 ()X0Y7 ()FX2Y10 ()X3Y7 ()FX2Y11 ()X0Y6 ()EX2Y11 ()X3Y6 ()EX1Y0 ()X0Y5 ()DX1Y0 ()X3Y5 ()DX1Y1 ()X0Y4 ()CX1Y1 ()X3Y4 ()CX2Y0 ()X0Y3 ()BX2Y0 ()X3Y3 ()BX2Y1 ()X0Y2 ()AX2Y1 ()X3Y2 ()Aa. (TL BL ) b. (TR BR )図 2-12 : <strong>Spartan</strong>-3E/3A/3AN/3A DSP のク ロ ッ ク 区 画 内 の 8 本 のク ロ ッ ク ラ イ ンに 供 給 可 能 な ク ロ ッ ク ソースデバイ スの 4 つの 区 画 は、 次 の とお り です。• 右 上 (TR)• 右 下 (BR)• 左 下 (BL)• 左 上 (TL)DS312-2_17_103105区 画 ク ロ ッ ク の 名 前 (TR、 BR、 BL、 TL) は、 IOB の 配 置 制 約 に 使 用 さ れる も の と は 異 な り ます。上 辺 ま たは 下 辺 の BUFGMUX エレ メン トの 出 力 は、47 ページの 図 2-2 に 示 すよ う に、 4 つの 垂 直クロック ラ イ ンで 構 成 さ れる 垂 直 スパ イ ン 2 本 に 接 続 さ れています。 こ れら の ク ロ ッ ク 信 号 は、 デバイ スの 中 央 で 8 本 の 水 平 ク ロ ッ ク スパインに 接 続 されています。 クロックをデバイスの 中 央 から外 側 に 送 信 する こ と で、 デバイ ス 全 体 のス キ ューを 最 小 限 に 抑 えています。右 辺 ま たは 左 辺 の BUFGMUX エレ メン トの 出 力 は、8 本 の 水 平 ク ロ ッ ク ラ イ ンで 構 成 さ れる 右 側ま たは 左 側 水 平 スパイ ンに 接 続 さ れています。1 つのク ロ ッ ク 区 画 に 含 ま れる 8 個 のク ロ ッ ク 信 号 は、 グロ ーバル クロック 信 号 あるいは 右 辺 または 左 辺 のク ロ ッ ク 信 号 で 駆 動 でき ま す。 <strong>FPGA</strong> には 24 個 ま でのク ロ ッ ク 入 力 を 接 続 でき 、 そのう ち8 個 ま でを 1 つのク ロ ッ ク 区 画 の 同 期 エレ メ ン ト に 使 用 でき ま す。 図 2-12 は、 各 区 画 のク ロ ッ ク ラインにどのよう に BUFGMUX ソ ース が 選 択 さ れる かを 示 し ていま す。 たと えば、 左 下 (BL) の 区 画クロック A を BUFGMUX_X2Y1 で 駆 動 する と 、 BUFGMUX_X0Y2 は 左 下 区 画 で 使 用 でき な くなりますが、 左 上 (TL) の 区 画 ク ロ ッ ク A には BUFGMUX_X2Y1 または BUFGMUX_X0Y2 をソ ース と し て 使 用 で き ます。60 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


その 他 の 情 報R上 辺 / 下 辺 および 左 辺 / 右 辺 のグローバル クロックの 選 択ソフ ト ウェアでは、 ファンアウ トの 大 きいクロ ッ ク 信 号 に 対 して 通 常 上 辺 / 下 辺 のグ ローバル バッファが 選 択 されます。 デザイ ンに 9 個 以 上 の ク ロ ッ ク があ る 場 合 は、 左 辺 / 右 辺 のバ ッ フ ァ も 使 用 できます。 左 辺 / 右 辺 のバ ッ フ ァ の ロー ド は、デバ イ ス の 左 側 / 右 側 ま たは 1 つの 区 画 に 制 限 し て 同 じ 配線 リ ソース を 使 用 する グ ローバル 入 力 を 柔 軟 に 配 線 で き る よ う にする 必 要 があ る ので、 9 個 以 上 のクロックがあるデザインでは、 フロアプランをお 勧 めします。<strong>Spartan</strong>-3 のグローバル クロック 配 線<strong>Spartan</strong>-3 の BUFGMUX は、 デバイ スの 同 じ 辺 ( 上 辺 ま たは 下 辺 ) にある 垂 直 グローバル クロックスパインを 駆 動 します。 2 つの 垂 直 スパイ ン ( 上 と 下 ) はそれぞれ 4 本 の 垂 直 ク ロ ッ ク ラインで 構 成され、 同 じ 側 の BUFGMUX の 1 つか らデバ イ スの 中 央 に 達 し ています。 これらのクロッ ク 信 号 は、デバイ スの 中 央 で 8 本 の 水 平 ク ロ ッ ク スパイ ンに 接 続 され、 デバイ スの 左 右 に 分 配 されます。 水 平クロック スパインはク ロ ッ ク インターコネク トに 接 続 され、CLB、 IOB、 ブロック RAM、 乗 算 器などにアクセスします。 詳 細 は、 <strong>Spartan</strong>-3 データ シー ト を 参 照 し て く だ さ い。その 他 の 情 報ク ロ ッ クの 消 費 電 力デザ イ ンで 使 用 する ク ロ ッ ク を 最 適 化 する こ と に よ り 、 動 的 な 電 力 損 失 を 削 減 で き ます。クロック ネ ッ ト ワー ク の 動 的 な 電 力 損 失 を 最 小 限 に 抑 え る ため、ザ イ リ ン ク スの ソ フ ト ウ ェ アは 使用 されていないクロッ ク セグ メ ン ト を 自 動 的 にデ ィ ス エーブルに し ます。 こ の 機 能 を 最 大 限 に 活 用するため、 ク ロ ッ ク 列 領 域 をできるだけ 少 な く して ください。 使 用 する ク ロ ッ ク 列 の 数 を 減 らすには、 フ ロ アプ ラ ン を 使 用 でき ます。 ク ロ ッ ク の 消 費 電 力 を さ ら に 削 減 するには、 ク ロ ッ ク が 駆 動 する 行 の 数 を 減 らしてください。周 波 数 の 低 い ク ロ ッ ク を 使 用 し て も、 消 費 電 力 を 削 減 で き ます。 ク ロ ッ ク を 分 周 する には、DCM を使 用 で き ます。 周 波 数 の 低 い ク ロ ッ ク であれば、 レ ジ ス タ を 使 用 し て 分 周 で き ます。 デザイ ンを 必要 な ク ロ ッ ク 周 波 数 に 基 づいて 構 築 し、 各 部 分 をで き る だけ 低 い 周 波 数 で 駆 動 する よ う に し ます。ク ロ ッ ク を 停 止 する と 、 ク ロ ッ ク 配 線 およびその 配 線 で 駆 動 さ れる エレ メ ン ト で 電 力 が 消 費 さ れるのを 防 ぐ こ とができます。 可 能 であれば、 ク ロ ッ ク を <strong>FPGA</strong> に 入 力 する 部 分 で 外 部 か ら 停 止 し て ください。 外 部 か ら ク ロ ッ ク を 停 止 で き ない 場 合 は、BUFGMUX または BUFGCE を 使 用 して <strong>FPGA</strong>内 で ク ロ ッ ク をデ ィ スエーブルにし ます。 内 部 CLB ロジックを 使 用 してクロックがゲートを 介 する よ う にする と 、 配 線 に 依 存 する ス キ ューが 発 生 し、 デザ イ ンが ロ ッ ト の 違 いに 左 右 さ れ、 手 動 配線 が 必 要 と な る 可 能 性 があ る ので、 お 勧 め し ません。クロック ロードをディ スエーブルにするには、 ゲート の 代 わりにク ロ ッ ク イネーブルを 使 用 します。 こ の 方 法 は、 部 分 的 に ク ロ ッ ク が 必 要 な 場 合 に 有 益 ですが、 ク ロ ッ ク 分 配 の 消 費 電 力 は 削 減 できません。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 61<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 2 章 : グローバル クロック リ ソースの 使 用クロックのセッ トアップ タイムとホールド タイムク ロ ッ ク の タ イ ミ ン グの 詳 細 情 報 は、 データ シー ト を 参 照 し て く だ さ い。 デバイ ス を 通 過 する ピ ン間 のパスおよび 各 コ ンポーネン ト の 遅 延 パ ラ メ ータ が 示 さ れています。 デバイ ス ピンが 始 点 または終 点 と な る 遅 延 パ ラ メ ータはすべて、 LVCMOS25 I/O 規 格 (デフォル ト) で 定 義 されています。 出力 は、 駆 動 電 流 12mA (デフォル ト ) および FAST スルー レート (デフォル ト は SLOW) で 定 義 されています。 その 他 の I/O 規 格 では、 タ イ ミ ン グ レポート ツールを 使 用 し てパ ラ メ ータ を 補 正 し ます。 データ 遅 延 か ら ク ロ ッ ク 遅 延 を 減 算 し て 算 出 さ れる ピ ン 間 のセ ッ ト ア ッ プ タイムでは、 クロック ピ ンの 補 正 加 算 値 を 減 算 し ます。 ホールド タ イ ムでは、 データ ピ ンの 補 正 加 算 値 を 減 算 し ます。負 のホール ド タイムは、データをクロック エ ッ ジの 前 に 解 放 で き る こ と を 示 し ています。 これは 単にゼロ ホールド タ イ ム と し て 解 釈 さ れ、 ク ロ ッ ク と データ を 同 時 に 変 更 する こ と が 可 能 です。 新 しいデータ が 到 着 する 前 に、 前 のデータ が 出 力 さ れます。入 力 フ リ ッ プフ ロ ッ プの 遅 延 パ ラ メ ータは、 IFD_DELAY_VALUE の 設 定 によ って 異 な り ます。IFD_DELAY_VALUE のデフ ォル ト 設 定 は AUTO であ り 、 デバイ スの 集 積 度 に よ っ て 特 定 の 値 が選 択 さ れます。 デザイ ンの 実 際 のタ イ ミ ングは、 ISE ® でタイ ミ ング レポート を 生 成 してください。まとめデザイ ンのフ ァ ンア ウ ト が 最 大 の ク ロ ッ ク 信 号 に 対 し ては、 グ ローバル ク ロ ッ ク 入 力 、 バ ッ フ ァ、配 線 が 自 動 的 に 使 用 さ れます。 クロック バ ッ フ ァ の 使 用 を 確 認 する には、 イ ンプ リ メ ンテーシ ョ ンレポート を 参 照 してください。 グローバル ク ロ ッ ク の 使 用 方 法 を 詳 細 に 指 定 し て、 ク ロ ッ ク マルチプレクサやクロ ッ ク イネーブルなどの 機 能 を 活 用 したり、 グローバル リ ソース を 使 用 する ク ロ ック の 数 を 最 大 にする こ と がで き ます。その 他 の 情 報その 他 のタ イプの 配 線 リ ソースについては、 第 12 章 「インターコネクトの 使 用 」を 参 照 して く ださい。汎 用 イ ン ターコ ネ ク ト を 使 用 し た ク ロ ッ ク 信 号 の 分 配 は、 「ローカル ク ロ ッ キ ング」 と 呼 ばれます。ローカル クロッキングについては、アプリケーション ノート XAPP609 『Local Clocking Resourcesin Virtex-II Devices』 を 参 照 し て く だ さ い。DCM の 詳 細 は、 第 3 章 「デジタル クロック マネージャ (DCM) の 使 用 」 を 参 照 して く ださい。この 章 では、 <strong>Spartan</strong>-3E および <strong>Spartan</strong>-3A/3AN/3A DSP アーキテ ク チ ャ に 焦 点 を 置 いています。<strong>Spartan</strong>-3 のクロックの 詳 細 は、 <strong>Spartan</strong>-3 <strong>FPGA</strong> のデータ シー ト (DS099) を 参 照 して く ださい。入 力 遅 延 エレ メ ン ト および IOSTANDARD オプシ ョ ンの 詳 細 は、 第 10 章 「I/O リ ソースの 使 用 」を 参 照 して く ださい。CLB フリ ップフロップ、 ブロック RAM などの <strong>FPGA</strong> の 同 期 リ ソースの 詳 細 は、 このユーザー ガイ ド の 該 当 する 章 を 参 照 し て く だ さ い。クロック パフ ォーマン ス を 制 御 する 制 約 に 関 する 情 報 は、 『 制 約 ガ イ ド 』 を 参 照 し て く だ さ い。62 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 3 章デジタル クロック マネージャ (DCM) の使 用概 要デジタル クロック マネージャ (DCM) は、<strong>Spartan</strong> ® -3 ジェネレーション <strong>FPGA</strong> (<strong>Spartan</strong>-3、<strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3A、 <strong>Spartan</strong>-3AN、 および <strong>Spartan</strong>-3A DSP <strong>FPGA</strong> ) のアプ リ ケーシ ョ ンに 高 度 なクロ ッ ク 制 御 機 能 を 提 供 し ます。 DCM を 使 用 する と 、 ク ロ ッ ク スキューを 取 り 除 く ことができるので、 システムのパフ ォーマン スが 向 上 し ます。 ま た、 ク ロ ッ ク 周 期 のあ る 割 合 だけ 入 力 ク ロ ッ ク の位 相 を シフ ト し た り 、 入 力 ク ロ ッ ク の 周 波 数 を 逓 倍 または 分 周 し て 新 し い 周 波 数 を 合 成 し た り で きます。 DCM は、<strong>FPGA</strong> のグローバル ロー スキュー ク ロ ッ ク 分 配 ネ ッ ト ワーク に 直 接 組 み 込 まれています。はじめにDCM によ り、 <strong>FPGA</strong> のグローバル ロー スキュー クロック 分 配 ネットワークに 高 度 なクロック 制御 機 構 を 組 み 込 む こ と がで き る ので、 特 に 高 パフ ォーマン ス、 高 周 波 数 のアプ リ ケーシ ョ ンで 発 生し がちな さ ま ざ ま な ク ロ ッ ク の 問 題 を 解 決 で き ます。• クロック スキューの 除 去 : デバイ ス 内 ま たは 外 部 コ ンポーネン ト への ク ロ ッ ク スキューを 取り 除 く こ と に よ り 、 シ ス テム 全 体 のパフ ォーマン ス を 向 上 し、 ク ロ ッ ク 分 配 遅 延 を 削 除 し ます。• 位 相 シフ ト : ク ロ ッ ク 周 波 数 の 固 定 の 割 合 またはイ ン ク リ メ ン ト 量 だけ ク ロ ッ ク 信 号 の 位 相 をシフ ト します。• 逓 倍 および 分 周 : 入 力 ク ロ ッ ク 周 波 数 を 逓 倍 または 分 周 し た り 、 ク ロ ッ ク の 逓 倍 値 と 分 周 値 を組 み 合 わせて 新 し い 周 波 数 を 合 成 し ます。• デューティ サイクルの 調 整 : デューティ サイクルが 50% のクロックが 出 力 されるよ う 調 整 します。• ク ロ ッ ク 信 号 の 複 製 、 転 送 、 再 バ ッ フ ァ : 入 力 ク ロ ッ ク 信 号 のス キ ューを 除 去 し、 異 な る I/O規 格 に 変 更 する 場 合 (LVTTL クロックを LVDS に 変 換 する など) によ く 使 用 されます。• 上 記 の 機 能 をすべてまたは 任 意 の 組 み 合 わせで 使 用 で き ます。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 63<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 3 章 : デジタル クロック マネージャ (DCM) の 使 用表 3-1 : デジタル クロック マネージ ャの 機 能機 能 説 明 DCM 信 号デバイ ス ご と の DCM 数アレイのサイズに 応 じて 2 ~ 8 個(67 ページの 図 3-1 を 参 照 )すべてク ロ ッ ク 入 力 ソース • グ ローバル バッファの 入 力 パッ ドCLKIN• グ ローバル バッファの 出 力• 汎 用 I/O (ス キ ュー 調 整 な し)• 内 部 ロ ジ ッ ク (ス キ ュー 調 整 な し)周 波 数 合 成 の 出 力 CLKIN を 分 数 値 M/D (M = {2..32}、D = {1..32}) で 逓 倍ク ロ ッ ク 分 周 出 力 CLKIN を 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 で 分 周• CLKFX• CLKFX180CLKDV2 逓 倍 ク ロ ッ ク 出 力 CLKIN の 周 波 数 を 2 で 逓 倍 • CLK2X• CLK2X180デューティ サ イ ク ル 調 整 ほ と んどの 出 力 で 実 行 さ れる が、<strong>Spartan</strong>-3 <strong>FPGA</strong> の CLK0、 CLK90、CLK180、 CLK270 出 力 ではオプシ ョ ン1/4 周 期 位 相 シフ ト 出 力 0°( 位 相 シフ ト な し)90°(1/4 周 期 )180°(1/2 周 期 )270°(3/4 周 期 )すべて• CLK0• CLK90• CLK180• CLK270半 周 期 位 相 シフ ト 出 力0° 位 相 シ フ ト 出 力 と 180° 位 相 シフ ト出 力 のペア (DDR アプ リ ケーシ ョ ンに理 想 的 )• CLK0、CLK180• CLK2X、CLK2X180• CLKFX、CLKFX180汎 用 イ ン ターコ ネ ク ト に 接 続 さ れる DCM クロック 出 力 の 数 9 個 (すべて) まで すべてグローバル クロック ネッ ト ワークに 接 続 される DCMクロック 出 力 の 数9 個 の う ち 任 意 の 4 個 すべて出 力 ピ ンに 接 続 さ れる DCM クロック 出 力 の 数 9 個 (すべて) まで すべて64 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


DCM に 関 する ト ピ ッ クの 参 照 先RDCM に 関 する ト ピ ッ クの 参 照 先この 章 には、デジタル クロック マネージャ (DCM) に 関 する さ ま ざ ま な ト ピ ッ ク が 含 まれます。 すべての ト ピ ッ クがすべての <strong>FPGA</strong> アプ リ ケーシ ョ ンに 関 係 する わけではあ り ません。「DCM の 機 能 の 概 要 」 は、 DCM とその 機 能 の 概 要 を 説 明 します。 「DCM プリ ミティブ」 は、 すべての 接 続 ポー ト および DCM に 関 係 する 制 約 と 属 性 を 説 明 し ます。 「Clocking Wizard」 および「VHDL および Verilog のでインス タンシエーシ ョ ン」 は、DCM デザインを 指 定 するさまざまな 方法 を 示 し ます。「DCM の ク ロ ッ ク 要 件 」 および 「 入 力 および 出 力 ク ロ ッ ク 周 波 数 の 範 囲 」 は、 DCM クロック 入 力とさまざまな DCM ク ロ ッ ク 出 力 の 周 波 数 要 件 を 示 し ます。 「クロッ ク ジッタ ( 位 相 ノ イ ズ)」 は、出 力 ク ロ ッ ク の 質 にジ ッ タ がどの よ う に 影 響 する かを 示 し ます。「クロッ ク ス キ ューの 除 去 」、 「デューテ ィ サ イ ク ル 調 整 」、 「 位 相 シ フ ト 」、 「 ク ロ ッ ク の 逓 倍 、 分 周 、周 波 数 合 成 」、 および 「 ク ロ ッ ク の 転 送 、 複 製 、 再 バ ッ フ ァ 」 は、 DCM ブロックを 使 用 したさまざまなアプリケーションを 示 します。ほかのザイ リ ン ク ス <strong>FPGA</strong> フ ァ ミ リ との 互 換 性 および 比 較<strong>Spartan</strong>-3E および <strong>Spartan</strong>-3A/3AN/3A DSP <strong>FPGA</strong> には、 第 4 世 代 の DCM デザイ ンが 含 まれており 、 以 前 の <strong>FPGA</strong> ファミ リの DCM に さ ま ざ ま な 改 善 が 加 え られています。 <strong>Spartan</strong>-3 の DCM は第 3 世 代 の DCM デザイ ンであ り 、Virtex ® -II および Virtex-II Pro <strong>FPGA</strong> ファミ リに 含 まれる DCMと 機 能 的 にほぼ 同 じ です。DCM の 機 能 は、 <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> のすべてのプラ ッ ト フ ォームでほぼ 同 じです。表 3-2 に、 <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> 間 での DCM の 主 な 違 いを 示 し ます。 中 集 積 度 および 高 集 積 度 の <strong>Spartan</strong>-3E および <strong>Spartan</strong>-3A/3AN/3A DSP <strong>FPGA</strong> には、 <strong>FPGA</strong> の 左 辺 と 右 辺 に 追加 の DCM があ り ます。 <strong>Spartan</strong>-3E および <strong>Spartan</strong>-3A/3AN/3A DSP の DCM では、 動 作 範 囲 が 自動 的 に 判 断 さ れ、 <strong>Spartan</strong>-3 <strong>FPGA</strong> の よ う に 高 周 波 数 モー ド ま たは 低 周 波 数 モー ド に 制 限 さ れる ことはありません。 また、 入 力 周 波 数 範 囲 も 広 く なっています。 <strong>Spartan</strong>-3E および <strong>Spartan</strong>-3A/3AN/3A DSP <strong>FPGA</strong> では、 可 変 位 相 シフトのインプリメント 方 法 も 異 なります。 詳 細 は、123ページの 「<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> 間 での 可 変 位 相 シフ ト の 違 い」 を 参 照 して く ださい。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 65<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 3 章 : デジタル クロック マネージャ (DCM) の 使 用表 3-2 : <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> 間 での DCM の 違 い<strong>Spartan</strong>-3 <strong>Spartan</strong>-3E <strong>Spartan</strong>-3A/3AN/3A DSPデザイ ンプリ ミティブDCM DCM_SP DCM_SPデバイ ス ご と のDCM 数(67 ページの 図 3-1)グ ローバルDCM 2 ~ 4 個グローバル DCM2 ~ 4 個左 辺 ま たは 右 辺 DCM0 ~ 4 個グローバル DCM 2 ~ 4 個左 辺 ま たは 右 辺 DCM0 ~ 4 個DLL の 最 小 入 力ク ロ ッ ク 周 波 数18MHz 5MHz 5MHz設 定 可 能 な DLL 動 作周 波 数 範 囲 の 数設 定 可 能 な DFS 動 作周 波 数 範 囲 の 数2 :低 周 波 数 モー ド(LOW) と 高 周 波数 モード (HIGH)2 :低 周 波 数 モー ド(LOW) と 高 周 波数 モード (HIGH)1 11 1DFS 入 力 ク ロ ッ ク周 波 数 の 範 囲1 ~ 280MHz 0.2 ~ 333MHz 0.2 ~ 333MHz可 変 位 相 シフ ト の増 分 / 減 分 の 単 位CLKIN の 周 期 の1/256 ( 度 )DCM_DELAY_STEP、20 ~ 40ps ( 時 間 )DCM の V CCAUX電 源 2.5V 2.5VDCM_DELAY_STEP、15 ~ 35ps ( 時 間 )<strong>Spartan</strong>-3A/3A DSP :2.5V または 3.3V<strong>Spartan</strong>-3AN : 3.3V<strong>Spartan</strong>-3 の DCM は、 <strong>Spartan</strong>-II/<strong>Spartan</strong>-IIE の DLL に 比 べて 大 幅 に 機 能 が 向 上 し てお り、<strong>Spartan</strong>-II/<strong>Spartan</strong>-IIE の DLL の 機 能 に 加 えて 周 波 数 合 成 、 位 相 シフ ト などの 機 能 が 備 わっています。 <strong>Spartan</strong>-II/IIE の DLL では、 周 波 数 を 2 で 逓 倍 する こ と し かで き ませんで し たが、<strong>Spartan</strong>-3 の周 波 数 合 成 では 入 力 ク ロ ッ ク を 32 までの 係 数 で 逓 倍 で き ます。 また、 <strong>Spartan</strong>-IIE の DLL よ り 分 周範 囲 も 広 く なっ ています。66 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


DCM の 位 置 と ク ロ ッ ク 分 配 ネ ッ ト ワーク インターフェイスRDCM の 位 置 と ク ロ ッ ク 分 配 ネ ッ ト ワーク インターフェイス図 3-1 に、 <strong>Spartan</strong>-3 ジェネレーションのさまざまな <strong>FPGA</strong> に 含 まれる DCM の 数 と 相 対 的 な 位 置を 示 します。 各 プ ラ ッ ト フ ォームの 最 小 の <strong>FPGA</strong> には、 プ ラ ッ ト フ ォームに よ っ て 物 理 的 な 位 置 は異 な り ますが、 DCM が 2 個 含 まれます。 <strong>Spartan</strong>-3 の 大 型 <strong>FPGA</strong> すべて、 <strong>Spartan</strong>-3E および<strong>Spartan</strong>-3A/3AN の 中 型 <strong>FPGA</strong> には DCM が 4 個 、 <strong>Spartan</strong>-3E および <strong>Spartan</strong>-3A/3AN//3A DSP の大 型 <strong>FPGA</strong> には DCM が 8 個 含 まれます。 上 辺 と 下 辺 に 2 個 ずつあ る DCM は、 <strong>FPGA</strong> のグローバル クロック ネッ ト ワークに 接 続 されています。 左 辺 と 右 辺 にあ る DCM は、<strong>FPGA</strong> の 同 じ 側 にあるクロック ネッ ト ワークに 接 続 されています。DCM<strong>Spartan</strong>-3E<strong>FPGA</strong><strong>Spartan</strong>-3A<strong>FPGA</strong><strong>Spartan</strong>-3<strong>FPGA</strong>GGGG2XC3S100EXC3S50AXC3S50GGGGGGGG4XC3S250EXC3S500EXC3S200AXC3S400A<strong>Spartan</strong>-3<strong>FPGA</strong>GGGGGGGGGGG DCM : 8LLXC3S1200EXC3S1600EGGRRLLXC3S700AXC3S1400AXC3SD1800AXC3SD3400AGGRRLR DCM : <strong>FPGA</strong> DCM : <strong>FPGA</strong> <strong>UG331</strong>_c3_03_011008図 3-1 : <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> に 含 まれる DCM の 数 と 位 置DCM ブロッ クには、デバイスの 同 じ 側 ( 上 辺 ま たは 下 辺 ) にあるグローバル バ ッ フ ァ 入 力 およびグローバル バッファ マルチプレ ク サへの 専 用 接 続 があ り ます。 DCM は、<strong>FPGA</strong> のグローバル クロック インフラスト ラクチャの 重 要 な 要 素 であり、 アプ リ ケーシ ョ ンで 必 要 な 場 合 にク ロ ッ ク 分 配 ネットワークで 使 用 できます。 図 3-2a では、 ク ロ ッ ク 入 力 がグ ローバル 入 力 バ ッ フ ァ と グ ローバル クロック バッファを 介 して、 ロー スキューでファンアウ トの 大 きいグローバル クロックネットワーク に 接 続 さ れています。アプ リ ケーシ ョ ンで DCM の 一 部 ま たはすべての 機 能 が 必 要 な 場 合 、 図 3-2b に 示 すよ う に、 DCMがグローバル バッファ 入 力 とグローバル クロック バッ フ ァ の 間 に 挿 入 されます。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 67<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 3 章 : デジタル クロック マネージャ (DCM) の 使 用GCLKIBUFGI OBUFGI Ox462_02a_062403a. グローバル バ ッ フ ァ 入 力 と グローバル クロック バッファで <strong>FPGA</strong> のロー スキューグローバル クロック ネッ トワークを 駆 動GCLKIBUFGIOCLKINDCM_SPBUFGIOCLKFBUG332_c3_02_113006DCM の 機 能 の 概 要b. グローバル クロック パスに 挿 入 された DCM図 3-2 : <strong>FPGA</strong> のグローバル クロック ネッ トワークと DCMDCM という 1 つのエンティティには、 図 3-3 の 略 図 に 示 すよ う に、 4 つのフ ァ ン ク シ ョ ン ユニットが 含 まれています。 こ れら のユニ ッ ト は、 個 別 にま たは 連 携 し て 動 作 し ます。DCMPSINCDECPSENPSCLKPhaseShifterPSDONECLKINCLKFBInput StageDelay TapsOutput StageCLK0CLK90CLK180CLK270CLK2XCLK2X180CLKDVClockDistributionDelayDLLDFSCLKFXCLKFX180RSTStatusLogic8LOCKEDSTATUS [7:0]DS099-2_07_021408図 3-3 : DCM ファンクション ブロック68 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


DCM の 機 能 の 概 要R遅 延 ロ ッ ク ループ (DLL)遅 延 ロ ッ ク ループ (DLL) ユニッ ト は、 オンチップのデジタル ス キ ュー 調 整 回 路 であ り 、 実 質 的 な遅 延 が 0 の ク ロ ッ ク 出 力 信 号 を 効 率 的 に 生 成 し ます。 DCM の CLK0 または CLK2X 出 力 を 監 視 して ク ロ ッ ク 配 線 ネ ッ ト ワー ク の 遅 延 を 補 正 する こ と に よ り 、 外 部 ク ロ ッ ク 入 力 ポー ト か らデバイ ス内 の ク ロ ッ ク ロードへの 遅 延 を 削 除 します。 グローバル クロック 分 配 ネットワークでバッファを適 切 に 使 用 する と 、 負 荷 の 違 いに よ る ク ロ ッ ク ス キ ューを 最 小 限 に 抑 え る こ と がで き ます。DLL ユニ ッ ト の 入 力 信 号 は CLKIN と CLKFB で、 出 力 信 号 は CLK0、CLK90、CLK180、CLK270、CLK2X、 CLK2X180 および CLKDV です。DLL ユニッ ト では、 クロック 2 逓 倍 (CLK2X、 CLK2X180)、 クロック 分 周 (CLKDV)、および 1/4周 期 位 相 シフ ト 出 力 フ ァ ン ク シ ョ ンの 出 力 も 生 成 さ れます。デジ タル 周 波 数 合 成 (DFS)デジ タル 周 波 数 合 成 (DFS) は、2 つの 係 数 M (CLKFX_MULTIPLY) と D (CLKFX_DIVIDE) の 比に 基 づいて、 広 範 囲 の 出 力 周 波 数 を 生 成 し ます。 出 力 周 波 数 は、 入 力 ク ロ ッ ク (CLKIN) に 逓 倍 値 と分 周 値 を 同 時 に 適 用 する こ と に よ り 求 め ら れます。 DFS 機 能 は、 単 独 ま たは DLL 機 能 と 共 に 使 用できます。 DLL を 使 用 しない 場 合 は、 CLKIN と DFS 出 力 の 間 に 位 相 関 係 は 成 立 し ません。DFS ユニッ ト は、 周 波 数 合 成 (CLKFX、 CLKFX180) 出 力 を 生 成 し ます。位 相 シ フ ト (PS)位 相 シフ ト (PS) ユニッ ト は、CLKIN 入 力 に 対 する DCM の ク ロ ッ ク 出 力 の 位 相 関 係 を 制 御 し ます。PS ユニ ッ ト では、 入 力 ク ロ ッ ク 周 期 のあ る 特 定 の 割 合 で DCM の 9 個 の 出 力 すべてを 位 相 シフ トできます。 固 定 位 相 シフ ト 値 は 設 計 時 に 設 定 さ れ、 <strong>FPGA</strong> の コンフィギュレーション 時 に DCM に読 み 込 まれます。 DLL を 使 用 しない 場 合 は、 CLKIN と DFS 出 力 の 間 に 位 相 関 係 は 成 立 し ません。PS ユニ ッ ト は、 可 変 位 相 シフ ト と い う 、 位 相 シフ ト 値 を <strong>FPGA</strong> アプ リ ケーシ ョ ンの 動 作 中 に 変 更可 能 なデジ タル インターフェイスとしても 使 用 できます。 表 3-3 に 示 すよ う に、 <strong>Spartan</strong>-3 の 可 変位 相 シ フ ト は CLKIN の 周 期 の 1/256 ずつ 増 減 で き ます。 <strong>Spartan</strong>-3E および <strong>Spartan</strong>-3A/3AN/3ADSP <strong>FPGA</strong> <strong>FPGA</strong> では、 可 変 位 相 シフ ト はデータ シー ト で 定 義 さ れた 固 定 範 囲 を 持 つDCM_DELAY_STEP 分 ずつ 増 減 で き ます。表 3-3 : 可 変 位 相 シ フ ト の 違 い<strong>FPGA</strong>最 小 位 相 シ フ ト 単 位<strong>Spartan</strong>-3 CLKIN のクロック 周 期 の 1/256 (ただし 30 ~ 60ps 以 上 )<strong>Spartan</strong>-3E<strong>Spartan</strong>-3A/3AN/3A DSPDCM_DELAY_STEP ( 各 ステップは 20 ~ 40ps)DCM_DELAY_STEP ( 各 ステップは 15 ~ 35ps)PS ユニ ッ ト の 入 力 信 号 は PSINCDEC、 PSEN、 および PSCLK で、 出 力 信 号 は PSDONE およびSTATUS[0] です。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 69<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 3 章 : デジタル クロック マネージャ (DCM) の 使 用ステータス ロジックステータス ロジックは、LOCKED、 STATUS[0] (<strong>Spartan</strong>-3/3A/3AN/3A DSP のみ)、 STATUS[1]、および STATUS[2] 出 力 信 号 に よ り DCM の 現 在 のステー ト を 示 し ます。 LOCKED 出 力 信 号 は、DCM 出 力 の 位 相 が CLKIN 入 力 に 対 し て 正 し く 調 整 されてい る かど う かを 示 し ます。 STATUS 出力 信 号 は、 DLL および PS の 動 作 ステー ト を 示 し ます。RST 入 力 信 号 は、 DCM ロ ジ ッ ク を リ セ ッ ト し、 コ ン フ ィ ギ ュ レーシ ョ ン 前 の 状 態 に 戻 し ます。 リセ ッ ト を 適 用 する と 、 CLKIN 入 力 が 再 取 得 さ れ、 DCM がそのクロックにロックされます。DCM プリミティブ図 3-4 に 示 す DCM デザイ ン プリ ミティブは、DCM のすべての 機 能 を 表 し ています。 DCM プリミティブの 名 前 は、 表 3-4 に 示 すよ う に、<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> 間 で 多 少 異 な り ます。<strong>Spartan</strong>-3 <strong>FPGA</strong> では DCM プリ ミティブがサポートされ、<strong>Spartan</strong>-3E および <strong>Spartan</strong>-3A/3AN/3ADSP <strong>FPGA</strong> ではよ り 高 度 な DCM_SP プリ ミティブがサポートされます。 ザイ リ ンクス ISE ® ソフトウェアでは、<strong>Spartan</strong>-3 の DCM プリ ミティブが <strong>Spartan</strong>-3E/3A/3AN/3A DSP <strong>FPGA</strong> デザイ ンの適 切 なプ リ ミ テ ィ ブに 自 動 的 にマ ッ プ さ れます。表 3-4 : <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> の DCM プリミティブ<strong>FPGA</strong><strong>Spartan</strong>-3E<strong>Spartan</strong>-3A<strong>Spartan</strong>-3AN<strong>Spartan</strong>-3A DSP<strong>Spartan</strong>-3プリミティブDCM_SPDCMDCM の 接 続 ポー ト と 属 性 、 プ ロパテ ィ 、 制 約 を、 この 後 のセクシ ョ ンに 示 し ます。70 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


DCM プリミティブRシンボル<strong>Spartan</strong>-3 <strong>FPGA</strong>: DCM<strong>Spartan</strong>-3E/3A/3AN/3A DSP <strong>FPGA</strong>s: DCM_SPCLKINCLK0CLKFB CLK90CLK180CLK270CLK2XCLK2X180CLKDVCLKFXRSTCLKFX180PSEN STATUS[7:0]PSINCDEC LOCKEDPSCLK PSDONE<strong>UG331</strong>_c3_01_011008図 3-4 : DCM デザイ ン プリミティブ接 続 ポー ト表 3-6 に、 DCM への 接 続 ポー ト を 示 し ます。 こ の 表 では、 各 ポー ト 接 続 の 簡 単 な 説 明 、 信 号 の 方向 、 どの DCM ファンション ユニ ッ ト で 接 続 する 必 要 があ る かを 示 し ます。 表 3-5 には、 表 3-6 で使 用 さ れる 各 フ ァ ン ク シ ョ ン ユニッ ト の 略 称 を 示 します。表 3-5 : 表 3-6 で 使 用 されるフ ァ ンクシ ョ ン ユニ ッ ト の 略 称略 称DLLPSDFS遅 延 ロ ッ ク ループ位 相 シフ トデジ タル 周 波 数 合 成フ ァ ン ク シ ョ ン ユニッ ト<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 71<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 3 章 : デジタル クロック マネージャ (DCM) の 使 用表 3-6 : DCM 接 続 ポー トポー ト 方 向 説 明ファンクション ユニッ トDLL PS DFSCLKINクロック入 力DCM への ク ロ ッ ク 入 力 。 すべてのフ ァ ン ク シ ョ ンで 必 須 です。CLKIN の 周 波 数 と ジ ッ タは、 データ シー ト で 指 定 さ れた 範 囲 内 にする 必 要 があ り ます。 <strong>Spartan</strong>-3 <strong>FPGA</strong> では、 周 波 数 範 囲 をDLL_FREQUENCY_MODE および DFS_FREQUENCY_MODE属 性 で さ ら に 定 義 で き ます。 CLKFB 入 力 DCM へのク ロ ッ ク フ ィ ー ド バ ッ ク 入 力 。 DFS 出 力 CLKFX またはCLKFX180 を 単 独 で 使 用 する 場 合 以 外 は、フ ィ ー ド バ ッ ク 入 力 が 必要 です。 CLKFB 入 力 の ソ ース と し ては、 DCM からの CLK0 または CLK2X 出 力 を 使 用 する 必 要 があ り 、 ど ち ら を 使 用 する かに よ って CLK_FEEDBACK を 1X または 2X に 設 定 し ます。 フィードバック ポ イ ン ト には、 内 部 ま たは 外 部 で ク ロ ッ ク 分 配 ネ ッ ト ワー クに 追 加 さ れる 遅 延 が 含 まれてい る のが 理 想 的 です。 詳 細 は、「 信 頼 できるソースからのフィードバック」 を 参 照 して く ださい。RST 入 力 非 同 期 リ セ ッ ト 入 力 。 DCM ロジックをコンフィギュレーション 前のステートにリセッ ト します。 リ セ ッ ト を 適 用 する と 、CLKIN 入 力が 再 取 得 さ れ、 DCM がそのク ロ ッ クにロ ッ ク されます。 DCM ブロック 内 で 反 転 できます。 反 転 し ない 場 合 の 動 作 を 次 に 示 し ます。詳 細 は、 「RST 入 力 の 動 作 」 を 参 照 して く ださい。 オプシ ョ ン 0 変 化 な し1 DCM ブロッ クを リセッ ト します。 CLKIN の 3 サイクル 分 High に 保 持 する 必 要 があ り ます。PSEN 入 力 可 変 位 相 シフ ト イネーブル。 DCM ブ ロ ッ ク 内 で 反 転 で き ます。 反転 しない 場 合 の 動 作 を 次 に 示 します。 詳 細 は、 123 ページの 「 可 変ファイン グレイン 位 相 シフ ト」 を 参 照 して く ださい。0 可 変 位 相 シフ ト をデ ィ スエーブルに し ます。 位 相 シフト への 入 力 は 無 視 さ れます。1 PSCLK ク ロ ッ ク の 次 の 立 ち 上 が り エ ッ ジで、 可 変 位 相シフ ト をイネーブルにします。PSINCDEC 入 力 位 相 シフ ト の 増 分 / 減 分 。 DCM ブ ロ ッ ク 内 で 反 転 で き ます。 反 転 しない 場 合 の 動 作 を 次 に 示 します。 詳 細 は、 123 ページの 「 可 変 フ ァイン グレイン 位 相 シフ ト」 を 参 照 して く ださい。0 可 変 位 相 シフ ト が イ ネーブルの と き の PSCLK クロック の 次 の 立 ち 上 が り エ ッ ジで、 位 相 シフ ト 値 を 増 分 します。1 可 変 位 相 シフ ト が イ ネーブルの と き の PSCLK クロック の 次 の 立 ち 上 が り エ ッ ジで、 位 相 シフ ト 値 を 減 分 します。72 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


DCM プリミティブR表 3-6 : DCM 接 続 ポー ト ( 続 き)PSCLKCLK0CLK90ポー ト 方 向 説 明CLK180CLK270CLK2XCLK2X180クロック入 力クロック出 力クロック出 力クロック出 力クロック出 力クロック出 力クロック出 力可 変 位 相 シフ ト の ク ロ ッ ク 入 力 。 可 変 位 相 シ フ ト 動 作 は、こ の ク ロ ックの 立 ち 上 がりエッジに 同 期 します。 DCM ブロック 内 で 反 転 できます。 詳 細 は、 123 ページの 「 可 変 フ ァ イ ン グレイン 位 相 シフ ト」を 参 照 して く ださい。CLKIN と 周 波 数 が 同 じ で、 位 相 シフ ト が 0°( 位 相 シフ ト な し) のクロ ッ ク 出 力 。 デューティ サイクルは、 <strong>Spartan</strong>-3E/3A/3AN/3A DSP<strong>FPGA</strong> では 常 に 50% に 調 整 され、 <strong>Spartan</strong>-3 <strong>FPGA</strong> ではDUTY_CYCLE_CORRECTION 属 性 が TRUE の 場 合 に 50% に 調整 されます。 DLL ファンクションのフィードバック ソースと して、CLK0 または CLK2X が 必 要 です。 詳 細 は、 「 半 周 期 位 相 シフ ト 出力 」 および 「1/4 周 期 位 相 シフ ト 出 力 」 を 参 照 して く ださい。CLKIN と 周 波 数 が 同 じで、 位 相 を 90°( 周 期 の 1/4) シフ ト したクロック 出 力 。 DLL_FREQUENCY_MODE 属 性 が HIGH に 設 定 されている 場 合 は 使 用 でき ません。 デューティ サイクルは、<strong>Spartan</strong>-3E/3A/3AN/3A DSP <strong>FPGA</strong> では 常 に 50% に 調 整 され、<strong>Spartan</strong>-3 <strong>FPGA</strong> では DUTY_CYCLE_CORRECTION 属 性 がTRUE の 場 合 に 50% に 調 整 されます。 詳 細 は、 「1/4 周 期 位 相 シフト 出 力 」 を 参 照 して く ださい。CLKIN と 周 波 数 が 同 じ で、 位 相 を 180°( 周 期 の 1/2) シフ ト したクロ ッ ク 出 力 。 デューティ サイクルは、 <strong>Spartan</strong>-3E/3A/3AN/3A DSP<strong>FPGA</strong> では 常 に 50% に 調 整 され、 <strong>Spartan</strong>-3 <strong>FPGA</strong> ではDUTY_CYCLE_CORRECTION 属 性 が TRUE の 場 合 に 50% に 調整 されます。 詳 細 は、 「 半 周 期 位 相 シフ ト 出 力 」 および 「1/4 周 期 位相 シフ ト 出 力 」 を 参 照 して く ださい。CLKIN と 周 波 数 が 同 じ で、 位 相 を 270°( 周 期 の 3/4) シフ ト したクロック 出 力 。 DLL_FREQUENCY_MODE 属 性 が HIGH に 設 定 されている 場 合 は 使 用 でき ません。 デューティ サイクルは、<strong>Spartan</strong>-3E/3A/3AN/3A DSP <strong>FPGA</strong> では 常 に 50% に 調 整 され、<strong>Spartan</strong>-3 <strong>FPGA</strong> では DUTY_CYCLE_CORRECTION 属 性 がTRUE の 場 合 に 50% に 調 整 されます。 詳 細 は、 「1/4 周 期 位 相 シフト 出 力 」 を 参 照 して く ださい。周 波 数 が CLKIN の 2 逓 倍 で、 位 相 シフ ト が 0°の ク ロ ッ ク 出 力 。DLL_FREQUENCY_MODE 属 性 が HIGH に 設 定 されている 場 合は 使 用 でき ません。 デューティ サイクルは、 常 に 50% に 調 整 されます。 DLL ファンクションのフィードバック ソースと して、CLK0または CLK2X が 必 要 です。 詳 細 は、 「ク ロ ッ ク 2 逓 倍 (CLK2X、CLK2X180)」 を 参 照 して く ださい。周 波 数 が CLKIN の 2 倍 で、 位 相 を 180°シフ ト し た ク ロ ッ ク 出 力 。DLL_FREQUENCY_MODE 属 性 が HIGH に 設 定 されている 場 合は 使 用 でき ません。 デューティ サイクルは、 常 に 50% に 調 整 されます。 詳 細 は、 「ク ロ ッ ク 2 逓 倍 (CLK2X、 CLK2X180)」 および「 半 周 期 位 相 シフ ト 出 力 」 を 参 照 して く ださい。ファンクション ユニッ トDLL PS DFS<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 73<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 3 章 : デジタル クロック マネージャ (DCM) の 使 用表 3-6 : DCM 接 続 ポー ト ( 続 き)ポー ト 方 向 説 明CLKDVクロック出 力分 周 ク ロ ッ ク 出 力 。 CLKDV_DIVIDE 属 性 で 制 御 し ます。DLL_FREQUENCY_MODE 属 性 が HIGH で、 CLKDV_DIVIDE属 性 が 整 数 値 以 外 の 場 合 は、 デューテ ィ サイクルは 50% に 調 整 されません。 CLKDV_DIVIDE が 整 数 値 以 外 の 場 合 、 DCM がロッ クさ れる までの 時 間 が 長 く な り ます。 詳 細 は、クロック 分 周 (CLKDV)を 参 照 して く ださい。ファンクション ユニッ トDLL PS DFSF CLKDV=F-------------------------------------------------CLKINCLKDV_DIVIDECLKFXクロック出 力周 波 数 合 成 ク ロ ッ ク 出 力 。 CLKFX_MULTIPLY およびCLKFX_DIVIDE 属 性 で 制 御 し ます。 デューティ サイクルは、 常 に50% に 調 整 されます。 CLKFX または CLKFX180 ク ロ ッ ク 出 力 を単 独 で 使 用 する 場 合 は、 フ ィ ー ド バ ッ ク は 不 要 です。 詳 細 は、 「 周 波数 合 成 (CLKFX、 CLKFX180)」 および 「 半 周 期 位 相 シフ ト 出 力 」を 参 照 して く ださい。CLKFX_MULTIPLYF CLKFX = F CLKIN • ----------------------------------------------------------CLKFX_DIVIDECLKFX180クロック出 力周 波 数 合 成 ク ロ ッ ク 出 力 CLKFX の 位 相 を 180°シフ ト したク ロ ック 出 力 (CLKFX の 反 転 出 力 )。 デューティ サイクルは、 常 に 50% に調 整 さ れます。 CLKFX または CLKFX180 クロック 出 力 を 単 独 で使 用 する 場 合 は、 フ ィ ー ド バ ッ ク は 不 要 です。 詳 細 は、 「 周 波 数 合 成(CLKFX、 CLKFX180)」 および 「 半 周 期 位 相 シフ ト 出 力 」 を 参 照してください。STATUS[0] 出 力 可 変 位 相 シフ ト のオーバーフ ロー。 「 可 変 フ ァ イ ン グレイン 位 相 シフト」 の 制 御 出 力 で、 可 変 位 相 シ フ ト が 最 大 値 ま たは 最 小 値 に 達 したことを 示 します。 最 大 値 および 最 小 値 は ±255 か、 遅 延 ラ イ ンの最 後 に 達 し た 場 合 はそれ 以 下 にな り ます。 詳 細 は、123 ページの 「 可変 ファ イン グレイン 位 相 シフ ト」 を 参 照 して く ださい。注 意 こ の 機 能 は <strong>Spartan</strong>-3E ではサポー ト されていません。<strong>Spartan</strong>-3では、 STATUS[0] は 固 定 位 相 シ フ ト でのオーバーフ ロー も 示 し ます。0 位 相 シフ ト は 最 大 値 または 最 小 値 に 達 し ていません。1 位 相 シフ ト が 最 大 値 または 最 小 値 に 達 し ています。74 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


DCM プリミティブR表 3-6 : DCM 接 続 ポー ト ( 続 き)ポー ト 方 向 説 明STATUS[1] 出 力 CLKIN 入 力 が 停 止 したこ とを 示 します。 CLKFB フィードバック 入力 が 接 続 さ れてい る 場 合 にのみ 有 効 です。 LOCKED 出 力 がアサートされるまで、 リセットに 保 持 されます。 アクティブになるには、CLKIN が 最 低 で も 1 サ イ ク ル 必 要 です。 CLKIN がトグルしない 場合 は、 アサー ト されません。ファンクション ユニッ トDLL PS DFS 0 CLKIN 入 力 が ト グル し ています。1 CLKIN 入 力 が ト グルし ていません (LOCKED 出 力 がHigh の 場 合 も あ り )。 「CLKIN の 一 時 停 止 」 を 参 照 してください。STATUS[2] 出 力 CLKFX または CLKFX180 出 力 が 停 止 したこ とを 示 します。 詳 細は、 「 周 波 数 合 成 (CLKFX、 CLKFX180)」 を 参 照 して く ださい。0 CLKFX および CLKFX180 出 力 は ト グルし ています。1 CLKFX および CLKFX180 出 力 が ト グル し ていません (LOCKED 出 力 は High の 場 合 も あ り )。「CLKIN の一 時 停 止 」 を 参 照 して く ださい。STATUS[7:3] 出 力 予 約 済 み。LOCKED 出 力 DCM のすべての 機 能 が CLKIN の 周 波 数 に ロ ッ ク さ れてい る こ とを 示 し ます。 CLKIN が 指 定 の 範 囲 内 であれば ( 「DCM のクロック要 件 」 を 参 照 )、 クロック 出 力 は 有 効 です。 詳 細 は、 「 周 波 数 合 成(CLKFX、 CLKFX180)」 を 参 照 して く ださい。 0 CLKIN の 周 波 数 に ロ ッ ク さ れていません。 DCM のクロ ッ ク 出 力 は 無 効 です。1 CLKIN の 周 波 数 に ロ ッ ク さ れています。 DCM のクロ ッ ク 出 力 は 有 効 です。1 → 0 DCM の ロ ッ ク 状 態 が 解 除 さ れま し た。 DCM を リセットする 必 要 があります。PSDONE 出 力 可 変 位 相 シフ ト が 完 了 し た こ と を 示 し ます。 詳 細 は、 123 ページの「 可 変 フ ァ イ ン グレイン 位 相 シフ ト」 を 参 照 して く ださい。0 位 相 シ フ ト 操 作 が 実 行 さ れていないか、 位 相 シ フ ト 操作 を 実 行 中 です。1 位 相 シ フ ト が 完 了 し ています。 PSCLK の 1 サイクル分 High にな り ます。 次 の 位 相 シフ ト 操 作 を 実 行 可 能です。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 75<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 3 章 : デジタル クロック マネージャ (DCM) の 使 用表 3-7 : DCM の 属 性属 性 、 プ ロパテ ィ 、 制 約表 3-7 に、 DCM の 属 性 を 示 し ます。 すべての 属 性 は 設 計 時 に 設 定 し、 コ ン フ ィ ギ ュ レーシ ョ ン 中にプログラ ム し ます。 可 変 位 相 シフ ト 機 能 に 関 する 属 性 以 外 は、 <strong>FPGA</strong> アプ リ ケーシ ョ ンの 実 行 中に 変 更 する こ と はで き ません。 属 性 を 設 定 する には、 = をデザイン 入力 ツールに 適 し た 方 法 で 設 定 し ます。属 性DLL_FREQUENCY_MODE可 能 な 設 定 と 説 明<strong>Spartan</strong>-3 <strong>FPGA</strong> のみ。 CLKIN 入 力 および 遅 延 ロ ッ ク ループ (DLL) ユニッ ト からの 出 力 ク ロ ッ ク の 周 波 数 範 囲 を 指 定 し ます。 DLL ユニッ ト からのク ロ ッ ク 出 力 は、CLK0、CLK90、CLK180、CLK270、CLK2X、CLK2X180、および CLKDV です。LOWHIGHデフォル ト。 DLL ファンクション ユニッ ト が 低 周 波 数 モードで 動 作します。 DLL に 関 連 する 出 力 は、 すべて 使 用 可 能 です。 クロック 入 力およびク ロ ッ ク 出 力 すべての 周 波 数 を、<strong>Spartan</strong>-3 データ シー ト で 指 定さ れた 低 周 波 数 モー ド の 範 囲 内 にする 必 要 があ り ます。DLL ファンクション ユニッ ト が 高 周 波 数 モードで 動 作 します。 クロック 2 逓 倍 (CLK2X、 CLK2X180) 出 力 、 1/4 周 期 位 相 シフ ト 出 力CLK90 および CLK270 は 使 用 でき ません。 CLKDV_DIVIDE 属 性 が整 数 値 以 外 の 場 合 は、 CLKDV 出 力 のデューテ ィ サイクルは 50% に調 整 さ れません。 ク ロ ッ ク 入 力 および ク ロ ッ ク 出 力 すべての 周 波 数を、<strong>Spartan</strong>-3 データ シー ト で 指 定 さ れた 高 周 波 数 モー ド の 範 囲 内 にする 必 要 があ り ます。CLKIN_PERIODCLK_FEEDBACKDCM の CLKIN ピ ン を 駆 動 する ク ロ ッ ク の 周 期 を ns で 指 定 し ます。 オプシ ョ ンの入 力 であ り 、 主 に DRC チェッ クに 使 用 されます。 <strong>Spartan</strong>-3E および <strong>Spartan</strong>-3A/3AN/3A DSP <strong>FPGA</strong> では、 CLKIN_PERIOD を 設 定 する と DFS のジッ タを 低 減 でき、 ロ ッ ク さ れる までにかかる 時 間 を 短 縮 で き ます。フィードバック クロックを 指 定 します。1X2XNoneデフォル ト。 CLK0 をフィードバック クロックとして 使 用 します。CLKIN の 周 波 数 と 同 じ です。CLK2X をフィードバック クロックとして 使 用 します。 CLKIN の 周 波数 の 2 逓 倍 です。フィードバックは 使 用 されません。 CLKFX または CLKFX180 出 力 を単 独 で 使 用 する 場 合 にのみ 設 定 可 能 です。DUTY_CYCLE_CORRECTION<strong>Spartan</strong>-3 のみ。 CLK0、 CLK90、 CLK180、 CLK270 の 各 出 力 のデューテ ィ サイクル 調 整 を イネーブルまたはデ ィ スエーブルにし ます。 <strong>Spartan</strong>-3E および <strong>Spartan</strong>-3A/3AN/3A DSP <strong>FPGA</strong> のクロック 出 力 は、 デューティ サイクルが 常 に 50% に 調整 されます。TRUEFALSEデフォル ト 。 デューティ サ イ ク ル 調 整 を イ ネーブルに し ます。デューティ サ イ ク ル 調 整 をデ ィ ス エーブルに し ます。76 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


DCM プリミティブR表 3-7 : DCM の 属 性 ( 続 き)属 性可 能 な 設 定 と 説 明CLKDV_DIVIDE 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 です。FF CLKINCLKDV = -------------------------------------------------CLKDV_DIVIDE整 数 以 外 の 値 を 使 用 する と 、 ロ ッ ク さ れる までの 時 間 が 長 く な り 、 出 力 ジ ッ タ が 大きくなります。CLKFX_MULTIPLYCLKFX_DIVIDEPHASE_SHIFTCLKOUT_PHASE_SHIFTCLKFX および CLKFX180 出 力 の 周 波 数 を 設 定 する 逓 倍 値 を 定 義 し ます。CLKFX_DIVIDE 属 性 と 共 に 使 用 さ れます。 設 定 可 能 な 値 は 2 ~ 32 の 整 数 で、 デフォルト 値 は 4 です。CLKFX_MULTIPLYF CLKFX = F CLKIN • ----------------------------------------------------------CLKFX_DIVIDECLKFX および CLKFX180 出 力 の 周 波 数 を 設 定 する 分 周 値 を 定 義 し ます。CLKFX_MULTIPLY 属 性 と 共 に 使 用 さ れます。 設 定 可 能 な 値 は 1 ~ 32 の 整 数 で、デフォル ト 値 は 1 です。CLKFX_MULTIPLYF CLKFX = F CLKIN • ----------------------------------------------------------CLKFX_DIVIDECLKOUT_PHASE_SHIFT 属 性 が FIXED または VARIABLE に 設 定 されている 場合 にのみ 適 用 さ れます。 CLKIN と DCM ク ロ ッ ク 出 力 の 位 相 シフ ト を 定 義 し ます。位 相 シフ ト 値 は、 「フ ァ イン グレイン 位 相 シフ ト」 の 式 に 示 すよ う に、 ク ロ ッ ク 周期 の 割 合 を 表 す 整 数 で 指 定 さ れます。 T CLKIN > FINE_SHIFT_RANGE の 場 合 、 実際 の 範 囲 は 小 さ く な り ます。 FINE_SHIFT_RANGE は、 位 相 シフ ト 遅 延 ラ イ ンのすべての タ ッ プの 総 遅 延 を 示 し ます。 詳 細 は、 「フ ァ イン グレイン 位 相 シフ ト」 を 参照 してください。位 相 シフ ト モー ド を 設 定 し ます。 こ の 属 性 は PHASE_SHIFT と 共 に 使 用 し、DCMのデジ タル 位 相 シフ ト (DPS) 機 能 を イ ンプ リ メ ン ト し ます。 この 属 性 の 設 定 は、DLL および DFS ユニ ッ ト の 両 方 の ク ロ ッ ク 出 力 に 影 響 し ます。 詳 細 は、 「ファ イングレイン 位 相 シフ ト」 を 参 照 して く ださい。NONEデフォル ト。 CLKIN と CLKFB は 同 相 (スキューなし) で、 位 相 関係 は 変 更 でき ません。 これは、 FIXED に 設 定 し、 PHASE_SHIFTの 値 を 0 にした 場 合 と 同 じです。FIXED 位 相 関 係 は PHASE_SHIFT 属 性 値 に 基 づいて コ ン フ ィ ギ ュ レーシ ョ ン 時 に 設 定 され、 アプ リ ケーシ ョ ンで 動 作 中 に 変 更 する こ とはでき ません。VARIABLE 位 相 関 係 は PHASE_SHIFT 属 性 値 に 基 づいて コ ン フ ィ ギ ュ レーシ ョ ン 時 に 設 定 さ れますが、 可 変 位 相 シフ ト を 制 御 する PSEN、PSCLK、 PSINCDEC、 および PSDONE を 使 用 して、 アプ リ ケーシ ョ ンで 動 作 中 に 変 更 で き ます。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 77<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 3 章 : デジタル クロック マネージャ (DCM) の 使 用表 3-7 : DCM の 属 性 ( 続 き)属 性DESKEW_ADJUST可 能 な 設 定 と 説 明<strong>FPGA</strong> のクロック 入 力 ピンと DCM ク ロ ッ ク 出 力 の 間 の ク ロ ッ ク 遅 延 調 整 を 制 御 します。 詳 細 は、 「ス キ ュー 調 整 」 を 参 照 して く ださい。SYSTEM_SYNCHRONOUSSOURCE_SYNCHRONOUSデフォル ト。 すべてのデバ イ スに、 共 通 のシ ス テム 全 体 のク ロ ッ ク ソ ースが 供 給 さ れます。クロックはデータ ソース ( ソース 同 期 アプリケーシ ョ ン) か ら 供 給 さ れます。DFS_FREQUENCY_MODEこの 設 定 を、DCM ク ロ ッ ク 出 力 の 位 相 をシフ ト する ために 使 用 し ないで く だ さ い。正 確 な 位 相 シフ ト を 行 う には、 CLKOUT_PHASE_SHIFT および PHASE_SHIFTを 使 用 し ます。<strong>Spartan</strong>-3 <strong>FPGA</strong> のみ。 DCM のデジ タル 周 波 数 合 成 (DFS) からのクロック 出 力CLKFX および CLKFX180 の 周 波 数 範 囲 を 指 定 し ます。 DLL クロック 出 力 を 使 用する 場 合 は、 DLL_FREQUENCY_MODE によ り CLKIN 入 力 周 波 数 が 制 限 さ れます。LOWHIGHデフォル ト。 DFS ファンクション ユニ ッ ト が 低 周 波 数 モー ド で 動 作します。 CLKFX および CLKFX180 出 力 の 周 波 数 は、 <strong>Spartan</strong>-3 データ シー ト で 指 定 さ れた 低 周 波 数 モー ド の 範 囲 内 にする 必 要 があ り ます。 CLKIN 入 力 の 周 波 数 の 制 限 は、 DLL ク ロ ッ ク 出 力 を 使 用 する かどうかによって 異 なります。DFS ファンクション ユニッ ト が 高 周 波 数 モードで 動 作 します。CLKFX および CLKFX180 出 力 の 周 波 数 は、<strong>Spartan</strong>-3 データ シー トで 指 定 さ れた 高 周 波 数 モー ド の 範 囲 内 にする 必 要 があ り ます。CLKIN 入 力 の 周 波 数 の 制 限 は、 DLL ク ロ ッ ク 出 力 を 使 用 する かど うかによって 異 な り ます。STARTUP_WAIT<strong>FPGA</strong> コンフィギュレーション DONE 信 号 を High にするのを、DCM の LOCKED信 号 がアサー ト さ れる まで 待 つかど う かを 指 定 し ます。FALSETRUEデフ ォ ルト 。 DONE 信 号 はコ ン フ ィ ギュ レ ーショ ン が 完 了 する と アサート さ れ、DCM の LOCKED 信 号 がアサート さ れる ま で 待 ちま せん。DONE 信 号 は、DCM の LOCKED 信 号 が High になるまで High になりません。 STARTUP_WAIT の 指 定 にかかわらず、 LOCKED 信 号 はHigh にな り ます。 <strong>FPGA</strong> のスタート アップ シーケン ス も 変 更 し、 延 期サイクルの 前 に LCK (ロック) サ イ ク ルを 挿 入 する 必 要 があ り ます( 「ビ ッ ト ス ト リ ーム 生 成 の 設 定 」 を 参 照 )。 DONE サイクルまたはGWE サ イ ク ルが 一 般 的 です。複 数 の DCM を コ ン フ ィ ギ ュ レーシ ョ ンする 場 合 は、 すべての DCM がロックされるまで DONE ピンは High にな り ません。78 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


DCM プリミティブR表 3-7 : DCM の 属 性 ( 続 き)属 性CLKIN_DIVIDE_BY_2可 能 な 設 定 と 説 明CLKIN を DCM ブ ロ ッ ク に 入 力 する 前 に 2 で 分 周 し ます。 アプ リ ケーシ ョ ンで 入力 ク ロ ッ ク 周 波 数 を 許 容 範 囲 内 に 低 減 する 必 要 があ る 場 合 に 有 益 です。FALSETRUEデフォル ト 。 CLKIN を DCM ブ ロ ッ ク に 直 接 入 力 し ます。CLKIN を DCM ブ ロ ッ ク に 入 力 する 前 に 2 で 分 周 し、 デューテ ィ サイクルをおおよそ 50% にします。 高 周 波 数 ク ロ ッ ク を 使 用 し ていて、DCM の 入 力 ク ロ ッ ク 周 波 数 要 件 およびデューテ ィ サイクル 要 件 を 満たす 必 要 があ る 場 合 に 有 益 です。 動 作 周 波 数 モー ド を 決 定 し、 位 相 シフ ト 範 囲 を 算 出 する 際 は、 ク ロ ッ ク 周 波 数 を 1/2 にしてください。FACTORY_JF<strong>Spartan</strong>-3 <strong>FPGA</strong> のみ。 DCM の DLL ユニ ッ ト の タ ッ プ 設 定 を 調 整 する 頻 度 を 制 御します。 この 属 性 は、 DLL のジ ッ タ 特 性 に 影 響 し ます。この 設 定 は、 DLL_FREQUENCY_MODE 属 性 に 基 づいて 自 動 的 に 調 整 さ れます。DLL_FREQUENCY_MODELOWHIGHFACTORY_JF0x80800x8080LOC推 奨 される 場 合 以 外 は、 デフ ォル ト 値 を 変 更 し ないで く だ さ い ( 「FACTORY_JF 設定 の 調 整 (<strong>Spartan</strong>-3 <strong>FPGA</strong> のみ)」 を 参 照 )。DCM の 物 理 的 な 位 置 を 指 定 し ます。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 79<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 3 章 : デジタル クロック マネージャ (DCM) の 使 用DCM のクロッ ク 要 件DCM は 柔 軟 に 設 定 で き る よ う に 構 築 さ れていますが、ク ロ ッ ク 周 波 数 およびク ロ ッ ク の 安 定 性 ( 周波 数 の 変 動 と ク ロ ッ ク ジッタ) に 関 する 要 件 があ り ます。入 力 ク ロ ッ ク 周 波 数 の 範 囲DCM の ク ロ ッ ク 入 力 周 波 数 は、 アプ リ ケーシ ョ ンで DLL ユニッ ト、 DFS ユニッ ト 、 またはその両 方 が 使 用 さ れてい る かに よ っ て 異 な り ます。表 3-8 : DFS ユニ ッ ト のク ロ ッ ク 入 力 周 波 数 要 件 (-4 スピード グレード)デバイ ス 最 小 周 波 数 最 大 周 波 数 単 位データ シー ト の 仕 様 CLKIN_FREQ_FX_MIN CLKIN_FREQ_FX_MAX<strong>Spartan</strong>-3 1 280 MHz<strong>Spartan</strong>-3E 0.200 333 MHz<strong>Spartan</strong>-3A/3AN/3A DSP 0.200 333 MHz表 3-8 に、デジ タル 周 波 数 合 成 (DFS) ユニッ ト における ク ロ ッ ク 入 力 CLKIN の 周 波 数 範 囲 を 示 します。 DFS ユニ ッ ト を 単 独 で 使 用 する 場 合 は、DLL ユニ ッ ト よ り も 周 波 数 範 囲 が 広 く な り ます。 アプ リ ケーシ ョ ンで 両 方 のユニ ッ ト を 使 用 する 場 合 は、 DLL の 要 件 が 適 用 されます。 この 表 では、データ シー ト 仕 様 での 名 前 と 予 測 値 を 示 し てい ます。 実 際 の 値 はス ピー ド グレードによって 異 なり 、 データ シー ト に 示 された 値 の 方 がこ の 表 の 予 測 値 よ り も 正 確 です。表 3-9 と 表 3-10 に、 遅 延 ロ ッ ク ループ (DLL) ユニッ ト における ク ロ ッ ク 入 力 CLKIN の 周 波 数 範囲 を 示 し ます。 DLL の 周 波 数 要 件 は、 DLL が 単 独 で 使 用 さ れる 場 合 、 DFS ユニッ ト と 共 に 使 用 される 場 合 の 両 方 に 適 用 さ れます。 こ の 表 では、 データ シー ト 仕 様 での 名 前 と 値 を 示 し ています。 実際 の 値 はス ピード グレード によ って 異 な り 、 データ シー ト に 示 された 値 の 方 がこ のユーザー ガイド に 示 さ れる 値 よ り も 正 確 です。<strong>Spartan</strong>-3E および <strong>Spartan</strong>-3A/3AN/3A DSP <strong>FPGA</strong> では、 表 3-9 に 示 すよ う に、 DLL の 動 作 周 波数 範 囲 は 1 つです。 <strong>Spartan</strong>-3E <strong>FPGA</strong> の 周 波 数 は、 ス テ ッ ピ ング 1 デバイ スの も のです。表 3-9 : <strong>Spartan</strong>-3E/3A/3AN/3A DSP <strong>FPGA</strong> : DLL ユニ ッ ト のク ロ ッ ク 入 力 周 波 数 要 件<strong>Spartan</strong>-3 ジェネレーション<strong>FPGA</strong>スピードグレード最 小CLKIN_FREQ_DLL_MIN最 大CLKIN_FREQ_DLL_MAX単 位<strong>Spartan</strong>-3A/3AN/3A DSP<strong>Spartan</strong>-3E (ステッピング 1)-4250 MHz-5 280 MHz5-4 240 MHz-5 270 MHz表 3-10 に、<strong>Spartan</strong>-3 <strong>FPGA</strong> の 周 波 数 範 囲 を 示 し ます。 動 作 周 波 数 範 囲 には、 低 周 波 数 モー ド (LOW)と 高 周 波 数 モー ド (HIGH) の 2 つがあ り ます。 動 作 モー ド は、DLL_FREQUENCY_MODE 属 性 で制 御 し ます。80 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


DCM のクロッ ク 要 件R表 3-10 : <strong>Spartan</strong>-3 <strong>FPGA</strong> : DLL ユニ ッ ト のク ロ ッ ク 入 力 周 波 数 要 件<strong>Spartan</strong>-3ジェネレーション<strong>FPGA</strong>DLL の 周 波 数 モー ド 属 性 (DLL_FREQUENCY_MODE)= LOW = HIGH最 小 周 波 数 最 大 周 波 数 最 小 周 波 数 最 大 周 波 数CLKIN_FREQ_DLL_LF_MIN CLKIN_FREQ_DLL_LF_MAX CLKIN_FREQ_DLL_HF_MINCLKIN_FREQ_DLL_HF_MIN<strong>Spartan</strong>-3 18MHz 167MHz 48MHz 25MHz入 力 ク ロ ッ ク の 最 小 周 波 数 は、<strong>Spartan</strong>-3E および <strong>Spartan</strong>-3A/3AN/3A DSP の DLL では 5MHz ですが、 <strong>Spartan</strong>-3 の DLL では 18MHz です。出 力 ク ロ ッ ク 周 波 数 の 範 囲DCM の さ ま ざ ま な 出 力 ク ロ ッ ク で も、 周 波 数 範 囲 が 指 定 さ れています。 詳 細 は、 「 入 力 および 出 力ク ロ ッ ク 周 波 数 の 範 囲 」 を 参 照 して く ださい。入 力 ク ロ ッ ク と ク ロ ッ ク フ ィードバックの 変 動「 安 定 し た 単 調 な ク ロ ッ ク 入 力 」 セ ク シ ョ ンで 説 明 する よ う に、 DCM には 安 定 し た 単 調 な ク ロ ッ ク入 力 が 必 要 ですが、 CLKIN 入 力 のあ る 程 度 の ク ロ ッ ク ジッタ、CLKIN 入 力 および CLKFB フィード バ ッ ク 入 力 の 多 少 の 周 波 数 変 動 は 許 容 さ れます。CLKIN 入 力 のジ ッ タ には、 次 の 2 種 類 があ り ます。• サイクル 間 ジッタ• 周 期 ジ ッ タサイクル 間 ジッ タ表 3-11 : 許 容 される 最 大 サイ クル 間 ジ ッ タサイクル 間 ジッタは、 あるサイクルと 次 のサイクルの 間 での CLKIN 入 力 周 期 の 変 動 を 示 し ます。表 3-11 に、 許 容 さ れる 最 大 サ イ ク ル 間 ジ ッ タ (データ シー ト 仕 様 での 名 前 と 予 測 値 ) を 示 し ます。 この 表 には、 仕 様 がいつ 適 用 されるかも 示 されています。 <strong>Spartan</strong>-3E および <strong>Spartan</strong>-3A/3AN/3A DSP<strong>FPGA</strong> の 動 作 範 囲 は 1 つですが、 許 容 されるサイ クル 間 ジ ッ タは 入 力 周 波 数 150MHz 付 近 で 変 わります。 <strong>Spartan</strong>-3 <strong>FPGA</strong> では、 DLL_FREQUENCY_MODE 属 性 の 設 定 に よ って 異 な り ます。周 波 数 モー ド / 周 波 数 範 囲ファンクション ユニッ ト低高DLL CLKIN_CYC_JITT_DLL_LF CLKIN_CYC_JITT_DLL_HFDFS CLKIN_CYC_JITT_FX_LF CLKIN_CYC_JITT_FX_HFサイクル 間 ジッタ ±300ps ±150ps<strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3A/3AN/3A DSP F CLKIN/FX ≤ 150MHz F CLKIN/FX > 150 MHz<strong>Spartan</strong>-3 DLL_FREQUENCY_MODE = LOW DLL_FREQUENCY_MODE = HIGH<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 81<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 3 章 : デジタル クロック マネージャ (DCM) の 使 用周 期 ジ ッ タもう 1 つのタイプのジッタは 周 期 ジッタで、 多 数 の ク ロ ッ ク サ イ ク ルにわた る ク ロ ッ ク 周 期 の 変 動を 示 します。 サイクル 間 ジッタは、1 つのク ロ ッ ク サイクルと 次 のクロッ ク サイクルとの 変 動 を 示しますが、 周 期 ジッタは 長 時 間 にわたる 周 期 の 変 動 を 示 します。 表 3-12 に、 許 容 される 最 大 周 期ジッタ (データ シー ト 仕 様 での 名 前 と 予 測 値 ) を 示 し ます。表 3-12 : 許 容 される 最 大 周 期 ジ ッ タ周 波 数 モー ド / 周 波 数 範 囲ファンクション ユニッ ト低高DLL CLKIN_PER_JITT_DLL_LF CLKIN_PER_JITT_DLL_HFDFS CLKIN_PER_JITT_FX_LF CLKIN_PER_JITT_FX_HF周 期 ジ ッ タ±1,000ps (±1ns)DLL のフ ィ ー ド バ ッ ク 遅 延 の 変 動DCM の 安 定 性 には、 DLL ユニッ ト で 使 用 される ク ロ ッ ク フィードバック パスも 関 係 します。フィードバック パスの 遅 延 の 変 動 は、 表 3-13 に 示 す 範 囲 内 であ る 必 要 があ り ます。 オンチップでの 変 動 は、グ ローバル クロック ラ イ ンに 接 続 し てい る 場 合 は 最 小 限 なので、 こ の 制 限 は 外 部 フ ィ ードバック パスにのみ 適 用 さ れます。表 3-13 : 外 部 フ ィ ー ド バ ッ ク パス 遅 延 の 変 動説 明オフチップ CLKFB フィードバック パス に 許 容 さ れる 最 大 変 動仕 様CLKFB_DELAY_VAR_EXT±1,000ps (±1ns)スペク ト ラム 拡 散 クロ ッ ク<strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3A、 <strong>Spartan</strong>-3AN、 および <strong>Spartan</strong>-3A DSP <strong>FPGA</strong> の DCM には、 一 般 的 なスペク ト ラ ム 拡 散 ク ロ ッ ク を 入 力 で き ます。 グ ローバル クロックを <strong>FPGA</strong> に 駆 動 する ため、 DCMの DLL 部 分 によ り スペク ト ラム 拡 散 クロッ クの 周 波 数 の 変 化 が 認 識 されます。 スペク ト ラム 拡 散ク ロ ッ ク は、 デバイ スのデータ シー ト に 記 載 さ れてい る DLL 要 件 を 満 たす 必 要 があ り ます。 DDLの 推 奨 動 作 条 件 (Recommended Operating Conditions for the DLL) の 表 で [ 入 力 ク ロ ッ ク ジッタ 耐性 および 遅 延 パス 偏 差 ] (Input Clock Jitter Tolerance and Delay Path Variation) のCLKIN_CYC_JITT_DLL および CLKIN_PER_JITT_DLL を 参 照 して く ださい。DFS では、 入 力 ク ロ ッ ク 仕 様 を 満 た し ていれば、 一 般 的 な スペク ト ラ ム 拡 散 入 力 を 認 識 で き ます。82 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


DCM のクロッ ク 要 件RDCM クロック 入 力 および 外 部 フィードバック 入 力各 DCM には、 入 力 ク ロ ッ ク 信 号 および 外 部 フ ィ ー ド バ ッ ク 信 号 用 に 複 数 の 入 力 があ り ます。<strong>Spartan</strong>-3E <strong>FPGA</strong> の DCM のクロック 入 力表 3-14 ~ 表 3-16 に、 <strong>Spartan</strong>-3E <strong>FPGA</strong> の 各 DCM への 直 接 入 力 を 示 し ます。 各 DCM には、 4 つまでの 直 接 入 力 ピ ンがあ り 、 ク ロ ッ クおよび 外 部 フ ィ ー ド バ ッ ク の 接 続 に 使 用 さ れます。 これらのピンは、<strong>FPGA</strong> 上 のグ ローバル バ ッ フ ァ への 直 接 入 力 で も あ り ます。 各 表 には、 使 用 可 能 な 4 つの直 接 入 力 、 パ ッ ケージ 別 のピ ン 番 号 、 関 連 する GCLK、 RHCLK または LHCLK クロック 入 力 、BUFGMUX クロック バッファが 示 されています。 また、DCM の LOC 属 性 の 値 と 関 連 するBUFGMUX バ ッ フ ァ、 直 接 入 力 ピ ン も 示 さ れています。各 直 接 入 力 にピ ン 番 号 が 示 さ れています。 関 連 する 2 本 のピ ン を 組 み 合 わせて、 差 動 ク ロ ッ ク 入 力を 形 成 できます。84 ページの 表 3-14 には、 DCM とグローバル クロック ネ ッ ト ワーク と の 直 接 接 続 を 示 し ます。 これらの DCM は、 デザイ ンに 含 まれる 高 速 ク ロ ッ クおよびフ ァ ンア ウ ト の 大 きいク ロ ッ ク に 適 し ています。 上 辺 の DCM は I/O バンク 0 に 接 続 されてお り 、 下 辺 の DCM は I/O バンク 2 に 接 続 されています。 XC3S100E にはグローバル DCM は 2 つし かな く 、 右 上 と 左 下 に 配 置 さ れています。 グローバル DCM からの 出 力 は、 同 じ 辺 にある BUFGMUX クロック バッファを 4 つまで 駆 動 できます。 1 つの 辺 にあ る 2 つの DCM は、 これら 4 つのク ロ ッ ク バッファを 共 有 しています。 これらのバッファは、 8 つのグ ローバル クロック ラインの 1 つに 接 続 さ れます。85 ページの 表 3-15 ~ 85 ページの 表 3-16 には、 XC3S1200E および XC3S1600E <strong>FPGA</strong> にある 左辺 と 右 辺 の DCM への 直 接 接 続 を 示 し ます。 これらの DCM の 出 力 ク ロ ッ クは、 <strong>FPGA</strong> の 同 じ 側( 右 側 ま たは 左 側 ) で 使 用 でき ます。 左 辺 の DCM は I/O バン ク 3 に 接 続 されてお り 、 右 辺 の DCMは I/O バンク 1 に 接 続 されています。 これら の DCM の 出 力 は、 同 じ 辺 にあ る BUFGMUX クロック バッファを 4 つまで 駆 動 でき、 これらの BUFGMUX は 8 つの ク ロ ッ ク ラインの 1 つに 接 続 されます。 これらの BUFGMUX バッファは <strong>FPGA</strong> の 半 分 のみに ク ロ ッ ク を 供 給 し ますが、 グ ローバル DCM は <strong>FPGA</strong> 全 体 に ク ロ ッ ク を 供 給 し ます。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 83<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 3 章 : デジタル クロック マネージャ (DCM) の 使 用表 3-14 : <strong>Spartan</strong>-3E <strong>FPGA</strong> : DCM への 直 接 入 力 の 接 続 と 外 部 フ ィ ー ド バ ッ クパッケージI/O バンク 0差 動 ペア 差 動 ペア 差 動 ペア 差 動 ペアN P N P N P N Pシングル エ ン ド 入 力 のピ ン 番 号シングル エンド 入 力 のピン 番 号VQ100 P91 P90 P89 P88 P86 P85 P84 P83CP132 B7 A7 C8 B8 A9 B9 C9 A10TQ144 P131 P130 P129 P128 P126 P125 P123 P122PQ208 P186 P185 P184 P183 P181 P180 P178 P177FT256 D8 C8 B8 A8 A9 A10 F9 E9FG320 D9 C9 B9 B8 A10 B10 E10 D10FG400 A9 A10 G10 H10 E10 E11 G11 F11FG484 B11 C11 H11 H12 C12 B12 E12 F12↓ ↓ ↓ ↓ 接 続 される グ ローバル バッファ ↓ ↓ ↓ ↓GCLK11 GCLK10 GCLK9 GCLK8GCLK7 GCLK6 GCLK5 GCLK4左 上 の DCMXC3S100E : なしXC3S250E、 XC3S500E : DCM_X0Y1XC3S1200E、 XC3S1600E : DCM_X1Y3左 下 の DCMXC3S100E : なしXC3S250E、 XC3S500E : DCM_X0Y0XC3S1200E、 XC3S1600E : DCM_X1Y0BUFGMUX_X1Y10BUFGMUX_X1Y11BUFGMUX_X2Y10BUFGMUX_X2Y11↓ ↓ ↓ ↓H G F Eグ ロ ーバル ク ロック ラインD C B A↑ ↑ ↑ ↑BUFGMUX_X1Y0BUFGMUX_X1Y1BUFGMUX_X2Y0BUFGMUX_X2Y1右 上 の DCMXC3S100E : DCM_X0Y1XC3S250E、 XC3S500E : DCM_X1Y1XC3S1200E、 XC3S1600E : DCM_X2Y3右 下 の DCMXC3S100E : DCM_X0Y0XC3S250E、 XC3S500E : DCM_X1Y0XC3S1200E、 XC3S1600E : DCM_X2Y0GCLK12 GCLK13 GCLK14 GCLK15 GCLK0 GCLK1 GCLK2 GCLK3↑ ↑ ↑ ↑ 接 続 される グ ローバル バッファ ↑ ↑ ↑ ↑差 動 ペア 差 動 ペア 差 動 ペア 差 動 ペアパッケージ P N P N P N P Nシングル エンド 入 力 のピン 番 号シングル エン ド 入 力 のピ ン 番 号VQ100 P32 P33 P35 P36 P38 P39 P40 P41CP132 M4 N4 M5 N5 M6 N6 P6 P7TQ144 P50 P51 P53 P54 P56 P57 P58 P59PQ208 P74 P75 P77 P78 P80 P81 P82 P83FT256 M8 L8 N8 P8 T9 R9 P9 N9FG320 N9 M9 U9 V9 U10 T10 R10 P10FG400 W9 W10 R10 P10 P11 P12 V10 V11FG484 V11 U11 R11 T11 R12 P12 Y12 W12I/O バンク 284 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


DCM のクロッ ク 要 件R表 3-15 : <strong>Spartan</strong>-3E <strong>FPGA</strong> : 左 辺 の DCM への 直 接 入 力 および 外 部 フ ィ ー ド バ ッ ク (XC3S1200E、 XC3S1600E)差 動 クパッケージ 別 のシングル エンド ピ ン 番 号左 辺ロック VQ100 CP132 TQ144 PQ208 FT256 FG320 FG400 FG484 LHCLK DCM/BUFGMUXBUFGMUX_X0Y5 → DBUFGMUX_X0Y4 → CP P9 F3 P14 P22 H5 J5 K3 M5 → LHCLK0N P10 F2 P15 P23 H6 J4 K2 L5 → LHCLK1P P11 F1 P16 P24 H3 J1 K7 L8 → LHCLK2DCM_X0Y2N P12 G1 P17 P25 H4 J2 L7 M8ペアペアクロック ラインI/O バンク 3→ LHCLK3 BUFGMUX_X0Y3 → BBUFGMUX_X0Y2 → ABUFGMUX_X0Y9 → HBUFGMUX_X0Y8 → GペアペアP P15 G3 P20 P28 J2 K3 M1 M1 → LHCLK4N P16 H1 P21 P29 J3 K4 L1 N1 → LHCLK5P P17 H2 P22 P30 J5 K6 M3 M3 → LHCLK6N P18 H3 P23 P31 J4 K5 L3 M4→ LHCLK7 BUFGMUX_X0Y7 → FDCM_X0Y1クロック ラインBUFGMUX_X0Y6 → E表 3-16 : <strong>Spartan</strong>-3E <strong>FPGA</strong> : 右 辺 の DCM への 直 接 入 力 および 外 部 フ ィ ー ド バ ッ ク (XC3S1200E、 XC3S1600E)右 辺 パ ッ ケージ 別 のシングル エンド ピン 番 号 差 動 クDCM/BUFGMUX RHCLK VQ100 CP132 TQ144 PQ208 FT256 FG320 FG400 FG484 ロックD ← BUFGMUX_X3Y5C ← BUFGMUX_X3Y4RHCLK7 ← P68 G13 P94 P135 H11 J14 J20 L19 NRHCLK6 ← P67 G14 P93 P134 H12 J15 K20 L18 PDCM_X3Y2RHCLK5 ← P66 H12 P92 P133 H14 J16 K14 L21 NRHCLK4 ← P65 H13 P91 P132 H15 J17 K13 L20 Pクロック ラインB ← BUFGMUX_X3Y3A ← BUFGMUX_X3Y2H ← BUFGMUX_X3Y9G ← BUFGMUX_X3Y8クロック ラインDCM_X3Y1F ← BUFGMUX_X3Y7E ← BUFGMUX_X3Y6RHCLK3 ← P63 J14 P88 P129 J13 K14 L14 M16 NRHCLK2 ← P62 J13 P87 P128 J14 K15 L15 M15 PRHCLK1 ← P61 J12 P86 P127 J16 K12 L16 M22 NRHCLK0 ← P60 K14 P85 P126 K16 K13 M16 N22 PペアペアペアペアI/O バンク 1<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 85<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 3 章 : デジタル クロック マネージャ (DCM) の 使 用<strong>Spartan</strong>-3A/3AN/3A DSP <strong>FPGA</strong> の DCM のクロッ ク 入 力表 3-18 ~ 表 3-20 に、<strong>Spartan</strong>-3A/3AN/3A DSP <strong>FPGA</strong> の 直 接 入 力 を 示 し ます。 各 DCM には、4 つまでの 直 接 入 力 ピ ンがあ り 、 ク ロ ッ クおよび 外 部 フ ィ ー ド バ ッ ク の 接 続 に 使 用 さ れます。 これらのピンは、<strong>FPGA</strong> 上 のグ ローバル バ ッ フ ァ への 直 接 入 力 で も あ り ます。 各 表 には、 使 用 可 能 な 4 つの直 接 入 力 、 パ ッ ケージ 別 のピ ン 番 号 、 関 連 する GCLK、 RHCLK または LHCLK クロック 入 力 、BUFGMUX クロック バッファが 示 されています。 また、DCM の LOC 属 性 の 値 と 関 連 するBUFGMUX バ ッ フ ァ、 直 接 入 力 ピ ン も 示 さ れています。各 直 接 入 力 にピ ン 番 号 が 示 さ れています。 関 連 する 2 本 のピ ン を 組 み 合 わせて、 差 動 ク ロ ッ ク 入 力を 形 成 できます。87 ページの 表 3-18 には、 DCM とグローバル クロック ネ ッ ト ワーク と の 直 接 接 続 を 示 し ます。 これらの DCM は、 デザイ ンに 含 まれる 高 速 ク ロ ッ クおよびフ ァ ンア ウ ト の 大 きいク ロ ッ ク に 適 し ています。 上 辺 の DCM は I/O バンク 0 に 接 続 されてお り 、 下 辺 の DCM は I/O バンク 2 に 接 続 されています。 XC3S50A にはグローバル DCM は 2 つし かな く 、 左 上 と 右 上 に 配 置 さ れています。 グローバル DCM からの 出 力 は、 同 じ 辺 にある BUFGMUX クロック バッファを 4 つまで 駆 動 できます。 1 つの 辺 にあ る 2 つの DCM は、 これら 4 つのク ロ ッ ク バッファを 共 有 しています。 これらのバッファは、 8 つのグ ローバル クロック ラインの 1 つに 接 続 さ れます。88 ページの 表 3-19 ~ 88 ページの 表 3-20 には、 XC3S700A、 XC3S1400A、 および <strong>Spartan</strong>-3ADSP <strong>FPGA</strong> にある 左 辺 と 右 辺 の DCM への 直 接 接 続 を 示 し ます。 これらの DCM の 出 力 ク ロ ッ クは、<strong>FPGA</strong> の 同 じ 側 ( 右 側 ま たは 左 側 ) で 使 用 でき ます。 左 辺 の DCM は I/O バンク 3 に 接 続 されており、 右 辺 の DCM は I/O バンク 1 に 接 続 されています。 これらの DCM の 出 力 は、 同 じ 辺 にあ るBUFGMUX クロック バッファを 4 つまで 駆 動 でき、 これらの BUFGMUX は 8 つの ク ロ ッ ク ラインの 1 つに 接 続 さ れます。 これらの BUFGMUX バッファは <strong>FPGA</strong> の 半 分 のみにク ロ ッ ク を 供 給しますが、 グローバル DCM は <strong>FPGA</strong> 全 体 に ク ロ ッ ク を 供 給 し ます。DCM を 使 用 してダブル データ レー ト ODDR2 を 駆 動 する 高 速 ク ロ ッ ク を 生 成 する 場 合 、 CLKFXおよび CLKFX180 に 特 定 の BUFGMUX が 推 奨 されます。 表 3-17 を 参 照 して く ださい。表 3-17 : 推 奨 される DCM/BUFG の 接 続DCM推 奨 される BUFGMUXXC3S50A XC3S200A/400A XC3S700A/1400A CLKFX CLKFX180- X0Y0 X1Y0 X2Y1 X1Y0- X1Y0 X2Y0 X2Y1 X1Y0- - X0Y1 X0Y6 X0Y9- - X0Y2 X0Y2 X0Y5X0Y0 X0Y1 X1Y3 X2Y11 X1Y10X1Y0 X1Y1 X2Y3 X2Y11 X1Y10- - X3Y2 X3Y2 X3Y5- - X3Y1 X3Y6 X3Y986 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


DCM のクロッ ク 要 件R表 3-18 : <strong>Spartan</strong>-3A/3AN/3A DSP <strong>FPGA</strong> : DCM への 直 接 入 力 および 外 部 フ ィ ー ド バ ッ クパッケージI/O バンク 0差 動 ペア 差 動 ペア 差 動 ペア 差 動 ペアN P N P N P N Pシングル エ ン ド 入 力 のピ ン 番 号シングル エン ド 入 力 のピ ン 番 号VQ100 P90 なし P89 P88 P86 P85 P84 P83TQ144 P132 P130 P131 P129 P127 P125 P126 P124FT256 B8 A8 D8 C8 A9 C9 D9 C10FG320 C8 B8 B7 A8 B9 A10 C9 B10FG400 A9 A10 G10 D10 E10 E11 G11 F11CS484 B8 A8 E11 F10 B9 A9 F11 E12FG484 E11 D11 C11 B11 A11 A12 E12 C12FG676 C13 B13 G13 F13 A14 B14 J14 K14↓ ↓ ↓ ↓ 接 続 される グ ローバル バッファ ↓ ↓ ↓ ↓GCLK11 GCLK10 GCLK9 GCLK8GCLK7 GCLK6 GCLK5 GCLK4左 上 の DCMXC3S50A : DCM_X0Y0XC3S200A、 XC3S400A : DCM_X0Y1XC3S700A/1400A、 <strong>Spartan</strong>-3A DSP :DCM_X1Y3BUFGMUX_X1Y10BUFGMUX_X1Y11BUFGMUX_X2Y10BUFGMUX_X2Y11↓ ↓ ↓ ↓H G F Eグローバル クロック ラインD C B A右 上 の DCMXC3S50A : DCM_X1Y0XC3S200A、 XC3S400A : DCM_X1Y1XC3S700A/1400A、 <strong>Spartan</strong>-3A DSP :DCM_X2Y3↑ ↑ ↑ ↑左 下 の DCMXC3S50A : なしXC3S200A、 XC3S400A : DCM_X0Y0XC3S700A/1400A、 <strong>Spartan</strong>-3A DSP :DCM_X1Y0右 下 の DCMXC3S50A : なしXC3S200A、 XC3S400A : DCM_X1Y0XC3S700A/1400A、 <strong>Spartan</strong>-3A DSP :DCM_X2Y0GCLK12 GCLK13 GCLK14 GCLK15 GCLK0 GCLK1 GCLK2 GCLK3BUFGMUX_X1Y0BUFGMUX_X1Y1↑ ↑ ↑ ↑ 接 続 される グ ローバル バッファ ↑ ↑ ↑ ↑差 動 ペア 差 動 ペア 差 動 ペア 差 動 ペアパッケージ P N P N P N P Nシングル エ ン ド 入 力 のピ ン 番 号シングル エン ド 入 力 のピ ン 番 号VQ100 なし なし P40 P41 P43 P44 なし なしTQ144 なし なし P54 P55 P57 P59 P58 P60FT256 R7 (1) T7 (1) P8 T8 N9 P9 R9 T9FG320 U8 V8 U9 V9 U10 T10 V11 U11FG400 W9 Y9 V10 W10 Y11 V11 U11 V12CS484 Y11 Y10 AA12 AB12 U12 V12 AB13 AA14FG484 U11 V11 W12 Y12 AA12 AB12 V12 U12FG676 AA13 Y13 AF13 AE13 Y14 AA14 AF14 AE14I/O バンク 21. XC3S50A ではなし。BUFGMUX_X2Y0BUFGMUX_X2Y1<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 87<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 3 章 : デジタル クロック マネージャ (DCM) の 使 用表 3-19 : <strong>Spartan</strong>-3A/3AN/3A DSP <strong>FPGA</strong> : 左 辺 の DCM への 直 接 入 力 および 外 部 フ ィ ー ド バ ッ ク(XC3S700A/AN、 XC3S1400A/AN、 <strong>Spartan</strong>-3A DSP <strong>FPGA</strong>)I/O バンク 3差 動クロックペアペアペアペアパッケージ 別 のシングル エンド ピ ン 番 号左 辺FT256 FG400 FG484 CS484 FG676 LHCLK DCM/BUFGMUXBUFGMUX_X0Y5 → DP G2 J1 L5 L6 N6 → LHCLK0N H1 K2 L3 M5 N7 → LHCLK1P H3 K3 K1 K1 P1 → LHCLK2BUFGMUX_X0Y4 → CDCM_X0Y2BUFGMUX_X0Y3 → BBUFGMUX_X0Y2 → AP J2 K4 M1 L3 P4 → LHCLK4N J1 L5 M2 M2 P3 → LHCLK5P K3 L1 M3 M6 N9 → LHCLK6クロック ラインBUFGMUX_X0Y9 → HBUFGMUX_X0Y8 → GDCM_X0Y1N K1 M1 M4 N7 P10 → LHCLK7 BUFGMUX_X0Y7 → Fクロック ラインBUFGMUX_X0Y6 → E表 3-20 : <strong>Spartan</strong>-3A/3AN/3A DSP <strong>FPGA</strong> : 右 辺 の DCM への 直 接 入 力 および 外 部 フ ィ ー ド バ ッ ク(XC3S700A/AN、 XC3S1400A/AN、 <strong>Spartan</strong>-3A DSP <strong>FPGA</strong>)右 辺 パ ッ ケージ 別 のシングル エンド ピン 番 号 差 動DCM/BUFGMUX RHCLK FT256 FG400 FG484 CS484 FG676 クロックD ← BUFGMUX_X3Y5C ← BUFGMUX_X3Y4RHCLK7 ← H16 J20 K19 L17 N19 NDCM_X3Y2RHCLK6 ← H15 K20 K20 M18 P18 PRHCLK5 ← H14 L17 M20 L20 N24 NRHCLK4 ← J14 K18 M18 L21 P23 Pクロック ラインB ← BUFGMUX_X3Y3A ← BUFGMUX_X3Y2H ← BUFGMUX_X3Y9G ← BUFGMUX_X3Y8クロック ラインDCM_X3Y1F ← BUFGMUX_X3Y7E ← BUFGMUX_X3Y6RHCLK3 ← J16 L18 L20 M20 P25 NRHCLK2 ← K16 L19 L21 N21 P26 PRHCLK1 ← K14 M20 L22 M17 P20 NRHCLK0 ← K15 M19 M22 N18 P21 PペアペアペアペアI/O バンク 188 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


LOCKED 出 力 の 動 作RLOCKED 出 力 の 動 作DCM の LOCKED 出 力 は、 イ ネーブルになっている DCM のすべての 機 能 が CLKIN 入 力 に ロ ックされているかどうかを 示 します。 LOCKED がアサー ト さ れた 場 合 、 出 力 ク ロ ッ ク は 有 効 であ り 、<strong>FPGA</strong> アプ リ ケーシ ョ ンで 使 用 できます。図 3-5 に、 LOCKED 出 力 の 動 作 を 示 し ます。 <strong>FPGA</strong> のコンフィギュレーシ ョ ン プロセスが 完 了 したとき、 または RST 入 力 がアサー ト さ れる と 、 LOCKED 信 号 は Low にな り ます。コンフィギュレーション 後 は、CLKIN 信 号 が 有 効 であるかど う かにかかわらず、DCM はロッ ク 状態 を 達 成 し よ う と し ます。 入 力 ク ロ ッ ク が 変 化 する と 、 CLKIN 入 力 が 安 定 する まで RST 入 力 がアサー ト されます。 RST 入 力 が 解 除 さ れる と 、DCM は 再 び CLKIN 入 力 の 周 波 数 に ロ ッ ク さ れます。DLL ユニッ ト では、 CLKIN 入 力 と CLKFB フ ィ ー ド バ ッ ク 入 力 を 使 用 し て、 ロ ッ ク 状 態 (CLKINと CLKFB の 立 ち 上 が り エ ッ ジの 位 相 が 揃 う ) になったかど う かを 判 断 します。 DFS ユニッ ト はCLKIN 入 力 を 監 視 し、 CLKIN の 周 波 数 が 有 効 であ る かど う かを 判 断 し ます。 DCM がロッ ク 状 態になる までに、 数 千 サイ クルのク ロ ッ ク をサンプ リ ングする 必 要 があ る 場 合 があ り ます。DCM の 内 部 ス テー ト マシンが CLKIN 入 力 に ロ ッ ク さ れる と LOCKED 出 力 が High にな り、DCM のすべてのク ロ ッ ク 出 力 が 有 効 と な り 、 <strong>FPGA</strong> アプ リ ケーシ ョ ンで 使 用 でき るよ う にな り ます。 データ シー ト の DCM タイミング セクションに、 DCM がロック 状 態 になるまでのワース トケースの 予 測 時 間 が 示 さ れています。 通 常 、ク ロ ッ ク 周 波 数 が 高 い 方 が DLL ユニッ ト の 出 力 がロ ック 状 態 になるまでの 時 間 が 短 くなり ます。 DFS ユニ ッ ト の 出 力 は、 逓 倍 値 および 分 周 値 に よ って、ロ ッ ク 状 態 になる までにかな り 時 間 がかかる 場 合 があ り ます。 逓 倍 値 と 分 周 値 を 小 さ く する と、ロ ッ ク 状 態 に 達 する までの 時 間 が 短 く な り ます。システム ク ロ ッ ク が 安 定 し てか らデバ イ スが 動 作 を 開 始 する よ う にする ため、 DCM がロック 状 態になるまでデバイスのコンフ ィ ギュレーシ ョ ンの 完 了 を 遅 らせる こ とができます。 この 機 能 は、STARTUP_WAIT 属 性 で 制 御 し ます。LOCKED が High になるまで、 DCM の ク ロ ッ ク 出 力 の 動 作 は 安 定 し ていません。 LOCKED 信 号が High になる 前 の DCM の 出 力 ク ロ ッ ク には、 グ リ ッ チ、 スパイ ク などの 不 正 な 波 形 が 含 まれてい る 可 能 性 があ り ます。CLKIN が 停 止 し て も、 LOCKED 信 号 が High のま まにな る 場 合 があ り ます。 詳 細 は、 「CLKIN の一 時 停 止 」 を 参 照 して く ださい。 また、 CLKIN が 大 き く 変 動 する 場 合 も、 LOCKED 信 号 が Highのま まにな る こ と があ り ます。 詳 細 は、 「 安 定 し た 単 調 な ク ロ ッ ク 入 力 」 を 参 照 して く ださい。<strong>Spartan</strong>-3A/3AN/3A DSP <strong>FPGA</strong> で 隣 接 する 2 つの DCM を 使 用 する 場 合 、 両 方 の DCM がのLOCKED 信 号 が High にな ら ない と 出 力 が 有 効 にな り ません。 隣 接 する DCM では、 同 じ リ セット 信 号 を 共 有 する 必 要 があ り ます。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 89<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 3 章 : デジタル クロック マネージャ (DCM) の 使 用<strong>FPGA</strong>RST LOCKED LowCLKIN CLKIN RST N<strong>FPGA</strong> RST YYDCMRST NLOCKED LowLOCKED High図 3-5 : LOCKED 出 力 の 動 作x462_05_120206CLKIN 入 力 が 指 定 の 範 囲 内 であれば、 DCM の 内 部 遅 延 タ ッ プが 調 整 さ れ、 ロ ッ ク が 保 持 さ れます。 CLKIN 入 力 が 指 定 の 範 囲 外 にな る と 、 DCM のロック 状 態 は 解 除 され、 LOCKED 出 力 がデ ィアサート されます。DCM の ロ ッ ク 状 態 が 解 除 さ れる と 、 自 動 的 に ロ ッ ク 状 態 に 戻 る こ と はあ り ません。 DCM のロッ ク状 態 が 解 除 さ れた 場 合 は (LOCKED が High になった 後 Low になる)、 RST 入 力 を アサー ト し てDCM を リセットするなど、<strong>FPGA</strong> アプ リ ケーシ ョ ンで 適 切 な 操 作 を 実 行 する 必 要 があ り ます。LOCKED 信 号 の 使 用DCM を 正 し く 動 作 さ せる ためには、 安 定 し た 単 調 な ク ロ ッ ク 入 力 が 必 要 です。 DCM がロッ ク 状態 になる と、 <strong>FPGA</strong> データ シー ト で 指 定 さ れてい る 値 までの ク ロ ッ ク 周 期 の 変 動 は 許 容 さ れます。入 力 ク ロ ッ ク の 変 動 が 指 定 の 範 囲 内 であ る 場 合 、LOCKED 出 力 が High であれば 出 力 ク ロ ッ ク は 有効 であ る と 考 え ら れますが、 ク ロ ッ ク の 変 動 が 指 定 範 囲 内 を 超 えて CLKDV または DLKFX 出 力が 無 効 になって も LOCKED 出 力 が High のま まであ る 可 能 性 も あ り ます。 そのため、LOCKED 信号 と STATUS 信 号 の 両 方 を 監 視 する こ と をお 勧 め し ます。 STATUS[1] は CLKIN の 停 止 (CLKINが 許 容 範 囲 外 にな る) を 示 すので 有 益 です。 STATUS[1] は CLKIN が 1 サイクル 停 止 すると Highにな り ますが、 LOCKED 信 号 は CLKIN が 100ms 以 上 停 止 し ない と Low にな り ません。STATUS[1] は、CLKIN が 再 開 すればすぐ に Low にな り ます。DCM の 出 力 ク ロ ッ ク の 状 態 を 確 実に 知 るには、 LOCKED と STATUS[1] 信 号 の 両 方 を 監 視 し て く だ さ い。90 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


RST 入 力 の 動 作R<strong>Spartan</strong>-3A DCM のデジ タル 周 波 数 合 成 に 必 要 な 追 加 ロ ッ ク 回 路DFS を 確 実 にロ ッ ク 状 態 にするため、 ISE 9.1i から <strong>Spartan</strong>-3A、 <strong>Spartan</strong>-3AN、 および <strong>Spartan</strong>-3A DSP <strong>FPGA</strong> に 対 し て 回 路 が 自 動 的 に 追 加 される よ う にな り ま し た ( 図 3-6)。 この 回 路 は <strong>FPGA</strong>ロジックを 使 用 して 作 成 され、 DCM_SP からの LOCKED 出 力 と 、 DFS の CLKFX 出 力 が 停 止 したことを 示 す STATUS[2] ビッ トを 監 視 します。LOCKED = 0 で STATUS[2] = 1 の 場 合 、 こ の 回路 によ り DCM の RESET 入 力 がアサー ト さ れます。 <strong>FPGA</strong> アプ リ ケーシ ョ ンでも DCM がリセットされる 場 合 は、<strong>FPGA</strong> アプ リ ケーシ ョ ンからの リ セッ ト 信 号 と 監 視 している DCM の 出 力 信 号 をOR に 接 続 し ます。(from <strong>FPGA</strong> application)DCM_RESETANDORDCM_SPSTATUS[2]RESET LOCKEDDCM_LOCKEDCLKFX_STOPPED図 3-6 : <strong>Spartan</strong>-3A DCM の DFS ロック ロジックEN035_02_101806RST 入 力 の 動 作非 同 期 RST 入 力 は、 DCM ロジックをコンフィギュレーション 前 のステートにリセッ ト します。 入力 ク ロ ッ ク の 周 波 数 を 変 更 する 場 合 、 RST 入 力 を 使 用 し ます。 RST ピンはアクティブ High で、 ダイ ナ ミ ッ ク 信 号 ま たはグ ラ ン ド に 接 続 する 必 要 があ り ます。 RST 入 力 は、 CLKIN の 3 クロック サイクル 以 上 アサートする 必 要 があります。コ ン フ ィ ギ ュ レーシ ョ ンが 完 了 し て も 入 力 ク ロ ッ ク 周 波 数 が 安 定 し ていない 場 合 は、 ク ロ ッ ク が 安定 する まで RST をアサート します。 外 部 フ ィ ー ド バ ッ ク を 使 用 する 場 合 は、コ ン フ ィ ギ ュ レーシ ョンの 直 後 に DCM を リセット 状 態 にします。107 ページの 図 3-20 に、SRL16 シフ ト レジスタ プリミ テ ィブを 使 用 した リ セッ ト のインプ リ メ ンテーシ ョ ン 例 を 示 し ます。DCM の ロ ッ ク 状 態 が 解 除 さ れた 場 合 は (LOCKED が High になった 後 Low になる)、 RST 入 力 をアサート して、DCM が 再 び 入 力 ク ロ ッ ク 周 波 数 への ロ ッ ク を 達 成 する よ う にする 必 要 があ り ます。LOCKED 出 力 が High の 場 合 に RST がアサート される と、 ソース クロックの 4 サイクル 以 内 にLOCKED がデ ィ アサー ト されます。 RST がアサー ト される と、 DCM は ロ ッ ク 状 態 を 再 び 達 成 する 必 要 があ り ます。RST をアサートする と、 DCM の 遅 延 タ ップの 位 置 もゼロに リ セ ッ ト されます。 タップ 位 置 の 変 更によ り、 DCM の ク ロ ッ ク 出 力 ピ ンにグ リ ッ チが 発 生 する 場 合 があ り ます。 また、 RST のアサートによ り、 クロック 出 力 のデューティ サ イ ク ルに も 影 響 が 出 る 可 能 性 があ り ます。RST を アサー ト する と 、 可 変 位 相 シフ ト 値 も PHASE_SHIFT 属 性 で 指 定 さ れた 値 に 戻 り ます。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 91<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 3 章 : デジタル クロック マネージャ (DCM) の 使 用Clocking WizardDCM を 使 用 する アプ リ ケーシ ョ ン を 簡 単 に 作 成 で き る よ う にする ため、 ザ イ リ ン ク ス ISE 開 発 ソフトウェアには、DCM をコンフィギュレーションするためのウィザードが 含 まれています。Clocking Wizard は、 図 3-7 に 示 すよ う に、DCM を VHDL または Verilog 構 文 に イ ン ス タ ンシエート するベンダー 用 の ロ ジ ッ ク 合 成 フ ァ イ ル と 、 ユーザー 制 約 フ ァ イル (UCF) を 生 成 し ます。 すべての 仕 様 は、 XAW (<strong>Xilinx</strong> Architecture Wizard) 設 定 フ ァ イ ルに 保 存 さ れます。Clocking Wizard<strong>Spartan</strong>-3 (DCM) VHDL VerilogArchitecture Wizard (XAW)(UCF)<strong>UG331</strong>_c3_28_022407図 3-7 : DCM をコンフィギュレーションするグラフィカル インターフェイスを 提 供 するClocking WizardClocking Wizard の 起 動Clocking Wizard を 起 動 する には、Windows の [スタート] ボ タ ンか ら 起 動 する 方 法 と 、ISE ProjectNavigator か ら 起 動 する 方 法 があ り ます。Windows の [スタート] ボタンからの 起 動Windows の [スタート] ボタンから Clocking Wizard を 起 動 する には、 [スタート] → [プログラム]→ [<strong>Xilinx</strong> ISE Design Suite] → [ISE] → [アクセサリ] → [Architecture Wizard] をクリ ックします。図 3-8 に 示 す [<strong>Xilinx</strong> Architecture Wizard - Setup] ダイアログ ボックスが 開 きます。• DCM のオプシ ョ ン 設 定 を 保 存 する XAW フ ァ イルの 名 前 を 指 定 し ます。• [Browse] をクリ ックして、XAW フ ァ イ ルを 保 存 する ディ レ ク ト リ を 選 択 し ま す (オプシ ョ ン)。• 出 力 フ ァ イ ルの 論 理 合 成 言 語 と し て [VHDL] または [Verilog] をオンにします。• 合 成 ツールを 選 択 し ます。 Clocking Wizard では、 指 定 し た 合 成 ツールのベンダー 特 定 の 出 力が 生 成 されます。• 使 用 する <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> を 選 択 し ます。92 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


Clocking WizardRDCM<strong>Spartan</strong>-3<strong>FPGA</strong>[OK]<strong>UG331</strong>_c3_05_120206Project Navigator からの 起 動図 3-8 : [<strong>Xilinx</strong> Architecture Wizard - Setup] ダイアログ ボックスProject Navigator から Clocking Wizard を 起 動 する には、 メ ニ ュー コマンドか [Sources] タブを 使用 します。 メニュー コ マン ド を 使 用 する 場 合 は、 [Project] → [New Source] を クリ ックします。[Sources] タ ブを 使 用 する 場 合 は、[Sources] タブを 右 ク リ ックし、[New Source] をクリ ックします。[New Source] ダイアログ ボックスで、[IP (Coregen & Architecture Wizard)] を 選 択 します。 XAWフ ァ イ ルの 名 前 を 入 力 し、フ ァ イルを 保 存 するデ ィ レ ク ト リ を 選 択 し て、 [Next] をクリ ックします。[<strong>FPGA</strong> Features and Design] → [Clocking] の 下 か らデバ イ スおよび 使 用 する ウ ィ ザー ド を 選 択 し、[OK] をクリ ックします ( 図 3-9 を 参 照 )。Clocking Wizard [OK]UG332_c3_06_120206図 3-9 : Project Navigator からの Clocking Wizard の 起 動<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 93<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 3 章 : デジタル クロック マネージャ (DCM) の 使 用[General Setup] ページ図 3-10 に 示 すよ う に、 [General Setup] ページで DCM のオプシ ョ ンを 設 定 し ます。 水 色 で 示 さ れてい る テキ ス ト は、 その 設 定 に 対 応 する DCM プリ ミティブの 属 性 を 示 します。• アプ リ ケーシ ョ ンで 使 用 する 出 力 と フ ァ ン ク シ ョ ン を 選 択 する には、 必 要 な ク ロ ッ ク 出 力 のチェッ ク ボックスをオンにします。 これらのチェッ ク ボ ッ ク ス をオンにする と 、 関 連 する オプションを 設 定 できるようになります。• CLKIN ク ロ ッ ク 入 力 の 周 波 数 を 入 力 し ま す。 周 波 数 を MHz で 指 定 する か、 ク ロ ッ ク 周 期 を ns で指 定 し ま す。 こ の 設 定 によ り 、 <strong>Spartan</strong>-3 <strong>FPGA</strong> デザイ ンの DCM の DLL_FREQUENCY_MODE属 性 も 設 定 さ れま す。• CLKIN ソースが <strong>FPGA</strong> の 内 部 であ るか 外 部 であ るかを 指 定 し ます。 [External] ( 外 部 ) をオンにする と、 グ ローバル バッファ 入 力 (IBUFG) プ リ ミ テ ィ ブが 自 動 的 に 挿 入 されます。[Internal] ( 内 部 ) をオンにする と、 生 成 される HDL ソース フ ァ イルで ソース 信 号 が 最 上 位 入力 と し て 供 給 さ れます。• CLKDV 出 力 をオンに し た 場 合 は、ク ロ ッ ク 分 周 回 路 の [Divide by Value] ( 分 周 値 ) を 指 定 し ます。 この 設 定 は、 DCM の CLKDV_DIVIDE 属 性 を 定 義 し ます。• DCM へのフ ィ ード バッ ク パスを 指 定 します。 CLKFX または CLKFX180 出 力 のみを 使 用 する 場 合 は、 [None] をオンにします。 それ 以 外 の 場 合 は、 フ ィ ード バッ クが 必 要 です。 フィードバックが <strong>FPGA</strong> 内 から 供 給 される 場 合 は、 [Internal] をオンにします。 フィードバック ループが <strong>FPGA</strong> 外 から 供 給 される 場 合 は、 [External] をオンにします。 また、 DCM フィードバックのソースとして CLK0 ([1X]) または CLK2X ([2X]) を 選 択 し ます。 この 設 定 は、DCM のCLK_FEEDBACK 属 性 を 定 義 し ます。94 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


Clocking WizardRCLKDV DCM CLKFX CLKFX180 MHz ns DLL_FREQUENCY_MODEPHASE_SHIFT[Fixed] [Value] [Variable] PSENPSINCDECPSCLK[External] CLKIN IBUFG [Internal] CLKIN CLKOUT_PHASE_SHIFT(1/256) CLKDV_DIVIDECLKDV CLK_FEEDBACK([Internal])([External])([None])CLK0 ([1X]) CLK2X ([2X])DUTY_CYCLE_CORRECTION[Next] 図 3-10 : DCM の 主 なオプシ ョ ンは、 Clocking Wizard の [General Setup] ページで 設 定<strong>UG331</strong>_c3_07_120206<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 95<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 3 章 : デジタル クロック マネージャ (DCM) の 使 用• DCM のすべての 出 力 を 位 相 シフ ト する かど う かを 指 定 し ま す。 デフ ォ ルト では、[None] が 選 択さ れており 、 位 相 はシフ ト さ れま せん。 アプリ ケーショ ン で 位 相 シフ ト が 必 要 な 場 合 は、[Fixed]または [Variable] を 選 択 し ます。 [Variable] を 選 択 する と、 PSEN、 PSINCDEC、 PSCLK、 および PSDONE が 有 効 にな り ます。 この 設 定 は、 DCM の CLKOUT_PHASE_SHIFT 属 性 を 定義 します。 [Fixed] または [Variable] を 選 択 した 場 合 は、 その 下 の [Value] ( 位 相 シフ ト 値 ) も 指定 します。 この 値 は、 [Fixed] を 選 択 し てい る 場 合 は 固 定 位 相 シフ ト 値 、 [Variable] を 選 択 してい る 場 合 は 可 変 位 相 シフ ト の 初 期 値 を 設 定 し ます。 この 設 定 は、DCM の PHASE_SHIFT 属 性を 定 義 します。• [Advanced] ボタンをク リ ックすると、 [Advanced] ページが 開 き ます。• [Next] をクリ ックし、 [Clock Buffers] ページに 進 みます。[Advanced] ページ[Advanced] ページでは、 図 3-11 に 示 すよ う に、 DCM のア ドバンス オプシ ョ ン を 設 定 で き ます。• デフォル ト では、DCM は <strong>FPGA</strong> のコンフィギュレーショ ン プ ロ セスには 影 響 し ません。 [Waitfor DCM lock before DONE signal goes high] をオンにする と、 DCM の LOCKED 出 力 がHigh になるまでコンフィギュレーションの 完 了 を 示 す DONE 信 号 はアサー ト さ れません。 この 設 定 は、 DCM の STARTUP_WAIT 属 性 を 定 義 し ます。 こ のオプシ ョ ン をオンに し た 場 合 、「DCM の LOCKED 出 力 がアサー ト さ れる まで コ ン フ ィ ギ ュ レーシ ョ ン ロジックを 待 機 させる オプシ ョ ンの 設 定 」 セ ク シ ョ ンで 説 明 する よ う に、 ビ ッ ト ス ト リ ーム 生 成 オプシ ョ ン を 変 更する 必 要 があ り ます。• DCM の 特 定 の 機 能 に 対 し て CLKIN 入 力 の 周 波 数 が 高 すぎ る 場 合 は、 [Divide Input ClockBy 2] をオンにする と、 入 力 周 波 数 を 2 で 分 周 し、 デューテ ィ サイクルが 50% のクロックをDCM ブロッ クに 入 力 できます。 この 設 定 は、 DCM の CLKIN_DIVIDE_BY_2 属 性 を 定 義 します。• ソ ース 同 期 データ 転 送 アプ リ ケーシ ョ ンで 必 要 な 場 合 は、 [DCM Deskew Adjust] に[SOURCE_SYNCHRONOUS] を 選 択 します。 SOURCE_SYNCHRONOUS またはSYSTEM_SYNCHRONOUS 以 外 の 値 を 使 用 する 場 合 は、 事 前 にザ イ リ ン ク スにご 相 談 く だ さい。 この 設 定 は、DCM の DESKEW_ADJUST 属 性 を 定 義 し ます。 詳 細 は、 「ス キ ュー 調 整 」 を参 照 し て く だ さ い。• [OK] をクリ ックし、 [General Setup] ページに 戻 り ます。96 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


Clocking WizardRDCM <strong>FPGA</strong> DONE High DCM LOCKED CLKIN 2DESKEW_ADJUSTCLKIN_DIVIDE_BY_2STARTUP_WAITDCM [OK] <strong>UG331</strong>_c3_08_022407図 3-11 : Clocking Wizard の [Advanced] ページ[Clock Buffers] ページ図 3-12 に 示 すよ う に、 DCM の 各 ク ロ ッ ク 出 力 に 対 し て ク ロ ッ ク バッファ 出 力 を 指 定 します。 デフォルトでは、すべての 出 力 に 対 してグローバル バッファ (BUFG) が 設 定 されます。 デバイ スの 上辺 および 下 辺 には、 グ ローバル バッファは 4 つしかなく、 2 つの DCM で 共 有 されています。XC3S50 では、 上 辺 および 下 辺 に DCM が 1 つずつあ り 、 同 じ 辺 の 4 つのグ ローバル バッファすべてに 接 続 でき ます。• DCM の 各 ク ロ ッ ク 出 力 の ク ロ ッ ク バッファ タ イ プを 指 定 する には、 [Clock Buffer Settings]で [Customize buffers] をオンにします。• DCM の 各 ク ロ ッ ク 出 力 に 対 し、 [View/Edit Buffer] 列 のボタ ンを ク リ ッ ク し、 [View/EditBuffer] ページで 使 用 するバ ッ フ ァ の タ イ プを 選 択 し ます。 表 3-21 に、 使 用 可 能 なバ ッ フ ァ のタイプを 示 します。• [Enabled Buffer] をオンにする 場 合 は、バッファ イネーブル 入 力 (CE) の 信 号 名 を 指 定 する か、自 動 生 成 さ れる 名 前 を 使 用 し ます。• [Clock Mux] をオンにする 場 合 は、 セレ ク ト 入 力 (S) の 信 号 名 を 指 定 する か、 自 動 生 成 さ れる名 前 を 使 用 し ます。• 設 定 が 完 了 し た ら、 [Next] または [Finish] をクリ ックします。 [Next] は、 [General Setup] ページで CLKFX または CLKFX180 出 力 を 選 択 し てい る 場 合 にのみ 表 示 さ れます。 これらの 出 力を 選 択 していない 場 合 は、 [Finish] をク リ ックすると HDL 出 力 が 生 成 さ れます ( 「HDL 出 力の 生 成 」 を 参 照 )。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 97<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 3 章 : デジタル クロック マネージャ (DCM) の 使 用DCM(BUFGDCM <strong>FPGA</strong><strong>FPGA</strong> [Next] <strong>UG331</strong>_c3_09_120206図 3-12 : Clocking Wizard の [Clock Buffers] ページで DCM の 各 ク ロ ッ ク 出 力 に 対 しバ ッ フ ァ タイプを 指 定98 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


Clocking WizardR表 3-21 : 使 用 可 能 な ク ロ ッ ク バッファのタイプクロック バッファのタイプ図説 明Global Buffer DCM と 同 じ 辺 にある 4 つのグロ ーバル バッ フ ァ (BUFG) のいずれかに 接 続 し ま す。BUFGI0OEnabled BufferBUFGCEI0CEOイネーブル クロック バッファ (BUFGCE) としてコンフィギュレーションされたグローバル バッファに 接 続 します。 CE 入 力 が High の 場 合 、 バ ッ フ ァ が イ ネーブルになり、 Low の 場 合 は 出 力 が 0 にな り ます。CEO0 01 I0Clock MuxBUFGMUXI0OI1Sイネーブル マルチプレ クサ (BUFGMUX) としてコンフィギュレーションされたグローバル バッファに 接 続 します。 S 入 力 に よ り ク ロ ッ ク ソースが 選 択 さ れます。SO0 I01 I1LowskewlineI0ロー スキューのプログラマブル インターコネク トに 接 続 します。Local RoutingI0ローカル インターコネク トに 接 続 します。スキューはク リティカルではありません。[Clock Frequency Synthesizer] ページ図 3-13 に 示 す [Clock Frequency Synthesizer] ページは、[General Setup] ページで CLKFX またはCLKFX180 出 力 を 選 択 し てい る 場 合 にのみ 表 示 さ れます。このダイアログ ボ ッ ク ス では、 出 力 周 波 数 を 指 定 する か、 逓 倍 値 (M) と 分 周 値 (D) を 指 定 し ます。周 波 数 範 囲 (CLKIN が 周 期 (ns) で 指 定 さ れてい る 場 合 は 遅 延 範 囲 ) が [Valid Ranges for SpeedGrade] の 下 に 表 示 されます。 DFS_FREQUENCY_MODE 属 性 の 値 に 応 じ た 範 囲 が 表 示 されますが、 これは <strong>Spartan</strong>-3 <strong>FPGA</strong> にのみ 適 用 さ れます。 DLL の ク ロ ッ ク 出 力 を 使 用 し てい る 場 合 は、 範囲 が 狭 く な り ます。• [Use output frequency] をオンに し、 必 要 な 周 波 数 を MHz または ns でで き る だけ 正 確 に 入 力します。 [Calculate] をクリ ックすると、CLKFX_MULTIPLY および CLKFX_DIVIDE 属 性 の値 が 計 算 さ れます。 可 能 な 逓 倍 値 と 分 周 値 の 組 み 合 わせが 見 つか ら ない 場 合 は、 別 の 出 力 周 波数 値 を 入 力 する よ う エ ラー メッセージが 表 示 されます。 逓 倍 値 と 分 周 値 の 組 み 合 わせが 見 つかった 場 合 は、その 値 がジッ タ 値 ( 「クロッ ク ジッタ ( 位 相 ノ イ ズ)」 を 参 照 ) と 共 に [GeneratedOutput] に 表 示 されます。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 99<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 3 章 : デジタル クロック マネージャ (DCM) の 使 用• [Use Multiply (M) and Divide (D) values] を ク リ ッ ク し て、 値 を 入 力 し ます。 [Calculate] をクリックすると、[Generated Output] に 算 出 さ れた 出 力 周 波 数 と ジ ッ タ 値 が 表 示 さ れます。• [Next] をクリ ックして、 HDL 出 力 を 生 成 し ます ( 「HDL 出 力 の 生 成 」 を 参 照 )。DFS_FREQUENCY_MODEMHz ns [Calculate] Clocking Wizard (M) (D) (M)(D)[Calculate]<strong>Spartan</strong>-3 <strong>FPGA</strong> CLKFX_MULTIPLYCLKFX_DIVIDE[Calculate] CLKFX_MULTIPLYCLKFX_DIVIDEDCM [Next] <strong>UG331</strong>_c3_10_022607図 3-13 : DSF の 逓 倍 値 と 分 周 値 を 指 定 し、 ジ ッ タ を 算 出100 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


VHDL および Verilog のでインスタ ンシエーシ ョ ンRHDL 出 力 の 生 成図 3-14 に 示 す [Summary] ページで 設 定 を 確 認 し た ら、 [Finish] をクリ ックします。 VHDL またはVerilog の HDL 出 力 フ ァ イル と 、 ユーザー 制 約 フ ァ イル (UCF) が 生 成 されます。[Finish] <strong>UG331</strong>_c3_11_120206図 3-14 : 設 定 を 確 認 し て [Finish] をクリックVHDL および Verilog のでインスタ ンシエーシ ョ ンClocking Wizard を 使 用 する と、 DCM の VHDL または Verilog 記 述 を 簡 単 に 生 成 で き ますが、VHDL および Verilog ソースの 例 も 提 供 さ れています。Project Navigator の 言 語 テン プ レー トISE Project Navigator には、DCM の 言 語 テンプレー ト が 含 まれています。 DCM のテンプレート を開 くには、 Project Navigator で [Edit] → [Language Templates] をクリ ックします。 図 3-15 に 示 すテンプレート のツ リーで、 [Verilog] または [VHDL] を 展 開 し、 [Device Primitive Instantiation] →[<strong>FPGA</strong>] → [Clock Components] → [Digital Clock Manager (DCM)] を 展 開 して、 使 用 する DCMソース ファイルを 選 択 します。 選 択 し た ソ ース フ ァ イルが 右 側 の ウ ィ ン ド ウに 表 示 さ れます。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 101<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 3 章 : デジタル クロック マネージャ (DCM) の 使 用 DCM<strong>UG331</strong>_c3_12_120206図 3-15 : Project Navigator 言 語 テン プ レー ト に 含 まれる DCM のコード 例こ のフ ァ イ ルの コー ド を 参 照 する か、 新 規 ソ ース ファイルにコピーします。クロック スキューの 除 去DCM の 基 本 的 な 機 能 の 1 つは、 ク ロ ッ ク ス キ ューを 除 去 する こ と です。 クロック スキューを 除 去するこ とは、 50MHz 以 上 で 動 作 する 高 パフ ォーマン ス デザイ ンで 特 に 重 要 です。 クロック スキ ューの 除 去 に 関 連 する 概 念 は、 DCM のその 他 の 機 能 にも 適 用 されます。クロック スキューとはクロック ス キ ューは、 すべての 同 期 シ ス テムに 存 在 し ます。 クロック ソースのクロッ ク エッジは、1 つのデバイ ス 内 であって も、 別 のデバイ スへの ク ロ ッ ク 入 力 であって も、 シス テムの 異 なる 位 置で 異 な る 時 間 に 到 着 し ます。 こ の 到 着 時 間 の 差 を 「 ク ロ ッ ク ス キ ュー」 と 呼 びます。図 3-16 に、 サンプル システムのクロック スキューを 示 します。 クロック ソースは、<strong>FPGA</strong> への クロ ッ ク 入 力 を 駆 動 し ます。 <strong>FPGA</strong> の 入 力 ピンから 供 給 された ク ロ ッ クは、 内 部 ロー スキュー グローバル クロック ネッ ト ワークを 使 用 して <strong>FPGA</strong> 内 に 分 配 さ れ、 <strong>FPGA</strong> 内 のフリ ップフロップに 到 着します。 クロック パスに 含 まれるエレメントにより、フリ ップフロップへのクロック エッジの 到 着が 遅 れます。 そのため、 フ リ ップフロ ップ (B) でのクロック 入 力 は、 元 のクロック ソース (A) に 比べて 遅 れています。 この 例 のこのパスのクロック スキューを Δb とします。102 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


クロック スキューの 除 去R<strong>FPGA</strong>ABCABCX462_16_123105図 3-16 : クロック スキューはすべての 同 期 システムに 存 在 する同 様 に、 ク ロ ッ ク ソースは <strong>FPGA</strong> 内 で 再 びバッ フ ァ を 介 し、 ボード 上 の 別 のデバイ ス を 駆 動 し ます。 この 場 合 も、クロック ソースは 入 力 ピンを 介 して <strong>FPGA</strong> に 入 力 され、グ ローバル クロック ネット ワーク を 介 し て 分 配 さ れ、<strong>FPGA</strong> の 出 力 ピ ン を 通 過 し た 後 、 プ リ ン ト 基 盤 (PCB) 上 の ト レース を介 して 別 のデバイスに 接 続 されます。 このクロック パスの 合 計 遅 延 は B への 遅 延 よ り 大 き く なるので、 ク ロ ッ ク スキュー Δc も 大 き くなり ます。クロック スキューの 影 響クロック スキューは、セッ トアップ タ イ ム を 増 加 さ せ、 clock-to-output 遅 延 を 大 き く する ので、 クロック サイクル タイムが 大 き くなり、 デザインの 全 体 的 なパフォーマンスを 低 下 させる 原 因 となります。 また、 一 部 のデバイスではホールド タイムが 長 くなったり、 動 作 が 不 安 定 になった り することもあります。クロック スキューを 除 去 するにはDCM を 使 用 する と 、 ク ロ ッ ク スキューを 除 去 できます。 図 3-16 のデザイ ン 例 を <strong>Spartan</strong>-3 ジェネレーシ ョ ン <strong>FPGA</strong> を 使 用 してインプ リ メ ン ト した 例 を 図 3-17 に 示 し ます。 この 例 では、 2 つのDCM を 使 用 してク ロ ッ ク スキューを 除 去 しています。 1 つの DCM は <strong>FPGA</strong> 内 の 同 期 エレ メ ン トのスキューを 除 去 し、 も う 1 つの DCM は、 ボード 上 の 別 のデバイ スにク ロ ッ ク を 供 給 する 際 のスキ ューを 除 去 し ています。 これによ り、 A、 B、 C 点 での ク ロ ッ ク エッジが 揃 えられます。クロック スキューを 除 去 する 方 法 を 次 に 示 します。 クロック スキューは、 クロック パスの 遅 延 によって 発 生 します。 図 3-17 では、 B 点 でのク ロ ッ クには Δb のスキューがあ り、 C 点 でのク ロ ッ クには Δc のスキューがあり ます。 こ こで、 B 点 に Δb だけ 早 めたク ロ ッ ク、 C 点 に Δc だけ 早 めたクロ ッ ク を 供 給 する と、 ク ロ ッ ク が 各 点 に 到 着 する 際 に ク ロ ッ ク エッジが 揃 います。 このよ うにクロック エッジを 揃 えることによ り、 セッ トアップ タイムおよび clock-to-output 遅 延 が 短 縮 さ れ、シ ス テム 全 体 のパフ ォーマン スが 向 上 し ます。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 103<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 3 章 : デジタル クロック マネージャ (DCM) の 使 用<strong>Spartan</strong>-3 <strong>FPGA</strong>BADCMDCMCABCABC<strong>UG331</strong>_c3_22_120306図 3-17 : <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> デザイ ンにおける ク ロ ッ ク スキューの 除 去DCM でのクロ ッ ク スキュー 除 去 の 仕 組 み<strong>Spartan</strong>-3 ジェネレーショ ン <strong>FPGA</strong> には、 高 度 なデジタル ロ ジ ッ ク が 組 み 込 まれていますが、 将 来の ク ロ ッ ク の 動 作 を 予 測 する こ と はで き ません。 そのため DCM では、 ク ロ ッ ク の 過 去 の 動 作 に 基づいて 将 来 の 動 作 を 調 整 する 方 法 を 採 用 し ています。 ほとんどのシステムへの 入 力 クロックは、 周波 数 が 単 調 で 変 化 し ないので、 入 力 ク ロ ッ ク の 周 期 T はほぼ 一 定 しています。クロック ス キ ューを 相 殺 する 負 の 遅 延 を 挿 入 する こ と は 不 可 能 なので、 DCM では 出 力 ク ロ ッ ク を遅 らせる こ と に よ り 、 負 の 遅 延 を 挿 入 し たの と 同 じ 効 果 を 達 成 し ています。 クロック サイクルは 反復 されており、 周 期 T は 一 定 し ています。 図 3-18 に 示 すよ う に、 B 点 でのク ロ ッ クは Δb だけ 早 めた よ う に 見 え ますが、 実 際 は (T - Δb) だけ 遅 延 し た も のです。 同 様 に、C 点 での ク ロ ッ クは (T - Δc)だけ 遅 延 し た も のです。104 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


クロック スキューの 除 去RClock Period (T)ABDelay=T-ΔbΔbCDelay=T-ΔcΔcx462_18_123105図 3-18 : 一 定 周 波 数 のク ロ ッ ク を 遅 延 する こ と によ り 、 ク ロ ッ ク を 早 めるのと 同 じ 効 果 を 達 成クロック 周 期 T は、 入 力 ク ロ ッ ク 信 号 の 周 波 数 か ら 簡 単 にわか り ますが、 クロック ス キ ュー 遅 延 Δbと Δc を 調 べる 必 要 があ り ます。 こ れら の 遅 延 値 は、 複 数 のシ ス テムおよび 異 な る 条 件 での 動 作 を 調べる こ とによ り 決 定 できますが、 これは 現 実 的 ではあり ません。 また、 Δb および Δc の 値 はデバイスに よ っ て 異 な り 、 同 じデバイ スであ っ て も 温 度 や 電 圧 に よ っ て 異 な り ます。<strong>Spartan</strong>-3 の DCM では、 Δb および Δc の 遅 延 値 を 事 前 に 決 定 する のではな く 、 図 3-17 に 示 すよ うに、 フ ィ ード バッ ク ループを 使 用 し て 遅 延 を 常 時 監 視 し ています。 この 例 では、 2 つの DCM が 使用 されており、それぞれ 自 身 のクロッ ク フィードバック ループを 使 用 し て、1 つの DCM は 内 部 信号 のク ロ ッ ク スキューを 調 整 し、 も う 1 つの DCM は 外 部 デバ イ スへのス キ ューを 調 整 し ています。 DLL は、 温 度 や 電 圧 に よ る 変 動 に も 対 応 し ます。ターゲッ トにロック正 し い 遅 延 を 計 測 し、 挿 入 する ため、 DCM では 数 千 サイ クルまでのク ロ ッ クがサンプ リ ング されます。 DCM によ り 正 しい 遅 延 が 挿 入 されると、 LOCKED 信 号 がアサー ト さ れます。LOCKED 信 号 が High になるまで、 DCM の ク ロ ッ ク 出 力 を 使 用 し ないで く だ さ い。 LOCKED 信号 が High になる 前 の DCM の 出 力 ク ロ ッ ク には、 グ リ ッ チ、 スパ イ ク な どの 不 正 な 波 形 が 含 まれてい る 可 能 性 があ る ので、 無 効 です。アプ リ ケーシ ョ ンでは、 LOCKED 信 号 は 出 力 ク ロ ッ ク が 有 効 になった こ と を 示 し ます。安 定 し た 単 調 な ク ロ ッ ク 入 力DCM を 正 し く 動 作 させる ためには、 安 定 し た 単 調 な ク ロ ッ ク 入 力 が 必 要 です。 安 定 し た 単 調 な クロックを 供 給 することにより、DCM で 将 来 の ク ロ ッ ク 周 期 が 正 し く 予 測 さ れ、 出 力 ク ロ ッ ク の タイ ミ ン グが 適 切 に 調 整 さ れます。 DCM がロック 状 態 になると、 <strong>FPGA</strong> データ シー ト で 指 定 さ れてい る 値 までの ク ロ ッ ク 周 期 の 変 動 は 許 容 さ れます。 詳 細 は、 「DCM の ク ロ ッ ク 要 件 」 を 参 照 して ください。入 力 ク ロ ッ ク が 指 定 範 囲 を 超 えて 変 動 する と 、 DCM のロッ ク 状 態 は 解 除 され、 LOCKED 出 力 がLow にな り ます。 DCM の ロ ッ ク 状 態 が 解 除 さ れた 場 合 、 再 びロ ッ ク 状 態 を 達 成 する には、DCM をリセットする 必 要 があります。 入 力 ク ロ ッ ク の 変 動 が 指 定 の 範 囲 内 であ る 場 合 、 LOCKED 出 力 がHigh であれば 出 力 ク ロ ッ クは 有 効 であ る と 考 え られますが、 ク ロ ッ ク の 変 動 が 指 定 範 囲 内 を 超 えて CLKDV または DLKFX 出 力 が 無 効 になって も LOCKED 出 力 が High のま まであ る 可 能 性 も あり ます。 こ の よ う な 問 題 を 回 避 する には、 安 定 し た 単 調 な ク ロ ッ ク 入 力 の 供 給 が 必 要 です。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 105<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 3 章 : デジタル クロック マネージャ (DCM) の 使 用表 3-22 : CLKIN 入 力 のソースDCM の CLKIN 入 力 への 入 力 パスには、 デバイ スの 同 じ 辺 にあ る グ ローバル バッファ 入 力(IBUFG) の 1 つを 使 用 する こ と をお 勧 め し ます。 IBUFG パス を 使 用 する と 、 パ ッ ド か ら グ ローバル バッファを 介 した DCM への 遅 延 は、 ス キ ュー 調 整 さ れた 出 力 か ら は 除 去 さ れます。 表 3-22 に示 すよ う に、 ほかのパス を 使 用 する こ と も 可 能 です。 CLKIN 入 力 は、 汎 用 イ ン ターコ ネ ク ト を 介 した 汎 用 入 力 ピ ン (IBUF プリ ミティブ)、グローバル バッファ 入 力 (IBUFG)、またはグローバル バッファ マルチプレ クサ (BUFGMUX、 BUFGCE) か ら の 信 号 で 駆 動 で き ます。 また、LVDS クロック入 力 も ク ロ ッ ク 信 号 と し て 使 用 で き ます。 ス キ ュー 調 整 ロ ジ ッ ク は、LVCMOS や LVTTL などのシングルエンド ク ロ ッ ク 入 力 用 に 特 性 化 さ れています。 差 動 信 号 を 使 用 する と 、 I/O タイミングにより 、 多 少 の 位 相 エ ラ ーが 発 生 する 可 能 性 があ り ます。 特 定 の I/O タイミングの 差 については、 対 応する <strong>FPGA</strong> のデータ シー ト を 参 照 し て く だ さ い。CLKIN ソースグローバル バ ッ フ ァ 入 力 を介 した 信 号IBUFGI O説 明グローバル クロック 入 力 IBUFG は、 DCM への 外 部 ク ロ ッ ク と し て 推 奨 される ソースです。 パッ ドからグローバル バッファを 介 した CLKIN 入 力 への 遅 延 は 特 性 化 さ れてお り 、ス キ ュー 調 整 さ れた 出 力 か ら は 除 去 さ れます。グローバル クロック バッファIICEBUFGBUFGCEOOBUFGMUXI0I1OBUFG、BUFGCE、または BUFGMUX プリ ミティブを 使 用 したグローバル クロック バッファは、 DCM への 内 部 ク ロ ッ ク と し て 推 奨 さ れる ソ ースです。 グローバル バッファを 介し た 遅 延 は 特 性 化 さ れてお り 、 ス キ ュー 調 整 さ れた 出 力 か ら は 除 去 さ れます。BUFGCE または BUFGMUX を 使 用 する 場 合 、 デザ イ ンに よ っ ては、 入 力 ク ロ ッ ク の 周波 数 が 変 化 し た り 停 止 し た り する 可 能 性 があ り ます。 BUFGCE をイネーブルにした 後 や、BUFGMUX の 入 力 を 変 更 し た 場 合 は、 DCM をリセットしてください。 153 ページの「CLKIN の 一 時 停 止 」 も 参 照 してください。S汎 用 I/O を 介 した 信 号IBUFI Oユーザー I/O ピン IBUF も、 外 部 ク ロ ッ ク の ソ ース と し て 使 用 で き ます。 パッ ドから DCMへの 遅 延 は、 入 力 パス が 多 数 あ る ため 特 定 で き ないので、 調 整 さ れません。内 部 ロ ジ ッ ク か ら の 信 号InternalLogic<strong>FPGA</strong> 内 のロジックからの 信 号 もクロック ソースと して 使 用 できます。 ロジックからDCM への 遅 延 は 特 定 でき ないので、 DCM で 調 整 されません。信 頼 できるソースからのフ ィードバッ クDCM では、 適 切 な 遅 延 にロックするため、 入 力 クロックとフィードバック クロックの 両 方 を 監 視し、 ク ロ ッ ク 分 配 遅 延 分 の タ ッ プを 挿 入 し ます。 クロック フィードバック パスの 合 計 遅 延 に 制 限 はありません。 必 要 に 応 じ て、 DLL で 出 力 ク ロ ッ ク を 複 数 ク ロ ッ ク 周 期 分 遅 延 させる こ と がで き ます。 DCM では、 内 部 遅 延 ま たは 外 部 遅 延 のど ち ら で も 調 整 で き ますが、 ク ロ ッ ク フィードバックを 適 切 なフ ィードバッ ク ポ イ ン ト に 接 続 する 必 要 があ り ます。106 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


クロック スキューの 除 去R内 部 ク ロ ッ クからのスキューの 除 去<strong>FPGA</strong> 内 のス キ ューを 除 去 する には、 図 3-19 に 示 すよ う に、 フ ィ ー ドバ ッ ク クロックを <strong>FPGA</strong> 内の 同 期 エレ メ ン ト に 使 用 されるの と 同 じ ク ロ ッ ク にする 必 要 があ り ます。 フィードバック クロックには、 通 常 DCM からの CLK0 出 力 ( 位 相 シフ ト な し) が 使 用 されます。 こ の DCM は、 デバイ スの 同 じ 辺 にあ る グ ローバル クロック バッファ (BUFG) またはグローバル クロック マルチプレ クサ(BUFGMUX または BUFGCE) に 接 続 されています。 グローバル クロック マルチプレ クサBUFGMUX または BUFGCE を 使 用 する 場 合 は、 ク ロ ッ ク を 切 り 替 えた と きまたはイネーブルにしたときに DCM を リセットする 必 要 があります。 フィードバック クロックとしては、CLK0 出 力の 代 わ り に CLK2X 出 力 ( 位 相 シフ ト な し、 周 波 数 2 逓 倍 ) も 使 用 できます。IBUFGIO()CLKINCLK0( CLK2X)DCM DCM_SPCLKFB LOCKED( BUFGMUXBUFGCE)BUFGI O<strong>FPGA</strong>(“Clock Good”()<strong>UG331</strong>_c3_23_022407図 3-19 : 内 部 ク ロ ッ ク 信 号 上 のスキューの 除 去外 部 ク ロ ッ クのスキューの 除 去外 部 ク ロ ッ ク の DCM フ ィ ー ド バ ッ ク を 構 築 する のは、 も う 少 し 複 雑 です。 クロック フィードバックは、 図 3-20 に 示 すよ う に、 プ リ ン ト 基 盤 ト レース または 外 部 ク ロ ッ ク バッファを 介 した 後 の、信 号 が 外 部 ク ロ ッ ク 入 力 に 供 給 さ れる ポ イ ン ト の も のを 使 用 する のが 理 想 的 です。<strong>FPGA</strong>IB UFGIIB UFGIOOCLKINCLK0( CLK2X)DCM DCM_SPCLKFB LOCKEDOBUFIOBUFIOOCLKENABLESRL16D QWCLKA[3:0]INIT=000FRESET()<strong>UG331</strong>_c3_24_120306図 3-20 : 外 部 ク ロ ッ ク 信 号 上 のスキューの 除 去LOCKED 信 号 は、 DCM が ロ ッ ク 状 態 にな り 、 ク ロ ッ ク 信 号 が 有 効 になった こ と を 示 すので、 外 部デバイ スのイ ネーブル と し て 使 用 でき ます (アクティブ Low チップ イネーブルの 場 合 は 反 転 した信 号 を 接 続 )。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 107<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 3 章 : デジタル クロック マネージャ (DCM) の 使 用コンフィギュレーション 後 の DCM のリセッ ト外 部 フ ィ ー ド バ ッ ク を 使 用 する 場 合 は、コ ン フ ィ ギ ュ レーシ ョ ン 直 後 に DCM にリセット パルス を適 用 し、 常 に ロ ッ ク が 達 成 さ れる よ う にする 必 要 があ り ます。 図 3-20 に 示 すよ う に、 0x000F に 初期 化 し た SRL16 プ リ ミティブを 使 用 する と、 必 要 な リ セ ッ ト パルス を 供 給 でき ます。 詳 細 は、「RST 入 力 の 動 作 」 を 参 照 して く ださい。リ セ ッ ト が 必 要 な 理 由この 追 加 のリセッ ト パルスが 必 要 な 理 由 を 説 明 し ます。 最 適 な ロ ッ ク プロセスが 行 われるよ うにするため、 外 部 フ ィードバッ クを 使 用 する DCM には、 ロ ッ ク プロセスを 開 始 する 際 に 安 定 したCLKIN と CLK0 または CLK2X 信 号 が 必 要 です。 コンフィギュレーション 中 は、<strong>FPGA</strong> の I/O バッファはアクティブではないので、 外 部 フィードバック CLKFB はあ り ません。コンフィギュレーション 後 、 デバイスがスタートアップ シーケ ン ス を 開 始 する と 、 DCM は 信 号 を取 り 込 み 始 め ますが、 この 時 点 では <strong>FPGA</strong> のグローバル トライステート 信 号 (GTS) はアサー ト されており、 出 力 ピンは ト ラ イ ステー ト (ハイ イ ン ピーダン ス、 未 接 続 ) 状 態 なので、 CLKFB 信 号 のロジック ステートは 不 明 です。GTS がデ ィ アサー ト されて CLKFB に 信 号 が 現 れる と 、 DCM で こ の 信 号 が 取 り 込 まれますが、 リセッ ト パルス を 適 用 し ない 場 合 、 DCM が 最 適 なポイン ト でロ ッ ク されず、 ジッ タおよびク ロ ッ クサ イ ク ルのレ イ テンシが 増 加 する 可 能 性 があ り ます。リ セ ッ ト を 適 用 し ない 場 合 、 プ リ ン ト 基 盤 上 のシグナル インテグリティの 問 題 により、CLKFB 信号 が ト ラ イ ステー ト 状 態 の と きにほかの 信 号 と ク ロ スカ ッ プ リ ングする と い う 問 題 が 発 生 する 可 能性 もあ り ます。 DCM はこのクロスカップリングされた 信 号 を CLKFB と 認 識 し、 ロッ クを 達 成 しようとします。 こ の 場 合 、GTS 信 号 がデ ィ アサー ト さ れ、 正 し い CLKFB 信 号 が 供 給 された と きに、DCM が 正 し く ロ ッ ク されません。108 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


クロック スキューの 除 去R遅 延 ロ ッ ク ループ (DLL) とはク ロ ッ ク 遅 延 を 削 除 する 回 路 には、 次 の 2 種 類 があ り ます。• 遅 延 ロ ッ ク ループ (DLL)• 位 相 ロ ッ ク ループ (PLL)DLL と PLL には、 ク ロ ッ ク 分 配 遅 延 を 削 除 する 機 能 に 加 え、 周 波 数 合 成 、 ク ロ ッ ク 調 整 、 位 相 シ フ ト な どの 機 能 があ り ます。遅 延 ロ ッ ク ループ (DLL)DLL は、 図 3-21 に 示 すよ う に、 基 本 的 に タ ッ プ 遅 延 ラ イ ン と 制 御 ロ ジ ッ ク で 構 成 さ れます。 遅 延 ラ イ ンは、 入 力 ク ロ ッ クCLKIN を 遅 延 させたク ロ ッ クを 生 成 し ます。 ク ロ ッ ク 分 配 ネ ッ ト ワーク では、 こ の ク ロ ッ ク が 内 部 レ ジス タすべて と ク ロ ック フィードバック CLKFB ピンに 配 線 されます。 制 御 ロジックは、 入 力 クロックとフィードバック クロックをサンプリングして、 遅 延 ラインを 調 整 します。 遅 延 ラ イ ンは、 電 圧 制 御 の 遅 延 を 使 用 する か、 ま たは 複 数 の 遅 延 エ レ メ ン ト を 直 列 に 接 続 して 構 築 されています。 最 適 で 安 定 し たパフ ォーマン ス を 達 成 する ため、<strong>Spartan</strong>-3 の DLL ではデジ タル 遅 延 ラ イ ンが 使 用 さ れています。CLKINCLKOUTCLKFBx462_21_061903図 3-21 : 遅 延 ロ ッ ク ループ (DLL) のブロ ッ ク 図DLL は、 入 力 クロックとフィードバック クロックの 立 ち 上 がりエッジが 揃 うまで 2 つの ク ロ ッ クの 間 に 遅 延 を 挿 入 し て 位 相をほぼ 1 周 期 分 ずらすこ と に よ り 、 2 つの ク ロ ッ ク を 同 相 にし ます。 フィードバック クロックの 位 相 は 360°ずれてい る ので、 2 つの ク ロ ッ クは 位 相 が 揃 っている よ う に 見 えます。入 力 クロックのエッジがフィードバック ク ロ ッ ク のエ ッ ジ と 一 致 する と 、 DLL はロッ ク 状 態 になり、 2 つの ク ロ ッ クに 認 識できる 差 はあり ません。 このよ うに、 DLL の 出 力 ク ロ ッ ク で ク ロ ッ ク 分 配 ネ ッ ト ワー ク の 遅 延 を 調 整 し、 ソース クロックとその ロー ド 間 の 実 質 的 な 遅 延 をな く し ます。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 109<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 3 章 : デジタル クロック マネージャ (DCM) の 使 用位 相 ロ ッ ク ループ (PLL)PLL は、 DLL と 同 様 の 機 能 を 持 ち ますが、 異 な る 構 造 を 使 用 し ています。 PLL と DLL の 基 本 的 な 違 いは、 図 3-22 に 示 すように、PLL では 遅 延 ラ イ ンの 代 わ り に 電 圧 で 制 御 さ れる オシ レータ を 使 用 し て、 入 力 ク ロ ッ ク CLKIN とほぼ 同 じクロック 信号 を 生 成 し ます。 制 御 ロ ジ ッ ク は、 位 相 検 出 器 と フ ィ ルタ で 構 成 さ れてお り 、 オシ レータの 周 波 数 と 位 相 を 調 整 し て ク ロ ッ ク分 配 遅 延 を 補 正 し ます。 PLL の 制 御 ロジ ッ クは、 入 力 ク ロ ッ ク と フ ィ ードバッ ク クロック CLKFB を 比 較 して、 入 力 ク ロ ックとフィードバック クロックの 立 ち 上 がりエッジが 揃 うまでオシレータのクロックを 調 整 します。 これで、 PLL がロッ ク 状態 にな り ます。CLKOUTCLKINCLKFBx462_22_061903インプリメンテーションDLL と PLL は、 アナロ グ 回 路 ま たはデジ タル 回 路 を 使 用 し て 作 成 さ れ、 それぞれの 作 成 方 法 に 利 点 があ り ます。 アナログ インプ リ メ ンテーシ ョ ンで 注 意 深 く 回 路 を 設 計 する と 、 DLL または PLL で 微 細 な タ イ ミ ング 調 整 が 可 能 であ り 、 使 用 される エリアを 小 さくできます。デジタル イ ンプ リ メ ンテーシ ョ ンは ノ イ ズ 耐 性 が 高 く 、 消 費 電 力 を 低 減 で き、 ジ ッ タ パフ ォーマン ス も 向 上 し ます。 また、クロ ッ ク を 停 止 する こ と も で き る ので、 消 費 電 力 の 制 御 が 容 易 にな り ます。 アナログ イ ンプ リ メ ンテーシ ョ ンでは 追 加 電 源 が 必要 で、 電 源 を 厳 密 に 制 御 する 必 要 があ り 、 ま た 新 し いプ ロ セス 技 術 に 移 行 する 際 に 問 題 が 発 生 する こ と があ り ます。DLL と PLL図 3-22 : 位 相 ロ ッ ク ループ (PLL) のブロ ッ ク 図アプ リ ケーシ ョ ンで PLL と DLL のど ち ら を 使 用 する かを 決 定 するには、 構 造 の 違 いを 理 解 する 必 要 があ り ます。 PLL で 使用 さ れるオシ レータは 多 少 の 不 安 定 さ があ り 、 ク ロ ッ ク 分 配 ネ ッ ト ワーク の 遅 延 を 調 整 する 際 の PLL のパフ ォーマンスに 影響 します。 DLL の 構 造 は 非 常 に 安 定 性 が 高 く 、 遅 延 およびデューテ ィ サイ クルの 調 整 において 優 れていますが、 PLL の 方 がク ロ ッ ク 周 波 数 合 成 においては 柔 軟 性 が 高 く なっています。スキュー 調 整このセクションでは、スキューを 除 去 し、 内 部 クロックまたは 外 部 クロックの 位 相 をクロック ソースに 揃 え る 方 法 を 説 明 し ます。 DCM では、DESKEW_ADJUST というアドバンス 属 性 を 使 用 して、少 量 の 遅 延 を 追 加 で き ます。 Clocking Wizard では、 DESKEW_ADJUST 属 性 は [Advanced] ページで 設 定 でき ます。この 属 性 は、SYSTEM_SYNCHRONOUS または SOURCE_SYNCHRONOUS に 設 定 する のが 一般 的 です。 ほとんどのアプリケーションでは、 SYSTEM_SYNCHRONOUS 設 定 を 使 用 し ます。 これらの 設 定 について、 次 に 説 明 し ます。110 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


クロック スキューの 除 去Rシステム 同 期 (SYSTEM_SYNCHRONOUS)シ ス テム 同 期 デザ イ ンでは、 図 3-23 に 示 すよ うに、データ パス 上 のすべてのデバイスで 同 じ ク ロ ック ソースが 使 用 さ れます。 こ れが 最 も 一 般 的 なシ ス テム コンフィギュレーションです。 SYSTEM_SYNCHRONOUS 設 定 (デフォル ト) は、 データ を 取 り 込 む 際 にホール ド タイムがゼロになるように、 少 量 の ク ロ ッ ク 遅 延 を 追 加 し ます。 ホールド タイムは、 基 本 的 にベスト ケース のデータ パスとワースト ケースのク ロ ッ ク パスのタイ ミ ング 差 です。 DCM のクロック ス キ ュー 調 整 機 能 に より、ワースト ケースのク ロ ッ ク パスは 大 幅 に 短 縮 されますが、 クロックがデータより 先 に 到 着 した場 合 、 ホール ド タイムが 発 生 します。 SYSTEM_SYNCHRONOUS に 設 定 する と 、 ク ロ ッ ク パスにスキューが 追 加 されホールド タイムはゼロになりますが、clock-to-output タ イ ムは 多 少 長 く な ります。DATA_OUTDATA_INClockSourceSYSTEM_SYNCHRONOUS 設 定 では、 フ ィ ー ド バ ッ ク パスに 内 部 遅 延 を 追 加 する こ と に よ り 遅延 を 挿 入 し ますが、 場 合 に よ っ て 遅 延 が 挿 入 さ れず、DESKEW_ADJUST 属 性 が 影 響 し ない こ と もあります。 DCM がカ ス ケー ド 接 続 さ れてい る 場 合 、 外 部 フ ィ ー ド バ ッ ク が 使 用 さ れてい る 場 合 、 クロック 入 力 から 供 給 されない 外 部 CLKIN が 使 用 されている 場 合 などがその 例 です。ソース 同 期 (SOURCE_SYNCHRONOUS)x462_23_061903図 3-23 : システム 全 体 で 1 つのク ロ ッ ク ソースを 使 用 するシステム 同 期 アプ リ ケーシ ョ ンSOURCE_SYNCHRONOUS 設 定 は、 主 に 高 速 データ 通 信 イ ン ターフ ェ イ スで 使 用 さ れます。 ソース 同 期 アプ リ ケーシ ョ ンでは、 図 3-24 に 示 すよ うに、 データ と ク ロッ クが 同 じ ソースから 供 給 されます。 送 信 デバ イ ス か ら 受 信 デバ イ スにデータ と ク ロ ッ ク の 両 方 が 送 信 さ れ、 受 信 デバイ スでデータ を 受 信 する ための ク ロ ッ ク タ イ ミ ングが 調 整 さ れます。 高 速 デュ アル データ レー ト (DDR)や LVDS 接 続 などが、 ソ ース 同 期 シ ス テムの 例 です。DATA_OUTDATA_INClockSourceDATA_CLK図 3-24 : データ ソースからデータ ク ロ ッ クが 供 給 される ソ ース 同 期 アプ リ ケーシ ョ ンSOURCE_SYNCHRONOUS 設 定 は、 入 力 ク ロ ッ ク と DCM か ら のス キ ュー 調 整 さ れた 出 力 ク ロ ック の 位 相 差 を な く し ます。 <strong>FPGA</strong> アプ リ ケーシ ョ ンでは、 固 定 位 相 シフ ト モー ド または 可 変 位 相 シフト モード を 使 用 して、 ク ロ ッ ク タ イ ミ ング を 調 整 する 必 要 があ り ます。 次 のアプ リ ケーシ ョ ンノ ー ト は、 可 変 位 相 シフ ト を 使 用 し た ソ ース 同 期 デザ イ ンについて 説 明 し ています。• アプ リ ケーシ ョ ン ノート XAPP268 : 『 動 的 位 相 調 整 』http://japan.xilinx.com/support/documentation/application_notes.htmx462_24_061903• アプ リ ケーシ ョ ン ノート XAPP622 : 『644-MHz SDR LVDS トランスミッタ/レシーバ』http://japan.xilinx.com/support/documentation/application_notes.htm<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 111<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 3 章 : デジタル クロック マネージャ (DCM) の 使 用次 のアプ リ ケーシ ョ ン ノートでは、 システム レベルのタ イ ミ ングについて 詳 細 に 説 明 し ています。このアプリケーション ノートは Virtex-II および Virtex-II Pro <strong>FPGA</strong> アーキテクチャ 用 ですが、 ほと んどの 概 念 は <strong>Spartan</strong>-3 <strong>FPGA</strong> に も 応 用 で き ます。• アプ リ ケーシ ョ ン ノート XAPP259 : 『システム インターフェイス タイミング パラ メータ』http://japan.xilinx.com/support/documentation/virtex-ii_pro_application_notes.htmタ イ ミ ングの 比 較図 3-25 に、デュ アル データ レート (DDR) アプリ ケーショ ンにおける SYSTEM_SYNCHRONOUSと SOURCE_SYNCHRONOUS 設 定 の 効 果 を 示 し ま す。 DDR アプ リ ケーシ ョ ンでは、 各 データ ラインに 2 つのデータ ビ ッ ト が 供 給 さ れ、 1 つのビ ッ ト はク ロ ッ ク 周 期 の 前 半 で、 も う 1 つのビ ッ トは ク ロ ッ ク 周 期 の 後 半 で 取 り 込 まれます。SYSTEM_SYNCHRONOUS 設 定 では、 ホール ド タイムがゼロになるように、DCM クロックに 少量 のスキ ューが 追 加 されます。SOURCE_SYNCHRONOUS 設 定 では、 DCM クロック パスにスキューは 追 加 されませんが、 クロック エッジがデータ ウィンドウの 適 切 な 位 置 になるように、<strong>FPGA</strong> アプ リ ケーシ ョ ンで 位 相 をシフ トする 必 要 があり ます。DATA_INData capture windowor data “eye”SYSTEM_SYNCHRONOUSSOURCE_SYNCHRONOUSSOURCE_SYNCHRONOUS+ Fixed or Dynamic Phase Shiftx462_25_061903図 3-25 : デュアル データ レート (DDR) アプリケーショ ンにおけるSYSTEM_SYNCHRONOUS と SOURCE_SYNCHRONOUS のタイミング 比 較デューティ サイ クル 調 整デューティ サイクル 調 整 では、デューティ サイクルが 50% 以 外 の 入 力 ク ロ ッ ク をデューテ ィ サイクルが 50% になる よ う に 調 整 し ます。 図 3-26 に、 High の 時 間 が 約 45%、 Low の 時 間 が 約 55%(45%/55% デューティ サイクル) の 入 力 ク ロ ッ ク が、 デューテ ィ サイクルがほぼ 完 全 に 50% に 調整 される 例 を 示 し ます。 こ こで 「ほぼ 完 全 に」 と 言 っているのは、データシー ト のCLKOUT_DUTY_CYCLE_DLL および CLKOUT_DUTY_CYCLE_FX 値 で 指 定 されるデューティ サイクルの 歪 みがあるためです。 DCM 自 体 では、 歪 みはほ と んど 追 加 さ れません。 ほとんどの 歪 みは、 内 部 配 線 および ク ロ ッ ク ネ ッ ト ワーク 内 の 立 ち 上 が り 時 間 と 立 ち 下 が り 時 間 の 差 によ って 発 生 し ます。 この 歪 みの 量 は、 デバイスによって 100ps ~ 400ps と 予 測 されます。112 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


デューティ サイ クル 調 整R45% 55%CLKINConditionedClock Output50% 50%<strong>UG331</strong>_c3_04_120206図 3-26 : デューティ サイクル 50% の 出 力 を 生 成 する DCM のデューテ ィ サイ クル 調 整 機 能LVDS やデュ アル データ レー ト (DDR) などの 高 速 通 信 イ ン ターフ ェ イ ス、 ク ロ ッ ク 転 送 やク ロ ック 複 製 アプリケーショ ンでは、クロックのデューティ サイクルを 50% にする 必 要 があ り ます。 「ダブル データ レート (DDR) クロックの 例 」 を 参 照 して く ださい。<strong>Spartan</strong>3E および <strong>Spartan</strong>-3A/3AN/3A DSP <strong>FPGA</strong> の 出 力 ク ロ ッ クのデューティ サイ クル 調 整<strong>Spartan</strong>-3E および <strong>Spartan</strong>-3A/3AN/3A DSP <strong>FPGA</strong> のクロック 出 力 は、 デューティ サイクルが 常に 50% に 調 整 されます。<strong>Spartan</strong>-3 <strong>FPGA</strong> 出 力 ク ロ ッ クのデューテ ィ サイ クル 調 整<strong>Spartan</strong>-3 <strong>FPGA</strong> では、 ほ と んどの 出 力 ク ロ ッ クのデューテ ィ サイクルが 50% に 調 整 されますが、表 3-23 に 示 すよ う に、 動 作 条 件 や 属 性 設 定 に よ って、 デューテ ィ サ イ ク ルを 調 整 する かど う かを指 定 で き る 出 力 も あ り ます。表 3-23 : <strong>Spartan</strong>-3 <strong>FPGA</strong> : ク ロ ッ ク 出 力 のデューテ ィ サイ クル 調 整DCMクロック 出 力CLK0CLK180CLK90CLK270デューティ サイ クル 調 整DUTY_CYCLE_CORRECTION 属 性 が TRUE の 場 合DLL_FREQUENCY_MODE 属 性LOWHIGHDUTY_CYCLE_CORRECTION 属 性 が TRUE の 場 合出 力 は 使 用 不 可CLK2XCLK2X180LOWDLL_FREQUENCY_MODE 属 性HIGH常 時出 力 は 使 用 不 可<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 113<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 3 章 : デジタル クロック マネージャ (DCM) の 使 用表 3-23 : <strong>Spartan</strong>-3 <strong>FPGA</strong> : ク ロ ッ ク 出 力 のデューテ ィ サイ クル 調 整 ( 続 き)DCMクロック 出 力CLKDVデューティ サイ クル 調 整DLL_FREQUENCY_MODE 属 性LOWHIGH常 時CLKDV_DIVIDE 属 性 が 整 数 値 の 場 合CLKFXCLKFX180常 時1/4 周 期 位 相 シ フ ト 出 力 CLK0、 CLK90、 CLK180、 および CLK270 のデューテ ィ サイクル 調 整は、 DUTY_CYCLE_CORRECTION 属 性 で 制 御 し ます。 デフォル ト では、 DUTY_CYCLE_CORRECTION 属 性 は TRUE に 設 定 されてお り 、 これらの 出 力 のデューテ ィ サイクルは 50% に調 整 さ れます。 こ の 属 性 を FALSE に 設 定 する と 、 デューテ ィ サイクルは 調 整 されず、 クロック 出力 のデューテ ィ サ イ ク ルは、 入 力 ク ロ ッ ク の も の と ほぼ 同 じ にな り ますが、 CLKIN のデューテ ィサイクルとまったく 同 じになるとは 限 り ません。位 相 シ フ トDCM では、 入 力 ク ロ ッ ク の 位 相 を シフ ト し て、 ク ロ ッ ク 周 期 のあ る 割 合 だけ 遅 延 さ せた ク ロ ッ クを 生 成 できます。DCM では、4 種 類 の 位 相 シフ ト がサポー ト さ れます。 それぞれを 個 別 に 使 用 する か、 組 み 合 わせて使 用 で き ます。 表 3-24 に、 各 ク ロ ッ ク 出 力 の 位 相 シフ ト 機 能 を 示 し ます。1. 半 周 期 位 相 シフ ト 出 力 : 0 位 相 シフ ト し た ク ロ ッ ク と 、 180 ( ク ロ ッ ク 周 期 の 1/2) 位 相 シフト し た ク ロ ッ ク を 生 成 し ます。2. 1/4 周 期 位 相 シ フ ト 出 力 : 0° (CLK0)、 90° (CLK90)、 180° (CLK180)、 および 270°(CLK270) 位 相 シ フ ト し た ク ロ ッ ク を 生 成 し ます。3. 固 定 フ ァ イ ン グ レ イ ン 位 相 シフ ト : DCM のクロック 出 力 を、クロック サイクルの 1/256 の 単位 で 位 相 シフ ト し た ク ロ ッ ク を 生 成 し ます。4. 可 変 フ ァ イ ン グ レ イ ン 位 相 シフ ト : <strong>FPGA</strong> アプ リ ケーシ ョ ン 内 の DCM のクロック 出 力 をすべて 動 的 に 位 相 シフ ト し ます。 可 変 位 相 シフ ト は、 <strong>Spartan</strong>-3 <strong>FPGA</strong> と <strong>Spartan</strong>-3E および<strong>Spartan</strong>-3A/3AN/3A DSP <strong>FPGA</strong> で 大 き く 異 な り ます。 <strong>Spartan</strong>-3 <strong>FPGA</strong> では、CLKIN のクロック サイクルの 1/256 の 単 位 で 位 相 シフ ト し ます。 この 1 単 位 のシ フ ト 量 は、 CLKIN の 入 力 周波 数 に よ って 異 な り ます。 <strong>Spartan</strong>-3E および <strong>Spartan</strong>-3A/3AN/3A DSP <strong>FPGA</strong> では、 CLKINの ク ロ ッ ク 周 波 数 と は 関 係 のない DCM_DELAY_STEP で 定 義 し たステ ッ プ サイズで 位 相 をシフ ト します。表 3-24 : ク ロ ッ ク 出 力 の 位 相 シ フ ト 機 能クロック 出 力 半 周 期 1/4 周 期 固 定 または 可 変CLK0 CLK90 CLK180 CLK270 114 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


位 相 シ フ トR表 3-24 : ク ロ ッ ク 出 力 の 位 相 シ フ ト 機 能 ( 続 き)クロック 出 力 半 周 期 1/4 周 期 固 定 または 可 変CLK2X CLK2X180 CLKDVCLKFX CLKFX180 半 周 期 位 相 シ フ ト 出 力表 3-25 : 半 周 期 位 相 シ フ ト 出 力半 周 期 位 相 シフ ト 出 力 は、 位 相 シフ ト な し の 出 力 と 、 周 期 の 1/2 (180°) 位 相 シフ ト し た 出 力 を 生成 します。 半 周 期 位 相 シフ ト 出 力 は、 表 3-25 に 示 すよ う に、 ペアになっています。位 相 シ フ ト な し出 力 ペア180° 位 相 シ フ トメモCLK0 CLK180 周 波 数 は CLKIN と 同 じです。 <strong>Spartan</strong>-3E および <strong>Spartan</strong>-3A/3AN/3A DSP<strong>FPGA</strong> では、 デューテ ィ サイクルは 常 に 50% に 調 整 されます。 <strong>Spartan</strong>-3 <strong>FPGA</strong>では、デューテ ィ サ イ ク ル 調 整 は DUTY_CYCLE_CORRECTION 属 性 で 制 御 され、 デフ ォル ト ではデューテ ィ サイクルが 50% に 調 整 されます。CLK2X CLK2X180 クロック 2 逓 倍 (CLK2X、 CLK2X180) からの 出 力 です。 周 波 数 は CLKIN 入 力の 2 倍 で、 デューテ ィ サイクルは 常 に 50% に 調 整 されます。CLKFX CLKFX180 周 波 数 合 成 (CLKFX、 CLKFX180) からの 出 力 です。 周 波 数 は、 周 波 数 合 成 属 性によって 異 なります。 デューティ サイクルは、 常 に 50% に 調 整 されます。半 周 期 位 相 シフ ト 出 力 は、 高 速 ダブル データ レー ト (DDR) デザイ ンやク ロ ッ ク 複 製 など、 デューティ サイ クルが 重 要 なアプ リ ケーシ ョ ンで 理 想 的 です。 半 周 期 位 相 シフ ト 出 力 ペアの 2 つのク ロ ック を 使 用 する と 、 図 3-27 に 示 すよ う に、ク ロ ッ ク の 半 周 期 ご と に 立 ち 上 が り エ ッ ジを 供 給 で き ます。0½T1T 0°180 °360 °CLKxCLKx180(T)x462_27_061903図 3-27 : 半 周 期 位 相 シ フ ト 出 力<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 115<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 3 章 : デジタル クロック マネージャ (DCM) の 使 用半 周 期 位 相 シ フ ト 出 力 を 使 用 し たデューテ ィ サイ クルの 歪 みの 削 減DCM のクロック 出 力 のデューティ サイクルが 50% に 調 整 さ れてい る 場 合 、180° 位 相 シフ ト し たクロックは 位 相 シフトなしのクロックを 反 転 したものに 見 えます。 低 周 波 数 のアプ リ ケーシ ョ ンでは、 基 本 的 にその と お り です。高 周 波 数 アプ リ ケーシ ョ ンでは、 各 ト ラ ンジ ス タ の 立 ち 上 が り 時 間 と 立 ち 下 が り 時 間 の 違 いに よ り 、デューティ サイクルの 歪 みが 発 生 し、 <strong>FPGA</strong> デバイ スに 影 響 し ます。 デューティ サイクルが 50%の 場 合 、 こ の 歪 みに よ り ク ロ ッ ク が High の 時 間 と Low の 時 間 に 差 が 発 生 し、 こ れはサイ ク ル 間 で一 定 し ています。ダブル データ レート (DDR) クロックの 例図 3-28 では、 DCM の 1 つのク ロ ッ ク 出 力 CLKx で、 デュ アル データ レー ト (DDR) 出 力 フ リ ップフロ ップの 2 つのク ロ ッ ク を 駆 動 し ています。 1 つの DDR クロック 入 力 には DCM のクロック出 力 をそのまま 使 用 しますが、 も う 1 つの 入 力 では DDR フリ ップフロップ 内 でクロックを 反 転 します。 DCM からの CLKx 出 力 のデューテ ィ サイクルは 50% ですが、 <strong>FPGA</strong> のクロック ネッ トワーク を 通 過 する こ と に よ り 、 多 少 の 歪 みが 発 生 し ます。 こ の 誇 張 し た 例 では、 ク ロ ッ ク が High の時 間 が 短 縮 さ れ、 Low の 時 間 が 長 く なっている ため、 C1 ク ロ ッ ク 入 力 が ク ロ ッ ク 周 期 の 半 分 に 達する 前 に ト リ ガされます。 低 周 波 数 では、 こ の 歪 みは 通 常 無 視 で き る 程 度 ですが、 高 パフ ォーマンスの DDR ベース シ ス テムでは、 半 周 期 の タ イ ミ ン グが 短 く な る ため、 厳 密 な ク ロ ッ ク 供 給 が 必 要にな り ます。ODDR2DCM DCM_SPCLKINCLKxBUFGD0D1CEC0C1QCLKx(50%)CLKx()<strong>UG331</strong>_c3_25_120306図 3-28 : デュアル データ レート (DDR) 出 力 に 1 つのク ロ ッ クの 両 エ ッ ジを 使 用 する とデューティ サイ クルの 歪 みが 発 生116 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


位 相 シ フ トR図 3-29 に、 図 3-28 を 変 更 した 回 路 を 示 します。 この 例 では、 DCM の 位 相 シフ ト な しのク ロ ッ クと 180° 位 相 シ フ ト し た ク ロ ッ ク を DDR 出 力 フ リ ッ プフ ロ ッ プに 供 給 し ています。 CLKx クロック 信 号 は、DDR フリ ップフロップの C0 入 力 を、 ク ロ ッ ク 周 期 の 開 始 点 で 正 確 に ト リ ガ し ます。 同様 に、 CLKx180 クロック 信 号 は、DDR フリ ップフロップの C1 入 力 を、 ク ロ ッ ク 周 期 の 1/2 の 点で 正 確 に ト リ ガし ます。 この 方 法 では、 グローバル バッファ とグローバル クロック ラインが 追 加で 必 要 と な り ますが、 デューテ ィ サイクルの 歪 みを 約 300ps 削 減 で き ます。ODDR2DCM DCM_SPCLKIN CLKxCLKx180BUFGBUFGD0D1CEC0C1QCLKx(50%)CLKx()CLKx180()180 °表 3-26 : デューティ サイ クルの 歪 みパラ メ ー タ<strong>UG331</strong>_c3_24_120306図 3-29 : 半 周 期 位 相 シ フ ト 出 力 を 使 用 し てデューテ ィ サイ クルの 歪 みを 削 減表 3-26 に、 DDR 出 力 フリ ップフロップと LVDS 出 力 を 使 用 し て 測 定 し たデューテ ィ サイクルの歪 みを 示 し ます。 ほかの 出 力 タ イ プでは、 非 対 称 の 立 ち 上 が り 時 間 および 立 ち 下 が り 時 間 に よ り 、歪 みが 大 き く な る 場 合 があ り ます。 こ れは、 IBIS を 使 用 してシ ミ ュレーシ ョ ンでき ます。DCM を 使 用 してダブル データ レート ODDR2 を 駆 動 する 高 速 ク ロ ッ ク を 生 成 する 場 合 、 周 期 ジ ッタ を 最 小 限 に 抑 え る ため CLKFX には BUFGMUX_X1Y1、 CLKFX180 には BUFGMUX_X2Y0を 使 用 する こ と をお 勧 め し ます。パラ メータ 説 明 予 測 値T DCD_CLK0T DCD_CLK180I/O ブロックの DDR エレメン トの 立 ち 下 がりエッジ ク ロ ッ ク を ローカル 反 転 で 供 給 した 場 合 のデューテ ィ サ イ ク ルの 歪 み。 図 3-28 を 参 照 して く ださい。I/O ブロッ クの DDR エレ メン トのクロ ッ クを DCM の CLKx180 で 供 給 し た 場 合 のデューティ サ イ ク ルの 歪 み。 図 3-29 を 参 照 して く ださい。約 400ps約 60ps<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 117<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 3 章 : デジタル クロック マネージャ (DCM) の 使 用1/4 周 期 位 相 シ フ ト 出 力1/4 周 期 位 相 シ フ ト 出 力 は、 図 3-30 および 表 3-28 に 示 すよ う に、CLKIN 入 力 をそれぞれ 1/4 周 期ずつ 位 相 シフ ト し た も のです。 1/4 周 期 位 相 シフ ト 出 力 では、 CLKFB 入 力 へのフ ィ ー ド バ ッ ク パスが 必 要 です。 CLK0 は CLKIN 入 力 の 立 ち 上 が り エ ッ ジに 位 相 が 揃 え ら れた 出 力 、 CLK90 はCLKIN 入 力 を 90° 位 相 シフ ト し た 出 力 の こ と です。 00°¼T ½ T ¾ T 1T90° 180° 270° 360°CLK0CLK90CLK180CLK270図 3-30 : CLKIN を 1/4 周 期 ずつ 位 相 シ フ ト し た 1/4 周 期 位 相 シ フ ト 出 力 (デューティ サイクル 調整 をイネーブルにした 場 合 )DLL 周 波 数 モー ド によ り 使 用 可 能 な 出 力(T)x462_30_061903使 用 可 能 な 1/4 周 期 位 相 シフ ト 出 力 は、DLL の 周 波 数 モー ド に よ って 異 な り ます。 <strong>Spartan</strong>-3 <strong>FPGA</strong>では、 周 波 数 モー ド は DLL_FREQUENCY_MODE 属 性 で 制 御 し ます。 <strong>Spartan</strong>-3E および <strong>Spartan</strong>-3A/3AN/3A DSP <strong>FPGA</strong> では、CLKIN 入 力 の 周 波 数 が 167MHz よ り 高 いか 低 いかに よ っ て 使 用 可能 な 出 力 が 異 な り ます。表 3-27 に 示 すよ う に、 低 周 波 数 モー ド (DLL_FREQUENCY_MODE =LOW) では、 すべての 1/4周 期 位 相 シフ ト 出 力 を 使 用 で き ます。 高 周 波 数 モー ド で 使 用 可 能 なのは、 CLK0 および CLK180 出力 のみです。118 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


位 相 シ フ トR表 3-27 : DLL の 周 波 数 モー ド によ り 使 用 可 能 な 1/4 周 期 位 相 シ フ ト 出 力<strong>Spartan</strong>-3出 力DLL_FREQUENCY_MODE =LOWDLL_FREQUENCY_MODE = HIGH<strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3A/3AN/3A DSPCLKIN ≤ 167 MHzCLKIN > 167 MHzCLK0 CLK90CLK180 CLK270<strong>Spartan</strong>-3 <strong>FPGA</strong> : オプシ ョ ンのデューテ ィ サイ クル 調 整<strong>Spartan</strong>-3E および <strong>Spartan</strong>-3A/3AN/3A DSP <strong>FPGA</strong> では、1/4 周 期 位 相 シフ ト 出 力 のデューテ ィ サイクルは 常 に 50% に 調 整 されます。 <strong>Spartan</strong>-3 <strong>FPGA</strong> では、 DUTY_CYCLE_CORRECTION 属 性を 使 用 して、 出 力 のデューテ ィ サイクルを 50% に 調 整 する かど う かを 制 御 し ます。 TRUE (デフォルト) の 場 合 、 4 つの 出 力 すべてのデューテ ィ サイクルが 50% に 調 整 され、 FALSE の 場 合 は、 出力 のデューテ ィ サイクルは CLKIN 入 力 と 同 じ にな る と は 限 り ません。 詳 細 は、 「デューテ ィ サイク ル 調 整 」 を 参 照 して く ださい。4 つの 位 相 、 遅 延 された 出 力 エ ッ ジ、 位 相 シ フ ト されたパルス1/4 周 期 位 相 シ フ ト 出 力 は、 表 3-28 に 示 すよ う に、 その 前 の 出 力 を 1/4 周 期 遅 延 さ せた 立 ち 上 が りエ ッ ジを 供 給 し ます。 こ れら の 出 力 を 使 用 する と 、 メ モ リ イ ン ターフ ェ イ スやペ リ フ ェ ラ ル コントロールなどのアプ リ ケーシ ョ ンで、 柔 軟 な タ イ ミ ングを 達 成 で き ます。これらの 出 力 のデューティ サイクルを 50% に 調 整 し た 場 合 、 これらの 信 号 を 別 の 別 の 角 度 から 見ることもできます。 たとえば、これらの 出 力 は、1/4 周 期 ずつ 位 相 シフ ト し た 立 ち 下 が り エ ッ ジを 供給 する と 考 え る こ と も で き ます。 表 3-28 を 参 照 して く ださい。 同 様 に、 各 出 力 は 半 周 期 の High パルスおよび Low パルス を 供 給 し ます。 たとえば、 図 3-30 に 示 す CLK90 出 力 は、 CLK0 のクロック 周 期 の 中 央 で High パルス を 供 給 し ています。表 3-28 : 1/4 周 期 位 相 シ フ ト 出 力 と その 特 性 (DUTY_CYCLE_CORRECTION=TRUE)DCMクロック 出 力位 相 シ フ ト遅 延 量( 周 期 の 割 合 )立 ち 上 が りエッジ立 ち 下 がりエッジメモCLK0 0° 0 0 ½T 入 力 ク ロ ッ ク のス キ ューを 調 整 し た、 位 相 シフ ト なしのクロック 出 力CLK90 90° ¼T ¼T ¾T 周 期 の 中 央 で 半 周 期 幅 の High パルス を 供 給CLK180 180° ½T ½T 0T CLK0 を 反 転 し た、 立 ち 上 が り エ ッ ジが 周 期 の 中 央になる ク ロ ッ ク 出 力CLK270 270° ¾T ¾T ¼T 周 期 の 中 央 で 半 周 期 幅 の Low パルス を 供 給<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 119<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 3 章 : デジタル クロック マネージャ (DCM) の 使 用ファイン グレ イ ン 位 相 シ フ トDCM では、 フ ァ イ ン グ レ イ ン 位 相 シフ ト を 使 用 し て ク ロ ッ ク スキューを 制 御 できます。 ファイング レ イ ン 位 相 シフ ト は、 DCM の 9 個 の 出 力 ク ロ ッ ク すべてに 同 時 に 適 用 さ れます。 ファイン グレイン 位 相 シフトには、DCM の DLL ファンクション ユニッ ト が 必 要 であ り、 CLKFB 入 力 に ク ロ ック フ ィ ー ド バ ッ ク を 供 給 する 必 要 があ り ます。 <strong>Spartan</strong>-3 <strong>FPGA</strong> では、 この 位 相 シフ ト 機 能 はDLL_FREQUENCY_MODE = LOW の 場 合 にのみサポー ト されます。注 意 このユーザー ガイドでは、ザイ リンクス ISE 8.1.03i (ISE 8.1i サービ ス パッ ク 3) 以 降 を 使 用 し てデザイ ンを コ ンパイルし た 場 合 の 位 相 シフ ト について 説 明 し ます。 <strong>Spartan</strong>-3E および <strong>Spartan</strong>-3A/3AN<strong>FPGA</strong> デザイ ンには、 ISE 8.1.03i 以 降 を 使 用 する 必 要 があ り ます。ファイン グ レ イ ン 位 相 シフ ト では、 物 理 的 には CLKIN と CLKFB 入 力 の 立 ち 上 が り エ ッ ジの 位 相関 係 が 調 整 さ れますが、 すべての ク ロ ッ ク 出 力 が CLKIN 入 力 に 対 し て 位 相 シフ ト さ れます。デフォル ト ではフ ァ イン グレイン 位 相 シフ トはディスエーブル (CLKOUT_PHASE_SHIFT =NONE) になっており、 ク ロ ッ ク 出 力 は CLKIN 入 力 ク ロ ッ ク と 位 相 が 揃 え られます。 こ の 場 合 、 入力 クロッ ク CLKIN と、 適 切 なフィードバック ポイン トで 計 測 されたフィードバック クロックの 間にスキューはあり ません ( 「 信 頼 で き る ソースか ら のフ ィ ー ド バ ッ ク 」 を 参 照 )。 ファイン グレイン位 相 シフ ト が イ ネーブルの 場 合 、 図 3-32 に 示 すよ う に、 出 力 ク ロ ッ クのエ ッ ジが CLKIN 入 力 よ り早 ま る か 遅 れる よ う に 位 相 シフ ト さ れます。ファイン グ レ イ ン 位 相 シフ ト には、 次 に 示 すよ う に 2 つのモード があ り 、 ど ち ら も 高 速 データ 通 信アプ リ ケーシ ョ ンで 使 用 されます。 詳 細 は、 「ソース 同 期 (SOURCE_SYNCHRONOUS)」 を 参 照 してください。1. 固 定 フ ァ イ ン グ レ イ ン 位 相 シ フ ト モード : 設 計 時 に 位 相 シフ ト 値 を 設 定 し ます。 位 相 シフ ト 値は <strong>FPGA</strong> のコ ン フ ィ ギ ュ レーシ ョ ン 中 に 設 定 さ れ、アプ リ ケーシ ョ ンで 動 作 中 に 変 更 する こ とはでき ません。 固 定 位 相 シフ ト 機 能 は、 <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> すべてで 同 一 です。2. 可 変 フ ァ イ ン グ レ イ ン 位 相 シフ ト モード : 初 期 位 相 シフ ト 値 は、 固 定 位 相 シフ ト モード と 同様 に <strong>FPGA</strong> のコンフィギュレーシ ョ ン 中 に 設 定 されますが、 DCM の LOCKED 出 力 が Highになった 後 、 アプ リ ケーシ ョ ンで 位 相 シフ ト 値 を 変 更 で き ます。注 意 可 変 位 相 シ フ ト は、 <strong>Spartan</strong>-3 <strong>FPGA</strong> と、 <strong>Spartan</strong>-3E および <strong>Spartan</strong>-3A/3AN/3A DSP <strong>FPGA</strong> で 大きく 異 なります。 詳 細 は、 123 ページの 「<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> 間 での 可 変 位 相 シフ ト の 違い」 を 参 照 して く ださい。固 定 フ ァ イ ン グレイン 位 相 シフ ト固 定 フ ァ イ ン グレイン 位 相 シフ ト モー ド では、 固 定 位 相 シフ ト 値 が 設 計 時 に 指 定 さ れ、 <strong>FPGA</strong> のコンフィギュレーション 時 に 設 定 されます。 こ の 値 を ラ ン タ イ ムで 変 更 する こ と はで き ません。このモードは、 CLKOUT_PHASE_SHIFT 属 性 を FIXED に 設 定 し、PHASE_SHIFT 属 性 で 位 相 シフ ト 値 を 指 定 し ます。 PHASE_SHIFT が 0 の 場 合 は、 図 3-32 に 示 すよ う に、CLKIN 入 力 と 出 力 クロ ッ ク は 同 相 です。 PHASE_SHIFT が 負 の 整 数 の 場 合 、 ク ロ ッ ク 出 力 は CLKIN よ り 早 まるように位 相 シフ ト さ れます。 PHASE_SHIFT が 正 の 整 数 の 場 合 、 ク ロ ッ ク 出 力 は CLKIN よ り 遅 れるように 位 相 シフ ト されます。位 相 シフ ト 量 の 単 位 は CLKIN のクロック 周 期 の 1/256 (1.40625°) です ( 図 3-31 を 参 照 )。 1 単 位のシフ ト 量 は、 式 3-5 で 計 算 され、 CLKIN の 入 力 周 波 数 に よ って 異 な り ます。120 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


位 相 シ フ トR0°270°90°1CLKIN 256(=1.40625°)180°0° 90° 180° 270° 0°0 64 128 192 255PHASE_SHIFT =CLKIN (T CLKIN) = =256256360 o = 1.40625 oT CLKIN図 3-31 : PHASE_SHIFT の 単 位 は CLKIN の 周 期 の 1/256<strong>Spartan</strong>-3 <strong>FPGA</strong> の 固 定 フ ァ イ ン グレ イ ン 位 相 シ フ ト の 範 囲<strong>UG331</strong>_c3_19_022407PHASE_SHIFT 属 性 に 指 定 可 能 な 値 は -255 ~ +255 の 整 数 値 ですが、<strong>Spartan</strong>-3 <strong>FPGA</strong> の 実 際 の 範囲 は、 次 に 示 すよ う に CLKIN の 入 力 周 波 数 に よ っ て 異 な り ます。CLKIN0PHASE_SHIFT CLKINDCM図 3-32 : 固 定 フ ァ イ ン グレ イ ン 位 相 シ フ ト の 制 御x462_31_061903PHASE_SHIFT 属 性 の 最 大 値 と 最 小 値 は、 次 の 2 つの 値 によ って 決 ま り ます。1. CLKIN 入 力 の 周 期 T CLKIN (ns)2. <strong>Spartan</strong>-3 <strong>FPGA</strong> では、FINE_SHIFT_RANGE で 位 相 シフ ト 遅 延 ラ イ ンで 達 成 可 能 な 最 大 遅 延が 定 義 されます。 デバイ スの 実 際 の 遅 延 ラ イ ンはこれよ り 長 い 可 能 性 も あ り ますが、 確 実 に 達成 でき るのは FINE_SHIFT_RANGE で 指 定 された 遅 延 までです。 <strong>Spartan</strong>-3A/3AN/3A DSP<strong>FPGA</strong> では、 固 定 位 相 シフ ト に 対 する FINE_SHIFT_RANGE はあ り ません。これら 2 つの 値 から、 式 3-1 を 使 用 して SHIFT_DELAY_RATIO が 算 出 されます。 この 値 が 1 未満 であ るか 1 以 上 であ る かに よ って、 PHASE_SHIFT 属 性 の 範 囲 が 異 な り ます。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 121<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 3 章 : デジタル クロック マネージャ (DCM) の 使 用SHIFT_DELAY_RATIO=FINE_SHIFT_RANGE----------------------------------------------------------------T CLKIN式 3-1SHIFT_DELAY_RATIO < 1<strong>Spartan</strong>-3 <strong>FPGA</strong> のクロック 周 期 が FINE_SHIFT_RANGE よ り 長 い 場 合 、SHIFT_DELAY_RATIO< 1 となり、 ファイン グ レ イ ン 位 相 シ フ ト の 最 大 値 は FINE_SHIFT_RANGE で 制 限 されます。 この 場 合 、 PHASE_SHIFT の 範 囲 は 式 3-2 で 求 められます。PHASE_SHIFT LIMITS=± INTEGER⎛256 •FINE_SHIFT_RANGE---------------------------------------------------------------- ⎞⎝⎠T CLKIN式 3-2たとえば、CLKIN の 周 波 数 が 75MHz (T CLKIN = 13.33ns) で FINE_SHIFT_RANGE が 10.00ns の場 合 、 PHASE_SHIFT の 範 囲 は ±191 となります。SHIFT_DELAY_RATIO < 1 の 場 合 の 位 相 シフ ト 値 は、 式 3-3 で 求 められます。 位 相 シフ ト の 精 度を 求 めるには、 PHASE_SHIFT = 1 に 設 定 し ます。T PhaseShift=⎛ PHASE_SHIFT---------------------------------------------------------------- ⎞ • FINE_SHIFT_RANGE⎝ PHASE_SHIFT LIMITS⎠式 3-3SHIFT_DELAY_RATIO ≥ 1<strong>Spartan</strong>-3 <strong>FPGA</strong> のクロック 周 期 が FINE_SHIFT_RANGE よ り 短 い 場 合 、SHIFT_DELAY_RATIO≥ 1 となり、 ファイン グ レ イ ン 位 相 シフ ト の 範 囲 は ±255 となります。PHASE_SHIFT LIMITS = ± 255式 3-4SHIFT_DELAY_RATIO 1 の 場 合 の 位 相 シフ ト 値 は、 式 3-5 で 求 められます。 位 相 シフ ト の 精 度を 求 めるには、 PHASE_SHIFT = 1 に 設 定 し ます。T PhaseShift=⎛PHASE_SHIFT------------------------------------------- ⎞ • T⎝ 256 ⎠ CLKIN式 3-5最 小 位 相 シ フ ト サイズ最 小 位 相 シフ ト サイズは、 次 の 2 つの う ち 大 きい 方 の 値 と な り ます。1. CLKIN の 周 期 の 1/256。 位 相 シフ ト は、 物 理 的 には 遅 延 エレ メ ン ト でイ ン プリ メ ン ト さ れま す。2. 表 3-29 に 示 さ れる 最 小 遅 延 エレ メ ン ト の 精 度 。表 3-29 : 遅 延 エ レ メ ン ト のステ ッ プ サイズ<strong>Spartan</strong>-3 ジェネレーション<strong>FPGA</strong>遅 延 エ レ メ ン ト仕 様 パラ メ ー タ遅 延 エ レ メ ン ト 値<strong>Spartan</strong>-3 DCM_TAP 30 ~ 60ps<strong>Spartan</strong>-3E DCM_DELAY_STEP 20 ~ 40ps ( 標 準 25ps)<strong>Spartan</strong>-3A/3AN/3A DSP DCM_DELAY_STEP 15 ~ 35ps ( 標 準 25ps)122 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


位 相 シ フ トRその 他 の 注 意 事 項固 定 位 相 シフ ト モー ド では、 可 変 位 相 シフ ト 用 の 制 御 入 力 は GND に 接 続 する 必 要 があ り ます。Clocking Wizard および ISE ソ フ ト ウ ェアでは、 こ の 接 続 は 自 動 的 に 行 われます。Clocking Wizard固 定 位 相 シフ ト モード を 使 用 するには、 図 3-33 に 示 すよ う に、 [General Setup] ページの [PhaseShift] で [FIXED] を 選 択 します。 この 選 択 によ り、CLKOUT_PHASE_SHIFT 属 性 が FIXED に 設定 されます。[Value] に 位 相 シフ ト 値 を 入 力 し ます。 前 述 し た 範 囲 内 の 整 数 を 指 定 し て く だ さ い。 これによ り、PHASE_SHIFT 属 性 の 値 が 設 定 されます。 Clocking Wizard で、 位 相 シフ ト 値 が 範 囲 内 であ る かがチェッ ク されます。[FIXED] 可 変 フ ァ イ ン グレイン 位 相 シフ ト図 3-33 : 固 定 位 相 シ フ ト モー ド の 選 択<strong>UG331</strong>_c3_13_120206可 変 フ ァ イ ン グ レ イ ン 位 相 シフ ト モード では、 初 期 の 位 相 シフ ト 値 が PHASE_SHIFT 属 性 に 基 づいてコンフ ィ ギュレーシ ョ ン 中 に 設 定 されますが、 DCM の LOCKED 出 力 が High になった 後 、 可変 位 相 シフ ト 制 御 入 力 PSEN、 PSCLK、および PSINCDEC を 使 用 して、 <strong>FPGA</strong> アプ リ ケーシ ョ ンで 位 相 シフ ト を 変 更 でき ます。合 計 位 相 シフ ト 値 は、 式 3-6 に 示 すよ う に、 初 期 位 相 シフ ト 値 と 可 変 位 相 シフ ト 調 整 の 合 計 です。Phase Shift TOTAL = FIXED_PHASE_SHIFT + VARIABLE_PHASE_SHIFT式 3-6<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> 間 での 可 変 位 相 シ フ ト の 違 い可 変 位 相 シフ ト モード の 動 作 は、 <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> 間 で 異 な り ます。 <strong>Spartan</strong>-3Eおよび <strong>Spartan</strong>-3A/3AN/3A DSP <strong>FPGA</strong> では、 効 率 的 な 遅 延 ベースの 可 変 位 相 シフ ト が 使 用 さ れますが、 <strong>Spartan</strong>-3 <strong>FPGA</strong> では ク ロ ッ ク 周 期 の 割 合 に 基 づいて 位 相 をシフ ト し ます。 どちらの 方 法 も 位相 シフ ト を 達 成 し ますが、 完 全 に 異 な り ます。表 3-30 に、 こ の 違 いを ま と めています。 固 定 位 相 シフ ト は、 すべての <strong>Spartan</strong>-3 ジェネレーショ ン<strong>FPGA</strong> で 同 一 で (121 ページの 図 3-31 を 参 照 )、 位 相 シフ ト 量 は CLKIN の 周 期 の 1/256 単 位 にな ります。 可 変 位 相 シフ ト で も、 PSEN、 PSINCDEC、 PSCLK、 および PSDONE が 使 用 されるのは、<strong>Spartan</strong>-3 ジェネレーシ ョ ンのすべての <strong>FPGA</strong> で 同 じです。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 123<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 3 章 : デジタル クロック マネージャ (DCM) の 使 用主 な 違 いは、 可 変 位 相 シ フ ト 動 作 の 結 果 にあ り ます。 <strong>Spartan</strong>-3 <strong>FPGA</strong> では、 可 変 位 相 シフ ト は 固 定位 相 シフ ト と 同 様 で、 位 相 シフ ト 量 は 度 数 (°) で 表 され (121 ページの 図 3-31 を 参 照 )、 変 化 し ません。 時 間 で 表 し た 位 相 シフ ト 量 は、 CLKIN の 入 力 周 波 数 に よ って 異 な り ます。表 3-30 : <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> の 固 定 位 相 シ フ ト と 可 変 位 相 シ フ ト のイ ンプ リ メ ンテーシ ョ ン<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong><strong>Spartan</strong>-3 <strong>Spartan</strong>-3E <strong>Spartan</strong>-3A/3AN/3A DSP固 定 位 相 シフ ト の 増 分 / 減 分 の 単 位 CLKIN の 周 期 の 1/256固 定 位 相 シフ ト の 計 測 単 位 度 (°)可 変 位 相 シフ ト の 制 御DCM の PSEN、 PSINCDEC、 PSCLK、 および PSDONE 信 号可 変 位 相 シフ ト の 増 分 / 減 分 の 単 位 CLKIN の 周 期 の 1/256(1.4065°)DCM_DELAY_STEP、20 ~ 40ps可 変 位 相 シフ ト ロジックの 図 121 ページの 図 3-31 125 ページの 図 3-34可 変 位 相 シフ ト の 式 式 3-5 式 3-7、 式 3-8固 定 位 相 シフ ト の 計 測 単 位 度 (°) 時 間DCM_DELAY_STEP、15 ~ 35ps度 数 で 表 し た 位 相 シフ ト 量 が CLKINの 入 力 周 波 数 で 変 化 する か時 間 で 表 し た 位 相 シフ ト 量 が CLKINの 入 力 周 波 数 で 変 化 する かしないするするしない<strong>Spartan</strong>-3E および <strong>Spartan</strong>-3A/3AN/3A DSP <strong>FPGA</strong> では、 可 変 位 相 シフ ト を 実 行 する と 、 位 相 ではな く 遅 延 が 変 化 し ます。 位 相 シフ ト は、 図 3-34 に 示 すカ ス ケー ド 接 続 さ れた 遅 延 エレ メ ン ト で イ ンプリ メントされます。 各 DCM_DELAY_STEP エレ メ ン ト の 最 大 値 と 最 小 値 は、 122 ページの 表3-29 に 示 されています。 ク ロ ッ ク 出 力 の 範 囲 に 追 加 さ れる 実 際 の 位 相 シ フ ト 量 ( 時 間 ) は、 選 択 されたエ レ メ ン ト の 累 積 最 小 遅 延 か ら 累 積 最 大 遅 延 の 範 囲 内 にな り ます。 こ の 時 間 は 比 較 的 一 定 で、CLKIN の 周 波 数 に よ り 変 化 する こ と はあ り ません。 度 数 で 表 し た 位 相 シフ ト 量 は、 CLKIN の 入 力周 波 数 に よ っ て 変 化 し ます。124 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


位 相 シ フ トRMAX_STEPSTimeDCM_DELAY_STEPTime > Phase Shift DCM_DELAY_STEP_MIN< Phase Shift DCM_DELAY_STEP_MAXPhase =TimeTCLKIN360°Phase Shift<strong>UG331</strong>_c3_20_120306図 3-34 : <strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3A/3AN/3A DSP の 可 変 位 相 シ フ ト ロジック<strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3A/3AN/3A DSP の 可 変 位 相 シ フ ト 動 作<strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3A/3AN/3A DSP の 可 変 位 相 シ フ ト に よ る 位 相 シフ ト 量 は、 式 3-7 および式 3-8 に 示 すよ う に、 常 に 時 間 で 表 されます。 位 相 シフ ト 量 には、 各 DCM_DELAY_STEP の 遅 延に 変 動 があ るので (122 ページの 表 3-29 を 参 照 )、 最 大 値 と 最 小 値 があ り ます。T MAX( VariableShift)= Variable • DCM_DELAY_STEP_MAX式 3-7T MIN( VariableShift)= Variable • DCM_DELAY_STEP_MIN式 3-8式 3-7 と 式 3-8 か ら 求 め ら れた 位 相 シフ ト 量 を 度 数 に 変 換 する には、 式 3-9 を 使 用 し ます。 T CLKINは、 CLKIN 入 力 の 周 期 です。T VariableShiftPHASE SHIFT = ---------------------------------- • 360 oT CLKIN式 3-9動 作位 相 シフ ト 値 を 調 整 する には、 位 相 シフ ト 制 御 入 力 を 使 用 し ます ( 図 3-35 を 参 照 )。 可 変 位 相 シフ トのすべての 動 作 は、 PSCLK の 立 ち 上 が り エ ッ ジに 同 期 し ます。 位 相 シフ ト 動 作 を 開 始 する には、PSEN イネーブル 入 力 を PSCLK の 1 サイクル 分 アサート します。 PSEN を PSCLK の 1 周 期 分 以上 アサー ト する と 、 動 作 が 不 正 にな る 可 能 性 があ り ます。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 125<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 3 章 : デジタル クロック マネージャ (DCM) の 使 用PSDONEPSCLKPSENPSINCDECPSDONE0 = 1 = STATUS[0])STATUS[0]High図 3-35 : 可 変 フ ァ イ ン グレ イ ン 位 相 シ フ ト の 制 御 イ ン タ ーフ ェ イ ス<strong>UG331</strong>_c3_29_022407PSINCDEC 制 御 入 力 の 値 は、 位 相 シフ ト を 増 分 する か 減 分 する かを 指 定 し ます。 PSINCDEC がHigh にな る と 、 可 変 位 相 シフ ト 値 が 1 単 位 分 増 分 さ れ、 Low になる と、 1 単 位 分 減 分 さ れます。位 相 シフ ト が 変 更 さ れる タ イ ミ ングは 異 な り ますが、 位 相 シ フ ト が 完 了 する と 、 PSDONE 出 力 がPSCLK の 1 サイクル 分 High にな り ます。 PSEN がイネーブルになってから PSDONE が High になるまでの 間 、 DCM の 出 力 ク ロ ッ クは 元 の 位 相 から ターゲ ッ ト の 位 相 に 徐 々に 変 化 し ます。 この間 、 DCM はロ ッ ク 状 態 のま まであ り 、 LOCKED 出 力 はアサー ト さ れた ま まにな り ます。位 相 シフ ト の 変 更 が 完 了 する までには、 最 大 で (CLKIN の 100 サイクル 分 + PSCLK の 3 サイクル分 ) かかる 場 合 があ り ます。 こ の 時 点 で、 PSDONE 出 力 が PSCLK の 1 サイクル 分 High にな り ます。 このパルスは、PS ユニ ッ ト で 位 相 シフ ト の 変 更 が 完 了 し、 再 び 変 更 が 可 能 になった こ と を 示 します。可 変 フ ァ イ ン グ レ イ ン 位 相 シ フ ト モード を イネーブルにするには、 CLKOUT_PHASE_SHIFT 属性 を VARIABLE に 設 定 し ます。 PHASE_SHIFT 属 性 は、 <strong>FPGA</strong> コンフィギュレーション 後 の 初 期の 位 相 シフ ト 値 を 指 定 し ます。 DCM の LOCKED 出 力 が High になったら、 DCM の 出 力 ク ロ ッ クの 位 相 シフ ト を 動 的 に 変 更 で き ます。 DCM がリセットされると、PHASE_SHIFT は 初 期 値 に 戻 ります。126 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


位 相 シ フ トRCLKINPHASE_SHIFT 00DCM PSENPSINCDECPSDONEPSCLKSTATUS[0]DCM LOCKED <strong>FPGA</strong>x462_34_061903図 3-36 : 可 変 位 相 シ フ ト の 制 御可 変 フ ァ イ ン グレ イ ン 位 相 シ フ ト の 範 囲PHASE_SHIFT 属 性 に 最 大 値 と 最 小 値 があ る よ う に、 可 変 位 相 シ フ ト 値 に も 範 囲 があ り ます ( 図3-36 を 参 照 )。 <strong>Spartan</strong>-3 <strong>FPGA</strong> と <strong>Spartan</strong>-3E および <strong>Spartan</strong>-3A/3AN/3A DSP <strong>FPGA</strong> の 可 変 位 相シフ ト 動 作 は 異 な る ので、 範 囲 も 異 な り ます。<strong>Spartan</strong>-3 <strong>FPGA</strong> の 可 変 位 相 シ フ ト 範 囲<strong>Spartan</strong>-3 <strong>FPGA</strong> では、 前 述 の SHIFT_DELAY_RATIO の 式 で 示 し たよ う に、FINE_SHIFT_RANGEと 入 力 ク ロ ッ ク 周 期 の 比 で 範 囲 が 決 ま り ま すが、 FINE_SHIFT_RANGE は 10ns であり 、 位 相 シフト は 低 周 波 数 モード (167MHz まで) でのみサポート さ れる ので、 SHIFT_DELAY_RATIO は 常 に


R第 3 章 : デジタル クロック マネージャ (DCM) の 使 用可 変 位 相 シフ ト 値 は 式 3-11 で 求 められます。 可 変 位 相 シフ ト の 精 度 を 求 め る には、 可 変 位 相 シフ トを 1 に 設 定 し ます。T PhaseShift=⎛ DynamicPhaseShift------------------------------------------------------------------------------ ⎞ • FINE_SHIFT_RANGE⎝ DynamicPhaseShift LIMITS⎠式 3-11<strong>Spartan</strong>-3E および <strong>Spartan</strong>-3A/3AN/3A DSP <strong>FPGA</strong> の 可 変 位 相 シ フ ト 範 囲<strong>Spartan</strong>-3E および <strong>Spartan</strong>-3A/3AN/3A DSP <strong>FPGA</strong> では、 可 変 位 相 シフ ト は 遅 延 エレ メ ン ト を 使 用し て 達 成 し ます。 遅 延 ス テ ッ プの 数 には 物 理 的 な 最 大 値 があ り 、 表 3-31 に 示 すよ う に、 CLKIN の入 力 周 波 数 T CLKIN によって 異 なり ます。表 3-31 : DCM 遅 延 ステ ッ プの 最 大 数CLKIN の 周 波 数CLKIN の 周 波 数T CLKINDCM 遅 延 ステ ッ プの 最 大 数 単 位< 60MHz > 16.67ns ±[INTEGER(10 • (T CLKIN - 3 ns))]≥ 60MHz < 16.67ns ±[INTEGER(15 • (T CLKIN - 3 ns))]ステップ制 御 信 号たとえば、DCM に 入 力 される CLKIN の 周 波 数 が 100MHz (T CLKIN = 10ns) だとします。 表 3-31の 式 を 使 用 する と 、 可 変 位 相 シ フ ト の 範 囲 は ±105 ステップです。 これは、<strong>Spartan</strong>-3E <strong>FPGA</strong> では最 大 可 変 位 相 シフ ト が ±2.1ns ~ ±4.2ns (±75.6° ~ 151.2°) である こ とにな り ます。126 ページの 図 3-35 と 127 ページの 図 3-36 に 示 すよ う に、 DCM の 可 変 位 相 シフ ト 制 御 信 号 を 使用 する と 、 <strong>FPGA</strong> アプ リ ケーシ ョ ンで CLKIN 入 力 と DCM の ク ロ ッ ク 出 力 の 位 相 関 係 を 調 整 で きます。 表 3-32 に、 制 御 信 号 同 士 の 関 係 、 現 在 の 位 相 と 次 の 位 相 の 関 係 、 遅 延 タ ッ プへの 影 響 、 および 制 御 出 力 を 示 し ます。128 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


位 相 シ フ トR表 3-32 : 可 変 位 相 シ フ ト の 制 御 信 号 ( 反 転 な し の 場 合 )STATUS[0](オーバーフロー- <strong>Spartan</strong>-3E<strong>FPGA</strong> ではな し)PSEN PSINCDEC PSCLK現 在 の位 相 シ フ ト次 の 位 相シフ ト遅 延 ラ イ ンPSDONE動 作0 X X X 変 化 な し 変 化 な し ? ? 可 変 位 相 シ フ ト ディスエーブル1 0 ↑ > 下 限 現 在 - 1 現 在 - 1 1* 0 位 相 シ フ ト および 位 相 ポ イ ン タ を減 分1 0 ↑ ≤ 下 限 、> -255現 在 - 1 変 化 な し 1* 1 遅 延 ラ イ ンの 最 後 。 位 相 シフ ト は変 化 な し、 位 相 ポ イ ン タは 減 分1 0 ↑ -255 -255 変 化 な し 1* 1 遅 延 ラ イ ンの 最 後 。 位 相 シフ ト は変 化 な し、 位 相 ポ イ ン タは 下 限1 1 ↑ < 上 限 現 在 + 1 現 在 + 1 1* 0 位 相 シ フ ト および 位 相 ポ イ ン タ を増 分1 1 ↑ ≥ 上 限 、< +255現 在 + 1 変 化 な し 1* 1 遅 延 ラ イ ンの 最 後 。 位 相 シフ ト は変 化 な し、 位 相 ポ イ ン タは 増 分1 1 ↑ +255 +255 変 化 な し 1* 1 遅 延 ラ イ ンの 最 後 。 位 相 シフ ト は変 化 な し、 位 相 ポ イ ン タは 上 限メモ :X = ドントケア? = 不 確 定 、 アプ リ ケーシ ョ ンのス テー ト に よ り 異 な る1* = PSCLK の 1 サイクル 分 High下 限 = 最 小 遅 延 ラ イ ン 位 置上 限 = 最 大 遅 延 ラ イ ン 位 置PSEN は、 PSCLK の 1 サイ クル 分 のみアサー ト し て く ださい。PSEN が Low の 場 合 、 可 変 位 相 シフ ト はデ ィ ス エーブルにな り 、 その 他 の 入 力 はすべて 無 視 さ れます。 すべての 位 相 シフ ト 値 、 遅 延 ラ イ ンの 位 置 は 変 化 し ません。遅 延 ラ イ ンが 上 限 ま たは 下 限 ( 減 分 の 場 合 は -255、 増 分 の 場 合 は +255) に 達 し ていない 場 合 は、PSEN を High にアサート し、PSCLK の 次 の 立 ち 上 が り エ ッ ジの 前 に PSINCDEC を 適 切 な 値 に 設定 する こ と に よ り 、 位 相 シ フ ト 値 を 変 更 で き ます。 設 定 に 応 じ て、 位 相 シ フ ト 値 が 増 分 ま たは 減 分します。 位 相 シフ ト が 完 了 する と 、 PSDONE が PSCLK の 1 サイクル 分 High にな り ます。 位 相 シフ ト のオーバーフローは 発 生 していないので、 STATUS[0] は Low のままです。DCM が +255 以 上 に 増 分 ま たは -255 以 下 に 減 分 さ れる と 、 遅 延 ラ イ ン 位 置 はその 上 限 +255 または 下 限 -255 のままで、 位 相 シフ ト も 変 化 しません。 STATUS[0] が High にな り 、 可 変 位 相 シ フ トオーバーフ ローが 発 生 した こ と が 示 されます (<strong>Spartan</strong>-3E <strong>FPGA</strong> ではなし)。 新 しい 位 相 シフ ト 動 作で 値 が 逆 の 方 向 ( 下 限 だった 場 合 は 増 分 する 方 向 、 上 限 だった 場 合 は 減 分 する 方 向 ) に 変 化 する と、STATUS[0] は Low に 戻 り ます。位 相 シフ ト は +255 または -255 に 達 し ていないが、 遅 延 ラ イ ンの 範 囲 ( 表 3-32 の 上 限 と 下 限 ) を 超えて し ま う 場 合 は、 位 相 シフ ト は 変 化 せず、 STATUS[0] が High にな り ます。 <strong>Spartan</strong>-3/3A/3AN/3ADSP <strong>FPGA</strong> では、 STATUS[0] 出 力 は 遅 延 タ ッ プが 遅 延 ラ イ ン の 最 後 に 到 達 し たこ と を 示 し ま す。 ただし 、 <strong>FPGA</strong> アプリ ケーショ ン では、 式 3-10 を 使 用 し て 上 限 ま たは 下 限 の 値 を 算 出 し てく ださ い。算 出 さ れた 遅 延 の 範 囲 は 確 実 なも のです。 プロ セス 、 電 圧 、 温 度 によ っ て、 ラ イ ン 遅 延 が 長 いデバイスもあり ますが、これは 確 実 なものではあり ません。 位 相 シフ ト 値 は、 +255 または -255 に 達 する まで 増 分 ま たは 減 分 さ れま す。 遅 延 ラ イ ン 位 置 は 変 化 し ま せん。 新 し い 位 相 シフ ト 動 作 で 値 が 逆 の 方 向( 下 限 だっ た 場 合 は 増 分 する 方 向 、 上 限 だっ た 場 合 は 減 分 する 方 向 ) に 変 化 する と 、 STATUS[0] はLow に 戻 り ます。 位 相 シフ ト 値 は、 遅 延 ラ イ ン の 有 効 な 絶 対 遅 延 に 対 応 する 値 に 増 分 ま たは 減 分 されま す。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 129<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 3 章 : デジタル クロック マネージャ (DCM) の 使 用Clocking Wizard可 変 位 相 シフ ト オプシ ョ ンは、 Clocking Wizard の [General Setup] ページで 設 定 し ます ( 図 3-37を 参 照 )。 可 変 フ ァ イ ン グ レ イ ン 位 相 シフ ト を イ ネーブルにする には、 図 3-37 に 示 すよ う に、[PhaseShift] で [VARIABLE] を 選 択 し、 [Value] に 初 期 の 位 相 シフ ト 値 を 入 力 し ます。 初 期 値 は、 前 述 した 固 定 フ ァ イ ン グ レ イ ン 位 相 シフ ト モー ド と 同 様 に 設 定 さ れます。[STATUS] [VARIABLE][VARIABLE] PSENPSINCDECPSCLKPSDONE<strong>UG331</strong>_c3_14_120206図 3-37 : Clocking Wizard で 可 変 フ ァ イン グレ イ ン 位 相 シ フ ト モード を 選 択可 変 モー ド を 選 択 する と 、 可 変 位 相 シフ ト の 制 御 信 号 PSEN、 PSINCDEC、 PSCLK、 PSDONE も有 効 にな り ます。 <strong>Spartan</strong>-3 <strong>FPGA</strong> では、STATUS 出 力 をオンにする と STATUS[0] 信 号 も 有 効 になります。 STATUS[0] は、 可 変 位 相 シ フ ト 値 が 上 限 ま たは 下 限 に 達 し た こ と を 示 し ます (<strong>Spartan</strong>-3E<strong>FPGA</strong> ではなし)。アプリケーシ ョ ン 例可 変 位 相 シフ ト 機 能 を 使 用 し て 位 相 を 動 的 にア ラ イ メ ン ト する 方 法 の 例 は、 次 のアプ リ ケーシ ョ ンノ ー ト を 参 照 し て く だ さ い。• アプ リ ケーシ ョ ン ノート XAPP268 : 『 動 的 位 相 調 整 』http://japan.xilinx.com/support/documentation/application_notes.htmク ロ ッ クの 逓 倍 、 分 周 、 周 波 数 合 成DCM では、 入 力 ク ロ ッ ク とは 異 なる 周 波 数 のク ロ ッ ク を 生 成 でき ます。 <strong>Spartan</strong>-3 の DCM では、図 3-38 および 表 3-33 に 示 すよ う に、 3 つの 周 波 数 合 成 機 能 を 使 用 で き ます。 アプ リ ケーシ ョ ンでは、 こ れら の 機 能 を 個 別 に 使 用 する か、 すべてを 同 時 に 使 用 で き ます。 次 に、 各 機 能 について 詳 細に 説 明 し ます。1. クロック 2 逓 倍 (CLK2X、 CLK2X180) : 入 力 ク ロ ッ ク の 周 波 数 を 2 逓 倍 し た ク ロ ッ ク2. クロック 分 周 (CLKDV) : 入 力 周 波 数 を 固 定 の 値 で 分 周 し た ク ロ ッ ク3. 周 波 数 合 成 (CLKFX、 CLKFX180) : 入 力 ク ロ ッ ク 周 波 数 と はま った く 異 な る 周 波 数 の ク ロ ックを 生 成130 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


ク ロ ッ クの 逓 倍 、 分 周 、 周 波 数 合 成RCLKFB CLK0CLK2XCLK0CLK2XCLK2X180CLKDVCLKFBCLK0CLK2XCLKIN CLK0DCM DCM_SPCLKFBCLK2XCLK2X180CLKDVCLKFXCLKFX180図 3-38 : 周 波 数 合 成 機 能2bF = 2 F CLKINF = F CLKINF CLKINF =CLK DV_DIVIDE 50%()CLKFX_MU LTIP LYF = F CLKINCLKFX_DIVIDE 50%<strong>UG331</strong>_c3_022407CLKDV 以 外 の 周 波 数 合 成 出 力 のデューテ ィ サイクルは、50% に 調 整 されます。 CLKDV のデューティ サ イ ク ルは、 高 周 波 数 モー ド で 分 周 値 が 整 数 以 外 の 場 合 は、 50% に 調 整 されません ( 表 3-37を 参 照 )。 クロック 2 逓 倍 (CLK2X、 CLK2X180) は、 高 周 波 数 モー ド では 使 用 でき ません。DCM の CLKFX と CLKFX180 以 外 の ク ロ ッ ク 出 力 は、 遅 延 ロ ッ ク ループ (DLL) ユニッ ト で 生 成されるので、CLKFB ピンにクロック フ ィ ー ド バ ッ ク を 供 給 する 必 要 があ り ます。 CLKFX とCLKFX180 クロック 出 力 は、デジ タル 周 波 数 合 成 (DFS) ユニッ ト で 生 成 されます。 アプ リ ケーシ ョンで CLKFX または CLKFX180 出 力 のみを 使 用 する 場 合 は、 フ ィ ー ド バ ッ ク パスを 取 り 除 く こ とも 可 能 で、 この 場 合 、 DCM の 動 作 範 囲 が 広 く な り ます。 周 波 数 合 成 ユニ ッ ト には、 DCM 内 にCLKIN に 基 づいたフ ィ ード バッ ク パスがあ り ます。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 131<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 3 章 : デジタル クロック マネージャ (DCM) の 使 用表 3-33 : DCM の 周 波 数 合 成 オプシ ョ ン機 能 DCM 出 力 周 波 数DCM のファンクションユニッ トフィードバック50%デューティ サイ クル 調 整スキュー 調整 クロッ ククロック2 逓 倍クロック分 周周 波 数 合 成CLK0 F CLKINDLL 必 要 DUTY_CYCLE_CORRECTION = TRUE の 場 合CLK2XCLK2X180DLL 必 要 常 時CLKDV F DLL 必 要 高 周 波 数 モー ド で 分 周 値 が-------------------------------------------------CLKINCLKDV_DIVIDE整 数 以 外 の 場 合 以 外 は 常 時CLKFXCLKFX1802 • F CLKINCLKFX_MULTIPLYCLKFX_DIVIDEF CLKIN • ⎛----------------------------------------------------------⎞⎝⎠DFS オプシ ョ ン。フィードバックを 使 用 しない 場合 、ク ロ ッ ク 入 力の 周 波 数 範 囲 が拡 大 。常 時クロック フ ィ ー ド バ ッ ク を 使 用 する と 、 すべての 出 力 ク ロ ッ ク の 位 相 が 揃 え られます。 クロック 出力 の 分 周 値 に よ っ ては、 すべての ク ロ ッ ク 出 力 のエ ッ ジが 揃 う のは 何 周 期 かご と にな り ます。 たとえば CLKDV 出 力 は、 CLKDV_DIVIDE サイクルごとに CLKIN および CLK0 とエッジが 揃 います。 同 様 に、CLK2X は 1 クロック サイクルごとに CLK0 と 揃 います。 CLKFX 出 力 は、CLKIN のCLKFX_DIVIDE サイクルごと、 CLKFX の CLKFX_MULTIPLY サイクルごとに CLKIN と 揃 います。周 波 数 合 成 のアプ リ ケーシ ョ ン周 波 数 合 成 は、さ ま ざま なアプリ ケーショ ン で 利 用 でき ま す。 次 は、アプリ ケーショ ン 例 の 一 部 です。• ボー ド 上 で 使 用 可 能 な ク ロ ッ ク 周 波 数 を 使 用 し、 <strong>FPGA</strong> および 外 部 ロ ジ ッ ク に 対 し て 完 全 に 新し い ク ロ ッ ク 周 波 数 を 生 成• 低 速 の 外 部 ク ロ ッ ク ソース か ら 高 周 波 数 の 内 部 ク ロ ッ ク を 生 成 し、 シ ス テム EMI を 削 減• 高 速 シ リ アル データ クロックを 分 周 し、<strong>FPGA</strong> 内 でデータ をパ ラ レル 処 理 ( 図 3-39 を 参 照 )• パラレル データ クロックを 逓 倍 し、 高 速 シリアル データ フォーマッ トに 変 換 ( 図 3-39 を 参 照 )• 入 力 ク ロ ッ ク を 逓 倍 し て 内 部 ロ ジ ッ ク に 供 給 する ク ロ ッ ク の 周 波 数 を 高 く する こ と に よ り 、 中速 フ ァ ン ク シ ョ ン を イ ンプ リ メ ン ト する 際 に ロ ジ ッ ク を 時 分 割 し て リ ソ ース を 削 減132 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


ク ロ ッ クの 逓 倍 、 分 周 、 周 波 数 合 成RFF<strong>FPGA</strong>DCMDCMFFnFF . mnmFF . xDCMFx462_38_070903図 3-39 : 周 波 数 合 成 の 一 般 的 なアプ リ ケーシ ョ ン入 力 および 出 力 ク ロ ッ ク 周 波 数 の 範 囲周 波 数 合 成 の 入 力 および 出 力 ク ロ ッ ク 周 波 数 の 範 囲 は、 使 用 する DCM のクロック 出 力 によって 異なります。 たとえば、CLKFX と CLKFX180 出 力 は DCM の DFS ユニッ ト のみを 使 用 しますが、その 他 のク ロ ッ ク 出 力 は DLL ユニッ ト を 使 用 します。 DLL ユニ ッ ト の 周 波 数 範 囲 は DFS ユニットよりも 狭 いので、 DLL ユニ ッ ト を 使 用 せずに DFS ユニ ッ ト のみを 使 用 する と 、 周 波 数 範 囲 が 広くなります。 DFS ユニッ ト と DLL ユニ ッ ト の 両 方 を 使 用 する 場 合 は、 DLL の 周 波 数 範 囲 が 適 用 されます。また、 <strong>Spartan</strong>-3 <strong>FPGA</strong> では、 DLL と DFS の 両 方 に 低 周 波 数 モー ド と 高 周 波 数 モー ド があ り 、 このモー ド 設 定 に よ り 動 作 周 波 数 範 囲 が 異 な り ます。DCM デザイ ンでの CLKIN の 周 波 数 は、 <strong>FPGA</strong> のデータ シー ト で 指 定 さ れた 動 作 範 囲 (80 ページの 表 3-9 および 81 ページの 表 3-10) にする 必 要 があ り ます。 同 様 に、 ク ロ ッ ク 出 力 の 周 波 数 も、 それぞれに 指 定 の 動 作 範 囲 内 にする 必 要 があ り ます。図 3-40 の 例 では、 制 限 が 最 も 厳 しい <strong>Spartan</strong>-3 <strong>FPGA</strong> の ク ロ ッ ク 入 力 と ク ロ ッ ク 出 力 の 周 波 数 範 囲( 低 周 波 数 モー ド) を 示 し、 比 較 し ています。 ボ ッ ク ス 内 の 名 前 は、 <strong>Spartan</strong>-3 <strong>FPGA</strong> のデータシート の 仕 様 で 使 用 さ れてい る も の と 一 致 し ています。 134 ページの 表 3-34 は、 DCM アプ リ ケーシ ョンでどの よ う に 周 波 数 範 囲 が 適 用 さ れる かの 例 を 示 し ます。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 133<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 3 章 : デジタル クロック マネージャ (DCM) の 使 用1 MHz 280 MHzDFS(CLKIN_FREQ_FX_{MIN,MAX})F CLKIN18 MHz 167 MHzDLL (Low-Frequency Mode)(CLKIN_FREQ_DLL_LF_{MIN,MAX})F CLKFXF CLKFX180F CLKDVF CLK2XF CLK2X18018 MHz 210 MHzDFS (Low-Frequency Mode)(CLKOUT_FREQ_FX_LF_{MIN,MAX})1.125 MHz 110 MHzDLL, CLKDV (Low-Frequency Mode)Data sheet(CLKOUT_FREQ_DV_LF_{MIN,MAX})specification name36 MHz 334 MHzDLL, CLK2X (Low-Frequency Mode)(CLKOUT_FREQ_2X_LF_{MIN,MAX})FrequencyX462_39_011008* 予 測 値 。 正 確 な 値 は、 <strong>Spartan</strong>-3 データ シー ト DS099 の 「DC 特 性 およびス イ ッ チ 特 性 」 を 参 照 し て く だ さ い。図 3-40 : 入 力 ク ロ ッ ク および 出 力 ク ロ ッ クの 周 波 数 範 囲 (<strong>Spartan</strong>-3 <strong>FPGA</strong>、 低 周 波 数 モー ド )表 3-34 : DCM の 周 波 数 範 囲 の 適 用 例 (<strong>Spartan</strong>-3 <strong>FPGA</strong>、 低 周 波 数 モー ド )入 力 周 波 数 出 力 周 波 数 メ モ1.2MHz 12.8MHz 1 つの DCM では 不 可 能 です。 入 力 周 波 数 F CLKIN は DFS ユニ ッ ト の 周 波 数 範 囲 内 ですが、出 力 周 波 数 FCLKFX は 18MHz 以 上 であ る 必 要 があ り ます。1.2MHz 32.4MHz DFS ユニッ ト を 使 用 する 1 つの DCM で 可 能 です。 CLKFX_MULTIPLY = 27 を 設 定 し ます。 F CLKFX は DFS の 出 力 周 波 数 範 囲 内 にな り ます。25MHz2.5MHz30MHzDFS および DLL ユニ ッ ト を 使 用 する 1 つの DCM で 可 能 です。 2.5MHz 信 号 には CLKDV出 力 を 使 用 し、 CLKDV_DIVIDE=10 を 設 定 し ます。 30MHz 信 号 には CLKFX 出 力 を 使 用し、CLKFX_MULTIPLY = 6 および CLKFX_DIVIDE = 5 を 設 定 し ます。すべての 入 力 および 出 力 の 周 波 数 は、 適 切 な 範 囲 内 にな り ます。クロック 2 逓 倍 (CLK2X、 CLK2X180)クロック 2 逓 倍 では、 CLKIN 入 力 ク ロ ッ ク の 周 波 数 を 2 逓 倍 し た ク ロ ッ ク を 生 成 し ます ( 表 3-35を 参 照 )。 この 機 能 は DLL ファンクション ユニッ ト の 一 部 であ り、 CLKFB に CLK0 またはCLK2X からのクロック フィードバックが 必 要 です。 2 逓 倍 ク ロ ッ ク 出 力 には CLK2X とCLK2X180 があ り、 どちらのデューティ サイクルも 50% に 調 整 されます。 2 つの 出 力 の 周 波 数 は同 じですが、CLK2X180 は CLK2X の 位 相 を 180°シフ ト した もので、 CLK2X を 反 転 したものと考 えられます。 このよ うに 位 相 が 180°ずれた 2 つの 出 力 は、 デュ アル データ レート (DDR) または ク ロ ッ ク 転 送 アプ リ ケーシ ョ ンで 有 益 です。CLK2X および CLK2X180 出 力 は、<strong>Spartan</strong>-3 <strong>FPGA</strong> で DLL_FREQUENCY_MODE 属 性 が LOWの 場 合 にのみ 使 用 可 能 です。 アプ リ ケーシ ョ ンで 必 要 な 場 合 は、 CLKIN 入 力 周 波 数 を 2 分 周 する機 能 (96 ページの 「[Advanced] ページ」 を 参 照 ) を 使 用 して 周 波 数 を 低 減 して く ださい。134 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


ク ロ ッ クの 逓 倍 、 分 周 、 周 波 数 合 成R表 3-35 : クロック 2 逓 倍 機 能DCM 出 力CLK2XCLK2X180出 力 周 波 数DCM のファンクシ ョ ンユニッ トフィードバックデューティ サイクル 調 整2 • F CLKIN遅 延 ロ ッ ク ループ (DLL)必 要あり制 御 属 性<strong>Spartan</strong>-3 のみ :DLL_FREQUENCY_MODECLKIN<strong>Spartan</strong>-3 <strong>FPGA</strong> では、 DLL_FREQUENCY_MODE =LOW の 場 合 のみ 使 用 可 能 です。出 力 周 波 数 は 334MHz までに 制 限 されるので、CLK2X および CLK2X180 を 使 用 でき るのは CLKIN 167MHz までです。 <strong>Spartan</strong>-3 <strong>FPGA</strong> では、 CLKIN の 周 波 数 はDLL_FREQUENCY_MODE 属 性 の 設 定 に よ り 制 限 さ れます。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong><strong>Spartan</strong>-3<strong>Spartan</strong>-3E(ステッピング 1)<strong>Spartan</strong>-3A/3AN/3A DSP最 小 周 波 数CLKIN_FREQ_DLL_LF_MIN18MHzCLKIN_FREQ_DLL_MIN5MHzCLKIN_FREQ_DLL_MIN5MH最 大 周 波 数CLKIN_FREQ_DLL_LF_MAX167MHzCLK2X の 最 大 周 波 数 の 1/2 以 下-4 : 155.5MHz-5 : 167MHzCLK2X の 最 大 周 波 数 の 1/2 以 下167MHzCLK2XCLK2X180<strong>Spartan</strong>-3 <strong>FPGA</strong> では、 CLK2X の 周 波 数 は DLL_FREQUENCY_MODE 属 性 の 設 定 により 制 限 さ れま す。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong>最 小 周 波 数最 大 周 波 数<strong>Spartan</strong>-3<strong>Spartan</strong>-3E(ステッピング 1)<strong>Spartan</strong>-3A/3AN/3A DSPCLKOUT_FREQ_2X_LF_MIN36MHzCLKOUT_FREQ_2X_MIN10MHzCLKOUT_FREQ_2X_MIN10MHzCLKOUT_FREQ_2X_LF_MAX334MHzCLKOUT_FREQ_2X_MAX-4 : 155.5MHz-5 : 167MHzCLKOUT_FREQ_2X_MIN10MHz<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 135<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 3 章 : デジタル クロック マネージャ (DCM) の 使 用クロック 分 周 (CLKDV)表 3-36 : ク ロ ッ ク 分 周 機 能クロック 分 周 は、 入 力 CLKIN の 周 波 数 を CLKDV_DIVIDE 属 性 で 指 定 した 値 で 分 周 し ます ( 表3-36 を 参 照 )。 この 機 能 は DLL ファンクション ユニッ ト の 一 部 であ り、 CLKFB に CLK0 またはCLK2X からのクロック フ ィ ー ド バ ッ ク が 必 要 です。DCM 出 力出 力 周 波 数DCM のファンクシ ョ ンユニッ トCLKDVF-------------------------------------------------CLKINCLKDV_DIVIDE遅 延 ロ ッ ク ループ (DLL)フィードバック 必 要 (CLK0 または CLK2X 出 力 を 使 用 )デューティ サイクル 調 整あり (DLL_FREQUENCY_MODE=HIGH で、CLKDV_DIVIDE が 整 数 以 外 の 値 であ る 場合 を 除 く)制 御 属 性<strong>Spartan</strong>-3 のみ :DLL_FREQUENCY_MODE両 方 のモー ド で 使 用 可 能 です。 分 周 値 に よ っ て、 デューテ ィ サイクルが 調 整 されない 場 合があ り ます ( 「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 です。 値 が 整数 の 場 合 の 方 が、 DLL が ロ ッ ク 状 態 にな る までの 時 間 が 短 く な り 、 出 力 ジ ッ タ も 低 く な ります。周 波 数 範 囲CLKIN CLKIN の 周 波 数 範 囲 は、 次 の 表 を 参 照 し て く だ さ い。CLKDV<strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3A/3AN/3A DSP : 80 ページの 表 3-9<strong>Spartan</strong>-3 : 81 ページの 表 3-10<strong>Spartan</strong>-3 <strong>FPGA</strong> では、 CLKDV の 周 波 数 は DLL_FREQUENCY_MODE 属 性 で 制 限 さ れます。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong><strong>Spartan</strong>-3<strong>Spartan</strong>-3E(ステッピング 1)<strong>Spartan</strong>-3A/3AN/3A DSP最 小 周 波 数CLKOUT_FREQ_DV_LF_MIN1.125MHzCLKOUT_FREQ_DV_HF_MIN3.0MHzCLKOUT_FREQ_DV_MIN0.3125MHz (312.5kHz)CLKOUT_FREQ_DV_MIN0.3125MHz (312.5kHz)最 大 周 波 数CLKOUT_FREQ_DV_LF_MAX110MHzCLKOUT_FREQ_DV_HF_MAX185MHzCLKOUT_FREQ_DV_MAX-4 : 160MHz-5 : 183MHzCLKOUT_FREQ_DV_MAX-4 : 166MHz-5 : 186MHz136 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


ク ロ ッ クの 逓 倍 、 分 周 、 周 波 数 合 成RCLKDV のデューテ ィ サイ クル 調 整DLL_FREQUENCY_MODE 属 性 が HIGH で、 CLKDV_DIVIDE 属 性 が 整 数 値 以 外 の 場 合 は、デューティ サイクルは 50% に 調 整 されません。 この 場 合 、 CLKDV のデューテ ィ サイクルは 表3-37 に 示 すよ う にな り ます。 <strong>Spartan</strong>-3 の DCM では、CLKIN のデューテ ィ サイクルを 60%/40%(または 40%/60%) から 50% の 間 にする 必 要 があ り ます。 そのため、 高 周 波 数 モー ド で 1.5 で 分 周した CLKDV 出 力 は、カ ス ケー ド 接 続 さ れた 2 番 目 の DCM の ク ロ ッ ク 入 力 と し て 使 用 する こ と はできません。表 3-37 : DLL_FREQUENCY_MODE=HIGH の 場 合 の CLKDV のデューテ ィ サイクルCLKDV_DIVIDE 属 性 デューテ ィ サイクル High の 時 間 /サイクル整 数 50.000% 1/21.5 33.333% 1/32.5 40.000% 2/53.5 42.857% 3/74.5 44.444% 4/95.5 45.454% 5/116.5 46.154% 6/137.5 46.667% 7/15DLKDV のジッ タCLKDV_DIVIDE 属 性 が 整 数 値 の 場 合 、 出 力 ジ ッ タ が 小 さ く な り 、 DLL が ロ ッ ク 状 態 にな る までの 時 間 が 短 く な り ます。表 3-38 : CLKDV 出 力 のジ ッ タCLKDV_DIVIDEデータ シー ト のシンボル<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong>CLKDV 出 力 の周 期 ジ ッ タ整 数 値 CLKOUT_PER_JITT_DV1 すべて ±150ps整 数 値 以 外 CLKOUT_PER_JITT_DV2 <strong>Spartan</strong>-3 ±300ps<strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3A/3AN/3A DSP±[CLKIN 周 期 の1% + 150] ps<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 137<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 3 章 : デジタル クロック マネージャ (DCM) の 使 用Clocking Wizardクロック 分 周 は、Clocking Wizard の [General Setup] ページで 設 定 し ます。 CLKDV 出 力 のチェ ック ボックスをオンにし ( 図 3-41a)、 [Divide By Value] のドロップダウン リストから 値 を 選 択 します( 図 3-41b)。CLKDVDivide By Value2a. CLKDV 出 力 のチ ェ ッ ク ボックスをオン b. [Divide By Value] で 分 周 値 を 選 択周 波 数 合 成 (CLKFX、 CLKFX180)表 3-39 : 周 波 数 合 成 の 機 能<strong>UG331</strong>_c3_21_120306図 3-41 : Clocking Wizard でのク ロ ッ ク 分 周 の 指 定x462_40b_061903周 波 数 合 成 では、 入 力 周 波 数 を 最 も 柔 軟 に 逓 倍 および 分 周 でき ます。 周 波 数 合 成 の 出 力 は CLKFXと CLKFX180 です ( 表 3-39 を 参 照 )。 CLKFX180 は CLKFX と 同 じ 周 波 数 ですが、 位 相 が 180°( ク ロ ッ ク の 半 周 期 分 ) シフ ト されています。 周 波 数 合 成 の 出 力 のデューテ ィ サイクルは 50% に 調整 されるので、 CLKFX180 は CLKFX を 反 転 したものと 考 えられます。出 力 周 波 数 は、 表 3-39 の 式 で 示 すよ う に 2 つの 属 性 で 定 義 され、 CLKIN ク ロ ッ ク 入 力 の 周 波 数 にCLKFX_MULTIPLY の 値 を 分 子 、 CLKFX_DIVIDE の 値 を 分 母 と した 係 数 を 掛 けて 算 出 し ます。たとえば、75MHz の CLKIN 入 力 ク ロ ッ ク か ら 155MHz の 出 力 ク ロ ッ ク を 生 成 する には、 CLKINの 周 波 数 に 31/15 を 掛 けます。CLKIN が 31 で 逓 倍 されてから 15 で 分 周 されるのではな く 、31 を15 で 割 った 結 果 が CLKIN に 掛 け られます。CLKIN を 31 で 逓 倍 する と 、 出 力 周 波 数 が 2.325GHzとなってしまい、<strong>Spartan</strong>-3 の DCM の 周 波 数 範 囲 を 超 えて し まいます。ロ ッ ク 状 態 にな る までの 時 間 を 短 縮 する ため、 逓 倍 値 と 分 周 値 を 約 分 し て 簡 単 な 分 数 値 に し て く ださい。 たとえば、6/8 は 3/4 にします。周 波 数 合 成 では、 常 に ク ロ ッ ク フィードバックが 必 要 ですが、 DFS ユニッ ト には CLKIN に 基 づ く内 部 フ ィ ー ド バ ッ ク ループがあ るので、 DLL ユニ ッ ト を 使 用 し ない 場 合 は CLKFB に 別 のフ ィ ードバック ループは 必 要 あ り ません。CLKFX 出 力 は、 CLKIN の CLKFX_DIVIDE サイ ク ルごと 、 CLKFX の CLKFX_MULTIPLY サイクルごとに CLKIN と 揃 います。 たと えば、 CLKFX_MULTIPLY = 3 およ び CLKFX_DIVIDE = 5を 設 定 し ている 場 合 、 CLKFX 出 力 は CLKIN の 5 サイ ク ルごと 、 CLKFX の 3 サイ ク ルごと にCLKIN 入 力 と 位 相 が 揃 いま す。 LOCKED 出 力 がアサート さ れた 後 は、 こ れら のエッ ジで 位 相 が 揃うように、DFS ユニッ ト で CLKIN 入 力 に 対 し て 出 力 周 波 数 が 再 合 成 さ れま す。DCM 出 力出 力 周 波 数DCM のファンクシ ョ ンユニッ トフィードバックCLKFXCLKFX180 (CLKFX と 周 波 数 が 同 じ で 位 相 を 180°シフ ト した ク ロ ッ ク)CLKFX_MULTIPLYF CLKIN • ----------------------------------------------------------CLKFX_DIVIDEデジ タル 周 波 数 合 成 (DFS)不 要 。CLKIN に 基 づ く 内 部 フ ィ ー ド バ ッ ク を 使 用 し ます。 遅 延 ロ ッ ク ループ (DLL) ファンクションが 必 要 な 場 合 は、 CLKFB 入 力 を 使 用 可 能 です。138 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


ク ロ ッ クの 逓 倍 、 分 周 、 周 波 数 合 成R表 3-39 : 周 波 数 合 成 の 機 能 ( 続 き)デューティ サイクル 調 整常 時制 御 属 性<strong>Spartan</strong>-3 のみ :DFS_FREQUENCY_MODE<strong>Spartan</strong>-3 のみ :DLL_FREQUENCY_MODECLKFX_MULTIPLYCLKFX_DIVIDECLKIN 入 力 および CLKFX、 CLKFX180 出 力 の 周 波 数 範 囲 に 影 響 し ます。アプ リ ケーシ ョ ンで DLL 出 力 を 使 用 する 場 合 にのみ 影 響 し ます。 CLKIN の 周 波 数 が DLLの 周 波 数 範 囲 に 制 限 さ れます。 CLKFX または CLKFX180 出 力 し か 使 用 し ない 場 合 は、DFS_FREQUENCY_MODE のみが 周 波 数 範 囲 を 制 限 し ます。上 記 の 式 に 従 っ て、 出 力 周 波 数 を 制 御 し ます。 設 定 可 能 な 値 は 2 ~ 32 の 整 数 で、 デフ ォルト 値 は 4 です。上 記 の 式 に 従 っ て、 出 力 周 波 数 を 制 御 し ます。 設 定 可 能 な 値 は 1 ~ 32 の 整 数 で、 デフ ォルト 値 は 1 です。周 波 数 範 囲CLKIN アプ リ ケーシ ョ ンで 遅 延 ロ ッ ク ループ (DLL) ユニ ッ ト の 出 力 を 使 用 する かど う かに よ って異 な り ます。 DLL ユニ ッ ト を 使 用 する 場 合 は、 DLL の 周 波 数 範 囲 が 適 用 さ れます。CLKFXCLKFX180DFS のみ : 81 ページの 表 3-10DFS を DLL と 共 に 使 用 :<strong>Spartan</strong>-3 : 81 ページの 表 3-10<strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3A/3AN/3A DSP : 80 ページの 表 3-9DFS_FREQUENCY_MODE 属 性 の 設 定 に よ り 異 な り ます。<strong>Spartan</strong>-3ジェネレーション<strong>FPGA</strong>最 小 周 波 数最 大 周 波 数<strong>Spartan</strong>-3(マスクリビジョン E)<strong>Spartan</strong>-3E(ステッピング 1)<strong>Spartan</strong>-3A/3AN/3A DSPCLKOUT_FREQ_FX_LF_MIN18MHzCLKOUT_FREQ_FX_HF_MIN210MHzCLKOUT_FREQ_FX_MIN5MHzCLKOUT_FREQ_FX_MIN5MHzCLKOUT_FREQ_FX_LF_MAX210MHzCLKOUT_FREQ_FX_HF_MAX-4 : 307MHz-5 : 326MHzCLKOUT_FREQ_FX_MAX-4 : 311MHz-5 : 333MHzCLKOUT_FREQ_FX_MAX-4 : 320MHz-5 : 350MHz<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 139<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 3 章 : デジタル クロック マネージャ (DCM) の 使 用Clocking WizardClocking Wizard で 周 波 数 合 成 を 設 定 する には、 [General Setup] ページで CLKFX、 CLKFX180、ま たは 両 方 の 出 力 のチェ ッ ク ボックスをオンにします ( 図 3-42 を 参 照 )。CLK0CLKFXCLKFX180CLKFX CLKFX180<strong>UG331</strong>_c3_15_061708図 3-42 : Clocking Wizard での 周 波 数 合 成 の 設 定CLKFX または CLKFX180 ク ロ ッ ク 出 力 のみを 使 用 する 場 合 は、 DLL クロック 出 力 とフィードバ ッ ク をオフにする と 、 入 力 の 周 波 数 範 囲 が 広 く な り ます。• DCM のフ ィードバッ クをディ スエーブルにするには、 図 3-43 に 示 すよ う に、 [Feedback] で[NONE] をオンにします。 フ ィ ー ド バ ッ ク を 使 用 し ない 場 合 、 高 周 波 数 モー ド と 低 周 波 数 モードの 両 方 で、CLKFX と CLKFX180 の 周 波 数 範 囲 が 広 く な り 、 CLK0 とその 他 の DLL 出 力 がディスエーブルになります。CLKFX CLKFX180 [None]DCMFeedbackSource: Internal External NoneValue: 1X 2Xx462_42_070903図 3-43 : フ ィードバックをディスエーブルに 設 定最 後 に、 [Clock Frequency Synthesizer] ページで 逓 倍 値 と 分 周 値 を 入 力 し ます。ク ロ ッ クの 転 送 、 複 製 、 再 バ ッ フ ァDCM では 高 度 な ク ロ ッ ク 制 御 機 能 が 使 用 可 能 で、<strong>Spartan</strong>-3 ジェネレーショ ンの I/O ピンでさまざまな I/O 規 格 がサポー ト さ れてい る ので、 <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> は、 電 圧 規 格 が 変 換さ れる ク ロ ッ ク 信 号 の 再 バ ッ フ ァや 複 製 に よ く 使 用 さ れます。 同 様 に、 DCM では 入 力 ク ロ ッ ク 信号 のデューテ ィ サイクルが 50% に 調 整 されます。図 3-20 に、 DCM で 入 力 ク ロ ッ ク のデューテ ィ サイクルを 50% に 調 整 し、 CLK0 出 力 か ら の 同 じ周 波 数 の ク ロ ッ ク を 転 送 する か、CLK2X 出 力 で 周 波 数 を 2 逓 倍 にする 例 を 示 し ています。 DCM のLOCKED 出 力 がアサー ト さ れた 場 合 、 入 力 ク ロ ッ ク と 出 力 ク ロ ッ ク の 位 相 は 揃 っています。CLKFB への ク ロ ッ ク フィードバック パスによ り、 外 部 クロ ッ ク フィードバック ポイン トでのクロ ッ ク 分 配 遅 延 が 監 視 さ れ、 除 去 さ れます。出 力 ク ロ ッ ク のデューテ ィ サイクルを 50% にする こ と が 重 要 な 場 合 は、 デューテ ィ サイクルを 保持 できるように 出 力 I/O 規 格 を 短 時 間 で 切 り 替 え る よ う に し て く だ さ い。 デューティ サイクルのパフ ォーマン ス を 検 証 する には、 IBIS シ ミ ュ レーシ ョ ンで 出 力 信 号 を 調 べます。 I/O 規 格 には 立 ち 上が り 時 間 と 立 ち 下 が り 時 間 が 非 対 称 の も の も あ り 、 高 周 波 数 でデューテ ィ サ イ ク ルの 歪 みが 発 生 します。 <strong>Spartan</strong>-3 <strong>FPGA</strong> の 場 合 、 DCI を 使 用 した HSTL、 SSTL、 および LVCMOS I/O 規 格 では この 対 称 性 が よ く なっ ています。 通 常 、 差 動 I/O の 方 が 歪 みが 少 な く な り ます。140 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


ク ロ ッ クの 転 送 、 複 製 、 再 バ ッ フ ァR100MHz 以 上 でデューテ ィ サイクルを 確 実 に 50% にするには、 <strong>Spartan</strong>-3 <strong>FPGA</strong> では、 CLKIN クロックのデューティ サイクルが 50% の 場 合 で も、 DCM のデューテ ィ サ イ ク ル 調 整 機 能 を 使 用 する 必 要 があ り ます。 ク ロ ッ ク 転 送 で CLK0、 CLK90、 CLK180、 または CLK270 出 力 を 使 用 する 場合 は、 DUTY_CYCLE_CORRECTION 属 性 を TRUE に 設 定 し て く だ さい。 DCM のその 他 の 出 力では、 通 常 デューテ ィ サイクルが 50% に 調 整 されます ( 「デューテ ィ サ イ ク ル 調 整 」 を 参 照 )。特 に 200MHz 以 上 で 最 高 のデューテ ィ サイクル パフ ォーマン ス を 達 成 する には、 図 3-44 に 示 すよ う な 回 路 を 使 用 し ます。 DCM から の CLKx およ び CLKx180 出 力 を 両 方 使 用 し 、 デュ アル データ レー ト (DDR) 出 力 フリ ップフロップの C0 およ び C1 入 力 それぞれ 駆 動 し ま す。<strong>Spartan</strong>-3 <strong>FPGA</strong>には OFDDRCPE およ びその 派 生 コ ン ポーネン ト が 使 用 さ れ、 <strong>Spartan</strong>-3E/3A/3AN/3A DSP <strong>FPGA</strong>では ODDR2 コ ンポーネント が 使 用 さ れま す。 DDR フリ ップフロップの D0 入 力 は V CC 、 D1 入 力は GND に 接 続 し ま す。 各 DCM 出 力 は 個 別 にグロ ーバル バッ フ ァ を 駆 動 し ており 、 デュ ーティ サイ ク ルの 歪 みが 最 小 限 に 抑 えら れま す。 高 周 波 数 では、 1 つのク ロ ッ ク を 使 用 し て DDR フリ ップフロップ 内 で 1 つの 入 力 を 反 転 する と 、 約 150ps のデュ ーティ サイ ク ルの 歪 みが 発 生 する ので、 好 ましく あり ません。250MHz 以 上 の 周 波 数 では、 LVDS などの 差 動 信 号 規 格 を 使 用 し て ク ロ ッ ク を 分 配 し て く だ さ い。図 3-44 の 例 では、 CLKIN ク ロ ッ ク 入 力 と ク ロ ッ ク 出 力 の 両 方 で LVDS が 使 用 され、 クロックフィードバック パスでも LVDS が 使 用 されています。 最 高 のパフ ォーマン ス を 達 成 するには、 クロック 入 力 とクロック フィードバック パスに 差 動 グローバル バッファ 入 力 (IBUFGDS) を 使 用 する 必 要 があ り ます。IBUFGDS を 使 用 する と 、 デバ イ スの 一 辺 にあ る グ ローバル バッファ 入 力 がすべて 使 用 されてし まいますが、 高 周 波 数 の ク ロ ッ ク 転 送 で 最 高 質 の ク ロ ッ ク が 得 ら れます。<strong>FPGA</strong>OFDDRCPE/ODDR2OBUFDSIBUFGDSVCCD0 QD1CLKINDCMCLKxGNDBUFGCEC0IBUFGDSCLKFBCLKx180BUFGC1External Clock Feedback (LVDS)図 3-44 : 高 周 波 数 (250MHz 以 上 ) の LVDS ク ロ ッ ク 転 送 回 路 (デューティ サイクル 50%)x462_43_061908<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 141<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 3 章 : デジタル クロック マネージャ (DCM) の 使 用クロック ジッタ ( 位 相 ノ イズ)最 も 高 価 な 高 精 度 の ク ロ ッ ク であ っ て も、すべての ク ロ ッ ク で 多 少 の ク ロ ッ ク ジッタ ( 位 相 ノ イ ズ)が 発 生 し ます。 <strong>Spartan</strong>-3 の DCM に も、 ジ ッ タ 特 性 があ り ます。 20MHz などの 低 周 波 数 で 動 作 している 場 合 は、 ジ ッ タの 影 響 は 無 視 でき ますが、 200MHz のデュ アル データ レート (DDR) アプ リケーシ ョ ンなど、 高 周 波 数 で 動 作 し てい る 場 合 は、 ク ロ ッ ク ジ ッ タ のデザ イ ンへの 影 響 を 考 慮 する必 要 があ り ます。 クロック ジッタは<strong>FPGA</strong> アプ リ ケーシ ョ ンの 時 間 か ら 直 接 差 し 引 かれるので、 アクティブ クロック エッジ 間 の 時 間 が 短 くなります。クロック ジッタとはクロック ジッタは、 図 3-45 に 示 すよ う に、 ク ロ ッ ク エ ッ ジの 理 想 的 な 位 置 か ら のずれです。 黒 の線 は、 理 想 的 な ク ロ ッ ク 信 号 を 示 し ます。 各 クロッ ク エッジで、 実 際 のクロック エ ッ ジには 理 想 的なエ ッ ジ と の 間 に 多 少 のずれがあ り ます。 負 の 方 向 への 最 大 のずれと 正 の 方 向 への 最 大 のずれ と の差 を、 peak-to-peak ジッタと 呼 びます。 ジッタは、 アクティブ クロック エ ッ ジのみに 関 係 し ます。たとえば、 シングル データ レー ト (SDR) アプ リ ケーシ ョ ンでは、 データはク ロ ッ クの 立 ち 上 が りエ ッ ジで 送 信 さ れるので、 ジ ッ タは ク ロ ッ ク 周 期 の 合 計 か ら のみ 差 し 引 かれます。 デュアル データレート (DDR) アプ リ ケーシ ョ ンでは、データ が 半 周 期 ご と に 送 信 さ れるので、 ジ ッ タは 各 半 周 期 に影 響 し ます。peak-to-peak図 3-45 : ク ロ ッ ク 信 号 のジ ッ タX462_44_060606クロック ジッタの 原 因クロック ジ ッ タは 回 避 する こ と がで きず、すべてのシ ス テムに 存 在 し ます。 クロック ジッタの 原 因は、 さ ま ざ ま な ノ イ ズや、 シ ス テム 内 の 信 号 の 不 完 全 性 です。 クロック ジッタは、 ノイズが 時 間 に現 れた も の と 言 え ます。 入 力 ク ロ ッ ク ソース には、 ク リ ス タルか ら の ラ ンダムな 熱 的 または 機 械 的な 振 動 ノ イ ズに よ る ジ ッ タ 特 性 があ り ます。 同 時 ス イ ッ チ 出 力 (SSO) が 多 数 発 生 する と 、 基 盤 ノ イズが 発 生 し、 内 部 ス イ ッ チ し き い 値 がわずかに 変 化 し、 ジ ッ タ と な り ます。 また、 電 源 が 正 し く 設計 さ れていない 場 合 や、 デカ ッ プ リ ングが 不 十 分 な 場 合 に も ジ ッ タが 加 算 されます。 その 他 のクロック ジ ッ タ の 原 因 と し ては、 隣 接 する 信 号 か ら の ク ロ ス ト ー ク、 不 適 切 な 終 端 、 グ ラ ン ド バウン ス、 電 磁 波 干 渉 (EMI) などが 挙 げられます。この 章 では、 <strong>Spartan</strong>-3 の DCM でのジ ッ タについて 説 明 し、 <strong>FPGA</strong> でジッ タ パフォーマンスを 向上 する 方 法 を 示 し ます。142 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


クロック ジッタ ( 位 相 ノ イズ)Rクロック ジ ッ タ 仕 様 の 理 解クロック ジッ タ にはさ ま ざま な 仕 様 があり ま すが、こ れら は 同 じ 現 象 を 異 なる 面 から 表 し ていま す。サイクル 間 ジッ タサイクル 間 ジッタは、 あるクロッ ク サイクルとその 次 のクロッ ク サイクルとのクロッ ク 周 期 の 最大 差 を 示 し ます ( 図 3-46 を 参 照 )。 この 例 では、 1 つの ク ロ ッ ク サイクルと 次 のクロック サイクルと の 最 大 差 は +100ps と -100ps (±100ps) です。 多 数 の ク ロ ッ ク サイクルにわたってクロッ ク 周 期が こ れ 以 上 変 動 する こ と はあ り え ますが、 連 続 し た 2 つの ク ロ ッ ク サイクル 間 では ±100ps 以 上 変動 する こ と はあ り ません。T 0 T 1 = T 0 + 100 ps T 2 = T 1 - 100 psサ イ ク ル 間 ジ ッ タは、 ク ロ ッ ク 出 力 ま たはオシレータ の 質 を 評 価 する のに 重 要 ですが、 アプ リ ケーシ ョ ンの タ イ ミ ングを 解 析 する のにはあ ま り 役 に 立 ち ません。周 期 ジ ッ タ図 3-46 : サイクル 間 ジッ タの 例x462_45_062203周 期 ジ ッ タは、 多 数 の ク ロ ッ ク サイクルにわたるサイクル 間 ジッタ 値 を 合 計 したものです。 ピークジ ッ タは、 理 想 的 な ク ロ ッ ク の 遷 移 時 間 と 比 べて 最 も 早 い 遷 移 と 最 も 遅 い 遷 移 を 示 し ます。DCM の 周 期 ジ ッ タはラ ンダムで、 peak-to-peak ジッタで 表 されます。 ク ロ ッ ク 遷 移 の 位 置 は、 図3-47 に 示 すよ う に、 理 想 的 な ク ロ ッ ク 遷 移 位 置 を 中 心 と し た 確 率 分 布 ( ヒストグラム) にな り ます。実 際 の 分 布 は、 ガ ウ ス 分 布 にはな らず、 二 峰 性 分 布 にな る 可 能 性 も あ り ます。 ほとんどのクロック遷 移 は 理 想 的 な 遷 移 位 置 で 発 生 し ますが、 多 数 の ク ロ ッ ク サ イ ク ルが 経 過 する と 、 ク ロ ッ ク 遷 移 位置 と 理 想 の 遷 移 位 置 と のずれが 大 き く な る 可 能 性 があ り ます。理 想 的 な 遷 移 位 置 か ら の 統 計 的 な 距 離 は、 標 準 偏 差 σ (シグマ) で 表 されます。 DCM は 完 全 にデジタルであり、 非 常 に 安 定 しているので、ジッタ 偏 差 は ±7σ (peak-to-peak ジッタ 14σ) です。 これは、99.99999999974% のジッ タ 値 はワース ト ケースのジ ッ タ 値 よ り 小 さいこ と を 保 証 し ます。 14σ のpeak-to-peak ジッタ、 ±7σ ジッタ 偏 差 は、 最 大 ビッ ト エラー レート (BER) の 1.28 x 10 -12 です。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 143<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 3 章 : デジタル クロック マネージャ (DCM) の 使 用-7+7peak-to-peak (14)x462_46_061903ユニッ ト インターバル (UI)図 3-47 : Peak-to-Peak 周 期 ジ ッ タの 例ジッタは、ユニッ ト インターバル (UI) で 表 すこ と も でき ます。 1 UI は、 周 波 数 にかかわ ら ず、1 ビット タ イ ムに 相 当 し ます。 ク ロ ッ ク の 立 ち 上 が り エ ッ ジ または 立 ち 下 が り エ ッ ジのど ち ら かでデータが 取 り 込 まれる シングル データ レー ト (SDR) アプ リ ケーシ ョ ンでは、 1 UI は 1 クロック 周 期 です。 クロック レート の 2 倍 の 速 度 でデータが 取 り 込 まれるデュ アル データ レート (DDR) アプ リケーシ ョ ンでは、 1 UI は ク ロ ッ ク の 半 周 期 です。peak-to-peak ジッ タを UI で 表 すと 、 peak-to-peak ジッ タ 値 のビッ ト タ イ ム に 対 する 割 合 になります。peak-to-peak (UI)UI peak-to-peak x462_47_061903図 3-48 : UI の 割 合 と し て 表 される 周 期 ジ ッ タ合 計 ジ ッ タの 算 出DCM の ク ロ ッ ク 出 力 か ら の 出 力 ジ ッ タは、CLKFX および CLKFX180 出 力 を 除 き、<strong>FPGA</strong> のデータシートに 示 されています。 CLKFX および CLKFX180 出 力 では、 ジ ッ タ カ リキュレータが 使 用されます。 DFS 出 力 のジ ッ タは、 逓 倍 値 と 分 周 値 の 設 定 に 基 づいて 算 出 さ れます。DLL ユニッ ト からのク ロ ッ ク 出 力 (CLKFX および CLKFX180 以 外 の ク ロ ッ ク 出 力 ) に 対 し ては、データ シー ト にワース ト ケースのジ ッ タが 示 されています。 この 値 は、DLL ユニッ ト によ り 追 加 されるジッ タです。 DLL ユニッ ト ではジッ タは 除 去 されないので、 DLL のクロック 出 力 の 合 計 ジッタは、 CLKIN 入 力 ク ロ ッ ク のジ ッ タ にデータ シー ト の 値 を 加 えた も のにな り ます。DFS のクロック 出 力 CLKFX と CLKFX180 では、 ある 程 度 の 入 力 ク ロ ッ ク ジ ッ タ は 除 去 さ れるので、 算 出 されるジッタが 合 計 ジッタになります。144 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


クロック ジッタ ( 位 相 ノ イズ)R入 力 ジ ッ タ と DLL 出 力 ジ ッ タの 加 算入 力 ジ ッ タ と DLL 出 力 ジ ッ タ を 加 算 する 際 は、 ノ イ ズ 計 算 と 同 様 に、 二 乗 平 均 平 方 根 (RMS) を 使用 します。Peak-to-PeakJITTER PK – PK = ( JITTER INPUT ) 2 + ( JITTER SPEC ) 2式 3-12Peak-to-Peak 偏 差JITTER PK=±( JITTER INPUT ) 2 + ( JITTER SPEC ) 2---------------------------------------------------------------------------------------------------2式 3-13JITTER INPUT =JITTER SPEC =<strong>FPGA</strong> の ク ロ ッ ク 入 力 ピ ンで 計 測 さ れた 入 力 周 期 ジ ッ タ<strong>FPGA</strong> のデータ シー ト に 示 された DLL ク ロ ッ ク 周 期 ジ ッ タ例入 力 ク ロ ッ ク の peak-to-peak 周 期 ジ ッ タ が 150ps (±75ps) である と します。 入 力 ク ロ ッ ク のデューティ サ イ ク ルは 調 整 され、 同 じ 周 波 数 の CLK0 出 力 が 使 用 さ れます。こ の 場 合 、JITTER INPUT = 150ps です。 JITTER SPEC の 値 は、<strong>Spartan</strong>-3 データ シー ト に CLKOUT_JITT_PER_0 と 示 されており、 ±100ps (200ps peak-to-peak) と 予 測 されます。JITTER PK – PK = ( 150 ps) 2 + ( 200 ps) 2 = 250 psDCM 上 の 合 計 ジ ッ タは、 ±125ps (250ps peak-to-peak) となります。カスケード 接 続 された DCM のジ ッ タの 算 出図 3-49 に、 複 数 の DCM を カ ス ケー ド 接 続 し て さ ま ざ ま な 周 波 数 の 出 力 を 生 成 し てい る アプ リ ケーション 例 を 示 します。 どの 地 点 で も、 ジ ッ タは 次 の 要 素 に よ っ て 決 ま り ます。• 前 の ソ ースか ら の 入 力 ジ ッ タ• 使 用 さ れる DCM 出 力各 DCM 出 力 のジ ッ タ 特 性 は、データ シー ト に 示 さ れてい る よ う に 少 しずつ 異 な り ます。 また、DFSユニッ ト からの CLKFX および CLKFX180 出 力 ではあ る 程 度 の 入 力 ジ ッ タ が 除 去 さ れ、 ジ ッ タ 値は Clocking Wizard で 算 出 されます ( 「[Clock Frequency Synthesizer] ページ」 を 参 照 )。CLKINDCMCLKxA DCMB DCMCCLKIN CLKxCLKIN CLKxRSTLOCKEDRSTLOCKEDRSTLOCKED図 3-49 : カスケード 接 続 された DCM でのジ ッ タは 使 用 される DCM 出 力 によ り 異 なるx462_48_061903<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 145<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 3 章 : デジタル クロック マネージャ (DCM) の 使 用そのため、 カ ス ケー ド 接 続 さ れた DCM チェーンのある 時 点 でのジッ タ も、 前 述 の 要 素 によって 決まります。 次 に、 こ の 回 路 の さ ま ざ ま な 遅 延 におけ る 合 計 ジ ッ タ の 算 出 方 法 を 示 し ます。例 1 : すべての DCM で DLL 出 力 を 使 用この 例 では、 すべての <strong>FPGA</strong> が <strong>Spartan</strong>-3 <strong>FPGA</strong> で、 入 力 ク ロ ッ ク の 周 期 ジ ッ タ が 150ps (±75ps)である と します。DCM (A) では CLK2X 出 力 を 使 用 し ます。 この DCM 出 力 のジ ッ タは、 <strong>Spartan</strong>-3 データ シー ト にCLKOUT_PER_JITT_2X と 示 されており、 400ps (±200ps) と 予 測 されます。 クロック (A) の 合 計周 期 ジ ッ タは、 式 3-12 を 使 用 して 算 出 します。JITTER PK – PK( A)= ( 150ps) 2 + ( 400ps) 2 = 427ps = ± 214psDCM (B) では、 分 周 値 が 整 数 の CLKDV 出 力 を 使 用 し ます。 この DCM 出 力 のジ ッ タは、<strong>Spartan</strong>-3データ シー ト に CLKOUT_PER_JITT_DV1 と 示 されており、 300ps (±150ps) と 予 測 されます。 クロック (B) の 合 計 周 期 ジ ッ タは、 式 3-12 を 使 用 して 算 出 します。 入 力 ジ ッ タ、DCM (A) からのジッタ、 DCM (B) からのジッタの 3 つの 要 素 が 関 係 する ので、 RMS の 式 もそれに 応 じて 拡 張 します。JITTER PK – PK( B)= ( 150ps) 2 + ( 400ps) 2 + ( 300ps) 2 = 522ps = ± 261psDCM (C) では、DCM (B) からのクロック 出 力 を 90° 位 相 シフ ト し ます。 この DCM 出 力 のジ ッ タは、 <strong>Spartan</strong>-3 データ シー ト に CLKOUT_PER_JITT_90 と 示 されており、 300ps (±150ps) と 予 測されます。 クロック (C) の 合 計 周 期 ジ ッ タは、 式 3-12 を 使 用 して 算 出 します。 入 力 ジ ッ タ、 DCM(A) からのジッタ、DCM (B) からのジッタ、DCM (C) からのジッタの 4 つの 要 素 が 関 係 する ので、RMS の 式 もそれに 応 じて 拡 張 します。JITTER PK – PK( C)= ( 150ps) 2 + ( 400ps) 2 + ( 300ps) 2 + ( 300ps) 2 = 602ps = ± 301ps例 2 : 一 部 の DCM で CLKFX または CLKFX180 出 力 を 使 用この 例 は、 例 1 : すべての DCM で DLL 出 力 を 使 用 と 同 様 ですが、 一 部 の DCM で DFS ユニッ トからの CLKFX または CLKFX180 出 力 を 使 用 し ます。こ の 例 では、 入 力 ク ロ ッ ク の 周 波 数 は 75MHz で、 周 期 ジ ッ タは 150ps (±75ps) です。DCM (A) では、 例 1 と 同 様 に CLK2X 出 力 を 使 用 する ので、 出 力 ジ ッ タ は 同 じ にな り ます。DCM (B) では、 DCM (A) で 生 成 された 150MHz クロックを 使 用 して、90MHz クロックを 合 成 します。 Clocking Wizard ( 「[Clock Frequency Synthesizer] ページ」 を 参 照 ) によ り、 属 性 がCLKFX_MULTIPLY = 3 および CLKFX_DIVIDE = 5 に 設 定 されます。 Clocking Wizard では、ワース ト ケースの 出 力 周 期 ジ ッ タが 700ps である こ と も 示 されます。JITTER PK – PK( B)= 700ps = ± 350psDCM (C) では、DCM (B) からのクロック 出 力 を 90° 位 相 シフ ト し ます。 この DCM 出 力 のジ ッ タは、 <strong>Spartan</strong>-3 データ シー ト に CLKOUT_PER_JITT_90 と 示 されており、 300ps (±150ps) と 予 測されます。 クロック (C) の 合 計 周 期 ジ ッ タは、 次 の 式 で 算 出 さ れます。 前 の DCM で CLKFX 出 力を 使 用 し てい る ので、 合 計 入 力 ジ ッ タ はワース ト ケースで 700ps です。 RMS の 式 を 使 用 し て 出 力ジ ッ タ を 算 出 する と 、 次 の よ う にな り ます。JITTER PK – PK( C)= ( 700ps) 2 + ( 300ps) 2 = 762ps = ± 381ps146 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


クロック ジッタ ( 位 相 ノ イズ)Rカスケード 接 続 された DCM デザイ ンでの 推 奨 事 項DCM を カ ス ケー ド 接 続 する 場 合 は、 図 3-49 に 示 すよ う に、 LOCKED 信 号 を 次 の DCM の RST入 力 に 接 続 し ます。 カスケード 接 続 された DCM では、 前 の DCM の LOCKED 出 力 がアサー ト され、 クロックが 安 定 したことが 示 されてから、 ロック プ ロ セス を 開 始 する よ う に し ます。DCM を カ ス ケー ド 接 続 する 際 は、 ジ ッ タ が 最 も 影 響 する 出 力 を 最 初 の DCM に 配 置 する 必 要 があります。ジッタのシステム パフォーマンスへの 影 響クロック ジッタは、 有 効 ビッ ト 周 期 を 減 少 させるので、 システム パフ ォーマン スに 悪 影 響 を 与 えます。 <strong>FPGA</strong> アプ リ ケーシ ョ ンのビ ッ ト 周 期 は、 合 計 ビ ッ ト 周 期 T BIT か ら 次 の 式 に 示 す 要 素 を 差 し引 いた ものにな り ます。 シングル データ レー ト (SDR) アプ リ ケーシ ョ ンでは、ク ロ ッ ク 周 期 と ビ ット 周 期 は 同 じですが、 デュアル データ レート (DDR) アプ リ ケーシ ョ ンでは、 ビッ ト 周 期 はク ロ ック 周 期 の 1/2 にな り ます。T AVAILABLE = T BIT – t TOTAL_JITTER – t DUTY_CYCLE_DISTORTIONT BIT =t TOTAL_JITTER =t DUTY_CYCLE_DISTORTION =ビッ ト 周 期 タイム合 計 ク ロ ッ ク ジッ タ。 クロック 入 力 ジッタと DCM 出 力 ジッ タま たはカス ケード 接 続 さ れた DCM の 出 力 ジッタが 含 まれます。デューティ サイクルの 歪 み 仕 様 。 デュアル データ レー ト(DDR) アプ リ ケーシ ョ ンのみで 必 要 で、 それ 以 外 のアプ リ ケーションでは 0 です。 DCM の ク ロ ッ ク 出 力 に 応 じ て、データ シートの 仕 様 CLKOUT_DUTY_CYCLE_DLL または CLKOUT_DUTY_CYCLE_FX を 使 用 します。合 計 ジ ッ タがク ロ ッ ク 周 期 からの 偏 差 でな く 正 の 値 で 示 されている 場 合 は (±100ps ではな く200ps)、 1/2 の 値 (100ps) を 使 用 して く ださい。 ビ ッ ト 周 期 は、 負 の 偏 差 のみによ り 減 少 し ます。 正の 偏 差 はビ ッ ト 周 期 に 追 加 され、 タ イ ミ ング スラックを 増 加 します。例75MHz の 入 力 ク ロ ッ ク 信 号 が <strong>FPGA</strong> に 供 給 さ れ、こ のク ロ ッ ク ソースのジッタが ±100ps である とします。 アプリ ケーショ ン は、 内 部 生 成 し た 150MHz で 合 計 ビ ッ ト 周 期 T BIT が 6.67ns のク ロ ッ クの 立 ち 上 がり エッ ジでデータ を 入 力 し ま す。 ジッ タ の 影 響 を 考 慮 し た 有 効 ビ ッ ト 周 期 T AVAILABLEは、 次 のよ う に 算 出 し ま す。75MHz のクロック 入 力 から、 CLK2X 出 力 で 150MHz のクロックを 生 成 します。 CLK2X 出 力 のワース ト ケースのジ ッ タは、 <strong>Spartan</strong>-3 データ シー ト の CLKOUT_PER_JITT_2X から ±200ps です。 DCM のジッ タ ±200ps とクロック ソースのジッ タ ±100ps を 二 乗 平 均 平 方 根 (RMS) を 使 用 して 加 算 する と 、 合 計 ジ ッ タ t TOTAL_JITTER は ±0.223ns となります。t TOTAL_JITTER= ( ± 100ps) 2 + ( ± 200ps) 2 = ± 223.60ps = ± 0.223nsデータは 立 ち 上 が り エ ッ ジのみで 入 力 さ れるので、 デューテ ィ サイクルの 歪 みによる 影 響 はなく、t DUTY_CYCLE_DISTORTION = 0 となります。有 効 ク ロ ッ ク 周 期 T AVAILABLE は、 合 計 ビ ッ ト 周 期 6.667ns から 減 少 して 6.444ns となるので、 ロジックは 150MHz ではな く 155.1831MHz で 動 作 する 必 要 があ り ます。T AVAILABLE = 6.667ns – 0.223ns = 6.444ns<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 147<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 3 章 : デジタル クロック マネージャ (DCM) の 使 用クロック ジ ッ タ を 最 小 限 に 抑 えるための 推 奨 事 項高 パフ ォーマン スのアプ リ ケーシ ョ ンでは、 ク ロ ッ ク ジッ タによ り ビッ ト 周 期 タイムが 減 少 してしまいます。 シ ス テム 全 体 の ク ロ ッ ク ジ ッ タ を 最 小 限 に 抑 え る には、 次 の 推 奨 事 項 に 従 って く だ さ い。電 源 分 配 システムを 適 切 に 設 計 する電 源 プレーン デカ ップ リ ングなど、 電 力 分 配 システム (PDS) を 適 切 に 設 計 する こ と に よ り 安 定 した 電 源 環 境 を 作 成 する と 、 シ ス テム ジ ッ タ を 低 減 で き ます。 次 のアプ リ ケーシ ョ ン ノートに、PDSデザ イ ンにおけ る 推 奨 事 項 が 示 さ れています。• アプ リ ケーシ ョ ン ノート XAPP623 : 『Power Distribution System (PDS) Design : UsingBypass/Decoupling Capacitors』http://japan.xilinx.com/support/documentation/virtex-ii_application_notes.htmプリント 基 盤 を 適 切 に 設 計 する動 作 周 波 数 範 囲 と アプ リ ケーシ ョ ン 環 境 に 合 わせてプ リ ン ト 基 盤 を 設 計 し ます。• ホワイ ト ペーパー WP174 : 『Methodologies for Efficient <strong>FPGA</strong> Integration into PCBs』http://japan.xilinx.com/support/documentation/spartan-3_white_papers.htm• PCB チェッ ク リ ス トhttp://japan.xilinx.com/products/design_resources/signal_integrity/si_pcbcheck.htm同 時 ス イ ッ チ 出 力 (SSO) の 推 奨 事 項 に 従 うDCM の ク ロ ッ ク 入 力 および ク ロ ッ ク 出 力 の 信 号 破 損 を 回 避 する には、 データ シー ト に 記 載 さ れてい る 同 時 ス イ ッ チ 出 力 (SSO) に 関 する 推 奨 事 項 に 従 って く だ さ い。可 能 な 限 り 、 DCM の 入 力 または 出 力 を 頻 繁 に 切 り 替 わる I/O、 特 に 出 力 電 圧 の 振 幅 が 大 き いか 駆動 電 流 の 大 き い I/O の 近 くに 配 置 しないよ うにしてください。DCM の 入 力 および 出 力 接 続 の 周 囲 に 仮 想 グラ ン ド ピンを 配 置 する (オプシ ョ ン)影 響 を 受 けやすい 高 周 波 数 の DCM 入 力 ま たは 出 力 では、 追 加 のユーザー I/O ピンを 使 用 して PCBのグ ラ ン ド に 接 続 し、 仮 想 グ ラ ン ド ピンを 作 成 します。 これらの 仮 想 グランド ピンを、 DCM 信 号に 隣 接 する I/O パ ッ ド に 配 置 し ます。 これらの I/O パッ ドを、 パッケージ 上 でピンまたはボールが隣 接 し ている だけではな く 、 <strong>FPGA</strong> ダ イ のレベルで 隣 接 するパ ッ ド 配 置 する よ う に し て く だ さ い。BGA パ ッ ケージ 上 で 隣 接 する ボールが、 <strong>FPGA</strong> 上 で 隣 接 する パ ッ ド に 接 続 さ れてい る と は 限 り ません。 こ の よ う にする と 内 部 電 圧 降 下 を 低 減 し、 ジ ッ タ パフ ォーマン ス を 向 上 し ます。仮 想 グ ラ ン ド を 作 成 するには、 図 3-50 に 示 すよ う に、 IOB を GND (Low) を 駆 動 する 出 力 と し てコンフィギュレーションし、 この IOB を 外 部 でグラン ド プレーンに 接 続 します。148 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


クロック ジッタ ( 位 相 ノ イズ)RPCB DCM <strong>FPGA</strong>OBUFIBUFGGNDDCM CLKIN OBUFGNDx462_49_061903図 3-50 : DCM の 入 力 信 号 または 出 力 信 号 の 周 囲 に 仮 想 グ ラ ン ド ピンを 配 置ジッタ パフォーマンスを 向 上 するための V CCAUX に 関 する 考 慮 事 項DCM には、V CCAUX 電 源 入 力 か ら 電 源 が 供 給 さ れます。 <strong>FPGA</strong> への V CCAUX 電 源 入 力 上 に 過 剰 のノイズがあると、DCM の 特 性 、 特 にジ ッ タ パフ ォーマン スに 悪 影 響 を 及 ぼ し ます。 DCM で 最 高のパフ ォーマン ス を 達 成 する には、 次 の 推 奨 事 項 に 従 っ て く だ さ い。注 意 <strong>Spartan</strong>-3A/3A DSP <strong>FPGA</strong> では、 オプシ ョ ンで V CCAUX =3.3V がサポー ト されてお り、 3.3V のみのアプ リ ケーシ ョ ンで2.5V 電 源 レールを 取 り 除 く こ と がで き ます。 V CCO 入 力 に 接 続 さ れてい る 3.3V 電源 に よ り 発 生 する ス イ ッ チ ノイズから、V CCAUX 入 力 を 分 離 し て く だ さ い。 <strong>Spartan</strong>-3AN <strong>FPGA</strong> では、V CCAUX =3.3V が 必 要 です。1. V CCAUX 電 源 またはグ ラ ン ド の 変 動 を、 図 3-51 に 示 すよ う に、 合 計 10mV 未 満 ま たは 1ms で10mV 未 満 に 制 限 する 必 要 があ り ます。 このよ うにすると、 DCM で 変 動 を 適 切 にモニタできます。2. 電 源 の peak-to-peak ノイズを 200mV 以 内 に し ます ( 図 3-51 を 参 照 )。V CCAUX(<strong>FPGA</strong>)VCCAUX 200 mVpeak-to-peakdV < 10 mVDC dV/dt < 10mV/mSdt < 1 mSx462_50_061903図 3-51 : 電 圧 降 下 を 回 避 するために 推 奨 される V CCAUX 電 源3. V CCAUX と V CCO が 同 じ 電 源 プレーンにあ る 場 合 は、 各 V CCAUX /V CCO ピンを 適 切 にデカップリングまたはバイパスします ( 「 電 源 分 配 シ ス テム を 適 切 に 設 計 する」 を 参 照 )。 上 記 のガ イドライン 1 と 2 を 適 用 できない 場 合 は、 V CCAUX 電 源 を V CCO 電 源 か ら 分 離 し ます。4. CLK2X 出 力 は、 特 に 電 源 ま たはグ ラ ン ド の 変 動 の 影 響 を 受 けやすいので、 すべての IOB および CLB が 切 り 替 わる 場 合 は、 CLKFX_MULTIPLY =2 および CLKFX_DIVIDE=1 に 設 定 した CLKFX 出 力 の 方 が 出 力 の 質 が 向 上 し ます。 CLKFX を 使 用 し た 場 合 、 DFS への 入 力 ク ロ ックの 3 サ イ ク ルご と に タ ッ プがア ッ プデー ト さ れます。 CLK2X 出 力 ではア ッ プデー ト の 頻 度が 低 く な り ます。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 149<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 3 章 : デジタル クロック マネージャ (DCM) の 使 用FACTORY_JF 設 定 の 調 整 (<strong>Spartan</strong>-3 <strong>FPGA</strong> のみ)注 意 FACTORY_JF 属 性 は、 <strong>Spartan</strong>-3 <strong>FPGA</strong> にのみ 適 用 され、 <strong>Spartan</strong>-3E および <strong>Spartan</strong>-3A/3AN/3ADSP <strong>FPGA</strong> には 適 用 されません。<strong>FPGA</strong> でクロック ス キ ューおよびジ ッ タ を 削 減 する には、 適 切 に 設 計 さ れ、 デカ ッ プ リ ング さ れた安 定 し た 電 源 を 使 用 するのが 理 想 的 ですが、 FACTORY_JF 属 性 を 0xFFFF に 設 定 する と、 問 題 のあるボードでジッタ パフ ォーマン ス を 向 上 で き る 可 能 性 があ り ます。 FACTORY_JF=FFFF に 設 定する と、 入 力 クロ ッ クの 約 20 サイクルごとに DCM の タ ッ プ 設 定 がア ッ プデー ト さ れます。 周 波 数ベースのデフ ォル ト 設 定 では、 タ ッ プ 設 定 のア ッ プデー ト 頻 度 は 低 く な り ます。FACTORY_JF の 値 を 増 加 する と 、DCM の 周 波 数 に よ り 遅 延 ラ イ ンがア ッ プデー ト さ れる ので、 少量 のジ ッ タ ( 約 30ps) が 発 生 する 場 合 があ り ます。 こ の 理 由 から、FACTORY_JF はデフ ォル ト では最 大 値 に 設 定 さ れていません。 電 源 が 不 安 定 な 場 合 に 発 生 する 位 相 エ ラ ーは、 追 加 のジ ッ タ よ り もかな り 大 きいので、 FACTORY_JF の 値 を 増 加 する こ と でデザ イ ンが 向 上 する 場 合 があ り ます。その 他 のア ド バンス トピックビ ッ ト ス ト リ ーム 生 成 の 設 定DCM に 関 連 し たビ ッ ト ス ト リ ーム 生 成 (BitGen) のオプシ ョ ンが 2 つあ り ます。 詳 細 は、『<strong>Spartan</strong>-3Generation Configuration User Guide』 (UG332) も 参 照 してください。• -g lck_cycle : インスタンシエート されたすべての DCM の LOCKED 出 力 がアサート さ れる まで、 <strong>FPGA</strong> コンフィ ギュレーショ ンのスタート アッ プ シーケンス で 待 機 する よ う 設 定 し ま す。• -g DCMShutdown : パラレル リコンフィギュレーション 中 または JTAG ポー ト を 使 用 し たフル コンフィギュレーション 中 にコンフィギュレーション ロジックに SHUTDOWN コンフィギュレーション コ マン ド が 読 み 込 まれた 場 合 に、 DCM ロジックをリセッ ト します。Project Navigator でのビ ッ ト ス ト リ ーム 生 成 オプシ ョ ンの 設 定ISE Project Navigator を 使 用 する 場 合 は、 図 3-52 に 示 すよ う に、 [Processes] タブで GenerateProgramming File] を 右 ク リ ッ ク し、 [Properties] をクリ ックします。12UG332_c1_04_120306図 3-52 : Project Navigator でのビ ッ ト ス ト リーム 生 成 (BitGen) オプシ ョ ンの 設 定詳 細 は、 『<strong>Spartan</strong>-3 Generation Configuration User Guide』 (UG332) の 「Configuration BitstreamGenerator (BitGen) Settings」 の 章 を 参 照 し て く だ さ い。150 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


その 他 のア ド バンス トピックRコマンド ラ イ ン またはス ク リ プ ト でのビ ッ ト ス ト リ ーム 生 成 オプシ ョ ンの 設 定使 用 可 能 なオプシ ョ ン を 表 示 する には、 コ マン ド ラインに 次 のように 入 力 します。bitgen -help spartan3 (または spartan3e、 spartan3a)DCM の LOCKED 出 力 がアサー ト されるまで コ ン フ ィ ギュ レーシ ョ ン ロジックを 待 機 させるオプシ ョ ンの 設 定DCM の STARTUP_WAIT 属 性 を 設 定 する と 、 <strong>FPGA</strong> のコンフィギュレーシ ョ ン スタートアップロジックは、 DCM の LOCKED 信 号 がアサー ト さ れる まで <strong>FPGA</strong> の DONE 出 力 がアサー ト せずに 待 機 し ます。 こ の よ う に 設 定 する には、 設 計 時 に 2 つの 操 作 が 必 要 です。 まず、コンフ ィ ギュレーシ ョ ンが 完 了 する 前 にロ ッ クする 必 要 のあ る 各 DCM に STARTUP_WAIT 属 性 を 設 定 し、 次 に 図3-53 に 示 すイベン ト がス ター ト ア ッ プ クロックの 6 サイクル 内 に 発 生 するよ うにビッ ト ス ト リーム 生 成 オプシ ョ ンを 変 更 し ます。 DCM が ロ ッ ク し た 後 、 コ ン フ ィ ギ ュ レーシ ョ ン スタートアップシーケンスを 完 了 させるのに 必 要 なだけコンフ ィ ギュ レーシ ョ ン クロック サイクルを 供 給 する 必要 があ り ます。Start-up Cycles0 1 2 3 4 5 6Start-up CLKGTS_cycleALCK_cycleBGWE_cycleCDONE_cycleD図 3-53 : スタートアップ ロジックと DCM の LOCKED 出 力 の 関 係a. 外 部 フ ィ ー ド バ ッ ク を 使 用 する 場 合 は、 <strong>FPGA</strong> の 内 部 グ ローバル トライステート(GTS_cycle) 信 号 をデ ィ アサー ト し て、 すべての I/O 信 号 を 有 効 にする 必 要 があ り ます。b. GTS_cycle の 後 、ス ター ト ア ッ プ ロジックが DCM の LOCKED がアサート されるまで 待機 する サ イ ク ルを 設 定 し ます。 DCM がクロック 信 号 にロックするためには、DCM に 外 部入 力 ( クロックまたはフィードバック 信 号 ) が 必 要 です。c. DCM がロ ッ ク 状 態 になっ た 後 、<strong>FPGA</strong> の 内 部 グロ ーバル ライト イネーブル (GWE_cycle)信 号 を アサー ト し ます。d. DONE 信 号 をアサー ト し ます。図 3-54 に、 これらのオプシ ョ ン を Project Navigator で 設 定 する 方 法 を 示 し ます。x462_52_062403<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 151<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 3 章 : デジタル クロック マネージャ (DCM) の 使 用[Startup Options] [Done] [Release DLL](LCK_cycle)[Release DLL] (LCK_cycle)DCMLOCKED[Enable Output] (GTS_cycle)[Release DLL] (LCK_cycle) ,<strong>UG331</strong>_c3_17_022407図 3-54 : スタートアップ シーケンス オプシ ョ ン特 定 のス ター ト ア ッ プ フェーズのタイ ミングおよび GWE_cycle と DONE_cycle のタイ ミ ングは柔 軟 に 設 定 で き ますが、 DCM に STARTUP_WAIT 属 性 を 設 定 し てい る 場 合 は、 GTS_cycle はLCK_cycle の 前 に 発 生 する 必 要 があ り ます。 このよ うにしないと DCM がロッ ク 状 態 にならず、 コンフィギュレーショ ンが 完 了 しません。 同 様 に、 外 部 フ ィ ー ド バ ッ ク を 使 用 し てい る 場 合 は、 外 部フィードバック 信 号 が DCM に 伝 搬 される よ う に、まず <strong>FPGA</strong> の 出 力 を イ ネーブルにする 必 要 があります (GTS_cycle)。パーシャル リコンフィギュレーション 中 または JTAG を 介 したフル リコンフィギュレーションの DCM のリセッ トもう 1 つのビ ッ ト ス ト リ ーム オプシ ョ ンは、 SelectMAP を 介 した リ コンフ ィ ギュレーシ ョ ン 中 または JTAG ポー ト を 介 し たフルまたはパーシ ャル リコンフィギュレーション 中 に、<strong>FPGA</strong> 内 のすべての DCM を リセットします。 こ のオプシ ョ ンがオンの 場 合 、 SHUTDOWN コマンド シーケンス 中 に AGHIGH コンフィギュレーション コマンドが 発 行 されると、 DCM がリセットされます。JTAG を 介 した リ コンフ ィ ギュレーシ ョ ン 中 の DCM の リ セ ッ ト は 必 須 です。 Project Navigator のビ ッ ト ス ト リ ーム 生 成 オプシ ョ ン を 変 更 し て く だ さ い ( 「Project Navigator でのビ ッ ト ス ト リ ーム生 成 オプシ ョ ンの 設 定 」 を 参 照 )。 図 3-55 に 示 すよ う に、 [Process Properties] ダイアログ ボックスの [Category] で [Configuration Options] をクリックし、[Reset DCM if SHUTDOWN & AGHIGHperformed] をオンにします。152 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


その 他 のア ド バンス トピックR[Configuration Options] SHUTDOWN AHIGH <strong>FPGA</strong> DCM CLKIN の 一 時 停 止<strong>UG331</strong>_c3_18_120306図 3-55 : リコンフィギュレーション 中 に DCM をリセッ トするコンフィギュレーション オプシ ョ ン精 密 アナロ グ 測 定 中 のシ ス テム 全 体 の ノ イ ズを 低 減 する ため、 <strong>FPGA</strong> アプ リ ケーシ ョ ンに 悪 影 響 を与 えずに DCM の ク ロ ッ ク 入 力 を 一 時 的 に 停 止 する こ と が 可 能 です。 これは、 DCM が 完 全 なデジタルで、 安 定 し たシ ス テムであ る か ら です。 まず DCM が 入 力 クロックにロックされ、LOCKED 出力 がアサー ト される 必 要 があ り ます。 DCM がリセットされない 場 合 、 次 のガイドラインに 従 っていれば、 ス キ ュー 調 整 回 路 にそれほど 影 響 を 与 えずに、 CLKIN 入 力 ク ロ ッ ク を 一 時 的 に 停 止 で きます。• ク ロ ッ ク は、 タ ッ プ 遅 延 が 変 化 する 原 因 と な るデバイ スの 温 度 低 下 を 最 小 限 に 抑 え る ため、100ms 以 上 停 止 し ない よ う に し ます。• クロックは Low の 間 に 停 止 し、 再 開 し た と きに High の 半 周 期 を 生 成 する よ う に し ます。DCM の LOCKED 出 力 は High に 保 持 され、 ク ロ ッ クが 再 開 し た と きにも High のままなので、LOCKED が High で も 有 効 な ク ロ ッ ク が 生 成 さ れている と は 限 り ません。 こ の 状 態 は ク ロ ッ ク 入力 ジ ッ タ の 仕 様 に 違 反 する も のですが、 上 記 のガ イ ド ラ イ ンに 従 っ ていれば 機 能 し ます。CLKIN を 停 止 しても、DCM のデジ タル 遅 延 ラ イ ンにク ロ ッ ク が 残 っているため、 さ らに 1 ~ 8 サイクルのクロックが 出 力 されます。 同 様 に、 ク ロ ッ ク が 再 開 する と 、 入 力 ク ロ ッ ク が 遅 延 ラ イ ン を満 たすまでの 1 ~ 4 クロック サイクルの 間 、クロックは 生 成 されません。 遅 延 ラ イ ンは、 通 常 2 ~ 3ク ロ ッ ク 内 の 間 に 満 た されます。入 力 ク ロ ッ ク の 位 相 をシ フ ト する こ と も 可 能 です。 クロックをシフトすると、 位 相 シフトは 1 ~ 4サイ クルの 間 に 出 力 ク ロ ッ ク に 伝 搬 されます。 こ の 間 、 DCM の 制 御 機 能 は 中 断 さ れません。図 3-56 に、 CLKIN 入 力 ク ロ ッ ク を 一 時 的 に 停 止 し た 例 を 示 し ます。 この 図 は、 CLK2X クロック出 力 への 影 響 も 示 し ます。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 153<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 3 章 : デジタル クロック マネージャ (DCM) の 使 用100ms HighCLKINCLK2Xx462_55_062403図 3-56 : CLKIN ク ロ ッ ク 入 力 を 一 時 的 に 停 止関 連 資 料 および リ フ ァ レ ンス• データ シー ト DS099 : 『<strong>Spartan</strong>-3 <strong>FPGA</strong> Family : Complete Data Sheet』DCM の 説 明 と 仕 様http://japan.xilinx.com/support/documentation/spartan-3_data_sheets.htm• データ シー ト DS312 : 『<strong>Spartan</strong>-3E <strong>FPGA</strong> Family : Complete Data Sheet』DCM の 仕 様http://japan.xilinx.com/support/documentation/spartan-3e_data_sheets.htm• データ シー ト DS529 : 『<strong>Spartan</strong>-3A <strong>FPGA</strong> Family : Data Sheet』DCM の 仕 様http://japan.xilinx.com/support/documentation/spartan-3a_data_sheets.htm• データ シー ト DS557 : 『<strong>Spartan</strong>-3AN <strong>FPGA</strong> Family Data Sheet』DCM の 仕 様http://japan.xilinx.com/support/documentation/spartan-3an_data_sheets.htm• データ シー ト DS610 : 『<strong>Spartan</strong>-3A DSP <strong>FPGA</strong> Family : Data Sheet』DCM の 仕 様http://japan.xilinx.com/support/documentation/spartan-3a_dsp_data_sheets.htm• <strong>Spartan</strong>-3A/3AN/3A DSP CLKFX ジッタ カ リキュレータ入 力 ク ロ ッ ク と 出 力 ク ロ ッ ク の 周 波 数 に 基 づいて DFS 出 力 のジッ タ を 算 出 する Excel ファイルhttp://japan.xilinx.com/support/documentation/data_sheets/s3a_jitter_calc.zip• ライブラリ ガイド (DCM プリ ミティブの 説 明 ) および 『 開 発 システム リファレンス ガイド』(BitGen ビ ッ ト ス ト リ ーム 生 成 プ ロ グ ラ ム と オプシ ョ ン)http://japan.xilinx.com/support/software_manuals.htm• アプ リ ケーシ ョ ン ノート XAPP259 : 『System Interface Timing Parameters』http://japan.xilinx.com/support/documentation/application_notes.htm• アプ リ ケーシ ョ ン ノート XAPP268 : 『Dynamic Phase Alignment』http://japan.xilinx.com/support/documentation/application_notes.htm• アプ リ ケーシ ョ ン ノート XAPP485 : 『1:7 Deserialization in <strong>Spartan</strong>-3E/3A <strong>FPGA</strong>s at SpeedsUp to 666 Mbps』http://japan.xilinx.com/support/documentation/spartan-3a_application_notes.htm• アプ リ ケーシ ョ ン ノート XAPP486 : 『7:1 Serialization in <strong>Spartan</strong>-3E <strong>FPGA</strong>s at Speeds Up to666 Mbps』http://japan.xilinx.com/support/documentation/spartan-3e_application_notes.htm• アプ リ ケーシ ョ ン ノート XAPP622 : 『644-MHz SDR LVDS トランスミッタ/レシーバ』http://japan.xilinx.com/support/documentation/virtex-ii_application_notes.htm154 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 4 章ブロック RAM の 使 用概 要<strong>Spartan</strong> ® -3 ジェネレーション <strong>FPGA</strong> には、 大 型 のオンチップ メモリが 必 要 なアプリケーション 用に、 効 率 的 な SelectRAM メモリ ブロッ クが 含 まれています。 コンフィギュレーション オプシ ョ ンを 使 用 する こ とによ り、 SelectRAM ブロックでさまざまなデータ 幅 およびワード 数 の RAM、ROM、 FIFO、 大 型 ルックアップ テーブル、 データ 幅 コンバータ、 循 環 バッファ、 シフ ト レジスタを 作 成 できます。 この 章 では、ブロック RAM の 特 徴 と 機 能 、 CORE Generator およびVHDL/Verilog イ ン ス タ ンシエーシ ョ ン を 使 用 し た 各 種 オプシ ョ ンの 指 定 方 法 を 説 明 し ます。 それほど 一 般 的 でないブ ロ ッ ク RAM アプ リ ケーシ ョ ンも、 ツール、 アプ リ ケーシ ョ ン ノ ー ト 、 資 料 への 参 照 と 共 に 示 し ます。はじめにすべての <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> には、 列 に 並 べられた 複 数 のブ ロ ッ ク RAM が 含 まれています。 ブロック RAM の 合 計 数 は、 表 4-1 に 示 すよ う に、 <strong>Spartan</strong>-3 ジェネレーショ ン <strong>FPGA</strong>のサイズによって 異 な り ます。表 4-1 : <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> で 使 用 可 能 なブロ ッ ク RAM<strong>Spartan</strong>-3 ジェネレーシ ョ ン <strong>FPGA</strong>デバイスRAM の 列 数列 ごとのブロ ッ クRAM 数ブロック RAMの 合 計 数合 計 ビ ッ ト 数合 計 キロビット 数<strong>Spartan</strong>-3A DSP XC3SD1800A 4 20 ~ 22 84 1,548,288 1,512KXC3SD3400A 5 24 ~ 26 126 2,322,432 2,268K<strong>Spartan</strong>-3A/3AN XC3S50A/AN 1 3 3 55,296 54KXC3S200A/AN 2 8 16 294,912 288KXC3S400A/AN 2 10 20 368,640 360KXC3S700A/AN 2 10 20 368,640 360KXC3S1400A/AN 2 16 32 589,824 576K<strong>Spartan</strong>-3E XC3S100E 1 4 4 73,728 72KXC3S250E 2 6 12 221,184 216KXC3S500E 2 10 20 368,640 360KXC3S1200E 2 14 28 516,096 504KXC3S1600E 2 18 36 663,552 648K<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 155<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 4 章 : ブロック RAM の 使 用表 4-1 : <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> で 使 用 可 能 なブロ ッ ク RAM ( 続 き)<strong>Spartan</strong>-3 ジェネレーシ ョ ン <strong>FPGA</strong>デバイス<strong>Spartan</strong>-3 XC3S50 1 4 4 73,728 72Kメモ :1. 1Kb = 1,024 ビッ ト ( メモリの 慣 例 に 基 づく)RAM の 列 数列 ごとのブロ ッ クRAM 数ブロック RAMの 合 計 数合 計 ビ ッ ト 数合 計 キロビット 数XC3S200 2 6 12 221,184 216KXC3S400 2 8 16 294,912 288KXC3S1000 2 12 24 442,368 432KXC3S1500 2 16 32 589,824 576KXC3S2000 2 20 40 737,280 720KXC3S4000 4 24 96 1,769,472 1,728KXC3S5000 4 26 104 1,916,928 1,872K各 ブロ ッ ク RAM には 18,432 ビ ットの 高 速 スタティック RAM が 含 まれてお り、 その う ち 16Kビ ッ ト がデータ 格 納 用 、 2K ビッ トがパリティ データ ビット 用 に 割 り 当 てられています。 ブロックRAM には、 ポー ト A および ポー ト B の 2 つの 独 立 し たア ク セス ポー ト があ り ます。 これらのポー ト は 完 全 に 対 称 構 造 であ り 交 換 可 能 で、 データ の 読 み 出 しおよび 書 き 込 みの 両 方 がサポー ト されています。 各 ポー ト は、 それぞれのク ロ ッ ク、 ク ロ ッ ク イネーブル、 ライ ト イ ネーブルに 同 期 します。 読 み 出 し も 同 期 操 作 であ り 、 ク ロ ッ ク エッジとクロック イ ネーブルが 必 要 です。ブロック RAM は 物 理 的 にはデュ アル ポー ト メモリですが、 図 4-1 に 示 すよ う に、 シングル ポート メモリ としても 使 用 できます。 また、 各 ブロッ ク メモリは、 複 数 のコンフィギュレーションまたはアスペク ト 比 をサポー ト し ます。 表 4-2 に、 SelectRAM の 主 な 機 能 を 示 し ます。複 数 のブ ロ ッ ク RAM を カ ス ケー ド 接 続 する と 、 専 用 配 線 リ ソ ース を 使 用 し て、 タ イ ミ ングにほ とんど 悪 影 響 を 与 えずに、 ワード 数 が 多 く 幅 の 広 い メ モ リ を 作 成 でき ます。<strong>Spartan</strong>-3A DSP <strong>FPGA</strong> のブロ ッ ク RAM には、Virtex ® -4 のブロ ッ ク RAM 出 力 レ ジ ス タ と 同 様 の出 力 レ ジ ス タ (オプシ ョ ン) が 含 まれています。 出 力 レ ジ ス タは、 すべてのデータ 幅 で 250MHz 以上 のス ピー ド で 動 作 可 能 です。156 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


はじめにRWEAENASSRACLKAADDRA[r A –1:0]DIA[w A –1:0]DIPA[3:0]RAM16_w A _w BDOPA[p A –1:0]DOA[w A –1:0]WEBENBSSRBCLKBADDRB[r B –1:0]DIB[w B –1:0]DIPB[3:0]DOPB[p B –1:0]DOB[w B –1:0]WEENSSRCLKADDR[r–1:0]DI[w–1:0]DIP[p–1:0]RAM16_SwDOP[p–1:0]DO[w–1:0]メモ :(a) Dual-Port(b) Single-Port1. w A および w B は、 それぞれポー ト A およびポート B の 合 計 データ パス 幅 (データ ビッ ト とパリティ ビット) を 表 す 整 数 です。2. p A および p B は、 パ リ テ ィ ビッ ト として 使 用 されるデータ パス ラインの 数 を 示 します。3. r A および r B は、 それぞれポー ト A および B でのア ド レス バス 幅 を 表 す 整 数 です。4. 両 ポー ト の 制 御 信 号 CLK、 WE、 EN、 および SSR には、 極 性 を 反 転 するオプシ ョ ンがあ り ます。図 4-1 : デュアル ポー ト (a) およびシングル ポー ト (b) メモリとして 動 作 する SelectRAM 18K ブロック表 4-2 : SelectRAM 18K ブロック メ モ リ の 機 能 と アプ リ ケーシ ョ ンX463_01_060606RAM の 合 計 ビ ッ ト 数(パリティを 含 む)メモリの 構 成パ リ テ ィ18,432 (16K データ + 2K パリティ )16Kx18Kx24Kx42Kx8 (パリティなし)2Kx9 (x8 + パリティ )1Kx16 (パリティなし)1Kx18 (x16 + 2 パリティ )512x32 (パリティなし)512x36 (x32 + 4 パリティ )256x72 (シングル ポー ト のみ)バイ ト 幅 よ り 広 いメ モリ で 使 用 可 能 (オプショ ン)。 パリ ティビ ッ ト は、オプショ ン で 追 加 データ ビット と して 使 用 できます。パフォーマンス 240MHz 以 上 ( 各 <strong>FPGA</strong> のデータ シー ト を 参 照 )<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 157<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 4 章 : ブロック RAM の 使 用表 4-2 : SelectRAM 18K ブロック メ モ リ の 機 能 と アプ リ ケーシ ョ ン ( 続 き)タイミング インターフェイスシングル ポー トデュアル ポー トROM、 RAM の 初 期 内 容混 合 データ ポー ト 幅単 純 な 同 期 インターフェイス。 書 き 込 みにセッ ト アップ タイム、 読 み 込 みに clock-to-output 遅 延 のあ る レ ジ ス タ に 対 し て 書き 込 みおよび 読 み 出 し を 実 行 する 場 合 と 同 様 です。あ りあ りあ りあ り電 源 投 入 時 の 状 態 ユーザー 定 義 のデータ、 デフ ォル ト では 0可 能 なアプ リ ケーシ ョ ンロ ーカル データ 格 納 、 FIFO、 エラスティック ストア、バッファ、スタック、 循 環 バッファ、シフト レジスタ、 遅 延 ライン、波 形 の 格 納 および 生 成 、 ダ イ レ ク ト デジタル 合 成 、 CAM、 連想 メモリ、 ファンクション テーブル、 フ ァ ン ク シ ョ ン ジェネレータ、 多 入 力 ロ ジ ッ ク ファンクション、 コード コンバータ、エンコーダ、 デコーダ、 カウンタ、 ステート マシン、 マイ ク ロシーケンサ、 エンベデッ ド プロセッサのプログラム 保 存<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> 間 でのブロ ッ ク RAM の 違 いブロック RAM はすべての <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> で 同 様 ですが、 <strong>Spartan</strong>-3A/3AN/3ADSP <strong>FPGA</strong> のブロ ッ ク RAM には、 表 4-3 に 示 すよ う に、<strong>Spartan</strong>-3E および <strong>Spartan</strong>-3 のブロ ッ クRAM <strong>FPGA</strong> と 比 較 して 重 要 な 改 善 点 があります。 <strong>Spartan</strong>-3A/3AN/3A DSP <strong>FPGA</strong> にはバイ ト レベルの ラ イ ト イネーブルがあり、RAMB16BWE デザイ ン プリ ミティブでサポートされています。<strong>Spartan</strong>-3A/3AN/3A DSP <strong>FPGA</strong> デザイ ンでは、 <strong>Spartan</strong>-3 および <strong>Spartan</strong>-3E <strong>FPGA</strong> デザイ ンで 使用 される RAMB16 デザイ ン プ リ ミ テ ィ ブ も サポー ト さ れます。タ イ ミ ング パラ メータは <strong>Spartan</strong>-3/3E と <strong>Spartan</strong>-3A/3AN/3A DSP で 同 様 に 機 能 し ますが、 名 前 は 異 な り ます。 <strong>Spartan</strong>-3A DSP<strong>FPGA</strong> のブロ ッ ク RAM には 出 力 レ ジ ス タ も 追 加 さ れてお り 、 RAMB16BWER プリ ミティブでサポー ト されます。表 4-3 : <strong>Spartan</strong>-3/3E、 <strong>Spartan</strong>-3A/3AN、 <strong>Spartan</strong>-3A DSP のブロ ッ ク RAM の 比 較機 能<strong>Spartan</strong>-3/<strong>Spartan</strong>-3Eブロック RAM<strong>Spartan</strong>-3A/<strong>Spartan</strong>-3ANブロック RAM<strong>Spartan</strong>-3ADSP ブロックRAMx9、 x18、 x36 コンフィギュレーションの各 バイ ト レーンでのバイ ト イネーブルなし(シングル ライト イネーブルのみ)ありありブロッ ク RAM と x36 コンフィギュレーションの 乗 算 器 の 間 の 専 用 配 線 リ ソ ースなし あり 汎 用出 力 レ ジ ス タ なし なし ありRAMB16 プリ ミティブでサポート あり あり あり158 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


ブロック RAM の 位 置 と その 周 辺R表 4-3 : <strong>Spartan</strong>-3/3E、 <strong>Spartan</strong>-3A/3AN、 <strong>Spartan</strong>-3A DSP のブロ ッ ク RAM の 比 較 ( 続 き)機 能RAMB16BWE プリ ミティブ (バイ ト レベルライト イネーブル 付 き RAMB16) でサポー トRAMB16BWER プ リ ミティブ ( 出 力 レ ジ ス タ付 き RAMB16BWE) でサポー ト<strong>Spartan</strong>-3/<strong>Spartan</strong>-3Eブロック RAM<strong>Spartan</strong>-3A/<strong>Spartan</strong>-3ANブロック RAM<strong>Spartan</strong>-3ADSP ブロックRAMなし あり ありなし なし ありザイ リ ンクスの CORE Generator では、 <strong>Spartan</strong>-3 デバイ ス 用 のブロ ッ ク RAM を 含 む 次 のよ う なモジュールがサポート されています。• エンベデッ ド デュアル ポー ト またはシングル ポー ト RAM モジュール• ROM モジュール• 同 期 および 非 同 期 FIFO モジュール• CAM (Content Addressable Memory) モジュールまた、ブロッ ク RAM をザイ リ ンクス デザイ ン ライブラリから 適 切 な RAMB16 モジュールを 使 用し て 合 成 ベースのデザ イ ンに イ ン ス タ ンシエー ト する こ と も 可 能 です。この 章 では、 ブロック RAM の 属 性 と アプ リ ケーシ ョ ンの 詳 細 を 含 め、 <strong>Spartan</strong>-3 ブロッ ク RAM機 能 の 信 号 と 属 性 について 説 明 し ます。ブロック RAM の 位 置 と その 周 辺ブロッ ク RAM は 列 に 並 べられています。 図 4-2 に、 XC3S200A でのブロ ッ ク RAM 列 を 示 し ます。 XC3S50A のブロ ッ ク RAM 列 は 1 つで、 デバイ スの 左 辺 から CLB 列 2 つ 分 内 側 にあ り ます。XC3S50 よりも 大 型 の <strong>Spartan</strong>-3 ジェネレーショ ン <strong>FPGA</strong> にはブロ ッ ク RAM の 列 が 2 つ 以 上 あり 、デバ イ スの 左 辺 および 右 辺 の I/O から CLB 列 2 つ 分 内 側 にあ り ます。 XC3S4000、XC3S5000、および XC3SD1800A では、 2 つのブロ ッ ク RAM 列 に 加 え、 さ ら にブロ ッ ク RAM 列 が 2 つあ り( 合 計 4 列 )、 一 番 右 と 一 番 左 のブロ ッ ク RAM 列 の 間 におおよそ 均 等 に 配 置 されています。XC3SD3400A にはブロ ッ ク RAM 列 がも う 1 つあ り 、 中 央 の DCM から CLB 列 2 つ 分 左 側 にあります。デバイスによっては、ブロック RAM 列 が DCM または CLB で 分 離 されています。 表 4-1に、 <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> 上 のブロ ッ ク RAM の 列 数 と 合 計 ビ ッ ト 数 が 示 されています。 一 番 右 と 一 番 左 のブ ロ ッ ク RAM は、 <strong>FPGA</strong> に 入 出 力 するバス を 一 時 的 に 格 納 し た り 、 再 同 期する のに 特 に 有 益 です。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 159<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 4 章 : ブロック RAM の 使 用Block RAM ColumnsXC3S50/A/ANXC3S100EXC3S200/A/ANXC3S400/A/ANXC3S700A/ANXC3S1400A/ANXC3S250EXC3S500EXC3S1200EXC3S1600EXC3S1000XC3S1500XC3S2000Embedded Multipliers2 CLBs 2 CLBs図 4-2 : 列 に 並 べられたブ ロ ッ ク RAM (XC3S200 のフロアプラン)XC3S4000XC3S5000XC3SD1800AXC3SD3400AUG332_c4_12_011008各 ブロ ッ ク RAM の 横 には、エンベデッ ド 18X18 ハード ウ ェ ア 乗 算 器 があり ま す。 ブロ ッ ク RAMと エン ベデッ ド 乗 算 器 を 隣 接 さ せて 配 置 する こ と で、 一 部 のデジタ ル 信 号 処 理 のパフ ォ ーマンス を向 上 さ せていま す。 <strong>Spartan</strong>-3A DSP <strong>FPGA</strong> では、 乗 算 器 は DSP48A ブロ ッ ク にも 拡 張 さ れています。ブロック RAM 周 辺 の 専 用 イ ン ターコ ネ ク ト に よ り 、 ア ド レ スおよびデータ 信 号 を 効 率 的 に 分 配 できます。 また、 複 数 のブロッ ク RAM をカスケード 接 続 して、 データ 幅 が 広 く ワード 数 の 多 いメモリ を 作 成 で き ます。ブロック RAM と 乗 算 器 の 配 線 関 係各 乗 算 器 は、 18K ビットの ブロッ ク RAM の 隣 にあ り 、 一 部 の イ ン ターコ ネ ク ト リソースを 共 有しています。<strong>Spartan</strong>-3 および <strong>Spartan</strong>-3E <strong>FPGA</strong> では、32/36 ビット 幅 のデータ 用 に 18K ビッ トのブロック RAM をコンフィギュレーションすると (512 X 36 モード)、こ のブ ロ ッ ク RAM のポー トA データ 入 力 の 上 位 16 ビ ッ ト と 被 乗 数 入 力 A の 下 位 16 ビ ッ ト が 共 有 さ れる ため、 隣 接 する 専 用乗 算 器 が 使 用 で き ません。 同 様 に、 被 乗 数 入 力 B の 下 位 16 ビットもポート B のデータ 入 力 の 上 位16 ビ ッ ト と 共 有 さ れます。詳 細 は、 第 11 章 の 「 乗 算 器 と ブ ロ ッ ク RAM の 接 続 」 を 参 照 して く ださい。160 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


データ フローRデータ フロー<strong>Spartan</strong>-3 ジェネレーショ ンのブロック RAM は、 完 全 なデュ アル ポー ト メモリであり、 図 4-3 に示 すデータ フ ロー と 操 作 が 同 時 にサポー ト さ れます。 2 つのポー ト は 同 じ メ モ リ ビッ トにアクセスし ますが、 ポー ト のデータ 幅 に よ っ て、 異 な る ア ド レ ス 指 定 方 法 を 使 用 で き ます。1. ポー ト A を 独 立 したシングル ポー ト RAM と し て 使 用 する。 1 セッ トのアドレス ラインを 使用 し て 読 み 出 しおよび 書 き 込 みを 同 時 に 実 行 で き ます。2. ポー ト B を 独 立 したシングル ポー ト RAM と し て 使 用 する。 1 セッ トのアドレス ラインを 使用 し て 読 み 出 しおよび 書 き 込 みを 同 時 に 実 行 で き ます。3. ポー ト A をライ ト アドレスを 持 つ 書 き 込 みポート、ポート B をリード ア ド レ ス を 持 つ 読 み 出し ポー ト と し て 使 用 する。 ポー ト A とポート B には、 異 な るデータ 幅 を 指 定 で き ます。4. ポー ト B をライト アドレスを 持 つ 書 き 込 みポート、ポート A をリード ア ド レ ス を 持 つ 読 み 出し ポー ト と し て 使 用 する。 ポー ト B とポート A には、 異 な るデータ 幅 を 指 定 で き ます。4 1 A<strong>Spartan</strong>-3 RAM B 32X463_03_060606図 4-3 : シングル ポー ト およびデュアル ポー ト のデータ 転 送 をサポー ト するブロ ッ ク RAM信 号ブロッ ク RAM プ リ ミ テ ィ ブに 接 続 さ れてい る 信 号 は、 次 に 示 す 4 つのカテゴ リ に 分 類 でき ます。表 4-4 に、 ブロ ッ ク RAM イ ン ターフ ェ イ ス 信 号 、 シングル ポー ト およびデュアル ポー ト メモリの 信 号 名 、 信 号 の 方 向 を 示 し ます。1. データ 入 力 および 出 力2. パ リ テ ィ 入 力 および 出 力 (データ ポー ト がバ イ ト 幅 以 上 の 場 合 )3. メモリ ロ ケーシ ョ ン を 指 定 する ア ド レ ス 入 力4. 読 み 出 し、 書 き 込 み、 セ ッ ト / リ セ ッ ト 操 作 を 制 御 する 制 御 信 号<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 161<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 4 章 : ブロック RAM の 使 用表 4-4 : ブロック RAM インターフェイス 信 号信 号 の 説 明シングル ポー トデュアル ポー トポー ト A ポー ト B方 向データ 入 力 バス DI DIA DIB 入 力パリティ データ 入 力 バス(データ ポー ト がバ イ ト 幅 以 上 の 場 合 )DIP DIPA DIPB 入 力データ 出 力 バス DO DOA DOB 出 力パリティ データ 出 力(データ ポー ト がバ イ ト 幅 以 上 の 場 合 )DOP DOPA DOPB 出 力アドレス バス ADDR ADDRA ADDRB 入 力ライト イネーブル WE WEA WEB 入 力クロック イネーブル EN ENA ENB 入 力同 期 セ ッ ト / リセット SSR SSRA SSRB 入 力クロック CLK CLKA CLKB 入 力同 期 / 非 同 期 セ ッ ト / リセット(<strong>Spartan</strong>-3A DSP のみ)なし RSTA RSTB 入 力出 力 レ ジ ス タ (<strong>Spartan</strong>-3A DSP のみ) なし REGCEA REGCEB 入 力データ 入 力 および 出 力ポー ト のデータ ポー ト の 合 計 幅 には、データ バス とパリ ティ バスが 含 まれます ( 図 4-4 を 参 照 )。 たとえば 512x36 のメモリでは、 36 ビッ トのデータ ポー ト 幅 の 最 上 位 に 4 ビッ トのパリティが 含 まれ、 その 後 に 32 ビ ッ ト のデータが 続 き ます。データおよびパ リ テ ィ の 入 力 信 号 と 出 力 信 号 は 常 にバス で、 1 ビッ ト 幅 のコンフィギュレーションでは、 データ 入 力 信 号 は DI[0]、 データ 出 力 信 号 は DO[0] です。データ 入 力 バス - DI[#:0] (DIA[#:0]、 DIB[#:0])データ 入 力 バスは、 RAM に 書 き 込 まれるデータのソースです。クロック イネーブル EN と ライト イネーブル WE 入 力 が High の 場 合 、 CLK 入 力 が Low からHigh に 切 り 替 わる と きに、DI 入 力 バスのデータ がア ド レ ス 入 力 バス ADDR で 指 定 された RAM ロケーシ ョ ンに 書 き 込 まれます。データ 出 力 バス - DO[#:0] (DOA[#:0]、 DOB[#:0])読 み 込 みでは、ア ク テ ィ ブな ク ロ ッ ク エッジでアドレス バス ADDR によ り 指 定 されたメモリ セルの 内 容 が、 データ 出 力 バス DO に 送 信 されます。 同 期 書 き 込 みでは、 データ 出 力 ラ ッ チに 送 信 さ れるデータは WRITE_MODE 属 性 の 設 定 に よ って 異 な り ます (175 ページの 「 同 時 書 き 込 み 中 の 読 み出 し 動 作 - WRITE_MODE」 を 参 照 )。162 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


信 号Rパ リ テ ィ 入 力 および 出 力パ リ テ ィ は、 データ パスがバイ ト 幅 以 上 の 場 合 にのみサポー ト されます。パリティ ビ ッ ト と 呼 んでいますが、 特 別 な 機 能 はな く 、 追 加 のデータ ビ ッ ト と し て 使 用 で き ます。たとえば、データ ワー ド に 関 する 追 加 情 報 の 保 存 、 データ が コー ド ま たはデータ であ る か、 正 の 値か 負 の 値 か、 新 し い 値 か 古 い 値 かなど を 示 すタ グ を 追 加 する ために 使 用 で き ます。ブロッ ク RAM には、 パ リ テ ィ を 生 成 ま たはチェ ッ クする 回 路 は 含 まれていません。 これらの 機 能がアプ リ ケーシ ョ ンで 必 要 な 場 合 は、 CLB ロジック リソースを 使 用 して 作 成 できます。データ 入 力 パリ テ ィ バス - DIP[#:0] (DIPA[#:0]、 DIPB[#:0])クロック イネーブル EN と ライト イネーブル WE 入 力 が High の 場 合 、 CLK 入 力 が Low からHigh に 切 り 替 わる と きに、 DIP 入 力 バスのデータ がア ド レ ス 入 力 バス ADDR で 指 定 された RAMロケーシ ョ ンに 書 き 込 まれます。データ 出 力 パリ テ ィ バス - DOP[#:0] (DOPA[#:0]、 DOPB[#:0])読 み 込 みでは、ア ク テ ィ ブな ク ロ ッ ク エッジでアドレス バス ADDR によ り 指 定 されたメモリ セルの 内 容 が、 パ リ テ ィ 出 力 バス DOP に 送 信 されます。 同 期 書 き 込 みでは、 パ リ テ ィ 出 力 ラ ッ チに 送信 されるデータは WRITE_MODE 属 性 の 設 定 に よ って 異 な り ます (175 ページの 「 同 時 書 き 込 み 中の 読 み 出 し 動 作 - WRITE_MODE」 を 参 照 )。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 163<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 4 章 : ブロック RAM の 使 用512x3635 34 33 32 31 24 23 16 15 8 7P3 P2 P1 P0 3 2 1 0001Kx1817 16 158P3P1P2P0 3 17 2 0010(16Kb 2Kb )2Kx98P3P2P1P07 3 2 1 0032104Kx43 2 1 07 6 5 43 2 1 037 6 5 43 2 1 0 07610(16Kb )8Kx2107 65 43 21 00 37 65 43 21 0FEDC32100765431F1E1D1C16Kx1321003210X463_04_062503図 4-4 : モー ド によ るデー タ の 構 成 と マ ッ プ164 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


信 号Rアドレス 入 力デュアル ポー ト RAM では、2 つのポー ト は 独 立 し て 動 作 し ますが、 同 じ 18Kb のメモリ セルにアクセスします。注 意 ブロッ ク RAM ポー ト がイネーブルの 場 合 (ENA または ENB = High)、 アドレスの 遷 移 はデータシー ト に 記 載 されているポー ト クロック (CLKA または CLKB) に 対 するセ ッ ト ア ップ タイムとホールドタ イ ムの 要 件 を 満 たす 必 要 があ り ます。 RAM 読 み 出 し の 出 力 を 使 用 し ない 場 合 や WE がデ ィ アサー ト されている 場 合 で も、 こ の 要 件 を 満 たす 必 要 があ り ます。 ただ し、 ア ド レ ス 入 力 信 号 に 複 数 サ イ ク ル パスがあ る 場 合 など、 これら の 要 件 を 満 たすこ と が 不 可 能 な 場 合 があ り ます。 こ の 状 況 を 回 避 する には、 ア ド レス 入 力 がセッ ト ア ップおよびホールド 要 件 を 満 たしていないと きには ENA/ENB を 使 用 してポー ト をディスエーブルにします。 ENA/ENB をディ アサー ト する とポー ト がディ スエーブルにな り、 アド レス 入 力 のセ ッ ト ア ッ プおよびホール ド 要 件 が 満 た されていな く て もブロ ッ ク RAM の 内 容 には 影 響 し ません。 通 常の 読 み 出 し/ 書 き 込 みを 実 行 するには、 再 び ENA/ENB をアサート します。アドレス バス - ADDR[#:0] (ADDRA[#:0]、 ADDRB[#:0])アドレス バスは、 読 み 込 みま たは 書 き 込 みを 行 う メ モ リ セルを 選 択 し ます。 表 4-8 に 示 すよ う に、必 要 なア ド レ ス バス 幅 は、 データ 入 力 幅 に よ って 決 ま り ます。制 御 入 力クロック - CLK (CLKA、 CLKB)各 ポー ト は、 それぞれの ク ロ ッ ク に 完 全 に 同 期 し ます。 両 ポー ト の 入 力 ピンのセッ ト ア ップ タイムおよびデータ 出 力 バスの clock-to-out タイムは、そのポートの CLK ピンを 基 準 とします。 クロックのアクテ ィブ エッジはコンフィギュレーション 可 能 で、デフォルトでは 立 ち 上 がりエッジに 設 定 されています。デフ ォル ト では、 読 み 出 し、 書 き 込 み、 リ セ ッ ト 操 作 は、 CLK 入 力 の Low から High への 遷 移 に同 期 し ます。イネーブル - EN (ENA、 ENB)イネーブル 入 力 EN は、 読 み 出 し、 書 き 込 み、 セ ッ ト / リセットを 制 御 します。 EN が Low の 場 合 、データは 書 き 込 まれず、 出 力 DO および DOP の 値 は 変 化 し ません。 EN の 極 性 はコ ン フ ィ ギ ュ レーション 可 能 で、デフォルトではアクティブ High に 設 定 されています。同 期 セ ッ ト / リセットおよびライト イネーブルが 非 アクティブのときに 入 力 EN がアサー ト されると、 クロックの 立 ち 上 がりエッジで、 アドレス バス ADDR で 指 定 された メ モ リ ロケーションの 内容 が 読 み 出 さ れます。ライト イネーブル - WE (WEA、 WEB)ライト イネーブル 入 力 WE は、 RAM へのデータ の 書 き 込 みを 制 御 し ます。 EN と WE の 両 方 がアサー ト さ れてい る 場 合 、 ク ロ ッ ク の 立 ち 上 が り エ ッ ジでデータ 入 力 バスおよびパ リ テ ィ 入 力 バス 上の 値 がア ド レ ス バスで 指 定 されたメモリ ロケーションに 書 き 込 まれます。データ 出 力 ラ ッ チには、 WRITE_MODE 属 性 の 設 定 に 応 じ て、 データ が 読 み 込 まれる 場 合 と 読 み込 まれない 場 合 があ り ます。WE の 極 性 はコンフィ ギュレーショ ン 可 能 で、デフォルト ではアク ティ ブ High に 設 定 さ れていま す。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 165<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 4 章 : ブロック RAM の 使 用すべての <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> では、 データ 幅 にかかわ ら ず、 書 き 込 み 操 作 を 制 御 するライト イネーブル 入 力 を 1 つ 持 つブ ロ ッ ク RAM プリ ミティブ RAM16 がサポー ト されています。 サポー ト されるデータ 構 成 は、164 ページの 図 4-4 を 参 照 して く ださい。RAMB16 プリ ミティブのラ イ ト イネーブルの 動 作 は、 表 4-5 を 参 照 して く ださい。<strong>Spartan</strong>-3A/3AN <strong>FPGA</strong> では、RAMB16 に 4 つのバイ ト レベル ライト イネーブル 入 力 を 追 加 したRAMB16BWE プリ ミティブがサポートされています。 <strong>Spartan</strong>-3A DSP <strong>FPGA</strong> の RAMB16BWERプリ ミティブにも、 同 じバイト レベル ライト イ ネーブル 機 能 があ り ます。 表 4-6 に 示 すよ う に、 独立 したライ ト イネーブル 入 力 によ り 、 複 数 バイ ト のデータ ワードから 選 択 したバイ ト を、 選 択 されていない RAM ロケーシ ョ ンに 影 響 を 与 えずに 書 き 込 むこ とができ ます。 この 機 能 は、MicroBlaze プロセッサ デザイ ンなど、 さ まざまなアプ リ ケーシ ョ ンで 有 益 です。 1Kx18 メモリの 場 合 は、WE0 と WE2 を 接 続 して 下 位 の 9 ビットを 選 択 し、WE1 と WE3 を 接 続 して 上 位 9 ビット を 選 択 し ます。表 4-5 : RAMB16 の 書 き 込 み 動 作 (すべての <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong>)データ 構 成 EN WE CLK 機 能0 X Xブロッ ク RAM はデ ィ スエーブルで、 書 き 込 みは 実行 されません。すべて( 図 4-4 を 参 照 )1 0 ↑ ブロッ ク RAM はイネーブルですが、 書 き 込 みは 実行 されません。1 1 ↑ブロッ ク RAM のデータ 構 成 に 応 じ て、 DI およびDIP 入 力 ポー ト のデータが 指 定 さ れた RAM ロケーシ ョ ンに 書 き 込 まれます。表 4-6 : RAMB16BWE/R の 書 き 込 み 動 作 (<strong>Spartan</strong>-3A/3AN/3A DSP <strong>FPGA</strong> のみ)データ 構 成ENバイ ト レベルライト イネーブル CLK 機 能WE3 WE2 WE1 WE0すべて 0 X X X X Xブロッ ク RAM はデ ィ スエーブルで、 書 き 込 みは 実 行 されません。16Kx18Kx24Kx42Kx910 ↑ ブロッ ク RAM はイネーブルですが、 書 き 込 みは 実 行 されません。1 ↑ DI および DIP 入 力 ポー ト のデータ がア ド レ スで 指 定 された RAM ロケーションに 書 き 込 まれます。1 1 ↑18 ビット 書 き 込 み : DI[15:0] および DIP[1:0] 入 力 ポート のデータ が 指 定 さ れた RAM ロケーションに 書 き 込 まれます。1Kx18 1WE1と 同 じWE0と 同 じ0 1下 位 9 ビッ ト 書 き 込 み : DI[7:0] および DIP[0] 入 力 ポート のデータ のみが 指 定 さ れた RAM ロケーションに 書 き込 まれます。 RAM ロケーションのその 他 のビッ トは 変化 しません。1 0上 位 9 ビット 書 き 込 み : DI[15:8] および DIP[1] 入 力ポー ト のデータ のみが 指 定 さ れた RAM ロケーションに書 き 込 まれます。 RAM ロケーションのその 他 のビッ トは 変 化 し ません。166 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


信 号R表 4-6 : RAMB16BWE/R の 書 き 込 み 動 作 (<strong>Spartan</strong>-3A/3AN/3A DSP <strong>FPGA</strong> のみ) ( 続 き)データ 構 成ENバイ ト レベルライト イネーブル CLK 機 能WE3 WE2 WE1 WE0512x36 11 1 1 1 ↑0 0 0 1 ↑0 0 1 0 ↑0 0 1 1 ↑1 1 0 0 ↑36 ビット 書 き 込 み : DI[31:0] および DIP[3:0] 入 力 ポート のデータ が 指 定 さ れた RAM ロケーションに 書 き 込 まれます。最 下 位 9 ビット 書 き 込 み : DI[7:0] および DIP[0] 入 力ポー ト のデータ のみが 指 定 さ れた RAM ロケーションに書 き 込 まれます。 RAM ロケーションのその 他 のビッ トは 変 化 し ません。次 の 9 ビット 書 き 込 み : DI[15:8] および DIP[1] 入 力ポー ト のデータ のみが 指 定 さ れた RAM ロケーションに書 き 込 まれます。 RAM ロケーションのその 他 のビッ トは 変 化 し ません。下 位 18 ビット 書 き 込 み : DI[15:0] および DIP[1:0] 入 力ポー ト のデータ のみが 指 定 さ れた RAM ロケーションに書 き 込 まれます。 RAM ロケーションのその 他 のビッ トは 変 化 し ません。上 位 18 ビット 書 き 込 み : DI[31:16] および DIP[3:2] 入力 ポー ト のデータのみが 指 定 された RAM ロケーションに 書 き 込 まれます。 RAM ロケーションのその 他 のビット は 変 化 し ません。出 力 レ ジス タ イネーブル - REGCE (REGCEA、 REGCEB)(<strong>Spartan</strong>-3A DSP のみ)出 力 レ ジ ス タ ライト イネーブル 入 力 REGCE は、RAM の 出 力 レジス タへのデータ 書 き 込 みを 制 御します。 EN と REGCE がアサートされている 場 合 、クロックの 立 ち 上 がりエッジでブロック RAMの 出 力 の 値 が 出 力 レジス タに 書 き 込 まれます。REGCE の 極 性 はコ ンフ ィ ギ ュ レーシ ョ ン 可 能 で、 デフ ォル ト ではア ク テ ィ ブ High に 設 定 されています。出 力 ラ ッ チ 同 期 セ ッ ト /リセッ ト - SSR (SSRA、 SSRB)同 期 セ ッ ト / リセット 入 力 SSR は、データ 出 力 ラ ッ チの 値 を SRVAL 属 性 で 指 定 さ れた 値 に し ます。SSR とイネーブル 信 号 EN が High の 場 合 、 DO および DOP 出 力 のデータ 出 力 ラ ッ チは ク ロ ッ クに 同 期 し て SRVAL 属 性 で 設 定 さ れた 値 (0 または 1) に 設 定 されます。同 期 セ ッ ト / リ セ ッ ト 操 作 に よ り ブ ロ ッ ク RAM セルが 変 化 する こ と はな く 、も う 1 つのポー ト での書 き 込 みに も 影 響 し ません。SSR の 極 性 はコンフィ ギュレーショ ン 可 能 で、デフォルト ではアク ティ ブ High に 設 定 さ れていま す。SSR 入 力 は、RAMB16 および RAMB16BWE コンポーネントにあります。<strong>Spartan</strong>-3A DSP <strong>FPGA</strong>用 の RAMB16BWER コンポーネントでは、 SSR 入 力 の 代 わ り に RST 入 力 が 提 供 さ れています。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 167<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 4 章 : ブロック RAM の 使 用出 力 ラ ッ チ レジスタ 同 期 / 非 同 期 リ セ ッ ト - RST (RSTA、 RSTB)(<strong>Spartan</strong>-3A DSP のみ)<strong>Spartan</strong>-3A DSP <strong>FPGA</strong>のブロ ッ ク RAM セッ ト/ リ セ ッ ト 入 力 は、 同 期 ま たは 非 同 期 に コ ン フ ィギ ュ レーシ ョ ンで き、 出 力 ラ ッ チおよびオプシ ョ ンの 出 力 レ ジ ス タ を 制 御 し ます。 この 操 作 の 制 御ピンは RST で、 RAMB16BWER コンポーネントにあります。同 期 モー ド では、 RST とイネーブル 信 号 EN が High の 場 合 、 DO および DOP 出 力 のデータ 出 力ラッチとオプションの 出 力 レジスタは、 クロックに 同 期 して SRVAL 属 性 で 設 定 さ れた 値 (0 または 1) に 設 定 されます。非 同 期 モー ド では、 RST とイネーブル 信 号 EN が High の 場 合 、 DO および DOP 出 力 のデータ 出力 ラ ッ チ と オプシ ョ ンの 出 力 レ ジ ス タは 非 同 期 に SRVAL 属 性 で 設 定 さ れた 値 (0 または 1) に 設 定されます。同 期 モー ド の 場 合 は RSTTYPE 属 性 を SYNC に、 非 同 期 モー ド の 場 合 は ASYNC に 設 定 し ます。デフ ォル ト では 同 期 モー ド に 設 定 さ れています。 タ イ ミ ングの 向 上 と 回 路 の 安 定 性 の 点 か ら、 非 同期 リ セ ッ ト が 必 要 でない 限 り 常 に SYNC に 設 定 し て く ださ い。RST によ りブロック RAM セルが 変 化 する こ と はな く 、も う 1 つのポー ト での 書 き 込 みにも 影 響 しません。RST の 極 性 はコンフィ ギュレーショ ン 可 能 で、デフォルト ではアク ティ ブ High に 設 定 さ れていま す。RST 入 力 は、 <strong>Spartan</strong>-3A DSP <strong>FPGA</strong> 用 の RAMB16BWER コンポーネントにあります。RAMB16および RAMB16BWE コンポーネントでは、 SSR 入 力 が 提 供 さ れています。出 力 レ ジ ス タ が 使 用 さ れてお り 、 REGCE が 1 の 場 合 は、 RST がアサート されたと きにブロ ッ クRAM の 出 力 ラ ッチおよび 出 力 レジスタの 両 方 が SRVAL 属 性 で 指 定 さ れた 値 に 設 定 さ れます。 リセッ トの 後 クロックの 2 サイクルの 間 、 出 力 の 値 は SRVAL の 値 にな り ます。非 同 期 / 同 期 セ ッ ト / リセット 入 力 RST は、 データ 出 力 ラ ッ チの 値 を SRVAL 属 性 で 指 定 さ れた 値 にします。出 力 レ ジ ス タ が 使 用 さ れてお り 、 REGCE が 1 の 場 合 は、 出 力 レジス タ も SRVAL 属 性 で 指 定 さ れた 値 に 設 定 されます。グローバル セッ ト/ リセッ ト - GSRグローバル セッ ト/ リセット 信 号 GSR は、 デバイ スの コ ン フ ィ ギ ュ レーシ ョ ンの 最 後 に、 自 動 的 に短 時 間 アサー ト さ れます。 STARTUP プリ ミティブをインスタンシエートすると、GSR をアサートする こ とによ り、 <strong>FPGA</strong> の 初 期 ス テー ト を 回 復 で き ます。 GSR 信 号 は、 データ 出 力 ラ ッ チを INIT値 に 初 期 化 し ます。 内 部 メ モ リ の 内 容 には 影 響 し ません。GSR はグ ローバル 信 号 で、デバ イ ス 全 体 に 自 動 的 に 接 続 さ れる ため、 ブ ロ ッ ク RAM プリ ミティブには GSR 入 力 ピ ンはあ り ません。制 御 ピ ンの 反 転各 ポー ト の 4 つの 制 御 ピン (CLK、 EN、 WE、 および SSR/RST) は、 個 別 に 反 転 で き ます。 これらの 制 御 ピンはア ク テ ィ ブ High またはアクティブ Low にコンフィギュレーショ ンでき、クロックはアクティブ エッジを 立 ち 上 がりエッジまたは 立 ち 下 がりエッジにコンフィギュレーションできます。 追 加 の ロ ジ ッ ク リソースは 必 要 ありません。168 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


属 性R未 使 用 の 入 力未 使 用 のデータ 入 力 およびア ド レ ス 入 力 は、1 に 固 定 し て く ださ い。 未 使 用 の 入 力 を High に 接 続 すると、Low に 接 続 する 場 合 に 比 べて ロ ジ ッ ク および 配 線 リ ソ ース を 節 約 で き ます。属 性表 4-7 に 示 すよ う に、VHDL および Verilog 用 にブロ ッ ク RAM の 動 作 を 制 御 する 属 性 があ り ます。CORE Generator では、 こ の 後 説 明 する よ う に、 多 少 異 な る 値 が 使 用 さ れます。表 4-7 : ブロック RAM 属 性 と VHDL/Verilog 属 性 名機 能 VHDL/Verilog 属 性 デフ ォル ト 値ポー ト 数 適 切 な RAMB16 プリ ミティブをインスタンシエートすることにより定 義なしメ モ リ の 構 成コンフィギュレーション 中 に 読 み 込 むデータ メ モ リ の 初 期 値コンフィギュレーション 中 に 読 み 込 むパリティ メ モ リ の 初 期 値適 切 な RAMB16 プリ ミティブをインスタンシエートすることにより定 義INIT_xxINITP_xxデータ 出 力 ラ ッ チの 初 期 値 INIT (シングル ポー ト )INIT_A、 INIT_B (デュアル ポー ト )データ 出 力 ラ ッ チの 同 期 セ ッ ト /リセット 値SRVAL (シングル ポー ト )SRVAL_A、 SRVAL_B (デュアルポー ト )なし0 に 初 期 化0 に 初 期 化0 に 初 期 化0 にリセット書 き 込 み 中 のデータ 出 力 ラ ッ チの 動 作 WRITE_MODE WRITE_FIRSTブロッ ク RAM の 位 置 LOC なしリセットのタイプ(<strong>Spartan</strong>-3A DSP のみ)RSTTYPESYNCポー ト 数各 ブロ ッ ク RAM は、 物 理 的 にはデュ アル ポー ト メモリですが、 シングル ポー ト またはデュアルポー ト の メ モ リ と し て 使 用 で き ます。 ポー ト 数 を 指 定 する 方 法 は、 使 用 するデザ イ ン 入 力 ツールによって 異 なります。CORE Generator図 4-5 に 示 すよ う に、 CORE Generator ではさ まざまなタ イプの メ モ リ ブロックのモジュールを 生成 でき ます。 シングル ポー ト またはデュアル ポー ト のブロ ッ ク メ モ リ を 選 択 する か、 ブ ロ ッ ク メモ リ を 含 む 高 レベル ファンクションを 使 用 して FIFO や CAM (Content Addressable Memory) を作 成 し ます。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 169<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 4 章 : ブロック RAM の 使 用X463_05_060606図 4-5 : CORE Generator でのブロ ッ ク RAM フ ァ ン ク シ ョ ンの 選 択VHDL/Verilog インスタンシエーションザイ リンクス デザイ ン ライブラリには、 図 4-1 に 示 すよ う なシングル ポー ト およびデュアル ポートのメモリ プリ ミティブが 含 まれています。 これらのプリ ミティブから、 シングル ポー ト またはデュアル ポー ト メモリ、 メモリの 構 成 /アスペク ト 比 が 適 切 なものを 選 択 します。 シングル ポー トブロック RAM プリ ミティブは 表 4-8、デ ュ アル ポー ト ブロッ ク RAM プリ ミティブは 表 4-9 を 参照 してください。メ モ リ の 構 成 /アスペク ト 比表 4-8 : ブロック RAM のデータ 構 成 /アスペク ト 比ブロ ッ ク RAM のデータ の 構 成 /アスペク ト 比 は、 コンフィ ギュレーショ ン 可 能 です ( 表 4-8 を 参 照 )。データ パスがバイ ト 幅 以 上 の 場 合 は、 各 バ イ ト でパ リ テ ィ ビ ッ ト も 使 用 で き ます。 たとえば 1Kx18メモリでは、 18 ビッ ト 幅 のうち 16 ビット (2 バイ ト) はデータ、 2 ビッ ト (1 データ バイ ト ごとに1 ビット) はパ リ テ ィ に 割 り 当 て られています。 ポー ト でア ク セ ス 可 能 な メ モ リ の 物 理 的 な 量 は、 メモリの 構 成 によって 異 なります。 バ イ ト 幅 以 上 の メ モ リ では、 18K ビットのメモリにアクセスできます。 バイ ト 幅 未 満 の メ モ リ では、 パ リ テ ィ ビッ トがないので、16K ビットのメモリしかアクセスできません。 18K ビッ トのブロック RAM では、 16K ビ ッ ト はデータ に、 2K ビットはパリティに割 り 当 てられています。 各 メモリ 構 成 のデータ マップは、 図 4-4 を 参 照 して く ださい。メモリ 構 成 ワード 数 データ 幅 パリティ 幅 DI/DO DIP/DOP ADDRシングル ポー トプリミティブ合 計 キロビット 数512x36 512 32 4 (31:0) (3:0) (8:0) RAMB16_S36 18K1Kx18 1024 16 2 (15:0) (1:0) (9:0) RAMB16_S18 18K2Kx9 2048 8 1 (7:0) (0:0) (10:0) RAMB16_S9 18K4Kx4 4096 4 - (3:0) - (11:0) RAMB16_S4 16K8Kx2 8192 2 - (1:0) - (12:0) RAMB16_S2 16K16Kx1 16384 1 - (0:0) - (13:0) RAMB16_S1 16K170 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


属 性RCORE Generator - メモリ サイズCORE Generator では、 さまざまなアスペク ト 比 のメモリを 作 成 できます。 ブロッ ク RAM プリ ミティブとは 異 なり、CORE Generator ではデータ ビット とパリティ ビ ッ ト は 区 別 さ れず、 すべてデータ ビ ッ ト と し て 処 理 さ れます。 デュアル ポー ト メモリでは、 各 ポートにメモリ 構 成 /アスペクト 比 を 指 定 できます。図 4-6 に 示 すよ う に、 CORE Generator の [Memory Size] で メ モ リ の 構 成 を 入 力 し ます。Memory SizeWidth 16Valid Range 1..256Depth 256Valid Range 2..16384図 4-6 : CORE Generator での メ モ リの 幅 と ワー ド 数 の 選 択VHDL/Verilog インスタンシエーションア スペ ク ト 比 は、 適 切 な SelectRAM コ ンポーネン ト を イ ン ス タ ンシエー ト する こ と に よ り 定 義 します。 シングル ポー ト RAM の SelectRAM コンポーネントは、 表 4-8 に 示 されています。 シングル ポー ト RAM のコンポーネン ト 名 は、RAMB16_Sn (n はデータ ビッ ト とパリティ ビッ トを 加 えた 合 計 データ 幅 ) です。 たとえば、1Kx18 シングル ポー ト RAM には RAMB16_S18 を 使 用 し ます。この 例 では、 データは 16 ビッ ト、 パリティは 2 ビットなので、n=18 となります。デュアル ポー ト メモリでは、 2 つの メ モ リ ポー ト で 異 なる アスペク ト 比 を 指 定 でき るので、 も う少 し 複 雑 にな り ます。 デュアル ポー ト RAM のコンポーネン ト 名 は、 RAMB16_Sm_Sm (m はポート A のデータ パス 幅 、 n はポー ト B のデータ パス 幅 ) です。 た と えば、 ポー ト A が 2Kx9、 ポート B が 1Kx18 の 場 合 、 デュ アル ポー ト RAM コンポーネントは RAMB16_S9_S18 にな り ます( 表 4-9 を 参 照 )。 この 例 では、 m=9、 n=18 です。表 4-9 : デュアル ポー ト RAM コンポーネント 名 の RAMB16 の 後 に 付 ける 接 尾 辞ポー ト A16Kx1 8Kx2 4Kx4 2Kx9 1Kx18 512x3616Kx1 _S1_S18Kx2 _S1_S2 _S2_S24Kx4 _S1_S4 _S2_S4 _S4_S42Kx9 _S1_S9 _S2_S9 _S4_S9 _S9_S91Kx18 _S1_S18 _S2_S18 _S4_S18 _S9_S18 _S18_S18ポー ト B512x36 _S1_S36 _S2_S36 _S4_S36 _S9_S36 _S18_S36 _S36_S362 つのポー ト 間 のア ド レス とデータ マップデュアル ポー ト モード では、 両 方 のポー ト で 同 じ メ モ リ セルにア クセス し ます。 各 ポー ト は、 異なるメモリ 構 成 /アスペク ト 比 に 設 定 できます。 図 4-4 に、 同 じデータ セッ トが 異 なるアスペク ト比 でどのよ う にマ ッ プされているかを 示 し ます。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 171<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 4 章 : ブロック RAM の 使 用バ イ ト 幅 以 上 の メ モ リ 構 成 では、 パ リ テ ィ を 保 存 する 追 加 ビ ッ ト があ り ます。 これらの 追 加 パリティ ビットは、 特 定 のバイトに 関 連 付 けられており、データ ポー ト の 上 位 に 配 置 さ れています。 たとえば x36 データ ワード (データ 32 ビット、パリティ 4 ビッ ト) を 2 つの x18 ハーフ ワード (データ 16 ビッ ト、 パリティ 2 ビッ ト) と し て 指 定 する 場 合 、 各 データ バ イ ト に 関 連 付 け ら れてい る パリティ ビッ トがブロック RAM 内 で 適 切 なパ リ テ ィ ビッ トにマップされます。 x36 データ ワードを 4 つの x9 ワー ド にマ ッ プする 場 合 も 同 様 です。 データ ポー ト を x4、 x2、 または x1 としてコンフィギュレーションする 場 合 は、パリティ ビッ トは 使 用 できません。次 の 式 を 使 用 する と、 2 つのポー ト の メ モ リ 構 成 が 異 な る 場 合 に、 データの 開 始 ア ド レ ス と 終 了 アド レ ス を 算 出 で き ます。 ポー ト X の 開 始 ア ド レ ス と 終 了 ア ド レ スは、ポー ト Y のア ド レス とポート幅 、 ポー ト X のポー ト 幅 から 求 められます。START_ADDRESS X INTEGER ADDRESS Y • WIDTH Y= ⎛----------------------------------------------------------⎞⎝ WIDTH X⎠END_ADDRESS X=(( ADDRESS Y + 1) • WIDTH Y )–1INTEGER⎛--------------------------------------------------------------------------------------⎞⎝WIDTH X⎠メモリ 構 成 により 1 つのポー ト にパ リ テ ィ ビッ トが 含 まれ、 もう 1 つのポー ト にパ リ テ ィ ビットが 含 まれない 場 合 、 上 記 の 式 は 無 効 で、 幅 の 値 にはデータ ビッ トのみを 含 める 必 要 があります。8 ビ ッ ト 幅 未 満 のポー ト では、 パ リ テ ィ ビッ トは 使 用 できません。メ モ リ 内 容 の 初 期 化ブロック RAM は、デフ ォル ト ではデバイ スのコ ン フ ィ ギ ュ レーシ ョ ン シーケンス 中 にすべて 0 に初 期 化 さ れますが、 ユーザー 定 義 の 値 で 初 期 化 する こ と も 可 能 です。 また、RAM の 内 容 を コ ン フ ィギ ュ レーシ ョ ン 中 に 誤 って 書 き 換 えないよ う に 保 護 でき ます。CORE Generator - 初 期 化 フ ァ イルの 読 み 込 みCORE Generator のブロ ッ ク RAM ファンクションで RAM の 初 期 値 を 指 定 する には、 係 数 フ ァ イル (COE) ファイルを 使 用 します。 係 数 フ ァ イルの 単 純 な 例 を 図 4-7 に 示 し ます。 まず 初 期 化 データの 基 数 (2、 10、 または 16 進 数 ) を 指 定 し、 RAM の 内 容 を ロ ケーシ ョ ン 0 か ら 順 に 指 定 し ます。memory_initialization_radix=16;memory_initialization_vector= 80, 0F, 00, 0B, 00, 0C, …, 81;図 4-7 : 係 数 フ ァ イル (COE) の 例係 数 フ ァ イ ルを 読 み 込 むには、 図 4-8 に 示 すよ う に、 CORE Generator で [Load Init File] をオンにし、 [Load File] を ク リ ッ ク し て 係 数 フ ァ イルを 選 択 し ます。Initial ContentsGlobal Init Value:ff0001(Hex Value)Load Init FileLoad File ...C:\MyProject\my_ram_init.coe(.coe File)図 4-8 : CORE Generator での RAM の 初 期 値 の 指 定172 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


属 性RVHDL/Verilog インスタンシエーション - INIT_xx、 INITP_xxVHDL および Verilog インスタンシエーションでは、 2 つの 初 期 化 属 性 を 使 用 し ます。 INIT_xx 属性 はデータ メモリ ロ ケーシ ョ ンの 初 期 値 を 定 義 し、 INITP_xx 属 性 はパ リ テ ィ メモリ ロケーションの 初 期 値 を 定 義 し ます。インスタンシエート されたプリ ミティブに INIT_xx 属 性 を 設 定 する と 、メ モ リ の 初 期 値 を 定 義 で きます。 INIT_00 ~ INIT_3F の 64 個 の 属 性 があ り 、 各 INIT_xx は、16 進 数 で 表 し た 64 桁 (256 ビット ) のビッ ト ベクタです。 メ モ リ の 内 容 は 一 部 だけを 初 期 化 する こ と も 可 能 で、 その 場 合 は 初 期 値を 指 定 し ない 部 分 は 自 動 的 に 0 なります。各 INIT_xx 属 性 のビ ッ ト 位 置 は、 次 の 式 で 求 め ら れます。yy = convert_hex_to_decimal(xx) (16 進 数 xx を 10 進 数 に 変 換 し た 値 ) とすると、 INIT_xx は 次 のメモリ セルに 対 応 し ます。• 開 始 位 置 : [(yy + 1) * 256] - 1• 終 了 位 置 : (yy) * 256たとえば、 属 性 INIT_1F の 場 合 は 次 のよ う にな り ます。• yy = convert_hex_to_decimal(0x1F) = 31• 開 始 位 置 : [(31+1) * 256] - 1 = 8191• 終 了 位 置 : 31 * 256 = 7936表 4-10 : VHDL/Verilog でのブロ ッ ク RAM の 初 期 化 属 性属 性 開 始 位 置 終 了 位 置INIT_00 255 0INIT_01 511 256INIT_02 767 512… … …INIT_3F 16383 16128INITP_xx 属 性 は、 パ リ テ ィ ビッ ト (DIP/DOP バスに 接 続 されるビッ ト) に 対 応 する メ モ リ セルの初 期 値 を 定 義 し ます。 デフォル ト では、 これらのメモ リ セルもすべて 0 に 初 期 化 さ れます。INITP_00 ~ INITP_07 の 8 つの 初 期 化 属 性 で、 パ リ テ ィ ビ ッ ト の メ モ リ の 内 容 を 指 定 し ます。 各INITP_xx は、 INIT_xx と 同 様 に、 16 進 数 で 表 し た 64 桁 (256 ビッ ト) のビッ ト ベクタです。 各INITP_xx 属 性 のビ ッ ト 位 置 は、 INIT_xx 属 性 と 同 じ 式 を 使 用 し て 算 出 さ れます。デー タ 出 力 ラ ッ チの 初 期 化ブロッ ク RAM の 出 力 ラ ッチは、 コ ン フ ィ ギュ レーシ ョ ンの 直 後 またはグ ローバル セッ ト/ リセット 信 号 GSR をアサー ト する こ と に よ り 、 ユーザー 定 義 の 値 に 初 期 化 で き ます。 デュアル ポー ト メモ リ では、 各 ポー ト にそれぞれ 初 期 値 を 設 定 で き ます。値 を 指 定 し ない 場 合 は、 出 力 ラ ッ チは 0 に 初 期 化 さ れます。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 173<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 4 章 : ブロック RAM の 使 用CORE Generator - グローバル INIT 値図 4-9 に、CORE Generator でデータ 出 力 ラ ッ チの 初 期 値 を 指 定 する 方 法 を 示 し ます。 値 は 16 進 数で 指 定 し、 指 定 のデータ 幅 ご と に 1 ビ ッ ト を 指 定 し ます。 デュアル ポー ト メモリでは、 各 ポートにそれぞれ 初 期 値 を 設 定 で き ます。Initial ContentsGlobal Init Value:ff0001(Hex Value)Load Init FileLoad File ...C:\MyProject\my_ram_init.coe(.coe File)図 4-9 : CORE Generator を 使 用 したブロ ッ ク RAM のデー タ 出 力 ラ ッ チの 初 期 値 の 設 定VHDL/Verilog インスタンシエーション - INIT (INIT_A、 INIT_B)VHDL または Verilog では、INIT 属 性 (デュアル ポー ト メモリでは INIT_A と INIT_B) を 使 用 して、 コ ン フ ィ ギ ュ レーシ ョ ン 後 の 出 力 ラ ッチの 値 を 定 義 し ます。 INIT (または INIT_A と INIT_B)属 性 は、 データ ビッ トおよびパリティ ビッ ト ( 使 用 可 能 な 場 合 ) の 初 期 値 を 指 定 し ます。 図 4-4 に示 すよ う に、 各 メ モ リ 構 成 でのビ ッ ト フ ォーマ ッ ト は、 最 上 位 にパ リ テ ィ ビッ ト、 その 後 にデータ ビ ッ ト が 続 く 形 式 になってい ます。 たとえば、2Kx9 メ モ リ の 初 期 値 は 9 ビッ ト 幅 で、1 ビットのパ リ テ ィ の 後 に 8 ビ ッ ト のデータ が 続 き ます。 こ れら の 属 性 は 16 進 数 のビ ッ ト ベクタで、デフォルト 値 は 0 です。データ 出 力 ラ ッ チの 同 期 セ ッ ト / リセッ ト 値同 期 セッ ト /リ セット 入 力 SSR (RAMB16BWER では RST) を アサート する と 、データ 出 力 ラ ッ チの 値 がセッ ト /リ セッ ト 属 性 で 指 定 し た 値 に 設 定 さ れま す。 デュ アル ポート メ モリ では、 各 ポートにそれぞれ 初 期 値 を 設 定 でき ま す。値 を 指 定 しない 場 合 は、 出 力 ラ ッチは 同 期 セッ ト / リ セ ッ ト 操 作 で 0 にリセットされます。RAMB16BWER では、 出 力 ラ ッチと 共 にオプシ ョ ンの 出 力 レジス タ も レ ッ ト または リ セッ ト されます。CORE Generator - INIT 値 (SINIT)図 4-10 に、 CORE Generator でデータ 出 力 ラ ッ チの 同 期 セ ッ / リ セッ ト 値 を 指 定 する 方 法 を 示 し ます。 [SINIT pin] をオンに し、 同 期 セ ッ ト / リセット 値 を 16 進 数 で、 指 定 のデータ 幅 ご と に 1 ビッ トを 指 定 します。 デュアル ポー ト メモリでは、 各 ポートにそれぞれ 値 を 設 定 できます。Output Register OptionsAdditional Output Pipe Stages0SINIT pin (sync. reset of output registers)Init Value (Hex)a5a50f図 4-10 : データ 出 力 ラ ッ チのセ ッ ト / リ セ ッ ト 値 の 指 定174 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


属 性RVHDL/Verilog インスタンシエーション - SRVAL (SRVAL_A、 SRVAL_B)VHDL または Verilog では、 SRVAL 属 性 (デュアル ポー ト メモリでは SRVAL_A と SRVAL_B)を 使 用 して、 コンフ ィギュレーショ ン 後 の 出 力 ラ ッチの 値 を 定 義 します。 SRVAL ( またはSRVAL_A と SRVAL_B) 属 性 は、 データ ビッ トおよびパリティ ビット ( 使 用 可 能 な 場 合 ) の 同 期セッ ト/ リ セ ッ ト 値 を 指 定 し ます。 図 4-4 に 示 すよ う に、 各 メ モ リ 構 成 でのビ ッ ト フォーマッ トは、最 上 位 にパ リ テ ィ ビ ッ ト 、 その 後 にデータ ビ ッ ト が 続 く 形 式 になっています。 こ れら の 属 性 は 16進 数 のビ ッ ト ベクタで、 デフォルト 値 は 0 です。同 時 書 き 込 み 中 の 読 み 出 し 動 作 - WRITE_MODEデータ のスループ ッ ト と 各 ク ロ ッ ク エッジでのデュアル ポー ト メ モ リ の 使 用 率 を 最 大 にする ため、 ブロ ッ ク RAM では 3 つの 書 き 込 みモード がサポー ト されてお り 、 各 メ モ リ ポー ト に 個 別 に 設定 でき ます。 これらのモードは、 同 じポートでの 書 き 込 みクロック エッジの 後 に 出 力 ラッチに 現 れるデータを 決 定 します。 デフォル ト の WRITE_FIRST モー ド は、 Virtex、 Virtex-E、 <strong>Spartan</strong>-IIE<strong>FPGA</strong> アーキテ ク チ ャ と も 互 換 性 があ り 、Virtex-II および Virtex-II Pro デバイ スのデフ ォル ト で もありますが、 READ_FIRST モー ド では、 各 ク ロ ッ ク サイクルでのブロック RAM の 効 率 が 向 上 し、デザ イ ンでバン ド 幅 を 最 大 にで き る ので、 最 も 有 益 です。 READ_FIRST モード では、 メ モ リ ポート で 同 じアドレスに 対 して 同 じ ク ロ ッ ク エ ッ ジで 読 み 出 し と 書 き 込 みを 同 時 に 実 行 で き ます。表 4-11 に、 WRITE_MODE の 設 定 が 同 じ ポー ト の 出 力 データ ラ ッ チにどの よ う に 影 響 する か、 同じアドレスに 同 時 にアクセスした 場 合 にも う 1 つのポー ト の 出 力 ラ ッ チにどの よ う に 影 響 する かを示 します。表 4-11 : 書 き 込 み 中 の WRITE_MODE 設 定 によ るデー タ 出 力 ラ ッ チへの 影 響WRITE_MODEWRITE_FIRST書 き 込 み 後 に 読 み出 し (デフォル ト)READ_FIRST書 き 込 み 前 に 読 み出 し ( 推 奨 )NO_CHANGE書 き 込 み 時 の 読 み出 しなし同 じ ポー ト への 影 響DI、 DIP 入 力 のデータが 指 定 の RAM ロケーションに 書 き 込 まれ、 同 時 に DO、DOP 出 力 に 送 信 さ れます。指 定 し た RAM ロケーションのデータが DO、 DOP出 力 に 送 信 さ れます。DI、 DIP 入 力 のデータが 指 定 し た ロ ケーシ ョ ンに 書き 込 まれます。DO、 DOP 出 力 のデータは 変 化 しません。DI、 DIP 入 力 のデータが 指 定 し た ロ ケーシ ョ ンに 書き 込 まれます。もう 1 つのポー ト への 影 響(デュアル ポー ト モー ド のみ、 同 じ ア ド レス)DO、 DOP 出 力 の 値 は 無 効 にな り ます。指 定 し た RAM ロケーションのデータが DO、DOP 出 力 に 送 信 さ れます。DO、 DOP 出 力 の 値 は 無 効 にな り ます。モード は、 コ ンフ ィ ギュ レーシ ョ ンで 設 定 し ます。 各 ポー ト に 対 し、 属 性 を 使 用 し て 3 つのモードのいずれかを 個 別 に 設 定 で き ます。 デフォル ト のモードは WRITE_FIRST です。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 175<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 4 章 : ブロック RAM の 使 用WRITE_FIRST ( 透 過 ) モード (デフォルト)以 前 のデバイ ス と の 互 換 性 を 考 慮 し、デフ ォル ト では WRITE_FIRST モー ド に 設 定 さ れます。 新 規デザイ ンでは、 READ_FIRST モー ド に 設 定 する こ と をお 勧 め し ます。こ のモー ド では、 入 力 データ が 指 定 さ れた RAM メモリ ロ ケーシ ョ ンに 書 き 込 まれ、 同 時 にデータ出 力 ラ ッ チに 保 存 さ れる ので、 透 過 書 き 込 み と な り ます ( 図 4-11 を 参 照 )。 WRITE_FIRST モー ドは、 Virtex/Virtex-E および <strong>Spartan</strong>-II/<strong>Spartan</strong>-IIE <strong>FPGA</strong> の 4K ビッ ト ブロッ ク RAM と 互 換 性 があり、 また Virtex-II/Virtex-II Pro ブロック RAM のデフ ォル ト モー ド でも あ り ます。Data_inWEENCLKAddressRAM LocationData_outWRITE_MODE = WRITE_FIRSTX463_11_062503図 4-11 : WRITE_FIRST モード でのデータ フロー図 4-12 に、 有 効 な 読 み 出 し 操 作 中 の 有 効 な 書 き 込 み 操 作 で、 書 き 込 みデータがデータ 出 力 に 送 信される 様 子 を 示 します。CLKWEData_inXXXX 1111 2222 XXXXAddressaa bb cc ddData_out0000 MEM(aa) 1111 2222 MEM(dd)ENABLEDISABLEDREADWRITEMEM(bb)=1111WRITEMEM(cc)=2222READX463_12_020503図 4-12 : WRITE_FIRST モードでのタ イ ミ ング176 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


属 性RREAD_FIRST ( 書 き 込 み 前 に 読 み 出 し) モードREAD_FIRST モード では、 図 4-13 に 示 すよ う に、 以 前 に 書 き 込 みアド レ ス に 保 存 さ れたデータ が出 力 ラ ッ チに 送 信 さ れ、 それと 同 時 に 入 力 データ がメ モリ に 保 存 さ れま す ( 書 き 込 み 前 に 読 み 込 み)。指 定 し た RAM ロケーションに 新 しいデータが 書 き 込 まれている 間 、 RAM の 以 前 のデータ がデータ 出 力 に 現 れます。 READ_FIRST モー ド が 推 奨 されるモー ド です。Data_inWEENCLKAddressRAM LocationData_outWRITE_MODE = READ_FIRSTX463_13_062503図 4-13 : READ_FIRST モードでのデータ フロー図 4-14 に、 同 時 書 き 込 みにかかわ らず、 RAM の 以 前 のデータ がデータ 出 力 に 送 信 さ れる 様 子 を 示します。CLKWEData_inXXXX 1111 2222 XXXXAddressaa bb cc ddData_out0000 MEM(aa) old MEM(bb) old MEM(cc) MEM(dd)ENABLEDISABLEDREADWRITEMEM(bb)=1111WRITEMEM(cc)=2222READX463_14_020503こ のモー ド は、 循 環 バ ッ フ ァ や、 ブ ロ ッ ク RAM ベースの 大 型 シフ ト レ ジ ス タ を 作 成 する 際 に 特 に有 益 です。 また、デジ タル 信 号 処 理 アプ リ ケーシ ョ ンで FIR フィルタ タ ッ プを 保 存 する 場 合 に も 便利 です。 新 しいデータが RAM に 書 き 込 まれてい る 間 、 以 前 のデータ が 出 力 さ れます。NO_CHANGE ( 変 化 な し) モード図 4-14 : READ_FIRST モードでのタ イ ミ ングNO_CHANGE モード では、 図 4-15 に 示 すよ う に、 出 力 ラ ッ チはデ ィ スエーブル と な り 、 同 期 書き 込 み 中 変 化 し ません。 こ の 動 作 は、 各 ク ロ ッ ク サイクルであるメモリ ロケーションに 対 して 読 み出 し ま たは 書 き 込 みのど ち ら か し か 行 われない 単 純 な 同 期 メ モ リ の 動 作 と 同 じ です。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 177<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 4 章 : ブロック RAM の 使 用Data_inWEENCLKAddressRAM LocationData_outWRITE_MODE = NO_CHANGEX463_15_062503図 4-15 : NO_CHANGE モードでのデータ フローNO_CHANGE モー ド は、 ブロ ッ ク RAM に 波 形 、 フ ァ ン ク シ ョ ン テーブル、 係 数 を 保 存 する など、 さ ま ざ ま なアプ リ ケーシ ョ ンで 有 益 です。 メ モ リ を メ モ リ 出 力 に 影 響 を 与 えずにア ッ プデー トできます。図 4-16 に、 同 じ ポー ト で 同 時 書 き 込 みが 実 行 さ れた と き に、 データ 出 力 が 最 後 の 読 み 出 しデータのま ま 保 持 さ れる 様 子 を 示 し ます。CLKWEData_inXXXX 1111 2222 XXXXAddressaa bb cc ddData_out0000 MEM(aa) MEM(dd)ENABLEDISABLEDREADWRITEMEM(bb)=1111WRITEMEM(cc)=2222READX463_16_020503CORE Generator - 書 き 込 みモード図 4-16 : NO_CHANGE モードでのタ イ ミ ングCORE Generator で WRITE_MODE を 設 定 する には、 図 4-17 に 示 すよ う に、[Write Mode] で [ReadAfter Write] (WRITE_FIRST)、 [Read Before Write] (READ_FIRST)、 または [No Read On Write](NO_CHANGE) をオンにします。Write ModeRead After Write Read Before Write No Read On Write図 4-17 : CORE Generator での 書 き 込 みモー ド の 選 択178 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


属 性RVHDL/Verilog インスタンシエーション - WRITE_MODEブロ ッ ク RAM を イ ン ス タ ン シエート する 場 合 、 書 き 込 みモード は WRITE_MODE 属 性 で 指 定 し ます。 付 録 の 例 に 示 すよ う に、 指 定 可 能 な 値 は WRITE_FIRST、READ_FIRST、およ び NO_CHANGEです。ロケーシ ョ ン 制 約 (LOC)通 常 は、 ザ イ リ ン ク ス ISE ® ソフトウェアでブロック RAM ロ ケーシ ョ ンが 選 択 される よ う にするのが 最 適 ですが、 LOC プロパティを 使 用 して <strong>Spartan</strong>-3 デバイ スの 特 定 の 位 置 に 制 約 する こ と も 可能 です。 ブロック RAM の 配 置 位 置 はデバイ スに よ って 異 な り 、 表 記 方 法 は CLB 位 置 の 表 記 方 法とは 異 なるので、 LOC プロパテ ィ を 別 のアレ イでも 簡 単 に 使 用 でき ます。LOC プ ロパテ ィ は、 次 の 形 式 で 指 定 し ます。LOC = RAMB16_X#Y#RAMB16_X0Y0 は、 図 4-18 に 示 すよ う に、 デバイ スの 左 下 のブ ロ ッ ク RAM 位 置 を 示 し ます。 右上 のブロ ッ ク RAM ロケーションは、 ブロック RAM の 列 数 (n) と 行 数 (m) によって 異 なり ます(155 ページの 表 4-1 を 参 照 )。 <strong>Spartan</strong>-3A DSP <strong>FPGA</strong> には、 XC3S4000 および XC3S5000 デバイスど 同 様 に、 ブロック RAM が 4 列 または 5 列 あ り ます。RAMB16_X0Y(m-1)UpperLeftUpperRightRAMB16_X(n-1)Y(m-1)XC3S50/A/ANXC3S100En = total columnsm = total rowsRAMB16_X0Y0LowerLeftLowerRight図 4-18 : ブロック RAM の LOC 座 標XC3S200/A/ANXC3S400/A/ANXC3S700A/ANXC3S1400A/ANXC3S250EXC3S500EXC3S1200EXC3S1600EXC3S1000XC3S1500XC3S2000RAMB16_X(n-1)Y0XC3S4000XC3S5000XC3SD1800AXC3SD3400A<strong>UG331</strong>_c4_13_033007CORE Generator では、LOC プ ロパテ ィ を 直 接 指 定 で き ませんが、 VHDL または Verilog インスタンシエーシ ョ ンに 追 加 で き ます。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 179<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 4 章 : ブロック RAM の 使 用ブロック RAM の 動 作表 4-12 : ブロック RAM の 動 作表 4-12 に、ブロ ッ ク RAM の 動 作 を 示 し ます。すべての 制 御 信 号 は、デフ ォル ト のア ク テ ィ ブ Highを 想 定 していますが、 必 要 に 応 じ て 反 転 で き ます。 この 表 とその 後 の 説 明 では、 シングル メモリポー ト の 動 作 を 示 し ます。 デュアル ポー ト モード では、 両 方 のポー ト が 個 別 のシングル ポー ト メモリとして 動 作 します。ブロッ ク RAM に 対 する 読 み 出 しおよび 書 き 込 みは、 すべて 同 期 操 作 です。 すべての 入 力 には クロ ッ ク に 対 する セ ッ ト ア ッ プ タイムがあり、すべての 出 力 には clock-to-output タイムがあります。入 力 信 号 出 力 信 号 RAM の 内 容GSR EN SSR/RSTWE CLK ADDR DIP DI DOP DO パリティ データコ ン フ ィ ギュ レーシ ョ ンの 直 後コ ン フ ィ ギュ レーシ ョ ン 中 に 読 み 込 み X X INITP_xx 2 INIT_xx 2コ ン フ ィ ギュ レーシ ョ ン 直 後 のグローバル セッ ト/ リセッ ト1 X X X X X X X INIT 3 INIT 変 化 な し 変 化 な しRAM はデ ィ スエーブル0 0 X X X X X X 変 化 な し 変 化 な し 変 化 な し 変 化 な し同 期 セ ッ ト / リセッ ト0 1 1 0 ↑ X X X SRVAL 4 SRVAL 変 化 な し 変 化 な しRAM 書 き 込 み 中 の 同 期 セ ッ ト / リセッ ト0 1 1 1 ↑ addr pdata data SRVAL SRVAL RAM(addr)← pdataRAM(addr)← dataRAM の 読 み 出 し、 書 き 込 みな し0 1 0 0 ↑ addr X X RAM(pdata) RAM(data) 変 化 な し 変 化 な し180 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


ブロック RAM の 動 作R表 4-12 : ブロック RAM の 動 作 ( 続 き)入 力 信 号 出 力 信 号 RAM の 内 容GSR EN SSR/RSTWE CLK ADDR DIP DI DOP DO パリティ データRAM の 書 き 込 み、 同 時 読 み 出 し0 1 0 1 ↑ addr pdata data WRITE_MODE = WRITE_FIRST 5 (デフォル ト)pdata data RAM(addr)← pdataRAM(addr)← dataWRITE_MODE = READ_FIRST 6 ( 推 奨 )RAM(data) RAM(data) RAM(addr)← pdataRAM(addr)← pdataWRITE_MODE = NO_CHANGE 7変 化 な し 変 化 な し RAM(addr)← pdataRAM(addr)← pdataメモ :1. addr = RAM へのア ド レ ス、 data = RAM データ、 pdata = RAM パリティ データ2. 172 ページの 「 メ モ リ 内 容 の 初 期 化 」 を 参 照3. 173 ページの 「データ 出 力 ラ ッ チの 初 期 化 」 を 参 照4. 174 ページの 「データ 出 力 ラ ッ チの 同 期 セ ッ ト / リセット 値 」 を 参 照5. 176 ページの 「WRITE_FIRST ( 透 過 ) モー ド (デフォル ト)」 を 参 照6. 177 ページの 「READ_FIRST ( 書 き 込 み 前 に 読 み 出 し) モード」 を 参 照7. 177 ページの 「NO_CHANGE ( 変 化 な し) モー ド 」 を 参 照コンフィギュレーション 中 の RAM の 初 期 化RAM の 初 期 値 を 指 定 し た 場 合 、 コ ン フ ィ ギ ュ レーシ ョ ン 中 に 読 み 込 まれます。 初 期 値 を 指 定 し ない 場 合 は、RAM のセルは 0 にな り ます。 RAM の 内 容 を コ ン フ ィ ギ ュ レーシ ョ ン 中 に 誤 って 書 き 換えない よ う に 保 護 で き ます。コンフィギュレーションまたはグローバル リ セ ッ ト の 直 後 のグローバルセット/ リ セ ッ ト 信 号 によ るデー タ 出 力 ラ ッ チの 初 期 化コ ン フ ィ ギ ュ レーシ ョ ンの 直 後 、<strong>Spartan</strong>-3 デバイ スでス ター ト ア ッ プが 開 始 さ れ、グ ローバル セット / リセット 信 号 GSR がアサー ト さ れて、すべてのフ リ ッ プフ ロ ッ プ と レ ジ ス タが 初 期 化 さ れます。ブロック RAM の 出 力 ラ ッ チの 初 期 値 INIT は、 こ の と き に 非 同 期 に 読 み 込 まれます。 GSR 信 号 では、 RAM の 内 容 は 変 更 されません。イネーブル 入 力 による RAM のイネーブル/ディスエーブルブロック RAM がデ ィ スエーブルの 場 合 (EN が Low)、ブロック RAM の 現 在 のステー ト が 保 持 されます。 その 他 の 操 作 を 実 行 する には、 イ ネーブル 入 力 を High にする 必 要 があ り ます。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 181<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 4 章 : ブロック RAM の 使 用同 期 セ ッ ト / リ セ ッ ト によ るデー タ 出 力 ラ ッ チの 初 期 化ブロック RAM がイネーブル (EN が High) の と き に 同 期 セ ッ ト / リ セ ッ ト 信 号 が High になる と、 次の ク ロ ッ ク の 立 ち 上 が り エ ッ ジでデータ 出 力 ラ ッ チが 初 期 化 さ れます。 同 期 セ ッ ト / リセット 時 のデータ 出 力 ラ ッ チの 値 は、SRVAL 属 性 で 定 義 し ます。 この 操 作 は、コンフィギュレーション 直 後 のグローバル セッ ト/ リセット 信 号 GSR に よ る 初 期 化 と は 異 な り ます。 同 期 セ ッ ト / リセット 入 力 は、特 定 の RAM ブロックに 適 用 されますが、 GSR 信 号 はデバイ ス 全 体 に 適 用 さ れます。同 時 書 き 込 み と 同 期 セ ッ ト / リセッ ト 操 作同 期 セ ッ ト / リ セ ッ ト 操 作 中 に 同 時 書 き 込 み 操 作 を 実 行 する と 、 DI と DIP 入 力 のデータは ADDR入 力 で 指 定 さ れた RAM ロケーションに 保 存 されますが、 データ 出 力 ラ ッ チは SRVAL 属 性 で 定 義された 値 に 設 定 されます。クロック イネーブルがアサート されているとクロック エッジごとに 読 み 出 し操 作 が 発 生読 み 出 し は 同 期 操 作 であ り 、 ク ロ ッ ク イネーブルがアサート されているときのクロック エッジで実 行 さ れます。 データ 出 力 の 動 作 は、 読 み 出 し サイ ク ル 中 に 同 時 書 き 込 みが 実 行 されてい るかど うかによって 異 な り ます。読 み 出 し サ イ ク ル 中 に 同 期 書 き 込 みが 実 行 さ れない 場 合 は、 読 み 出 し ポー ト に 読 み 出 し ア ド レ スが取 り 込 まれ、 そのア ド レ ス に 保 存 さ れてい るデータ が、 RAM ア ク セ ス 期 間 後 に 出 力 ラ ッ チに 読 み込 まれます。読 み 出 し サ イ ク ル 中 に 同 時 書 き 込 みが 実 行 さ れた 場 合 、 出 力 ラ ッ チの 動 作 は、 次 に 説 明 する よ う に、選 択 されている 書 き 込 みモード よって 異 なり ます。書 き 込 み 操 作 中 は 常 に 同 時 読 み 出 し 操 作 が 実 行 され、 デー タ 出 力 ラ ッ チの 動 作に 影 響 する書 き 込 み 操 作 中 は、 常 に 同 時 に 読 み 出 し が 実 行 さ れます。 WRITE_MODE 属 性 の 設 定 に よ り 、 書 き込 み 操 作 中 のデータ 出 力 ラ ッ チの 動 作 は 異 な り ます (175 ページの 「 同 時 書 き 込 み 中 の 読 み 出 し 動作 - WRITE_MODE」 を 参 照 )。 デフォル ト では、WRITE_MODE は WRITE_FIRST に 設 定 されてお り 、 同 時 書 き 込 み 中 に 出 力 ラ ッ チ と 指 定 さ れた RAM ロ ケーシ ョ ンが 入 力 データ でア ッ プデー トされます。 WRITE_MODE を READ_FIRST に 設 定 する と 、 出 力 ラ ッ チが 指 定 の RAM ロケーションの 以 前 の 値 でア ッ プデー ト さ れ、 その RAM ロケーションに DI および DIP 入 力 上 の 新 し いデータが 書 き 込 まれます。 WRITE_MODE を NO_CHANGE に 設 定 する と、 データ 出 力 ラ ッ チは 同 時書 き 込 み 操 作 に よ り 変 化 する こ と はな く 、 現 在 の 値 が 保 持 さ れます。全 般 的 な 特 徴• 書 き 込 みは、 ク ロ ッ ク エ ッ ジに 同 期 し て 行 われます。• 読 み 込 みは、 ク ロ ッ ク エ ッ ジに 同 期 し て 行 われます。• すべての 入 力 はポー ト クロックに 同 期 して 取 り 込 まれ、setup-to-clock タ イ ミ ング 仕 様 に 従 います。• すべての 出 力 は、 WE ピ ンの 値 に よ って、 読 み 出 し フ ァ ン ク シ ョ ン ま たは 3 つの 書 き 込 み 中 に読 み 出 すフ ァ ン ク シ ョ ンのいずれかにな り ます。 ポー ト クロックに 対 する 出 力 は、clock-to-outタイム 後 に 有 効 になります。182 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


デュアル ポー ト RAM での 競 合 の 解 消R• ブロ ッ ク RAM セルは 同 期 RAM であり 、 アド レ ス から 出 力 の 間 に 組 み 合 わせパス はあり ません。• 読 み 出 し ポー ト と 書 き 込 みポー ト は 完 全 に 独 立 し てお り 、 各 ポー ト にそれぞれ ク ロ ッ ク、 制 御 、ア ド レ ス、 読 み 出 し/ 書 き 込 みフ ァ ン ク シ ョ ン、 初 期 化 、 データ 幅 を 設 定 で き ます。• 出 力 ポー ト は、 タ イ ミ ング 自 己 制 御 回 路 を 含 むラ ッ チを 介 し てお り 、 読 み 出 し 時 にグ リ ッ チは発 生 し ません。 出 力 ポー ト の 値 は、 そのポー ト で 別 の 読 み 込 みま たは 書 き 込 みが 行 われない 限り 変 化 しません。ほかの <strong>FPGA</strong> フ ァ ミ リ との 互 換 性<strong>Spartan</strong>-3 ジェネレーショ ン <strong>FPGA</strong> のブロ ッ ク RAM は、 Virtex-II/Virtex-II Pro <strong>FPGA</strong> ファ ミ リのブロック RAM と 機 能 的 に 同 一 なので、 Virtex-II/Virtex-II Pro のブロ ッ ク RAM をサポートするデザイン ツールでサポー ト されます。<strong>Spartan</strong>-3A/3AN/3A DSP <strong>FPGA</strong> のブロ ッ ク RAM は、 <strong>Spartan</strong>-3/3E <strong>FPGA</strong> のブロ ッ ク RAM と 互換 性 があ り ますが、 Virtex-4 <strong>FPGA</strong> と 同 様 のバイ ト レベル ライト イネーブル 信 号 が 追 加 されています。 <strong>Spartan</strong>-3A DSP <strong>FPGA</strong> には、 Virtex-4 <strong>FPGA</strong> と 同 様 のブロック RAM 出 力 レ ジ ス タ も 含 まれます。デュアル ポー ト RAM での 競 合 の 解 消ブロッ ク RAM をデュアル ポー ト RAM と し て 使 用 し た 場 合 、 両 方 のポー ト で 同 じ メ モ リ セルに同 時 にア ク セス 可 能 ですが、 次 の 条 件 下 で 競 合 が 発 生 する 可 能 性 があ り ます。1. 2 つのポー ト の ク ロ ッ ク 入 力 に 関 連 性 がな く 、 clock-to-clock セッ トアップ タイム 要 件 に 違 反した 場 合2. 有 効 な 書 き 込 みサイ クルで、 両 方 のポー ト から 同 じ RAM ロケーションに 異 なる 値 を 書 き 込 もうとした 場 合3. 1 つのポー ト で WRITE_MODE=NO_CHANGE または WRITE_FIRST を 設 定 し てい る 場 合 、そのポー ト で 書 き 込 みを 実 行 する と 、 も う 1 つのポー ト の 読 み 出 しデータ 出 力 ラ ッ チが 無 効 になります。ポー ト A とポート B の メ モ リ 構 成 が 異 な り 、 ポー ト 幅 が 異 な る 場 合 、 競 合 が 発 生 する と オーバーラ ッ プし たビ ッ ト のみが 無 効 にな り ます。タイミング 違 反 による 競 合1 つのポー ト であ る メ モ リ セルに 書 き 込 みを 実 行 し てい る 場 合 、 も う 1 つのポー ト で clock-toclockセッ トアップ タイム 内 に、そのメモリ セルに 対 し て 書 き 込 みまたは 読 み 出 し を 実 行 し ない よう にする 必 要 があ り ます。こ のセ ッ ト ア ッ プ タイムは、ブロック RAM の 最 小 ク ロ ッ ク 周 期 (T BPWH+ T BPWL ) に 等 し く 、<strong>Spartan</strong>-3 ジェネレーショ ン <strong>FPGA</strong> のデータ シー ト に 示 されています。 図 4-19に、 2 つのポー ト のク ロ ッ ク に 関 連 性 がない 場 合 のタ イ ミ ングを 示 し ます。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 183<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 4 章 : ブロック RAM の 使 用B A B ACLK_AREAD PortAddress_AaabbWE_AData_out_AUNKNOWN 4444CLK_BWRITE PortData_in_B333344442222Address_BaabbccWE_BMEM(aa)=3333MEM(bb)=4444MEM(cc)=2222Clock-to-clocksetup violationX463_19_020503図 4-19 : clock-to-clock タ イ ミ ングの 競 合CLK_B のクロック エッジから CLK_A の 最 初 のク ロ ッ ク エッジまでの 時 間 が 短 すぎるため、CLK_A のクロック エッジが clock-to-clock セッ トアップ パラ メータに 違 反 しています。Data_in_B、 Address_B、 および WE_B は、 CLK_B の 立 ち 上 が り エ ッ ジに 対 する セ ッ ト ア ッ プ タイムを 満 たしているので、 ポート B での 書 き 込 みは 有 効 にな り ますが、 ポー ト A での 読 み 出 し は、Address_B に 書 き 込 まれたデータによって 異 なり、 書 き 込 みク ロ ッ ク CLK_B か ら 読 み 出 し ク ロ ック CLK_A までの 時 間 が 短 すぎ る ため、 無 効 にな り ます。CLK_B の 2 番 目 の 立 ち 上 が り エ ッ ジでは、ポー ト B への 書 き 込 みが 有 効 で、 メ モ リ アドレス (bb)に 4444 が 書 き 込 まれます。 CLK_A の 2 番 目 の 立 ち 上 が り エ ッ ジは 発 生 し ていないので、Data_out_A ポー ト のデータはまだ 無 効 です。 CLK_A の 2 番 目 の 立 ち 上 が り エ ッ ジが 発 生 する と 、(bb) にある 新 しいデータ 4444 が 読 み 出 されます。 こ の 時 点 では、 CLK_B と CLK_A 間 に 十 分 なセッ トアップ タ イ ムがあ る ため、 読 み 出 し は 有 効 です。2 つのポー ト で 異 なるデータ を 同 時 に 書 き 込 むこ と によ り 発 生 する 競 合2 つのポー ト で 異 なるデータ を 同 時 に 同 じ メ モ リ セルに 書 き 込 むと、 そのセルに 保 存 されたデータは 無 効 にな り ます ( 表 4-13 を 参 照 )。表 4-13 : 同 じ ア ド レスに 同 時 に 書 き 込 みを 実 行 し た 場 合 の 競 合入 力 信 号ポー ト A ポー ト BRAM の 内 容WEA CLKB DIPA DIA WEB CLKA DIPB DIB パリティ データ1 ↑ DIPA DIA 1 ↑ DIPB DIB ? ?メモ :1. ADDRA = ADDRB、 ENA = 1、 ENB = 1、 DIPA … DIPB、 DIA … DIB、 ? = 不 明 ま たは 無 効184 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


デュアル ポー ト RAM での 競 合 の 解 消R出 力 ラ ッ チでの 書 き 込 みモー ド の 競 合メモリに 1 つのポー ト で 書 き 込 みを 実 行 し、 も う 1 つのポー ト で 読 み 出 し を 実 行 する と 、 競 合 が 発生 する こ と があ り ます。 書 き 込 み 操 作 は 常 に 正 常 に 実 行 さ れ、 書 き 込 みポー ト の 出 力 データ ラッチは WRITE_MODE 属 性 の 設 定 に 応 じ た 値 にな り ます。 書 き 込 みポート で WRITE_MODE がNO_CHANGE または WRITE_FIRST に 設 定 されている と、 そのポー ト での 書 き 込 みによ り も う1 つのポー ト のデータ 出 力 ラ ッチの 値 が 無 効 にな り ます ( 表 4-14 を 参 照 )。READ_FIRST モー ド では、 も う 1 つのポー ト で 競 合 は 発 生 し ません。表 4-14 : WRITE_MODE の 基 づ く 出 力 ラ ッ チでの 競 合入 力 信 号出 力 信 号ポー ト A ポー ト B ポー ト A ポー ト BWEA CLKB DIPA DIA WEB CLKA DIPB DIB DOPA DOA DOPB DOBWRITE_MODE_A=NO_CHANGE1 ↑ DIPA DIA 0 ↑ DIPB DIB 変 化 な し 変 化 な し ? ?WRITE_MODE_B=NO_CHANGE0 ↑ DIPA DIA 1 ↑ DIPB DIB ? ? 変 化 な し 変 化 な しWRITE_MODE_A=WRITE_FIRST1 ↑ DIPA DIA 0 ↑ DIPB DIB DIPA DOA ? ?WRITE_MODE_B=WRITE_FIRST0 ↑ DIPA DIA 1 ↑ DIPB DIB ? ? DIPB DIBWRITE_MODE_A=WRITE_FIRST、 WRITE_MODE_B=WRITE_FIRST0 ↑ DIPA DIA 1 ↑ DIPB DIB ? ? ? ?メモ :1. ADDRA = ADDRB、 ENA = 1、 ENB = 1、 ? = 不 明 ま たは 無 効競 合 の 解 消両 方 のポー ト で 同 一 のア ド レ ス にア ク セス し た 際 に、 それを 調 整 する 専 用 モニ タ はあ り ません。 アプリケーションで 2 つの ク ロ ッ ク のタ イ ミ ングを 適 切 に 調 整 する 必 要 があ り ます。 ただし、 同 じ 場所 に 同 時 に 書 き 込 みを 行 っ て も、 物 理 的 な 破 損 はあ り ません。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 185<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 4 章 : ブロック RAM の 使 用ブロック RAM のデザイ ン 入 力CORE Generatorさまざまなツールで <strong>Spartan</strong>-3 のブロ ッ ク RAM デザイ ンを 作 成 でき ますが、 こ こ では COREGenerator を 使 用 した 方 法 と、 VHDL/Verilog に 適 切 な ラ イブラ リ プ リ ミティブをインスタンシエー ト する 方 法 を 説 明 し ます。CORE Generator では、 シングル ポー ト ブロッ ク メモリ とデュアル ポー ト ブロック メモリの 両方 のモジ ュールを 作 成 でき ます ( 図 4-5 を 参 照 )。 ど ち ら のモジ ュールで も、 選 択 する 制 御 信 号 によって、RAM、ROM、 書 き 込 みのみファンクシ ョ ンがサポート されます。 選 択 し たアーキテ ク チ ャで 作 成 可 能 なサ イ ズの メ モ リ がサポー ト さ れます。その 他 の CORE Generator モジ ュール と 同 様 に、こ れら の メ モ リ モジ ュール も パ ラ メ ータ を 指 定 可能 です。 モジ ュールを 作 成 する には、 コ ンポーネン ト 名 、 使 用 する 制 御 入 力 、 制 御 入 力 の 極 性 を 指定 します。 デュアル ポー ト ブロッ ク メモリでは、ポート A のメモリ 構 成 (アスペク ト 比 ) を 選 択 すると、 ポート B に 対 し て 有 効 なオプシ ョ ンのみが 表 示 されます。オプシ ョ ンで、 初 期 メ モ リ 内 容 を 指 定 で き ます。 指 定 し ない 場 合 は、 各 メ モ リ 位 置 が 0 に 初 期 化 されます。 初 期 値 を 指 定 する には、 メ モ リ 初 期 化 フ ァ イ ルに、 各 メ モ リ 位 置 に 対 し て 1 行 のバイナ リデータ を 入 力 し ます。 デフォル ト のファ イルは、CORE Generator によ り 作 成 されます。 係 数 フ ァ イル ( 拡 張 子 .coe) を 作 成 する こ と も 可 能 です。 こ のフ ァ イルでは、 初 期 内 容 を 2、 10、 または 16 の基 数 で 定 義 で き る だけでな く 、 ほかの 制 御 パ ラ メ ータ も 定 義 で き ます。CORE Generator では、 選 択 されたオプシ ョ ン と 必 要 と なるデバイ ス リソースを 示 すレポートが 出力 されます。 ワード 数 の 多 い メ モ リ が 生 成 される と 外 部 マルチプレ クサが 必 要 にな る こ と があ り ますが、 これらの リ ソースは 必 要 な ロジ ッ ク スライス 数 としてレポートされます。 100% 使 用 さ れていないブロ ッ ク RAM で 使 用 可 能 なビ ッ ト 数 も 示 さ れます。 また、シミ ュレーショ ン 用 に VHDL または Verilog ビヘイビア モデル も 生 成 さ れます。• CORE Generator : Single-Port Block Memory モジュール (RAM または ROM)• CORE Generator : Dual-Port Block Memory モジュール (RAM または ROM)VHDL/Verilog インスタンシエーションVHDL および Verilog ベースのデザイ ンでは、 ブ ロ ッ ク RAM を 推 論 またはインスタンシエート できます ( 使 用 する 合 成 ツールに よ っ て 異 な る)。ブロック RAM の 推 論ザイ リンクスの XST や Synplicity 社 の Synplify などの VHDL および Verilog 合 成 ツールを 使 用 すると、 記 述 したハードウェアに 基 づいてブロック RAM を 推 論 できます。 ISE Project Navigator には、 ブロ ッ ク RAM を 推 論 する ためのテンプレー ト が 含 まれています。 Project Navigator でテンプレー ト を 使 用 する には、 [Edit] → [Language Templates] をク リ ックし、[VHDL] または [Verilog]を 展 開 表 示 し て、[Synthesis Constructs] → [Coding Examples] → [RAM] の 下 から 使 用 する ブ ロ ック RAM のテンプレー ト を 選 択 し ます。デザイ ンの 一 部 でブロ ッ ク RAM が 推 論 されていて も、 ブロ ッ ク RAM をインスタンシエートすることは 可 能 です。186 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


ブロック RAM のアプ リケーシ ョ ンRインスタンシエーション テンプレートVHDL および Verilog をベース と し たデザイ ンの 場 合 、 各 種 イ ン ス タ ンシエーシ ョ ン テンプレートを 使 用 し て 開 発 時 間 を 短 縮 で き ます。 Project Navigator で [Edit] → [Language Templates] をク リ ックし、[VHDL] または [Verilog] を 展 開 表 示 し て、 [Device Primitive Instantiation] → [<strong>FPGA</strong>] →[RAM/ROM] → [Block RAM] の 下 か ら 使 用 する テンプレー ト を 選 択 し ます。VHDL と Verilog でブロ ッ ク RAM をインスタンシエー ト する コード 例 は、 付 録 に 含 まれています。VHDL のテンプレー ト には、 コンポーネン ト 宣 言 のセクシ ョ ン と アーキテクチャ セクションがあります。 両 方 を VHDL デザイ ン ファイルに 挿 入 する 必 要 があります。 アーキテクチャ セクションのポー ト マ ッ プには、 アプ リ ケーシ ョ ンで 使 用 する 信 号 名 を 含 め る 必 要 があ り ます。SelectRAM_Ax テンプレート (x = 1、 2、 4、 9、 18、 または 36) はシングル ポー ト モジュールで、対 応 する RAMB16_Sx モジュールをインスタンシエー ト します。SelectRAM_Ax_By テンプレート (x = 1、 2、 4、 9、 18、 36 および y = 1、 2、 4、 9、 18、 36) はデュ アル ポート モジュ ールで、 対 応 する RAMB16_Sx_Sy モジュ ールをイ ンスタ ンシエート し ます。VHDL または Verilog コー ド での 初 期 化ブロック RAM の 構 造 は、 合 成 およびシ ミ ュ レーシ ョ ン 用 に VHDL または Verilog で 初 期 化 で き ます。 合 成 の 場 合 、 ブ ロ ッ ク RAM の イ ン ス タ ンシエーシ ョ ンに 属 性 を 設 定 する と 、 ザ イ リ ン ク スのツールでコ ンパイルでき る よ う EDIF 出 力 フ ァ イ ルに コ ピーされます。 VHDL コードのシ ミ ュレーションでは generic パラ メータを 使 用 して 属 性 が 渡 され、 Verilog コードのシ ミ ュレーシ ョ ンではdefparam パ ラ メ ータ を 使 用 し て 属 性 が 渡 さ れます。こ れ ら の 手 法 を 示 す VHDL と Verilog の 例 は、 付 録 に 含 まれています。ブロック RAM のアプ リケーシ ョ ンブロック RAM は、 通 常 さ ま ざ ま な ローカル ス トレージ アプ リ ケーシ ョ ンに 使 用 されますが、 次 のセ ク シ ョ ンでは、 それほど 一 般 的 ではないブ ロ ッ ク RAM のアプ リ ケーシ ョ ンを 説 明 し、 ブロ ッ クRAM の 高 度 な 機 能 を どの よ う に 活 用 で き る かを 示 し ます。大 型 RAM 構 造 の 作 成ブロッ ク SelectRAM の 列 は 特 殊 な 方 法 で 配 線 さ れてお り 、 配 線 遅 延 を 最 小 限 に 抑 えたブ ロ ッ ク のカスケード 接 続 が 可 能 です。 データ 幅 が 広 く 、 ワー ド 数 の 多 い RAM 構 造 を 作 成 し て も、 遅 延 はそれほど 発 生 し ません。読 み 出 し 専 用 メ モ リ (ROM)ライト イネーブル 入 力 を Low にする と 、 ブロ ッ ク RAM をレジスタ 付 きブロック ROM として 使用 でき ます。 ROM の 出 力 は 同 期 出 力 なので ク ロ ッ ク 入 力 を 必 要 と し、 ブ ロ ッ ク RAM の 読 み 出 しと ほぼ 同 様 に 動 作 し ます。 ROM の 内 容 は、 初 期 値 と し て 設 計 時 に 定 義 し ます。デザイ ンのコ ンパイル 後 は、 ROM の 内 容 を Data2BRAM ユーテ ィ リ テ ィ を 使 用 し てア ッ プデー トできます。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 187<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 4 章 : ブロック RAM の 使 用FIFOFIFO (First-In First-Out) メモリは、 エラスティック ス ト ア と も 呼 ばれ、 データ 格 納 以 外 で 最 も 頻繁 に 使 用 されるブロ ッ ク RAM のアプ リ ケーシ ョ ンです。 FIFO は、 異 な る ク ロ ッ ク ドメイン 間 、1 つのク ロッ クで 動 作 していてデータ レー ト が 異 な る 部 分 間 のデータ を 同 期 化 し 直 すために 使 用されます。 CORE Generator では、 読 み 出 し と 書 き 込 みの ク ロ ッ ク がお 互 いに 同 期 し てい る 同 期FIFO モジ ュール と 、 読 み 出 し と 書 き 込 みの ク ロ ッ ク が 異 な る 非 同 期 FIFO の 2 つの FIFO モジュールが 提 供 さ れています。アプ リ ケーシ ョ ン ノート XAPP261 『Data-Width Conversion FIFOs Using the Virtex-II BlockRAM Memory』 では、FIFO にデータ 幅 コ ンバータ を 組 み 込 む 例 で、 FIFO の 読 み 出 し ポー ト と 書き 込 みポー ト のデータ 幅 を 異 なる ものにでき る こ と を 示 し ます。アプ リ ケーシ ョ ン ノート XAPP291 『Self-Addressing FIFO』 では、 連 続 データ ス トリームのデータ を 調 整 する のに 有 益 な 自 動 ア ド レ ッ シング FIFO について 説 明 し ています。• CORE Generator : Synchronous FIFO モジュール• CORE Generator : Asynchronous FIFO モジュール• アプ リ ケーシ ョ ン ノート XAPP258 『FIFOs Using Virtex-II Block RAM』( リファレンス デザイ ンを 含 む)• アプ リ ケーシ ョ ン ノート XAPP261 『Data-Width Conversion FIFOs Using the Virtex-II BlockRAM Memory』 ( リファレンス デザイ ンを 含 む)• アプ リ ケーシ ョ ン ノート XAPP291 『Self-Addressing FIFO』エンベデッ ド プ ロセ ッ サの 保 存ブロッ ク RAM を 使 用 する と 、 効 率 的 なエンベデ ッ ド プロセッサ アプ リ ケーシ ョ ンを 作 成 できます。 エンベデッ ド プロセッサでは、 RAM を 次 の よ う な さ ま ざ ま な 機 能 に 使 用 で き ます。• プロセッサ レジスタ セッ ト 用 のレジスタ ファイル ( 分 散 RAM を 使 用 する 方 が 適 切 なプ ロセッサもあり)• スタック ベースのアーキテ ク チャおよび 呼 び 出 し ス タ ッ ク 用 のス タ ッ ク ま たは LIFO• 高 速 の ローカル コー ド 保 存 。 内 部 ブ ロ ッ ク RAM への 高 速 ア ク セスに よ り 、エンベデ ッ ド プロセ ッ サのパフ ォーマン スが 向 上 し ます。 ただし、 オンチップ ス ト レージは 使 用 可 能 なブ ロ ッ クRAM の 数 によ り 制 限 されます。• 外 部 プ ロ セ ッ サま たは DSP デバ イ ス と 共 有 する 大 型 デュ アル ポー ト メールボックス メモリ• アプ リ ケーシ ョ ンのデバ ッ グ を 向 上 する 一 時 ト レース バッファ ( 「 循 環 バ ッ フ ァ、 シフ ト レジスタ、 遅 延 ライン」 を 参 照 )デバイスのビッ トスト リームの 変 更 によるブロック RAM/ROM 内 容 のアップデート通 常 のデザ イ ン フローでは、ブロック RAM/ROM の 初 期 内 容 は 設 計 時 に 定 義 し、 デバイ スのビ ットストリームにコンパイルして、このビットストリームを <strong>Spartan</strong>-3 <strong>FPGA</strong> にダウンロード します。アプ リ ケーシ ョ ンに よ っては、 ビ ッ ト ス ト リ ーム を 作 成 する 段 階 で メ モ リ の 内 容 がわかっていなかった り 、 後 で 変 更 が 必 要 な 場 合 があ り ます。 <strong>Spartan</strong>-3 <strong>FPGA</strong> に 組 み 込 まれてい る プ ロ セ ッ サでブロック RAM にプログ ラ ム コー ド を 保 存 する のがその 一 例 です。 コー ド の 変 更 を 組 み 込 むためだけに <strong>FPGA</strong> デザインを 再 コンパイルするのを 回 避 するため、ザイ リ ン ク スでは Data2MEM という 既存 の <strong>FPGA</strong> ビッ トスト リームをブロック RAM/ROM の 内 容 でア ッ プデー ト するユーテ ィ リ テ ィ を提 供 し ています。188 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


ブロック RAM のアプ リケーシ ョ ンR図 4-20 に 示 すよ う に、 Data2MEM には、 新 しい RAM の 内 容 (エンベデッ ド プロセッサのコンパイラ/ リンカからの 出 力 )、<strong>FPGA</strong> ビッ トスト リーム、システム ア ド レ ス 空 間 および 各 ブ ロ ッ ク RAMで 使 用 されるア ド レ ス 指 定 と 各 ブロ ッ ク RAM の 物 理 的 な 位 置 のマ ッ プを 記 述 する フ ァ イ ルを 入 力します。 RAM (.elf / .mem ) <strong>FPGA</strong> (.bit )RAM RAM(.bmm )Data2MEMRAM <strong>FPGA</strong> (.bit )<strong>UG331</strong>_c4_14_111006図 4-20 : Data2BRAM ユーティリティによりビットストリームのブロック RAM の 内 容 をアップデート1 つのブロ ッ ク RAM を 使 用 した 2 つの 独 立 し たシングル ポー ト RAMアプ リ ケーシ ョ ンで、デバ イ ス 上 で 使 用 可 能 なブ ロ ッ ク RAM の 数 以 上 にシングル ポー ト RAM が必 要 な 場 合 があ り ます。 こ の 場 合 、 1 つのブロ ッ ク RAM に 完 全 に 独 立 し た 2 つのシングル ポー トメモリをインプリ メント し、デバイス 上 の RAM ブロ ッ ク の 数 を 実 質 的 に 2 倍 にする こ と ができ ます。 ただし、 各 RAM ブロックのサイズは、 元 のブロッ ク RAM の 1/2 の 9K ビッ トまでになります。図 4-21 に、 1 つのブロ ッ ク RAM で 2 つの 独 立 し たシングル ポー ト RAM を 作 成 する 方 法 を 示 します。 1 つのポー ト の 最 上 位 ア ド レ ス ビットを High に 固 定 し、 も う 1 つのポー ト の 最 上 位 ア ド レス ビッ トを Low に 固 定 し ます。 RAM が 2 つのポー ト に 均 等 に 割 り 当 て ら れます。Single-Port AADDR[m]ADDR[m -1:0]DIAWEAENASSRACLKADOASingle-Port BCLKBSSRBENBWEBDIBDOBADDR[n -1:0]ADDR[n]X463_21_062503図 4-21 : 1 つのブロ ッ ク RAM で 2 つの 独 立 し たシングル ポー ト RAM を 実 現<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 189<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 4 章 : ブロック RAM の 使 用2 つのポー ト は 独 立 し てお り 、 それぞれ メ モ リ 構 成 、 データ 入 力 と 出 力 、 ク ロ ッ ク 入 力 、 制 御 信 号があ り ます。 たとえば、 ポート A を 256x36 にし、 ポート B を 2Kx4 に 設 定 でき ます。図 4-21 では、 使 用 可 能 な メ モ リ を 2 つのポー ト 間 で 均 等 に 分 割 し ています。 上 位 ア ド レ ス ラインに ロ ジ ッ ク を 追 加 する と 、 メ モ リ をその 他 の 比 で 分 割 で き ます。1 つのブロ ッ ク RAM を 使 用 した 256x72 シングル ポー ト RAM図 4-22 に、1 つのブロ ッ ク RAM でワード 数 が 256、デー タ 幅 が 72 ビッ トのシングル ポー ト RAMを 作 成 する 方 法 を 示 し ます。 先 ほどの 例 と 同 様 に メ モ リ アレイを 半 分 に 分 割 し、 一 方 に 下 位 36ビ ッ ト 、 も う 一 方 に 上 位 36 ビ ッ ト を 保 存 する こ と に よ り 、 72 ビット 幅 のメモリを 作 成 します。ADDR[7:0]ADDR[8]ADDRA[7:0]DI[71:36]DIADOADO[71:36]WEENASSRCLKWEAENASSRACLKACLKBSSRBENBWEBDI[35:0]DIBDOBDO[35:0]ADDRB[7:0]ADDRB[8]X463_22_062403図 4-22 : 1 つのブロ ッ ク RAM を 使 用 した 256x72 シングル ポー ト RAM1 つのポー ト の 最 上 位 ア ド レ ス ライン ADDR[8] は High に 固 定 し、 も う 1 つのポー ト の 最 上 位 アドレス ラインは Low に 固 定 し ます。 両 方 のポー ト で、 ア ド レ ス 入 力 、 制 御 入 力 、 ク ロ ッ ク 入 力 が共 有 さ れます。190 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


ブロック RAM のアプ リケーシ ョ ンR循 環 バ ッ フ ァ、 シ フ ト レジスタ、 遅 延 ライン循 環 バ ッ フ ァ は、 FIR (Finite Impulse Response) フィルタ、マルチチャネル フ ィ ルタ、 相 関 関 数 および 相 互 相 関 関 数 など、さ ま ざ ま なデジ タル 信 号 処 理 アプ リ ケーシ ョ ンに 使 用 さ れます。 また、データ パスのほかの 部 分 と 再 同 期 化 する ために 単 にデータ を 遅 延 させる 際 に も 有 益 です。図 4-23 に、 循 環 バ ッ フ ァ の 動 作 を 概 念 的 に 示 し ます。 まずデータ がバ ッ フ ァ に 書 き 込 まれ、 n クロック サ イ ク ル 後 に 同 じデータがバ ッ フ ァ か ら 出 力 さ れて、 同 じ 場 所 に 新 し いデータ が 書 き 込 まれます。n-1 n-2n…INOUT031 2X463_20_020503図 4-23 : 循 環 バ ッ フ ァ図 4-24 に、 ブ ロ ッ ク RAM を 使 用 し て 循 環 バ ッ フ ァ を 作 成 するハー ド ウ ェ ア インプリ メンテーションを 示 します。 モジュ ロ n カウンタでシングル ポー ト ブロッ ク RAM のアド レス 入 力 を 駆 動します。 単 純 なデータ 遅 延 ラ イ ンでは、 各 ク ロ ッ ク サイクルでブロッ ク RAM に 新 し いデータ を 書き 込 みます。循 環 バ ッ フ ァ は、 各 ク ロ ッ ク エ ッ ジで 遅 延 さ れたデータ 値 も 読 み 出 し ます。 ブロッ ク RAM の 書 き込 みモー ド を READ_FIRST に 設 定 する と、 入 力 書 き 込 みデータ と 出 力 読 み 出 しデータ で 同 じ クロック 入 力 の 同 じクロック エ ッ ジを 使 用 で き る ので、 デザ イ ン を 簡 略 化 し、 全 体 的 なパフ ォーマンス を 向 上 で き ます。 書 き 込 みモー ド の 設 定 を 図 4-17 に 示 し ます。INDIADDRDOOUTCounterWEENSSRCLKWRITE_MODE=READ_FIRSTX463_24_020503図 4-24 : ブロック RAM と カウン タ を 使 用 し た 循 環 バ ッ フ ァのイ ン プ リ メ ンテーシ ョ ン図 4-24 では、IN および OUT データ ポー ト の 幅 は 同 じですが、 デュアル ポー ト モー ド を 使 用 すると、 ポー ト の 幅 を 異 なる ものにでき ます。 図 4-25 に、 バイ ト 幅 データがブロ ッ ク RAM に 入 力 され、 32 ビッ ト ワー ド のデータ が 出 力 さ れる 例 を 示 し ます。 また、 データを 2,048 バイ ト クロックサ イ ク ルまで 遅 延 さ せる こ と が 可 能 です。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 191<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 4 章 : ブロック RAM の 使 用 3 2 1 0IN RAM/2,048 OUT 3 2 1 0X463_25_020503図 4-25 : 1 つのブロ ッ ク RAM に 循 環 バ ッ フ ァ と ポー ト 幅 コ ンバー タ を 統 合1 つのブロ ッ ク をデュ アル ポー ト メモリ としてコンフィギュレーションします。 バイ ト 幅 データは、2Kx9 メモリ としてコンフィギュレーションされたポート B に 入 力 し ます。 32 ビッ ト データはポー ト A に 出 力 されるので、 ポー ト A は 512x36 メモリ としてコンフィギュレーションされます。512x36÷nENADDRA[8:0]DOA[31:0]WEAENAOUTCLKACLKBINTC÷4ENBWEBDIB[7:0]ADDRB[11:2]ADDRB[1:0]2Kx9X463_26_062503図 4-26 : 入 力 バイ ト 幅 デー タ を 4n クロック サイ クル 遅 延 さ せ、 32 ビット データに 変 換両 方 のポー ト に 供 給 さ れる ア ド レ ス を 調 整 する こ と に よ り 、 4n バイ ト クロック サイクルの 遅 延 を作 成 し ます。 各 32 ビット 出 力 ワードに 対 して 入 力 バイトが 4 つ 必 要 なので、 1/4 カウンタで 2 つの下 位 ビ ッ ト ADDRB[1:0] を 駆 動 します。 4 バ イ ト が 保 存 さ れた 後 、 下 位 カ ウ ン タ か ら の ター ミ ナルカウント TC によ りポート A と 1/n カウンタがイネーブルになります。 イ ネーブル 信 号 によ り ポート B の 32 ビ ッ ト 出 力 データ が 出 力 ラ ッ チに 送 信 さ れ、 上 位 カ ウ ン タ が 増 分 し ます。 1/4 カウンタと1/n カ ウ ン タ を 組 み 合 わせる こ と に よ り 、1/4n カウンタを 作 成 していることになります。 1/n カウンタからの 出 力 は、 ポート B の 最 上 位 ア ド レ ス ビッ ト ADDRB[11:2] とポート A のアド レスADDRA[0:0] となります。192 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


ブロック RAM のアプ リケーシ ョ ンR高 速 複 素 ステー ト マシンとマイクロシーケンサブロック RAM はどの よ う な 初 期 値 に も コ ン フ ィ ギ ュ レーシ ョ ンで き る ので、ス テー ト マシン と して 使 用 可 能 なデュ アル ポー ト のレジス タ 付 き ROM を 作 成 できます。 たとえば 図 4-27 に 示 すよ うに、 128 ステート、8 分 岐 、 38 のステート 出 力 のある 有 限 ステート マシンを 1 つのブロ ッ ク RAMにインプリ メン トできます。7 1Kx97+2 7 38 7 256x3636 X463_27_062503図 4-27 : 1 つのブロ ッ ク RAM に 38 個 の 出 力 を 持 つ 128 ステート 有 限 ステート マシンをインプリメント図 4-21 と 同 様 に、 デュアル ポー ト ブロッ ク RAM を、 1 つのポー ト の 最 上 位 ア ド レ ス ビットをHigh に、 も う 1 つのポー ト の 最 上 位 ア ド レ ス を Low に 固 定 する こ と に よ り 、 半 分 のサ イ ズの 2 つのシングル ポー ト メ モ リ に 分 割 し ます。 ポー ト A は 2Kx9 としてコンフィギュレーションしますが、 1Kx9 のシングル ポー ト ROM として 使 用 します。 7 つの 出 力 をア ド レ ス 入 力 にフ ィ ード バ ックするこ とによ り、128 個 のステー ト を 進 めます。 1Kx9 ROM には 10 本 のア ド レ ス ラインがあり、その う ち 7 本 が 現 在 のス テー ト 入 力 、 残 り の 3 本 は 8 個 の 分 岐 を 決 定 し ます。 128 個 のステー ト は、これらの 3 本 のア ド レ ス 入 力 で 制 御 し、 8 個 の 新 しいステート のう ちいずれかに 分 岐 させるこ とができます。ポー ト B は 512x36 にコンフィギュレーシ ョ ンして、 256x36 のシングル ポー ト ROM として 使 用し ます。 ポー ト A から 同 じ 7 ビ ッ ト の 現 在 のス テー ト 値 を 受 信 し、 36 個 の 出 力 を 駆 動 し ます。 これ ら の 出 力 は、 各 ス テー ト 用 に 任 意 に 定 義 可 能 ですが、 ブロッ ク ROM は 本 来 同 期 メ モ リ であ る ため、 256x36 ROM からの 36 個 の 出 力 は 1 ク ロック サイクル 遅 れます。 8 番 目 のア ド レ ス 入 力 は、36 個 の 出 力 の 別 の 定 義 を 呼 び 出 し ます。 追 加 の 2 ステート ビッ トは 1Kx9 ブロッ クからの 出 力 を使 用 し ますが、 こ れ ら のビ ッ ト は 1 クロック サイクル 遅 れていません。同 じ 基 本 アーキテ ク チ ャ を 使 用 し て、4 つの 分 岐 を 持 つ 256 ステートの 有 限 ステート マシンまたは16 個 の 分 岐 を 持 つ 64 ステート マシン も 作 成 で き ます。追 加 の 分 岐 制 御 入 力 が 必 要 な 場 合 は、 入 力 マルチプレ ク サを 使 用 し ます。 こ のデザイ ンの 利 点 は、低 コス ト であるこ と (1 つのブロ ッ ク RAM を 使 用 )、 高 パフ ォーマン スが 達 成 で き る こ と (125MHz以 上 )、 レ イ ア ウ ト ま たは 配 線 問 題 がない こ と 、 柔 軟 な 設 計 が 可 能 な こ と です。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 193<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 4 章 : ブロック RAM の 使 用RAM を 使 用 し た 高 速 の 大 型 カウン タカウ ン タは、 次 ステー ト が 現 在 のステー ト のみによ って 決 ま る 単 純 なステー ト マシンです。 たとえばバ イナ リ アップ カウ ンタは、 現 在 のステー ト を 単 にイン ク リ メ ン ト して 次 ステー ト を 作 成 し ます。 図 4-28 に、 ク ロ ッ ク イ ネーブルおよび 同 期 リ セ ッ ト 付 き の 20 ビットのバイナリ アップ カウンタを 1 つのブロ ッ ク RAM にインプリ メン ト した 例 を 示 します。1Kx18ENTCCNT[9:0]SSRCLKADDRB[9:0]DOA[9:0]DOA[10]DOA[17:11]WEAENASSRACLKACOUNT[19:10]TERM_COUNTENTCCNT[9:0]ENACLKBSSRBENBWEBDOB[17:11]DOB[10]DOB[9:0]ADDRB[9:0]1Kx18COUNT[9:0]図 4-28 : 1 つのブロ ッ ク RAM を 使 用 して 2 つの 10 ビット カウンタから 20 ビットのバイナリ カウンタを 作 成B1024 A<strong>UG331</strong>_c4_15_12040620 ビットのバイナリ カウンタは、2 つの 同 一 の 10 ビッ ト バイナリ カウンタから、 下 位 の 10 ビット カウンタで 1,024 クロック サイクルごとに 上 位 の 10 ビッ ト カウンタをイネーブルにすることによ り 作 成 できます。 この 例 では、 ポート B は 1Kx18 ROM (WEB は Low) としてコンフィギュレーシ ョ ンされており、 下 位 の 10 ビット カウンタを 構 成 します。 下 位 の 10 ビット データ 出 力 は現 在 のステー ト を 表 してお り 、 10 ビッ トのアドレス 入 力 ADDRB[9:0] に 直 接 接 続 さ れます。 次 ステー ト は、ア ド レス ピ ンに 入 力 さ れた 現 在 のス テー ト に 応 じ て ROM 内 で 検 索 さ れます。 11 番 目 のデータ ビット D[10] は、 カ ウ ン タ の タ ー ミ ナル カウント 出 力 となります。 この 例 では、 上 位 の7 データ ビッ ト DOB[17:11] は 使 用 されません。バイナリ カウンタの 次 ステート ロジックの 動 作 を 表 4-15 に 示 し ます。 カウンタはステート 0 (あるいは INIT または SRVAL 属 性 で 指 定 し た 値 ) から 開 始 し、 0x3FF (10 進 数 の 1023) までカウン トし、 この 時 点 でターミナル カウント D[10] がアクテ ィブにな り、 カウンタが 0 に 戻 り ます。194 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


ブロック RAM のアプ リケーシ ョ ンR表 4-15 : バイナリ アップ カウンタの 次 ステート ロジック現 在 のステー ト ステート 出 力 次 ステー トADDR[9:0](16 進 数 )TCD[10]COUNTD[9:0](16 進 数 )0 0 11 0 22 0 3… … …3FFF 1 0ポー ト A は、 ポー ト B からのターミナル カウント ポー ト でイネーブルになる こ と を 除 き、 ポー トB と ほぼ 同 様 に コ ン フ ィ ギ ュ レーシ ョ ン さ れています。ポー ト A の 10 ビッ ト カウンタのカウントパターンは、 ポート B の 1/1024 の 速 度 で イ ン ク リ メ ン ト する こ と を 除 き、 ポー ト B と 同 一 です。20 ビッ トのアップ カウンタを 少 し 変 更 するだけで、 18 ビッ トのアップ/ダウン カウンタを 作 成 できます。 最 上 位 ア ド レ ス 入 力 を 方 向 を 制 御 する 入 力 と し て 使 用 する こ と に よ り 、 同 じ 基 本 のカ ウ ンタ アーキテクチャでカウントをインクリメントまたはディクリメントさせることができます ( 表4-16 を 参 照 )。 この 例 では、 カウンタはアップ/ダ ウ ン 制 御 入 力 が Low のときにインク リ メント し、High のときにディク リ メント します。 ROM は、 イ ン ク リ メ ン ト 次 ステー ト ロジックとディ ク リ メント 次 ステート ロジックに 分 割 されます。表 4-16 : バイナリ アップ/ダウン カウンタの 次 ステート ロジックアップ/ダウン 制 御 現 在 のステー ト ステート 出 力 次 ステー トTCCOUNTADDR[9]ADDR[8:0](16 進 数 )D[10]D[9:0](16 進 数 )0(アップ)0 0 11 0 22 0 3… … …1FFF 1 01(ダウン)1FFF 0 1FFE1FFE 0 1FFD1FFD 0 1FFC… … …0 1 1FFF<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 195<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 4 章 : ブロック RAM の 使 用次 のよ うなさまざまなカウンタ イ ンプ リ メ ンテーシ ョ ンが 可 能 です。• さまざまなモジュロのバイナリ アップ カウンタおよびアップ/ダウン カウンタ (モジュロはポー ト A とポート B にインプリ メン ト したカウンタのモジュロの 組 み 合 わせによ り 決 定 )• 異 なるインクリ メ ント /ディ ク リ メ ント パタ ーンのカウ ンタ ( 高 速 グレ ー コード カウンタなど)• 6 桁 の BCD カウンタ (512x36 にコンフィギュレーショ ンした 1 つのブロ ッ ク ROM と 1 つのCLB を 使 用 )4 ポー ト メモリ各 ブロ ッ ク RAM は、 物 理 的 にはデュ アル ポー ト メモリですが、 ブロッ ク RAM のアクセスは 高 速であ る ため、メ モ リ の 入 出 力 信 号 をマルチプレ ク サを 介 し て 時 間 で 分 割 する こ と に よ り 、マルチポート メモリを 作 成 することも 可 能 です。 1 つのブロ ッ ク RAM に ロ ジ ッ ク を 追 加 する だけで、 4 ポートまでをサポートできます。ただし、 各 ポートにアクセス レ イ テンシが 追 加 さ れます。 次 のアプ リケーシ ョ ン ノートに、 詳 細 と リ ファレンス デザイ ンが 示 されています。• アプ リ ケーシ ョ ン ノート XAPP228 : 『Quad-Port Memories in Virtex Devices』 ( リファレンスデザイ ンを 含 む)CAM (Content Addressable Memory)CAM (Content Addressable Memory) は、 連 想 メモリ と も 呼 ばれ、 さまざまなネッ ト ワークおよびデータ 処 理 アプ リ ケーシ ョ ンで 使 用 さ れます。 ほとんどのメモリ アプ リ ケーシ ョ ンでは、 アド レスを 指 定 する こ と に よ り メ モ リ の 内 容 が 参 照 さ れますが、 CAM アプ リ ケーシ ョ ンでは、 内 容 が 駆 動入 力 であ り 、 出 力 にはその 内 容 が メ モ リ に 存 在 する のか、 存 在 する 場 合 はその ロ ケーシ ョ ンへの 参照 が 示 されます。CAM の 動 作 は、 書 籍 の 索 引 の よ う な も のだ と 考 え る と 理 解 し やす く な り ます。 索 引 で 項 目 ( 内 容 )を 調 べる と 、 その 項 目 が 存 在 する 場 合 はその 場 所 への 参 照 (ページ 番 号 ) が 示 されています。• CORE Generator : Content-Addressable Memory モジュール• アプ リ ケーシ ョ ン ノート XAPP260 『Using Virtex-II Block RAM for High PerformanceRead/Write CAMs』• アプ リ ケーシ ョ ン ノート XAPP201 『An Overview of Multiple CAM Designs in VirtexFamily Devices』 (Virtex/Virtex-E および <strong>Spartan</strong>-II/<strong>Spartan</strong>-IIE アーキテクチャ 用 だが、 有 益な 概 要 および 手 法 を 提 供 )ブロック RAM を 使 用 したロジッ ク ファンクションのインプリメント<strong>Spartan</strong>-3 の 各 ロ ジ ッ ク セルには、ルッ ク ア ップ テーブル (LUT) という 4 入 力 の RAM/ROM があります。 LUT は、 4 入 力 の ロ ジ ッ ク ファンクションを 実 行 でき、<strong>Spartan</strong>-3 ロジック アーキテクチャの 基 本 となっています。ブロック RAM の 別 のアプ リ ケーシ ョ ン と し て、 大 型 ルッ ク ア ッ プ テーブルがあ り ます。 ブロッ クRAM は、 14 個 の 入 力 と 1 つの 出 力 を 持 つよ う 構 成 (ROM として 使 用 ) できるので、 複 雑 さ や 反 転にかかわらず、14 入 力 までの ロ ジ ッ ク ファンクションをインプリ メントできます。 ただし、 次 のよう な 制 限 があ り ます。• ロ ジ ッ ク に、 ラ ッ チを 作 成 する よ う な 非 同 期 フ ィ ー ド バ ッ ク パスを 含 める こ とはできません。• ロ ジ ッ ク 出 力 は、 ク ロ ッ ク 入 力 に 同 期 し てい る 必 要 があ り ます。 ブロッ ク RAM では、 非 同 期読 み 出 し 出 力 はサポー ト さ れません。196 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


ブロック RAM のアプ リケーシ ョ ンRロジック フ ァ ン ク シ ョ ンが こ れら の 要 件 を 満 た し ていれば、 1 つのブロ ッ ク RAM で 次 のフ ァ ン クションをインプリメントできます。• 14 入 力 までのブール ロジック ファンクション• 9 個 の 11 入 力 ブール ロジック ファンクション ( 入 力 を 共 有 する 場 合 )• その 他 さ ま ざ ま な 組 み 合 わせが 可 能 ですが、 入 力 の 数 、 共 有 入 力 の 数 、 ロ ジ ッ ク ファンクションの 複 雑 さ が 制 限 さ れる 場 合 があ り ます。CLB ロ ジ ッ ク の 柔 軟 性 と ス ピー ド のため、 複 数 の 入 力 を AND で 接 続 するア ド レ ス デコーダなどの 単 純 なフ ァ ン ク シ ョ ンでは、 ブロ ッ ク RAM を 使 用 し て も 高 速 または 効 率 的 にな ら ない 場 合 があります。 ブロック RAM は、 多 数 決 デコーダ、 パターン 照 合 、 相 関 器 などの 複 雑 な ロ ジ ッ ク ファンク シ ョ ンに 使 用 する と 高 速 にな り 、 ま た 効 率 的 です。あいまいパ タ ーン 照 合 回 路 の 例図 4-29 に、 完 全 な 一 致 と ほぼ 一 致 の 両 方 を 検 出 する あいまいパターン 照 合 回 路 の 例 を 示 し ます。 各入 力 ビ ッ ト は、MATCH パターンと 比 較 され、 ドントケア ビット ( 常 に 一 致 する ビ ッ ト ) がマス ク されます。 その 後 、 一 致 ビ ッ ト 数 がカ ウ ン ト さ れ、 し き い 値 と 比 較 さ れます。 一 致 ビ ッ ト 数 が し き い値 よ り も 大 きい 場 合 は、 入 力 ビッ トはほぼ 一 致 する とみなされ、MATCH 出 力 が High にな り ます。MATCH 10•0•S>1 MATCHX463_29_040403図 4-29 : 1 つのブロ ッ ク RAM にインプリ メント した 14 入 力 のあいまいパタ ーン 照 合 回 路アプ リ ケーシ ョ ンで 異 な る 照 合 パターンや 異 な る ロ ジ ッ ク フ ァ ン ク シ ョ ンが 必 要 な 場 合 は、 2 番 目のメモリ ポー ト か ら 読 み 込 む こ と がで き ます。このファンクションを CLB ロ ジ ッ ク に イ ンプ リ メ ン ト する と 、 多 数 の ロ ジ ッ ク セルおよび 複 数 レイヤのロジックが 必 要 ですが、 MATCH、 MASK、およびしきい 値 の 値 は 事 前 にわかっているので、フ ァ ン ク シ ョ ン を 事 前 に 算 出 し てブ ロ ッ ク RAM に 保 存 する こ と が 可 能 です。 各 入 力 の 条 件 (アドレス 0 で 開 始 し、 メ モ リ 全 体 を 網 羅 する よ う イ ン ク リ メ ン ト ) に 対 し、 出 力 条 件 を 事 前 に 算 出 で きます。 14 入 力 のあいまいパターン 照 合 回 路 は、 1 つのブロ ッ ク RAM にインプリ メン トでき、 1 クロック サ イ ク ルで 操 作 を 実 行 し ます。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 197<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 4 章 : ブロック RAM の 使 用MAP -bp オプシ ョ ン を 使 用 し たロ ジ ッ クのブ ロ ッ ク RAM へのマ ッ プISE ソフトウェアでは、ロジック フ ァ ン ク シ ョ ンは 自 動 的 にはブ ロ ッ ク RAM にマップされませんが、 ブロック RAM へのマ ッ プを 指 定 する マ ッ プ オプシ ョ ンがあ り ます。-bp オプシ ョ ン を 指 定 する と 、ブロ ッ ク RAM マップ オプシ ョ ンがオンにな り ます。 こ の 場 合 、ISEで LUT および 付 属 のフ リ ッ プフ ロ ッ プが 未 使 用 の 1 出 力 シン グル ポー ト ブロッ ク RAM にマップされます。 ブロッ ク RAM にはレジス タ 付 きの 同 期 出 力 があ るので、 最 後 のフ リ ッ プフ ロ ッ プ 出 力が 必 要 です。 フリ ップフロップは、 そのフリ ップフロップを 駆 動 する LUT と 共 にバッ クされます。LUT ロジックのないレジスタ、 またはレジスタのない LUT ロジックは、 ブロック RAM にマップされません。ブロック RAM 出 力 に 変 換 さ れる レ ジ ス タ 出 力 を 指 定 する には、 レ ジ ス タ 出 力 に 接 続 する ネ ッ ト 名をリストしたファイルを 作 成 し、 環 境 変 数 XIL_MAP_BRAM_FILE にそのフ ァ イル 名 を 指 定 して、 こ のフ ァ イルが ソ フ ト ウ ェ アで 使 用 さ れる よ う に し ます。 MAP プログラムでは、-bp オプシ ョン を 指 定 する と こ の 環 境 変 数 が 参 照 さ れ、 このファイルにリ ス ト された 出 力 ネッ トのみがブロックRAM 出 力 に 変 換 さ れます。• PC :set XIL_MAP_BRAM_FILE=file_name• ワーク ステーシ ョ ン :setenv XIL_MAP_BRAM_FILE file_nameブロック RAM を 使 用 し た 波 形 格 納 、 フ ァ ン ク シ ョ ン テーブル、 ダイレク トデジ タル 合 成 (DDS)ブロック RAM の 高 度 なアプ リ ケーシ ョ ンの 1 つ と し て、 サ イ ン 波 やコ サ イ ン 波 の よ う な 三 角 関 数などのファンクショ ン テーブルを 含 む 波 形 の 格 納 があ り ます。 サイン 波 およびコサイン 波 は、 ダイレクト デジタル 合 成 (DDS) などのフ ァ ン ク シ ョ ンで 出 力 波 形 を 生 成 する 際 の 基 本 波 形 と な り ます。 CORE Generator では、 両 方 のモジ ュールが 提 供 さ れています。• CORE Generator : Sine/Cosine Look-Up Table モジュール• CORE Generator : Direct Digital Synthesizer (DDS) モジュール波 形 の 格 納 は、 さまざまな 信 号 コンパンダ (コンプレッサ/エキスパンダ) および 正 規 化 回 路 で、 使用 可 能 なバン ド 幅 内 の 重 要 な 信 号 を 増 加 する ために も 使 用 可 能 です。 た と えば、 線 形 データ、u-Lawでエンコード されたデータ、A-Law でエン コー ド さ れデータ の 間 の 変 換 など、 電 気 通 信 分 野 で 一 般的 に 使 用 さ れます。ブロック RAM はデュ アル ポー ト であ る ので、 波 形 を 効 率 的 に 格 納 する だけでな く 、 ま った く 新 しいデータや 修 正 / 正 規 化 さ れた 波 形 データ でア ッ プデー ト する こ と も 可 能 です。 図 4-30 に 示 す 例 では、ポー ト A に 現 在 ア ク テ ィ ブな 波 形 が 含 まれていますが、 ポー ト B に 新 し い 波 形 を 読 み 込 むこ とができ ます。198 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


ブロック RAM のアプ リケーシ ョ ンRPort AActive WaveformDOAADDRADIBADDRBPort BUpdate WaveformX463_30_062503図 4-30 : デュアル ポー ト ブロック RAM によ る 波 形 の 格 納 と ア ッ プデー ト現 実 のエンジニア リ ン グでは、 答 え を 導 き 出 すよ り も 探 す 方 が 高 速 な 場 合 があ り ますが、 デジタルデザ イ ンで も 同 様 の こ と が 言 え ます。 ブロッ ク RAM は、 出 力 y を 入 力 x の 関 数 y=f(x) とした 場 合に、 値 をあ らかじめ 算 出 し てフ ァ ン ク シ ョ ン テーブル と し て 保 存 する のに も 有 益 です。た と えば、 次 の よ う な 多 項 式 を 実 行 する CLB ロジックを 作 成 するのではなく、 値 をあらかじめ 算出 してブロ ッ ク RAM に 保 存 でき ます。Y = Ax 3 - Bx 2 + Cx + DA、 B、 C、 D はすべて 定 数 であ り 、 出 力 y は 入 力 x のみに 依 存 し ます。 各 入 力 値 x に 対 し て 出 力 値を 算 出 し ておき、メ モ リ に 保 存 し ます。 x の 値 の 範 囲 や 出 力 y の 大 き さ に よ り 、 関 数 が 1 つのロ ジ ック ブ ロ ッ ク に 収 ま ら ない 場 合 があ る ので、 こ の よ う な 使 用 法 は 制 限 さ れます。 た と えば、 入 力 値0 ~ 511 で 上 記 の 多 項 式 を 512x36 のブロ ッ ク ROM にインプリ メン トするとすると、 x の 範 囲 はy の 値 に よ っ て 制 限 さ れます。 この 例 で x を 最 大 値 にする と 、y に 28 ビ ッ ト 以 上 の 出 力 が 必 要 です。このほかに、 1 つのブロ ッ ク RAM/ROM に 次 のよ う なル ッ ク ア ッ プ ファンクションをインプリ メントできます。• log(x)、 square-root(x) など を 組 み 合 わせた、 1 入 力 の 複 雑 な 演 算 フ ァ ン ク シ ョ ン。 2 つの 値 の乗 算 は 可 能 ですが、ブロ ッ ク RAM の 入 力 数 に 制 限 さ れます。 純 粋 な 乗 算 フ ァ ン ク シ ョ ンには、<strong>Spartan</strong>-3 のエンベデッ ド 18x18 乗 算 器 を 使 用 する 方 が 適 し ています。• 11 ビット バイナリ を 4 桁 の BCD に 変 換 する 2 つの 独 立 し た コ ンバータ を、 1Kx18 としてコンフィギュレーショ ンしたブロック ROM にインプリ メン ト 可 能 。 各 コンバータの 最 下 位 ビット (LSB) は、 変 換 された 結 果 と 元 の 値 が 同 じ なので、 ROM をバイパス します。 つま り、 LSBは 値 が 奇 数 であ るか 偶 数 であ るかを 示 し ます。• 3 桁 の BCD を 10 ビ ッ ト のバイ ナ リ に 変 換 する 2 つの 独 立 し た コ ンバータ を、 2Kx9 としてコンフィギュレーションしたブロック ROM に イ ンプ リ メ ン ト 可 能 。LSB はコンバータをバイパスします。• 90°シフ ト したア ド レス、18 ビ ッ ト 増 幅 、 10 ビ ッ ト の 角 分 解 能 を 持 つサ イ ン/コサイン ルッ クアップ テーブル (1 つのポー ト をサイ ンに、 も う 1 つのポー ト を コサイ ンに 使 用 )。• 10 ビット バイナリ を 3 桁 の 7 セグ メ ン ト LED 出 力 に 変 換 する 2 つの 独 立 し た コ ンバータ を、1Kx18 としてコンフィギュレーションしたブロック ROM にインプリ メン ト 可 能 。 上 位 の 0は、 ブ ラ ン ク と し て 表 示 さ れ ま す。 入 力 値 は 1023 までに 制 限 されるため、 LED の 表 示 は0 ~ 3FF となり、 最 上 位 桁 の ロ ジ ッ ク には、 4 入 力 (セグ メ ン ト a=d=g、 セグメント f は 常 にHigh) のみが 必 要 と な り ます。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 199<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 4 章 : ブロック RAM の 使 用関 連 資 料 および リ フ ァ レ ンス• ホワイ ト ペーパー WP335 『Creative Use of Block RAM』http://japan.xilinx.com/support/documentation/spartan-3_white_papers.htm• The Myriad Uses of Block RAM (Gray Research, LLC 社 Jan Gray 著 )http://www.fpgacpu.org/usenet/bb.html• 『<strong>Spartan</strong>-3A および <strong>Spartan</strong>-3A DSP ライブラリ ガイド (HDL 用 )』http://www.xilinx.com/itp/xilinx10j/books/docs/spartan3a_hdl/spartan3a_hdl.pdfこのマニュアルは、 Project Navigator で [Help] → [Software Manuals] をクリ ックし、 開 いたPDF 文 書 で 左 側 のしおりからライブラリ ガイドをク リ ックしても 開 きます。まとめ<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> には、 高 速 で 柔 軟 なブ ロ ッ ク RAM が 豊 富 に 含 まれてお り 、 スクラッチパッド メモリ、FIFO、 バッファ、LUT などのオンチップ ローカル ストレージとして 非常 に 有 益 です。 ブロック RAM の 特 殊 な 機 能 を 使 用 する と 、 シフ ト レジスタ、 遅 延 ライン、 カウンタ、 多 入 力 の 複 雑 な ロ ジ ッ ク ファンクションをインプリ メントできます。ブロック RAM は、 CORE Generator を 含 む ISE のさまざまなツールでサポート されており、 またVHDL および Verilog デザインで 推 論 したり、 直 接 インスタンシエートできます。付 録 A : VHDL インスタンシエーション 例次 の VHDL インスタンシエーション 例 XC3S_RAMB_1_PORT では、 SelectRAM_A36.vhd という VHDL テンプレート を 使 用 しています。 これを 含 むその 他 のテンプレートは、 次 のリンクからダウンロードできます。 次 の 例 は VHDL コー ド の 一 部 であ り 、 そのま まではコ ンパイ ルで き ません。• xapp463_vhdl.zip-- Module: XC3S_RAMB_1_PORT-- Description: 18Kb Block SelectRAM example-- Single Port 512 x 36 bits-- Use template "SelectRAM_A36.vhd"---- Device: <strong>Spartan</strong>-3 Family---------------------------------------------------------------------library IEEE;use IEEE.std_logic_1164.all;---- pragma translate_offlibrary UNISIM;use UNISIM.VCOMPONENTS.ALL;-- pragma translate_on--entity XC3S_RAMB_1_PORT isport (DATA_IN : in std_logic_vector (35 downto 0);ADDRESS : in std_logic_vector (8 downto 0);ENABLE : in std_logic;WRITE_EN : in std_logic;SET_RESET : in std_logic;CLK: in std_logic;DATA_OUT : out std_logic_vector (35 downto 0));end XC3S_RAMB_1_PORT;--architecture XC3S_RAMB_1_PORT_arch of XC3S_RAMB_1_PORT is200 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


付 録 A : VHDL インスタンシエーション 例R---- Components Declarations:--component BUFGport (I : in std_logic;O : out std_logic);end component;--component RAMB16_S36-- pragma translate_offgeneric (-- "Read during Write" attribute for functional simulationWRITE_MODE : string := "READ_FIRST" ; -- WRITE_FIRST(default)/ READ_FIRST/NO_CHANGE-- Output value after configurationINIT : bit_vector(35 downto 0) := X"000000000";-- Output value if SSR activeSRVAL : bit_vector(35 downto 0) := X"012345678";-- Initialize parity memory contentINITP_00 : bit_vector(255 downto 0) :=X"000000000000000000000000000000000000000000000000FEDCBA9876543210";INITP_01 : bit_vector(255 downto 0) :=X"0000000000000000000000000000000000000000000000000000000000000000";... (snip)INITP_07 : bit_vector(255 downto 0) :=X"0000000000000000000000000000000000000000000000000000000000000000";-- Initialize data memory contentINIT_00 : bit_vector(255 downto 0) :=X"000000000000000000000000000000000000000000000000FEDCBA9876543210";INIT_01 : bit_vector(255 downto 0) :=X"0000000000000000000000000000000000000000000000000000000000000000";... (snip)INIT_3F : bit_vector(255 downto 0) :=X"0000000000000000000000000000000000000000000000000000000000000000");-- pragma translate_onport (DI : in std_logic_vector (31 downto 0);DIP : in std_logic_vector (3 downto 0);ADDR : in std_logic_vector (8 downto 0);EN : in STD_LOGIC;WE : in STD_LOGIC;SSR : in STD_LOGIC;CLK : in STD_LOGIC;DO : out std_logic_vector (31 downto 0);DOP : out std_logic_vector (3 downto 0));end component;---- Attribute Declarations:attribute WRITE_MODE : string;attribute INIT: string;attribute SRVAL: string;-- Parity memory initialization attributesattribute INITP_00: string;attribute INITP_01: string;... (snip)attribute INITP_07: string;-- Data memory initialization attributesattribute INIT_00: string;attribute INIT_01: string;... (snip)attribute INIT_3F: string;<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 201<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 4 章 : ブロック RAM の 使 用---- Attribute "Read during Write mode" = WRITE_FIRST(default)/ READ_FIRST/NO_CHANGEattribute WRITE_MODE of U_RAMB16_S36: label is "READ_FIRST";attribute INIT of U_RAMB16_S36: label is "000000000";attribute SRVAL of U_RAMB16_S36: label is "012345678";---- RAMB16 memory initialization for Alliance-- Default value is "0" / Partial initialization strings are padded-- with zeros to the leftattribute INITP_00 of U_RAMB16_S36: label is"000000000000000000000000000000000000000000000000FEDCBA9876543210";attribute INITP_01 of U_RAMB16_S36: label is"0000000000000000000000000000000000000000000000000000000000000000";... (snip)attribute INITP_07 of U_RAMB16_S36: label is"0000000000000000000000000000000000000000000000000000000000000000";--attribute INIT_00 of U_RAMB16_S36: label is"000000000000000000000000000000000000000000000000FEDCBA9876543210";attribute INIT_01 of U_RAMB16_S36: label is"0000000000000000000000000000000000000000000000000000000000000000";... (snip)attribute INIT_3F of U_RAMB16_S36: label is"0000000000000000000000000000000000000000000000000000000000000000";---- Signal Declarations:---- signal VCC : std_logic;-- signal GND : std_logic;signal CLK_BUFG: std_logic;signal INV_SET_RESET : std_logic;--begin-- VCC CLK_BUFG);---- Use of the free inverter on SSR pinINV_SET_RESET DATA_IN (31 downto 0), -- insert 32 bits data-in bus ()DIP => DATA_IN (35 downto 32), -- insert 4 bits parity data-in bus (or )ADDR => ADDRESS (8 downto 0), -- insert 9 bits address busEN => ENABLE, -- insert enable signalWE => WRITE_EN, -- insert write enable signalSSR => INV_SET_RESET, -- insert set/reset signalCLK => CLK_BUFG, -- insert clock signalDO => DATA_OUT (31 downto 0), -- insert 32 bits data-out bus ()DOP => DATA_OUT (35 downto 32) -- insert 4 bits parity data-out bus (or ));--end XC3S_RAMB_1_PORT_arch;202 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


付 録 B : Verilog インスタンシエーション 例R付 録 B : Verilog インスタンシエーション 例次 の Verilog インスタンシエーション 例 XC3S_RAMB_1_PORT では、 SelectRAM_A36.v というVerilog テンプレート を 使 用 しています。 これを 含 むその 他 のテンプレートは、 次 のリンクからダウンロードできます。 次 の 例 は Verilog コー ド の 一 部 であ り 、 そのま まではコ ンパイ ルで き ません。• xapp463_verilog.zip// Module: XC3S_RAMB_1_PORT// Description: 18Kb Block SelectRAM-II example// Single Port 512 x 36 bits// Use template "SelectRAM_A36.v"//// Device: <strong>Spartan</strong>-3 Family//-------------------------------------------------------------------module XC3S_RAMB_1_PORT (CLK, SET_RESET, ENABLE, WRITE_EN, ADDRESS, DATA_IN,DATA_OUT);input CLK, SET_RESET, ENABLE, WRITE_EN;input [35:0] DATA_IN;input [8:0] ADDRESS;output [35:0] DATA_OUT;wire CLK_BUFG, INV_SET_RESET;//Use of the free inverter on SSR pinassign INV_SET_RESET = ~SET_RESET;// initialize block ram for simulationdefparam//"Read during Write" attribute for functional simulationU_RAMB16_S36.WRITE_MODE = "READ_FIRST", //WRITE_FIRST(default)/ READ_FIRST/ NO_CHANGE//Output value after configurationU_RAMB16_S36.INIT = 36'h000000000,//Output value if SSR activeU_RAMB16_S36.SRVAL = 36'h012345678,//Initialize parity memory contentU_RAMB16_S36.INITP_00 =256'h0123456789ABCDEF000000000000000000000000000000000000000000000000,U_RAMB16_S36.INITP_01 =256'h0000000000000000000000000000000000000000000000000000000000000000,... (snip)U_RAMB16_S36.INITP_07 =256'h0000000000000000000000000000000000000000000000000000000000000000,//Initialize data memory contentU_RAMB16_S36.INIT_00 =256'h0123456789ABCDEF000000000000000000000000000000000000000000000000,U_RAMB16_S36.INIT_01 =256'h0000000000000000000000000000000000000000000000000000000000000000,... (snip)U_RAMB16_S36.INIT_3F =256'h0000000000000000000000000000000000000000000000000000000000000000;//Instantiate the clock BufferBUFG U_BUFG ( .I(CLK), .O(CLK_BUFG));//Block SelectRAM InstantiationRAMB16_S36 U_RAMB16_S36 (.DI(DATA_IN[31:0]),.DIP(DATA_IN-PARITY[35:32]),.ADDR(ADDRESS),.EN(ENABLE),.WE(WRITE_EN),.SSR(INV_SET_RESET),.CLK(CLK_BUFG),.DO(DATA_OUT[31:0]),.DOP(DATA_OUT-PARITY[35:32]));// synthesis attribute declarations/* attributeWRITE_MODE "READ_FIRST"<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 203<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 4 章 : ブロック RAM の 使 用INIT "000000000"SRVAL "012345678"INITP_00"0123456789ABCDEF000000000000000000000000000000000000000000000000"INITP_01"0000000000000000000000000000000000000000000000000000000000000000"... (snip)INITP_07"0000000000000000000000000000000000000000000000000000000000000000"INIT_00"0123456789ABCDEF000000000000000000000000000000000000000000000000"INIT_01"0000000000000000000000000000000000000000000000000000000000000000"... (snip)INIT_3F"0000000000000000000000000000000000000000000000000000000000000000"*/endmodule204 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 5 章CLB (コンフィ ギャブル ロジッ ク ブロッ ク)の 使 用CLB の 概 要CLB (コンフィ ギャブル ロジック ブロ ッ ク ) は、 同 期 回 路 およ び 組 み 合 わせ 回 路 を イ ン プリ メ ン ト する 際 に 最 も 重 要 なロ ジッ ク リ ソ ース です。 各 CLB には 4 つのス ラ イ ス が、 各 ス ラ イ ス には 2 つのLUT (ルッ ク アッ プ テーブル) が 含 まれ、ロジックおよびフリ ップフロップまたはラッチとして 使 用でき る 2 つの 専 用 記 憶 エレ メ ン ト がイ ン プリ メ ン ト さ れま す。 LUT は 16X1 メ モリ (RAM16) または 16 ビット のシフト レジスタ (SRL16) と し て 使 用 でき 、 マルチプレ ク サおよ びキャ リ ー ロジックを 追 加 する と 、 多 入 力 ロ ジッ ク およ び 演 算 フ ァ ン ク ショ ン が 簡 略 化 さ れま す。 デザイ ン の 汎 用 ロ ジックの 多 くは、CLB のス ラ イ ス リ ソ ース に 自 動 的 にマッ プさ れま す。 CLB リ ソ ース の 詳 細 は、 アプリケーショ ン に 必 要 なリ ソ ース の 予 測 やアーキテク チャ へのデザイ ン の 最 適 化 に 役 立 ちま す。CLB アレイ図 5-1 に 示 すよ う に、 CLB は 規 則 正 し く 行 および 列 に 配 置 さ れています。 集 積 度 は、 CLB の 行 および 列 の 数 で 決 ま り ます。 表 5-1 を 参 照 して く ださい。X0Y3X1Y3X2Y3X3Y3X0Y2X1Y2X2Y2X3Y2<strong>Spartan</strong>-3E<strong>FPGA</strong>X0Y1X0Y0X1Y1X1Y0X2Y1X2Y0X3Y1X3Y0IOBsCLBSliceDS312-2_31_021205図 5-1 : CLB ロケーシ ョ ン<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 205<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 5 章 : CLB (コンフィギャブル ロジック ブロック) の 使 用表 5-1 : CLB リソースデバイスCLB の行 数CLB の列 数CLB の合 計スライス 数LUT 数 /フリップフロップ 数ロジック セル相 当 数RAM16 /SRL16分 散 RAM のビッ ト 数<strong>Spartan</strong> ® -3A DSP の CLB リソースXC3SD1800A 88 48 4,160 16,640 33,280 37,440 16,640 266,240XC3SD3400A 104 58 5,968 23,872 47,744 53,712 23,872 381,952<strong>Spartan</strong>-3A/3AN の CLB リソースXC3S50A/AN 16 12 176 704 1,408 1,584 704 11,264XC3S200A/AN 32 16 448 1,792 3,584 4,032 1,792 28,672XC3S400A/AN 40 24 896 3,584 7,168 8,064 3,584 57,344XC3S700A/AN 48 32 1,472 5,888 11,776 13,248 5,888 94,208XC3S1400A/AN 72 40 2,816 11,264 22,528 25,344 11,264 180,224<strong>Spartan</strong>-3E の CLB リソースXC3S100E 22 16 240 960 1,920 2,160 960 15,360XC3S250E 34 26 612 2,448 4,896 5,508 2,448 39,168XC3S500E 46 34 1,164 4,656 9,312 10,476 4,656 74,496XC3S1200E 60 46 2,168 8,672 17,344 19,512 8,672 138,752XC3S1600E 76 58 3,688 14,752 29,504 33,192 14,752 236,032<strong>Spartan</strong>-3 の CLB リソースXC3S50 16 12 192 768 1,536 1,728 768 12,288XC3S200 24 20 480 1,920 3,840 4,320 1,920 30,720XC3S400 32 28 896 3,584 7,168 8,064 3,584 57,344XC3S1000 48 40 1,920 7,680 15,360 17,280 7,680 122,880XC3S1500 64 52 3,328 13,312 26,624 29,952 13,312 212,992XC3S2000 80 64 5,120 20,480 40,960 46,080 20,480 327,680XC3S4000 96 72 6,912 27,648 55,296 62,208 27,648 442,368XC3S5000 104 80 8,320 33,280 66,560 74,880 33,280 532,480<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> 間 での CLB の 違 いCLB は 同 じ フ ァ ミ リ では 同 一 で、 <strong>Spartan</strong>-3 ジェネレーショ ン <strong>FPGA</strong> 間 で も 同 一 ですが、 パフ ォーマン スはプ ロ セスや 特 性 化 の 多 少 の 違 いに よ り わずかに 異 な り ます。 唯 一 の 相 違 点 は、 CLB 数 と、行 数 および 列 数 と の 相 関 関 係 です。 <strong>Spartan</strong>-3E および <strong>Spartan</strong>-3A/3AN/3A DSP <strong>FPGA</strong> では、CLB数 は 行 数 と 列 数 を 掛 け 合 わせた 値 よ り も 少 な く な り ます。 これは、<strong>Spartan</strong>-3A/3AN/3A DSP <strong>FPGA</strong>では DCM がア レ イ に 組 み 込 まれてお り 、<strong>Spartan</strong>-3E <strong>FPGA</strong> では DCM とブロック RAM/ 乗 算 器 の両 方 がア レ イ に 組 み 込 まれてい る ためです。 ア レ イ の 構 造 を 示 す 図 は、 <strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3A、<strong>Spartan</strong>-3AN、 および <strong>Spartan</strong>-3A DSP のデータ シー ト のモジ ュール 1 を 参 照 して く ださい。206 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


スライスRスライス図 5-3 に 示 すよ う に、 各 CLB にはイ ンタ ーコ ネク ト さ れたス ラ イ ス が 4 つあり ま す。 スライスは 2つずつグループ 化 さ れていま す。 各 ペアは 列 に 並 べら れ、 それぞれに 独 立 し たキャ リ ー チェ ーン があり ます。 左 のペアは SLICEM と 呼 ばれ、 ロ ジッ ク ファンクショ ンと メ モリ ファンクショ ンの 両方 がサポート さ れま す。 右 のペアは SLICEL と 呼 ばれ、ロ ジッ ク のみがサポート さ れま す。 つま り 、LUT の 半 分 でロ ジッ ク と メ モリ の 両 方 (RAM16 シフト レジスタとSRL16 シフト レジスタの 両 方 )がサポー ト され、 残 り の 半 分 でロ ジ ッ クのみがサポー ト されてお り 、 この 2 種 類 の 列 が 交 互 に 並 んでいます。 SLICEL によ り CLB のサイ ズが 縮 小 され、 デバイ スのコ ス ト が 下 が り ます。 SLICELは、 パフ ォーマン スの 面 で も SLICEM よ り 優 れています。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 207<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 5 章 : CLB (コンフィギャブル ロジック ブロック) の 使 用.COUTYBMUXYBFXINAFXINBG[4:1]GYMUXFiYG-LUTDYMUXDQYQWSDICEFFYCKSR REVBYTop PortionCECLKSRCommon LogicWSDIF[4:1]F-LUTWF[4:1]FFXCYINTBXBottom Portionメモ :LEGEND:Logic FunctionsDistributed RAM andShift Register FunctionsCIN<strong>UG331</strong>_c7_02_0724061. 信 号 極 性 を 反 転 する オプシ ョ ンおよびさ ま ざ ま なフ ァ ン ク シ ョ ンに 使 用 する ラ イ ン を イ ネーブルにする オプシ ョ ンは 示 されていません。2. インデックス i の 値 は、 ス ラ イ スによ り 6、 7、 または 8 のいずれかにな り ます。 上 部 の SLICEL には F8MUX が、 下 部 のSLICEM には F7MUX があ り ます。 下 部 の SLICEL と SLICEM 両 方 に F6MUX があ り ます。図 5-2 : 左 側 の SLICEM を 簡 略 化 し た 図208 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


ス ラ イ スの 概 要RSLICEM( RAM)CLB SLICEL()COUTSLICEX1Y1SHIFTOUTSHIFTINSLICEX0Y1SLICEX0Y0COUTSLICEX1Y0CINCINDS099-2_05_082104図 5-3 : CLB 内 のス ラ イ ス 配 置スライス ロケーシ ョ ンの 指 定図 5-1 に 示 すよ う に、 ザイ リ ン ク ス 開 発 ソ フ ト ウ ェ アでは、 ス ラ イ スの ロ ケーシ ョ ン を 左 下 隅 を 基点 とする X 座 標 と Y 座 標 で 指 定 し ます。 X と それに 続 く 数 字 はス ラ イ スの 列 番 号 を 表 し、 ダ イ の左 から 右 に 行 く に 従 い 数 字 が 増 加 し ます。 Y とそれに 続 く 数 字 はスライス ペアの 位 置 および CLBの 行 番 号 を 表 し、ダ イ の 下 か ら 上 に 行 く に 従 い 数 字 が 増 加 し ます。 図 5-3 に、ダ イの 左 下 にあ る CLBを 示 します。 列 番 号 は、 SLICEM では 偶 数 で、 SLICEL では 奇 数 です。ス ラ イ スの 概 要図 5-4 に 示 すよ う に、 1 つのス ラ イ スには 2 つの LUT ファンクション ジェネレータと 2 つの 記 憶エレ メン ト、 およびその 他 のロジッ クが 含 まれます。SLICEM と SLICEL の 両 方 に 次 の 共 通 のエレ メ ン ト があ り 、 ロ ジ ッ ク ファンクション、 演 算 ファンクションおよび ROM フ ァ ン ク シ ョ ンが 提 供 さ れています。• 2 つの 4 入 力 LUT ファンクション ジェネレータ、 F および G• 2 つの 記 憶 エレ メ ン ト• 2 つの 多 入 力 フ ァ ン ク シ ョ ン マルチプレ クサ、 F5MUX および FiMUX• キャ リー ロジックおよび 演 算 ロジック<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 209<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 5 章 : CLB (コンフィギャブル ロジック ブロック) の 使 用SRL16RAM16LUT4 (G)CarryFiMUXRegisterLUT4 (G)CarryFiMUXRegisterSRL16RAM16LUT4 (F)CarryF5MUXRegisterLUT4 (F)CarryF5MUXRegisterArithmetic LogicArithmetic LogicSLICEMSLICELDS312-2_13_020905図 5-4 : スライス 内 のリソースSLICEM ペアでは、 次 のフ ァ ン クシ ョ ン もサポー ト されます。• 2 つの 16X1 分 散 RAM ブロック、 RAM16• 2 つの 16 ビッ ト シフ ト レジスタ、 SRL16ロジック セルLUT と 記 憶 エレメント を 1 つずつ 組 み 合 わせた も のは、 ロ ジ ッ ク セル と 呼 ばれます。 多 入 力 マルチプレ クサ、 キャ リ ー ロ ジ ッ ク、 および 演 算 ゲー ト などの 追 加 機 能 に よ り ス ラ イ スの 能 力 が 向 上 してお り 、LUT が 必 要 だったロジックをインプリ メントできるようになっています。 ベンチマーク 回路 では、 ス ラ イ ス 全 体 は 2.25 個 の 単 純 な ロ ジ ッ ク セルに 相 当 する と い う 結 果 が 出 ています。 この計 算 に 基 づ く 値 が 表 5-1 のロジック セル 相 当 数 に 示 されています。ス ラ イ スの 詳 細図 5-2 に SLICEM の 詳 細 な 図 を 示 し ます。 これは、すべてのス ラ イ スに 含 まれるエレ メ ン ト および接 続 のスーパーセ ッ ト です。 破 線 およびグ レーの 線 (カラー 表 示 では 青 ) は、 SLICEM にのみ 含 まれ、 SLICEL にはない リ ソース を 示 し ます。各 ス ラ イ ス は 上 半 分 と 下 半 分 に 分 かれており 、 CLB 内 の 上 部 およ び 下 部 にある ス ラ イ ス を 示 す 場 合と は 用 語 を 区 別 し ていま す。 クロック (CLK) の 制 御 入 力 である ク ロ ッ ク イネーブル (CE)、ス ラ イ スライト イネーブル (SLICEWE1)、 およびリセット/セッ ト (RS) はス ラ イ ス の 上 半 分 と 下 半 分 で 共 有されます。ス ラ イ スの 上 半 分 と 下 半 分 にあ る LUT はそれぞれ G-LUT および F-LUT、 記 憶 エレ メ ン ト はそれぞれ FFY および FFX と 呼 ばれます。各 スラ イスにはマルチプレクサが 2 つあ り 、 下 半 分 には F5MUX が、 上 半 分 には FiMUX があ り ます。 スライスによって、FiMUX の 名 前 はマルチプレ クサ チェーンでの 位 置 に 応 じて F6MUX、F7MUX、 または F8MUX となります。 下 部 の SLICEL と SLICEM には F6MUX があ り 、 上 部 のSLICEM には F7MUX が、 上 部 の SLICEL には F8MUX があ り ます。210 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


ス ラ イ スの 詳 細R表 5-2 : ス ラ イ スの 入 力 および 出 力キャ リー チェーンはスライスの 下 半 分 に CIN と し て 入 力 し、 上 半 分 か ら COUT として 出 力 します。 チェーンは、 上 半 分 では CYINIT、 CY0F、 および CYMUXF、 下 半 分 では CY0G およびCYMUXG の 合 計 5 つのマルチプレ ク サで 制 御 されます。 専 用 演 算 ロ ジ ッ ク には XOR ゲー ト のXORF と XORG (それぞれス ラ イ スの 下 半 分 と 上 半 分 ) および AND ゲー ト の FAND と GAND (それぞれス ラ イ スの 下 半 分 と 上 半 分 ) が 含 まれます。ス ラ イ スのすべての 入 力 信 号 および 出 力 信 号 の 説 明 は、 表 5-2 を 参 照 して く ださい。信 号 名 ロケーシ ョ ン 方 向 説 明F[4:1] SLICEL/M の 下 半 分 入 力 F-LUT および FAND 入 力G[4:1] SLICEL/M の 上 半 分 入 力 G-LUT および GAND 入 力 ま たは 書 き 込 みア ド レ ス (SLICEM)BX SLICEL/M の 下 半 分 入 力 バ イ パス 先 ま たは 出 力 (SLICEM) または 記 憶 エレメン ト、 またはF5MUX への 制 御 入 力 、 キ ャ リ ー ロ ジ ッ ク への 入 力 、 ま たは RAMへのデータ 入 力 (SLICEM)BY SLICEL/M の 上 半 分 入 力 バ イ パス 先 ま たは 出 力 (SLICEM) または 記 憶 エレメン ト、 またはFiMUX への 制 御 入 力 、 キ ャ リ ー ロ ジ ッ ク への 入 力 、 ま たは RAMへのデータ 入 力 (SLICEM)BXOUT SLICEM の 下 半 分 出 力 BX バイパス 出 力BYOUT SLICEM の 上 半 分 出 力 BY バイパス 出 力ALTDIG SLICEM の 上 半 分 入 力 RAM への 代 替 データ 入 力DIG SLICEM の 上 半 分 出 力 ALTDIG または SHIFTIN バイパス 出 力SLICEWE1 SLICEM 上 下 共 通 入 力 RAM ライト イネーブルF5 SLICEL/M の 下 半 分 出 力 F5MUX か ら の 出 力 、 FiMUX への 直 接 のフ ィ ード バッ クFXINA SLICEL/M の 上 半 分 入 力 FiMUX への 入 力 、 F5MUX またはほかの FiMUX からの 直 接 のフィードバックFXINB SLICEL/M の 上 半 分 入 力 FiMUX への 入 力 、 F5MUX またはほかの FiMUX からの 直 接 のフィードバックFi SLICEL/M の 上 半 分 出 力 FiMUX か ら の 出 力 、 ほかの FiMUX への 直 接 のフ ィ ード バッ クCE SLICEL/M 上 下 共 通 入 力 FFX/Y クロック イネーブルSR SLICEL/M 上 下 共 通 入 力 FFX/Y セッ ト またはリセッ ト または RAM ライト イネーブル(SLICEM)CLK SLICEL/M 上 下 共 通 入 力 FFX/Y クロックまたは RAM クロック (SLICEM)SHIFTIN SLICEM の 上 半 分 入 力 G-LUT RAM へのデータ 入 力SHIFTOUT SLICEM の 下 半 分 出 力 F-LUT RAM からのシフ ト データ 出 力CIN SLICEL/M の 下 半 分 入 力 キ ャ リ ー チェーン 入 力COUT SLICEL/M の 上 半 分 出 力 キ ャ リ ー チェーン 出 力X SLICEL/M の 下 半 分 出 力 組 み 合 わせ 出 力Y SLICEL/M の 上 半 分 出 力 組 み 合 わせ 出 力<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 211<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 5 章 : CLB (コンフィギャブル ロジック ブロック) の 使 用表 5-2 : ス ラ イ スの 入 力 および 出 力 ( 続 き)信 号 名 ロケーシ ョ ン 方 向 説 明XB SLICEL/M の 下 半 分 出 力 キ ャ リ ーま たは F-LUT SRL16 (SLICEM) か ら の 組 み 合 わせ 出 力YB SLICEL/M の 上 半 分 出 力 キ ャ リ ーま たは G-LUT SRL16 (SLICEM) か ら の 組 み 合 わせ 出 力XQ SLICEL/M の 下 半 分 出 力 FFX 出 力YQ SLICEL/M の 上 半 分 出 力 FFY 出 力主 要 なロジ ッ ク パス各 ス ラ イ スの 動 作 の 中 心 と な る のは、 ス ラ イ スの 上 半 分 と 下 半 分 にあ る、 2 つのほぼ 同 一 のデータパスです。 こ こ か ら の 説 明 では、 下 半 分 のパスに 関 連 し た 名 前 を 使 用 し ます。 上 半 分 のパス 名 は、かっこ 内 に 示 します。 基 本 のパスは、 CLB 外 のイ ン ターコ ネ ク ト スイッチ マト リックスを 起 点 とします。 スイッチ マ ト リ ッ ク スおよび 配 線 接 続 の 詳 細 は、 第 12 章 「インターコネクトの 使 用 」を参 照 し て く だ さ い。F1 ~ F4 の 4 本 のラ イ ン ( 上 半 分 では G1 ~ G4) はス ラ イ スに 入 力 し、 直 接 LUT に 接 続 し ます。 スライスに 入 力 すると、 下 位 4 ビ ッ ト のパスはロ ジ ッ ク 操 作 を 実 行 する LUT F ( 上 半 分 では G) を 通過 します。 LUT データ 出 力 D には 次 の 5 つのパスがあ り ます。1. ライン X ( 上 半 分 では Y) でスラ イスから 出 力 し、 インターコネク トに 戻 る2. スライス 内 で X ( 上 半 分 では Y) は、FFX ( 上 半 分 では FFY) 記 憶 エ レ メ ン ト のデータ 入 力 D に接 続 する DXMUX ( 上 半 分 では DYMUX) への 入 力 と し て 動 作 。 ライン XQ ( 上 半 分 では YQ)は 記 憶 エレ メ ン ト のQ 出 力 で 駆 動 さ れ、 ス ラ イ スか ら 出 力 し ます。3. キャ リー チェーン 上 の CYMUXF ( 上 半 分 では CYMUXG) マルチプレ クサを 制 御4. キャ リー チェーン を 使 用 し て、 演 算 を 実 行 する XORF ( 上 半 分 では XORG) XOR ゲー ト への入 力 と し て 動 作 し、 演 算 結 果 を X ( 上 半 分 では Y) に 生 成5. マルチプレ クサ F5MUX を 駆 動 し、 4 ビ ッ ト よ り も 多 入 力 の ロ ジ ッ ク フ ァ ン ク シ ョ ン を イ ンプリメント。 F-LUT と G-LUT 両 方 のD 出 力 が こ のマルチプレ ク サへのデータ 入 力 と し て 動 作 します。上 記 の 主 要 な ロ ジ ッ ク パスのほかに、BX および BY と し て ス ラ イ スに 入 力 するバ イパス パスが 2つあ り ます。 <strong>FPGA</strong> 内 に 入 力 される と、 ス ラ イ スの 下 半 分 にある BX ( 上 半 分 では BY) は、 次 のいずれかに 分 岐 で き ます。1. LUT と 記 憶 エレメン トの 両 方 をバイパスし、 スライスから BXOUT ( 上 半 分 では BYOUT) とし て 出 力 し、 イ ン ターコ ネ ク ト に 戻 る2. LUT をバイパス し、D 入 力 を 介 し て 記 憶 エレ メ ン ト を 通 過 し、XQ ( 上 半 分 では YQ) として 出 力3. 多 入 力 フ ァ ン ク シ ョ ン マルチプレ クサ F5MUX ( 上 半 分 では FiMUX) の 制 御4. マルチプレ クサを 介 し、 キャ リ ー チェーンへの 入 力 と し て 動 作5. LUT の DI 入 力 を 駆 動6. BY で FFY および FFX 両 方 の 記 憶 エレ メ ン ト の REV 入 力 の 制 御 が 可 能 。 333 ページの 「 記 憶エレ メン ト ファンクション」 を 参 照 して く ださい。7. DIG_MUX マルチプレ ク サで、 ス ラ イ スか ら 出 力 する DIG ラインに BY をスイッチする制 御 入 力 CLK、 CE、 SR、 BX、 および BY の 極 性 はプロ グ ラ ム 可 能 です。 LUT 入 力 では、 LUT 内でフ ァ ン ク シ ョ ン を 反 転 で き る ため、 プ ロ グ ラ ム 可 能 な 極 性 は 必 要 あ り ません。こ こ からは、 ス ラ イ スの 個 別 のフ ァ ン ク シ ョ ンについて 詳 細 に 説 明 し ます。212 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


ルックアップ テーブル (LUT)Rルックアップ テーブル (LUT)LUT は RAM ベースのフ ァ ン ク シ ョ ン ジェネレータで、 ロジッ ク ファンクションのインプリ メンテーションの 主 要 なリソースです。 各 SLICEM ペアの LUT は 分 散 RAM または 16 ビッ ト シフ トレ ジ ス タ と し て も コ ン フ ィ ギ ュ レーシ ョ ンで き ます。 詳 細 な 説 明 は 後 に 示 し ます。1 つのス ラ イ ス 内 の 2 つの LUT (F と G) ごとに、4 つのロ ジ ッ ク 入 力 (A1 ~ A4) と 1 つの 単 一 出力 (D) があ り ます。 4 入 力 のブール ロ ジ ッ ク 演 算 は 1 つの LUT でインプリ メン トできます。 入 力がこれよ り も 多 いファンクションは、 カスケード 接 続 された LUT または 後 に 説 明 する 多 入 力 フ ァンクション マルチプレ ク サを 使 用 し て イ ンプ リ メ ン ト し ます。LUT の 出 力 は 多 入 力 マルチプレ ク サ ロジック、 キャ リー ロジックおよび 演 算 ロジック、 または 直接 CLB 出 力 ま たは CLB 記 憶 エレ メ ン ト に 接 続 で き ます。 図 5-5 を 参 照 して く ださい。YG[4:1]4A[4:1]G-LUTDFFYYQXF[4:1]4A[4:1]F-LUTDFFXXQ図 5-5 : スライス 内 の LUT のリソースDS312-2_33_111105多 入 力 マルチプ レ クサ多 入 力 フ ァ ン ク シ ョ ン マルチプレ ク サでは、 複 雑 な ロ ジ ッ ク 操 作 を 実 行 する ために、 LUT が 効 率よ く 組 み 合 わせられています。 各 スラ イスにはマルチプレクサが 2 つあ り 、 下 半 分 には F5MUX が、上 半 分 には FiMUX があ り ます。 F5MUX には 1 つのス ラ イ スの 2 つの LUT が 入 力 されます。FiMUX には、 同 じスライスまたは 別 のスライスの F5MUX と FiMUX の 出 力 に 直 接 接 続 さ れた 2つの CLB 入 力 が 供 給 さ れます。 多 入 力 マルチプレ ク サの 詳 細 は、 第 8 章 「 専 用 マルチプレクサの使 用 」 を 参 照 して く ださい。キャリー ロジックおよび 演 算 ロジックキャ リー チ ェーンは、 演 算 を 高 速 で 効 率 的 に イ ンプ リ メ ン ト する ために、 さ ま ざ ま な 専 用 演 算 ロジック ゲー ト と 共 に 使 用 し ます。 キャ リー ロジックはデザインのほとんどの 演 算 ファンクションで 自 動 的 に 使 用 さ れます。 キャリー ロジッ クおよび 演 算 ロジッ クのゲートおよびマルチプレクサは、 単 純 で 多 入 力 のブール 関 数 を 含 む 汎 用 ロ ジ ッ ク に も 使 用 で き ます。 キャ リー ロジックおよび 演算 ロジッ クの 詳 細 は、 第 9 章 「キャリー ロ ジ ッ クおよび 演 算 ロ ジ ッ ク の 使 用 」 を 参 照 して く ださい。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 213<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 5 章 : CLB (コンフィギャブル ロジック ブロック) の 使 用記 憶 エ レ メ ン ト表 5-3 : 記 憶 エ レ メ ン ト 信 号記 憶 エレ メ ン ト は D タイプ フリ ップフロップまたはレベル センシティブな 透 過 ラ ッチと してプログ ラ ム 可 能 で、ク ロ ッ ク 信 号 へのデータの 同 期 に 使 用 で き ます。 記 憶 エレ メ ン ト はそれぞれ FFY および FFX と 呼 ばれます。 FFY のマルチプレ クサは D 入 力 に 固 定 さ れてお り 、 出 力 は 組 み 合 わせ 出力 Y またはバイパス 信 号 BY です。 FFX では 組 み 合 わせ 出 力 X またはバイパス 信 号 BX が 出 力 されます。ス ラ イ ス 記 憶 エレ メ ン ト の 機 能 は、 前 述 の I/O 記 憶 エレ メ ン ト と 同 じ です。 すべての 信 号 の 極 性 はプログラム 可 能 で、 デフォルトはアクティブ High です。信 号DQCGCEGESRPRECLRSRREV説 明入 力 。 フリ ップフロップでは、 R と S (または CLR と PRE) が Low で CE が High の 場 合 、 Low から High へのク ロ ッ ク 遷 移 中 に D 入 力 のデータ が 読 み 込 ま れま す。 ラッチでは、ゲート 入 力 (G) とゲート イ ネーブル (GE) がHigh で R と S (または CLR と PRE ) が Low の 場 合 に、 Q に D 入 力 の 値 が 出 力 さ れま す。 D 入 力 の 値 は、 G がHigh から Low に 切 り 替 わる と き にラ ッ チ 内 に 格 納 さ れま す。 Q 出 力 の 値 は、 G または GE が Low の 間 は 変 化 しません。出 力 。 フリ ップフロップでは Low から High への ク ロ ッ ク 遷 移 後 に、 ラ ッ チではすぐ に ト グル し ます。エ ッ ジで 動 作 する フ リ ッ プフ ロ ッ プの ク ロ ッ クレベルで 認 識 される ラ ッチのゲートフリ ップフロップのクロック イネーブルラッチのゲート イネーブル同 期 セ ッ ト (Q = High)。 S 入 力 が High で R が Low の 場 合 、 ク ロ ッ ク (C) が Low から High に 遷 移 する と き にフリ ップフロップがセッ ト され、High が 出 力 されます。 ラッチの 出 力 はすぐにセットされ、High が 出 力 されます。同 期 リ セ ッ ト (Q = Low)。 セットよりも 優 先 されます。非 同 期 プ リ セ ッ ト (Q = High)。 PRE 入 力 が High で CLR が Low の 場 合 、 ク ロ ッ ク (C) が Low から High に 遷 移する と きにフ リ ップフロ ップがセッ ト され、High が 出 力 されます。 ラッチの 出 力 はすぐにセットされ、High が 出力 されます。非 同 期 ク リ ア (Q = Low)。 プリセットよりも 優 先 され、Q 出 力 を Low にリセットします。R、 S、 CLR、 または PRE 用 の CLB 入 力SR の 反 転 の CLB 入 力 。 非 同 期 ま たは 同 期 は SR に 一 致 する よ う に 設 定 する 必 要 があ り ます。制 御 入 力 R、 S、 CE、 および C はすべて、 ス ラ イ ス 内 の 2 つのフリ ップフロップで 共 有 されます。SFDRSEDCECQRDS312-2_40_021305図 5-6 : 同 期 リセット、セット、およびクロック イネーブルがあるFD フリップフロップ コンポーネント214 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


分 散 RAMR表 5-4 : 同 期 リセット、セット、およびクロック イネーブルがある FD フリップフロップの 動 作入 力出 力R S CE D C Q1 X X X ↑ 00 1 X X ↑ 10 0 0 X X 変 化 な し0 0 1 1 ↑ 10 0 1 0 ↑ 0初 期 化CLB の 記 憶 エレ メ ン ト は、 電 源 投 入 時 およびコ ン フ ィ ギ ュ レーシ ョ ン 中 に、 グ ローバル GSR 信 号および CLB への 個 別 の SR 入 力 ま たは REV 入 力 に よ り 初 期 化 さ れます。 また、STARTUP プリ ミティブ 上 の GSR 入 力 を 使 用 する と 再 初 期 化 で き ます。 393 ページの 「グ ローバル 制 御 信 号 」 を 参 照してください。表 5-5 : ス ラ イ スの 記 憶 エレ メ ン ト の 初 期 化信 号SRREVGSR説 明セッ ト/ リ セ ッ ト 入 力 。 記 憶 エ レ メ ン ト を SRHIGH または SRLOW 属 性 で 指 定 さ れたステートにします。 SR がアサート される と、 SRHIGH が 設 定 されている 場 合 はロジック 1 にな り、SRLOW が 設 定 さ れてい る 場 合 はロ ジ ッ ク 0 にな り ます。 各 スラ イスに 対 し、 セッ ト/ リ セ ッ ト を 同 期 ま たは 非 同 期 に 設 定 で き ます。セッ ト/ リ セ ッ ト の 反 転 入 力 。 2 番 目 の 入 力 (BY) は 記 憶 エレ メ ン ト を SR と 逆 のステー ト にし ます。 リセットおよびセットの 両 方 がアクティブな 場 合 は、 リセットはセッ ト よ り 優 先 されます。 同 期 / 非 同 期 の 設 定 は SR と 同 じです。グローバル セッ ト/ リセット。 GSR のデフ ォル ト はア ク テ ィ ブ High ですが、STARTUP エレメン トの GSR 入 力 の 前 に イ ンバータ を 追 加 する と ア ク テ ィ ブ Lowにでき ます。 コンフィギュレーション 後 の 初 期 ステートまたは GSR は、 それぞれINIT0 または INIT1 属 性 で 定 義 さ れます。 デフォル ト では、SRLOW 属 性 を 設 定 すると INIT0 も 設 定 され、 SRHIGH 属 性 を 設 定 する と INIT1 も 設 定 されます。分 散 RAMSLICEM の LUT は、 分 散 RAM としてプログラムできます。 こ の タ イ プの メ モ リ では、 データ パスの 任 意 の 位 置 で 中 程 度 の 量 のデータ をバ ッ フ ァ で き ます。 SLICEM LUT 1 つには、 16 ビッ トが格 納 さ れます (RAM16)。 分 散 RAM の 詳 細 は、 第 6 章 「 分 散 RAM としてのルックアップ テーブルの 使 用 」 を 参 照 して く ださい。シフ ト レジスタ各 SLICEM LUT は、16 ビットのシフト レジスタ と してプログラムできます。 こ の 方 法 では、 専 用フ リ ッ プフ ロ ッ プを ま った く 使 用 せずに、 各 LUT でシ リ アル データ を 1 ~ 16 クロック サイクル遅 延 で き ます。 生 成 さ れたプ ロ グ ラ マブル 遅 延 を 使 用 し て、 データ パイプラインのタイ ミ ングのバランスを 取 ることが 可 能 です。 シフ ト レジスタの 詳 細 は、 第 7 章 「ルックアップ テーブルのシフ トレジスタ (SRL16) と し ての 使 用 」 を 参 照 して く ださい。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 215<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 5 章 : CLB (コンフィギャブル ロジック ブロック) の 使 用関 連 資 料こ の 章 の 補 足 情 報 は、 次 の 資 料 を 参 照 し て く だ さ い。• ホワイ ト ペーパー WP272 : 『Get Smart About Reset: Think Local, Not Global』<strong>FPGA</strong> デザイ ンにグ ローバル リ セ ッ ト を 適 用 する のは 良 い 方 法 ではな く 、 回 避 すべき です。 これは 論 議 を 呼 ぶ 問 題 であ る ので、 こ のホ ワ イ ト ペーパーではなぜこ の よ う にすべき かを 説 明 します。• ホワイ ト ペーパー WP273 : 『Performance + Time = Memory (Cost Saving with 3-D Design)』ロ ジ ッ ク を 処 理 レー ト よ り も 高 いレー ト で 動 作 さ せる と 、 操 作 を 順 次 に 達 成 で き ます。プ ロ セ ッサ と 同 様 、 ロ ジ ッ ク が 複 数 ク ロ ッ ク サ イ ク ルで 時 間 共 有 さ れます。 メ モ リ には、 指 定 の ク ロ ック サイクルで 使 用 されない 値 が 含 まれます。<strong>FPGA</strong> は、3 次 元 ボ リ ューム と 考 え ら れます。「パフォーマンス + 時 間 = メモリ」 とは 変 った 式 ですが、 多 くの 場 合 にザイリンクス デバイ スで低 コ ス ト での イ ンプ リ メ ンテーシ ョ ン を 実 現 で き ます。• ホワイ ト ペーパー WP275 : 『Get Your Priorities Right - Make Your Design up to 50%Smaller』このホワイ ト ペーパーでは、 <strong>FPGA</strong> デザインのサイズおよびパフォーマンスを 向 上 させる、あま り 知 られていないデザイ ン 手 法 について 説 明 し ます。 <strong>FPGA</strong> フ リ ッ プフ ロ ッ プの 制 御 信 号 には、 優 先 順 位 がビル ト イ ン さ れています。 こ の 優 先 順 位 を 考 慮 し た コー ド を 記 述 する こ と で、結 果 が 向 上 し ます。 こ のホ ワ イ ト ペーパーでは、 簡 単 な VHDL および Verilog 例 を 使 用 して主 なポイ ン ト を 説 明 し ます。216 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 6 章分 散 RAM としてのルックアップ テーブルの 使 用概 要<strong>Spartan</strong> ® -3 ジェネレーショ ンの CLB には、 最 大 64 ビッ トのシングル ポー ト RAM または 最 大 32ビットのデュアル ポー ト RAM が 含 まれています。 この RAM は <strong>FPGA</strong> 全 体 に 分 散 さ れる ので、18Kb のブロ ッ ク RAM と 区 別 する ために 分 散 RAM、 または LUT RAM と 呼 ばれています。 分 散RAM は 高 速 で、 関 連 ロ ジ ッ クの 近 く に 配 置 でき、 小 さ いデータ バッファ、FIFO、 またはレジスタファイルでの 使 用 に 最 適 です。 この 章 では、 分 散 RAM の 特 徴 と 機 能 、 CORE Generator またはVHDL/Verilog イ ン ス タ ンシエーシ ョ ン を 使 用 し た 各 種 オプシ ョ ンの 指 定 方 法 を 説 明 し ます。はじめに<strong>Spartan</strong>-3 ジェネレーショ ン <strong>FPGA</strong> では、 エンベデッ ド 18Kb ブロック RAM のほかに、CLB 内 で分 散 RAM を 使 用 でき ます。 CLB リソース 内 の SLICEM のファンクシ ョ ン ジェネレータ (LUT)に、 オプシ ョ ンで 16 ワード X 1 ビッ トの 同 期 RAM をインプリ メントできます。 SLICEL スライスの LUT には、 分 散 RAM をインプリ メントできません。分 散 RAM では、 書 き 込 みは 同 期 、 読 み 出 し は 非 同 期 で 実 行 さ れます。 ただし、 アプ リ ケーシ ョ ンに 必 要 であれば、 各 LUT に 関 連 付 け ら れたレ ジ ス タ を 使 用 し て 同 期 読 み 出 し を イ ンプ リ メ ン ト できます。 各 16X1 ビット RAM をカス ケー ド 接 続 する と ビ ッ ト 数 およびワード 数 の 多 い メ モ リ を 作成 でき、 タ イ ミ ング 遅 延 も 特 殊 ロ ジ ッ ク リ ソースに よ り 最 小 限 に 抑 え る こ と がで き ます。<strong>Spartan</strong>-3 ジェネレーションの CLB では、 最 大 64 ワード X 1 ビッ トのさまざまな RAM プリ ミティブがサポート されています。 SLICEM スライスの 2 つの LUT を 組 み 合 わせる と 、 読 み 出 し/ 書き 込 みポート を 1 つ と 読 み 出 し 専 用 ポー ト を 1 つ 持 つデュ アル ポー ト 16X1 RAM を 作 成 できます。 こ の 場 合 、 1 つのポー ト で 2 つの 16X1 LUT RAM に 同 時 に 書 き 込 み、 も う 1 つのポー ト で 読み 出 し 操 作 を 独 立 し て 実 行 し ます。分 散 RAM は、 FIFO や 小 さ いレ ジ ス タ フ ァ イルなど、 比 較 的 小 型 のエンベデ ッ ド RAM ブロッ クを 使 用 するパフ ォーマン スの 高 いアプ リ ケーシ ョ ンに 不 可 欠 です。 CORE Generator では、<strong>Spartan</strong>-3 ジェネレーション アーキテ ク チ ャ 用 に 最 適 化 さ れた 分 散 RAM が 自 動 的 に 生 成 されます。 また、 分 散 RAM を 使 用 し て 非 同 期 および 同 期 FIFO も 生 成 されます。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 217<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 6 章 : 分 散 RAM としてのルックアップ テーブルの 使 用シングル ポー ト RAM およびデュアル ポー ト RAMデータ フロー分 散 RAM には、 次 のタ イプがあ り ます。• 同 期 書 き 込 みおよび 非 同 期 読 み 出 し のシングル ポー ト RAM。 分 散 RAM に 関 連 付 け ら れたフリ ッ プフ ロ ッ プを 使 用 し た 同 期 読 み 出 し も 可 能 です。• 同 期 書 き 込 みポー ト 1 つ と 非 同 期 読 み 出 し ポー ト 2 つを 持 つデュ アル ポー ト RAM。 シングルポー ト RAM と 同 様 、 同 期 読 み 出 し も 可 能 です。図 6-1 に 示 すよ う に、 デュ アル ポー ト の 分 散 RAM には 読 み 出 し/ 書 き 込 みポートが 1 つ、 独 立 した 読 み 出 し ポー ト が 1 つあ り ます。Single-Port RAMDual-Port RAMDAddressR/W PortODAddressR/W PortSPOWriteReadWriteReadWCLKWCLKAddressRead PortDPOReadx464_01_062503図 6-1 : シングル ポー ト およびデュアル ポー ト の 分 散 RAMD 入 力 の 書 き 込 み と SPO 出 力 の 読 み 出 しは、も う 1 つの 読 み 出 し 専 用 ポー ト DPO の 書 き 込 みと 同時 に 独 立 し て 実 行 で き ます。書 き 込 み 操 作書 き 込 みは、 ラ イ ト イネーブル (WE) 入 力 に よ り 制 御 さ れ、 ク ロ ッ ク エッジに 同 期 して 行 われます。 WE は、 デフ ォル ト ではア ク テ ィ ブ High になっていますが、 分 散 RAM 内 で 反 転 でき ます。WE が High の 場 合 、 ク ロ ッ ク エ ッ ジで 書 き 込 みア ド レ スが 読 み 込 まれ、 選 択 さ れた RAM 位 置 にD 入 力 のデータが 書 き 込 まれます。WE が Low の 場 合 、 データは RAM に 書 き 込 まれません。読 み 出 し 操 作読 み 出 し は、 組 み 合 わせ 動 作 です。 アドレス ポー ト はシングル ポー ト モー ド で もデュ アル ポー トモー ド で も 非 同 期 で、 ア ク セス 時 間 (LUT ロ ジ ッ ク 遅 延 と 同 じ) 後 に 読 み 出 し が 実 行 さ れます。書 き 込 み 中 の 読 み 出 し新 し いデータ の 同 期 書 き 込 みが 実 行 さ れる と 、 アド レ ス 入 力 で 指 定 さ れたメ モリ セルのデータ が出 力 に 送 信 さ れま す。 こ れは、<strong>Spartan</strong>-3 ジェネレーショ ンのブロッ ク RAM で WRITE_MODE=WRITE_FIRST ( 透 過 ) モー ド を 設 定 し た 場 合 と 似 ています。 図 6-2 は、 書 き 込 みのタ イ ミ ングを 示し ています。 出 力 ポー ト にあ る 前 のデータ が、ク ロ ッ ク エ ッ ジ 後 に 新 し いデータに 置 き 換 わ り ます。218 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


特 徴RWCLKDATA_INdADDRESSaaWRITE_ENt readt writet readDATA_OUTMEM(aa)dPreviousDataNewDatax464_02_070303図 6-2 : 書 き 込 みタイ ミ ング 図特 徴CLB の 分 散 RAM• 書 き 込 み 操 作 には 1 クロック エッジ 必 要 です。• 読 み 出 し は、 ロ ジ ッ ク ア ク セス 時 間 後 に 実 行 さ れます。• 出 力 は 非 同 期 で、 LUT ロジ ッ ク 遅 延 のみに 依 存 し ます。• データ 入 力 およびア ド レ ス 入 力 は 書 き 込 みク ロ ッ ク に 同 期 し て 読 み 込 まれ、 setup-to-clock タイ ミ ング 仕 様 があ り ます。 ホールド タイム 要 件 はありません。• デュアル ポー ト RAM の 場 合 、 A[#:0] が 書 き 込 み/ 読 み 出 し 用 のア ド レ ス ポー ト 、 DPRA[#:0]が 独 立 し た 読 み 出 し 専 用 のア ド レ ス ポー ト にな り ます。分 散 RAM には、 第 5 章 「CLB (コンフィギャブル ロジック ブロック) の 使 用 」 で 説 明 されているリソースが 使 用 されます。 1 つの SLICEM LUT には 16 ビッ トが 格 納 されます (RAM16)。 LUT の4 つの 入 力 F[4:1] または G[4:1] は、 デバ イ ス モデルでは A[4:1]、 デザイン コンポーネントではA[3:0] という ラベルのアドレス ラインとなり、1 つの LUT を 16X1 にコンフィギュレーショ ンします。 複 数 の SLICEM LUT を さ ま ざ ま な 方 法 で 組 み 合 わせる と 、 1 つの CLB に 16X4、 32X2、 または 64X1 などのコンフ ィ ギュレーシ ョ ンを 含 める こ とができ、よ り 多 く のデータを 格 納 でき ます。32 ワードおよび 64 ワードのコンフ ィギュレーシ ョ ンにはそれぞれ 5 つ 目 および 6 つ 目 のア ド レ スラインが 必 要 で、 これらのアドレス ラインは、 書 き 込 みではライト イネーブル ロ ジ ッ ク 、 読 み 出しでは F5MUX および F6MUX に 接 続 する BX 入 力 および BY 入 力 を 使 用 し て イ ンプ リ メ ン ト されます。分 散 RAMへの 書 き 込 みは 常 に SLICEM クロック ( 分 散 RAMでは WCLK) に 同 期 し、 ア ク テ ィ ブHigh のライ ト イネーブル (WE) と し て 動 作 する SLICEM SR 入 力 に よ り イ ネーブルにな り ます。読 み 出 し 操 作 は 非 同 期 であ る ため、 書 き 込 みの 初 期 には 出 力 の 書 き 込 みア ド レ スの 位 置 に 古 いデータ が 存 在 し ます。分 散 RAMの 出 力 は SLICEM エレ メ ン ト 内 のフ リ ップフロ ップを 使 用 して 取 り 込 むこ とができます。 RAM の WE 制 御 と フ リ ッ プフ ロ ッ プの ク ロ ッ ク イネーブル (CE) 制 御 は 互 いに 独 立 し ていますが、 WCLK と CLK クロック 入 力 は 共 有 されます。 RAM の 読 み 出 し 操 作 は 非 同 期 であ る ため、出 力 には 常 に 最 新 のア ド レ スで 指 定 さ れた RAM ロ ケーシ ョ ンのデータが 存 在 し ます。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 219<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 6 章 : 分 散 RAM としてのルックアップ テーブルの 使 用デュアル ポー ト のオプシ ョ ンを 使 用 する と、 2 つの LUT が 組 み 合 わせられ、 2 つの 別 々のデータラインからメモリにアクセスできるようになります。 同 じデータ が 両 方 の 16X1 メモリに 書 き 込 まれますが、 読 み 出 し ア ド レ ス ラ イ ン と 出 力 は 独 立 し ています。 デュアル ポー ト 機 能 は、 読 み 出 し と書 き 込 み 操 作 の 両 方 で 使 用 さ れる G-LUT アドレス ラインを F-LUT 書 き 込 みアドレス ライン (208ページの 図 5-2 の WF[4:1]) にカスケード 接 続 し、G-LUT データ 入 力 DI を 図 5-2 の DIF_MUX を介 して F-LUT の DI 入 力 にカ ス ケー ド 接 続 し て イ ンプ リ メ ン ト さ れます。 227 ページの 図 6-5 に 示すよ うに、 1 つの CLB には、 16X1 デュアル ポー ト メモリがあります。INIT 属 性 を 使 用 する と 、 <strong>FPGA</strong> コンフィギュレーション 中 にデータをメモリにプリロードできます。 デフォル ト では RAM の 初 期 値 はすべてゼ ロ です。 WE が Low に 保 持 されている 場 合 は、 エレメントを ROM である と 見 なすこ とができます。 ROM ファンクションは、SLICEL でインプリ メントされます。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> 間 での 分 散 RAM の 違 いすべての <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> の 分 散 RAM は 同 一 です。 表 6-1 に 示 すよ う に、 デバイス 当 たりの 分 散 RAM の 容 量 は 異 な り ます。 パフ ォーマン スは、 プ ロ セスや 特 性 化 の 多 少 の 違 いによ りわずかに 異 なり ます。表 6-1 : <strong>FPGA</strong> デバイ スご との 分 散 RAM リソースデバイス 分 散 RAM のブロッ ク 数 分 散 RAM のビ ッ ト 数<strong>Spartan</strong>-3A DSPXC3SD1800A 16,640 266,240XC3SD3400A 23,872 381,952<strong>Spartan</strong>-3A/3ANXC3S50A/AN 704 11,264XC3S200A/AN 1,792 28,672XC3S400A/AN 3,584 57,344XC3S700A/AN 5,888 94,208XC3S1400A/AN 11,264 180,224<strong>Spartan</strong>-3EXC3S100E 960 15,360XC3S250E 2,448 39,168XC3S500E 4,656 74,496XC3S1200E 8,672 138,752XC3S1600E 14,752 236,032<strong>Spartan</strong>-3XC3S50 768 12,288XC3S200 1,920 30,720XC3S400 3,584 57,344220 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


ほかのザイ リ ン ク ス <strong>FPGA</strong> フ ァ ミ リ との 互 換 性R表 6-1 : <strong>FPGA</strong> デバイ スご との 分 散 RAM リソース ( 続 き)デバイス 分 散 RAM のブロッ ク 数 分 散 RAM のビ ッ ト 数XC3S1000 7,680 122,880XC3S1500 13,312 212,992XC3S2000 20,480 327,680XC3S4000 27,648 442,368XC3S5000 33,280 532,480ほかのザイ リ ン ク ス <strong>FPGA</strong> フ ァ ミ リ との 互 換 性表 6-2 : 分 散 メ モ リの 特 徴 (<strong>FPGA</strong> ファミリ 別 )<strong>Spartan</strong>-3 ジェネレーションの 分 散 RAM の 動 作 は、 Virtex ® 、 Virtex-E、 <strong>Spartan</strong>-II、 <strong>Spartan</strong>-IIE、Virtex-II、 Virtex-II Pro <strong>FPGA</strong> の 分 散 RAM と 同 じです。表 6-2 に、 各 種 <strong>FPGA</strong> ファミ リの CLB に 内 蔵 さ れた メ モ リ の 基 本 的 な 機 能 を 示 し ます。 Virtex-IIおよび Virtex-II Pro と 同 様 、<strong>Spartan</strong>-3 ジェネレーショ ンの CLB には 8 つの LUT があ り、128 ビットの ROM をインプリ メントできます。 Virtex、 Virtex-E、 <strong>Spartan</strong>-II、 および <strong>Spartan</strong>-IIE と 同 様 、<strong>Spartan</strong>-3 ジェネレーションの CLB には 64 ビッ トの 分 散 RAM があ り ます。 <strong>Spartan</strong>-3 と Virtex-II および Virtex-II Pro の CLB のロジッ ク 機 能 は 同 じですが、 <strong>Spartan</strong>-3 ジェネレーションの CLBに 内 蔵 された 分 散 RAM のビッ ト 幅 は Virtex-II および Virtex-II Pro の 半 分 です。<strong>Spartan</strong>-3 Virtex、 Virtex-E、 Virtex-II、機 能Virtex-4 Virtex-5ジェネレーション <strong>Spartan</strong>-II、 <strong>Spartan</strong>-IIE Virtex-II ProCLB ごとの LUT 数 8 4 8 8 8CLB ごとの ROM ビッ ト 幅 128 64 128 128 256CLB ごとのシングル ポー ト 64 64 128 64 256RAM ビット 幅CLB ごとのデュアル ポー トRAM ビット 幅32 32 64 32 128表 6-3 は、 各 種 <strong>FPGA</strong> ファミ リでサポートされるシングル ポー ト およびデュアル ポー ト の 分 散RAM プリ ミティブをリストしています。 ここでは、1 つの CLB にインプリ メン ト 可 能 なプリ ミティブのインスタンス 数 を RAM タイプ 別 に 示 しています。 たとえば、<strong>Spartan</strong>-3 ジェネレーショ ンの CLB には、 32X1 シングル ポー ト RAM プリ ミティブを 2 つインプリ メン トできます。 また、16X1 デュアル ポー ト RAM プリ ミティブは 2 つインプリ メン トできますが、32X1 デュアル ポート RAM プリ ミティブは 1 つもインプリ メン トできません。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 221<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 6 章 : 分 散 RAM としてのルックアップ テーブルの 使 用表 6-3 : 1 つの CLB に イ ン プ リ メ ン ト 可 能 なシングル ポー ト およびデュアル ポー ト の RAM プリミティブ (ファミリ 別 )デバイス ファミリ<strong>Spartan</strong>-3 ジェネレーショ ン<strong>FPGA</strong>シングル ポー ト RAM デュアル ポー ト RAM16X1 32X1 64X1 128X1 16X1 32X1 64X14 2 1 - 2 - -<strong>Spartan</strong>-II/<strong>Spartan</strong>-IIE <strong>FPGA</strong> 4 2 1 - 2 - -Virtex、 Virtex-E <strong>FPGA</strong>Virtex-II、 Virtex-II Pro <strong>FPGA</strong> 8 4 2 1 4 2 1Virtex-4 <strong>FPGA</strong> 4 2 1 - 2 - -Virtex-5 <strong>FPGA</strong> 8 6 4 2 4 4 2ライブラリ プリミティブ<strong>Spartan</strong>-3 ジェネレーショ ンの 分 散 RAM をサポートする ラ イブラ リ プリ ミティブには、 ワード 数が 16 ビッ トのものから 64 ビッ トのものまで 4 種 類 あ り ます。 すべてのプ リ ミ テ ィ ブの 幅 は 1 ビットです。 表 6-4 に 示 すよ う に、 プ リ ミ テ ィ ブの う ち 3 つがシングル ポー ト RAM で、 残 り の 1 つがデュアル ポー ト RAM です。表 6-4 : シングル ポー ト およびデュアル ポー ト の 分 散 RAMプリミティブRAM サイズ(ワード 数 X ビット 幅 )タイプアドレス 入 力RAM16X1S 16 X 1 シングル ポー ト A3、 A2、 A1、 A0RAM32X1S 32 X 1 シングル ポー ト A4、 A3、 A2、 A1、 A0RAM64X1S 64 X 1 シングル ポー ト A5、 A4、 A3、 A2、 A1、 A0RAM16X1D 16 X 1 デュアル ポー ト A3、 A2、 A1、 A0入 力 データおよび 出 力 データ 幅 は 1 ビットです。 ただ し、 並 列 接 続 さ れた 分 散 RAM ではビ ッ ト 幅の 広 い メ モ リ ファンクションをインプリ メントできます。図 6-3 に、 シングル ポー ト およびデュアル ポー ト の 分 散 RAM プリ ミティブを 示 します。 A[#:0]信 号 および DPRA[#:0] 信 号 は、 ア ド レ ス バスです。222 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


ライブラリ プリミティブRRAMyX1SRAMyX1DDWEODWESPOWCLKWCLKR/W PortA[#:0]A[#:0]DPRA[#:0]Read PortDPOX464_03_062503図 6-3 : シングル ポー ト およびデュアル ポー ト の 分 散 RAM プリミティブ表 6-5 : デュアル ポー ト RAM の 機 能入 力出 力WE (モード) WCLK D SPO DPO0 ( 読 み 出 し) X X data_a data_d1 ( 読 み 出 し) 0 X data_a data_d1 ( 読 み 出 し) 1 X data_a data_d1 ( 書 き 込 み) ↑ D D data_d1 ( 読 み 出 し) ↓ X data_a data_dメモ :1. data_a = A# ~ A0 で 指 定 されたワード2. data_d = DPRA# ~ DPRA0 で 指 定 されたワード表 6-6 に 示 すよ う に、 2 ビットおよび 4 ビッ ト RAM のライブラ リ プリ ミティブもあります。表 6-6 : 2 ビットおよび 4 ビットのライブラリ プリミティブプリミティブRAM サイズ(ワード 数 X ビット 幅 )データ 入 力 ア ド レス 入 力 データ 出 力RAM16X2S 16 X 2 D1、 D0 A3、 A2、 A1、 A0 O1、 O0RAM32X2S 32 X 2 D1、 D0 A4、A3、A2、A1、A0 O1、 O0RAM16X4S 16 X 4 D3、D2、D1、D0 A3、 A2、 A1、 A0 O3、O2、O1、O0<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 223<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 6 章 : 分 散 RAM としてのルックアップ テーブルの 使 用信 号 ポー トクロック - WCLKイネーブル - WE分 散 RAM の 各 ポー ト は、 同 じ メ モ リ セルを 読 み 出 し てい る 場 合 で も、 動 作 はそれぞれ 独 立 し ています。ク ロ ッ ク は、 同 期 書 き 込 みに 使 用 し ます。 データ 入 力 ピ ン と ア ド レ ス 入 力 ピ ンのセ ッ ト ア ッ プ タイムは、WCLK ピンを 基 準 としています。 デフォル ト では 立 ち 上 が り エッジでアクテ ィブで、 極 性 はプログラム 可 能 です。イネーブル ピ ンは、 ポー ト の 書 き 込 み 機 能 を 制 御 し ます。 WE が 非 ア ク テ ィ ブの 場 合 、 メ モ リ セルへの 書 き 込 みは 実 行 されません。 WE がア ク テ ィ ブの 場 合 、 ク ロ ッ ク エ ッ ジに 同 期 し て、 ア ド レ ス入 力 信 号 で 指 定 し た メ モ リ 位 置 にデータ 入 力 信 号 が 書 き 込 まれます。 デフォル ト ではアクテ ィブHigh で、 極 性 はプ ロ グ ラ ム 可 能 です。アドレス - A0、 A1、 A2、 A3 (A4、 A5、 A6、 A7)ア ド レ ス 入 力 は、 読 み 出 し ま たは 書 き 込 みを 行 う メ モ リ セルを 選 択 し ます。 必 要 と な る ア ド レ ス 入力 の 数 は、 ポー ト 幅 によ って 決 ま り ます。メモ : VHDL または Verilog イ ン ス タ ンシエーシ ョ ンでは、 ア ド レ ス 入 力 はバスではあ り ません。デュアル ポー ト 読 み 出 し ア ド レ ス - DPRA0、 DPRA1、 DPRA2、 DPRA3RAM16X1D で、 デュ アル ポー ト アドレス 入 力 により、DPO 出 力 での 読 み 出 し に 使 用 する メ モ リセルが 選 択 されます。 書 き 込 み 処 理 には 影 響 し ません。データ 入 力 - Dデータ 入 力 は、 RAM に 書 き 込 まれる 新 しいデータ 値 とな り ます。データ 出 力 - O、 SPO、 DPOシングル ポー ト RAM のデータ 出 力 O またはデュアル ポー ト RAM のデータ 出 力 SPO およびDPO には、 ア ド レ ス 入 力 で 指 定 し た メ モ リ セルの 内 容 が 送 信 さ れます。 WE がアクテ ィブになると、 新 し く 書 き 込 まれたデータがデータ 出 力 (O または SPO) に 送 信 されます。 レ ジ ス タ 付 き 出 力 では SLICEM エ レ メ ン ト 内 のフ リ ッ プフ ロ ッ プが 使 用 さ れます。制 御 ピ ンの 反 転2 つの 制 御 ピン WCLK および WE は、 個 別 に 反 転 で き ます。 ク ロ ッ ク を 含 むすべての 制 御 信 号 は、ほかのロジッ ク リソースを 使 用 せずに、アクティブ High またはアクティブ Low にコンフィギュレーシ ョ ンできます。グローバル セッ ト/ リセッ ト - GSR分 散 RAM モジュールは、 グローバル セッ ト/ リセット (GSR) 信 号 では リ セ ッ ト さ れません。224 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


属 性Rグローバル ライト イネーブル - GWEグローバル ライト イネーブル (GWE) 信 号 は、すべての 書 き 込 み 可 能 なエレ メ ン ト を 有 効 にする ため、 デバイ ス コ ン フ ィ ギ ュ レーシ ョ ンの 最 後 に 自 動 的 にアサー ト さ れます。 GWE 信 号 を 使 用 すると、 初 期 化 された 分 散 RAM の 内 容 がコ ンフ ィ ギ ュ レーシ ョ ン 中 に 変 更 される こ と はあ り ません。GWE は、 <strong>Spartan</strong>-3A/3AN/3A DSP が 一 時 停 止 モー ド の 場 合 に 分 散 RAM の 値 を 保 持 する ためにも 使 用 されます。GWE はグ ローバル 信 号 で、 デバイ ス 全 体 に 自 動 的 に 接 続 される ため、 分 散 RAM プリ ミティブには GWE 入 力 ピ ンはあ り ません。属 性内 容 初 期 化 - INIT分 散 RAM は、デフ ォル ト ではデバイ スのコ ン フ ィ ギ ュ レーシ ョ ン シーケンス 中 にすべて 0 に 初 期化 されます。 メ モ リ の 内 容 を 0 以 外 に 初 期 化 する には、 INIT 属 性 を 使 用 し ます。 INIT 属 性 は、 16進 数 で 表 し たビ ッ ト ベ ク タ で、 最 上 位 ビ ッ ト か ら 最 下 位 ビ ッ ト の 順 に 配 列 さ れてい ます。 つま り、16 進 数 の 一 番 右 の 桁 は RAM ロケーション 3、 2、 1、 および 0 を 示 し ます。 表 6-7 に、 一 部 のプリミティブの INIT 属 性 の 長 さ を 示 し ます。表 6-7 : INIT 属 性 の 長 さプリミティブ テンプレート INIT 属 性 の 桁 数RAM16X1S RAM_16S 4 桁RAM32X1S RAM_32S 8 桁RAM64X1S RAM_64S 16 桁RAM16X1D RAM_16D 4 桁INIT 属 性 は、 すべての ROM イ ン ス タ ンシエーシ ョ ンに 必 要 です。 ROM はコンフィギュレーション 時 に INIT 値 に 初 期 化 さ れ、 動 作 中 は 変 化 し ません。 たとえば ROM16X1 の 場 合 、 INIT = 10A7のパ ラ メ ータ で、 次 のデータ ス ト リ ームが 生 成 さ れます。0001 0000 1010 0111<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 225<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 6 章 : 分 散 RAM としてのルックアップ テーブルの 使 用配 置 ロケーシ ョ ン - LOC<strong>Spartan</strong>-3 ジェネレーショ ンの CLB には、 図 6-4 に 示 すよ う に、 位 置 座 標 を 持 つス ラ イ スが 4 つ 含まれています。 分 散 RAM は、 SLICEM スライスにのみインプリ メント 可 能 です。 SLICEM の Mは、 ス ラ イ スが メ モ リ 関 連 のフ ァ ン ク シ ョ ン をサポー ト し てい る こ と を 示 し、 SLICEL との 違 いを表 しています。 L はロジッ クのみをサポートするこ とを 示 していますが、 SLICEL では ROM もサポー ト されます。 (CLB)LUTRegLUTRegLUTRegLUTRegX0Y1X1Y1LUTRegLUTRegLUTRegLUTRegX0Y0SLICEM/ROM RAMX1Y0SLICEL/ROM x464_04_070803図 6-4 : <strong>Spartan</strong>-3 ジェネレーション CLB 内 の SLICEM スライスLOC プロパティが 分 散 RAM インスタンスに 割 り 当 てられると、ザイ リンクス ISE ® ソフトウェアで、 指 定 さ れた 位 置 に イ ン ス タ ン ス が 配 置 さ れます。 図 6-4 に、 <strong>Spartan</strong>-3 ジェネレーション CLB内 のス ラ イ スの X、 Y 座 標 を 示 し ます。 メモリは、 SLICEM スライスのみでサポートされます。分 散 RAM の 配 置 ロ ケーシ ョ ンの 表 記 方 法 は、 ス ラ イ ス 位 置 の 表 記 方 法 と 同 じ なので、 LOC プロパテ ィ を 別 のアレ イにも 簡 単 に 転 用 でき ます。たとえば、 シングル ポー ト RAM16X1S プリ ミティブは、SLICEM のどの LUT でも 使 用 できます。 スライス X0Y0 にインスタンス U_RAM16 を 配 置 する には、 次 の よ う な LOC 制 約 の 構 文 を 使用 します。INST "U_RAM16" LOC = "SLICE_X0Y0";図 6-5 に 示 すよ う に、 16X1 デュアル ポー ト RAM16X1D プリ ミティブでは、SLICEM スライスの 2 つの 16X1 LUT RAM が 使 用 されます。 SPO 出 力 の 付 いた 最 初 の 16X1 LUT RAM では、 アドレス A[3:0] で 制 御 されるポート を 介 して、 読 み 出 し と 書 き 込 みが 実 行 されます。 2 つ 目 の LUTRAM では、 ア ド レ ス DPRA[3:0] が 独 立 し た 読 み 出 し 専 用 ポー ト にな り ます。 データは、 ア ド レ スA[3:0]、 WE、 および WCLK で 制 御 され、 両 方 の LUT RAM に 同 時 に 送 信 さ れます。226 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


属 性RSLICEMDA[3:0]WE16x1LUTRAM(/)SPOWCLKDPRA[3:0]16x1LUTRAM()DPOx464_05_062603図 6-5 : RAM16X1D の 配 置図 6-6 に 示 すよ う に、32X1 シングル ポー ト RAM32X1S プリ ミティブはスライスを 1 つ 使 用 し ます。 RAM の 32 ビットは、SLICEM スライス 内 で 2 つの 16X1 LUT RAM に 分 割 されます。 A4 アドレス ラインは、 スライス 内 の F5MUX マルチプレ クサを 介 して、 ア ク テ ィ ブになっている LUTRAM を 選 択 し ます。SLICEMDA[3:0]A4WEWCLK16x1LUTRAMF5MUXO16x1LUTRAMx464_06_062603図 6-6 : RAM32X1S の 配 置<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 227<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 6 章 : 分 散 RAM としてのルックアップ テーブルの 使 用64X1 シングル ポー ト RAM64X1S プリ ミティブは、SLICEM スライスを 2 つ 使 用 し ます。 読 み 出しパスは、 CLB 内 の F5MUX と F6MUX の 両 方 のマルチプレ ク サを 使 用 し ます。表 6-8 に、すべての 分 散 RAM のデザイ ン エレ メン トおよび <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> で必 要 な ス ラ イ ス 数 を 示 し ます。表 6-8 : 分 散 RAM デザイ ン エレメントおよび 必 要 なスライス 数エレメント スライス 数 エレメント スライス 数 エレメント スライス 数RAM16X1D 1 RAM32X1S_1 1 RAM128X1S_1 4RAM16X1D_1 1 RAM32X2S 2 ROM16X1 0.5RAM16X1S 0.5 RAM32X4S 4 ROM32X1 1RAM16X1S_1 0.5 RAM32X8S 8 ROM64X1 2RAM16X2S 1 RAM64X1S 2 ROM128X1 4RAM16X4S 2 RAM64X1S_1 2 ROM256X1 8RAM16X8S 4 RAM64X2S 4RAM32X1S 1 RAM128X1S 4分 散 RAM のデザイ ン 入 力CORE Generatorアプ リ ケーシ ョ ンで 分 散 RAM を 指 定 する には、 CORE Generator、 VHDL、 または Verilog などのデザ イ ン 入 力 ツールを 使 用 で き ます。CORE Generator を 使 用 する と、 シングル ポー ト およびデュアル ポー ト RAM、 ROM、 およびSRL16 シフ ト レ ジ ス タ のフ ァ ン ク シ ョ ン を 持 つ 分 散 メ モ リ デザイ ンを 作 成 でき ます。分 散 メ モ リ モジ ュールはパ ラ メ ータ 指 定 可 能 です。ワー ド 数 は 16 ~ 65536 の 範 囲 の 16 の 倍 数 で、各 ワー ド のビ ッ ト 幅 の 範 囲 は 1 ~ 1024 ビッ トです。 モジュールを 作 成 するには、 コンポーネン ト名 、 使 用 する 制 御 入 力 、 制 御 入 力 の 極 性 を 指 定 し ます。 オプシ ョ ンで、 入 力 および 出 力 にレ ジ ス タを 付 ける こ とができます。 出 力 レ ジ ス タ にはオプシ ョ ンで、 非 同 期 および 同 期 リ セ ッ ト を 使 用 で きます。オプシ ョ ンで、 初 期 メ モ リ 内 容 を 指 定 で き ます。 指 定 し ない 場 合 は、 各 メ モ リ 位 置 が 0 に 初 期 化 されます。 初 期 値 を 指 定 する には、 メ モ リ 初 期 化 フ ァ イ ルに、 各 メ モ リ 位 置 に 対 し て 1 行 のバイナ リデータ を 入 力 し ます。 デフォル ト のファ イルは、CORE Generator によ り 作 成 されます。 または、 図6-7 のよ うな 係 数 ファイル ( 拡 張 子 が .coe) を 作 成 して く ださい。 こ のフ ァ イ ルでは、 初 期 内 容 を 2、10、 または 16 の 基 数 で 定 義 で き る だけでな く 、 ほかの 制 御 パ ラ メ ータ も 定 義 で き ます。memory_initialization_radix=16;memory_initialization_vector= 80, 0F, 00, 0B, 00, 0C, _, 81;図 6-7 : バイ ト 幅 メ モ リの 単 純 な 係 数 フ ァ イルの 例CORE Generator では、 選 択 されたオプシ ョ ン と 必 要 と なるデバイ ス リソースを 示 すレポートが 出力 されます。 ワード 数 の 多 い メ モ リ が 生 成 される と 外 部 マルチプレ クサが 必 要 にな る こ と があ り ま228 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


分 散 RAM のデザイ ン 入 力Rすが、 こ れら の リ ソ ースは 必 要 な ロ ジ ッ ク スライス 数 としてレポートされます。 また、 シミ ュレーション 用 に VHDL または Verilog ビヘイビア モデル も 生 成 さ れます。CORE Generator の FIFO Generator では、 分 散 RAM とブロック RAM の 両 方 がサポート さ れま す。• CORE Generator : Distributed Memory Generatorhttp://japan.xilinx.com/support/documentation/ip_documentation/dist_mem_gen_ds322.pdf• CORE Generator : FIFO Generatorhttp://japan.xilinx.com/support/documentation/ip_documentation/fifo_generator_ds317.pdfVHDL および VerilogVHDL および Verilog ベース のデザ イ ンでは、 分 散 RAM を 推 論 またはインスタンシエート ( 使 用する 合 成 ツールによって 異 なる) できます。分 散 RAM の 推 論ザイ リンクスの XST や Synplicity 社 の Synplify などの VHDL および Verilog 合 成 ツールを 使 用 する と 、 記 述 し たハー ド ウ ェ アに 基 づいて 分 散 RAM を 推 論 できます。 ISE の Project Navigator には、分 散 RAM を 推 論 するためのテンプレート が 含 まれています。 こ のテンプレー ト を 使 用 する には、メニューの [Edit] → [Language Templates] をクリ ックし、 階 層 ツリーで [VHDL] または [Verilog]を 選 択 し、 [Synthesis Constructs] → [Coding Examples] → [RAM] を 展 開 して [distributed RAM]でテンプレー ト を 選 択 し ます。 テンプレート を 切 り 取 ってアプリ ケーシ ョ ン 用 のソース コードに 貼り 付 け、 必 要 に 応 じ て 変 更 を 加 え ます。VHDL 推 論 テンプレー ト の 例process ()beginif ('event and = '1') thenif ( = '1') then(conv_integer())


R第 6 章 : 分 散 RAM としてのルックアップ テーブルの 使 用インスタンシエーション テンプレートVHDL およ び Verilog を ベース と し たデザイ ン の 場 合 、 各 種 イ ン ス タ ン シエーショ ン テンプレート を 使 用 する と 開 発 時 間 を 短 縮 でき ま す。 このテンプレート を 使 用 するには、メニューの [Edit]→ [Language Templates] を ク リ ッ ク し、 階 層 ツ リ ーで [VHDL] ま たは [Verilog] を 選 択 し、[Device Primitive Instantiation] → [<strong>FPGA</strong>] → [RAM/ROM] → [Distributed RAM] を 展 開 し ます。 テン プレ ート を 切 り 取 っ てアプリ ケーショ ン 用 のソ ース コ ード に 貼 り 付 け、 必 要 に 応 じ て 変更 を 加 えま す。シングル ポー ト およびデュ アル ポー ト のプ リ ミ テ ィ ブ 用 の VHDL および Verilog テンプレートは、ダ ウ ン ロー ド も でき ます。 RAM_xS テンプレート (x = 16、32、64) はシングル ポー ト モジュールで、 対 応 する RAMxX1S プリ ミティブをインスタンシエートします。 S は、シングル ポー ト RAMを 表 し ます。 RAM_16D テンプレートはデュアル ポー ト モジ ュールで、 対 応 する RAM16X1D プリミティブをインスタンシエートします。 D は、 デュ アル ポー ト RAM を 表 します。• 分 散 RAM の VHDL テンプレートxapp464_vhdl.zip• 分 散 RAM の Verilog テンプレートxapp464_verilog.zipシングル ポー ト のテンプレー ト は、 次 の とお り です。• RAM_16S• RAM_32S• RAM_64Sデュアル ポー ト のテンプレー ト は、 次 の とお り です。• RAM_16DVHDL のテンプレー ト には、 コンポーネン ト 宣 言 のセクシ ョ ン と アーキテクチャ セクションがあります。 両 方 のセ ク シ ョ ン を VHDL デザイ ン ファイルに 追 加 してください。 アーキテクチャ セクションのポート マ ッ プには、 デザイ ン 信 号 名 が 含 まれている 必 要 があ り ます。次 に、 RAM_16S モジュールの VHDL および Verilog テンプレート 例 を 示 します。VHDL インスタンシエーション テンプレートの 例--- RAM16X1S : In order to incorporate this function into the design,-- VHDL : the following instance declaration needs to be placed-- instance : in the architecture body of the design code. The-- declaration : instance name (RAM16X1S_inst) and/or the port-- code : declarations after the "=>" assignment maybe changed-- : to properly reference and connect this function to the-- : design. All inputs and outputs must be connected.-- Library : In addition to adding the instance declaration, a use-- declaration : statement for the UNISIM.vcomponents library needs to-- for : be added before the entity declaration. This library-- <strong>Xilinx</strong> : contains the component declarations for all <strong>Xilinx</strong>-- primitives : primitives and points to the models that will be used-- : for simulation.-- Copy the following two statements and paste them before the-- Entity declaration, unless they already exist.Library UNISIM;230 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


分 散 RAM のデザイ ン 入 力Ruse UNISIM.vcomponents.all;-- -- RAM16X1S: 16 x 1 posedge write distributed => Distributed RAM-- <strong>Xilinx</strong> HDL Language TemplateRAM16X1S_inst : RAM16X1Sgeneric map (INIT => X"0000")port map (O => O, -- RAM outputA0 => A0, -- RAM address[0] inputA1 => A1, -- RAM address[1] inputA2 => A2, -- RAM address[2] inputA3 => A3, -- RAM address[3] inputD => D, -- RAM data inputWCLK => WCLK, -- Write clock inputWE => WE -- Write enable input);-- End of RAM16X1S_inst instantiationVerilog インスタンシエーション テンプレートの 例// RAM16X1S : In order to incorporate this function into the design,// Verilog : the following instance declaration needs to be placed// instance : in the body of the design code. The instance name// declaration : (RAM16X1S_inst) and/or the port declarations within// code : the parenthesis may be changed to properly reference and// : connect this function to the design. All inputs// : and outputs must be connected.// // RAM16X1S: 16 x 1 posedge write distributed (LUT) RAM// <strong>Xilinx</strong> HDL Language TemplateRAM16X1S #(.INIT(16'h0000) // Initial contents of RAM) RAM16X1S_inst (.O(O), // RAM output.A0(A0), // RAM address[0] input.A1(A1), // RAM address[1] input.A2(A2), // RAM address[2] input.A3(A3), // RAM address[3] input.D(D), // RAM data input.WCLK(WCLK), // Write clock input.WE(WE) // Write enable input);// End of RAM16X1S_inst instantiation<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 231<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 6 章 : 分 散 RAM としてのルックアップ テーブルの 使 用ビット 幅 が 広 い 分 散 RAM モジュール表 6-9 に、 n ビッ ト 幅 のメモリをインプリ メントする 分 散 RAM の VHDL および Verilog サブモジュールを 示 します。表 6-9 : VHDL および Verilog サブモジュールサブモジュール プ リ ミ テ ィ ブ サイズ タ イプXC3S_RAM16XN_S_SUBM RAM16X1S 16 ワード X n ビッ ト シングル ポー トXC3S_RAM32XN_S_SUBM RAM32X1S 32 ワード X n ビッ ト シングル ポー トXC3S_RAM64XN_S_SUBM RAM64X1S 64 ワード X n ビッ ト シングル ポー トXC3S_RAM16XN_D_SUBM RAM16X1D 16 ワード X n ビッ ト デュアル ポー トVHDL または Verilog コー ド での 初 期 化分 散 RAM の 構 造 は、 合 成 およびシ ミ ュ レーシ ョ ン 用 に VHDL または Verilog で 初 期 化 で き ます。合 成 の 場 合 、 分 散 RAM のインスタンシエーショ ンに 属 性 を 設 定 し、 EDIF 出 力 フ ァ イルに コ ピーして ISE ツールでコンパイルします。 VHDL コードのシ ミ ュレーシ ョ ンでは generic パラ メータを使 用 し て 属 性 が 渡 さ れます。 Verilog コードのシ ミ ュレーシ ョ ンでは、 defparam パラ メータを 使 用し て 属 性 が 渡 さ れます。まとめ<strong>FPGA</strong> デザイ ンでは、 シ ス テムの コ ン フ ィ ギ ュ レーシ ョ ン、 制 御 、 およびス テータ ス ファンクションに 小 型 で 高 速 で 柔 軟 な メ モ リ を 複 数 必 要 と する こ と が 多 く 、 こ れ ら の メ モ リ は 通 常 、 デザ イ ン 全体 に 分 散 されます。 <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> の 分 散 RAM はこのよ うなアプリケーションに 最 適 で、CLB をオン デマン ド でロジ ッ クから メ モ リ に 変 更 でき ます。 これによ り、 メモリ 同 士を 接 続 する こ と で、 さ ま ざ ま なデータ 幅 およびワー ド 数 の メ モ リ を コ ン フ ィ ギ ュ レーシ ョ ンで き ます。 ザイ リンクスの ツールでは、 小 さいアレイに 分 散 RAM が 自 動 的 に 使 用 さ れますが、 デザ イ ンに 直 接 インスタンシエートするこ と もできます。関 連 資 料 および リ フ ァ レ ンスこ の 章 の 補 足 情 報 は、 次 の 資 料 を 参 照 し て く だ さ い。• 第 4 章 の 「ブロッ ク RAM の 使 用 」• 第 5 章 の 「CLB (コンフィギャブル ロジック ブロッ ク) の 使 用 」• 第 7 章 の 「ルッ クアップ テーブルのシフ ト レジスタ (SRL16) と し ての 使 用 」• RAM および ROM アプ リ ケーシ ョ ン ノートhttp://japan.xilinx.com/support/documentation/ram_and_rom.htm• Distributed Memory Generator ザイ リ ンクス IP コアhttp://japan.xilinx.com/xlnx/xebiz/designResources/ip_product_details.jsp?key=DIST_MEM_GEN• ザイ リンクス ISE ソフトウェア マニュアルhttp://japan.xilinx.com/support/software_manuals.htm232 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 7 章ルックアップ テーブルのシフ ト レジスタ(SRL16) と し ての 使 用概 要SRL16 は、ルッ ク ア ッ プ テーブルを 16 ビッ トのシフト レ ジ ス タ と し て 使 用 する モー ド です。 このシフ ト レジスタ LUT (SRL) モー ド を 使 用 する と パフ ォーマン スが 向 上 し、 コ ス ト も 大 幅 に 削 減 されます。 SRL16 はソフ ト ウェア ツールで 自 動 的 に 推 論 さ れますが、 効 果 的 に 使 用 する と 、デザ イ ンの コ ス ト を さ ら に 削 減 で き ます。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> 間 でのシフ ト レ ジス タの 違 いはじめにこ の 章 の 記 述 は、すべての <strong>Spartan</strong> ® -3 ジェネレーション <strong>FPGA</strong> に 適 用 されます。 SRL16 シフ ト レジスタは 同 じファ ミ リでは 同 一 で、そのファンクションも <strong>Spartan</strong>-3 ジェネレーショ ン <strong>FPGA</strong> 間 で同 一 ですが、 パフ ォーマン スはプ ロ セスや 特 性 化 の 多 少 の 違 いに よ り わずかに 異 な り ます。 SRL16シフ ト レジスタの 数 は、 220 ページの 表 6-1 に 示 す 分 散 RAM ブロックの 数 と 同 じです。<strong>Spartan</strong>-3 ジェネレーショ ン <strong>FPGA</strong> では、 ス ラ イ スのフ リ ッ プフ ロ ッ プを 使 用 せずに、 SLICEM スライスのルックアップ テーブル (LUT) を 16 ビッ トのシフト レジスタ としてコンフィギュレーションできます。 シフ ト イ ンは ク ロ ッ ク に 同 期 し、 出 力 の 長 さ は 動 的 に 変 更 可 能 です。 16 ビッ トのシフ ト レ ジ ス タ を カ ス ケー ド 接 続 し て 必 要 なサ イ ズのシ フ ト レ ジ ス タ を 作 成 する ための 専 用 出 力もあります。 各 CLB リソースで、8 つの LUT のうち 4 つを 使 用 して 64 ビッ トのシフト レジスタとしてコンフィギュレーションできます。ここでは、16 ~ 64 ビッ トのシフト レジスタをインプリ メン トするジェネリ ッ クな VHDL およびVerilog のサブモジュールと リ フ ァ レンス コードの 例 を 示 します。 これらのサブモジュールは、 16ビットのシフト レジスタ プ リ ミ テ ィ ブおよび 専 用 の MUXF5、 MUXF6、 MUXF7 マルチプレ クサか ら 構 成 さ れています。これらのシフ ト レ ジ ス タ を 使 用 する と、 遅 延 ま たはレ イ テンシの 補 正 が 必 要 なアプ リ ケーシ ョ ンで、 効 率 的 なデザ イ ン を 開 発 で き ます。 シフ ト レジスタは、 同 期 FIFO および CAM ( 連 想 メ モ リ )デザ イ ンで も 使 用 で き ます。 CORE Generator の RAM ベース のシ フ ト レジスタ モジュールを 使用 する と 、 フ リ ッ プフ ロ ッ プを 使 用 せずに SRL16 エレ メン ト を 使 用 して <strong>Spartan</strong>-3 シフ ト レジスタ を 簡 単 に 生 成 で き ます。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 233<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 7 章 : ルックアップ テーブルのシフ ト レジスタ (SRL16) と し ての 使 用シフ ト レジスタのアーキテクチャここでは、SRL16 の 構 造 を 基 礎 か ら 説 明 し ます。 まずシフ ト レ ジ ス タ について 説 明 し、 周 辺 の<strong>FPGA</strong> の 構 造 について 説 明 し ます。LUT の 構 造LUT は、 バイナ リ セレク ト ラインの 役 割 を 果 たす 4 つの 入 力 があ る 16:1 のマルチプレ クサと して 表 すこ と ができ、 LUT にプログラ ム された 値 が 選 択 されるデータ と な り ます ( 図 7-1 参 照 )。1 0 1 1 1 0 0 01 1 1 0 1 0 0 1A[3:0]0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111Dx465_01_070603図 7-1 : 16:1 マルチプレクサとして 表 された LUTSRL16 のコ ン フ ィ ギュ レ ーショ ン では、 固 定 の LUT 値 がアド レ ス 指 定 可 能 なシフ ト レジスタと してコンフィ ギュレーショ ンさ れます ( 図 7-2 参 照 )。 シフト レ ジス タ 入 力 は、LUT の 同 期 RAM コンフ ィ ギュ レ ーショ ン の 入 力 と 同 じ で、 入 力 には、 データ 入 力 、 ク ロ ッ ク 、 およ びク ロ ッ ク イネーブル ( 図 には 含 まれていません) があり ます。 シフト レ ジス タ の 最 後 のフ リ ッ プフ ロ ッ プの 出 力 は 特別 で、 ラ イ ブラ リ プリミティブでは Q15 、 <strong>FPGA</strong> Editor では MC15 と 呼 ばれま す。 LUT 入 力 で、シフト レジスタに 16 個 ある 記 憶 エレ メ ン ト のう ちの 1 つが 非 同 期 ( 動 的 ) に 選 択 さ れま す。DINCLKDQ DQ DQ DQ DQ DQ DQ DQ DQ DQ DQ DQ DQ DQ DQ DQQ15 orMC15A[3:0]0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111Dx465_02_040203図 7-2 : ア ド レス 指 定 可 能 なシ フ ト レジスタとしてコンフィギュレーションされた LUTレ ジス タ 長 の 動 的 変 更ア ド レ スは、 動 的 に 変 化 する シフ ト レジスタの 長 さであると 言 えます。 シフ ト レジスタの 出 力 にQ15 ではな く D が 使 用 さ れてい る 場 合 は、 ア ド レ ス を 7 (0111) に 設 定 する と Q7 が 出 力 と し て 使用 され、8 ビットのシフト レジスタをエミ ュレートできます。 マルチプレ クサはア ド レス ラインで制 御 さ れる ため、 出 力 へのパスが 非 同 期 にな る 点 に 留 意 し て く だ さ い。ロジック セル 構 造SLICEM の F-LUT および G-LUT は、 SRL16 の 基 礎 にな り ます。 208 ページの 図 5-2 の CLB の構 造 の 詳 細 を 参 照 し て く だ さ い。 SLICEM の LUT は、 G-LUT の MC15 出 力 か ら DIF_MUX を 介して F-LUT の DI 入 力 にカ ス ケー ド 接 続 さ れます。 SHIFTIN と SHIFTOUT ラインは DIG_MUXを 介 して SLICEM を 下 の SLICEM にカ ス ケー ド 接 続 し、 大 型 のシフ ト レジスタを 構 成 します。234 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


シフ ト レジスタのアーキテクチャR各 シフ ト レジスタでは、 通 常 の D 出 力 を 介 し てシフ ト レジスタのどのビッ トへもアドレスを 指 定してアクセスでき、 また LUT の 最 後 のビ ッ ト にはシフ ト 出 力 MC15 があ り ます ( 図 7-3 参 照 )。 アドレス 入 力 A[3:0] は、 分 散 RAM アドレス ラ イ ン と 同 時 に LUT 入 力 F[4:1] または G[4:1] から 供給 されます。SHIFTINSRLC16A[3:0]4SHIFT-REGA[3:0]WSDMC15DIDQOutputRegisteredOutputDI (BY)WSG(optional)CE (SR)CLKWECKSHIFTOUTor YBX465_03_040203図 7-3 : ロジック セル SRL 構 造レジスタ 付 き 出 力各 SRL16 LUT は、 ロ ジ ッ ク セル 全 体 を 構 成 する フ リ ッ プフ ロ ッ プに 関 連 付 け られています。 シフト レ ジ ス タ のア ド レ ス 指 定 可 能 な ビ ッ ト はフ リ ッ プフ ロ ッ プに 格 納 し て 同 期 出 力 し た り 、 CLB の組 み 合 わせ 出 力 に 直 接 送 信 で き ます。 レ ジス タ を 使 用 する 場 合 は、 タ イ ミ ングの 問 題 が 発 生 し ないようにするため、アドレス ラ イ ン を 固 定 し てシフ ト レ ジ ス タ 長 が 変 更 さ れない よ う に し ます。 CLBのフ リ ッ プフ ロ ッ プを 使 用 する と 、 ア ド レ ス 指 定 可 能 なビ ッ ト を さ ら に 1 シフ ト 分 遅 延 さ せる こ とができ ます。 フリ ップフロップの clock-to-output 遅 延 はシフ ト レジスタよ り も 短 いため、 最 後 から2 つ 目 のビッ トをアドレス 指 定 して、 フリ ップフロップをシフ ト レジスタの 最 後 のステージとして使 用 する と 、 パフ ォーマン スが 向 上 し ます。 フリ ップフロップを 使 用 すると、 出 力 を 非 同 期 または同 期 でセ ッ ト ま たは リ セ ッ ト で き ます。シフ ト レ ジ ス タ 入 力 は、 専 用 SHIFTIN 信 号 か ら 送 信 で き、 シフ ト レジスタの Q15/MC15 信 号 でSHIFTOUT 出 力 を 駆 動 で き ます。 ア ド レ ス 指 定 可 能 な D 出 力 はすべての SRL プリ ミティブで 使 用できますが、 SHIFTOUT を 駆 動 する Q15/MC15 信 号 は、 カ ス ケー ド 接 続 可 能 な SRLC16 プリ ミティブでしか 使 用 できません。SRL16 はアプ リ ケーシ ョ ンによって、LSB から MSB にまたは MSB から LSB にシフ ト できます。デバイ スでは 最 後 の 出 力 に MC15 と い う 任 意 の 名 前 が 付 け られていますが、 こ の 出 力 がユーザーファンクションの LSB である 場 合 もあ り ます。ス ラ イ スの 構 造スライス 内 の 2 つのロ ジ ッ ク セルを 接 続 し、シフ ト レジスタを 最 大 32 ビットまでカスケード 接 続できます ( 図 7-4 参 照 )。 最 初 のシ フ ト レジスタの Q15/MC15 が 2 つ 目 のシフ ト レジスタの DI (または Q0 フリ ップフロップ) に 接 続 されます。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 235<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 7 章 : ルックアップ テーブルのシフ ト レジスタ (SRL16) と し ての 使 用SLICEMLCSRL16MC15DISRL16LC<strong>UG331</strong>_c9_04_072406図 7-4 : スライスのロジック セル 間 のシ フ ト レ ジス タ の 接 続レ ジ ス タ 長 を 動 的 に 変 更 する 場 合 は、 各 SRL16 のデータ 出 力 をマルチプレ ク サ F5MUX に 入 力 し、2 つの SRL16 ビッ トのうちのいずれか 1 つを 選 択 し ます ( 図 7-5 参 照 )。SRL16LCF5MUXA[3:0]SRL16LCA4X465_05_070703図 7-5 : F5MUX を 使 用 し た、 複 数 の SRL16 コンポーネントのアドレス 指 定CLB の 構 造<strong>Spartan</strong>-3 ジェネレーショ ン CLB には 4 つのス ラ イ スがあ り 、 各 ス ラ イ スには 2 つの LUT があ ります。 LUT を SRL16 コンポーネントまたは 分 散 RAM として 使 用 できるのは、2 つのス ラ イ スでのみです。 左 側 にあ る 2 つの SLICEM コンポーネントでは、2 つの LUT を 16 ビット シフ ト レジスタとしてコンフィギュレーションできます。 SHIFTOUT から SHIFTIN への 接 続 を 使 用 し て、 2つの SLICEM コンポーネントをカスケード 接 続 できます。 1 つの CLB にある 左 側 の 4 つの LUTを 組 み 合 わせる と 、 最 大 64 クロック サイクルの 遅 延 を 生 成 できます ( 図 7-6 参 照 )。 複 数 の CLB のシフ ト レ ジ ス タ を 組 み 合 わせる こ と も で き ます。236 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


シフ ト レジスタのアーキテクチャR1 Shift Chainin CLBINDI DSRLC16MC15FFDI DSRLC16MC15FFSHIFTOUTSLICEM S1SHIFTINDI DSRLC16MC15FFDI DSRLC16MC15FFSLICEM S0OUTCASCADABLE OUTX465_06_040503図 7-6 : CLB のシフ ト レジスタ LUT のカスケード 接 続1 つの SLICEM 内 の 2 つの LUT を 組 み 合 わせる 場 合 と 同 様 に、 マルチプレ ク サを 使 用 し て 複 数 のSLICEM のア ド レ ス も 指 定 で き ます。 F6MUX を 使 用 する と 、 1 つの CLB 内 の 3 つまたは 4 つのSRL16 コ ンポーネン ト か ら の 選 択 も 可 能 で、 最 大 64 ビ ッ ト のア ド レ ス 指 定 可 能 なシフ ト レジスタを 構 成 できます ( 図 7-7 参 照 )。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 237<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 7 章 : ルックアップ テーブルのシフ ト レジスタ (SRL16) と し ての 使 用DLUTF5LUTSLICEM S1LUTF6F5LUTSLICEM S0CLBX465_07_040203図 7-7 : F6MUX を 使 用 した 64 ビット シフ ト レジスタのアドレス 指 定ライブラリ プリミティブシフ ト レジスタ エレ メン トは SRL16 (シフ ト レジスタ LUT 16 ビッ ト) と 呼 ばれ、 カ ス ケー ド 接続 用 の Q15 出 力 およびク ロ ッ ク イネーブルがあります。 SRLC16E コンポーネントの 例 を、 図 7-8に 示 し ます。DCECLKA0A1A2A3SRLC16EQQ15X465_19_040503図 7-8 : SRLC16E プリミティブライブラリ プリ ミティブは 8 つあ り、 オプシ ョ ンで、 ク ロ ッ ク イネーブル (CE)、 反 転 クロックCLK)、 およびカ ス ケー ド 接 続 用 出 力 (Q15) が 使 用 でき ます。238 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


ライブラリ プリミティブR表 7-1 に、 合 成 およびシ ミ ュ レーシ ョ ンに 使 用 可 能 なプ リ ミ テ ィ ブを 示 し ます。表 7-1 : シフト レジスタ プリミティブプリミティブ 幅 制 御 アドレス 入 力 出 力SRL16 16 ビット CLK A3、 A2、 A1、 A0 QSRL16E 16 ビット CLK、 CE A3、 A2、 A1、 A0 QSRL16_1 16 ビット CLK A3、 A2、 A1、 A0 QSRL16E_1 16 ビット CLK、 CE A3、 A2、 A1、 A0 QSRLC16 16 ビット CLK A3、 A2、 A1、 A0 Q、 Q15SRLC16E 16 ビット CLK、 CE A3、 A2、 A1、 A0 Q、 Q15SRLC16_1 16 ビット CLK A3、 A2、 A1、 A0 Q、 Q15SRLC16E_1 16 ビット CLK、 CE A3、 A2、 A1、 A0 Q、 Q15VHDL コードまたは Verilog コ ー ド での 初 期 化シフ ト レ ジ ス タ は、 合 成 およびシ ミ ュ レーシ ョ ン 用 に VHDL コード または Verilog コードで 初 期化 でき ます。 合 成 の 場 合 は、16 ビット シフ ト レジスタのインスタンシエーショ ンに INIT 属 性 を 指定 する と、 ザ イ リ ン ク ス ツールでコンパイルでき る よ う EDIF 出 力 フ ァ イルにコ ピーさ れます。VHDL コードのシ ミ ュレーシ ョ ンでは、 generic パ ラ メ ータ を 使 用 し て 属 性 が 渡 さ れます。Verilog コードのシ ミ ュレーシ ョ ンでは、 defparam パ ラ メ ータ を 使 用 し て 属 性 が 渡 さ れます。S3_SRL16E シフ ト レジスタのインスタンシエーショ ン コードの 例 (VHDL および Verilog) に、これらの 手 法 を 示 します (248 ページの 「VHDL および Verilog テンプレート」 を 参 照 )。S3_SRL16E.vhd ファイルおよび S3_SRL16E.v フ ァ イ ルは、 本 書 には 掲 載 さ れていません。ポー ト 信 号クロック - CLKシフ ト イ ンは、 ク ロ ッ ク の 立 ち 上 が り エ ッ ジ ま たは 立 ち 下 が り エ ッ ジに 同 期 し ます。 データ 入 力 ピンおよびク ロ ッ ク イネーブル 入 力 ピンのセッ トアップ タイムは、 選 択 された CLK のエッ ジを 基 準とします。データ 入 力 - Dデータ 入 力 は、 シフ ト レジスタにシフ ト インする 新 しいデータ (1 ビッ ト) となります。クロック イネーブル - CE (オプシ ョ ン)クロック イネーブル ピ ンは、 シフ ト 動 作 を 制 御 し ます。 クロック イネーブル ピンが 非 アクティブのときは、 シフト レジスタにデータはシフ ト インされず、 新 しいデータは 書 き 込 まれません。 クロック イ ネーブルを ア ク テ ィ ブにする と 、 データ 入 力 (D) の 内 容 が 最 初 のビ ッ ト に 書 き 込 まれ、 すべてのデータが 1 つずつシフ ト し ます。 新 しいデータが、 出 力 ピン (Q) およびカ ス ケー ド 接 続 用 出力 ピン (Q15) に 送 信 されます。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 239<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 7 章 : ルックアップ テーブルのシフ ト レジスタ (SRL16) と し ての 使 用アドレス - A3、 A2、 A1、 A0ア ド レ ス 入 力 は、 出 力 する ビ ッ ト (0 ~ 15) を 選 択 し ます。 n 番 目 のビ ッ ト が、 出 力 ピ ン (Q) に 送 信されます。 カ ス ケー ド 接 続 用 出 力 ピ ン (Q15) には、 常 にシフ ト レジスタの 最 後 のビッ ト (ビット 15)が 出 力 されるので、 アドレス 入 力 には 影 響 されません。データ 出 力 - Qデータ 出 力 Q には、 ア ド レ ス 入 力 で 選 択 さ れたデータ 値 (1 ビッ ト) が 送 信 されます。データ 出 力 - Q15 (オプシ ョ ン)データ 出 力 Q15 には、 16 ビット シフ ト レジ ス タの 最 後 のビ ッ ト 値 が 送 信 されます。 シフ ト イン 後に 新 し いデータ が 出 力 さ れます。制 御 ピ ンの 反 転GSR2 つの 制 御 ピン (CLK および CE) は、 個 別 に 反 転 で き ます。 デフ ォル ト では、 ク ロ ッ ク は 立 ち 上 がりエッジ、 クロック イネーブルはアクティブ High に 設 定 されています。グローバル セッ ト/ リセット (GSR) 信 号 は、 シ フ ト レ ジ ス タ には 影 響 し ません。属 性内 容 初 期 化 - INITロケーシ ョ ン 制 約INIT 属 性 は、 シ フ ト レ ジ ス タ の 初 期 値 を 指 定 し ます。 INIT 属 性 は 16 進 数 で 表 さ れた 4 桁 (0000)のビッ ト ベクタです。 一 番 左 の 桁 が 最 上 位 ビ ッ ト にな り ます。 デフォル ト では、 シフ ト レジスタはデバイ スのコ ン フ ィ ギ ュ レーシ ョ ン シーケンス 中 にすべて 0 に 初 期 化 さ れます。図 7-9 に、 CLB 内 のス ラ イ ス の 配 列 を 示 し ま す。 各 CLB には 4 つのス ラ イ ス があり ま すが、 シフト レ ジス タ と し て 使 用 でき る のは 左 下 の 2 つだけです。 これらは CLB の S0 およ び S1 の 位 置 にある SLICEM です。 相 対 位 置 を 示 す 座 標 は X0Y0 およ び X0Y1 です。 配 置 制 約 を 設 定 する には、LOCプロ パティ でこ れら の 座 標 を SRL プリミティブに 設 定 します。 専 用 CLB シフト チェ ーンは 上 から 下 に 通 っていますが、シフト レ ジス タ の 始 点 と 終 点 は 4 つの SLICEM LUT のどれでも かまいません。240 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


ライブラリ プリミティブRSLICEM( RAM)CLB SLICEL()COUTSLICEX1Y1SHIFTOUTSHIFTINSLICEX0Y1SLICEX0Y0COUTSLICEX1Y0CINCINX465_08_040203図 7-9 : CLB 内 のス ラ イ ス 配 置シフト レジスタの 動 作シフ ト レジスタの 動 作 を 表 7-2 に 示 し ます。 SRL16 は、ク ロ ッ ク イ ネーブル 制 御 が High の 場 合 にクロック 入 力 の 立 ち 上 がりエッジでシフトします。 シフ ト レジスタの 内 容 は、 コンフィギュレーシ ョ ン 中 ま たは 動 作 中 は、 データ をシフ ト イ ンする 以 外 は 変 更 で き ません。 クロック イネーブルおよびク ロ ッ ク 入 力 は、 SLICEM 内 の 2 つの LUT 間 で 共 有 さ れます。 クロック イネーブル 入 力 は、使 用 さ れない 場 合 は 自 動 的 にア ク テ ィ ブの 状 態 に 保 持 さ れます。表 7-2 : SRL16 シフト レジス タの 機 能入 力出 力Am CLK CE D Q Q15Am X 0 X Q[Am] Q[15]Am ↑ 1 D Q[Am-1] Q[15]メモ :1. m = 0、 1、 2、 3データ フローシフ ト レジスタ (SRL16 プリ ミティブ) では、 次 をサポー ト しています。• 同 期 シフ ト イ ン• ア ド レ スが 動 的 に 変 更 さ れた 場 合 の 非 同 期 1 ビッ ト 出 力• ア ド レ スが 固 定 されている 場 合 の 同 期 シフ ト ア ウ ト<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 241<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 7 章 : ルックアップ テーブルのシフ ト レジスタ (SRL16) と し ての 使 用カ ス ケー ド 接 続 可 能 なシフ ト レジスタ (SRLC16) では、 これに 加 えて 最 後 (16 番 目 ) のビッ ト の 同期 シフ ト アウ ト 出 力 もサポー ト されます。 この 出 力 は、 CLB リ ソース 内 にあ る 次 の SRLC16 の 入力 への 専 用 接 続 です。 図 7-10 に 2 つのプ リ ミ テ ィ ブを 示 し ます。SRLC16EDAddressSRL16EQDAddressCECLKQQ15CESRLC16ECLKDAddressQCECLKQ15X465_09_070703図 7-10 : シフト レジス タ およびカ スケー ド 接 続 可 能 なシ フ ト レジスタシフ トシフ トは、 クロッ ク イネーブルが High のときに、 クロック エ ッ ジに 同 期 し て 行 われます。 クロック イネーブルが High の 場 合 、 入 力 (D) の 内 容 がシフ ト レ ジ ス タ の 最 初 のビ ッ ト に 読 み 込 まれ、 各ビッ トの 値 が 次 の 高 位 ビットにシフトします。 カ ス ケー ド 接 続 可 能 なシフ ト レジスタ (SRLC16 など) のコ ンフ ィ ギュ レーシ ョ ンでは、 最 後 のビ ッ ト の 値 が Q15 出 力 にシフ ト ア ウ ト さ れます。4 ビット アドレスで 選 択 されたビッ トは、 Q 出 力 に 送 信 さ れます。ダイナ ミ ッ ク 読 み 出 しQ 出 力 の 値 は、 4 ビッ トのアドレス 入 力 により 決 定 します。 新 しいアド レスが 4 ビットの 入 力 アドレス ピンに 読 み 込 まれると、 LUT にアクセスする 時 間 だけ 遅 れて、 Q に 新 しいビ ッ ト 位 置 の 値 が出 力 さ れます。 こ の 動 作 は 非 同 期 で、 ク ロ ッ ク 信 号 および ク ロ ッ ク イネーブル 信 号 とは 関 係 なく 行われます。242 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


ライブラリ プリミティブR図 7-11 に、 シフ ト およびダ イ ナ ミ ッ ク 読 み 出 し 動 作 を 示 し ます。CLKCEDtshiftQQ15Shift Timing DiagramAddress710QPosition (7) Position (10)taccesstaccessDynamic Length Timing Diagramス タ テ ィ ッ ク 読 み 出 し図 7-11 : シ フ ト およびダ イナ ミ ッ ク 読 み 出 しのタ イ ミ ングX465_10_0402034 ビット ア ド レ ス 入 力 が 固 定 さ れてい る 場 合 、 Q 出 力 は 常 に 同 じ ビ ッ ト 位 置 の 値 にな り ます。 このモード では、1 ~ 16 ビッ トのシフト レジスタは 1 つの LUT にインプリ メン ト されます。 N を 入 力アドレスとすると、 シフト レジスタの 長 さは (N+1) です。Q 出 力 は、 シフ ト 動 作 と 同 期 し て 変 化 し ます。 ビッ トが 次 の 位 置 にシフトし、 Q に 出 力 されます。特 徴• シフ トは、 クロッ ク エ ッ ジに 同 期 し て 行 われます。• ダ イ ナ ミ ッ ク 読 み 出 し は 非 同 期 に 行 われます (Q 出 力 )。• ス タ テ ィ ッ ク 読 み 出 し は 同 期 に 行 われます (Q 出 力 )。• データ 入 力 は、 setup-to-clock タ イ ミ ング 仕 様 に 従 います。• カ ス ケー ド 接 続 可 能 な コ ン フ ィ ギ ュ レーシ ョ ンでは、 Q15 出 力 は 常 に 最 後 のビ ッ ト の 値 です。• Q15 出 力 は、 シフ ト 動 作 後 に 同 期 し て 変 化 し ます。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 243<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 7 章 : ルックアップ テーブルのシフ ト レジスタ (SRL16) と し ての 使 用シフ ト レジス タの 推 論シフ ト レジスタがジェネリ ッ ク HDL コードで 記 述 されている 場 合 は、SRL16 コンポーネントの 使用 が 合 成 ツールで 推 論 されます。 SRL16 には 同 期 または 非 同 期 のセ ッ ト または リ セ ッ ト 入 力 がなく 、 すべてのビ ッ ト に 同 時 にア ク セ ス で き ないため、 こ の よ う な 機 能 を 使 用 する 場 合 は SRL16 が使 用 で きず、 フ リ ッ プフ ロ ッ プで イ ンプ リ メ ン ト さ れます。 シフ ト レジスタが 16 ビッ トよりも 大きいか、 Q15 のみが 使 用 されてい る 場 合 は、 カ ス ケー ド 接 続 可 能 なシフ ト レジスタ (SRLC16) を推 論 で き ます。パフ ォーマン ス などの 理 由 でフ リ ッ プフ ロ ッ プの 使 用 が 望 ま し い 場 合 は、 リ セ ッ ト を 追 加 する と、合 成 ツールで SRL16 ではなくフリ ップフロップが 使 用 されます。 リセットが 不 要 な 場 合 はダミーの 信 号 を 接 続 し、 合 成 ツールでダ ミ ーの 信 号 がデザ イ ンか ら 削 除 さ れない よ う に KEEP 属 性 を 設 定します。SRL16 シフ ト レジスタにはパラレル ロー ド の 機 能 はあ り ませんが、 ロー ド 要 件 を 予 測 し て 適 切 なデータ にシフ ト インすると 同 様 の 機 能 をインプリ メントできます。 これにはロード コマンドのタイ ミ ングが 予 測 可 能 であ る 必 要 があ り ます。VHDL 記 述 ( 推 論 )次 の VHDL コードで SRL16 が 推 論 されます。architecture Behavioral of srl16 issignal Q_INT: std_logic_vector(15 downto 0);beginprocess(C)beginif (C'event and C='1') thenQ_INT


シフ ト レジスタ サブモジュールRVerilog 記 述 ( 推 論 )次 の Verilog コードで SRL16 が 推 論 されます。always @ (posedge C)beginQ_INT


R第 7 章 : ルックアップ テーブルのシフ ト レジスタ (SRL16) と し ての 使 用表 7-3 のサブモジュールでイ ンプ リ メ ン ト したカスケード 接 続 されたシフ ト レジスタ (32 ビットおよび 64 ビッ ト) を、 図 7-12 に 示 し ます。Add.5A4Add.6A5, A4 A5A3, A2, A1, A0A3, A2, A1, A0A4D4DA[3:0]QD4DA[3:0]QCECEQ15SRLC16EQ15SRLC16EQ4DA[3:0]QMUXF54DA[3:0]QMUXF5CECEQ15SRLC16EQ31Q15SRLC16E32-bit Shift RegisterQ4DA[3:0]QMUXF6CEQ15SRLC16E4DA[3:0]QMUXF5CESRLC16EQ1564-bit Shift RegisterQ63X465_11_051505図 7-12 : シフト レジスタ サブモジュール (32 ビッ トおよび 64 ビット)すべての ク ロ ッ ク イネーブル 入 力 (CE) およびクロ ッ ク 入 力 (CLK) は、 1 つのグ ローバル クロック イ ネーブルに 接 続 さ れます。 クロック 信 号 は、サブモジュールにつき 1 つです。 固 定 長 モー ド または 可 変 長 モー ド を グ ローバルにする 必 要 がない 場 合 は、 SRLC16E プリ ミティブをマルチプレクサなしでカスケードできます。246 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


シフ ト レジスタ サブモジュールR完 全 同 期 シ フ ト レジスタすべてのシフ ト レジスタのプリ ミティブおよびサブモジュールが、 同 じスライスにあるレジスタを使 用 する わけではあ り ません。 完 全 に 同 期 し た 読 み 出 し/ 書 き 込 みシフ ト レジスタをインプリ メントするには、 出 力 ピン Q を フ リ ッ プフ ロ ッ プに 接 続 する 必 要 があ り ます。 図 7-13 に 示 すよ う に、シフト レジスタ とフ リ ップフロップで 同 じクロッ クが 使 用 されるよ うにします。FFDAddressSRLC16EQDQSynchronousOutputCECLK(Write Enable)Q15X465_12_040203図 7-13 : 完 全 同 期 シ フ ト レジスタこ の コ ン フ ィ ギ ュ レーシ ョ ンは、 デザ イ ンが 簡 潔 で、 タ イ ミ ン グの 点 で も 優 れています。 フ リップフロップはシフト レジスタ チェーンの 最 後 のレ ジ ス タ なので、 固 定 長 モー ド または 可 変 長 モー ドでのア ド レ ス 指 定 は、 必 要 な 長 さ か ら 1 を 引 いた 値 にします。 必 要 に 応 じ て、 カ ス ケー ド 接 続 用 出力 もフリ ップフロップを 介 して 出 力 できます。 SRL16 からフリ ップフロップへの 遅 延 は 固 定 された CLB セッ トアップ タイム 遅 延 で、PERIOD 制 約 では 制 御 さ れません。固 定 長 シ フ ト レジスタカ ス ケー ド 接 続 可 能 な 16 ビッ トのシフト レジスタでは、 専 用 マルチプレクサ (MUXF5、 MUXF6など) を 使 用 せずに、 固 定 長 モー ド のシ フ ト レジスタをインプリ メン トできます。 図 7-14 は、 40ビットのシフト レジスタです。 最 後 の SRLC16E プリ ミティブのアドレス 入 力 を 0111 に 設 定 し ます。 または、シフ ト レジスタの 長 さを 39 ビット (アドレス 入 力 0110) にして、フリ ップフロップを最 後 のレジス タ と し て 使 用 する こ と も で き ます。 SRLC16E プリ ミティブでは、 シフト レジスタの長 さはアドレス 入 力 + 1 です。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 247<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 7 章 : ルックアップ テーブルのシフ ト レジスタ (SRL16) と し ての 使 用D"0111" 4 DLUTQ15SRLC16DLUTQ15SRLC16D QA[3:0]OUT(40-bit SRL)D"0110"DLUTQ15SRLC16DLUTQ15SRLC16D QA[3:0]OUT(40-bit SRL)FFD QLUTLUTQ15SRLC16図 7-14 : 40 ビ ッ ト の 固 定 長 シ フ ト レジスタVHDL/Verilog インスタンシエーションすべてのプ リ ミ テ ィ ブおよびサブモジ ュールに 対 し、 VHDL および Verilog のインスタンシエーション テンプレートがあり ます。• xapp465_vhdl.zip• xapp465_verilog.zipVHDL のテンプレー ト には、 コンポーネン ト 宣 言 のセクシ ョ ン と アーキテクチャ セクションがあり、 両 方 を VHDL デザイ ン フ ァ イ ルに 挿 入 する 必 要 があ り ます。 アーキテクチャ セクションのポー ト マ ッ プには、 デザ イ ンの 信 号 名 を 含 めます。ShiftRegister_C_x (x = 16、32、または 64) テンプレー ト はカ ス ケー ド 接 続 可 能 なモジ ュールで、 対応 する SRLCxE プリ ミティブ (16) またはサブモジュール (32 または 64) をインスタンシエート します。SHIFT_REGISTER_16 テンプレートは、SRL16 プリ ミティブをインスタンシエートする 際 に 使 用します。VHDL および Verilog テンプレートQ15SRLC16テンプレート 名 の 数 字 はビッ ト 数 を 示 し (たとえば、SHIFT_REGISTER_16 は 16 ビッ トのシフトレジスタ 用 のテンプレート)、 C はテンプレー ト がカ ス ケー ド 接 続 可 能 であ る こ と を 示 し ます。プリ ミティブのテンプレートは、 次 のとおりです。• SHIFT_REGISTER_16• SHIFT_REGISTER_16_Cサブモジュールのテンプレー ト は、 次 のとお り です。• SHIFT_REGISTER_32_C (サブモジュール : SRLC32E_SUBM)• SHIFT_REGISTER_64_C (サブモジュール : SRLC64E_SUBM)対 応 する サブモジ ュールは、 デザ イ ン と 共 に 合 成 する 必 要 があ り ます。X465_13_051505248 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


シフ ト レジスタ サブモジュールRSHIFT_REGISTER_16_C モジュールのテンプレー ト の VHDL および Verilog コードの 例 を 示 します。VHDL テンプレート-- Module: SHIFT_REGISTER_C_16-- Description: VHDL instantiation template-- CASCADABLE 16-bit shift register with enable (SRLC16E)-- Device: <strong>Spartan</strong>-3 Generation Family----------------------------------------------------------------------- Components Declarations:--component SRLC16E-- pragma translate_offgeneric (-- Shift Register initialization ("0" by default) for functionalsimulation:INIT : bit_vector := X"0000");-- pragma translate_onport (D : in std_logic;CE : in std_logic;CLK : in std_logic;A0 : in std_logic;A1 : in std_logic;A2 : in std_logic;A3 : in std_logic;Q : out std_logic;Q15 : out std_logic);end component;-- Architecture Section:---- Attributes for Shift Register initialization ("0" by default):attribute INIT: string;--attribute INIT of U_SRLC16E: label is "0000";---- ShiftRegister InstantiationU_SRLC16E: SRLC16Eport map (D => , -- insert input signalCE => , -- insert Clock Enable signal (optional)CLK => , -- insert Clock signalA0 => , -- insert Address 0 signalA1 => , -- insert Address 1 signalA2 => , -- insert Address 2 signalA3 => , -- insert Address 3 signalQ => , -- insert output signalQ15 => -- insert cascadable output signal);Verilog テンプレート// Module: SHIFT_REGISTER_16// Description: Verilog instantiation template// Cascadable 16-bit Shift Register with Clock Enable (SRLC16E)<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 249<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 7 章 : ルックアップ テーブルのシフ ト レジスタ (SRL16) と し ての 使 用CORE Generator// Device: <strong>Spartan</strong>-3 Generation Family//-------------------------------------------------------------------defparam//Shift Register initialization ("0" by default) for functionalsimulation:U_SRLC16E.INIT = 16'h0000;//SelectShiftRegister-II InstantiationSRLC16E U_SRLC16E ( .D(),.A0(),.A1(),.A2(),.A3(),.CLK(),.CE(),.Q(),.Q15());// synthesis attribute declarations/* attributeINIT "0000"*/ザイ リンクス CORE Generator では SRL16 を 使 用 して、 高 速 で 小 型 の FIFO スタイルのシフト レジスタ、 遅 延 ライン、 またはタイム スキュー バッファを 生 成 できます。 図 7-15 に 示 された RAMベースのシフ ト レジスタ モジュールでは、256 ビット X 1024 ワー ド までの 効 率 的 なマルチビ ッ ト幅 のシフ ト が 可 能 で、 固 定 長 シフ ト レ ジ ス タおよび 可 変 長 シフ ト レジスタを 作 成 できます。 オプションで、モジュールの 出 力 にもレジスタを 付 けられます。 出 力 にレ ジ ス タ を 付 け る 場 合 は、ク ロ ック イ ネーブル、 非 同 期 セ ッ ト / クリア/ 初 期 化 、 同 期 セ ッ ト / クリア/ 初 期 化 を 指 定 で き ます。 このコアは、 オプシ ョ ンで 相 対 配 置 マ ク ロ (RPM) ま たは 未 配 置 ロ ジ ッ ク と し て 生 成 する こ と も で き ます。ASET SSETD[N:0]A[M:0]CEQ[N:0]CLKACLR SCLR AINIT SINITx465_14_040203図 7-15 : CORE Generator RAM ベースのシフ ト レジスタ モジュール250 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


応 用R応 用遅 延 ラ イ ンザイ リンクスの <strong>FPGA</strong> アーキテクチャには 多 く のレジス タが 含 まれるため、パイプラ イ ン 段 を 追 加し て スループ ッ ト を 向 上 さ せる こ と がで き ます。 必 要 な 機 能 を 実 現 する ため、 データ パスのバランス を 取 る 必 要 があ り ます。 デザ イ ンで 遅 延 を 追 加 する 必 要 があ る 場 合 に、 SRL16 を 使 用 でき ます( 図 7-16 参 照 )。12 A B4 8 C3 3 9 12 A B4 8 C3 9 SRL16 12 X465_20_040603図 7-16 : 遅 延 ラ イ ン と し ての SRL16 の 使 用リニア フ ィードバック シフ ト レジスタリニア フィードバック シフ ト レジスタ (LFSR) は、 2n-1 のステート (n はフ リ ップフロ ップの 数 )を 順 次 に 遷 移 します。 シーケンスは、 特 定 のビ ッ ト を XOR ゲー ト または XNOR ゲー ト を 介 し てフ ィ ー ド バ ッ ク する こ と で 作 成 さ れます。 パフ ォーマン ス 重 視 型 のアプ リ ケーシ ョ ンで、FIFO のようにカウント シーケ ン スが 重 要 でない 場 合 、 従 来 のバ イ ナ リ カウンタの 代 わりに LFSR を 使 用 できます。 ま た、 擬 似 乱 数 発 生 器 と し て も 使 用 で き ます。 LFSR は、 暗 号 化 / 復 号 化 アルゴ リ ズムの 重要 な 構 成 要 素 です。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 251<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 7 章 : ルックアップ テーブルのシフ ト レジスタ (SRL16) と し ての 使 用M 系 列 の LFSR では、 シフ ト レ ジ ス タ の 特 定 の 位 置 での タ ッ プが 必 要 です。 SRL16 コンフィギュレーシ ョ ンで タ ッ プを 追 加 する 方 法 はい く つかあ り ます。 その う ちの 1 つは、SRL16 で 必 要 なビ ットにアドレスを 指 定 し、Q15 を 次 の SRL16 にカ ス ケー ド 接 続 する 方 法 です。 また、フ リ ップフロップを 追 加 して SRL16 を 拡 張 し、 タ ップ ポイントにアクセスする 方 法 もあります。 たとえば 図 7-17には、 49 ビット と 52 ビッ トからのフィードバックを 使 用 して 52 ビッ ト LFSR をインプリ メントしています。 もう 1 つの 方 法 では、 複 数 の SRL に LFSR を 複 製 し、 それぞれ 異 なるビ ッ ト をアドレ ス 指 定 し ます。 別 の 方 法 では、 1 SRL クロック サイ クルで 複 数 のア ド レ ス を 生 成 し、 複 数 のビ ット 位 置 を 取 り 込 みます。 LFSR に 必 要 な XNOR ゲー ト は、 CLB の SLICEL に 配 置 でき ます。 詳 細は、 アプ リ ケーシ ョ ン ノート XAPP210 『Linear Feedback Shift Registers in Virtex Devices』 を 参照 してください。Bit 52D QBit 1XNORBit 49D QSRL16Bit 17D QBit 52OutputAddress = 15D QSRL16Bit 33D QBit 51Address = 15D QSRL16Bit 49D QBit 50Address = 15x465_15_040203図 7-17 : 52 ビット LFSRGold 符 号 ジ ェ ネレー タCDMA シス テム で 相 互 相 関 値 が 低 い 符 号 を 生 成 する には、Gold 符 号 ジェ ネレ ータ を 使 用 し ま す ( 図7-18 参 照 )。 これは 2 つの LFSR の 結 果 をモジ ュ ロ 2 加 算 し て、 相 互 相 関 値 が 低 い 符 号 のセ ッ ト を生 成 する と い う も ので、 R. Gold 氏 によ り 提 案 されま し た。 出 力 は、 符 号 化 さ れた 信 号 を 含 むスペク ト ルでの 符 号 の 識 別 に 適 し ています。 図 7-18 に Gold 符 号 ジ ェ ネレータ の イ ンプ リ メ ンテーシ ョンを 示 します。 LFSR を 初 期 化 し、 フ ィ ー ド バ ッ ク を 供 給 する ロ ジ ッ ク は、 CLB の SLICEL にあ ります。 詳 細 は、 アプ リ ケーシ ョ ン ノート XAPP217 『Gold Code Generators in Virtex Devices』 を参 照 し て く だ さ い。252 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


応 用RLFSR 1Gold Code OutLFSR 2x465_16_051505図 7-18 : Gold 符 号 ジ ェ ネレー タFIFO同 期 FIFO を、 SRL16 コ ンポーネン ト を 使 用 し て 生 成 で き ます。 ほかの リ ソースが 少 ない 場 合 に 有用 で、 CLB あたり 最 大 64 ビ ッ ト が 使 用 で き ます。 これよ り 大 きい FIFO では、 ブロ ッ ク RAM を使 用 し た 方 が 効 率 的 です。 詳 細 は、 アプ リ ケーシ ョ ン ノート XAPP256 『FIFOs Using Virtex-IIShift Registers』 を 参 照 し て く だ さ い。CLKSINITDATA_INRD_ENAddressCounterSRL16BasedFIFODATA_OUTWR_ENFIFOCountFIFO_COUNTStatusFlagGenerationFULLEMPTY図 7-19 : SRLC16 シフト レジスタを 使 用 した 同 期 FIFOx465_17_051505<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 253<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 7 章 : ルックアップ テーブルのシフ ト レジスタ (SRL16) と し ての 使 用カウンタ16 ス テー ト のシーケ ン ス を 繰 り 返 すには、 出 力 ご と に SRL16 を 供 給 します。 SRL16 をカスケード接 続 する と、 シーケ ン ス を 任 意 の 回 数 繰 り 返 すこ と がで き ます。 ターミナル カウントは、 標 準 のキャ リー チェーンを 使 用 して 生 成 します ( 図 7-20 参 照 )。TCQ3SRL01Q2SRL01Q1SRL01Q0SRL01V CCx465_18_051505図 7-20 : ターミナル カウン トがある SRL ベースのカウン タ254 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


関 連 資 料 および リ フ ァ レ ンスR関 連 資 料 および リ フ ァ レ ンスこ の 章 の 内 容 の 補 足 情 報 については、 次 の Web サ イ ト を 参 照 し て く だ さ い。• アプ リ ケーシ ョ ン ノート XAPP210 : 『Linear Feedback Shift Registers in Virtex Devices』リニア フィードバック シフ ト レジスタは、 <strong>FPGA</strong> アーキテ クチャの 非 常 に 効 率 の 良 いカウ ンタです。 SRL16 をシフ ト レ ジ ス タ の 基 礎 と し て 使 用 する と 、 15 ビッ トのカウンタが 1 つのスライスに、52 ビットのカウンタが 2 つのス ラ イ スにフ ィ ッ ト し ます。• アプ リ ケーシ ョ ン ノート XAPP211 : 『PN Generators Using the SRL Macro』擬 似 ラ ンダム ノイズ シーケン スは、 スペク ト ラ ム 拡 散 変 調 用 で、 バン ド 幅 の 広 い 送 信 周 波 数に 信 号 を 符 号 化 し て 拡 散 する ために 使 用 さ れます。 PN ジェネレータは、 SRL16 コンポーネント か ら 効 率 良 く 生 成 で き る LFSR を 基 本 と しています。• アプ リ ケーシ ョ ン ノート XAPP217 : 『Gold Code Generators in Virtex Devices』特 別 な タ イ プの PN シーケンスは、 Gold 符 号 ジ ェ ネ レータ で、 SRL16 ベースの LFSR から 作成 されます。• アプ リ ケーシ ョ ン ノート XAPP220 : 『LFSRs as Functional Blocks in Wireless Applications』CDMA アプ リ ケーシ ョ ンでの Gold 符 号 ジ ェ ネレータ な ど、LFSR の 使 用 の 詳 細 について 説 明します。• アプ リ ケーシ ョ ン ノート XAPP256 : 『FIFOs Using Virtex-II Shift Registers』SRL16 は、 小 規 模 な 同 期 FIFO の 構 築 に 最 適 です。 FIFO は 1 ビ ッ ト の 精 度 で、 任 意 の 幅 で 構築 でき ます。 カスケード 接 続 された SRL16 シフ ト レジスタでは、ワード 数 は 16 の 倍 数 で 柔 軟に 設 定 でき ます。 これらの 手 法 は、ブロック RAM リ ソースが 使 用 できない 場 合 に 大 型 の FIFOを 使 用 する と き に 有 効 です。• ホワイ ト ペーパー WP271 : 『Saving Costs with the SRL16E』SRL16 の 機 能 およびパイ プ ラ イ ン 補 填 、 擬 似 ラ ンダム ノイズ ジェネレータ、 シリアル フレーム シン ク ロナイ ザ、 移 動 平 均 、 パルス 生 成 および ク ロ ッ ク 分 周 、 パターン 生 成 、 ス テー ト マシン、 動 的 ア ド レ ス 指 定 可 能 なシフ ト レジスタ、 FIFO、 および RS232 レシーバでの 使 用 について 説 明 し ます。• データ シー ト DS228 : 『RAM-Based Shift Register LogiCORE Module』SRL16 を 使 用 して、 高 速 で 小 型 の FIFO スタイルのシフト レジスタ、 遅 延 ライン、 またはタイム スキュー バッファを 生 成 できます。• ライブラリ ガイドの SRL16 プリ ミティブSRL16 プ リ ミ テ ィ ブ と そのバ リ エーシ ョ ンの 使 用 法 および 機 能 が 説 明 さ れています。まとめ<strong>Spartan</strong>-3 ジェネレーショ ン LUT で SRL16 コ ン フ ィ ギ ュ レーシ ョ ン を 使 用 する と 、 シフ ト レジスタ で 通 常 必 要 な 16 個 のフリ ップフロップが 不 要 になり、 スペースを 有 効 に 活 用 できるよ うになります。 HDL コードに 小 型 のシフ ト レジス タの 記 述 を 含 める と 、 この 機 能 が 自 動 的 に 使 用 されます。SRL16 は、 こ こ で 説 明 さ れてい る よ う に さ ま ざ ま なアプ リ ケーシ ョ ンに 工 夫 し て 応 用 する こ と で、大 き な 効 果 を 発 揮 し ます。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 255<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 7 章 : ルックアップ テーブルのシフ ト レジスタ (SRL16) と し ての 使 用256 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 8 章専 用 マルチプ レ クサの 使 用概 要<strong>Spartan</strong> ® -3 ジェネレーション アーキテクチャの CLB (コンフィギャブル ロジック ブロック) には、専 用 マルチプレ ク サが 含 まれています。 こ れ ら を 使 用 する と 多 入 力 マルチプレ ク サだけでな く 、 多入 力 フ ァ ン ク シ ョ ンのパフ ォーマン スおよび 集 積 度 を 上 げ る こ と がで き ます。 これらのリ ソースを使 用 する と 、 32:1 マルチプレ クサや、 79 個 までの 入 力 を 持 つブール ロジック ファンクションが1 つのロジ ッ ク レベルに 収 ま り ます。 専 用 マルチプレ ク サは、<strong>Spartan</strong>-3、<strong>Spartan</strong>-3E、<strong>Spartan</strong>-3A、<strong>Spartan</strong>-3AN、 <strong>Spartan</strong>-3A DSP の <strong>Spartan</strong>-3 ジェネレーショ ン <strong>FPGA</strong> すべてで 同 一 です。はじめにマルチプレ クサは、 ほとんどのロジッ ク デザ イ ンに 共 通 の 構 築 ブ ロ ッ ク で、 複 数 の 入 力 信 号 か ら 1つを 選 択 し て 出 力 し ます。 <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> では、 効 率 的 にマルチプレ クサを インプ リ メ ン ト できます。 小 型 のマルチプレクサはルッ クアップ テーブルにイ ンプ リ メ ン ト され、 大型 のマルチプレ ク サは 専 用 のマルチプレ ク サ リソースを 使 用 してインプリメントされます。<strong>Spartan</strong>-3 ジェネレーショ ン デバイ スには、 次 を 容 易 に イ ンプ リ メ ン ト でき ます。• 4:1 マルチプレ クサ (1 スライス 内 )• 16:1 マルチプレ クサ (1 CLB 内 )• 32:1 マルチプレ クサ (2 CLB 内 )同 じロジッ ク リ ソースは、 多 入 力 の 汎 用 ロ ジ ッ ク ファンクションにも 使 用 できます。 コンパレータやエン コーダ/デコーダなどのアプリ ケーシ ョ ンまたは case 文 では、 これらの リ ソース を 使 用 すると 効 率 的 です。 case 文 を 使 用 する と 、 こ れら の リ ソ ース がザ イ リ ン ク ス 開 発 シ ス テムで 自 動 的 に 使用 さ れ、 デザ イ ンの タ イ ミ ン グ 要 件 に 合 わせて 最 適 化 さ れます。 こ の 章 では、 専 用 マルチプレ ク サを 最 大 限 に 活 用 する 方 法 およびデザ イ ンでの 解 析 について 説 明 し ます。この 章 では、<strong>Spartan</strong>-3 ジェネレーション アーキテ ク チャ の 専 用 マルチプレ ク サ リソースについて説 明 し ます。 また、 マルチプレ ク サに 関 連 する 信 号 およびパラ メ ータの 定 義 、 デザイ ンにマルチプレ ク サを 含 め る さ ま ざ ま な 方 法 および 推 奨 さ れる 使 用 方 法 と ガ イ ド ラ イ ン を 示 し ます。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 257<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 8 章 : 専 用 マルチプ レ クサの 使 用<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> 間 の 専 用 マルチプ レ クサの 違 いCLB のマルチプレ クサの 構 造 は 同 じ フ ァ ミ リ では 同 一 で、<strong>Spartan</strong>-3 ジェネレーショ ン <strong>FPGA</strong> 間 でも 同 一 ですが、 パフ ォーマン スはプ ロ セスや 特 性 化 の 多 少 の 違 いに よ り わずかに 異 な り ます。専 用 マルチプ レ クサの 利 点<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> は 4 入 力 ル ッ ク ア ッ プ テーブル (LUT) を 基 礎 と しており、4 入力 のフ ァ ン ク シ ョ ンを イ ンプ リ メ ン ト でき ます。 1 つの LUT でサポー ト される 最 大 のマルチプレクサは 2:1 マルチプレ クサで、 4 つ 目 の 入 力 はイ ネーブル と し て 使 用 で き ます。 大 型 のマルチプレク サを 構 築 する 方 法 の 1 つに、 複 数 の LUT を カ ス ケー ド 接 続 する 方 法 があ り ます。 たとえば、4:1マルチプレ クサは 2 つの LUT の 出 力 を 3 つ 目 の LUT に 入 力 する こ と に よ り 構 築 で き ます。 ただし、 こ の 方 法 では、 2 レベルの ロ ジ ッ ク 遅 延 と LUT 間 の 配 線 遅 延 が 加 わ り ます。 特 別 な リ ソ ース を使 用 し ない 場 合 、 8:1 マルチプレ クサには 図 8-1 に 示 すよ う に 7 つの LUT が 必 要 で、 3 レベルのロジック 遅 延 と 2 レベルの 配 線 遅 延 が 加 わ り ます。LUTnetnetLUTLUTnetnetLUTLUTLUTnetnetLUTX466_01_040303図 8-1 : 8:1 マルチプレクサ、 7 つの LUT、 3 レベルのロジッ ク<strong>Spartan</strong>-3 ジェネレーショ ン <strong>FPGA</strong> ではマルチプレ ク サの 速 度 と 集 積 度 を 向 上 する ため、LUT ベースの ロ ジ ッ ク のレベルを 追 加 する 代 わ り に 使 用 で き る 専 用 2:1 マルチプレ クサが 各 LUT の 後 にあります。 このうちの 1 つの F5MUX では、 隣 接 する LUT と 結 合 して 4:1 マルチプレ ク サを 作 成 します。 その 他 のマルチプレクサは、 各 LUT ペアの 後 にあ り、 CLB 内 でのロ ケーシ ョ ンによ って 異な る 機 能 を 持 つよ り 入 力 数 の 多 いマルチプレ ク サを 作 成 し ます。 このマルチプレクサは FiMUX と呼 ばれ、 イ ンデ ッ ク ス i は、 6、 7、 8 のいずれかです。 図 8-2 の 例 では、 F6MUX に 2 つの F5MUXエレ メン トの 出 力 が 結 合 され、 8:1 マルチプレ ク サが 形 成 さ れています。 LUT からマルチプレクサおよびマルチプレ ク サ 間 の 接 続 は 専 用 で、 接 続 遅 延 はゼ ロ です。 LUT と 専 用 マルチプレクサを 組 み合 わせる と、 大 型 のマルチプレクサを 効 率 よ く インプリ メン ト できます。258 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


CLB マルチプレクサのリ ソースRLUTF5MUXLUTF6MUXLUTF5MUXLUTX466_02_050505図 8-2 : 8:1 マルチプレ クサ、 4 つの LUT、 1 レベルのロジックCLB マルチプレクサのリ ソース<strong>Spartan</strong>-3 ジェネレーシ ョ ンのアーキテクチャは、CLB の 配 列 で 構 成 さ れています。 各 CLB には 4つのス ラ イ スがあ り ます。 2 つは SLICEM と 呼 ばれ、 メ モ リ 機 能 があ り 、 残 り の 2 つは SLICELで、 ロ ジ ッ ク のみの 機 能 があ り ます。 各 スラ イスのロジッ ク リソースおよびマルチプレクサのリソースは 同 じです。 図 8-3 に 示 すよ う に、 ス ラ イ スには 2 つのLUT、 1 つの F5MUX、 および 拡 張マルチプレ クサがあ り ます。FiMUX4LUTRegF5MUX4LUTRegAny SliceX466_03_050505図 8-3 : スライス 内 の LUT および F5MUX<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 259<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 8 章 : 専 用 マルチプ レ クサの 使 用F5MUXF5MUX には、 ス ラ イ ス 内 の 2 つの LUT の 出 力 が 入 力 さ れます。 これらの 2 つの LUT に 同 じ 制御 入 力 を 使 用 する 2:1 マルチプレ クサが 含 まれている 場 合 は、 図 8-4 に 示 すよ う に、 全 体 で 4:1 マルチプレ ク サが 構 成 されます。LUTLUTF5MUX4:1 MUXX466_04_050505図 8-4 : F5MUX を 使 用 した 4:1 マルチプ レ クサのイ ンプ リ メ ンテーシ ョ ンF5MUX の 名 前 は、 図 8-5 に 示 すよ う に、 こ のマルチプレ ク サで 5 入 力 のブール ロジック ファンクションが 生 成 されることを 示 しています。 2 つの LUT の 4 つの 入 力 が 同 じ 場 合 は、マルチプレ クサのセレ ク ト ラインが 5 つ 目 の 入 力 にな り ます。 3 入 力 の LUT と 同 様 に、F5MUX でファンクシ ョンが 拡 張 さ れて、 効 率 的 に 5 入 力 ファンクションをインプリ メントできるようになっています。 これはほかの <strong>FPGA</strong> アーキテ ク チ ャ に 比 べ、 大 き な 利 点 です。4LUTF5MUXAny 5-input FunctionLUTX466_05_050505図 8-5 : F5MUX を 使 用 した 5 入 力 ファンクションのインプリメンテーション図 8-6 に 示 すよ う に、F5MUX を 2 つの 4 入 力 LUT と 1 つのマルチプレ クサに 分 割 でき る 場 合 は、最 大 9 入 力 のフ ァ ン ク シ ョ ンが 作 成 で き ます。4LUTF5MUXSome 9-input Functions4LUTX466_06_050605図 8-6 : F5MUX を 使 用 した 9 入 力 ファンクションのインプリメンテーションこのよ うに、F5MUX を 使 用 し、5 入 力 のフ ァ ン ク シ ョ ン、4:1 マルチプレ クサ (6 入 力 フ ァ ン ク シ ョン)、 または 9 入 力 のフ ァ ン ク シ ョ ン を 生 成 で き ます。260 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


CLB マルチプレクサのリ ソースRFiMUXもう 1 つのマルチプレ クサは FiMUX と 呼 ばれ、 そのロケーシ ョ ンおよびほかのマルチプレ クサとの 接 続 によ り 、 F6MUX、 F7MUX、 または F8MUX として 機 能 します。F8MUXSLICEL S3F6MUXSLICEL S2F7MUXSLICEM S1F6MUXSLICEM S0CLB図 8-7 : CLB 内 での FiMUX の 位 置各 FiMUX の 入 力 には、 1 つ 前 のマルチプ レ ク サが 接 続 さ れます。 た と えば、 F7MUX は 2 つのF6MUX の 出 力 で 駆 動 さ れます。 FiMUX は F5MUX のよ うに 柔 軟 で、 マルチプレクサ 以 外 のファンクションもインプリ メントできます。 F6MUX の 名 前 は、 6 入 力 のフ ァ ン ク シ ョ ンが 作 成 で き ることを 示 します。 同 様 に、 F7MUX では 7 入 力 のフ ァ ン ク シ ョ ン、 F8MUX では 8 入 力 のフ ァ ン クシ ョ ン を 作 成 で き ます。表 8-1 : マルチプ レ クサの 機 能マルチプレクサ用 途入 力 ソース任 意 のファンクションX466_07_040303フ ァ ン ク シ ョ ンあた りの 入 力 数マルチプレクサF5MUX F5MUX LUT 5 6 (4:1 マルチプレ クサ) 9FiMUX F6MUX F5MUX 6 11 (8:1 マルチプレ クサ) 19F7MUX F6MUX 7 20 (16:1 マルチプレ クサ) 39F8MUX F7MUX 8 37 (32:1 マルチプレ クサ) 79一 部 のファンクション命 名 規 則本 書 および <strong>Spartan</strong>-3 ジェネレーションのデータシートでは、 F6MUX、 F7MUX、 または F8MUXと し て 機 能 する マルチプレ ク サは 通 常 FiMUX (i = 6、 7、 または 8) と 記 述 されています。 これは、<strong>FPGA</strong> Editor で FXMUX と 呼 ばれる、X 出 力 を 生 成 する ス タ テ ィ ッ ク な CLB マルチプレ クサと 区別 する ためです。 <strong>FPGA</strong> Editor では、 FiMUX は 常 に F6MUX のよ うに 記 述 されます。 TimingAanalyzer では、 FiMUX が F7MUX であっても、 F8MUX であっても、 FiMUX を 介 した CLB ピンへのパスは TIF6Y の よ う に 表 示 さ れます。ライブラリ コンポーネントは、MUXF5、 MUXF6、 MUXF7、 および MUXF8 と 呼 ばれます。MUXF6、 MUXF7、および MUXF8 では FiMUX が 使 用 され、 配 置 は CLB の 特 定 の 位 置 に 限 定 されます。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 261<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 8 章 : 専 用 マルチプ レ クサの 使 用専 用 ローカル 配 線専 用 マルチプレ ク サを 使 用 する 大 き な 利 点 は、 専 用 配 線 でレベル 間 が 接 続 さ れる こ と にあ り ます。各 マルチプレ ク サは CLB を 介 し て イ ンプ リ メ ン ト さ れますが、 出 力 は 配 線 遅 延 な し で ローカル インターコネク ト を 介 して 元 の CLB 入 力 に 接 続 さ れます。 これで、マルチプレクサが CLB 内 で 直 列に 接 続 さ れた 状 態 と 同 じ にな り ます。F5MUX は F5 CLB 出 力 ピ ンに 接 続 され、 こ の 出 力 が 同 じ CLB の FiMUX 入 力 (FXINA およびFXINB) に 接 続 されます。 FiMUX は FX CLB 出 力 ピ ンに 接 続 さ れ、 出 力 ピ ンは 同 じ CLB のFiMUX 入 力 に (F7MUX の 場 合 はその 下 の CLB にも) 接 続 さ れます。 ほかの 場 所 でマルチプレ クサの 出 力 が 必 要 な 場 合 は、 汎 用 の CLB 出 力 (F5MUX では X、 FiMUX では Y) に 接 続 されます。FXINBFXINAF8XF5F5FXINBFXINAF6FXF5F5FXINBFXINAF7FXF5F5FXINBFXINAF6FXF5F5X466_08_050505図 8-8 : <strong>Spartan</strong>-3 ジェネレーション CLB のマルチプレ クサおよび 専 用 フ ィ ー ドバッ ク262 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


インプリメンテーションの 例Rマルチプレクサ セレク ト 入 力マルチプレ ク サのセレ ク ト 入 力 は 汎 用 配 線 よ り 供 給 さ れます。 F5MUX のセレ ク ト 入 力 は CLB のBX 入 力 で、 FiMUX のセレ ク ト 入 力 は CLB の BY 入 力 です。FiMUXFXINAFXINBBY10DQFX (FXIN )Y ()YQF[4:1]G[4:1]BXLUTLUTF5MUX10DQF5 (FXIN )X ()XQx466_13_050505図 8-9 : <strong>Spartan</strong>-3 ジェネレーション CLB の 専 用 マルチプ レ クサインプリメンテーションの 例多 入 力 マルチプ レ クサ各 LUT では、 2:1 マルチプレ クサを イ ンプ リ メ ン ト でき ます。 各 スラ イスでは、F5MUX と 2 つのLUT を 使 用 して 4:1 マルチプレ クサを イ ンプ リ メ ン ト でき ます。 図 8-10 に 示 すよ う に、 F6MUXと 2 つのス ラ イ スでは 8:1 マルチプレ クサを イ ンプ リ メ ン ト でき ます。 F7MUX と 任 意 の CLB の 4つのス ラ イ スでは 16:1 マルチプレ クサが、 F8MUX と 2 つの CLB では 32:1 マルチプレ クサを インプ リ メ ン ト できます。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 263<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 8 章 : 専 用 マルチプ レ クサの 使 用DATA[0]DATA[1]LUTF5DATA[7:0]8:1(S2 & S3)DATA[2]DATA[3]LUTS1F716:1 outputDATA[4]DATA[5]LUTF68:1 OutputF5DATA[15:8]8:1(S0 & S1)DATA[6]DATA[7]LUTSELECT[0]SELECT[1]SELECT[2]S0SELECT[2:0]SELECT[3]8:1 MUX 16:1 MUX図 8-10 : 8:1 マルチプレ クサと 16:1 マルチプレクサCLBX466_09_030603264 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


インプリメンテーションの 例R多 入 力 フ ァ ン ク シ ョ ンスライス S0 と S2 には F6MUX があ り、 2 つの F5MUX リ ソ ース の 出 力 が 結 合 さ れます。 図 8-11に、 ス ラ イ ス S0 および S1、 またはスライス S2 および S3 を 使 用 した、 最 大 19 入 力 の 組 み 合 わせファンクションを 示 します。SLICEL OR SLICEMFiMUX4LUTRegF5MUX4LUTRegS_F5S_F64LUTF6MUXRegOUT_F64LUTF5MUXRegS_F5SLICEL OR SLICEM図 8-11 : 2 つのスラ イ ス と F6MUX を 使 用 した 19 入 力 フ ァ ン ク シ ョ ンX466_10_030603<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 265<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 8 章 : 専 用 マルチプ レ クサの 使 用スライス S1 には F7MUX があ り、 2 つの F6MUX の 出 力 が 結 合 さ れます。 図 8-12 に、 <strong>Spartan</strong>-3ジェネレーショ ンの CLB を 使 用 した 最 大 39 入 力 の 組 み 合 わせフ ァ ン ク シ ョ ン を 示 し ます。FiMUXSLICEL S34LUTReg4LUTF5MUXRegS_F5S_F6SLICEL S24LUTF6MUXReg4LUTF5MUXRegS_F5S_F7SLICEM S14LUTF7MUXRegOUT_F4LUTF5MUXRegS_F5S_F64LUTF6MUXSLICEM S0Reg4LUTF6MUXRegS_F5図 8-12 : 1 つの CLB と F7MUX を 使 用 した 39 入 力 フ ァ ン ク シ ョ ンX466_11_030603266 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


インプリメンテーションの 例R各 CLB のスライス S3 には F8MUX があ り ます。 2 つの CLB を 使 用 する と 、 図 8-13 に 示 すよ うに、 最 大 79 入 力 の 組 み 合 わせフ ァ ン ク シ ョ ン を 作 成 で き ます。 2 つの F7MUX の 出 力 は、 同 じ 列の 隣 接 する 2 つの CLB を 接 続 する 専 用 配 線 リ ソ ース を 介 し て 結 合 さ れます。FiMUXSlice S3F6MUXSlice S2F7MUXSlice S1F6MUXSlice S0CLBF8MUXOUT_F8Slice S3F6MUXSlice S2F7MUXSlice S1F6MUXSlice S0CLBX466_12_060606図 8-13 : 2 つの 隣 接 する CLB と F8MUX を 使 用 した 79 入 力 フ ァ ン ク シ ョ ン<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 267<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 8 章 : 専 用 マルチプ レ クサの 使 用タイミング パラ メータCLB のマルチプレ クサを 介 するパスにはい くつかの 種 類 があ り ます。 2 つのタ イプのマルチプレ クサ (F5MUX と FiMUX) は、 別 々に 考 え ます。 それぞれに、 データ 入 力 と セレ ク ト ラインの 2 つのタイプの 入 力 があります。 マルチプレ クサの 出 力 によ り、 F5 および FX CLB ピンを 介 してローカル インターコネク トが、X および Y CLB ピ ン を 介 し て 汎 用 イ ン ターコ ネ ク ト が、 またはフ リ ッ プフロップの D 入 力 が 駆 動 さ れます。 263 ページの 図 8-9 のブロ ッ ク 図 に、<strong>Spartan</strong>-3 ジェネレーション CLB の 専 用 マルチプレ ク サを 示 し ます。 マルチプレ クサ 機 能 は メ モ リ があ る ス ラ イ ス と メ モ リがないス ラ イ ス 間 で 同 一 ですが、 タ イ ミ ング 値 は 異 な る 可 能 性 があ り ます。マルチプレ クサは CLB 内 で 直 列 に 接 続 されていますが、 各 マルチプレ クサは CLB 出 力 ピ ンに 接 続さ れ、 出 力 ピ ンの 値 は 遅 延 のない ローカル イ ン ターコ ネ ク ト を 介 し て 入 力 ピ ンにフ ィ ー ド バ ッ ク されます。 つま り 、 レ ポー ト さ れた 各 ブ ロ ッ ク 遅 延 エレ メ ン ト には、 入 力 か ら 出 力 にマルチプレ ク サが 1 つだけ 含 まれます。 <strong>Spartan</strong>-3 ジェネレーショ ンのアーキテクチャは、F5MUX または FiMUXから CLB 内 のフ リ ッ プフ ロ ッ プへの 直 接 パス を 追 加 する こ と に よ り 、Virtex ® -II アーキテクチャを改 良 し た も の と なっ ています。表 8-2 : マルチプ レ クサのタ イ ミ ング パスシンボル CLB 入 力 通 過 CLB 出 力t IF5 F/G LUT 入 力 LUT および F5MUX 入 力 F5t IF5X F/G LUT 入 力 LUT および F5MUX 入 力 Xt IF5CK F/G LUT 入 力 LUT および F5MUX 入 力 フリ ップフロップの D 入 力t BXF5 BX F5MUX セレク ト F5t BXX BX F5MUX セレク ト Xt INAFX FXINA FiMUX 入 力 FXt INBFX FXINB FiMUX 入 力 FXt IF6Y FXINA または FXINB FiMUX 入 力 Yt BYFX BY FiMUX セレク ト FXt BYY BY FiMUX セレク ト Y極 性 のプ ログラム<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> のほと んどの リ ソース 同 様 、 大 型 のマルチプレ クサにはインバータが 含 まれます。 LUT のフ ァ ン ク シ ョ ンでは、 パフ ォーマン スや 使 用 状 況 に 影 響 を 及 ぼ さ ずにイ ンバータ を 入 力 ま たは 出 力 に 追 加 で き ます。 F5MUX および FiMUX への 制 御 入 力 BX と BY の極 性 は、 CLB 内 でプロ グ ラ ム 可 能 です。268 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


その 他 のマルチプ レ クサの 用 途Rマルチプレクサのフロアプラン多 入 力 マルチプレ ク サでは、 組 み 合 わ される LUT の 配 置 が 特 定 のものにな り ます。 F5MUX ではLUT が 常 に 同 じ ス ラ イ ス に 存 在 する 必 要 があ り 、 多 入 力 マルチプレ ク サでは LUT が 上 下 のス ラ イスに 存 在 する 必 要 があ り ます。 こ の 垂 直 方 向 の 配 置 は、 演 算 ロ ジ ッ ク と 同 様 です。多 入 力 マルチプレ ク サは、 演 算 ロ ジ ッ ク と 併 用 で き ません。 こ れは、 演 算 ロ ジ ッ ク の XOR ゲー トと F5MUX の 出 力 がマルチプレ ク サで 統 合 さ れ る か ら です。 ま た、 分 散 RAM の 32X1 コンフィギュレーションでは 5 番 目 のア ド レ ス 入 力 に F5MUX が 使 用 されます。その 他 のマルチプ レ クサの 用 途マルチプレクサと ト ラ イステー ト バッファLUT とマルチプレクサ リ ソースでは、 内 部 バスの よ う な 配 線 を 使 用 し、 複 数 の 入 力 信 号 が 1 つの内 部 配 線 に 多 重 化 さ れます。 これは、その 他 の <strong>FPGA</strong> アーキテ ク チ ャ で 使 用 さ れる BUFT ベースのマルチプレ クサと 同 じです。 最 新 の <strong>FPGA</strong> ファ ミ リのほとんどで、 これらのトライステート バッファ (BUFT) が 実 際 には 専 用 ロ ジ ッ ク ゲー ト と し て イ ンプ リ メ ン ト されるので、 複 数 が 同 時 にイネーブルになることにより 競 合 が 発 生 することはありません。 <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong>では、 このよ う な ト ラ イ ステー ト バッファ ゲー ト のオーバーヘッ ド を 省 く こ と で、 ダイ サイズの縮 小 と コ ス ト 削 減 を 実 現 し ています。 ただ し、 <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> でトライステート バッファとして 定 義 される 内 部 ファンクションは、LUT および 専 用 マルチプレ ク サに イ ンプ リメ ン ト さ れる 必 要 があ り ます。CLB マルチプレクサではセレク ト ラインがバイナリ エンコード されるので、 BUFT ベースのマルチプレ クサのワンホ ッ ト エン コー ド よ り も 必 要 な 信 号 が 少 な く て 済 みます。 BUFT ベースのマルチプレクサと 異 なり、 CLB ベースのマルチプレ ク サには、 幅 や 配 置 に 関 する 制 限 があ り ません。BUFT コンポーネントはト ライステート バッファですが、<strong>Spartan</strong>-3 ジェネレーショ ン ライブラリでは、IOB の 出 力 フ ァ ン ク シ ョ ン 以 外 では 使 用 さ れていません。 CLB では、BUFT ベースのマルチプレクサ (および 同 等 の BUFE ベースのマルチプレ ク サ) の CORE Generator ファンクションがマルチプレ クサと してイ ンプ リ メ ン ト されます。マルチプ レ クサの 代 わ り に メ モ リ を 使 用デザ イ ン を 最 適 化 する ため、マルチプレ ク サの 代 わ り に メ モ リ を 使 用 で き ます。 4:1 マルチプレ クサには 2 つの LUT と 1 つの F5MUX が 必 要 ですが、 入 力 がス タ テ ィ ッ ク であ る 場 合 は、 4 ビッ ト のメ モ リ で 同 じ 機 能 を イ ンプ リ メ ン ト で き、1 つの LUT よ りも 小 さいエリアにフィットします。LUTは、 LUT の 入 力 をセレ ク ト ラインとして 使 用 する 16:1 マルチプレ クサと 考 える こ と ができ ます。マルチプレ ク サの 入 力 がス タ テ ィ ッ ク であ る 場 合 は、 メ モ リ を 使 用 する と 、 内 蔵 のア ド レ ス デコードをマルチプレクサ ロ ジ ッ ク と し て 使 用 する こ と で、 リ ソ ース を 節 約 で き ます。 32X1 分 散 RAMでは F5MUX が 5 番 目 のア ド レ ス 入 力 と し て 使 用 さ れます。 詳 細 は、 第 6 章 「 分 散 RAM としてのルックアップ テーブルの 使 用 」 を 参 照 して く ださい。4:1 マルチプレ ク サの 入 力 が 変 化 する 場 合 も、 4 入 力 の 1 つを 選 択 する よ う に LUT RAM をプログラムし 直 すと、1 つの ロ ジ ッ ク レベルで 作 成 で き ます。 これは、SRL16 モー ド を 使 用 し て 16 クロック サイクルでデータを RAM に 書 き 込 むと 簡 単 に 実 行 でき ます。 詳 細 は、 第 7 章 「ルックアップテーブルのシフ ト レジスタ (SRL16) と し ての 使 用 」 を 参 照 して く ださい。こ の よ う に 工 夫 する と、 リ ソース を 大 幅 に 節 約 で き ます。 詳 細 は、 ホ ワ イ ト ペーパー WP273 :『Performance + Time = Memory (Cost Saving with 3-D Design)』 を 参 照 し て く だ さ い。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 269<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 8 章 : 専 用 マルチプ レ クサの 使 用その 他 のマルチプレ クサCLB には、 ロジ ッ ク リ ソースを 介 して 信 号 を 配 線 するためのマルチプレ クサも 含 まれています。キ ャ リ ー 信 号 の 伝 搬 に 使 用 する CYMUX は、 その 他 の 唯 一 のダ イ ナ ミ ッ ク マルチプレ クサです。複 数 のパスか ら 1 つを 選 択 するマルチプレ クサはい くつかあ り ます。 その う ちの 1 つは <strong>FPGA</strong>Editor では FXMUX と 呼 ばれ、F LUT 信 号 を X CLB 出 力 に 配 線 し ます。 このスタティ ックなマルチプレ クサは、 FiMUX で 使 用 される FXMUX とは 異 なります。ク ロ ッ ク 信 号 を 多 重 化 する 場 合 は、 出 力 ク ロ ッ ク で 問 題 が 発 生 し ない よ う に 必 ず BUFGMUX を 使用 します。 また、I/O 内 で DDR インターフェイスをサポートするマルチプレクサもあります。 DDRマルチプレ クサでは、 2 つの 信 号 が 交 互 に IOB に 入 力 されます。 その 他 のマルチプレ ク サの 機 能 については、 <strong>Spartan</strong>-3 ジェネレーショ ンのデータシート を 参 照 して く ださい。マルチプ レ クサを 使 用 し た 設 計デザイ ンでマルチプレ ク サを 使 用 する 方 法 はい く つかあ り ます。 最 も よ く 使 用 さ れる のは、 合 成ツールで 推 論 さ せる 方 法 です。 また、 ライブラ リ プ リ ミ テ ィ ブを 使 用 する と 特 定 のマルチプレ ク サをインスタンシエートできます。 本 書 では、 ラ イ ブ ラ リ プリ ミティブを 大 型 のマルチプレクサに 組み 込 む HDL サブモジュールが 提 供 されています。 CORE Generator にはバス マルチプレ クサおよびビッ ト マルチプレ クサ ファンクションが 含 まれており、 その 他 のコア ソリューションの 多 くでも 専 用 マルチプレクサが 使 用 されています。推 論マルチプレ ク サは 通 常 、case 文 または if-then-else 文 などの 条 件 文 で 推 論 さ れます。 if 文 からは 通 常プライオリティ エンコード ロジックが 生 成 されます。 case 文 か ら は 多 く の 場 合 、 最 適 化 さ れたマルチプレ ク サが 生 成 さ れます。合 成 オプシ ョ ン を 使 用 する と 、 マルチプレ ク サを 推 論 さ せる かど う か、 およびどの よ う に イ ンプ リメントするかを 指 定 できます。 XST では、 MUX_EXTRACT 制 約 でマルチプレ ク サを 推 論 する かどうか、MUX_STYLE 制 約 で 専 用 ロ ジ ッ ク マルチプレ クサ と キ ャ リ ー マルチプレ クサ(CY_MUX) のど ち ら で イ ンプ リ メ ン ト する かを 指 定 し ます。 デフ ォル ト では、 最 適 な リ ソースが 自動 的 に 推 論 さ れます。case 文 はフルに (すべての 分 岐 を 定 義 ) し て、 ラ ッ チが 作 成 さ れない よ う に し ます。 分 岐 を 定 義 し ない と、 現 在 の 値 が 保 持 されます ( メモリが 必 要 )。 また、パラレルにして ( 分 岐 条 件 を 排 他 的 に 定 義)、 プライオリティ エン コーダが 使 用 さ れない よ う に も し て く だ さ い。 XST のよ うな 合 成 ツールの場 合 、 その よ う に 記 述 さ れていな く て も、 case 文 を フルおよびパ ラ レル と し て 推 論 さ れる よ う にする オプシ ョ ンがあ り ます。 「When Others」 (VHDL) や 「Default」 (Verilog) の よ う な 分 岐 条 件 を 記述 し、 定 義 されていない 入 力 によってラ ッチが 生 成 されないよ うにするこ とをお 勧 めします。case 文 では 1 つの 共 通 する 条 件 文 に 対 し て 評 価 さ れますが、if 文 には 複 数 の 条 件 を 含 める こ と ができます。 通 常 、 複 雑 なデコー ド には case 文 を、 速 度 が 重 要 なパスには if 文 を 使 用 し ます。最 新 の 合 成 ツールでは、if-elsif 条 件 が 相 互 排 他 的 であ る かを 確 認 で き、プ ラ イ オ リ テ ィ ツ リーを 構築 する 追 加 ロ ジ ッ ク は 生 成 さ れません。 次 に if 文 を 記 述 する 際 の 注 意 点 を 示 し ます。• 全 出 力 が if 文 のすべての 分 岐 で 定 義 さ れてい る こ と を 確 認 し て く だ さ い。 定 義 されていない 場合 、 CE 信 号 上 に ラ ッ チが 生 成 さ れる か、 長 い 論 理 式 が 生 成 さ れます。 if 文 の 前 に 全 出 力 のデフ ォル ト 値 を 記 述 する と 、 こ の よ う な 問 題 を 回 避 で き ます。• 1 つの if 文 に 含 め る 入 力 信 号 数 を 制 限 する と 、 ロ ジ ッ ク レベル 数 を 削 減 できます。 入 力 信 号 数が 多 い 場 合 、 if 文 の 前 に 一 部 の 信 号 をデコー ド し てレ ジ ス タ に 保 持 する こ と が 可 能 であ る かを確 認 し て く だ さ い。270 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


マルチプ レ クサを 使 用 し た 設 計R• データ フ ローを 複 雑 な if 文 に 含 めないよ う にし て く だ さい。 複 雑 な if-else 文 では、 制 御 信 号 のみが 生 成 さ れる よ う に し ます。合 成 ツールで BUFT ベースのマルチプレ ク サが 推 論 さ れる よ う な コー ド は 記 述 し ないで く だ さ い。通 常 BUFT ベース のマルチプレ ク サには Z 値 を 含 む 文 が 必 要 です。 一 部 の 合 成 ツールでは、 自 動 的にまたはオプシ ョ ンで BUFT ロジックがマルチプレクサに 変 換 されます。デコーダは、 入 力 がワ ンホ ッ ト 値 に 固 定 さ れてい る 場 合 のマルチプレ ク サです。 最 大 4:16 のデコーダを、 専 用 マルチプレ クサを 使 用 せずに、 各 出 力 に 個 別 の LUT を 使 用 して 容 易 にインプ リ メ ン トできます。また、キャ リー マルチプレ ク サを 使 用 し てパフ ォーマン ス を 向 上 させる こ と も で き ます。Verilog および VHDL コードで case 文 を 使 用 し て 記 述 さ れた 2:1 マルチプレ クサの 例 を 次 に 示 します。Verilog 記 述 ( 推 論 )module MUX_2_1 (DATA_I, SELECT_I, DATA_O);input [1:0]DATA_I;input SELECT_I;output DATA_O;reg DATA_O;always @ (DATA_I or SELECT_I)case (SELECT_I)1'b0 : DATA_O DATA_O DATA_O DATA_O


R第 8 章 : 専 用 マルチプ レ クサの 使 用ライブラリ プリミティブ各 ス ラ イ ス の 専 用 MUXFX を 使 用 する ラ イ ブラ リ プリミティブには、MUXF5、MUXF6、MUXF7、およ び MUXF8 の 4 つがあり ま す。 これらでは、F5MUX およ び FiMUX CLB リ ソ ース が 使 用 さ れます (261 ページの 「 命 名 規 則 」 参 照 )。 マルチプレク サ プリ ミ ティ ブの 入 出 力 の 構 成 はど れも 同 一ですが ( 図 8-14 参 照 )、 表 8-5 に 示 すよ う に、 使 用 する マルチプレ ク サによ っ て CLB 内 での 位 置 が異 なり ま す。I0I1SOx466_14_040303表 8-3 : マルチプ レ クサの 入 力 および 出 力図 8-14 : MUXF5 プリミティブ信 号機 能I0I1SLOOS が Low の 時 に 選 択 される 入 力S が High の 時 に 選 択 される 入 力セレク ト 入 力F5 または FX CLB ピ ンに 接 続 する ローカル 出 力 。ローカル フ ィ ー ド バ ッ ク を 使 用 して FiMUX の FXIN 入 力 に 接 続 され、 カスケード 接 続 されます (273 ページの 「ローカル 出 力 の タ イ ミ ング」 参 照 )CLB の 汎 用 組 み 合 わせ 出 力 ま たはレ ジ ス タ 付 き 出 力 に 接 続 さ れる 一 般 出 力表 8-4 : マルチプ レ クサの 機 能入 力出 力S I0 I1 O LO0 1 X 1 10 0 X 0 01 X 1 1 11 X 0 0 0表 8-5 : マルチプレ クサのリ ソースプ リ ミ テ ィ ブ ス ラ イ ス 物 理 ロケーシ ョ ン 制 御 入 力 出 力MUXF5 S0、 S1、 S2、 S3 F5MUX S I0、 I1 OMUXF6 S0、 S2 FiMUX S I0、 I1 OMUXF7 S1 FiMUX S I0、 I1 OMUXF8 S3 FiMUX S I0、 I1 O272 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


マルチプ レ クサを 使 用 し た 設 計R一 般 的 なマルチプレ ク サの コ ンポーネン ト で も、 専 用 マルチプレ ク サを 使 用 で き ます。 M2_1 回 路図 ライブラ リ コンポーネントは LUT にインプリ メン ト され、 ライブラ リのそれよ り 大 型 のマルチプレクサでは F5MUX および FiMUX コ ンポーネン ト が 使 用 さ れます。マルチプ レ クサのイネーブル 信 号マルチプレ クサのイ ネーブル 信 号 を 使 用 する と、 マルチプレ クサ 出 力 がデ ィ スエーブルの 場 合 にLow に 保 持 でき ます。 専 用 マルチプレ ク サにはイ ネーブル 信 号 はあ り ませんが、LUT にインプリ メントされる 前 の 2:1 マルチプレクサを 使 用 してイネーブルをインプリ メントできます。 M4_1E および M8_1E 回 路 図 ラ イ ブ ラ リ コンポーネントは、 それぞれ F5MUX および F6MUX を 最 終 的 な出 力 と し て こ の よ う に 構 築 さ れてお り 、M16_1E 回 路 図 ラ イ ブ ラ リ コ ンポーネン ト ではイネーブルを 最 後 のマルチプレ クサに 保 持 し、 F7MUX ではな く LUT に 出 力 されます。 図 8-15 に M4_1E 回路 図 ラ イ ブ ラ リ コンポーネント ロジックを 示 します。D0D1D2D3S0ES1M2_1ED0OD1S0MUXF5E M01 M01 I0OM23 I1M2_1E0D0SOD1S0E M23図 8-15 : M4_1E ライブラリ コンポーネント ロジックOx466_15_040303ローカル 出 力 のタ イ ミ ング各 ライブラ リ コンポーネントには 2 つの 代 替 バージ ョ ンがあ り 、 フ ァ ン ク シ ョ ンは 同 一 ですが、 インプ リ メ ンテーシ ョ ン 前 にタ イ ミ ングを よ り 正 確 に 予 測 でき ます。 前 述 の と お り 、 マルチプレ ク サでは 1 つまたは 2 つの CLB 出 力 を 駆 動 で き ます。 最 初 の 出 力 は、 ローカル インターコネク トを 使用 し て、 接 続 された 次 のマルチプレ ク サのローカル 出 力 に 接 続 されます。 2 つ 目 の 出 力 は 汎 用 のCLB 出 力 にな り 、ほかのロジッ クに 接 続 でき る よ う になっています。 イ ンプ リ メ ンテーシ ョ ン 前 のタ イ ミ ングを 正 確 に 予 測 する ため、 ローカル 出 力 タ イ ミ ング または 汎 用 出 力 タ イ ミ ングのいずれを使 用 する かを 指 定 する 特 別 なプ リ ミ テ ィ ブを 代 わ り に 使 用 で き ます。 MUXF5_L プリ ミティブにはローカル 出 力 が 含 まれ、MUXF5_D プ リ ミ テ ィ ブには 両 方 の 出 力 が 含 まれます ( 図 8-16 参 照 )。 ファンクションは、 MUXF5 プリ ミティブと 同 一 です。I0I1SLOI0I1SLOOx466_16_040303図 8-16 : ローカル 出 力 タ イ ミ ングのモデルと なる MUXF5_L および MUXF5_D プリミティブ<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 273<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 8 章 : 専 用 マルチプ レ クサの 使 用サブモジュールプリ ミティブに 加 え、2:1 ~ 32:1 のマルチプレ クサをインプ リ メ ン ト する 5 つのサブモジュールが、 VHDL コードおよび Verilog コー ド で 提 供 さ れています。 合 成 ツールでは、 上 記 のプ リ ミ テ ィブ (MUXF5、 MUXF6、 MUXF7、および MUXF8) が 自 動 的 に 推 論 さ れますが、 こ こ で 説 明 する サブモジ ュールでは、 最 適 な 結 果 が 得 ら れる よ う にマルチプレ ク サが イ ン ス タ ンシエー ト さ れます。表 8-6 に 使 用 可 能 なサブモジ ュールを 示 し ます。• xapp466_vhdl.zip• xapp466_verilog.zip表 8-6 : 使 用 可 能 なサブモジ ュールサブモジ ュール マルチプ レ クサ 制 御 入 力 出 力MUX_2_1_SUBM 2:1 SELECT_I DATA_I[1:0] DATA_OMUX_4_1_SUBM 4:1 SELECT_I[1:0] DATA_I[3:0] DATA_OMUX_8_1_SUBM 8:1 SELECT_I[2:0] DATA_I[7:0] DATA_OMUX_16_1_SUBM 16:1 SELECT_I[3:0] DATA_I[15:0] DATA_OMUX_32_1_SUBM 32:1 SELECT_I[4:0] DATA_I[31:0] DATA_Oポー ト 信 号データ 入 力 - DATA_Iデータ 入 力 は、 マルチプレ ク サに 入 力 データ を 供 給 する ピ ンです。 SELECT_I 信 号 に よ り 1 つのデータ 入 力 が 選 択 さ れ、 出 力 さ れます。セレク ト 入 力 - SELECT_Iセレ ク ト 入 力 信 号 (バス) によ り、 DATA_O に 出 力 する DATA_I 信 号 を 決 定 し ます。 たとえば、MUX_4_1_SUBM マルチプレ クサには、2 ビットの SELECT_I バス と 4 ビッ トの DATA_I バスがあります。 表 8-7 に、 各 SELECT_I の 値 に 対 し て 選 択 される DATA_I を 示 し ます。表 8-7 : 選 択 さ れる 入 力SELECT_I[1:0]DATA_O0 0 DATA_I[0]0 1 DATA_I[1]1 0 DATA_I[2]1 1 DATA_I[3]データ 出 力 - DATA_Oデータ 出 力 O には、 セレ ク ト 入 力 で 選 択 さ れたデータ 値 (1 ビッ ト) が 送 信 されます。274 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


マルチプ レ クサを 使 用 し た 設 計Rアプリケーショ ンマルチプレ ク サは、 さ ま ざま なアプリ ケ ーショ ン で 使 用 さ れま す。 こ れら は、 次 のコ ード 例 のよ うに case 文 を 使 用 する と 、 合 成 ツ ールで 推 論 さ れま す。 コ ン パレ ータ 、 エン コ ーダ/デコ ーダ、 多 入 力組 み 合 わせ 回 路 など のフ ァ ン ク ショ ン は、<strong>Spartan</strong>-3 ジェネレーショ ン CLB の 1 レベルの LUT および 専 用 マルチプレ ク サ リ ソ ース を 基 に 作 成 さ れま す。VHDL/Verilog インスタンシエーションプリ ミティブ (MUXF5、MUXF6 など) を VHDL または Verilog コードでインスタンシエートすると 、 多 入 力 フ ァ ン ク シ ョ ン を 設 計 で き ます。サブモジュール (MUX_2_1_SUBM、 MUX_4_1_SUBM など) を VHDL または Verilog コードにインスタンシエートすると、 マルチプレクサをインプリ メントできます。 ただ し、 対 応 するサブモジュールを 階 層 サブモジ ュール と し てデザイ ン デ ィ レ ク ト リ に 追 加 する 必 要 があ り ます。 たとえば、 モジ ュールで MUX_16_1_SUBM を 使 用 する 場 合 、 MUX_16_1_SUBM.vhd ファイル (VHDLコード) または MUX_16_1_SUBM.v ファイル (Verilog コード) をデザインのソース コード と 共 にコンパイルします。 サブモジュール コードを 切 り 取 って、デザインのソース コードに 貼 り 付 けることもできます。VHDL および Verilog のサブモジ ュールVHDL および Verilog のサブモジュールでは、 最 大 32:1 のマルチプレ クサを インプ リ メ ン ト できます。これらのサブモジュールは、マルチプレクサのリ ソースを 使 用 したデザイン 方 法 を 示 します。対 応 する マルチプレ ク サの リ ソ ースが 合 成 で 推 論 さ れる 場 合 、 VHDL または Verilog コードはビヘイビア コード (case 文 ) です。 それ 以 外 の 場 合 、 対 応 する case 文 はコ メ ン ト になってお り 、 正 し いマルチプレ クサ リ ソースが イ ン ス タ ンシエー ト さ れますが、 合 成 ツールのほ と んどですべてのマルチプレ ク サを 推 論 で き ます。 次 の 例 は、 ほかの 多 入 力 フ ァ ン ク シ ョ ンをデザイ ンする ためのガ イ ドラ イ ン と し て 使 用 で き ます。使 用 可 能 なサブモジ ュールは 次 の と お り です。• MUX_2_1_SUBM (ビヘイビア コード)• MUX_4_1_SUBM• MUX_8_1_SUBM• MUX_16_1_SUBM• MUX_32_1_SUBM対 応 する サブモジ ュールは、 デザ イ ン と 共 に 合 成 する 必 要 があ り ます。次 に、 サブモジ ュール MUX_16_1_SUBM の VHDL および Verilog の 例 を 示 し ます。VHDL テンプレート-- Module: MUX_16_1_SUBM-- Description: Multiplexer 16:1---- Device: <strong>Spartan</strong>-3 Family---------------------------------------------------------------------library IEEE;use IEEE.std_logic_1164.all;library UNISIM;use UNISIM.VCOMPONENTS.ALL;<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 275<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 8 章 : 専 用 マルチプ レ クサの 使 用entity MUX_16_1_SUBM isport (DATA_I: in std_logic_vector (15 downto 0);SELECT_I: in std_logic_vector (3 downto 0);DATA_O: out std_logic);end MUX_16_1_SUBM;architecture MUX_16_1_SUBM_arch of MUX_16_1_SUBM is-- Component Declarations:component MUXF7port (I0: in std_logic;I1: in std_logic;S: in std_logic;O: out std_logic);end component;---- Signal Declarations:signal DATA_MSB : std_logic;signal DATA_LSB : std_logic;--begin---- If synthesis tools support MUXF7 :--SELECT_PROCESS: process (SELECT_I, DATA_I)--begin--case SELECT_I is-- when "0000" => DATA_O DATA_O DATA_O DATA_O DATA_O DATA_O DATA_O DATA_O DATA_O DATA_O DATA_O DATA_O DATA_O DATA_O DATA_O DATA_O DATA_O DATA_LSB DATA_LSB DATA_LSB DATA_LSB DATA_LSB


マルチプ レ クサを 使 用 し た 設 計Rwhen "101" => DATA_LSB DATA_LSB DATA_LSB DATA_LSB DATA_MSB DATA_MSB DATA_MSB DATA_MSB DATA_MSB DATA_MSB DATA_MSB DATA_MSB DATA_MSB DATA_LSB,I1 => DATA_MSB,S => SELECT_I (3),O => DATA_O);--end MUX_16_1_SUBM_arch;--Verilog テンプレート// Module: MUX_16_1_SUBM//// Description: Multiplexer 16:1// Device: <strong>Spartan</strong>-3 Family//-------------------------------------------------------------------//module MUX_16_1_SUBM (DATA_I, SELECT_I, DATA_O);input [15:0]DATA_I;input [3:0]SELECT_I;output DATA_O;wire [2:0]SELECT;reg DATA_LSB;reg DATA_MSB;assign SELECT[2:0] = SELECT_I[2:0];/*//If synthesis tools support MUXF7 :always @ (DATA_I or SELECT_I)<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 277<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 8 章 : 専 用 マルチプ レ クサの 使 用case (SELECT_I)4'b0000 : DATA_O


マルチプ レ クサを 使 用 し た 設 計RCORE GeneratorCORE Generator は、 ビ ッ ト マルチプレ クサおよびバス マルチプレ クサの 基 本 的 なロジ ッ ク ファン ク シ ョ ン を 提 供 し ます。 図 8-17 に 示 すビ ッ ト マルチプレ クサでは、 最 大 256 入 力 がサポー ト されます。 図 8-18 に 示 すバス マルチプレ クサでは、 最 大 256 ビッ トのバスに 最 大 32 入 力 のマルチプレクサがサポートされます。 これらのコア ソリューションには Mux Type というパラメータがあり、 BUFT ベースか LUT ベース のいずれかのマルチプレ ク サを 選 択 で き ます。 CORE Generatorで、マルチプレ ク サの 構 成 に 適 切 な 比 率 のボ タ ン を 選 択 し ます。 デフォル ト は <strong>Spartan</strong>-3 ジェネレーション マルチプレ クサで 必 要 な LUT ベースです。 CORE Generator では、 オプシ ョ ンでマルチプレ ク サの 出 力 にレ ジ ス タ を 付 け る こ と も で き ます。ASETSSETM[N:0]O•DQCES[M:0]CLKACLRSCLRx465_17_041003図 8-17 : ビット マルチプレクサ コアのシンボル•MCH[N:0]O[N:0]ASETD[N:0]SSETQ[N:0]MA[N:0]S[M:0]CECLKACLR SCLR AINIT SINIT図 8-18 : バス マルチプレクサ コアのシンボルX466_18_060506<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 279<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 8 章 : 専 用 マルチプ レ クサの 使 用CORE Generator では、BUFT ベースのマルチプレ ク サ (および BUFE ベースのマルチプレ ク サ) の特 定 のフ ァ ン ク シ ョ ン も 使 用 で き ます。 一 般 的 なビ ッ ト 及 びバス マルチプレ クサ 同 様 、 これら もLUT やマルチプレ クサでイ ンプ リ メ ン ト されます。関 連 資 料こ の 章 の 補 足 情 報 は、 次 の 資 料 を 参 照 し て く だ さ い。ホワイ ト ペーパー WP274 : 『Multiplexer Selection』このホワイ ト ペーパーでは、 ザ イ リ ン ク ス <strong>FPGA</strong> デバイ スにマルチプレ クサを イ ンプ リ メ ン ト する さ ま ざ ま な 方 法 を 説 明 し ます。 よ り 効 率 的 で 低 コ ス ト の イ ンプ リ メ ンテーシ ョ ン を 実 現 する ための 手 法 も 含 まれます。まとめ<strong>Spartan</strong>-3 ジェネレーショ ン アーキテ ク チャ の 専 用 マルチプレ ク サに よ り 、4 入 力 LUT よ りも 入 力数 の 多 いフ ァ ン ク シ ョ ンを 作 成 でき ます。 これらのマルチプレクサはソフ ト ウェアで 自 動 的 に 使 用さ れますが、 注 意 し て コー ド を 記 述 する こ と で、 必 要 な リ ソ ース を 最 小 限 に 抑 え、 デザ イ ンのパフォーマンスを 向 上 させることができます。280 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 9 章キャ リ ー ロ ジッ ク およ び 演 算 ロ ジッ ク の使 用概 要専 用 キャ リ ー ロ ジッ ク およ び 演 算 ロ ジッ ク を 使 用 する と 、<strong>Spartan</strong> ® -3 ジェネレーショ ン <strong>FPGA</strong> の 加算 器 、 カウ ン タ 、 コ ンパレ ータ 、 乗 算 器 、 多 入 力 ロ ジッ ク ゲート 、 およ び 関 連 する フ ァ ン ク ショ ンのパフォ ーマンス が 向 上 し ま す。 キャリ ー ロジックは、 汎 用 ロジック リ ソ ース から 独 立 し た 専 用ゲート 、 マルチプレ ク サ、 およ び 配 線 で 構 成 さ れ、 集 積 度 と パフ ォ ーマン ス の 両 方 を 向 上 さ せま す。キャリ ー ロ ジッ ク はデザイ ン でプリ ミ ティ ブを 使 用 し て 明 示 的 に 呼 び 出 すか、 ラ イ ブラ リ ま たはユーザー 定 義 のマク ロ でイ ン プリ メ ン ト する か、 合 成 ツ ールで 推 論 さ れま す。 演 算 コ ンポーネント ではほと んど の 場 合 、 キャ リ ー ロ ジッ ク が 自 動 的 に 使 用 さ れま す。 この 章 では、キャリ ー ロジックのリ ソ ース およ び <strong>Spartan</strong>-3 ジェネレーショ ン <strong>FPGA</strong> デザイ ン で 効 率 よ く 使 用 する 方 法 を 説 明 し ま す。はじめに<strong>FPGA</strong> の 基 本 的 な 構 築 ブ ロ ッ ク は LUT です。 演 算 フ ァ ン ク シ ョ ンは LUT でインプリ メン トできますが、 各 入 力 に 対 し て 和 と キ ャ リ ーの 生 成 が 必 要 なため、 LUT および 配 線 リ ソ ース を 使 い 切 っ て しまう 可 能 性 があります。 演 算 フ ァ ン ク シ ョ ンは 頻 繁 に 使 用 さ れる ため、 専 用 の イ ンプ リ メ ンテーション リソースが 確 保 されています。 演 算 ロ ジ ッ ク を 使 用 する と LUT を 使 用 せずに 和 を 生 成 でき、 CLB のスライス 間 および CLB 間 のキ ャ リ ー 信 号 を カ ス ケー ド 接 続 する には 専 用 配 線 リ ソ ースであるキャ リー ロジックを 使 用 できます。 キャリー チェーンでは、 各 CLB ス ラ イ スの 列 が 下 から上 にカ スケード 接 続 されます。演 算 ロ ジ ッ ク は、 1 レベルの 和 を 完 了 させる XOR コンポーネント、 乗 算 用 の AND ゲー ト 、 および 信 号 フ ローを 制 御 する マルチプレ ク サで 構 成 さ れています。 これらのゲートは LUT と 連 動 して動 作 し、 通 常 ス ラ イ ス 当 た り 2 ビ ッ ト で、 カ ウ ン タや 乗 算 器 など 効 率 の 良 い 演 算 フ ァ ン ク シ ョ ン をインプリ メントします。 各 CLB には、 4 ビッ トのキャリー チェーンが 2 つあ り ます。 これらのリソ ース を 使 用 し て 演 算 フ ァ ン ク シ ョ ンのパフ ォーマン ス を 向 上 し た り 、LUT をカスケード 接 続 して多 入 力 ロ ジ ッ ク フ ァ ン ク シ ョ ン を 構 成 で き ます。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> 間 のキャ リ ー ロジックおよび 演 算 ロジックの 違 いキャリー ロジッ クおよび 演 算 ロジッ クはすべての <strong>Spartan</strong>-3 ジェネレーショ ン <strong>FPGA</strong> の 同 一 ですが、 パフ ォーマン スはプ ロ セスや 特 性 化 の 多 少 の 違 いに よ り わずかに 異 な り ます。 <strong>Spartan</strong>-3E および <strong>Spartan</strong>-3A/3AN/3A DSP <strong>FPGA</strong> では、ほ と んどの DCM が CLB アレイに 内 蔵 されているため、DCM が 含 まれる CLB 列 のキ ャ リ ー チェーンの 最 大 長 が 制 限 さ れます。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 281<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 9 章 : キャリー ロジ ッ ク および 演 算 ロジ ッ クの 使 用ルックアヘッ ド キャリー 加 算<strong>Spartan</strong>-3 ジェネレーショ ンのキャ リー ロジックの 基 本 的 なリソースを 理 解 するには、ルックアヘッ ド キ ャ リ ー 加 算 の 基 本 を 理 解 する こ と が 重 要 です。 2 つの 桁 の 通 常 の 加 算 では、 表 9-1 に 示 すように、XOR ゲー ト を 使 用 し て 和 が 生 成 さ れ、 AND ゲー ト を 使 用 し てキ ャ リ ーが 生 成 さ れます。表 9-1 : 2 進 加 算AB和(A XOR B)キャリー 出 力(A AND B)0 0 0 00 1 1 01 0 1 01 1 0 1こ の ロ ジ ッ ク は 半 加 算 器 と 呼 ばれ、 キ ャ リ ー 入 力 を 含 みません。 キ ャ リ ー 入 力 を 使 用 する には、 半加 算 器 を も う 1 つ 使 用 し て 最 初 の 和 と キ ャ リ ー 入 力 を 加 算 し、 いずれかの 半 加 算 器 でキ ャ リ ーが 生成 されている 場 合 に、 OR ゲー ト を 使 用 し て 最 終 的 なキ ャ リ ー 出 力 を 生 成 し ます。 図 9-1 に 全 加 算器 を 示 し ます。BAHalf AdderHalf AdderSumCarry OutCarry In<strong>UG331</strong>_c11_01_072906図 9-1 : 全 加 算 器このロジックは、 それぞれ 和 とキャ リーを 生 成 する 入 力 が 3 つある LUT 2 つで 容 易 にイ ンプ リ メントできます。 こ の イ ンプ リ メ ンテーシ ョ ンでの 問 題 は、 各 入 力 ビ ッ ト に LUT が 2 つ 必 要 で、キ ャリ ーが 伝 搬 する 際 に 各 ビ ッ ト で LUT を 通 過 する 遅 延 が 発 生 する こ と です。ル ッ ク アヘ ッ ド を 使 用 し た イ ンプ リ メ ンテーシ ョ ンは こ れよ り 優 れてお り 、 入 力 キ ャ リ ー 信 号 を 伝搬 すべき か ( 入 力 が 異 な る 場 合 ) 生 成 すべき か (ど ち ら の 入 力 も High の 場 合 ) が 決 定 されます。 詳 細は、 表 9-2 を 参 照 して く ださい。表 9-2 : ルックアヘッ ド キャリーA B Propagate Generate0 0 0 00 1 1 01 0 1 01 1 0 1こ れは 前 述 の 半 加 算 器 の 和 と キ ャ リ ー 出 力 に 似 ています。 Propagate 信 号 は 1 番 目 の 半 加 算 器 の 和と 同 じで、 同 じ XOR ゲー ト を 使 用 し て イ ンプ リ メ ン ト さ れます。282 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


ルックアヘッ ド キャリー 加 算RPropagate が True でない 場 合 は A = B で、 いずれかの 信 号 が Generate 信 号 と し て 直 接 使 用 さ れるので、 キ ャ リ ー 出 力 は Propagate で 制 御 さ れる マルチプレ ク サで 定 義 で き ます。 Propagate = 1 の 場合 はキ ャ リ ー 入 力 が 使 用 さ れ、 Propagate = 0 の 場 合 は A (または B) が 使 用 されます。最 終 的 な 和 は 2 番 目 の XOR ゲー ト で 生 成 さ れ、 図 9-2 に 示 すよ う な ロジ ッ クにな り ます。COUTPropagate/Half Sum0 1SumGenerateCIN<strong>UG331</strong>_c11_02_011508図 9-2 : ルックアヘッ ド キャリーのインプリ メンテーショ ンロジックは 3 つのフ ァ ン ク シ ョ ンに 分 割 され、 1 つまたは 2 つの LUT には 結 合 でき ません。<strong>Spartan</strong>-3 ジェネレーショ ンの CLB では、 図 9-3 に 示 すよ う に、 XORCY および MUXCY を 使 用してこのロジックのインプリ メンテーショ ンが 最 適 化 されます。 XORCY は LUT の 外 にある 和 を生 成 する 専 用 XOR ゲー ト で、 MUXCY はキ ャ リ ーを 供 給 する 専 用 マルチプレ ク サです。FunctionGeneratorCOUTMUXCYBA 0 1SumCINXORCY<strong>UG331</strong>_c11_03_073006図 9-3 : <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> のキャ リー ロジックこの 構 成 では 2:1 マルチプレ ク サの 遅 延 し か 発 生 し ないため、 キ ャ リ ー 伝 搬 が 高 速 であ る と い う 利点 があ り ます。 また 1 つの LUT または スライスの 半 分 しか 必 要 としないので、 スライス 当 たり 2ビットで、 効 率 よく 高 集 積 にインプリ メントされます。 COUT からスライスの 別 の 半 分 にあるCIN、 CLB 内 の 別 のス ラ イ スの CIN、 および 次 の CLB の CIN への 各 カスケード 接 続 ポイ ン ト に専 用 接 続 があ る ため、 キ ャ リ ー チェーンが CLB の 列 を 上 方 向 に 伝 搬 する 際 に 非 常 に 良 いパフ ォーマンスが 得 られます。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 283<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 9 章 : キャリー ロジ ッ ク および 演 算 ロジ ッ クの 使 用リ ソースの 詳 細<strong>Spartan</strong>-3 ジェネレーションのキャ リー ロ ジ ッ ク および 演 算 ロ ジ ッ ク は、 専 用 CLB リソースおよび CLB 間 配 線 で 構 成 さ れます。 ロジックは 各 スライスの 2 つのロ ジ ッ ク セル 間 でほぼ 同 一 で、 ロジックのみの SLICEL と 分 散 RAM の 機 能 を 持 つ SLICEM の 間 では 同 一 です。 図 9-4 に 1 つのロジック セルを 簡 略 化 し た 図 を 示 し ます。COUT1MUXCY0 1BALUTXORCYD QSumMULT_ANDBypass10CIN<strong>UG331</strong>_c11_04_073006図 9-4 : 1 つのロジ ッ ク セルの <strong>Spartan</strong>-3 キャリー ロジ ッ クおよび 演 算 ロジ ッ ク を 簡 略 化 し た 図このインプリ メンテーションは、 前 述 の MUXCY の 標 準 機 能 を 柔 軟 に し た も のです。 MUXCY へ入 力 する Generate 信 号 は A、 B のいずれでも よ く、2 つの 信 号 の AND 出 力 を 入 力 する こ と も 可 能です。 キャ リー チェーンは 1 または 0 で 初 期 化 するか、 MUXCY への 独 立 し たバイパス 入 力 を 接続 でき ます。 MUXCY 制 御 入 力 を 1 に 固 定 する と 、 常 にキ ャ リ ーが 伝 搬 し ます。 出 力 和 XORCY にはオプシ ョ ンでレジス タ を 付 ける こ と ができ ます。図 9-5 に、キ ャ リ ー ロ ジ ッ ク 全 体 と 1 つのス ラ イ スへの 接 続 を 示 し ます。 破 線 は、CLB の SLICEM側 にのみ 含 まれる 固 定 さ れたマルチプレ ク サが 追 加 さ れた 場 合 を 示 し ます。284 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


リ ソースの 詳 細RCOUTYBG4G3G2G1G-LUTCYSELG10 1CYMUXGXORGYD Q YQCY0GBYGAND10F4F3F2F1F-LUTCYSELF10 1CYMUXFXORFXBXD Q XQCY0FFAND100 1CYINTBXCIN図 9-5 : 1 つのスラ イスのキャ リ ー ロジ ッ クの 簡 略 図<strong>UG331</strong>_c11_05_073006MUXCYダイナミ ック マルチプレ クサは MUXCY と 呼 ばれ、 各 ス ラ イ スの 下 半 分 (CYMUXF) および 上 半分 (CYMUXG) の 両 方 にあ り ます。MUXCY への 0 入 力 は 通 常 LUT 入 力 の う ちの 1 つから 供 給 されます。 4 つの LUT 入 力 の う ちの 2つ ( 上 半 分 では F1 または F2、 下 半 分 では G1 または G2) か ら 供 給 さ れる 場 合 も あ り ます。 また、 後述 の 乗 算 器 フ ァ ン ク シ ョ ンでは、 こ れら の 2 つの 入 力 の 専 用 AND ゲー ト (MULT_AND) の 出 力 から 供 給 されます。 0 または 1 が 直 接 入 力 さ れ、 単 純 な 多 入 力 ゲー ト と し て 使 用 さ れる こ と も あ り ます。 こ れ も 後 に 詳 述 し ます。 6 番 目 の 入 力 は CLB バイパス 入 力 (BX または BY) で、 LUT 入 力 の代 わ り に 使 用 され、 キ ャ リ ー チ ェーンの 初 期 化 ま たはデバ イ ス か ら の 継 続 に 使 用 さ れます。MUXCY の 0 入 力 を 駆 動 する こ の 固 定 さ れた 6:1 マルチプレ クサは、 ス ラ イ スの 下 半 分 ではCY0F、 上 半 分 では CY0G と 呼 ばれます。MUXCY への 1 入 力 はキ ャ リ ー 入 力 CINで、 XORCY 入 力 に も 接 続 さ れます。MUXCY へのセレ ク ト 入 力 は LUT 出 力 で、LUT は 通 常 Propagate 選 択 に 使 用 する XOR ゲー ト としてコンフィギュレーションされています。 これは、 その 他 の XORCY 入 力 を 供 給 する LUT 出 力と 同 じです。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 285<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 9 章 : キャリー ロジ ッ ク および 演 算 ロジ ッ クの 使 用キャリー チ ェ ーンのバイパス と 初 期 化XORCYキャ リー チェーン ロ ジ ッ ク をバ イ パス し、 信 号 にキ ャ リ ーを 常 に 伝 搬 するには、 入 力 に 1 が 選 択されるよ うに MUXCY を 設 定 します。 これには、 CYSELF (ス ラ イ ス の 上 半 分 ) または CYSELG(ス ラ イ スの 下 半 分 ) と 呼 ばれる キ ャ リ ー 選 択 MUX を 使 用 し ます。MUXCY への 1 入 力 では、 初 期 化 も サポー ト さ れます。 ほかのマルチプレ クサでは、 BX 入 力 で、CIN の 代 わ り に MUXCY の 1 入 力 が 駆 動 さ れます。 このマルチプレクサ CYINIT は、CLB スライス 内 の 下 半 分 の LUT でのみ 使 用 さ れます。 BX 信 号 は CLB の 外 部 から 入 力 され、 イ ン ターコネ クトの 専 用 VCC ポイン ト、 0 に 設 定 された 任 意 の LUT、 または 内 部 ロ ジ ッ ク か ら 供 給 さ れ、 1、 0、ま たは 変 数 に 初 期 化 で き ます。また MUXCY は 0 入 力 を 介 し て 初 期 化 で き ます。 LUT に 定 数 0 を 設 定 してキャ リ ー セレク ト マルチプレ ク サ CYSELF または CYSELG で 選 択 する と 、 0 入 力 が 選 択 さ れた ま まにな り ます。 0 入力 は、 CY0F/G 信 号 よ り 供 給 さ れる ので、 CY0F/G マルチプレ ク サでキ ャ リ ーを 初 期 化 する 0 または 1 を 直 接 選 択 で き ます。XOR は 通 常 XORCY と 呼 ばれ、 各 ス ラ イ スの 下 半 分 (XORF) および 上 半 分 (XORG) の 両 方 にあります。 入 力 はキ ャ リ ー 信 号 入 力 CIN および LUT 出 力 よ り 供 給 さ れます。 XORCY 出 力 はロ ジ ック セルのプラ イマ リ 出 力 ( 組 み 合 わせ 出 力 と フ リ ッ プフ ロ ッ プの 両 方 ) に 接 続 し ます。 このパスは、LUT、 多 入 力 マルチプレ ク サ、 ま たは XORCY か ら 選 択 する 固 定 のマルチプレ ク サを 通 過 し ます。このマルチプレクサは、 FXMUX (ス ラ イ スの 上 半 分 ) または GYMUX (ス ラ イ スの 下 半 分 ) と 呼 ばれます。キャリー ロジック 接 続CLB 間 に 専 用 接 続 があ る ため、 キ ャ リ ー パスは 高 速 です。 こ れら の 専 用 接 続 の 遅 延 はゼ ロ です。ス ラ イ ス 内 の 接 続285 ページの 図 9-5 に 示 すよ う に、 ス ラ イ スの 下 半 分 のキ ャ リ ー 出 力 は、 ス ラ イ スの 上 半 分 のキ ャリ ー 入 力 に 直 接 接 続 (CYMUXF で CYMUXG を 直 接 駆 動 ) されます。スライスおよび CLB 間 の 接 続CLB の 片 側 にあ る 下 部 ス ラ イ スのキ ャ リ ー 出 力 (COUT) は、 上 部 ス ラ イ ス のキ ャ リ ー 入 力 (CIN)に 直 接 接 続 さ れます。 これはデザインではネッ ト と して 表 示 されますが、 遅 延 はゼロです。 X0Y0 にある SLICEM は 左 側 の SLICEM X0Y1 に 接 続 さ れ、 X1Y0 は 右 側 の SLICEL X1Y1 に 接 続 さ れます。さらに、CLB の 片 側 にあ る 上 部 ス ラ イ スの COUT は、 上 の CLB の 下 部 ス ラ イ スの CIN に 直 接 接続 されます。 これもネッ ト と して 表 示 され、 遅 延 はゼロです。 X0Y1 の SLICEM は 上 の CLB のX0Y0 にある SLICEM に、 X1Y1 の SLICEL は 上 の CLB の X1Y0 にある SLICEL に 接 続 されます。 詳 細 は、 287 ページの 図 9-6 を 参 照 して く ださい。286 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


リ ソースの 詳 細RCOUTto S0 of the next CLBCOUTto CIN of S2 of the next CLB0 1 MUXCY FFLUTFF(First Carry Chain)0 1 MUXCYSLICEL X1Y1LUTCINCOUT0 1 MUXCY FFLUTFF0 1 MUXCYSLICEL X1Y0LUTLUTLUTLUTFF0 1 MUXCY0 1 MUXCY FFCINCOUTFF0 1 MUXCY FFSLICEM X0Y1SLICEM X0Y0(Second Carry Chain)LUTCINCINCLB<strong>UG331</strong>_06_073006図 9-6 : CLB 内 のキャ リ ー ロジック 接 続専 用 配 線 構 造 では、 キ ャ リ ー チェーンは CLB の 列 を 下 から 上 に 通 り ます。 CLB あたり 4 ビッ トで、 CLB の 半 分 に 2 つのス ラ イ スがあ り ます。 CLB のも う 半 分 のキャ リー チェーンは 完 全 に 独 立しているため、 1 列 に 2 つのチェーンが 存 在 し ます。表 9-3 に 示 すよ う に、キ ャ リ ー チェーンの 総 数 は CLB の 列 数 の 2 倍 です。 列 当 た り のビ ッ ト 数 は、列 当 た り の ロ ジ ッ ク セル 数 に よ り 制 限 さ れます。 <strong>Spartan</strong>-3E および <strong>Spartan</strong>-3A/3AN/3A DSP アーキテクチャでは、 CLB 列 の 一 部 は DCM で 遮 断 さ れ、 列 当 た り のビ ッ ト 数 が 少 な く な り ます。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 287<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 9 章 : キャリー ロジ ッ ク および 演 算 ロジ ッ クの 使 用表 9-3 : デバイス 当 た りのキャ リー チェーン 数デバイス キャ リー チェーン 数 列 当 たりのビッ ト 数XC3S50 24 64XC3S200 40 96XC3S400 56 128XC3S1000 80 192XC3S1500 104 256XC3S2000 128 320XC3S4000 144 384XC3S5000 160 416XC3S100E 24 88XC3S250E 36 136XC3S500E 52 184XC3S1200E 76 240XC3S1600E 100 304XC3S50A/AN 24 64XC3S200A/AN 32 128XC3S400A/AN 48 160XC3S700A/AN 64 192XC3S1400A/AN 80 288XC3SD1800A 96 352XC3SD3400A 116 416キャ リー チェーン を 分 割 ま たはカ ス ケー ド 接 続 する と 、 よ り 柔 軟 な イ ンプ リ メ ンテーシ ョ ンが 可 能です。 キャ リー チェーン を 分 割 する と 、 1 つの MUXCY の COUT が 複 数 の MUXCY の CIN 信 号に 接 続 さ れ、 ロ ジ ッ ク を 複 製 せずにキ ャ リ ーを 2 つのチェーンに 接 続 でき ます。 キャ リー チェーンを カ ス ケー ド 接 続 する と 、COUT は 通 常 のロ ジ ッ ク を 介 し て すぐ 上 の CIN 以 外 の CIN に 接 続 されます。 この 方 法 で、 2 番 目 の 列 にキ ャ リ ー チェーンを 継 続 できます。分 割 およびカ ス ケー ド 接 続 が 可 能 なのは、 各 MUXCY の COUT が、 列 で 上 にあ る 次 の MUXCYに 接 続 する だけでな く 、 CLB バイパス 出 力 ( 下 半 分 では XB、 上 半 分 では YB) で 使 用 でき るためです。 これらの CLB 出 力 は、 MUXCY または SRL16 シフ ト ア ウ ト でのみ 駆 動 さ れます。 また CINは、 CLB バイパス 入 力 BX/BY または 2 つの MUXCY コンポーネントのいずれかの LUT 入 力 から も 供 給 さ れます。288 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


乗 算 リ ソースR乗 算 リ ソース乗 算 に も 特 別 な リ ソ ースがあ り ます。 1 ビ ッ ト の 乗 算 は 論 理 的 には と て も 単 純 で、 必 要 なのは ANDゲー ト のみです。表 9-4 : 2 進 数 の 乗 算AB積(A AND B)0 0 00 1 01 0 01 1 1これよ り 大 きな 値 の 乗 算 は、 各 値 にも う 1 つの 因 数 の 1 ビッ ト を 掛 けて 部 分 積 を 生 成 して 実 行 します。 これらの AND ゲー ト では、 入 力 値 が 渡 さ れる か 部 分 積 が 0 にな り ます。 こ の 後 、 図 9-7 に 示すよ う に 部 分 積 が 加 算 さ れ、 最 終 的 な 積 が 生 成 さ れます。 キャ リー ロ ジ ッ ク は 加 算 器 では 非 常 に 効果 的 であ る ため、 通 常 その 前 のフ ァ ン ク シ ョ ンは 部 分 積 の 乗 算 です。A3A2A1A0++++P4P3P2P1B1B0図 9-7 : 部 分 的 な 積 の 乗 算<strong>UG331</strong>_c11_07_080306加 算 ツ リ ーの 後 半 は 加 算 フ ァ ン ク シ ョ ンのみですが、 図 9-7 に 示 すよ う に、 最 初 の 2 つの 部 分 積 が生 成 さ れて 最 初 の 段 階 の 加 算 器 に 適 用 さ れます。 ほ と んどの 場 合 、 2 つの 加 算 器 入 力 はそれぞれ 2入 力 AND ゲー ト で 駆 動 されます。 これらの 各 AND ゲー ト に LUT が 使 用 される ため、 乗 算 器 は<strong>FPGA</strong> では 大 型 にな り ます。 12 ビッ ト X 8 ビ ッ ト の 乗 算 器 の 場 合 、 AND ゲー ト を イ ンプ リ メ ン トするだけで、 12 X 8 = 96 個 の LUT (48 スライス) が 必 要 にな り ます。ただ し、 最 適 化 の 効 果 に よ り 加 算 器 入 力 の 1 つに 関 連 付 け ら れた AND ゲー ト は LUT に 吸 収 され、加 算 の 半 和 を 形 成 する ので、 12 ビッ ト X 8 ビ ッ ト 乗 算 器 のサ イ ズを 48 LUT (24 スライス) 縮 小 できます。‘0’+P0<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 289<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 9 章 : キャリー ロジ ッ ク および 演 算 ロジ ッ クの 使 用COUTAm+1BnAmBn+101Pm+1CIN<strong>UG331</strong>_c11_08_073106図 9-8 : CLB での 部 分 積 乗 算 のイ ンプ リ メ ンテーシ ョ ンもう 1 つの AND ゲー ト を LUT に 吸 収 する のが 理 想 的 ですが、 生 成 さ れる 信 号 は 加 算 フ ァ ン ク シ ョンの MUXCY で も 必 要 なため、 こ の 回 路 が 最 良 であ る と 言 え ます。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> では 2 番 目 の AND ゲー ト を 吸 収 させる こ と ができ ます。 各LUT の 隣 には、 MULT_AND と い う コ ンポーネン ト があ り 、 使 用 する 信 号 が LUT に 吸 収 されていても、 MUXCY への 入 力 と 同 じ 入 力 を 再 生 で き ます。COUTA mB n+1A0m+1B n1Pm+1CINMULT_AND図 9-9 : MULT_AND によ る 部 分 積 乗 算 の 最 適 化<strong>UG331</strong>_c11_09_073106汎 用 MULT_AND ゲー ト はス ラ イ スの 下 半 分 では FAND と 呼 ばれ、 F1 LUT 入 力 と F2 LUT 入 力を 結 合 してスラ イスの 下 半 分 の MUXCY (CYMUXF) に 入 力 し ます。 ス ラ イ ス の 上 半 分 の GANDでは G1 と G2 を 結 合 し て、 上 半 分 の MUXCY (CYMUXG) に 入 力 し ます ( 図 9-5 参 照 )。この 専 用 AND ゲー ト は 乗 算 器 以 外 に も 任 意 のフ ァ ン ク シ ョ ンで 使 用 で き ますが、 接 続 で き る のはMUXCY にのみで、 MUXCY からは 任 意 のロジ ッ クへの CLB 出 力 に 接 続 で き ます。コンポーネント 名 とピン 名表 9-5 に、キ ャ リ ー ロ ジ ッ ク および 演 算 ロ ジ ッ ク で 使 用 さ れるすべてのエレ メ ン ト と その 概 要 を 示します。 斜 体 はス ラ イ ス ピンを 表 します。表 9-5 : キャリー ロジッ クおよび 演 算 ロジッ ク 名名 前 ス ラ イ ス 内 の 位 置 <strong>FPGA</strong> Editor での 名 称 入 力 出 力XORCY 下 半 分 XORF CYINIT XOR F X (XQ)XORCY 上 半 分 XORG CYMUXF XOR G Y (YQ)MUXCY 下 半 分 CYMUXF CYINIT またはCY0FCYMUXF(および XB)290 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


コンポーネント 名 とピン 名R表 9-5 : キャリー ロジッ クおよび 演 算 ロジッ ク 名 ( 続 き)名 前 ス ラ イ ス 内 の 位 置 <strong>FPGA</strong> Editor での 名 称 入 力 出 力MUXCY 上 半 分 CYMUXG CYMUXF またはCY0GCOUT(および YB)CYINIT 下 半 分 CYINIT CIN または BX CYINITMULT_AND 下 半 分 FAND F1 AND F2 CY0FMULT_AND 上 半 分 GAND G1 AND G2 CY0G表 9-6 : キャリー ロジッ ク ファンクションCOUT および YB は SLICEL コンポーネントでは 常 に 同 じ 信 号 です (SLICEM では、 SRL16 出 力から YB を 駆 動 でき ます)。 同 様 に、 CYMUXF 出 力 では 常 に SLICEL の XB 出 力 が 駆 動 さ れます。表 9-6 に、 キ ャ リ ー ロジック フ ァ ン ク シ ョ ンの 概 要 を 示 し ます。 CLB スライスの 詳 細 は、 第 5 章「CLB (コンフィギャブル ロジック ブロック) の 使 用 」 を 参 照 して く ださい。機 能CYINIT説 明スライスのキャリー チェーン を 初 期 化 。 次 のいずれかが 固 定 的 に 選 択 さ れます。• 下 のス ラ イ スからの CIN キ ャ リ ー 入 力• BX 入 力CY0Fス ラ イ スの 下 半 分 のキ ャ リ ー 生 成 。 次 のいずれかが 固 定 的 に 選 択 さ れます。• LUT への F1 入 力 ま たは F2 入 力 (キ ャ リ ーが 生 成 さ れる 場 合 はいずれも 1)• 乗 算 用 の FAND ゲー ト• キ ャ リ ー 初 期 化 用 の BX 入 力• 単 純 なブール 関 数 と し て 使 用 さ れる、 1 または 0 に 固 定 された 入 力CY0Gス ラ イ スの 上 半 分 のキ ャ リ ー 生 成 。 次 のいずれかが 固 定 的 に 選 択 さ れます。• LUT への G1 入 力 ま たは G2 入 力 (キ ャ リ ーが 生 成 さ れる 場 合 はいずれ も 1)• 乗 算 用 の GAND ゲー ト• キ ャ リ ー 初 期 化 用 の BY 入 力• 単 純 なブール 関 数 と し て 使 用 さ れる、 1 または 0 に 固 定 された 入 力CYMUXFス ラ イ スの 下 半 分 のキ ャ リ ー 生 成 ま たは 伝 搬 マルチプレ ク サ。 次 のいずれかが CYSELF を 介 し て 動 的 に 選 択されます。• CYINIT キ ャ リ ー 伝 搬 (CYSELF = 1)• CY0F キ ャ リ ー 生 成 (CYSELF = 0)CYMUXGス ラ イ スの 上 半 分 のキ ャ リ ー 生 成 ま たは 伝 搬 マルチプレ ク サ。 次 のいずれかが CYSELF を 介 し て 動 的 に 選 択されます。• CYMUXF キ ャ リ ー 伝 搬 (CYSELG = 1)• CY0G キ ャ リ ー 生 成 (CYSELG = 0)CYSELFス ラ イ スの 下 半 分 のキ ャ リ ー 生 成 ま たは 伝 搬 セレ ク ト 。 次 のいずれかが 固 定 的 に 選 択 さ れます。• F-LUT 出 力 ( 通 常 XOR 出 力 )• 1 に 固 定 し、 常 に 伝 搬<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 291<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 9 章 : キャリー ロジ ッ ク および 演 算 ロジ ッ クの 使 用表 9-6 : キャリー ロジッ ク ファンクション ( 続 き)機 能CYSELGXORFXORGFANDGAND説 明ス ラ イ スの 上 半 分 のキ ャ リ ー 生 成 ま たは 伝 搬 セレ ク ト 。 次 のいずれかが 固 定 的 に 選 択 さ れます。• G-LUT 出 力 ( 通 常 XOR 出 力 )• 1 に 固 定 し、 常 に 伝 搬ス ラ イ スの 下 半 分 の 和 生 成 。 入 力 は 次 の と お り です。• F-LUT• 前 のステージの CYINIT キ ャ リ ー 信 号結 果 はス ラ イ スの 上 半 分 の 組 み 合 わせ 出 力 ま たはレ ジ ス タ 付 き 出 力 に 送 信 さ れます。ス ラ イ スの 上 半 分 の 和 生 成 。 入 力 は 次 の と お り です。• G-LUT• 前 のステージの CYMUXF キ ャ リ ー 信 号結 果 はス ラ イ スの 上 半 分 の 組 み 合 わせ 出 力 ま たはレ ジ ス タ 付 き 出 力 に 送 信 さ れます。ス ラ イ スの 下 半 分 の 乗 算 器 部 分 積 。 入 力 は 次 の と お り です。• F-LUT F1 入 力• F-LUT F2 入 力結 果 は CY0F を 介 して、 CYMUXF に 接 続 する 信 号 を 生 成 する キ ャ リ ーにな り ます。ス ラ イ スの 上 半 分 の 乗 算 器 部 分 積 。 入 力 は 次 の と お り です。• G-LUT G1 入 力• G-LUT G2 入 力結 果 は CY0G を 介 して、 CYMUXG に 接 続 する 信 号 を 生 成 する キ ャ リ ーにな り ます。パフォーマンスキャ リー ロジック ベースのフ ァ ン ク シ ョ ンのパフ ォーマン スは、 キ ャ リ ー チェーンへ 入 力 する 際の 遅 延 、 キ ャ リ ー チェーン 内 のフ ァ ン ク シ ョ ンの 各 ビ ッ ト の 遅 延 、 および 結 果 出 力 の 遅 延 の 3 つのコンポーネントで 決 定 されます ( 図 9-10 参 照 )。 キャ リー チェーンへ 入 力 する 際 の 遅 延 は、 F 入 力から COUT 出 力 の t OPCYF で、 約 0.9ns です ( 図 9-11 参 照 )。 各 ス ラ イ ス の 遅 延 は、 配 線 遅 延 0、CINから COUT への 遅 延 t BYP が 約 0.2ns です ( 図 9-12 参 照 )。 ファンクションによってはスライス 当 たり 4 ビッ トを 達 成 できますが、 ほとんどのファンクションはスライス 当 たり 2 ビッ トです。 結 果 出力 の 遅 延 は 通 常 YQ 出 力 ま たは t CINCK への CIN 遅 延 で 約 1.3ns、 組 み 合 わせ 出 力 t CINY の 場 合 は約 1.2ns です ( 図 9-13 参 照 )。 全 体 的 な 遅 延 は、 4 ビッ トで 2.1ns (レジスタ 付 きの 場 合 2.2ns) で、 2ビット 追 加 されるごとに 0.2ns 増 加 し ます。292 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


パフォーマンスRCLBLUTLUTLUTFFT CINCK0 1 MUXCY0 1 MUXCY FFCINCOUTFFMUXCYT BYP0 1 MUXCY FFT NET = 0SLICEL X1Y1SLICEL X1Y0Q7Q6Q5LUTQ4T NET = 0CLBLUTLUTLUTFFT BYP0 1 MUXCY0 1 MUXCY FFCINCOUTFFMUXCYT OPCYF0 1 MUXCY FFT NET = 0SLICEL X1Y1SLICEL X1Y0Q3Q2Q1LUTQ0<strong>UG331</strong>_10_073106図 9-10 : キャ リ ー 遅 延 パス<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 293<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 9 章 : キャリー ロジ ッ ク および 演 算 ロジ ッ クの 使 用COUTYBG4G3G2G1G-LUTCYSELG10 1CYMUXGXORGYD Q YQCY0GBYGAND10F4F3F2F1F-LUTCYSELF10 1CYMUXFXORFXBXD Q XQCY0FFAND100 1CYINTT OPCYFBXCIN<strong>UG331</strong>_c11_11_073106図 9-11 : 下 半 分 のオペ ラ ン ド 入 力 からキャ リ ー 出 力 への 遅 延 T OPCYF294 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


パフォーマンスRCOUTYBG4G3G2G1G-LUTCYSELG10 1CYMUXGXORGYD Q YQCY0GBYGAND10F4F3F2F1F-LUTCYSELF10 1CYMUXFXORFXBXD Q XQCY0FFAND100 1CYINTT BYPBXCIN<strong>UG331</strong>_c11_12_073106図 9-12 : キャ リ ー 伝 搬 遅 延 t BYP<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 295<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 9 章 : キャリー ロジ ッ ク および 演 算 ロジ ッ クの 使 用COUTYBG4G3G2G1G-LUTCYSELG10 1CYMUXGXORGYD Q YQCY0GBYGAND10F4F3F2F1F-LUTCYSELF10 1CYMUXFXORFXBXD Q XQCY0FFAND100 1CYINTT CINYBXCIN<strong>UG331</strong>_c11_13_073106図 9-13 : キャ リ ー 入 力 から 上 半 分 の 組 み 合 わせ 和 出 力 への 遅 延 t CINYキャ リー ベースのフ ァ ン ク シ ョ ンへの 入 出 力 では、 遅 延 を 最 適 化 し ます。 ソース 入 力 はキャ リーフ ァ ン ク シ ョ ンの 近 く に 配 置 し ます。 可 能 であれば、 キ ャ リ ーフ ァ ン ク シ ョ ンの 左 の 列 でレジス タ付 きの 信 号 を 使 用 し、 キャ リー ファンクションへの 配 線 遅 延 がほとんどなくなるようにします。キャ リー フ ァ ン ク シ ョ ンの 出 力 に 同 じ CLB で 直 接 レジス タ を 付 け、 パイプラ イ ン 化 する こ と でパフォーマンスを 向 上 させることができます。SLICEL は 構 造 が 単 純 で SLICEM よ りもタイミングが 速 いので、パフォーマンスが 重 視 される 場合 は SLICEL を 選 択 し ます。<strong>Spartan</strong>-3 ジェネレーションのキャ リー ベースの 加 算 器 、 カ ウ ン タ、 およびアキ ュ ム レータ の 予 測値 は 次 の と お り です。• 8 ビット : 3.0ns または 333MHz• 16 ビット : 3.8ns または 263MHz• 32 ビット : 5.4ns または 185MHz• 64 ビット : 8.6ns または 116MHz296 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


仕 様R仕 様表 9-7 に 示 すよ う に、 キ ャ リ ー ロ ジ ッ ク および 演 算 ロ ジ ッ ク は、 使 用 可 能 な 信 号 パスすべての タ イミ ング 仕 様 で 定 義 さ れます。表 9-7 : その 他 の 仕 様仕 様 説 明 パスT CINYBT CINXBT CINXT CINCKT CKCINT BXCYキャリー 分 割 または 上 部 スライスへのカスケード 接 続キャリー 分 割 または 下 部 スライスへのカスケード 接 続キ ャ リ ー 入 力 か ら 下 半 分 の 組 み 合 わせ 和 出 力キャ リ ー 入 力 から 上 半 分 ま たは 下 半分 のレ ジス タ 付 き 和 出 力 へのセッ トアッ プキ ャ リ ー 入 力 のホール ド タイム下 半 分 のバイパス 入 力 か ら キ ャ リ ー出 力 ( 初 期 化 用 )CIN 入 力 か ら CYINIT、 CYMUXF、 CYMUXG を 介 して YB 出 力CIN 入 力 か ら CYINIT および CYMUXF を 介 して XB 出 力CIN 入 力 か ら CYINIT および XORF を 介 して X 出 力CIN 入 力 か ら CYINIT、 XORF を 介 した FFX へのセ ッ ト ア ッ プ、 または CYINIT、 CYMUXF、 XORG を 介 した FFY へのセ ッ ト ア ッ プCIN から XOR を 介 し てフ リ ッ プフ ロ ッ プに 接 続 する T CINCK のホールド タイムBX 入 力 か ら CYINIT (または CY0F)、 CYMUXF、 CYMUXG を 介 して COUT 出 力T BXYBキ ャ リ ー 分 割 BX 入 力 か ら CYINIT (または CY0F)、 CYMUXF、 CYMUXG を 介 して YB 出 力T BXXB キ ャ リ ー 分 割 BX 入 力 か ら CYINIT (または CY0F)、 CYMUXF を 介 して XB 出 力T BYCY上 半 分 のバイパス 入 力 か ら キ ャ リ ー出 力 ( 初 期 化 用 )BY 入 力 か ら CY0G、 CYMUXG を 介 して COUT 出 力T BYYB キ ャ リ ー 分 割 BY 入 力 か ら CY0G、 CYMUXG を 介 して YB 出 力T BXYT BXXT DICKT OPFYBT OPXBT OPYT OPX下 半 分 のバイパス 入 力 か ら 上 半 分 の和 ( 初 期 化 用 )下 半 分 のバイパス 入 力 か ら 下 半 分 の和 ( 初 期 化 用 )下 半 分 のバイパス 入 力 から 和 へのセッ トアップ タイム下 半 分 のオペラ ン ド 入 力 か ら キ ャリ ー 分 割 出 力下 半 分 のオペラ ン ド 入 力 か ら キ ャリ ー 分 割 出 力下 半 分 のオペラ ン ド 入 力 から 上 半 分の 和下 半 分 のオペラ ン ド 入 力 から 下 半 分の 和BX 入 力 か ら CYINIT、 CYMUXF、 XORG を 介 して Y 出 力BX 入 力 か ら CYINIT および XORF を 介 して X 出 力BX 入 力 か ら CYINIT、 XORF を 介 した FFX へのセ ッ ト ア ッ プ (またはCYMUXF、 XORG を 介 した FFY へのセ ッ ト ア ッ プ)F1 ~ F2 入 力 か ら CY0F、CYMUXF (または F1 ~ F4 入 力 か ら F-LUT、CYSELF を 介 して CYMUXF セレク ト)、 CYMUXG を 介 して YBF1 ~ F4 入 力 か ら F- LUT、CYSELF、CYMUXF セレク ト を 介 して XB出 力F1 ~ F4 入 力 か ら F- LUT、 CYSELF、 CYMUXF セレク ト、 XORG を介 して Y 出 力F1 ~ F4 入 力 か ら F-LUT、 XORF を 介 して X 出 力<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 297<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 9 章 : キャリー ロジ ッ ク および 演 算 ロジ ッ クの 使 用表 9-7 : その 他 の 仕 様仕 様 説 明 パスT OPCYGT OPGYB上 半 分 のオペラ ン ド 入 力 から キャリー 出 力上 半 分 のオペラ ン ド 入 力 から キ ャリ ー 分 割 出 力G1 ~ G2 入 力 か ら CY0G、 CYMUXG (または G1 ~ G4 から G-LUT、CYSELG を 介 して CYMUXG セレク ト) を 介 して COUT 出 力G1 ~ G2 入 力 か ら CY0G、 CYMUXG (または G1 ~ G4 から G-LUT、CYSELG を 介 して CYMUXG セレク ト) を 介 して YB 出 力T OPGY 上 半 分 のオペラ ン ド 入 力 から 和 G1 ~ G4 入 力 か ら G-LUT、 XORG を 介 して Y 出 力T FANDCY 下 半 分 の 因 数 入 力 か ら キ ャ リ ー 出 力 F1/F2 入 力 か ら FAND、CY0F、CYMUXF、CYMUXG を 介 して COUTT FANDYBT FANDXB下 半 分 の 因 数 入 力 か ら キ ャ リ ー 分 割出 力下 半 分 の 因 数 入 力 か ら 下 半 分 のキ ャリ ー 分 割 出 力F1/F2 入 力 か ら FAND、 CY0F、 CYMUXF、 CYMUXG を 介 して YBF1/F2 入 力 か ら FAND、 CY0F、 CYMUXF を 介 して XBT GANDCY 上 半 分 の 因 数 入 力 か ら キ ャ リ ー 出 力 G1/G2 入 力 か ら GAND、 CY0G、 CYMUXG を 介 して COUT 出 力T GANDYB上 半 分 の 因 数 入 力 か ら キ ャ リ ー 分 割出 力G1/G2 入 力 か ら GAND、 CY0G、 CYMUXG を 介 して YB 出 力キャリー ロジ ッ クおよび 演 算 ロジ ッ ク を 使 用 し た 設 計デザイ ンでキ ャ リ ー ロ ジ ッ ク が 使 用 さ れてい る か、 効 率 よ く 使 用 さ れてい る かを 知 る 必 要 があ り ます。 キャ リー ロジックは、プリ ミティブまたはマクロでインスタンシエートするか、COREGenerator で 作 成 さ れる コ ンポーネン ト で 使 用 さ れるか、 高 度 な 合 成 ツールで 自 動 的 に 使 用 さ れます。キャリーを 使 用 するライブラリ エレメント最 も 直 接 的 にキ ャ リ ー ロ ジ ッ ク を 使 用 する 方 法 は、 キ ャ リ ーを 内 蔵 する ラ イ ブ ラ リ コンポーネント を イ ン ス タ ン シエー ト する こ と です。 ラ イ ブ ラ リ コンポーネントはキャリー ロジックおよび 演算 ロジッ クを 使 用 する と 効 率 が 上 がるよ うに 設 計 されています。 加 算 器 、 加 減 算 器 、 アキ ュ ム レータ、CC で 始 ま る 8 ビッ トおよび 16 ビ ッ ト のカ ウ ン タ でキ ャ リ ーが 使 用 さ れます。 最 も 入 力 数 が 多い 16 入 力 の ロ ジ ッ ク ゲー ト では、 キ ャ リ ー マルチプレ ク サが 使 用 さ れます。 こ れ 以 外 のカ ス タ ムファンクションは、 キャリー プ リ ミ テ ィ ブか ら 構 築 で き ます。298 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


キャリー ロジ ッ ク および 演 算 ロジ ッ ク を 使 用 し た 設 計RプリミティブMUXCYOSMUXCY0 1DICI<strong>UG331</strong>_c11_14_073106図 9-14 : MUXCY プリミティブMUXCY は、1 ビ ッ ト の 高 速 キ ャ リ ー 伝 搬 フ ァ ン ク シ ョ ン を イ ンプ リ メ ン ト する ために 使 用 する プリミティブで、DI は CLB 直 接 入 力 に、 CI はキ ャ リ ー 入 力 にマ ッ プ さ れます。 セレク ト 入 力 S はLUT によ り 供 給 され、Low の 場 合 は DI が、High の 場 合 は CI が 使 用 されます。 O 出 力 は 上 にあ る次 の MUXCY の CI にカ ス ケー ド 接 続 する か、 CLB 出 力 に 接 続 で き ます。MUXCY プリ ミティブは、 スライスの 下 半 分 の CYMUXF コンポーネントまたはスライスの 上 半分 の CYMUXG コンポーネントにマップされます。 S セレ ク ト 入 力 は 通 常 LUT の XOR ゲー ト で駆 動 さ れますが、 LUT を 0 に 固 定 し て 常 に DI 入 力 が 選 択 される よ う にする こ と もでき ます。 S 入力 を 1 に 固 定 する と 常 に CI キ ャ リ ー 入 力 が 選 択 さ れ、 マルチプレ ク サ 内 に イ ンプ リ メ ン ト で き るため、 LUT リ ソースをほかのフ ァ ン クシ ョ ンに 使 用 でき ます。MUXCY には、ローカル 出 力 がある 2 つのプ リ ミ テ ィ ブがあ り ます。 ローカル 出 力 にはロジッ ク エレ メ ン ト 間 の 専 用 接 続 ( こ の 場 合 は COUT から CIN への 直 接 接 続 ) が 使 用 されます。 プリ ミティブの ローカル 出 力 では 配 線 は 制 御 さ れませんが、デザ イ ン ツールでのインプ リ メ ンテーシ ョ ン 前 のタイ ミ ング 予 測 の 精 度 が 向 上 し ます。 MUXCY の O ピンは 別 の MUXCY の CI ピンに 接 続 されていますが、 ローカル 出 力 (LO) が 使 用 さ れる ため、 接 続 遅 延 はほ と んど 常 にゼ ロ です。 汎 用 出 力 はバイパス 出 力 XB または YB に 接 続 されてキ ャ リ ー チェーンが 分 割 さ れる ため、ブ ロ ッ ク 遅 延 および配 線 遅 延 が こ れよ り も 長 く な り ます。 MUXCY_D にはローカル 出 力 および 汎 用 出 力 があ り ますが、MUXCY_L では COUT パスのゼロ 遅 延 がモデル 化 されます。 ど ち ら のパス も 常 に 使 用 可 能 で、 同時 に 使 用 でき ます。 O ピンが 別 の MUXCY の CI に 接 続 されている 場 合 は、 MUXCY_L またはMUXCY_D の LO 出 力 を 使 用 し ます。 O がそれ 以 外 に 接 続 されている 場 合 は、 MUXCY またはMUXCY_D の O 出 力 を 使 用 し ます。LOLOOSMUXCY_L0 1SMUXCY_D0 1DICIDICI<strong>UG331</strong>_c11_15_073106図 9-15 : MUXCY_D および MUXCY_L プリミティブ<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 299<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 9 章 : キャリー ロジ ッ ク および 演 算 ロジ ッ クの 使 用XORCYVHDL インスタンシエーション-- Component Declaration for MUXCY should be placed-- after architecture statement but before begin keywordcomponent MUXCYport (O : out STD_ULOGIC;CI : in STD_ULOGIC;DI : in STD_ULOGIC;S : in STD_ULOGIC);end component;-- Component Attribute specification for MUXCY-- should be placed after architecture declaration but-- before the begin keyword-- Attributes should be placed here-- Component Instantiation for MUXCY should be placed-- in architecture after the begin keywordMUXCY_INSTANCE_NAME : MUXCYport map (O => user_O,CI => user_CI,DI => user_DI,S => user_S);Verilog インスタンシエーションMUXCY MUXCY_instance_name (.O (user_O),.CI (user_CI),.DI (user_DI),.S (user_S));XORCY は、 一 般 出 力 (O) がある 特 殊 な 専 用 XOR ゲー ト で、 高 速 で 小 型 の 演 算 フ ァ ン ク シ ョ ン を生 成 する ために 使 用 し ます。 XORCY プ リ ミ テ ィ ブは、ス ラ イ スの 下 半 分 の XORF コンポーネントまたはスライスの 上 半 分 の XORG コンポーネントにマップされます。 ロジック 入 力 (LI) は LUT出 力 に よ り 駆 動 さ れ ま す。 こ れは 通 常 、 MUXCY の S 入 力 と 同 じ です。 キャ リー 入 力 (CI) はMUXCY の 出 力 で 駆 動 さ れる か、 ほかの 信 号 で 初 期 化 さ れます。 O 出 力 では、 ス ラ イ スの 組 み 合 わせ 出 力 ま たはレ ジ ス タ 付 き 出 力 が 駆 動 さ れます。LICIO図 9-16 : XORCY プリミティブ<strong>UG331</strong>_c11_16_073106XORCY にもローカル 出 力 (LO ピン) がある 2 つのプ リ ミ テ ィ ブがあ り ます。 MUXCY と 異 なりXORCY の 出 力 には 特 別 な 配 線 はあ り ませんが、 隣 接 する CLB または 同 じ CLB への 直 接 接 続 が 使用 さ れる 場 合 、 ま たは XORCY が 直 接 フ リ ッ プフ ロ ッ プに 接 続 される 場 合 は、 ローカル 出 力 でモデル 化 さ れた 高 速 遅 延 を 使 用 で き ます。前 述 の よ う に、 XORCY を 使 用 して、 LUT の XOR で 開 始 さ れた 和 を 完 了 で き ます。 LUT の XORは 汎 用 XOR2 コ ンポーネン ト ま たは 同 様 のフ ァ ン ク シ ョ ンです。300 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


キャリー ロジ ッ ク および 演 算 ロジ ッ ク を 使 用 し た 設 計RVHDL インスタンシエーション-- Component Declaration for XORCY should be placed-- after architecture statement but before begin keywordcomponent XORCYport (O : out STD_ULOGIC;CI : in STD_ULOGIC;LI : in STD_ULOGIC;end component;-- Component Attribute specification for XORCY-- should be placed after architecture declaration but-- before the begin keyword-- Attributes should be placed here-- Component Instantiation for XORCY should be placed-- in architecture after the begin keywordXORCY_INSTANCE_NAME : XORCYport map (O => user_O,CI => user_CI,LI => user_LI);Verilog インスタンシエーションMULT_ANDXORCY XORCY_instance_name (.O (user_O),.CI (user_CI),.LI (user_LI));MULT_AND は、 高 速 で 小 型 の 乗 算 器 を 構 成 する ための 専 用 AND コンポーネントです。MULT_AND プリ ミティブは、<strong>Spartan</strong>-3 スライスの FAND ゲー ト または GAND ゲー ト にマップされます。 入 力 は 2 つの LUT 入 力 、F1 と F2 または G1 と G2 か ら 供 給 さ れます。 出 力 は MUXCYの DI 入 力 にのみ 接 続 可 能 であ る ため、 プ リ ミ テ ィ ブには LO ローカル 出 力 しかなく、 インプリ メンテーシ ョ ン 前 の タ イ ミ ング 解 析 には 配 線 遅 延 は 含 まれません。I1I0LO汎 用 AND2 を MUXCY データ 入 力 に 接 続 する と 、 効 率 を 上 げ る ために MULT_AND に 配 置 されることがあります。 同 様 に、 MULT_AND で 汎 用 M2_1 マルチプレ ク サを 駆 動 する と 、 通 常 マルチプレクサが MUXCY に 配 置 されます。 一 般 的 な 乗 算 器 では、 LUT にある 2 つの AND ゲー ト の うちの 1 つを 複 製 する ために MULT_AND が 使 用 されます。 これらの AND ゲー ト は 汎 用 AND2 コンポーネン ト で 指 定 されます。VHDL インスタンシエーション<strong>UG331</strong>_c11_17_073106図 9-17 : MULT_AND プリミティブ-- Component Declaration for MULT_AND should be placed-- after architecture statement but before begin keywordcomponent MULT_ANDport (LO : out STD_ULOGIC;I0 : in STD_ULOGIC;I1 : in STD_ULOGIC);end component;-- Component Attribute specification for MULT_AND<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 301<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 9 章 : キャリー ロジ ッ ク および 演 算 ロジ ッ クの 使 用-- should be placed after architecture declaration but-- before the begin keyword-- Attributes should be placed here-- Component Instantiation for MULT_AND should be placed-- in architecture after the begin keywordMULT_AND_INSTANCE_NAME : MULT_ANDport map (LO => user_LO,I0 => user_I0,I1 => user_I1);Verilog インスタンシエーションMULT_AND MULT_AND_instance_name (.LO (user_LO),.I0 (user_I0),.I1 (user_I1));Virtex-II ORCY コンポーネントのエミュレーションマクロVirtex ® -II アーキテ クチャの ORCY プリ ミティブは、<strong>Spartan</strong>-3 ジェネレーショ ン <strong>FPGA</strong> では 使 用できません。 名 前 はキ ャ リ ー プ リ ミ テ ィ ブに 似 ていますが、ORCY は 通 常 演 算 フ ァ ン ク シ ョ ンでは使 用 さ れません。 ORCY は Virtex-II ファ ミ リで 積 和 (SOF) ソ リ ューシ ョ ン を 作 成 する ために 使 用さ れ、 多 入 力 AND ゲー ト の OR が 作 成 さ れます。 多 入 力 AND ゲー ト は MUXCY リソースを 使用 して 作 成 されます。 <strong>Spartan</strong>-3 ジェネレーショ ン <strong>FPGA</strong> では、 同 様 のロジ ッ クが LUT でインプリメ ン ト さ れますが、 配 置 の 柔 軟 性 が 高 く なっ ています。 ORCY コンポーネントが <strong>Spartan</strong>-3 ジェネレーシ ョ ンのデザインで 使 用 される 場 合 は、 LUT にマ ップされます。表 9-8 に、キャ リ ー ロ ジッ ク を 使 用 する ラ イ ブラ リ マク ロ を 示 し ます。 すべての 加 算 器 、 加 減 算 器 、およ びアキュ ムレ ータ でキャ リ ー ロジックが 使 用 されます。 カウンタでは CC で 始 ま る も ののみ、コンパレータでは MC で 始 まる マグニチュ ード コンパレータのみでキャリ ー ロ ジッ ク が 使 用 さ れます。 16 ビ ッ ト の 多 入 力 ゲート ではキャ リ ー ロ ジッ ク が 使 用 さ れま すが、 12 ビット 以 下 のゲートでは 使 用 されません。 標 準 の ラ イ ブ ラ リ マクロでは、 MULT_AND ゲー ト は 使 用 されません。表 9-8 : キャリー ロジッ クを 使 用 するライブラリ マクロマクロ 名 説 明 スライス 数使 用 されるキャリー リソースAcct. 4 ビッ ト アキュムレータ 6 MUXCY、 XORCYAcct. 8 ビッ ト アキュムレータ 10 MUXCY、 XORCYAcct. 16 ビット アキュムレータ 18 MUXCY、 XORCYAdd 4 ビ ッ ト 加 算 器 3 MUXCY、 XORCYAdd 4 ビ ッ ト 加 算 器 5 MUXCY、 XORCYAdd 4 ビ ッ ト 加 算 器 9 MUXCY、 XORCYAddis 4 ビ ッ ト 加 減 算 器 3 MUXCY、 XORCYADSU8 4 ビ ッ ト 加 減 算 器 5 MUXCY、 XORCYADSU16 4 ビ ッ ト 加 減 算 器 9 MUXCY、 XORCYAND16 16 ビット AND ゲー ト 2 MUXCY302 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


キャリー ロジ ッ ク および 演 算 ロジ ッ ク を 使 用 し た 設 計R表 9-8 : キャリー ロジッ クを 使 用 するライブラリ マクロ ( 続 き)マクロ 名 説 明 スライス 数CC8CECC16CECC8/16CLECC8/16CLEDCC8/16REクリアおよびクロック イネーブル 付 き8 ビッ ト バイナリ カウンタクリアおよびクロック イネーブル 付 き16 ビット バイナリ カウンタク リ ア、ロードおよびクロ ッ ク イネーブル 付 き 8/16 ビッ ト バイナリ カウンタクリア、ロード、およびクロック イネーブル 付 き 8/16 ビッ ト 双 方 向 バ イ ナ リ カウンタリセットおよびクロック イネーブル 付き 8/16 ビッ ト バイナリ カウンタ5 MUXCY、 XORCY9 MUXCY、 XORCY9/17 MUXCY、 XORCY17/33 MUXCY、 XORCY9/17 MUXCY、 XORCYCOMPMC8 8 ビッ ト マグニチュード コンパレータ 8 MUXCYCOMPMC16 16 ビット マグニチュード コンパレータ 16 MUXCYNAND16 16 ビット NAND ゲー ト 2 MUXCYNOR16 16 ビット NAND ゲー ト 2 MUXCYOR16 16 ビット NAND ゲー ト 2 MUXCY使 用 されるキャリー リソース<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 303<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 9 章 : キャリー ロジ ッ ク および 演 算 ロジ ッ クの 使 用CORE Generator の 使 用ザイ リ ンク ス CORE Generator を 使 用 する と 、 複 雑 なフ ァ ンク ショ ンやカス タ マイ ズさ れたフ ァンク ショ ンを 生 成 できます。CORE Generator では MUXCY コ ンポーネント および MULT_ANDコ ン ポーネン ト を 使 用 する か、 専 用 乗 算 器 を 使 用 でき る ため、 乗 算 器 には CORE Generator を 使用 する 必 要 があり ま す。加 算 器CORE Generator ソ フ ト ウ ェ アの 加 算 器 および 加 減 算 器 コ ンポーネン ト では、 ラ イ ブ ラ リ マクロと同 様 にキ ャ リ ー ロ ジ ッ ク が 自 動 的 に 使 用 さ れます。 CORE Generator ソフトウェアでは、データ 幅 、レ ジ ス タ 付 き 出 力 など を 柔 軟 に 選 択 で き ます。.ASETSSETADDOVFLA[N:0] C_OUTA_SIGNEDS[P:0]B_SIGNEDB[M:0]BYPASSC_IND_OVFLD_C_OUTD[P:0]BYPASSCECLKQ_OVFLQ_C_OUTQ[P:0]ACLRSCLRAINITSINIT<strong>UG331</strong>_c11_18_073106図 9-18 : CORE Generator 加 減 算 器アキュムレータCORE Generator のアキ ュ ム レータは 加 減 算 器 に 似 ていますが、 レ ジ ス タ 付 き の 出 力 Q があ り、 加算 器 の A 入 力 にフ ィ ー ド バ ッ ク さ れます。 アキ ュ ム レータ を 使 用 し て 構 築 さ れたフ ァ ン ク シ ョ ンで、 <strong>Spartan</strong>-3 ジェネレーショ ンのキャ リー ロジックが 使 用 されています。コンパレータCORE Generator のコンパレータ ファンクションでもキャリー ロジックのインプリ メンテーションが 使 用 さ れています。304 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


キャ リ ーおよび 合 成 制 約R乗 算 器CORE Generator には、 キ ャ リ ー ロジックまたは 専 用 18 X 18 乗 算 器 を ターゲ ッ ト と する 乗 算 器 も含 まれています。 Multiplier コアのグラフィカル インターフェイスには、 乗 算 器 の 生 成 オプションがあ り ます。 [Use LUTs] が 選 択 されている 場 合 は、 キ ャ リ ー ロジックおよび MULT_AND ロジック が 使 用 さ れます。 [Use 18 x 18 Multiplier Blocks] が 選 択 さ れている 場 合 は、 専 用 18 X 18 乗 算 器が 使 用 されます。<strong>UG331</strong>_c11_19_073106図 9-19 : CORE Generator の Multiplier コアのカスタマイズ ウィンドウ論 理 ゲー トライブラリの 16 入 力 ゲー ト は、 キ ャ リ ー ロジックを 使 用 してインプリ メント されます。 ただし、CORE Generator の 基 本 システムの 論 理 ゲー ト はキ ャ リ ー ロジックではなく LUT でインプリ メントされます。 [Use RPMs] が 選 択 されている 場 合 、 フ ァ ン ク シ ョ ンはキ ャ リ ー ベースのフ ァ ン クシ ョ ン 同 様 の 列 に 配 置 されます。 演 算 フ ァ ン ク シ ョ ンでは、 [Use RPMs] が 選 択 されていな く て も常 にキ ャ リ ー ロジックが 使 用 されます。キャ リ ーおよび 合 成 制 約ほとんどの 合 成 ツールでは、 演 算 コンポーネントでキャ リー ロ ジ ッ ク が 自 動 的 に 使 用 さ れます。Synplicity 社 の Synplify および Mentor Graphics 社 の Precision ツールでは、 加 算 器 および 関 連 する 演 算 ファンクシ ョ ンでの MUXCY の 使 用 、 および 専 用 18 X 18 リソースを 使 用 しない 乗 算 器 での MULT_AND の 使 用 が 自 動 的 に 推 論 されます。 これら の リ ソースの 使 用 に 関 する 特 定 の 情 報 は、合 成 ツールのベンダにお 問 い 合 わせ く だ さ い。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 305<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 9 章 : キャリー ロジ ッ ク および 演 算 ロジ ッ クの 使 用ザイ リンクスの 合 成 ツール (XST) でもキャ リー ロ ジ ッ クおよび 演 算 ロ ジ ッ ク の 使 用 が 自 動 的 に 推論 されます。 合 成 制 約 USE_CARRY_CHAIN はローカルに も グ ローバルに も 設 定 で き、 ツールでキャ リー ロ ジ ッ ク が 必 ず 使 用 さ れる よ う に し ます。 自 動 合 成 を 試 し た 後 に 演 算 ロ ジ ッ ク が 使 用 さ れているデザインでこのオプションを 使 用 し、 インプリメンテーションの 効 率 が 上 がるかどうかを 確認 してください。 パラ メータは [Yes] または [No] のいずれかに 設 定 で き ます。MUX_STYLE 制 約MUX_STYLE 制 約 を 設 定 する と 、 XST で 使 用 されるマルチプレ ク サのイ ンプ リ メ ンテーシ ョ ンのタイプを 指 定 できます。 この 制 約 で、 マク ロ 生 成 ツールでの 乗 算 器 フ ァンクシ ョ ンのインプ リ メ ント 方 法 が 制 御 さ れます。 次 の 値 が 使 用 でき ます。• Auto : 最 適 な イ ンプ リ メ ンテーシ ョ ンが 合 成 ツールで 選 択 さ れます (デフォル ト)。• MUXF : 専 用 MUXF5、 MUXF6、 MUXF7、 または MUXF8 マルチプレ ク サが 使 用 さ れます。• MUXCY : 専 用 MUXCY キャ リー マルチプレ ク サが 使 用 さ れます。MUXF は、 LUT またはその 他 の MUXF フ ァ ン ク シ ョ ンの 出 力 を 組 み 合 わせて 汎 用 フ ァ ン ク シ ョンの 入 力 数 を 拡 張 する ために 使 用 さ れ、 専 用 入 力 で 制 御 さ れます。 MUXCY は、 1 つの LUT 入 力と 専 用 キ ャ リ ー 入 力 を 組 み 合 わせてキ ャ リ ー 出 力 を 駆 動 し て 演 算 キ ャ リ ーを 伝 搬 する ために 使 用 され、 LUT によ り 制 御 されます。 MUXF および MUXCY のファンクシ ョ ンはまったく 異 な り、 どちら の 使 用 が 適 し てい る かは 簡 単 にわか り ます。 詳 細 は、 第 8 章 「 専 用 マルチプレ ク サの 使 用 」 を 参照 してください。MULT_STYLE 制 約MULT_STYLE 制 約 を 設 定 する と 、 XST で 使 用 される 乗 算 器 インプリ メンテーショ ンのタイプを指 定 で き ます。 こ の 制 約 で、 マ ク ロ 生 成 ツールによ る 乗 算 器 マ ク ロの イ ンプ リ メ ン ト 方 法 が 制 御 されます。 次 の 値 が 使 用 でき ます。• Auto : 最 適 な イ ンプ リ メ ンテーシ ョ ンが 合 成 ツールで 選 択 さ れます (Project Navigator のデフォルト)。• Block : 専 用 MULT18X18 乗 算 器 が 使 用 さ れます。• LUT (コマンド ラインのデフォルト) : キャリー ロジックおよび MULT_AND ロジックを 使 用してインプリ メント されます。• Pipe_block : 専 用 MULT18X18S パイ プ ラ イ ン 乗 算 器 が 使 用 さ れます ( 将 来 の リ リ ースでサポー ト 予 定 )。• KCM : 定 数 係 数 乗 算 器 (コマンド ラインのみ)。• Pipe_LUT : レ ジ ス タ 付 き 入 力 および 出 力 があ る キ ャ リ ー ロジックおよび MULT_AND ロジ ッ ク を 使 用 するパイ プ ラ イ ン 乗 算 器 。こ れ ら の 乗 算 器 イ ンプ リ メ ンテーシ ョ ン を 試 し て、 デザ イ ンのパフ ォーマン スや 集 積 度 が 向 上 するかど うかを 確 認 してください。キャリーおよび 相 対 ロケーショ ン 制 約キャ リー ロジックは、 スライスの 1 つの 列 にイ ンプ リ メ ン ト された 場 合 に 最 も 効 率 が 良 く な り ます。 こ れは、 キ ャ リ ー チェーンが 各 列 で 下 か ら 上 に 直 接 接 続 さ れる ためです。 こ の 配 置 は 配 置 配 線ツールで 自 動 的 に 実 行 さ れるか、 ユーザーが 定 義 で き ます。306 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


キャ リ ーおよび 合 成 制 約Rキャ リー ロジックが 使 用 されているザイ リンクスのライブラ リ マクロおよび CORE Generator のマクロには、 FMAP および RLOC の 2 つの 制 約 を 使 用 し たマ ッ プ、 配 置 、 および 配 線 情 報 が 含 まれます。 FMAP シンボルは、ロジッ クをスライスのファンクシ ョ ン ジェネレータにマップするために 使 用 されます。 FMAP 制 約 では 各 LUT の 入 力 および 出 力 が 定 義 されます。 キャ リー ベース のファンクションでは、LUT の I1 または I2 入 力 のみが MUXCY または MULT_AND に 接 続 されるため、FMAP シンボルの こ れら の 入 力 ピ ンのいずれかには 演 算 入 力 が 必 要 です。 ほかの 2 つの 入 力が 未 使 用 の 場 合 は、 ダ ミ ーの 信 号 を 配 置 し て 演 算 入 力 が 配 置 さ れない よ う にで き ます。 FMAP シンボルは 主 に 相 対 配 置 に 使 用 さ れますが、 こ れには RLOC プ ロパテ ィ を 追 加 する 必 要 があ り ます。相 対 ロ ケーシ ョ ン (RLOC) 制 約 では、キ ャ リ ー ロジック コンポーネントおよび LUT の 相 対 配 置 が定 義 さ れます。 これらのマクロは RPM ( 相 対 配 置 マ ク ロ) と 呼 ばれます。 こ の 制 約 を 設 定 する と、<strong>FPGA</strong> チ ッ プ 上 で 絶 対 配 置 を 指 定 し な く て もデザ イ ン エレ メ ン ト に 順 序 と 構 造 を 指 定 で き ます。 フロ アプ ラ ンではロ ジ ッ ク の 絶 対 配 置 が 必 要 ですが、 RPM を 使 用 する と イ ンプ リ メ ンテーシ ョ ンツールでタ イ ミ ング 要 件 に 柔 軟 に 対 応 でき る よ う にな り ます。 相 対 配 置 の 利 点 は、 デバイ ス 内 でフ ァ ン ク シ ョ ン 全 体 が 移 動 さ れる こ と です。 た と えば、 加 算 器 に 同 じ 列 の 隣 り 合 ったス ラ イ スが 必要 であ る と 定 義 さ れてい る 場 合 、 ツールで 両 方 のス ラ イ スがデバイ ス 内 の 最 も 効 率 の よ い 場 所 に 配置 されます。RLOC 制 約 は、 フリ ップフロップと 共 に、MUXCY、 XORCY、 MULT_AND など、 どのキャ リープリ ミティブにも 設 定 できます。 RLOC 制 約 はゲー ト プ リ ミ テ ィ ブには 直 接 設 定 で き ませんが、FMAP コ ンポーネン ト を 使 用 し て 定 義 さ れた LUT には 設 定 で き ます。 <strong>Spartan</strong>-3 ジェネレーショ ンデザイ ンでは、 RLOC 制 約 は RLOC = X0Y0 のよ うに、 スライス ベースの XY 座 標 を 使 用 し て 指定 されます。 ス ラ イ ス 番 号 は XY 軸 を 使 用 し てチ ッ プの 左 下 隅 か ら 数 えてい き ます。 X 軸 は 左 か ら右 に 移 動 する に 従 っ て 増 加 し、Y 軸 は 下 か ら 上 に 移 動 する に 従 って 増 加 し ます。 CLB には 行 が 2 つと 列 が 2 つあ り、 CLB 内 でス ラ イ ス S2 (X1Y0) と S3 (X1Y1) は、 ス ラ イ ス S0 (X0Y0) と S1(X0Y1) に 水 平 に 並 んでいます。 相 対 制 約 のセ ッ ト は 階 層 の 各 部 分 に 独 立 し て 設 定 さ れ、 階 層 ブ ロ ック には 複 数 セ ッ ト の 相 対 制 約 を 指 定 で き ます。SLICEM( RAM)CLB SLICEL()COUTSLICEX1Y1SHIFTOUTSHIFTINSLICEX0Y1SLICEX0Y0COUTSLICEX1Y0CINCINDS099-2_05_082104図 9-20 : CLB 内 のス ラ イ ス 配 置<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 307<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 9 章 : キャリー ロジ ッ ク および 演 算 ロジ ッ クの 使 用キャリーおよびフロアプランRLOC は、 HDL コー ド ま たは 回 路 図 で 直 接 指 定 するか、 Floorplanner で 定 義 するか、 制 約 フ ァ イルに 書 き 込 むこ と ができ ます。 キャ リー ベースのフ ァ ン ク シ ョ ン も PACE (Pinout and AreaConstraints Editor) を 使 用 して 配 置 できます。 PACE および Floorplanner のどちらでも、RPM は 常に 1 つのグループ と し て 配 置 されます。キャ リー ベースのフ ァ ン ク シ ョ ンは、 上 が MSB と な る 列 に 配 置 さ れる ため、 関 連 する フ ァ ン クシ ョ ン も 同 様 に 配 置 さ れる 必 要 があ り ます。 データ 入 力 は、 左 辺 または 右 辺 の、 上 が MSB となるCLB または IOB の 列 か ら 供 給 さ れる 必 要 があ り ます。RLOC 制 約 を 使 用 する と 、 ロ ジ ッ ク ブ ロ ッ ク を 相 対 的 に 配 置 する よ う に 指 定 で き る ため、 速 度 が 向上 し、 チップ リ ソ ース を 効 率 的 に 使 用 で き ます。 相 対 ロ ケーシ ョ ン 制 約 を 定 義 する 場 合 、 ターゲ ット デバイ スの 列 の 長 さ を 考 慮 し、 1 列 に 収 ま る よ う にし ます。 エリア 制 約 が 1 列 に 収 ま ら ない 場 合は、 複 数 の 列 にフ ィ ッ ト する よ う にキ ャ リ ー パスが 自 動 的 に 分 割 さ れます。 1 つのス ラ イ スには 2つの LUT があ り 、 下 部 の 2 つの FMAP は RLOC=X0Y0、 次 の 2 つは RLOC=X0Y1 という ように 割 り 当 てます。 ADD4 ライブラリ コンポーネントの 例 は、 図 9-21 を 参 照 して く ださい。B3A3I3RLOC=X0Y1dummydummyB3A3FMAPI3RLOC=X0Y1B2A2I2RLOC=X0Y1dummydummyB2A2FMAPI2RLOC=X0Y1B1A1I1RLOC=X0Y0dummydummyB1A1FMAPI1RLOC=X0Y0A[3:0]B[3:0]B0A0I0RLOC=X0Y0FMAPdummydummyI0B0A0RLOC=X0Y0<strong>UG331</strong>_c11_21_080606図 9-21 : ADD4 回 路 図 のイ ンプ リ メ ンテーシ ョ ン相 対 ロ ケーシ ョ ン 制 約 の 詳 細 は、 ラ イ ブ ラ リ ガ イ ド および 『 制 約 ガ イ ド 』 を 参 照 し て く だ さ い。 相対 ロケーシ ョ ンを 両 方 のスラ イスおよびブロッ ク RAM などのその 他 の リ ソースに 設 定 する 場 合は、 アプ リ ケーシ ョ ン ノート XAPP416 『Using an RPM Grid Macro to Control Block RAM-to-FFTiming』 に 説 明 さ れてい る RPM GRID システムを 使 用 してください。308 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


応 用R応 用キャ リー ロ ジ ッ ク の 最 も 直 接 的 な 応 用 は 演 算 フ ァ ン ク シ ョ ンですが、ほかの タ イ プの ロ ジ ッ ク に も使 用 で き ます。多 入 力 ゲー トMUXCY は LUT で 制 御 さ れ、 入 力 を リ ソース を 使 用 せずに 0 または 1 に 固 定 でき る ため、 汎 用 ロジ ッ ク で 有 益 です。 図 9-22 に 示 すよ う に、 B が High の 場 合 に 入 力 A が 選 択 される と 、 AND ゲートをマルチプレクサにインプリメントできます。 マルチプレ クサの 0 側 の 0 データはス ラ イ ス 内 の固 定 入 力 と し て 使 用 さ れ、 リ ソ ース を 必 要 と し ません。A*BB0 10A<strong>UG331</strong>_c11_22_080106図 9-22 : MUXCYマルチプレクサの AND ゲー ト と し ての 使 用図 9-23 に 示 すよ う に、 ス ラ イ スの 2 つの LUT と 2 つの MUXCY を 使 用 する と 、 各 ス ラ イ ス で 4入 力 フ ァ ン ク シ ョ ン 2 つを 1 つの 出 力 に 組 み 合 わせる こ と がで き ます。F*GLUTG0 1MUXCYLUTF00 1MUXCY01<strong>UG331</strong>_c11_23_080106図 9-23 : スライスの MUXCY を 使 用 して 2 つの 4 入 力 フ ァ ン ク シ ョ ン を AND 結 合MUXCY の 1 入 力 の 初 期 値 1 は、 <strong>FPGA</strong> ス トラクチャ 内 のグローバル 1 信 号 のいずれか 1 つから供 給 で き ます。 または、 9 番 目 の 入 力 に 接 続 し て 9 入 力 AND ゲー ト を 生 成 する こ と もでき ます。AND フ ァ ン ク シ ョ ン を 反 転 する と 、 同 様 の 効 率 の NAND、 OR、 または NOR ゲー ト に 変 換 で き ます。 1 は MUXCY データ 入 力 で も 使 用 可 能 ですが、 初 期 値 0 は 任 意 の 未 使 用 LUT で 生 成 されます。こ の 多 入 力 ロ ジ ッ ク ファンクションをインプリ メントするとパフォーマンスが 向 上 し、 <strong>FPGA</strong> リソ ース を よ り 有 効 に 活 用 で き ます。 キャ リー チェーンによ り 複 数 のロジッ ク レベルが 削 減 され、 出力 までのパスが 速 く な り ます。 ゲー ト 幅 の 唯 一 の 制 限 は 列 当 た り の LUT 数 で、フ ァ ン ク シ ョ ン 当 たり 400 個 を 超 える LUT を 使 用 できます。 一 般 的 な 用 途 は 多 入 力 デコー ド 、 コ ンパレータ、 およびカウンタです。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 309<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 9 章 : キャリー ロジ ッ ク および 演 算 ロジ ッ クの 使 用ザイ リンクス ライブラリの 16 入 力 ゲー ト では、MUXCY ロジックが 使 用 されます ( 図 9-24 参 照 )。12 入 力 以 下 のゲー ト では、 複 数 のレベルの LUT が 使 用 されます。OUT4LUTMUXCY0 10Slice4LUTMUXCY0 1016ANDOUT4LUTMUXCY0 10Slice4LUTMUXCY0 1V CC<strong>UG331</strong>_c11_24_080106図 9-24 : キャリー ロジッ クを 使 用 するライブラリ AND16 のインプリ メンテーショ ン多 入 力 ロ ジ ッ ク ファンクションは、F5MUX および FiMUX (F6MUX、 F7MUX、 F8MUX) を 使 用しても 作 成 できます。 これらのマルチプレクサは 同 じ CLB のフ リ ッ プフ ロ ッ プに 直 接 接 続 する ため、 レジス タ 付 きのフ ァ ン ク シ ョ ンではさ らに 効 率 が 良 く 、 1 つのロ ジ ッ ク レベルに 最 大 8 入 力 の任 意 のフ ァ ン ク シ ョ ンおよび 最 大 79 入 力 のフ ァ ン ク シ ョ ン を 生 成 で き ます。 詳 細 は、 アプ リ ケーション ノート XAPP466 『Using Dedicated Multiplexers in <strong>Spartan</strong>-3 Generation <strong>FPGA</strong>s』 を 参 照してください。積 和一 般 的 な ロ ジ ッ ク の 記 述 は 常 に <strong>Spartan</strong>-3 アーキテクチャの 4 入 力 LUT に 最 適 化 さ れ、 必 要 な リソ ースが 最 小 限 にな り ます。 ザイ リンクスのソフ ト ウェアでロジックを LUT 構 造 にフ ィ ッ ト さ せる 最 適 化 は 非 常 に 効 率 が よ く 、 制 限 は 入 力 数 のみでフ ァ ン ク シ ョ ンの タ イ プには 制 限 があ り ません。CPLD などの 一 部 のロジッ ク アーキテク チャでは、 多 入 力 AND ゲート と その 後 の OR ゲート を 使用 し て 積 和 構 造 が 組 み 込 ま れま す。 多 入 力 AND ゲート は <strong>Spartan</strong>-3 <strong>FPGA</strong> ではキャ リ ー ロジックを 使 用 し てイ ンプリ メ ン ト さ れま す。 OR は、 1 つの 高 速 LUT に 組 み 合 わせら れる 最 大 4 入 力 のAND ゲート を 使 用 し て LUT でインプリ メ ント されます。 キャリ ー ベース の AND ゲート では 上 方向 に 出 力 さ れる ため、OR LUT は 列 ベース の AND ゲート の 上 にある CLB に 配 置 さ れる 必 要 があります。ORCY ファンクションは Virtex-II および Virtex-II Pro ファミ リではキャリー ベースの AND ゲートを OR 処 理 する ために 使 用 さ れますが、 <strong>Spartan</strong>-3 <strong>FPGA</strong> では 使 用 でき ません。 代 わ り に LUT を使 用 する と CLB が 小 型 にな り コ ス ト も 削 減 さ れ、 配 置 の 柔 軟 性 が 向 上 し ます。310 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


応 用RコンパレータMUXCY の AND フ ァ ン ク シ ョ ン を 拡 張 する と、 ス ラ イ ス ご と に 4 ビッ ト 値 が 2 つの 等 号 コ ンパレータをインプ リ メ ン ト できます。A=BA3B3A2B2A3=B3A2=B2A(2:3)=B(2:3)001MUXCYA1B1A0B0A1=B1A0=B0A(0:1)=B(0:1)0 1 MUXCY0 1<strong>UG331</strong>_c11_25_080106図 9-25 : 1 つのス ラ イ スの 等 号 コ ンパレー タキャ リー ロジックを 使 用 して、 スライスごとに 2 ビッ トのマグニチュード コンパレータもインプリメントできます。B1A1A1=B10 1 MUXCYA0 < B0A0=B0A0B0 0 1MUXCY<strong>UG331</strong>_c11_26_080106図 9-26 : 1 つのスラ イスのマグニチュー ド コンパレータロジック ゲー ト 同 様 、 イ ンバータ を 使 用 し て 不 等 号 コ ンパレータ またはその 他 の コ ンパレータ を 生成 でき ます。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 311<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 9 章 : キャリー ロジ ッ ク および 演 算 ロジ ッ クの 使 用加 算 器加 算 器 は、 前 述 の よ う にキ ャ リ ー ロ ジ ッ ク の 基 本 的 なフ ァ ン ク シ ョ ンです。 ロジック セル 当 た り 2ビ ッ ト を 加 算 で き ます。FunctionGeneratorCOUTMUXCYBA 0 1SumDQCINXORCY<strong>UG331</strong>_c11_27_080106図 9-27 : 基 本 的 な 加 算 器 セルカウンタバイナリ カ ウ ン タは、 下 位 のフ リ ッ プフ ロ ッ プがすべて High の 場 合 は 各 フ リ ッ プフ ロ ッ プを ト グルしてインプリ メン トできます。 図 9-28 に、 ト グル フリ ップフロップを 使 用 した 一 般 的 なバイナリ アップ カウンタを 示 します。 下 位 のビ ッ ト がすべて High の 場 合 に 各 ビ ッ ト が ト グルし ます。AND ゲー ト が 各 ビ ッ ト に 必 要 で、 カウ ン タが 大 き く な るに 従 いビ ッ ト 数 も 大 き く な り ます。TQTQTQTQ1 T Q<strong>UG331</strong>_c11_28_080106図 9-28 : バイナリ カウンタ312 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


応 用Rこ れ ら の 多 入 力 AND ゲー ト にも キャ リ ー ロジッ クを 使 用 でき、 異 なる 幅 でゲート を 複 製 する 必 要がな く な り ます。 図 9-29 に、 AND ゲー ト の 代 わ り に MUXCY を 使 用 する 同 じバイナリ カウンタを 示 し ます。 各 MUXCY で AND ゲー ト の 幅 がカウンタの 各 ステージで 必 要 なビ ッ ト 分 拡 張 され、重 複 し た ロ ジ ッ ク はあ り ません。 パフォーマンスの 限 界 は 多 入 力 AND ゲー ト ではな く 、 キ ャ リ ーチェーンの 伝 搬 のみです。MUXCY0 10TQMUXCY0 10TQMUXCY0 10TQMUXCY0 10TQ1 T Q<strong>UG331</strong>_c11_29_080106図 9-29 : AND ゲー ト の 代 わ り に MUXCY を 使 用 したバイナリ カウンタ図 9-30 に、ス ラ イ スの D フリ ップフロップを 使 用 したキャ リー ベースのバ イナ リ カウンタのインプリメンテーションを 示 します。 インバータおよび XOR ゲー ト は 各 フ リ ッ プフ ロ ッ プの 前 の LUTでインプリ メン ト されます。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 313<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 9 章 : キャリー ロジ ッ ク および 演 算 ロジ ッ クの 使 用MUXCY0 10DQMUXCY0 10DQMUXCY0 10DQMUXCY0 10DQMUXCY0 10 1DQ<strong>UG331</strong>_c11_30_080606図 9-30 : D フリップフロップを 使 用 したバイナリ カウンタ乗 算 器乗 算 は 通 常 部 分 積 を 生 成 し、 結 果 を 加 算 する こ と で 実 行 さ れます。 キャ リー ロジックによ り、 デザイ ンが 両 面 か ら 最 適 化 さ れます。1 ビ ッ ト の 乗 算 は 論 理 的 には と て も 単 純 で、 必 要 なのは AND ゲー ト のみです。 これらの AND ゲート では、 入 力 値 が 渡 さ れるか 部 分 積 が 完 全 に 0 にされるかのいずれかです。A3A3A2A1FirstPartialProductA2A1SecondPartialProductA0A0B0B1図 9-31 : 部 分 積 の 生 成<strong>UG331</strong>_c11_31_080206その 後 、 すべての 部 分 積 を 適 切 なビ ッ ト の 重 みで 加 算 する 必 要 があ り ます。 クロック サイクルが 十分 であれば、 アキ ュ ム レータ に 基 づ く シ リ アルのシフ ト と 加 算 と い う 一 般 的 な 方 法 を 適 用 で き ますが、 パ ラ レル 乗 算 器 で 最 高 のパフ ォーマン ス を 達 成 する には、 加 算 ツ リ ーが 必 要 と な り ます。 このツリーは、パフォーマンスを 向 上 させる 場 合 はパイプライン 処 理 レジスタを 付 けた、キャリー ベースの 加 算 器 を 使 用 して 効 率 よ く インプリ メン ト されます。314 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


応 用RA3A2A1A0++++COUTP4P3P2P1B1B0+ P0‘0’ CIN<strong>UG331</strong>_c11_32_011508図 9-32 : 部 分 積 の 乗 算これらの AND ゲー ト は、 CLB の MULT_AND および LUT でインプリ メン ト されます。ALUTCY_MUXMULT_ANDCY_XORA x BDedicatedAND GateB<strong>UG331</strong>_c11_33_080206図 9-33 : 乗 算 器 のイ ンプ リ メ ンテーシ ョ ン<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 315<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 9 章 : キャリー ロジ ッ ク および 演 算 ロジ ッ クの 使 用キャリー ベースの 乗 算 器 の 最 適 化290 ページの 図 9-9 に、 キ ャ リ ー ロジックおよび 演 算 ロジックを 使 用 して、 2 ビ ッ ト ずつ 乗 算 する方 法 を 示 し ます。 こ の 場 合 、 入 力 のいずれかを 2 ビ ッ ト ずつに 分 割 し、 部 分 積 を 加 算 ツ リ ーで 組 み合 わせる 必 要 があ り ます。 小 さい 方 の 値 を 2 ビ ッ ト 単 位 に 分 割 する 方 が、 加 算 器 に 必 要 な ロ ジ ッ クのレベルが 少 なくなります。 ま た 分 割 さ れる 入 力 のビ ッ ト 数 が 2 のべき 数 であれば、 よ り 対 称 になります。たとえば 8 ビッ ト 値 X 12 ビッ ト 値 の 乗 算 器 では、 図 9-34 と 図 9-35 の 2 とおりのインプリ メンテーシ ョ ンが 可 能 です。AB128++++14141414+16163 (3 )54 ++20<strong>UG331</strong>_c11_34_080606図 9-34 : 12 X 8 乗 算 器 で 8 ビ ッ ト の 入 力 を 2 ビッ トずつに 分 割A8++++10101010++1212+16+20B12++1010+124 72 <strong>UG331</strong>_c11_35_080606図 9-35 : 8 X 12 乗 算 器 で 12 ビ ッ ト の 入 力 を 2 ビットずつに 分 割8 は 2 のべき 乗 であ る ため、12 X 8 は 最 初 の 段 で 4 つの 乗 加 算 器 に 分 割 さ れ、 対 称 な 3 レベルの 加算 ツ リーに 分 割 されます。 一 方 、 8 X 12 は 対 称 にはな り ません。 最 初 の 段 の 6 つの 乗 加 算 器 は 容 易に 加 算 されず、 4 レベルの ロ ジ ッ ク と な り 、 加 算 器 の 数 も 多 く な り ます。 完 全 にパイ プ ラ イ ン 化 された 乗 算 器 にする には、 遅 延 調 整 が 必 要 です。316 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


応 用R8 X 12 の 乗 加 算 器 および 加 算 器 は 通 常 12 X 8 よ りもビット 数 は 少 なくなりますが、<strong>Spartan</strong>-3 アーキテ ク チ ャ の 効 率 の 良 いキ ャ リ ー ベースの 加 算 器 を 使 用 する と 、パフ ォーマン スへの 影 響 を 最 小 限に 抑 え る こ と ができ ます。 どち ら の 乗 算 器 も 最 後 の 段 には 同 じ 最 大 サイ ズの 加 算 器 が 生 成 されます。 組 み 合 わせ 乗 算 器 のパフ ォーマン スはロ ジ ッ ク レベル 数 で 決 ま り、 この 場 合 は 12 X 8 の 方 が高 いパフ ォーマン スが 得 られます。各 デザ イ ン 入 力 ツールで 複 雑 なフ ァ ン ク シ ョ ンがどの よ う に 処 理 さ れる かは 予 測 が 困 難 なので、 異なるインプリ メンテーションを 試 してください。 単 純 に 入 力 の 順 序 を 入 れ 替 え るだけで もパフ ォーマン スや リ ソースの 量 に 大 き な 違 いが 出 る こ と があ り ます。MULT_AND と MULT18X18MULT_AND をキャ リー ロ ジ ッ ク と 組 み 合 わせる と 、 小 型 の 乗 算 器 を 効 率 よ く イ ンプ リ メ ン ト で きます。 乗 算 器 は、 デバイ スのどの 列 にで も 配 置 で き ます。 大 型 の 乗 算 器 では、 CLB リソースを 使 用せずに 2 つの 18 ビ ッ ト 符 号 付 き ま たは 2 つの 17 ビッ ト 符 号 なしの 値 を 高 速 で 乗 算 できるように、専 用 の MULT18X18 リソースを 使 用 する 必 要 があります。 集 積 度 に よ っ て、 <strong>Spartan</strong>-3 には4 ~ 104 の 専 用 乗 算 器 が、 <strong>Spartan</strong>-3A DSP には 84 ~ 126 の DSP48A ブロックがあり ます。 CLBリ ソースが 限 られている 場 合 は、 小 型 のファンクシ ョ ンにも 専 用 リ ソースを 使 用 する 必 要 があ り ます。 専 用 リ ソ ースは、 大 型 のフ ァ ン ク シ ョ ンで 特 に 入 力 と 出 力 が CLB フリ ップフロップとパイプライ ン 化 さ れてい る 場 合 に 高 速 で、 150MHz を 超 え る 乗 算 が 可 能 です。 詳 細 は、 第 11 章 「エンベデ ッド 乗 算 器 の 使 用 」 を 参 照 して く ださい。MULT_AND と CLB ロジック小 型 で 単 純 な 乗 算 器 では、MULT_AND ロ ジ ッ ク も 必 要 でない 場 合 があ り ます。 2 n での 乗 算 では 値を n 分 シフ ト するだけで 良 く 加 算 は 不 要 なので、 SRL16 ま たはその 他 の リ ソース を 使 用 で き ます。小 型 の 乗 算 器 は LUT でインプ リ メ ン ト でき、 マルチプレ クサを 使 用 して 入 力 数 を 拡 張 する こ と も可 能 で、 MULT_AND ベースの 乗 算 器 の 列 ベースの 要 件 が 削 除 さ れます。その 他 のタ イ プの 乗 算 器ほかにも、 LUT ベースの 乗 算 器 ロ ジ ッ ク の 方 が 効 率 が 良 い 乗 算 器 があ り ます。 たとえば、2 進 数 ではな く CSD (Canonic Signed Digits) を 使 用 する と 、 減 算 で 表 現 が 圧 縮 さ れ、0 ではないビ ッ ト の 数を 最 小 にでき るため、 効 率 を 上 げる こ とができます。 たとえば 119 での 乗 算 は、 通 常 は (2 6 + 2 5 +2 4 + 2 2 + 2 1 + 2 0 )*X となりますが、 CSD では (2 7 - 2 3 - 2 0 )*X となります。xX 2 6 X 2 5 X 2 4 X 2 2 X 2 1+ + + + +119*x<strong>UG331</strong>_c11_36_080306図 9-36 : 5 つのシフ タ と 5 つの 加 算 器 が 使 用 される 2 進 数 乗 算 (119 での 乗 算 )<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 317<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 9 章 : キャリー ロジ ッ ク および 演 算 ロジ ッ クの 使 用xX 2 7 X 2 3- -119*x<strong>UG331</strong>_c11_37_011508図 9-37 : 3 つの 乗 算 器 と 3 つの 加 算 器 が 使 用 される CSD 乗 算 (119 での 乗 算 )まとめ専 用 キ ャ リ ー ロ ジ ッ ク を 利 用 する と 、 高 速 の 加 算 および 減 算 を 実 行 で き ます。 <strong>Spartan</strong>-3 ジェネレーション CLB にはス ラ イ ス 当 た り 2 ビッ トの 2 つの 独 立 し たキ ャ リ ー チェーンがあり ます。 専 用キャ リー パスおよびキャ リー マルチプレ クサを 使 用 して、 フ ァ ン ク シ ョ ン ジェネレータをカスケー ド 接 続 し、 多 入 力 ロ ジ ッ ク ファンクションをインプリ メントすることもできます。 演 算 ロ ジ ックには XOR ゲー ト が 含 まれ、2 ビ ッ ト の 全 加 算 器 を 1 つのス ラ イ ス 内 でイ ンプ リ メ ン ト でき ます。さらに 専 用 AND ゲー ト を 使 用 する と 、 乗 算 器 の イ ンプ リ メ ンテーシ ョ ンの 効 率 が 上 が り ます。 これ ら の リ ソ ースは 合 成 ツールで 自 動 的 に 使 用 さ れる か、 明 示 的 に 呼 び 出 し ます。関 連 資 料 および リ フ ァ レ ンスキャ リー プリ ミティブおよびキャリー ベース のマ ク ロ の 情 報 は、 次 のサ イ ト か ら ラ イ ブ ラ リ ガイド を 参 照 し て く だ さ い。http://japan.xilinx.com/support/software_manuals.htmCORE Generator のコンポーネン トの 情 報 は、 次 のサイ ト を 参 照 してください。http://japan.xilinx.com/products/design_tools/logic_design/design_entry/coregenerator.htm318 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 10 章I/O リ ソースの 使 用<strong>Spartan</strong>®-3 ジェネレーション <strong>FPGA</strong> では、 信 号 は I/O ブロッ ク (IOB) を 介 し て 入 出 力 し ます。<strong>FPGA</strong> は 高 度 なアプ リ ケーシ ョ ンで 使 用 されるため、 多 様 な I/O 機 能 をサポー ト する 必 要 があ り ます。 <strong>Spartan</strong>-3 ジェネレーショ ン <strong>FPGA</strong> の 革 新 的 な SelectIO 入 力 / 出 力 機 能 は こ のニーズに 応 えた高 度 に コ ン フ ィ ギ ュ レーシ ョ ン 可 能 で 高 性 能 な リ ソ ース を 備 えてお り 、 高 速 な メ モ リ やプ ロ グ ラ ム可 能 なバ ッ ク プレーン インターフェイスのようなアプリケーションに 最 適 です。<strong>Spartan</strong>-3 ジェネレーショ ン <strong>FPGA</strong> では、 入 力 および 出 力 に I/O 規 格 を 選 択 する だけで 高 性 能 なデザインを 簡 単 に 作 成 できます。 各 プ ラ ッ ト フ ォームで、 電 流 、 電 圧 、 I/O バ ッ フ ァ、 および 終 端 の仕 様 が 異 な る 20 以 上 の 規 格 がサポー ト さ れてい ます。 このため、<strong>Spartan</strong>-3 ジェネレーション<strong>FPGA</strong> を 使 用 して 個 別 の 変 換 器 を 統 合 し、 非 常 に 高 度 なバッ クプレーン、 バス、 およびメモリのほと んど を 直 接 駆 動 で き ます。 必 要 な イ ン ターフ ェ イ ス 規 格 が 直 接 供 給 さ れる こ と で 外 部 変 換 器 が 不要 にな る だけでな く 、 チ ッ プ 間 の 通 信 速 度 および 電 力 消 費 が 大 幅 に 改 善 さ れます。この 章 では、 I/O 機 能 を 最 大 限 に 活 用 する 方 法 およびシ ス テム レベルのデザ イ ン を 改 善 し 簡 略 化 する ための 考 慮 事 項 について 説 明 し ます。 次 の 内 容 が 含 まれます。• 「IOB 概 要 」• 「<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> 間 の I/O の 相 違 」• 「デザ イ ン 入 力 」• 「アーキテクチャの 詳 細 」• 「SelectIO 信 号 規 格 」• 「IOB の 電 源 電 圧 」IOB 概 要IOB ( 入 力 / 出 力 ブ ロ ッ ク) は、 パ ッ ケージ ピンと <strong>FPGA</strong> の 内 部 ロ ジ ッ ク を 接 続 する、 プ ロ グ ラ ム 可能 な 単 一 方 向 ま たは 双 方 向 の イ ン ターフ ェ イ スで、 さ ま ざ ま な 規 格 の イ ン ターフ ェ イ ス をサポー トしています。 IOB の 機 能 には、 出 力 電 流 およびスルー レー ト の 制 御 、 専 用 DDR (ダブル データ レート ) レ ジ ス タ 付 き のレ ジ ス タ 付 き または 組 み 合 わせ 入 力 および 出 力 、プ ロ グ ラ ム 可 能 な 入 力 遅 延 、オンチ ッ プ 終 端 、 およびホ ッ ト ス ワ ッ プ 機 能 が 含 まれます。321 ページの 図 10-1 は、 IOB の 内 部 構 造 を 単 純 化 し た も のです。 IOB 内 部 には 主 要 な 信 号 パス が3 つあ り ます。 これは 出 力 パス、 入 力 パス、 ト ラ イ ス テー ト パスで、 各 パスにあ る 記 憶 エ レ メ ン トのペアはレジス タ またはラ ッチの 役 割 を 果 た し ます。 詳 細 は、 333 ページの 「 記 憶 エレ メ ン ト ファンクション」 を 参 照 して く ださい。 これら 3 つの 信 号 パスは、 次 の とお り です。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 319<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 10 章 : I/O リ ソースの 使 用• 入 力 パス : データ を、 パ ッ ケージ ピンにボンディングされたパッ ドからオプショ ンのプログラム 可 能 な 遅 延 エレ メ ン ト を 介 し、 直 接 I ラ イ ンに 伝 送 し ます。 遅 延 エレ メ ン ト を 通 過 し た 後 、 記憶 エレ メ ン ト のペアを 介 して IQ1 および IQ2 ラ イ ンに 伝 送 する こ と も 可 能 です。 IOB 出 力 I、IQ1、 および IQ2 は <strong>FPGA</strong> の 内 部 ロ ジ ッ ク に 接 続 し ます。 遅 延 エレ メ ン ト を 設 定 する と 、 ホールド タイムが 0 にな り ます ( 「 入 力 遅 延 フ ァ ン ク シ ョ ン」 参 照 )。• 出 力 パス : O1 ラインおよび O2 ラ イ ンで 開 始 し、 データ を <strong>FPGA</strong> の 内 部 ロ ジ ッ ク か ら マルチプレクサおよびト ライステート ドライバを 介 し、IOB パ ッ ド に 伝 送 し ます。 この 直 接 パスに 加え、 マルチプレ ク サで 記 憶 エレ メ ン ト のペアを 挿 入 する こ と も で き ます。• トライステート パス : 出 力 ド ラ イ バをいつハイ イ ン ピーダン スにする かを 決 定 し ます。 T1 ラインおよび T2 ラインは、データを <strong>FPGA</strong> の 内 部 ロジックからマルチプレクサを 介 し、 出 力 ドライバに 伝 送 します。 こ の 直 接 パスに 加 え、 マルチプレ ク サで 記 憶 エレ メ ン ト のペアを 挿 入 することもできます。IOB に 入 力 する 信 号 パスには 記 憶 エレ メ ン ト も 含 め、 すべてに イ ンバータ のオプシ ョ ンがあ り ます。 こ れら のパスに 配 置 さ れた イ ンバータはすべて 自 動 的 に IOB に 組 み 込 まれます。320 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


IOB 概 要RTT1DQTFF1CETCECKSRREVDDRMUXT2DCEQTFF2CKSRREVO1OTCLK1OCEO2OTCLK2DCECKSRDCECKSRQREVQREVOFF1OFF2DDRMUXKeeperLatchV CCOESDESDI/OILVCMOSLVTTLPCIIQ1IDDRIN1IDDRIN2ICLK1ICEIQ2DCECKSRDCEQREVQIFF1IFF2V REF V REFIOBI/O ICLK2SRCKSRREVREVDS312-2_19_111206メモ :1. IOB 制 御 および 出 力 パス 信 号 にはすべて、 IOB 内 で 極 性 を 反 転 する オプシ ョ ンがあ り ます。2. 破 線 で 示 された IDDRIN1/2 信 号 は、 <strong>FPGA</strong> フ ァ ブ リ ッ ク にではな く 、 差 動 ペア 内 の 隣 接 する IOB に 接 続 し ます。図 10-1 : 単 純 化 された IOB の 図<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 321<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 10 章 : I/O リ ソースの 使 用<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> 間 の I/O の 相 違I/O の 基 本 的 な 機 能 は、 すべての <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> で 同 じですが、 細 かい 点 ではさまざまな 違 いがあります。デバイスご とのリ ソース 数第 1 章 「 概 要 」 には、 各 デバイ ス/パ ッ ケージの 組 み 合 わせでの I/O リソース 数 が 示 されています。表 10-1 には、 各 デバイ ス/パ ッ ケージの 組 み 合 わせでの I/O リ ソ ースの 最 大 数 を 示 し ます。表 10-1 : <strong>Spartan</strong>-3 ジェネレーション デバイスご との I/O の 最 大 数<strong>Spartan</strong>-3A DSP<strong>FPGA</strong>I/O<strong>Spartan</strong>-3AN<strong>FPGA</strong>I/O<strong>Spartan</strong>-3A<strong>FPGA</strong>I/O<strong>Spartan</strong>-3E<strong>FPGA</strong>I/O<strong>Spartan</strong>-3<strong>FPGA</strong>I/OXC3SD1800A 519 XC3S50AN 108 XC3S50A 144 XC3S100E 108 XC3S50 124XC3SD3400A 469 XC3S200AN 195 XC3S200A 248 XC3S250E 172 XC3S200 173XC3S400AN 311 XC3S400A 311 XC3S500E 232 XC3S400 264XC3S700AN 372 XC3S700A 372 XC3S1200E 304 XC3S1000 391XC3S1400AN 502 XC3S1400A 502 XC3S1600E 376 XC3S1500 487XC3S2000 565XC3S4000 633XC3S5000 6335 つのプラ ッ ト フォームで、 異 なるアプ リ ケーシ ョ ンに 対 応 するソ リ ューシ ョ ンが 提 供 されています。 <strong>Spartan</strong>-3A DSP <strong>FPGA</strong> は、デジ タル 信 号 処 理 などの ロ ジ ッ ク 重 視 型 のアプ リ ケーシ ョ ン 用 に 最適 化 さ れています。 <strong>Spartan</strong>-3AN <strong>FPGA</strong> は、 不 揮 発 性 <strong>FPGA</strong> ソリューションを 提 供 します。<strong>Spartan</strong>-3A <strong>FPGA</strong> はゲー ト 当 た り の I/O 数 が 最 大 で、 I/O 重 視 型 のアプ リ ケーシ ョ ンでは 最 高 の コスト パフォーマンスが 得 られます。 <strong>Spartan</strong>-3E <strong>FPGA</strong> は I/O 当 た り のゲー ト 数 が 多 く、 I/O よ りもロ ジ ッ ク 重 視 型 のアプ リ ケーシ ョ ンで 高 い コ ス ト パフォーマンスが 得 られます。 I/O 比 の 違 いは 主に、 <strong>Spartan</strong>-3A/3AN/3A DSP <strong>FPGA</strong> では I/O 列 がデバイ ス を 2 重 に 取 り 囲 み、 1 列 目 と 2 列 目 のI/O 列 が 互 い 違 いに 配 置 されている ス タ ッ ガ 型 であ り 、 <strong>Spartan</strong>-3E <strong>FPGA</strong> ではデバイ スを 囲 む I/Oが 1 重 の イ ン ラ イ ン 型 であ る こ と が 理 由 です。 <strong>Spartan</strong>-3 <strong>FPGA</strong> のソ リ ューションではゲート、 I/O共 に 集 積 度 が 高 く 、 I/O はスタ ッガ 型 です。入 力 専 用 ピ ンI/O リ ングを 最 適 化 し コ ス ト を 削 減 で き る よ う に、 <strong>Spartan</strong>-3A、 <strong>Spartan</strong>-3AN、 <strong>Spartan</strong>-3A DSP、および <strong>Spartan</strong>-3E <strong>FPGA</strong> の I/O ブ ロ ッ ク の 一 部 は 入 力 専 用 ピ ンになっています。 専 用 入 力 は、 入 力と し てのみ 使 用 可 能 な IOB で、 ピン 名 は、IP_x や IP_Lxxx_x のよ うに IP で 始 ま っています。 専 用入 力 は、 差 動 入 力 (IP_Lxxx_x) 以 外 の IOB の 入 力 機 能 を 完 全 に 備 えています。 差 動 専 用 入 力 では、オンチ ッ プ 差 動 終 端 は 使 用 で き ません。 オンチ ッ プ 差 動 終 端 を 使 用 する には、 出 力 (IO_Lxxx_x) をサポー ト する 差 動 ペアを 選 択 する か、 外 部 100Ω の 終 端 抵 抗 をボー ド 上 で 使 用 し ます。単 一 方 向 の 入 力 専 用 ブ ロ ッ ク は、 完 全 な IOB 機 能 のサブセ ッ ト を 備 えてお り 、 出 力 パスには 接 続 もロジックもありません。 次 の 説 明 で、 出 力 機 能 に 関 する 内 容 は 入 力 専 用 ブ ロ ッ ク には 適 用 さ れないものとします。 入 力 専 用 ブ ロ ッ ク の 数 はデバイ ス のサ イ ズに よ り 異 な り ますが、 IOB 数 の 合 計 の25% を 超 える こ とはあ り ません。 各 デバイ ス/パ ッ ケージの 組 み 合 わせにおけ る 入 力 専 用 ピ ンの 数は、 第 1 章 「 概 要 」 を 参 照 して く ださい。322 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> 間 の I/O の 相 違Rパッケージ フットプリントの 互 換 性アプ リ ケーシ ョ ンのロジッ ク 数 が 特 定 の <strong>FPGA</strong> の 許 容 数 を 超 えて し ま う 場 合 や、 集 積 度 の 低 い ソリ ューシ ョ ンに 最 適 化 でき る 場 合 があ り ますが、 各 ファ ミ リ のデータシート のモジュール 4 で 説 明されているよ うに、ファ ミ リはそれぞれピン 互 換 のパッケージ フットプリントで 複 数 のデバイス タイプが 使 用 でき る よ う に 設 計 されています。 同 じフットプリントで 使 用 できるデバイス 同 士 でもわずかに 異 なる 場 合 があ り ます。 ピ ン 接 続 の 有 無 や、 入 力 専 用 ピ ンか 完 全 な I/O かといったこれらの違 いは、 各 パ ッ ケージについて 説 明 さ れています。 プリント 基 板 (PCB) の 設 計 時 には、 将 来 のア ップグ レー ド や、 パ ッ ケージの 移 行 を 考 慮 し て く だ さ い。 ファミ リ 内 のパッケージ ピ ン 配 置 の 互 換 性についての 詳 細 は、 各 フ ァ ミ リ のデータ シー ト のモジ ュール 4 を 参 照 して く ださい。<strong>Spartan</strong>-3A と <strong>Spartan</strong>-3AN <strong>FPGA</strong> ではピンに 互 換 性 があ り、 <strong>Spartan</strong>-3A DSP <strong>FPGA</strong> のXC3SD1800A からは 簡 単 に 上 方 移 行 でき ます。 <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> 間 に これ 以 外のピ ン 互 換 性 はあ り ません。 <strong>Spartan</strong>-3A/3AN/3A DSP、 <strong>Spartan</strong>-3E、 および <strong>Spartan</strong>-3 のピン 配 置には 互 換 性 があ り ません。 専 用 ピ ン、 バン ク ご と の I/O 数 、 お よ びパ ッ ケージ オプシ ョ ンは、 プラットフォーム 間 で 大 きく 異 なります。 ピ ン 配 置 の 効 率 は、 各 フ ァ ミ リ の 特 性 に 合 う よ う に 最 適 化されています。 たとえば FT256 パッケージでは、 <strong>Spartan</strong>-3A XC3S200A と XC3S400A のピンに完 全 な 互 換 性 があ り ますが、 同 じFT256 パッケージの <strong>Spartan</strong>-3E や <strong>Spartan</strong>-3 とは 互 換 性 がありません。I/O ピ ンは、 独 立 し たバン ク に 分 け ら れています。 バン ク は 通 常 、 1 つのデバイ スに 4 つあ り ます。各 バン ク には、 共 通 の 出 力 電 源 (VCCO) と HSTL 規 格 および SSTL 規 格 用 に 参 照 電 源 (VREF) があります。バンクには、デバイスの 上 部 から 時 計 回 りで 番 号 が 付 けられています (359 ページの 図10-35 を 参 照 )。相 違 点 の 概 要表 10-2 : アーキテ ク チ ャ 間 の 相 違表 10-2 に、<strong>Spartan</strong>-3 ジェネレーショ ン <strong>FPGA</strong> 間 の I/O リ ソ ースの 主 な 相 違 点 を 示 し ます。 表 の 一部 は、 こ の 章 で 詳 し く 説 明 さ れています。機 能<strong>Spartan</strong>-3A/3AN/3A DSP<strong>FPGA</strong><strong>Spartan</strong>-3E <strong>FPGA</strong><strong>Spartan</strong>-3 <strong>FPGA</strong>入 力 専 用 ピ ン あ り あ り な しI/O 構 造 スタッガ 型 インライン スタッガ 型プ ロ グ ラ ム 可 能 な 入 力 遅 延 ( 組 み 合 わせ)ダイナミ ック16 個 の 値プログラム 可 能12 個 の 値プログラム 可 能1 個 の 値プ ロ グ ラ ム 可 能 な 入 力 遅 延 (レジスタ 付 き)プログラム 可 能8 個 の 値プログラム 可 能6 個 の 値プログラム 可 能1 個 の 値IOSTANDARD 説 明 参 照 説 明 参 照 説 明 参 照バンク 数 4 4 8差 動 終 端 あ り ( 約 100Ω) あり ( 約 120Ω) なしシングルエンド 終 端 なし なし デジタル 制 御 イ ンピーダンス (DCI)スルー レート 3 2 2ホッ ト ス ワ ッ プ 完 全 サポー ト シーケ ン ス が 必 要 シーケン スが 必 要<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 323<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 10 章 : I/O リ ソースの 使 用表 10-2 : アーキテ ク チ ャ 間 の 相 違 ( 続 き)機 能<strong>Spartan</strong>-3A/3AN/3A DSP<strong>FPGA</strong><strong>Spartan</strong>-3E <strong>FPGA</strong><strong>Spartan</strong>-3 <strong>FPGA</strong>V IN 絶 対 最 大 4.6V 4.4V V CCO +0.5V または4.05VIDDR2 レジスタ カスケード あり あり なしODDR2 レジスタ カスケード あり なし なしデザイ ン 入 力多 く の 場 合 、 I/O リソースはインプリメンテーション ツールで 自 動 的 に 選 択 さ れます。 専 用 ク ロ ック 入 力 の よ う な、 特 定 の 用 途 に 必 要 な コ ンポーネン ト を 使 用 する 場 合 は 指 定 する 必 要 があ り ます。次 に 挙 げる コ ンポーネン ト は、 HDL コードまたは 回 路 図 でインスタンシエートできます。ライブラリ コンポーネントザイ リンクスのライブラ リには、I/O のさまざまな 機 能 ( 表 10-3) をサポー ト する ため、 多 数 の コ ンポーネン ト が 含 まれています。 これらのコンポーネン トの 多 くは、 次 の 4 つの I/O エレ メン トのバリエーションです。• IBUF ( 入 力 バ ッ フ ァ )• IBUFG (グローバル クロック 入 力 バッファ )• OBUF ( 出 力 バ ッ フ ァ )• OBUFT ( トライステート 出 力 バッファ)• IOBUF ( 入 力 / 出 力 バ ッ フ ァ )表 10-3 : <strong>Spartan</strong>-3 ジェネレーションの I/O コンポーネント<strong>Spartan</strong>-3A/3AN/3A DSP<strong>FPGA</strong><strong>Spartan</strong>-3E<strong>FPGA</strong><strong>Spartan</strong>-3<strong>FPGA</strong>入 力出 力トライステート差 動IBUF あり あり あり あり なし なし なしIBUFG あり あり あり あり なし なし なしIBUFDS あり あり あり あり なし なし ありIBUFGDS あり あり あり あり なし なし ありIBUF_DLY_ADJ あり なし なし あり なし なし なしIBUFDS_DLY_ADJ あり なし なし あり なし なし ありOBUF あり あり あり なし あり なし なしOBUFDS あり あり あり なし あり なし ありOBUFT あり あり あり なし あり あり なしOBUFTDS あり あり あり なし あり あり ありIOBUF あり あり あり あり あり あり なしIOBUFDS (1) あり あり あり あり あり あり あり324 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


デザイ ン 入 力R表 10-3 : <strong>Spartan</strong>-3 ジェネレーションの I/O コンポーネント ( 続 き)<strong>Spartan</strong>-3A/3AN/3A DSP<strong>FPGA</strong><strong>Spartan</strong>-3E<strong>FPGA</strong>IDDR2 あり ありODDR2 あり あり<strong>Spartan</strong>-3<strong>FPGA</strong>IFDDRCPEおよびIFDDRRSEOFDDRCPEおよびOFDDRRSE入 力出 力トライステート差 動あり なし なし オプション (2)なし あり なし オプションPULLUP あり あり あり あり あり - -PULLDOWN あり あり あり あり あり - -KEEPER あり あり あり あり あり - -メモ :1. BLVDS な どの 双 方 向 差 動 IOSTANDARD を 使 用 する 必 要 があ り ます。2. IDDR2 DDR_ALIGNMENT = C0/C1 機 能 が 使 用 されている 場 合 、 差 動 であ る 必 要 があ り ます。以 前 のフ ァ ミ リ では 次 の I/O コ ンポーネン ト が 使 用 さ れていま し たが、 新 し いデザ イ ンでの 使 用 は推 奨 さ れません。• バス I/O (IBUF4 など)4 ビット、8 ビット、16 ビ ッ ト 幅 は 回 路 図 のみで 使 用 可 能 ですが、 個 別 の コ ンポーネン ト を 使用 する 方 が、 制 約 を 容 易 に 制 御 で き ます。• レジスタ 付 き I/O (IFD など)回 路 図 で 使 用 で き、 レ ジ ス タ 付 き I/O とラッチ 付 き I/O の 両 方 が 含 まれますが、 ソフトウェアで IOB と CLB の う ち 効 率 が 良 い 方 に 最 適 化 する こ と を 推 奨 し ます。• I/O 規 格 名 を 接 尾 辞 と し て 使 用 し た も の (IBUF_LVCMOS18 など)コンポーネント 名 の 一 部 に IOSTANDARD が 含 まれています。 こ れら を 使 用 せず、 一 般 的 な コンポーネン ト に IOSTANDARD 制 約 を 設 定 する こ と を 推 奨 し ます。レジスタ 付 き I/O<strong>Spartan</strong>-3 ジェネレーショ ンの IOB では、 入 力 パス、 出 力 パス、 および ト ラ イ ス テー ト 制 御 入 力 に、オプションのフリ ップフロップまたはラッチが 含 まれます。 ただし、 I/O レ ジ ス タ には 特 別 な ラ イブラ リ コンポーネントはありません。 標 準 のレ ジ ス タ プ リ ミ テ ィ ブは 可 能 な 場 合 、 デザ イ ン ( 特 に合 成 ) を 簡 略 化 する ため、 自 動 的 に IOB に 組 み 込 まれます。 こ の 機 能 を 使 用 する には、 マ ッ プ プロパテ ィ [Pack I/O Registers/Latches into IOBs] を 設 定 し ます。 設 定 可 能 なオプシ ョ ンは、 [Off](デフォル ト)、 [For Inputs Only]、 [For Outputs Only]、 または [For Inputs and Outputs] です。IOB = TRUE プロパティをレジスタに 指 定 して、 IOB にレ ジ ス タ を 強 制 的 に 配 置 する こ と も 可 能です。オプシ ョ ンで 使 用 する 遅 延 エレ メ ン ト は、 各 ロ ジ ッ ク 入 力 プ リ ミ テ ィ ブ (IBUF または IOBUF) の入 力 パスに 関 連 付 け られています。 バッファが IOB 内 の 入 力 レ ジ ス タ を 駆 動 する 場 合 、ゼ ロ ホールド タ イ ム 要 件 を 満 たすため、 デフォル ト で 遅 延 エレ メ ン ト がアク テ ィ ブにな り ます。 パフォーマンス を 向 上 さ せる ため、 遅 延 エレ メ ン ト はレ ジ ス タ な し の 入 力 には 使 用 さ れません。 デフォル ト は 上書 きできます。 詳 細 は、 329 ページの 「 入 力 遅 延 フ ァ ン ク シ ョ ン」 を 参 照 して く ださい。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 325<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 10 章 : I/O リ ソースの 使 用差 動 I/OIBUF<strong>Spartan</strong>-3 ジェネレーションの IOB には、 LVDS、 BLVDS、 および RSDS のよ うな 差 動 I/O 規 格が 含 まれます。 差 動 I/O では、 各 信 号 に 互 いに 反 対 方 向 に 切 り 替 わ る ピ ンが 2 つ 必 要 です。 差 動 信号 をサポートできるように、ほとんどの I/O コ ンポーネン ト に 差 動 バージ ョ ンがあ り 、 名 前 には DSが 含 まれています。 コンポーネン ト には、 I/O ピンが 2 つあ り ます。入 力 で 差 動 ペアの P 側 のみが 要 求 された 場 合 は、N 側 は 自 動 的 に 差 動 ペアの も う 一 方 と し て 設 定 されます。 デザイ ンでシ ミ ュ レーシ ョ ンおよびシス テム レベルの 統 合 に N 入 力 が 要 求 された 場 合 は、物 理 的 には P 入 力 と 併 せて 使 用 さ れますが、 マ ッ プ 中 に 最 適 化 で 削 除 さ れ、 ソ フ ト ウ ェ アでほかの目 的 に 使 用 さ れる こ と はあ り ません。出 力 では、 差 動 ペアの P 側 と N 側 の 両 方 を 定 義 する 必 要 があ り ます。 IOB のクロック、 セッ ト/ リセッ ト、 トライステート、 トライステート クロック イ ネーブル、 および 出 力 ク ロ ッ ク イネーブルの 制 御 ピ ンは、 同 じ ネ ッ ト を ソース と する 必 要 があ り ます。 こ れに 加 え、 出 力 ピ ンは 互 いに 反 転 している 必 要 があ り ます。 出 力 レジスタが 使 用 されている 場 合 は、 D 入 力 が 互 いに 反 転 し、 INIT ステー ト が 互 いに 反 対 であ る ( 片 方 が High でも う 一 方 が Low) 必 要 があ り ます。 トライステート レジス タ の 入 力 および INIT ステートは 同 じである 必 要 があり ます。 INIT がグラン ドに 接 続 されており、 デザインで INIT ファンクションが 使 用 されていなくても、INIT ステートはパワーアップ ステー ト 用 に 設 定 する 必 要 があ り ます。差 動 ペア と し て 使 用 で き る ピ ンは、 ク ロ ッ ク 入 力 に 使 用 で き る 特 別 なペア と 共 にモジ ュール 4 のピン 配 置 の 表 に 示 されています。デバイ スへの 入 力 と し て 使 用 さ れる 信 号 は、 外 部 入 力 ポー ト を 介 し た IBUF ( 入 力 バ ッ フ ァ ) をソース と する 必 要 があ り ます。 図 10-2 に、 IBUF シンボルを 示 します。IIBUFOx133_01_111699図 10-2 : IBUF ( 入 力 バ ッ フ ァ ) シンボルIBUFG特 別 なグ ローバル クロック 入 力 バッファで、BUFG (グローバル クロック バッファ ) および DCMコ ンポーネン ト に 直 接 接 続 で き ます。 ザ イ リ ン ク ス のツールで ク ロ ッ ク 信 号 を 駆 動 する 標 準 の 入 力を IBUFG に 接 続 する か、 IBUFG を 直 接 インスタンシエート します。 詳 細 は、 第 2 章 「グローバルクロック リソースの 使 用 」 を 参 照 して く ださい。 図 10-3 に IBUFG シンボルを 示 します。IIBUFGOx133_03_111699図 10-3 : IBUFG (グローバル クロック 入 力 バッファ ) シンボル326 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


デザイ ン 入 力RIBUFDS差 動 信 号 を 使 用 する 入 力 バ ッ フ ァ です。 デザイ ン レベルの イ ン ターフ ェ イ ス 信 号 は、 一 方 がマス タで、 も う 一 方 がス レーブ と な る 2 つのポー ト (I、 IB) で 表 されます。 マスタ とスレーブは MYNETと MYNETB の よ う に、 同 じ 論 理 信 号 の 反 対 の 状 態 を 示 し ます。 図 10-4 に IBUFDS シンボルを 示します。IIBO<strong>UG331</strong>_c10_03_111106図 10-4 : IBUFDS ( 差 動 入 力 バ ッ フ ァ ) シンボルOBUF外 部 出 力 ポー ト を 介 し て 出 力 を 駆 動 する 必 要 があ り ます。 図 10-5 に OBUF ( 出 力 バ ッ フ ァ ) シンボルを 示 します。IOBUFOx133_04_111699図 10-5 : OBUF ( 出 力 バ ッ フ ァ ) シンボルOBUFT一 般 的 な ト ラ イ ス テー ト 出 力 バ ッ フ ァ で、 通 常 ト ラ イ ス テー ト 出 力 を イ ンプ リ メ ン ト し ます。 図10-6 を 参 照 して く ださい。 未 使 用 の I/O は、デ ィ スエーブルの OBUFT でコンフィギュレーショ ンします。TOBUFTIOx133_05_111699図 10-6 : OBUFT ( ト ラ イ ステー ト 出 力 バ ッ フ ァ ) シンボルIOBUFIOBUF シンボルは、 入 力 バ ッ フ ァ と ア ク テ ィ ブ High のトライステート ピンを 持 つト ライステート 出 力 バ ッ フ ァ の 両 方 が 必 要 な 双 方 向 信 号 に 使 用 し ます。 このシンボルは、 OBUFT シンボルとIBUF シンボルのファンクシ ョ ンを 合 わせたものです。 図 10-7 に 入 力 / 出 力 バ ッ フ ァ IOBUF を 示 します。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 327<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 10 章 : I/O リ ソースの 使 用TIOBUFIIOOプルア ッ プ、 プルダウン、 およびキーパ 回 路ト ラ イ ス テート 出 力 バッ フ ァ およ び 双 方 向 バッ フ ァ には、 プルアッ プ 抵 抗 、 プルダウ ン 抵 抗 、 ま たはキーパ 回 路 のいずれかを 使 用 でき ま す。 使 用 する 場 合 は、 適 切 なシンボル (PULLUP、 PULLDOWN、または KEEPER) を OBUFT または IOBUF の 出 力 ネッ ト に 設 定 し ます。V REF は 通 常 、HSTL 入 力 および SSTL 入 力 などの V REF を 必 要 とする IOSTANDARD を 使 用 する入 力 にのみ 必 要 です。 ただし、 OBUFT でウ ィーク キーパ 回 路 を 使 用 し て コ ン フ ィ ギ ュ レーシ ョ ンされた IOB では、 I/O 信 号 をサンプ リ ングする ための 入 力 バ ッ フ ァ が 必 要 です。 このため OBUFTが KEEPER および V REF を 必 要 とする 規 格 を 使 用 してコンフ ィ ギュレーシ ョ ン されている 場 合 にOBUFT を 使 用 する には、 バン ク の V REF ピ ン を 使 用 する 必 要 があ り ます。 通 常 OBUFT は IBUFコ ンポーネン ト と 組 み 合 わ さ れてい る ため、 ほ と んどのアプ リ ケーシ ョ ンでバン ク の V REF ピンが必 要 と な り ます。DDR および 調 整 可 能 な 遅 延 I/O コンポーネントDDR コンポーネント (IDDR2 および ODDR2) の 説 明 は、334 ページの 「DDR (ダブル データ レート ) 転 送 」 に 記 載 されています。 調 整 可 能 な 遅 延 (IBUF_DLY_ADJ) の 説 明 は、 329 ページの 「 入 力遅 延 フ ァ ン ク シ ョ ン」 に 記 載 されています。HDL 入 力x133_06_111699図 10-7 : IOBUF ( 入 力 / 出 力 バ ッ フ ァ ) シンボルI/O コンポーネントは、VHDL コードまたは Verilog コー ド で 容 易 に イ ン ス タ ンシエー ト で き ます。ザイ リンクス 開 発 システムには、 標 準 の I/O コ ンポーネン ト の 言 語 テンプレー ト が 含 まれています。次 に、 IOBUF 入 力 / 出 力 バ ッ フ ァ コンポーネントのテンプレートの 例 を 示 します。 レジスタは 自 動的 に I/O ブ ロ ッ ク に 組 み 込 まれる ため、 HDL コー ド が 簡 潔 な り ます。-- INOUT_PORT : inout STD_LOGIC;--**Insert the following between the-- 'architecture' and 'begin' keywords**signal IN_SIG, OUT_SIG, T_ENABLE: std_logic;component IOBUFport (I, T: in std_logic;O: out std_logic;IO: inout std_logic);end component;--**Insert the following after the 'begin' keyword**U1: IOBUF port map (I => OUT_SIG, T => T_ENABLE,O => IN_SIG, IO => INOUT_PORT);328 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


アーキテ ク チ ャの 詳 細Rアーキテ ク チ ャの 詳 細入 力 遅 延 フ ァ ン ク シ ョ ンオプシ ョ ンで 使 用 する 遅 延 エレ メ ン ト は、 各 入 力 パス に 関 連 付 け られています。 バッファが IOB 内の 入 力 レ ジ ス タ を 駆 動 する 場 合 、 ゼ ロ ホールド タイム 要 件 を 満 たすため、デフォルトで 遅 延 エレメントがアクティブになります。 図 10-8 に 示 すよ う に、 IOB へのク ロ ッ ク 信 号 のパスはグ ローバル クロック バッファおよびグローバル クロック 配 線 を 介 することにより 長 くなるので、 このようにするのが 適 し ています。 遅 延 エ レ メ ン ト を 使 用 する と データ 入 力 が 遅 く な り 、 データ と ク ロ ッ クピンが 同 時 に 変 化 する 場 合 に、 ク ロ ッ ク が 先 に 到 着 し、 前 の ク ロ ッ ク エッジのセッ トアップでデータ が 入 力 さ れます。 遅 延 し たデータ 信 号 はその 後 フ リ ッ プフ ロ ッ プに 入 力 さ れ、 次 の ク ロ ッ ク エッジで 使 用 さ れます。PadDelayDQIOBPadBUFG図 10-8 : 入 力 フ リ ッ プ フ ロ ッ プへのデー タ およびク ロ ッ ク 配 線<strong>UG331</strong>_c10_08_111106入 力 パスにはフ リ ッ プフ ロ ッ プが 2 つあ り、 IFF1 および IFF2 というダブル データ レー ト 信 号 がサポー ト されています。 321 ページの 図 10-1 に 示 すよ う に、 それぞれの 信 号 から IOB 信 号 IQ1 および IQ2 が 生 成 されます。 どちらのフリ ップフロップも 遅 延 エレメントの 影 響 を 受 けます。高 いパフ ォーマン ス を 得 るため、 遅 延 エレ メ ン ト はレジス タ なし ( 組 み 合 わせ) の 入 力 には 使 用 されません。 アプ リ ケーシ ョ ンで 必 要 であれば、 IOB では 同 じ 入 力 パッ ド を レジス タ あ り/なし 両 バージ ョ ンで 使 用 で き ます。 両 方 のパスが 使 用 さ れてい る 場 合 は、 遅 延 エレ メ ン ト は 2 つのパスに 個 別に 設 定 で き ます。 た と えば、 レ ジ ス タ 付 き のパスでは 遅 延 を 可 能 に し、 組 み 合 わせパスでは 使 用 しない と い う よ う に 設 定 で き ます。組 み 合 わせ 入 力 に 遅 延 を 追 加 し た り 、 レ ジ ス タ 付 き 入 力 か ら 削 除 する こ と も 可 能 です。 タイプの 異なる RAM への イ ン ターフ ェ イ ス な ど、 ク ロ ッ ク またはデータ 入 力 に よ っ ては 遅 延 を 追 加 する 必 要がある 場 合 があ り ます。 デザイ ンの ク ロ ッ ク パスで DCM が 使 用 されている 場 合 は、 ホール ド タ イムの 要 件 なしに 遅 延 エレ メ ン ト を レジス タ 付 き 入 力 から 削 除 でき ます。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 329<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 10 章 : I/O リ ソースの 使 用プログラム 可 能 な 遅 延<strong>Spartan</strong>-3E および <strong>Spartan</strong>-3A/3AN/3A DSP <strong>FPGA</strong> では、 遅 延 ブ ロ ッ ク の 遅 延 値 はプ ロ グ ラ ム 可 能です。各 IOB にはプ ロ グ ラ ム 可 能 な 遅 延 ブ ロ ッ ク があ り 、 入 力 信 号 を 指 定 量 遅 延 で き ます。 図 10-9 に 示すよ う に、 信 号 パスにはバ イパス 可 能 な コース 遅 延 エレ メ ン ト があ り ます。 その 後 入 力 信 号 は、<strong>Spartan</strong>-3E では 6 タップ 遅 延 ラインに、<strong>Spartan</strong>-3A/3AN/3A DSP では 8 タップ 遅 延 ラインに 供 給されます。6 つのタ ッ プすべてがマルチプレ クサを 介 し た <strong>FPGA</strong> フ ァ ブ リ ッ ク への 直 接 の 非 同 期 入力 と し て 使 用 さ れます。 6 つのタ ッ プの う ち 3 つは、 マルチプレ ク サを 介 し て 同 期 記 憶 エレ メ ン トの D 入 力 に 接 続 で き ます。 コース 遅 延 エレ メ ン ト は 非 同 期 パスおよび 同 期 パスの 両 方 に 共 通 で、 両方 のパスで 使 用 する か し ないかのど ち ら かに 設 定 する 必 要 があ り ます。IFD_DELAY_VALUE (IQ1)D Q (IQ2)D QPAD (I)IBUF_DELAY_VALUE<strong>UG331</strong>_c10_09_011508図 10-9 : プログ ラム 可 能 な 固 定 入 力 遅 延 エ レ メ ン トこれら の 遅 延 値 は、 IBUF_DELAY_VALUE パラ メータおよび IFD_DELAY_VALUE パラ メータを 使 用 し て、 コ ン フ ィ ギ ュ レーシ ョ ン 時 にシ リ コ ンで 設 定 さ れます。 IBUF_DELAY_VALUE のデフォルト 値 は 0 で、 非 同 期 入 力 の 遅 延 エレ メ ン ト はバイ パス さ れます。 <strong>Spartan</strong>-3E <strong>FPGA</strong> では、 このパラ メ ータは 0 ~ 12 に 設 定 でき ます。 IFD_DELAY_VALUE のデフ ォル ト 値 は AUTO で、ザイリンクスのソフトウェアで 自 動 的 に 選 択 されます。 値 はデバイス サイズによって 異 なり ます。 デフ ォル ト 値 はデータ シー ト のタ イ ミ ング 仕 様 およびイ ンプ リ メ ンテーシ ョ ンツールで 生 成 されたマップ レポートに 示 されています。 <strong>Spartan</strong>-3E <strong>FPGA</strong> では、 IFD_DELAY_VALUE を 0 ~ 6 の 値に 指 定 でき、 タイミング 結 果 はタイミング 解 析 ツールで 確 認 できます。各 入 力 で、IBUF_DELAY_VALUE と IFD_DELAY_VALUE は 互 いに 独 立 し ています。 1 つの 入 力ピンでレジスタあり/な し 両 方 の 入 力 パスが 使 用 さ れてい る 場 合 、 両 方 のパ ラ メ ータ を 使 用 で き ますが、 コース 遅 延 エレ メ ン ト を 使 用 する かバイ パスする かを 両 方 で 統 一 する 必 要 があ り ます。330 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


アーキテ ク チ ャの 詳 細R<strong>Spartan</strong>-3A/3AN/3A DSP <strong>FPGA</strong> でのダイナ ミ ッ ク 遅 延<strong>Spartan</strong>-3A/3AN/3A DSP <strong>FPGA</strong> の 遅 延 構 造 は <strong>Spartan</strong>-3E デバイ スの も の と 同 じ ですが、 タ ッ プの数 が 多 く (レジスタ 付 きパスでは 8、 組 み 合 わせパスでは 16)、 組 み 合 わせパスでは 動 的 に 調 整 さ れます。 こ の 調 整 は 動 作 中 にデバ イ ス を コ ン フ ィ ギ ュ レーシ ョ ン し 直 さ ずに 動 的 に 実 行 さ れる ため、シ ス テムの 動 作 条 件 に 合 わせた き め 細 かい 調 整 が 可 能 です。 遅 延 エレ メ ン ト への 3 つの 制 御 入 力 を使 用 し て 遅 延 が 即 時 に 変 更 さ れます。 コース 遅 延 エレ メ ン ト は、 デバ イ ス コンフィギュレーション時 に 固 定 さ れます。 ISE 9.2i よ り 前 のバージ ョ ンでは、 ダ イ ナ ミ ッ ク 入 力 遅 延 調 整 はバン ク 0 および 2 ( 上 辺 および 下 辺 ) ではサポー ト されていません。IFD_DELAY_VALUE (IQ1)D Q (IQ2)D QPADS[2:0] (I)IBUF_DELAY_VALUE<strong>UG331</strong>_c10_10_011508図 10-10 : <strong>Spartan</strong>-3A/3AN/3A DSP のプ ログ ラム 可 能 なダイナ ミ ッ ク 入 力 遅 延 エレ メ ン トコ ン フ ィ ギ ュ レーシ ョ ン 時 の 遅 延 値 は、 IFD_DELAY_VALUE パラ メータおよび IBUF_DELAY_VALUE パ ラ メ ータ で 制 御 し ます。 組 み 合 わせ 入 力 にダ イナ ミ ッ ク 遅 延 を 使 用 する には、IBUF コンポーネン ト を IBUF_DLY_ADJ コンポーネント ( 図 10-11 参 照 ) に 置 き 換 え、3 つのセレ ク ト 入 力 を接 続 し ます。 IBUF_DLY_ADJ コンポーネントは、 組 み 合 わせ (レジスタなし) パスでのみ 使 用 され、 IFD (レジスタ 付 き) パス には 影 響 し ません。IIBUF_DLY_ADJOS[2:0]<strong>UG331</strong>_c10_11_111206図 10-11 : ダ イナ ミ ッ ク 遅 延 調 整 可 能 な 入 力 バ ッ フ ァ シンボルIBUF_DLY_ADJ では、 遅 延 合 計 量 の 上 半 分 ま たは 下 半 分 内 のみの 移 動 が 可 能 です。 DELAY_OFFSET パラ メ ータ で、 遅 延 量 の 前 半 か 後 半 かを 指 定 し ます。 DELAY_OFFSET = ON の 場 合 はコース 遅 延 エレ メ ン ト が 動 的 マルチプレ ク サに 入 力 され、 DELAY_OFFSET = OFF の 場 合 はコース 遅 延 エレ メ ン ト はバイパス されます。 表 10-4 に、 IBUF_DELAY_VALUE とセレク ト ラインの対 応 を 示 し ます。 セレク ト ラインの 2 進 数 値 は 0 ~ 7 で、IBUF_DELAY_VALUE のオプシ ョ ンの1 ~ 8 または 9 ~ 16 に 対 応 し ています。 IBUF_DELAY_VALUE が 0 の 場 合 は 遅 延 フ ァ ン ク シ ョンが 完 全 にバイパスされ、 IBUF コ ンポーネン ト でのみ 指 定 可 能 です。 IBUF_DLY_ADJ では 使 用できません。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 331<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 10 章 : I/O リ ソースの 使 用表 10-4 : 固 定 および 動 的 な 遅 延 値S[2:0] DELAY_OFFSET 対 応 する IBUF_DELAY_VALUE011 22 33 4OFF4 55 66 77 8091 102 113 12ON4 135 146 157 16図 10-12 に、 2 つの 遅 延 仕 様 タ イ プでマルチプレ ク サを 制 御 する 方 法 を 示 し ます。IBUF_DELAY_VALUE > 8 (fixed orDELAY_OFFSET (dynamic)011/9 2/10 3/11 4/12 5/13 6/14 7/15 8/16(dynamic)30 1 2 34 5 6 7IBUF_DELAY_VALUE0 >0<strong>UG331</strong>_c10_12_111206図 10-12 : 固 定 および 動 的 な 遅 延 制 御332 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


アーキテ ク チ ャの 詳 細R記 憶 エ レ メ ン ト ファンクション表 10-5 : 記 憶 エ レ メ ン ト 信 号 の 説 明各 IOB には 記 憶 エレ メ ン ト のペアが 3 つあ り、3 つのパス ご と に 1 つのペアがあ り ます。 これらの記 憶 エレ メ ン ト は、 エ ッ ジで ト リ ガ さ れる D タイプのフリ ップフロップ (FD) またはレベルで 認 識されるラッチ (LD) として 1 つずつコ ン フ ィ ギ ュ レーシ ョ ンで き ます。出 力 パス ま たは ト ラ イ ス テー ト パスの 記 憶 エレ メ ン ト のペアを 特 別 なマルチプレ クサ と 同 時 に 使用 して、 DDR (ダブル データ レー ト) 転 送 を 実 行 で き ます。 これには、 ク ロ ッ ク 信 号 の 立 ち 上 が りエ ッ ジにデータ を 同 期 さ せ、 立 ち 上 が り エ ッ ジ と 立 ち 下 が り エ ッ ジの 両 方 で 同 期 する ビ ッ ト に 変 換します。 レジスタ 2 つ と マルチプレ ク サを 組 み 合 わせた も のは、 ODDR2 (ダブル データ レート Dタイプ フリ ップフロップ) と 呼 ばれます。表 10-5 に、 記 憶 エレ メ ン ト に 関 連 し た 信 号 パス を 示 し ます。記 憶 エ レ メ ン ト信 号説 明機 能D データ 入 力 こ の 入 力 のデータは CK のアクテ ィブ エ ッ ジで 保 存 さ れ、CE でイネーブルになります。 入 力 が イ ネーブルの 場 合 の ラ ッ チの 動 作 では、データは 直 接 出 力 Q に 送 信 されます。Q データ 出 力 こ の 出 力 のデータは 記 憶 エレ メ ン ト のス テー ト を 反 映 し ます。 透 過 モー ド での ラ ッチとしての 動 作 は、 D のデータが Q で 複 製 されます。CK クロック 入 力 データは、 CE がアサー ト さ れてい る 場 合 の こ の 入 力 のア ク テ ィ ブ エ ッ ジで 記 憶 エレ メ ン ト に 読 み 込 まれます。CEクロック イネーブル入 力この 入 力 がアサート されると、 CK がイネーブルになり ます。 接 続 されていない 場合 は、 CE はデフ ォル ト でアサー ト されます。SR セッ ト/ リ セ ッ ト 入 力 記 憶 エレ メ ン ト を SRHIGH または SRLOW 属 性 で 指 定 さ れた ス テー ト に し ます。SYNC/ASYNC 属 性 を 使 用 し て SR 入 力 を ク ロ ッ ク に 同 期 さ せる かど う かを 設 定します。 SR と REV の 両 方 が 同 時 にア ク テ ィ ブの 場 合 は、 記 憶 エレ メ ン ト に 0 が 読み 込 まれます。REV リバース 入 力 SR と 共 に 使 用 します。 記 憶 エレメント を SR と 逆 のステートにします。SYNC/ASYNC 属 性 を 使 用 し て REV 入 力 を ク ロ ッ ク に 同 期 さ せる かど う かを 設定 します。 SR と REV の 両 方 が 同 時 にア ク テ ィ ブの 場 合 は、 記 憶 エレ メ ン ト に 0 が読 み 込 まれます。321 ページの 図 10-1 に 示 すよ う に、 出 力 パス と ト ラ イ ス テー ト パス 両 方 の 上 部 レジスタで、 同 じクロックが 使 用 されます。 OTCLK1 ク ロ ッ ク 信 号 に よ り 、 出 力 パス と ト ラ イ ス テー ト パスの 上 部レジスタの CK ク ロ ッ ク 入 力 が 駆 動 さ れます。 同 様 に、OTCLK2 によ り 出 力 パスと ト ライステートパスの 下 部 レジスタの CK 入 力 が 駆 動 さ れます。 入 力 パス の 上 と 下 のレジス タ には 独 立 し た ク ロ ック ライン、ICLK1 と ICLK2 があ り ます。ク ロ ッ ク 配 線 リ ソ ースは、 差 動 ペア も 含 め、 隣 接 する IOB 間 で 共 有 される こ と がよ く あ り ます。 この 場 合 、 2 つの 信 号 OTCLK1、 OTCLK2、 ICLK1、 および ICLK2 は、 両 方 の IOB で 使 用 される場 合 は 同 一 にする 必 要 があ り ます。 上 部 および 下 部 のレジス タは、 両 方 が DDR コンフィギュレーシ ョ ンで 使 用 さ れていない 場 合 は、 ソ フ ト ウ ェ アに よ り 必 要 に 応 じ て ス ワ ッ プ さ れます。OCE イネーブル ラインにより、 出 力 パスの 上 と 下 のレジスタの CE 入 力 が 制 御 さ れます。 同 様 に、TCE によ り、 ト ライステート パスのレジスタ ペアの CE 入 力 が 制 御 され、 ICE によ り 入 力 パスのレジスタ ペアの CE 入 力 が 制 御 さ れます。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 333<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 10 章 : I/O リ ソースの 使 用表 10-6 : 記 憶 エ レ メ ン ト オプシ ョ ンIOB に 入 力 する SR (セッ ト/ リセット) ラインまたは REV ( 反 転 ) ラインにより 6 つのレジス タすべてが 制 御 さ れます。各 記 憶 エレ メ ン ト では、 信 号 極 性 制 御 に 加 え、 表 10-6 で 説 明 さ れてい る 制 御 も サポー ト さ れます。オプシ ョ ン 機 能 特 徴FF/Latchエッジでト リガされるフリ ップフロップまたはレベルで 認 識 さ れる ラ ッ チを 選 択記 憶 エレ メ ン ト ご と に 個 別 に 指 定SYNC/ASYNC SR セッ ト/ リ セ ッ ト 制 御 の 同 期 ま たは 非 同 期 を 指 定 記 憶 エレ メ ン ト ご と に 個 別 に 指 定SRHIGH/SRLOWINIT1/INIT0SR をセッ ト と して 使 用 し、 記 憶 エレ メ ン ト をロジック 1 (SRHIGH) にするか、 リ セ ッ ト と し て 使 用しロジック 0 (SRLOW) にするかを 指 定グローバル セッ ト/ リセット (GSR) がアサート された 場 合 ま たはコ ン フ ィ ギ ュ レーシ ョ ン 後 に、 記 憶 エレメントの 初 期 ステートをセット (INIT1) またはリセッ ト (INIT0) に 設 定 。 デフォル ト では、 SRLOWを 指 定 する と INIT0 にな り、 SRHIGH を 指 定 すると INIT1 にな り ます。ODDR2 の 使 用 時 以 外 は 記 憶 エレ メ ン ト ご と に個 別 に 指 定 。 ODDR2 使 用 時 は、 上 部 エレ メ ント への 選 択 が 全 体 に 適 用 されます。2 つの IOB を 使 用 する ODDR2 の 使 用 時 以 外は 記 憶 エレ メ ン ト ご と に 個 別 に 指 定 。 ODDR2の 場 合 、1 つの IOB に INIT0 を 指 定 する と IOB内 の 両 方 のエレ メ ン ト が INIT0 にな り ますが、もう 1 つの IOB では INIT1 を 選 択 できます。DDR (ダブル データ レート) 転 送DDR (ダブル データ レート) 転 送 は、 信 号 を ク ロ ッ ク 信 号 の 立 ち 上 が り エ ッ ジ と 立 ち 下 が り エ ッ ジの 両 方 で 同 期 さ せる 手 法 です。 IOB の 3 つのパスすべてで、 DDR 動 作 にレ ジ ス タのペアを 使 用 できます。IOB の 出 力 パス (OFF1 および OFF2) にある 記 憶 エレ メ ン ト のペアはレジスタ と して 使 用 され、 特別 なマルチプレ クサと 結 合 して ODDR2 (DDR D タイプ フリ ップフロップ) を 形 成 し ます。 このプリ ミ テ ィ ブに よ り 、 出 力 データ ビ ッ ト がク ロ ッ ク の 立 ち 上 が り エ ッ ジ と 立 ち 下 が り エ ッ ジの 両 方 に同 期 し た 場 合 に DDR 転 送 が 許 可 さ れます。 DDR 操 作 には、 互 いに 反 転 し た 2 つの ク ロ ッ ク 信 号( 通 常 50% のデューテ ィ サイクル) が 必 要 です。 図 10-13 に 示 すよ う に、 これら の 信 号 によ り 2 つのレ ジ ス タ が 交 互 に ト リ ガ さ れます。 DCM (デジタル クロック マネージャ ) では、 入 力 信 号 を 複 製して 180 度 シフ ト し、 2 つの ク ロ ッ ク 信 号 を 生 成 し ます。 これは 2 つの 信 号 間 のス キ ューを 最 小 限に 抑 え る ためです。 代 わ り に、 IOB 内 の イ ンバータ を 使 用 し て ク ロ ッ ク 信 号 を 反 転 さ せ、 1 クロック ラインおよびそのクロック ラインの 立 ち 上 がりエッジと 立 ち 下 がりエッジの 両 方 を DDR フリップフロップの 2 つのクロックとして 使 用 することもできます。トライステート パス (TFF1 および TFF2) の 記 憶 エレ メ ン ト のペア も ローカル マルチプレ クサと 結合 させ、DDR プリ ミティブを 形 成 できます。 これによ り、 クロックの 立 ち 上 がりエッジと 立 ち 下 がり エッ ジの 両 方 で 出 力 イネーブルが 同 期 でき ます。 この DDR 動 作 は 出 力 パス で も 同 様 に 認 識 さ れます。入 力 パス (IFF1 および IFF2) の 記 憶 エレ メ ン ト ペアでは、 I/O で DDR 信 号 が 受 信 で き ます。 入 力DDR クロック 信 号 によりレジスタの 1 つが ト リ ガ され、 反 転 された ク ロ ッ ク 信 号 によ り も う 1 つのレジスタがト リ ガされます。 入 力 DDR データ 信 号 のビ ッ ト がレ ジス タ で 交 互 にキ ャ プチャ さ れます。 こ の 機 能 を 実 行 する プ リ ミ テ ィ ブは、 IDDR2 です。IOB 内 の 特 別 DDR ロジックにアクセスするには、 ODDR2 および IDDR2 プリ ミティブを 使 用 する 必 要 があ り ます。334 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


アーキテ ク チ ャの 詳 細RDDR 出 力 は、 広 帯 域 なデータ 転 送 のほかに、 出 力 の ク ロ ッ ク 信 号 の 再 生 成 または 複 製 に 使 用 で きます。 こ れは ク ロ ッ ク と データ 信 号 を 同 時 に 送 信 する 場 合 (ソース 同 期 ) に 使 用 し ます。 同 様 の 方 法で、 複 数 の 出 力 で ク ロ ッ ク 信 号 を 再 生 成 で き ます。 どち ら の 方 法 で も、 出 力 のス キ ューを 最 小 限 に抑 えられるのが 利 点 です。DCM180˚ 0˚DCM0˚D1FDDRD1FDDRQ1CLK1Q1CLK1DDR MUXQDDR MUXQD2D2Q2CLK2Q2CLK2DS312-2_20_021105レジスタ カスケード 機 能IDDR2図 10-13 : DDR レジスタの 2 つのク ロ ッ ク 手 法<strong>Spartan</strong>-3E および <strong>Spartan</strong>-3A/3AN/3A DSP <strong>FPGA</strong> では、 差 動 入 力 ペアの IOB の 入 力 記 憶 エレ メントを 別 の IOB の 入 力 記 憶 エレ メ ン ト と カ ス ケー ド 接 続 で き ます。 こ の 手 法 は、 高 速 の DDR 操 作を 簡 単 に イ ンプ リ メ ン ト する ために 使 用 し ます。 図 10-1 に 破 線 で 示 された 新 しい IDDRIN1/2 接 続は IOB 間 の 配 線 用 で、IDDR2/ODDR コ ンポーネン ト 内 でのみ 使 用 さ れ、<strong>FPGA</strong> ファブリ ックには接 続 で き ません。 こ の 機 能 は 差 動 I/O の 使 用 時 にのみ 有 効 で、 <strong>Spartan</strong>-3 <strong>FPGA</strong> では 使 用 できず、<strong>Spartan</strong>-3E <strong>FPGA</strong> では 入 力 (IDDR2) でのみサポー ト さ れます。 同 様 のカ ス ケー ド 機 能 は、<strong>Spartan</strong>-3A/3AN/3A DSP の 出 力 (ODDR2) で も 使 用 で き ます。 サポー ト さ れる 差 動 規 格 には、 LVDS、MINI_LVDS、 および RSDS の よ う な 正 規 の 差 動 信 号 規 格 が 含 まれ、 DIFF_HSTL、 DIFF_SSTL、および LVPECL の よ う な 擬 似 差 動 規 格 は 含 まれません。標 準 DDR インターフェイスでは、レジスタ カス ケード 機 能 は 同 じ IDDR2 およ び ODDR2 プリ ミ ティブを 使 用 し てアク セス さ れますが、 DDR_ALIGNMENT 属 性 はク ロ ッ ク C0 または C1 に 設 定 さ れます。 カス ケード 接 続 さ れる レ ジス タ を イ ンス タ ンシエート する 必 要 はあり ま せんが、 差 動 ペアの 一 方と 同 様 、 隣 接 する I/O は 未 使 用 である こ と が 必 要 です。 デフォ ルト では DDR_ALIGNMENT=NONEに 設 定 さ れており 、 カス ケード 機 能 は 使 用 さ れま せん。DDR 入 力 ペアでは、 ICLK1 (= D1) の 立 ち 上 が り エ ッ ジ と ICLK2 (= D2) の 立 ち 上 が り エ ッ ジ ( 通常 は ICLK1 の 立 ち 下 が り エ ッ ジ と 同 じ) でマス タ IOB に 入 力 データが 取 り 込 まれます。 この 後 、データは <strong>FPGA</strong> ファブリ ックで 受 信 されます。 ある 時 点 でどちらの 信 号 も 同 じクロック ドメイン( 通 常 ICLK1) に 送 信 さ れる 必 要 があ り ます。 これは、 周 波 数 が 高 い 場 合 は、 50 % デューティ サイクルの 場 合 1/2 クロック サ イ ク ル 分 し か 時 間 がないため 困 難 です。 このファンクションの 図 は、 図10-14 を 参 照 して く ださい。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 335<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 10 章 : I/O リ ソースの 使 用DQD1PADTo FabricDQD2ICLK2ICLK1ICLK1ICLK2PADdd+1d+2d+3d+4d+5d+6d+7d+8D1D2d d+2 d+4 d+6 d+8d-1 d+1 d+3 d+5 d+7図 10-14 : 入 力 DDR (カスケード 機 能 なし)DS312-2_21_021105DC0C1CERSIDDR2Q0Q1<strong>UG331</strong>_c10_15_111206図 10-15 : IDDR2 コンポーネントカ ス ケー ド 機 能 を 使 用 する 場 合 は (DDR_ALIGNMENT=C0/C1)、 信 号 D2 を 隣 接 したスレーブIOB の 記 憶 エレ メ ン ト にカスケード 接 続 でき ます。 そこで ICLK1 に 同 期 し て 取 り 込 まれ、 <strong>FPGA</strong>フ ァ ブ リ ッ ク に 送 信 されますが、 こ の 時 点 で D2 は 既 に D1 と 同 じタイム ドメインです。 <strong>FPGA</strong>フ ァ ブ リ ッ ク では 受 信 し たデータ の 処 理 に、 ク ロ ッ ク ICLK1 のみが 使 用 されます。 このファンクションの 図 は、 図 10-16 を 参 照 して く ださい。336 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


アーキテ ク チ ャの 詳 細RDQD1PADTo FabricD Q IQ2 IDDRIN2DQD2ICLK1ICLK2ICLK1ICLK2PADD1d d+1 d+2 d+3 d+4 d+5 d+6 d+7 d+8d d+2 d+4 d+6 d+8D2 d-1 d+1 d+3 d+5 d+7DS312-2_22_030105図 10-16 : カ スケー ド 機 能 を 使 用 し た 入 力 DDR(DDR_ALIGNMENT=C0/C1 に 設 定 した IDDR2)ODDR2DDR 出 力 ペアでは、 OCLK1 (= D1) の 立 ち 上 が り エ ッ ジ と OCLK2 (= D2) の 立 ち 上 が り エ ッ ジ( 通 常 は OCLK1 の 立 ち 下 が り エ ッ ジ と 同 じ) でマス タ IOB に <strong>FPGA</strong> フ ァ ブ リ ッ ク か ら 出 力 さ れたデータ が 取 り 込 まれます。 これらの 2 ビッ トのデータは DDR マルチプレ クサを 介 して 出 力 ピンに転 送 さ れます。 D2 データ 信 号 は <strong>FPGA</strong> ス ラ イ スのフ リ ッ プフ ロ ッ プを 使 用 し て、 OCLK1 クロック ド メインから OCLK2 ド メ イ ンに 再 同 期 化 する 必 要 があ り ます。 周 波 数 が 高 い 場 合 は 1/2 クロック サ イ ク ル 分 し か 時 間 がないため、 配 置 が 重 要 と な り ます。 このファンクショ ンの 図 は、 図 10-17を 参 照 して く ださい。<strong>Spartan</strong>-3A/3AN/3A DSP <strong>FPGA</strong> の ODDR2 コンポーネントでは、DDR_ALIGNMENT 属 性 に より 両 方 のデータ ビッ トを 取 り 込 むクロックを C0 または C1 (DDR_ALIGNMENT=C0 またはDDR_ALIGNMENT=C1) に 設 定 でき ます。注 意 <strong>Spartan</strong>-3E <strong>FPGA</strong> では、 ODDR2 フリ ップフロップの C0 または C1 アライメント 機 能 の 使 用 はサポー ト されません。 ア ラ イ メ ン ト 機 能 な し の ODDR2 フリップフロップは、アライメント 機 能 を 使 用 したIDDR2 フ リ ッ プフ ロ ッ プ と 同 様 、 完 全 にサポー ト さ れています。 ア ラ イ メ ン ト 機 能 な し の ODDR2 コンポーネン ト の 動 作 は、 以 前 のザ イ リ ン ク ス <strong>FPGA</strong> ファ ミ リの ODDR フリップフロップ コンポーネント と同 様 です。 このアライ メント 機 能 は、<strong>Spartan</strong>-3A/3AN 製 品 デバイ スおよび <strong>Spartan</strong>-3A DSP デバ イ スでは完 全 にサポー ト さ れています。ク ロ ッ ク 配 線 リ ソ ースは、 差 動 ペア も 含 め、 隣 接 する IOB 間 で 共 有 される こ と がよ く あ り ます。 この 場 合 、 2 つの 信 号 OTCLK1、 OTCLK2、 ICLK1、 および ICLK2 は、 両 方 の IOB で 使 用 される場 合 は 同 一 にする 必 要 があ り ます。 上 部 および 下 部 のレジス タは、 両 方 が DDR コンフィギュレーシ ョ ンで 使 用 さ れていない 場 合 は、 ソ フ ト ウ ェ アに よ り 必 要 に 応 じ て ス ワ ッ プ さ れます。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 337<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 10 章 : I/O リ ソースの 使 用D1DQPADFromFabricD2DQOCLK1OCLK2OCLK1OCLK2D1D2d d+2 d+4 d+6d+1 d+3 d+5 d+7d+8 d+10d+9PADdd+1d+2d+3d+4d+5 d+6 d+7d+8図 10-17 : 出 力 DDR (カスケード 機 能 なし)DS312-2_23_030105D0D1C0C1CERSODDR2Q<strong>UG331</strong>_c10_17_111206図 10-18 : ODDR2 コンポーネントプルア ッ プ 抵 抗 およびプルダウン 抵 抗各 IOB 内 のプルア ッ プ 抵 抗 およびプルダ ウ ン 抵 抗 をオプシ ョ ンで 使 用 し て、フ ロー ト 状 態 の I/O または 入 力 専 用 ピ ン を 確 定 し た ス テー ト に し ます。 プルア ッ プ 抵 抗 およびプルダ ウ ン 抵 抗 は 通 常 未 使用 の I/O、 入 力 、 および ト ラ イ ス テー ト 出 力 に 使 用 さ れますが、 どの I/O ま たは 入 力 専 用 ピ ンに も使 用 で き ます。 プルア ッ プ 抵 抗 は、 抵 抗 を 介 して IOB を V CCO に 接 続 し ます。 抵 抗 値 は V CCO 電圧 によ って 決 ま り ます。 仕 様 はモジュール 3 を 参 照 して ください。 プルダウン 抵 抗 も 同 様 に、 レジスタを 介 して IOB を グ ラ ン ド に 接 続 し ます。 プルダウン 抵 抗 の 電 源 は、 <strong>Spartan</strong>-3A/3AN/3A DSP<strong>FPGA</strong> では VCCAUX 、 <strong>Spartan</strong>-3/3E <strong>FPGA</strong> では VCCO です。338 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


アーキテ ク チ ャの 詳 細RPULLUP 属 性 と PULLDOWN 属 性 およ びラ イ ブラ リ プリミティブにより、これらのオプションの抵 抗 がオン になり ま す。 デフ ォ ルト では、プルダウ ン 抵 抗 によ り 未 使 用 の I/O およ び 入 力 専 用 ピ ン のすべてが 終 端 さ れま す。 未 使 用 の I/O およ び 入 力 専 用 ピ ンを 、 PULLUP または FLOAT に 設 定 することもできます。 未 使 用 の I/O パッ ド の 設 定 を 変 更 する には、 Bitstream Generator (BitGen) のオプショ ン [UnusedPin] を PULLUP、 PULLDOWN、 または FLOAT に 設 定 し ま す。 [UnusedPin] オプショ ンには、ISE ソフト ウェアの [Generate Programming File] のプロ パティ から アク セス でき ます。コンフィギュレーション 中 は、 PUDC_B ピン (<strong>Spartan</strong>-3E <strong>FPGA</strong> では HSWAP、 <strong>Spartan</strong>-3 <strong>FPGA</strong>では HSWAP_EN) を Low にする と 、 選 択 されたコ ン フ ィ ギ ュ レーシ ョ ン モード でア ク テ ィ ブに 使用 されていない I/O および 入 力 専 用 ピ ンすべてのプルア ッ プ 抵 抗 がア ク テ ィ ブにな り ます。<strong>FPGA</strong> プルア ッ プ 抵 抗 値専 用 およびオプシ ョ ンのプルア ッ プ 抵 抗 の 値 は、 各 <strong>Spartan</strong>-3 ジェネレーションのデータシートに電 流 と し てシンボル I PU で 示 されています。 表 10-7 に、 等 価 の 抵 抗 値 を 示 し ます。 <strong>Spartan</strong>-3 <strong>FPGA</strong>のプルア ッ プ 抵 抗 は、 ほかのプ ラ ッ ト フ ォームの も の よ り も 強 力 です。注 意 <strong>Spartan</strong>-3 <strong>FPGA</strong> のプルア ッ プ 抵 抗 は、 特 に V CCO 電 圧 が 高 い 場 合 は 強 力 です。表 10-7 : <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> のプルア ッ プ 抵 抗 の 範 囲電 圧 範 囲<strong>Spartan</strong>-3<strong>FPGA</strong><strong>Spartan</strong>-3E<strong>FPGA</strong><strong>Spartan</strong>-3A/3AN/3A DSP<strong>FPGA</strong>単 位V CCAUX またはV CCO = 3.0 ~ 3.6V 5.1 ~ 23.9V CCO = 3.0 ~ 3.45V 1.27 ~ 4.11 2.4 ~ 10.8V CCAUX またはV CCO = 2.3 ~ 2.7V1.15 ~ 3.25 2.7 ~ 11.8 6.2 ~ 33.1 (1)kΩV CCO = 1.7 ~ 1.9V 2.45 ~ 9.10 4.3 ~ 20.2 8.4 ~ 52.6メモ :1. <strong>Spartan</strong>-3AN <strong>FPGA</strong> では VCCAUX = 3.0 ~ 3.6V が 必 要 です。キーパ 回 路各 I/O には 図 10-19 に 示 すよ う なオプシ ョ ンのキーパ 回 路 があ り 、バス ラインがアクティブに 駆 動されていない 場 合 にフロート 状 態 になるのを 防 ぎます。 キーパ 回 路 によ り 、 ド ラ イバがすべてオフになった 後 に、 ラ イ ンの 最 後 のロ ジ ッ ク レベルが 保 持 されます。 キーパ 回 路 を 使 用 する には、KEEPER 属 性 を 使 用 する か、 KEEPER ライブラリ プリ ミティブを 使 用 します。 プルア ップ 抵 抗 またはプルダ ウ ン 抵 抗 を 使 用 する と 、 KEEPER 設 定 は 無 効 にな り ます。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 339<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 10 章 : I/O リ ソースの 使 用図 10-19 : キーパ 回 路<strong>UG331</strong>_c10_19_111206JTAG バウンダ リ スキャン 機 能すべての IOB で、IEEE 1149.1/1532 規 格 と 互 換 性 があ る バウ ンダ リ スキャン テス トがサポート されています。 詳 細 は、 第 21 章 「バウ ンダ リ スキャンと BSDL フ ァ イ ルの 使 用 」を 参 照 して く ださい。SelectIO 信 号 規 格IOB の 入 力 および 出 力 では、 広 範 なシン グルエン ド の I/O 信 号 規 格 がサポー ト さ れています。 差 動信 号 規 格 をサポー ト する ための 差 動 ペアの 作 成 に、 ほ と んどの I/O を 使 用 でき ます。 このよ うな 柔軟 性 があ る ため、アプ リ ケーシ ョ ンの イ ン ターフ ェ イ スおよびシグナル インテグリティを 満 たす 最適 な I/O 規 格 を ピ ン ご と に 採 用 で き ます。I/O ピ ンは、 独 立 し たバン ク に 分 け ら れています。 バン ク は 通 常 、 1 つのデバイ スに 4 つあ り ます。各 バン ク には、 HSTL 規 格 と SSTL 規 格 に 共 通 の 出 力 電 源 (VCCO) および 参 照 電 源 (VREF) があります。 バン ク には、 デバ イ スの 上 部 か ら 時 計 回 り の 方 向 に 番 号 が 付 け ら れています。 359 ページの 図 10-35 を 参 照 して く ださい。表 10-8 : I/O 信 号 規 格I/O 規 格 の 概 要デジ タル 電 子 機 器 業 界 では 一 般 的 に、 新 し いバス アプ リ ケーシ ョ ンの 開 発 時 にそのアプ リ ケーシ ョン 専 用 の 新 しい I/O 規 格 も 開 発 さ れます。 このアプリケーショ ンと 接 続 される 製 品 は、 バスの I/O規 格 の 仕 様 で 製 造 さ れます。 各 規 格 には、 電 流 、 電 圧 、 I/O バ ッ フ ァ、 および 終 端 技 術 に 関 する 独自 の 仕 様 が 含 まれます。プログラマブル ロ ジ ッ ク の 柔 軟 性 およびタ イ ム トゥ マーケ ッ ト の 短 縮 と い う 利 点 を 十 分 に 活 かせる かど う かは、 増 加 する I/O 規 格 をプ ロ グ ラ マブル ロジック デバイ スがどれだけサポー ト し ているかによって 決 ま り ます。 SelectIO リ ソースは、 入 力 バ ッ フ ァおよび 出 力 バ ッ フ ァ の 設 定 自 由 度 が高 く、 さまざまな I/O 規 格 をサポー ト し ています。表 10-8 に、<strong>Spartan</strong>-3 ジェネレーショ ン <strong>FPGA</strong> でサポー ト される I/O 規 格 の 概 要 を、 ス ポンサーおよび 用 途 を 含 めて 示 し ます。 規 格 番 号 は 該 当 する 場 合 に 示 さ れています。規 格 説 明 仕 様 用 途 /スポンサー 入 力 バ ッ フ ァ 出 力 バ ッ フ ァシングルエンド 規 格LVTTL 低 電 圧 TTL JESD8C 汎 用 3.3V LVTTL プッシュプル340 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


SelectIO 信 号 規 格R表 10-8 : I/O 信 号 規 格 ( 続 き)LVCMOS 低 電 圧 CMOS JESD8C 汎 用 CMOS プッシュプルPCIGTL規 格 説 明 仕 様 用 途 /スポンサー 入 力 バ ッ フ ァ 出 力 バ ッ フ ァペリフェラル コンポーネント インターフェイスガンニング トランシーバロジックPCI SIG PCI バス LVTTL プッシュプルJESD8-3高 速 バス、 バ ッ クプレーン (Xerox 社 )GTL+ GTL+ Intel Pentium Pro差 動 増 幅 器オープンドレインHSTL高 速 ト ラ ンシーバロジックJESD8-6 SRAM (Hitachi 社 )、4 クラスのうち 3 クラスのサポート (IBM 社 )差 動 増 幅 器プ ッ シ ュ プルSSTL3 3.3V 用 SSTL JESD8-8 SRAM/ SDRAM バス(Hitachi 社 )、 2 つのクSSTL2 2.5V 用 SSTL JESD8-9ラス (IBM 社 )SSTL18 1.8V 用 SSTL JC42.3差 動 規 格LVDS 低 電 圧 差 動 信 号 ANSI/TIA/EIA-644-A 高 速 イ ン ターフ ェ イ ス、バックプレーン、ビデオ(National 社 、 TI 社 )差 動 増 幅 器差 動 ペアプ ッ シ ュ プル差 動 ペアBLVDS バス LVDS ANSI/TIA/EIA-644-A マルチポイ ン ト LVDS 差 動 ペア 差 動 ペアLVPECL 低 電 圧 PECL FreescaleSemiconductor 社( 旧 Motorola 社 )LDTLightning Data Transport(HyperTransport)HyperTransportSpec v3.0高 速 ク ロ ッ ク 差 動 ペア 差 動 ペア双 方 向 シ リ アル/パラレル 広 帯 域 、 低 レ イ テンシコンピュータ バス(HyperTransportConsortium)差 動 ペア差 動 ペアMINI_LVDS mini-LVDS TI 社 フラッ ト パネルディスプレイ差 動 ペア差 動 ペアLVDSEXT LVDS 拡 張 LVDS の 拡 張 駆 動 要 件 が 高 い 場 合 差 動 ペア 差 動 ペアRSDS 低 振 幅 差 動 信 号 NationalSemiconductor 社TMDS 遷 移 時 間 最 短 差 動 信 号 Digital DisplayWorking GroupPPDSポイン ト トゥ ポイント差 動 信 号NationalSemiconductor 社フラッ ト パネルディスプレイDVI/HDMI(Silicon Image 社 )差 動 ペア差 動 ペア差 動 ペア差 動 ペアLCD 差 動 ペア 差 動 ペア<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 341<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 10 章 : I/O リ ソースの 使 用LVTTL - 低 電 圧 TTLLVTTL 入 力 バ ッ フ ァ およびプ ッ シ ュ プル 出 力 バ ッ フ ァ を 使 用 する、 3.3V アプ リ ケーシ ョ ン 用 の 汎用 EIA/JESD 規 格 です。 3.3V の 出 力 ソース 電 圧 (V CCO ) が 必 要 ですが、 参 照 電 圧 (V REF ) および 終端 電 圧 (V TT ) は 不 要 です。LVCMOS - 低 電 圧 CMOS電 圧 1.2V ~ 3.3V の 汎 用 アプ リ ケーシ ョ ンに 使 用 さ れます。 参 照 電 圧 (V REF ) またはボー ド 終 端 電圧 (V TT ) は 不 要 です。PCI - ペリフェラル コンポーネント インターフェイス33MHz と 66MHz 両 方 の PCI バス アプ リ ケーシ ョ ンがサポー ト されています。 LVTTL 入 力 バ ッファおよびプッシュプル 出 力 バッファが 使 用 されます。 参 照 電 圧 (V REF ) ま たはボー ド 終 端 電 圧(V TT ) は 必 要 あ り ませんが、 3.3V 出 力 ソ ース 電 圧 (V CCO ) が 必 要 です。GTL - ガンニング トランシーバ ロジック 終 端Xerox 社 が 開 発 し た 高 速 バス 規 格 です。 ザイ リ ンクスでは、 この 規 格 を 終 端 したものを 使 用 しています。 差 動 増 幅 入 力 バ ッ フ ァ およびオープン ド レ イ ン 出 力 バ ッ フ ァ が 必 要 です。GTL+ - ガンニング トランシーバ ロジック プラス高 速 バス 規 格 (JESD8.3) で、 Intel 社 の Pentium Pro プ ロ セ ッ サで 最 初 に 使 用 さ れま し た。HSTL - 高 速 ト ラ ンシーバ ロジックIBM が 推 進 する 1.5V または 1.8V の 汎 用 高 速 バス 規 格 です。 I、 II、 III、 および IV の4 つの ク ラスがあり、 差 動 増 幅 入 力 バ ッ フ ァ およびプ ッ シ ュ プル 出 力 バ ッ フ ァ が 必 要 です。SSTL3 - 3.3V 用 SSTLSSTL 規 格 は、 日 立 および IBM が 推 進 する 汎 用 メ モ リ バス 規 格 (JESD8-8) です。 1.8V ~ 3.3V の複 数 の 電 圧 と 、 I および II の 2 つの ク ラ スがあ り 、 差 動 増 幅 入 力 バ ッ フ ァ およびプ ッ シ ュ プル 出 力バッファが 必 要 です。SSTL25 - 2.5V 用 SSTLSSTL 規 格 は、 日 立 および IBM が 推 進 する 汎 用 メ モ リ バス 規 格 (JESD8-8) です。 1.8V ~ 3.3V の複 数 の 電 圧 と 、 I および II の 2 つの ク ラ スがあ り 、 差 動 増 幅 入 力 バ ッ フ ァ およびプ ッ シ ュ プル 出 力バッファが 必 要 です。SSTL18 - 1.8V 用 SSTLJEDEC 規 格 JC42.3 で 指 定 された、 汎 用 の 1.8V メモリ バス 規 格 です。 参 照 電 圧 を 使 用 する こ の 規格 には 2 つの ク ラ スがあ り 、 どち らに も 0.90V の 参 照 電 圧 、 1.8V の 入 力 / 出 力 ソ ース 電 圧 、 および0.90V の 終 端 電 圧 が 必 要 です。 差 動 増 幅 入 力 バ ッ フ ァおよびプ ッ シ ュ プル 出 力 バ ッ フ ァ が 必 要 です。 高 速 SDRAM インターフェイスに 使 用 されます。342 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


SelectIO 信 号 規 格RLVDS - 低 電 圧 差 動 信 号差 動 I/O 規 格 です。 ほかの 差 動 信 号 規 格 と 同 様 、 LVDS では 1 データ ビット が 2 つの 信 号 ラ イ ン を介 し て 伝 送 さ れ、 シン グルエン ド の I/O 規 格 に 比 べノ イ ズ 耐 性 が 高 いと いう 特 性 があり ま す。 2 つの信 号 ラ イ ン 間 の 電 圧 幅 はおよ そ 350mV です。 参 照 電 圧 (V REF ) やボード 終 端 電 圧 (V TT ) を 使 用 する必 要 はあり ま せん。 1 入 力 ま たは 1 出 力 と ご に ピンが 2 本 必 要 です。 ま た、 抵 抗 終 端 が 必 要 です。BLVDS - バス LVDS2 つ 以 上 のデバイ ス 間 の 双 方 向 LVDS 通 信 を 可 能 に し ます。 外 部 抵 抗 終 端 が 必 要 です。LVPECL - 低 電 圧 ポジテ ィ ブ エミッタ カップル ロジック2 つの 信 号 ラ イ ン 間 の 電 圧 幅 がおよ そ 850mV の 差 動 I/O 規 格 です。 参 照 電 圧 (V REF ) やボード 終 端電 圧 (V TT ) を 使 用 する 必 要 はあ り ません。 外 部 抵 抗 終 端 が 必 要 です。LDT - HyperTransport ( 旧 Lightning Data Transport)差 動 、 高 速 、 高 パフ ォーマン ス の I/O イ ン ターフ ェ イ ス 規 格 。 ポイン ト トゥ ポイン ト 規 格 で、2.5VVCCIO が 必 要 です。 各 HyperTransport テクノロジ バスには 2 つのポイ ン ト トゥ ポ イ ン ト 単 一 方向 リンクがあります。 各 リンクは 2 ~ 32 ビッ トです。 入 力 参 照 電 圧 は 必 要 あ り ませんが、 入 力 バ ッファの 2 つの 信 号 間 に 100Ωの 終 端 抵 抗 が 必 要 です。mini-LVDSシリアルの、 フラットパネル 内 部 ソリューションで、 タイミング 制 御 ファンクションと LCD ソース ドライバ 間 のインターフェイスとして 機 能 します。LVDS 拡 張 - 拡 張 モー ド LVDS駆 動 力 が 高 く 電 圧 幅 が 広 い (350 ~ 750mV) ので、 長 距 離 ま たはケーブル LVDS の 伝 送 に 適 し ています。 レシーバで、EIA/TIA 仕 様 の 範 囲 内 の LVDS 信 号 を 生 成 する ために 高 い 駆 動 力 が 必 要 な 場 合に 使 用 し ます。RSDS - 低 振 幅 差 動 信 号ト ラ ン ス ミ ッ タ の 出 力 特 性 およびレ シーバの 入 力 を 定 義 する 信 号 規 格 です。 フ ラ ッ ト パネルのタ イミング コント ローラと 列 ドライバ 間 のチップ トゥ チップ インターフェイスのプロ ト コルも 定 義 します。TMDS - 遷 移 時 間 最 短 差 動 信 号DVI および HDMI ビデオ インターフェイスで 使 用 される 高 速 シリアル データ の 伝 送 技 術 で、 外 部50Ω 抵 抗 で 入 力 を 3.3V にプルア ッ プする 必 要 があ り ます。PPDS - ポイン ト トゥ ポイ ン ト 差 動 信 号次 世 代 LCD の 行 ド ラ イ バおよび 列 ド ラ イ バへの イ ン ターフ ェ イ ス 用 の 差 動 規 格 です。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 343<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 10 章 : I/O リ ソースの 使 用<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> 間 での I/O 規 格 の 違 いすべての <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> で、 1.2V ~ 3.3V の LVCMOS、 1.8V と 2.5V のLVTTL、 PCI、 SSTL、 および 1.8V の HSTL のシングルエン ド I/O 規 格 が 共 通 にサポー ト さ れます。 また、LVDS、 LVPECL、 BLVDS、および RSDS の 差 動 I/O 規 格 も 全 プ ラ ッ ト フ ォームで 共 通にサポー ト されます。 プラッ ト フォーム 間 での 主 な 違 いは、 ダイのサイズとコス トを 低 減 するために I/O ト ラ ンジ ス タ の 駆 動 能 力 が 最 適 化 さ れてい る こ と に よ り 発 生 し ます。 <strong>Spartan</strong>-3E <strong>FPGA</strong> は 小さ な ト ラ ンジ ス タ と 低 駆 動 力 で 最 適 化 さ れてお り 、 <strong>Spartan</strong>-3A/3AN/3A DSP <strong>FPGA</strong> はバン ク 1 および 3 で 駆 動 力 が 高 く 、 バン ク 0 および 2 には 小 さ な ト ラ ンジス タ ( 低 い 出 力 駆 動 力 ) が 使 用 されています。 <strong>Spartan</strong>-3A/3AN/3A DSP <strong>FPGA</strong> は 差 動 規 格 で も よ り 柔 軟 性 が 高 く なっていますが、 差動 出 力 はバン ク 0 と 2 に 限 定 されています。表 10-9 : <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> 間 の I/O 規 格 の 相 違特 徴 <strong>Spartan</strong>-3A/3AN/3A DSP <strong>Spartan</strong>-3E <strong>Spartan</strong>-3LVCMOS 駆 動 、 最 大 24mA、 バンク 1、 3 16mA 24mA差 動 出 力 バン ク 0、 2 すべてのバン ク すべてのバン ク差 動 VCCO 3.3V または 2.5V 2.5V 2.5VLVDS/RSDS ソ リ ューシ ョ ン 最 良 非 常 に 良 い 良 い最 新 の 差 動 規 格 TMDS/PPDS mini-LVDS RSDSPCI 66MHz 66MHz 33MHzバンク 数 4 4 4 ~ 8デジタル 制 御 インピーダンス(DCI)なし なし あり表 10-10 およ び 表 10-11 に <strong>Spartan</strong>-3 ジェネレーショ ン <strong>FPGA</strong> で 使 用 可 能 な I/O 規 格 を 示 し ま す。表 10-10 : 使 用 可 能 なシングルエン ド I/O 規 格規 格 V CCO 駆 動 /クラス <strong>Spartan</strong>-3A/3AN/3A DSP <strong>Spartan</strong>-3E <strong>Spartan</strong>-3LVCMOS1.2V2mA √ √ √~ 6mA バン ク 1/3 √LVTTL1.5V1.8V2.5V3.3V3.3V~ 6mA √ √ √~ 12mA バン ク 1/3 √~ 8mA √ √ √~ 16mA バン ク 1/3 √~ 12mA √ √ √~ 24mA バン ク 1/3 √~ 16mA √ √ √~ 24mA バン ク 1/3 √~ 16mA √ √ √~ 24mA √ √344 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


SelectIO 信 号 規 格R表 10-10 : 使 用 可 能 なシングルエン ド I/O 規 格 ( 続 き)規 格 V CCO 駆 動 /クラス <strong>Spartan</strong>-3A/3AN/3A DSP <strong>Spartan</strong>-3E <strong>Spartan</strong>-3PCI33 3.0V - √ √ √3.3V - √ √ √PCI66 3.3V - √ √SSTL1.8V2.5VI √ √ √II √ (1) √I √ √ √II √ (1) √3.3VIII√√HSTL1.5V1.8VI √ (1) √III √ (1) √I √ √ √II √ (1) √III √ √ √GTL - - √- Plus √DCI オプシ ョ ン - - √メモ :1. 出 力 はバン ク 1 および 3 に 制 限 されます。 入 力 には 制 限 はあ り ません。表 10-11 : 使 用 可 能 な 差 動 I/O 規 格規 格 V CCO <strong>Spartan</strong>-3A/3AN/3A DSP <strong>Spartan</strong>-3E <strong>Spartan</strong>-3LVDS 2.5V √ (1) √ √3.3V √ (1)BLVDS 2.5V √ √ √MINI_LVDS 2.5V √ (1) √3.3V √ (1)LVPECL 2.5V √ √ √3.3V √RSDS 2.5V √ (1) √ √3.3V √ (1)TMDS 2.5V √3.3V √ (1)<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 345<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 10 章 : I/O リ ソースの 使 用表 10-11 : 使 用 可 能 な 差 動 I/O 規 格 ( 続 き)PPDS 2.5V √ (1)3.3V √ (1)LDT 2.5V √LVDSEXT 2.5V √DIFF_SSTL18_I 1.8V √ √DIFF_SSTL18_II 1.8V √ (2)DIFF_SSTL2_I 2.5V √ √DIFF_SSTL2_II 2.5V √ (2) √DIFF_SSTL3_I 3.3V √DIFF_SSTL3_II 3.3V √DIFF_HSTL_I_18 1.8V √ √DIFF_HSTL_II_18 1.8V √ (2) √DIFF_HSTL_III_18 1.8V √ √DIFF_TERM - 約 100Ω 約 120ΩDCI オプシ ョ ン - √メモ :規 格 V CCO <strong>Spartan</strong>-3A/3AN/3A DSP <strong>Spartan</strong>-3E <strong>Spartan</strong>-31. これら の 差 動 出 力 はバン ク 0 および 2 に 制 限 されます。 入 力 には 制 限 はあ り ません。2. これら の 高 駆 動 出 力 はバン ク 1 および 3 に 制 限 さ れます。 入 力 には 制 限 はあ り ません。IOSTANDARD 属 性 を 使 用 し た I/O 規 格 の 指 定I/O 信 号 規 格 をデザ イ ンで 定 義 する には、 IOSTANDARD 属 性 を 設 定 し ます。 IOSTANDARD 属 性は、 ど の I/O プ リ ミティブにも 使 用 できます。 各 I/O プリ ミティブに、シングルエンドのIOSTANDARD 属 性 をサポー ト するバージ ョ ン と 、 差 動 IOSTANDARD 属 性 をサポー ト するバージョンがあります。表 10-12 : シングルエン ド 規 格 と 差 動 規 格 のコ ンポーネン トコンポーネントシングルエンドIOSTANDARD入 力 IBUF IBUFDSクロック 入 力 IBUFG IBUFGDS調 整 可 能 な 遅 延(<strong>Spartan</strong>-3A/3AN/3A DSP のみ)IBUF_DLY_ADJ出 力 OBUF OBUFDS差 動 IOSTANDARDIBUFDS_DLY_ADJ出 力 ト ラ イ ステート OBUFT OBUFTDS入 力 DDR出 力 DDRIDDR2ODDR2346 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


SelectIO 信 号 規 格R以 前 の ラ イ ブ ラ リ には、 IBUF_LVTTL のよ うに、 I/O コンポーネントに IOSTANDARD がコンポーネン ト の 一 部 と し て 既 に 指 定 されていた ものがあ り ま し たが、 新 し いデザイ ンでの 使 用 は 推 奨されません。 新 しいデザインでは、I/O コンポーネント IBUF を 使 用 して、IOSTANDARD = LVTTLの よ う に 指 定 し て く だ さ い。ネ ッ ト ま たは 信 号 がパ ッ ド に 接 続 さ れてい る 場 合 は、IOSTANDARD をネ ッ ト または 信 号 に 設 定 できます。 こ の 場 合 、IOSTANDARD は IOB プリ ミティブに 設 定 されているものと 見 なされます。 デザイン エレ メ ン ト に 設 定 する と 、 そのデザ イ ン エレ メ ン ト の 階 層 にあ るすべての 適 用 可 能 エレ メントに 適 用 されます。VHDL では、 IOSTANDARD を 使 用 する 前 に、 次 の 構 文 を 使 用 し て 宣 言 し ます。attribute iostandard: string;IOSTANDARD を 宣 言 し た 後 、 次 の よ う に 指 定 し ます。attribute iostandard of {component_name|label_name}: {component|label}is "iostandard_name";Verilog では、 次 の よ う に 指 定 し ます。// synthesis attribute iostandard [of] {module_name|instance_name} [is]iostandard_name;IOSTANDARD は 制 約 フ ァ イ ルで も 指 定 で き ます。 制 約 フ ァ イ ルは 直 接 作 成 する こ と も、 PACEツールを 使 用 し て 作 成 する こ と も で き ます。 PACE は、 主 と し て ロ ケーシ ョ ン 制 約 を I/O に 設 定 する 際 に 使 用 しますが、 I/O 規 格 や、 LVCMOS 駆 動 電 流 およびスルー レート などの 特 定 の I/O プロパテ ィ の 割 り 当 てにも 使 用 でき ます。 PACE は、 Project Navigator の [Processes] タブで [UserConstraints] → [Assign Package Pins] をダブルク リ ッ クする と 起 動 します。UCF ファイルの IOSTANDARD 構 文 は、 次 の よ う にな り ます。NET ”pad_net_name” IOSTANDARD=iostandard_name;IOSTANDARD は 次 の よ う に、 I/O コンポーネントにも 設 定 できます。INST ”instance_name” IOSTANDARD=iostandard_name;また、 Floorplan Editor でも 設 定 できます。 制 約 および 入 力 方 法 の 詳 細 は、 ソ フ ト ウ ェ ア マニュアルの 『 制 約 ガ イ ド 』 の 「 制 約 の 入 力 」 の 章 を 参 照 し て く だ さ い。タイミング 解 析IOSTANDARD の 設 定 によ り 、I/O ピンのタイ ミングが 変 わります。 データ シー ト には、スルー レートが Fast で 駆 動 電 流 が 12mA の LVCMOS25 I/O 規 格 のタ イ ミ ングの 例 が 掲 載 されています。LVCMOS25 以 外 の 信 号 規 格 が 入 力 に 割 り 当 て られてい る 場 合 または 駆 動 電 流 が 12mA でスルーレート が Fast の LVCMOS25 以 外 の 規 格 が 出 力 に 割 り 当 て ら れてい る 場 合 、 こ の 遅 延 を 調 整 する必 要 があ り ます。 この 調 整 は、 Timing Analyzer で 生 成 さ れる タ イ ミ ング 解 析 レポー ト に 自 動 的 に含 められます。プログラム 可 能 な I/O でタイ ミング パ ラ メ ータが 計 測 さ れる 場 合 、 信 号 規 格 に よ り テ ス ト 条 件 が 異なります。 データ シー ト には、 各 規 格 で 使 用 する 条 件 が 記 載 さ れています。入 力 タ イ ミ ングの 計 測 方 法 は 次 の と お り です。 Low ロジックレベル V L と High ロジック レベルV H 間 で 変 化 する 信 号 が、テス ト の 入 力 に 使 用 されます。 規 格 に よ っ ては、 入 力 ス イ ッ チ し き い 値 を正 し く 設 定 する ために、 バ イ ア ス 電 圧 をバン ク の V REF ピンに 適 用 する 必 要 があ り ます。 入 力 信 号(V M ) の 計 測 点 は、 V L と V H の 中 間 です。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 347<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 10 章 : I/O リ ソースの 使 用出 力 テ ス ト のセ ッ ト ア ッ プでは、 終 端 抵 抗 R T の 一 端 は 終 端 電 圧 V T に、 も う 一 端 は 出 力 に 接 続 されます。 各 規 格 では 一 般 的 に、 R T および V T には 信 号 の 反 射 を 最 小 限 に 抑 え るために 推 奨 された 標準 の 値 が 使 用 されます。 規 格 で 通 常 終 端 が 使 用 さ れない 場 合 (LVCMOS、 LVTTL など) は、 接 続 がオープンであ る こ と を 示 すために R T が 1MΩに 設 定 さ れ、 V T は 0 に 設 定 されます。 入 力 で 使 用 された 計 測 点 (V M ) は、 出 力 で も 使 用 さ れます。V T (V REF )<strong>FPGA</strong> OutputR T (R REF )V M (V MEAS )C L (C REF )図 10-20 : 出 力 テス ト セッ トアップC L ( 容 量 性 負 荷 ) は、 出 力 と GND の 間 に 接 続 されます。 すべての 規 格 の 出 力 タ イ ミ ングは、 ス ピード フ ァ イ ルおよびデータ シー ト に 記 載 さ れてい る よ う に、 常 に CL 値 が 0 の 場 合 に 基 づいています。 ハイ インピーダンス プローブ (1pF 未 満 ) がすべての 計 測 に 使 用 されます。 テス ト フィクスチ ャ に よ る 遅 延 は 計 測 か ら 差 し 引 かれ、 最 終 的 にはス ピー ド フ ァ イ ルおよびデータ シー ト に 記 載 されたタ イ ミ ング 値 と な り ます。IBIS モデルを 使 用 し たアプ リ ケーシ ョ ンでの 負 荷 条 件 のシ ミ ュ レーシ ョ ンIBIS モデルを 使 用 する と 、アプ リ ケーシ ョ ンの タ イ ミ ング 遅 延 を 正 確 に 予 測 で き ます。 IBIS モデルで 使 用 されるパラ メ ータ (V REF 、 R REF 、および V MEAS ) は、 データ シー ト のパラ メ ータ (V T 、 R T 、および V M ) に 直 接 対 応 し ています。 IBIS モデルの V REF ( 終 端 電 圧 ) を 表 の V REF ( 入 力 ス イ ッ チ しきい 値 ) と 混 同 しないよ うに 注 意 してください。 4 番 目 のパ ラ メ ータ C REF は 常 に 0 です。 4 つのパラ メ ータ で、 出 力 テ ス ト 条 件 がすべて 記 述 さ れます。 IBIS モデルは、 ザイ リ ン ク ス 開 発 ソ フ ト ウ ェアおよび 次 の リ ン ク から 入 手 でき ます。http://japan.xilinx.com/support/download/index.htmds312-3_04_090105アプ リ ケーシ ョ ンの 遅 延 は、 特 定 の 負 荷 条 件 に 従 っ て 次 の よ う にシ ミ ュ レーシ ョ ン し ます。1. 使 用 する 信 号 規 格 を、データ シー ト に 示 さ れたテ ス ト セッ トアップに 出 力 ドライバを 接 続 してシミュレーションします。 データ シー ト のパ ラ メ ータ 値 V T 、 R T 、および V M を 使 用 します。CREF は 0 です。2. V M への 時 間 を 記 録 し ます。3. 同 じ 信 号 規 格 を、 負 荷 のあ る PCB トレースに 出 力 ドライバを 接 続 してシミュレーションします。 V REF 、 R REF 、 C REF 、および V MEAS 値 も 含 め 適 切 な IBIS モデルを 使 用 する か、 負 荷 を 表す 容 量 値 を 使 用 し て く だ さ い。4. V MEAS への 時 間 を 記 録 し ます。5. 手 順 2 と 4 の 結 果 を 比 較 し ます。 適 切 な 出 力 規 格 調 整 に 遅 延 を 加 算 ま たは 減 算 し、PCB トレースのワース ト ケースの 遅 延 を 算 出 し ます。348 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


SelectIO 信 号 規 格RLVCMOS/LVTTL スルー レー ト 制 御 および 駆 動 電 流各 IOB にはスルー レー ト 制 御 があ り、 LVCMOS および LVTTL 出 力 の 出 力 ス イ ッ チ エッジ レートを 設 定 します。 スルー レー ト は SLEW 属 性 で 制 御 され、 SLOW (デフォル ト)、 FAST、 またはQUIETIO (<strong>Spartan</strong>-3A/3AN/3A DSP デバイ スのみ。 最 も 低 速 ) に 設 定 でき ます。 スルー レート が遅 い と ノ イ ズ と 消 費 電 力 量 が 抑 え ら れ、 速 く な る に 従 っ て タ イ ミ ングが 向 上 し ます。表 10-13 および 表 10-14 に 示 すよ う に、 各 LVCMOS および LVTTL 出 力 では こ れに 加 えて 最 大 7つの 異 な る 駆 動 電 流 がサポー ト さ れます。 各 出 力 の 駆 動 電 流 を 調 整 する には、 DRIVE 属 性 を 2、 4、6、 8、 12、 16、 または 24 のいずれかに 設 定 し ます。 <strong>FPGA</strong> アプリ ケーシ ョ ンで 特 に 指 定 のない 限り、 ソフトウェアのデフォルトの IOSTANDARD は LVCMOS25、 SLOW スルー レー ト 、 出 力 駆動 電 流 12 mA です。IOSTANDARD を 設 定 で き る 回 路 図 、 HDL、 制 約 ファイル、PACE、 Floorplan Editor のすべての方 法 で、 LVCMOS/LVTTL の DRIVE および SLEW オプシ ョ ン を 指 定 で き ます。表 10-13 : <strong>Spartan</strong>-3A/3AN/3A DSP プ ログ ラ マブル 出 力 駆 動 電 流IOSTANDARD出 力 駆 動 電 流 (mA)2 4 6 8 12 16 24LVTTL √ √ √ √ √ √ √LVCMOS33 √ √ √ √ √ √ バン ク1、 3LVCMOS25 √ √ √ √ √ バンク1、 3バン ク1、 3LVCMOS18 √ √ √ √ バンク1、 3LVCMOS15 √ √ √ バン ク1、 3LVCMOS12 √ バンク1、 3バンク1、 3バンク1、 3バンク1、 3- - --表 10-14 : <strong>Spartan</strong>-3E プ ログ ラ マブル 出 力 駆 動 電 流IOSTANDARD出 力 駆 動 電 流 (mA)2 4 6 8 12 16LVTTL √ √ √ √ √ √LVCMOS33 √ √ √ √ √ √LVCMOS25 √ √ √ √ √ -LVCMOS18 √ √ √ √ - -LVCMOS15 √ √ √ - - -LVCMOS12 √ - - - - -<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 349<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 10 章 : I/O リ ソースの 使 用表 10-15 : <strong>Spartan</strong>-3 プ ログ ラ マブル 出 力 駆 動 電 流IOSTANDARD出 力 駆 動 電 流 (mA)2 4 6 8 12 16 24LVTTL √ √ √ √ √ √ √LVCMOS33 √ √ √ √ √ √ √LVCMOS25 √ √ √ √ √ √ √LVCMOS18 √ √ √ √ √ √LVCMOS15 √ √ √ √ √ -LVCMOS12 √ √ √ - - -出 力 駆 動 電 流 が 高 く 、 出 力 スルー レート が FAST に 設 定 されてい る 場 合 は、 通 常 I/O パフォーマンスが 最 速 にな り ます。 ただし 同 じ 設 定 でも、 最 短 でないボード トレースに 対 して PCB で 伝 送 ラ イン 効 果 が 発 生 する こ と があ り ます。 各 IOB のスルー レー ト および 駆 動 電 流 は 個 別 に 制 御 さ れます。アプ リ ケーシ ョ ンのパフ ォーマン ス 要 件 を 満 たす 最 低 のスルー レー ト と 駆 動 電 流 を 使 用 し ます。LVCMOS25/33 および LVTTL 規 格 の 入 力 には、 約 100mV のヒステリシスがあります。同 時 ス イ ッ チ 出 力リード イ ンダ ク タ ン スのため、 高 速 で 高 駆 動 の 出 力 の 使 用 時 は、 パ ッ ケージでサポー ト さ れる 同 時スイッチ 出 力 (SSO) の 数 が 制 限 されます。 高 速 で 高 駆 動 の 出 力 は、 アプ リ ケーシ ョ ンで 必 要 な 場 合にのみ 使 用 し て く だ さ い。各 <strong>FPGA</strong> ファミ リのデータシートのモジュール 3 には、 推 奨 される SSO の 最 大 数 が 記 載 さ れています。 こ れら のガ イ ド ラ イ ンは、 各 出 力 信 号 規 格 に 対 し て、 ス イ ッ チ ノ イ ズを 安 全 なレベルに 保 ったま ま 同 方 向 に 同 時 にス イ ッチでき るユーザー I/O ピ ンの 最 大 数 を 示 し ます。 記 述 さ れたテ ス ト 条件 でこれらのガイ ド ラ イ ンに 従 う と、 グ ラ ン ド バウ ン スや 電 源 バウ ン ス を 発 生 させずに <strong>FPGA</strong> を動 作 さ せる こ と がで き ます。グランド バウ ン スや 電 源 バウ ン スは、 多 数 の 出 力 が 同 時 に 同 方 向 にス イ ッ チする と 発 生 し ます。 すべての 出 力 駆 動 ト ラ ンジ ス タ か ら の 電 流 は、 同 じ 電 圧 レールに 流 れます。 Low から High に 遷 移 すると VCCO レールに、High から Low に 遷 移 する と GND レールに 流 れます。 こ の 結 果 、 過 渡 電 流が 蓄 積 し、 ダ イ パッ ド と 電 源 またはグランド リターン 間 にあるインダクタンス 全 体 の 電 圧 に 相 違が 生 じ ます。 インダクタンスは、 ボンディング ワイヤ、 パッケージ リード フレーム、 およびパッケージ 内 のその 他 すべての 信 号 配 線 に 関 連 し ています。 PCB の 浮 遊 イ ンダ ク タ ン スやレシーバの容 量 負 荷 など も SSO のノイズ レベルに 影 響 を 与 え ます。 SSO に よ り 発 生 する 電 圧 に よ っ て 内 部 スイッチ ノ イ ズのマージンが 影 響 を 受 け、 信 号 の 質 が 低 下 し ます。データ シー ト には、 各 デバ イ ス/パ ッ ケージの 組 み 合 わせに 対 する V CCO /GND ペア 数 が 示 されており、 各 出 力 信 号 規 格 および 駆 動 電 流 に 対 し て、I/O バンク 内 の V CCO /GND ペアあた り 、 同 一 方 向 に同 時 にス イ ッ チ 可 能 な 最 大 SSO 数 が 推 奨 されています。 これらのガイド ラインは、 パッケージ スタイル、 スルー レー ト 、 および 出 力 駆 動 電 流 別 に 示 さ れています。 SSO 数 は、 I/O バンクご とに 指定 されています。 各 表 の 適 切 な 値 を 乗 算 する と 、 I/O バン ク で 許 容 さ れる SSO の 最 大 数 を 算 出 で きます。 最 大 数 を 超 え る と 、 電 圧 バウ ン スやグ ラ ン ド バウ ン スの 増 加 、 シグナル インテグリティの 低下 、 およびシ ス テム ジ ッ タの 増 加 を 招 き ます。推 奨 さ れる SSO の 最 大 数 は、 <strong>FPGA</strong> がプ リ ン ト 基 板 にはんだ 付 けされており、 適 切 なデザイン 手法 が 使 用 されている 場 合 の 値 で、 ソケッ トに 取 り 付 けられた <strong>FPGA</strong> では リ ード インダクタンスが発 生 する ため 適 用 さ れません。350 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


SelectIO 信 号 規 格Rクワッド フラッ ト パッケージ (TQ) の 方 が リ ード インダクタンスが 大 きいため、 最 大 SSO 数 はボール グ リッド アレイ パッケージ (FG) よりも 少 なくなります。 同 時 ス イ ッ チ 出 力 数 が 多 いアプ リケーシ ョ ンでは、 ボール グ リッド アレイ パ ッ ケージが 推 奨 さ れます。SSO の 影 響 は、 仮 想 グ ラ ン ド ピ ン を 追 加 する こ と で 最 小 限 に 抑 え る こ と がで き ます。 仮 想 グ ラ ンド を 作 成 する には、 ロ ジ ッ ク 0 で 駆 動 する 出 力 ピ ン を 定 義 し ます。 詳 細 は、 第 3 章 の 「DCM の 入力 および 出 力 接 続 の 周 囲 に 仮 想 グ ラ ン ド ピ ン を 配 置 する (オプシ ョ ン)」 を 参 照 して く ださい。HSTL/SSTL V REF 参 照 電 圧図 10-21 に 示 すよ う に、 HSTL 入 力 および SSTL 入 力 では 参 照 電 圧 (V REF ) を 使 用 して 入 力 スイ ッチしきい 値 をバイアスします。 各 入 力 には、 V TT と い う ボー ド 終 端 電 圧 が 関 連 付 け られています。SSTL2 Class IV CCO= 2.5V25ΩZ = 50V TT= 1.25V50ΩV REF= 1.25Vx133_15_011900図 10-21 : 終 端 されたSSTL2 クラス I の 例あるバンクの 入 力 で HSTL/SSTL を 使 用 する よ う に 指 定 さ れた コ ン フ ィ ギ ュ レーシ ョ ン データファイルが <strong>FPGA</strong> に 読 み 込 まれる と 、そのバン ク にあ る 予 約 さ れた I/O ピ ンのい く つかが 自 動 的 にV REF 入 力 に 変 換 さ れます。 バンクの V REF 入 力 はすべて 同 じ 電 圧 に 接 続 する 必 要 があ り ます。 そのため、 HSTL 入 力 および SSTL 入 力 は、 同 じ V REF 電 圧 が 使 用 さ れてい る 場 合 (V REF =0.9V である SSTL 規 格 と HSTL 規 格 の 1.8V バージ ョ ンなど) のみ、 同 じバン ク 内 に 含 める こ と ができ ます。HSTL または SSTL を 含 まないバン クでは、 V REF ピンはユーザー I/O または 入 力 ピンとして 使 用できます。V REF は、 <strong>Spartan</strong>-3 <strong>FPGA</strong> でのみサポー ト される GTL および GTLP I/O 規 格 を 使 用 する 入 力 に も必 要 です。 LVTTL 規 格 および LVCMOS 規 格 には VREF は 必 要 あ り ません。 V REF を 必 要 とする 差動 規 格 は、 HSTL および SSTL I/O 規 格 の 差 動 タ イ プの も の (DIFF_HSTL および DIFF_SSTL) のみです。表 10-16 : IOSTANDARD 設 定 の VREF 値IOSTANDARD V REF V TTHSTL_I_18 0.9 0.9HSTL_II_18 0.9 0.9HSTL_III_18 1.1 1.8HSTL_I 0.75 0.75HSTL_II 0.75 0.75HSTL_III 0.9 1.5SSTL18_I 0.9 0.9SSTL18_II 0.9 0.9SSTL2_I 1.25 1.25<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 351<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 10 章 : I/O リ ソースの 使 用表 10-16 : IOSTANDARD 設 定 の VREF 値 ( 続 き)IOSTANDARD V REF V TTSSTL2_II 1.25 1.25SSTL3_I 1.5 1.5SSTL3_II 1.5 1.5GTL 0.8 1.2GTLP 1.0 1.5シングルエンド I/O の 終 端 手 法ワ イ ヤ 伝 送 さ れる 電 気 信 号 の 遅 延 は、 伝 送 距 離 が 短 い 場 合 は、 立 ち 上 が り および 立 ち 下 が り の 時 間によって 決 ま り ます。 伝 送 ラ イ ン 遅 延 はイ ンダ ク タ ン スや 容 量 に よ って 変 化 し ますが、 適 切 に 設 計されているボードでは 1 インチあたり 約 180ps です。伝 送 ラ イ ン 効 果 ( 反 射 ) は、 立 ち 上 がり およ び 立 ち 下 がり の 時 間 が 速 い 場 合 (1.5ns)、 通 常 1.5 インチから 現 れま す。 終 端 が 適 切 でない 場 合 や 終 端 さ れていない 場 合 、ま たは 伝 送 ラ イ ン のイ ン ピ ーダン スが 変 化 し た 場 合 は、 反 射 が 起 こ り 、 長 いト レ ース で 遅 延 が 大 き く なる 原 因 と なり ま す。 システム 速 度が 上 昇 する につれ、 I/O の 遅 延 が 制 限 要 因 と なる ため、 伝 送 ラ イ ン の 終 端 の 重 要 性 も 増 し ま す。伝 送 ラ イ ン 効 果 の 影 響 を 減 少 させる 終 端 方 法 は 多 数 あ り ます。 出 力 終 端 の 手 法 には 次 のよ う な ものがあ り ます。• なし• 直 列• 並 列 ( 分 流 )• 直 列 および 並 列 ( 直 列 分 流 )入 力 終 端 の 手 法 には 次 の よ う な も のがあ り ます。• なし• 並 列 ( 分 流 )こ れら の 終 端 手 法 は 自 由 に 組 み 合 わせて 使 用 で き ます。 353 ページの 図 10-22 に、 終 端 方 法 の 各 組み 合 わせの 基 本 的 な 例 を 示 し ます。352 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


SelectIO 信 号 規 格RZ=50V TTV TTZ=50V REFV TTV TTZ=50V REFZ=50V REFV TTV TTZ=50V REFZ=50V REF図 10-22 : 標 準 の 入 力 / 出 力 終 端 方 法x133_07_112499HSTL 規 格 および SSTL 規 格 のい く つかで 使 用 で き る 終 端 手 法 の 回 路 図 の 例 を 図 10-23 ~ 図 10-29に 示 し ます。 LVTTL、 LVCMOS、および PCI 規 格 では、 終 端 は 必 要 あ り ません。 <strong>Spartan</strong>-3 <strong>FPGA</strong>での GTL または DCI 終 端 は、 <strong>Spartan</strong>-3 データ シー ト (DS099) を 参 照 して く ださい。HSTL Class IV CCO = 1.5VV TT = 0.75VZ = 5050ΩV REF = 0.75Vx133_10_112499図 10-23 : HSTL クラス I での 終 端HSTL Class IIIV CCO = 1.5VV TT = 1.5VZ = 5050ΩV REF = 0.9Vx133_11_112499図 10-24 : HSTL クラス III での 終 端<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 353<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 10 章 : I/O リ ソースの 使 用HSTL Class IVV CCO = 1.5VV TT = 1.5V50ΩV TT = 1.5V50ΩZ = 50V REF = 0.9Vx133_12_112499図 10-25 : HSTL クラス IV での 終 端SSTL3 Class IV TTV = 1.5VCCO = 3.3V50Ω25ΩZ = 50V REF = 1.5Vx133_13_112499図 10-26 : SSTL3 クラス I での 終 端SSTL3 Class IIV V = 1.5VTT TTV = 1.5VCCO = 3.3V50Ω 50Ω25ΩZ = 50V REF = 1.5Vx133_14_112499図 10-27 : SSTL3 クラス II での 終 端SSTL2 Class IV CCO= 2.5V25ΩZ = 50V TT= 1.25V50ΩV REF= 1.25Vx133_15_011900図 10-28 : SSTL2 クラス I での 終 端SSTL2 Class IIV TT = 1.25VV CCO = 2.5VV TT = 1.25V50Ω25Ω 50Ω Z = 50V REF = 1.25Vx133_16_011900図 10-29 : SSTL2 クラス II での 終 端354 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


SelectIO 信 号 規 格R差 動 I/O 規 格差 動 規 格 では、 極 性 が 互 いに 逆 の 信 号 ペアが 使 用 さ れます。 こ れ ら の 規 格 には、 同 相 信 号 除 去 な どの ノ イ ズ 除 去 特 性 があ る ので、 非 常 に 高 い 転 送 レー ト でデータ を 送 信 で き ます。 ここでは、<strong>Spartan</strong>-3 ジェネレーション デバ イ スの 差 動 信 号 機 能 について 説 明 し ます。各 デバイ ス/パ ッ ケージの 組 み 合 わせには、 差 動 規 格 をサポー ト する よ う に 最 適 化 さ れた I/O ペアがあります。 差 動 ペアは、PACE ツールで [Show Differential Pairs] オプシ ョ ン をオンにする と 表 示 されます。 ピ ン 名 の 一 部 であ る L-number は 各 ピ ンに 固 有 で、 各 バン ク に 関 連 付 け ら れた ラ イ ン ペアを 示 します。 各 ペアの P および N の 文 字 は、 それぞれ 非 反 転 ラ イ ンおよび 反 転 ラ イ ン を 表 し ます。た と えば、 ピ ンの 名 前 が IO_L43P_3 および IO_L43N_3 であれば、 バンク 3 のペア L43 を 構 成 する 非 反 転 ラ イ ン と 反 転 ラ イ ン を 示 し ています。各 プラ ッ ト フ ォームで、 差 動 I/O 規 格 および 仕 様 の 組 み 合 わせが 異 な り ます。 差 動 規 格 の 数 は<strong>Spartan</strong>-3A/3AN/3A DSP <strong>FPGA</strong> が 最 も 多 く 、 信 号 特 性 も 優 れています。オンチ ッ プ 差 動 終 端<strong>Spartan</strong>-3A/3AN/3A DSP および <strong>Spartan</strong>-3E デバイ ス では、 入 力 差 動 レ シーバの 終 端 に、 オンチ ップ 差 動 終 端 を 使 用 で き ます。 オンチ ッ プ 入 力 差 動 終 端 を 使 用 する と 、 差 動 レ シーバ 回 路 で 通 常 使 用されている 外 部 100Ω 終 端 抵 抗 が 不 要 と な る 場 合 があ り ます ( 図 10-30 参 照 )。 差 動 終 端 は、 アプ リケーシ ョ ンで 使 用 可 能 であれば、 LVDS、 mini-LVDS、 および RSDS で 使 用 されます。 オンチップ差 動 終 端 は、 入 力 専 用 ピ ンではサポー ト さ れません。<strong>Spartan</strong>-3AZ 0 = 50W<strong>Spartan</strong>-3E100W100WZ 0 = 50W<strong>Spartan</strong>-3AZ 0 = 50WZ 0 = 50W<strong>Spartan</strong>-3EDS312-2_24_061606図 10-30 : 差 動 入 力 および 出 力オン チッ プ 差 動 終 端 の 電 源 は V CCO です。 このためバンクの V CCO レ ベルは、 差 動 終 端 を 使 用 する入 力 すべての 電 圧 規 格 と も 一 致 し ている 必 要 があり ま す。 <strong>Spartan</strong>-3A/3AN/3A DSP <strong>FPGA</strong> では、 オン チッ プ 差 動 終 端 は V CCO =3.3V の 場 合 にバン ク で 100Ω 標 準 に 指 定 さ れていま す。 オンチッ プ 差動 終 端 は、 電 源 が V CCO = 2.5V のバン ク でも 使 用 でき ま すが、 指 定 さ れる 抵 抗 の 範 囲 は 広 く なり ます。 具 体 的 な 値 は、 <strong>Spartan</strong>-3A <strong>FPGA</strong> データ シート (DS529) のモジュ ール 3 を 参 照 し てく ださ い。図 10-31 に、 <strong>Spartan</strong>-3A/3AN/3A DSP <strong>FPGA</strong> で 差 動 終 端 を 使 用 する 場 合 の 詳 細 を 図 で 示 し ま す。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 355<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 10 章 : I/O リ ソースの 使 用VCCO = 3.3VLVDS_33MINI_LVDS_33RSDS_33PPDS_33VCCO = 2.5VLVDS_25MINI_LVDS_25RSDS_25PPDS_25 0 2Bank 0Bank 2Z0 = 50ΩZ0 = 50ΩBournsCAT16-PT4F4 1/4100ΩBank 3Bank 0Bank 2Bank 1VCCO LVDS_33LVDS_25MINI_LVDS_33MINI_LVDS_25RSDS_33RSDS_25PPDS_33PPDS_25DIFF_TERM=Noa) DIFF_TERM=NoVCCO = 3.3VLVDS_33MINI_LVDS_33RSDS_33PPDS_33VCCO = 2.5VLVDS_25MINI_LVDS_25RSDS_25PPDS_25Z0 = 50ΩZ0 = 50ΩRDTVCCO = 3.3VLVDS_33MINI_LVDS_33RSDS_33PPDS_33VCCO = 2.5VLVDS_25MINI_LVDS_25RSDS_25PPDS_25b) DIFF_TERM=Yes DS529-3_09_022507DIFF_TERM=Yes図 10-31 : <strong>Spartan</strong>-3A/3AN/3A DSP での LVDS、 RSDS、 MINI_LVDS、 および PPDS I/O 規 格 の 外 部 入 力 終 端 抵 抗<strong>Spartan</strong>-3E <strong>FPGA</strong> では、オンチ ッ プ 差 動 終 端 は V CCO =2.5V のバン クでのみサポー ト され、120Ω標 準 に 指 定 さ れます。 詳 細 は、 <strong>Spartan</strong>-3E <strong>FPGA</strong> データ シー ト (DS312) のモジュール 3 を 参 照 してください。DIFF_TERM 属 性 を TRUE に 設 定 する と 、 差 動 I/O ピン ペアで 差 動 終 端 が イ ネーブルにな り ます。こ の 属 性 では、 UCF の 次 の 構 文 が 使 用 されます。INST DIFF_TERM = "";TMDS_33 終 端<strong>Spartan</strong>-3A/3AN/3A DSP TMDS_33 規 格 には、 図 10-32 に 示 すよ う に、プルアッ プ 抵 抗 が 必 要 です。Bank 0 and 2Any BankBank 03.3VBank 250Ω 50ΩBank 2VCCO = 3.3V VCCAUX = 3.3VBank 3Bank 0Bank 1TMDS_33TMDS_33DVI/HDMI cableDS529-3_08_020107図 10-32 : TMDS_33 I/O 規 格 に 必 要 な 外 部 入 力 抵 抗356 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


SelectIO 信 号 規 格RBLVDS 出 力 終 端図 10-33 に 示 すよ う に、 BLVDS 出 力 には 外 部 終 端 が 必 要 です。VCCO = 2.5VBourns CAT16-LV4F121/4165WZ0 = 50WBourns CAT16-PT4F41/4VCCO = 2.5V140WZ0 = 50W100W165Wds312-3_07_102105図 10-33 : BLVDS I/O の 外 部 出 力 および 入 力 終 端 抵 抗<strong>Spartan</strong>-3A/3AN/3A DSP <strong>FPGA</strong> では、 BLVDS 出 力 はどのバン ク で も 使 用 で き、 図 10-34 に 示 すよ う に、 入 力 に も 出 力 に も VCCO の 制 限 はあ り ません。 30 2 1VCCO = 2.5VBourns CAT16-LV4F12165ΩZ0 = 50ΩBourns Bank 0CAT16-PT4F4Bank 2Bank 3Bank 1VCCO BLVDS_25140ΩZ0 = 50Ω100ΩBLVDS_25165Ω図 10-34 : <strong>Spartan</strong>-3A/3AN/3A DSP での BLVDS I/O の 外 部 出 力 および 入 力 終 端 抵 抗DCI (デジタル 制 御 インピーダンス)<strong>Spartan</strong>-3 <strong>FPGA</strong> では、 多 く の 規 格 で DCI (デジ タル 制 御 イ ン ピーダン ス) 機 能 がサポー ト さ れています。 DCI では 統 合 さ れた 終 端 が 使 用 さ れ、 信 号 の 反 射 を 削 減 し ます。 こ の 機 能 は XCITE テクノロ ジ と も 呼 ばれます。 DCI で 提 供 されるオンチ ッ プ 終 端 には 2 種 類 あ り ます。 1 つは 並 列 終 端 で、 統合 さ れた 抵 抗 のネ ッ ト ワーク が 使 用 さ れます。 もう 1 つの 直 列 終 端 では、 出 力 ド ラ イバの イ ン ピーダン スが 制 御 さ れます。DCI は、 <strong>Spartan</strong>-3 データ シー ト に 記 載 さ れてい る よ う に、 特 定 の IOSTANDARD オプシ ョ ンを 選択 し た 場 合 にのみ 使 用 で き ます。 DCI 機 能 は、デバ イ スに 8 個 あ るバン ク 間 で 独 立 し て 動 作 し ます。各 バン ク に VRN (N 参 照 ピ ン) と VRP (P 参 照 ピ ン) があ り 、 ド ラ イバおよび 終 端 抵 抗 が 調 整 さ れます。 バン ク で 特 定 の DCI 規 格 が 使 用 さ れた 場 合 にのみ、こ れら の 2 つのピ ンが VRN および VRPとして 機 能 します。 これらのピンを 必 要 とする DCI 規 格 が 使 用 さ れていない 場 合 は、 2 つのピンはユーザー I/O として 機 能 します。 外 部 参 照 抵 抗 を 2 つ 追 加 し、 1 つで VRN ピンを VCCO にプルアップし、 もう 1 つで VRP ピンを GND にプルダウンし ます。DCI の 詳 細 は、 <strong>Spartan</strong>-3 <strong>FPGA</strong> データ シー ト (DS099) を 参 照 して ください。DS529-3_07_020107<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 357<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 10 章 : I/O リ ソースの 使 用IOB の 電 源 電 圧IOB の 電 源 には 次 の 3 つがあ り ます。1. V CCO : <strong>FPGA</strong> の I/O バン ク ごと に 1 つあり 、 出 力 ド ラ イ バの 電 源 と なり ま す。 V CCO ピンの 電圧 によ り 、 出 力 信 号 の 電 圧 幅 が 決 ま り ま す。すべての V CCO ピ ン を 接 続 する 必 要 があり ま す。バン ク を 使 用 し ない 場 合 は、V CCO ピ ン は 使 用 可 能 な V CCAUX または V CCO レ ールに 接 続 し ま す。2. V CCINT : <strong>FPGA</strong> の 内 部 ロ ジ ッ ク の 主 要 電 源 です。3. V CCAUX : 補 助 電 源 ソース で、 主 に DCM や LVCMOS25、LVCMOS33 入 力 などの 入 力 信 号 など、 さ まざまな <strong>FPGA</strong> フ ァ ン ク シ ョ ンのパフ ォーマン ス を 最 適 化 し ます。ESD 耐 性すべての <strong>Spartan</strong>-3 ジェネレーション I/O は、 ESD ( 静 電 気 放 電 ) に よ る ダ メ ージや 過 電 圧 に よ る ダメージを 受 けないよ う に、すべてのデバイ ス パ ッ ド が 保 護 回 路 に よ り 保 護 さ れています。 ESD 耐 量仕 様 は 通 常 、 人 体 モデルで ±2000V です。 詳 細 は、 各 フ ァ ミ リ のデータ シー ト のモジ ュール 3 を 参照 してください。<strong>Spartan</strong>-3A/3AN/3A DSP <strong>FPGA</strong>では、 こ の 保 護 回 路 に I/O 電 圧 範 囲 の 制 限 はあ り ません。<strong>Spartan</strong>-3E および <strong>Spartan</strong>-3 <strong>FPGA</strong>では、 デバイ ス パ ッ ド はすべて 過 電 圧 に よ る ダ メ ージを 受 けないよ うに、 ク ランプ ダ イ オー ド で 保 護 さ れています。 各 I/O には、 パッ ド から V CCO までのP-to-N と、 パッ ドから GND までの N-to-P の 2 つの ク ラ ンプ ダイオードがあります。 通 常 こ れらのダ イ オー ド は、 動 作 中 オフ ステートでバイアスされます。 これらのクランプ ダイオードは、どの信 号 規 格 を 選 択 し て も 常 にパ ッ ド に 接 続 さ れています。 ダ イ オー ド が 使 用 さ れてい る と 、<strong>Spartan</strong>-3/3E I/O の 高 電 圧 信 号 に 対 する 耐 性 が 制 限 さ れます。 各 データ シー ト のモジ ュール 3 に 記 載 されている V IN の 絶 対 最 大 定 格 には、 I/O で 許 容 でき る 電 圧 の 範 囲 が 示 されています。 V IN 最 大 電 圧 範 囲 外の 入 力 電 圧 は、 I IK 入 力 ダ イ オー ド クランプ ダイオード 定 格 が 満 たされ、 かつ 同 時 に 範 囲 を 超 えるピン 数 が 100 以 下 であれば、 許 容 さ れます。<strong>Spartan</strong>-3A/3AN/3A DSP <strong>FPGA</strong> では、I/O を PCI33 または PCI66 I/O 規 格 に コ ン フ ィ ギ ュ レーシ ョンした 場 合 にのみクランプ ダ イ オー ド が 使 用 さ れます。IOB バンク<strong>Spartan</strong>-3 ジェネレーショ ン <strong>FPGA</strong> では、 複 数 の I/O 規 格 を 1 つのデバイ ス 内 で 組 み 合 わせて 使 用 できます。 出 力 の 電 源 には 常 に V CCO が 使 用 さ れま すが、 V CCO の 5 つの 値 のう ちの 1 つを 使 用 し て、複 数 の 規 格 を 採 用 でき ま す。 ま た、 入 力 を V CCO の 電 圧 と 一 致 さ せる 必 要 がない 場 合 も あり ま す。1 つのデバイ スで 複 数 の V CCO レベルが 使 用 で き る ため、 柔 軟 性 が さ ら に 増 し ます。 I/O の 各 バン ク(デバイ スの 各 辺 ) に、 個 別 の V CCO 電 源 レールがあ り ます。 図 10-35 に 示 すよ う に、 ほ と んどの<strong>Spartan</strong>-3 ジェネレーショ ン デバイ スで、 IOB は 4 つの I/O バンクに 割 り 当 てられています。 各 バン ク には 個 別 の V CCO および V REF 電 源 があ り ます。 電 源 が 独 立 し ている ため、 各 バン ク で V CCO( 出 力 に 電 流 を 供 給 し、 オンチ ッ プ 差 動 終 端 に 電 力 を 供 給 ) および V REF ( 参 照 電 圧 を HSTL およびSSTL に 供 給 ) に 個 別 の 値 を 設 定 でき ます。 V CCO および V REF の 要 件 は、 表 10-17 ~ 表 10-19 を参 照 し て く だ さ い。 <strong>Spartan</strong>-3 <strong>FPGA</strong> のほと んどのデバイ スには、 I/O バンクが 8 つあ り ます。 詳 細は、 <strong>Spartan</strong>-3 <strong>FPGA</strong> データ シー ト (DS099) を 参 照 して く ださい。358 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


IOB の 電 源 電 圧RBank 0Bank 3Bank 1Bank 2図 10-35 : <strong>Spartan</strong>-3 ジェネレーション I/O バンク ( 上 面 図 )V CCO または V REF 要 件 を 満 たす 必 要 があ る 場 合 は、デザ イ ン インプリ メンテーション ツールで 自動 的 にピ ンが 別 々のバン ク に 割 り 当 て ら れます。 PACE などのフロアプラン ツールを 使 用 しても ピンを 割 り 当 てられます。 PACE では、 BGA ボール グ リッド パターンも 含 め、 各 ピンのバンク 割 り当 てを 表 示 でき ます。 ピ ン 配 置 では、 バン ク 番 号 がデバイ スの 各 I/O ピンに 指 定 されます。 たとえば、 IO_L18P_0 はバン ク 0 にあ る 差 動 ペア L18 の 1 つです。シングルエンド I/O 規 格 のバン ク での 互 換 性DS312-2_26_021205表 10-17 ~ 表 10-19 に、あ る V CCO 電 圧 で、 組 み 合 わせ 可 能 なシン グルエン ド IOSTANDARD と、IOSTANDARD が 入 力 のみでサポー ト されているか 入 力 と 出 力 の 両 方 で 使 用 でき るかを 示 し ます。表 10-17 : <strong>Spartan</strong>-3A/3AN/3A DSP シングルエンド IOSTANDARD のバン ク での 互 換 性シングルエンドIOSTANDARDV CCO 電 源 / 互 換 性入 力 要 件1.2V 1.5V 1.8V 2.5V 3.3V V REFボー ド の 終 端 電 圧(V TT )LVTTL 入 力 入 力 入 力 入 力 入 力 / 出 力 不 要 (1) 不 要LVCMOS33 入 力 入 力 入 力 入 力 入 力 / 出 力 不 要 不 要LVCMOS25 入 力 (2) 入 力 (2) 入 力 (2) 入 力 / 出 力 入 力 (2) 不 要 不 要LVCMOS18 入 力 入 力 入 力 / 出 力 入 力 入 力 不 要 不 要LVCMOS15 入 力 入 力 / 出 力 入 力 入 力 入 力 不 要 不 要LVCMOS12 入 力 / 出 力 入 力 入 力 入 力 入 力 不 要 不 要PCI33_3 入 力 入 力 入 力 入 力 入 力 / 出 力 不 要 不 要PCI66_3 入 力 入 力 入 力 入 力 入 力 / 出 力 不 要 不 要HSTL_I_18 入 力 入 力 入 力 / 出 力 入 力 入 力 0.9 0.9HSTL_II_18 入 力 入 力 入 力 / 出 力 入 力 入 力 0.9 0.9HSTL_III_18 入 力 入 力 入 力 / 出 力 入 力 入 力 1.1 1.8HSTL_I 入 力 入 力 / 出 力 入 力 入 力 入 力 0.75 0.75HSTL_II 入 力 入 力 / 出 力 入 力 入 力 入 力 0.75 0.75HSTL_III 入 力 入 力 / 出 力 入 力 入 力 入 力 0.9 1.5<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 359<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 10 章 : I/O リ ソースの 使 用表 10-17 : <strong>Spartan</strong>-3A/3AN/3A DSP シングルエンド IOSTANDARD のバン ク での 互 換 性 ( 続 き)シングルエンドIOSTANDARDV CCO 電 源 / 互 換 性入 力 要 件1.2V 1.5V 1.8V 2.5V 3.3V V REFボー ド の 終 端 電 圧(V TT )SSTL18_I 入 力 入 力 入 力 / 出 力 入 力 入 力 0.9 0.9SSTL18_II 入 力 入 力 入 力 / 出 力 入 力 入 力 0.9 0.9SSTL2_I 入 力 入 力 入 力 入 力 / 出 力 入 力 1.25 1.25SSTL2_II 入 力 入 力 入 力 入 力 / 出 力 入 力 1.25 1.25SSTL3_I 入 力 入 力 入 力 入 力 入 力 / 出 力 1.5 1.5SSTL3_II 入 力 入 力 入 力 入 力 入 力 / 出 力 1.5 1.5メモ :1. 不 要 : 入 力 操 作 には 必 要 あ り ません。2. V CCO が 2.5V 以 外 の 場 合 に LVCMOS25 を 使 用 するには、 V CCAUX を 2.5V に 設 定 する 必 要 があ り ます。表 10-18 : <strong>Spartan</strong>-3E シングルエンド IOSTANDARD のバン ク での 互 換 性シングルエンドIOSTANDARDV CCO 電 源 / 互 換 性入 力 要 件1.2V 1.5V 1.8V 2.5V 3.3V V REFボー ド の 終 端 電 圧(V TT )LVTTL - - - - 入 力 / 出 力 不 要 (1) 不 要LVCMOS33 - - - - 入 力 / 出 力 不 要 不 要LVCMOS25 - - - 入 力 / 出 力 入 力 不 要 不 要LVCMOS18 - - 入 力 / 出 力 入 力 入 力 不 要 不 要LVCMOS15 - 入 力 / 出 力 入 力 入 力 入 力 不 要 不 要LVCMOS12 入 力 / 出 力 入 力 入 力 入 力 入 力 不 要 不 要PCI33_3 - - - - 入 力 / 出 力 不 要 不 要PCI66_3 - - - - 入 力 / 出 力 不 要 不 要HSTL_I_18 - - 入 力 / 出 力 入 力 入 力 0.9 0.9HSTL_III_18 - - 入 力 / 出 力 入 力 入 力 1.1 1.8SSTL18_I - - 入 力 / 出 力 入 力 入 力 0.9 0.9SSTL2_I - - - 入 力 / 出 力 入 力 1.25 1.25メモ :1. 不 要 : 入 力 操 作 には 必 要 あ り ません。360 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


IOB の 電 源 電 圧R表 10-19 : <strong>Spartan</strong>-3 シングルエンド IOSTANDARD のバン ク での 互 換 性シングルエンドIOSTANDARDV CCO 電 源 / 互 換 性入 力 要 件1.2V 1.5V 1.8V 2.5V 3.3V V REF(1) ボー ド の 終 端 電 圧(V TT )LVTTL - - - - 入 力 / 出 力 不 要 (2) 不 要LVCMOS33 - - - - 入 力 / 出 力 不 要 不 要LVCMOS25 - - - 入 力 / 出 力 - 不 要 不 要LVCMOS18 - - 入 力 / 出 力 - - 不 要 不 要LVCMOS15 - 入 力 / 出 力 - - - 不 要 不 要LVCMOS12 入 力 / 出 力 - - - - 不 要 不 要PCI33_3 - - - - 入 力 / 出 力 不 要 不 要HSTL_I_18 - - 入 力 / 出 力 入 力 入 力 0.9 0.9HSTL_II_18 - - 入 力 / 出 力 入 力 入 力 0.9 0.9HSTL_III_18 - - 入 力 / 出 力 入 力 入 力 1.1 1.8HSTL_I - 入 力 / 出 力 入 力 入 力 入 力 0.75 0.75HSTL_III - 入 力 / 出 力 入 力 入 力 入 力 0.9 1.5SSTL18_I - - 入 力 / 出 力 入 力 入 力 0.9 0.9SSTL18_II - - 入 力 / 出 力 入 力 入 力 0.9 0.9SSTL2_I - - - 入 力 / 出 力 入 力 1.25 1.25SSTL2_II - - - 入 力 / 出 力 入 力 1.25 1.25GTL メモ 2 0.8 1.2GTLP - メモ 2 1.0 1.5メモ :1. VQ100 パッケージの <strong>Spartan</strong>-3 デバ イ スのバン ク 4 および 5 では、 VREF を 使 用 し た 信 号 規 格 はサポー ト されません。2. GTL および GTLP 規 格 で 使 用 される V CCO レベルは、 終 端 電 圧 (VTT) および I/O パッ ドにおける 電 圧 よ り も 高 い 必 要 があります。差 動 I/O 規 格 のバン ク での 互 換 性ほとんどの 差 動 I/O 規 格 はバン ク 間 で 互 換 性 があ り 、1 つのバン ク で 組 み 合 わせる こ と がで き ます。<strong>Spartan</strong>-3A/3AN/3A DSP <strong>FPGA</strong> では、バン ク 0 と 2 で、それぞれ 次 の 2.5V 差 動 規 格 の う ちの 2 つがサポー ト されます。• LVDS_25 出 力• MINI_LVDS_25 出 力• RSDS_25 出 力• PPDS_25 出 力<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 361<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 10 章 : I/O リ ソースの 使 用<strong>Spartan</strong>-3A/3AN/3A DSP <strong>FPGA</strong> では、バン ク 0 および 2 で 次 の 3.3V 差 動 出 力 の う ち 2 つをサポート する こ と も 可 能 です。• LVDS_33 出 力• MINI_LVDS_33 出 力• RSDS_33 出 力• PPDS_33 出 力• TMDS_33 出 力<strong>Spartan</strong>-3E <strong>FPGA</strong> では、 各 バン ク で 次 の 差 動 規 格 の う ち 2 つがサポー ト されます。• LVDS_25 出 力• MINI_LVDS_25 出 力• RSDS_25 出 力た と えば、 オンチ ッ プ 差 動 終 端 の 使 用 時 に、 LVDS_25 出 力 、 RSDS_25 出 力 、 および 任 意 の 差 動 入力 を 組 み 合 わせて 使 用 で き ます。 1 つのバン ク で LVDS_25 出 力 、 RSDS_25 出 力 、 およびMINI_LVDS_25 出 力 を 使 用 する こ と はで き ません。表 10-20 : <strong>Spartan</strong>-3A/3AN/3A DSP 差 動 IOSTANDARD のバン ク での 互 換 性差 動IOSTANDARDI/O タイプ V CCAUX(3) V CCO差 動 パ ッ ド タイプIPIO差 動 バン ク 制 限 (1)BLVDS_25入 力 2.5/3.3 任 意 あり あり なしDIFF_TERM 入 力 使 用 不 可 な し出 力 2.5/3.3 2.5 なし あり なしLVDS_25入 力 2.5/3.3 任 意 あり あり なしDIFF_TERM 入 力 2.5/3.3 2.5 ~ 3.3 なし あり なし出 力 2.5/3.3 2.5 なし バンク 0、 2 ありLVDS_33入 力 2.5/3.3 任 意 あり あり なしDIFF_TERM 入 力 2.5/3.3 2.5 ~ 3.3 なし あり なし出 力 2.5/3.3 3.3 なし バンク 0、 2 ありMINI_LVDS_25入 力 2.5/3.3 任 意 あり あり なしDIFF_TERM 入 力 2.5/3.3 2.5 ~ 3.3 なし あり なし出 力 2.5/3.3 2.5 なし バンク 0、 2 ありMINI_LVDS_33入 力 2.5/3.3 2.5 ~ 3.3 あり あり なしDIFF_TERM 入 力 2.5/3.3 3.3 なし あり なし出 力 2.5/3.3 3.3 なし バンク 0、 2 ありRSDS_25入 力 2.5/3.3 任 意 あり あり なしDIFF_TERM 入 力 2.5/3.3 2.5 ~ 3.3 なし あり なし出 力 2.5/3.3 2.5 なし バンク 0、 2 あり362 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


IOB の 電 源 電 圧R表 10-20 : <strong>Spartan</strong>-3A/3AN/3A DSP 差 動 IOSTANDARD のバン ク での 互 換 性 ( 続 き)差 動IOSTANDARDI/O タイプ V CCAUX(3) V CCO差 動 パ ッ ド タイプIPIO差 動 バン ク 制 限 (1)入 力 2.5/3.3 2.5 ~ 3.3 あり あり なしRSDS_33DIFF_TERM 入 力 2.5/3.3 2.5 ~ 3.3 なし あり なし出 力 2.5/3.3 3.3 なし バンク 0、 2 あり入 力 2.5/3.3 任 意 あり あり なしPPDS_25DIFF_TERM 入 力 2.5/3.3 2.5 ~ 3.3 なし あり なし出 力 2.5/3.3 2.5 なし バンク 0、 2 あり入 力 2.5/3.3 2.5 ~ 3.3 あり あり なしPPDS_33DIFF_TERM 入 力 2.5/3.3 2.5 ~ 3.3 なし あり なし出 力 2.5/3.3 3.3 なし バンク 0、 2 あり入 力 3.3 任 意 あり あり なしLVPECL_25DIFF_TERM 入 力 使 用 不 可 な し出 力 使 用 不 可 な し入 力 3.3 2.5 ~ 3.3 あり あり なしLVPECL_33DIFF_TERM 入 力 使 用 不 可 な し出 力 使 用 不 可 な し入 力 3.3 2.5 ~ 3.3 あり あり なしTMDS_33DIFF_TERM 入 力 3.3 3.3 なし あり なし出 力 2.5/3.3 3.3 なし バンク 0、 2 ありDIFF_HSTL 2.5/3.3 シングルエンド 規 格 に 同 じDIFF_SSTL 2.5/3.3 シングルエンド 規 格 に 同 じメモ :1. バンク 0 および 2 それぞれで、 2.5V 差 動 規 格 の LVDS_25 出 力 、 MINI_LVDS_25 出 力 、 RSDS_25 出 力 、 PPDS_25 出 力 の う ちの 2 つ、または 3.3V 差 動 規 格 の LVDS_33 出 力 、 MINI_LVDS_33 出 力 、 RSDS_33 出 力 、 PPDS_33 出 力 、 TMDS_33 出 力 の う ちの 2 つがサポー ト されます。 I/O バン ク のその 他 の 制 限 が 適 用 される 場 合 があ り ます。2. V REF はこれらの I/O 規 格 では 使 用 さ れません。3. <strong>Spartan</strong>-3AN <strong>FPGA</strong> では、 VCCAUX=3.3V が 必 要 です。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 363<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 10 章 : I/O リ ソースの 使 用表 10-21 : <strong>Spartan</strong>-3E 差 動 IOSTANDARD のバン ク での 互 換 性差 動 IOSTANDARDVCCO 電 源1.8V 2.5V 3.3V差 動 バン ク 制 限 (1)LVDS_25 入 力 入 力 、 オンチ ッ プ 差 動 終 端 、 出 力 入 力 出 力 のみに 適 用RSDS_25 入 力 入 力 、 オンチ ッ プ 差 動 終 端 、 出 力 入 力 出 力 のみに 適 用MINI_LVDS_25 入 力 入 力 、 オンチ ッ プ 差 動 終 端 、 出 力 入 力 出 力 のみに 適 用LVPECL_25 入 力 入 力 入 力BLVDS_25 入 力 入 力 、 出 力 入 力DIFF_HSTL_I_18 入 力 、 出 力 入 力 入 力DIFF_HSTL_III_18 入 力 、 出 力 入 力 入 力DIFF_SSTL18_I 入 力 、 出 力 入 力 入 力差 動 バン ク 制 限 な し(I/O バン クのその 他の 制 限 あ り )DIFF_SSTL2_I 入 力 入 力 、 出 力 入 力メモ :1. 各 バン ク で、 LVDS_25 出 力 、 MINI_LVDS_25 出 力 、 RSDS_25 出 力 の う ち 1 つがサポー ト されます。2. V REF はこれらの I/O 規 格 では 使 用 さ れません。表 10-22 : <strong>Spartan</strong>-3 差 動 IOSTANDARD のバン ク での 互 換 性差 動 IOSTANDARDVCCO 電 源1.8V 2.5V 3.3V差 動 バン ク 制 限 (1)LVDS_25 入 力 入 力 、 出 力 入 力 出 力 のみに 適 用RSDS_25 入 力 入 力 、 出 力 入 力 出 力 のみに 適 用LDT_25 (ULVDS_25) 入 力 入 力 、 出 力 入 力 出 力 のみに 適 用LVDSEXT_25 入 力 入 力 、 出 力 入 力 出 力 のみに 適 用LVPECL_25 入 力 入 力 、 出 力 入 力BLVDS_25 入 力 入 力 、 出 力 入 力DIFF_HSTL_II_18 入 力 、 出 力 入 力 入 力DIFF_SSTL2_II 入 力 入 力 、 出 力 入 力差 動 バン ク 制 限 な し(I/O バンクのその 他の 制 限 あ り )メモ :1. 各 バン ク で、 LVDS_25 出 力 、 RSDS_25 出 力 、 LDT_25 (ULVDS_25) 出 力 、 LVDSEXT_25 出 力 の う ち 2 つがサポー ト されます。2. V REF はこれらの I/O 規 格 では 使 用 さ れません。I/O バンクの 規 則I/O をバン クに 割 り 当 てる 際 、 次 の V CCO 規 則 に 従 う 必 要 があ り ます。1. バン ク が 使 用 さ れていな く て も、 <strong>FPGA</strong> 上 の V CCO ピ ン をすべて 接 続 する 必 要 があ り ます。2. バン ク 内 で 関 連 付 け られてい る V CCO ラ イ ンは、 すべて 同 じ 電 圧 レベルに 設 定 する 必 要 があ ります。364 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


IOB の 電 源 電 圧R3. バンクの I/O に 割 り 当 て ら れたすべての 規 格 で 使 用 さ れる V CCO レベルに 互 換 性 があ る こ と が必 要 です。 こ れはザ イ リ ン ク ス 開 発 ソ フ ト ウ ェ アで 確 認 で き ます。 表 10-17 ~ 表 10-22 に、 異なる 規 格 での V CCO 電 源 の 使 用 を 示 し ます。4. バンクに V CCO 要 件 がない 場 合 は、 V CCO を 2.5V や 3.3V などの 使 用 可 能 な 電 圧 に 接 続 し ます。 コンフィギュレーション モード によ っては、 V CCO 要 件 が 追 加 さ れる 場 合 があ り ます。バン ク の 入 力 に 割 り 当 て られてい る 規 格 のいずれかで V REF が 使 用 さ れてい る 場 合 は、 次 の 規 則 にも 準 拠 している 必 要 があり ます。1. すべての V REF ピ ンをバン ク 内 で 接 続 する 必 要 があ り ます。2. バン ク に 関 連 付 け られてい る V REF ラ イ ンは、 すべて 同 じ 電 圧 レベルに 設 定 する 必 要 があ り ます。3. バンクの I/O に 割 り 当 て ら れたすべての 規 格 で 使 用 さ れる V REF レベルに 互 換 性 があ る こ と が必 要 です。 こ れはザ イ リ ン ク ス 開 発 ソ フ ト ウ ェ アで 確 認 で き ます。 表 10-17 ~ 表 10-19 に、 異なる 規 格 での V REF 電 源 の 使 用 を 示 し ます。V REF が 入 力 ス イ ッチし きい 値 のバイ アスに 必 要 ない 場 合 は、 バン ク 内 の 関 連 付 け られた V REF ピンすべてをユーザー I/O または 入 力 ピ ン と し て 使 用 で き ます。振 幅 が 大 き な 信 号 の 使 用変 圧 器I/O 規 格 と V CCO が 互 換 し ていて も、V IN 入 力 電 圧 の 仕 様 (V CCO に 対 し て 指 定 さ れてい る こ と がある) の 最 大 値 を 超 えない よ う に 注 意 する 必 要 があ り ます。 た と えば、 入 力 保 護 ダ イ オー ド がオンになるのを 防 ぐため、 <strong>Spartan</strong>-3 <strong>FPGA</strong>では V IN の 最 大 値 は V CCO +0.3V が 推 奨 され ( 仕 様 の 詳 細 は<strong>Spartan</strong>-3 <strong>FPGA</strong> データ シー ト (DS099) のモジュール 3 を 参 照 )、 <strong>Spartan</strong>-3E <strong>FPGA</strong> ではV CCO +0.5V が 推 奨 されます ( 仕 様 の 詳 細 は <strong>Spartan</strong>-3E <strong>FPGA</strong> データ シー ト (DS312) のモジュール 3 を 参 照 )。 <strong>Spartan</strong>-3A/3AN/3A DSP の V IN の 最 大 値 は、 PCI 規 格 を 除 き、 V CCO の 値 と は 関 連し ていません。 仕 様 の 詳 細 は、 <strong>Spartan</strong>-3A <strong>FPGA</strong> データ シー ト (DS529) のモジュール 3 を 参 照 してください。アプ リ ケーシ ョ ンによっては、 I/O で 許 容 される よ り も 電 圧 幅 の 大 きい 信 号 を 受 信 するのが 好 ま しい 場 合 があ り ます。 3.3V I/O 規 格 に 設 定 さ れてい る ピ ンで 5V の 信 号 を 受 信 するのが 最 も よ く 見 られる ケースです。 こ の よ う な 電 圧 幅 の 大 き い 信 号 が 受 信 さ れる のは、その よ う に 設 計 さ れてい る か、オーバーシュー ト によ る ものです。<strong>Spartan</strong>-3 ジェネレーショ ン <strong>FPGA</strong> で 電 圧 幅 の 大 き い 規 格 をサポー ト する 外 部 デバイ ス を 駆 動 する必 要 があ る 場 合 、 出 力 で も 同 じ 状 況 が 発 生 し ます。 <strong>Spartan</strong>-3 ジェネレーショ ン <strong>FPGA</strong> の 3.3V 出力 ではほ と んどの 5V デバ イ ス を 直 接 駆 動 で き ますが、 マージンは 小 さ く な り ます。 同 様 に、LVCMOS25 専 用 コ ン フ ィ ギ ュ レーシ ョ ン 出 力 でほ と んどの 3.3V 外 部 デバ イ ス を 駆 動 で き ます。PCI バスに 接 続 する 場 合 については、 アプ リ ケーシ ョ ン ノート XAPP457 『Powering andConfiguring <strong>Spartan</strong>-3 Generation <strong>FPGA</strong>s in Compliant PCI Applications』 を 参 照 し て く だ さ い。電 圧 幅 の 大 き い 信 号 に 接 続 する には、 変 圧 器 を 使 用 する こ と を お 勧 めし ま す。 変 圧 器 は、 2 つの 抵 抗を 使 用 し た 分 圧 器 など の 単 純 なも のから PCI-to-PCI ブリ ッ ジなど の 複 雑 なも のま で 使 用 でき ま す。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 365<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 10 章 : I/O リ ソースの 使 用オープン ドレイン 接 続こ れ と は 別 に、 外 部 デバ イ スの 出 力 をオープン ド レ イ ン 出 力 と し て コ ン フ ィ ギ ュ レーシ ョ ンする 方法 もあり ます。 低 電 圧 レールに 固 定 さ れたプルア ッ プ 抵 抗 が 付 け ら れた こ の よ う な 出 力 を 使 用 し て信 号 の 振 幅 を 制 限 し、 <strong>FPGA</strong> のパワー ダイオードがオンになるのを 防 ぐこ とができます。 詳 細 は、図 10-36 を 参 照 して く ださい。V CCAUX = 2.5V V CCAUX = 2.5VOpen-DrainOFFInputR OHI OHV OHOFFR OL<strong>FPGA</strong>図 10-36 : <strong>FPGA</strong> の 専 用 入 力 に 接 続 さ れた 3.3V のオープン ドレイン 出 力オープン ド レ イ ン 出 力 は 比 較 的 低 速 で ノ イ ズ マージン も 小 さ く なるので、 タ イ ミ ングがそれほど重 視 さ れない 場 合 に 適 し ています。 多 く の 場 合 、 専 用 入 力 (<strong>Spartan</strong>-3E <strong>FPGA</strong> では PROG_B、TDI、TMS、 TCK) では 高 速 ス イ ッ チを 必 要 と し ません。内 部 ダイオー ド を 使 用 し た 電 圧 ク ラ ン プX484_10_121205推 奨 範 囲 外 の 入 力 電 圧 は、 I IK 入 力 ク ラ ンプ ダイオード 定 格 が 満 たされ、 I/O カップリングの 影 響が 考 慮 されていれば 許 容 されます。 <strong>Spartan</strong>-3 および <strong>Spartan</strong>-3E <strong>FPGA</strong> で I IK 入 力 ク ラ ンプ ダイオー ド 定 格 が 満 た さ れる よ う にする には、 入 力 に 直 列 抵 抗 を 追 加 し ます。 こ の ソ リ ューシ ョ ンは、LVCMOS25 規 格 専 用 の コ ン フ ィ ギ ュ レーシ ョ ン ピンに 3.3V 信 号 を 適 用 する 場 合 に 使 用 で き ます。コ ン フ ィ ギ ュ レーシ ョ ン インターフェイスの 詳 細 は、『<strong>Spartan</strong>-3 Generation Configuration UserGuide』 (UG332) およびアプリ ケーシ ョ ン ノート XAPP453 『The 3.3V Configuration of <strong>Spartan</strong>-3 <strong>FPGA</strong>s』 を 参 照 し て く だ さ い。このよ うなソ リ ューションでは、<strong>FPGA</strong> の 出 力 と その 電 源 レールの 間 にあ る 内 部 パワー ダイオードがオンになっ て も よ く 、 出 力 に 直 列 に 接 続 さ れた 抵 抗 に よ り 電 流 が 制 限 さ れます。 レ ギ ュ レータ に戻 る 電 流 は、 逆 電 流 と 呼 ばれます。 調 整 が 適 切 に 実 行 さ れる よ う にする には、 電 源 出 力 に 抵 抗 を もう 1 つ 追 加 し ます。このソ リ ューションでは、 I/O がシングル エンド 規 格 でコンフ ィギュレーシ ョ ンされていても、 差動 ピンペアのユーザー I/O 間 で 寄 生 リ ーク 電 流 が 発 生 する こ と があ り ます。こ の 寄 生 リ ー ク 電 流 は、V IN が 推 奨 さ れる 動 作 条 件 以 上 ま たは 以 下 になった 場 合 、 入 力 電 流 が 制 限 さ れていて も 発 生 する ことがあります。 これによりデバイスの 動 作 が 予 測 されないものになることがありますが、 デバイスは 破 損 し ません。 電 圧 幅 の 大 き い 信 号 に こ の 手 法 を 使 用 する 場 合 は、 差 動 ペアの も う 一 方 を 未 使 用のま まにするか、 リ ーク 電 流 によ る 影 響 を 制 御 する 必 要 があ り ます。 詳 細 は、 アプ リ ケーシ ョ ンノート XAPP459 『Eliminating I/O Coupling Effects when Interfacing Large-Swing Single-EndedSignals to User I/O Pins on <strong>Spartan</strong>-3 Generation <strong>FPGA</strong>s』 を 参 照 し て く だ さ い。366 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


IOB の 電 源 電 圧R電 源 投 入 時 、 コ ン フ ィ ギュ レーシ ョ ン 中 、 および ユーザー モード での入 力 専 用 ピ ンのビヘイ ビアこ こ で 説 明 する I/O ピンの 動 作 は、 選 択 されているコンフィギュレーショ ン モード では 使 用 されない 入 力 専 用 ピ ンおよび 多 目 的 I/O ピ ンに も 適 用 さ れます。V CCINT (1.2V)、 V CCAUX 、および V CCO 電 源 は、 どの 順 序 でも 適 用 でき ます。 <strong>FPGA</strong> でコンフィギ ュ レーシ ョ ンが 開 始 する 前 に、 V CCINT 、 V CCO バンク 2 (<strong>Spartan</strong>-3 <strong>FPGA</strong> ではバン ク 4)、 および V CCAUX は、 デバ イ スのデータ シー ト のモジ ュール 3 に 示 さ れてい る 推 奨 最 低 動 作 レベルに 達している 必 要 があります。 こ の 時 点 では、 出 力 ド ラ イ バはすべてハイ インピーダンス ステートです。 V CCO バンク 2、 V CCINT 、および V CCAUX は 内 部 POR (パワーオン リセット) 回 路 への 入 力 とし て 動 作 し ます。PUDC_B (Pull Up During Configuration) 入 力 が Low にな る と、 電 源 投 入 か ら コ ン フ ィ ギ ュ レーションの 間 中 、ユーザー I/O および 入 力 専 用 ピ ンのプルア ッ プ 抵 抗 が イ ネーブルにな り ます。PUDC_B が High になる と プルア ッ プ 抵 抗 がデ ィ スエーブルにな り 、 I/O がフロート 状 態 になり ます。 PUDC_B にはウ ィ ー ク プルア ッ プが 含 まれ、 フ ロー ト 状 態 のま まであればデフ ォル ト で Highにな り ます。 このピンは、 <strong>Spartan</strong>-3E <strong>FPGA</strong> では HSWAP と 呼 ばれ、<strong>Spartan</strong>-3 <strong>FPGA</strong> ではHSWAP_EN と 呼 ばれます。電 源 が 供 給 さ れる と、 <strong>FPGA</strong> でコンフィギュレーショ ン メモリの 初 期 化 が 開 始 します。 同 時 に、<strong>FPGA</strong> 内 部 で GSR (グローバル セッ ト/ リセット) がアサー ト さ れ、 非 同 期 で IOB 記 憶 エレ メ ン トすべてがデフ ォル ト の Low ステートにリセッ ト されます。初 期 化 が 完 了 し、コ ン フ ィ ギ ュ レーシ ョ ンが 開 始 する と 、INIT_B が High にな り、コンフ ィ ギュレーション モー ド を 決 定 する ために M0、 M1、および M2 入 力 がサンプ リ ン グ さ れます。 その 後 、 コンフィギュレーション データが <strong>FPGA</strong> に 読 み 込 まれます。 コンフィギュレーション 中 は、I/O ドライバは、 プルア ッ プ 抵 抗 の 有 無 に 関 わらず、 PUDC_B 入 力 で 指 定 さ れてい る よ う にハ イ インピーダンス ステートのままになり ます。コンフィギュレーションが 終 わると GSR ネ ッ ト がデ ィ アサー ト さ れ、 読 み 込 まれたデザ イ ンで 各SR 入 力 の 極 性 が 反 転 さ れない 限 り 、 IOB レジスタが Low ステートになり ます。スタートアップの 間 に GTS (グローバル トライ ステート) ネッ トがディアサート されるとコンフィギュレーショ ンが 終 了 したことが 示 され、 ユーザー モード でのデザイ ン 動 作 が 開 始 し ます。 GTSネッ トがディアサート されるとユーザー I/O はすべてア ク テ ィ ブにな り 、 未 使 用 の I/O はすべてウィーク プルダウ ン (PULLDOWN) されます。 GTS をデ ィ アサー ト し た 後 の 未 使 用 の I/O の 終 端方 法 を 制 御 する には、 Bitstream Generator (BitGen) の UnusedPin オプシ ョ ンを PULLUP、PULLDOWN、 または FLOAT に 設 定 し ます。デフォル ト では 1 クロックサイクル 後 に GWE (グローバル ライト イネーブル) ネ ッ ト が 解 放 さ れ、RAM およびレ ジ ス タ のス テー ト が 変 化 する よ う にな り ます。 ユーザー モード になる と PUDC_Bでイ ネーブルにされたプルア ッ プ 抵 抗 はユーザー 設 定 に 戻 り 、 PUDC_B は 汎 用 I/O として 使 用 できるようになります。PULLUP および PULLDOWN の 詳 細 は、 338 ページの 「プルア ッ プ 抵 抗 およびプルダ ウ ン 抵 抗 」 を 参 照 して く ださい。電 源 投 入 およびコ ン フ ィ ギ ュ レーシ ョ ン 処 理 の 詳 細 は、 『<strong>Spartan</strong>-3 Generation Configuration UserGuide』 (UG332) を 参 照 して く ださい。コ ン フ ィ ギュ レーシ ョ ン 後 の 未 使 用 I/O ピンザイ リンクス ISE 開 発 ソ フ ト ウ ェ アでは、 未 使 用 の I/O ピンすべてがデフォルトで GND への 内 部プルダウ ン 抵 抗 が 付 いた 入 力 ピン と し てコ ンフ ィ ギュ レーシ ョ ン されます。このデフォルトの 動 作 は、 BitGen の UnusedPin オプシ ョ ンで 制 御 さ れます。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 367<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 10 章 : I/O リ ソースの 使 用関 連 資 料 および リ フ ァ レ ンス• <strong>Spartan</strong>-3 ジェネレーショ ンのデータシートI/O 仕 様 およびピ ン 配 置http://japan.xilinx.com/support/documentation/index.htm• UG332 : 『<strong>Spartan</strong>-3 Generation Configuration User Guide』コンフィギュレーション 中 の I/O ピンの 機 能http://japan.xilinx.com/support/documentation/spartan-3a_user_guides.htm• IOB アプ リ ケーシ ョ ン ノートhttp://japan.xilinx.com/support/documentation/topicfpgafeaturedesign_ioblock.htm• シグナル インテグリティの 情 報信 頼 性 の 高 い PCB デザ イ ン を 実 現 する ための 情 報 が 掲 載 さ れています。http://japan.xilinx.com/signalintegrity368 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 11 章エンベデ ッ ド 乗 算 器 の 使 用概 要<strong>Spartan</strong> ® -3 ジェネレーショ ン <strong>FPGA</strong> で 18X18 の 専 用 乗 算 器 を 使 用 する と 、DSP のロジックの 速 度が 上 が り 、 最 大 18 ビ ッ ト までの 符 号 付 き ま たは 符 号 な し 乗 算 が 高 速 で 効 率 的 に 実 行 さ れます。 このエンベデ ッ ド 乗 算 器 ブ ロ ッ ク は、 基 本 的 な 乗 算 フ ァ ン ク シ ョ ン と し てだけでな く 、 シフ タ と し て 使用 で き、 絶 対 値 ま たは 2 の 補 数 値 を 生 成 する こ と も で き ます。 乗 算 器 同 士 は、 カ ス ケー ド 接 続 で きます。 大 規 模 なフ ァ ン ク シ ョ ンや 複 雑 なフ ァ ン ク シ ョ ンの 場 合 は、CLB ロジックとカスケード 接 続できます。<strong>Spartan</strong>-3A DSP <strong>FPGA</strong> デバイ スには、 Virtex ® -4 <strong>FPGA</strong> DSP48 アーキテ ク チャ と 互 換 性 のあ る 高パフォーマンスの DSP48A ブロッ クが 含 まれます。 これらのブロッ クでは、250MHz 以 上 の 積 和 演算 (MAC) がサポー ト されます。はじめに<strong>Spartan</strong>-3 ジェネレーショ ン <strong>FPGA</strong> には、 デバ イ ス の 演 算 機 能 を 高 め る 機 能 が 多 く あ り ます。 キャリー ロ ジ ッ ク と 専 用 のキ ャ リ ー 配 線 も、 こ れまでのデバイ ス と 同 様 に 提 供 さ れています。 また、CLB 内 の 専 用 AND ゲー ト に よ り 、 ア レ イ 乗 算 が 高 速 化 さ れています。 これまでのデバイ ス と の 大き な 違 いは、 専 用 の 2 の 補 数 の 18X18 乗 算 器 ブ ロ ッ ク が 追 加 さ れた 点 です。 各 デバイ スに こ れら の専 用 乗 算 器 が 3 ~ 104 個 含 まれる ので、 最 小 限 の 汎 用 リ ソ ースで 高 速 の 演 算 フ ァ ン ク シ ョ ン を イ ンプリメントできます。 ま た、 こ の 専 用 乗 算 器 を 使 用 する と 、パフ ォーマン スが 良 いだけでな く 、CLBベースの 乗 算 器 よ り も 消 費 電 力 が 少 な く な り ます。こ のエンベデ ッ ド 乗 算 器 では、18 ビッ ト X 18 ビット ( 符 号 付 き) 乗 算 の 積 をすばや く 効 率 的 に 算 出できます。 乗 算 器 ブ ロ ッ ク は SelectRAM ブ ロ ッ ク メ モ リ と 配 線 リ ソ-ス を 共 有 し てい る ため、 多くのアプリケーションで 効 率 を 上 げることができます。符 号 付 き X 符 号 付 き、 符 号 付 き X 符 号 な し、 符 号 な し X 符 号 な し の 乗 算 、 論 理 シフ ト 、 演 算 シフト、バレル シフ ト、2 の 補 数 値 および 絶 対 値 の 計 算 などのアプ リ ケーシ ョ ン を 簡 単 に イ ンプ リ メ ントできます。高 度 な 合 成 ツールを 使 用 する と 、 VHDL または Verilog で 記 述 した 一 般 的 な 乗 算 に 対 してこの 専 用乗 算 器 が 自 動 的 に 推 論 さ れます。 乗 算 器 を 制 御 し た り 、 特 別 な 機 能 を 使 用 する 場 合 は、 デザ イ ンにインスタンシエートするか、 CORE Generator を 使 用 して 定 義 します。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 369<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 11 章 : エンベデ ッ ド 乗 算 器 の 使 用<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> 間 でのエンベデッ ド 乗 算 器 リ ソースの違 い<strong>Spartan</strong>-3E と <strong>Spartan</strong>-3A/3AN <strong>FPGA</strong> のエンベデッ ド 乗 算 器 リ ソ ース は 類 似 し ていま すが、<strong>Spartan</strong>-3A/3AN の 方 が 配 線 に 柔 軟 性 がある 点 が 違 いま す。 また、プラット フォーム 間 のタイミ ングも 異 なります。 ど のプラ ッ ト フ ォ ームにも 同 じ 乗 算 器 プリ ミ ティ ブ MULT18X18SIO (オプショ ンで 入 力 / 出力 レ ジス タ およ びカス ケード 信 号 付 き ) が 含 まれます。 <strong>Spartan</strong>-3 <strong>FPGA</strong> には、 パイ プラ イ ン 接 続 やカス ケード 接 続 ができ ないシンプルな 乗 算 器 が 含 ま れ、 MULT18X18 ( 組 み 合 わせ) またはMULT18X18S (レジスタ 付 き) プリミティブが 使 用 されます。 この 章 では、<strong>Spartan</strong>-3E および<strong>Spartan</strong>-3A/-3AN <strong>FPGA</strong> のアーキテクチャに 焦 点 を 置 いて 説 明 します。 <strong>Spartan</strong>-3 の 乗 算 器 の 詳 細は、 <strong>Spartan</strong>-3 <strong>FPGA</strong> のデータ シー ト (DS099) およびアプリ ケーシ ョ ン ノート XAPP467 『UsingEmbedded Multipliers in <strong>Spartan</strong>-3 <strong>FPGA</strong>s』 を 参 照 し て く だ さ い。<strong>Spartan</strong>-3A DSP <strong>FPGA</strong> には、Virtex-4 DSP48 と 互 換 性 のあ る 高 パフ ォーマン ス の DSP48A ブロックが 含 まれ、 250MHz 以 上 の 積 和 演 算 (MAC) がサポー ト されます。 このブロックは、 <strong>Spartan</strong>-3Eおよび <strong>Spartan</strong>-3A/3AN <strong>FPGA</strong> の 乗 算 器 と 互 換 性 があ り ます。 詳 細 は、 『XtremeDSP DSP48A for<strong>Spartan</strong>-3A DSP <strong>FPGA</strong>s User Guide』 (UG431) を 参 照 して く ださい。2 の 補 数 の 符 号 付 き 乗 算 器図 11-1 は、 乗 算 器 プ リ ミ テ ィ ブ MULT18X18SIO を 示 しています。 こ の 乗 算 器 ブロ ッ ク では、 主に 2 の 補 数 の 乗 算 が 実 行 さ れますが、 単 純 なデータ 格 納 およびバレル シフ ト な ど も 実 行 さ れます。各 乗 算 器 では P = A X B が 計 算 されます。 こ こ で、 A と B は 2 の 補 数 形 式 の 18 ビッ ト ワード、 Pは 2 の 補 数 形 式 の 36 ビ ッ ト の 完 全 精 度 の 積 です。 この 18 ビ ッ ト の 入 力 値 の 範 囲 は -131,072 10 ~+131,071 10 、 計 算 結 果 の 積 の 範 囲 は -17,179,738,112 10 ~ +17,179,869,184 10 にな り ます。A[17:0]B[17:0]CEACEBCEPCLKRSTARSTBRSTPBCIN[17:0]MULT18X18SIOP[35:0]BCOUT[17:0]DS312-2_28_021205図 11-1 : MULT18X18SIO プリミティブA/B 入 力 と P 出 力 の 両 方 に、 オプシ ョ ンでレ ジ ス タ を 付 け る こ と がで き ます。 レジスタの 付 いたパスは 同 じ ク ロ ッ ク (CLK) を 使 用 し、 それぞれにア ク テ ィ ブ High のクロック イネーブルと 同 期 リセッ トが 付 いています。 CLK、 CE、 RST 入 力 の 極 性 は、 すべてプ ロ グ ラ ム 可 能 です。370 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


2 の 補 数 の 符 号 付 き 乗 算 器R表 11-1 : <strong>Spartan</strong>-3 ジェネレーション デバイ スの 乗 算 器 の 数デバイ ス 乗 算 器 の 列 数 乗 算 器 数<strong>Spartan</strong>-3A DSPXC3SD1800A 4 84 個 の DSP48AXC3SD3400A 5 126 個 の DSP48A<strong>Spartan</strong>-3A/3ANXC3S50A/AN 1 3XC3S200A/AN 2 16XC3S400A/AN 2 20XC3S700A/AN 2 20XC3S1400A/AN 2 32<strong>Spartan</strong>-3EXC3S100E 1 4XC3S250E 2 12XC3S500E 2 20XC3S1200E 2 28XC3S1600E 2 36<strong>Spartan</strong>-3 <strong>FPGA</strong>XC3S50 1 4XC3S200 2 12XC3S400 2 16XC3S1000 2 24XC3S1500 2 32XC3S2000 2 40XC3S4000 4 96XC3S5000 4 104<strong>Spartan</strong>-3 ジ ェ ネレーシ ョ ンの 乗 算 器 の 18 ビ ッ ト は 通 常 はあ ま り 使 用 さ れない 幅 ですが、 パ リ テ ィビットを 含 むブロック RAM の 18 ビッ ト 幅 と 同 じ 幅 です。 標 準 の 8 ビッ トまたは 16 ビ ッ ト 乗 算 器を 作 成 する 場 合 は、 こ の 18 ビ ッ ト の 乗 算 器 ブ ロ ッ ク の 1 部 を 使 用 し ます。 32 ビ ッ ト 乗 算 器 を 作 成する 場 合 は、 カスケード 接 続 します。 ザイ リンクス アーキテクチャには、 アプ リ ケーシ ョ ンの 必 要性 に 合 わせて、 規 格 外 のどんなビ ッ ト 幅 のも ので も イ ンプ リ メ ン ト でき ます。 未 使 用 の 乗 算 器 の 入力 は、 0 に 設 定 さ れた 未 使 用 の LUT に 接 続 する こ と に よ り 自 動 的 に 0 にな り ます。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 371<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 11 章 : エンベデ ッ ド 乗 算 器 の 使 用ロケーシ ョ ン 制 約MULT18X18SIO エンベデッ ド 乗 算 器 イ ン ス タ ン スに LOC プ ロパテ ィ を 指 定 する と 、 配 置 を 制 約できます。 MULT18X18SIO の 配 置 位 置 の 表 記 方 法 は、 CLB 位 置 の 表 記 方 法 と は 異 なってい る ため、 LOC プロパテ ィ は 別 のアレ イでも 簡 単 に 使 用 でき ます。LOC プ ロパテ ィ は、 次 の 形 式 で 指 定 し ます。LOC = MULT18X18_X#Y#たとえば MULT18X18_X0Y0 に 設 定 する と 、MULT18X18SIO がデバイ スの 左 下 に 配 置 されます。乗 算 器 と ブ ロ ッ ク RAM の 接 続各 乗 算 器 は、 18K ビットの ブロッ ク RAM の 隣 にあ り 、 一 部 の イ ン ターコ ネ ク ト リソースを 共 有します。 <strong>Spartan</strong>-3 および <strong>Spartan</strong>-3E <strong>FPGA</strong> の 場 合 、 32/36 ビ ッ ト 幅 のデータに 対 し て 18K ビッ トの ブロッ ク RAM をコンフィギュレーションすると (512 X 36 モード)、 接 続 さ れた 専 用 乗 算 器 が使 用 さ れません。 こ れは、 被 乗 数 入 力 A の 下 位 16 ビッ トがこのブロック RAM のポー ト A データ入 力 の 上 位 16 ビ ッ ト と 共 有 さ れる か ら です。 同 様 に、 被 乗 数 入 力 B の 下 位 16 ビッ ト もポート B のデータ 入 力 の 上 位 16 ビ ッ ト と 共 有 さ れます。<strong>Spartan</strong>-3A/3AN <strong>FPGA</strong> では、 ブロ ッ ク RAM と 乗 算 器 の 間 に さ ら に 多 く の 配 線 が 可 能 です。 乗 算器 の A 入 力 は 独 立 し てい る ので、ブ ロ ッ ク RAM のポー ト A から 36 ビ ッ ト 幅 が 出 力 さ れた 場 合 も含 め、 乗 算 器 はいつで も 使 用 で き ます。 ポー ト B は 共 有 された ま ま なので、 ブ ロ ッ ク RAM のポート A の 36 ビッ ト データ 幅 と ポー ト B のそれよ り 小 さいデータ 幅 (X18 まで) を 合 わせたブロ ッ クRAM の 幅 を 定 義 し てお く こ と をお 勧 め し ます。<strong>Spartan</strong>-3A/3AN <strong>FPGA</strong> では、 ブロ ッ ク RAM か ら 乗 算 器 への 直 接 配 線 も 可 能 です。 この 接 続 により 、 乗 算 器 の 係 数 が 隣 接 する ブ ロ ッ ク RAM に 格 納 さ れた 場 合 に 配 線 の 可 能 性 やパフ ォーマン スが改 善 し ます。 図 11-2 は、 <strong>Spartan</strong>-3A/3AN のブロ ッ ク RAM と 乗 算 器 の 接 続 を 示 し ています。DIA[#:0]Port ADOA[#:0]DOA[17:0]RAMB16BWEDIB[#:0]Port BDIB[31:16]DOB[#:0]B[17:16]B[15:0]A[17:0]DOB[17:0]B[17:0]ABMULT18X18SIO<strong>UG331</strong>_c13_03_081106図 11-2 : <strong>Spartan</strong>-3A/3AN の 乗 算 器 と ブ ロ ッ ク RAM の 接 続<strong>Spartan</strong>-3A DSP <strong>FPGA</strong> には、 ブロ ッ ク RAM と 乗 算 器 の 配 線 競 合 を 回 避 する 配 線 および 機 能 があります。パイプライン レジスタ (オプシ ョ ン)乗 算 器 ブロ ッ ク には、 図 11-3 に 示 すよ う に、 その 入 力 と 出 力 それぞれにオプシ ョ ンでレジス タ を付 ける こ と ができ ます。 この AREG、 BREG、 PREG レ ジ ス タは、 どの 組 み 合 わせで も 使 用 可 能 です。 ク ロ ッ ク 入 力 は、 ブ ロ ッ ク 内 のレ ジ ス タすべてで 共 有 さ れますが、 ク ロ ッ ク イネーブルおよび同 期 リ セ ッ ト はレ ジ ス タ ご と にあ り 、データ サンプルおよび 係 数 の 格 納 が 制 御 で き る よ う になっ ています。372 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


2 の 補 数 の 符 号 付 き 乗 算 器RAREG(Optional)CEAA[17:0]CEDQRSTCEPPREG(Optional)CERSTAXDQP[35:0]CEBBREG(Optional)CERSTB[17:0]DQRSTPRSTRSTBCLKDS312-2_27_021205図 11-3 : 専 用 乗 算 器 ブ ロ ッ クの 主 なポー ト と フ ァ ン ク シ ョ ンパイプライン レ ジ ス タは、 推 論 またはイ ン ス タ ンシエー ト で き ます。 乗 算 器 が 1 段 の 場 合 は、 通 常PREG 出 力 レ ジ ス タ の 使 用 が 推 論 さ れ、 2 段 の 場 合 は、 AREG/BREG 入 力 レ ジ ス タ と PREG 出 力レジス タの 両 方 の 使 用 が 推 論 されます。MULT18X18SIO プリ ミティブにパイプライン レジスタをインスタンシエートするには、 AREG、BREG、 PREG 属 性 をそれぞれ 1 に 設 定 し て 接 続 さ れたレ ジ ス タ を 挿 入 する か、 0 にして 削 除 し、信 号 パス を 組 み 合 わせパス に し ます。 デフォル ト は 1 で、 パイプ ラ イ ン 化 されます。 この 属 性 は、ジェネリ ック マップ 文 (VHDL) ま たはパ ラ メ ータ 値 代 入 文 (Verilog) を 使 用 する と 、 イ ン ス タ ンシエー ト さ れた コ ンポーネン ト の 一 部 と し て 変 更 で き ます。タイムスペック乗 算 器 のパフ ォーマン スは、 ビ ッ ト 数 を 制 限 する か、 LSB に ク リ テ ィ カル 信 号 を 使 用 する か、 パイプライン 接 続 すると 改 善 できます。 パイプライン 接 続 すると、 レジスタによって 乗 算 器 のクロックレー ト が 上 昇 し、 アプ リ ケーシ ョ ンのパフ ォーマン スが 改 善 し ます。MSB の 方 が 加 算 段 階 が 多 いので、 LSB の 方 が 早 く 結 果 が 出 ます。 このため、 36 個 の 乗 算 器 出 力 それぞれでタ イ ムスペッ クは 異 な り ます。 デザ イ ンには、 必 要 な 分 だけの 出 力 ビ ッ ト を 使 用 し て く ださい。 たとえば、2 つの 符 合 な し の 値 を 乗 算 し た 積 が 2 35 以 上 にな ら ない 場 合 、 P[35] 出 力 は 常 に 0にな り ます。 2 つの 符 号 付 き n ビッ ト 値 の 積 が -2 n-1 x-2 n-1 以 上 にな ら ない 場 合 、 MSB は 常 にその次 の 下 位 ビ ッ ト と 同 じ (P[2n-1] = P[2n-2]) にな り ます。 また、 配 線 遅 延 の 多 い 出 力 がい く つかあ る場 合 は、 その LSB 出 力 を MSB の 遅 延 に 合 せて 遅 らせる 必 要 があ り ます。同 じ 理 由 で、 レ ジ ス タ 付 き 出 力 乗 算 器 のデータ 入 力 セ ッ ト ア ッ プ タイムは LSB よ りも MSB の 方が 短 いですが、 タ イ ミ ング パラ メータではセッ トアップ タイムでピンが 区 別 されません。 遅 い 入力 は MSB に 配 置 する こ と をお 勧 め し ます。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 373<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 11 章 : エンベデ ッ ド 乗 算 器 の 使 用乗 算 器 の 拡 張18 ビ ッ ト を 超 え る 入 力 の 乗 算 は、 そのプ ロ セ ス を 分 割 する こ と で 可 能 にな り ます。 正 し い 重 み 付 けと MSB の 符 号 が 考 慮 されていれば、 どち らの 入 力 の 2 進 数 表 記 も どのポ イ ン ト で も 分 割 で き ますが、 入 力 の MSB から 18 ビ ッ ト のポ イ ン ト で 分 割 する と 、 18 ビ ッ ト の 符 号 付 き 乗 算 器 を 最 大 限 に活 用 で き ます。乗 算 器 のカ スケー ド 接 続<strong>Spartan</strong>-3E/3A/3AN の MULT18X18SIO プリ ミティブには、BCIN および BCOUT という 2 つのポー ト が 含 まれ、 複 数 の 乗 算 器 ブ ロ ッ ク か ら の B 入 力 を カ ス ケー ド 接 続 し た り 、 共 有 する ために 使用 されます。 18 ビッ トの BCIN カ ス ケー ド 用 入 力 ポー ト には、 通 常 の B 入 力 と は 別 の 入 力 ソ ースを 使 用 できます。 特 定 の イ ンプ リ メ ンテーシ ョ ンに BCIN を 使 用 する か、 B 入 力 パス を 使 用 する かは、B_INPUT 属 性 で 指 定 し ます。 B_INPUT を DIRECT に 設 定 する と B 入 力 が、 CASCADE に 設定 する と BCIN 入 力 が 選 択 さ れます。 これによ り、 必 要 に 応 じて BREG レ ジ ス タ で 選 択 し た 入 力 値を 保 持 できるようになります。BCOUT は、 乗 算 器 の 2 つ 目 の 入 力 の 値 を 常 に 反 映 する 18 ビッ トの 出 力 ポートです。 この 値 は、B 入 力 、BCIN 入 力 か ら のカ ス ケー ド 値 、 BREG の 出 力 ( 挿 入 さ れてい る 場 合 のみ) のいずれかになります。図 11-4 は、 異 な る B_INPUT 属 性 と BREG 属 性 の 設 定 を 使 用 し た コ ン フ ィ ギ ュ レーシ ョ ン を 4 パターン 示 しています。BCOUT[17:0]BCOUT[17:0]CEBBREGCEXXD QCLKRSTBREG = 0B_INPUT = CASCADERSTBBREG = 1B_INPUT = CASCADEBCIN[17:0]BCIN[17:0]BCOUT[17:0]BCOUT[17:0]CEBB[17:0]BREGCED QXB[17:0]XCLKRSTBREG = 0B_INPUT = DIRECTRSTBBREG = 1B_INPUT = DIRECTDS312-2_29_021505図 11-4 : B 入 力 の 4 つのコ ン フ ィ ギュ レーシ ョ ン パターン374 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


乗 算 器 の 拡 張RBCIN および BCOUT ポー ト には、 同 じ 列 内 の 隣 接 する 乗 算 器 に 接 続 さ れた 専 用 配 線 が 使 用 さ れます。 カ ス ケー ド 接 続 する と 、1 つの 乗 算 器 ブ ロ ッ ク の BCOUT ポー ト がそのすぐ 上 の 乗 算 器 の BCINポー ト を 駆 動 し ます。 列 の 一 番 下 にあ る 乗 算 器 の BCIN ポー ト と 一 番 上 の 乗 算 器 の BCOUT ポー トには 接 続 があ り ません。 図 11-5 は、 乗 算 器 4 つをカスケード 接 続 した 例 を 示 しています。 わか り やす く する ため、 こ の 図 にはレ ジ ス タ の 制 御 入 力 は 示 し ていません。BCOUTAPBB_INPUT = CASCADEBCINBCOUTAPBB_INPUT = CASCADEBCINBCOUTAPBB_INPUT = CASCADEBCINBCOUTAPBB_INPUT = DIRECTBCINDS312-2_30_021505図 11-5 : 乗 算 器 のカ スケー ド 接 続BREG レ ジ ス タ を 使 用 する 場 合 、 カ ス ケー ド 接 続 には、 直 接 型 FIR フィルタのような DSP アルゴリズムでよく 使 用 されるシフト レジスタ 構 造 が 使 用 されます。 BREG レ ジ ス タ を 使 用 し ない 場 合 、こ のカ ス ケード 構 造 によ り 、 同 じ 入 力 値 が 複 数 の 乗 算 器 に 送 信 されます。 このよ うにパラレル 接 続方 法 を 使 用 する こ と で、 入 力 幅 の 広 い 乗 算 器 を 作 成 で き、 転 置 型 FIR フィルタをインプリメントできます。 こ の 方 法 は、 同 じ 入 力 値 を 持 つ 乗 算 器 が 複 数 必 要 なアプ リ ケーシ ョ ンで 使 用 さ れます。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 375<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 11 章 : エンベデ ッ ド 乗 算 器 の 使 用例図 11-6 は、 22X16 乗 算 器 の イ ンプ リ メ ン ト 方 法 を 示 し ています。 まず、 22 ビッ トが LSB から 18ビットの 符 号 付 きの 値 と 4 ビッ トの 符 号 なしの 値 に 分 割 され、 2 つの 部 分 積 が 生 成 さ れます。 最 初の 部 分 積 は 20 ビ ッ ト の 符 号 付 き の 値 で、 16 ビ ッ ト の 符 号 付 き の 値 と 4 ビットの 符 号 なしの 値 を 乗算 した 結 果 です。 2 つ 目 の 部 分 積 は 34 ビ ッ ト の 符 号 付 き の 値 で、 16 ビ ッ ト の 符 号 付 き の 値 と 18ビットの 符 号 付 きの 値 を 乗 算 した 結 果 です。 ま た 加 算 のプ ロ セスに よ っ て 重 み 付 けが 復 元 さ れ(1 つ 目 の 乗 算 結 果 の LSB は 加 算 器 をバ イパスする こ と に 注 意 )、 最 終 的 に 38 ビ ッ ト の 乗 算 結 果 が生 成 さ れます。 最 初 の 結 果 には 符 合 が 付 いているので、 20 ビ ッ ト の 値 では 加 算 の 前 に 符 号 を 拡 張 する 必 要 があ り ます。 加 算 器 自 体 は 34 ビットであるため、17 スライスで 実 現 できます。A22B16181616MULT18X18SIO203416+3438PUnsigned44<strong>UG331</strong>_c13_07_081106図 11-6 : 22X16 乗 算 器 のイ ンプ リ メ ンテーシ ョ ンイ ンプ リ メ ンテーシ ョ ン 方 法 は、 どの 程 度 のパフ ォーマン スが 必 要 か、 どの く らいの リ ソースが 使用 でき るかによ って さ まざまです。 2 つ 目 の 乗 算 器 が 小 型 の 場 合 には、 MULT18X18SIO リソースまたは CLB 内 にイ ンプ リ メ ン ト でき ます。 パ イ プ ラ イ ン 接 続 を 追 加 する と 、 専 用 乗 算 器 に 含 まれる機 能 を 使 用 し てパフ ォーマン ス を 向 上 する こ と も で き ます。 両 方 の 入 力 が 18 ビッ トを 超 える 場 合は、 4 つの 部 分 積 が 生 成 でき ますが、 LSB か ら の 符 号 な し の 部 分 積 は、 MSB の 36 ビ ッ ト の 符 号 付き の 部 分 積 と つなげて、 残 り の 2 つの 部 分 積 に 追 加 で き ます。図 11-7 は、 4 つのエンベデ ッ ド 乗 算 器 と 2 つの 加 算 器 を 使 用 し た 35 ビッ ト X 35 ビ ッ ト の 符 号 付き 乗 算 器 を イ ンプ リ メ ン ト する 場 合 のカ ス ケー ド 接 続 方 法 を 示 し ています。固 定 加 算 器 は、 53 ビット 幅 です (1 つの 入 力 の 下 位 17ビットは 常 に 0)。34 ビット X 34 ビ ッ ト の 符 号 な し サブモジ ュール も 同 様 に 構 成 さ れますが、 それぞれの 計 算 結 果 のMSB は Low にな り ます。376 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


1 つのプ リ ミ テ ィ ブに 2 つの 乗 算 器RA[34:17]B[34:17]ABP363636[69:34]MULT18X18SIO[33:0]0, A[16:0]0, B[16:0]ABP3434 34MULT18X18SIO+70 70A[34:17]0, B[16:0]0, A[16:0]B[34:17]APBMULT18X18SIOAPB36363636+36MSB••MSB360••069••53[52:17]16••0MULT18X18SIO図 11-7 : 35X35 符 号 付 き 乗 算 器<strong>UG331</strong>_c13_08_0811061 つのプ リ ミ テ ィ ブに 2 つの 乗 算 器専 用 乗 算 器 は 2 つの 小 さ な 値 を 同 時 に 乗 算 する ために 使 用 で き ます。 LSB と MSB に 1 つずつ 値 を置 く こ と で、 結 果 が 出 力 で 重 な ら ない 限 り 、 独 自 の 結 果 を 2 つ 得 る こ と がで き ます。 値 の 1 つをn 位 置 分 MSB 方 向 にシフ ト する こ と は、 2 n で 乗 算 する こ と と 同 じ です。 MSB 方 向 にシフ ト さ れる値 が X とすると、 シフ ト された 新 しい 値 は X * 2 n にな り ます。 LSB の 値 が Y と する と 、 乗 算 器 入力 は X * 2 n + Y にな り ます。こ れを 簡 単 に 示 すため、2 つの 2 乗 計 算 を 同 じ MULT18X18SIO プリ ミティブにインプリメントしたとすると、 乗 算 式 は 次 の よ う にな り ます。1 つのプ リ ミ テ ィ ブに 2 つの 乗 算 器 がある 場 合(X * 2 n + Y)(X * 2 n + Y) = (X 2 * 2 2n ) + (XY * 2 n+1 ) + (Y 2 )X または Y が 0 の 場 合 は、 上 記 の 式 は 次 のよ う にな り ます。X 2 * 2 2n {Y=0} ( 出 力 の MSB は X 2 )Y 2 {X=0} ( 出 力 の LSB は Y 2 )0 {X=0, Y=0}X と Y の 値 が 0 以 外 の 場 合 、MSB/LSB の 結 果 と 中 間 項 (XY * 2 n+1 ) が 重 複 する のを 回 避 する 必 要があ り ます。 次 の 不 等 式 が 成 り 立 ち、 X と Y が 共 に 0 でない 場 合 は、 2 つの 乗 算 器 を 1 つのMULT18X18SIO プリ ミティブに 含 めることができます。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 377<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 11 章 : エンベデ ッ ド 乗 算 器 の 使 用1 つのプ リ ミ テ ィ ブに 2 つの 乗 算 器 を イ ン プ リ メ ン ト する 場 合 の 条 件 不 等 式(X 2 * 2 2n ) min > (XY * 2 n+1 ) max , (XY * 2 n+1 ) min > (Y 2 ) max表 11-2 は、 こ れら の 条 件 が 満 た さ れた 場 合 の X と Y の 値 を 示 し ています。表 11-2 : 1 つの MULT18X18SIO に イ ン プ リ メ ン ト 可 能 な 2 つの 乗 算 器 のサイズX * XY * Y符 号 付 きのサイズ 符 号 なしのサイズ 符 号 なしのサイズ6 X 6 5 X 5 5 X 55 X 5 4 X 4 6 X 64 X 4 3 X 3 7 X 7図 11-8 は、6 ビ ッ ト の 符 号 付 き の 値 と 5 ビッ ト の 符 号 なしの 値 を 2 乗 する 場 合 の MULT18X18SIOの 接 続 を 示 し ていま す。A_6S [17:12]x00 [11:5] AA_5U [4:0][35:24]P [23:10][9:0]B_6S [17:12]x00 [11:5] BB_5U [4:0]MULT18X18SIOP_6SNCP_5U<strong>UG331</strong>_c13_11_081106図 11-8 : 1 つのプ リ ミ テ ィ ブに 2 つの 乗 算 器 がある 場 合デザイ ン 入 力<strong>Spartan</strong>-3 ジ ェネレーシ ョ ンの 乗 算 器 をデザイ ンに 含 める 方 法 は 多 数 あ り ます。 前 述 し た ラ イ ブ ラリ プリ ミティブ MULT18X18SIO は、 回 路 図 ま たは HDL でインスタンシエートできます。 ザイ リンクス 社 の XST、 Synplicity 社 の Synplify、 また Mentor Graphics 社 の Precision などの 合 成 ツールでは、 乗 算 器 ブ ロ ッ ク を 乗 算 演 算 子 か ら 推 論 で き ます。 同 期 乗 算 器 の ク ロ ッ ク で 制 御 さ れてい る場 合 には、 レ ジ ス タ が 推 論 さ れます。Mentor Graphics 社 の 合 成 ツールでは、 パ イ プ ラ イ ン 乗 算 器 の 推 論 が 可 能 です。 パ イ プ ラ イ ン 乗 算器 では、 ロ ジ ッ ク に 並 列 処 理 を 可 能 にする レ ジ ス タ レベルが 挿 入 さ れる ので、 専 用 乗 算 器 の 代 わ りに CLB リソースが 使 用 されます。 こ のパ イ プ ラ イ ン 乗 算 器 を 利 用 するには、 RTL コードに 特 定 の構 文 を 記 述 する 必 要 があ り ます。 詳 細 は、 『 合 成 /シミュレーション デザイ ン ガイド』 を 参 照 してください。378 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


デザイ ン 入 力R次 は、 PREG 出 力 レ ジ ス タ の 付 いた MULT18X18SIO が 推 論 される VHDL コード 例 です。library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity mult18x18sio isport ( a : in std_logic_vector(7 downto 0);b : in std_logic_vector(7 downto 0);clk : in std_logic;prod : out std_logic_vector(15 downto 0));end mult18x18sio;architecture arch_mult18x18sio ofmult18x18sio isbeginprocess(clk) is beginif clk’event and clk = ’1’ thenprod


R第 11 章 : エンベデ ッ ド 乗 算 器 の 使 用次 は、 Mentor Graphics 社 合 成 ツール 用 の 同 期 乗 算 器 の Verilog コード 例 です。module mult18x18sio (a,b,clk,prod);input [7:0] a;input [7:0] b;input clk;output [15:0] prod;reg [15:0] reg_prod, prod;always @(posedge clk) beginreg_prod


CORE Generator の 使 用RAA_SIGNEDBLOADBSWAPBNDOQLOAD_DONERFDRDYCECLKACLRSCLRX467_06_032403図 11-9 : Multiplier Generator コアのシンボルCORE Generator では、 デフ ォル ト のパ ラ レル 乗 算 器 タ イ プ と し て、 エンベデ ッ ド 乗 算 器 が 使 用 されます。 XCO パ ラ メ ータの 乗 算 器 生 成 (Multiplier Construction) オプシ ョ ンまたは c_mult_typeジェネリ ック オプションを 使 用 すると、 代 わりにこのファンクションを LUT (ルックアップ テーブル) にインプリ メン トするこ と も 選 択 できます。図 11-10 は、 Multiplier Generator のタイ ミ ング 図 を 示 しています。CLKSCLRRFDACLR SCLR RFD NDA & BXXXXXX A(n) B(n)XXX XXX A 0A 1A nA nD nRDYDOUTDOUT = 0 (SCLR 1)A n+1D 0D D nn+1RDYLow (ND 0)X467_07_040303図 11-10 : Multiplier Generator のタイ ミング 図<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 381<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 11 章 : エンベデ ッ ド 乗 算 器 の 使 用System GeneratorMultiplier Generator は、 MULT ブロックが 使 用 される 場 合 に System Generator で 使 用 されます。System Generator では、 デザ イ ンが 高 レベルの 抽 象 表 示 で 示 さ れる だけでな く 、 シ リ コ ンの 主 要 な機 能 も 示 さ れるので、 高 パフ ォーマン スの <strong>FPGA</strong> イ ンプ リ メ ンテーシ ョ ン を 達 成 する こ と が 可 能 です。 System Generator には、 MATLAB の M コー ド を 合 成 可 能 な HDL コードにコンパイルするブロックも 含 まれています。 System Generator では、 パ ラ レル 乗 算 器 が 選 択 さ れる と 、 エンベデ ッ ド乗 算 器 が 使 用 さ れます。MAC コアCORE Generator および System Generator では、 乗 算 器 を 基 準 に し て よ り 複 雑 なフ ァ ン ク シ ョ ン をインプリ メントすることもできます。 Multiply Accumulator (MAC) コアでは、 最 大 で 32 ビッ トの入 力 のほか、 オプシ ョ ンでユーザー 定 義 のパ イ プ ラ イ ンがサポー ト さ れます。 エンベデ ッ ド ま たはLUT ベース の イ ンプ リ メ ンテーシ ョ ン を 選 択 する こ と で、 専 用 乗 算 器 か CLB リソースのどちらを使 用 する かが 決 ま り ます。 MAC を イ ンプ リ メ ンテーシ ョ ンする と 、 使 用 する CLB リソースが 専 用乗 算 器 よ り も 少 な く てすむので、 柔 軟 性 があ り 、 低 集 積 度 で 低 コ ス ト なデザ イ ンが 実 現 可 能 です。MAC および MAC ベースの FIR フィルタには、 必 要 なシステム クロックのパフォーマンスに 合 わせて 自 動 的 にパイ プ ラ イ ン 化 する 機 能 があ り ます。 パイ プ ラ イ ンのレベル 数 は、 ス ピー ド /エリアの最 適 な ト レー ド オフ を 考 慮 し、 デザ イ ン 要 件 に 応 じ て 自 動 的 に 挿 入 さ れます。<strong>Spartan</strong>-3 <strong>FPGA</strong> のライブラ リ プリミティブ<strong>Spartan</strong>-3 <strong>FPGA</strong> では、 エンベデッ ド 乗 算 器 に MULT18X18 ( 組 み 合 わせ) と MULT18X18S (レジスタ 付 き) の 2 つの ラ イブ ラ リ プリ ミティブが 使 用 されます。 表 11-3 は、 MULT18X18SIO プリミ テ ィ ブの 各 ポー ト の 定 義 を 示 し ています。表 11-3 : MULT18X18SIO エ ンベデ ッ ド 乗 算 器 プ リ ミ テ ィ ブの 説 明信 号 名 方 向 機 能A[17:0] 入 力 乗 算 さ れる 18 ビットの 2 の 補 数 値 のプ ラ イ マ リ 入 力 です。 オプシ ョ ンの AREG および PREGレ ジ ス タ が 使 用 さ れない 場 合 、 こ の 値 が 非 同 期 に 乗 算 さ れます。 AREG と PREG の 両 方 またはどち らかが 使 用 される 場 合 、 こ のポー ト の 値 が CLK の 立 ち 上 が り エ ッ ジで 認 識 され、 レジスタ 制 御 されます。B[17:0] 入 力 B_INPUT 属 性 が DIRECT に 設 定 されている 場 合 に 乗 算 される 18 ビッ トの 2 の 補 数 値 のセカンダリ 入 力 です。 オプシ ョ ンの BREG および PREG レ ジ ス タ が 使 用 さ れない 場 合 、こ の 値 が 非同 期 に 乗 算 さ れます。 BREG と PREG の 両 方 またはどち らかが 使 用 される 場 合 、 このポー ト の値 が CLK の 立 ち 上 が り エ ッ ジで 認 識 さ れ、 レ ジ ス タ 制 御 さ れます。BCIN[17:0] 入 力 B_INPUT 属 性 が CASCADE に 設 定 されている 場 合 に 乗 算 される 18 ビットの 2 の 補 数 値 のセカンダ リ 入 力 です。 オプシ ョ ンの BREG および PREG レ ジ ス タ が 使 用 さ れない 場 合 、こ の 値 が非 同 期 に 乗 算 さ れます。 BREG と PREG の 両 方 またはどち らかが 使 用 される 場 合 、 このポー トの 値 が CLK の 立 ち 上 が り エ ッ ジで 認 識 さ れ、 レ ジ ス タ 制 御 さ れます。P[35:0] 出 力 乗 算 器 に 入 力 さ れた 2 つの 値 か ら 計 算 される 36 ビッ トの 2 の 補 数 の 積 です。 オプシ ョ ンのAREG、 BREG、 PREG レ ジ ス タ が 使 用 さ れない 場 合 、 非 同 期 に 出 力 さ れます。 PREG を 使 用する と、 CEP と RSTP の 値 に 従 って CLK の 立 ち 上 が り エ ッ ジで 出 力 さ れます。 PREG が 使 用されず、 AREG と BREG が 使 用 される 場 合 は、 CEA と RSTA および CEB と RSTB の 値 に従 って CLK の 立 ち 上 が り エ ッ ジで 出 力 さ れます。 PREG が 使 用 されず、 AREG か BREG のいずれかのみが 使 用 さ れる 場 合 は、 非 同 期 イベン ト と 同 期 イベン ト の 両 方 で 出 力 さ れます。382 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


<strong>Spartan</strong>-3 <strong>FPGA</strong> のライブラリ プリミティブR表 11-3 : MULT18X18SIO エ ンベデ ッ ド 乗 算 器 プ リ ミ テ ィ ブの 説 明 ( 続 き)信 号 名 方 向 機 能BCOUT[17:0] 出 力 乗 算 器 の 2 つ 目 の 入 力 に 使 用 さ れます。 オプシ ョ ンの BREG レジスタが 使 用 されない 場 合 、B_INPUT 属 性 の 設 定 に よ って、 B[17:0] ポー ト または BCIN[17:0] ポー ト のいずれかの 変 更 時に 非 同 期 で 出 力 さ れます。 BREG を 使 用 する と 、 CEB と RSTB の 値 に 従 って CLK の 立 ち 上 がりエッジで 出 力 されます。CEA 入 力 オプシ ョ ンの AREG レジスタのクロック イネーブルです。 こ の 信 号 が High にな り、 RSTA がLow になる と、 CLK の 立 ち 上 が り エ ッ ジで A[17:0] ポー ト の 値 が AREG に 入 力 されます。RSTA 入 力 オプシ ョ ンの AREG レジスタの 同 期 リセッ トです。 こ の 信 号 が High になる と、CLK の 立 ち 上がりエッジで AREG の 内 容 が 0 にな り ます。CEB 入 力 オプシ ョ ンの BREG レジスタのクロッ ク イネーブルです。 こ の 信 号 が High にな り、 RSTB がLow になる と、 CLK の 立 ち 上 が り エ ッ ジで B[17:0] または BCIN[17:0] ポー ト の 値 が BREGに 入 力 されます。RSTB 入 力 オプシ ョ ンの BREG レジスタの 同 期 リセッ トです。 こ の 信 号 が High になる と、CLK の 立 ち 上がりエッジで BREG の 内 容 が 0 にな り ます。CEP 入 力 オプシ ョ ンの PREG レジスタのクロッ ク イネーブルです。 こ の 信 号 が High にな り、 RSTP がLow になる と、 CLK の 立 ち 上 が り エ ッ ジで 乗 算 器 ポー ト の 値 が PREG に 入 力 されます。RSTP 入 力 オプシ ョ ンの PREG レジスタの 同 期 リセッ トです。 こ の 信 号 が High になる と、 CLK の 立 ち 上がりエッジで PREG の 内 容 が 0 にな り ます。メモ :1. CLK、 CEA、 RSTA、 CEB、 RSTB、 CEP、 RSTP 制 御 信 号 の 極 性 は、 オプシ ョ ンで 反 転 させる こ と がで き ます。2 進 数 の 乗 算 では、 通 常 の 乗 算 と 同 様 に 乗 算 器 の 各 ビ ッ ト で 乗 算 し た 被 乗 数 を 使 用 し て 部 分 積 を 作成 し、 その 部 分 積 を 加 算 し て 結 果 を 求 めます。 ザ イ リ ン ク スの 乗 算 器 ブ ロ ッ ク ではブース アルゴ リズム を 使 用 し てい る ため、 部 分 積 を 作 成 する のにマルチプレ ク サが 使 用 さ れます。データ フローエンベデ ッ ド 乗 算 器 ブ ロ ッ ク (MULT18X18SIO プリ ミティブ) では、 18 ビッ ト ( 符 号 付 き) または17 ビット ( 符 号 な し) の 2 つの 独 立 し たダ イナ ミ ッ ク データ 入 力 ポー ト を 使 用 で き ます。 この 2 つの 入 力 が 被 乗 数 と 乗 数 (または 因 数 ) で、 出 力 がその 積 と な り ます。入 力 が 18 ビ ッ ト 未 満 の 乗 算 器 の 場 合 は、 その 入 力 の 符 号 が 拡 張 されて (MSB を 複 製 )、 インプリメントされます。 乗 算 する ビ ッ ト 幅 が 大 き い 場 合 は、 専 用 乗 算 器 と ス ラ イ ス ベースの ロ ジ ッ ク を 組 み合 わせるか、 1 つの 乗 算 器 を 時 分 割 し ます。符 号 な し の 乗 算 は、 入 力 値 を 正 の 範 囲 に 制 限 する と 実 行 で き ます。 こ の 場 合 、MSB は Low にな り、残 りの LSB 17 ビ ッ ト が 符 号 な し の 値 にな り ます。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 383<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 11 章 : エンベデ ッ ド 乗 算 器 の 使 用<strong>Spartan</strong>-3 ジェネレーション アーキテ ク チ ャの 乗 算 器乗 算 器 は、 ブロ ッ ク メ モリ に 入 力 や 結 果 を 格 納 し やすく する ために、 ブロ ッ ク RAM の 隣 に 配 置 されま す ( 図 11-11 を 参 照 )。 乗 算 器 の 列 は、 ほと んど のデバイ ス で 2 列 ですが、 最 小 のデバイ ス では 1列 し かなく 、 最 大 のデバイ ス では 4 ~ 5 列 あり ま す ( 表 11-1 を 参 照 )。 2 列 の 場 合 は、 乗 算 器 を CLBや IOB ロ ジッ ク から 駆 動 し やすく する ために、 乗 算 器 列 と デバイ ス のエッ ジと の 間 に CLB の 列 が2 列 含 ま れま す。 乗 算 器 ブロ ッ ク の 側 面 には CLB が 4 つ (または 16 個 のス ラ イ ス と 32 個 の LUT)がある ので、 32 の 入 力 およ び 出 力 信 号 を 乗 算 器 ブロ ッ ク のすぐ 隣 に 接 続 でき ま す。 たと えば、 片 側に A[15:0] を、もう 片 側 に B[15:0] を 配 置 し 、 両 側 に 出 力 を 分 散 する と 、 高 速 なレ イ アウ ト が 可 能 です。 フルサイズの 18X18 乗 算 器 の 場 合 、 追 加 の 入 力 およ び 出 力 を 次 の CLB 列 に 接 続 でき ま す。IOBsCLBDCMBlock RAMMultiplierIOBsDCMIOBsDCMCLBsBlock RAM / MultiplierIOBsIOBsDS312-1_01_032606メモ :1. XC3S700A/AN および XC3S1400A/AN の 場 合 、 左 右 両 側 ( 点 線 で 示 す 箇 所 ) に DCM が 2 つ 追 加 で 含 まれます。XC3S50A/AN の 場 合 は、 上 部 に DCM が 2 つと ブロッ ク RAM/ 乗 算 器 の 列 が 1 列 しか 含 まれません。乗 算 器 以 外 の 利 用 方 法図 11-11 : <strong>Spartan</strong>-3 ジェネレーション アーキテ ク チ ャの 乗 算 器 の 配 置2 n で 2 進 数 を 乗 算 する こ と は、 値 を n 箇 所 分 シフ ト する こ と と 同 じ なので、 乗 算 器 はシフ タ ま たはその 他 の 汎 用 リ ソ ース と し て も 使 用 で き ます。 これら の 使 用 法 は、 乗 算 器 を 多 数 必 要 と し ないアプリケーションで 適 用 できます。384 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


乗 算 器 以 外 の 利 用 方 法Rシフタ乗 算 器 は、 シフ タ と し て 使 用 でき ま す。 一 方 のオペラ ン ド が 2 のべき 乗 (2 n ) の 場 合 、 も う 一 方 のオペラ ン ド は n 箇 所 分 シフ ト さ れ、 出 力 さ れま す。 符 号 付 き ビ ッ ト (MSB) はシフ ト を 制 御 する ために使 用 でき ないので、 2 の 補 数 18x18 ビ ッ ト の 乗 算 器 は 0 から 16 箇 所 分 だけシフ ト でき ま す。36 の 出 力 ラ イ ンの う ち、 シフ ト さ れたデータ ラ イ ン よ り 下 位 のビ ッ ト には 自 動 的 に 0 が 入 力 され、シフ ト さ れたデータ よ り も 上 位 のビ ッ ト には、 MSB 入 力 の 状 態 に よ って、 0 または 1 が 入 力 されます。 結 果 は、 2 の 補 数 で 乗 算 する の と 同 じ にな り ます。MSB 入 力 を Low のままにする と、 17 入 力 ビ ッ ト の ロ ジ ッ ク シフ トが 実 行 できます。 また、 MSBの 符 号 を 効 果 的 に 拡 張 する と 、 18 ビットの 2 の 補 数 の 演 算 シフ ト が 実 行 で き ます。従 来 の CLB ベース のシ フ タ では、 n 個 のマルチプレ クサ (それぞれ n 入 力 付 き) を 含 むアレイが 使用 されるため、 多 数 の 配 線 リ ソースが 必 要 にな り ます。 18 ビ ッ ト を 超 え る 乗 算 器 ベースのシフ タおよび 任 意 の 長 さのバレル シフタでは、 出 力 の 外 部 に OR ゲー ト を 必 要 と し ますが、 CLB リソースは 少 な く てすみます。絶 対 値 の 生 成乗 算 に よ り 絶 対 値 を 生 成 する には、 正 の 値 の 場 合 は 1 で 乗 算 し (MSB は 0)、 負 の 値 の 場 合 は -1 で乗 算 し ます (MSB は 1)。 2 の 補 数 の 表 記 では、 1 を 表 現 する 場 合 、 LSB が 1 でその 他 のビ ッ ト がすべて 0、-1 の 場 合 には LSB も 含 めてすべてのビッ トが 1 にな る ので、 絶 対 値 ジ ェ ネレータは、LSBが 1 でそれ 以 外 のビ ッ ト がすべて 入 力 値 の MSB であ る 値 を 乗 算 する こ と に よ り イ ンプ リ メ ン ト できます。 図 11-12 は、 こ のジ ェネレータ を 示 し ています。•1716•10A1••1716•10BP16•0X467_12_032503図 11-12 : 絶 対 値 の 生 成2 の 補 数 の 生 成2 の 補 数 の 生 成 には、 通 常 1 ビッ トごとに 1 個 の LUT が 必 要 で、 ビ ッ ト 数 が 多 く な る 場 合 にはキャ リー ロジックを 使 用 しますが、 LUT が 多 く 使 用 さ れてい る 場 合 には、 乗 算 器 を 使 用 し て 入 力 の2 の 補 数 を 求 める こ と ができ ます。 入 力 値 に 同 じ ビ ッ ト 幅 ですべて 1 の 値 を 乗 算 する と 、 同 じ 幅 の2 の 補 数 出 力 が 生 成 さ れます。 余 剰 の 上 位 ビ ッ ト はすべて 無 視 さ れます。 図 11-13 は、2 の 補 数 を 出力 する ジ ェ ネレータ を 示 し ています。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 385<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 11 章 : エンベデ ッ ド 乗 算 器 の 使 用10•0AP35•11NC110•BP10•010X467_13_032503図 11-13 : 2 の 補 数 の 生 成複 素 乗 算複 素 乗 算 と は 複 素 数 の 乗 算 のこ と で、 計 算 式 には 実 数 と 虚 数 (-1 の 平 方 根 を 表 す i) が 含 ま れます。 複素 乗 算 は、 ac、 bd、 (a + b)(c + d) の 3 つの 実 数 乗 算 のみを 使 用 し て 実 行 でき ま す。 (a + ib)(c + id) の実 数 部 分 は ac - bd で、 虚 数 部 分 は (a + b)(c + d) - ac - bd です。 <strong>Spartan</strong>-3 ジェネレーショ ン アーキテク チャ には 多 数 の 乗 算 器 が 含 ま れる ため、 複 素 乗 算 にも 向 いていま す。マ ト リ ッ ク ス 乗 算 の 時 分 割CG やビデオ 分 野 で 使 用 さ れるパ イ プ ラ イ ン 接 続 さ れた フ ァ ン ク シ ョ ンには、 マ ト リ ッ ク ス 演 算 がよ く 使 用 さ れます。 3X3 マ ト リ ッ ク ス 乗 算 の 場 合 、 27 回 の 乗 算 と 18 回 の 加 算 が 実 行 さ れます。 カラー 変 換 は、 定 数 に よ る 3 X 3 マト リックス 乗 算 として 記 述 でき、9 回 の 乗 算 と 6 回 の 加 算 に よ って 3 つの 結 果 が 生 成 さ れます。<strong>Spartan</strong>-3 ジェネレーション デバ イ スは 高 速 デザ イ ンに 対 応 し てい る ので、 乗 算 器 を 時 分 割 し て 使用 でき ます。 9 個 の 乗 算 器 の 代 わ り に、 入 力 を 9 セ ッ ト 使 用 する こ と で、 シ ス テムの ク ロ ッ ク レートの 9 倍 で 9 セ ッ ト の 結 果 を 出 力 で き、 乗 算 器 の 数 を 1 個 に 減 らすこ とができます。 加 算 器 ロ ジ ックは CLB リソースにインプリメントされます。 加 算 器 からの 3 つの 結 果 は、 3 クロックごとに 出力 され、 出 力 レジスタに 格 納 されます。 詳 細 は、アプ リ ケーシ ョ ン ノート XAPP284 『Matrix Math,Graphics, and Video』 を 参 照 し て く だ さ い。浮 動 小 数 点 の 乗 算浮 動 小 数 点 を 使 用 する と 、 2 進 数 の 乗 算 に 使 用 さ れる 数 と 符 号 付 き ビ ッ ト に 指 数 が 追 加 さ れます。32 ビ ッ ト の 浮 動 小 数 点 の 乗 算 器 は、 専 用 乗 算 器 ブ ロ ッ ク 4 個 と CLB リソースを 使 用 してインプリメントできます。 こ れら の 乗 算 器 は、 ザ イ リ ン ク ス AllianceCORE パー ト ナーから 入 手 でき ます。386 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


関 連 資 料 および リ フ ァ レ ンスR関 連 資 料 および リ フ ァ レ ンス• <strong>Spartan</strong>-3 ジェネレーショ ン デバイ スのデータ シー トアーキテクチャの 詳 細 と タ イ ミ ング パラ メータhttp://japan.xilinx.com/support/documentation/index.htm• XtremeDSP テクノロジ ソリューションhttp://japan.xilinx.com/products/design_resources/dsp_central/grouping/ザイ リンクスの DSP ソ リ ューシ ョ ンか ら 最 大 限 の 効 果 を 上 げる ための 情 報 が 参 照 で き ます。• IP センタhttp://japan.xilinx.com/ipcenterザイ リンクスおよび Alliance パー ト ナーのコ ア ソ リ ューシ ョ ンについて 参 照 でき ます。• ザイ リンクス ソフトウェア マニュアルhttp://japan.xilinx.com/support/software_manuals.htmライブラリ ガ イ ド の 詳 細 、 『 合 成 /シ ミュレーション デザイ ン ガイド』 の HDL インスタンシエーシ ョ ン 例 を 参 照 でき ます。• アプ リ ケーシ ョ ン ノート XAPP195 『Implementing Barrel Shifters Using Multipliers』8 ビットおよび 32 ビッ トのバレル シフ タ の 例 を 参 照 で き ます。• アプ リ ケーシ ョ ン ノート XAPP284 『Matrix Math, Graphics, and Video』9 倍 の ク ロ ッ ク レー ト で 駆 動 する 1 つの 乗 算 器 を 使 用 し て、 1 システム クロック 周 期 で、3X3マ ト リ ッ ク ス 乗 算 の 9 個 の 結 果 を 出 力 する 例 を 参 照 で き ます。• 『XtremeDSP DSP48A for <strong>Spartan</strong>-3A DSP <strong>FPGA</strong>s User Guide』 (UG431)<strong>Spartan</strong>-3A DSP <strong>FPGA</strong> の DSP48A ブ ロ ッ ク について 説 明 し ています。• アプ リ ケーシ ョ ン ノート XAPP467 『Using Embedded Multipliers in <strong>Spartan</strong>-3 <strong>FPGA</strong>s』<strong>Spartan</strong>-3 <strong>FPGA</strong> での MULT18X18 およ び MULT18X18S の 使 用 方 法 について 説 明 し ていま す。• アプ リ ケーシ ョ ン ノート XAPP636 『Optimal Pipelining of the I/O Ports of Virtex-IIMultipliers』入 力 と 出 力 をパイ プ ラ イ ン 接 続 し た 専 用 乗 算 器 の 高 速 、 最 適 な イ ンプ リ メ ンテーシ ョ ン、 および 効 果 的 な 配 置 配 線 の 制 約 について 説 明 し ています。• ホワイ ト ペーパー WP277 『Expanding Dedicated Multipliers』<strong>FPGA</strong> リ ソ ース を 最 大 限 に 使 用 する ため、 専 用 乗 算 器 のビ ッ ト 幅 を 拡 張 する 方 法 を 説 明 し ま す。まとめ<strong>FPGA</strong> では、 ロ ジ ッ ク を 特 定 のアプ リ ケーシ ョ ン 用 にカス タマイズでき るため、 汎 用 の DSP チップよ り も 大 きな 利 点 があり ます。 フ ァ ン ク シ ョ ンの 中 には、 大 幅 に 少 ない リ ソ ースで 100 倍 以 上 のスピードで 駆 動 できるものもあります。 専 用 の 乗 算 器 ブ ロ ッ ク を 使 用 する と 、 こ う いった 利 点 を 活用 でき ます。 乗 算 ロ ジ ッ ク を 自 動 的 に 最 適 化 し て 制 御 する と 、 必 要 な 結 果 を 得 る こ と がで き ます。CORE Generator を 使 用 する と 、 単 純 な 乗 算 器 を 生 成 し た り 、 乗 算 器 を 組 み 合 わせて MAC のよ うな 複 雑 なフ ァ ン ク シ ョ ン を 作 成 で き ます。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 387<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 11 章 : エンベデ ッ ド 乗 算 器 の 使 用付 録 A : 2 の 補 数 の 乗 算2 の 補 数 の 表 記 では、 符 号 付 き 整 数 の 2 進 数 演 算 が 使 用 で き る ので、 正 確 な 2 の 補 数 の 結 果 が 出 力されます。 2 の 補 数 の 正 の 値 は、 単 純 な 2 進 数 で 表 さ れます。 2 の 補 数 の 負 の 値 は、 同 じ 絶 対 値 の 正の 値 に 加 え る と 0 になる 2 進 数 で 表 さ れます。 整 数 の 2 の 補 数 を 計 算 する には、 すべての 0 の 値 を1 に、 1 の 値 を 0 に 反 転 し (1 の 補 数 と もい う ) 、 1 を 足 します。 1 番 左 にあ る MSB ビ ッ ト は 整 数 の符 号 を 示 し てい る ので、 符 号 ビ ッ ト と も 呼 ばれます。 符 号 ビ ッ ト が 0 の 場 合 は 正 の 値 にな り 、 1 の 場合 は 負 の 値 にな り ます。 符 号 付 き 整 数 の 幅 を 増 やすには、 その 値 の 左 側 に MSB を 複 製 し ます。2 の 補 数 の 乗 算 は、 2 進 数 の 乗 算 方 法 と 同 じ く 、 AND ゲー ト の 真 理 値 表 と 同 様 のルールに 従 っ て 実行 されます。例 :0 x 0 = 00 x 1 = 01 x 0 = 01 x 1 = 1、 キャリーまたはボロー ビットはなし1111 1100 = -4x 0000 0100 = +41111 0000 = -16388 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 12 章イ ン タ ーコ ネ ク ト の 使 用インターコネク ト とは、<strong>FPGA</strong> 内 の IOB、 CLB、 DCM、 ブロック RAM などのファンクショ ン エレ メ ン ト の 入 力 と 出 力 間 をつな ぐ 信 号 経 路 であ り 、 プ ロ グ ラ ム 可 能 なネ ッ ト ワーク です。概 要インターコネク ト ( 配 線 ) は、 最 適 な 接 続 を 達 成 する ために 分 割 さ れています。 インターコネク トには、 ロ ング ライン、HEX ライン、 ダブル ライン、 ダイレクト ラインの 4 種 類 の ラ イ ンがあ り ます。 ザイ リ ンクス ISE ® の 配 置 配 線 (PAR) ソ フ ト ウ ェ アを 使 用 する と 、 こ れら の イ ン ターコ ネ ク ト配 列 を 活 用 し、 最 適 なシ ス テム パフ ォーマン ス を 最 短 の コ ンパイ ル 時 間 で 達 成 で き ます。 インターコネ ク ト の 知 識 は 設 計 の 役 に 立 ちますが、 効 率 的 な <strong>FPGA</strong> のデザ イ ンには 通 常 必 要 あ り ません。 グローバル インターコネク ト の 中 には、 グローバル クロック バ ッ フ ァ の 使 用 に よ り 選 択 する ク ロ ック 配 線 など、 デザインで 制 御 するタイプのものもあります。 クロック 配 線 については、 第 2 章 「グローバル クロック リ ソ ースの 使 用 」 を 参 照 して く ださい。 それ 以 外 の 2 つのグ ローバル 信 号 であ るGTS (グローバル トライ ステート) および GSR (グローバル セッ ト/ リセット) は、 STARTUP コンポーネン ト を 使 用 する と 選 択 で き ます。 詳 細 は、 こ の 章 の 最 後 を 参 照 し て く だ さ い。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> 間 のイ ン タ ー コ ネ ク ト の 違 いインターコネク ト リ ソ ースは、 論 理 的 には <strong>Spartan</strong> ® -3、 <strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3A、 <strong>Spartan</strong>-3AN、<strong>Spartan</strong>-3A DSP <strong>FPGA</strong> でほ とんど 同 じですが、 <strong>Spartan</strong>-3E および <strong>Spartan</strong>-3A/3AN/3A DSP<strong>FPGA</strong> では DCM と RAM/ 乗 算 器 リ ソースがアレ イ 内 に 埋 め 込 まれ、ロ ング ラインでエレメント 同士 が 接 続 されていますが、 <strong>Spartan</strong>-3A/3AN <strong>FPGA</strong> では、 ブロ ッ ク RAM と 乗 算 器 の 間 に さ ら に 多く の 配 線 が 提 供 さ れてい ます。 こ の 追 加 の 配 線 に よ り 、 ブ ロ ッ ク RAM か ら 乗 算 器 へのパス が 高 速になるので、 隣 のブロ ッ ク RAM へ 被 乗 数 を 格 納 しやす く な り ます。 ま た こ の 配 線 に よ り 、 隣 接 する 乗 算 器 が 使 用 さ れてい る 間 で も、 ブ ロ ッ ク RAM のポー ト A が 36 ビッ ト モード で 使 用 でき ます。 ただし、 これがサポー ト されるのは、 <strong>Spartan</strong>-3A/3AN <strong>FPGA</strong> のポー ト A でのみです。 詳 細 は、372 ページの「 乗 算 器 と ブ ロ ッ ク RAM の 接 続 」 を 参 照 して く ださい。 <strong>Spartan</strong>-3A DSP <strong>FPGA</strong> では、乗 算 器 が DSP48A ブロッ クに 置 換 されています。 主 なグローバル 信 号 の GTS と GSR の 機 能 はどのプラ ッ ト フ ォームでも 同 じですが、 プ リ ミ テ ィ ブは 異 な り ます。 詳 細 は、 393 ページの 「グ ローバル 制 御 信 号 」 を 参 照 して く ださい。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 389<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 12 章 : イ ン タ ー コ ネク ト の 使 用スイッチ マトリックススイッチ マト リ ックスは、デバイスのさまざまなインターコネク トに 接 続 されています。 図 12-1 に示 すよ う に、 イ ン ターコ ネ ク ト タイルは、CLB、 IOB、 DCM のよ うなファンクショ ン エレ メン トに 接 続 される 1 つのス イ ッ チ マ ト リックスとして 定 義 されます。 ブロック RAM や 乗 算 器 の よ うに、 フ ァ ン ク シ ョ ン エ レ メ ン ト が 複 数 の ス イ ッ チ マ ト リックスに 接 続 される 場 合 、 インターコネクト タイルはそのエレメントに 接 続 されるスイッチ マ ト リックスの 数 によって 定 義 されます。 デバイスは、 インターコネク ト タイルのアレイで 表 すことができ、 図 12-2 に 示 すよ う に、 イ ン ターコネク ト リソースは 2 つの 隣 接 する イ ン ターコ ネ ク ト タ イルの 行 または 列 の 間 のチャネル と し ての 役 割 り を 果 た し ます。SwitchMatrixCLBSwitchMatrixSwitchMatrixIOBSwitchMatrixSwitchMatrix18KbBlockRAMMULT18 x 18SwitchMatrixDCMSwitchMatrixDS312_08_020905図 12-1 : 4 種 のイ ン タ ーコ ネ ク ト タイル (CLB、 IOB、 DCM、 ブロック RAM/ 乗 算 器 )SwitchMatrixIOBSwitchMatrixIOBSwitchMatrixIOBSwitchMatrixIOBSwitchMatrixSwitchMatrixIOBSwitchMatrixCLBSwitchMatrixCLBSwitchMatrixCLBSwitchMatrixSwitchMatrixIOBSwitchMatrixCLBSwitchMatrixCLBSwitchMatrixCLBSwitchMatrixSwitchMatrixIOBSwitchMatrixCLBSwitchMatrixCLBSwitchMatrixCLBSwitchMatrixSwitchMatrixIOBSwitchMatrixCLBSwitchMatrixCLBSwitchMatrixCLBSwitchMatrixDS312_09_020905図 12-2 : <strong>FPGA</strong> のインターコネク ト タ イルのアレ イ390 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


スイッチ マトリックスR次 の 図 12-3 は、 各 チ ャ ネルで 使 用 可 能 な 4 つの 汎 用 の イ ン ターコ ネ ク ト を 示 し ています。水 平 方 向 と 垂 直 方 向 の ロング ライン ( 図 は 水 平チャネルの 例 )24CLBCLBCLBCLBCLB CLB CLB CLB CLB CLB水 平 方 向 と 垂 直 方 向 のHEX ライン ( 図 は 水 平チャネルの 例 )CLB6 6 6 6 6DS312-2_10_0719068CLB CLB CLB CLB CLB CLBDS312-2_11_020905水 平 方 向 と 垂 直 方 向 のダブル ライン ( 図 は 水 平チャネルの 例 )CLB8CLBCLBDS312-2_15_022305ダイレク ト 接 続CLBCLBCLBCLBCLBCLBCLBCLBCLBDS312-2_12_020905図 12-3 : 2 つの 隣 接 する イ ン タ ーコ ネ ク ト タイルを 結 ぶインターコネク トのタイプロング ラインチ ッ プ 上 を 水 平 方 向 と 垂 直 方 向 にわたって 配 線 さ れる 24 本 のロ ング ライン 信 号 は、 インターコネクト タイル 6 つご とに 接 続 されます。 どのタ イルでも、 4 本 のロ ング ラインでスイッチ マト リックスからの 信 号 が 送 受 信 されます。 ロング ラ イ ンはキ ャパシ タ ン スが 低 いため、 最 低 限 の 負 荷 (スキューなど) で 高 周 波 数 の 信 号 を 送 信 する のに 適 し ています。 また、 グローバル クロック ラインすべてが 使 用 されてお り 、 割 り 当 て る 必 要 のあ る ク ロ ッ ク 信 号 が 残 っている 場 合 に、 代 替 ラ イ ン と して も 使 用 で き ます。HEX ライン8 本 の HEX ラ イ ンは、 水 平 方 向 および 垂 直 方 向 に、 3 タ イ ルご と に 接 続 さ れます。 インターコネクト タ イル 間 で 使 用 可 能 な HEX ラインは 32 本 あ り ます。 このラインは、 配 線 の 一 番 端 からしか 駆動 されません。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 391<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 12 章 : イ ン タ ー コ ネク ト の 使 用ダブル ライン8 本 のダブル ラインは、4 方 向 に、 タ イ ル 1 つおき に 接 続 さ れます。 インターコネク ト タイル 間 で使 用 可 能 なダブル ラインは 32 本 あ り ます。 ダブル ラインは、 ロング ラインや HEX ラインよりも接 続 が 多 く 、 柔 軟 性 も 高 く なっ ています。ダイレク ト 接 続ダ イ レ ク ト 接 続 では、 隣 接 する タ イルを 垂 直 方 向 、 水 平 方 向 、および 対 角 線 方 向 に 接 続 し ます。 ソース タイルからの 信 号 をダブル ライン、HEX ライン、ロング ラインのいずれかに 送 信 し、これらのインターコネク トからダイレク ト ラインに 信 号 を 戻 して、デスティネーション タイルにアクセスします。<strong>FPGA</strong> Editor を 使 用 し た イ ン タ ーコ ネ ク ト の 表 示<strong>FPGA</strong> Editor を 使 用 する と 、 空 白 デバイ スの イ ン ターコ ネ ク ト やイ ンプ リ メ ンテーシ ョ ン 済 みのデザ イ ンで 使 用 さ れる イ ン ターコ ネ ク ト を 表 示 で き ます。 <strong>FPGA</strong> Editor は、<strong>FPGA</strong> を 表 示 し、コンフ ィギュレーションするためのグラフィカル ツールで、 NCD (Native Circuit Description) ファイルを 入力 フ ァ イルと して 使 用 します。 このファイルには、 CLB や IOB などのコンポーネン トにマップされたデザイ ンのロ ジ ッ クに 関 する 情 報 が 含 まれています。 <strong>FPGA</strong> Editor は、 物 理 制 約 フ ァ イル(PCF) も 読 み 込 みます。<strong>FPGA</strong> Editor では、 次 を 実 行 でき ます。• 自 動 配 置 配 線 を 実 行 する 前 に、 重 要 な コ ンポーネン ト を 配 置 配 線 し ます。• 配 線 プ ロ グ ラ ムで 配 線 が 完 了 し なかった 場 合 に、 配 置 配 線 を 完 了 さ せます。• デザイ ンにプローブを 追 加 し て、 ターゲ ッ ト デバイ スの 信 号 のス テー ト を 調 べます。 プローブは、 デバイ スのデバ ッ グで 内 部 ネ ッ ト の 値 を IOB に 割 り 当 て る ために 使 用 し ます。• Timing Analyzer からクロスプローブします。• BitGen を 実 行 し、 生 成 された BIT ファイルをターゲッ ト デバイ スにダ ウ ン ロー ド し ます。• デザ イ ン をすべて 手 動 で 作 成 で き ます ( 上 級 ユーザー 向 け)<strong>FPGA</strong> Editor は、 デザイ ンの 配 置 配 線 を 実 行 する と 使 用 で き る よ う にな り、 [View/Edit RoutedDesign (<strong>FPGA</strong> Editor)] プ ロ セス をダブル ク リ ッ クする と 、 起 動 し ます。<strong>FPGA</strong> Editor の 詳 細 は、 <strong>FPGA</strong> Editor からオンライン ヘルプを 参 照 し て く だ さ い。392 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


グローバル 制 御 信 号Rグローバル 制 御 信 号<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> には、 汎 用 のイ ン ターコネ ク ト 以 外 に、 表 12-1 に 示 す 2 つのグローバル ロ ジ ッ ク 制 御 信 号 が 含 まれます。表 12-1 : グローバル ロジ ッ ク 制 御 信 号グローバル制 御 入 力GSRGTS説 明グローバル セッ ト/ リセット。 High の 場 合 、 非 同 期 ですべてのレ ジ ス タ と フリ ッ プフ ロ ッ プを 初 期 状 態 に 戻 し ます (215 ページの 「 初 期 化 」 を 参 照 )。<strong>FPGA</strong> コンフィギュレーション プ ロ セス 中 に 自 動 的 にアサー ト さ れます。 詳細 は、『<strong>Spartan</strong>-3 Generation Configuration User Guide』の「Start-Up」(UG332)を 参 照 して く ださい。グローバル トライ ステート。 High の 場 合 、 非 同 期 ですべての I/O ピンをハイ インピーダンス 状 態 (Hi-Z、 ト ライステート) にします。グローバル セッ ト/ リセット (GSR) 信 号 は、 ほ と んどの ASIC タイプのデザインに 含 まれるグローバル リ セ ッ ト 信 号 と 同 じ も のです。 グ ローバル リ セ ッ ト 信 号 の 代 わ り に GSR を 使 用 する と 、 CLBの 入 力 を 節 約 で き、 よ り 小 型 で 効 率 的 なデザ イ ン を 作 成 で き ますが、 GSR 信 号 はフ リ ッ プフ ロ ッ プすべてを 常 に 初 期 化 し 直 し ます。 GSR 信 号 は、 <strong>FPGA</strong> コンフィギュレーション プロセス 中 に 自 動的 にアサー ト されるので、 <strong>FPGA</strong> が 既 知 のステー ト で 起 動 される よ う にな り ます。STARTUP_SPARTAN3 プリミティブGSR および GTS 信 号 ソ ースは、 プ ラ ッ ト フ ォーム 別 に STARTUP_SPARTAN3、STARTUP_SPARTAN3E、 STARTUP_SPARTAN3A (<strong>Spartan</strong>-3A、 <strong>Spartan</strong>-3AN、 <strong>Spartan</strong>-3A DSPで 使 用 ) の 特 別 なプ リ ミ テ ィ ブを 使 用 し て 定 義 され、 接 続 されます。 GSR と GTS はコンフィギュレーシ ョ ン 中 に 使 用 されます。 STARTUP プリ ミティブの GRS と GTS に 信 号 を 接 続 する と 、 コ ンフィギュレーション 後 にどう 制 御 されるかを 指 定 できます。 これらのプリ ミティブは、 スタートア ッ プ 段 階 の 選 択 された ク ロ ッ ク 周 期 ではデ ィ スエーブルになっているので (デフォル ト)、 デバイスのフリ ップフロップおよび I/O はイネーブルになり ます。 このプリ ミティブには、 コンフィギュレーシ ョ ン 用 に 使 用 される 信 号 がほかにも 1 つか 2 つ 含 まれます。 各 プラ ッ ト フ ォームには、 スタート アップ プロセスの 代 替 クロック として 使 用 される CLK が 含 まれます。 詳 細 は、 『<strong>Spartan</strong>-3Generation Configuration User Guide』 (UG332) の 「Sequence of Events」 を 参 照 し て く だ さい。<strong>Spartan</strong>-3E <strong>FPGA</strong> の 場 合 、 マルチブー ト トリガ 用 に 追 加 で MBT 入 力 も 含 まれます。 詳 細 は、『<strong>Spartan</strong>-3 Generation Configuration User Guide』 (UG332) の 「Reconfiguration and MultiBoot」 を参 照 し て く だ さ い。STARTUP_SPARTAN3STARTUP_SPARTAN3ESTARTUP_SPARTAN3AGSRGTSCLKGSRGTSMBTCLKGSRGTSCLK<strong>UG331</strong>_c14_04_071906図 12-4 : <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> の STARTUP プリミティブ<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 393<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 12 章 : イ ン タ ー コ ネク ト の 使 用まとめ<strong>Spartan</strong>-3 ジェネレーショ ン <strong>FPGA</strong> の イ ン ターコ ネ ク ト は 柔 軟 性 があ る ので、 ほ と んどすべての ロジックおよび I/O リ ソースのコンフ ィ ギュ レーシ ョ ンで 効 率 的 なイ ンプ リ メ ンテーシ ョ ンが 可 能 です。 ザイ リ ンクスの ISE ソ フ ト ウ ェ アを 使 用 する と 、 こ れら の リ ソ ース を 最 大 限 に 活 用 し た 配 置 配線 が 自 動 的 に 実 行 さ れます。 グローバル ク ロ ッ ク 信 号 は、 グ ローバル クロック バッファを 使 用 すると 制 御 できます。 グローバル セッ ト/ リセットおよびグローバル トライステート 信 号 は、STARTUP コ ンポーネン ト で 制 御 さ れます。394 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


Rセクション II : デザイ ン ソフトウェア「ISE デザイ ン ツールの 使 用 」「IP コアの 使 用 」「エンベデッ ド プロセッサとコン ト ローラのソ リ ューショ ン」<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 395<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R396 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 13 章ISE デザイ ン ツールの 使 用概 要プロ グラ マブル ロ ジッ ク の 設 計 を 効 率 的 に 行 う には、 ソ フ ト ウ ェ アが 重 要 な 役 割 を 果 たし ま す。<strong>Spartan</strong> ® -3 ジェネレーショ ンは、 ザイリ ンク ス ISE ® (Integrated Software Environment) 開 発 ツ ールおよ びさ ま ざま なパート ナー ツ ールでサポート さ れていま す。 この 章 では、ISE に 含 まれる デザイ ンツ ールについて 説 明 し ま す。 こ れは、ザイ リ ン ク ス 開 発 シス テム を 初 めて 使 用 する ユーザー 向 けに 書かれており 、 ほかの <strong>Spartan</strong>-3 ジェ ネレ ーショ ン の 文 書 でのツ ールに 関 する 記 述 を 理 解 する のに 役 立ちます。 前 半 で 一 般 的 なデザイ ン フ ロ ーの 概 要 を 示 し 、 後 半 ではフ ロ ーの 各 段 階 で 使 用 する ツ ールについて 説 明 し ま す。 詳 細 およ びチュ ート リ アルは、 ISE に 関 する 文 書 を 参 照 し てく ださ い。http://japan.xilinx.com/support/software_manuals.htmこの 章 の 記 述 は、<strong>Spartan</strong>-3、<strong>Spartan</strong>-3E、<strong>Spartan</strong>-3A、<strong>Spartan</strong>-3AN、<strong>Spartan</strong>-3A DSP の <strong>Spartan</strong>-3ジェネレーショ ン <strong>FPGA</strong> すべてに 適 用 さ れます。はじめにISE デザイ ン ツールを 使 用 する と 、 短 期 間 に 低 コ ス ト で <strong>Spartan</strong>-3 ジェネレーショ ン <strong>FPGA</strong> のデザインを 設 計 できます。 ISE パッケージには、<strong>Spartan</strong>-3 ジェネレーションで 最 高 のロジック パフォーマンスを 得 るためのさまざまなソフ ト ウェア デザイ ン ツールが 含 まれています。 ProActiveTiming Closure というタイ ミング クロージャ 技 術 により、 必 要 なパフォーマンスをより 短 い 時 間 で達 成 で き ます。 インク リ メンタル デザ イ ン を 使 用 する と パフ ォーマン ス を 維 持 し た ま ま 短 時 間 で 再コンパイルでき、 オプションのザイ リンクス ChipScope Pro 検 証 ツールでは、 ASIC デザイ ンでは不 可 能 だった リ アル タイム デバ ッ グ を 実 行 で き ます。 ISE を 使 用 する と 、 設 計 プ ロ セスにかか る 時間 と コ ス ト を 削 減 し、 タ イ ム トゥ マーケ ッ ト を 向 上 で き ます。デザイ ン フロー<strong>Spartan</strong>-3 ジェネレーショ ン <strong>FPGA</strong> の 標 準 デザ イ ン フ ローには、 主 に 次 の 3 つの 段 階 があ り ます。デザイ ン インプリ メンテーション フローは、ザイリンクスのグラフィカル ユーザー インターフェイス (GUI) で 必 要 なプ ロ セス を 選 択 する こ と に よ り 、 簡 単 に 実 行 で き ます。 出 力 フ ァ イ ルを ア ッ プデー ト する のに 必 要 なプ ロ グ ラ ムおよびフ ァ イ ルが 自 動 的 に 判 断 さ れ、 実 行 さ れます。1. デザ イ ン 入 力 および 合 成回 路 図 ま たはハー ド ウ ェ ア 記 述 言 語 (HDL)、 あ る いはその 両 方 を 使 用 し て、 デザ イ ン を 作 成 します。 HDL を 使 用 した 場 合 は、 HDL フ ァ イルを 合 成 し、 業 界 標 準 の EDIF (Electronic DataInterchange Format) フ ァ イ ルを 作 成 する 必 要 があ り ます。 合 成 にザ イ リ ン ク スの 合 成 ツールである XST (<strong>Xilinx</strong> Synthesis Technology) を 使 用 する と 、ザ イ リ ン ク ス 特 有 の NGC ネッ ト リスト が 作 成 さ れます。 こ の NGC ファイルは、 EDIF に 変 換 可 能 です。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 397<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 13 章 : ISE デザイ ン ツールの 使 用2. デザイ ン インプリ メンテーションインプリ メンテーションでは、 デザイン 入 力 / 合 成 段 階 で 作 成 し た EDIF などの 論 理 デザインファイル フォーマッ トを <strong>Spartan</strong>-3 ジェネレーション アーキテクチャにイ ンプ リ メ ン ト することにより、 物 理 ファイル フォーマッ トに 変 換 します。 物 理 情 報 は、 NCD (Native CircuitDescription) ファイルに 保 存 されます。 このファイルからビッ ト ス ト リーム ファイルを 作 成 したり、オプションで <strong>Spartan</strong>-3 ジェネレーション デバイ ス をプロ グ ラ ムする ための PROM をプログラムできます。3. デザイ ン 検 証ゲー ト レベルのシミ ュレータを 使 用 する と、デザインが 正 し く 動 作 し、 タイ ミ ング 要 件 を 満 たし てい る かを 検 証 で き ます。 インサーキッ ト 検 証 は、iMPACT プログラム ツールを 使 用 し てデザインをデバイスにダウンロードして 実 行 します。 デザイ ン 検 証 は、 まずデザイ ン 入 力 の 直 後に 行 い、 その 後 デザ イ ン フ ローの さ ま ざ ま な 段 階 で 実 行 し ます。図 13-1 に、 <strong>Spartan</strong>-3 ジェネレーショ ン <strong>FPGA</strong> での 一 般 的 なデザ イ ン フローを 示 します。<strong>FPGA</strong>- - - 図 13-1 : デザイ ン フローx473_01_062103398 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


デザイ ン フローRデザイ ン 入 力 および 合 成デザ イ ン 入 力 には、 回 路 図 の 場 合 は 回 路 図 エデ ィ タ、 HDL コー ド の 場 合 はテキ ス ト エデ ィ タ を 使用 します。 デザイ ン 入 力 は、 デザイ ンの 概 念 を 図 または 機 能 の 記 述 で 表 現 する と こ ろから 始 ま り ます。 入 力 し たデザ イ ンは、 合 成 し て 汎 用 の EDIF ネッ ト リストまたはザイ リンクス ネッ ト リストファイルに 変 換 します。 このファイルは NGDBuild というプログラムに 入 力 され、 論 理 NGD(Native Generic Database) ファイルが 生 成 されます。 <strong>Spartan</strong>-3 ジェネレーション アーキテ クチャに 特 有 の 機 能 は、 ザイ リ ン ク ス ラ イ ブ ラ リ に よ り 提 供 さ れます。図 13-2 に、 デザイ ン 入 力 および 合 成 のフ ローを 示 し ます。CORE Generator HDLUCFEDIF /NCFNGC(XST )NGDBuild図 13-2 : デザイ ン 入 力 および 合 成 のフ ローx473_02_061703階 層 デザイ ン階 層 デザ イ ンには、 回 路 図 入 力 および HDL 入 力 の 両 方 で、 次 の よ う な 利 点 があ り ます。• デザ イ ン を 理 解 しやすい• デザイ ンに 構 造 がで き る• デザ イ ン をデバ ッ グ しやすい• デザ イ ンの 異 な る 部 分 に 異 な るデザ イ ン 入 力 方 法 ( 回 路 図 、 HDL、 またはステート エデ ィ タ)を 使 用 でき る• デザ イ ン を 部 分 ご と に 設 計 、 イ ンプ リ メ ン ト 、 検 証 で き る• 最 適 化 の 時 間 が 短 縮 さ れる• デザイ ンを 分 割 し て 複 数 のエンジニアが 同 時 に 設 計 を 進 める モジュ ール デザイ ン が 可 能 になる<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 399<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 13 章 : ISE デザイ ン ツールの 使 用デザイ ン 内 のコ ンポーネン ト およびネ ッ ト に 名 前 を 付 け る こ と をお 勧 めし ます。 これらの 名 前 は、ザイ リンクス ツールで 使 用 さ れます。 バ ッ ク ア ノ テーシ ョ ンで も 使 用 され、デバ ッ グ ツールや 解 析ツールにそれ ら の 名 前 が 表 示 さ れます。 コ ンポーネン ト およびネ ッ ト に 名 前 を 付 けない 場 合 、 ツールによ り 自 動 的 に 名 前 が 付 け られ、 回 路 の 解 析 が 困 難 にな り ます。回 路 図 入 力回 路 図 エディ タ は、 回 路 図 でデザイ ン を 入 力 する ためのグラ フ ィ カル インターフェイスです。 回 路図 エディ タ を 使 用 し て、 デザイ ン 内 のロ ジッ ク コ ン ポーネン ト を 表 すシン ボルを 接 続 し ま す。 個 別のゲート でデザイ ン を 構 築 し たり 、ゲート を 組 み 合 わせてフ ァ ン ク ショ ン ブロ ッ ク を 作 成 でき ま す。プリ ミティブおよびマクロは、デバイス ライブラ リの 基 本 ブロックです。 ザイ リンクス <strong>Spartan</strong>-3ジェネレーショ ンのライブラ リでは、 <strong>Spartan</strong>-3 ジェネレーション アーキテ ク チ ャ 用 に 最 適 化 さ れたプ リ ミ テ ィ ブおよび 高 機 能 のマ ク ロが 提 供 さ れています。 プリ ミティブには、AND や OR ゲート などの 基 本 的 な 回 路 エレ メ ン ト と 、 DCM やブロ ッ ク RAM などの 特 殊 なデバイス リソースがあります。 各 プ リ ミ テ ィ ブには、 固 有 の ラ イ ブ ラ リ 名 、 シンボル、 記 述 があ り ます。マクロは、 複 数 のプリ ミティブやマクロで 構 成 されています。 ソフト マ ク ロ では、 機 能 はあ ら か じめ 定 義 さ れていますが、 マ ッ プおよび 配 置 配 線 は 柔 軟 に 行 われます。 相 対 配 置 マ ク ロ (RPM) では、マ ッ プは 固 定 さ れてお り 、 配 置 は 相 対 的 に 決 定 さ れています。 合 成 ツールには 独 自 のモジ ュールジェネレータが 含 まれており、RPM を 必 要 と し ないので、 マ ク ロは 合 成 では 使 用 さ れません。 このモジュール 生 成 が 行 われないよ う にするには、 ザイ リ ン ク ス CORE Generator で 生 成 したモジュールをインスタンシエー ト します。CORE Generator モジュールは、あらかじめ <strong>Spartan</strong>-3 ジェネレーション アーキテ ク チャ 用 に 最 適 化 さ れています。 ほとんどの 合 成 ツールでは、 推 論 されないモジュール 以 外 は、 モジュールをインスタンシエートする 必 要 はあ り ません。HDL 入 力 および 合 成ハー ド ウ ェ ア 記 述 言 語 (HDL) では、 機 能 の 記 述 にゲー ト およびネ ッ ト リ ス ト を 使 用 する 混 合 レベル 記 述 がサポー ト されています。 こ の 混 合 レベル 記 述 に よ り 、 シ ス テム アーキテ ク チ ャ を 抽 象 度 の高 い 記 述 か ら、 徐 々に 詳 細 なゲー ト レベルのインプ リ メ ンテーシ ョ ンに 移 行 できます。 HDL 記 述には、 次 の よ う な 利 点 があ り ます。• 設 計 プ ロ セ スの 初 期 段 階 でデザ イ ンの 機 能 を 検 証 で き ます。 HDL で 記 述 し たデザイ ンは、すぐにシ ミ ュレーシ ョ ン 可 能 です。 このレベル (インプリ メンテーション 前 のゲート レベル) でシミ ュ レーシ ョ ン を 実 行 する と 、 デザ イ ンのアーキテ ク チ ャ での 決 定 事 項 を 評 価 で き ます。• デザ イ ンの 解 読 および 理 解 が、ネ ッ ト リ ス ト や 回 路 図 記 述 よ り も 容 易 です。 HDL ではテク ノ ロジに 依 存 しない 記 述 が 可 能 なので、 同 じ HDL 記 述 を 使 用 して 異 なるテク ノ ロジ 用 にデザイ ンを 生 成 できます。• 大 型 のデザ イ ンは、 回 路 図 よ り も HDL の 方 がツールでの 処 理 が 容 易 です。HDL デザイ ンを 作 成 し た ら、 合 成 する 必 要 があ り ます。 合 成 では、 HDL ファイルのビヘイビア 情報 が 構 造 ネ ッ ト リ ス ト に 変 換 さ れ、 デザ イ ンが <strong>Spartan</strong>-3 ジェネレーション アーキテクチャ 用 に 最適 化 さ れます。 ISE では、 サードパーテ ィ の HDL 合 成 ツールをサポー ト し ています。 また、ザイ リンクス 独 自 の 合 成 ツールである XST (<strong>Xilinx</strong> Synthesis Technology) も 提 供 されています。論 理 シ ミ ュ レーシ ョ ンでは、 デザ イ ンの ロ ジ ッ ク が 正 し く 機 能 する かど う かを テ ス ト し ます。 設 計の 初 期 段 階 で 論 理 シ ミ ュ レーシ ョ ン を 実 行 する こ と に よ り 、 その 後 の 段 階 でデバ ッ グにかか る 時 間を 節 約 できます。400 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


デザイ ン フローRHDL に よ るデザイ ン 入 力 はテ ク ノ ロ ジに 依 存 し ない と い う 利 点 があ り ますが、 <strong>Spartan</strong>-3 ジェネレーシ ョ ン アーキテ ク チャ で 使 用 可 能 な リ ソース を 理 解 する こ と に よ り 、それら の リ ソ ース を 最 大限 に 活 用 で き ます。 たとえば、 各 I/O およびル ッ ク ア ッ プ テーブルにレジス タが 多 数 あるので、 パイプライン 化 すると 有 効 です。 ほとんどの 合 成 ツールでは、 ザイ リンクス 特 有 のリ ソースが 自 動 的に 推 論 さ れ、アーキテ ク チャ 用 に 最 適 化 さ れます。 イ ンプ リ メ ンテーシ ョ ンの 要 件 を 指 定 する には、<strong>Spartan</strong>-3 ジェネレーションのライブラ リ コンポーネントをインスタンシエートするか、 制 約 を 追加 する のが 簡 単 な 方 法 です。制 約デザ イ ンが 特 定 の タ イ ミ ングを 満 たすよ う に し た り 、 ピ ンの 位 置 など を 指 定 する には、 制 約 を 使 用します。 制 約 を 使 用 する と、 ロ ジ ッ ク のマ ッ プ、 ブロ ッ ク の 配 置 、 タ イ ミ ング を 指 定 でき ます。 制約 は、 パラ メ ータ または 属 性 と し て ラ イ ブ ラ リ コ ンポーネン ト に 設 定 し ます。 制 約 は、 手 動 で 入 力するか、 グラフ ィカル ツールの 1 つを 使 用 し て 制 約 フ ァ イルを 生 成 し、 結 果 を 評 価 し ます。 デザイン 内 の 制 約 は NCF ファイル (ネッ ト リス ト 制 約 ファイル) に 記 述 され、 別 に 作 成 された 制 約 は UCFファイル (ユーザー 制 約 フ ァ イ ル) に 記 述 されます。デザイ ン インプリメンテーションデザイ ン イ ンプ リ メ ンテーシ ョ ンの 段 階 では、 まず 論 理 デザ イ ン ファイルを 変 換 し、 特 定 の<strong>Spartan</strong>-3 ジェネレーション デバ イ スにマ ッ プ し ます。 その 後 、 物 理 デザ イ ン を 配 置 配 線 し、 ビ ットストリームを 生 成 します。 インプリメンテーションの 段 階 でも、デザイン 入 力 段 階 と 同 様 に、 制約 を 設 定 および 変 更 で き ます。図 13-3 に、 <strong>Spartan</strong>-3 ジェネレーショ ン <strong>FPGA</strong> でのデザイン インプリ メンテーション フローを 示します。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 401<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 13 章 : ISE デザイ ン ツールの 使 用UCFNGDBuildConstraints EditorNGDFloorplannerMAP<strong>FPGA</strong> EditorNCD & PCFTRACE &Timing AnalyzerPARNCDBitGenBITiMPACT図 13-3 : デザイ ン インプリメンテーション フローX473_03_082206変 換NGDBuild によ り、 EDIF または NGC フォーマットのネットリスト フ ァ イ ルが 読 み 込 まれ、 論 理デザイ ンを 表 す NGD ファイルが 作 成 されます。 論 理 デザ イ ンは、 AND ゲー ト 、 OR ゲー ト 、 デコーダ、 フリ ップフロップ、 RAM などの 論 理 エレ メ ン ト に 基 づいています。 NGDBuild で 生 成 される NGD ファイルには、 ザイリンクス プリ ミティブで 表 現 されたデザインの 論 理 記 述 と、 入 力ネッ ト リ ス トに 示 されているオリジナルの 階 層 記 述 が 含 まれています。 この NGD ファイルは、<strong>Spartan</strong>-3 ジェネレーショ ン デバイ スの リ ソースにマ ッ プでき ます。NGDBuild は、 次 の 手 順 でネ ッ ト リ ス ト を NGD ファイルに 変 換 します。1. ソース ネッ ト リスト フ ァ イ ルを 読 み 込 みます。 ネッ ト リス ト ラウンチャを 起 動 し、 入 力 ネ ット リ ス ト の タ イ プを 判 断 し て、 適 切 なネ ッ ト リ ス ト リ ーダを 起 動 し ます。 ネッ ト リス ト リーダは、 各 ネ ッ ト リ ス ト に 関 連 付 け ら れてい る NCF ファイルの 情 報 を 適 用 します。 NCF ファイルには、 各 モジ ュールの タ イ ミ ング 制 約 および 配 置 制 約 が 含 まれます。402 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


デザイ ン フローRマップ2. デザイ ン 内 のすべてのコ ンポーネン ト を NGD プリ ミティブに 置 き 換 えます。 ほかのフ ァ イルを 参 照 する コ ンポーネン ト も 結 合 さ れます。 また、 適 切 なシステム ライブラリ コンポーネント、 物 理 マク ロ、 およびビヘイビア モデル も 検 索 さ れます。3. 変 換 さ れたデザ イ ンに 対 し、 論 理 デザ イ ン ルール チェッ ク (DRC) を 実 行 します。 論 理 DRCは、 論 理 デザ イ ンに 対 し て 複 数 のテ ス ト を 実 行 し ます。4. NGD ファイルを 作 成 します。MAP プ ロ グ ラ ムに よ り 、 論 理 デザ イ ンが <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> にマップされます。MAP は、 デザイ ンの 設 計 に 使 用 された 階 層 コ ンポーネン ト およびザイ リ ン ク ス プリ ミティブで 表現 さ れた 論 理 記 述 を 含 む NGD ファイルを 入 力 として 使 用 します。 配 置 配 線 済 みのハー ド マクロファイルが 含 まれる 場 合 もあります。 MAP は、 ロ ジ ッ ク を <strong>Spartan</strong>-3 ジェネレーション アーキテクチャのコンポーネント (ロジック セル、I/O セルなど) にマップし ます。 こ の 結 果 、<strong>Spartan</strong>-3 ジェネレーシ ョ ン アーキテ ク チャ の コ ンポーネン ト にマ ッ プ さ れたデザ イ ンの 物 理 記 述 であ る NCD(Native Circuit Description) ファイルが 出 力 されます。 この NCD フ ァ イ ルは、 こ の 後 配 置 配 線 さ れます。デザ イ ンのマ ッ プ 段 階 では、 MAP に よ り 次 の 処 理 が 実 行 さ れます。1. 使 用 さ れるザ イ リ ン ク ス デバイス、 パッケージ、 スピードを 選 択 します。2. 入 力 デザ イ ン フ ァ イルの 情 報 を 読 み 込 みます。3. 入 力 デザ イ ンに 対 し、 論 理 DRC (デザイ ン ルール チェッ ク) を 実 行 します。 DRC エラーが 検出 される と、 MAP は 停 止 し ます。 DRC 警 告 が 検 出 された 場 合 は、 警 告 が 表 示 さ れ、 MAP の実 行 は 続 行 さ れます。4. 未 使 用 の ロ ジ ッ ク を 削 除 し ます。 未 使 用 の コ ンポーネン ト およびネ ッ ト がすべて 削 除 さ れます。5. パッ ドおよびそのパッ ドに 接 続 されているロジックを IOB にマップし ます。6. ロジックをザイ リンクス コンポーネント (IOB、 CLB など) にマップし ます。 入 力 フ ァ イ ルのデザ イ ン 階 層 にザ イ リ ン ク ス マ ッ プ 制 御 シンボルがあ る 場 合 は、それら の コ ンポーネン ト を 再マ ッ プする のではな く 、 既 存 のマ ッ プを 使 用 し ます。 マップは、 制 約 によって 変 化 します。7. 入 力 NGD ファイルからの 情 報 をアップデートし、NGM ファイルに 記 述 します。 この NGMフ ァ イルには、 デザ イ ンの 論 理 情 報 と、 デザ イ ンのマ ッ プに 関 する 物 理 情 報 が 含 まれます。NGM フ ァ イルは、 バ ッ ク ア ノ テーシ ョ ンでのみ 使 用 さ れます。8. 物 理 制 約 フ ァ イ ル (PCF) を 作 成 します。 このテキス ト ファイルには、デザイン 入 力 で 指 定 された 制 約 が 含 まれます。 デザ イ ン 入 力 で 制 約 が 指 定 さ れていない 場 合 は、 空 のフ ァ イルが 作 成 されます。 テキス ト エデ ィ タ を 使 用 し て、 制 約 を こ のフ ァ イルに 直 接 入 力 で き ます。9. マ ッ プ 済 みのデザ イ ンに 対 し、 物 理 デザ イ ン ルール チェッ ク (DRC) を 実 行 します。 DRC エラーが 検 出 される と、 NCD ファイルは 生 成 されません。10. 物 理 デザ イ ン を 表 す NCD ファイルを 作 成 します。 NCD ファイルは、 ザイリンクス コンポーネン ト (CLB、 IOB など) に 基 づいてデザ イ ン を 記 述 し た も のです。11. MAP レポート ファイル (MRP) を 作 成 し ます。 こ のレ ポー ト には、 エ ラー と 警 告 、 デザ イ ンの 詳 細 なマ ッ プ 状 況 、 コ ンポーネン ト の 使 用 率 などが リ ス ト さ れます。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 403<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 13 章 : ISE デザイ ン ツールの 使 用配 置 配 線マップ 済 みの NCD フ ァ イ ルが 作 成 さ れた ら、 配 置 配 線 ツール PAR を 使 用 し て 配 置 配 線 を 実 行 し ます。 PAR は NCD フ ァ イ ルを 入 力 と し て 読 み 込 み、 デザ イ ン を 配 置 配 線 し て、 ビ ッ ト ス ト リ ーム 生成 ツール BitGen に 入 力 する NCD ファイルを 生 成 します。 出 力 NCD ファイルは、デザインに 少 しの 変 更 を 加 えた 後 PAR を 実 行 する 際 に、 ガ イ ド フ ァ イル と し て も 使 用 で き ます。PAR は、 次 を 基 準 と し てデザ イ ン を 配 置 配 線 し ます。• コスト 基 準 : 制 約 、 接 続 の 長 さ 、 使 用 可 能 な 配 線 リ ソ ース などの 要 素 に 異 な る 重 みを 付 けた さまざまなコス ト テーブルを 使 用 し て、 配 置 配 線 を 実 行 し ます。• タイミング ドリブン : ザイ リ ンクス タイミング 解 析 ソフトウェアを 使 用 し、タイミング 制 約 に基 づいてデザ イ ン を 配 置 配 線 し ます。配 置PAR の 配 置 ツールでは、 複 数 の 配 置 フ ェーズが 実 行 されます。 すべてのフ ェーズが 完 了 する と、NCD ファイルが 記 述 されます。 配 置 では、 PCF フ ァ イルの 制 約 、 接 続 の 長 さ、 使 用 可 能 な 配 線 リソ ース などの 要 素 に 基 づいて、 コ ンポーネン ト が 配 置 さ れます。 物 理 制 約 フ ァ イル (PCF) にタイ ミング 制 約 があ る 場 合 、 自 動 的 に タ イ ミ ング ドリブン 配 置 が 実 行 されます。配 線配 置 が 完 了 する と 、 配 線 が 実 行 さ れます。 デザイ ンが 完 全 に 配 線 される と、 NCD ファイルが 作 成 されます。 こ の 時 点 で、 デザ イ ンはタ イ ミ ン グ 解 析 で き る よ う にな り ます。 配 線 が 改 善 される たびに、新 しい NCD ファイルが 書 き 出 されます。 配 線 では、 デザ イ ン を 完 全 に 配 線 し、 タ イ ミ ン グ 制 約 を満 たすこ と を 目 的 と し て 処 理 が 実 行 さ れます。 物 理 制 約 フ ァ イ ル (PCF) にタイ ミ ング 制 約 がある 場合 、 自 動 的 に タ イ ミ ング ド リ ブン 配 線 が 実 行 さ れます。フロアプランフ ロ アプ ラ ンは、 ユーザー 配 置 制 約 を 指 定 する プ ロ セス です。 PACE (Pinout and Area ConstraintEditor) と Floorplanner は 配 置 を、 <strong>FPGA</strong> Editor は 配 置 配 線 の 両 方 を グ ラ フ ィ カルに 表 示 する ツールです。 これらのツールを PAR の 前 後 に 使 用 し て、 デザ イ ン を 解 析 し た り 、 制 約 を 設 定 で き ます。ビ ッ ト ス ト リ ームの 生 成デザイ ンが 完 全 に 配 線 された ら、 デバイ ス を コ ンフ ィ ギ ュ レーシ ョ ンする 必 要 があ り ます。 コンフィギュレーションには、ザイリンクスのビットスト リーム 生 成 ツール BitGen で 生 成 されたフ ァイルを 使 用 します。 BitGen は 完 全 に 配 線 された NCD フ ァ イルを 入 力 と し て 読 み 込 み、 コ ン フ ィギュレーション ビッ トスト リーム (バイナリ BIT ファイル) を 生 成 します。BIT ファイルには、<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> の 内 部 ロジッ ク と 接 続 を 定 義 した NCD ファイ ルか ら の コ ン フ ィ ギ ュ レーシ ョ ン 情 報 と 、 ターゲ ッ ト デバイ スに 関 連 し たその 他 のフ ァ イルからのデバイ ス 特 定 の 情 報 が 含 まれます。 BIT ファイルのバイナリ データは、<strong>FPGA</strong> のメモリ セルにダウンロードするか、 PROM フ ァ イ ルを 生 成 する ために 使 用 さ れます。デザイ ン 検 証デザイ ン 検 証 は、 デザイ ンの 機 能 と パフ ォーマン ス をテス ト する プロ セスです。 デザイ ンを 検 証 する には、 次 の 方 法 があ り ます。• シミュレーション ( 論 理 シ ミ ュ レーシ ョ ンおよびバ ッ ク ア ノ テーシ ョ ン を 使 用 し た タ イ ミ ングシミュレーション)404 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


デザイ ン フローR• スタティック タイミング 解 析• インサーキッ ト 検 証デザイ ン 検 証 は、 図 13-4 に 示 すよ う に、 デザイ ン プ ロ セ スの さ ま ざ ま な 段 階 で 実 行 し ます。NGDNCDBitGenNGABITiMPACT <strong>FPGA</strong>x473_04_062103図 13-4 : デザイ ン 検 証 フ ローシミュレーションシミュレーションでは、 ソフトウェア モデルを 使 用 し てデザ イ ン を テ ス ト し ます。 デザイ ンの 機 能とパフォーマンスを、 ワース ト ケースの 状 況 でテ ス ト する のが 最 も 効 果 的 です。 内 部 ノ ー ド をプローブし て 回 路 の 動 作 を 確 認 し、その 結 果 を 基 にデザイ ンに 変 更 を 加 えます。 シミュレーションは、ザイ リンクス、またはザイ リンクス 開 発 システムにリンクしたサード パーテ ィ ツールを 使 用 し て 実行 します。 シミュレーション ツール 用 に 提 供 されている ソフ ト ウェア モデルは、デザ イ ンの 特 性 を詳 細 に 検 証 で き る よ う 設 計 さ れています。 論 理 シ ミ ュ レーシ ョ ン ま たはタ イ ミ ン グ シミュレーション を 実 行 で き ます。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 405<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 13 章 : ISE デザイ ン ツールの 使 用論 理 シ ミ ュ レーシ ョ ン論 理 シミュレーションでは、デザインをデバイスにインプリメントする 前 に、デザインのロジックが 正 しいかど う かを 検 証 し ます。 このシミ ュレーションは、 デザイン フ ローの 初 期 段 階 で 実 行 し ます。 デザ イ ンの タ イ ミ ング 情 報 は 得 ら れないため、 ロ ジ ッ ク はユニ ッ ト 遅 延 を 使 用 し てテ ス ト さ れます。タイミング シミュレーションタイミング シ ミ ュ レーシ ョ ンでは、 デザ イ ンが 要 求 さ れた ス ピー ド で 動 作 する かを ワース ト ケースの 状 況 で 検 証 し ます。 こ のシ ミ ュ レーシ ョ ンは、 デザ イ ンがマ ッ プ、 配 置 配 線 さ れた 後 に 実 行 します。 こ の 段 階 では、 デザ イ ンのすべての 遅 延 が 既 知 になっています。 タイミング シミュレーションでは、 ワース ト ケースでのデザイ ンのタ イ ミ ング 関 係 を 検 証 し、 ク リ テ ィ カル パスを 判 断 できる ので、 非 常 に 有 益 です。 ま た、 セ ッ ト ア ッ プま たはホール ド 違 反 があ る かど う か も 確 認 で き ます。デザ イ ン を シ ミ ュ レーシ ョ ンする 前 に、 次 に 説 明 するバ ッ ク ア ノ テーシ ョ ン を 実 行 する 必 要 があ ります。 こ のプ ロ セスで、 さ ま ざ ま なシ ミ ュ レータ に 適 し たフ ォーマ ッ ト が 作 成 さ れます。デザ イ ン 入 力 の 段 階 でネ ッ ト に 名 前 を 付 け る こ と が、 論 理 シ ミ ュ レーシ ョ ンおよびタ イ ミ ング シミ ュ レーシ ョ ンで 重 要 にな り ます。 名 前 を 付 けない と 、 ソ フ ト ウ ェ アで 自 動 的 に 名 前 が 割 り 当 て られ、 シ ミ ュ レーシ ョ ンでネ ッ ト を 検 索 する のが 困 難 にな り ます。バックアノテーショ ンタイミング シ ミ ュ レーシ ョ ン を 実 行 する 前 に、 物 理 デザ イ ン 情 報 を 変 換 し、 論 理 デザ イ ンに 組 み 込む 必 要 があ り ます。 このプロセスはバックアノテーションと 呼 ばれ、NetGen というプログラムで 実行 されます。 このプログラムによ りバックアノテート された 情 報 が、 タイ ミング シミュレーションに 使 用 する ネ ッ ト リ ス ト フォーマッ トに 変 換 されます。NetGen は、 NCD フ ァ イ ルの 遅 延 、 セ ッ ト ア ッ プおよびホール ド タイム、clock-to-out、 パルス 幅などの 情 報 を、 論 理 NGD ファイルにアノテートし、シミュレーション、 等 価 チェック、スタティック タ イ ミ ング 解 析 に 使 用 する ネ ッ ト リ ス ト を 生 成 し ます。 マップのみが 完 了 したデザイン、 一 部 または 完 全 に 配 置 配 線 が 終 了 し たデザ イ ンの NCD ファイルを 入 力 として 使 用 できます。 MAP で 作成 された NGM ファイルをオプションで 入 力 すると、 NGM ファイルからのマップ 情 報 が NCDフ ァ イ ルの 配 置 配 線 およびタ イ ミ ング 情 報 に 組 み 込 まれます。 NGDAnno は、NGA (Native GenericAnnotated) ファイルを 出 力 します。NGA ファイルは、NGD ファイルをバックアノテートしたファイルです。 この NGA ファイルを 適 切 なネッ ト リスト ラ イ タ に 入 力 する と 、 バイ ナ リ のザ イ リ ン クス データベース フォーマッ トが ASCII フォーマットのネットリストに 変 換 されます。ネッ ト リスト ライタ (NGD2EDIF、 NGD2VER、 または NGD2VHDL) は、 NGDAnno の 出 力 フ ァイルから、 指 定 されたフォーマッ トのシミ ュレーショ ン ネッ ト リ ストを 作 成 します。 ネッ ト リストライタには、NGD ファイルまたは NGA ファイルを 入 力 します。 NGD ファイルはプリ ミティブ コンポーネン ト を 含 む 論 理 的 なデザ イ ン ファイルで、 NGA ファイルはバックアノテートされた 論 理的 なデザイ ン ファイルです。スタティ ック タイミング 解 析スタティック タ イ ミ ング 解 析 は、 配 置 配 線 後 にデザ イ ンの タ イ ミ ングを 簡 単 にチェ ッ ク し たい 場 合に 適 し ています。 こ の 解 析 で、 デザ イ ンのパス 遅 延 も 確 認 で き ます。 スタティック タイミング 解 析は、 主 に 次 の 2 つを 目 的 と し ています。• デザ イ ンが タ イ ミ ング 制 約 を 満 た し てい る かど う かを 検 証 する。• 満 たされていない 制 約 を リ ス ト したレポー ト フ ァ イルを 作 成 する。 配 置 配 線 が 一 部 または 完 全に 完 了 し たデザ イ ン を 解 析 で き ます。 タ イ ミ ング 情 報 は、 入 力 デザイ ンの 配 置 配 線 に よ って 異なります。406 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


ISE 開 発 環 境Rスタティック タイミング 解 析 は、TRACE (Timing Reporter And Circuit Evaluator) というプログラ ムで 実 行 さ れます。 こ のプ ロ グ ラ ムは、 Timing Analyzer GUI か ら 制 御 で き ます。 TRACE または Timing Analyzer を 使 用 して、タ イ ミ ング 制 約 がどれだけ 満 たされているかを 確 認 して ください。インサーキッ ト 検 証最 終 的 なテ ス ト と し て、デザ イ ンが ターゲ ッ ト アプ リ ケーシ ョ ンでどの よ う に 動 作 する かを 検 証 できます。 イ ンサーキ ッ ト 検 証 では、 典 型 的 な 動 作 環 境 で 回 路 をテ ス ト し ます。 ザイ リ ンクス デバイスは 繰 り 返 しプログラムできるので、 異 なるデザイン 結 果 をデバイスにダウンロードし、 インサーキットでテストできます。 デザ イ ン を イ ンサーキ ッ ト で 検 証 する には、iMPACT プログラム ソフトウェアとパラレル ケーブル IV またはプラッ ト フォーム ケーブル USB を 使 用 して、 デバイスにビットスト リームをダウンロードします。ISE 開 発 環 境ISE についてザイ リ ンク ス 開 発 シス テムは、ISE (Integrated Software Environment) シリ ーズによ り 提 供 さ れています。 ザイ リ ンク ス ISE 開 発 シス テム では、 ProActive Timing Closure、 統 合 ロ ジッ ク 解 析 など の 高度 な 機 能 がサポート さ れており 、 業 界 最 速 のラ ンタ イ ムで 配 置 配 線 を 実 行 でき る ので、 <strong>Spartan</strong>-3ジェネレーショ ン デザイ ンを 簡 単 に 作 成 でき ます。 ISE の ソ リ ューシ ョ ン を 使 用 する こ と で、 必 要なパフ ォーマン ス を 短 期 間 で 容 易 に 達 成 で き ます。メモ : ISE ツールを 使 用 して <strong>Spartan</strong>-3 ジェネレーション デザ イ ン を 設 計 する 場 合 の 詳 細 については、 次 のサ イ ト を 参 照 し て く だ さ い。http://japan.xilinx.com/ise/ise_promo/ise_spartan3.htmデザ イ ン 入 力 、 シ ミ ュ レーシ ョ ン、 合 成 、 イ ンプ リ メ ンテーシ ョ ン、およびデバイ スの コ ン フ ィ ギ ュレーシ ョ ンを 含 むデザイン プロセス 全 体 を 管 理 するには、 Project Navigator というユーザー インターフェイスを 使 用 します。ISE の 機 能 は 次 の とお り です。デザイ ン 入 力• ISE Text Editor• StateCAD ステート マシン エデ ィ タ• Schematic and Symbol Editors• CORE Generator合 成• XST (<strong>Xilinx</strong> Synthesis Technology)• Mentor Graphics 社 の Precision 合 成 ツール と の 統 合• Synplicity 社 の Synplify/Synplify Pro および Amplify との 統 合シミュレーション• ISE Simulator• HDL Bencher テス トベンチ ジェネレータ• Model Technology 社 の ModelSim シミュレータとの 統 合<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 407<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 13 章 : ISE デザイ ン ツールの 使 用インプリメンテーション• 変 換• マップ• 配 置 配 線 (PAR)• Floorplanner• <strong>FPGA</strong> Editor• Timing Analyzer• XPower 消 費 電 力 解 析 ツールデバイスのダウンロー ド• BitGen ビ ッ ト ス ト リ ーム 生 成 ツール• iMPACT コンフィギュレーション ツール• ChipScope Pro ロ ジ ッ ク 解 析 ツールISE のコンフ ィギュレーシ ョ ンProject NavigatorISE 開 発 シ ス テムは、 次 の コ ン フ ィ ギ ュ レーシ ョ ンで 提 供 さ れています。• ISE WebPACKISE WebPACK は 最 も 簡 易 の 開 発 システムで、 無 償 でザ イ リ ン ク ス Web サイ ト(http://japan.xilinx.com/webpack) からダウンロードできます。ISE WebPACK は HDL 入 力 、 合 成 、 検 証 機 能 をサポー ト し てお り 、 ザ イ リ ン ク ス CPLD すべて と 低 集 積 度 の <strong>FPGA</strong> 用 のデザイ ンを 開 発 でき、 すべての <strong>Spartan</strong>-3 ジェネレーション<strong>FPGA</strong> がサポー ト されています。 <strong>Spartan</strong>-3 <strong>FPGA</strong> は XC3S1500 の 集 積 度 まで、 <strong>Spartan</strong>-3E および <strong>Spartan</strong>-3A/3AN <strong>FPGA</strong> ではすべての 集 積 度 がサポー ト さ れています。• ISE FoundationISE Foundation は、 回 路 図 、 合 成 、 検 証 などの 機 能 を 統 合 し た 高 機 能 のデザ イ ン 環 境 です。 すべてのデバイ スがサポー ト さ れてお り 、 すべてのツールが 含 まれています。詳 細 は、 http://japan.xilinx.com/ise/logic_design_prod/foundation.htm を 参 照 して く ださい。上 記 コ ン フ ィ ギ ュ レーシ ョ ン を 比 較 し た 表 が、 http://japan.xilinx.com/ise/devsys_feature_guide.pdfに 掲 載 されています。ISE 開 発 シ ス テムは、 定 期 的 にア ッ プデー ト さ れます。 アップデートはサービス パックの 形 で 提 供されており、 ザイ リ ンクスの Web サイ ト (http://japan.xilinx.com/support/download/index.htm) からダウンロードできます。 最 適 な 結 果 を 得 る ため、 ISE の 最 新 版 を 使 用 する こ と をお 勧 め し ます。Project Navigator は、 ザ イ リ ン ク ス ISE のメイン ユーザー インターフェイスです。 ProjectNavigator から ISE のツールにアクセスし、<strong>Spartan</strong>-3 ジェネレーション デザ イ ン を 作 成 、 定 義 、 コンパイルできます。 デザ イ ン 入 力 か らデバイ スへのダ ウ ン ロー ド までの 各 段 階 は、Project Navigatorでプ ロ ジ ェ ク ト と し て 管 理 さ れます。 Project Navigator で 管 理 する 設 計 段 階 は、 次 の と お り です。• デザイ ン 入 力• 制 約 の 入 力408 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


ISE 開 発 環 境R• 合 成• シミュレーション• インプリ メンテーション• デバイ スのプロ グ ラ ムProject Navigator のメイン ウィンドウProject Navigator のワークスペースは、 タイ トル バー、 ス テータ ス バー、 メ ニ ュー バー、 ツールバー、 およびウ ィ ン ド ウか ら 構 成 さ れています。プロジェク トISE では、 デザイ ンをプロジェ ク ト と して 管 理 し ます。 プ ロ ジ ェ ク ト と は、 デザ イ ンの 作 成 か ら デバ イ スへのダ ウ ン ロー ド までに 必 要 なすべてのフ ァ イ ルを ま と めた も のです。 各 プロジェ ク ト に 対し て、 次 の 事 項 を 指 定 する 必 要 があ り ます。• 固 有 のプ ロ ジ ェ ク ト 名• ターゲッ ト デバイ ス ファ ミ リ (アーキテクチャ )• ターゲッ ト デバイ ス• デザイ ン フロー図 13-5 : Project Navigator のメイン ウィンドウX473_05_082206<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 409<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 13 章 : ISE デザイ ン ツールの 使 用ソース各 プロジェ ク ト には、 デ ィ レ ク ト リ 、 デバイ ス ファミ リ、デバイス、およびデザイン フローがプロジェク ト プ ロパテ ィ と し て 関 連 付 け ら れます。 プロジェク ト プ ロパテ ィ を 設 定 する こ と で、 指 定のデバイ スおよびデザイ ン フローに 必 要 なプロセスのみが Project Navigator に 表 示 さ れ、 実 行 されます。ソ ース と は、デザ イ ンの 情 報 を 含 むフ ァ イ ルです。 Project Navigator で、プロ ジェ ク ト に 対 し て ソース を 作 成 および 追 加 で き ます。 各 プロ ジェ ク ト には、 デザイ ンの 異 なる 部 分 を 表 す 複 数 の ソース を含 むこ と がで き ます。 回 路 記 述 ( 回 路 図 、HDL ファイル)、ステート ダイアグラム、シミ ュレーション モデル、 テス ト フ ァ イ ル、 デザイ ンに 関 する 文 書 など を ソ ース と し て 使 用 で き ます。ソースの 階 層プロジェク トのソース ファイルの 1 つが、デザイ ンの 最 上 位 ソ ース と な り ます。 最 上 位 ソースでは、デバ イ スにマ ッ プする 入 力 と 出 力 、 下 位 ソ ース に 含 まれる ロ ジ ッ ク 記 述 への 参 照 を 定 義 し ます。 プロジェク トには、 最 低 でも 1 つのフ ァ イルを 最 上 位 ソース と し て 含 める 必 要 があ り ます。 すべてのソース フ ァ イルは、 ソースの タ イ プを 示 すア イ コ ン と 共 に [Sources] タブのプロジェク ト ファイルの 下 に 表 示 されます。ある ソ ース で 別 のソ ース を 参 照 する こ と を 、 イ ン ス タ ン シエーショ ン と 言 いま す。 下 位 ソ ース にも ソ ース を イ ン ス タ ンシエート し 、 デザイ ン の 記 述 に 必 要 なだけロ ジッ ク の 階 層 レ ベルを 作 成 できます。次 の タ イ プの ソ ース を 最 上 位 ソ ース と し て 使 用 で き ます。• 回 路 図• HDL ファイル (VHDL または Verilog)• EDIFProject Navigator の 詳 細 は、 http://japan.xilinx.com/products/design_tools/logic_design/design_entry/projnav.htm を 参 照 して く ださい。ISE ツールISE には 多 数 のツールが 含 まれてお り 、 ス タ ン ド ア ロ ンで ま たは Project Navigator 内 から 起 動 できます。Schematic Editor/Symbol EditorSchematic Editor および Symbol Editor は、 回 路 図 およびシンボルを 作 成 、 表 示 、 編 集 する ためのツールです。 こ れら のツールを 使 用 し て 最 上 位 の 回 路 図 ソ ース を 作 成 し、 下 位 ソース と し て 回 路 図 、CORE Generator コア、 HDL フ ァ イルを 追 加 で き ます。 これら のツールで 作 成 し た 回 路 図 は、 シミ ュ レーシ ョ ンおよび 合 成 用 に 構 造 HDL に 変 換 する か、 ま たは 回 路 図 のま ま 資 料 と し て 使 用 で きます。ISE Text EditorISE Text Editor は、 HDL ソース フ ァ イルを 編 集 する ためのテキ ス ト エデ ィ タです。 通 常 のテキ スト 編 集 機 能 に 加 え、 構 文 が 色 別 に 表 示 さ れます。 こ の 色 表 示 機 能 は、VHDL および Verilog でサポートされています。 ISE Text Editor は、 普 通 のテ キ ス ト エデ ィ タ と して も 使 用 でき ます。 ISE TextEditor には、 最 適 化 さ れた 言 語 テンプレー ト が 用 意 さ れてお り 、 HDL ソース ファイルに 挿 入 して使 用 で き ます。410 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


ISE 開 発 環 境RStateCAD ステート マシン エディ タStateCAD は、 有 限 ス テー ト マシン (FSM) を 作 成 するためのツールです。 手 順 は 自 動 化 さ れており 、 低 コ ス ト で 効 率 的 な 設 計 が 可 能 です。 StateCAD を 使 用 する と 、 FSM の 作 成 、 エ ラーの 検 出 と修 正 、 動 作 の 検 証 、 HDL の 生 成 を 短 時 間 で 行 う こ と がで き ます。 StateCAD は、 ステー ト か ら 抜 けられない 状 態 や、 ス テー ト 割 り 当 ての 競 合 、 未 定 義 の 状 態 などの 問 題 があ る かど う かを 自 動 的 に 解析 します。 こ の 自 動 エ ラ ー 解 析 に よ り 、 デザ イ ンが 論 理 的 に 正 し い こ と が 保 証 さ れる ため、 シ ミ ュレーシ ョ ンでの 負 担 が 軽 減 さ れ、 デザ イ ンの 信 頼 性 が 向 上 し ます。XST (<strong>Xilinx</strong> Synthesis Technology)XST は、 ザ イ リ ン ク スが 提 供 する 高 度 な 合 成 ツールです。 XST では、 Verilog と VHDL がサポートされています。 XST での 合 成 結 果 は、 RTL Viewer で 回 路 図 と し て 表 示 で き ます。XST の 詳 細 は、http://japan.xilinx.com/products/design_tools/logic_design/synthesis/xst.htm を 参 照してください。HDL AdvisorHDL Advisor は、 問 題 解 決 のための 推 奨 事 項 など を メ ッ セージ と し て XST 合 成 レポー ト ファイルに 記 述 し ます。 デザインのサイズを 縮 小 し、 タ イ ミ ング 要 件 を 満 たすために 推 奨 される コード 変 更などが 示 されます。 こ れ ら の メ ッ セージを 利 用 する こ と に よ り 、 初 期 段 階 で コー ド を 向 上 さ せる こと がで き る ので、 設 計 時 間 が 短 縮 さ れ、 <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> の リ ソ ース 使 用 率 も 向上 します。パー ト ナー ツールISE には、 Mentor Graphics 社 の Precision、 Synplicity 社 の Synplify/Synplify Pro および Amplifyなどのサードパーティ ツールを 統 合 し て 使 用 で き ます。 これらのツールは、 それぞれのベンダーから 個 別 に 購 入 する 必 要 があ り ます。Mentor Graphics 社 の ModelSim は、 ISE でのシ ミ ュ レーシ ョ ンに 使 用 し ます。 ザイ リ ンクスでは、ModelSim <strong>Xilinx</strong> Edition III (MXE-III) を 提 供 しています。 MXE-III は、 PC での HDL シミュレーシ ョ ン 環 境 を 提 供 し てお り 、 HDL ソース コード、 デザインのファンクシ ョ ン モデルおよびタ イ ミング モデルを 検 証 で き ます。IP (Intellectual Property)低 コ ス ト で 短 期 間 にデザ イ ン を 開 発 する ため、 あ ら か じ め 検 証 および 最 適 化 さ れた IP (IntellectualProperty) コア、 リファレンス デザイ ン、 デザイ ン サービ ス を 使 用 でき ます。 ザイ リ ンクスでは、PCI バス インターフェイスや MicroBlaze ソフト プロセッサ コ アなど、 高 機 能 の LogiCOREIP コアを 提 供 しており、 業 界 内 で も 高 い 評 価 を 受 けています。 また、 AllianceCORE プログラムによ り 、 業 界 最 先 端 の さ ま ざ ま なサー ド パーテ ィ コアも 提 供 しています。 AllianceCORE プログラムは、 ザ イ リ ン ク ス と サー ド パーテ ィ コア ベンダーが 協 力 して、 ザイ リ ンクスのプログラマブル ロジ ッ ク 用 の 業 界 標 準 ソ リ ューシ ョ ン を 開 発 する ためのプ ロ グ ラ ムです。 ザイ リ ンクスでは、 デザイン 開 発 の 開 始 点 と し て 利 用 でき る リ フ ァ レ ン ス デザ イ ンやデザ イ ン 例 も 多 数 用 意 し ています。CORE Generatorザイ リンクス CORE Generator は、 加 算 器 、 アキ ュ ム レータ、 乗 算 器 などの 単 純 な 演 算 回 路 か ら、フィルタ、 トランスフォーマ、 メモリ リソースなどの 複 雑 なシステム レベルのブロ ッ ク まで、 すぐ に 使 用 可 能 なフ ァ ン ク シ ョ ン を 提 供 し ます。 コアは、 ファンクションのタイプ 別 にフォルダに 分類 されています。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 411<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 13 章 : ISE デザイ ン ツールの 使 用CORE Generator では、EDIF ネ ッ ト リ ス ト 、 回 路 図 シンボル、Verilog テンプレート と Verilog ラッパ ファイル、 VHDL テンプレート と VHDL ラッパ ファイルが 生 成 されます。 EDIF ネッ ト リスト(EDN) ファイルには、 モジュールをインプリ メントするための 情 報 が 含 まれています。 テンプレート ファイルには、CORE Generator コアを Verilog または VHDL デザイ ンにイ ン ス タ ンシエー トする ためのモデル と な る コー ド が 含 まれてお り 、 こ れを 利 用 し て コ アをデザ イ ンに 組 み 込 むこ と ができます。CORE Generator の 詳 細 は、 http://japan.xilinx.com/products/design_tools/logic_design/design_entry/coregenerator.htm を 参 照 して く ださい。System GeneratorSystem Generator は、 <strong>FPGA</strong> ベースの DSP シ ス テムを 設 計 、 シ ミ ュ レーシ ョ ン、 イ ンプ リ メ ン ト 、デバ ッ グする ためのツールです。 このツールは、MathWorks 社 の Simulink を 拡 張 したもので、ビ ット 精 度 およびサ イ ク ル 精 度 のシ ス テム レベル シミュレーション、ザイリンクス <strong>FPGA</strong> 用 のコードの 自 動 生 成 をサポー ト し ています。 System Generator の 協 調 シ ミ ュ レーシ ョ ン インターフェイスには、 <strong>FPGA</strong> ハー ド ウ ェ ア と HDL シ ミ ュ レーシ ョ ンが、 ほかのラ イブラ リ ブロック と 同 様 にステム レベルの 環 境 に 組 み 込 まれています。 System Generator では、デザ イ ンが 高 レベルの 抽 象 表 示 で示 されますが、シリ コンの 主 要 な 機 能 も 示 されるので、パフォーマンスの 高 い <strong>FPGA</strong> インプリ メンテーシ ョ ン を 達 成 する こ と が 可 能 です。System Generator の 詳 細 は、http://japan.xilinx.com/ise/optional_prod/system_generator.htm を 参 照してください。EDK (エンベデッ ド 開 発 キッ ト) と Platform Studioエンべデ ッ ド 開 発 キ ッ ト (EDK) は、 エンべデッ ド プロセッサ シ ス テム を 設 計 する ための 統 合 ソ フトウェアです。 このキッ トには、 Platform Studio のほか、 マニュアル、 エンベデッ ド MicroBlazeソフト プロセッサ コアを 使 用 してザイ リンクス <strong>FPGA</strong> をデザインするのに 必 要 な IP が 含 まれます。 また、 柔 軟 な MicroBlaze 32 ビッ ト ソフト プロセッサだけでなく、 フッ トプリン トの 小 さいPicoBlaze 8 ビッ ト ソフト プロセッサ、さまざまな IP、サードパーティのサポート も 含 めたプロセッサ ペリフェラルなども 提 供 されています。EDK と Platform Studio の 詳 細 は、 http://japan.xilinx.com/edk を 参 照 して く ださい。Clocking Wizardデジタル クロック マネージャ (DCM) などの 機 能 を イ ンプ リ メ ン ト する ためのプ ロ セス を 簡 略 化するため、ISE には Architecture Wizard というウィザードが 含 まれています。 Architecture Wizardを 使 用 する と 、 ダ イ ア ロ グ ボ ッ ク スの 指 示 に 従 ってオプシ ョ ン を 設 定 する だけで、 DCM などの 機能 を 簡 単 にインプ リ メ ン ト でき るので、HDL の 属 性 をすべて 学 ぶ 必 要 はあ り ません。 ウ ィザードを終 了 する と イ ン ス タ ンシエーシ ョ ン テンプレートが 作 成 され、これをデザインにコピーするだけで簡 単 に イ ン ス タ ンシエー ト で き ます。 Clocking Wizard では、 <strong>Spartan</strong>-3 ジェネレーションの DCMの 機 能 がすべてサポー ト さ れています。Data2MEMData2MEM は、 基 本 的 にデータ 変 換 ツールです。 データの 連 続 片 をブロ ッ ク RAM を 初 期 化 するデータ に 変 換 し ます。 データは、 連 続 し た 論 理 データ 空 間 を 構 成 する 複 数 の 物 理 ブ ロ ッ ク RAM に自 動 的 に 分 配 さ れます。 Data2MEM を 使 用 する と 、 ブ ロ ッ ク RAM を 簡 単 に 初 期 化 で き ます。412 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


ISE 開 発 環 境Rイ ンプ リ メ ン テーシ ョ ンの 機 能ISE には ProActive Timing Closure というテクノロジが 含 まれており、 最 高 のパフォーマンスを 短期 間 で 効 率 的 に 達 成 で き る よ う 、 合 成 、 変 換 、 マ ッ プ、 配 置 配 線 において さ ま ざ ま な 機 能 が 使 用 されます。 こ れら の 機 能 は、 次 の と お り です。• 物 理 合 成♦♦♦♦配 置 配 線 情 報 を 使 用 し て ク リ テ ィ カル パスを 最 初 に 処 理結 果 が 5 ~ 20% 向 上Synplicity 社 の Amplify、 Mentor Graphic 社 の Time Closer、 およびザイリンクスの XSTでサポー ト物 理 的 な 配 置 配 線 の 前 に タ イ ミ ングを 最 適 化• Macro Builder♦♦♦デザ イ ンの 配 置 情 報 を 固 定 可 能今 後 のデザ イ ン 設 計 で、 相 対 配 置 を 使 用 し たマ ク ロ の 再 利 用 が 可 能パフォーマンスを 維 持• 高 度 な 配 置 配 線 アルゴ リ ズム♦♦♦クリティカル パスを 最 初 に 配 置Xplorer ス ク リ プ ト で イ ンプ リ メ ンテーシ ョ ン を 複 数 回 自 動 的 に 実 行IP の 配 線 を 指 定 する 指 定 配 線 機 能• タイミング 向 上 ウィザード♦♦対 話 形 式 でデザ イ ン を 向 上タ イ ミ ングの 問 題 を ク リ ッ ク する こ と に よ り 、 タ イ ミ ン グ を 向 上 する ための 解 決 策 を 表 示• タイミング クロスプローブ♦タイミング レポートから Floorplanner にクロスプローブ♦ タイミ ング レ ポート のエラ ー、パス 、ま たはネッ ト を ク リ ッ ク する こ と によ り 、Floorplannerま たは 合 成 ツ ールで 表 示• HDL Advisor♦XST 合 成 レ ポー ト でエ ラーま たは 警 告 を ク リ ッ クする こ と に よ り 、イ ンプ リ メ ンテーシ ョン を 向 上 する ために 推 奨 さ れる HDL への 変 更 を 表 示インクリメンタル デザイ ンインク リ メンタル デザ イ ンは、 設 計 フ ローの 後 の 段 階 で 発 生 するデザ イ ン 変 更 の 影 響 を 最 小 限 に 抑え、 デザ イ ンの 開 発 期 間 を 短 縮 し ます。 インク リ メンタル デザ イ ン を 使 用 する と 、 デザ イ ンに 少 しの 変 更 を 加 えた 場 合 に、 同 じ 時 間 でよ り 多 く のデバッ グ サ イ ク ルを 実 行 する こ と が 可 能 です。 インクリメンタル デザ イ ン を 使 用 する には、 まずデザ イ ン を 階 層 領 域 に 分 けてフ ロ アプ ラ ン し、 通 常 どおりデザインを 完 了 させます。 こ の よ う にする と 、 後 でデザ イ ン を 変 更 する 必 要 が 生 じ た 場 合 に、デザイ ンの 変 更 のない 部 分 はそのま ま 保 持 し、 変 更 があった 領 域 のみを 再 イ ンプ リ メ ン ト するだけで 済 みます。インク リ メンタル デザイ ンの 詳 細 は、 http://japan.xilinx.com/products/design_tools/logic_design/advanced/incrementaldesign.htm を 参 照 して く ださい。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 413<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 13 章 : ISE デザイ ン ツールの 使 用モジュール デザイ ンモジュール デザイ ンでは、 100 万 単 位 のゲー ト を 持 つ 大 型 の <strong>FPGA</strong> デザイ ンをモジ ュールに 分 割し て 設 計 し ます。 デザイ ンを 小 型 のフ ァ ン ク シ ョ ン モジ ュールに 分 割 する こ と に よ り 、 設 計 、 イ ンプ リ メ ンテーシ ョ ン、 検 証 が 実 行 しやす く な り ます。 分 割 し たモジ ュールは、 ISE ツールを 使 用 して 個 別 に 設 計 フ ローを 完 了 させ、 各 モジュールのインプリ メンテーシ ョ ンを 維 持 しながら 統 合 して最 終 的 なデザ イ ン を 得 ます。 この 手 法 は、 チームで 1 つのデザイ ンを 設 計 する 場 合 に 有 効 です。Constraints EditorPACE制 約 と は、 回 路 図 ま たは HDL デザイ ンに 直 接 または 別 フ ァ イルで 設 定 するデザイ ンに 関 する 指 示です。 配 置 、 イ ンプ リ メ ンテーシ ョ ン、 名 前 、 信 号 の 方 向 、 タ イ ミ ングな ど を 指 定 で き ます。 ザイリ ン ク ス 開 発 シ ス テムでは、 論 理 制 約 は UCF (ユーザー 制 約 フ ァ イル) に 記 述 し ます。 ConstraintsEditor は、 こ れら の 制 約 を 作 成 および 変 更 する ためのグ ラ フ ィ カル ツールです。PACE (Pinout and Area Constraints Editor) は、 次 のよ う な 機 能 を 持 つグ ラ フ ィ カル ツールです。• I/O およびグローバル ロ ジ ッ ク の ロ ケーシ ョ ン 制 約 を 表 示 および 編 集• デザ イ ンの 階 層 シンボルのエ リ ア 制 約 を 表 示 および 編 集• デザ イ ンの 接 続 および リ ソ ース 要 件 を 指 定• ターゲッ ト <strong>FPGA</strong> のリソース レイアウトを 指 定• ロ ケーシ ョ ン 制 約 およびエ リ ア 制 約 でデザ イ ン を どの よ う にマ ッ プする かを 指 定PACE は、 イ ンプ リ メ ンテーシ ョ ン フ ローの 初 期 段 階 で 使 用 し ます。 NGD ファイルの I/O レイアウ ト をサポー ト し ているので、 デザイ ン 入 力 の 段 階 か ら 使 用 でき ます。 PACE は NGD ファイルおよび UCF フ ァ イルを 読 み 込 み、 制 約 を UCF ファイルに 記 述 します。PACE の 詳 細 は、 http://japan.xilinx.com/products/design_tools/logic_design/design_entry/pace.htmを 参 照 して く ださい。FloorplannerFloorplanner は、 次 のよ う な 機 能 を 持 つグ ラ フ ィ カル ツールです。• リ ソ ースの 配 置 を 詳 細 にフ ロ アプ ラ ン• Macro Builder を 使 用 し て、 ほかのデザ イ ンで 使 用 可 能 な 相 対 配 置 マ ク ロ (RPM) を 作 成• ロ ケーシ ョ ン 制 約 を 表 示 および 編 集• ロ ジ ッ ク ま たはネ ッ ト を 名 前 ま たは 接 続 で 検 索• Timing Analyzer からクロスプローブ 可 能• モジュール デザ イ ンでポー ト を 自 動 的 に 配 置Floorplanner のユーザー イ ン ターフ ェ イ スでは、 デザイ ン 階 層 の 変 更 、 フ ロ アプ ラ ン、 デザイ ンルール チェッ クの 実 行 を 行 うためのコマンドに、 メニューおよびツールバーからアクセスできます。 コマンドによってはダイアログ ボ ッ ク スが 開 き、 コマン ド のパラ メ ータやオプシ ョ ンを 設 定 できます。Floorplanner の 詳 細 は、 http://japan.xilinx.com/products/design_tools/logic_design/design_entry/floorplanner.htm を 参 照 して く ださい。414 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


ISE 開 発 環 境RPlanAheadPlanAhead は、 高 速 で 効 率 的 なデザイ ン ソ リ ューシ ョ ン を 提 供 する オプシ ョ ンのツールで、デザイ ンの 問 題 を 早 期 に 発 見 し て 修 正 でき るので、 パフ ォーマン ス 目 標 が 達 成 しやす く な り ます。PlanAhead では、 階 層 デザ イ ン、 ブ ロ ッ ク ベースのデザイ ン、 モジ ュール デザイ ン、 イ ン ク リ メンタル デザイ ンなどが 可 能 なので、デザイ ンの 1 部 だけ 変 更 して 残 りの 配 置 はそのままにするこ とで、 デザイ ンにかかる 時 間 を 短 縮 で き ます。 こ のため、 頻 繁 にデザイ ンを 変 更 し て も、 必 要 なパフ ォーマン ス を 維 持 しやす く な り ます。PlanAhead の 詳 細 は、 http://japan.xilinx.com/planahead を 参 照 して く ださい。<strong>FPGA</strong> Editor<strong>FPGA</strong> Editor は、 <strong>FPGA</strong> を 表 示 し、 コンフ ィギュレーシ ョ ンするためのグラフ ィカル ツールです。<strong>FPGA</strong> Editor は、 NCD フ ァ イルを 入 力 と し て 使 用 し ます。 NCD ファイルには、 CLB や IOB などのコンポーネン ト にマップされたデザインのロジッ クに 関 する 情 報 が 含 まれています。 <strong>FPGA</strong>Editor は、 物 理 制 約 フ ァ イル (PCF) も 読 み 込 みます。<strong>FPGA</strong> Editor では、 デザ イ ンに 対 し て 次 の 機 能 を 実 行 で き ます。• 自 動 配 置 配 線 を 実 行 する 前 に、 重 要 な コ ンポーネン ト を 配 置 配 線• 自 動 配 置 配 線 を 実 行 し た 後 に、 配 置 配 線 を 調 整• デザインにプローブを 追 加 し、 ターゲッ ト デバ イ ス での 信 号 のス テー ト を 確 認• BitGen を 実 行 し、 フ ァ イルをターゲッ ト デバイ スにダ ウ ン ロー ド• デザ イ ン をすべて 手 動 で 作 成 ( 上 級 ユーザー 向 け)<strong>FPGA</strong> Editor の 詳 細 は、 http://japan.xilinx.com/products/design_tools/logic_design/verification/fpgaeditorprobe.htm を 参 照 して ください。HDL BencherHDL Bencher は、 ISE で 作 成 した VHDL ソース、Verilog ソース、 回 路 図 を 検 証 する ためのツールです。 デザイ ン ソ ース を イ ンポー ト し、 波 形 を 作 成 し て、WaveTable スプレッ ドシート セルに 値 を入 力 する こ と に よ り 、 ス テ ィ ミ ュ ラ ス を 指 定 し ます。 ISE のコ マン ド を 使 用 し て、 出 力 を 自 動 的 にシミュレーションできます。 波 形 を 保 存 する と 、テ ス ト ベンチが 自 動 的 にエキ ス ポー ト さ れる ので、デザ イ ンの 機 能 を 検 証 する のに HDL や 言 語 ス ク リ プ ト の 知 識 は 必 要 あ り ません。多 層 シ ミ ュ レーシ ョ ンがサポー ト さ れてい ます。 予 測 さ れる タ イ ミ ン グ 結 果 を 含 む 波 形 が、 ビヘイビア デザイ ン 用 に 生 成 されます。 こ の 波 形 は、 変 換 後 、 マ ッ プ 後 、 配 線 後 のシ ミ ュ レーシ ョ ンに 使用 でき ます。HDL Bencher では、 テス ト は 特 定 のイベン ト シーケ ン ス、 初 期 条 件 、 およびユーザー 指 定 の 結 果に 限 られています。 HDL Bencher を 使 用 する と 、デザ イ ンのフ ァ ン ク シ ョ ンが 意 図 し た も のであ るかを 簡 単 に 検 証 で き ます。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 415<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 13 章 : ISE デザイ ン ツールの 使 用Timing AnalyzerTiming Analyzer は、 ス タ テ ィ ッ ク タ イ ミ ング 解 析 を 実 行 する ための、 高 度 で 柔 軟 性 の 高 いグ ラフィカル ツールです。 Timing Analyzer を 使 用 する と、 <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> に 対 してマ ッ プ 後 、 配 置 後 、 ま たは 配 線 後 に タ イ ミ ング 解 析 を 実 行 で き ます。Timing Analyzer は、 特 定 のパスが タ イ ミ ング 要 件 を 満 た し ているかど う かを 検 証 し ます。 回 路 のクリティカル パス、 サイ クル タ イ ム、 特 定 のパス 上 の 遅 延 、 遅 延 が 最 大 のパスに 関 するデータが表 示 さ れます。 同 じデザインに 異 なるスピード グレード を 適 用 し た 場 合 の 結 果 も 解 析 でき ます。Timing Analyzer は、タ イ ミ ン グ 制 約 ま たはユーザーが 指 定 し たパス に 基 づいて、タ イ ミ ン グ レポート を 作 成 し ま す。 タイミ ング レ ポート の 左 側 には 階 層 ブラ ウ ザが 表 示 さ れ、 レ ポート の 必 要 なセクショ ンに 簡 単 に 移 動 でき ま す。 レ ポート 内 のタ イ ミ ング パス は、 合 成 ツール (LeonardoSpectrum および Synplify/Synplify Pro) または Floorplanner にク ロ ス プロ ーブでき ま す。ISE SimulatorISE Simulator は、 ISE に 含 まれる フル 機 能 を 備 えた HDL シミュレータで、 次 の 2 つのバージ ョ ンで 提 供 されています。• ISE Simulator Lite ( 無 償 ) : すべての ISE コ ン フ ィ ギ ュ レーシ ョ ンに 含 まれ、 集 積 度 の 低 い<strong>FPGA</strong> デザイ ンに 向 いています。HDL ソース コードが 15,000 行 までのものに 制 限 されます。• ISE Simulator (フル バージ ョ ン) : すべての 集 積 度 に 対 応 し てお り 、 低 コ ス ト で ISE Foundationに 追 加 でき ます。ISE Simulator の 詳 細 は、 http://japan.xilinx.com/products/design_tools/logic_design/verification/ise_simulator.htm を 参 照 して く ださい。iMPACT コンフィギュレーション ツールiMPACT はコマンド ラインおよび GUI ベースの コ ン フ ィ ギ ュ レーシ ョ ン ツールで、バウンダ リ スキャン、スレーブ シリアル、SelectMap、およびデスク ト ップ コ ン フ ィ ギ ュ レーシ ョ ン を 使 用 し て、PLD デザイ ンを コ ンフ ィ ギュ レーシ ョ ンでき ます。 iMPACT では、 次 の 操 作 も 実 行 で き ます。• ダウンロード• デザイ ンのコ ン フ ィ ギ ュ レーシ ョ ン データの リ ー ド バ ッ クおよび 検 証• コンフィギュレーション エラーのデバッグ• PROM、 SVF、 STAPL、 System ACE CF プログラム ファイルの 作 成ChipScope ProChipScope Pro は、 リ アルタ イ ムのイ ンサーキ ッ ト デバ ッ グ を 行 う ためのツールで、 短 時 間 で 低 コス ト の 検 証 サ イ ク ルを 可 能 に し ます。 特 別 の IP デバッ グ コアを HDL コード またはデザイン ネット リ ス ト に 挿 入 する こ と に よ り 、 シ ス テムの 動 作 速 度 での 信 号 をモニ タ し、 <strong>FPGA</strong> ロジックおよびシステム バス の 動 作 をデバ ッ グおよび 検 証 で き ます。 デザイ ンを 再 コ ンパイルせずに 簡 単 に ト レース ポイン ト を 変 更 できます。 ChipScope Pro は、 ILA (Integrated Logic Analyzer) コアおよび IBA(Integrated Bus Analyzer) コ アをデザ イ ンに 組 み 込 みます。 これらのコアによ り、<strong>Spartan</strong>-3 ジェネレーシ ョ ン <strong>FPGA</strong> の 内 部 信 号 および ノ ー ド がすべて 表 示 さ れます。ChipScope Pro の 詳 細 は、 http://japan.xilinx.com/chipscope を 参 照 して く ださい。416 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


関 連 資 料 および リ フ ァ レ ンスR電 力 解 析 ツールISE には、 <strong>Spartan</strong>-3 ジェネレーション デザ イ ンの 電 力 問 題 を 理 解 し、 ダ イ ナ ミ ッ ク 電 力 を 削 減 する のに 役 立 つツールが 含 まれています。 ア ド バン ス な 合 成 およびイ ンプ リ メ ンテーシ ョ ン アルゴ リズム を 使 用 する こ と で、 ダ イ ナ ミ ッ ク 電 力 を 平 均 で 10% 削 減 可 能 です。XPower Estimator スプレッ ドシートは、インプリ メンテーショ ン 前 の 解 析 ツールで、<strong>Spartan</strong>-3 ジェネレーシ ョ ン <strong>FPGA</strong> の 消 費 電 力 が 概 算 で き ます。 デザ イ ン 要 件 は、 直 接 入 力 する か、 ISE のマップ結 果 か ら イ ンポー ト で き ます。 デザ イ ンの 各 部 分 の ト グル レー ト は、 ユーザーが 指 定 し ます。XPower Analyzer は、 配 線 後 にザ イ リ ン ク ス デバイ スの 消 費 電 力 を 解 析 する ためのツールです。XPower Analyzer には、 VCD シミュレーション データ を 読 み 込 んで 予 測 ス テ ィ ミ ュ ラ ス を 設 定 でき る ので、 設 定 時 間 を 短 縮 で き ます。 使 用 で き る のは、 Mentor Graphics 社 (ModelSim)、 Cadence社 、 Synopsys 社 のツールから の VCD ファイルで、 デバイ スの 情 報 およびデザイ ンのデータ を 使 用し て、 デバイ スの 消 費 電 力 およびネ ッ ト ご と の 消 費 電 力 が 概 算 さ れます。 概 算 結 果 は、 HTML 形 式および ASCII (テキス ト) 形 式 のレ ポー ト で 示 さ れます。XPower ツールの 詳 細 は、 http://japan.xilinx.com/power を 参 照 して く ださい。関 連 資 料 および リ フ ァ レ ンスこ の 章 の 内 容 の 補 足 情 報 については、 次 の Web サ イ ト を 参 照 し て く だ さ い。• ザイ リンクス デザイ ン ツール センタhttp://japan.xilinx.com/products/design_resources/design_tool/• ISE と <strong>Spartan</strong>-3 ジェネレーション デザイ ンhttp://japan.xilinx.com/ise/ise_promo/ise_spartan3.htm• ソフトウェア ダウンロード センタhttp://japan.xilinx.com/support/download/index.htm• ソフトウェア マニュアルhttp://japan.xilinx.com/support/software_manuals.htmまとめISE は、 デザイ ン を 短 期 間 で 効 率 的 に 設 計 する ための 設 計 環 境 を 提 供 し ます。 さまざまなツールおよびサードパーティ ツールへの イ ン ターフ ェ イ ス を 含 む 複 数 の コ ン フ ィ ギ ュ レーシ ョ ンが 用 意 されてお り 、 必 要 なツールの 組 み 合 わせを 選 択 で き ます。 ProActive Timing Closure などの 高 度 な 技術 を 採 用 し てお り 、 柔 軟 で 使 いやすいグ ラ フ ィ カル インターフェイスを 使 用 して、<strong>FPGA</strong> 設 計 の 知識 や 経 験 にかかわ らず、 短 期 間 で 簡 単 に 最 高 のパフ ォーマン ス を 達 成 で き ます。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 417<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 13 章 : ISE デザイ ン ツールの 使 用418 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 14 章IP コ アの 使 用概 要この 章 では、<strong>Spartan</strong> ® -3 ジェ ネレ ーショ ン の 設 計 プロ セス で 使 用 する ザイ リ ン ク ス COREGenerator シス テムおよ びザイ リ ンク ス IP (Intellectual Property) の 概 要 を 示 し ま す。 詳 細 は、ISE ®ソフト ウェア マニュ アル (http://japan.xilinx.com/support/software_manuals.htm) の ISE ヘルプに 含まれる CORE Generator ヘルプ、 およ びザイ リ ンク ス IP センタ (http://japan.xilinx.com/ipcenter/index.htm) を 参 照 し てく ださ い。こ の 章 の 内 容 は、 すべての <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> に 該 当 し ます。CORE Generator システムザイ リンクス CORE Generator システムは、 ザイ リ ンクス <strong>FPGA</strong> で 使 用 する IP コ ア を 整 理 、 カ スタマイズするツールです。 ザイ リ ンクス CORE Generator は、 加 算 器 、 アキ ュ ム レータ、 乗 算 器 などの 単 純 な 演 算 回 路 か ら、 フ ィ ルタ、 変 換 、 メ モ リ リソースなどの 複 雑 なシステム レベルのブロ ックまで、すぐに 使 用 できる IP フ ァ ン ク シ ョ ン を 提 供 し ます。 コアは、 アルファベッ ド 順 、 ファンクシ ョ ン 別 、 ベンダー 別 、 タ イ プ 別 に 表 示 で き ます。 各 コ アには、 コ アの 機 能 を 詳 細 に 説 明 するデータシートが 付 属 しています。CORE Generator のユーザー インターフェイスからは、 最 新 の <strong>Spartan</strong>-3 ジェネレーション IP リリ ース 情 報 や、 技 術 的 な 問 題 に 関 する 情 報 を 簡 単 に 入 手 で き ます。 さまざまなパートナー IP ベンダーが 提 供 する AllianceCORE 製 品 に 対 し ては、 ベンダーへの リ ン ク が GUI に 組 み 込 まれています。 <strong>Spartan</strong>-3 ジェネレーショ ン デザイ ンで CORE Generator の IP コ アを 使 用 する と 、デザ イ ン 開発 の 時 間 を 大 幅 に 短 縮 で き、 <strong>Spartan</strong>-3 ジェネレーション アーキテ ク チ ャ に 関 する 詳 細 な 知 識 がなく て も、 優 れた 性 能 と 高 い 集 積 度 を 実 現 で き ます。CORE Generator ソフトウェアをインストールすると、LogiCORE プ ロ グ ラ ムで 提 供 さ れる 多 数の コ アへすばや く ア ク セスで き ます。 さらに、すべての AllianceCORE 製 品 および 別 途 に ラ イ センスが 必 要 なアドバンス ファンクション LogiCORE 製 品 に 関 するデータ シー ト も 用 意 さ れてい ます。 <strong>Spartan</strong>-3 ジェネレーショ ン 用 に 新 し く リ リースされた IP やア ップデー ト された IP は、 IP センタからダウンロードして CORE Generator のカ タ ロ グに 追 加 で き ます。ザイ リンクス IP ソリューションおよび IP センタCORE Generator は、 ザ イ リ ン ク ス IP センタ (japan.xilinx.com/ipcenter) と 連 動 しています。 このリ ソ ース を 最 大 限 に 活 用 する ため、 設 計 開 始 時 には IP センタで 利 用 できるコア ソリューションが入 手 可 能 かを 確 認 し て く だ さ い。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 419<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 14 章 : IP コ アの 使 用IP センタには、 次 に 示 すザイ リ ンクス コアおよび IP ツールの 全 リ ス ト があ り ます。• LogiCORE 製 品• AllianceCORE 製 品• Candidate コア 製 品• デザイ ン ファイル• Alliance プログラム パー ト ナー サービ スLogiCORE 製 品LogiCORE 製 品 は、 ザ イ リ ン ク スがデザ イ ン、 販 売 、 ラ イ セン ス、 およびサポー ト を 行 っ ています。 LogiCORE 製 品 の う ち、 マルチプレ ク サ、 加 算 器 、 乗 算 器 、 メ モ リ コアなどの 汎 用 パラメータ指 定 フ ァ ン ク シ ョ ンは CORE Generator ソフトウェアに 含 まれており、ソフトウェアのライセンスユーザーは 無 償 で 使 用 で き ます。 PCI、 リード ソロモン、ADPCM、 HDLC、 POS-PHY、 色 空 間 コンバータなどのシステム レベルのコ ア も 用 意 されていますが、 これら を 使 用 するには 個 別 にラ イ セン ス を 取 得 する 必 要 があ り ます。 CORE Generator を 使 用 する と 、 <strong>Spartan</strong>-3 ジェネレーショ ンのブロック メ モ リ および 分 散 メ モ リ をすばや く 生 成 で き ます。 <strong>Spartan</strong>-3 ジェネレーショ ンのLogiCORE 製 品 の 詳 細 な リ ス ト は、 421 ページの 表 14-1 およびザイ リ ンクス IP センタ(http://japan.xilinx.com/ipcenter) を 参 照 して く ださい。ザイ リンクスの LogiCORE プ ロ グ ラ ムで 現 在 提 供 さ れてい る IP のタイプは、 次 のとおりです。AllianceCORE 製 品• 基 本 エレ メ ン ト : ロジック ゲー ト 、 レ ジ ス タ、 マルチプレ ク サ、 加 算 器 、 乗 算 器• 通 信 およびネ ッ ト ワーク : ADPCM モジュール、 HDLC コント ローラ、 ATM 構 築 ブ ロ ッ ク、順 方 向 誤 り 訂 正 (FEC)、 ケーブル モデム ソリューション、10/100 イーサネッ ト MAC、 SPI-4.2、 POS-PHY インターフェイス• DSP および 映 像 / 画 像 処 理 : 小 型 の 構 築 ブ ロ ッ ク (タイム スキュー バッファなど) か ら 大 型 のシステム レベル ファンクション (FIR フィルタ、FFT など) までのさまざまなコア• システム ロジック : アキ ュ ム レータ、 加 算 器 、 減 算 器 、 補 数 器 、 乗 算 器 、 積 分 器 、 パイ プ ラ イン 化 された 遅 延 エレ メ ン ト 、 シングル ポー ト およびデュ アル ポー ト の 分 散 RAM とブロックRAM、 ROM、 同 期 FIFO、 非 同 期 FIFO• 標 準 バス イ ン ターフ ェ イ ス : PCI インターフェイス、 PCI Express PIPE Endpoint、 I 2 C、 CAN• プロセッサ ソリューション : MicroBlaze 32 ビット ソフト プロセッサ、PicoBlaze 8 ビット ソフト プロセッサ、 ペリ フェラルAllianceCORE 製 品 は、 サー ド パーテ ィ のザ イ リ ン ク ス Alliance プログラム メ ンバーが 開 発 、 販売 、 サポー ト し てい る IP です。 よ く 使 用 さ れる IP コアのほとんどが AllianceCORE です。AllianceCORE として 承 認 されるためには、メンバーが そのコアのネッ ト リ ス ト を 新 しいデザインに 推 奨 される 現 在 のデバイ スの VHDL と Verilog のラッパ ファイルを 含 む ISE プロジェク トの 形式 で 提 出 する 必 要 があ り ます。 ザ イ リ ン ク ス では、 こ れを 基 にフ ロー チェッ クを 行 い、 それらのファイルがザイリンクス デザイ ン ツールで 問 題 な く 実 行 さ れ、 レポー ト さ れた イ ンプ リ メ ンテーション 結 果 (デバ イ ス 使 用 率 およびク ロ ッ ク レート) に 再 現 性 があ る かど う かを 検 証 し ます。 コアの 機 能 や 特 定 の 規 格 への 準 拠 については 検 証 し ません。420 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


<strong>Spartan</strong>-3 ジェネレーションの IP コアRCandidate コア 製 品Candidate コアは、 サードパーティのザイ リンクス Alliance プログラム パー ト ナーが 開 発 、 販 売 、サポー ト しています。 Candidate コアとして 承 認 されるためには、 パートナーが ISE レポート ファイルを 提 出 し、 特 定 のザイ リ ンクス プログラマブル ロジック デバイ ス を ターゲ ッ ト にする ために、ザイ リンクス ツールを 使 用 し て コ アが 動 作 する こ と を 示 す 必 要 があ り ます。デザイ ン ファイルデザイ ン ファイルには、 ザイリンクスが 開 発 したアプリケーション ノート (XAPP) と、 ザイ リンクスとそのパートナーの 開 発 したリファレンス デザイ ンの 2 種 類 があ り ます。 これらはシステム 設計 に 関 する ガイ ダンスが 必 要 な 場 合 に 特 に 便 利 です。 ザイ リ ンクスが 開 発 したアプリケーシ ョ ンノ ー ト には、 通 常 デザ イ ン ファ イルが 含 まれています。 こ れ ら は 無 償 で 提 供 さ れていますが、 テ クニカル サポー ト や 保 証 はあ り ません。 リ フ ァ レ ン ス デザイ ンを 基 に、 さ まざ まなフ ァ ン ク シ ョ ンをザイ リ ンク スのプログラマブル ロジックにインプリ メントできます。ザイリンクス Alliance プログラム パー ト ナー サービスSignOnceザイ リンクス Alliance プログラムは、ザイ リ ンクスのプラッ ト フォーム <strong>FPGA</strong>、 ソフトウェア、および IP コアの 統 合 に 精 通 したコンサルタントにユーザーがアクセスできるようにするためのプログラムです。 こ のプ ロ グ ラ ムの メ ンバーは、 通 信 、 ネ ッ ト ワー ク、 DSP、 映 像 および 画 像 処 理 、 システム I/O インターフェイス、ホーム ネ ッ ト ワーク な ど、 さ ま ざ ま な 分 野 でザ イ リ ン ク スの 技 術 を利 用 する ための 豊 富 な 知 識 と 経 験 を 有 し てい る 資 格 者 です。 パー ト ナーは、タ イ ム トゥ マーケ ッ トを 短 縮 させながら、 低 コス ト デザ イ ン を 設 計 する ための ソ リ ューシ ョ ン をユーザーに 提 供 するザ イリ ン ク スの 重 要 な 戦 略 の 一 部 です。SignOnce IP ライセンス 契 約 とは、 プログラマブル ロジック ソフト IP コ アに 対 する 業 界 初 、 業 界唯 一 の 共 通 ラ イ セン ス 条 項 です。 ザ イ リ ン ク ス と 最 先 端 のサー ド パーテ ィ プ ロバイ ダは こ の 共 通 のライセンス 条 項 を 使 用 して <strong>FPGA</strong> カ ス タ マにコ アを 提 供 する 契 約 を し ています。 こ れに よ り 、 複 数のプ ロバイ ダか ら 提 供 さ れる IP を 簡 単 に 入 手 で き る よ う な り ます。詳 細 は、 http://japan.xilinx.com/ipcenter/signonce.htm を 参 照 して く ださい。<strong>Spartan</strong>-3 ジェネレーションの IP コア<strong>Spartan</strong>-3 ジェネレーショ ン デザイ ンに 使 用 可 能 な コ アの 一 部 を 表 14-1 に 示 し ます。 <strong>Spartan</strong>-3ジェネレーショ ン IP の 全 リ ス ト と サポー ト される <strong>FPGA</strong> ファミ リの 詳 細 は、IP ソリューションの検 索 で、 最 新 ソ リ ューシ ョ ン を 検 索 し て く だ さ い。表 14-1 : <strong>Spartan</strong>-3 ジェネレーションの IP コ アのサポー ト製 品 名 ベンダー 名 タ イ プ SignOnce サポー ト デバイスオーデ ィ オ ビデオおよび 画 像 処 理1394a Link Layer Controller (C1394A) CAST, Inc. Candidate コア X <strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3Accelerated Display Graphics Engine(BADGE)BitSim AB Candidate コア <strong>Spartan</strong>-3Adaptive Image Enhancement (Iridix) Apical Limited Candidate コア <strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 421<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 14 章 : IP コ アの 使 用表 14-1 : <strong>Spartan</strong>-3 ジェネレーションの IP コ アのサポー ト ( 続 き)製 品 名 ベンダー 名 タ イ プ SignOnce サポー ト デバイスADPCM, 128 Simplex (CS4125)AmphionSemiconductor, Ltd.AllianceCORE X <strong>Spartan</strong>-3、 <strong>Spartan</strong>-IIADPCM, 16 Simplex (CS4110)Audio Sample Rate Converter, LowCost (CWda50)Burst Locked PLL (BURST_PLL)AmphionSemiconductor, Ltd.AllianceCORE X <strong>Spartan</strong>-3、 <strong>Spartan</strong>-IIECoreworks Candidate コア XPinpoint Solutions,Inc.<strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3、<strong>Spartan</strong>-IIEAllianceCORE X <strong>Spartan</strong>-3、 <strong>Spartan</strong>-IIECompact Video Controller (logiCVC) Xylon d.o.o. AllianceCORE XDiscrete Wavelet Transform(BA113FDWT)Gamma Correction, Dynamic<strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3、<strong>Spartan</strong>-IIEBarco-Silex AllianceCORE X <strong>Spartan</strong>-3Digital DesignCorporationCandidate コア<strong>Spartan</strong>-3H.264 / MPEG4 Part 10, Decoder,Baseline (4i2i)H.264 Encoder, Baseline (4i2i)H.264 Encoder, Baseline MultichannelHD (H264-E)4i2i CommunicationsLtd.4i2i CommunicationsLtd.Candidate コア<strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3AllianceCORE X <strong>Spartan</strong>-3CAST, Inc. Candidate コア X <strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3I 2 S Receiver (CWda10) Coreworks Candidate コア XI 2 S to SPDIF Converter (CWda04) Coreworks Candidate コア X<strong>Spartan</strong>-3、 <strong>Spartan</strong>-IIE、<strong>Spartan</strong>-II<strong>Spartan</strong>-3、 <strong>Spartan</strong>-IIE、<strong>Spartan</strong>-III 2 S Transmitter (CWda06) Coreworks Candidate コア X <strong>Spartan</strong>-3、 <strong>Spartan</strong>-IIEJPEG, 2000 Decoder(BA111JPEG2000D)JPEG, 2000 Encoder(BA112JPEG2000E)Barco-Silex AllianceCORE X <strong>Spartan</strong>-3Barco-Silex AllianceCORE X <strong>Spartan</strong>-3JPEG, Codec (JPEG_C) CAST, Inc. AllianceCORE X <strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3JPEG, Decoder (JPEG_D) CAST, Inc. AllianceCORE X <strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3JPEG, Encoder (JPEG_E) CAST, Inc. AllianceCORE X <strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3JPEG, Motion Codec V1.0 (CS6190)JPEG, Motion Decoder (CS6150)AmphionSemiconductor, Ltd.AmphionSemiconductor, Ltd.AllianceCORE X <strong>Spartan</strong>-3、 <strong>Spartan</strong>-IIEAllianceCORE X <strong>Spartan</strong>-3422 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


<strong>Spartan</strong>-3 ジェネレーションの IP コアR表 14-1 : <strong>Spartan</strong>-3 ジェネレーションの IP コ アのサポー ト ( 続 き)製 品 名 ベンダー 名 タ イ プ SignOnce サポー ト デバイスJPEG, Motion Encoder (CS6100)AmphionSemiconductor, Ltd.AllianceCORE X <strong>Spartan</strong>-3、 <strong>Spartan</strong>-IIELongitudinal Time Code Generator Deltatec S.A. AllianceCORE X <strong>Spartan</strong>-3、 <strong>Spartan</strong>-IIEMotion JPEG Decoder(JPEG Decoder)Motion JPEG Encoder(JPEG Encoder)MPEG-2 Video Decoder (CS6651)4i2i CommunicationsLtd.4i2i CommunicationsLtd.AmphionSemiconductor, Ltd.AllianceCORE X <strong>Spartan</strong>-3、 <strong>Spartan</strong>-IIEAllianceCORE X <strong>Spartan</strong>-3、 <strong>Spartan</strong>-IIEAllianceCORE X <strong>Spartan</strong>-3MPEG4 Simple Profile Decoder <strong>Xilinx</strong>, Inc. LogiCORE X <strong>Spartan</strong>-3、 <strong>Spartan</strong>-3AMPEG4 Simple Profile Encoder <strong>Xilinx</strong>, Inc. LogiCORE X <strong>Spartan</strong>-3、 <strong>Spartan</strong>-3AMPEG-4 Video Compression DecoderMPEG-4 Video Compression EncoderNTSC Color Separator(NTSC-COSEP)4i2i CommunicationsLtd.4i2i CommunicationsLtd.Pinpoint Solutions,Inc.AllianceCORE X <strong>Spartan</strong>-3AllianceCORE X <strong>Spartan</strong>-3AllianceCORE X <strong>Spartan</strong>-3、 <strong>Spartan</strong>-IIESPDIF to I 2 S Converter (CWda03) Coreworks Candidate コア XSPDIF-AES/EBU Feed-ForwardReceiver (CWda01)SPDIF-AES/EBU Feed-ForwardTransmitter (CWda02)Coreworks Candidate コア XCoreworks Candidate コア X<strong>Spartan</strong>-3、 <strong>Spartan</strong>-IIE、<strong>Spartan</strong>-II<strong>Spartan</strong>-3、 <strong>Spartan</strong>-IIE、<strong>Spartan</strong>-II<strong>Spartan</strong>-3、 <strong>Spartan</strong>-IIE、<strong>Spartan</strong>-IISPDIF-AES/EBU Transmitter(CWda05)VGA Compatible Cores(INT416-SM, INT416-SXGA)Coreworks Candidate コア X <strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3Intrinsix Corporation Candidate コア <strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3基 本 ロジ ッ ク8b/10b Decoder <strong>Xilinx</strong>, Inc. LogiCORE8b/10b Encoder <strong>Xilinx</strong>, Inc. LogiCORE<strong>Spartan</strong>-3、 <strong>Spartan</strong>-IIE、<strong>Spartan</strong>-II<strong>Spartan</strong>-3、 <strong>Spartan</strong>-IIE、<strong>Spartan</strong>-IIBinary Counter <strong>Xilinx</strong>, Inc. LogiCORE <strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3Binary Decoder <strong>Xilinx</strong>, Inc. LogiCOREBUFE-based Multiplexer Slice <strong>Xilinx</strong>, Inc. LogiCORE<strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3、<strong>Spartan</strong>-IIE、 <strong>Spartan</strong>-II<strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3、<strong>Spartan</strong>-IIE<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 423<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 14 章 : IP コ アの 使 用表 14-1 : <strong>Spartan</strong>-3 ジェネレーションの IP コ アのサポー ト ( 続 き)製 品 名 ベンダー 名 タ イ プ SignOnce サポー ト デバイスComparator <strong>Xilinx</strong>, Inc. LogiCORE <strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3FD-based Parallel Register <strong>Xilinx</strong>, Inc. LogiCORE<strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3、<strong>Spartan</strong>-IIEFD-based Shift Register <strong>Xilinx</strong>, Inc. LogiCOREFloating Point Comparator(DFPCOMP)<strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3、<strong>Spartan</strong>-IIEDigital Core Design AllianceCORE X <strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3LD-based Parallel Latch <strong>Xilinx</strong>, Inc. LogiCORE<strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3、<strong>Spartan</strong>-IIELinear Feedback Shift Register(LFSR)<strong>Xilinx</strong>, Inc. LogiCORE <strong>Spartan</strong>-3、 <strong>Spartan</strong>-IIERAM-based Shift Register <strong>Xilinx</strong>, Inc. LogiCORE <strong>Spartan</strong>-3E、 <strong>Spartan</strong>-38b/10b Decoder <strong>Xilinx</strong>, Inc. LogiCORE8b/10b Encoder <strong>Xilinx</strong>, Inc. LogiCORE<strong>Spartan</strong>-3、 <strong>Spartan</strong>-IIE、<strong>Spartan</strong>-II<strong>Spartan</strong>-3、 <strong>Spartan</strong>-IIE、<strong>Spartan</strong>-IIBinary Counter <strong>Xilinx</strong>, Inc. LogiCORE <strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3Binary Decoder <strong>Xilinx</strong>, Inc. LogiCOREBUFE-based Multiplexer Slice <strong>Xilinx</strong>, Inc. LogiCORE<strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3、<strong>Spartan</strong>-IIE、 <strong>Spartan</strong>-II<strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3、<strong>Spartan</strong>-IIEComparator <strong>Xilinx</strong>, Inc. LogiCORE <strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3FD-based Parallel Register <strong>Xilinx</strong>, Inc. LogiCORE<strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3、<strong>Spartan</strong>-IIEFD-based Shift Register <strong>Xilinx</strong>, Inc. LogiCOREFloating Point Comparator(DFPCOMP)<strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3、<strong>Spartan</strong>-IIEDigital Core Design AllianceCORE X <strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3LD-based Parallel Latch <strong>Xilinx</strong>, Inc. LogiCORE<strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3、<strong>Spartan</strong>-IIELinear Feedback Shift Register (LFSR) <strong>Xilinx</strong>, Inc. LogiCORE <strong>Spartan</strong>-3、 <strong>Spartan</strong>-IIERAM-based Shift Register <strong>Xilinx</strong>, Inc. LogiCORE <strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3バス インターフェイスおよび I/O1394 Link Layer Controller(SI16FW10)Silicon InterfacesAmerica Inc.Candidate コア<strong>Spartan</strong>-31394a Link Layer Controller (C1394A) CAST, Inc. Candidate コア X <strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3424 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


<strong>Spartan</strong>-3 ジェネレーションの IP コアR表 14-1 : <strong>Spartan</strong>-3 ジェネレーションの IP コ アのサポー ト ( 続 き)製 品 名 ベンダー 名 タ イ プ SignOnce サポー ト デバイスCAN (DO-DI-CAN) <strong>Xilinx</strong>, Inc. LogiCORECAN 2.0 B Compatible NetworkController (LogiCAN)CAN 2.0B Bus Controller (iCAN)CAN Bus Controller (MC-XIL-OPB-XCAN)Xylon d.o.o. AllianceCORE XIntelliga IntegratedDesign, Ltd.Avnet DesignServices<strong>Spartan</strong>-3A DSP、<strong>Spartan</strong>-3A、<strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3<strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3、<strong>Spartan</strong>-IIE、 <strong>Spartan</strong>-IIAllianceCORE X <strong>Spartan</strong>-3、 <strong>Spartan</strong>-IIEAllianceCORE X <strong>Spartan</strong>-3、 <strong>Spartan</strong>-IIECAN Bus Controller 2.0B CAST, Inc. AllianceCORE X <strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3I 2 C Bus Controller (I 2 C) CAST, Inc. AllianceCORE X <strong>Spartan</strong>-3、 <strong>Spartan</strong>-IIEI 2 C Bus Controller Master (DI2CM) Digital Core Design AllianceCORE X <strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3I 2 C Bus Controller Slave (DI2CS) Digital Core Design Candidate コア X <strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3J1850 Class B Interface(J1850_BDLC_VPW)Drivven, Inc. Candidate コア X <strong>Spartan</strong>-3LIN - Local Interconnect Network BusController (iLIN)Intelliga IntegratedDesign, Ltd.AllianceCORE X <strong>Spartan</strong>-3、 <strong>Spartan</strong>-IIELIN Controller CAST, Inc. AllianceCORE X <strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3MIL-STD-1553 Bus Interface(FlightCORE-1553)GE Fanuc EmbeddedSystems, Inc.Candidate コア<strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3、<strong>Spartan</strong>-IIEOPB Arbiter <strong>Xilinx</strong>, Inc. LogiCORE <strong>Spartan</strong>-3、 <strong>Spartan</strong>-IIEOPB IIC Master and Slave BusController (DO-DI-IIC-SD)<strong>Xilinx</strong>, Inc.LogiCORE<strong>Spartan</strong>-3、 <strong>Spartan</strong>-3A、<strong>Spartan</strong>-IIEOPB IPIF Architecture <strong>Xilinx</strong>, Inc. LogiCORE<strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3、<strong>Spartan</strong>-3A、 <strong>Spartan</strong>-IIEOPB to OPB Bridge (Lite Version) <strong>Xilinx</strong>, Inc. LogiCORE <strong>Spartan</strong>-3、 <strong>Spartan</strong>-IIEOPB/PLB PCI32 Interface <strong>Xilinx</strong>, Inc. LogiCORE<strong>Spartan</strong>-3、 <strong>Spartan</strong>-3A、<strong>Spartan</strong>-IIEPCI 32-bit Master Interface (PCI-M32) CAST, Inc. AllianceCORE X <strong>Spartan</strong>-3、 <strong>Spartan</strong>-IIEPCI 32-Bit Multifunction TargetInterface (PCI-TMF)CAST, Inc. AllianceCORE X <strong>Spartan</strong>-3、 <strong>Spartan</strong>-IIEPCI 32-bit Target Interface (PCI-T32) CAST, Inc. AllianceCORE X <strong>Spartan</strong>-3、 <strong>Spartan</strong>-IIEPCI Express (PExCore-254)PCI Express PIPE EndpointLogiCORE (DO-DI-PCIE-PIPE)NitAl ConsultingServices, Inc.Candidate コア X <strong>Spartan</strong>-3<strong>Xilinx</strong>, Inc. LogiCORE X <strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 425<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 14 章 : IP コ アの 使 用表 14-1 : <strong>Spartan</strong>-3 ジェネレーションの IP コ アのサポー ト ( 続 き)製 品 名 ベンダー 名 タ イ プ SignOnce サポー ト デバイスPCI Host Bridge (PCI-HB) CAST, Inc. AllianceCORE X <strong>Spartan</strong>-3、 <strong>Spartan</strong>-IIEPCI Interface (NWL PCI) Northwest Logic AllianceCORE X <strong>Spartan</strong>-3PCI32 Single Project <strong>Spartan</strong> Series(DO-DI-PCI32-SP)PCI32 <strong>Spartan</strong> Series Interface(DO-DI-PCI32-IP)PCI64 Virtex ® and <strong>Spartan</strong> SeriesInterface, IP Only (DO-DI-PCI64-IP)PCI64 Interface Design Kit (DO-DI-PCI64-DKT)<strong>Xilinx</strong>, Inc. LogiCORE X<strong>Xilinx</strong>, Inc. LogiCORE X<strong>Xilinx</strong>, Inc. LogiCORE X<strong>Xilinx</strong>, Inc. LogiCORE X<strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3、<strong>Spartan</strong>-IIE、 <strong>Spartan</strong>-II<strong>Spartan</strong>-3A DSP、<strong>Spartan</strong>-3A、<strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3、<strong>Spartan</strong>-IIE、 <strong>Spartan</strong>-II<strong>Spartan</strong>-3A DSP、<strong>Spartan</strong>-3A、<strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3、<strong>Spartan</strong>-IIE、 <strong>Spartan</strong>-II<strong>Spartan</strong>-3A DSP、<strong>Spartan</strong>-3A、<strong>Spartan</strong>-3、 <strong>Spartan</strong>-IIE、<strong>Spartan</strong>-IIPCI-PCI Bridge (EP440) Eureka Technology AllianceCORE X <strong>Spartan</strong>-3、 <strong>Spartan</strong>-IIEPowerPC ® Bus Master (EP201) Eureka Technology AllianceCORE X <strong>Spartan</strong>-3、 <strong>Spartan</strong>-IIEPowerPC Bus Slave (EP100) Eureka Technology AllianceCORE X <strong>Spartan</strong>-3、 <strong>Spartan</strong>-IIESerial ATA I/II Host Controller(SATA_H1)Smart Card Interface (HCLT SCI)SPI Master Interface (HCL_SPI_M)ASICS World Service,Ltd.HCL TechnologiesLtd.HCL TechnologiesLtd.Candidate コア X <strong>Spartan</strong>-3 <strong>FPGA</strong>Candidate コア X <strong>Spartan</strong>-3、 <strong>Spartan</strong>-IIECandidate コア X <strong>Spartan</strong>-3、 <strong>Spartan</strong>-IIESPI-Master/Slave (DSPI) Digital Core Design Candidate コア XSPI-Slave (DSPIS) Digital Core Design Candidate コア XTwo-Wire Serial Interface - I 2 C(MC-XIL-TWSI)Avnet DesignServicesAllianceCOREX<strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3、<strong>Spartan</strong>-IIE<strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3、<strong>Spartan</strong>-IIE<strong>Spartan</strong>-3、 <strong>Spartan</strong>-IIE、<strong>Spartan</strong>-IIUSB 1.1 Function Controller (CUSB) CAST, Inc. AllianceCORE X <strong>Spartan</strong>-3、 <strong>Spartan</strong>-IIEUSB 1.1 Host (USB1_HOST)ASICS World Service,Ltd.Candidate コア X <strong>Spartan</strong>-3、 <strong>Spartan</strong>-IIEUSB 2.0 Function Controller (CUSB2) CAST, Inc. AllianceCORE X <strong>Spartan</strong>-3、 <strong>Spartan</strong>-IIEUSB 2.0 Function Controller(USB2_DEV)ASICS World Service,Ltd.Candidate コア X <strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3426 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


<strong>Spartan</strong>-3 ジェネレーションの IP コアR表 14-1 : <strong>Spartan</strong>-3 ジェネレーションの IP コ アのサポー ト ( 続 き)製 品 名 ベンダー 名 タ イ プ SignOnce サポー ト デバイスUSB 2.0 On-The-Go (USB2_OTG)ASICS World Service,Ltd.Candidate コア X <strong>Spartan</strong>-3、 <strong>Spartan</strong>-IIEUSB Function Controller with On-ChipPeripheral Bus (CUSB_OPB)CAST, Inc. AllianceCORE X <strong>Spartan</strong>-3、 <strong>Spartan</strong>-IIEV3.0 PCI 32-bit/(66-33 MHz) Core andDesign KitV3.0 PCI 64-bit/(66-33 MHz) and PCI32-bit/(66-33 MHz) CoreV5.0 PCI 64-bit/33 MHz, V3.0 PCI64-bit/(66-33MHz) and PCI 32-bit<strong>Xilinx</strong>, Inc. LogiCORE X<strong>Xilinx</strong>, Inc. LogiCORE X<strong>Xilinx</strong>, Inc. LogiCORE X<strong>Spartan</strong>-3A DSP、<strong>Spartan</strong>-3A、<strong>Spartan</strong>-3、 <strong>Spartan</strong>-IIE、<strong>Spartan</strong>-II<strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3、<strong>Spartan</strong>-IIE、 <strong>Spartan</strong>-II<strong>Spartan</strong>-3、 <strong>Spartan</strong>-IIE、<strong>Spartan</strong>-IIVLYNQ Interface for TexasInstruments Processors<strong>Xilinx</strong>, Inc. LogiCORE X <strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3VME Address and Data Interface(ML7C964)Millogic LtdCandidate コア<strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3、<strong>Spartan</strong>-II <strong>FPGA</strong>通 信 およびネ ッ ト ワーク1394 Link Layer Controller(SI16FW10)Silicon InterfacesAmerica Inc.Candidate コア<strong>Spartan</strong>-31394a Link Layer Controller (C1394A) CAST, Inc. Candidate コア X <strong>Spartan</strong>-3E、 <strong>Spartan</strong>-316550 UART w/ FIFOs (D16550) Digital Core Design AllianceCORE X16750 UART w/ FIFOs (D16750) Digital Core Design Candidate コア X<strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3、<strong>Spartan</strong>-IIE<strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3、<strong>Spartan</strong>-IIE16750 UART w/FIFOs and sync CPUInterface (H16750S)85C30 Serial CommunicationController (ML85C30)CAST, Inc. Candidate コア X <strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3Millogic Ltd Candidate コア <strong>Spartan</strong>-3E、 <strong>Spartan</strong>-38b/10b Decoder <strong>Xilinx</strong>, Inc. LogiCORE<strong>Spartan</strong>-3、 <strong>Spartan</strong>-IIE、<strong>Spartan</strong>-II8b/10b Encoder <strong>Xilinx</strong>, Inc. LogiCORE<strong>Spartan</strong>-3、 <strong>Spartan</strong>-IIE、<strong>Spartan</strong>-IIAdditive White Gaussian Noise <strong>Xilinx</strong>, Inc. LogiCORE X <strong>Spartan</strong>-3ADPCM, 128 Simplex (CS4125)ADPCM, 16 Simplex (CS4110)AmphionSemiconductor, Ltd.AmphionSemiconductor, Ltd.AllianceCORE X <strong>Spartan</strong>-3、 <strong>Spartan</strong>-IIEAllianceCORE X <strong>Spartan</strong>-3、 <strong>Spartan</strong>-IIEAES Encryption CAST, Inc. AllianceCORE X <strong>Spartan</strong>-3、 <strong>Spartan</strong>-IIE<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 427<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 14 章 : IP コ アの 使 用表 14-1 : <strong>Spartan</strong>-3 ジェネレーションの IP コ アのサポー ト ( 続 き)製 品 名 ベンダー 名 タ イ プ SignOnce サポー ト デバイスAES Encryptor/Decryptor(AES_CORE_G2_XE)Algotronix, Ltd. Candidate コア X<strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3、<strong>Spartan</strong>-IIEAES Fast Encryptor (Helion)AES Standard Encryptor/DecryptorAES Tiny Encryptor/DecryptorATA Host Controller (HCL ATA)ATA-4/UDMA-33 IDE Host(Nuvation)ATA-5/UDMA-66 IDE Host(Nuvation)Helion TechnologyLimitedHelion TechnologyLimitedHelion TechnologyLimitedHCL TechnologiesLtd.Nuvation ResearchCorporationNuvation ResearchCorporationAllianceCORE X <strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3AllianceCORE X <strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3AllianceCORE X <strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3AllianceCORE X <strong>Spartan</strong>-3、 <strong>Spartan</strong>-IIECandidate コア<strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3Candidate コア<strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3ATM Adaptation Layer 5 (AAL5) ModelWare, Inc. AllianceCORE X <strong>Spartan</strong>-3Convolutional Encoder <strong>Xilinx</strong>, Inc. LogiCORECRC-32 for 10 Gbps OC192 systems(CORE-CRC-128)<strong>Spartan</strong>-3A DSP、<strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3、<strong>Spartan</strong>-IIE、 <strong>Spartan</strong>-IICalyptech Pty Ltd. AllianceCORE X <strong>Spartan</strong>-3Deframer, STM0/OC1, STM1/OC3,STM4/OC12 (sdh.dfrm.001)Demapper, STM0/OC1, STM1/OC3,STM4/OC12 (sdh.dmap.001)Aliathon Ltd. Candidate コア X <strong>Spartan</strong>-3Aliathon Ltd. Candidate コア X <strong>Spartan</strong>-3DES Encryption CAST, Inc. Candidate コア X<strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3、<strong>Spartan</strong>-IIEDES3 Encryption CAST, Inc. AllianceCORE X <strong>Spartan</strong>-3、 <strong>Spartan</strong>-IIEDigital Up Converter <strong>Xilinx</strong>, Inc. LogiCORE <strong>Spartan</strong>-3Ethernet 1000BASE-XPCS/PMA or SGMII<strong>Xilinx</strong>, Inc. LogiCORE X<strong>Spartan</strong>-3A、<strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3、Ethernet MAC, 10/100 (MAC) CAST, Inc. AllianceCORE X <strong>Spartan</strong>-3、 <strong>Spartan</strong>-IIEEthernet Statistics <strong>Xilinx</strong>, Inc. LogiCORE XFast AES decryptorHelion TechnologyLimited<strong>Spartan</strong>-3A DSP、<strong>Spartan</strong>-3A、<strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3、Candidate コア X <strong>Spartan</strong>-3、 <strong>Spartan</strong>-IIEFramer, SONET OC-3 to OC-768(Xelic)Xelic, Inc. Candidate コア X <strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3428 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


<strong>Spartan</strong>-3 ジェネレーションの IP コアR表 14-1 : <strong>Spartan</strong>-3 ジェネレーションの IP コ アのサポー ト ( 続 き)製 品 名 ベンダー 名 タ イ プ SignOnce サポー ト デバイスFramer, STM0/OC1, STM1/OC3,STM4/OC12 (sdh.frm.001)Aliathon Ltd. Candidate コア X <strong>Spartan</strong>-3Generic Framing Procedure(DO-DI-GFP)Gigabit Ethernet Media AccessController (GEMAC)HDLC, Single-Channel(MC-XIL-HDLC)Inverse Multiplexing for ATM (IMA)for PhyCore (005-002-002)IPsec ESP Security Engine (Helion)Mapper, STM0/OC1, STM1/OC3,STM4/OC12 (sdh.map.001)<strong>Xilinx</strong>, Inc. LogiCORE X <strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3<strong>Xilinx</strong>, Inc. LogiCORE XAvnet DesignServices<strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3、<strong>Spartan</strong>-3AAllianceCORE X <strong>Spartan</strong>-3Phystream Ltd. Candidate コア X <strong>Spartan</strong>-3Helion TechnologyLimitedAllianceCORE X <strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3Aliathon Ltd. Candidate コア X <strong>Spartan</strong>-3MD5 Message Digest Algorithm CAST, Inc. AllianceCORE XMulti Rate Performance Monitor,2.5 Gb/s (CORE-PM-MR)OPB 10/100 Ethernet MAC Lite(OPB EMAC Lite)<strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3、<strong>Spartan</strong>-IIECalyptech Pty Ltd. AllianceCORE X <strong>Spartan</strong>-3<strong>Xilinx</strong>, Inc. LogiCORE X<strong>Spartan</strong>-3A、 <strong>Spartan</strong>-3、<strong>Spartan</strong>-IIEOPB 10/100 Ethernet Media AccessController (EMAC)OPB ATM Utopia Level 2 Master andSlave<strong>Xilinx</strong>, Inc. LogiCORE X<strong>Spartan</strong>-3A、 <strong>Spartan</strong>-3、<strong>Spartan</strong>-IIE、 <strong>Spartan</strong>-II<strong>Xilinx</strong>, Inc. LogiCORE <strong>Spartan</strong>-3、 <strong>Spartan</strong>-IIEOPB Single Channel HDLC Controller <strong>Xilinx</strong>, Inc. LogiCORE <strong>Spartan</strong>-3、 <strong>Spartan</strong>-IIPacket Queue <strong>Xilinx</strong>, Inc. LogiCORE XPCI Express (PExCore-254)Pseudorandom Number Generator(ANSI X9.17/X9.31 PRNG)NitAl ConsultingServices, Inc.Helion TechnologyLimited<strong>Spartan</strong>-3A DSP、<strong>Spartan</strong>-3A、<strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3Candidate コア X <strong>Spartan</strong>-3AllianceCOREX<strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3、<strong>Spartan</strong>-IIEReed-Solomon Decoder (RSDX1)ASICS World Service,Ltd.Candidate コア X <strong>Spartan</strong>-3、 <strong>Spartan</strong>-IIEReed-Solomon Decoder <strong>Xilinx</strong>, Inc. LogiCORE X<strong>Spartan</strong>-3A DSP、<strong>Spartan</strong>-3A、<strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 429<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 14 章 : IP コ アの 使 用表 14-1 : <strong>Spartan</strong>-3 ジェネレーションの IP コ アのサポー ト ( 続 き)製 品 名 ベンダー 名 タ イ プ SignOnce サポー ト デバイスReed-Solomon Encoder (RSEX1)ASICS World Service,Ltd.Candidate コア X <strong>Spartan</strong>-3、 <strong>Spartan</strong>-IIEReed-Solomon Encoder <strong>Xilinx</strong>, Inc. LogiCORE X<strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3、<strong>Spartan</strong>-IIESDLC Controller (SDLC) CAST, Inc. AllianceCORE X <strong>Spartan</strong>-3、 <strong>Spartan</strong>-IIESerial ATA I/II Host Controller(SATA_H1)SHA-1, SHA-224, SHA-256 and MD5,Tiny with HMAC (Helion)SHA-1,SHA-256 and MD5 Hashing,Fast (Helion)ASICS World Service,Ltd.Helion TechnologyLimitedHelion TechnologyLimitedCandidate コア X <strong>Spartan</strong>-3AllianceCORE X <strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3AllianceCORE X <strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3SPI Master Interface (HCL_SPI_M)SPI-3 Link Layer Interface,Multi-channelHCL TechnologiesLtd.Candidate コア X <strong>Spartan</strong>-3、 <strong>Spartan</strong>-IIE<strong>Xilinx</strong>, Inc. LogiCORE X<strong>Spartan</strong>-3A DSP、<strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3SPI-3 Physical Layer Interface,Multi-channelSPI-4 Phase 2 Interface Solutions(DO-DI-POSL4MC)<strong>Xilinx</strong>, Inc. LogiCORE X<strong>Xilinx</strong>, Inc. LogiCORE X<strong>Spartan</strong>-3A DSP、<strong>Spartan</strong>-3A、<strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3<strong>Spartan</strong>-3A DSP、<strong>Spartan</strong>-3A、<strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3SPI-Master/Slave (DSPI) Digital Core Design Candidate コア XSPI-Slave (DSPIS) Digital Core Design Candidate コア X<strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3、<strong>Spartan</strong>-IIE<strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3、<strong>Spartan</strong>-IIETDES AMBA Platform SoC Solutions, LLC AllianceCORE X <strong>Spartan</strong>-3、 <strong>Spartan</strong>-IIETDM Interface, Multi-portProgrammablePhystream Ltd. Candidate コア X <strong>Spartan</strong>-3TDM Switch (TDM_H110) Calyptech Pty Ltd. AllianceCORE X <strong>Spartan</strong>-3、 <strong>Spartan</strong>-IITri-Mode Ethernet Media AccessController (TEMAC)<strong>Xilinx</strong>, Inc. LogiCORE X<strong>Spartan</strong>-3A DSP、<strong>Spartan</strong>-3A、<strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3Turbo Convolutional Code Decoder,CDMA2000/3GPP2<strong>Xilinx</strong>, Inc.LogiCORE<strong>Spartan</strong>-3A DSP、<strong>Spartan</strong>-3A、<strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3、<strong>Spartan</strong>-II430 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


<strong>Spartan</strong>-3 ジェネレーションの IP コアR表 14-1 : <strong>Spartan</strong>-3 ジェネレーションの IP コ アのサポー ト ( 続 き)製 品 名 ベンダー 名 タ イ プ SignOnce サポー ト デバイスTurbo Convolutional Code Encoder,CDMA2000/3GPP2<strong>Xilinx</strong>, Inc.LogiCORE<strong>Spartan</strong>-3A DSP、<strong>Spartan</strong>-3A、<strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3、<strong>Spartan</strong>-IITurbo Product Code (TPC) Decoder <strong>Xilinx</strong>, Inc. LogiCORE <strong>Spartan</strong>-3Turbo Product Code (TPC) Encoder <strong>Xilinx</strong>, Inc. LogiCORE <strong>Spartan</strong>-3UART, Generic Compact(MC-XIL-UART)Memec Design AllianceCORE X <strong>Spartan</strong>-3UMTS/3GPP Turbo ConvolutionalDecoderUMTS/3GPP Turbo ConvolutionalEncoder<strong>Xilinx</strong>, Inc.<strong>Xilinx</strong>, Inc.LogiCORELogiCORE<strong>Spartan</strong>-3A DSP、<strong>Spartan</strong>-3A、<strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3<strong>Spartan</strong>-3A、<strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3USB 1.1 Function Controller (CUSB) CAST, Inc. AllianceCORE X <strong>Spartan</strong>-3、 <strong>Spartan</strong>-IIEUSB 1.1 Host (USB1_HOST)ASICS World Service,Ltd.Candidate コア X <strong>Spartan</strong>-3、 <strong>Spartan</strong>-IIEUSB 2.0 Function Controller (CUSB2) CAST, Inc. AllianceCORE X <strong>Spartan</strong>-3、 <strong>Spartan</strong>-IIEUSB 2.0 Function Controller(USB2_DEV)USB 2.0 On-The-Go (USB2_OTG)ASICS World Service,Ltd.ASICS World Service,Ltd.Candidate コア X <strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3Candidate コア X <strong>Spartan</strong>-3、 <strong>Spartan</strong>-IIEUSB Function Controller with On-ChipPeripheral Bus (CUSB_OPB)CAST, Inc. AllianceCORE X <strong>Spartan</strong>-3、 <strong>Spartan</strong>-IIEUTOPIA, Multi-port Serial Bridge Phystream Ltd. Candidate コア X <strong>Spartan</strong>-3Viterbi Decoder <strong>Xilinx</strong>, Inc. LogiCORE X<strong>Spartan</strong>-3A、<strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3、<strong>Spartan</strong>-IIEViterbi Decoder,(IEEE 802-Compatible)<strong>Xilinx</strong>, Inc. LogiCORE X <strong>Spartan</strong>-3、 <strong>Spartan</strong>-IIEZ80 Serial I/O Controller (CZ80SIO) CAST, Inc. AllianceCORE X <strong>Spartan</strong>-3、 <strong>Spartan</strong>-IIEデジ タル 信 号 処 理Additive White Gaussian Noise <strong>Xilinx</strong>, Inc. LogiCORE X <strong>Spartan</strong>-3ADPCM, 128 Simplex (CS4125)ADPCM, 16 Simplex (CS4110)AmphionSemiconductor, Ltd.AmphionSemiconductor, Ltd.AllianceCORE X <strong>Spartan</strong>-3、 <strong>Spartan</strong>-IIEAllianceCORE X <strong>Spartan</strong>-3、 <strong>Spartan</strong>-IIE<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 431<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 14 章 : IP コ アの 使 用表 14-1 : <strong>Spartan</strong>-3 ジェネレーションの IP コ アのサポー ト ( 続 き)製 品 名 ベンダー 名 タ イ プ SignOnce サポー ト デバイスConvolutional Encoder <strong>Xilinx</strong>, Inc. LogiCORE<strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3、<strong>Spartan</strong>-IIE、 <strong>Spartan</strong>-IICORDIC <strong>Xilinx</strong>, Inc. LogiCORE<strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3、<strong>Spartan</strong>-IIE、 <strong>Spartan</strong>-IIDigital Up Converter <strong>Xilinx</strong>, Inc. LogiCORE <strong>Spartan</strong>-3Direct Digital Synthesizer <strong>Xilinx</strong>, Inc. LogiCOREDiscrete Wavelet Transform(BA113FDWT)<strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3、<strong>Spartan</strong>-IIE、 <strong>Spartan</strong>-IIBarco-Silex AllianceCORE X <strong>Spartan</strong>-3Divider <strong>Xilinx</strong>, Inc. LogiCOREDVB-S.2 FEC Encoder <strong>Xilinx</strong>, Inc. LogiCORE X<strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3、<strong>Spartan</strong>-IIE、 <strong>Spartan</strong>-II<strong>Spartan</strong>-3A DSP、<strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3Fast Fourier Transform <strong>Xilinx</strong>, Inc. LogiCORE<strong>Spartan</strong>-3A、<strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3FFT, Pipelined (Vectis HiSpeed) RF Engines, Ltd. AllianceCORE <strong>Spartan</strong>-3FFT, Pipelined (Vectis-QuadSpeed) RF Engines, Ltd. AllianceCORE <strong>Spartan</strong>-3FFT/IFFT (FC100)SundanceMultiprocessorTechnology LtdCandidate コア<strong>Spartan</strong>-3FIR Compiler <strong>Xilinx</strong>, Inc. LogiCORE<strong>Spartan</strong>-3A DSP、<strong>Spartan</strong>-3A、<strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3Floating-Point Operators <strong>Xilinx</strong>, Inc. LogiCORE <strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3High Data Rate Demodulator(Zaltys HDRM-D)Silicon InfusionLimitedCandidate コア X <strong>Spartan</strong>-3IEEE 802.16E CTC Decoder <strong>Xilinx</strong>, Inc. LogiCORE X <strong>Spartan</strong>-3、 <strong>Spartan</strong>-IIIEEE 802.16e CTC Encoder <strong>Xilinx</strong>, Inc. LogiCORE<strong>Spartan</strong>-3A DSP、<strong>Spartan</strong>-3A、<strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3IEEE 802.16e LDPC Encoder <strong>Xilinx</strong>, Inc. LogiCORE <strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3J.83 Universal Modulator Annex A/C <strong>Xilinx</strong>, Inc. LogiCORE X <strong>Spartan</strong>-3J.83 Universal Modulator Annex B <strong>Xilinx</strong>, Inc. LogiCORE X <strong>Spartan</strong>-3Linear Feedback Shift Register (LFSR) <strong>Xilinx</strong>, Inc. LogiCORE <strong>Spartan</strong>-3、 <strong>Spartan</strong>-IIEReed-Solomon Decoder (RSDX1)ASICS World Service,Ltd.Candidate コア X <strong>Spartan</strong>-3、 <strong>Spartan</strong>-IIE432 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


<strong>Spartan</strong>-3 ジェネレーションの IP コアR表 14-1 : <strong>Spartan</strong>-3 ジェネレーションの IP コ アのサポー ト ( 続 き)製 品 名 ベンダー 名 タ イ プ SignOnce サポー ト デバイスReed-Solomon Decoder <strong>Xilinx</strong>, Inc. LogiCORE XReed-Solomon Encoder (RSEX1)ASICS World Service,Ltd.<strong>Spartan</strong>-3A、<strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3、Candidate コア X <strong>Spartan</strong>-3、 <strong>Spartan</strong>-IIEReed-Solomon Encoder <strong>Xilinx</strong>, Inc. LogiCORE XSine Cosine Look Up Table <strong>Xilinx</strong>, Inc. LogiCORE<strong>Spartan</strong>-3A DSP、<strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3、<strong>Spartan</strong>-IIE<strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3、<strong>Spartan</strong>-IIE、 <strong>Spartan</strong>-IITMS32025 DSP Processor (C32025) CAST, Inc. AllianceCORE X <strong>Spartan</strong>-3、 <strong>Spartan</strong>-IIETMS32025TX Digital SignalProcessor (C32025TX)CAST, Inc. AllianceCORE X <strong>Spartan</strong>-3、 <strong>Spartan</strong>-IIETurbo Product Code (TPC) Decoder <strong>Xilinx</strong>, Inc. LogiCORE <strong>Spartan</strong>-3Turbo Product Code (TPC) Encoder <strong>Xilinx</strong>, Inc. LogiCORE <strong>Spartan</strong>-3Viterbi Decoder <strong>Xilinx</strong>, Inc. LogiCORE X<strong>Spartan</strong>-3A、<strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3、<strong>Spartan</strong>-IIEViterbi Decoder,(IEEE 802-Compatible)<strong>Xilinx</strong>, Inc. LogiCORE X<strong>Spartan</strong>-3A DSP、<strong>Spartan</strong>-3A、<strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3、<strong>Spartan</strong>-IIEWiMAX FEC Pack <strong>Xilinx</strong>, Inc. LogiCORE X <strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3数 値 計 算Accumulator <strong>Xilinx</strong>, Inc. LogiCORE<strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3、<strong>Spartan</strong>-IIE、 <strong>Spartan</strong>-IIAdder/Subtracter <strong>Xilinx</strong>, Inc. LogiCORE<strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3、<strong>Spartan</strong>-IIE、 <strong>Spartan</strong>-IIComparator <strong>Xilinx</strong>, Inc. LogiCORE <strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3Complex Multiplier <strong>Xilinx</strong>, Inc. LogiCORE<strong>Spartan</strong>-3A DSP、<strong>Spartan</strong>-3A、<strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3CORDIC <strong>Xilinx</strong>, Inc. LogiCORE<strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3、<strong>Spartan</strong>-IIE、 <strong>Spartan</strong>-IIDiscrete Wavelet Transform(BA113FDWT)Barco-Silex AllianceCORE X <strong>Spartan</strong>-3FFT, Pipelined (Vectis HiSpeed) RF Engines, Ltd. AllianceCORE <strong>Spartan</strong>-3FFT, Pipelined (Vectis-QuadSpeed) RF Engines, Ltd. AllianceCORE <strong>Spartan</strong>-3<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 433<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 14 章 : IP コ アの 使 用表 14-1 : <strong>Spartan</strong>-3 ジェネレーションの IP コ アのサポー ト ( 続 き)製 品 名 ベンダー 名 タ イ プ SignOnce サポー ト デバイスFFT/IFFT (FC100)SundanceMultiprocessorTechnology LtdCandidate コア<strong>Spartan</strong>-3Floating Point Adder (DFPADD) Digital Core Design AllianceCORE X<strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3、<strong>Spartan</strong>-IIEFloating Point Comparator(DFPCOMP)Digital Core Design AllianceCORE X <strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3Floating Point Divider (DFPDIV) Digital Core Design AllianceCORE X<strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3、<strong>Spartan</strong>-IIEFloating Point Multiplier (DFPMUL) Digital Core Design AllianceCORE X<strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3、<strong>Spartan</strong>-IIEFloating Point Square Root Operator(DFPSQRT)Digital Core Design AllianceCORE X <strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3Floating Point to Integer Converter(DFP2INT)Digital Core Design AllianceCORE X <strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3Floating-Point Operators <strong>Xilinx</strong>, Inc. LogiCORE <strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3Integer to Floating Point Converter(DINT2FP)Digital Core Design AllianceCORE X <strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3Multiplier Accumulator <strong>Xilinx</strong>, Inc. LogiCOREMultiplier <strong>Xilinx</strong>, Inc. LogiCORESine Cosine Look Up Table <strong>Xilinx</strong>, Inc. LogiCORE<strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3、<strong>Spartan</strong>-IIE、 <strong>Spartan</strong>-II<strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3、<strong>Spartan</strong>-IIE、 <strong>Spartan</strong>-II<strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3、<strong>Spartan</strong>-IIE、 <strong>Spartan</strong>-IIメモリ インターフェイスおよび 格 納 エレメントAsynchronous FIFO <strong>Xilinx</strong>, Inc. LogiCOREBlock Memory Generator <strong>Xilinx</strong>, Inc. LogiCORE XBUFT-based Multiplexer Slice <strong>Xilinx</strong>, Inc. LogiCORE<strong>Spartan</strong>-3A DSP、<strong>Spartan</strong>-3A、<strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3、<strong>Spartan</strong>-IIE、 <strong>Spartan</strong>-II<strong>Spartan</strong>-3A DSP、<strong>Spartan</strong>-3A、<strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3、<strong>Spartan</strong>-IIE、 <strong>Spartan</strong>-II<strong>Spartan</strong>-3A DSP、<strong>Spartan</strong>-3A、<strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3、<strong>Spartan</strong>-IIE、 <strong>Spartan</strong>-II434 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


<strong>Spartan</strong>-3 ジェネレーションの IP コアR表 14-1 : <strong>Spartan</strong>-3 ジェネレーションの IP コ アのサポー ト ( 続 き)製 品 名 ベンダー 名 タ イ プ SignOnce サポー ト デバイスContent Addressable Memory (CAM) <strong>Xilinx</strong>, Inc. LogiCOREDistributed Memory Generator <strong>Xilinx</strong>, Inc. LogiCORE XDistributed Memory <strong>Xilinx</strong>, Inc. LogiCOREDual-Port Block Memory <strong>Xilinx</strong>, Inc. LogiCOREFD-based Parallel Register <strong>Xilinx</strong>, Inc. LogiCOREFD-based Shift Register <strong>Xilinx</strong>, Inc. LogiCOREFIFO Generator <strong>Xilinx</strong>, Inc. LogiCORELD-based Parallel Latch <strong>Xilinx</strong>, Inc. LogiCORE<strong>Spartan</strong>-3A DSP、<strong>Spartan</strong>-3A、<strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3、<strong>Spartan</strong>-IIE、 <strong>Spartan</strong>-II<strong>Spartan</strong>-3A DSP、<strong>Spartan</strong>-3A、<strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3、<strong>Spartan</strong>-IIE、 <strong>Spartan</strong>-II<strong>Spartan</strong>-3A DSP、<strong>Spartan</strong>-3A、<strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3、<strong>Spartan</strong>-IIE、 <strong>Spartan</strong>-II<strong>Spartan</strong>-3A DSP、<strong>Spartan</strong>-3A、<strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3、<strong>Spartan</strong>-IIE、 <strong>Spartan</strong>-II<strong>Spartan</strong>-3A DSP、<strong>Spartan</strong>-3A、<strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3、<strong>Spartan</strong>-IIE、 <strong>Spartan</strong>-II<strong>Spartan</strong>-3A DSP、<strong>Spartan</strong>-3A、<strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3、<strong>Spartan</strong>-IIE、 <strong>Spartan</strong>-II<strong>Spartan</strong>-3A DSP、<strong>Spartan</strong>-3A、<strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3、<strong>Spartan</strong>-IIE、 <strong>Spartan</strong>-II<strong>Spartan</strong>-3A DSP、<strong>Spartan</strong>-3A、<strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3、<strong>Spartan</strong>-IIE、 <strong>Spartan</strong>-IIRAM-based Shift Register <strong>Xilinx</strong>, Inc. LogiCORESDRAM Controller, DDR(DDR-XS-XILINX)<strong>Spartan</strong>-3A DSP、<strong>Spartan</strong>-3A、<strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3、<strong>Spartan</strong>-IIE、 <strong>Spartan</strong>-IIArray Electronics AllianceCORE X <strong>Spartan</strong>-3SDRAM Controller, DDR (NWL) Northwest Logic AllianceCORE X<strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3、<strong>Spartan</strong>-IIE<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 435<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 14 章 : IP コ アの 使 用表 14-1 : <strong>Spartan</strong>-3 ジェネレーションの IP コ アのサポー ト ( 続 き)製 品 名 ベンダー 名 タ イ プ SignOnce サポー ト デバイスSDRAM Controller, DDR/DDR2(EP532)Eureka Technology Candidate コア X <strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3SDRAM Controller, DDR2 (NWL) Northwest Logic AllianceCORE X <strong>Spartan</strong>-XL、 <strong>Spartan</strong>-3SDRAM Controller, SDR (NWL) Northwest Logic AllianceCORE X<strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3、<strong>Spartan</strong>-IIESDRAM Controller, SDR(SDR-XS-XILINX)Array Electronics Candidate コア X <strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3Single-Port Block Memory <strong>Xilinx</strong>, Inc. LogiCORESynchronous FIFO <strong>Xilinx</strong>, Inc. LogiCORE<strong>Spartan</strong>-3A DSP、<strong>Spartan</strong>-3A、<strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3、<strong>Spartan</strong>-IIE、 <strong>Spartan</strong>-II<strong>Spartan</strong>-3、 <strong>Spartan</strong>-IIE、<strong>Spartan</strong>-IIエンベデッ ド プロセッサ16550 UART w/ FIFOs (D16550) Digital Core Design AllianceCORE X16750 UART w/ FIFOs (D16750) Digital Core Design Candidate コア X<strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3、<strong>Spartan</strong>-IIE<strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3、<strong>Spartan</strong>-IIE16750 UART w/FIFOs and sync CPUInterface (H16750S)2910A Microprogram Controller(C2910A)68000 Compatible Microprocessor(C68000)CAST, Inc. Candidate コア X <strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3CAST, Inc. AllianceCORE X <strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3CAST, Inc. AllianceCORE X <strong>Spartan</strong>-3、 <strong>Spartan</strong>-IIE68681 DUART (ML68681) Millogic Ltd Candidate コア <strong>Spartan</strong>-3E、 <strong>Spartan</strong>-38051 High-speed 8-bit RISCMicrocontroller (R80515)8051 Microcontroller, PicoBlazeEmulated (PB8051-MX/TF)80C51 Compatible RISCMicrocontroller (R8051)CAST, Inc. AllianceCORE X <strong>Spartan</strong>-3、 <strong>Spartan</strong>-IIERoman-Jones, Inc. AllianceCORE X<strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3、<strong>Spartan</strong>-IIECAST, Inc. AllianceCORE X <strong>Spartan</strong>-3、 <strong>Spartan</strong>-IIE82C51 USART (ML82C51) Millogic Ltd Candidate コア <strong>Spartan</strong>-3E、 <strong>Spartan</strong>-385C30 Serial CommunicationController (ML85C30)Millogic Ltd Candidate コア <strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3ATA Host Controller (HCL ATA)HCL TechnologiesLtd.AllianceCORE X <strong>Spartan</strong>-3、 <strong>Spartan</strong>-IIEATA-4/UDMA-33 IDE Host(Nuvation)Nuvation ResearchCorporationCandidate コア<strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3436 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


<strong>Spartan</strong>-3 ジェネレーションの IP コアR表 14-1 : <strong>Spartan</strong>-3 ジェネレーションの IP コ アのサポー ト ( 続 き)製 品 名 ベンダー 名 タ イ プ SignOnce サポー ト デバイスATA-5/UDMA-66 IDE Host(Nuvation)Nuvation ResearchCorporationCandidate コアBlock RAM (BRAM) Block (v1.00a) <strong>Xilinx</strong>, Inc. LogiCORECAN Bus Controller(MC-XIL-OPB-XCAN)Channelized Direct Memory Accessand Scatter GatherAvnet DesignServices<strong>Xilinx</strong>, Inc.<strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3<strong>Spartan</strong>-3、 <strong>Spartan</strong>-IIE、<strong>Spartan</strong>-IIAllianceCORE X <strong>Spartan</strong>-3、 <strong>Spartan</strong>-IIELogiCORE<strong>Spartan</strong>-3、 <strong>Spartan</strong>-IIE、<strong>Spartan</strong>-IIChipScope OPB IBA <strong>Xilinx</strong>, Inc. LogiCOREChipScope PLB IBA <strong>Xilinx</strong>, Inc. LogiCORECompact Video Controller (logiCVC) Xylon d.o.o. AllianceCORE X<strong>Spartan</strong>-3、 <strong>Spartan</strong>-IIE、<strong>Spartan</strong>-II<strong>Spartan</strong>-3、 <strong>Spartan</strong>-IIE、<strong>Spartan</strong>-II<strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3、<strong>Spartan</strong>-IIEDCR Interrupt Controller (DO-EDK) <strong>Xilinx</strong>, Inc. LogiCORE<strong>Spartan</strong>-3、 <strong>Spartan</strong>-IIE、<strong>Spartan</strong>-IIDigital Clock Manager (DCM) Module <strong>Xilinx</strong>, Inc. LogiCORE <strong>Spartan</strong>-3Fixed Interval Timer (FIT) <strong>Xilinx</strong>, Inc. LogiCORE<strong>Spartan</strong>-3A、 <strong>Spartan</strong>-3、<strong>Spartan</strong>-IIE、 <strong>Spartan</strong>-IIFSL_V20 <strong>Xilinx</strong>, Inc. LogiCOREIPsec ESP Security Engine (Helion)Helion TechnologyLimitedLMB BRAM Interface Controller <strong>Xilinx</strong>, Inc. LogiCOREMC68230 Parallel Interface/Timer(ML68230)<strong>Spartan</strong>-3A、 <strong>Spartan</strong>-3、<strong>Spartan</strong>-IIE、 <strong>Spartan</strong>-IIAllianceCORE X <strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3<strong>Spartan</strong>-3A、 <strong>Spartan</strong>-3、<strong>Spartan</strong>-IIE、 <strong>Spartan</strong>-IIMillogic Ltd Candidate コア <strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3MicroBlaze Parameterized Netlist <strong>Xilinx</strong>, Inc. LogiCORE<strong>Spartan</strong>-3、 <strong>Spartan</strong>-IIE、<strong>Spartan</strong>-IIMulti Channel OPB DDR Controller <strong>Xilinx</strong>, Inc. LogiCORE <strong>Spartan</strong>-3A、 <strong>Spartan</strong>-3Multi Channel OPB DDR2 Controller <strong>Xilinx</strong>, Inc. LogiCORE <strong>Spartan</strong>-3A、 <strong>Spartan</strong>-3Multi Channel OPB EMC Controller <strong>Xilinx</strong>, Inc. LogiCORE <strong>Spartan</strong>-3A、 <strong>Spartan</strong>-3Multi-Channel-OPB (MCH_OPB)SDRAM Controller<strong>Xilinx</strong>, Inc.LogiCORE<strong>Spartan</strong>-3A、 <strong>Spartan</strong>-3、<strong>Spartan</strong>-IIE、 <strong>Spartan</strong>-IIOPB 16550 UART Controller <strong>Xilinx</strong>, Inc. LogiCORE<strong>Spartan</strong>-3A、 <strong>Spartan</strong>-3、<strong>Spartan</strong>-IIEOPB Arbiter <strong>Xilinx</strong>, Inc. LogiCORE <strong>Spartan</strong>-3、 <strong>Spartan</strong>-IIE<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 437<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 14 章 : IP コ アの 使 用表 14-1 : <strong>Spartan</strong>-3 ジェネレーションの IP コ アのサポー ト ( 続 き)製 品 名 ベンダー 名 タ イ プ SignOnce サポー ト デバイスOPB ATM Utopia Level 2Master and Slave<strong>Xilinx</strong>, Inc. LogiCORE <strong>Spartan</strong>-3、 <strong>Spartan</strong>-IIEOPB BRAM Controller <strong>Xilinx</strong>, Inc. LogiCOREOPB Bus Structure <strong>Xilinx</strong>, Inc. LogiCOREOPB Central DMA Controller <strong>Xilinx</strong>, Inc. LogiCOREOPB DDR SDRAM Controller <strong>Xilinx</strong>, Inc. LogiCORE<strong>Spartan</strong>-3A、 <strong>Spartan</strong>-3、<strong>Spartan</strong>-IIE<strong>Spartan</strong>-3A、<strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3、<strong>Spartan</strong>-IIE<strong>Spartan</strong>-3A、 <strong>Spartan</strong>-3、<strong>Spartan</strong>-IIE、 <strong>Spartan</strong>-II<strong>Spartan</strong>-3A、<strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3、<strong>Spartan</strong>-IIEOPB Delta-Sigma Analog to DigitalConverter (ADC)<strong>Xilinx</strong>, Inc.LogiCORE<strong>Spartan</strong>-3A、 <strong>Spartan</strong>-3、<strong>Spartan</strong>-IIE、 <strong>Spartan</strong>-IIOPB Delta-Sigma Digital to AnalogConverter (DAC)<strong>Xilinx</strong>, Inc.LogiCORE<strong>Spartan</strong>-3A、 <strong>Spartan</strong>-3、<strong>Spartan</strong>-IIE、 <strong>Spartan</strong>-IIOPB EMC (DO-EDK) <strong>Xilinx</strong>, Inc. LogiCOREOPB GPIO <strong>Xilinx</strong>, Inc. LogiCOREOPB IIC Master and Slave BusController (DO-DI-IIC-SD)<strong>Xilinx</strong>, Inc.LogiCOREOPB Interrupt Controller <strong>Xilinx</strong>, Inc. LogiCOREOPB IPIF Architecture <strong>Xilinx</strong>, Inc. LogiCOREOPB PCI Arbiter <strong>Xilinx</strong>, Inc. LogiCOREOPB SDRAM Controller <strong>Xilinx</strong>, Inc. LogiCORE<strong>Spartan</strong>-3A、 <strong>Spartan</strong>-3、<strong>Spartan</strong>-IIE、 <strong>Spartan</strong>-II<strong>Spartan</strong>-3A、 <strong>Spartan</strong>-3、<strong>Spartan</strong>-IIE<strong>Spartan</strong>-3A、 <strong>Spartan</strong>-3、<strong>Spartan</strong>-IIE<strong>Spartan</strong>-3A、 <strong>Spartan</strong>-3、<strong>Spartan</strong>-IIE<strong>Spartan</strong>-3A、<strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3、<strong>Spartan</strong>-IIE<strong>Spartan</strong>-3A、 <strong>Spartan</strong>-3、<strong>Spartan</strong>-II<strong>Spartan</strong>-3A、 <strong>Spartan</strong>-3、<strong>Spartan</strong>-IIOPB Single Channel HDLC Controller <strong>Xilinx</strong>, Inc. LogiCORE <strong>Spartan</strong>-3、 <strong>Spartan</strong>-IIOPB SPI Master and Slave BusController<strong>Xilinx</strong>, Inc.LogiCORE<strong>Spartan</strong>-3A、 <strong>Spartan</strong>-3、<strong>Spartan</strong>-IIEOPB System ACE Interface Controller(DO-EDK)<strong>Xilinx</strong>, Inc. LogiCORE <strong>Spartan</strong>-3、 <strong>Spartan</strong>-IIEOPB TimeBase/WatchDog Timer(WDT)<strong>Xilinx</strong>, Inc.LogiCORE<strong>Spartan</strong>-3A、 <strong>Spartan</strong>-3、<strong>Spartan</strong>-IIE438 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


<strong>Spartan</strong>-3 ジェネレーションの IP コアR表 14-1 : <strong>Spartan</strong>-3 ジェネレーションの IP コ アのサポー ト ( 続 き)製 品 名 ベンダー 名 タ イ プ SignOnce サポー ト デバイスOPB Timer/Counter <strong>Xilinx</strong>, Inc. LogiCORE<strong>Spartan</strong>-3A、 <strong>Spartan</strong>-3、<strong>Spartan</strong>-IIEOPB to OPB Bridge (Lite Version) <strong>Xilinx</strong>, Inc. LogiCORE <strong>Spartan</strong>-3、 <strong>Spartan</strong>-IIEOPB UART 16450 Controller <strong>Xilinx</strong>, Inc. LogiCOREOPB UART Lite <strong>Xilinx</strong>, Inc. LogiCORE<strong>Spartan</strong>-3A、 <strong>Spartan</strong>-3、<strong>Spartan</strong>-II<strong>Spartan</strong>-3A、 <strong>Spartan</strong>-3、<strong>Spartan</strong>-IIEOPB ZBT Controller (DO-EDK) <strong>Xilinx</strong>, Inc. LogiCORE <strong>Spartan</strong>-3、 <strong>Spartan</strong>-IIEOPB/PLB PCI32 Interface <strong>Xilinx</strong>, Inc. LogiCORE<strong>Spartan</strong>-3A、 <strong>Spartan</strong>-3、<strong>Spartan</strong>-IIEPCI Host Bridge (PCI-HB) CAST, Inc. AllianceCORE X <strong>Spartan</strong>-3、 <strong>Spartan</strong>-IIEPIC1655x Fast RISC Microcontroller(DFPIC1655X)PIC16C55x Fast RISC Microcontroller(DRPIC1655X)PIC16C6x Fast RISC Microcontroller(DRPIC166X)PicoBlaze for <strong>Spartan</strong>-3, Virtex-II, andVirtex-II Pro <strong>FPGA</strong>sDigital Core Design AllianceCORE XDigital Core Design AllianceCORE XDigital Core Design AllianceCORE X<strong>Xilinx</strong>, Inc.<strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3、<strong>Spartan</strong>-IIE<strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3、<strong>Spartan</strong>-IIE<strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3、<strong>Spartan</strong>-IIE<strong>Spartan</strong>-3PLB ATMC <strong>Xilinx</strong>, Inc. LogiCORE <strong>Spartan</strong>-3、 <strong>Spartan</strong>-IIEPLB Ethernet 10/100 Mbps MediaAccess Controller (PLB EMAC)<strong>Xilinx</strong>, Inc.LogiCORE<strong>Spartan</strong>-3A、 <strong>Spartan</strong>-3、<strong>Spartan</strong>-IIEPLB to OPB Bridge (DO-EDK) <strong>Xilinx</strong>, Inc. LogiCORE <strong>Spartan</strong>-3、 <strong>Spartan</strong>-IIEPowerPC Bus Master (EP201) Eureka Technology AllianceCORE X <strong>Spartan</strong>-3、 <strong>Spartan</strong>-IIEPowerPC Bus Slave (EP100) Eureka Technology AllianceCORE X <strong>Spartan</strong>-3、 <strong>Spartan</strong>-IIESD/SDIO/MMC Host Controller(SDMMCH1)ASICS World Service,Ltd.Candidate コアX<strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3、<strong>Spartan</strong>-IIESDRAM Controller, DDR (EP525) Eureka Technology AllianceCORE X <strong>Spartan</strong>-3、 <strong>Spartan</strong>-IIESDRAM Controller, DDR (NWL) Northwest Logic AllianceCORE X<strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3、<strong>Spartan</strong>-IIESDRAM Controller, DDR/DDR2(EP532)Eureka Technology Candidate コア X <strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3SDRAM Controller, DDR2 (NWL) Northwest Logic AllianceCORE X <strong>Spartan</strong>-XL、 <strong>Spartan</strong>-3SDRAM Controller, SDR (NWL) Northwest Logic AllianceCORE X<strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3、<strong>Spartan</strong>-IIE<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 439<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 14 章 : IP コ アの 使 用表 14-1 : <strong>Spartan</strong>-3 ジェネレーションの IP コ アのサポー ト ( 続 き)製 品 名 ベンダー 名 タ イ プ SignOnce サポー ト デバイスSDRAM Controller, SDR(SDR-XS-XILINX)Array Electronics Candidate コア X <strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3Smart Card Interface (HCLT SCI)HCL TechnologiesLtd.Candidate コア X <strong>Spartan</strong>-3、 <strong>Spartan</strong>-IIETDES AMBA Platform SoC Solutions, LLC AllianceCORE X <strong>Spartan</strong>-3、 <strong>Spartan</strong>-IIETMS32025 DSP Processor (C32025) CAST, Inc. AllianceCORE X <strong>Spartan</strong>-3、 <strong>Spartan</strong>-IIETMS32025TX Digital SignalProcessor (C32025TX)UART, Generic Compact(MC-XIL-UART)USB Function Controller with On-ChipPeripheral Bus (CUSB_OPB)CAST, Inc. AllianceCORE X <strong>Spartan</strong>-3、 <strong>Spartan</strong>-IIEMemec Design AllianceCORE X <strong>Spartan</strong>-3CAST, Inc. AllianceCORE X <strong>Spartan</strong>-3、 <strong>Spartan</strong>-IIEUtil Bus Split Operation <strong>Xilinx</strong>, Inc. LogiCOREUtil Flop-Flop <strong>Xilinx</strong>, Inc. LogiCOREUtil Reduced Logic <strong>Xilinx</strong>, Inc. LogiCORE<strong>Spartan</strong>-3、 <strong>Spartan</strong>-IIE、<strong>Spartan</strong>-II<strong>Spartan</strong>-3、 <strong>Spartan</strong>-IIE、<strong>Spartan</strong>-II<strong>Spartan</strong>-3、 <strong>Spartan</strong>-IIE、<strong>Spartan</strong>-IIUtil Vector Logic <strong>Xilinx</strong>, Inc. LogiCORE<strong>Spartan</strong>-3、 <strong>Spartan</strong>-IIE、<strong>Spartan</strong>-IIVGA Compatible Cores(INT416-SM, INT416-SXGA)Intrinsix Corporation Candidate コア <strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3Z80 Compatible ProgrammableCounter/Timer (CZ80CTC)CAST, Inc. AllianceCORE X <strong>Spartan</strong>-3、 <strong>Spartan</strong>-IIEZ80 Serial I/O Controller (CZ80SIO) CAST, Inc. AllianceCORE X <strong>Spartan</strong>-3、 <strong>Spartan</strong>-IIE関 連 資 料 および リ フ ァ レ ンス• ザイ リンクス IP センタ :http://japan.xilinx.com/ipcenter• IP ソリューションの 検 索http://japan.xilinx.com/products/ipcenter/advancedsearch.htm• DSP デザイ ン ツールhttp://japan.xilinx.com/ise/dsp_design_prod/index.htm• エンベデッ ド デザイ ン ツールhttp://japan.xilinx.com/ise/embedded_design_prod/platform_studio.htm• IP アップデート (ダウンロード ページ)http://japan.xilinx.com/support/download/index.htm• CORE Generator ヘルプ (ISE ヘルプに 含 まれる)http://japan.xilinx.com/support/software_manuals.htm440 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 15 章エンベデッ ド プロセッサとコントローラのソリューション概 要エンべデッ ド プロ セッ サま たはコ ン ト ロ ーラ を 使 用 する と 、 さ ま ざま なアプリ ケーショ ンで 柔 軟 性およ び 保 全 性 の 高 い、 低 コ ス ト のシス テム を 実 現 でき ま す。 <strong>Spartan</strong> ® -3 ジェネレーショ ン <strong>FPGA</strong> では、 表 15-1 に 示 すよ う に、 高 性 能 で 柔 軟 性 の 高 いフ ィ ールド プロ グラ マブル コント ローラ ソリ ューショ ンが 2 つサポート さ れていま す。 PicoBlaze プロ セッ サは、 シンプルで 効 率 の 高 い 8 ビットRISC コント ローラで、<strong>Spartan</strong>-3 ジェネレーショ ン <strong>FPGA</strong> アーキテク チャ 用 に 最 適 化 さ れていま す( 図 15-1 を 参 照 )。 MicroBlaze プロ セッ サは、 フ ル 機 能 で 高 パフ ォ ーマンス の 32 ビット RISC プロ セッ サで、 高 級 言 語 と リ アルタ イ ム オペレーティ ング システム (RTOS) をサポート しています( 図 15-2 を 参 照 )。1Kx18PROM(PC)31x10CALL/RETURN64 RAMPORT_IDOUT_PORTZCINTERRUPTIE IN_PORT16 s0 s1 s2 s3s4 s5 s6 s7s8 s9 sA sBsC sD sE sF 1ALU 2<strong>UG331</strong>_c17_01_082406図 15-1 : PicoBlaze エンベデッ ド マイクロコントローラのブロック 図<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 441<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 15 章 : エンベデッ ド プロセッサとコントローラのソリューション図 15-2 : MicroBlaze コアのブロック 図表 15-1 : <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> のエンベデッ ド プロセッサおよびコントローラのソリューション機 能 / 特 徴 PicoBlaze プロセッサ MicroBlaze プロセッサプロセッサ アーキテクチャ 8 ビッ ト RISC コント ローラ 32 ビッ ト RISC CPU典 型 的 なアプ リ ケーシ ョ ンメモリ アーキテクチャエンベデ ッ ド コント ローラ、ステートマシン、 I/O プロセッサハーバード(データ と コー ド に 別 々のデータ パスを 使 用 )エンべデ ッ ド 演 算 およびコ ン ト ロールハーバー ド(データ と コー ド に 別 々のデータ パスを 使 用 )ALU/レジスタ 幅 8 ビッ ト (バイ ト) 32 ビッ ト (ワード)レジスタ 16 バイ ト 幅 32 ワード 幅パイプライン 段 数 0 3コード アドレス 空 間 512 または 1K 個 の 命 令 512 ~ 4G バイ トコー ド の 格 納 場 所 ブ ロ ッ ク RAM ( 内 部 ) ブロッ ク RAM ( 内 部 )外 部 メ モ リデータ アドレス 空 間 64 バイ ト ( 内 部 ) 0 ~ 4G バイ トデータの 格 納 場 所 分 散 RAM ( 内 部 ) ブロッ ク RAM ( 内 部 )外 部 メ モ リI/O アドレス スペース 256 ロケーション なしプ ロ セ ッ サ 命 令 数 57 106442 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


概 要R表 15-1 : <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> のエンベデッ ド プロセッサおよびコントローラのソリューション ( 続 き)機 能 / 特 徴 PicoBlaze プロセッサ MicroBlaze プロセッサ命 令 ご と のオペラ ン ド 数 2 3命 令 ご と の ク ロ ッ ク 数 2 1 ~ 3、 整 数 除 算 には 34呼 び 出 し/ リターン/ 割 り 込 みスタック31 ロケーション ( 内 部 ) さまざまなサイズ、データ メモリ 内割 り 込 み 1、 拡 張 可 能 1、 拡 張 可 能最 大 割 り 込 みレ イ テンシ4 クロック サイクル( 最 大 ク ロ ッ ク レー ト で 46ns)7 ~ 40 クロック サイクル(アプ リ ケーシ ョ ンに 依 存 )命 令 キ ャ ッ シ ュ な し 64 ~ 64Kデータ キャッシュ なし 64 ~ 64K浮 動 小 数 点 ユニ ッ ト な し オプシ ョ ン、 パフ ォーマン スが 最 大120 倍 向 上ハー ド ウ ェ ア 乗 算 器 な し 3 クロック サイクルで 32X32 = 32ハー ド ウ ェ ア 除 算 器 な し オプシ ョ ン、 パフ ォーマン スが 最 大 20% 向 上ハー ド ウ ェ ア バレル シフタ なし オプショ ン、 パフォーマンスが 最 大 15 倍 向 上ハー ド ウ ェ ア デバ ッ ガのサポー ト な し XMDLocalLink Direct Processorインターフェイスなし200MB/ 秒 で 通 信PicoBlaze プロセッサは、 コードおよびデータの 保 存 にオンチップ ブロッ ク RAM および 分 散RAM を 使 用 しており、<strong>Spartan</strong>-3 ジェネレーショ ン <strong>FPGA</strong> 内 に 完 全 に 組 み 込 まれます。 MicroBlazeプロセッサは、 オプショ ンで 内 部 <strong>FPGA</strong> メモリ リソースまたは 外 部 メモリへのインターフェイスを 使 用 し て、 長 い コー ド 記 述 ま たは 容 量 の 大 き いデータ を 保 存 で き ます。 MicroBlaze プロセッサ 用のエンべデッ ド 開 発 キ ッ ト (EDK) には、 外 部 フ ラ ッ シュ、 SRAM、 SDRAM、 DDR DRAM、および ZBT SRAM メモリをサポートするハードウェア IP コアが 含 まれています。 また、 MicroBlazeプ ロ セ ッ サでは、 外 部 メ モ リ に 接 続 し た 場 合 にパフ ォーマン ス が 向 上 する よ う に、 64K バイ ト までの 命 令 キ ャ ッ シ ュ と データ キャッシュがサポート されています。表 15-2 : PicoBlaze および MicroBlaze のリソース 要 件 およびパフォーマンスリソース 要 件機 能 / 特 徴 PicoBlaze プロセッサ MicroBlaze プロセッサスライス 数 (4 スライス = 1 CLB) 96 525ブロッ ク RAM 0.5 または 1 2+量 産 アプ リ ケーシ ョ ン (250Ku)での 有 効 コ ス ト$0.40 (US 価 格 ) よ り $0.40 (US 価 格 ) よ り<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 443<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 15 章 : エンベデッ ド プロセッサとコントローラのソリューション表 15-2 : PicoBlaze および MicroBlaze のリソース 要 件 およびパフォーマンス ( 続 き)機 能 / 特 徴 PicoBlaze プロセッサ MicroBlaze プロセッサ<strong>Spartan</strong>-3A DSPXC3SD1800A の 使 用 率 0.5% ~ 1% 3%+XC3SD3400A の 使 用 率 0.5% ~ 1% 2%+<strong>Spartan</strong>-3A/-3ANXC3S50A/AN の 使 用 率 17% ~ 33% 75%+XC3S200A/AN の 使 用 率 5% ~ 6% 29%+XC3S400A/AN の 使 用 率 3% ~ 5% 15%+XC3S700A/AN の 使 用 率 3% ~ 5% 10%+XC3S1400A/AN の 使 用 率 2% ~ 3% 6%+<strong>Spartan</strong>-3EXC3S100E の 使 用 率 10% ~ 25% 55%+XC3S250E の 使 用 率 4% ~ 8% 21%+XC3S500E の 使 用 率 3% ~ 5% 11%+XC3S1200E の 使 用 率 2% ~ 4% 7%+XC3S1600E の 使 用 率 2% ~ 3% 6%+<strong>Spartan</strong>-3 <strong>FPGA</strong>XC3S50 の 使 用 率 13% ~ 25% 68%+XC3S200 の 使 用 率 5% ~ 8% 27%+XC3S400 の 使 用 率 3% ~ 6% 15%+XC3S1000 の 使 用 率 2% ~ 4% 8%+XC3S1500 の 使 用 率 2% ~ 3% 6%+XC3S2000 の 使 用 率 1.3% ~ 3% 5%+XC3S4000 の 使 用 率 0.5% ~ 1% 2%+XC3S5000 の 使 用 率 0.5% ~ 1% 2%+パフォーマンス (<strong>Spartan</strong>-3 <strong>FPGA</strong> の -5 スピード グレード)最 大 ク ロ ッ ク 周 波 数 87MHz 100MHz1 秒 ご と の 命 令 数 43.5M 92MDhrystone MIPS (D-MIPS) なし 92表 15-2 に 示 すよ う に、 <strong>Spartan</strong>-3 ジェネレーショ ン <strong>FPGA</strong> を 使 用 した 場 合 、 MicroBlaze およびPicoBlaze プ ロ セ ッ サの 両 方 で <strong>FPGA</strong> リ ソース 使 用 率 が 低 く 、コ ス ト 効 率 が 高 い こ と がわか り ます。量 産 アプ リ ケーシ ョ ンでは、 PicoBlaze の 完 全 ソ リ ューシ ョ ンの 場 合 は $0.40 (US 価 格 ) に、MicroBlaze の 場 合 は $1.40 (US 価 格 ) にコス ト を 抑 えるこ とができます。444 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


PicoBlaze アプ リ ケーシ ョ ン 開 発 サポー トRMicroBlaze および PicoBlaze プ ロ セ ッ サでは、 柔 軟 性 のあ る I/O を 多 数 、 既 製 の コ ン ト ローラ よ りも 低 価 格 で 提 供 し ています。 また、 両 プロセッサのペ リ フェ ラルは、 アプ リ ケーシ ョ ンの 特 殊 な 機能 、 フ ァ ン ク シ ョ ン、 およびコ ス ト 要 件 を 満 たすよ う にカ ス タ マ イ ズで き ます。 これらのプロセッサは、 両 方 と も 合 成 可 能 な HDL で 提 供 さ れるので、 製 品 が 旧 式 、 無 効 になった と し て も コ ア 自 体は 無 効 にな り ません。 両 プロセ ッ サを <strong>FPGA</strong> に 統 合 する こ と で、 ボード スペース、 デザイン コスト、 およびインベン ト リ を 削 減 できます。PicoBlaze アプ リ ケーシ ョ ン 開 発 サポー トPicoBlaze プロセッサ ソ リ ューシ ョ ンは、 使 いやすいアセンブラが 付 いたシンプルな 8 ビッ トRISC コントローラです。 PicoBlaze コアでは、 インシステム デバ ッ グはサポー ト されていませんが、 標 準 のザ イ リ ン ク ス JTAG ベースの イ ン ターフ ェ イ ス を 使 用 し てデバ ッ グで き ます。 単 純 な 命令 セ ッ ト のシ ミ ュ レータ も 使 用 で き ます。PicoBlaze のリファレンス デザイ ンには、16 バイ トの FIFO が 統 合 されている UART トランスミッタ と レシーバのマク ロが 含 まれています。 UART では、 パ リ テ ィ なし、 1 ス トップ ビット 付 きの 8ビット データがサポー ト さ れます。MicroBlaze アプ リ ケーシ ョ ン 開 発 サポー トMicroBlaze プロセッサでは、アプ リ ケーシ ョ ン 開 発 が 完 全 にサポー ト されています。 このサポー トには、 ソ フ ト ウ ェア 開 発 ツール、 プロセ ッサ ハー ド ウ ェ ア ペリフェラル ファンクションの IP ライブラ リ、 インサーキッ ト ハー ド ウ ェ ア デバ ッ ガ/エミュレーションのサポートが 含 まれています。エンベデ ッ ド 開 発 キ ッ ト (EDK)エンべデ ッ ド 開 発 キ ッ ト (EDK) は、エンべデッ ド プログラマブル システム デザ イ ン を 作 成 する のに 必 要 なものを 全 て 含 むソ リ ューシ ョ ンです。 EDK には、MicroBlaze ソフト プロセッサ コアが 含まれており、 サポート されています。<strong>Xilinx</strong> Platform Studio (XPS)• ソフト ウェアの 編 集 、 ハードウェアおよびソフト ウェア プラ ッ ト フォームの 作 成 ツール• ラ イ ブ ラ リ の 生 成 、 コ ンパ イ ラ ツール チェーンの 実 行 、 ISE ® ツールで 使 用 する イ ンプ リ メ ンテーシ ョ ン ネッ ト リス トおよびシミ ュレーション ネッ ト リス トの 生 成GNU ソフトウェア 開 発 ツール• MicroBlaze コア (GNU gcc) 用 C/C++ コンパイラ• MicroBlaze コア (GNU gdb) 用 デバ ッ ガ• その 他 の GNU ユーテ ィ リ テ ィハー ド ウ ェ ア/ソフトウェア 開 発 ツール• XMD : MicroBlaze コア 用 ザイ リンクス マイクロプロセッサ デバ ッ グ エンジン• System ACE ツール• Data2MEM : <strong>FPGA</strong> デザイ ンを コ ンパイルし 直 さずに 内 部 ブロ ッ ク RAM の 内 容 をア ッ プデー ト<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 445<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 15 章 : エンベデッ ド プロセッサとコントローラのソリューションボード サポー ト パッケージ (BSP)• スタンドアロン BSP - 非 RTOS システム (MicroBlaze コア) 用オペレーテ ィ ング システムエンべデッ ド プロセッサ アプ リ ケーシ ョ ンの 多 く では、 オペレーテ ィ ング システムの 機 能 が 必 要です。 次 のオペレーテ ィ ング システムおよびリアルタイム オペレーテ ィ ング システム (RTOS) には、 MicroBlaze プロセッサへのポートがあり ます。• Micriμm μC/OS-II リアルタイム オペレーテ ィ ング システムhttp://www.micrium.com/products/rtos/kernel/rtos.html• μClinux オペレーテ ィ ング システムhttp://www.uclinux.orghttp://www.itee.uq.edu.au/~jwilliams/mblaze-uclinux/• ATI Nucleus リアルタイム オペレーテ ィ ング システムhttp://www.mentor.com/nucleus• Xilkernel ライブラリ♦♦♦♦高 度 なモジ ュール スケジューラ、 ネッ ト ワーク スタック、 およびファイル システム最 少 限 の リ ソ ース 要 件 およびフ ッ ト プ リ ン ト サイズEDK に 含 まれる 無 償 ラ イセン スザイ リ ンクスによる 完 全 サポートプロセッサ ペリフェラル IP のファンクシ ョ ンEDK には、MicroBlaze プロセッサをサポートする 次 のプロセッサ IP コアが 含 まれています。 IP コアには、デバイ ス ドライバおよび RTOS 適 応 層 が 含 まれています。 特 定 のアプ リ ケーシ ョ ン 要 件 を満 たすには、 IP コアを 追 加 してカスタム プ ロ セ ッ サを 作 成 し て く だ さ い。プロセッサ ペリフェラル• タイマ/カウンタ• Timebase/Watchdog タイマ• UART-Lite• 割 り 込 みコント ローラ• 汎 用 I/O ポー ト (GPIO)シリアル I/O• SPI マスタおよびスレーブ• JTAG UART• 16450 UART*• 16550 UART*• I 2 C 2 線 式 シ リ アル マスタおよびスレーブ*446 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


関 連 資 料 および リ フ ァ レ ンスRメモリ インターフェイス• SDRAM コン ト ローラおよびインターフェイス• DDR SDRAM コン ト ローラおよびインターフェイス• フラッシュ メモリ インターフェイス• SRAM メモリ インターフェイス• ブロック RAM インターフェイスネッ トワーク インターフェイス• 単 一 チ ャ ネルの HDLC コントローラ*• ATM Utopia L2 マスタおよびスレーブ コント ローラ*• 10/100 イーサネッ ト メディア アクセス コント ローラ (MAC)* (Full および Lite バージ ョ ン)* 別 途 で IP コ ア を 入 手 可 能 。 EDK で 使 用 可 能 。 評 価 版 を 入 手 可 能 。インサーキッ ト ハー ド ウ ェ ア デバ ッ ガのサポー ト• EDK ソフトウェア デバ ッ ガ♦♦MicroBlaze のハード ウ ェア デバ ッ グ モジュールが 必 要ザイ リンクス パラレル ケーブル IV を 使 用 し、 <strong>FPGA</strong> の JTAG ポー ト を 介 して 接 続関 連 資 料 および リ フ ァ レ ンス• ザイ リンクス エンベデッ ド プロセッサhttp://japan.xilinx.com/products/design_resources/proc_central/index.htm• MicroBlaze 32 ビッ ト RISC プロセッサhttp://japan.xilinx.com/microblaze• PicoBlaze 8 ビッ ト RISC コント ローラhttp://japan.xilinx.com/picoblaze• Platform Studio およびエンベデッ ド 開 発 キッ ト (EDK)http://japan.xilinx.com/ise/embedded_design_prod/platform_studio.htm• エンベデッ ド HW/SW 開 発 キ ッ トhttp://japan.xilinx.com/products/devboards/emb_devkits.htm• エンベデッ ド システム 開 発 ト レーニング コースhttp://japan.xilinx.com/support/training/abstracts/embedded-systems.htm<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 447<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 15 章 : エンベデッ ド プロセッサとコントローラのソリューション448 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


Rセクション III : PCB 設 計 の 考 慮 事 項「パ ッ ケージおよびピ ン 配 置 」「パ ッ ケージ 図 面 」「<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> の 電 源 」「パワー マネージ メ ン ト ソリューション」「IBIS モデルの 使 用 」「バウ ンダ リ スキャンと BSDL フ ァ イルの 使 用 」<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 449<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R450 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 16 章パッケージおよびピン 配 置概 要この 章 では、 <strong>Spartan</strong> ® -3 ジェネレーショ ン <strong>FPGA</strong> の さ ま ざ ま なピ ンの 機 能 と パ ッ ケージの 一 般 的な 情 報 を 記 述 し ます。 サポー ト される コンポーネン ト パッケージ 内 の 接 続 に 関 する 特 定 の 情 報 は、各 データ シー ト のモジュール 4 を 参 照 して く ださい。 パッケージ 図 は、 第 17 章 「パッケージ 図 面 」を 参 照 して く ださい。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> 間 でのピ ン 配 置 の 違 い<strong>Spartan</strong>-3A と <strong>Spartan</strong>-3AN の 場 合 、 共 通 する パーツやパ ッ ケージのピ ン 配 置 は 同 じ で、 <strong>Spartan</strong>-3A DSP <strong>FPGA</strong> の XC3SD1800A FG676 に も 使 用 さ れています。<strong>Spartan</strong>-3A/3AN/3A DSP、 <strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3 <strong>FPGA</strong> のピン 配 置 はそれぞれ 異 な り ます。 それぞれ 機 能 が 異 な る ので、こ の 3 つのデバイ ス グループの 1 つのデバイ ス を 別 のグループのデバイ スにドロップインして 使 用 することはできません。 各 グループのピ ン 配 置 は、 それぞれ 独 自 の 機 能 を持 つよ う に 最 適 化 さ れています。ただ し、 同 じ プ ラ ッ ト フ ォーム 内 であれば、 ピ ンの 互 換 性 があ る ので、 必 要 に 応 じ て、 簡 単 に 集 積度 の 大 き いデバ イ スに 移 行 し た り 、 小 さ いデバ イ ス に 最 適 化 し た り で き ます。 パッケージ 内 で 集 積度 に よ る 違 いがあ る 可 能 性 があ る ので、 各 デバ イ スのデータ シー ト のモジ ュール 4 のピ ン 配 置 表 で確 認 し て く だ さ い。命 名 規 則 や 機 能 の 改 善 に よ り 、プ ラ ッ ト フ ォーム 間 でピ ンの 名 前 の 付 け 方 が 異 な る こ と も あ り ます。ピン 名 の 違 いは、 表 16-1 を 参 照 して く ださい。表 16-1 : プ ラ ッ ト フ ォーム 間 のピ ン 名 の 違 い<strong>Spartan</strong>-3A/3AN/3A DSPコンフィギュレーション<strong>Spartan</strong>-3E<strong>Spartan</strong>-3コンフィギュレーション 中プルア ッ プコンフィギュレーション 中Lowコンフィギュレーション 中HighIO/PUDC_B IO/HSWAP HSWAP_ENIO/LDC2-LDC0 IO/LDC2-LDC0 なしIO/HDC IO/HDC なしSPI バリアント セレク ト IO/V2-V0 IO/V2-V0 なしSPI 出 力 IO/MOSI MOSI なし<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 451<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 16 章 : パッケージおよびピン 配 置表 16-1 : プ ラ ッ ト フ ォーム 間 のピ ン 名 の 違 い ( 続 き)<strong>Spartan</strong>-3A/3AN/3A DSP<strong>Spartan</strong>-3E<strong>Spartan</strong>-3チップ セレク ト 入 力 IO/CSI_B IO/CSI_B IO/CS_Bチップ セレク ト 出 力 IO/CSO_B IO/CSO_B なしパラレル アドレス IO/A25-A0 IO/A23-A0 なしパラレル ステータス なし IO/BUSY IO/BUSYパ ラ レル 読 み 出 し/ 書 き 込 み IO/RDWR_B IO/RDWR_B/GCLK0IO/RDWR_BコンフィギュレーションクロックIO/CCLK IO/CCLK CCLKモー ド IO/M2-M0 IO/M2/GCLK1、IO/M1、 IO/M0M2-M0ユーザー ファンクション一 時 停 止 SUSPEND なし なしAWAKE IO/AWAKE なし なし入 力 専 用 IP_# IP なしグローバル クロック IO/GCLK15-GCLK0 IO/GCLK15-GCLK0/D7-D1左 半 分 の ク ロ ッ ク IO/LHCLK7-LHCLK0 IO/LHCLK7-LHCLK0右 半 分 の ク ロ ッ ク IO/RHCLK7-RHCLK0 IO/RHCLK7-RHCLK0/A10-A3IO/GCLK7-GCLK0なしなしDCI リファレンス 入 力 なし なし IO/VRN、IO/VRPメモ :1. # = I/O バン ク 数 、 0 ~ 3 の 整 数 (<strong>Spartan</strong>-3 <strong>FPGA</strong> の 場 合 は 0 ~ 7)452 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


ピン タイプRピン タイプ<strong>Spartan</strong>-3 ジェネレーショ ン <strong>FPGA</strong> のピ ンのほ と んどは 汎 用 のユーザー 定 義 の I/O ピンですが、 表16-2 に 示 すよ う に、 機 能 の 異 な る 12 のピン タイプがあります。 こ の 表 に 示 す 各 ピ ンには、 各 データシートのモジュール 4 のフ ッ ト プ リ ン ト 図 と 同 じ 色 を 使 用 し ています。表 16-2 : <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> のピン タイプタイプ/カラー コードI/O説 明制 限 のない 汎 用 ユーザー I/O ピンで、 ほとんどのピンが 差 動 I/O ペア と し て 使 用 で き ます。IO_#IO_Lxxy_#INPUT 制 限 のない 汎 用 の 入 力 専 用 ピ ンで、 出 力 構 造 はあ り ません。 IP_#IP_Lxxy_#DUALVREFCLKCONFIGコンフィギュレーション プロセス 中 に 一 部 のコンフィギュレーション モー ド で 使 用 さ れる 多 目 的 ピ ンで、 通 常 はコ ン フ ィ ギ ュ レーション 後 にユーザー I/O として 使 用 できるようになります。 コンフ ィ ギ ュ レーシ ョ ンで 使 用 さ れない 場 合 は、 I/O ピンとして 動 作 します。 詳 細 は、 『<strong>Spartan</strong>-3 Generation Configuration User Guide』(UG332) を 参 照 して く ださい。ユーザー I/O ピ ン または 入 力 専 用 ピ ン と し て 動 作 する 多 目 的 ピ ンで、 同 一 バン ク にあ る その 他 すべての V REF ピ ン と 同 様 、 特 定 の I/O規 格 の 参 照 電 圧 入 力 にな り ます。 バン ク 内 で 参 照 電 圧 に 使 用 する 場合 は、 そのバン ク にあ るすべての V REF ピ ン を 接 続 する 必 要 があ ります。ユーザー I/O ピンまたは 特 定 のクロック バッファ ドライバへの 入力 ピンです。 各 パッ ケージには 16 個 のグ ローバル ク ロ ッ ク 入 力 があ り、 必 要 に 応 じ てデバイ ス 全 体 にク ロ ッ ク を 供 給 でき ます。RHCLK 入 力 はデバ イ ス の 右 半 分 、 LHCLK 入 力 はデバ イ ス の 左 半分 にオプシ ョ ンで ク ロ ッ ク を 供 給 し ます。 詳 細 は、 第 2 章 「グローバル クロック リ ソ ースの 使 用 」 を 参 照 して く ださい。コンフィギュレーション 専 用 ピンで、 ユーザー I/O ピンとしては 使用 でき ません。 各 パ ッ ケージには、 専 用 のコ ン フ ィ ギ ュ レーシ ョ ンピンが 3 つ 含 まれ、 V CCAUX か ら 電 源 が 供 給 さ れています。 詳 細 は、『<strong>Spartan</strong>-3 Generation Configuration User Guide』 (UG332) を 参 照してください。ピン 名M[2:0]PUDC_B (<strong>Spartan</strong>-3A/3AN/3A DSP)HSWAP (<strong>Spartan</strong>-3E)HSWAP_EN (<strong>Spartan</strong>-3)CCLKMOSI/CSI_BD[7:1]D0/DINCSO_BRDWR_BBUSY/DOUTINIT_BA[25:0]VS[2:0]LDC[2:0]HDCIP/VREF_#IP_Lxx_#/VREF_#IO/VREF_#IO_Lxx_#/VREF_#IO_Lxx_#/GCLK[15:0]IO_Lxx_#/LHCLK[7:0]IO_Lxx_#/RHCLK[7:0]DONE、 PROG_B<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 453<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 16 章 : パッケージおよびピン 配 置表 16-2 : <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> のピン タイプ ( 続 き)タイプ/カラー コードPWRMGMTJTAGGNDVCCAUXVCCINTVCCON.C.説 明<strong>Spartan</strong>-3A/3AN/3A DSP の 省 電 力 一 時 停 止 モー ド の 制 御 ピ ンおよびステータス ピンです。 SUSPEND は 専 用 ピンで、 AWAKE は 多 目的 ピ ンであ り 、 一 時 停 止 モー ド が 使 用 さ れていない 場 合 は I/O ピンにな り ます。JTAG 専 用 ピ ンであ り 、 ユーザー I/O ピンとしては 使 用 できません。各 パ ッ ケージには、 専 用 のコ ンフ ィ ギ ュ レーシ ョ ン ピンが 4 つ 含 まれ、 V CCAUX か ら 電 源 が 供 給 さ れています。グランド 専 用 ピンで、 ピンの 数 は 使 用 されるパッケージによって 異なります。 すべてを 接 続 する 必 要 があ り ます。補 助 電 源 供 給 ピ ンであ り 、 ピンの 数 は 使 用 されるパッケージによって 異 な り ます。 すべてを 接 続 する 必 要 があ り ます。詳 細 は、 第 18 章 「<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> の 電 源 」 を 参照 してください。内 部 コ ア ロ ジ ッ クへの 電 源 供 給 ピ ンで、 ピンの 数 は 使 用 されるパッケージによって 異 な り ます。 すべてを +1.2V に 接 続 する 必 要 があ ります。 詳 細 は、 第 18 章 「<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> の 電 源 」を 参 照 して く ださい。同 じバンクにあるその 他 の V CCO ピンと 同 じよ うに、 I/O バンク 内の 出 力 バ ッ フ ァ への 電 源 供 給 ピ ンで、 一 部 の I/O 規 格 の 入 力 電 圧 のしきい 値 を 設 定 します。 詳 細 は、 第 2 章 「グローバル クロック リソ ースの 使 用 」 を 参 照 して く ださい。そのデバイ ス/パ ッ ケージの 組 み 合 わせでは 接 続 さ れていませんが、同 じパッケージ 内 のよ り 大 型 のデバイスでは 接 続 されているこ とのあるパッケージ ピンです。メモ :1. # = I/O バン ク 数 、 0 ~ 3 の 整 数 (<strong>Spartan</strong>-3 <strong>FPGA</strong> の 場 合 は 0 ~ 7)ピン 名SUSPEND、 AWAKETDI、 TMS、 TCK、 TDOGNDVCCAUXVCCINTVCCO_#N.C.ピ ン 名 の 表 記ピン 名 は 省 略 されていますが、そのピンのタイプがわかるよ うになっています。 IO で 始 ま る ものはI/O ピンであり、 IP で 始 ま る ものは 入 力 専 用 ピンです。 差 動 信 号 と し て 使 用 さ れる ピ ンは、 L の 後にペア 番 号 と バン ク 番 号 が 付 いて 表 記 されます ( 「 差 動 ペア ピ ンの 表 記 」 を 参 照 )。 バン ク 番 号 は、シングルエンドのピンと V CCO 、V REF と いっ たバン ク 特 有 の 電 圧 入 力 に も 表 記 さ れます。 多 目 的 ピンの 場 合 は、2 つの 機 能 がス ラ ッ シ ュ (/) で 区 切 って 表 示 されます。 アクティブ Low のピ ンの 場 合 、CSI_B のよ うに _B が 付 いています。差 動 ペア ピ ンの 表 記ピン 名 が 「Lxxy」 と い う 形 式 の 場 合 、 差 動 規 格 がサポー ト さ れる こ と を 示 し ています。 ピン 名 の 接尾 辞 には、 それぞれ 次 の よ う な 意 味 があ り ます。 図 16-1 は、 バン ク 1 の 差 動 入 力 と 差 動 出 力 の 例を 示 しています。L : ピ ンが 差 動 ペアであ る こ と を 示 し ています。xx : 各 バン ク で 異 な る 2 桁 の 数 字 で、 差 動 ピ ン ペアを 識 別 し ます。454 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


ピン タイプRy : 正 の 信 号 の 場 合 は P、 反 転 信 号 の 場 合 は N と 表 記 されます。 この 2 つのピンで 1 つの 差 動ピン ペアにな り ます。# : 0 ~ 3 の 整 数 (<strong>Spartan</strong>-3 <strong>FPGA</strong> の 場 合 は 0 ~ 7) で、 I/O バン ク 番 号 を 示 します。 3 0<strong>Spartan</strong>-3E<strong>FPGA</strong> 1IO_L38P_1IO_L38N_1IO_L39P_1IO_L39N_1 , 2DS312-4_00_111105図 16-1 : 差 動 ペア ピ ンの 表 記ピン 配 置 ファイルピ ン 配 置 は、 各 デバ イ スのデータ シー ト に 記 述 さ れています。 各 <strong>Spartan</strong>-3 ジェネレーショ ン <strong>FPGA</strong>に 特 有 のピ ン 配 置 は、カ ンマ 区 切 り のテキ ス ト ファイルと Excel 版 のグ ラ フ ィ ッ ク なフ ッ ト プ リ ント の 形 式 でザイ リ ンクスのデータシートから 入 手 できます。 カンマ 区 切 りの CSV ファイルをスプレッドシート プ ロ グ ラ ムで 使 用 する と 、 必 要 に 応 じ てデータ を 並 び 替 えた り 、 フ ォーマ ッ ト を 変 えたりできます。 また、 この ASCII テキス ト ファイルはほとんどのスクリプト プログラムで 簡 単 に解 析 で き ます。 これらのファイルを 使 用 して OrCAD シンボルを 作 成 する 方 法 については、 アンサー 10078 (http://japan.xilinx.com/support/answers/10078.htm) を 参 照 して く ださい。次 のセ ク シ ョ ンで、 ダ ウ ン ロー ド 可 能 なピ ン 配 置 フ ァ イ ルについて さ ら に 詳 細 に 説 明 し ます。ピン 配 置 表カンマ 区 切 りの ASCII テキス ト ファイルは、/tables ディレク ト リにあり、パッケージ タイプ 別 にピ ン 配 置 情 報 が リ ス ト さ れています。 各 行 に 1 つのパッ ケージ ピンが 示 され、 パ ッ ケージで 使 用 可能 なすべてのデバ イ ス のピ ン 配 置 情 報 が 記 述 さ れています。 こ のセ ク シ ョ ンでは、 各 行 のフ ィ ールド について 簡 単 に 説 明 し ます。SORT_PIN (QFP パッケージのみ)SORT_PIN で 並 び 替 え る と、 VQ100、 TQ144、 PQ208 などの QFP (Quad Flat Pack) スタイルのパ ッ ケージのピ ンが 順 番 に 並 びます。SORT_ROW (BGA パッケージのみ)SORT_ROW で 並 び 替 える と、 BGA (Ball Grid Array) パッケージのピンがアルファベッ ト 順 に 並びます。 小 型 の BGA パッケージの 場 合 は、SORT_ROW に よ る 並 び 替 えで 十 分 です。 大 型 の BGAパッケージには、 AA や AB のよ うなインデックスが 付 いています。 また、 大 型 の BGA パッケージの 場 合 は、 並 び 替 え しやすい よ う に、 SORT_ROW_# というフィールドがあります。SORT_ROW_# ( 大 型 の BGA パッケージのみ)SORT_ROW_# フィールドは SORT_ROW とほぼ 同 じですが、 アルファベッ トではなく 数 値 が 付いている 点 が 異 な り、 BGA パ ッ ケージのピ ンの 並 び 替 えに 使 用 さ れます。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 455<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 16 章 : パッケージおよびピン 配 置SORT_COLUMN (BGA パッケージのみ)SORT_COLUMN には、 BGA パ ッ ケージのピ ンの 列 数 を 示 す 数 値 が 表 記 さ れます。PIN_NUMBERPIN_NUMBER は、 パ ッ ケージの 各 ピ ン を 識 別 する 番 号 です。パッケージおよびプラッ ト フォームによっては、そのパッケージで 複 数 の <strong>FPGA</strong> が 使 用 でき る こ とがあ り ます。 ピ ン ご と に 使 用 可 能 な <strong>FPGA</strong> がすべて リ ス ト されます。 デバ イ スは、 次 に 説 明 するXC3S**_PIN と XC3S**_TYPE という 2 つのフ ィ ール ド で 表 記 さ れます。XC3S**_PINXC3S**_PIN フィールドには、 特 定 のパッケージ ピンと 特 定 の <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong>の 名 前 が 表 記 されます。 ** は、 ワ イ ル ド カー ド 文 字 です。 ピン 配 置 表 のファイルでは、 ** にはXC3S250E の よ う に 実 際 のパーツ 番 号 が 入 り ます。XC3S**_TYPEXC3S**_TYPE フィールドには、 特 定 のパッケージ ピンと 特 定 の <strong>Spartan</strong>-3 ジェネレーショ ン<strong>FPGA</strong> のタイプが 表 記 されます。 リストされるピン タイプは、データシートのモジュール 4 の 記 述と 同 じになります。 ** は、 ワ イ ル ド カ ー ド 文 字 です。 ピン 配 置 表 のファイルでは、** にはXC3S250E の よ う に 実 際 のパーツ 番 号 が 入 り ます。BANKBANK で 並 び 替 え る と 、I/O バン ク 別 にピ ンが 並 びます。 こ のフ ィ ール ド の 値 は、0 ~ 3 (<strong>Spartan</strong>-3<strong>FPGA</strong> の 場 合 は 0 ~ 7)、 VCCAUX、 N/A のいずれかです。 N/A の 場 合 は、 ピ ンが 特 定 のバン ク とは 関 連 付 け られていない こ と を 示 し ます。DIFFERENCEDIFFERENCE を 降 順 に 並 び 替 え る と 、 同 じ パ ッ ケージで <strong>Spartan</strong>-3E <strong>FPGA</strong> 間 での 異 な る ピン 配置 がわか り やす く な り ます。 ピ リオド ( . ) はピンがまった く 同 じである こ と を、 DIFF はパッ ケージ間 でピンが 異 な る こ と を 示 し ます。パッケージ タ イ プ 内 で 未 接 続 のピ ン を 見 つけ る には、そのパ ッ ケージのフ ッ ト プ リ ン ト で 提 供 さ れる 最 小 のデバイスを TYPE で 並 び 替 え ます。 それよ り 大 き いデバ イ スの 未 接 続 ピ ンは、 すべて こ の最 小 デバイ スの 未 接 続 ピ ンの 一 部 です。フットプリント 図\footprints ディレク ト リのファイルは、すべて Microsoft の Excel スプレッ ドシート ファイルです。これらのファイルには、 各 パッケージ タ イ プに 共 通 する フ ッ ト プ リ ン ト 図 が 含 まれ、パ ッ ケージ ピン をチ ッ プの 上 面 図 (QFP パッケージ) ま たは 上 面 か ら の 透 過 図 (BGA パッケージ) のいずれかで表 示 し ます。 QFP パッケージのピン 1 の 位 置 に 注 意 し て く だ さ い。ピンには、 それぞれデータシートのモジュール 4 と 同 じ 名 前 と 色 が 付 いています。 N.C. (NoConnect) ピ ンは、 特 別 なシンボルで 表 記 されます。フ ッ ト プ リ ン ト 全 体 を 画 面 に 表 示 でき る よ う に、 ほ と んどのフ ッ ト プ リ ン ト が 通 常 サイ ズの 50 ~75% の 大 き さ で 保 存 されています。 表 示 サ イ ズを 変 更 する には、 Excel で [View] → [Zoom] をクリ ッ ク し て 拡 大 比 率 を 選 択 し ます。456 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


ピン タイプRPartGenExcel でフ ァ イ ルを 開 く と 、 マ ク ロ が 含 まれてい る 可 能 性 があ る こ と を 示 す 警 告 メ ッ セージが 表 示されるこ とがあり ます。 [Disable Macros] または [Enable Macros] のいずれかを 選 択 し て く だ さ い。これらの Excel ファ イルには、 マク ロは 含 まれません。PartGen プロ グラ ム を 使 用 する と 、ザイ リ ンク ス の ISE ® から も ピ ン 配 置 フ ァ イ ルを 生 成 でき ま す。 ピン 配 置 フ ァ イ ルを PartGen で 生 成 する には、 コ マン ド プロ ンプト で partgen -p xc3s50atq144 のよ うに 入 力 し ま す。 こ のコ マン ド を 実 行 する と 、ピ ン 名 と ピ ン 番 号 のリ ス ト を 含 んだ xc3s50atq144.pkg という テキス ト ファ イ ルが 現 在 のディ レ ク ト リ に 作 成 さ れま す。 -v オプショ ン (verbose) を 使 用 すると 、 バン ク 番 号 と 一 番 近 い CLB など の 情 報 も 含 ま れた 詳 細 な PKG フ ァ イ ルが 生 成 さ れま す。PartGen の 詳 細 は、 『 開 発 シス テム リ ファレンス ガイ ド 』 の 「PARTtGen」の 章 を 参 照 してください。このガイドの ISE 10.1 バージョ ンは、http://www.xilinx.com/itp/xilinx10j/books/docs/dev/dev.pdf から入 手 でき ま す。ISE のピン 割 り 当 てレポートISE を 使 用 する と 、 配 置 配 線 (PAR) 後 の 実 際 の 信 号 配 置 を 表 示 し て、 ピ ン 配 置 を リ ス ト および 確 認できます。PAR プロ グ ラ ムからは、 実 際 のピン 割 り 当 てを 示 し た 次 の 3 つのレポー ト が 生 成 されます。• PAD ファイル : 解 析 可 能 なデータベース 形 式 の I/O ピ ン 割 り 当 て 情 報 が 記 述 さ れています。• CSV ファイル : スプレッ ドシート プログラムでサポート される 形 式 の I/O ピン 割 り 当 て 情 報が | で 区 切 ら れて 記 述 さ れています。• TXT ファイル : ASCII 形 式 の I/O ピン 割 り 当 てに 関 する 情 報 が 記 述 され、 テキ ス ト エデ ィ タで 開 く こ と ができ ます。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 457<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 16 章 : パッケージおよびピン 配 置PACE (Pinout and Area Constraints Editor)PACE (Pinout and Area Constraints Editor) は、 次 のよ う な 機 能 を 持 つグ ラ フ ィ カル ツールです。• I/O の ロ ケーシ ョ ン 制 約 を 表 示 および 編 集• ロ ジ ッ ク のエ リ ア 制 約 を 表 示 および 作 成• デザイ ンの リ ソース 要 件 を 指 定• ターゲッ ト デバイ スの リ ソース レイアウトを 指 定PACE は、 最 初 のデザ イ ン 入 力 の 際 、 ま たはネ ッ ト リ ス ト フ ァ イルにデザイ ンを 取 り 込 んだ 後 に 使用 し ます。 最 初 のデザイ ン 入 力 では、 I/O 定 義 に 限 り 、 VHDL および Verilog フ ァ イルか ら 読 み 出しおよび 書 き 込 みがで き ます。 ネッ ト リストを 生 成 した 後 には、NGD フ ァ イ ルを 読 み 込 みます。 どち ら の 場 合 も ユーザー 制 約 フ ァ イ ル (UCF) を 読 み 出 し て、 それに 書 き 込 みます。PACE では、 次 を 実 行 でき ます。• ピンの 割 り 当 てピ ンの 割 り 当 て 機 能 を 使 用 する と 、 I/O ロケーションの 割 り 当 て、I/O バン ク の 指 定 、 I/O 規 格の 指 定 、 I/O ロ ケーシ ョ ンの 禁 止 、 ビル ト イ ン DRC を 使 用 した 有 効 なピン 割 り 当 ての 作 成 などができます。 ビルト イン ツールを 利 用 する こ と で、 複 数 パ ッ ケージ 間 で 互 換 性 のあ る I/O 割り 当 てに し た り 、 同 時 ス イ ッ チ 出 力 をザ イ リ ン ク スの 推 奨 どお り に し た り で き ます。• デザイ ン ブラウザデザイ ン ブ ラ ウザの 機 能 を 使 用 する と 、 広 範 囲 にわた るパーツ 情 報 を 確 認 し なが らデザ イ ン 階層 を 表 示 で き ます。• エリア 制 約 (<strong>FPGA</strong> のみ)エ リ ア 制 約 機 能 を 使 用 する と 、 [Device Architecture] タブでデバイス リソースをハイレベルで抽 象 的 な 図 で 表 示 で き、 ロ ジ ッ ク のエ リ ア 制 約 を 作 成 し、 ペ リ フ ェ ラ ルの I/O を 表 示 して 接 続を 確 認 した り できます。[Device Architecture] タブには、 選 択 したパーツ タ イプのチップが 表 示 されます。 このタブ 内 はスク ロールで き、デザイ ンで 指 定 し たデバイ スの リ ソース マップを 拡 大 / 縮 小 し て 表 示 で き ます。 フロアプランをするには、 [Design Browser] タブから 選 択 したグローバル ロ ジ ッ ク や 階 層 ロ ジ ッ ク グループを ド ラ ッ グ し て、 こ のタブに ド ロ ッ プ し ます。[Package Pins] タブ ( 図 16-2) には、パ ッ ケージ 内 のピ ンのグ ラ フ ィ カルなレ イ ア ウ ト が 表 示 さ れます。 [Package Pins] タブでは、 次 が 実 行 できます。• カーソ ルを ピ ン 上 に 移 動 する と 、 ピ ンの 名 前 およびタ イ プなどが 表 示 さ れます 選 択 し た 位 置 にシンボルが 配 置 さ れてい る 場 合 は、 シンボル 名 も 表 示 さ れます。• I/O を ク リ ッ クする と、 ほかのタブでもその I/O が 選 択 されます。• パ ッ ケージの 上 面 図 ま たは 下 面 図 を 表 示 し ます。• I/O バン ク はデフ ォル ト で 表 示 さ れます。• 差 動 ピ ンのペア 同 士 は、 赤 線 で 表 示 さ れます。• I/O を 移 動 した り、 ほかのタブから ド ラ ッ グ アンド ドロップしたりします。• ユーザー I/O を 禁 止 したり、 許 可 したり します。458 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


PACE (Pinout and Area Constraints Editor)R図 16-2 : PACE の [Package View] タブ<strong>UG331</strong>_c16_02_120206<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 459<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 16 章 : パッケージおよびピン 配 置パッケージ表 16-3 は、<strong>Spartan</strong>-3 ジェネレーショ ン <strong>FPGA</strong> の コ ス ト やスペース を 削 減 し た 製 品 パ ッ ケージのスタイルを 示 しています。表 16-3 : <strong>Spartan</strong>-3 ジェネレーシ ョ ンのパッケージ オプシ ョ ン<strong>Spartan</strong>-3ADSP<strong>Spartan</strong>-3AN <strong>Spartan</strong>-3A <strong>Spartan</strong>-3E <strong>Spartan</strong>-3 パッケージ リード タイプリード最 大ピッチI/O 数(mm)フットプリントエリア(mm)高 さ(mm)質 量 (1)(g)X X X VQ100/VQG100X X CP132/CPG132X X X X TQ144/TQG144100 Very ThinQuad Flat Pack(TQFP)132 Chip-ScaleBall Grid Array(CS)144 Thin Quad FlatPack (TQFP)66 0.5 16 x 16 1.20 0.692 0.5 8 x 8 1.10 0.1108 0.5 22 x 22 1.60 1.4X X PQ208/PQG208208 Quad Flat Pack(QFP)158 0.5 30.6 x30.64.10 5.3X X X X FT256/FTG256X X X FG320/FGG320X X X FG400/FGG400256 Fine-pitch,Thin Ball GridArray (FBGA)320 Fine-pitch BallGrid Array(FBGA)400 Fine-pitch BallGrid Array(FBGA)195 1.0 17 x 17 1.55 0.9251 1.0 19 x 19 2.00 1.4311 1.0 21 x 21 2.43 2.2XFG456/FGG456456 Fine-pitch BallGrid Array(FBGA)333 1.0 23 x 23 2.60 2.2X X X FG484/FGG484484 Fine-pitch BallGrid Array(FBGA)376 1.0 23 x 23 2.60 2.2XCS484/CSG484484 Chip-ScaleBall Grid Array(CS)309 0.8 19 x 19 1.80 1.4X X X X FG676/FGG676676 Fine-pitch BallGrid Array(FBGA)519 1.0 27 x 27 2.60 3.4XFG900/FGG900900 Fine-pitch BallGrid Array(FBGA)633 1.0 31 x 31 2.60 4.2メモ :1. パッケージの 質 量 には、 ±10% の 誤 差 があ り ます。460 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


パッケージR鉛 フリー パッケージ各 パ ッ ケージは、 標 準 パ ッ ケージおよび 環 境 を 考 慮 し た 鉛 フ リ ー (Pb-free) パッケージで 提 供 されています。 鉛 フ リー パ ッ ケージの 場 合 には、 パ ッ ケージ 名 に 「G」 が 追 加 さ れています。 たとえば、標 準 の TQ144 パッケージの 鉛 フリー バージ ョ ンは TQG144 です。 標 準 パ ッ ケージ と 鉛 フ リ ーパ ッ ケージの 機 械 的 寸 法 は、 463 ページの 表 17-1 に 示 すよ う にほぼ 同 じですが、 『MaterialDeclaration Data Sheet』 に リ ス ト さ れる 材 質 と 熱 特 性 が 異 な り ます。 ただ し、 ピ ン 配 置 は 常 に 同 じにな り ます。 鉛 フ リー パッケージの 詳 細 は、 ザイ リ ンクスの 鉛 フ リー パッケージ (RoHS 準 拠 ) を参 照 し て く だ さ い。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> 間 でのパ ッ ケージの 違 いすべてのパッケージで、 すべての <strong>Spartan</strong>-3 ジェネレーション デバイ スが 使 用 で き るわけではあ りません。 特 定 のパ ッ ケージについては、 そのパ ッ ケージで 使 用 可 能 な 全 デバ イ ス をサポー ト する 共通 のフ ッ ト プ リ ン ト があ り ます。 このフットプリントの 図 はデータシートを 参 照 してください。 プラ ッ ト フ ォーム 間 では、 フ ッ ト プ リ ン ト に 互 換 性 があ り ません。パ ッ ケージ 情 報 の 詳 細 は、 『Device Package User Guide』 (UG112) を 参 照 して く ださい。正 しいパッケージ オプシ ョ ンの 選 択<strong>Spartan</strong>-3 ジェネレーショ ン <strong>FPGA</strong> のパ ッ ケージ オプシ ョ ンには、 QFP (Quad Flat Pack) と BGA(Ball Grid Array) があ り ます。 QFP パ ッ ケージを 使 用 する と コ ス ト を 低 く 抑 え る こ と がで き ますが、 表 16-4 に 示 すよ う に、その 他 ほ と んどの 面 で BGA パッ ケージの 方 が 優 れています。 このため、ザ イ リ ン ク スでは 可 能 な 限 り BGA パ ッ ケージを 使 用 する こ と を 推 奨 し ています。表 16-4 : QFP と BGA の 比 較比 較 対 照 QFP BGA最 大 ユーザ I/O 数 158 633パ ッ ケージの 集 積 度 (ロジック/エリア) ○ ◎シグナル インテグリティ △ ◎同 時 ス イ ッ チ 出 力 (SSO) のサポー ト △ ◎熱 放 散 △ ◎最 小 PCB レイヤ 4 4 ~ 6手 動 組 み 立 て/ 再 加 工 可 能 困 難パ ッ ケージの 熱 特 性<strong>FPGA</strong> アプ リ ケーシ ョ ンの 消 費 電 力 は、 パ ッ ケージ 選 択 と シ ス テム デザイ ンに 関 係 し ます。<strong>Spartan</strong>-3 ジェネレーショ ン <strong>FPGA</strong> で 消 費 される 電 力 は、XPower Estimator ワークシート またはザイリンクスの ISE ソフトウェアに 含 まれる XPower Analyzer のいずれかを 使 用 し てレポー ト さ れます。 これらのツールの 詳 細 は、 消 費 電 力 ページを 参 照 して く ださい。こ の 後 、 電 力 と 熱 抵 抗 と 合 せて、 温 度 を 計 算 し ます。 特 定 パ ッ ケージの 温 度 特 性 については、 各 デバイスのデータシートのモジュール 4 を 参 照 して く ださい。 熱 データは、 Package Thermal DataQuery ツールにデバイ ス ファミ リやパッケージ コードなどを 入 力 する と 入 手 できます。 表 16-5は、 3 タ イ プの 温 度 抵 抗 を 示 し ています。 すべての 抵 抗 値 は、 チ ッ プのジ ャ ン ク シ ョ ン 温 度 に 関 連しており、 ℃/ワ ッ ト で 計 測 さ れています。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 461<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 16 章 : パッケージおよびピン 配 置表 16-5 : 熱 特 性シンボル 特 性 説 明θ JAJunction to Ambient周 囲 環 境 と ジ ャ ン ク シ ョ ンの 温 度 差 。 通 気 性 が 高 く な る と 、 温度 は 下 降 し ます。 0 ( 風 な し)、 250、 500、 750 LFPM (LinearFeet Per Minute) で 通 気 レー ト を 指 定 し ます。θ JB Junction to Board ボー ド と ジ ャ ン ク シ ョ ンの 温 度 差θ JC Junction to Case パッケージ ボディ (ケース) と ジ ャ ン ク シ ョ ンの 温 度 差関 連 資 料 および リ フ ァ レ ンス次 の リ ス ト は、 ピ ン 配 置 およびパ ッ ケージに 関 する 追 加 情 報 です。• 第 17 章 の 「パ ッ ケージ 図 面 」各 パ ッ ケージの 機 械 図 は、 各 パ ッ ケージの 『Material Declaration Data Sheets』 へのリンクを参 照 し て く だ さ い。• データ シー ト DS610 : 『<strong>Spartan</strong>-3A DSP <strong>FPGA</strong> Family : Data Sheet』<strong>Spartan</strong>-3A DSP <strong>FPGA</strong> のピ ン 配 置 に 関 する 詳 細 な 情 報 がモジ ュール 4 に 記 述 されています。• <strong>Spartan</strong>-3A DSP の ASCII 形 式 のピ ン 配 置 および Excel 形 式 のフ ッ ト プ リ ン ト<strong>Spartan</strong>-3A DSP <strong>FPGA</strong> 特 有 のピ ン 配 置 を 記 述 し たカンマ 区 切 り のテキ ス ト ファイルと Excelのグラフ ィ カル フットプリントです。• データ シー ト DS557 : 『<strong>Spartan</strong>-3AN <strong>FPGA</strong> Family Data Sheet』<strong>Spartan</strong>-3AN <strong>FPGA</strong> のピ ン 配 置 に 関 する 詳 細 な 情 報 がモジ ュール 4 に 記 述 されています。• データ シー ト DS529 : 『<strong>Spartan</strong>-3A <strong>FPGA</strong> Family : Data Sheet』<strong>Spartan</strong>-3A <strong>FPGA</strong> のピ ン 配 置 に 関 する 詳 細 な 情 報 がモジ ュール 4 に 記 述 されています。• <strong>Spartan</strong>-3A/3AN の ASCII 形 式 のピ ン 配 置 および Excel 形 式 のフ ッ ト プ リ ン ト<strong>Spartan</strong>-3A/3AN <strong>FPGA</strong> 特 有 のピ ン 配 置 を 記 述 し たカ ンマ 区 切 り のテキ ス ト ファイルと Excelのグラフ ィ カル フットプリントです。• データ シー ト DS312 : 『<strong>Spartan</strong>-3E <strong>FPGA</strong> Family : Complete Data Sheet』 : <strong>Spartan</strong>-3E のピン配 置<strong>Spartan</strong>-3E <strong>FPGA</strong> のピ ン 配 置 に 関 する 詳 細 な 情 報 がモジ ュール 4 に 記 述 されています。• <strong>Spartan</strong>-3E の ASCII 形 式 のピ ン 配 置 および Excel 形 式 のフ ッ ト プ リ ン ト<strong>Spartan</strong>-3E <strong>FPGA</strong> 特 有 のピ ン 配 置 を 記 述 し たカ ンマ 区 切 り のテキ ス ト ファイルと Excel のグラフィカル フットプリントです。• データ シー ト DS099 : 『<strong>Spartan</strong>-3 <strong>FPGA</strong> Family : Complete Data Sheet』 : <strong>Spartan</strong>-3 のピン 配 置<strong>Spartan</strong>-3 <strong>FPGA</strong> のピ ン 配 置 に 関 する 詳 細 な 情 報 がモジ ュール 4 に 記 述 されています。• <strong>Spartan</strong>-3 の ASCII 形 式 のピ ン 配 置 および Excel 形 式 のフ ッ ト プ リ ン ト<strong>Spartan</strong>-3 <strong>FPGA</strong> 特 有 のピ ン 配 置 を 記 述 し たカ ンマ 区 切 り のテキ ス ト ファイルと Excel のグラフィカル フッ トプリント• UG112 : 『Device Package User Guide』パ ッ ケージ、 梱 包 と 発 送 、 熱 特 性 、 電 気 特 性 、 PCB デザイ ン ルール、 湿 度 感 知 、 はんだ リ フローなどの 説 明 と 仕 様 が 記 述 されています。• デバイ ス パッケージのアプリケーショ ン ノートボー ド の 配 線 性 、はんだ リ フ ロー、および 関 連 ト ピ ッ ク に 関 する アプ リ ケーシ ョ ン ノートです。462 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 17 章パッケージ 図 面概 要表 17-1 : <strong>Spartan</strong>-3 ジ ェ ネレーシ ョ ンの 図 面パッケージ<strong>Spartan</strong>-3ADSPこの 章 は、 表 17-1 の <strong>Spartan</strong> ® -3 ジェネレーショ ン <strong>FPGA</strong> のパッ ケージ 図 を 記 載 し ていま す。 これらの 図 は、 ザイ リ ンク ス の Web サイ ト (http://japan.xilinx.com/support/documentation/package_specifications.htm) から も 参 照 でき ます。 こ のサイ ト から は、 各 パッ ケージの 標 準 バージョ ンと 鉛 フリー バージョ ンの『 Material Declaration Data Sheet』 も 入 手 でき ま す。<strong>Spartan</strong>-3AN <strong>Spartan</strong>-3A <strong>Spartan</strong>-3E<strong>Spartan</strong>-3<strong>UG331</strong> のページパッケージ 図 面japan.xilinx.com の URL(http://japan.xilinx.com/support/documentation/package_specs/)MDDS URL(http://japan.xilinx.com/support/documentation/package_specs/)VQ100 √ √ √pk173_vq100.pdf465 ページ vq100.pdfVQG100 √ √ √ pk130_vqg100.pdfCP132 √ √pk147_cp132.pdf466 ページ cp132.pdfCPG132 √ √ pk101_cpg132.pdfTQ144 √ √ √pk169_tq144.pdf467 ページ tq144.pdfTQG144 √ √ √ √ pk126_tqg144.pdfPQ208 √ √pk166_pq208.pdf468 ページ pq208.pdfPQG208 √ √ pk123_pqg208.pdfFT256 √ √ √pk158_ft256.pdf469 ページ ft256.pdfFTG256 √ √ √ √ pk115_ftg256.pdfFG320 √ √ √pk152_fg320.pdf470 ページ fg320.pdfFGG320 √ √ √ pk106_fgg320.pdfFG400 √ √pk182_fg400.pdf471 ページ fg400.pdfFGG400 √ √ √ pk108_fgg400.pdfFG456√pk154_fg456.pdf472 ページ fg456.pdfFGG456 √ pk109_fgg456.pdfFG484 √ √pk183_fg484.pdf473 ページ fg484.pdfFGG484 √ √ √ pk110_fgg484.pdfCS484√pk230_cs484.pdf474 ページ cs484.pdfCSG484 √ pk231_csg484.pdfFG676 √ √ √pk155_fg676.pdf475 ページ fg676.pdfFGG676 √ √ √ √ pk111_fgg676.pdfFG900√pk186_fg900.pdf476 ページ fg900.pdfFGG900 √ pk114_fgg900.pdf<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 463<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 17 章 : パッケージ 図 面表 17-1 : <strong>Spartan</strong>-3 ジ ェ ネレーシ ョ ンの 図 面パッケージFG1156 (1)√なし477 ページ fg1156.pdfFGG1156 (1) √ なしメモ :<strong>Spartan</strong>-3ADSP<strong>Spartan</strong>-3AN <strong>Spartan</strong>-3A <strong>Spartan</strong>-3E<strong>Spartan</strong>-3<strong>UG331</strong> のページパッケージ 図 面japan.xilinx.com の URL(http://japan.xilinx.com/support/documentation/package_specs/)MDDS URL(http://japan.xilinx.com/support/documentation/package_specs/)1. FG(G)1156 パッケージは 製 造 中 止 になっているため、 新 しいデザインでは 使 用 しないで ください。 詳 細 は、 カスタマ 通 知 XCN07022 を参 照 し て く だ さ い。464 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


VQ100/VQG100 Very Thin QFP パッケージ (pk012)RVQ100/VQG100 Very Thin QFP パッケージ (pk012)図 17-1 : VQ100/VQG100 Very Thin QFP パッケージ (pk012)<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 465<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 17 章 : パッケージ 図 面CP132/CPG132 Chip Scale BGA パッケージ (pk500)図 17-2 : CP132/CPG132 Chip Scale BGA パッケージ (pk500)466 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


TQ144/TQG144 Thin QFP パッケージ (pk009)RTQ144/TQG144 Thin QFP パッケージ (pk009)図 17-3 : TQ144/TQG144 Thin QFP パッケージ (pk009)<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 467<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 17 章 : パッケージ 図 面PQ208/PQG208 QFP パッケージ (pk007)図 17-4 : PQ208/PQG208 QFP パッケージ (pk007)468 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


FT256/FTG256 Fine-Pitch Thin BGA パッケージ (pk053)RFT256/FTG256 Fine-Pitch Thin BGA パッケージ (pk053)図 17-5 : FT256/FTG256 Fine-Pitch Thin BGA パッケージ (pk053)<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 469<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 17 章 : パッケージ 図 面FG320/FGG320 Fine-Pitch BGA パッケージ (pk071)図 17-6 : FG320/FGG320 Fine-Pitch BGA パッケージ (pk071)470 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


FG400/FGG400 Fine-Pitch BGA パッケージ (pk083)RFG400/FGG400 Fine-Pitch BGA パッケージ (pk083)図 17-7 : FG400/FGG400 Fine-Pitch BGA パッケージ (pk083)<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 471<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 17 章 : パッケージ 図 面FG456/FGG456 Fine-Pitch BGA パッケージ (pk034)図 17-8 : FG456/FGG456 Fine-Pitch BGA パッケージ (pk034)472 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


FG484/FGG484 Fine-Pitch BGA パッケージ (pk081)RFG484/FGG484 Fine-Pitch BGA パッケージ (pk081)図 17-9 : FG484/FGG484 Fine-Pitch BGA パッケージ (pk081)メモ : <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> では、 4 層 の FG484 パ ッ ケージが 使 用 さ れます。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 473<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 17 章 : パッケージ 図 面CS484/CSG484 Chip-Scale BGA パッケージ (pk223)図 17-10 : CS484/CSG484 Fine-Pitch BGA パッケージ (pk223)474 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


FG676/FGG676 Fine-Pitch BGA パッケージ (pk035)RFG676/FGG676 Fine-Pitch BGA パッケージ (pk035)図 17-11 : FG676/FGG676 Fine-Pitch BGA パッケージ (pk035)<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 475<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 17 章 : パッケージ 図 面FG900/FGG900 Fine-Pitch BGA パッケージ (pk038)図 17-12 : FG900/FGG900 Fine-Pitch BGA パッケージ (pk038)476 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


FG1156/FGG1156 Fine-Pitch BGA パッケージ (pk039)RFG1156/FGG1156 Fine-Pitch BGA パッケージ (pk039)図 17-13 : FG1156/FGG1156 Fine-Pitch BGA パッケージ (pk039)<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 477<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 17 章 : パッケージ 図 面478 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 18 章<strong>Spartan</strong>-3 ジェ ネレーショ ン <strong>FPGA</strong> の 電 源概 要<strong>FPGA</strong> の 電 源 供 給 および 分 配 シ ス テム を 設 計 には、 独 特 な 課 題 があ り ます。 ほ と んどの IC には 特定 の 要 件 があ り ますが、 <strong>FPGA</strong> では、 広 範 囲 の 周 波 数 で 複 数 の ク ロ ッ ク ドメインを 使 用 したさまざま なアプ リ ケーシ ョ ン を イ ンプ リ メ ン ト で き、 また 複 数 の 電 源 か ら 選 択 する よ う にで き る ので、 そのアプ リ ケーシ ョ ン 独 自 の 要 件 を 注 意 深 く 決 定 し、 その 要 件 に 合 う よ う 設 計 する 必 要 があ り ます。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> 間 での 違 い<strong>Spartan</strong> ® -3、 <strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3A、 <strong>Spartan</strong>-3AN、 <strong>Spartan</strong>-3A DSP <strong>FPGA</strong> では、 同 じ 90nm 処理 技 術 と 1.2V の VCCINT 電 圧 が 使 用 さ れ、 アーキテ ク チ ャ も 類 似 し てい る ため、 消 費 電 力 の 特 性も 同 様 になり ますが、 <strong>Spartan</strong>-3A/3A DSP <strong>FPGA</strong> では V CCAUX を 2.5V か 3.3V にでき、 <strong>Spartan</strong>-3AN <strong>FPGA</strong> では 3.3V にする 必 要 があ る 点 が 異 な り ます。 このため、3.3V に 完 全 に 準 拠 し、 ホ ッ トスワップ アプ リ ケーシ ョ ンの 要 件 すべてに 互 換 性 があ る 場 合 は、2.5V 電 源 レールを 削 除 で き ます。表 18-1 に、 プラ ッ ト フ ォーム 間 の 違 いを 示 し ます。表 18-1 : <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> 間 の 違 い機 能<strong>Spartan</strong>-3AN<strong>FPGA</strong><strong>Spartan</strong>-3A/3A DSP<strong>FPGA</strong><strong>Spartan</strong>-3E<strong>FPGA</strong><strong>Spartan</strong>-3<strong>FPGA</strong>V CCINT 1.2V 1.2V 1.2V 1.2VV CCAUX 3.3V 2.5V または 3.3V 2.5V 2.5VV CCO 1.2V ~ 3.3V + 10% 1.2V ~ 3.3V + 10% 1.2V ~ 3.3V + 5% 1.2V ~ 3.3V + 5%V IN 最 大 推 奨 電 圧 4.6V 4.6V V CCO + 0.5V3.75V またはV CCO + 0.3Vホッ ト スワップ フル サポー ト フル サポー ト シーケンス コネクタ シーケンス コネクタV CCO バン ク 4 4 4 4 ~ 8パワーオン リセット入 力ア ク テ ィ ブ 入 力 付 きパワーオフ モードSUSPEND ( 一 時 停 止 )モー ドV CCINT 、 V CCAUX 、V CCO バンク 2V CCO は 削 除 可 能V CCINT 、 V CCAUX 、V CCO バンク 2V CCO は 削 除 可 能V CCINT 、 V CCAUX 、V CCO バン ク 2V CCO は 維 持 する必 要 あ りV CCINT 、 V CCAUX 、V CCO バンク 4V CCO は 維 持 する必 要 あ りサポー ト あ り サポー ト あ り なし なし立 ち 上 が り 時 間 や 静 止 電 流 などの 特 定 の 要 件 は、 各 プ ラ ッ ト フ ォームで 異 な り ます。 詳 細 は、 それぞれの <strong>FPGA</strong> データ シー ト に 記 述 さ れています。 ダ イ ナ ミ ッ ク 消 費 電 力 も プ ラ ッ ト フ ォーム ご と に異 な り ます。 こ れは、 ザ イ リ ン ク スの 電 力 概 算 ツールで 計 算 で き ます。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 479<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 18 章 : <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> の 電 源電 源表 18-2 : <strong>Spartan</strong>-3 ジ ェ ネレーシ ョ ンの 電 源<strong>Spartan</strong>-3 ジェネレーショ ン <strong>FPGA</strong> には、 表 18-2 に 示 すよ う に 電 源 入 力 が 複 数 あ り ます。 内 部 ロジック フ ァ ン ク シ ョ ンの 入 力 は、 V CCINT と V CCAUX の 2 つです。 <strong>Spartan</strong>-3A/3A DSP <strong>FPGA</strong> のV CCAUX は 2.5V (デフォル ト) または 3.3V のいずれかにプログラ ムでき ます。 この 値 は、 ソフ トウェアで CONFIG VCCAUX=2.5 または CONFIG VCCAUX=3.3 制 約 を 付 け る と 指 定 で き ます。<strong>Spartan</strong>-3AN <strong>FPGA</strong> の 場 合 は、 必 ず CONFIG VCCAUX=3.3 にする 必 要 があ り ます。電 源 入 力 説 明 (1) 標 準 電 圧V CCINTV CCAUXVCCO_0VCCO_1VCCO_2VCCO_3内 部 の 主 な 電 源 電 圧 。 CLB、 ブロック RAM、 乗 算 器 などのすべての ロ ジ ッ ク ファンクションで 使 用 され、 POR (パワーオン リセット) 回 路 への 入 力 に も な り ます。1.2V、 1.5V、 1.8V の 入 力 信 号 の 電 源 にな り ます。補 助 電 源 電 圧 。 DCM (デジタル クロック マネージャ )、 差 動 ドライバ、 専 用 コンフィギュレーション ピン、 JTAG インターフェイスで 使 用 され、 2.5V および 3.3Vの 入 力 信 号 の 電 源 にな り ます。 POR 回 路 へも 入 力 さ れます。I/O バン ク 0 (<strong>FPGA</strong> の 上 部 ) の 出 力 バ ッ フ ァ の 電 源 です。I/O バンク 1 (<strong>FPGA</strong> の 右 側 ) の 出 力 バ ッ フ ァ の 電 源 です。 BPI (Byte-WidePeripheral Interface) パラレル フラッシュ モー ド の 場 合 は、 フ ラ ッ シ ュ PROM と同 じ 電 圧 に 接 続 します。I/O バン ク 2 (<strong>FPGA</strong> の 下 部 ) の 出 力 バ ッ フ ァ の 電 源 です。 <strong>FPGA</strong> コンフィギュレーション ソース と 同 じ 電 圧 に 接 続 さ れます。 POR 回 路 へも 入 力 さ れます。I/O バン ク 3 (<strong>FPGA</strong> の 左 側 ) の 出 力 バ ッ フ ァ の 電 源 です。1.2V2.5V (<strong>Spartan</strong>-3A/3ADSP では 3.3V も 可 能 、<strong>Spartan</strong>-3AN では 3.3Vが 必 要 )3.3V、 3.0V、 2.5V、1.8V、 1.5V、 1.2V から選 択 可 能3.3V、 3.0V、 2.5V、1.8V、 1.5V、 1.2V から選 択 可 能3.3V、 3.0V、 2.5V、1.8V、 1.5V、 1.2V から選 択 可 能3.3V、 3.0V、 2.5V、1.8V、 1.5V、 1.2V から選 択 可 能メモ :1. V CCO は、 <strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3A/-3AN/-3A DSP に 使 用 されます。 <strong>Spartan</strong>-3 には、 右 上 か ら 時 計 回 り に 0 ~ 7 の 8 つの V CCO があ ります。 TQ144 および CP132 パッケージの <strong>Spartan</strong>-3 デバイ スには 4 つの V CCO があ り ますが、 これらを 接 続 する こ とによ りVCCO_TOP、 VCCO_RIGHT、 VCCO_BOTTOM、 VCCO_LEFT に 等 価 の 信 号 が 作 成 されます。各 I/O バンクには、 それぞれ V CCO 電 源 入 力 があ り 、 その I/O バンク 内 の 出 力 バッ ファの 電 源 になります。 同 じ I/O バン ク に 接 続 さ れる V CCO はすべて 同 じ 電 圧 にする 必 要 があ り ます。 V CCO 電 圧は、 そのバン ク に 対 し て 指 定 さ れる 出 力 規 格 に よ っ て、 1.2V ~ 3.3V にな り ます。ほとんどのデバイスには、I/O バン クが 4 つあ り ます。 <strong>Spartan</strong>-3 <strong>FPGA</strong> の 場 合 は、 ほ と んどのパッケージで I/O バンクが 8 つ ( 半 サイ ド ご と に 1 つずつ) ありますが、TQ144 および CP132 パッケージでは 各 サイ ドに V CCO が 1 つずつです。 これらのパッケージの 場 合 、 V CCO 信 号 は 接 続 さ れ、VCCO_TOP、 VCCO_RIGHT、 VCCO_BOTTOM、 VCCO_LEFT に 等 価 の 信 号 が 作 成 されます。3.3V し か 使 用 で き ないアプ リ ケーシ ョ ンの 場 合 、<strong>Spartan</strong>-3A/3AN/3A DSP <strong>FPGA</strong> の V CCO およびV CCAUX はすべて 3.3V に 接 続 されます。 ただし、 <strong>Spartan</strong>-3 ジェネレーショ ン <strong>FPGA</strong> では、 別 のバンクの V CCO に 違 う 電 圧 を 使 用 する と 、 異 な る I/O 電 圧 および 規 格 を 使 用 で き る よ う にな り ます。1 つの I/O バン ク 内 で 組 み 合 わせて 使 用 で き る I/O 規 格 は、 364 ページの 「I/O バン ク の 規 則 」 を 参照 してください。480 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


電 力 概 算R<strong>Spartan</strong>-3A/3AN/3A DSP <strong>FPGA</strong> の 場 合 、 電 源 は 3.0V ~ 3.6V (±10% 範 囲 ) がサポー ト されるので、3.3V 電 源 の 選 択 が 単 純 にな り ます。 <strong>Spartan</strong>-3/3E <strong>FPGA</strong> の 場 合 は、3.0V ~ 3.45V (±10% ~ + 5%)がサポー ト されます。また、 <strong>Spartan</strong>-3A/3AN/3A DSP <strong>FPGA</strong> の 場 合 、 V CCO と は 関 係 な く 、 4.1V までの 入 力 電 圧 (V IN )が 使 用 でき ます。 <strong>Spartan</strong>-3/3E <strong>FPGA</strong> の 場 合 、 V IN は V CCO 電 圧 ( 専 用 ピ ンの 場 合 は V CCAUX 電 圧) +0.3V/0.5V 以 内 の 電 圧 しか 使 用 でき ません。 アプ リ ケーシ ョ ンでこれよ り 高 い 電 圧 を 必 要 とする 場 合 は、アプ リ ケーシ ョ ン ノート XAPP459 『Eliminating I/O Coupling Effects when InterfacingLarge-Swing Single-Ended Signals to User I/O Pins on <strong>Spartan</strong>-3 Generation <strong>FPGA</strong>s』を 参 照 し て ください。V REF各 I/O バンクには、オプシ ョ ンで V REF と い う 参 照 電 圧 が 含 まれます。 I/O バンクに HSTL や SSTLなどの 参 照 電 圧 が 必 要 な I/O 規 格 が 含 まれる 場 合 は、 I/O バンク 内 のすべての V REF ピンを 同 じ 電圧 に 接 続 する 必 要 があ り ます。 V REF ピンは、バンク 内 の 規 格 で 必 要 と されない 場 合 は I/O ピンとして 使 用 でき ます。電 力 概 算ザイ リ ンクスでは、スプレッ ドシート 形 式 およびインターネッ ト ベースの 電 力 概 算 ツールや 電 力 解析 ツール、 電 力 に 関 連 する ド キ ュ メ ン ト など を 提 供 し ています。 ザイ リンクスの 消 費 電 力 ページには、 電 力 に 関 する 3 つのツール と、 ド キ ュ メ ン ト 、 ニュース、 ソ リ ューシ ョ ンが 記 述 されています。こ のページでは、 総 消 費 電 力 ( 静 止 電 力 と 動 的 電 力 ) を 概 算 する 方 法 と し て、 次 の 2 つのツールを 推奨 しています。• XPower Estimator : スプレ ッ ド シー ト 形 式 で、 標 準 的 な 概 算 を 素 早 く 正 確 に 実 行 し ます。 ネ ットリストは 必 要 ありません (<strong>Spartan</strong>-3 <strong>FPGA</strong> の 場 合 は 「ウ ェ ブ 消 費 電 力 ツール」 を 使 用 )。• XPower Analyzer : ISE ® ソ フ ト ウ ェ アに 含 まれ、ネ ッ ト リ ス ト を 入 力 フ ァ イ ル と し て 使 用 し ます。 よ り 正 確 な 最 大 値 および 標 準 値 が 概 算 さ れます。電 圧 レギュ レー タ電 圧 レ ギ ュ レータは、 シ ス テム 要 件 および 概 算 さ れた 消 費 電 力 要 件 に 従 って 選 択 し ます。 特 定 のデバイスおよびデザインの 要 件 を 計 算 するには、 XPower ツールを 使 用 します。 デザイ ンが 完 成 し ていない 場 合 、 または XPower ツールでターゲッ ト デバイ スがサポー ト されていない 場 合 は、 サポートされている <strong>Spartan</strong>-3 ジェネレーショ ン <strong>FPGA</strong> の 中 で 一 番 近 い も のを 使 用 し て く だ さ い。 機 能 を調 整 で き る よ う に、 ピ ンの 互 換 性 があ る フ ァ ミ リ か ら レ ギ ュ レータ を 選 択 し ます。 外 部 電 力 の FETは 簡 単 にア ッ プグ レー ド でき ます。 softstart は、 出 力 ラ ンプ タ イ ム を 制 御 する 便 利 な 機 能 です。フ ォール ド バ ッ ク や ヒ ューズの よ う な 過 電 流 保 護 を 使 用 で き ますが、 注 意 が 必 要 です。 この 場 合 、V CCAUX を V CCINT より 先 に 投 入 して、I CCINT 電 流 が 過 剰 にならないよ うにしてください (483ページの 「V CCINT が V CCAUX よ り 前 に 投 入 された 場 合 の I CCINT 」 を 参 照 )。 また、キャパシタが 電源 投 入 時 に 充 電 さ れ、 短 時 間 に 大 量 の 電 流 が 流 れる こ と に も 注 意 し て く だ さ い。 必 要 であれば、 電源 ラ ンプを 遅 らせて、 充 電 のための 電 流 を 制 御 し ます。 フォールドバックがデザイン 要 件 でない 場合 は 使 用 せずに、 電 力 デザ イ ン を シンプルにする こ と をお 勧 め し ます。さまざまなメーカーがザイリンクス <strong>FPGA</strong> 用 の 電 源 ソ リ ューシ ョ ンを 提 供 し てお り、 中 には<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> デザイ ン 用 の 3 本 レールのレ ギ ュ レータ を 提 供 し てい る と こ ろもあります。 消 費 電 力 ページには、 こ れら のベンダーおよびザ イ リ ン ク スの 電 力 概 算 / 解 析 ツールへのリンクがあります。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 481<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 18 章 : <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> の 電 源電 源 投 入 時 の 動 作<strong>Spartan</strong>-3 ジェネレーショ ン <strong>FPGA</strong> には、 <strong>FPGA</strong> を コ ンフ ィ ギュ レ ーショ ン する のに 必 要 な 3 本 の 電源 レ ールを 監 視 する ビ ルト イ ン の POR (パワ ーオン リ セット) 回 路 が 含 まれます ( 図 18-1 を 参 照 )。 電源 が 投 入 さ れる と 、 POR 回 路 は V CCINT 、 V CCAUX 、バンク 2 の V CCO の 電 源 がそれぞれの 入 力 し きい 値 レベルに 達 する ま で、<strong>FPGA</strong> をリ セッ ト ス テート に 保 持 し ま す ( 各 デバイ ス の データ シート を 参照 )。 <strong>Spartan</strong>-3 <strong>FPGA</strong> では POR 入 力 はバンク 4 の V CCO で、 <strong>Spartan</strong>-3E およ び <strong>Spartan</strong>-3A/3AN/3ADSP のバンク 2 の V CCO に 対 応 し ます。 POR およ び VCCO_2 は、<strong>Spartan</strong>-3 <strong>FPGA</strong> では VCCO_4 になり ます。 3 つすべての 電 源 がそれぞれのし き い 値 に 達 し たら 、 POR リ セットが 送 信 され、<strong>FPGA</strong> のコンフィ ギュレーショ ン プロ セス が 開 始 さ れま す。V CCINT<strong>Spartan</strong>-3 <strong>FPGA</strong>V CCAUXVCCO_2PROG_B<strong>UG331</strong>_c18_01_081806図 18-1 : 簡 略 化 された POR 回 路 図電 源 投 入 順 序POR を 解 除 する には、 3 つの <strong>FPGA</strong> 電 源 入 力 が 有 効 にな る 必 要 があ り ます。 こ れ ら の 電 源 は、 どの 順 序 で も 投 入 でき るので、 <strong>FPGA</strong> 用 の 電 源 投 入 順 序 の 要 件 は 特 にあ り ませんが、 <strong>FPGA</strong> のV CCAUX を V CCINT よ り 前 に 投 入 する と 、 I CCINT 電 流 を 最 低 限 に 抑 え る こ と がで き ます。<strong>FPGA</strong> には 特 定 の 電 源 投 入 順 序 要 件 はあ り ませんが、 SPI シ リアル フラッシュ PROM、 パラレルNOR フラッシュ PROM、マイ ク ロ コン ト ローラ などの <strong>FPGA</strong> に 接 続 された コ ン フ ィ ギ ュ レーシ ョン デバイ スのシーケン ス 要 件 を 考 慮 する 必 要 があ り ます。 たとえば、 フラッシュ PROM の 場 合 、PROM が 選 択 可 能 にな る 前 に 最 低 限 必 要 な 時 間 があ る ので、 3.3V 電 源 が 投 入 順 序 の 最 後 になってい る 場 合 は、こ の 時 間 を 考 慮 に 入 れる 必 要 があ り ます。 詳 細 は、『<strong>Spartan</strong>-3 Generation ConfigurationUser Guide』 (UG332) を 参 照 して く ださい。<strong>Spartan</strong>-3AN デバイ スでは、 イ ンシス テム フラッシュからコンフィギュレーションする 場 合 は、V CCAUX が 推 奨 動 作 範 囲 内 であ る 必 要 があ り ます。 電 源 投 入 時 、INIT_B が High になってコンフ ィギ ュ レーシ ョ ンの 開 始 を 示 す 前 に、V CCAUX が 3.0V 以 上 になってい る よ う に し て く だ さ い。<strong>FPGA</strong>の V CCINT 、 V CCAUX 、および V CCO 電 源 は、 こ の 要 件 が 満 た さ れていれば 投 入 順 序 は 問 いません。3 つすべての 電 源 が 有 効 にな る と 、<strong>FPGA</strong> の 電 源 投 入 に 必 要 な 最 小 電 流 は <strong>FPGA</strong> データ シー ト に 示さ れる ワース ト ケースの 静 止 電 流 と 同 じ にな り ます。 <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> の 場 合 、コンフィギュレーションに POS (パワーオン サージ) 電 流 は 必 要 あ り ません。482 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


ホッ ト スワップRV CCINT が V CCAUX よ り 前 に 投 入 された 場 合 の I CCINTV CCINT が V CCAUX よ り 前 に 投 入 さ れる と 、I CCINT 静 止 電 流 はデータ シー ト に 示 さ れる 値 よ り 多 くなります。 通 常 の 状 態 では、 こ の 余 剰 静 止 電 流 は 数 百 ミ リ アンペアで、 電 源 投 入 時 にバ イパス キャパシ タ で 消 費 さ れる 瞬 間 電 流 よ り も かな り 少 ないのですが、 V CCAUX が 使 用 される と すぐに 消 え、I CCINT 静 止 電 流 はデータ シー ト に 示 すレベルまで 下 が り ます。 こ の 余 剰 電 流 は、 <strong>FPGA</strong> の 電 源 投 入やコ ン フ ィ ギ ュ レーシ ョ ンには 使 用 さ れず、 必 要 と も さ れません。 V CCINT を V CCAUX の 前 に 投 入する 場 合 は、 こ の よ う な 余 剰 電 流 があ る と シ ャ ッ ト ダ ウ ン し て し ま う よ う な 機 能 を 持 つレ ギ ュ レータは 使 用 し ない よ う に し て く だ さ い。 余 剰 電 流 が 発 生 し ない よ う にする には、 V CCAUX が 推 奨 される 最 低 動 作 条 件 に 達 し、 安 定 し てか ら V CCINT を 投 入 して く ださい。立 ち 上 がり 時 間電 源 投 入 が 問 題 な く 実 行 さ れる には、 V CCINT 、バンク 2 の V CCO 、 V CCAUX をそれぞれのし きい値 範 囲 に 一 定 し て 増 加 さ せる 必 要 があ り ます 特 定 の 立 ち 上 が り 時 間 については、 <strong>FPGA</strong> のデータシー ト を 参 照 し て く だ さ い。 <strong>Spartan</strong>-3 <strong>FPGA</strong> の 場 合 、 現 在 のバージ ョ ンでは 立 ち 上 が り 時 間 の 要 件はあ り ません。 以 前 のバージ ョ ンについては、 <strong>Spartan</strong>-3 <strong>FPGA</strong> のデータシー ト (DS099) を 参 照 してください。 <strong>Spartan</strong>-3E <strong>FPGA</strong> の 立 ち 上 が り 時 間 要 件 は 0.2 ~50ms、 <strong>Spartan</strong>-3A/3AN/3A DSP<strong>FPGA</strong> の 場 合 は 0.2 ~ 100ms です。ホッ ト スワップホッ ト スワップ (ホッ ト プラグまたはホッ ト 挿 入 ) とは、 電 源 の 入 っていないボードのプラグを 電源 の 入 ったシ ス テムに 差 し 込 むこ と です。 ホッ ト ス ワ ッ プがサポー ト さ れる 場 合 、 電 源 の 入 っ ていないボードやデバイ スのプラグを、 システムやボード/デバ イ スに 影 響 やダ メ ージを 与 えずに、 電 源の 入 ったシ ス テムやバ ッ ク プレーンに 直 接 差 し 込 むこ と がで き ます。 ホッ ト スワップをサポートするデバイスの I/O には、 次 の よ う な 特 徴 があ り ます。• デバイ スに 電 源 を 入 れる 前 に 信 号 を I/O ピ ンに 供 給 可 能• I/O ピ ンは 電 源 投 入 およびコ ン フ ィ ギ ュ レーシ ョ ン プロセスの 前 から、 最 後 までハイ インピーダンス ( トライステート)• I/O ピンから 電 源 に 戻 る 電 流 パスがないホッ ト スワップ アプ リ ケーシ ョ ンには、 すべての <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> を 使 用 できますが、 サポート レベルは 異 な り ます。 <strong>Spartan</strong>-3A/3AN/3A DSP <strong>FPGA</strong> の 場 合 、 上 記 の と お り 完全 にサポー ト されますが、 <strong>Spartan</strong>-3/3E <strong>FPGA</strong> の 場 合 は、 I/O で 信 号 が 受 信 さ れる 前 に <strong>FPGA</strong> に 電源 が 投 入 される よ う にするため、 シーケン ス コネクタが 必 要 です。コンフィギュレーション デー タの 保 持 と 電 圧 低 下<strong>FPGA</strong> のコンフィギュレーショ ン データは CMOS コンフィギュレーション ラッチに 格 納 されます。 ラ ッ チのデータは、 <strong>FPGA</strong> データ シー ト に 示 すよ う に、 電 圧 が RAM の 内 容 を 保 持 する ために必 要 な 最 低 レベルまで 下 がっ て も 保 持 さ れます。コンフィギュレーション 後 に V CCAUX または V CCINT の 電 圧 がその 最 低 レベルを 下 回 っ た 場 合 、CMOS コンフィギュレーション ラ ッ チの 整 合 性 は 保 証 さ れないので、 次 のいずれかの 方 法 でデバイスのコンフィギュレーションをリセットする 必 要 があります。• V CCAUX または V CCINT を POR 電 圧 の 最 小 しきい 値 よ り も 低 く してから、 最 大 しきい 値 要 件よりも 大 きくします。• PROG_B を Low にアサート します。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 483<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 18 章 : <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> の 電 源POR 回 路 では、コ ン フ ィ ギ ュ レーシ ョ ン 後 の VCCO_2 が 監 視 されないため、 VCCO_2 の 電 圧 が 低下 しても、 POR イベントがト リガされてデバイスがリセットされることはありません。 PROG_B入 力 は POR 回 路 をバ イパスする ので ( 図 18-1 を 参 照 )、 それだけで <strong>FPGA</strong> を 初 期 化 で き ます。INIT_B 信 号 が High になって <strong>FPGA</strong> が 問 題 な く リ セ ッ ト された こ と が 示 された ら、 <strong>FPGA</strong> をコンフィギュレーションし 直 します。節 電消 費 電 力 を 抑 え る と 、 電 力 要 件 を 抑 え る だけでな く 、 熱 も 下 げる こ と がで き る ので、 信 頼 性 が 向 上し、 よ り 小 型 のパッケージングが 可 能 になり、 ヒート シンクやファンを 使 用 する 必 要 もなくなります。 ザイ リンクスの <strong>FPGA</strong> は、 パフ ォーマン スやコ ス ト を 犠 牲 にせずに 電 力 消 費 を 最 低 限 に 抑 え るように 設 計 されています。消 費 電 力 は、 ノ ー ド や I/O ト グルの 回 数 および 周 波 数 を 削 減 する と 抑 え る こ と がで き ます。 電 力 は、入 力 が ト グルせず、 すべての 出 力 がデ ィ ス エーブルで、 プルア ッ プ/プルダウ ン 抵 抗 が 使 用 されていない 静 止 状 態 の と きに 最 低 にな り ます。 こ の 場 合 、 消 費 電 力 は 各 電 源 で 必 要 な 電 力 の 合 計 と 同 じ になります。次 の 方 法 を 使 用 する と 、 不 必 要 な ス イ ッ チを な く し、 電 力 を 削 減 で き ます。• すべての 入 力 信 号 を 静 止 状 態 にする• 可 能 であれば、 入 力 をレール 間 レベルにする♦ GND から V CCO に 振 幅 する 信 号 を 使 用 する• できるだけ 多 くの 出 力 をオフにする• 未 接 続 の 入 力 をすべて V CCO ま たは 出 力 デバ イ スの GND へ 接 続 する• I/O にプルア ップおよびプルダウン 抵 抗 を インス タンシエー ト しないよ う にする• できるだけ 多 くの 内 部 オシレータ 回 路 をディ スエーブルにする• 出 力 への 振 幅 が 少 ない 信 号 規 格 を 使 用 する• ブロック RAM を NO_CHANGE モー ド ( 書 き 込 み 中 の 読 み 出 し な し) にし、 ブロック RAMの 出 力 の ト グルを 削 減 する• 重 負 荷 の 信 号 の 合 計 長 を 削 減 し て、 キ ャパシ タ ン ス を 減 らすク ロ ッ ク 配 線 における 節 電クロックは、 ファンアウト ネット 数 が 多 く、 これらのネッ トを 制 御 することにより トグルするロジック エレ メ ン ト の 数 を 制 限 で き る ため、 消 費 電 力 量 に 大 き く 影 響 し ます。 可 能 な 場 合 、 ク ロ ッ クを <strong>FPGA</strong> に 入 力 する 部 分 で 停 止 する と 、<strong>FPGA</strong> で 電 力 は 消 費 されません。 クロックを 外 部 から 停 止できない 場 合 は、 BUFGCE コンポーネントを 使 用 して <strong>FPGA</strong> 内 で ク ロ ッ ク をデ ィ スエーブルにします ( 図 18-2 を 参 照 )。 BUFGCE は、 ク ロ ッ ク の AND ゲー ト の 役 割 り を 果 た し ます。484 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


節 電R<strong>Spartan</strong>-3 Generation <strong>FPGA</strong>ClockBUFGCEEnableGlobal Clock Line<strong>UG331</strong>_c18_02_081906図 18-2 : BUFGCE を 使 用 したクロ ッ クのディ スエーブルゲー ト 付 き ク ロ ッ ク または 複 数 の ク ロ ッ ク を 生 成 する ロ ジ ッ ク を 使 用 し ない よ う に し て く だ さ い。クロック 信 号 で CLB ロ ジ ッ ク が 使 用 さ れる と 、 配 線 に 依 存 する ス キ ューが 発 生 するほか、 ロ ッ トの 違 いに 左 右 さ れて タ イ ミ ングで 問 題 が 発 生 し ます。クロック ネ ッ ト の 配 線 量 を 削 減 し て も、 節 電 で き ます。 ザイ リンクス ソ フ ト ウ ェ ア を 使 用 する と 、未 使 用 の CLB 列 の ク ロ ッ ク ネ ッ ト が 自 動 的 にデ ィ スエーブルにされ、 ク ロ ッ ク の 付 いた ロ ジ ッ クができ るだけ 限 られた CLB 列 に 集 められるので、CLB の 使 用 さ れる ク ロ ッ ク 列 数 を 削 減 で き ます。同 様 に、 ク ロ ッ ク が 駆 動 する 行 数 も 削 減 し て く だ さ い。フ ロ アプ ラ ンに よ っ て、 ク ロ ッ ク の 消 費 電 力 を 削 減 する こ と も で き ます。 グローバル クロックで 駆動 さ れる ロ ジ ッ ク を ク ロ ッ ク 領 域 別 にパーテ ィ シ ョ ンする と 、 各 グ ローバル クロックが 配 線 されるク ロ ッ ク 領 域 の 数 を 削 減 で き ます。 デザイ ンを ク ロ ッ ク ド メ イ ンに 分 割 し、それぞれの ク ロ ッ ク ドメ イ ンの 周 波 数 をで き る だけ 小 さ く し て く だ さ い。ク ロ ッ ク を 操 作 できない 場 合 でも、 ク ロ ッ ク イネーブルを 使 用 してロードを 制 御 し、 フリ ップフロ ッ プの 出 力 のス イ ッ チ 回 数 を 削 減 する こ と はで き ます。パワーオフ モード場 合 に よ っては、 単 にデバ イ スの 電 源 を 切 っ て 節 電 する こ と も で き ます。 この 方 法 は、 <strong>FPGA</strong> が 長期 間 動 作 せず、 消 費 電 力 をで き る だけ 抑 え る 必 要 のあ る と き に 使 用 し ます。 <strong>Spartan</strong>-3A/3AN/3ADSP <strong>FPGA</strong> の 場 合 、 信 号 が 入 力 で ト グル 中 であ って も、3 つの 電 源 すべてをオフにで き ます ( 図 18-3を 参 照 )。 <strong>Spartan</strong>-3E および <strong>Spartan</strong>-3 <strong>FPGA</strong> の 場 合 、 パワー ダイオードをオフのままにするには、V CCO を 有 効 な レベルに 保 つ 必 要 があ り ます ( 図 18-4 を 参 照 )。 V CCINT および V CCAUX をオフにする と 、 静 止 電 流 の 合 計 を 標 準 の I CCO にまで 削 減 できます。 電 源 の 切 り 替 えには、 外 部 FET を 使 用できます。 コンフィギュレーションおよびメモリ データは 失 われますので、 電 源 投 入 後 に <strong>FPGA</strong> をコ ン フ ィ ギ ュ レーシ ョ ン し 直 す 必 要 があ り ます。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 485<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 18 章 : <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> の 電 源2.5V/3.3V 1.2VV CCOSupplyPowerSwitchV CCAUXPROG_BV CCINT<strong>Spartan</strong>-3A/3AN<strong>FPGA</strong>V CCOActive DeviceConnected onBoard<strong>UG331</strong>_c18_03_022507図 18-3 : <strong>Spartan</strong>-3A/3AN/3A DSP のパワーオ フ2.5V 1.2VV CCOSupplyPowerSwitchV CCAUXPROG_BV CCINT V CCOV CC<strong>Spartan</strong>-3/3E<strong>FPGA</strong>I/O BankDevice図 18-4 : <strong>Spartan</strong>-3/3E のパワーオ フ<strong>UG331</strong>_c18_04_081806パワーオフ 状 態 にするには、 まず PROG_B を Low にして 出 力 をオフにし、 コンフィギュレーション メ モ リ をすべて 0 に 初 期 化 し ます。 INIT_B と DONE が Low になったら、 V CCINT と V CCAUXの 電 源 を 切 り ます。 再 び 電 源 を 入 れる には、V CCINT と V CCAUX を 適 用 してから、PROG_B を Highに 戻 し ます。 INIT_B が High になったら、<strong>FPGA</strong> をコンフィギュレーシ ョ ンし 直 し、ユーザー モードに 戻 します。486 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


ボー ド デザイ ン と シグナル インテグリティR一 時 停 止 モー ド<strong>Spartan</strong>-3A/3AN/3A DSP の 一 時 停 止 モード を 使 用 する と、 コ ンフ ィ ギ ュ レーシ ョ ンおよびユーザー データすべてを 含 め、 デバ イ スの 状 態 を 保 存 し た ま ま、 静 止 電 流 レベルよ り 電 流 を 下 げる こ とができ ます。 詳 細 は、 第 19 章 「パワー マネージ メ ン ト ソ リューション」 を 参 照 して く ださい。ボー ド デザイ ン と シグナル インテグリティシステムの 構 築 には、 ブール ロジックや HDL コー ド 以 外 の 知 識 も 必 要 と さ れます。 現 在 では、 容量 や 消 費 電 力 の 削 減 に よ り 、 主 要 電 圧 が 以 前 の 5V から 1.0V の 範 囲 まで 下 がっています。 このよ うな 電 圧 や 信 号 周 波 数 の 変 更 に よ り 、 以 前 であれば 無 視 で き た 電 気 的 な 影 響 も 考 慮 する 必 要 があ り ます。 ザイ リ ンクスのシグナル インテグリティのサイ トには、 信 頼 性 の 高 い PCB デザイ ンを 実 現 する ための 情 報 が 記 載 さ れています。同 時 ス イ ッ チ 出 力グランド バウ ン スや 電 源 バウ ン スは、 多 数 の 出 力 が 同 時 に 同 方 向 にス イ ッ チする と 発 生 し ます。 すべての 出 力 駆 動 ト ラ ンジ ス タ か ら の 電 流 は、 同 じ 電 圧 レールに 流 れます。 Low から High に 遷 移 すると V CCO レールに、 High から Low に 遷 移 する と GND レールに 流 れます。 こ の 結 果 、 過 渡 電 流が 蓄 積 し、 ダ イ パッ ド と 電 源 またはグランド リターン 間 にあるインダクタンス 全 体 の 電 圧 に 相 違が 生 じ ます。 インダクタンスは、 ボンディング ワイヤ、 パッケージ リード フレーム、 およびパッケージ 内 のその 他 すべての 信 号 配 線 に 関 連 し ています。 PCB の 浮 遊 イ ンダ ク タ ン スやレシーバの容 量 負 荷 など も SSO のノイズ レベルに 影 響 を 与 え ます。 SSO に よ り 発 生 する 電 圧 に よ っ て 内 部 スイッチ ノ イ ズのマージンが 影 響 を 受 け、 信 号 の 質 が 低 下 し ます。クワッド フラッ ト パッケージ (VQ、 TQ、 PQ) の 方 が リ ード インダクタンスが 大 きいため、 最 大SSO 数 はボール グ リッド アレイ パッケージ (FG) よりも 少 なくなります。 チップ スケール パッケージ (CP132) の 結 果 は ク ワ ッ ド フラッ ト パ ッ ケージ よ り も 優 れていますが、ボール グ リッド アレイ パッケージよりは 劣 ります。 こ のため、 同 時 ス イ ッ チ 出 力 数 が 多 いアプ リ ケーシ ョ ンでは、ボール グ リッド アレイ パ ッ ケージが 推 奨 さ れます。各 <strong>FPGA</strong> データ シー ト には、 推 奨 さ れる SSO の 最 大 数 のが 記 載 さ れています。 これらのガイ ド ライ ンは、 各 出 力 信 号 規 格 に 対 し て、 ス イ ッ チ ノ イ ズを 安 全 なレベルに 保 った ま ま 同 方 向 に 同 時 にスイッチできるユーザー I/O ピ ンの 最 大 数 を 示 し ます。 記 述 さ れたテス ト 条 件 でこ れら のガイ ド ラ インに 従 う と 、グランド バウ ン ス や 電 源 バウ ン ス を 発 生 さ せずに <strong>FPGA</strong> を 動 作 さ せる こ と ができ ま す。PDS デザイ ン とキャパシ タのデカ ッ プ リ ング/バイパスすべての <strong>FPGA</strong> デザイ ン、 特 に 100MHz よ り も 高 速 なアプ リ ケーシ ョ ンの 場 合 、 優 れた PDS ( 電力 分 配 シ ス テム) を 設 計 する のが 重 要 課 題 と な り ます。 デザイ ンが 優 れている と、パフ ォーマン ス 全体 が 改 善 され、 ク ロ ッ クや DCM ジ ッ タ の 少 ない 安 定 し たシ ス テム を 構 築 で き ます。 <strong>FPGA</strong> デザインの PCB を 設 計 する 前 に、アプ リ ケーシ ョ ン ノート XAPP623 『Power Distribution System (PDS)Design: Using Bypass/Decoupling Capacitors』 を 参 照 し て く だ さ い。内 部 電 荷 ポン プまたはオシ レー タシステム アプ リ ケーシ ョ ンの 中 には、 アナログのノ イズ 源 に 弱 いものがあ り ます。 <strong>Spartan</strong>-3 ジェネレーシ ョ ン <strong>FPGA</strong> の 回 路 は 完 全 にス タ テ ィ ッ ク なので、 内 部 電 荷 ポンプは 使 用 し ていません。CCLK コンフィギュレーション クロックは <strong>FPGA</strong> コンフィギュレーション プロセス 中 にアクティブにな り、 コンフィギュレーションが 終 了 すると、CCLK オシレータは BitGen (BitstreamGenerator) オプシ ョ ンが Persist=Yes になっていない 限 り 、 自 動 的 にデ ィ ス エーブルにな り ます。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 487<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 18 章 : <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> の 電 源振 幅 の 大 きい 信 号推 奨 さ れる 動 作 状 況 では、 <strong>Spartan</strong>-3 ジェネレーショ ン <strong>FPGA</strong> のユーザー I/O および 多 目 的 ピ ンで1.2V ~ 3.3V で 振 幅 する 信 号 を 処 理 で き ます。 これらの <strong>FPGA</strong> の 専 用 ピ ンには、 通 常 LVCMOS25規 格 が 使 用 さ れます。 通 常 推 奨 さ れる よ り 振 幅 の 大 き い 信 号 を 制 御 する 場 合 は、 アプ リ ケーシ ョ ンノート XAPP459 『Eliminating I/O Coupling Effects when Interfacing Large-Swing Single-EndedSignals to User I/O Pins on <strong>Spartan</strong>-3 Generation <strong>FPGA</strong>s』 を 参 照 し て く だ さ い。関 連 文 書• 消 費 電 力 (http://japan.xilinx.com/power)• シグナル インテグリティ (http://japan.xilinx.com/products/design_resources/signal_integrity)• アプ リ ケーシ ョ ン ノート XAPP453 : 『The 3.3V Configuration of <strong>Spartan</strong>-3 <strong>FPGA</strong>s』• アプ リ ケーシ ョ ン ノート XAPP623 : 『Power Distribution System (PDS) Design - UsingBypass/Decoupling Capacitors』• 『<strong>Spartan</strong>-3 Generation Configuration User Guide』 (UG332)• <strong>Spartan</strong>-3 ジェネレーショ ンのデータシート488 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 19 章パワー マネージメ ン ト ソリューション概 要システム コス ト をできるだけ 抑 えたアプ リ ケーシ ョ ンや、パフォーマンスの 高 いアプ リ ケーシ ョ ンが 必 要 と さ れる こ と も あれば、 ス タ ン ド バイ 状 態 の 消 費 電 力 をで き る だけ 低 く する こ と が 要 求 さ れるアプリケーションもあります。 <strong>Spartan</strong> ® -3 ジェネレーショ ン <strong>FPGA</strong> には、コ ス ト とパフ ォーマンスの ト レー ド オフ を 考 慮 し た 低 電 力 オプシ ョ ンがあ り ます。<strong>Spartan</strong>-3 ジェネレーショ ン <strong>FPGA</strong> には、Hibernate ( 休 止 ) と いうパワー マネージメ ント オプショ ンが 含 ま れま す。 こ のオプショ ンを 使 用 する と 、 すべてまたはほと んどの <strong>FPGA</strong> ロジックの 電 源 を 切ることにより 、 節 電 できます。 こ の 場 合 、 通 常 の 操 作 に 戻 る 前 に <strong>FPGA</strong> をコンフィ ギュレーショ ンし 直 す 必 要 があり ま す。 <strong>FPGA</strong> アプリ ケーショ ン のス テート は 保 持 さ れま せん。<strong>Spartan</strong>-3A/3AN/3A DSP <strong>FPGA</strong> には、 一 時 停 止 モー ド と い う ア ド バン ス パワー マネージ メ ン ト 機能 が 含 まれ、 <strong>FPGA</strong> のコンフィギュレーシ ョ ン データやアプ リ ケーシ ョ ン ステート を 保 持 したまま、 消 費 電 力 を 抑 え る こ と がで き ます。 Hibernate モー ド は 節 電 に 優 れ、 一 時 停 止 モー ド ではすべてのデータを 保 持 したまま 高 速 に 再 起 動 できます。表 19-1 は、 Hibernate モー ド と 一 時 停 止 モー ド の 違 いを 示 し ています。表 19-1 : <strong>Spartan</strong>-3 ジ ェ ネレーシ ョ ンの 節 電 オプシ ョ ン<strong>Spartan</strong>-3A/3AN/3A DSP一 時 停 止 モー ド<strong>Spartan</strong>-3A/3AN/3A DSPHibernate モード<strong>Spartan</strong>-3/3EHibernate モードコンフィギュレーションデータの 保 持アプ リ ケーシ ョ ン ステートの 保 持(フリ ップフロップ、 RAM、 SRL16)○ ×○ ×節 電 モー ド か ら の 回 復 時 間約 500μs + DCM ロック 時 間+ プログラマブル 時 間<strong>FPGA</strong> コンフィギュレーション 時 間( 数 十 ミ リ 秒 )節 電 モー ド 中 の 消 費 電 力 低 最 小電 源 保 持 ま たは 縮 小 に よ ってほかの 電 力 を 節 約オフV CCO 以 外 はオフ<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 489<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 19 章 : パワー マネージメン ト ソリューション<strong>Spartan</strong>-3A/3AN/3A DSP の 一 時 停 止 モー ド<strong>Spartan</strong>-3A/3AN/3A DSP <strong>FPGA</strong> <strong>FPGA</strong> には、 一 時 停 止 (SUSPEND) モード と い う ア ド バン ス パワー マネージ メ ン ト オプシ ョ ンが 含 まれます。 こ のセ ク シ ョ ンでは、 こ の 一 時 停 止 モー ド を 使 用 したシ ス テムの 利 点 について 説 明 し ます。 一 時 停 止 モー ド の 詳 細 は、 アプ リ ケーシ ョ ン ノートXAPP480 『Using Suspend Mode in <strong>Spartan</strong>-3 Generation <strong>FPGA</strong>s』 を 参 照 し て く だ さ い。図 19-1 は、 XC3S1400A <strong>FPGA</strong> のデザ イ ン 例 で 一 時 停 止 モー ド を 使 用 し た 場 合 の 計 測 結 果 を 示 しています。 ほかのアレ イ サ イ ズの 結 果 は、 デバ イ ス の 集 積 度 を 基 に 概 算 さ れています。 一 時 停 止モー ド を 使 用 する と 、 主 に V CCINT および V CCAUX 電 源 レールの 電 流 消 費 が 影 響 を 受 け ます。 ユーザーがプロ グ ラ ム 可 能 な SUSPEND 制 約 がアプ リ ケーシ ョ ンでどの よ う に 定 義 さ れてい る かによって、V CCO 電 源 レール も 節 電 さ れます (497 ページの 「 一 時 停 止 モー ド 中 の I/O 動 作 の 指 定 」 を参 照 )。図 19-1 では、 次 の 3 つのデザ イ ン 例 におけ る 一 時 停 止 モー ド の 動 作 を 示 し ています。• ブランク : 空 白 の <strong>FPGA</strong> デザイ ンです。 このアプリケーションにはロジックは 使 用 されていません。 空 白 デザ イ ンでは、 静 止 電 流 が 最 小 と な る ので、 基 準 と な る 消 費 電 力 がわか り ます。• LVDS 32 個 : 32 個 の LVDS 差 動 出 力 チ ャ ネル (64 ピン) に 接 続 された 32 個 の LVDS 差 動 入力 チャ ネル (64 ピン) を 含 むデザ イ ンです。 <strong>Spartan</strong>-3A/3AN/3A DSP <strong>FPGA</strong> の 場 合 、 差 動 I/Oバッファには V CCAUX か ら 電 源 が 供 給 さ れます。• LVDS 32 個 + DCM 8 個 : 32 個 の LVDS と 8 個 の DCM (デジタル クロック マネージャ ) を含 むデザ イ ンです。 <strong>Spartan</strong>-3A/3AN/3A DSP <strong>FPGA</strong> の 場 合 、 差 動 I/O バッファと DCM にはV CCAUX か ら 電 源 が 供 給 さ れます。10090807060 (V CCAUX =3.3V) (V CCAUX =2.5V)400350300250 : (mA)50403020ICCINTI CCINT ()I CCAUXI CCINTI CCINT ()I CCAUX()I CCINTI CCINT ()I CCAUX200150100 : (mW)10I CCAUX()I CCAUX()I CCAUX()500 LVDS 32 LVDS 32 + DCM 8 図 19-1 : XC3S1400A を 使 用 したデザイン 例 で 計 測 された <strong>Spartan</strong>-3A の 一 時 停 止 モー ド0<strong>UG331</strong>_c19_10_022507490 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


<strong>Spartan</strong>-3A/3AN/3A DSP の 一 時 停 止 モー ドR図 19-1 の 棒 グ ラ フの 4 つの 棒 は、 すべての ク ロ ッ ク が 停 止 し た 場 合 と 、 一 時 停 止 モー ド の 場 合 のV CCINT および V CCAUX に 流 れる 静 止 電 流 を 示 し ています。 電 流 の 単 位 は mA で、 左 の 軸 に 表 示 されています。 図 に 示 さ れる よ う に、 一 時 停 止 モー ド の V CCAUX の 電 流 (ワイン 色 の 棒 ) はかな り 0 に近 くなっています。図 19-1 には、 静 止 電 力 ( 各 電 源 レールの 電 力 X 電 圧 ) も 示 されています。 この 電 力 の 単 位 は mWで、 右 の 軸 に 表 示 されています。 <strong>Spartan</strong>-3A/3A DSP <strong>FPGA</strong> の V CCAUX は 2.5V または 3.3V のいずれかです。 静 止 電 力 は V CCAUX =2.5V の 方 が 低 く な り ます。 <strong>Spartan</strong>-3A <strong>FPGA</strong> が 一 時 停 止 モード の 場 合 、 消 費 電 力 の 合 計 はかな り 下 が る こ と に 注 目 し て く だ さ い。 節 電 量 はデザイ ンによ って 異な り ますが、 一 時 停 止 モー ド を 使 用 する と 通 常 40% 以 上 消 費 電 力 を 抑 え る こ と がで き、 最 低 で も約 20% の 節 電 が 可 能 です。V CCAUX を 電 源 と する 回 路 の 中 には、 一 時 停 止 モー ド 中 に 電 源 が V CCINT へ 切 り 替 わ る も の も あ ります。 図 19-1 のブラ ン ク デザイ ン 例 を 見 る と 、 一 時 停 止 モー ド で V CCAUX の 電 流 は 大 き く 落 ちているのに、 V CCINT の 電 流 は 増 加 し ています。 ただ し、 一 時 停 止 中 の V CCINT の 合 計 電 流 は <strong>FPGA</strong>アプ リ ケーシ ョ ンで 使 用 される 電 流 よ り も 下 回 ったままであ り、 V CCINT の 電 流 は 増 加 し ますが、2.5V または 3.3V の V CCAUX が 1.2V の V CCINT に 切 り 替 わ る ので、シ ス テム 全 体 の 消 費 電 力 は 削減 されます。節 電 量 は、 32LVDS および 32LVDS+8DCM デザイ ン 例 の 方 が 顕 著 です。 これは、 両 方 のデザイ ンとも V CCAUX の 電 流 を 消 費 する 回 路 を 使 用 する ためです。一 時 停 止 の 機 能 と 利 点• 静 止 電 流 は 40% 以 上 削 減 さ れ、 動 作 電 流 も 大 幅 に 削 減 さ れます。• 一 時 停 止 中 、 <strong>FPGA</strong> コンフィギュレーション データ と <strong>FPGA</strong> アプ リ ケーシ ョ ンの 現 在 のステー ト は 保 持 さ れます。• 一 時 停 止 か ら <strong>FPGA</strong> のウェークアップ 時 間 ( 最 短 500μs) が 高 速 でプロ グ ラ ム 可 能 です。• 一 時 停 止 中 の 動 作 がユーザー I/O ピンごとに 制 御 できます。• 一 時 停 止 モー ド は、 <strong>FPGA</strong> のビッ ト ス ト リームでイネーブルになる と、SUSPEND という 専 用の 制 御 ピンを 使 用 し たシステムで 外 部 から 操 作 でき ます。• 一 時 停 止 モー ド のス テータ スは、<strong>FPGA</strong> の AWAKE ピンでわかり ます。<strong>FPGA</strong> ビッ トスト リームで SUSPEND がイネーブルになると、 AWAKE が 自 動 的 に 専 用 ピ ンにな り ます。一 時 停 止 モー ド の 設 計 準 備アプ リ ケーシ ョ ンで 一 時 停 止 機 能 を 使 用 する には、 次 の 手 順 に 従 います。1. ソース デザイ ン またはユーザー 制 約 フ ァ イル (UCF) で 一 時 停 止 モー ド 中 の I/O 動 作 の 指 定 を行 います。2. 一 時 停 止 が イ ネーブルの 場 合 の AWAKE ピンを 定 義 し ます。3. SUSPEND 入 力 のグ リ ッ チ フィルタ 設 定 を 定 義 し ます。4. 一 時 停 止 モー ド のウ ェーク ア ッ プ タイミングの 制 御 を 定 義 し ます。5. 一 時 停 止 を イ ネーブルにする 方 法 を 指 定 し ます。6. <strong>FPGA</strong> のビ ッ ト ス ト リ ーム を 生 成 し ます。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 491<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 19 章 : パワー マネージメン ト ソリューション一 時 停 止 モー ド の 開 始図 19-2 は、 <strong>Spartan</strong>-3A/3AN/3A DSP <strong>FPGA</strong> の 一 時 停 止 モー ド が 開 始 された と こ ろ を 示 し ています。 図 19-3 は、 波 形 の 例 です。<strong>FPGA</strong> <strong>FPGA</strong> SRL16 RAM<strong>FPGA</strong>LUT RAMSUSPENDSUSPEND<strong>FPGA</strong> <strong>FPGA</strong> SUSPEND SUSPENDAWAKEen_suspendsuspend_filter<strong>UG331</strong>_c19_01_113006図 19-2 : <strong>Spartan</strong>-3A/3AN/3A DSP の 一 時 停 止 モー ド の 開 始一 時 停 止 モー ド は、 コ ン フ ィ ギ ュ レーシ ョ ン ビットスト リームでイネーブルになっている 場 合 にのみ 使 用 さ れます ( 「 一 時 停 止 を イ ネーブルにする 方 法 」 を 参 照 )。 電 源 がシ ス テムに 適 用 さ れる と、SUSPEND ピンの 値 に 関 係 な く 、 <strong>FPGA</strong> の 電 源 がオンにな り 、 コ ンフ ィ ギ ュ レーシ ョ ンが 開 始 されます。 一 時 停 止 モー ド がビ ッ ト ス ト リ ームで イ ネーブルになってお り 、 SUSPEND ピンがアサートされると、 <strong>FPGA</strong> は 無 条 件 で 即 座 に 一 時 停 止 モー ド にな り ます。 ビ ッ ト ス ト リ ームで 一 時 停 止 モードがイネーブルになっていない 場 合 、SUSPEND 入 力 の 影 響 はな く 、 AWAKE ピンは 汎 用 I/O として 使 用 でき ます。<strong>FPGA</strong> が 一 時 停 止 モー ド にな る と 、 不 要 な 機 能 はシ ャ ッ ト ダ ウ ン さ れ、 電 力 損 失 が 最 小 限 に 抑 え られます。 一 時 停 止 中 は、すべてのアプ リ ケーシ ョ ン ステート とコンフィギュレーショ ン データ が 保持 されます。 書 き 込 み 可 能 な ク ロ ッ ク エレ メ ン ト は、 誤 った 書 き 込 みが 行 われない よ う 書 き 込 み 禁止 にされます。 <strong>FPGA</strong> 入 力 と イ ン ターコ ネ ク ト はすべてシ ャ ッ ト ダウンされます。<strong>FPGA</strong> 出 力 ピ ン ま たは 双 方 向 I/O ピ ンでは、 それぞれに 定 義 さ れた 一 時 停 止 モー ド の 動 作 が 実 行 されます。 こ の 定 義 には、 SUSPEND 制 約 を 使 用 します。AWAKE ピンが Low になる と、 <strong>FPGA</strong> が 一 時 停 止 モー ド であ る こ と を 示 し ます。 一 時 停 止 の 間 、<strong>FPGA</strong> はコンフィギュレーショ ン データ を 保 持 し てい る ので、 DONE ピンは High のままです。492 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


<strong>Spartan</strong>-3A/3AN/3A DSP の 一 時 停 止 モー ドRSUSPEND 1sw_gwe_cycle6sw_gts_cyclet SUSPENDHIGH_AWAKEt SUSPENDLOW_AWAKEAWAKE 38 RAM RAM2t SUSPEND_GWEt AWAKE_GWE10t SUSPEND_GTSt AWAKE_GTS<strong>FPGA</strong> 4SUSPEND 9<strong>FPGA</strong> 5t SUSPEND_DISABLE7t SUSPEND_ENABLE<strong>UG331</strong>_c19_02_021408図 19-3 : 一 時 停 止 モー ド の 波 形 ( 開 始 から 終 了 まで)図 19-3 の 1 ~ 5 では、 次 が 実 行 されます。1. 外 部 信 号 に よ り <strong>FPGA</strong> の SUSPEND ピンが High にな り 、 無 条 件 で <strong>FPGA</strong> が 一 時 停 止 モー ドにな り ます。 I/O ピンの SUSPEND 制 約 が DRIVE_LAST_VALUE に 設 定 されている と 、データ 値 がキャプチャされますが、 この 値 は 4 番 の 段 階 まで 存 在 し ません。2. SUSPEND 入 力 が High になる と、 <strong>FPGA</strong> は 即 座 に 書 き 込 み 禁 止 にな り 、 すべての ク ロ ッ ク 付きエレメン トのステートが 保 護 されます。 一 時 停 止 モー ド の 間 、 すべてのフ リ ッ プフ ロ ッ プ、ブロッ ク RAM、 分 散 RAM (LUT RAM)、 シフト レジスタ (SRL16)、 I/O ラッチは 保 護 されます。3. AWAKE 出 力 は Low にな り、 SUSPEND モー ド が 開 始 さ れた こ と を 示 し ます。4. <strong>FPGA</strong> の 出 力 の 通 常 動 作 がすべて、 各 I/O の SUSPEND 制 約 で 定 義 さ れる 一 時 停 止 モー ド に切 り 替 わります。5. <strong>FPGA</strong> の 入 力 はブロ ッ ク され、 イ ン ターコネ ク ト はシ ャ ッ ト ダウンされて、 すべての 内 部 スイ ッ チ 動 作 が 停 止 さ れます。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 493<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 19 章 : パワー マネージメン ト ソリューション一 時 停 止 モー ド の 終 了一 時 停 止 モー ド を 終 了 する には、 次 のいずれかを 実 行 し ます。1. SUSPEND 入 力 を Low に し て、 一 時 停 止 モー ド を 普 通 に 終 了 し ます。2. PROG_B 入 力 を Low にし、 <strong>FPGA</strong> を リ セ ッ ト し て 再 プ ロ グ ラ ム を 開 始 し ます。<strong>FPGA</strong> <strong>FPGA</strong> SRL16 RAM<strong>FPGA</strong>LUT RAMSUSPENDSUSPEND<strong>FPGA</strong> /en_sw_gsrsw_gwe_cycle5sw_gts_cycle1 1,024SUSPENDsw_clk1 41,024AWAKEen_suspendsuspend_filter図 19-4 : <strong>Spartan</strong>-3A/3AN/3A DSP の 一 時 停 止 モー ド の 終 了drive_awake<strong>UG331</strong>_c19_03_092606図 19-4 は、 SUSPEND ピ ン を 使 用 し て 一 時 停 止 モー ド を 終 了 する と こ ろ を 表 し ています。SUSPEND が Low になる と、 <strong>FPGA</strong> は 自 動 的 にすべての 入 力 と イ ン ターコ ネ ク ト を 自 動 的 に 再 びイネーブルにします。フリ ップフロップはすべて、 <strong>FPGA</strong> ビッ トスト リームでイネーブルになっている 場 合 は、デザインの 記 述 に 応 じ てオプシ ョ ンでグ ローバルにセ ッ ト または リ セ ッ ト されます。 フ リップフロップはデフ ォル ト ではグ ローバルにセ ッ ト ま たは リ セ ッ ト さ れず、 一 時 停 止 モー ド にな る 前 の <strong>FPGA</strong> アプ リケーシ ョ ンのステー ト が 保 存 されます。494 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


<strong>Spartan</strong>-3A/3AN/3A DSP の 一 時 停 止 モー ドR残 りのウェークアップ プロセスは、AWAKE ピンの 値 によ って 異 な り ます。 AWAKE が High になると、<strong>FPGA</strong> の 出 力 が 再 びイ ネーブルにな る タ イ ミ ング と すべての 書 き 込 み 可 能 な ク ロ ッ ク 付 き エレ メ ン ト の 書 き 込 み 禁 止 が 解 除 さ れる タ イ ミ ングが、 ユーザーがプ ロ グ ラ ム 可 能 な 2 つのタ イ マで指 定 さ れます。 ウェークアップ タイミング クロック ソースもプログラムできます。次 の 6 ~ 10 は、 493 ページの 図 19-3 に 対 応 し ています。6. <strong>FPGA</strong> の SUSPEND 入 力 が Low にな り 、 一 時 停 止 モー ド が 終 了 し ます。7. <strong>FPGA</strong> の 入 力 と イ ン ターコネ ク ト が 解 放 され、 信 号 が 内 部 で 伝 搬 でき る よ う にな り ます。 すべての ク ロ ッ ク 付 き エレ メ ン ト はまだ 書 き 込 み 禁 止 のま ま なので、 内 部 ス テー ト が 破 損 する こ とはあ り ません。8. <strong>FPGA</strong> で AWAKE 信 号 がビ ッ ト ス ト リ ーム オプシ ョ ン drive_awake:yes でアサー ト されます。このオプションが drive_awake:no の 場 合 は AWAKE 信 号 がデ ィ アサー ト さ れ、 オープン ド レイ ン 出 力 にな り ます。 こ の 場 合 、 外 部 プルア ッ プ 抵 抗 を 使 用 する か、 ウ ェー ク ア ッ プ 前 に 外 部信 号 で AWAKE を High にする 必 要 があ り ます。 この 後 のタイ ミングはすべて、AWAKE 出 力が High になっ てか ら 計 測 さ れます。9. <strong>FPGA</strong> の 出 力 が、 指 定 し た SUSPEND 制 約 の 動 作 から <strong>FPGA</strong> アプ リ ケーシ ョ ンで 指 定 した 動作 に 戻 り ます。 切 り 替 わるタイ ミングは、sw_gts_cycle ビ ッ ト ス ト リ ーム 生 成 の 設 定 ( 内 部 GTS(グローバル トライステート) 制 御 が 解 放 さ れる タ イ ミ ン グ を 指 定 ) によって 異 なり ます。 指 定したクロック サイクルが 終 了 すると、 通 常 の <strong>FPGA</strong> アプ リ ケーシ ョ ンの 出 力 に 戻 り ます。 出力 は、 AWAKE が High になった 後 、 4 クロック サイクル (デフォル ト) で 切 り 替 わ り 、 信 号 が<strong>FPGA</strong> か ら 出 力 さ れる よ う に、 通 常 は ク ロ ッ ク 付 き エレ メ ン ト よ り も 前 に 解 放 さ れます。10. 書 き 込 み 可 能 な ク ロ ッ ク 付 き エレ メ ン ト が 解 放 さ れる タ イ ミ ングは、 sw_gwe_cycle ビッ トストリーム 生 成 の 設 定 ( 内 部 GWE (グローバル ライト イネーブル) 制 御 がアサー ト さ れる タ イ ミ ングを 指 定 ) によって 異 なり ます。 指 定 し た ク ロ ッ ク サ イ ク ルが 終 了 する と 、 フ リ ッ プフ ロ ッ プ、ブロッ ク RAM、 分 散 RAM (LUT RAM)、 シフト レジスタ (SRL16)、 I/O ラ ッ チが 再 び 書 き込 み 可 能 にな り ます。 クロック 付 きエレメントは、デフォルトで AWAKE が High になった 後 、5 クロック サイクル (デフォル ト) で 解 放 されます。 通 常 、 出 力 が イ ネーブルにな る まで 書 き 込み 禁 止 に し てお く 必 要 があ り ます。一 時 停 止 モー ド を 終 了 し た ら、 DCM に リ セ ッ ト を 適 用 する こ と をお 勧 め し ます。PROG_B プログラム ピ ンによ る 一 時 停 止 モー ド の 上 書 きPROG_B プログラム ピンを Low にする と 、 常 に 一 時 停 止 モー ド が 上 書 き さ れ、 <strong>FPGA</strong> でコンフィギ ュ レーシ ョ ンが 再 び 開 始 さ れます。 同 様 に、<strong>FPGA</strong> の 電 源 ス イ ッ チを 切 ってすぐに 入 れ 直 し て も、コ ン フ ィ ギ ュ レーシ ョ ンが 再 開 さ れます。一 時 停 止 モー ド のタ イ ミ ング 例表 19-2 は、 <strong>Spartan</strong>-3A/3AN/3A DSP <strong>FPGA</strong> の 一 時 停 止 の 標 準 的 な タ イ ミ ングを 示 し ています。 詳細 な 値 は、 <strong>Spartan</strong>-3A <strong>FPGA</strong> データ シー ト (DS529)、 <strong>Spartan</strong>-3AN <strong>FPGA</strong> データ シー ト (DS557)、<strong>Spartan</strong>-3A DSP <strong>FPGA</strong> データ シー ト (DS610) を 参 照 して く ださい。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 495<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 19 章 : パワー マネージメン ト ソリューション表 19-2 : <strong>Spartan</strong>-3A/3AN/3A DSP の 一 時 停 止 モー ド のタ イ ミ ング パラ メータ一 時 停 止 モー ド の 開 始説 明 最 小 標 準 最 大 単 位グリッチ フィルタのない 場 合 (suspend_filter:No) のSUSPEND ピンの 立 ち 上 がりエッジから AWAKE ピンの 立 ち 下 り エ ッ ジまでの 時 間グリッチ フィルタが 使 用 されている 場 合(suspend_filter:Yes) の SUSPEND ピンの 立 ち 上 がりエッジ パ ラ メ ータ に 対 する 調 整 範 囲SUSPEND ピンの 立 ち 上 がりエッジから <strong>FPGA</strong> 出 力 ピンで 指 定 される SUSPEND 制 約 の 動 作 が 実 行 さ れる までの 時 間SUSPEND ピ ンの 立 ち 上 が り エ ッ ジからすべての 書 き込 み 可 能 な ク ロ ッ ク エレ メ ン ト が 書 き 込 み 禁 止 にな るまでの 時 間SUSPEND ピンの 立 ち 上 がりエッジから <strong>FPGA</strong> の 入 力ピンとインターコネク トがディスエーブルになるまでの 時 間- 7 - ns+160 +300 +600 ns- 10 - ns- < 5 - ns- 340 - ns一 時 停 止 モー ド の 終 了SUSPEND ピンの 立 ち 下 がりエッジから AWAKE ピンの 立 ち 上 が り エ ッ ジまでの 時 間 (DCM ロック タイムは除 外 )SUSPEND ピンの 立 ち 下 がりエッジから <strong>FPGA</strong> の 入 力ピンとインターコネク トが 再 びイネーブルになるまでの 時 間AWAKE ピンの 立 ち 上 がりエッジからすべての 書 き 込み 可 能 な ク ロ ッ ク エ レ メ ン ト の 書 き 込 み 禁 止 が 解 除 されるまでの 時 間 (sw_clk:InternalClk およびsw_gwe_cycle:1 を 使 用 した 場 合 )AWAKE ピンの 立 ち 上 がりエッジからすべての 書 き 込み 可 能 な ク ロ ッ ク エ レ メ ン ト の 書 き 込 み 禁 止 が 解 除 されるまでの 時 間 (sw_clk:InternalClk およびsw_gwe_cycle:512 を 使 用 した 場 合 )AWAKE ピンの 立 ち 上 がりエッジから <strong>FPGA</strong> アプ リケーシ ョ ンで 記 述 さ れる 動 作 に 出 力 が 戻 る までの 時 間(sw_clk:InternalClk および sw_gts_cycle:1 を 使 用 した場 合 )AWAKE ピンの 立 ち 上 がりエッジから <strong>FPGA</strong> アプ リケーシ ョ ンで 記 述 さ れる 動 作 に 出 力 が 戻 る までの 時 間(sw_clk:InternalClk および sw_gts_cycle:512 を 使 用 した場 合 )- 4 ~ 108 - μs- 3.7 ~ 109 - μs- 67 - ns- 14 - μs- 57 - ns- 14 - μs496 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


<strong>Spartan</strong>-3A/3AN/3A DSP の 一 時 停 止 モー ドR一 時 停 止 をイネーブルにする 方 法一 時 停 止 の 節 電 機 能 は、 使 用 前 に <strong>FPGA</strong> ビッ トスト リームでイネーブルにしておく 必 要 があります。 デフ ォル ト では、 一 時 停 止 機 能 はデ ィ ス エーブルに 設 定 さ れています。 SUSPEND 入 力 の 影 響はな く、 AWAKE ピンは 汎 用 I/O と し て 使 用 で き ます。 一 時 停 止 機 能 を イ ネーブルに し た 場 合 、AWAKE ピンを I/O と し て 使 用 する こ と はで き ません。ユーザー 制 約 フ ァ イル (UCF) での 指 定ユーザー 制 約 フ ァ イ ル (UCF) の CONFIG 文 で 一 時 停 止 モー ド を イ ネーブルに し、SUSPEND 入 力のグ リ ッチ フィルタ オプシ ョ ン を 指 定 し ます。 表 19-3 は、 使 用 可 能 なオプシ ョ ン を 示 し ています。こ の 制 約 を 使 用 する と AWAKE ピ ンが 自 動 的 に 保 存 さ れる ので、 一 時 停 止 モー ド を イ ネーブルするには こ の 方 法 をお 勧 め し ます。CONFIG ENABLE_SUSPEND = “FILTERED” ;図 19-5 : I/O ピ ンに 対 し て 一 時 停 止 モー ド を 指 定 する UCF の 構 文表 19-3 : ENABLE_SUSPEND 制 約 のオプシ ョ ンオプシ ョ ン 一 時 停 止 モー ド SUSPEND ピン フィルタ AWAKE ピンNO一 時 停 止 モー ド はデ ィ ス エーブルになります。使 用 で き ません。 SUSPENDピンは GND に 接 続 し て く ださい。<strong>FPGA</strong> アプ リ ケーシ ョ ンのユーザー I/O ピンとして 使 用できます。FILTERED一 時 停 止 モー ド はイ ネーブルになります。グリッチ フィルタがイネーブルにな り ます。AWAKE ステータスを 示 します。UNFILTEREDグリッチ フィルタはバイパスされます。BitGen からの 指 定注 意 一 時 停 止 モー ド は、 en_suspend ビットスト リーム オプシ ョ ンを 設 定 しても イネーブルにでき ますが、 アプ リ ケーシ ョ ンで AWAKE ピンが 自 動 的 に 予 約 されないので、 お 勧 めし ません。bitgen -g en_suspend:Yes一 時 停 止 モー ド 中 の I/O 動 作 の 指 定SUSPEND 制 約 を 使 用 する と 、ピ ンの 動 作 をデフ ォル ト の 3STATE とは 異 なるよ うにプログラムできます。シングルエンド I/O 規 格シングルエンドの I/O 規 格 を 使 用 する <strong>FPGA</strong> アプ リ ケーシ ョ ンの 出 力 、 オープン ド レ イ ン 出 力 、 双方 向 I/O ピンは、 表 19-4 に 示 すいずれかの 一 時 停 止 モー ド の 動 作 を 指 定 し て 別 々にプロ グ ラ ムできます。 デフ ォル ト では、 ほかのオプシ ョ ンが 使 用 可 能 で も、 一 時 停 止 モー ド 中 にハ イ インピーダン スにな る よ う に 設 定 さ れています。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 497<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 19 章 : パワー マネージメン ト ソリューション表 19-4 : 一 時 停 止 モー ド の 出 力 オプシ ョ ンSUSPEND の 属 性DRIVE_LAST_VALUE3STATE(デフォル ト)3STATE_PULLUP3STATE_PULLDOWN3STATE_KEEPER機 能出 力 は、 選 択 し た 規 格 に 従 っ て、 出 力 ラ ッ チに 最 後 に 格 納 さ れた レベルを 駆 動 し 続 けます。 V CCO は、 そのバン ク の 推 奨 動 作 条 件 を 超 えない よ う にする 必 要 があ り ます。内 部 プルア ップまたはプルダウン 抵 抗 なしで、 出 力 がハイ インピーダンス ステートになり ます。 I/O の 電 流 は 最 小 にな り ます。V CCO に 内 部 プルア ッ プ 抵 抗 が 付 け られ、 出 力 がハイ インピーダンスステートになり ます。 V CCO は、 そのバン ク の 推 奨 動 作 条 件 を 超 えない よ う にする 必 要 があ り ます。GND に 内 部 プルダ ウ ン 抵 抗 が 付 け ら れ、 出 力 がハ イ インピーダンスステートになり ます。出 力 がハイ インピーダンスになります。 内 部 バス キーパ 回 路 が 使 用 されます。 V CCO は、 そのバン ク の 推 奨 動 作 条 件 を 超 えない よ う にする必 要 があ り ます。差 動 I/O 規 格差 動 出 力 ド ラ イ バ と 入 力 レ シーバを <strong>FPGA</strong> アプ リ ケーシ ョ ンで 使 用 する と 静 止 電 力 を 消 費 し ます。一 時 停 止 モー ド を 使 用 する と 、 差 動 入 力 と 出 力 がデ ィ スエーブルにな る ので 節 電 で き ます。LVDS、 RSDS、 mini-LVDS、 PPDS、 TMDS のよ うな 差 動 I/O 規 格 の 出 力 ド ラ イバは、 表 19-4 に示 す 3STATE 属 性 の 1 つを 使 用 してハイ インピーダンスになります。 差 動 出 力 ド ラ イ バでは、DRIVE_LAST_VALUE 属 性 がサポー ト さ れません。BLVDS、 LVPECL、 DIFF_HSTL、 DIFF_SSTL の よ う な 擬 似 差 動 I/O 規 格 は、 2 つのシングルエンド I/O ピンとして 扱 ってください。 属 性 はすべて 「シングルエン ド I/O 規 格 」 と 同 じものが 使 用で き ますが、 設 定 は 差 動 ペアの も う 一 方 に 合 せる 必 要 があ り ます。ハイ インピーダンス ステートになると、 差 動 ド ライバ ペアは 電 源 レールやグ ラ ン ド レール、 隣 接するピンに 電 流 を 流 しません。一 時 停 止 モー ド にな る と 、 差 動 入 力 レ シーバはデ ィ スエーブルにな り ます。一 時 停 止 モー ド にな る と 、 差 動 入 力 終 端 (DIFF_TERM) はデ ィ スエーブルにな り ます。SUSPEND 制 約SUSPEND 制 約 を 使 用 する と 、 一 時 停 止 モー ド の 間 の 各 ピ ンの 動 作 が 個 別 に 指 定 で き ます。 使 用 可能 なオプシ ョ ンは、 498 ページの 表 19-4 を 参 照 して く ださい。UCF の 例図 19-6 は、 一 時 停 止 モー ド 中 の 動 作 を UCF で 指 定 した 例 です。 SUSPEND 制 約 は、 同 じ ピ ンに 対し て 使 用 さ れるほかの 制 約 と 同 じ ラ イ ンに 含 め る こ と がで き ます。NET "" SUSPEND = “” ;図 19-6 : I/O ピ ンに 対 し て 一 時 停 止 モー ド を 指 定 する UCF の 構 文498 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


<strong>Spartan</strong>-3A/3AN/3A DSP の 一 時 停 止 モー ドR詳 細 情 報SUSPEND 制 約 の 詳 細 は、 最 新 ソ フ ト ウ ェ ア バージ ョ ンの 『 制 約 ガ イ ド 』(www.japan.com/support/software_manuals.htm) を 参 照 して く ださい。• このガイドの ISE ® 10.1 バージ ョ ンは 次 のサイ ト から 入 手 でき ます。http://www.xilinx.com/itp/xilinx10j/books/docs/cgd/cgd.pdf一 時 停 止 モー ド 中 に 保 持 されるアプ リ ケーシ ョ ン ステート一 時 停 止 モー ド にな る と 、 書 き 込 み 可 能 な ク ロ ッ ク 付 き エレ メ ン ト すべてが 書 き 込 み 禁 止 にな り ます。 次 のク ロ ッ ク 付 き メ モ リ エレ メ ン ト のス テー ト は、 一 時 停 止 モー ド の 間 保 持 さ れます。• ロジック ブロッ クのフ リ ップフロップ• I/O ブロッ クのラッチとフ リ ップフロップ• ロジック ブロッ クの 分 散 RAM (LUT RAM)• ロジック ブロッ クのシフ ト レジスタ (SRL16)• ブロック RAM とレジスタ一 時 停 止 モー ド が 終 了 する と 、 書 き 込 み 可 能 な ク ロ ッ ク 付 き エレ メ ン ト がすべて sw_gwe_cycle の 設定 に 従 って 再 びイ ネーブルにな り ます。en_sw_gsr ビットスト リーム オプシ ョ ン を 使 用 する と 、<strong>FPGA</strong> が 一 時 停 止 モー ド か ら 戻 った と き に、すべての ク ロ ッ ク エレ メ ン ト を グ ローバルにセ ッ ト ま たは リ セ ッ ト する かを 指 定 で き ます。 デフォルトでは en_sw_gsr:No になっているので、 <strong>FPGA</strong> が 一 時 停 止 モー ド か ら 戻 った と き に ク ロ ッ ク 付き エレ メ ン ト はセ ッ ト ま たは リ セ ッ ト さ れず、 ス テー ト はすべて 保 存 さ れた 状 態 にな り ます。一 時 停 止 モー ド のウ ェ ーク ア ッ プ タ イ ミ ングの 制 御一 時 停 止 モー ド を 終 了 する 際 には、 <strong>FPGA</strong> のウェークアップ シーケンスをプロ グ ラ ムでき、 そのタイミングは 1 つの ク ロ ッ ク で 制 御 でき ます。ウェークアップ タイミング クロック ソース (sw_clk)一 時 停 止 モー ド か ら のウ ェーク ア ッ プ タイミングは、 図 19-7 および 表 19-5 に 示 す 選 択 可 能 な クロック ソースで 制 御 できます。 このクロック ソースは、 最 大 2 つのビ ッ ト ス ト リ ーム オプシ ョ ン(sw_clk と StartupClk) で 指 定 でき ます。一 時 停 止 モー ド の 間 、 節 電 のため 内 部 オシレータはデ ィ スエーブルにな り ます。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 499<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 19 章 : パワー マネージメン ト ソリューションCCLK Persist = CCLKTCKCclkJtagStartupClk<strong>FPGA</strong> UserClkInternalClkSTARTUP_SPARTAN3AStartupClk 50MHz sw_clkCLK<strong>UG331</strong>_c19_06_092606図 19-7 : 一 時 停 止 モー ド のウ ェ ーク ア ッ プ タ イ ミ ング 制 御 用 のク ロ ッ ク 選 択• sw_clk は 一 時 停 止 用 のオプシ ョ ンで、 デフォル ト では sw_clk:InternalClk になっています。• StartupClk オプションは、すべてのアプリケーションで 使 用 できます。 デフォル ト ではStartupClk:Cclk になっています。 こ のため、 一 時 停 止 モー ド の 終 了 には CCLK ピンがデフォルトのクロック ソース と し て 使 用 さ れます。表 19-5 : 一 時 停 止 モー ド からのウ ェ ーク ア ッ プ 用 ク ロ ッ ク ソースsw_clk設 定StartupClk設 定クロック ソース制 限InternalClk -- 内 部 オシ レータ オシレータ の 周 波 数 は 約 50MHz です。StartupClk Cclk <strong>FPGA</strong> の CCLK ピン このオプショ ンは、スレーブ コンフィ ギュレーショ ン モード を使 用 する <strong>FPGA</strong> でのみ 使 用 でき ま す。 ビットストリーム オプショ ン Persist:Yes を 設 定 する 必 要 があり ま す。 マスタ コンフィギュレーショ ン モード を 使 用 する <strong>FPGA</strong> の 場 合 、こ のオプション は 使 用 でき ないので、 InternalClk を 使 用 してく ださい。JtagClk <strong>FPGA</strong> の TCK ピ ン 一 時 停 止 モー ド を 終 了 する には、 JTAG インターフェイスを 有効 にする 必 要 があ り ます。UserClkSTARTUP_SPARTAN3Aプリ ミティブのCLK 入 力STARTUP プリ ミティブへのクロック 入 力 は、<strong>FPGA</strong> のクロックが 付 いていない 信 号 から 供 給 されています。 クロック 付 きエレ メ ン ト はすべて 一 時 停 止 モー ド 中 は 書 き 込 み 禁 止 になっているので、 フリ ップフロップからは 供 給 できません。500 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


<strong>Spartan</strong>-3A/3AN/3A DSP の 一 時 停 止 モー ドR一 時 停 止 から 通 常 モー ド への 切 り 替 え (sw_gts_cycle)I/O ピンが SUSPEND 制 約 の 設 定 か ら 解 放 さ れ、 通 常 動 作 へ 戻 る タ イ ミ ン グは、 sw_gts_cycle ビットストリーム オプシ ョ ンで 指 定 できます。 このタイ ミングは、 前 述 の 「ウェークアップ タイミング クロック ソース (sw_clk)」 で 制 御 されます。 sw_gts_cycle のデフ ォル ト 設 定 は 4 サイクルですが、 1 ~ 1,024 に 設 定 可 能 です。この 制 御 は、 AWAKE ピンが High になる と 可 能 にな り ます。 指 定 し た ク ロ ッ ク サ イ ク ルが 終 了 する と 、 すべての 出 力 、 オープン ド レ イ ン 出 力 、 双 方 向 I/O ピンが SUSPEND 制 約 の 指 定 どお り にそれぞれ 一 時 停 止 か ら 切 り 替 わ り 、 <strong>FPGA</strong> アプ リ ケーシ ョ ンで 指 定 し た 通 常 動 作 に 戻 り ます。すべての ク ロ ッ ク 付 き エレ メ ン ト の 書 き 込 み 禁 止 を 解 除 する 前 に、 出 力 を 解 放 し てお く こ と をお 勧めします。ク ロ ッ ク 付 きエレ メ ン ト の 書 き 込 み 禁 止 の 解 除 (sw_gwe_cycle)sw_gwe_cycle ビッ トスト リーム オプシ ョ ン を 使 用 する と 、すべての ク ロ ッ ク 付 き エレ メ ン ト の 書 き込 み 禁 止 を 解 除 する タ イ ミ ングを 制 御 で き ます。このタイ ミングは、 前 述 のウェークアップ タイミング クロック ソース (sw_clk) で 制 御 されます。sw_gts_cycle のデフ ォル ト 設 定 は 5 サイクルですが、 1 ~ 1,024 に 設 定 可 能 です。これは、 AWAKE ピンが High にな る と 制 御 で き る よ う にな り ます。 指 定 し た ク ロ ッ ク サイクルが終 了 する と 、 書 き 込 み 禁 止 が 解 除 さ れ、 フ リ ッ プフ ロ ッ プやブ ロ ッ ク RAM などのクロッ ク 付 きエレ メ ン ト がすべて 書 き 込 み 可 能 にな り ます。en_sw_gsr:yes が 設 定 さ れてい る と 、 ク ロ ッ ク 付 き エレ メ ン ト は 書 き 込 み 禁 止 が 解 除 さ れる 前 に、 元の <strong>FPGA</strong> デザイ ンで 指 定 し た 値 にグ ローバルにセ ッ ト または リ セ ッ ト されます。en_sw_gsr:no の 場合 は、 一 時 停 止 モー ド の 開 始 前 の <strong>FPGA</strong> のス テー ト が 保 存 さ れます。すべての ク ロ ッ ク 付 き エレ メ ン ト の 書 き 込 み 禁 止 を 解 除 する 前 に、 出 力 を 解 放 し てお く こ と をお 勧めします。一 時 停 止 モー ド の 専 用 コ ン フ ィ ギュ レーシ ョ ン ピ ンへの 影 響次 の コ ン フ ィ ギ ュ レーシ ョ ン 専 用 ピ ンは、 一 時 停 止 モー ド の 影 響 を 受 け ません。• JTAG ピン (TDI、 TMS、 TCK、 TDO)• DONE ピン• PROG_B ピンSUSPEND ピン一 時 停 止 機 能 を イ ネーブルにする と (497 ページの 「 一 時 停 止 を イ ネーブルにする 方 法 」 を 参 照 )、<strong>FPGA</strong> の 一 時 停 止 モー ド にな る タ イ ミ ン グ を SUSPEND ピンで 制 御 できるよ うになります。 通 常の <strong>FPGA</strong> の 状 態 では、 SUSPEND ピンは Low にする 必 要 があ り ます。 このピンが High になる と、<strong>FPGA</strong> は 低 電 力 の 一 時 停 止 モー ド にな り ます。 SUSPEND ピンの 機 能 については、 表 19-6 を 参 照してください。一 時 停 止 が イ ネーブルになっ ていない 場 合 、 アプ リ ケーシ ョ ンが 低 電 力 モー ド にな る こ と はないので、 SUSPEND ピンは GND に 接 続 し ます。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 501<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 19 章 : パワー マネージメン ト ソリューション表 19-6 : SUSPEND ピ ンの 機 能en_suspend設 定no(デフォル ト)一 時 停 止 モー ドはデ ィ スエーブルにな り ます。SUSPENDピンX機 能一 時 停 止 モー ド はデ ィ ス エーブルにな り ます。 SUSPEND ピンは 使 用 されず、 無 視 されます。 SUSPEND ピンは GND に 接 続してください。yes一 時 停 止 モー ドはイネーブルになります。0<strong>FPGA</strong> はコンフィギュレーシ ョ ン 中 に <strong>FPGA</strong> に 読 み 込 まれたビ ッ ト ス ト リ ームの 記 述 どおり にな り ます。 SUSPEND ピンがHigh から Low に 変 わる と、<strong>FPGA</strong> が 一 時 停 止 モー ド か ら 通 常の 状 態 に 戻 り ます。1 <strong>FPGA</strong> が 一 時 停 止 モー ド にな り 、 節 電 さ れます。特 徴SUSPEND ピンは LVCMOS/LVTTL レ シーバであ り 、 入 力 バ ッ フ ァへの 電 力 は V CCAUX 電 源 レールから 供 給 されます。 コンフィギュレーション 中 、 SUSPEND ピ ンにはプルア ッ プ 抵 抗 が 付 かないので、 PUDC_B 制 御 の 影 響 を 受 け ません。SUSPEND 入 力 のグ リ ッ チ フ ィルタSUSPEND ピンには、 <strong>FPGA</strong> を 間 違 って 一 時 停 止 モー ド に し て し ま う シ ョ ー ト パルス を 回 避 するため、 プ ロ グ ラ ム 可 能 なグ リ ッ チ フ ィルタが 含 まれます。 フ ィ ルタ をオフにする と 、 一 時 停 止 の 開始 と 終 了 は 速 く な り ますが、アプ リ ケーシ ョ ンで こ の よ う なシ ョ ー ト パルスが 発 生 し ない よ う に してお く 必 要 があ り ます。ユーザー 制 約 フ ァ イル (UCF) での 指 定SUSPEND フィルタは、497 ページの 「ユーザー 制 約 フ ァ イル (UCF) での 指 定 」 に 示 すよ う にENABLE_SUSPEND 制 約 の 一 部 と し て 設 定 で き ます。Bitstream Generator (BitGen) オプシ ョ ンこのフィルタは、ビットストリーム ジェ ネレ ータ のオプショ ン を 使 用 し ても イ ネーブルにでき ま す。bitgen -g suspend_filter:Yes<strong>FPGA</strong> コ ン フ ィ ギュ レーシ ョ ンへの 影 響一 時 停 止 モー ド は <strong>FPGA</strong> コンフィギュレーションのビッ トスト リーム オプシ ョ ンで 有 効 にされるので、 SUSPEND ピンがコンフ ィ ギュ レーシ ョ ンに 影 響 を 与 える こ とはあ り ません。一 時 停 止 モー ド がビ ッ ト ス ト リ ームで イ ネーブルにな り 、SUSPEND ピンが High になる と、<strong>FPGA</strong>は コ ン フ ィ ギ ュ レ ーシ ョ ン 終 了 後 、 す ぐ に 一 時 停 止 モー ド に な り ま す。 <strong>FPGA</strong> の DONE ピンはHigh ですが、 AWAKE ピンは Low にな り ます。一 時 停 止 モー ド を 使 用 し ない 場 合 の SUSPEND の GND への 接 続一 時 停 止 モー ド を 使 用 し ない 場 合 、 SUSPEND ピンは GND に 接 続 し ます。 ピ ン を 未 接 続 のま まにはしないでください。502 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


<strong>Spartan</strong>-3A/3AN/3A DSP の 一 時 停 止 モー ドRAWAKE ピンAWAKE ピ ンに よ り 、 一 時 停 止 モー ド のス テータ スがわか り ます (オプシ ョ ン)。一 時 停 止 がデ ィ スエーブルの 場 合 ( 通 常 動 作 ) の AWAKE ピン一 時 停 止 を イ ネーブルに し ない 場 合 、 AWAKE ピンは 汎 用 のユーザー I/O にな り ます。一 時 停 止 がイネーブルの 場 合 の AWAKE ピン一 時 停 止 を イ ネーブルにする と 、 AWAKE ピンは 表 19-7 のよ うに <strong>FPGA</strong> の 現 在 のステー ト を 示 します。 こ の 場 合 、 AWAKE ピンは 汎 用 のユーザー I/O としては 使 用 できません。表 19-7 : AWAKE ピンのステータスAWAKE ピンステータス0 <strong>FPGA</strong> が 低 電 力 の 一 時 停 止 モー ド であ る こ と を 示 し ます。1 <strong>FPGA</strong> は 通 常 モー ド です。AWAKE ピンは、 オープンドレイン 出 力 (デフォル ト) または 図 19-8 に 示 すよ う な 出 力 ド ラ イ バ としてもコンフィギュレーションできます。 これは、 ビッ ト ス ト リーム ジェネレータ (BitGen) オプシ ョ ンで 次 のよ う に 指 定 でき ます。bitgen -g drive_awake:nodrive_awake=yes drive_awake=no <strong>FPGA</strong><strong>FPGA</strong>VCCAUXAWAKE20kAWAKE(OE)O AWAKEO T AWAKELVCMOS12mAFASTLVCMOS12mAFAST<strong>UG331</strong>_c19_07_092506図 19-8 : 一 時 停 止 モー ド がイネーブルの 場 合 の AWAKE 出 力 ド ラ イバ オプシ ョ ンAWAKE 出 力 ピ ンには、 V CCAUX か ら 電 源 が 供 給 さ れます。drive_awake:yes の 場 合 、 AWAKE ピンは 有 効 な 出 力 ドライバになり、12mA 出 力 ド ラ イ ブ と FASTスルー レー ト で LVCMOS としてコンフィギュレーションされたユーザー I/O と 同 等 になります。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 503<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 19 章 : パワー マネージメン ト ソリューション外 部 ソースからのウ ェ ーク ア ッ プの 制 御デフォル ト では drive_awake:no に 設 定 されています。 drive_awake:no の 場 合 、AWAKE ピンは 12mAまでシン ク 可 能 なオープン ド レ イ ン 出 力 にな り ます。 こ の 場 合 、 一 時 停 止 モー ド を 終 了 するのに 外部 プルア ッ プ 抵 抗 が 必 要 と な り ます。 抵 抗 値 を 高 く し て、 一 時 停 止 モー ド 中 の 電 流 量 を 最 小 限 に 抑えてください。 抵 抗 は、I/O ピンのリークに 対 応 できる く らい 大 きなものを 使 用 します。 抵 抗 値 が 大きくなると、それだけ AWAKE の 立 ち 上 が り 時 間 も 長 く な り ます。 <strong>FPGA</strong> は AWAKE が High になる まで 一 時 停 止 モー ド のま まです。AWAKE ピンを Low のま まにする と 、 一 時 停 止 モー ド か ら 通 常 モー ド への 移 行 が 遅 く な る ので、 外部 コン ト ローラで <strong>FPGA</strong> をウェークアップするタイミングを 指 定 できるようになります。一 時 停 止 モード で 使 用 できる JTAG 命 令表 19-8 は、 <strong>FPGA</strong> が 一 時 停 止 モー ド の 場 合 に 使 用 で き る JTAG 命 令 を 示 し ています。 これらのJTAG 命 令 を 実 行 する と 、 一 時 停 止 モー ド 中 の <strong>FPGA</strong> の 消 費 電 力 は 増 加 し ます。表 19-8 : 一 時 停 止 モー ド で 使 用 でき る JTAG 命 令バウンダ リ スキャンコマンドIDCODEBYPASSUSERCODE説 明JTAG チェーンの <strong>Spartan</strong>-3A/3AN/3A DSP <strong>FPGA</strong> の 配 列 型 を 記 述した JTAG ID コー ド が 読 み 出 さ れます。 この 値 は、Device DNA の識 別 子 と は 違 っ てお り 、 各 デバイ スで 異 な り ます。BYPASS をイネーブルにします。<strong>FPGA</strong> ビ ッ ト ス ト リ ームに 埋 め 込 まれたユーザー 定 義 のコード が 読み 出 さ れます。これ 以 外 の JTAG 命 令 は、 一 時 停 止 モー ド 中 や 一 時 停 止 モー ド への 移 行 中 に 使 用 し ないで く だ さい。 また、 リ ー ド バ ッ ク を 実 行 中 には 一 時 停 止 モー ド に し ないで く だ さ い。一 時 停 止 モー ド を 使 用 し た 場 合 のコ ン フ ィ ギュ レーシ ョ ン 後 の CRC の 制 限アプ リ ケーシ ョ ンでコンフ ィ ギュ レーシ ョ ン 後 の CRC 機 能 が 使 用 さ れ、エ ラーが 発 生 し た 場 合 は、一 時 停 止 モー ド は 使 用 し ないで く だ さ い。 使 用 する と 、 PROG_B をアサート したり、<strong>FPGA</strong> の 電 源ス イ ッ チをオフに し てか らすぐ にオンにする など し てプ ロ グ ラ ム し 直 さ ない と 、 一 時 停 止 モー ド から 元 に 戻 らなくなり ます。こ の 場 合 、 次 の よ う なデザ イ ン オプシ ョ ン を 使 用 し ます。1. 一 時 停 止 モー ド を イ ネーブルにする 場 合 はコ ン フ ィ ギ ュ レーシ ョ ン 後 の CRC 機 能 を 使 用 し ないよ うにし、 CRC 機 能 を 使 用 する 場 合 は 一 時 停 止 モー ド を イ ネーブルに し ない よ う に し ます。2. コンフィギュレーション 後 の CRC 機 能 を 使 用 する 場 合 、 SUSPEND ピ ン 入 力 を 外 部 か らINIT_B ピ ンでゲー ト 制 御 し ます。 コンフィギュレーション 後 の CRC でエ ラ ーが 発 生 する と 、INIT_B ピンが Low にな り ます。 この 外 部 ゲートによ り、INIT_B ピンが Low の 場 合 はSUSPEND ピンが High にな り ません。 この 際 、SUSPEND 入 力 のグリ ッ チ フィ ルタを 使 用 して、 SUSPEND ピンと INIT_B ピ ン 間 のレ ース コ ンディ ショ ンを 回 避 し てく ださ い。詳 細 は、 『<strong>Spartan</strong>-3 Generation Configuration User Guide』 (UG332) の 「Configuration CRC」 の 章を 参 照 して く ださい。504 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


<strong>Spartan</strong>-3A/3AN/3A DSP の 一 時 停 止 モー ドR一 時 停 止 モー ド の BitGen オプシ ョ ン表 19-9 は、 一 時 停 止 モー ド に 関 する さ ま ざ ま なビ ッ ト ス ト リ ーム オプシ ョ ンを 示 しています。表 19-9 : 一 時 停 止 モー ド の BitGen オプシ ョ ン一 時 停 止 モー ドのビ ッ トストリームオプシ ョ ンen_suspenddrive_awakeオプシ ョ ン(デフォルト)NoYesNoYes説 明一 時 停 止 モー ド は、 こ のアプ リ ケーシ ョ ンでは 使 用 さ れません。 SUSPEND ピンは GND に 接 続 し て く だ さい。SUSPEND ピ ンで 制 御 し て、 一 時 停 止 を イ ネーブルに し ます。一 時 停 止 モー ド が イ ネーブルになっ てい る 場 合 に、オープン ドレイン 出 力 を 使 用 して AWAKE ピンのステートを 示 します。一 時 停 止 モー ド を 終 了 する には、 外 部 プルア ッ プ 抵 抗 ま たはHigh 信 号 が 必 要 と な り ます。一 時 停 止 モー ド が イ 使 用 さ れてい る 場 合 に AWAKE 出 力 を 駆動 して 現 在 のステート を 示 します。suspend_filter Yes SUSPEND ピンのグリ ッチ フィルタをオンにします。en_sw_gsrsw_clksw_gwe_cyclesw_gts_cycleNoNoYesStartupClkInternalClk1,..,5,...,10241,..,4,...,1024SUSPEND ピンのグリ ッチ フィルタをオフにします。<strong>FPGA</strong> のクロック 付 きエレメン トのステートがすべて 保 存 されます。ウェークアップ 中 に GSR 信 号 にパルス を 送 り 、 <strong>FPGA</strong> アプ リケーシ ョ ンで 前 も って 指 定 された とおり に、ク ロ ッ ク 付 きエレメントすべてをセットまたはリセットします。 この GSR パルスが 送 信 さ れる と 、 AWAKE ピンは High にな り、sw_gwe_cycle と sw_gts_cycle 設 定 が 有 効 にな り ます。StartupClk ビッ トスト リーム ジェネレータ 設 定 で 指 定 されたク ロ ッ ク を 使 用 し、 一 時 停 止 モー ド の ウ ェーク ア ッ プ タイミングを 制 御 します。内 部 で 生 成 さ れた 50MHz のオシ レータ を 使 用 し、 一 時 停 止モード のウ ェーク ア ッ プ タ イ ミ ングを 制 御 し ます。AWAKE ピンが High になってか ら、 書 き 込 み 可 能 な ク ロ ック 付 きエレメン ト (フリ ップフロップ、 ブロック RAM など)のグローバル 書 き 込 み 禁 止 が 解 除 さ れる までの、 sw_clk 設 定で 指 定 した ク ロ ッ ク のサイ クル 数 です。 デフォル ト は、AWAKE ピンが High になった 後 5 クロック サイクルです。通 常 、 こ の 値 は sw_gts_cycle 設 定 と 同 じ かそれよ り 大 き く なります。AWAKE ピンが High になってから I/O ピンが SUSPEND 制約 の 設 定 から 通 常 の 動 作 に 戻 る までの、 sw_clk 設 定 で 指 定 したクロックのサイクル 数 です。 デフォル ト は、 AWAKE ピンが High になった 後 4 クロック サイクルです。 通 常 、 こ の 値 はsw_gwe_cycle 設 定 と 同 じ かそれよ り 小 さ く な り ます。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 505<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 19 章 : パワー マネージメン ト ソリューション一 時 停 止 モー ド 中 の <strong>FPGA</strong> の 電 圧 要 件一 時 停 止 モー ド 中 は、 V CCINT および V CCAUX レールの 電 圧 は、 データ シー ト に 記 述 さ れてい る レベルに し てお く 必 要 があ り ますが、 4 つの I/O バン クへの V CCO は、 シ ス テム 要 件 に 応 じ てオフにし て 節 電 する こ と も で き ます。 また、V CCO は 一 時 停 止 モー ド 中 は 1.0V までオプシ ョ ンで 削 減 できますが、 これは SUSPEND=DRIVE_LAST_VALUE 制 約 の 付 いた 出 力 ピ ンの 電 圧 レベルに も 影 響 します。<strong>FPGA</strong> のパワーオン リセット (POR) 回 路 では V CCINT と V CCAUX が 監 視 され 続 けますが、 コンフィギュレーション 後 の V CCO は 監 視 されません。 デフ ォ ルト では、V CCINT または V CCAUX がデータ シート に 記 述 さ れる 最 小 の 電 圧 値 を 下 回 る と 、 <strong>FPGA</strong> のコ ン フ ィ ギュ レ ーショ ン が 再 開 し ま す。電 力 の 影 響 を 受 けやすいアプ リ ケーシ ョ ンの 場 合 、 V CCINT と V CCAUX の 電 圧 レベルを さ らに 削 減して、 電 力 を 下 げることができますが、 ビットスト リーム オプシ ョ ン en_porb:No を 使 用 して<strong>FPGA</strong> ビッ トスト リームで POR 回 路 をデ ィ スエーブルに し てお く 必 要 があ り ます。 POR 回 路 をディスエーブルにすると、 <strong>FPGA</strong> が 一 時 停 止 モー ド 中 は V CCINT を 1.0V まで、 V CCAUX を 2.0Vまで 下 げるこ とができます。一 時 停 止 モー ド 中 の 電 源 要 件一 時 停 止 モー ド 中 の <strong>FPGA</strong> の V CCINT および V CCAUX 電 源 レールには 次 の よ う な 特 徴 があ り ます。• 一 時 停 止 モー ド 中 は、 内 部 <strong>FPGA</strong> 回 路 に 使 用 さ れる 電 源 が V CCAUX から V CCINT に 切 り 替 わるので、 V CCAUX に 必 要 な 電 流 は 大 幅 に 減 少 し ます。• V CCINT に 必 要 な 電 流 は、 静 止 電 流 レベルを 少 し 上 回 っ た 値 にな り ます。Hibernate モードHibernate ( 休 止 ) モー ド を 使 用 する と 、 長 期 間 電 源 をオフにで き、 現 在 のアプ リ ケーシ ョ ンのス テート が 保 存 さ れな く て も 問 題 のない よ う なアプ リ ケーシ ョ ンで、 最 大 限 に 電 力 を 節 約 で き ます。<strong>FPGA</strong> を 静 止 電 流 レベルにする 方 法PROG_B を Low にする と 、 データ シー ト に 記 述 さ れる テ ス ト 条 件 を 満 た し なが ら そのデバイ スの静 止 電 流 レベルにで き ます。 PROG_B が Low になる と、 I/O がすべてハイ インピーダンス ステート にな り 、 内 部 ス イ ッ チがすべて 停 止 さ れ、 内 部 メ モ リ に 保 持 さ れていた ビ ッ ト ス ト リ ームがすべて 0 にな り ます。 PROG_B が Low の 間 と その 後 は、 プルア ップ 抵 抗 の 入 力 を High にしてすべての I/O の 内 部 プルアップ 抵 抗 をディスエーブルにしてください。 こ の 特 定 の 信 号 名 はデバ イ スによって 異 なり、<strong>Spartan</strong>-3A/3AN/3A DSP の 場 合 は PUDC_B、 <strong>Spartan</strong>-3E の 場 合 は HSWAP、<strong>Spartan</strong>-3 の 場 合 は HSWAP_EN にな り ます。アプリ ケーショ ン を 再 起 動 する には、 PROG_B を High にし ま す。 <strong>FPGA</strong> は、 アプリ ケーショ ンの 再起 動 よ り も 前 にリ コ ン フ ィ ギュ レ ーショ ンさ れる 必 要 があり ま す。 ス テート 情 報 は 保 存 さ れま せん。アプリ ケ ーショ ン で <strong>FPGA</strong> コンフィ ギュレーショ ン ビ ッ ト ス ト リ ーム を 保 持 する 必 要 のある 場 合は、 いく つかの 方 法 があり ま す。 <strong>Spartan</strong>-3A、 <strong>Spartan</strong>-3AN、 <strong>Spartan</strong>-3A DSP の 場 合 は、 <strong>Spartan</strong>-3A/3AN/3A DSP の 一 時 停 止 モード を 使 用 します。 <strong>Spartan</strong>-3E およ び <strong>Spartan</strong>-3 の 場 合 は、PROG_Bを アサート し ないでく ださ い。 その 他 すべてのテス ト 条 件 が 満 たさ れている 場 合 ( 内 部 ス イ ッ チなし、I/O がオフなど)、 静 止 電 流 レ ベルはデータ シート の 値 と ほぼ 同 じ になる か、 わずかに 上 回 り ます。 I/O ピ ン の 内 部 プルアッ プ 抵 抗 と プルダウ ン 抵 抗 はディ ス エーブルになる よ う にし ま す。506 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


Hibernate モードRHibernate モードの 開 始Hibernate モード は、 「<strong>FPGA</strong> を 静 止 電 流 レベルにする 方 法 」 を 使 用 する と 開 始 で き、 電 源 レールのス イ ッ チをオフにする こ と で 消 費 電 力 を 抑 え ます。 こ のモー ド では、 静 止 状 態 の 消 費 電 力 が 削 減 できるので、 最 低 限 の 電 力 しか 使 用 されません。 <strong>FPGA</strong> がこのモードになると、 V CCINT と V CCAUX( 補 助 ) のスイッチがオフになり ますが、 V CCO ラ イ ンには 電 力 が 供 給 さ れます。 図 19-9 は、<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> を Hibernate モー ド にする 方 法 を 示 し ています。Hibernate モー ド の 間 、 V CCINT と V CCAUX レールはオフになっています。 このスイッチを 切 り 替え るには、 オン 抵 抗 の 低 い 電 源 FET を 使 用 する こ と をお 勧 め し ます。 Hibernate モード になる と コンフィギュレーション データは 失 われる ので、 再 起 動 し た と き に <strong>FPGA</strong> を リコンフィギュレーションする 必 要 があ り ます。2.5V 1.2VV CCOSupplyPowerControlV CCAUX V CCINT<strong>Spartan</strong>-3E<strong>FPGA</strong>HSWAPPROG_BI/O Bank I/O BankLowHi-ZInactiveDeviceActive,PoweredDeviceV CCOSupply<strong>UG331</strong>_c19_08_092506図 19-9 : <strong>Spartan</strong>-3E の Hibernate モードの 例Hibernate モードへ 移 行 中 に PROG_B 入 力 を Low に 保 持 する と 、 すべての <strong>FPGA</strong> 出 力 がハイ インピーダンス ステートになり ます。 電 力 を V CCINT と V CCAUX レールに 再 び 供 給 し た ら 、PROG_Bを 解 放 して く ださい。 509 ページの 「 設 計 に 関 する 考 慮 事 項 」 は、 専 用 ピ ン と 多 目 的 ピ ンに 推 奨 さ れるレベルを 示 しています。<strong>Spartan</strong>-3A/3AN/3A DSP <strong>FPGA</strong> : V CCO 電 源 のオ フ<strong>Spartan</strong>-3A/3AN/3A DSP の I/O ピンはフローティングに 適 した 構 造 をしているので、 ホッ ト スワップ 機 能 がすべてサポートされます。 <strong>Spartan</strong>-3A/3AN/3A DSP <strong>FPGA</strong> を Hibernate モード にすると、<strong>FPGA</strong> や 外 部 アプ リ ケーシ ョ ンに 悪 影 響 を 及 ぼすこ と な く 、 V CCO 電 源 を 安 全 に 切 る こ と ができます。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 507<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 19 章 : パワー マネージメン ト ソリューション<strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3 <strong>FPGA</strong> : 電 源 がオンの 外 部 デバイ スに 接 続 されたI/O バンクの V CCO の 保 持<strong>Spartan</strong>-3E と <strong>Spartan</strong>-3 のユーザー I/O ま たは 入 力 専 用 ピ ンには、 そのピ ン と それに 接 続 さ れたV CCO レールの 間 にパワー ダイオードがあります。 このパワー ダ イ オー ド は、 信 号 を 伝 搬 する ピ ンすべてに 常 に 付 いています。 通 常 は、 Hibernate モード の 間 はすべてのバン クの V CCO を 保 持 して、I/O ブロック 内 のパワー ダ イ オー ド を 信 号 がピ ンに 適 用 さ れた と き にオフにな る よ う に し てお く のが 一 番 安 全 な 方 法 です。 Hibernate モー ド の 場 合 、 I/O はハイ インピーダンス ステートなので、 電源 の 入 った V CCO レールにはほ と んど 電 流 は 流 れません。場 合 に よ っ ては、 V CCO レールを 特 定 のバン クに 切 り 替 え る こ と もでき ます。 これによ り、 バンクの V CCO 電 流 を 数 ミ リ アンペア 分 削 減 で き ます。 削 減 する には、 図 19-9の 「Inactive Device」 のように、 さまざまな 方 法 があります。1. <strong>FPGA</strong> の 特 定 の I/O バン ク に 接 続 さ れた 外 部 デバイ スへの 電 源 をオフに し ます。 <strong>FPGA</strong> の I/Oバン ク と 外 部 デバイ スの 電 源 が 両 方 と も オフの 場 合 、 電 流 は 流 れません。2. 外 部 デバイ スの 電 源 がオンで、 <strong>FPGA</strong> の I/O バン ク の 電 源 がオンの 場 合 、 <strong>FPGA</strong> を 駆 動 する 信号 はすべてハイ インピーダンスか 0.5V 未 満 にな る よ う に し ます。 どちらの 場 合 も、 <strong>FPGA</strong> のパワー ダイオードへは 電 流 は 流 れません。 電 圧 が 0.5V を 超 え る 場 合 は、 パワー ダイオードがオンになるこ とがあ り ます。 パワー ダイオードはオフのままにして、 V CCO レールに 逆 電 流 が流 れない よ う に し て く だ さ い。PROG_BHibernateI/OsV CCINTV CCAUXV CCO(per I/O Bank)INIT_BDONEUndefinedCCLKUndefinedin Master Mode図 19-10 : Hibernate モー ド の 波 形STARTUP cycles<strong>UG331</strong>_c19_09_022507図 19-10 は、 Hibernate モー ド の 開 始 と 終 了 を 表 す 波 形 です。 Hibernate モード は、 次 のよ う に 開 始します。1. PROG_B ピンを Low にし、ユーザー I/O ピ ン と 入 力 専 用 ピ ン をすべてハ イ インピーダンス ステー ト にし ます。2. <strong>FPGA</strong> が INIT_B と DONE ピンを Low に 駆 動 し ます。508 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


Hibernate モードR3. 外 部 ス イ ッ チによ り 、<strong>FPGA</strong> への V CCINT と V CCAUX レールがオフになり ます。 <strong>FPGA</strong> デバイ スと アプリ ケーショ ンによって、 V CCO レールへの 電 源 がオフになる こ と も あり ます。♦ 507 ページの「<strong>Spartan</strong>-3A/3AN/3A DSP <strong>FPGA</strong> : V CCO 電 源 のオフ」 を 参 照 して く ださい。♦ 508 ページの「<strong>Spartan</strong>-3E、<strong>Spartan</strong>-3 <strong>FPGA</strong> : 電 源 がオンの 外 部 デバ イ スに 接 続 さ れた I/Oバンクの V CCO の 保 持 」 を 参 照 して く ださい。4. <strong>FPGA</strong> が Hibernate モード にな り ま した。 こ の 状 態 の 間 は、 消 費 電 力 が 最 小 にな り ます。Hibernate モードの 終 了Hibernate モー ド は、 次 の よ う に 終 了 し ます。1. 電 源 がオフになったすべてのレールに 電 源 を 投 入 し ます。 投 入 順 序 は 問 いません。2. <strong>FPGA</strong> の 初 期 化 が 始 ま る 前 に PROG_B を High にデ ィ アサー ト し ます。 PROG_B は、 3 つの電 源 がすべて 元 に 戻 った 後 に Low から High に 遷 移 さ せる 必 要 があ り ます。3. ロ ジッ ク の 初 期 化 が 実 行 さ れたら 、 <strong>FPGA</strong> はオープンド レインの INIT_B 信 号 を ディ アサートします。 こ の 信 号 が High になる と 、<strong>FPGA</strong> はリ コンフィ ギュレーショ ン プロ セスを 開 始 します。4. コンフィギュレーションが 終 了 したら、 BitGen オプシ ョ ンの 設 定 に 従 って <strong>FPGA</strong> がスタートアップ 状 態 になり、 DONE がアサー ト され、 I/O がイネーブルになり ます。5. <strong>FPGA</strong> はユーザーが 操 作 でき る 状 態 にな り ます。設 計 に 関 する 考 慮 事 項アプリ ケーショ ン 内 のピ ン にど のよ う に 電 源 が 供 給 さ れている かに 注 意 する 必 要 があり ま す。 多 目的 コ ン フ ィ ギュ レ ーショ ン ピ ン を 含 むユーザー I/O ピンのほと んどが 特 定 の V CCO 入 力 を 電 源 と しています。 コンフィ ギュレーショ ン 専 用 ピンには、V CCAUX から 電 源 が 供 給 さ れま す。 これらの 電 源と の 接 続 を 解 除 する 場 合 は、 電 源 を 再 び 適 用 し たと き の <strong>FPGA</strong> コンフィギュレーショ ンへの 影 響 を考 慮 し てく ださ い。コンフィギュレーション ピンとそれが 接 続 された 電 源 レールの 詳 細 は、 『<strong>Spartan</strong>-3 GenerationConfiguration User Guide』 (UG332) の 「Configuration Pins and Behavior during Configuration」の章 を 参 照 し て く だ さ い。Hibernate モード 中 に、 <strong>Spartan</strong>-3/<strong>Spartan</strong>-3E の V CCO または V CCAUX の 接 続 を 解 除 する 場 合 は、0.5V 以 上 の 電 圧 を 使 用 し ない よ う に し て、 パワー ダイオードをオフのままにします。 <strong>Spartan</strong>-3A/3AN/3A DSP の 場 合 は、 フ ローテ ィ ング 構 造 に 優 れ、 ホ ッ ト ス ワ ッ プ 機 能 が 改 善 さ れてい る ため、こ の 必 要 はあ り ません。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 509<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 19 章 : パワー マネージメン ト ソリューション510 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 20 章IBIS モデルの 使 用概 要IBIS (Input/Output Buffer Information Specification) モデルは、 ボード レベルのデザイン シミ ュ レ ーショ ン で I/O 特 性 を シミ ュ レ ーショ ン する のに 使 用 さ れる 業 界 標 準 記 述 です。<strong>Spartan</strong> ® -3 ジェネレーショ ン デバイ ス 用 の IBIS モデルは、 http://japan.xilinx.com/support/download/index.htm か ら 入 手 で き ます。 I/O 規 格 やデバイ ス 特 性 は 各 フ ァ ミ リ で 異 な る ため、IBISモデルも 異 な り ます。 このモデルをサードパーティ ツールで 使 用 する と 、ボー ド デザイ ンのシグナル イ ンテグ リ テ ィ 特 性 を 検 証 で き ます。はじめにI/O ス イ ッ チ 周 波 数 の 高 速 化 、 電 圧 レベルの 低 下 に 伴 い、 I/O の 正 確 なアナロ グ シ ミュレーションが 高 速 デジ タル システム デザイ ンで 重 要 にな り ま し た。 I/O バ ッ フ ァ 、 終 端 、 ボー ド の ト レースの正 確 なシミュレーションは、 新 しいデザインのタイム トゥ マーケ ッ ト の 大 幅 な 短 縮 につなが り ます。 デザイ ン サ イ ク ルの 初 期 段 階 でシグナル インテグリティ 問 題 を 見 つけることで、ボードでの 修正 が 削 減 でき、 品 質 の 向 上 が 可 能 です。デバイ スのデータ シー ト には、 保 証 済 み DC と I/O のス イ ッ チ 特 性 に 関 する 基 本 的 な 情 報 が 記 載 されていますが、 特 定 アプ リ ケーシ ョ ンで 最 良 のボード イ ンプ リ メ ンテーシ ョ ン を 決 定 する ために 必要 な 情 報 (IBIS モデルに 含 まれる スルー レー ト および 駆 動 電 流 など) がすべて 含 まれているわけではあ り ません。 IBIS モデルは、 リ ンギング、 ク ロ ス ト ーク、 RFI/EMI などのシグナル インテグリテ ィ 問 題 を シ ス テム レベルで 解 析 する 際 に 使 用 し ます。 こ れに よ り 、 時 間 やコ ス ト のかか る プ ロ トタイプの PCB を 生 産 する 前 に、 完 成 し たデザ イ ン をシ ミ ュ レーシ ョ ン し て 評 価 で き ます。 このよ うにレ イ ア ウ ト 前 にシ ミ ュ レーシ ョ ン を 行 う こ と で、 開 発 コ ス ト の 削 減 およびタ イ ム トゥ マーケ ットの 短 縮 につながり、I/O 動 作 の 信 頼 性 も 向 上 し ます。SPICE と 比 較 した IBIS の 利 点SPICE は、IC デザイ ン のよ う な 高 度 な 正 確 さ が 必 要 な 分 野 で 広 く 使 用 さ れていま すが、 PCB およ びシステム ド メ イ ン で 使 用 する 場 合 、 デバイ ス ベン ダやユーザーから 見 る と マイ ナス 面 も あり ま す。SPICE シミュレーションではトランジスタ レベルの 回 路 がモデル 化 さ れます。 このため、SPICE モデルに 回 路 およびプ ロ セス パラ メ ータ に 関 する 詳 細 な 情 報 を 含 め る 必 要 があ り ますが、 これらは 通常 IC ベンダが 所 有 権 を 持 つ 知 的 情 報 になっています。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 511<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 20 章 : IBIS モデルの 使 用SPICE シ ミ ュ レーシ ョ ンは 通 常 かな り 正 確 ですが、シ ミ ュ レーシ ョ ン 速 度 に 問 題 があ り ます。 特 に、シグナル イ ンテグ リ テ ィ のパフ ォーマン ス を 評 価 する 際 に よ く 使 用 さ れる 過 渡 電 流 のシ ミ ュ レーシ ョ ンで 速 度 が 遅 く な り ます。 また、すべての SPICE シ ミ ュ レータ に 完 全 な 互 換 性 があ る わけではないとい う マイナス 面 もあ り ます。 デフォル ト のシ ミ ュ レータ オプシ ョ ンが SPICE シミュレータに よ っ て 異 な る こ と も 多 々あ り ます。 オプシ ョ ンには、 正 確 さ、 コンバージェンス、 アルゴ リ ズムタイプをコン ト ロールする 重 要 なものがあるため、 同 じオプシ ョ ンを 使 用 しないと、 シ ミ ュレータによって 結 果 がかなり 異 なってしま う こ とがあり ます。 また、SPICE にバ リ エーシ ョ ンがあるため、各 シ ミ ュ レータ 用 にモデルを 用 意 する 必 要 が 出 て き ます。IBIS の 概 要IBIS は Intel 社 によ り SPICE シミュレーションに 代 わるものとして 開 発 されました。 IBIS 仕 様 は、現 在 多 く の IC ベンダおよび EDA ベンダのメ ンバーから 成 り 立 つ EIA/IBIS オープン フォーラムによ り 管 理 されています。 IBIS は ANSI/EIA-656 および IEC 62014-1 規 格 です。 IBIS 仕 様 の 詳 細は、 http://www.eigroup.org/ibis/ibis.htm を 参 照 して く ださい。IBIS モデルには、 電 流 と 電 圧 の 対 比 表 と タ イ ミ ング 情 報 が 含 まれています。 IBIS モデルでは I/O 内部 回 路 がブ ラ ッ ク ボ ッ ク ス と し て 扱 われる ので、 回 路 やプロ セスの 詳 細 に 関 する ト ラ ンジ ス タ レベルの 情 報 は 開 示 されません。 これは、 IC ベンダにと ってはプラ ス 面 と な り ます。IBIS モデルは、 ベス ト ケース ( 強 い ト ラ ンジ ス タ、 低 温 度 、 高 電 圧 ) およびワース ト ケース ( 弱 いト ラ ンジ ス タ、 高 温 度 、 低 電 圧 ) の 状 態 をシ ミ ュ レーシ ョ ンする のに 使 用 で き ます。 fast/strong モデルはベス ト ケースを、slow/weak モデルはワース ト ケースを、 typical モデルは 標 準 的 なビヘイ ビアを 示 します。IBIS は、 内 部 タ イ ミ ング 情 報 ( 伝 搬 遅 延 およびス キ ュー) のシ ミ ュ レーシ ョ ンには 使 用 でき ません。こ の 情 報 は、 タ イ ミ ング モデルに よ り 提 供 さ れます。 IBIS では、 電 力 と グ ラ ン ド ス トラクチャ、ピン 間 カ ップ リ ングもシ ミ ュ レーシ ョ ンでき ません。 グランド バウ ン ス、 供 給 電 力 降 下 、 SSO ( 同 時スイッチ 出 力 ) ノイズなども IBIS モデルではシ ミ ュ レーシ ョ ンでき ません。 ただ し、 広 範 囲 にわたる ラ ボ 測 定 が 終 了 し た ら、 ザ イ リ ン ク スの 提 供 するデバ イ ス/パッケージ 別 SSO ガイド ラインを 使用 でき ます。 IBIS モデルには、 詳 細 なパッ ケージ データは 含 まれていません。 パッケージ データは通 常 は RLC データ 形 式 で 提 供 さ れますが、 こ の 形 式 では 高 速 にな る と 正 確 性 に 欠 け る と い う 欠 点があ り ます。 パッケージ データ を 正 し く シ ミ ュ レーシ ョ ンする には、 伝 送 ラ イ ンに 25 ~ 100ps の遅 延 と 65Ω の イ ン ピーダン ス を 含 め る 必 要 があ り ます。IBIS モデルを 使 用 する と、 正 確 さはわずかに 下 が り ますが、 SPICE と 比 較 してシミ ュレーショ ン速 度 がかな り 上 が る と い う プ ラ ス 面 があ り ます。 また、 SPICE モデルと シ ミ ュ レータで 問 題 と なっていた 非 コンバージェンスは、IBIS シミュレーションには 見 られません。 現 在 の と こ ろ、IBIS モデルは EDA ベンダすべてでサポー ト されており、これらの IBIS シミュレータも 使 いやすくなっています。 ほとんどのデバイスの IBIS モデルはイ ン ターネ ッ ト で 入 手 可 能 なため、 同 じ ボー ド で 別 の 製造 元 のデバイ ス を 容 易 にシ ミ ュ レーシ ョ ンで き ます。 現 在 入 手 可 能 な IBIS シ ミュレータは 複 数 あり 、 それぞれ 出 力 結 果 は 異 な り ます。 計 測 さ れた 結 果 の ±10% のオーバーシュー ト またはアンダーシ ュー ト は、 許 容 範 囲 です。 モデル と 計 測 結 果 の 違 いは、 すべてのパラ メ ータ がモデ リ ング さ れていないためです。 IBIS モデルのシ ミ ュ レータは、 Cadence、 Hyperlynx、 Mentor、 Intusoft 等 の 各社 から 提 供 されています。512 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


ザイ リンクスの IBIS サポー トRザイ リンクスの IBIS サポー トザイ リ ン ク ス では、 現 在 リ リ ース 中 の 製 品 すべてに 対 し て IBIS モデルを 提 供 し ていま す。 こ れら のIBIS モデルは、 http://japan.xilinx.com/support/download/index.htm から 簡 単 にダウンロードできます。 こ のモデルは、 開 発 シ ス テムか ら も 使 用 可 能 です。 こ の 暫 定 モデルはシ ミ ュ レーシ ョ ンに 基 づいて 作 成 さ れてか ら、 シ リ コ ンで 検 証 さ れています。IBIS ファイルには、 ヘッダと 各 コンポーネントのモデル データ の 2 つのセ ク シ ョ ンが 含 まれています。 IBIS ファイル 1 つに 複 数 のデバイ ス が 記 述 さ れています。 IBIS フ ァ イ ルには、 通 常 次 の よ うな 内 容 が 含 まれます。• IBIS バージ ョ ン• ファイル 名• ファイル リビジョン• コンポーネント• パッケージ R/L/C• ピン 名 、 モデル、 R/L/C• モデル ( 例 : トライステート)• 温 度 範 囲 ( 標 準 、 最 小 、 最 大 )• 電 圧 範 囲 ( 標 準 、 最 小 、 最 大 )• プルア ップ リファレンス• プルダウ ン リファレンス• 電 力 ク ラ ンプ リファレンス• グランド クランプ リファレンス• I/V ( 電 流 / 電 圧 ) の 表 :♦♦♦プルア ッププルダウ ン電 力 ク ラ ンプ♦ グランド クランプ• 標 準 、 最 小 、 最 大 状 態 におけ る 立 ち 上 が り 、 立 ち 下 が り の dV/dt (50Ω を 駆 動 )<strong>Spartan</strong>-3AN の IBIS モデルは、 <strong>Spartan</strong>-3A のものと 同 じです。IBIS の I/V 曲 線 と dV/dt 曲 線デジタル バ ッ フ ァ は、 受 信 モー ド ( トライステート モー ド) および 駆 動 モー ド で 測 定 さ れます。 IBISの I/V 曲 線 は、 これら 両 方 のモード のデータに 基 づいています。 モード 間 の 遷 移 は、 回 路 でレシーバ モデルを 一 定 に 保 ちながら、 ド ラ イバ モデル と レシーバ モデルの 差 を 段 階 的 に 増 やしたり 減 らしたり して 実 現 します。IBIS 仕 様 で 指 定 さ れてい る I/V 曲 線 の 範 囲 は、 -V CC ~ 2X V CC です。 電 圧 範 囲 が こ れだけ 広 いのは、 全 反 射 に よ る 理 論 的 な 最 大 オーバーシ ュー ト が 信 号 幅 の 2 倍 であ る ためです。 グランド クランプ I/V 曲 線 は -V CC ~ V CC の 範 囲 で 指 定 し、 電 力 ク ラ ンプ I/V 曲 線 は V CC ~ 2X V CC の 範 囲 で 指定 する 必 要 があ り ます。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 513<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 20 章 : IBIS モデルの 使 用IBIS バッファ モデルでサポー ト されている 3 つの 状 態 は、 標 準 値 ( 必 須 )、 最 小 値 (オプシ ョ ン)、および 最 大 値 (オプシ ョ ン) です。 CMOS バ ッ フ ァ では、 最 小 状 態 は 高 温 、 低 電 源 電 圧 で 定 義 さ れ、 最大 状 態 は 低 温 、 高 電 源 電 圧 で 定 義 さ れます。デジタル バッファの IBIS モデルには、 次 の 4 つの I/V 曲 線 が 含 まれます。• Low を 駆 動 する ド ラ イバのモー ド データ を 含 むプルダ ウ ン I/V 曲 線 。 曲 線 の 原 点 は、 CMOSバッファでは 0V です。• High を 駆 動 する ド ラ イバのモー ド データ を 含 むプルア ッ プ I/V 曲 線 。 曲 線 の 原 点 は、 電 源 電圧 (V CC ) です。• 受 信 (トライステート) モード データ を 含 むグ ラ ン ド クランプ I/V 曲 線 。 曲 線 の 原 点 は、CMOS バッファでは 0V です。• 受 信 (トライステート) モー ド データ を 含 む 電 力 ク ラ ンプ I/V 曲 線 。 曲 線 の 原 点 は、 電 源 電 圧(V CC ) です。Ramp 曲 線 と dV/dt 曲 線IBISWriterRamp キーワードには、 プルア ップ トランジスタおよびプルダウン トランジスタのオン/オフが 切り 替 わる 速 度 の 情 報 が 含 まれます。 dV/dt 曲 線 に も 同 じ 情 報 が 含 まれていますが、 チ ッ プ 容 量(C_comp) の 値 も 含 まれています。 C_comp は、 パ ッ ケージ 容 量 を 除 く チ ッ プ パッ ドでのチップの総 容 量 です。dV/dt 曲 線 は、バ ッ フ ァ の 遷 移 特 性 を ラ ンプ 曲 線 よ り 正 確 に 表 し ます。 CMOS バッファを 表 すには、プルダウン ON、 プルアップ OFF、 プルダウン OFF、 プルアップ ON の 最 低 4 つの dV/dt 曲 線 が必 要 です。 dV/dt 曲 線 には clock-to-out 遅 延 が 含 まれてお り 、dV/dt 曲 線 の 長 さはバッ フ ァ が 使 用 されるクロッ ク スピードに 対 応 します。 dV/dt 曲 線 では、 パルス が 入 力 し き い 値 を 超 え る 点 を t=0 とします。Web サイ トからダウンロード したザイ リ ンクス IBIS ファイルには、ターゲッ ト デバイ スで 使 用 可能 な I/O 規 格 すべての IBIS モデル コレクションが 含 まれています。 ISE ® では、IBISWriter ツールを 使 用 してデザイン 専 用 の IBIS モデルを 生 成 し、 シグナル イ ンテグ リ テ ィ 解 析 ツールへのデザイン 抽 出 が 簡 単 にできるようになっています。 IBISWriter は、 各 I/O バッファのデザイン 仕 様 に 従 ってカスタマ デザイ ンの 各 ピ ン と IBIS バッファ モデルを 関 連 付 け、 シグナル インテグリティ 解 析ツールへ 直 接 読 み 込 むこ と ので き る IBIS ファイルを 出 力 します。デザ イ ン 専 用 の IBIS フ ァ イルを 生 成 する には、 次 の 手 順 に 従 って く だ さ い。1. Project Navigator でデザイ ンを イ ンプ リ メ ン ト し ます。2. [Processes] タブで [Implement Design] → [Place & Route] → [Generate IBIS Model] を 右 クリックし、[Run] をクリ ックします。 すべての 入 力 / 出 力 ピ ンが IBIS モデルに 関 連 付 け ら れたデザ イ ン 特 有 のフ ァ イ ルが 生 成 さ れます。3. こ のフ ァ イ ルを 使 用 する シグナル イ ンテグ リ テ ィ 解 析 ツールに 読 み 込 んで、シ ミ ュ レーシ ョ ンを 実 行 します。リファレンスIBIS ファイルはザイリンクスのダウンロード センタから 入 手 できます。http://japan.xilinx.com/support/download/index.htm514 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 21 章バウンダ リ スキャンと BSDL ファイルの使 用概 要BSDL (Boundary Scan Description Language) ファイルは、<strong>Spartan</strong> ® -3 ジェネレーショ ン <strong>FPGA</strong> を含 め、 IEEE 1149.1 (JTAG) に 準 拠 するザイ リ ン ク ス デバイ スの 全 パーツおよびパ ッ ケージに 対 して 提 供 されています。 このファイルをサードパーティのバウンダリ スキャン ツールに 読 み 込 む と 、テス ト ベ ク タ を 作 成 し てテ ス ト を 実 行 で き ます。 また、ザイ リンクスのプログラム ソフトウェアでもバウンダリ スキャンでデバイスをコンフィギュレーショ ンする 場 合 に BSDL ファイルを 使 用 します。この 章 の 記 述 は、<strong>Spartan</strong>-3、 <strong>Spartan</strong>-3E、 <strong>Spartan</strong>-3A、 <strong>Spartan</strong>-3AN、 <strong>Spartan</strong>-3A DSP などの<strong>Spartan</strong>-3 ジェネレーショ ン <strong>FPGA</strong> すべてに 適 用 さ れます。バウンダ リ スキャ ンの 概 要バウンダ リ スキャン テ ス ト は、 未 接 続 ピ ンやシ ョ ー ト ピンなどのボード レベルの 接 続 問 題 を 確 認するために 実 行 します。 このテス トによ り、 特 に 多 数 のボール グ リッドを 含 むパッケージでは 検 出で き ない こ と も あ った 製 造 問 題 やレ イ ア ウ ト 問 題 を 素 早 く 検 出 で き る よ う にな り ま し た。 最 近 では、 バウ ンダ リ スキャンはデバイスのコンフィギュレーション 手 段 の 1 つとして、ザイ リンクスをはじめとするさまざまな PLD ベンダによって 使 用 されています。 バウンダリ スキャンを 使 用 したコ ン フ ィ ギ ュ レーシ ョ ンの 詳 細 は、 『<strong>Spartan</strong>-3 Generation Configuration User Guide』 (UG332) を参 照 し て く だ さ い。IEEE 規 格JTAG (Joint Test Action Group) は IEEE 1149.1 規 格 の 別 名 であ り 、 バウ ンダ リ スキャンの 方 法 を定 義 し ています。 JTAG 準 拠 のデバ イ スには、 ス テー ト マシン と 複 数 のレ ジ ス タ を 含 む 専 用 ハー ドウェアが 含 まれ、バウンダリ スキャンが 実 行 できるようになっています。 こ の 専 用 ハー ド ウ ェ アにより、TDI (Test Data In)、 TDO (Test Data Out)、 TMS (Test Mode Select)、 TCK (Test Clock) の4 つの 専 用 信 号 で 提 供 さ れる 命 令 およびデータ が 解 釈 さ れます。 JTAG 準 拠 のデバイ スでは、TDI および TMS 信 号 の 命 令 およびデータ が 解 釈 さ れ、 TDO 信 号 に 駆 動 さ れます。 TCK 信 号 はプ ロ セスのクロック 用 に 使 用 されます ( 図 21-1 を 参 照 )。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 515<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 21 章 : バウンダ リ スキャン と BSDL フ ァ イルの 使 用IEEE Standard 1149.1 Compliant DeviceTAP State MachineTMSSelect Next State10Test-Logic-Reset0Run-Test/Idle11Select-DR01Capture-DR0Shift-DR011Exit1-DRSelect-IR01Capture-IR0Shift-IR011Exit1-IRShift-IR/Shift-DR000Pause-DR10Pause-IR1TCKExit2-DR01Update-DR1 10Exit2-IR01Update-IR0TDIInstruction RegisterInstruction DecoderBypass[1] RegisterIDCODE[32] RegisterSelect DataRegisterTDOBoundary-Scan[N] RegisterI/O I/O I/O I/OUG071_47_082306<strong>Spartan</strong>-3 ジェネレーショ ン <strong>FPGA</strong> では、V CCAUX 電 源 が 接 続 さ れた 専 用 ピ ンに 4 つの JTAG 信 号(TDI、 TDO、 TMS、 TCK) が 使 用 され、 それぞれがビ ッ ト ス ト リ ーム オプシ ョ ンを 使 用 して、 プルア ップ 抵 抗 (デフォル ト)、 プルダ ウ ン 抵 抗 付 き、 または 抵 抗 な し で コ ン フ ィ ギ ュ レーシ ョ ン さ れています。 IEEE 1532 は、 IEEE 1149.1 JTAG 規 格 を 基 に 作 成 さ れています。 IEEE 1532 を 使 用 すると、プログラマブル ロジック デバイ スのコ ンフ ィ ギ ュ レーシ ョ ンにおいて 柔 軟 性 がさ らに 増 します。 こ の 規 格 に よ り 、 複 数 デバ イ スの 同 時 プ ロ グ ラ ム、 シ リ コ ンの 拡 張 機 能 を 使 用 し たプ ロ グ ラム 回 数 の 削 減 、 管 理 を さ ら に 容 易 にする 強 力 なシス テムの 作 成 が 可 能 です。 この 規 格 では、 インシステム プログラマブル ロジック デバ イ ス を コ ン フ ィ ギ ュ レーシ ョ ンする のに 必 要 な 次 の 3 つの 要素 が 定 義 さ れています。• コンフィギュレーション 用 デバイス アーキテ クチャのコ ンポーネン ト• アルゴ リ ズム 記 述 のフレームワーク• コンフィギュレーション データ ファイル図 21-1 : 標 準 的 な JTAG アーキテクチャIEEE 1532 JTAG 規 格 の 詳 細 は、 http://japan.xilinx.com/products/design_resources/config_sol/isp_standards_specs.htm を 参 照 して く ださい。516 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


バウンダ リ スキャ ンの 機 能Rバウンダ リ スキャ ンの 機 能<strong>Spartan</strong>-3 ジェネレーショ ン デバイ スでは、 必 須 の IEEE 1149.1 コマンド とザイ リンクスのベンダ別 のコマン ド がサポー ト されます。 EXTEST、INTEST、SAMPLE/PRELOAD、BYPASS、IDCODE、USERCODE、 および HIGHZ 命 令 はすべて 使 用 で き ます。 また、 TAP では 2 つの 内 部 のユーザー定 義 のレ ジ ス タ (USER1、 USER2) およびデバイスのコンフ ィギュレーシ ョ ン/ リードバックがサポー ト されます。<strong>Spartan</strong>-3 ジェネレーションのバウンダリ スキャンでは、 モードの 選 択 はできません。 <strong>Spartan</strong>-3ジェネレーショ ン デバイ スのバウ ンダ リ スキャン モード は、 ほかのモード の 選 択 を 上 書 きするので、 バウンダ リ スキャン レ ジ ス タ を 使 用 するバウ ンダ リ スキャン 命 令 (SAMPLE/PRELOAD、INTEST、 および EXTEST) は、 コ ン フ ィ ギ ュ レーシ ョ ン 中 に 実 行 し ないで く だ さ い。 デバイ スのコ ン フ ィ ギ ュ レーシ ョ ン 前 は、 ユーザー 定 義 の 命 令 以 外 の 命 令 がすべて 使 用 で き ます。 コンフィギ ュ レーシ ョ ンの 後 は、 すべての 命 令 が 使 用 で き ます。<strong>Spartan</strong>-3 ジェネレーショ ン <strong>FPGA</strong> の 配 列 型 には、バウ ンダ リ スキャン ロ ジ ッ ク か ら 読 み 出 し 可 能な 32 ビ ッ ト のデバ イ ス 識 別 子 が 含 まれます。 バウンダリ スキャン インターフェイスには、UserIDコンフィギュレーション ビットスト リーム オプシ ョ ンで 指 定 した 32 ビッ トのユーザー ID を 格 納するこ と もできます。EXTEST、 INTEST、および BYPASS の よ う な 標 準 バウ ンダ リ ス キ ャ ン 命 令 の 詳 細 は、 IEEE 規 格を 参 照 して く ださい。バウンダ リ スキャン ツールバウンダ リ スキャン テス トには、 特 定 の 装 置 と ソフ ト ウェアが 必 要 です。 テス ト ベ ク タ を 作 成 するには、バウンダリ スキャン テ ス ト 用 の ソ フ ト ウ ェ アを 使 用 し ます。 こ のテ ス ト ベクタは 通 常 PCに 接 続 されたテス ト ポ ッ ド を 使 用 し てバウ ンダ リ スキャン チェーンに 渡 されます。バウンダ リ スキャン テス トのベクタを 作 成 するには、 テス ト ソフトウェアに 次 のバウンダリ スキャン チェーンの 情 報 を 読 み 込 む 必 要 があ り ます。1. バウンダ リ スキャン チェーンの 構 造 (デバ イ ス 数 、 タ イ プなど)チェーン 構 造 は、 ユーザーが 指 定 する か、 バウ ンダ リ スキャン ソ フ ト ウ ェ アで 自 動 的 に 検 出されます。2. 各 デバイ スのバウ ンダ リ スキャン アーキテクチャ (IR 幅 、 OPCODE、 I/O 数 、 各 I/O のビヘイビア)各 デバ イ スのバウ ンダ リ スキャン アーキテクチャは、 BSDL (Boundary Scan DescriptionLanguage) ファイルで 定 義 されます。3. デバイ スの I/O 同 士 の 接 続 方 法こ の 情 報 は、 通 常 ボー ド レベルのネ ッ ト リ ス ト か ら 抽 出 さ れます。BSDL ファイルJTAG 準 拠 デバ イ ス の 製 造 元 か ら は、 必 ずそのデバイ スの BSDL ファイルが 提 供 されます。 BSDLファイルには、I/O や 電 源 、 グ ラ ン ド な どデバ イ ス の 各 ピ ンの 機 能 に 関 する 情 報 が 含 まれます。 ザイリンクスの BSDL フ ァ イルの 拡 張 子 は .bsd です。ザイ リンクス デバイ スの BSDL ファイルは、 ザイリンクスの Web サイ ト(http://japan.xilinx.com/support/download/index.htm) からダウンロードできます。 ザ イ リ ン ク ス 以 外 の 製 造 元 の BSDLフ ァ イ ルについては、 その 企 業 の Web サ イ ト を 参 照 し て く だ さ い。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 517<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 21 章 : バウンダ リ スキャン と BSDL フ ァ イルの 使 用ザイ リ ンク ス 製 品 用 には、IEEE 1532 の BSDL ファイルもほかのファイルと 同 様 に 提 供 されています。IEEE 1149.1 の BSDL ファイルには、 .bsd と い う 名 前 が 付 いています。例 : xc3s50.bsdこれらの BSDL ファイルはプログラムに 必 要 なだけで、 JTAG テス トには、 パッケージ 特 有 のファイルが 使 用 されます。例 : xc3s50_pq208.bsdIEEE 1532 の BSDL ファイルには、_1532.bsd と い う 名 前 が 付 いています。例 : xc3s50_pq208_1532.bsdIEEE 1532 の BSDL ファイルを IEEE 1149.1 の BSDL フ ァ イ ルの 代 わ り に 使 用 する こ と はで き ません。 また、 こ の 2 つのフ ァ イルを 同 時 に 使 用 する こ と はでき ません。BSDL ファイルの 構 成BSDL ファイルには、JTAG 準 拠 デバイ ス のバウ ンダ リ スキャン アーキテクチャが VHDL で 記 述されています。 BSDL フ ァ イルは、 主 に 次 の 8 セクションで 成 り 立 っています。1. エンティティ 宣 言entity 宣 言 は、 その BSDL ファイルで 記 述 されるデバイス 名 を 表 す VHDL 文 です。xc3s50_pq208.bsd ファイルの 例entity XC3S50_PQ208 is2. ジェネリ ック パラ メータgeneric パ ラ メ ータ では、 パ ッ ケージが 指 定 さ れます。xc3s50_pq208.bsd ファイルの 例generic (PHYSICAL_PIN_MAP : string := "PQ208" );3. 論 理 ポー ト の 記 述こ の 部 分 では、 デバイ スの 全 パ ッ ド が リ ス ト さ れます。 ピ ンが 入 力 の 場 合 は 「in bit;」、 出 力 の場 合 は 「out bit;」、 双 方 向 の 場 合 は 「inout bit;」、 バウ ン ダ リ ス キ ャ ンでは 使 用 で き ない 場 合 は「linkage bit;」 と 表 示 さ れます。xc3s50_pq208.bsd ファイルの 例port (GND: linkage bit_vector (1 to 28);CCLK_P104: inout bit;DONE_P103: inout bit;HSWAP_EN_P206: in bit;M0_P55: in bit;M1_P54: in bit;M2_P56: in bit;PROG_B: in bit;TCK: in bit;TDI: in bit;TDO: out bit;TMS: in bit;VCCAUX: linkage bit_vector (1 to 8);VCCINT: linkage bit_vector (1 to 4);VCCO0: linkage bit_vector (1 to 2);IO_P2: inout bit; -- PAD124IO_P3: inout bit; -- PAD123518 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


BSDL ファイルR4. パッケージ ピンのマップこの 部 分 では、チップ 上 のパッ ドがデバイス パッケージのピンにどのよ うにワイヤ 接 続 されているかが 示 されます。xc3s50_pq208.bsd ファイルの 例constant PQ208: PIN_MAP_STRING:="GND:(P1,P8,P14,P25,P30,P41,P47,P53,P59,P66," &"P75,P82,P91,P99,P105,P112,P118,P129,P134,P145," &"P151,P157,P163,P170,P179,P186,P195,P202)," &"CCLK_P104:P104," &"DONE_P103:P103," &"HSWAP_EN_P206:P206," &"M0_P55:P55," &"M1_P54:P54," &"M2_P56:P56," &"PROG_B:P207," &"TCK:P159," &"TDI:P208," &"TDO:P158," &"TMS:P160," &"VCCAUX:(P17,P38,P69,P89,P121,P142,P173,P193)," &"VCCINT:(P70,P88,P174,P192)," &"VCCO0:(P188,P201)," &"IO_P2:P2," &"IO_P3:P3," &5. use 文use 文 では、 属 性 、 タ イプ、 定 数 、 BSDL ファイルで 参 照 されるその 他 の 情 報 を 含 む VHDLパ ッ ケージが 呼 び 出 さ れます。xc3s50_pq208.bsd ファイルの 例use STD_1149_1_1994.all;6. スキャン ポー ト の 識 別こ の 部 分 では、 JTAG ピンの TDI、 TDO、 TMS、 TCK、 TRST が 識 別 されます。 TRST は、 ザイリンクス デバイ スで 使 用 でき ないオプシ ョ ンのピ ンです。xc3s50_pq208.bsd ファイルの 例attribute TAP_SCAN_IN of TDI : signal is true;attribute TAP_SCAN_MODE of TMS : signal is true;attribute TAP_SCAN_OUT of TDO : signal is true;attribute TAP_SCAN_CLOCK of TCK : signal is (33.0e6, BOTH);7. TAP 情 報TAP 情 報 には、 デバ イ スの JTAG ロ ジ ッ ク の 詳 細 な 情 報 が 表 示 されます。 この 情 報 には、 IR幅 、 OPCODE 命 令 、 デバイ ス の ID コードなどが 含 まれます。 これらの 情 報 はデバイスによって 異 な り ます。xc3s50_pq208.bsd ファイルの 例attribute COMPLIANCE_PATTERNS of XC3S50_PQ208 : entity is"(PROG_B) (1)";attribute INSTRUCTION_LENGTH of XC3S50_PQ208 : entity is 6;attribute INSTRUCTION_OPCODE of XC3S50_PQ208 : entity is"EXTEST (000000)," &attribute INSTRUCTION_CAPTURE of XC3S50_PQ208 : entity is"XXXX01";<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 519<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 21 章 : バウンダ リ スキャン と BSDL フ ァ イルの 使 用attribute IDCODE_REGISTER of XC3S50_PQ208 : entity is"XXXX" & -- version"0001010" & -- family"000001101" & -- array size"00001001001" & -- manufacturer"1"; -- required by 1149.18. バウンダ リ レジスタ 情 報こ の 部 分 には、デバ イ ス のバウ ンダ リ スキャン セルのス ト ラ クチャが 含 まれます。 デバイ スの各 ピンには 最 大 で 3 つのバウ ンダ リ スキャン セルが 含 まれ、 各 セルにレジス タ と ラ ッチがそれぞれ 1 つずつ 含 まれます。 バウンダ リ スキャン テス ト ベクタは、 これらのレジスタにロードされるか、 これらのレジスタからスキャンされます。xc3s50_pq208.bsd ファイルの 例attribute BOUNDARY_REGISTER of XC3S50_PQ208 : entity is" 0 (BC_2, *, controlr, 1)," &" 1 (BC_2, IO_P161, output3, X, 0, 1, PULL0)," & -- PAD30" 2 (BC_2, IO_P161, input, X)," & -- PAD30BSDL ファイルの 検 証ザイ リンクスの BSDL ファイルの 検 証 は、2 段 階 に 分 かれています。 Preliminary ( 暫 定 ) ファイルはザ イ リ ン ク ス 標 準 の BSDL フ ァ イ ルが 自 動 的 に 生 成 さ れる プ ロ セスで 作 成 さ れます。 このプロセスはスク リプト ベース で、 デバ イ スのデザ イ ン ファイル (アーキテ ク チ ャ と ピ ン 配 置 がすべて 記 述 された 情 報 ) か ら 直 接 抽 出 さ れます。 この Preliminary と 記 された BSDL ファイルは 質 が 高 く、 その構 文 は 常 にテ ス ト さ れます。 Final と 記 さ れたフ ァ イ ルは、 構 文 およびハー ド ウ ェ ア 検 証 のテ ス ト をすべてパス し ています。 BSDL フ ァ イルが 各 ピ ンの 動 作 を 正 し く 記 述 する ために、 ザ イ リ ン ク スではサード パーテ ィ (Intellitech 社 ) のバウ ンダ リ スキャン ツールを 使 用 し、 BSDL ファイルに 対 して 実 際 のシ リ コンを 検 証 し ています。ザイ リンクスの BSDL ファイルは、 Intellitech 社 の 製 品 Eclipse の BSDL 構 文 チェ ッ ク (strict) を使 用 し て 1149.1 規 格 に 準 拠 しているかど うか 確 認 されます。 IEEE 1149.1b-1994 (BSDL 構 文 の 規格 ) に 記 述 されている 意 味 チェ ッ クはすべて strict 解 析 を 使 用 し て 実 行 さ れます。 意 味 チェ ッ ク が 終了 する と 、 各 I/O ピンに 対 するテス ト を 記 述 した BSDL ファイルからテスト パターンが 作 成 されます。 ザ イ リ ン ク スのデバイ ス と パ ッ ケージの 組 み 合 わせは、 Intellitech 社 の RCT (ReducedContact Tester) でテス ト されます。 このテス ト パターンには、Test-Logic-Reset と TAP コント ローラ の 動 作 、 BYPASS/IDCODE/USERCODE 命 令 と レ ジ ス タ、 すべての 入 力 / 出 力 / 双 方 向 / クロックピンとコン ト ロール セルに 対 するバウ ンダ リ レジスタのピン マ ッ プの 検 証 が 含 まれます。 最 後 に、デザイ ンをダ ウ ン ロー ド し、RCT テス タ を 使 用 し て コ ンフ ィ ギ ュ レーシ ョ ン 後 の 検 証 が 行 われ、デバイスがプログラムされる と、 各 デバイスが 1149.1 規 格 でテ ス ト さ れます。BSDL ファイルの 詳 細 は、 http://japan.xilinx.com/isp/bsdl/bsdl.htm を 参 照 して く ださい。520 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


ソフトウェア サポー トRBSDLAnno の 使 用コンフィギュレーションをしていない <strong>Spartan</strong>-3 ジェネレーション デバイ スでは、 で き るだけバウンダ リ スキャン テ ス ト を 実 行 する 必 要 があ り ます。 これは、コンフィギュレーショ ンされていないデバ イ スの 方 が 双 方 向 のス キ ャ ン ベクタに 対 してすべての I/O を 使 用 でき、 テス ト カバレ ッジが上 がる ためです。 コ ン フ ィ ギ ュ レーシ ョ ンが 中 断 で き ない 場 合 、 および 差 動 信 号 の 規 格 が 使 用 さ れてい る 場 合 、バウ ンダ リ スキャン テス トはコンフィギュレーション 後 に 実 行 してください。 差 動 信号 がザイ リ ン ク ス デバ イ ス 間 にあ る 場 合 は、 両 方 のデバイ ス と も コ ン フ ィ ギ ュ レーシ ョ ン 前 にテ ストできます。 差 動 ペアの 両 側 がシングルエン ド の 信 号 と し て 動 作 し ます。ザ イ リ ン ク スの 提 供 する BSDL ファイルには、コンフィギュレーションされる 前 のデバイスのバウンダ リ スキャン ビヘイ ビアが 記 述 さ れています。 コンフィギュレーション 後 は、このバウンダリ スキャン ビヘイビアは 変 わ り ます。 た と えば、コ ン フ ィ ギ ュ レーシ ョ ン 前 に 双 方 向 だった I/O ピンは、入 力 のみ、 出 力 のみ、 双 方 向 、 使 用 不 可 のいずれかに 変 わ る 可 能 性 があ り ます。 バウンダリ スキャン テス ト ベクタは 通 常 BSDL ファイルから 抽 出 されます。 このため、 コンフィギュレーショ ン 後のザイ リ ン ク ス デバイ スでバウ ンダ リ スキャン テ ス ト を 実 行 する 場 合 、 BSDL ファイルをコンフィギュレーション 後 のバウンダリ スキャン ビヘイ ビアに 合 わせて 変 更 する 必 要 があ り ます。バウンダ リ スキャン アーキテクチャはデバイスがコンフィギュレーシ ョ ンされる と 変 更 されます。これは、 バウンダリ スキャン レジスタが I/O バッファ とセンス 増 幅 器 の 後 ろに 配 置 されているためです。 こ の 配 置 に よ り 、 指 定 し た I/O 規 格 でバウ ンダ リ スキャン ロジックが 動 作 するよ うになり 、 使 用 可 能 な I/O 規 格 の 範 囲 でバウ ンダ リ スキャン テス ト を 行 う こ とができます。バウンダ リ スキャン レ ジ ス タ と パ ッ ド の 接 続 は 一 部 変 更 さ れる こ と があ る ため、 バウ ンダ リ スキャン アーキテ ク チ ャはデバイ ス のコ ン フ ィ ギ ュ レーシ ョ ン 後 に 変 更 さ れます。 コンフィギュレーション 後 の BSDL ファイルをバウンダリ スキャン テ ス タ に 読 み 込 んでか ら、 テ ス ト を 行 っ て く ださい。 バウンダ リ スキャン アーキテ ク チ ャ の 変 更 が BSDL ファイルに 反 映 されていないと、 バウンダ リ スキャン テスタは 正 し く 実 行 されません。ザイ リンクスの BSDLAnno ユーテ ィ リ テ ィ を 使 用 する と 、 コ ン フ ィ ギ ュ レーシ ョ ン 後 のテ ス ト 用に BSDL フ ァ イルが 自 動 的 に 変 更 されます。 BSDLAnno では、 配 線 済 み NCD ファイルから 必 要なデザイン 情 報 が 読 み 込 まれ、 コンフ ィ ギュレーシ ョ ン 後 のバウンダ リ スキャン アーキテ クチャに 合 わせた BSDL ファイルが 作 成 されます。次 の 構 文 を 使 用 する と 、 BSDLAnno でコ ン フ ィ ギュ レ ーショ ン 後 の BSDL フ ァ イ ルが 作 成 さ れます。bsdlanno [options] infile[.ncd] outfile[.bsd]infile は 配 線 済 み (PAR 後 ) の NCD デザイ ン ソ ース ファイルです。 outfile[.bsd] はそのデザインの BSDL ファイルの 出 力 ファイルです。 拡 張 子 .bsd はオプショ ンです。 推 奨 さ れる 出 力 フ ァイルへのユーザー 変 更 を 含 む BSDLanno の 詳 細 は、 『 開 発 シス テム リ フ ァ レ ン ス ガイ ド 』(http://japan.xilinx.com/support/software_manuals.htm) を 参 照 して ください。ソフトウェア サポー トザイ リ ンクスでは、デバイス フ ァ イ ルの 作 成 およびデバイ スのプ ロ グ ラ ム を 実 行 する ツールを 複 数提 供 し ています。 バウンダ リ スキャン テ ス ト 機 能 は、 複 数 のサー ド パーテ ィ ベンダか ら 入 手 可 能です。 詳 細 は、http://japan.xilinx.com/products/design_resources/config_sol/resource/isp_ate.htm を参 照 し て く だ さ い。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 521<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 21 章 : バウンダ リ スキャン と BSDL フ ァ イルの 使 用iMPACTiMPACT はザイ リ ン ク スの <strong>FPGA</strong>、 CPLD、 PROM すべての コ ン フ ィ ギ ュ レーシ ョ ンおよびプ ログラムを 行 う ソフトウェア ツールです。 ウ ィザードに 従 うだけで、コンフィギュレーション プロセスのステップを 簡 単 に 実 行 できます。 iMPACT では SVF を 含 む 多 く の 出 力 フ ァ イル タイプがサポー ト されています。 スレーブ シリアル、SelectMAP (スレーブ パラレル)、 JTAG IEEE 1149.1 の3 つのモー ド が 使 用 さ れ、 ザ イ リ ン ク ス <strong>FPGA</strong> が 簡 単 にコ ンフ ィ ギ ュ レーシ ョ ン されます。 サポートされるケーブルは、パラレル ケーブル IV とプラッ トフォーム ケーブル USB です。iMPACT には、 ケーブル 動 作 と JTAG チェーンの 安 定 性 の 両 方 をテス ト する 機 能 が 含 まれ、 ユーザー コード ロケーシ ョ ンへの 書 き 込 み、 およびリード バ ッ ク を 数 千 回 指 定 する こ と で、 チェーンの 動 作 をテス ト でき ます。 iMPACT ではこの 動 作 で 発 生 したエラーの 回 数 がカウン ト されるので、これを 基 に JTAG チェーンの 安 定 性 および ノ イ ズ 耐 性 、 ボー ド レ イ ア ウ ト などが 評 価 可 能 です。iMPACT の 詳 細 は、 http://japan.xilinx.com/support/software_manuals.htm の iMPACT ヘルプを 参照 してください。SVF ファイルSVF (Serial Vector Format) は JTAG チェーンの 動 作 を コ ンパ ク ト に 記 述 し た 業 界 標 準 のフ ァ イル形 式 です。 SVF フ ァ イルには、 既 にデバイ スのプログ ラ ム 情 報 がすべて 含 まれているため、 デバイスに 対 する 複 雑 な 知 識 は 必 要 あ り ません。 SVF フ ァ イルを 作 成 する 機 能 は、iMPACT に 含 まれています。 SVF ファイルの 詳 細 は、アプリケーション ノート XAPP503 『SVF and XSVF File Formatsfor <strong>Xilinx</strong> Devices』 を 参 照 し て く だ さ い。IEEE 1532 プログラム 用 J Drive Engineザ イ リ ン ク スは、 世 界 初 の IEEE 1532 プログラム エンジンである J Drive Engine を 開 発 し ま した。このエンジンと PC のパラ レル ポー ト に 接 続 さ れたシンプルなケーブルを 使 用 する と 、 IEEE 1532に 準 拠 し たザイ リ ン ク スの PLD を 簡 単 にコンフ ィ ギュレーシ ョ ンでき ます。 J Drive Engine にプログラムするデバイスのデータと 1532 の BSDL フ ァ イルを 読 み 込 み、 コ マン ド ラインで JTAGチェーンの PLD をコンフィギュレーションします。 詳 細 は、 http://japan.xilinx.com/products/design_resources/config_sol/ およびアプリ ケーシ ョ ン ノート XAPP500 『J Drive: In-SystemProgramming of IEEE Standard 1532 Devices』 を 参 照 し て く だ さ い。BSCAN_SPARTAN3A マクロの 使 用BSCAN_SPARTAN3A を 使 用 する と 、 <strong>Spartan</strong>-3A、 <strong>Spartan</strong>-3AN、 <strong>Spartan</strong>-3A DSP <strong>FPGA</strong> デバイスの BSCAN サイ トへアクセスができます ( 図 21-2 を 参 照 )。 <strong>Spartan</strong>-3 および <strong>Spartan</strong>-3E <strong>FPGA</strong>の 場 合 は、 BSCAN_SPARTAN3 が 使 用 されますが、 TCK と TMS ピンが 含 まれません。 このコンポーネン ト は 内 部 バウ ンダ リ スキャン チェーン を 作 成 する のに 暫 定 的 に 使 用 さ れます。 <strong>Spartan</strong>-3ジェネレーショ ン <strong>FPGA</strong> には、 4 つの JTAG 専 用 ピ ン (TDI、 TDO、 TCK、 TMS) が 含 まれます。これらの JTAG ピンをポートに 接 続 するだけで、 バウンダリ スキャン 用 に 標 準 的 な JTAG を 使 用できます。 BSCAN_SPARTAN3A シンボルのピンは、 内 部 スキャン チェーンを 駆 動 する 特 別 な 機能 が 必 要 な 場 合 にのみ 接 続 し ます。522 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


関 連 資 料 および リ フ ァ レ ンスRTDO1TDO2BSCAN_SPARTAN3ATCKTMSCAPTUREDRCK1DRCK2RESETSEL1SEL2SHIFTTDIUPDATE<strong>UG331</strong>_c22_02_082306図 21-2 : BSCAN_SPARTAN3A シンボル<strong>Spartan</strong>-3 ジェネレーショ ン <strong>FPGA</strong> には、USER1 と USER2 命 令 を 介 し てユーザーが 定 義 可 能 な 2本 のスキ ャ ン チェーンがあり ます。 こ れら の 命 令 を 使 用 する と 、 JTAG インターフェイスを 介 してデザイ ンへア ク セスでき ます。 このオプションの USER1 と USER2 命 令 を 使 用 する 場 合 は、 ソース コードで BSCAN_SPARTAN3A マ ク ロ を イ ン ス タ ンシエー ト し てユーザー 定 義 のス キ ャ ンチェーンに 接 続 する 必 要 があ り ます。 1 つのデザイ ンで 使 用 でき る BSCAN_SPARTAN3A コンポーネン ト は、 1 つのみです。BSCAN_SPARTAN3A は、 <strong>FPGA</strong> の JTAG ピ ンか ら 内 部 デバ イ ス ロ ジ ッ ク への 通 信 で、 通 常ChipScope Pro Analyzer などの IP と 共 に 使 用 されます。 IP と 共 に 使 用 さ れる 場 合 は、 通 常 IP の一 部 と し て イ ン ス タ ンシエー ト さ れる ので、 こ の コ ンポーネン ト が 正 し く 使 用 さ れてい る かを 確 認する 必 要 はあ り ません。 カスタム アクセスの 場 合 は、 BSCAN_SPARTAN3A をインスタンシエート し てか ら デザ イ ンに 接 続 すれば、 同 様 に <strong>FPGA</strong> の JTAG ピ ンか ら 内 部 デバ イ ス ロジックに 通 信できます。 必 要 なピ ンすべてを 内 部 ロ ジ ッ ク に 接 続 する 必 要 があ り ます。<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> でのバウンダ リ スキ ャ ンの 使 用 については、 『<strong>Spartan</strong>-3 Generation Configuration UserGuide』 (UG332) の 第 9 章 「JTAG Configuration Mode and Boundary-Scan」 を 参 照 し て く だ さ い。関 連 資 料 および リ フ ァ レ ンス• BSDL ファイルのダウンロードhttp://japan.xilinx.com/support/download/index.htm• ISP 規 格 および 仕 様http://japan.xilinx.com/products/design_resources/config_sol/isp_standards_specs.htm• ザイ リンクス ソフトウェア マニュアルおよびヘルプhttp://japan.xilinx.com/support/software_manuals.htm• バウンダ リ スキャンおよび JTAG のアプリ ケーシ ョ ン ノートhttp://japan.xilinx.com/support/documentation/boundary_scan_and_jtag.htm• 『<strong>Spartan</strong>-3 Generation Configuration User Guide』 (UG332)http://japan.xilinx.com/support/documentation/spartan-3a_user_guides.htm• ザイ リンクス データ シー トhttp://japan.xilinx.com/support/documentation/data_sheets.htm• Intellitech 社 のバウ ンダ リ スキャン ツールとチュー ト リ アルhttp://www.intellitech.com<strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイド japan.xilinx.com 523<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日


R第 21 章 : バウンダ リ スキャン と BSDL フ ァ イルの 使 用524 japan.xilinx.com <strong>Spartan</strong>-3 ジェネレーション <strong>FPGA</strong> ユーザー ガイ ド<strong>UG331</strong> (v1.4) 2008 年 6 月 25 日

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!