Comments
Transcript
Spartan-6 FPGA コンフィギャブル ロジック ブロック ユーザー ガイド
Spartan-6 FPGA コ ン フ ィ ギ ャ ブル ロジ ッ ク ブロ ッ ク Spartan-6 ユーザー ガFPGA イ ド CLB [optional] UG384 (v1.0) 2009 年 6 月 24 日 [optional] Xilinx is disclosing this user guide, manual, release note, and/or specification (the "Documentation") to you solely for use in the development of designs to operate with Xilinx hardware devices. You may not reproduce, distribute, republish, download, display, post, or transmit the Documentation in any form or by any means including, but not limited to, electronic, mechanical, photocopying, recording, or otherwise, without the prior written consent of Xilinx. Xilinx expressly disclaims any liability arising out of your use of the Documentation. Xilinx reserves the right, at its sole discretion, to change the Documentation without notice at any time. Xilinx assumes no obligation to correct any errors contained in the Documentation, or to advise you of any corrections or updates. Xilinx expressly disclaims any liability in connection with technical support or assistance that may be provided to you in connection with the Information. THE DOCUMENTATION IS DISCLOSED TO YOU “AS-IS” WITH NO WARRANTY OF ANY KIND. XILINX MAKES NO OTHER WARRANTIES, WHETHER EXPRESS, IMPLIED, OR STATUTORY, REGARDING THE DOCUMENTATION, INCLUDING ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR NONINFRINGEMENT OF THIRD-PARTY RIGHTS. IN NO EVENT WILL XILINX BE LIABLE FOR ANY CONSEQUENTIAL, INDIRECT, EXEMPLARY, SPECIAL, OR INCIDENTAL DAMAGES, INCLUDING ANY LOSS OF DATA OR LOST PROFITS, ARISING FROM YOUR USE OF THE DOCUMENTATION. © 2009 Xilinx, Inc. XILINX, the Xilinx logo, Virtex, Spartan, ISE, and other designated brands included herein are trademarks of Xilinx in the United States and other countries. All other trademarks are the property of their respective owners. 本資料は英語版 (v1.0) を翻訳 し た も ので、 内容に相違が生 じ る 場合には原文を優先 し ます。 資料に よ っ ては英語版の更新に対応 し ていない も のがあ り ます。 日本語版は参考用 と し て ご使用の上、 最新情報につ き ま し ては、 必ず最新英語版を ご参照 く だ さ い。 改訂履歴 次の表に、 こ の文書の改訂履歴を示 し ます。 日付 バージ ョ ン 2009 年 6 月 24 日 1.0 Spartan-6 FPGA コ ン フ ィ ギ ャ ブル ロ ジ ッ ク ブ ロ ッ ク ユーザー ガ イ ド 説明 初版 リ リ ース japan.xilinx.com UG384 (v1.0) 2009 年 6 月 24 日 目次 改訂履歴. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 このユーザー ガ イ ド について その他の資料 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 その他の リ ソ ース . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 Spartan-6 FPGA コ ン フ ィ ギ ャ ブル ロ ジ ッ ク ブ ロ ッ ク (CLB) CLB の概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 ス ラ イ ス の説明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8 CLB お よ びス ラ イ ス の タ イ ミ ン グ モデル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 ス ラ イ ス (LUT お よ びス ト レージ エ レ メ ン ト ) タ イ ミ ン グ モデル . . . . . . . . . . . . . . . . . . . . .34 ス ラ イ ス の分散 RAM の タ イ ミ ン グ モデル (SLICEM のみ) . . . . . . . . . . . . . . . . . . . . . . . . . .38 ス ラ イ ス のシ フ ト レ ジ ス タ の タ イ ミ ン グ モデル (SLICEM のみ) . . . . . . . . . . . . . . . . . . . . . .40 ス ラ イ ス キ ャ リ ーチ ェーンの タ イ ミ ン グ モデル (SLICEM お よ び SLICEL のみ) . . . . . . . .43 CLB プ リ ミ テ ィ ブ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 分散 RAM プ リ ミ テ ィ ブ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .44 シ フ ト レ ジ ス タ (SRL) プ リ ミ テ ィ ブ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .46 その他のシ フ ト レ ジ ス タ アプ リ ケーシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .48 マルチプ レ ク サのプ リ ミ テ ィ ブ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .49 キ ャ リ ー チ ェーン プ リ ミ テ ィ ブ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .49 Spartan-6 FPGA コ ン フ ィ ギ ャ ブル ロ ジ ッ ク ブ ロ ッ ク ユーザー ガ イ ド UG384 (v1.0) 2009 年 6 月 24 日 japan.xilinx.com 3 4 japan.xilinx.com Spartan-6 FPGA コ ン フ ィ ギ ャ ブル ロ ジ ッ ク ブ ロ ッ ク ユーザー ガ イ ド UG384 (v1.0) 2009 年 6 月 24 日 こ のユーザー ガ イ ド について こ のユーザー ガ イ ド は、Spartan®-6 FPGA コ ン フ ィ ギ ャ ブル ロ ジ ッ ク ブ ロ ッ ク (CLB) のテ ク ニ カ ル リ フ ァ レ ン ス です。 通常、ロ ジ ッ ク 合成 ソ フ ト ウ ェ アでは、シ ス テ ム設計者の介入な し に CLB リ ソ ース が割 り 当て ら れます。 ル ッ ク ア ッ プ テーブル (LUT) の多様な機能、キ ャ リ ー伝搬の物理的方 向、 使用可能な フ リ ッ プ フ ロ ッ プの数お よ び分布、 お よ び効率的なシ フ ト レ ジ ス タ の使用可能性な ど、一部の CLB の詳細を理解する こ と は設計者に と っ て有利にな る 可能性があ り ます。 こ のガ イ ド では、 こ れ ら の説明お よ び CLB のその他の機能について詳細に説明 し ます。 その他の資料 Spartan-6 フ ァ ミ リ に関する その他の情報は、 http://japan.xilinx.com/support/documentation/spartan6.htm か ら次を参照し て く だ さ い。 • 『Spartan-6 フ ァ ミ リ 概要』 Spartan-6 フ ァ ミ リ の機能 と デバ イ ス の概要を示 し ます。 • Spartan-6 デー タ シー ト : DC 特性お よ びス イ ッ チ特性』 Spartan-6 フ ァ ミ リ の DC 特性お よ びス イ ッ チ特性が記載 さ れてい ます。 • 『Spartan-6 FPGA パ ッ ケージお よ びピ ン配置の仕様』 デバ イ ス / ピ ンの組み合わせ と 最大 I/O 数、 ピ ン配置、 ピ ン配置図、 機械的図面、 熱仕様が記載 さ れてい ます。 • 『Spartan-6 FPGA コ ン フ ィ ギ ュ レーシ ョ ン ユーザー ガ イ ド 』 コ ン フ ィ ギ ュ レーシ ョ ン イ ン タ ーフ ェ イ ス ( シ リ アルお よ びパ ラ レル)、複数のビ ッ ト ス ト リ ー ムの管理、 ビ ッ ト ス ト リ ームの暗号化、 バ ウ ン ダ リ ス キ ャ ンお よ び JTAG コ ン フ ィ ギ ュ レー シ ョ ン、 リ コ ン フ ィ ギ ュ レーシ ョ ン手法な ど、 コ ン フ ィ ギ ュ レーシ ョ ンについて詳細に説明 し ます。 • 『Spartan-6 FPGA SelectIO リ ソ ース ユーザー ガ イ ド 』 すべての Spartan-6 デバ イ ス に含まれてい る SelectIO™ について説明 し ます。 • 『Spartan-6 FPGA ク ロ ッ ク リ ソ ース ユーザー ガ イ ド 』 DCM お よ び PLL を含め、 Spartan-6 デバ イ ス の ク ロ ッ ク リ ソ ース について説明 し ます。 • 『Spartan-6 FPGA ブ ロ ッ ク RAM リ ソ ース ユーザー ガ イ ド 』 Spartan-6 デバ イ ス のブ ロ ッ ク RAM の機能について説明 し ます。 • 『Spartan-6 FPGA GTP ト ラ ン シーバ ユーザー ガ イ ド 』 Spartan-6 LXT FPGA で使用可能な GTP ト ラ ン シーバについて説明 し ます。 Spartan-6 FPGA コ ン フ ィ ギ ャ ブル ロ ジ ッ ク ブ ロ ッ ク ユーザー ガ イ ド UG384 (v1.0) 2009 年 6 月 24 日 japan.xilinx.com 5 ヘ ッ ダ/ フ ッ タ 3 • 『Spartan-6 FPGA DSP48A1 ス ラ イ ス ユーザー ガ イ ド 』 Spartan-6 FPGA の DSP48A1 ス ラ イ ス のアーキテ ク チ ャ について説明 し 、 コ ン フ ィ ギ ュ レー シ ョ ン例を示 し ます。 • 『Spartan-6 FPGA メ モ リ コ ン ト ロ ー ラ ユーザー ガ イ ド 』 Spartan-6 FPGA の メ モ リ コ ン ト ロ ー ラ ブ ロ ッ ク について説明 し ます。メ モ リ コ ン ト ロ ー ラ ブ ロ ッ ク は、 Spartan-6 FPGA を よ く 使用 さ れ る メ モ リ 規格に接続す る 際の イ ン タ ーフ ェ イ ス を 簡略化す る エンベデ ッ ド マルチポー ト メ モ リ コ ン ト ロ ー ラ です。 • 『Spartan-6 FPGA PCB デザ イ ナーズ ガ イ ド 』 PCB お よ び イ ン タ ーフ ェ イ ス レベルでデザ イ ン を決定す る ための ス ト ラ テジに焦点を置い て、 Spartan-6 デバ イ ス の PCB デザ イ ンに関する 情報を示 し ます。 その他の リ ソ ース シ リ コ ンお よ び ソ フ ト ウ ェ アに関す る ア ンサー デー タ ベース を検索 し た り 、テ ク ニ カル サポー ト の ウ ェ ブケース を開 く 場合は、 次の Web サ イ ト にア ク セ ス し て く だ さ い。 http://japan.xilinx.com/support 6 japan.xilinx.com Spartan-6 FPGA コ ン フ ィ ギ ャ ブル ロ ジ ッ ク ブ ロ ッ ク ユーザー ガ イ ド UG384 (v1.0) 2009 年 6 月 24 日 Spartan-6 FPGA コ ン フ ィ ギ ャ ブル ロ ジ ッ ク ブ ロ ッ ク (CLB) CLB の概要 CLB ( コ ン フ ィ ギ ャ ブル ロ ジ ッ ク ブ ロ ッ ク ) は、 順次回路お よ び組み合わせ回路を イ ンプ リ メ ン ト す る 際の主要 ロ ジ ッ ク リ ソ ース です。 各 CLB エ レ メ ン ト は ス イ ッ チ マ ト リ ッ ク ス に接続 し て、 汎 用配線マ ト リ ッ ク ス にア ク セ ス し ます (図 1 を参照)。 1 つの CLB エ レ メ ン ト には、 2 つの ス ラ イ ス があ り ます。 こ の 2 つの ス ラ イ ス は、 直接相互接続 し てお ら ず、 各ス ラ イ ス は 1 つの列 と し て配置 さ れてい ます。 各 CLB 内の下位に配置 し てい る ス ラ イ ス を SLICE(0)、 上位に配置 し てい る ス ラ イ ス を SLICE(1) と し ます。 X-Ref Target - Figure 1 COUT CLB 䝇䝷䜲䝇㻌(1) 䝇䜲䝑䝏 䝬䝖䝸䝑䜽䝇 䝇䝷䜲䝇㻌(0) CIN ug384_01_042309 図 1 : CLB 内のス ラ イ ス配置 ザ イ リ ン ク ス ツールでは、 ス ラ イ ス は次の よ う に定義 さ れてい ます。 「X」 の後に続 く 数字は、 各ペ アでの ス ラ イ ス の位置お よ びス ラ イ ス の列位置を示 し ます。 こ の数字は、最初の CLB 列では ス ラ イ ス の下位か ら 0、 1 と 定義 し 、 2 番目の CLB 列の下位か ら 2、 3 な ど の よ う に定義 し ます。 「Y」 の 後に続 く 数字は、 ス ラ イ ス の行を示 し ます。 こ の数字は、 同 じ CLB 内では同一にな り 、 上部に位置 す る に従っ て CLB 内の ス ラ イ ス に定義 さ れ る 数が大 き く な り ます。図 2 に、ダ イ の左下に配置 さ れ た 4 つの CLB を示 し ます。 Spartan-6 FPGA コ ン フ ィ ギ ャ ブル ロ ジ ッ ク ブ ロ ッ ク ユーザー ガ イ ド UG384 (v1.0) 2009 年 6 月 24 日 japan.xilinx.com 7 X-Ref Target - Figure 2 COUT COUT CLB CLB SLICEX X1Y1 SLICEX X3Y1 䝇䝷䜲䝇 䝇䝷䜲䝇 X0Y1 X2Y1 CIN CIN COUT COUT CLB CLB SLICEX X1Y0 SLICEX X3Y0 䝇䝷䜲䝇 䝇䝷䜲䝇 X0Y0 X2Y0 ug384_02_042309 図 2 : CLB と ス ラ イ ス間における行 と 列の関係 ス ラ イ スの説明 各ス ラ イ ス には、 4 個の ロ ジ ッ ク フ ァ ン ク シ ョ ン ジ ェ ネ レー タ (ル ッ ク ア ッ プ テーブル (LUT)) お よ び 8 個の ス ト レージ エ レ メ ン ト があ り ます。 ス ラ イ ス では、 こ れ ら のエ レ メ ン ト を使用 し て ロ ジ ッ ク お よ び ROM 機能を提供 し ます。 SLICEL と 呼ばれ る ス ラ イ ス には、 ス ラ イ ス列で垂直方向 に連結可能な演算キ ャ リ ー構造お よ び多入力マルチプ レ ク サ も 含まれてい ます。 SLICEM には、 キ ャ リ ー構造、マルチプ レ ク サ、お よ び 64 ビ ッ ト 分散 RAM お よ び可変長シ フ ト レ ジ ス タ (最大 32 ビ ッ ト ) と し て使用す る LUT が含まれてい ます。 CLB の各列には 2 つの ス ラ イ ス列が含まれてい ます。 その う ちの 1 列は SLICEX 列で、 も う 1 列 は SLICEL ま たは SLICEM のいずれかです。つま り 、使用可能な ス ラ イ ス の約 50% は SLICEX、 残 り の 25% ずつが SLICEL お よ び SLICEM にな り ます。 XC6SLX4 デバ イ ス には SLICEL があ り ません (表 2 を参照)。 SLICEM のエ レ メ ン ト お よ び接続 図 3 に、SLICEL のエ レ メ ン ト お よ び接続を図 4 に、SLICEX の エ レ メ ン ト お よ び接続を図 5 に示 し ます。 8 個の SR、 CE、 CLK 入力すべてが共通の制御入力に よ り 駆動 さ れます。 8 japan.xilinx.com Spartan-6 FPGA コ ン フ ィ ギ ャ ブル ロ ジ ッ ク ブ ロ ッ ク ユーザー ガ イ ド UG384 (v1.0) 2009 年 6 月 24 日 X-Ref Target - Figure 3 COUT DI D6:D1 DI2 CLK WE A6:A1 O6 WA6:WA1 O5 LUT RAM ROM DI1 D D CE CK CARRY4 Q SRINIT0 SRINIT1 DPRAM64 DPRAM32 SPRAM64 SPRAM32 SRL16 SRL32 WA8 WA7 MC31 SR D5Q MC31 CY XOR O5 O6 MC31 CY XOR DX O5 O6 DX DMUX D CE CK Q FF LATCH AND2L OR2L SRINIT0 SRINIT1 SR DQ CI C6:C1 DI2 CLK WE O6 A6:A1 WA6:WA1 O5 LUT RAM DI1 ROM C D CE CK Q SRINIT0 SRINIT1 DPRAM64 DPRAM32 SPRAM64 SPRAM32 SRL16 SRL32 WA8 WA7 MC31 SR C5Q F7 CY XOR O5 O6 F7 CY XOR CX O5 O6 CX CLK CMUX D CE CK Q FF LATCH AND2L OR2L SRINIT0 SRINIT1 SR CQ WE CE SR BI B6:B1 DI2 CLK WE A6:A1 O6 WA6:WA1 O5 LUT RAM ROM B D CE CK DI1 Q SRINIT0 SRINIT1 DPRAM64 DPRAM32 SPRAM64 SPRAM32 SRL16 WA8 SRL32 WA7 MC31 SR B5Q F8 CY XOR O5 O6 F8 CY XOR BX O5 O6 BX BMUX D CE CK Q FF LATCH AND2L OR2L SRINIT0 SRINIT1 SR BQ AI A6:A1 DI2 CLK WE O6 A6:A1 WA6:WA1 O5 LUT RAM DI1 ROM A D CE CK Q SRINIT0 SRINIT1 DPRAM64 DPRAM32 SPRAM64 SPRAM32 SRL16 WA8 SRL32 WA7 MC31 SR A5Q F7 CY XOR O5 O6 F7 CY XOR AX O5 O6 AMUX D CE CK Q FF LATCH AND2L OR2L SRINIT0 SRINIT1 SR AQ 1 AX CIN ug384_03_042309 図 3 : SLICEM の図 Spartan-6 FPGA コ ン フ ィ ギ ャ ブル ロ ジ ッ ク ブ ロ ッ ク ユーザー ガ イ ド UG384 (v1.0) 2009 年 6 月 24 日 japan.xilinx.com 9 X-Ref Target - Figure 4 COUT D6:D1 A6:A1 D O6 O5 D CE CK CARRY4 Q D5Q SRINIT0 SRINIT1 SR CY XOR DX O5 O6 DX C6:C1 CY XOR O5 O6 A6:A1 DMUX D CE CK Q FF LATCH AND2L OR2L SRINIT0 SRINIT1 SR DQ C O6 O5 D CE CK Q SRINIT0 SRINIT1 SR C5Q F7 CY XOR O5 O6 F7 CY XOR CX O5 O6 CX CLK CMUX D CE CK Q FF LATCH AND2L OR2L SRINIT0 SRINIT1 SR CQ CE SR B B6:B1 A6:A1 O6 O5 D CE CK Q SRINIT0 SRINIT1 SR B5Q F8 CY XOR O5 O6 F8 CY XOR BX O5 O6 BX BMUX D CE CK Q FF LATCH AND2L OR2L SRINIT0 SRINIT1 SR BQ A A6:A1 A6:A1 O6 O5 D CE CK Q SRINIT0 SRINIT1 SR A5Q F7 CY XOR O5 O6 F7 CY XOR AX O5 O6 AMUX D CE CK Q FF LATCH AND2L OR2L SRINIT0 SRINIT1 SR AQ 1 AX CIN ug384_04_042309 図 4 : SLICEL の図 10 japan.xilinx.com Spartan-6 FPGA コ ン フ ィ ギ ャ ブル ロ ジ ッ ク ブ ロ ッ ク ユーザー ガ イ ド UG384 (v1.0) 2009 年 6 月 24 日 X-Ref Target - Figure 5 D6:D1 A6:A1 O6 O5 D D CE CK Q D5Q SRINIT0 SRINIT1 SR DMUX O5 O6 D CE CK DX DX O6 C6:C1 A6:A1 O6 O5 Q FF LATCH AND2L OR2L SRINIT0 SRINIT1 SR DQ C D CE CK Q SRINIT0 SRINIT1 C5Q CMUX O5 O6 SR CX CX CLK O6 D CE CK Q FF LATCH AND2L OR2L SRINIT0 SRINIT1 SR CQ CE SR B B6:B1 A6:A1 O6 O5 D CE CK Q B5Q SRINIT0 SRINIT1 SR BMUX O5 O6 D CE CK BX BX O6 Q FF LATCH AND2L OR2L SRINIT0 SRINIT1 SR BQ A A6:A1 A6:A1 O6 O5 D CE CK Q A5Q SRINIT0 SRINIT1 SR AMUX O5 O6 D CE CK AX O6 Q FF LATCH AND2L OR2L SRINIT0 SRINIT1 SR AQ AX ug384_05_121108 図 5 : SLICEX の図 Spartan-6 FPGA コ ン フ ィ ギ ャ ブル ロ ジ ッ ク ブ ロ ッ ク ユーザー ガ イ ド UG384 (v1.0) 2009 年 6 月 24 日 japan.xilinx.com 11 CLB およびス ラ イ スの コ ン フ ィ ギ ュ レーシ ョ ン 表 1 に 1 つの CLB に含まれ る ロ ジ ッ ク リ ソ ース を示 し ます。 各ス ラ イ ス ま たは CLB は、次のいず れかの コ ン フ ィ ギ ュ レーシ ョ ンに イ ンプ リ メ ン ト で き ます。 表 1 : 1 個の CLB に含まれる ロ ジ ッ ク リ ソ ース スラ イス LUT 2 8 フリ ップ 演算およびキ ャ リ ー チ ェ ーン (2) フ ロ ッ プ数 16 1 分散 RAM(1) シ フ ト レ ジ ス タ (1) 256 ビ ッ ト 128 ビ ッ ト メモ : 1. SLICEM にのみ該当し ます。 SLICEL および SLICEX には分散 RAM ま たはシ フ ト レ ジ ス タ はあ り ません。 2. SLICEM お よ び SLICEL のみに該当 し ます。 表 2 に Spartan-6 FPGA の使用可能な CLB リ ソ ース を表示 し ます。 6 入力 LUT 数 と ロ ジ ッ ク セル の比率は 1.6 です。 こ の比率は、従来の 4 入力 LUT に比べて新 し い 6 入力 LUT アーキ テ ク チ ャ で 機能が向上 し てい る こ と を反映 し てい ます。 表 2 : Spartan-6 FPGA ロ ジ ッ ク リ ソ ース ロジ ッ ク セル 合計 スラ イス 数 XC6SLX4 3,840 600 300 0 300 XC6SLX9 9,152 1,430 360 355 XC6SLX16 14,579 2,278 544 XC6SLX25 24,051 3,758 XC6SLX45 43,661 XC6SLX75 最大 分散 シフ ト レジス タ RAM (Kb) (Kb) 2,400 75 38 4,800 715 5,720 90 45 11,440 595 1,139 9,112 136 68 18,224 916 963 1,879 15,032 229 115 30,064 6,822 1,602 1,809 3,411 27,288 401 200 54,576 74,637 11,662 2,768 3,063 5,831 46,648 692 346 93,296 XC6SLX100 101,261 15,822 3,904 4,007 7,911 63,288 976 488 126,576 XC6SLX150 147,443 23,038 5,420 6,099 11,519 92,152 1,355 678 184,304 XC6SLX25T 24,051 3,758 916 963 1,879 15,032 229 115 30,064 XC6SLX45T 43,661 6,822 1,602 1,809 3,411 27,288 401 200 54,576 XC6SLX75T 74,637 11,662 2,768 3,063 5,831 46,648 692 346 93,296 XC6SLX100T 101,261 15,822 3,904 4,007 7,911 63,288 976 488 126,576 XC6SLX150T 147,443 23,038 5,420 6,099 11,519 92,152 1,355 678 184,304 デバイ ス SLICEM SLICEL SLICEX 6 入力 LUT 数 フリ ップ フ ロ ッ プ数 ル ッ ク ア ッ プ テーブル (LUT) Spartan-6 FPGA の フ ァ ン ク シ ョ ン ジ ェ ネ レー タ は、6 入力のル ッ ク ア ッ プ テーブル (LUT) と し て イ ンプ リ メ ン ト さ れてい ます。 各ス ラ イ ス (A、B、C、お よ び D) の 4 つの フ ァ ン ク シ ョ ン ジ ェ ネ レー タ には、6 つの独立 し た入力 (A 入力 : A1~A6) と 2 つの独立 し た出力 (O5 お よ び O6) があ り ます。 こ れ ら の フ ァ ン ク シ ョ ン ジ ェ ネ レー タ では、任意に定義 さ れた 6 入力のブール関数を イ ンプ リ メ ン ト で き ます。 ま た、 各フ ァ ン ク シ ョ ン ジ ェ ネ レー タ では、 2 つの任意に定義 さ れた 5 入力のブール 関数を イ ンプ リ メ ン ト で き ます ( こ の 2 つの フ ァ ン ク シ ョ ンが入力を共有 し てい る 場合のみ)。 6 入 力フ ァ ン ク シ ョ ンが イ ンプ リ メ ン ト さ れ る 場合は、 フ ァ ン ク シ ョ ン ジ ェ ネ レー タ の O6 出力のみが 12 japan.xilinx.com Spartan-6 FPGA コ ン フ ィ ギ ャ ブル ロ ジ ッ ク ブ ロ ッ ク ユーザー ガ イ ド UG384 (v1.0) 2009 年 6 月 24 日 使用 さ れます。 5 入力フ ァ ン ク シ ョ ン ジ ェ ネ レー タ の イ ンプ リ メ ン ト には、O5 お よ び O6 の両方が 使用 さ れます。 こ の場合、 A6 は High に駆動 さ れます。 LUT の伝搬遅延は、 イ ンプ リ メ ン ト さ れ る フ ァ ン ク シ ョ ン と は無関係であ り 、 1 個の 6 入力ジ ェ ネ レー タ ま たは 2 個の 5 入力ジ ェ ネ レー タ を イ ンプ リ メ ン ト し た場合で も 関係あ り ません。 ま た、フ ァ ン ク シ ョ ン ジ ェ ネ レー タ か ら の信号は、ス ラ イ ス (O6 の場合は A、B、C、お よ び D 出力か ら 、O5 の場合は、AMUX、BMUX、CMUX、DMUX 出力か ら ) か ら 出力で き 、 O6 出力か ら は XOR 専用ゲー ト ( 「高速ル ッ ク アヘ ッ ド キ ャ リ ー ロ ジ ッ ク 」を参照) へ、O5 出力か ら はキ ャ リ ー ロ ジ ッ ク チ ェ ーン (「高速ル ッ ク アヘ ッ ド キ ャ リ ー ロ ジ ッ ク 」 を参照) へ入力で き ます。 ま た、 O6 出力か ら はキ ャ リ ー ロ ジ ッ ク マルチプ レ ク サのセ レ ク ト ラ イ ン ( 「高速ル ッ ク アヘ ッ ド キ ャ リ ー ロ ジ ッ ク 」 を参照)、 記憶エ レ メ ン ト の D 入力、 ま たは F7AMUX/F7BMUX へ入力で き ます。 SLICEL お よ び SLICEM には、 基本的な LUT のほかに も 、 3 つのマルチプ レ ク サ (F7AMUX、 F7BMUX、 お よ び F8MUX) が含まれてい ます。 こ れ ら のマルチプ レ ク サを使用 し て、 1 つの ス ラ イ ス内で最大 4 個の フ ァ ン ク シ ョ ン ジ ェ ネ レー タ を組み合わせ、 7 入力ま たは 8 入力の フ ァ ン ク シ ョ ン を構成で き ます。 F7AMUX お よ び F7BMUX では ス ラ イ ス A と B ま たは C と D を使用 し て 7 入力のフ ァ ン ク シ ョ ン を構成で き 、 F8MUX ではすべての ス ラ イ ス を組み合わせて 8 入力フ ァ ン ク シ ョ ン を構成で き ます。 9 入力以上の フ ァ ン ク シ ョ ンは、複数の ス ラ イ ス を使用 し て イ ンプ リ メ ン ト で き ますが、 ス ラ イ ス間は直接接続がないため、 CLB 内ま たは ス ラ イ ス間で 8 入力以上の フ ァ ン ク シ ョ ン ジ ェ ネ レー タ は生成で き ません。 ス ト レージ エ レ メ ン ト 各ス ラ イ ス には、 8 個の ス ト レージ エ レ メ ン ト があ り ます。 1 つの ス ラ イ ス には 4 個の ス ト レージ エ レ メ ン ト があ り 、 エ ッ ジ ト リ ガ型 D タ イ プ フ リ ッ プ フ ロ ッ プ ま たはレベル セ ン シテ ィ ブ型 ラ ッ チ と し て コ ン フ ィ ギ ュ レーシ ョ ンで き ます。 D 入力は、 AFFMUX、 BFFMUX、 CFFMUX、 ま たは DFFMUX を通 る LUT 出力で直接駆動する か、 ま たは AX、 BX、 CX、 ま たは DX 入力か ら フ ァ ン ク シ ョ ン ジ ェ ネ レー タ をバ イ パ スす る BYPASS ス ラ イ ス入力で駆動で き ます。 ラ ッ チ と し て コ ン フ ィ ギ ュ レーシ ョ ンす る 場合、 ラ ッ チは CLK が Low の と き に透過にな り ます。 Spartan-6 デバ イ ス では、 さ ら にエ ッ ジ ト リ ガ型 D タ イ プ フ リ ッ プ フ ロ ッ プ と し てのみ コ ン フ ィ ギ ュ レーシ ョ ン可能な ス ト レージ エ レ メ ン ト が 4 個あ り ます。 D 入力は、LUT の O5 出力で駆動で き ます。 従来の 4 個の ス ト レージ エ レ メ ン ト が ラ ッ チ と し て コ ン フ ィ ギ ュ レーシ ョ ン さ れ る 場合、 こ れ ら の 4 個の ス ト レージ エ レ メ ン ト は使用で き ません。 1 つの ス ラ イ ス内の ス ト レージ エ レ メ ン ト 間では、 ク ロ ッ ク (CLK)、 ク ロ ッ ク イ ネーブル (CE)、お よ びセ ッ ト / リ セ ッ ト (SR) 制御信号が共有 さ れます。 ス ラ イ ス内の 1 つの フ リ ッ プ フ ロ ッ プで SR ま たは CE が イ ネーブルの と き 、 ス ラ イ ス で使用 さ れ る 残 り の フ リ ッ プ フ ロ ッ プで も 共有の信号に よ り SR ま たは CE が イ ネーブルにな り ます。 CLK 信号のみ独立 し た極性があ り ますが、 こ の極性 も 8 個すべての ス ト レージ エ レ メ ン ト に適用 さ れます。 ク ロ ッ ク 信号上に配置 さ れてい る イ ンバー タ は、すべて自動的に吸収 さ れます。 CE お よ び SR 信号は、ア ク テ ィ ブ High です。 すべての フ リ ッ プ フ ロ ッ プお よ び ラ ッ チ プ リ ミ テ ィ ブには、 CE 付 き ま たは CE な し の 2 種類があ り ます。 SR 信号は、 強制的に ス ト レージ エ レ メ ン ト を SRINIT1 属性ま たは SRINIT0 属性で指定 さ れた ス テー ト に し ます。 SR がアサー ト さ れ る と 、 SRINIT1 では ス ト レージ エ レ メ ン ト の出力の ロ ジ ッ ク レベルが強制的に High にな り 、 SRINIT0 では Low にな り ます (表 3 を参照)。 表 3 : SPINIT 属性を使用 し た と きの真理値表 Spartan-6 FPGA コ ン フ ィ ギ ャ ブル ロ ジ ッ ク ブ ロ ッ ク ユーザー ガ イ ド UG384 (v1.0) 2009 年 6 月 24 日 SR SRINIT フ ァンクシ ョ ン 0 SRINIT0 (デフ ォ ル ト ) ロ ジ ッ ク レベル変更な し 1 SRINIT0 (デフ ォ ル ト ) 0 japan.xilinx.com 13 表 3 : SPINIT 属性を使用 し た と きの真理値表 (続き ) SR SRINIT フ ァンクシ ョ ン 0 SRINIT1 ロ ジ ッ ク レベル変更な し 1 SRINIT1 1 図 6 に ス ラ イ ス で レ ジ ス タ のみを使用 し た コ ン フ ィ ギ ュ レーシ ョ ンお よ びレ ジ ス タ と ラ ッ チの両方 を使用 し た コ ン フ ィ ギ ュ レーシ ョ ン を示 し ます。 X-Ref Target - Figure 6 䝺䝆䝇䝍䛾䜏 䝺䝆䝇䝍䜎䛯䛿䝷䝑䝏 DFF LUT D O5 ฟຊ D CE CK LUT D O6 ฟຊ SRINIT1 SRINIT0 Q DQ D CE CK DX LUT C O6 ฟຊ SRINIT1 SRINIT0 Q D CE CK D CE CK DQ SR FF LATCH Q SRINIT1 SRINIT0 CQ SR 䝸䝉䝑䝖㻌䝍䜲䝥 䝸䝉䝑䝖㻌䝍䜲䝥 Sync Sync SRINIT1 SRINIT0 Q Async LUT B O6 ฟຊ D CE CK BX SR SRINIT1 Q SRINIT0 BFF/LATCH BQ AFF LUT A O5 ฟຊ D CE CK CX FF LATCH Q SRINIT1 SRINIT0 CFF/LATCH CQ SR BFF LUT B O5 ฟຊ D CE CK SR CFF LUT C O5 ฟຊ DFF/LATCH LUT A O6 ฟຊ AX BQ SR AFF/LATCH AQ SR FF LATCH Q SRINIT1 SRINIT0 Async D CE CK FF LATCH Q SRINIT1 SRINIT0 AQ SR ug384_06_042309 図 6 : ス ラ イ ス内の コ ン フ ィ ギ ュ レーシ ョ ン : レ ジ ス タ 4 個のみ (左側) およびレ ジス タ / ラ ッ チ 4 個 (右側) SRINIT0 お よ び SRINIT1 は ス ラ イ ス内の各ス ト レージ エ レ メ ン ト で個々に設定で き ます。 同期 (SYNC) ま たは非同期 (ASYNC) のセ ッ ト / リ セ ッ ト (SRTYPE) は、 個々に設定で き ません。 コ ン フ ィ ギ ュ レーシ ョ ン後の初期ス テー ト ま たはグ ロ ーバル初期ス テー ト は、 同 じ SRINIT 属性で 定義 さ れます。 レ ジ ス タ ま たは 4 個の ス ト レージ エ レ メ ン ト ( ラ ッ チ と し て機能) のセ ッ ト お よ び リ セ ッ ト の コ ン フ ィ ギ ュ レーシ ョ ン オプシ ョ ン を次に示 し ます。 14 japan.xilinx.com Spartan-6 FPGA コ ン フ ィ ギ ャ ブル ロ ジ ッ ク ブ ロ ッ ク ユーザー ガ イ ド UG384 (v1.0) 2009 年 6 月 24 日 • セッ ト/リ セッ ト なし • 同期セ ッ ト • 同期 リ セ ッ ト • 非同期セ ッ ト (プ リ セ ッ ト ) • 非同期 リ セ ッ ト ( ク リ ア ) 分散 RAM および メ モ リ (SLICEM のみ) SLICEM の 複数の LUT を さ ま ざ ま な方法で組み合わせる と 、格納で き る デー タ 容量を増やす こ と がで き ます。 SLICEM 内の フ ァ ン ク シ ョ ン ジ ェ ネ レー タ (LUT) は、 分散 RAM エ レ メ ン ト と し て イ ンプ リ メ ン ト で き ます。 RAM エ レ メ ン ト は SLICEM 内に コ ン フ ィ ギ ュ レーシ ョ ン し て、 表 4 に示す よ う に分 散 RAM を イ ンプ リ メ ン ト で き ます。 分散 RAM モジ ュ ールは、 同期 (書き 込み) お よ び非同期 (読み出 し ) リ ソ ース です。 ただ し 、 同期読 み出 し リ ソ ース は、同ス ラ イ ス内の ス ト レージ エ レ メ ン ト ま たはフ リ ッ プ フ ロ ッ プ を使用 し て イ ン プ リ メ ン ト で き ま す。 こ の よ う に フ リ ッ プ フ ロ ッ プ を 使用す る 場合には、 フ リ ッ プ フ ロ ッ プ の Clock-to-Out 遅延値が低減 さ れ る ため、分散 RAM のパフ ォーマ ン ス が向上 し ます。 ただ し 、ク ロ ッ ク レ イ テ ン シが追加 さ れます。 分散エ レ メ ン ト では、 同 じ ク ロ ッ ク 入力が共有 さ れます。 書 き 込み を実行す る 場合、 SLICEM の CE ま たは WE ピ ンで駆動 さ れ る 書 き 込み イ ネーブル (WE) 入力を High にす る 必要があ り ます。 表 4 に各分散 RAM の コ ン フ ィ ギ ュ レーシ ョ ンで使用する LUT (各ス ラ イ ス に 4 つ) 数を示 し ます。 表 4 : 分散 RAM コ ン フ ィ ギ ュ レーシ ョ ン RAM LUT 数 2Q(2) 4 ク ワ ッ ド ポー ト 32 X 2 ビ ッ ト RAM 32 X 6SDP(2) 4 シ ンプル デュ アル ポー ト 32 X 6 ビ ッ ト RAM 64 X 1S 1 シ ン グル ポー ト 64 X 1 ビ ッ ト RAM 64 X 1D 2 デ ュ アル ポー ト 64 X 1 ビ ッ ト RAM 4 ク ワ ッ ド ポー ト 64 X 1 ビ ッ ト RAM 64 X 3SDP(3) 4 シ ンプル デュ アル ポー ト 64 X 3 ビ ッ ト RAM 128 X 1S 2 シ ン グル ポー ト 128 X 1 ビ ッ ト RAM 128 X 1D 4 デ ュ アル ポー ト 128 X 1 ビ ッ ト RAM 256 X 1S 4 シ ン グル ポー ト 256 X 1 ビ ッ ト RAM 32 X 64 X 1Q(3) 説明 メモ : 1. S = シ ン グル ポー ト コ ン フ ィ ギ ュ レーシ ョ ン、 D = デ ュ アル ポー ト コ ン フ ィ ギ ュ レーシ ョ ン、 Q = ク ワ ッ ド ポー ト コ ン フ ィ ギ ュ レーシ ョ ン、 SDP = シ ンプル デ ュ アル ポー ト コ ン フ ィ ギ ュ レーシ ョ ン 2. こ の コ ン フ ィ ギ ュ レーシ ョ ンの関連プ リ ミ テ ィ ブは RAM32M です。 3. こ の コ ン フ ィ ギ ュ レーシ ョ ンの関連プ リ ミ テ ィ ブは RAM64M です。 シ ン グル ポー ト コ ン フ ィ ギ ュ レーシ ョ ンの場合、分散 RAM には、同期書 き 込み と 非同期読み出 し 用に共通ア ド レ ス ポー ト が 1 つあ り ます。 デュ アル ポー ト コ ン フ ィ ギ ュ レーシ ョ ン では、 分散 RAM に同期書 き 込みお よ び非同期読み出 し 用のア ド レ ス ポー ト が 1 つ、 非同期読み出 し 用のポー ト が 1 つあ り ます。 シ ンプル デュ アル ポー ト コ ン フ ィ ギ ュ レーシ ョ ン では、書 き 込みポー ト か ら の Spartan-6 FPGA コ ン フ ィ ギ ャ ブル ロ ジ ッ ク ブ ロ ッ ク ユーザー ガ イ ド UG384 (v1.0) 2009 年 6 月 24 日 japan.xilinx.com 15 デー タ 出力 (読み出 し ポー ト ) はあ り ません。 ク ワ ッ ド ポー ト コ ン フ ィ ギ ュ レーシ ョ ンの場合、分散 RAM に同期書 き 込みお よ び非同期読み出 し 用のア ド レ ス ポー ト が 1 つ、 非同期読み出 し 用のポー ト が 3 つあ り ます。 シ ン グル ポー ト モー ド では読み出 し ア ド レ ス と 書 き 込みア ド レ ス で同 じ ア ド レ ス バ ス が共有 さ れ、 デュ アル ポー ト モー ド では 1 つ目の フ ァ ン ク シ ョ ン ジ ェ ネ レー タ が共有の読み出 し お よ び書 き 込みポー ト ア ド レ ス に接続 さ れます。 2 つ目の フ ァ ン ク シ ョ ン ジ ェ ネ レー タ には、 読み出 し 専用 ポー ト ア ド レ ス に接続 さ れ る A 入力 と 1 つ目の読み出 し /書 き 込みポー ト ア ド レ ス と 共有する WA 入力があ り ます。 図 7 ~ 図 15 に、1 つの SLICEM を使用 し て コ ン フ ィ ギ ュ レーシ ョ ンす る 分散 RAM の例を示 し ま す。 x2 コ ン フ ィ ギ ュ レーシ ョ ン (RAM32X2Q) を使用す る 場合は、A6 お よ び WA6 を ソ フ ト ウ ェ ア で High に駆動 し て、 O5 と O6 を独立 さ せます。 X-Ref Target - Figure 7 RAM 32X2Q DID[1] DID[0] ADDRD[4:0] (DX) (AI/BI/CI/DI) D[5:1] 5 5 (CLK) (WE) WCLK WED DPRAM32 DI1 DI2 A[6:1] WA[6:1] CLK WE O6 DOD[0] O5 DOD[1] DPRAM32 ADDRC[4:0] C[5:1] 5 5 DI1 DI2 A[6:1] WA[6:1] CLK WE O6 DOC[0] O5 DOC[1] DPRAM32 ADDRB[4:0] B[5:1] 5 5 DI1 DI2 A[6:1] WA[6:1] CLK WE O6 DOB[0] O5 DOB[1] DPRAM32 ADDRA[4:0] A[5:1] 5 5 DI1 DI2 A[6:1] WA[6:1] CLK WE O6 DOA[0] O5 DOA[1] ug384_07_042309 図 7 : 分散 RAM (RAM32X2Q) 16 japan.xilinx.com Spartan-6 FPGA コ ン フ ィ ギ ャ ブル ロ ジ ッ ク ブ ロ ッ ク ユーザー ガ イ ド UG384 (v1.0) 2009 年 6 月 24 日 X-Ref Target - Figure 8 RAM 32X6SDP DPRAM32 unused unused WADDR[5:1] WADDR[6] = 1 D[5:1] 5 5 (CLK) (WE) WCLK WED DI1 DI2 A[6:1] WA[6:1] CLK WE DPRAM32 DATA[1] DATA[2] RADDR[5:1] RADDR[6] = 1 C[5:1] 5 5 DI1 DI2 A[6:1] WA[6:1] CLK WE O6 O[1] O5 O[2] DPRAM32 DATA[3] DATA[4] B[5:1] 5 5 DI1 DI2 A[6:1] WA[6:1] CLK WE O6 O[3] O5 O[4] DPRAM32 DATA[5] DATA[6] A[5:1] 5 5 DI1 DI2 A[6:1] WA[6:1] CLK WE O6 O[5] O5 O[6] ug384_08_042309 図 8 : 分散 RAM (RAM32X6SDP) Spartan-6 FPGA コ ン フ ィ ギ ャ ブル ロ ジ ッ ク ブ ロ ッ ク ユーザー ガ イ ド UG384 (v1.0) 2009 年 6 月 24 日 japan.xilinx.com 17 X-Ref Target - Figure 9 RAM64X1S D A[5:0] WCLK WE (DX) 6 (D[6:1]) 6 (CLK) (WE/CE) SPRAM64 O O6 DI1 ฟຊ D Q A[6:1] WA[6:1] CLK WE レジスタ 付きฟຊ (䜸䝥䝅䝵䞁) ug384_09_042309 図 9 : 分散 RAM (RAM64X1S) シ ン グル ポー ト 64 X 1 ビ ッ ト モジ ュ ールを 4 個構築す る 場合は、 4 個の RAM64X1S プ リ ミ テ ィ ブで SLICEM を 1 つ使用で き ます。 ただ し 、 こ れ ら のプ リ ミ テ ィ ブでは ク ロ ッ ク 、 書 き 込み イ ネー ブル、 読み出 し お よ び書 き 込みポー ト ア ド レ ス入力を共有する 必要があ り ます。 こ の コ ン フ ィ ギ ュ レーシ ョ ンは、 64 X 4 ビ ッ ト のシ ン グル ポー ト 分散 RAM と 同等です。 X-Ref Target - Figure 10 RAM64X1D D A[5:0] WCLK WE DPRAM64 (DX) O6 DI1 (D[6:1]) 6 6 (CLK) (WE/CE) D Q A[6:1] WA[6:1] CLK WE (C[6:1]) 6 6 䝺䝆䝇䝍 䛝ฟຊ (䜸䝥䝅䝵䞁) DPRAM64 DI1 DPRA[5:0] SPO O6 DPO D Q A[6:1] WA[6:1] CLK WE 䝺䝆䝇䝍 䛝ฟຊ (䜸䝥䝅䝵䞁) ug384_10_042309 図 10 : 分散 RAM (RAM64X1D) 2 個のデ ュ アル ポー ト 64 X 1 ビ ッ ト モジ ュ ールを構築す る には、 2 個の RAM64X1D プ リ ミ テ ィ ブで SLICEM を 1 つ使用で き ます。 ただ し 、 こ れ ら のプ リ ミ テ ィ ブでは ク ロ ッ ク 、 書 き 込み イ ネー ブル、 共有読み出 し お よ び書き 込みポー ト ア ド レ ス入力を共有する 必要があ り ます。 こ の コ ン フ ィ ギ ュ レーシ ョ ンは、 64 X 2 ビ ッ ト デ ュ アル ポー ト 分散 RAM と 同等です。 18 japan.xilinx.com Spartan-6 FPGA コ ン フ ィ ギ ャ ブル ロ ジ ッ ク ブ ロ ッ ク ユーザー ガ イ ド UG384 (v1.0) 2009 年 6 月 24 日 X-Ref Target - Figure 11 RAM64X1Q DID ADDRD WCLK WE (DX) (D[6:1]) (CLK) (WE) DPRAM64 O6 DI1 DOD A[6:1] WA[6:1] CLK WE D Q 䝺䝆䝇䝍 䛝ฟຊ (䜸䝥䝅䝵䞁) DPRAM64 DI1 ADDRC (C[6:1]) O6 A[6:1] WA[6:1] CLK WE D (B[6:1]) O6 D (A[6:1]) Q 䝺䝆䝇䝍 䛝ฟຊ (䜸䝥䝅䝵䞁) DPRAM64 ADDRA 䝺䝆䝇䝍 䛝ฟຊ DOB A[6:1] WA[6:1] CLK WE DI1 Q (䜸䝥䝅䝵䞁) DPRAM64 DI1 ADDRB DOC O6 DOA A[6:1] WA[6:1] CLK WE D Q 䝺䝆䝇䝍 䛝ฟຊ (䜸䝥䝅䝵䞁) ug384_11_042309 図 11 : 分散 RAM (RAM64X1Q) Spartan-6 FPGA コ ン フ ィ ギ ャ ブル ロ ジ ッ ク ブ ロ ッ ク ユーザー ガ イ ド UG384 (v1.0) 2009 年 6 月 24 日 japan.xilinx.com 19 X-Ref Target - Figure 12 RAM 64X3SDP DPRAM32 unused unused WADDR[6:1] D[6:1] 6 6 (CLK) (WE) WCLK WED DI1 DI2 A[6:1] WA[6:1] CLK WE DPRAM32 DATA[1] RADDR[6:1] C[6:1] 6 6 DI1 DI2 A[6:1] WA[6:1] CLK WE O6 O[1] O5 DPRAM32 DATA[2] B[6:1] 6 6 DI1 DI2 A[6:1] WA[6:1] CLK WE O6 O[2] O5 DPRAM32 DATA[3] A[6:1] 6 6 DI1 DI2 A[6:1] WA[6:1] CLK WE O6 O[3] O5 ug384_12_042309 図 12 : 分散 RAM (RAM64X3SDP) ワー ド 数 64 以上の分散 RAM コ ン フ ィ ギ ュ レーシ ョ ン を イ ンプ リ メ ン ト す る には、多入力マルチプ レ ク サ (F7AMUX、 F7BMUX、 お よ び F8MUX) を使用する 必要があ り ます。 20 japan.xilinx.com Spartan-6 FPGA コ ン フ ィ ギ ャ ブル ロ ジ ッ ク ブ ロ ッ ク ユーザー ガ イ ド UG384 (v1.0) 2009 年 6 月 24 日 X-Ref Target - Figure 13 RAM128X1S A6 (CX) D SPRAM64 (DX) O6 DI1 [5:0] A[6:0] WCLK WE 7 (CLK) (WE/CE) A[6:1] WA[7:1] CLK WE 0 SPRAM64 DI1 O6 F7BMUX D Q 䝺䝆䝇䝍 䛝ฟຊ (䜸䝥䝅䝵䞁) [5:0] 7 ฟຊ A[6:1] WA[7:1] CLK WE ug384_13_042309 図 13 : 分散 RAM (RAM128X1S) 2 個のシ ン グル ポー ト 128 X 1 ビ ッ ト モジ ュ ールを構築す る には、 RAM128X1S プ リ ミ テ ィ ブで SLICEM を 1 つ使用で き ます。ただ し 、 こ れ ら のプ リ ミ テ ィ ブでは ク ロ ッ ク 、書 き 込み イ ネーブル、 読み出 し お よ び書 き 込みポー ト ア ド レ ス入力を共有す る 必要があ り ます。 こ の コ ン フ ィ ギ ュ レー シ ョ ンは、 128 X 2 ビ ッ ト シ ン グル ポー ト 分散 RAM と 同等です。 Spartan-6 FPGA コ ン フ ィ ギ ャ ブル ロ ジ ッ ク ブ ロ ッ ク ユーザー ガ イ ド UG384 (v1.0) 2009 年 6 月 24 日 japan.xilinx.com 21 X-Ref Target - Figure 14 RAM128X1D A6 (CX) D DPRAM64 DX O6 DI1 6 A[6:0] 7 (CLK) (WE) WCLK WE A[6:1] WA[7:1] CLK WE SPO DPRAM64 D Q F7BMUX O6 DI1 䝺䝆䝇䝍 䛝ฟຊ (䜸䝥䝅䝵䞁) 6 7 A[6:1] WA[7:1] CLK WE DPRAM64 O6 DI1 6 DPRA[6:0] 7 A[6:1] WA[7:1] CLK WE DPO DPRAM64 DI1 D Q F7AMUX O6 (䜸䝥䝅䝵䞁) 6 7 䝺䝆䝇䝍 䛝ฟຊ A[6:1] WA[7:1] CLK WE AX ug384_14_042309 図 14 : 分散 RAM (RAM128X1D) 22 japan.xilinx.com Spartan-6 FPGA コ ン フ ィ ギ ャ ブル ロ ジ ッ ク ブ ロ ッ ク ユーザー ガ イ ド UG384 (v1.0) 2009 年 6 月 24 日 X-Ref Target - Figure 15 RAM256X1S SPRAM64 D 6 A[7:0] WCLK WE O6 DI1 8 (CLK) (WE/CE) A[6:1] WA[8:1] CLK WE A6 (CX) SPRAM64 6 8 F7BMUX O6 DI1 A[6:1] WA[8:1] CLK WE A7 (BX) O F8MUX SPRAM64 O6 DI1 6 8 A[6:1] WA[8:1] CLK WE 6 8 D Q 䝺䝆䝇䝍 䛝ฟຊ (䜸䝥䝅䝵䞁) A6 (AX) SPRAM64 DI1 ฟຊ F7AMUX O6 A[6:1] WA[8:1] CLK WE ug384_15_042309 図 15 : 分散 RAM (RAM256X1S) 図 7 ~ 図 15 に示 し た例 よ り も 大 き い分散 RAM コ ン フ ィ ギ ュ レーシ ョ ンが必要な場合は、 SLICEM が 2 個以上必要ですが、 CLB 内ま たは ス ラ イ ス間は直接接続がないため、こ れ以上大規模 な分散 RAM コ ン フ ィ ギ ュ レーシ ョ ンは構築で き ません。 分散 RAM のデー タ フ ロー 同期書き込み 同期書 き 込みは、 ア ク テ ィ ブ High の書 き 込み イ ネーブル (WE) を使用 し てシ ン グル ク ロ ッ ク エ ッ ジで実行 さ れます。 WE が High の と き 、 入力 (D) がア ド レ ス A の メ モ リ ロ ケーシ ョ ンへ読み込ま れます。 Spartan-6 FPGA コ ン フ ィ ギ ャ ブル ロ ジ ッ ク ブ ロ ッ ク ユーザー ガ イ ド UG384 (v1.0) 2009 年 6 月 24 日 japan.xilinx.com 23 非同期読み出 し 出力は、 ア ド レ ス A ( シン グル ポー ト モー ド 出力ま たはデュ アル ポー ト モー ド の SPO 出力の場合) ま たはア ド レ ス DPRA (デ ュ アル ポー ト モー ド の DPO 出力の場合) で決定 さ れます。 新 し いア ド レ ス がア ド レ ス ピ ンに読み込まれ る と 、LUT にア ク セ スす る 時間分遅れて、 メ モ リ 位置のデー タ 値 が出力に現れます。 こ の動作は ク ロ ッ ク 信号 と は関係な く 非同期で実行 さ れます。 分散 RAM のま と め • SLICEM にはシ ン グル ポー ト モー ド と デ ュ アル ポー ト モー ド があ る • 書 き 込み操作には、 ク ロ ッ ク エ ッ ジが 1 つ必要 • 読み出 し 操作は非同期に行われ る (Q 出力) • デー タ 入力は、 setup-to-clock タ イ ミ ン グ仕様に従っ てい る ROM (読み出 し 専用 メ モ リ ) 各フ ァ ン ク シ ョ ン ジ ェ ネ レー タ では 64 X 1 ビ ッ ト ROM を イ ンプ リ メ ン ト で き 、 ROM 64 X 1、 ROM 128 X 1、お よ び ROM 256 X 1 の 3 つの コ ン フ ィ ギ ュ レーシ ョ ン を構成で き ます。 ま た、ROM の内容はデバ イ ス の コ ン フ ィ ギ ュ レーシ ョ ン時に読み込まれます。 表 5 にそれぞれの ROM コ ン フ ィ ギ ュ レーシ ョ ンで使用 さ れ る LUT 数を示 し ます。 表 5 : ROM コ ン フ ィ ギ ュ レーシ ョ ン ROM LUT 数 64 X 1 1 128 X 1 2 256 X 1 4 シ フ ト レ ジ ス タ (SLICEM のみ) SLICEM フ ァ ン ク シ ョ ン ジ ェ ネ レー タ は、 ス ラ イ ス内のフ リ ッ プ フ ロ ッ プ を使用せずに、 32 ビ ッ ト シ フ ト レ ジ ス タ と し て も コ ン フ ィ ギ ュ レーシ ョ ンで き ます。 シ フ ト レ ジ ス タ と し て使用 し た場 合、 各 LUT でシ リ アル デー タ を 1 ~ 32 ク ロ ッ ク サ イ ク ル遅延 さ せる こ と がで き ます。 シ フ ト イ ン D (DI1 LUT ピ ン ) お よ びシ フ ト ア ウ ト Q31 (MC31 LUT ピ ン ) ラ イ ンは、 LUT を カ ス ケー ド 接 続 し て よ り 大規模なシ フ ト レ ジ ス タ を構築 し ます。 し たが っ て、 1 つの SLICEM にあ る 4 つの LUT を カ ス ケー ド 接続す る と 、最大 128 ク ロ ッ ク サ イ ク ルの遅延を生成で き ます。複数の SLICEM のシ フ ト レ ジ ス タ を組み合わせ る こ と も で き ますが、 ス ラ イ ス間には直接接続がな く 、LUT B/C/D に MC31 出力がないため、こ れ よ り 長いシ フ ト レ ジ ス タ は構成で き ません。 生成 さ れたプ ロ グ ラ マ ブル遅延を使用 し て、 デー タ パ イ プ ラ イ ンの タ イ ミ ン グのバ ラ ン ス を取 る こ と が可能です。 こ の よ う なシ フ ト レ ジ ス タ を使用す る と 、遅延やレ イ テ ン シ補正を必要 と す る アプ リ ケーシ ョ ン を 効果的にデザ イ ンで き ます。 シ フ ト レ ジ ス タ は、 同期 FIFO お よ び CAM (Content Addressable Memory) デザ イ ンで も 有用です。 書 き 込み操作は、 ク ロ ッ ク (CLK) 入力お よ びオプシ ョ ンの ク ロ ッ ク イ ネーブル と 同期 し て実行 さ れます。 ダ イ ナ ミ ッ ク 読み出 し は、5 ビ ッ ト ア ド レ ス バス A[4:0] を使用 し て実行 さ れます。 LUT の LSB は未使用にな り 、 ソ フ ト ウ ェ アに よ っ て自動的に High に駆動 さ れます。 こ の コ ン フ ィ ギ ュ レーシ ョ ン可能シ フ ト レ ジ ス タ は、 セ ッ ト / リ セ ッ ト で き ません。 読み出 し は非同期ですが、 同期読 み出 し を イ ンプ リ メ ン ト す る には、 ス ト レージ エ レ メ ン ト ま たはフ リ ッ プ フ ロ ッ プ を使用で き ま す。 こ の場合、 フ リ ッ プ フ ロ ッ プの clock-to-out に よ り 全体の遅延が決定 さ れパフ ォーマ ン ス が改 善 さ れますが、 ク ロ ッ ク レ イ テ ン シが 1 ク ロ ッ ク サ イ ク ル分追加 さ れます。 5 ビ ッ ト ア ド レ ス を変 24 japan.xilinx.com Spartan-6 FPGA コ ン フ ィ ギ ャ ブル ロ ジ ッ ク ブ ロ ッ ク ユーザー ガ イ ド UG384 (v1.0) 2009 年 6 月 24 日 更す る と 、32 ビ ッ ト の任意の ビ ッ ト を O6 LUT 出力に非同期で読み出す こ と がで き ます。 こ の方法 は、32 ビ ッ ト 未満の小規模シ フ ト レ ジ ス タ を構築する 際に役立ち ます。 た と えば、13 ビ ッ ト のシ フ ト レ ジ ス タ を構築す る 場合は、13 番目のビ ッ ト にア ド レ ス を指定 し ます。 図 16 に 32 ビ ッ ト のシ フ ト レ ジ ス タ のブ ロ ッ ク 図を示 し ます。 X-Ref Target - Figure 16 SRLC32E SHIFTIN (㻝㻌䛴๓䛾㻌㻸㼁㼀㻌䛾㻌㻹㻯㻟㻝㻌䛛䜙ධຊ) SRL32 (AX) SHIFTIN (D) DI1 MC31 5 (A[6:2]) A[4:0] (CLK) (WE/CE) CLK CE SHIFTOUT (Q31) A[6:2] CLK CE ฟຊ㻌(Q) O6 (AQ) D Q 䝺䝆䝇䝍 䛝ฟຊ (䜸䝥䝅䝵䞁) ug384_16_042309 図 16 : 32 ビ ッ ト シ フ ト レ ジ ス タ の コ ン フ ィ ギ ュ レーシ ョ ン 図 17 に フ ァ ン ク シ ョ ン ジ ェ ネ レー タ 1 つを使用 し た シ フ ト レ ジ ス タ コ ン フ ィ ギ ュ レーシ ョ ンの 例を示 し ます。 X-Ref Target - Figure 17 32 䝡䝑䝖㻌䝅䝣䝖㻌䝺䝆䝇䝍 SHIFTIN (D) WE SHIFTOUT(Q31) CLK 䜰䝗䝺䝇㻌(A[4:0]) 5 MUX Q ug384_17_042309 図 17 : シ フ ト レ ジ ス タ コ ン フ ィ ギ ュ レーシ ョ ン 図 18 に、 2 個の 16 ビ ッ ト シ フ ト レ ジ ス タ を示 し ます。 こ の例は、 1 つの LUT に イ ンプ リ メ ン ト 可能です。 Spartan-6 FPGA コ ン フ ィ ギ ャ ブル ロ ジ ッ ク ブ ロ ッ ク ユーザー ガ イ ド UG384 (v1.0) 2009 年 6 月 24 日 japan.xilinx.com 25 X-Ref Target - Figure 18 SRL16 SHIFTIN1 (AX) O5 DI1 4 A[3:0] CLK A[5:2] CLK WE CE SRL16 O6 DI2 SHIFTIN2 (AI) 4 A[5:2] CLK WE MC31 ug384_18_042309 図 18 : 2 個の 16 ビ ッ ト シ フ ト レ ジ ス タ コ ン フ ィ ギ ュ レーシ ョ ン 前述の と お り 、 出力 (MC31) を 1 つ追加 し てシ フ ト レ ジ ス タ 間に専用配線を使用す る と 、 LUT O6 出力を使用せずに、 その レ ジ ス タ の最終ビ ッ ト を次の レ ジ ス タ の最初のビ ッ ト に接続で き ます。 長 いシ フ ト レ ジ ス タ を作成す る 場合は、チ ェーン内の ど のビ ッ ト へ も ダ イ ナ ミ ッ ク にア ク セ ス で き る よ う に構築で き ます。 シ フ ト レ ジ ス タ のチ ェーン接続、 そ し て F7AMUX、 F7BMUX、 お よ び F8MUX マルチプ レ ク サを使用す る と 、1 つの SLICEM で最大 128 ビ ッ ト のア ド レ ス指定可能なシ フ ト レ ジ ス タ を イ ンプ リ メ ン ト で き ます。図 19 ~ 図 21 に、 1 つの SLICEM を使用 し たシ フ ト レ ジ ス タ の コ ン フ ィ ギ ュ レーシ ョ ン例を示 し ます。 X-Ref Target - Figure 19 SRL32 SHIFTIN (D) 5 A[5:0] CLK WE O6 DI1 A[6:2] MC31 (CLK) (WE/CE) A5 (AX) CLK WE ฟຊ㻌(Q) SRL32 DI1 F7AMUX D Q (AQ) O6 䝺䝆䝇䝍 䛝ฟຊ (䜸䝥䝅䝵䞁) 5 A[6:2] CLK WE MC31 (MC31) SHIFTOUT (Q63) ug384_19_042309 図 19 : 64 ビ ッ ト シ フ ト レ ジ ス タ の コ ン フ ィ ギ ュ レーシ ョ ン 26 japan.xilinx.com Spartan-6 FPGA コ ン フ ィ ギ ャ ブル ロ ジ ッ ク ブ ロ ッ ク ユーザー ガ イ ド UG384 (v1.0) 2009 年 6 月 24 日 X-Ref Target - Figure 20 CX (A5) SRL32 SHIFTIN (D) 5 A[6:0] CLK WE O6 DI1 A[6:2] F7BMUX MC31 (CLK) (WE/CE) CLK WE BX (A6) (BMUX) F8MUX D Q (BQ) 䝺䝆䝇䝍 䛝ฟຊ (䜸䝥䝅䝵䞁) SRL32 O6 DI1 5 ฟຊ㻌(Q) A[6:2] MC31 CLK WE AX (A5) SRL32 DI1 O6 ᮍ⏝ F7AMUX 5 A[6:2] CLK WE UG384_20_042309 図 20 : 96 ビ ッ ト シ フ ト レ ジ ス タ の コ ン フ ィ ギ ュ レーシ ョ ン Spartan-6 FPGA コ ン フ ィ ギ ャ ブル ロ ジ ッ ク ブ ロ ッ ク ユーザー ガ イ ド UG384 (v1.0) 2009 年 6 月 24 日 japan.xilinx.com 27 X-Ref Target - Figure 21 SRL32 SHIFTIN (D) A[6:0] CLK WE O6 DI1 5 (CLK) (WE/CE) A[6:2] MC31 CX (A5) CLK WE SRL32 F7BMUX O6 DI1 A[6:2] BX (A6) MC31 CLK WE (BMUX) F8MUX D Q SRL32 (BQ) ฟຊ㻌(Q) 䝺䝆䝇䝍 䛝ฟຊ (䜸䝥䝅䝵䞁) O6 DI1 A[6:2] MC31 AX (A5) CLK WE SRL32 O6 DI1 A[6:2] MC31 CLK WE F7AMUX (MC31) SHIFTOUT (Q127) ug384_21_042309 図 21 : 128 ビ ッ ト シ フ ト レ ジ ス タ の コ ン フ ィ ギ ュ レーシ ョ ン 2 個以上の SLICEM を使用する と 128 ビ ッ ト よ り 長いシ フ ト レ ジ ス タ を構築で き ますが、 ス ラ イ ス間は直接接続がないため、 こ れ よ り 長いシ フ ト レ ジ ス タ は構築で き ません。 シ フ ト レ ジ ス タ のデー タ フ ロー シ フ ト 操作 シ フ ト は、ア ク テ ィ ブ High の ク ロ ッ ク イ ネーブルを使用 し てシ ン グル ク ロ ッ ク エ ッ ジで実行 さ れ ます。 イ ネーブル信号が High の と き 、 入力 (D) がシ フ ト レ ジ ス タ の最初のビ ッ ト に読み込まれま す。 そ し て各ビ ッ ト も 次の高位ビ ッ ト にシ フ ト し ます。 カ ス ケー ド 接続可能なシ フ ト レ ジ ス タ の コ ン フ ィ ギ ュ レーシ ョ ンでは、 最後のビ ッ ト が M31 出力にシ フ ト ア ウ ト さ れます。 5 ビ ッ ト ア ド レ ス ポー ト (A[4:0]) で選択 さ れた ビ ッ ト は、 Q 出力に現れます。 28 japan.xilinx.com Spartan-6 FPGA コ ン フ ィ ギ ャ ブル ロ ジ ッ ク ブ ロ ッ ク ユーザー ガ イ ド UG384 (v1.0) 2009 年 6 月 24 日 ダ イ ナ ミ ッ ク読み出 し 操作 Q 出力の値は、5 ビ ッ ト のア ド レ ス入力に よ り 決定 し ます。 新 し いア ド レ ス が 5 ビ ッ ト の入力ア ド レ ス ピ ンに読み込まれ る と 、LUT にア ク セ スす る 時間分遅れて、Q 出力に こ の新 し い値が出力 さ れま す。 こ の操作は非同期で、 ク ロ ッ ク 信号お よ び ク ロ ッ ク イ ネーブル信号 と は関係な く 行われます。 ス タ テ ィ ッ ク読み出 し 操作 5 ビ ッ ト ア ド レ ス入力が固定 さ れてい る 場合、 Q 出力は常に同 じ ア ド レ ス の値にな り ます。 こ の モー ド では、1 つの LUT に 1 ~ 16 ビ ッ ト のシ フ ト レ ジ ス タ を イ ンプ リ メ ン ト し ます。 シ フ ト レ ジ ス タ 長は (N+1) です (N は、 0~31 の入力ア ド レ ス )。 Q 出力は、 シ フ ト 操作 と 同期 し て変化 し ます。 ビ ッ ト が次の位置にシ フ ト し 、 Q に出力 さ れます。 シ フ ト レ ジ ス タ のま と め • シ フ ト 操作には ク ロ ッ ク エ ッ ジが 1 つ必要 • ダ イ ナ ミ ッ ク 読み出 し は非同期に行われ る (Q 出力) • ス タ テ ィ ッ ク 読み出 し は同期に行われ る (Q 出力) • デー タ 入力は、 setup-to-clock タ イ ミ ン グ仕様に従っ てい る • カ ス ケー ド 接続可能な コ ン フ ィ ギ ュ レーシ ョ ン では、常に Q31 出力に最後のビ ッ ト 値が含まれ てい る • Q31 出力はシ フ ト 動作後に同期 し て変化す る マルチ プ レ ク サ SLICEL ま たは SLICEM フ ァ ン ク シ ョ ン ジ ェ ネ レー タ お よ びマルチプ レ ク サは、 次を イ ンプ リ メ ン ト で き ます。 • LUT を 1 つ使用す る 4:1 マルチプ レ ク サ • LUT を 2 つ使用す る 8:1 マルチプ レ ク サ • LUT を 4 つ使用す る 16:1 マルチプ レ ク サ こ れ ら の多入力マルチプ レ ク サは、 専用の F7AMUX、 F7BMUX、 お よ び F8MUX を使用 し て、 1 レベルま たは ロ ジ ッ ク (LUT) に イ ンプ リ メ ン ト さ れます。 こ の よ う なマルチプ レ ク サは、 1 つの ス ラ イ ス で最大 4 個の LUT を組み合わせる こ と がで き ます。 大型マルチ プ レ ク サの設計 4:1 マルチ プ レ ク サ すべての LUT は、 4:1 マルチプ レ ク サに コ ン フ ィ ギ ュ レーシ ョ ンで き ます。 こ の 4:1 マルチプ レ ク サは、同 じ ス ラ イ ス内の フ リ ッ プ フ ロ ッ プ を 1 つ使用 し て イ ンプ リ メ ン ト で き ます。 1 つの ス ラ イ ス 内に最大 4 個の 4:1 マルチプ レ ク サ を イ ンプ リ メ ン ト で き ます (図 22 を参照)。 Spartan-6 FPGA コ ン フ ィ ギ ャ ブル ロ ジ ッ ク ブ ロ ッ ク ユーザー ガ イ ド UG384 (v1.0) 2009 年 6 月 24 日 japan.xilinx.com 29 X-Ref Target - Figure 22 䝇䝷䜲䝇 LUT (D) O6 SEL D [1:0]䚸DATA D [3:0] ධຊ (D[6:1]) 6 D Q A[6:1] (DQ) (C) O6 SEL C [1:0]䚸DATA C [3:0] ධຊ D Q A[6:1] (CQ) (B) O6 SEL B [1:0]䚸DATA B [3:0] ධຊ D Q A[6:1] (BQ) (A) O6 (A[6:1]) 6 A[6:1] (CLK) CLK 䝺䝆䝇䝍 䛝ฟຊ 4:1 MUX ฟຊ 䝺䝆䝇䝍 䛝ฟຊ (䜸䝥䝅䝵䞁) LUT SEL A [1:0]䚸DATA A [3:0] ධຊ 4:1 MUX ฟຊ (䜸䝥䝅䝵䞁) LUT (B[6:1]) 6 䝺䝆䝇䝍 䛝ฟຊ (䜸䝥䝅䝵䞁) LUT (C[6:1]) 6 4:1 MUX ฟຊ D Q (AQ) 4:1 MUX ฟຊ 䝺䝆䝇䝍 䛝ฟຊ (䜸䝥䝅䝵䞁) ug384_22_042309 図 22 : 1 つのス ラ イ スに含まれる 4 個の 4:1 マルチ プ レ クサ 8:1 マルチ プ レ ク サ 各 SLICEL ま たは SLICEM には、F7AMUX と F7BMUX が 1 つずつあ り ます。 こ の 2 つのマルチ プ レ ク サでは、2 つの LUT の出力を組み合わせて最大 13 入力の組み合わせフ ァ ン ク シ ョ ン (8:1 マ ルチプ レ ク サ) を構築 し ます。 1 つの ス ラ イ ス内には最大 2 個の 8:1 マルチプ レ ク サを イ ンプ リ メ ン ト で き ます (図 23 を参照)。 30 japan.xilinx.com Spartan-6 FPGA コ ン フ ィ ギ ャ ブル ロ ジ ッ ク ブ ロ ッ ク ユーザー ガ イ ド UG384 (v1.0) 2009 年 6 月 24 日 X-Ref Target - Figure 23 䝇䝷䜲䝇 LUT O6 SEL D [1:0]䚸DATA D [3:0] ධຊ(1) (D[6:1]) 6 A[6:1] F7BMUX (CMUX) LUT O6 SEL C [1:0]䚸DATA C [3:0] ධຊ(1) SELF7(1) CLK (C[6:1]) 6 D Q (CQ) 8:1 MUX ฟຊ㻌(1) 䝺䝆䝇䝍 䛝ฟຊ A[6:1] (䜸䝥䝅䝵䞁) (CX) (CLK) LUT O6 SEL B [1:0]䚸DATA B [3:0] ධຊ(2) (B[6:1]) 6 A[6:1] F7AMUX (AMUX) LUT O6 SEL A [1:0]䚸DATA A [3:0] ධຊ(2) SELF7(2) (A[6:1]) 6 D Q (AQ) 8:1 MUX ฟຊ㻌(2) 䝺䝆䝇䝍 䛝ฟຊ A[6:1] (䜸䝥䝅䝵䞁) (AX) ug384_23_042309 図 23 : 1 ス ラ イ スに含まれる 2 個の 8:1 マルチ プ レ クサ 16:1 マルチ プ レ ク サ 各 SLICEL ま たは SLICEM には F8MUX があ り ます。 こ の F8MUX は、F7AMUX と F7BMUX の 出力を組み合わせて、最大 27 入力 ( ま たは 16:1 マルチプ レ ク サ) の組み合わせフ ァ ン ク シ ョ ン を構 築 し ます。 1 つの ス ラ イ ス には 16:1 マルチプ レ ク サ 1 つのみを イ ン プ リ メ ン ト で き ます (図 24 を 参照)。 Spartan-6 FPGA コ ン フ ィ ギ ャ ブル ロ ジ ッ ク ブ ロ ッ ク ユーザー ガ イ ド UG384 (v1.0) 2009 年 6 月 24 日 japan.xilinx.com 31 X-Ref Target - Figure 24 䝇䝷䜲䝇 LUT O6 SEL D [1:0]䚸DATA D [3:0] ධຊ (D[6:1]) 6 F7BMUX A[6:1] LUT O6 SEL C [1:0]䚸DATA C [3:0] ධຊ SELF7 (C[6:1]) 6 A[6:1] F8MUX (CX) (BMUX) LUT O6 SEL B [1:0]䚸DATA B [3:0] ධຊ (B[6:1]) 6 F7AMUX A[6:1] (B) D Q 16:1 MUX ฟຊ 䝺䝆䝇䝍 䛝ฟຊ (䜸䝥䝅䝵䞁) LUT O6 SEL A [1:0]䚸DATA A [3:0] ධຊ SELF7 SELF8 CLK (A[6:1]) 6 A[6:1] (AX) (BX) (CLK) ug384_24_042309 図 24 : 1 つのス ラ イ スに含まれる 1 つの 16:1 マルチ プ レ ク サ 複数の SLICEM を使用する と 16:1 よ り 大規模なマルチプ レ ク サを構築で き ますが、 ス ラ イ ス間は 直接接続がないため、 こ れ よ り 長いマルチプ レ ク サは構築で き ません。 高速ル ッ ク アヘ ッ ド キ ャ リ ー ロ ジ ッ ク SLICEM お よ び SLICEL には、 フ ァ ン ク シ ョ ン ジ ェ ネ レー タ のほか、 高速加算/減算を実行す る た めに、ス ラ イ ス に専用キ ャ リ ー ロ ジ ッ ク が含まれてい ます (SLICEX には含まれません )。 CLB には キ ャ リ ー チ ェーンが 1 つあ り ます (図 1 を参照)。 こ のキ ャ リ ー チ ェーンはカ ス ケー ド 接続が可能 なため、 大規模な加算/減算 ロ ジ ッ ク を構築で き ます (図 2 を参照)。 Spartan-6 デバ イ ス のキ ャ リ ー チ ェーン では上方向に演算が実行 さ れ、 各ス ラ イ ス の高 さ は 4 ビ ッ ト です。 各ビ ッ ト には、 キ ャ リ ー マルチプ レ ク サ (MUXCY) と 専用 XOR ゲー ト が 1 つずつあ り 、 選択 さ れた キ ャ リ ー ビ ッ ト を使用 し てオペ ラ ン ド を加算/減算 し ます。 専用キ ャ リ ー パ スお よ び キ ャ リ ー マルチプ レ ク サ (MUXCY) を使用 し て、 フ ァ ン ク シ ョ ン ジ ェ ネ レー タ を カ ス ケー ド 接続 し 、 多入力 ロ ジ ッ ク フ ァ ン ク シ ョ ン を イ ンプ リ メ ン ト す る こ と も で き ます。 図 25 に、 1 つの ス ラ イ ス の関連 ロ ジ ッ ク エ レ メ ン ト を使用 し た キ ャ リ ー チ ェーン を示 し ます。 32 japan.xilinx.com Spartan-6 FPGA コ ン フ ィ ギ ャ ブル ロ ジ ッ ク ブ ロ ッ ク ユーザー ガ イ ド UG384 (v1.0) 2009 年 6 月 24 日 X-Ref Target - Figure 25 COUT (ḟ䛾䝇䝷䜲䝇䛻ฟຊ) 䜻䝱䝸䞊㻌䝏䜵䞊䞁㻌䝤䝻䝑䜽 (CARRY4) CO3 㻸㼁㼀㻰㻌䛾㻌㻻㻢㻌ฟຊ S3 DMUX/DQ* MUXCY O3 㻸㼁㼀㻰㻌䛾㻌㻻㻡㻌ฟຊ DMUX DI3 D Q DX DQ (䜸䝥䝅䝵䞁) CO2 㻸㼁㼀㻯㻌䛾㻌㻻㻢㻌ฟຊ S2 CMUX/CQ* MUXCY O2 㻸㼁㼀㻯㻌䛾㻌㻻㻡㻌ฟຊ CMUX DI2 D Q CX CQ (䜸䝥䝅䝵䞁) CO1 㻸㼁㼀㻮㻌䛾㻌㻻㻢㻌ฟຊ S1 BMUX/BQ* MUXCY O1 㻸㼁㼀㻮㻌䛾㻌㻻㻡㻌ฟຊ BMUX DI1 D Q BX BQ (䜸䝥䝅䝵䞁) CO0 㻸㼁㼀㻭㻌䛾㻌㻻㻢㻌ฟຊ S0 AMUX/AQ* MUXCY O0 㻸㼁㼀㻭㻌䛾㻌㻻㻡㻌ฟຊ AMUX DI0 D Q AX CYINIT CIN 01 AQ (䜸䝥䝅䝵䞁) * 䝺䝆䝇䝍䛺䛧䜎䛯䛿䝺䝆䝇䝍䛝䛾 ฟຊ䛜⏝ྍ⬟䛺ሙྜ䛻⏝ྍ⬟ CIN (㻝㻌䛴๓䛾䝇䝷䜲䝇䛛䜙䛾ධຊ) ug384_25_042309 図 25 : 高速キ ャ リ ー ロ ジ ッ ク パスおよび関連エ レ メ ン ト キ ャ リ ー チ ェーンは、 フ ァ ン ク シ ョ ン ジ ェ ネ レー タ と 共にル ッ ク アヘ ッ ド ロ ジ ッ ク が含まれてい ます。 独立 し た入力が 10 個 (S 入力 S0~S3、 DI 入力 DI1~DI4、 CYININT お よ び CIN) と 独立 し た出力が 8 個 (O 出力 O0~O3 お よ び CO 出力 CO0~CO3) あ り ます。 S 入力は、キ ャ リ ー ル ッ ク アヘ ッ ド ロ ジ ッ ク の伝搬信号に使用 さ れます。 伝搬信号は、フ ァ ン ク シ ョ ン ジ ェ ネ レー タ の O6 出力か ら 入力 さ れます。 DI 入力は、 キ ャ リ ー ル ッ ク アヘ ッ ド ロ ジ ッ ク の生 成信号に使用 さ れます。 生成信号は、 フ ァ ン ク シ ョ ン ジ ェ ネ レー タ の O5 出力ま たは ス ラ イ ス の BYPASS 入力 (AX、 BX、 CX、お よ び DX) か ら 入力 さ れます。 S 入力は乗算器を構築す る ために使 用 さ れますが、 DI 入力は加算器/累算器を構築する ために使用 さ れます。 CYINIT は、 キ ャ リ ー チ ェーンの最初のビ ッ ト の CIN ( キ ャ リ ー入力) です。 CYINIT 値は、 加算の場合は 0、 減算の場合 は 1、 ま たはダ イ ナ ミ ッ ク 高速キ ャ リ ー ビ ッ ト の場合は AX 入力です。 CIN 入力を使用 し て ス ラ イ ス を カ ス ケー ド 接続 し 、 よ り 長いキ ャ リ ー チ ェ ーン を構築 し ます。 O 出力には、 加算/減算の和が含 Spartan-6 FPGA コ ン フ ィ ギ ャ ブル ロ ジ ッ ク ブ ロ ッ ク ユーザー ガ イ ド UG384 (v1.0) 2009 年 6 月 24 日 japan.xilinx.com 33 まれ、CO 出力では各ビ ッ ト のキ ャ リ ー ア ウ ト が計算 さ れます。 CO3 が ス ラ イ ス の COUT 出力に接 続 さ れて、 複数ス ラ イ ス を カ ス ケー ド 接続す る こ と に よ っ て、 よ り 長いキ ャ リ ー チ ェーンが構築 さ れます。 加算器の伝搬遅延は、 カ ス ケー ド 接続 さ れ る キ ャ リ ー チ ェ ーン数が増え る ほ ど、 オペ ラ ン ド のビ ッ ト 数に相対 し て増加 し ます。 キ ャ リ ー チ ェ ーンは、同 じ ス ラ イ ス内の ス ト レージ エ レ メ ン ト ま たはフ リ ッ プ フ ロ ッ プ を使用 し て イ ンプ リ メ ン ト で き ます。 CLB およびス ラ イ スの タ イ ミ ング モデル Spartan-6 FPGA はサ イ ズが大 き く 、 かつ複雑なデバ イ ス であ る ため、 多様なパ スお よ びフ ァ ン ク シ ョ ン エ レ メ ン ト の タ イ ミ ン グ を理解す る こ と は困難かつ重要な課題です。 ザ イ リ ン ク ス ソ フ ト ウ ェ ア を使用 し てデザ イ ン を イ ンプ リ メ ン ト す る 場合は、 さ ま ざ ま な タ イ ミ ン グ パ ラ メ ー タ をすべ て理解す る 必要はあ り ませんが、 ク リ テ ィ カル パ ス の分析や高速デザ イ ン を目指す上級設計者に と っ ては、 タ イ ミ ン グ モデルの理解が役立ち ます。 次に示す タ イ ミ ン グ モデルでは、 次の 3 つのセ ク シ ョ ンが含まれてい ます。 • フ ァ ン ク シ ョ ン エ レ メ ン ト 図 : ピ ン と 接続を示 し た基本的な アーキ テ ク チ ャ の回路図 • タ イ ミ ン グ パ ラ メ ー タ : 『Spartan-6 FPGA デー タ シー ト 』 に記載 さ れてい る タ イ ミ ン グ パ ラ メ ー タ の定義 • タ イ ミ ン グ図 : 各フ ァ ン ク シ ョ ン エ レ メ ン ト の タ イ ミ ン グ パ ラ メ ー タ の相互関係 こ こ に記載す る タ イ ミ ン グ モデルを使用す る 場合は、ザ イ リ ン ク ス Timing Analyzer ソ フ ト ウ ェ ア (TRCE) お よ び 『Spartan-6 FPGA デー タ シー ト 』 の ス イ ッ チ特性の章 も 併せて参照 し て く だ さ い。 ピ ン名、パ ラ メ ー タ 名、お よ びパ スはすべて、配線前お よ び配線後の ス タ テ ィ ッ ク タ イ ミ ン グ レ ポー ト の表記 と 一致 し ます。 本章では、 ス イ ッ チ特性の章に記載 さ れてい る ほ と ん ど の タ イ ミ ン グ パ ラ メ ー タ について説明 し てい ます。 『Spartan-6 FPGA デー タ シー ト 』 に記載 さ れてい る すべての タ イ ミ ン グ パ ラ メ ー タ は、 ス ラ イ スお よ び CLB と 関連 し てい ます。 こ こ で説明す る 次のセ ク シ ョ ンは、 『Spartan-6 FPGA デー タ シー ト 』 の ス イ ッ チ特性の章 と 同 じ 内容です。 • ス ラ イ ス (LUT お よ びス ト レージ エ レ メ ン ト ) タ イ ミ ン グ モデル • ス ラ イ ス の分散 RAM の タ イ ミ ン グ モデル (SLICEM のみ) • ス ラ イ ス のシ フ ト レ ジ ス タ の タ イ ミ ン グ モデル (SLICEM のみ) • ス ラ イ ス キ ャ リ ーチ ェーンの タ イ ミ ン グ モデル (SLICEM お よ び SLICEL のみ) ス ラ イ ス (LUT およびス ト レージ エ レ メ ン ト ) タ イ ミ ング モデル 図 26 に Spartan-6 FPGA のス ラ イ スの簡略図を示し ます。 ス ラ イ スのエレ メ ン ト の一部は省略 さ れて お り 、 こ のセ ク シ ョ ンで説明さ れてい る タ イ ミ ン グ パスに関連し たエレ メ ン ト のみ記載し ています。 34 japan.xilinx.com Spartan-6 FPGA コ ン フ ィ ギ ャ ブル ロ ジ ッ ク ブ ロ ッ ク ユーザー ガ イ ド UG384 (v1.0) 2009 年 6 月 24 日 X-Ref Target - Figure 26 LUT D Inputs 6 O6 D O5 DMUX FF/LAT D CE CLK DX Q D 6 DQ SR CE CK LUT C Inputs Q SR F7BMUX O6 C CMUX O5 FF/LAT CX Q D F8MUX 6 Q CQ SR CE CK SR LUT B Inputs D CE CLK O6 B O5 BMUX FF/LAT BX Q D LUT A Inputs 6 F7AMUX D CE CLK Q BQ SR CE CK SR O6 A O5 AMUX AX Q D FF/LAT CE CK SR CE D CE CLK Q AQ SR CLK SR ug384_26_042309 図 26 : Spartan-6 FPGA のス ラ イ スの簡略図 Spartan-6 FPGA コ ン フ ィ ギ ャ ブル ロ ジ ッ ク ブ ロ ッ ク ユーザー ガ イ ド UG384 (v1.0) 2009 年 6 月 24 日 japan.xilinx.com 35 タ イ ミ ン グ パラ メ ー タ 表 6 に図 26 に示 さ れてい る 主なパ ス に関連す る 一般的な ス ラ イ ス の タ イ ミ ン グ パ ラ メ ー タ を示 し ます。 表 6 : ス ラ イ ス (LUT およびス ト レージ エ レ メ ン ト ) の タ イ ミ ング パラ メ ー タ パラ メ ー タ フ ァンクシ ョ ン 説明 組み合わせ遅延 TILO(1) A/B/C/D 入力か ら A/B/C/D 出力 ス ラ イ ス の A/B/C/D 入力か ら ル ッ ク ア ッ プ テーブル (LUT) を 通 り ス ラ イ ス の A/B/C/D 出力に出力 さ れ る ま での伝搬遅延 (6 入力 フ ァ ン ク シ ョ ン ) TILO_2 A/B/C/D 入力か ら AMUX/CMUX 出力 ス ラ イ ス の A/B/C/D 入力か ら LUT と F7AMUX/F7BMUX を通 り 、 AMUX/CMUX 出力に出力 さ れ る ま での伝搬遅延 (7 入力 フ ァ ン ク シ ョ ン ) TILO_3 A/B/C/D 入力か ら BMUX 出力 ス ラ イ ス の A/B/C/D 入力か ら LUT、 F7AMUX/F7BMUX、 お よ び F8MUX を通 り 、 BMUX 出力に出力 さ れ る ま での伝搬遅延 (8 入力 フ ァ ン ク シ ョ ン ) FF ク ロ ッ ク (CLK) か ら AQ/BQ/CQ/DQ 出力 ク ロ ッ ク 後に フ リ ッ プ フ ロ ッ プ と し て コ ン フ ィ ギ ュ レ ーシ ョ ン さ れてい る ス ラ イ ス シーケ ン シ ャ ル エ レ メ ン ト の AQ/BQ/CQ/ DQ 出力でデー タ が安定 し なければいけない時間 シーケ ン シ ャル遅延 TCKO フ リ ッ プ フ ロ ッ プ/ ラ ッ チ エレ メ ン ト TCKO フ リ ッ プ フ ロ ッ プ エ レ メ ン ト のみ TCKLO FF ク ロ ッ ク (CLK) か ら AQ/BQ/CQ/DQ 出力 CQ/DQ 出力でデー タ が安定 し なければいけない時間 ク ロ ッ ク 後に ス ラ イ ス シーケ ン シ ャ ル エ レ メ ン ト の AQ/BQ/ ラ ッ チ ク ロ ッ ク (CLK) か ら AQ/BQ/CQ/DQ 出力 ク ロ ッ ク 後に ラ ッ チ と し て コ ン フ ィ ギ ュ レ ーシ ョ ン さ れて い る ス ラ イ ス シーケ ン シ ャ ル エ レ メ ン ト の AQ/BQ/CQ/DQ 出力で デー タ が安定 し なければいけない時間 ス ラ イ ス シーケ ン シ ャル エ レ メ ン ト のセ ッ ト ア ッ プおよびホール ド タ イ ム(2) TDICK/TCKDI フ リ ッ プ フ ロ ッ プ/ ラ ッ チ エ レ メ ン ト AX/BX/CX/DX 入力 ク ロ ッ ク の前 / 後にフ リ ッ プ フ ロ ッ プ と し て コ ン フ ィ ギ ュ レー シ ョ ン さ れてい る ス ラ イ ス シーケ ン シ ャ ル エ レ メ ン ト の D 入力 で ス ラ イ ス の AX/BX/CX/DX 入力か ら のデー タ が安定 し なけれ ばいけない時間 TDICK/TCKDI フ リ ッ プ AX/BX/CX/DX 入力 ク ロ ッ ク の前/後に ス ラ イ ス シーケ ン シ ャ ル エ レ メ ン ト の D 入 力で ス ラ イ ス の AX/BX/CX/DX 入力か ら のデー タ が安定 し なけ ればいけない時間 TDICK/TCKCE フ リ ッ プ フ ロ ッ プ/ ラ ッ チ エレ メ ン ト CE 入力 ク ロ ッ ク の前 / 後にフ リ ッ プ フ ロ ッ プ と し て コ ン フ ィ ギ ュ レー シ ョ ン さ れ る ス ラ イ ス シーケ ン シ ャ ル エ レ メ ン ト の CE 入力で ス ラ イ ス の CE 入力が安定 し なければいけない時間 TDICK/TCKCE フ リ ッ プ CE 入力 ク ロ ッ ク の前/後に ス ラ イ ス シーケ ン シ ャ ル エ レ メ ン ト の CE 入 力で ス ラ イ ス の CE 入力が安定 し なければいけない時間 フ ロ ッ プ エ レ メ ン ト のみ フ ロ ッ プ エ レ メ ン ト のみ 36 japan.xilinx.com Spartan-6 FPGA コ ン フ ィ ギ ャ ブル ロ ジ ッ ク ブ ロ ッ ク ユーザー ガ イ ド UG384 (v1.0) 2009 年 6 月 24 日 表 6 : ス ラ イ ス (LUT およびス ト レージ エ レ メ ン ト ) の タ イ ミ ング パラ メ ー タ (続き ) パラ メ ー タ フ ァンクシ ョ ン 説明 TSRCK/TCKSR フ リ ッ プ フ ロ ッ プ/ ラ ッ チ エレ メ ン ト SR 入力 ク ロ ッ ク の前 / 後にフ リ ッ プ フ ロ ッ プ と し て コ ン フ ィ ギ ュ レー シ ョ ン さ れてい る ス ラ イ ス シーケ ン シ ャ ル エ レ メ ン ト の SR ( セ ッ ト / リ セ ッ ト ) 入力で ス ラ イ ス の SR 入力が安定 し なければ いけない時間 TSRCK/TCKSR フ リ ッ プ SR 入力 ク ロ ッ ク の前/後に ス ラ イ ス シーケ ン シ ャ ル エ レ メ ン ト の SR ( セ ッ ト / リ セ ッ ト ) 入力で ス ラ イ ス の SR 入力が安定 し なければ フ ロ ッ プ エ レ メ ン ト のみ いけない時間 セ ッ ト /リ セ ッ ト TRPW SR ( セ ッ ト / リ セ ッ ト ) の最小パルス幅 TRQ ス ラ イ ス シーケ ン シ ャ ル エ レ メ ン ト の非同期セ ッ ト / リ セ ッ ト の 伝搬遅延。 SR 入力か ら AQ/BQ/CQ/DQ 出力 FTOG ト グル周波数 : CLB フ リ ッ プ フ ロ ッ プに ク ロ ッ ク を供給で き る 最大周波数 = 1 / (TCH + TCL). メモ : 1. こ のパ ラ メ ー タ は、 2 個の 5 入力フ ァ ン ク シ ョ ン と し て コ ン フ ィ ギ ュ レーシ ョ ン さ れた LUT を含みます。 2. TXXCK = セ ッ ト ア ッ プ タ イ ム ( ク ロ ッ ク エ ッ ジの前)、 TCKXX = ホール ド タ イ ム ( ク ロ ッ ク エ ッ ジの後) タ イ ミ ン グ特性 図 27 に、 Spartan-6 FPGA の ス ラ イ ス の一般的な タ イ ミ ン グ特性を示 し ます。 X-Ref Target - Figure 27 1 2 3 CLK TCEO CE AX/BX/CX/DX (DATA) TDICK TSRCK SR (RESET) TCKO TCKO AQ/BQ/CQ/DQ (OUT) ug384_27_042309 図 27 : 一般的なス ラ イ スの タ イ ミ ング特性 • ク ロ ッ ク イ ベン ト (1) よ り も TCEO 時間前に ク ロ ッ ク イ ネーブル信号が ス ラ イ ス レ ジ ス タ の CE 入力が有効 (High) にな り ます。 • ク ロ ッ ク イ ベン ト (1) よ り も TDICK 時間前に AX、 BX、 CX、 ま たは DX 入力のいずれかか ら のデー タ が ス ラ イ ス レ ジ ス タ の D 入力で有効 (High) にな り ます。 こ のデー タ は、 ク ロ ッ ク イ ベン ト (1) の後の TCKO 時間に AQ、 BQ、 CQ、 ま たは DQ ピ ンに出力 さ れます。 • ク ロ ッ ク イ ベン ト (3) よ り も TSRCK 時間前に同期 リ セ ッ ト と し て コ ン フ ィ ギ ュ レーシ ョ ン さ れた SR 信号が有効 (High) にな り 、 ス ラ イ ス レ ジ ス タ が リ セ ッ ト さ れます。 こ れは、 ク ロ ッ ク イ ベン ト (3) の後の TCKO 時間に AQ、 BQ、 CQ、 ま たは DQ ピ ンに反映 さ れます。 Spartan-6 FPGA コ ン フ ィ ギ ャ ブル ロ ジ ッ ク ブ ロ ッ ク ユーザー ガ イ ド UG384 (v1.0) 2009 年 6 月 24 日 japan.xilinx.com 37 ス ラ イ スの分散 RAM の タ イ ミ ング モデル (SLICEM のみ) 図 28 に、 Spartan-6 FPGA ス ラ イ ス に イ ンプ リ メ ン ト さ れてい る 分散 RAM の詳細を示 し ます。 ス ラ イ ス のエ レ メ ン ト の一部は省略 さ れてお り 、 こ のセ ク シ ョ ンで説明 さ れてい る タ イ ミ ン グ パ ス に 関連 し たエ レ メ ン ト のみが記載 さ れてい ます。 X-Ref Target - Figure 28 RAM DX DI D input DI1 DI2 A[6:0] WA[6:0] CLK WE 6 CLK WE O6 D O5 DMUX O6 C O5 CMUX O6 B O5 BMUX O6 A O5 AMUX RAM CX CI C input DI1 DI2 A[6:0] WA[6:0] CLK WE 6 RAM BX BI B input DI1 DI2 A[6:0] WA[6:0] CLK WE 6 RAM AX AI A input DI1 DI2 A[6:0] WA[6:0] CLK WE 6 ug384_29_042309 図 28 : Spartan-6 FPGA の SLICEM に含まれる分散 RAM の簡略図 分散 RAM の タ イ ミ ン グ パラ メ ー タ 表 7 に、図 28 に示 し た主なパス に関連する SLICEM に含まれ る 分散 RAM の タ イ ミ ン グ パ ラ メ ー タ を示 し ます。 表 7 : 分散 RAM の タ イ ミ ング パ ラ メ ー タ パラ メ ー タ フ ァンクシ ョ ン 説明 RAM (分散 RAM) と し て コ ン フ ィ ギ ュ レーシ ョ ン さ れたス ラ イ ス LUT のシーケ ン シ ャル遅延 TSHCKO(1) 38 CLK か ら A/B/C/D 出力 書 き 込み操作の ク ロ ッ ク 後に分散 RAM に書 き 込まれたデー タ が ス ラ イ ス の A/B/C/D 出力で安定 し なければいけない時間 japan.xilinx.com Spartan-6 FPGA コ ン フ ィ ギ ャ ブル ロ ジ ッ ク ブ ロ ッ ク ユーザー ガ イ ド UG384 (v1.0) 2009 年 6 月 24 日 表 7 : 分散 RAM の タ イ ミ ング パ ラ メ ー タ (続き ) パラ メ ー タ フ ァンクシ ョ ン 説明 RAM (分散 RAM)(2) と し て コ ン フ ィ ギ ュ レーシ ョ ン さ れたス ラ イ ス LUT のセ ッ ト ア ッ プお よびホール ド タ イ ム TDS/TDH(3) デー タ 入力 (DI1) と し て コ ン フ ィ ギ ュ レーシ ョ ン さ れた AX/BX/CX/DX ク ロ ッ ク の前/後に ス ラ イ ス の AX/BX/CX/DX 入力でデー タ が安定 し なければいけない時間 TACK/TCKA A/B/C/D ア ド レ ス入力 ク ロ ッ ク の前/後に RAM と し て コ ン フ ィ ギ ュ レーシ ョ ン さ れ てい る ス ラ イ ス LUT の A/B/C/D 入力でア ド レ ス信号が安定 し なければいけない時間 TWS/TWH WE 入力 ク ロ ッ ク の前/後に RAM と し コ ン フ ィ ギ ュ レーシ ョ ン さ れて い る ス ラ イ ス LUT の WE 入力で書 き 込み イ ネーブル信号が安 定 し なければいけない時間 ク ロ ッ ク CLK TWPH 最小パルス幅、 High TWPL 最小パルス幅、 Low TWC ア ド レ ス書 き 込みサ イ ク ル時間を満たす最小 ク ロ ッ ク 周期 メモ : 1. こ のパ ラ メ ー タ は、 2 ビ ッ ト の分散 RAM と し て コ ン フ ィ ギ ュ レーシ ョ ン さ れた LUT を含みます。 2. TXXCK = セ ッ ト ア ッ プ タ イ ム ( ク ロ ッ ク エ ッ ジの前)、 TCKXX = ホール ド タ イ ム ( ク ロ ッ ク エ ッ ジの後) 3. こ のパ ラ メ ー タ は、 デー タ 入力 (DI2) と し て コ ン フ ィ ギ ュ レーシ ョ ン さ れた AI/BI/CI/DI を含みます。 分散 RAM の タ イ ミ ン グ特性 図 29 に Spartan-6 FPGA の ス ラ イ ス (LUT は RAM と し て コ ン フ ィ ギ ュ レーシ ョ ン ) に イ ンプ リ メ ン ト さ れた 16 ビ ッ ト 分散 RAM の タ イ ミ ン グ特性を示 し ます。 X-Ref Target - Figure 29 1 2 3 4 5 6 7 TWC TWPH TWPL CLK TAS A/B/C/D (ADDR) 2 F 3 4 0 1 5 E TDS AX/BX/CX/DX (DI) 1 X TWS 0 X TILO TILO WE DATA_OUT A/B/C/D ฟຊ TSHCKO 1 WRITE MEM(F) READ 0 1 WRITE WRITE 0 WRITE MEM(E) READ ug384_29_042309 図 29 : ス ラ イ スに含まれる分散 RAM の タ イ ミ ング特性 Spartan-6 FPGA コ ン フ ィ ギ ャ ブル ロ ジ ッ ク ブ ロ ッ ク ユーザー ガ イ ド UG384 (v1.0) 2009 年 6 月 24 日 japan.xilinx.com 39 ク ロ ッ ク イ ベン ト 1 : 書き込み 書 き 込み実行時に ADDR 入力のア ド レ ス上にあ る メ モ リ の内容が変更 さ れます。 こ の メ モ リ に書 き 込まれたデー タ は、 同期 し て A/B/C/D 出力に反映 さ れます。 • ク ロ ッ ク イ ベン ト 1 よ り も TWS 時間前に書き 込み イ ネーブル信号 (WE) が有効 (High) にな り 、 RAM が次の書 き 込みを実行で き る 状態にな り ます。 • ク ロ ッ ク イ ベン ト 1 よ り も TAS 時間前にア ド レ ス (2) が RAM の A/B/C/D 入力で有効にな り ま す。 • ク ロ ッ ク イ ベン ト 1 よ り も TDS 時間前に DATA が RAM の DI 入力で有効 (1) にな り 、ク ロ ッ ク イ ベン ト 1 の後の TSHCKO 時間に A/B/C/D 出力に反映 さ れます。 ま た、 ク ロ ッ ク イ ベン ト 1 よ り も TSHCKO お よ び TWOSCO 時間後に AMUX、 BMUX、 CMUX、 DMUX、 お よ び COUT 出力に も 反映 さ れます。 ク ロ ッ ク イ ベン ト 2 : 読み出 し 分散 RAM では、 すべての読み出 し が非同期です。 WE が Low の場合は、 随時ア ド レ ス バ ス を ア サー ト で き ます。 そのア ド レ ス バ ス にあ る RAM の内容は、TILO の遅延 (LUT を通過す る 場合の伝 搬遅延) 後に A/B/C/D 出力に反映 さ れます。 ク ロ ッ ク イ ベン ト 2 の後に ア ド レ ス (F) はアサー ト さ れ、 そのア ド レ ス にあ る RAM の内容は、 TILO の遅延後に出力に反映 さ れます。 ス ラ イ スのシ フ ト レ ジ ス タ の タ イ ミ ング モデル (SLICEM のみ) 図 30 に、Spartan-6 FPGA の ス ラ イ ス に含まれ る シ フ ト レ ジ ス タ の イ ンプ リ メ ン テーシ ョ ン を示 し ます。 ス ラ イ ス のエ レ メ ン ト の一部は省略 さ れてお り 、 こ のセ ク シ ョ ン で説明 さ れてい る タ イ ミ ン グ パ ス に関連 し たエ レ メ ン ト のみ記載 さ れてい ます。 40 japan.xilinx.com Spartan-6 FPGA コ ン フ ィ ギ ャ ブル ロ ジ ッ ク ブ ロ ッ ク ユーザー ガ イ ド UG384 (v1.0) 2009 年 6 月 24 日 X-Ref Target - Figure 30 SRL DI1 DX D O6 D 䜰䝗䝺䝇 6 A MC31 CLK WE CLK W SRL DI1 C O6 CX C 䜰䝗䝺䝇 6 A MC31 CLK WE SRL DI1 B O6 BX B 䜰䝗䝺䝇 6 A MC31 CLK WE SRL DI1 A O6 AX A 䜰䝗䝺䝇 6 A CLK DMUX MC31 WE ug384_30_042309 図 30 : Spartan-6 FPGA のス ラ イ スに含まれる シ フ ト レ ジス タ の簡略図 ス ラ イ スのシ フ ト レ ジ ス タ の タ イ ミ ン グ パラ メ ー タ 表 8 に図 30 に示 し た主なパ ス に関連す る SLICEM のシ フ ト レ ジ ス タ の タ イ ミ ン グ パ ラ メ ー タ を 示 し ます。 表 8 : ス ラ イ スのシ フ ト レ ジ ス タ の タ イ ミ ング パラ メ ー タ パラ メ ー タ フ ァンクシ ョ ン 説明 シ フ ト レ ジス タ と し て コ ン フ ィ ギ ュ レーシ ョ ン さ れたス ラ イ ス LUT のシーケ ン シ ャル遅延 TREG(1) CLK か ら A/B/C/D 出力 書 き 込み操作の ク ロ ッ ク 後にシ フ ト レ ジ ス タ に書 き 込まれたデー タ が ス ラ イ ス の A/B/C/D 出力で安定 し なければいけない時間 TREG_MUX(1) CLK か ら AMUX ~ DMUX 出力 書 き 込み動作の ク ロ ッ ク 後にシ フ ト レ ジ ス タ に書 き 込まれたデー タ が ス ラ イ ス の DMUX 出力で安定 し なければいけない時間 Spartan-6 FPGA コ ン フ ィ ギ ャ ブル ロ ジ ッ ク ブ ロ ッ ク ユーザー ガ イ ド UG384 (v1.0) 2009 年 6 月 24 日 japan.xilinx.com 41 表 8 : ス ラ イ スのシ フ ト レ ジ ス タ の タ イ ミ ング パラ メ ー タ (続き ) パラ メ ー タ TREG_M31 フ ァンクシ ョ ン 説明 CLK か ら MC31 出力を通 り DMUX 出力 書 き 込み動作の ク ロ ッ ク 後にシ フ ト レ ジ ス タ に書 き 込まれたデー タ が MC31 出力を通 り DMUX 出力で安定 し なければいけない時間 シ フ ト レ ジス タ と し て コ ン フ ィ ギ ュ レーシ ョ ン さ れたス ラ イ ス LUT のセ ッ ト ア ッ プおよびホール ド タ イ ム(2) TWS/TWH CE 入力 (WE) ク ロ ッ ク の前/後に書き 込み イ ネーブル信号がシ フ ト レ ジ ス タ と し て コ ン フ ィ ギ ュ レーシ ョ ン さ れた ス ラ イ ス LUT の WE 入力で安定 し なければいけない時間 TDS/TDH(3) デー タ 入力 (DI) と し て コ ン フ ィ ギ ュ レーシ ョ ン さ れた ク ロ ッ ク の前にデー タ がシ フ ト レ ジ ス タ と し て コ ン フ ィ ギ ュ レー シ ョ ン さ れてい る ス ラ イ ス の AX/BX/CX/DX 入力で安定 し なけれ ばいけない時間 AX/BX/CX/DX メモ : 1. こ のパ ラ メ ー タ には、 2 ビ ッ ト のシ フ ト レ ジ ス タ と し て コ ン フ ィ ギ ュ レーシ ョ ン さ れた LUT が含ま れます。 2. TXXCK = セ ッ ト ア ッ プ タ イ ム ( ク ロ ッ ク エ ッ ジの前)、 TCKXX = ホール ド タ イ ム ( ク ロ ッ ク エ ッ ジの後) 3. こ のパ ラ メ ータ には、 データ入力 (DI2) ま たは共通シ フ ト の 2 ビ ッ ト と し て コ ン フ ィ ギ ュ レーシ ョ ン さ れた AI/BI/CI/DI が含まれています。 ス ラ イ スのシ フ ト レ ジ ス タ の タ イ ミ ン グ特性 図 31 に Spartan-6 FPGA の ス ラ イ ス (LUT はシ フ ト レ ジ ス タ と し て コ ン フ ィ ギ ュ レーシ ョ ン ) に イ ンプ リ メ ン ト さ れた 16 ビ ッ ト シ フ ト レ ジ ス タ の タ イ ミ ン グ特性を示 し ます。 X-Ref Target - Figure 31 1 2 3 4 5 6 32 CLK TWS ᭩䛝㎸䜏䜲䝛䞊䝤䝹 (WE) TDS Shift_In (DI) 0 䜰䝗䝺䝇 (A/B/C/D) 1 1 0 0 TREG 1 0 2 1 TILO 䝕䞊䝍ฟຊ (A/B/C/D) X 1 MSB (MC31/DMUX) 0 TREG X X X 1 0 X TILO 1 X 1 0 X 1 X ug384_31_04 図 31 : ス ラ イ スのシ フ ト レ ジ ス タ の タ イ ミ ング特性 ク ロ ッ ク イ ベン ト 1 : Shift In 書 き 込み (Shift In) の実行中、 シ フ ト レ ジ ス タ を介 し てデー タ がシ フ ト さ れ る と き 、 A/B/C/D 入力 のア ド レ ス にあ る レ ジ ス タ の 1 ビ ッ ト の内容が変更 さ れます。 ク ロ ッ ク イ ベン ト 中にア ド レ ス が変 更 さ れない場合、 こ の レ ジ ス タ に書 き 込まれたデー タ が同期 し て A/B/C/D 出力に反映 さ れます。 ク ロ ッ ク イ ベン ト 中に A/B/C/D 入力が変更 さ れ る 場合、ア ド レ ス指定可能な出力 (A/B/C/D 出力) の デー タ 値は無効にな り ます。 42 • ク ロ ッ ク イ ベン ト 1 よ り も TWS 時間前に書き 込み イ ネーブル信号 (WE) が有効 (High) にな り 、 シ フ ト レ ジ ス タ が次の書 き 込みを実行で き る 状態にな り ます。 • ク ロ ッ ク イ ベン ト 1 よ り も TDS 時間前にデー タ が シ フ ト レ ジ ス タ の DI 入力で有効 (0) にな り 、ク ロ ッ ク イ ベン ト 1 よ り 遅延時間 TREG 後に A/B/C/D 出力に反映 さ れます。ア ド レ ス 0 は japan.xilinx.com Spartan-6 FPGA コ ン フ ィ ギ ャ ブル ロ ジ ッ ク ブ ロ ッ ク ユーザー ガ イ ド UG384 (v1.0) 2009 年 6 月 24 日 ク ロ ッ ク イ ベン ト 1 で指定 さ れてい る ため、 DI 入力のデー タ が レ ジ ス タ 0 に書 き 込まれ、 A/B/C/D 出力に反映 さ れます。 ク ロ ッ ク イ ベン ト 2 : Shift In • ク ロ ッ ク イ ベン ト 2 よ り も TDS 時間前にシ フ ト レ ジ ス タ の DI 入力でデー タ が有効 (1) にな り 、ク ロ ッ ク イ ベン ト 2 よ り 遅延時間 TREG 後に A/B/C/D 出力に反映 さ れます。ア ド レ ス 0 は ク ロ ッ ク イ ベン ト 2 で も ま だ指定 さ れてい る ため、 DI 入力のデー タ が レ ジ ス タ 0 に書 き 込ま れ、 D 出力に反映 さ れます。 ク ロ ッ ク イ ベン ト 3 : Shift In/ ア ド レ ス可能 (非同期) 読み出 し すべての読み出 し 操作は CLK 信号に非同期で実行 さ れます。 ク ロ ッ ク イ ベン ト 間でア ド レ ス が変 更 さ れた場合、 そのア ド レ ス上の レ ジ ス タ の内容は TILO (LUT 通過時の伝搬遅延) 時間遅れてア ド レ ス指定可能な出力 (A/B/C/D 出力) に反映 さ れます。 • ク ロ ッ ク イ ベン ト 3 よ り も TDS 時間前にデー タ がシ フ ト レ ジ ス タ の DI 入力で有効 (1) にな り 、 ク ロ ッ ク イ ベン ト 3 よ り 遅延時間 TREG 後に A/B/C/D 出力に反映 さ れます。 • ア ド レ ス は変更 さ れます (0 か ら 2 )。 こ の と き 、 レ ジ ス タ 2 に格納 さ れてい る 値は 0 ( こ の例で は、 最初にシ フ ト さ れ る デー タ ) で、 TILO 遅延後に A/B/C/D 出力に反映 さ れます。 ク ロ ッ ク イ ベン ト 32 : MSB (最上位ビ ッ ト ) の変化 ク ロ ッ ク イ ベン ト 32 の後の TREG 時間にシ フ ト レ ジ ス タ にシ フ ト さ れ る 最初のビ ッ ト が、LUT A ( シ フ ト レ ジ ス タ ) の MC31 出力を通っ て ス ラ イ ス の DMUX 出力で有効 ( こ の例では ロ ジ ッ ク 0) にな り ます。 こ れは、 ク ロ ッ ク イ ベン ト 1 の後の TREG お よ び TWOSCO 時間で、 AMUX、 BMUX、 CMUX、 DMUX、 お よ び COUT 出力に対 し て も 同様です。 ス ラ イ ス キャ リ ーチ ェ ーンのタ イ ミ ング モデル (SLICEM および SLICEL のみ) 33 ページの図 25 に、Spartan-6 FPGA の ス ラ イ ス に含まれ る キ ャ リ ー チ ェーン を示 し ます。 ス ラ イ ス のエ レ メ ン ト の一部は省略 さ れてお り 、 こ のセ ク シ ョ ンで説明 さ れてい る タ イ ミ ン グ パ ス に関連 し たエ レ メ ン ト のみが表示 さ れてい ます。 ス ラ イ ス キ ャ リ ー チ ェ ーンの タ イ ミ ング パラ メ ー タ 表 9 に 33 ページの図 25 に示 し た主なパ ス に関連す る ス ラ イ ス キ ャ リ ー チ ェ ーンの タ イ ミ ン グ パ ラ メ ー タ を示 し ます。 表 9 : ス ラ イ ス キ ャ リ ー チ ェ ーンの タ イ ミ ング パ ラ メ ー タ パラ メ ー タ フ ァ ンクシ ョ ン 説明 キ ャ リ ー チ ェ ーン と し て コ ン フ ィ ギ ュ レーシ ョ ン さ れたス ラ イ ス LUT のシーケ ン シ ャル遅延 TAXCY/TBXCY/TCXCY/TDXCY AX/BX/CX/DX 入力 か ら COUT 出力 ス ラ イ ス の AX/BX/CX/DX 入力か ら COUT 出力ま での伝 搬遅延 TBYP CIN 入力か ら COUT ス ラ イ ス の CIN 入力か ら COUT 出力ま での伝搬遅延 出力ま での遅延 TOPCYA/TOPCYB/TOPCYC/TOPCYD Spartan-6 FPGA コ ン フ ィ ギ ャ ブル ロ ジ ッ ク ブ ロ ッ ク ユーザー ガ イ ド UG384 (v1.0) 2009 年 6 月 24 日 A/B/C/D 入力か ら COUT 出力 ス ラ イ ス の A/B/C/D 入力か ら COUT 出力ま での伝搬遅延 japan.xilinx.com 43 表 9 : ス ラ イ ス キ ャ リ ー チ ェ ーンの タ イ ミ ング パ ラ メ ー タ (続き ) パラ メ ー タ TCINA/TCINB/TCINC/TCIND フ ァ ンクシ ョ ン 説明 A/B/C/D 入力か ら AMUX/BMUX/CMUX /DMUX 出力 ス ラ イ ス の A/B/C/D 入力か ら XOR (和) を使用する ス ラ イ ス の AMUX/BMUX/CMUX/DMUX 出力ま での伝搬遅延 キ ャ リ ー チ ェ ーン と し て コ ン フ ィ ギ ュ レーシ ョ ン さ れたス ラ イ ス LUT のセ ッ ト ア ッ プおよびホール ド タ イ ム(1) TCINCK/TCKCIN CIN デー タ 入力 ク ロ ッ ク の前に ス ラ イ ス の CIN 入力か ら のデー タ が フ リ ッ プ フ ロ ッ プ と し て コ ン フ ィ ギ ュ レーシ ョ ン し た ス ラ イ ス シーケ ン シ ャ ル エ レ メ ン ト の D 入力で安定 し なければな ら ない時間 メモ : 1. TXXCK = セ ッ ト ア ッ プ タ イ ム ( ク ロ ッ ク エ ッ ジの前)、 TCKXX = ホール ド タ イ ム ( ク ロ ッ ク エ ッ ジの後) ス ラ イ ス キ ャ リ ー チ ェ ーンの タ イ ミ ン グ特性 図 32 に Spartan-6 FPGA の ス ラ イ ス に イ ンプ リ メ ン ト さ れた ス ラ イ ス キ ャ リ ー チ ェーンの タ イ ミ ン グ特性を示 し ます。 X-Ref Target - Figure 32 1 2 3 CLK CIN (DATA) TCINCK TSRCK SR (RESET) TCKO TCKO AQ/BQ/CQ/DQ (OUT) ug384_32_042309 図 32 : ス ラ イ ス キ ャ リ ー チ ェ ーンの タ イ ミ ン グ特性 • ク ロ ッ ク イ ベン ト 1 よ り も TCINCK 時間前に CIN 入力か ら のデー タ が ス ラ イ ス レ ジ ス タ の D 入力で有効 (High) にな り ます。 こ れは、 ク ロ ッ ク イ ベン ト 1 の後の TCKO 時間に AQ/BQ/CQ/DQ ピ ンに出力 さ れます。 • ク ロ ッ ク イ ベン ト 3 よ り も TSRCK 時間前に同期 リ セ ッ ト と し て コ ン フ ィ ギ ュ レーシ ョ ン さ れ た SR 信号が有効 (High) にな り 、ス ラ イ ス レ ジ ス タ が リ セ ッ ト さ れます。 こ れは、 ク ロ ッ ク イ ベン ト 3 の後 TCKO 時間に AQ/BQ/CQ/DQ ピ ンに反映 さ れます。 CLB プ リ ミ テ ィ ブ CLB プ リ ミ テ ィ ブの詳細は、 ラ イ ブ ラ リ ガ イ ド を参照 し て く だ さ い。 分散 RAM プ リ ミ テ ィ ブ 32 X 2 ビ ッ ト か ら 256 X 1 ビ ッ ト の 7 つのプ リ ミ テ ィ ブがあ り ます。 表 10 に示す よ う に、3 つのプ リ ミ テ ィ ブがシ ン グル ポー ト RAM、 2 つのプ リ ミ テ ィ ブがデ ュ アル ポー ト RAM、 そ し て 2 つの プ リ ミ テ ィ ブが ク ワ ッ ド ポー ト RAM です。 44 japan.xilinx.com Spartan-6 FPGA コ ン フ ィ ギ ャ ブル ロ ジ ッ ク ブ ロ ッ ク ユーザー ガ イ ド UG384 (v1.0) 2009 年 6 月 24 日 表 10 : シ ングル ポー ト 、 デ ュ アル ポー ト 、 および ク ワ ッ ド ポー ト 分散 RAM プリ ミティブ RAM サイ ズ タ イプ RAM32X1S 32 ビ ッ ト シ ン グル ポー ト A[4:0] (読み出 し /書き 込み) RAM32X1D 32 ビ ッ ト デ ュ アル ポー ト A[4:0] (読み出 し /書き 込み) ア ド レ ス入力 DPRA[4:0] (読み出 し ) RAM32M 32 ビ ッ ト ADDRA[4:0] (読み出 し ) ク ワ ッ ド ポー ト ADDRB[4:0] (読み出 し ) ADDRC[4:0] (読み出 し ) ADDRD[4:0] (読み出 し /書き 込み) RAM64X1S 64 ビ ッ ト シ ン グル ポー ト A[5:0] (読み出 し /書き 込み) RAM64X1D 64 ビ ッ ト デ ュ アル ポー ト A[5:0] (読み出 し /書き 込み) DPRA[5:0] (読み出 し ) RAM64M 64 ビ ッ ト ADDRA[5:0] (読み出 し ) ク ワ ッ ド ポー ト ADDRB[5:0] (読み出 し ) ADDRC[5:0] (読み出 し ) ADDRD[5:0] (読み出 し /書き 込み) RAM128X1S 128 ビ ッ ト シ ン グル ポー ト A[6:0] (読み出 し /書き 込み) RAM128X1D 128 ビ ッ ト デュ アル ポー ト A[6:0]、 (読み出 し /書き 込み) DPRA[6:0] (読み出 し ) RAM256X1S 256 ビ ッ ト シ ン グル ポー ト A[7:0] (読み出 し /書き 込み) 入力お よ び出力デー タ は 1 ビ ッ ト 幅です (32 ビ ッ ト RAM を除 く )。 図 33 に標準的なシ ン グル ポー ト 、デュ アル ポー ト お よ び ク ワ ッ ド ポー ト の分散 RAM プ リ ミ テ ィ ブ を示 し ます。 A、 ADDR、 お よ び DPRA 信号は、 ア ド レ ス バ ス です。 X-Ref Target - Figure 33 RAM#X1S D WE RAM#X1D O D WE WCLK WCLK A[#:0] A[#:0] DPRA[#:0] RAM#M SPO DI[A:D][#:0] WE DOD[#:0] WCLK ㄞ䜏ฟ䛧㻛 ᭩䛝㎸䜏 䝫䞊䝖 ㄞ䜏ฟ䛧 䝫䞊䝖 DPO ADDRD[#:0] ㄞ䜏ฟ䛧㻛 ᭩䛝㎸䜏 䝫䞊䝖 ADDRC[#:0] ㄞ䜏ฟ䛧 䝫䞊䝖 DOC[#:0] ADDRB[#:0] ㄞ䜏ฟ䛧 䝫䞊䝖 DOB[#:0] ADDRA[#:0] ㄞ䜏ฟ䛧 䝫䞊䝖 DOA[#:0] ug384_33_042309 図 33 : シ ングル ポー ト 、 デ ュ アル ポー ト 、 お よび ク ワ ッ ド ポー ト 分散 RAM プ リ ミ テ ィ ブ Spartan-6 FPGA コ ン フ ィ ギ ャ ブル ロ ジ ッ ク ブ ロ ッ ク ユーザー ガ イ ド UG384 (v1.0) 2009 年 6 月 24 日 japan.xilinx.com 45 分散 RAM プ リ ミ テ ィ ブ を複数使用する と 、ビ ッ ト 幅の大き い メ モ リ ブ ロ ッ ク を イ ンプ リ メ ン ト で き ます。 ポー ト 信号 分散 RAM の各ポー ト は、 同 じ メ モ リ セルを読み出 し てい る 場合で も 、 動作はそれぞれ独立 し てい ます。 ク ロ ッ ク (WCLK) ク ロ ッ ク は、 同期書 き 込みに使用 し ます。 デー タ 入力ピ ン と ア ド レ ス入力ピ ンのセ ッ ト ア ッ プ タ イ ムは、 WCLK ピ ン を基準 と し てい ます。 イ ネーブル (WE/WED) イ ネーブル ピ ンは、 ポー ト の書 き 込み機能を制御 し ます。 WE が無効の場合、 メ モ リ セルへの書 き 込みは実行 さ れません。 WE が有効の場合、 ク ロ ッ ク エ ッ ジに同期 し て ア ド レ ス入力で指定 し た メ モ リ 位置にデー タ 入力信号が書 き 込まれます。 ア ド レ ス (A[#:0]、 DPRA[#:0]、 および ADDRA[#:0] - ADDRD[#:0]) ア ド レ ス入力 A[#:0] ( シ ン グル ポー ト お よ びデュ アル ポー ト の場合)、DPRA[#:0] (デ ュ アル ポー ト の場合)、お よ び ADDRA[#:0] - ADDRD[#:0] ( ク ワ ッ ド ポー ト の場合) は、読み出 し /書 き 込みを実 行す る メ モ リ セルを選択 し ます。 必要 と な る ア ド レ ス入力の数は、 ポー ト 幅に よ っ て決ま り ます。 VHDL ま たは Verilog イ ン ス タ ン シエーシ ョ ン では、一部のア ド レ ス入力はバ ス ではあ り ません。各 ア ド レ ス フ ァ ン ク シ ョ ンは表 10 を参照 し て く だ さ い。 デー タ 入力 (D、 DID[#:0]) デー タ 入力 D ( シ ン グル ポー ト お よ びデ ュ アル ポー ト の場合) お よ び DID[#:0] ( ク ワ ッ ド ポー ト の 場合) には、 RAM に書 き 込む新 し い値が入力 さ れます。 デー タ 出力 (O、 SPO、 DPO および DOA[#:0] - DOD[#:0]) デー タ 出力 O ( シ ン グル ポー ト ま たは SPO)、DPO (デ ュ アル ポー ト )、お よ び DOA[#:0] - DOD[#:0] ( ク ワ ッ ド ポー ト ) には、ア ド レ ス入力で指定 し た メ モ リ セルの内容が反映 さ れます。 次のア ク テ ィ ブな書 き 込み ク ロ ッ ク エ ッ ジでデー タ 出力 (O、 SPO、 ま たは DOD[#:0]) には新 し く 書 き 込まれた デー タ が反映 さ れます。 ク ロ ッ ク ピ ンの反転 ク ロ ッ ク ピ ン (CLK) には、個別に反転オプシ ョ ンがあ り ます。 ク ロ ッ ク 信号は、ほかの ロ ジ ッ ク リ ソ ース を使用せずに、 立ち下が り エ ッ ジ ま たは立ち上が り エ ッ ジでア ク テ ィ ブにで き ます。 デフ ォ ル ト では、 立ち上が り エ ッ ジ を使用 し ます。 グローバル セ ッ ト / リ セ ッ ト (GSR) グ ロ ーバル セ ッ ト / リ セ ッ ト (GSR) 信号は分散 RAM モジ ュ ールには影響 し ません。 シ フ ト レ ジ ス タ (SRL) プ リ ミ テ ィ ブ 32 ビ ッ ト シ フ ト レ ジ ス タ (SRLC32E) には 1 つのプ リ ミ テ ィ ブ を使用で き ます。 図 34 に 32 ビ ッ ト シ フ ト レ ジ ス タ のプ リ ミ テ ィ ブを示 し ます。 46 japan.xilinx.com Spartan-6 FPGA コ ン フ ィ ギ ャ ブル ロ ジ ッ ク ブ ロ ッ ク ユーザー ガ イ ド UG384 (v1.0) 2009 年 6 月 24 日 X-Ref Target - Figure 34 SRLC32E 6 D A[4:0] Q CE Q31 CLK ug384_34_042309 図 34 : 32 ビ ッ ト シ フ ト レ ジ ス タ 専用のマルチプ レ ク サ (F7AMUX、 F7BMUX、 お よ び F8MUX) を使用 し て複数の 32 ビ ッ ト シ フ ト レ ジ ス タ を イ ン ス タ ン シエー ト す る と 、 1 個の ス ラ イ ス で最大 128 ビ ッ ト のカ ス ケー ド 接続可能 なシ フ ト レ ジ ス タ チ ェーン を作成で き ます。 こ のユーザーガ イ ド の シ フ ト レ ジ ス タ (SLICEM の み) の 図 19 ~ 図 21 に、32 ビ ッ ト 以上のカ ス ケー ド 接続可能なシ フ ト レ ジ ス タ の さ ま ざ ま な イ ン プ リ メ ン テーシ ョ ンが示 さ れて ます。 ポー ト 信号 ク ロ ッ ク (CLK) シ フ ト 動作は、 ク ロ ッ ク の立ち上が り エ ッ ジ ま た は立ち下が り エ ッ ジ のいずれかに同期 し ま す。 デー タ お よ び ク ロ ッ ク イ ネーブル入力ピ ンには、 CLK の選択 さ れたエ ッ ジ を基準 と し たセ ッ ト ア ッ プ タ イ ムがあ り ます。 デー タ 入力 (D) デー タ 入力は、 シ フ ト レ ジ ス タ にシ フ ト イ ンす る 新 し いデー タ (1 ビ ッ ト ) と な り ます。 ク ロ ッ ク イ ネーブル (CE) ク ロ ッ ク イ ネーブル ピ ンは、 シ フ ト 動作を制御 し ます。 ク ロ ッ ク イ ネーブル ピ ンが非ア ク テ ィ ブ の と き は、シ フ ト レ ジ ス タ にデー タ はシ フ ト イ ン さ れず、新 し いデー タ は書 き 込まれません。 ク ロ ッ ク イ ネーブルを ア ク テ ィ ブにす る と 、 デー タ 入力 (D) の内容が最初のビ ッ ト に書 き 込まれ、 すべて のデー タ が 1 つずつシ フ ト し ます。 新 し いデー タ が出力ピ ン (Q) お よ びカ ス ケー ド 接続可能な出力 ピ ン (Q31) に送信 さ れます。 ア ド レ ス (A[4:0]) ア ド レ ス入力は、 読み出 さ れ る ビ ッ ト (0 ~ 31) を選択 し ます。 n 番目のビ ッ ト が、 出力ピ ン (Q) に 送信 さ れます。 ア ド レ ス入力は、 カ ス ケー ド 接続可能な出力ピ ン (Q31) に影響せず、 常にシ フ ト レ ジ ス タ の最後のビ ッ ト ( ビ ッ ト 31) に影響 し ます。 デー タ 出力 (Q) デー タ 出力 Q には、 ア ド レ ス入力で選択 さ れたデー タ 値 (1 ビ ッ ト ) が送信 さ れます。 デー タ 出力 (Q31、 オプ シ ョ ン ) デー タ 出力 Q31 には、 32 ビ ッ ト シ フ ト レ ジ ス タ の最後のビ ッ ト 値が送信 さ れます。 シ フ ト イ ン後 に新 し いデー タ が出力 さ れます。 Spartan-6 FPGA コ ン フ ィ ギ ャ ブル ロ ジ ッ ク ブ ロ ッ ク ユーザー ガ イ ド UG384 (v1.0) 2009 年 6 月 24 日 japan.xilinx.com 47 ク ロ ッ ク ピ ンの反転 ク ロ ッ ク ピ ン (CLK) には、個別に反転オプシ ョ ンがあ り ます。 ク ロ ッ ク 信号は、ほかの ロ ジ ッ ク リ ソ ース を使用せずに、 立ち下が り エ ッ ジ ま たは立ち上が り エ ッ ジでア ク テ ィ ブにで き ます。 デフ ォ ル ト では、 立ち上が り エ ッ ジ を使用 し ます。 グローバル セ ッ ト / リ セ ッ ト (GSR) シ フ ト レ ジ ス タ は、 グ ロ ーバル セ ッ ト / リ セ ッ ト (GSR) 信号で制御 さ れません。 その他のシ フ ト レ ジ ス タ ア プ リ ケーシ ョ ン 同期シ フ ト レ ジ ス タ シ フ ト レ ジ ス タ のプ リ ミ テ ィ ブは、 同 じ ス ラ イ ス にあ る レ ジ ス タ を使用 し ません。 完全に同期 し た 読み出 し /書 き 込みシ フ ト レ ジ ス タ を イ ンプ リ メ ン ト する には、 出力ピ ン Q を フ リ ッ プ フ ロ ッ プに 接続す る 必要があ り ます。 図 35 に示す よ う に、シ フ ト レ ジ ス タ と フ リ ッ プ フ ロ ッ プでは同 じ ク ロ ッ ク が使用 さ れます。 X-Ref Target - Figure 35 SRLC32E D FF D Q Q ྠᮇ ฟຊ 䜰䝗䝺䝇 CE (᭩䛝㎸䜏 䜲䝛䞊䝤䝹) Q31 CLK ug384_35_042309 図 35 : 同期シ フ ト レ ジ ス タ こ の コ ン フ ィ ギ ュ レーシ ョ ンは、デザ イ ンが簡潔で、タ イ ミ ン グの点で も 優れてい ます。 フ リ ッ プ フ ロ ッ プはシ フ ト レ ジ ス タ チ ェーンの最後の レ ジ ス タ と 考え、固定長モー ド ま たは可変長モー ド での ア ド レ ス指定は、必要な長 さ か ら 1 を引いた値にす る 必要があ り ます。 必要に応 じ て、カ ス ケー ド 接 続可能出力 も フ リ ッ プ フ ロ ッ プ を介 し て出力で き ます。 固定長シ フ ト レ ジ ス タ カ ス ケー ド 接続可能な 32 ビ ッ ト のシ フ ト レ ジ ス タ では、 専用マルチプ レ ク サ (F7AMUX、 F7BMUX、お よ び F8MUX) を使用せずに任意の固定長モー ド のシ フ ト レ ジ ス タ を イ ンプ リ メ ン ト で き ます。 図 36 に 72 ビ ッ ト のシ フ ト レ ジ ス タ を示 し ます。 最後の SRLC32E プ リ ミ テ ィ ブのみ、 ア ド レ ス入力を 0b00111 に固定する 必要があ り ます。 ま たは、 シ フ ト レ ジ ス タ 長を 71 ビ ッ ト ( ア ド レ ス は 0b00110 に固定) に制限 し 、 フ リ ッ プ フ ロ ッ プ を最後の レ ジ ス タ と し て使用で き ます。 SRLC32E プ リ ミ テ ィ ブでは、 シ フ ト レ ジ ス タ の長 さ はア ド レ ス入力 + 1 です。 48 japan.xilinx.com Spartan-6 FPGA コ ン フ ィ ギ ャ ブル ロ ジ ッ ク ブ ロ ッ ク ユーザー ガ イ ド UG384 (v1.0) 2009 年 6 月 24 日 X-Ref Target - Figure 36 LUT D LUT D D D Q31 Q31 SRLC32E SRLC32E LUT LUT D D Q31 Q31 SRLC32E SRLC32E FF LUT D 00111 5 LUT OUT (72 䝡䝑䝖 䝅䝣䝖㻌 䝺䝆䝇䝍) Q A[4:0] Q31 D 00110 SRLC32E 5 Q D Q A[4:0] Q31 OUT (72 䝡䝑䝖 䝅䝣䝖㻌 䝺䝆䝇䝍) SRLC32E ug384_36_042309 図 36 : 固定長シ フ ト レ ジ ス タ の例 マルチ プ レ ク サのプ リ ミ テ ィ ブ 各ス ラ イ ス の専用 F7AMUX、 F7BMUX、 お よ び F8MU2 へア ク セ スする には、 2 つのプ リ ミ テ ィ ブ (MUXF7 お よ び MUXF8) があ り ます。 こ れ ら のマルチプ レ ク サ プ リ ミ テ ィ ブは LUT と 組み合 わせて使用 し て、 よ り ビ ッ ト 幅の広いマルチプ レ ク サ (8:1 ~ 16:1) を構築で き ます。 大型マルチプ レ ク サの構築方法の詳細は、 「大型マルチプ レ ク サの設計」 を参照 し て く だ さ い。 ポー ト 信号 デー タ 入力 (I0、 I1) デー タ 入力には、 セ レ ク ト 信号 (S) で選択 さ れ る デー タ が入力 さ れます。 制御入力 (S) セ レ ク ト 入力信号は、 出力 O へ送信 さ れ る デー タ 入力信号を決定 し ます。 ロ ジ ッ ク 0 では I0 入力、 ロ ジ ッ ク 1 では I1 入力が選択 さ れます。 デー タ 出力 (Q) デー タ 出力 O では、 制御入力で選択 さ れたデー タ 値 (1 ビ ッ ト ) が出力 さ れます。 キ ャ リ ー チ ェ ーン プ リ ミ テ ィ ブ CARRY4 プ リ ミ テ ィ ブは、 Spartan-6 アーキ テ ク チ ャ の SLICEM ま たは SLICEL の高速キ ャ リ ー ロ ジ ッ ク です。 こ のプ リ ミ テ ィ ブは、 LUT と 接続 し て加算器お よ び乗算器を構築 し ます。 通常、 こ のプ リ ミ テ ィ ブは合成ツールに よ り 標準 RTL コ ー ド か ら 推論 さ れます。 合成ツールでは、パフ ォー マ ン スやエ リ ア使用率において こ の ロ ジ ッ ク に最適にマ ッ ピ ン グ さ れ る 演算フ ァ ン ク シ ョ ンお よ び Spartan-6 FPGA コ ン フ ィ ギ ャ ブル ロ ジ ッ ク ブ ロ ッ ク ユーザー ガ イ ド UG384 (v1.0) 2009 年 6 月 24 日 japan.xilinx.com 49 ロ ジ ッ ク フ ァ ン ク シ ョ ン を判断 し ます。 ま た、 こ のフ ァ ン ク シ ョ ン を自動で使用 し 、 正 し く 接続 し ます。 33 ページの図 25 に CARRY4 ブ ロ ッ ク 図を示 し ます。 ポー ト 信号 合計出力 (O[3:0]) 合計出力か ら は、 加算/減算の結果が出力 さ れます。 キ ャ リ ー出力 (CO[3:0]) キ ャ リ ー出力には、 各ビ ッ ト のキ ャ リ ーア ウ ト が送信 さ れます。 CO[3] がほかの CARRY4 プ リ イ テ ィ ブの CI 入力へ接続 さ れてい る 場合は、 よ り 長いキ ャ リ ー チ ェ ーン を構築で き ます。 デー タ 入力 (DI[3:0]) DI 入力は、 キ ャ リ ー ル ッ ク アヘ ッ ド ロ ジ ッ ク の生成信号 と し て使用 さ れます。 こ の生成信号は、 LUT 出力か ら 入力 さ れます。 セ レ ク ト 入力 (S[3:0]) セ レ ク ト 入力は、キ ャ リ ー ル ッ ク アヘ ッ ド ロ ジ ッ ク の伝搬信号 と し て使用 さ れます。 こ の伝搬信号 は、 LUT 出力か ら 入力 さ れます。 キ ャ リ ー初期化 (CYINIT) キ ャ リ ー初期化入力は、 キ ャ リ ー チ ェーンの最初の ビ ッ ト を選択す る のに使用 さ れます。 CYINIT ピ ンの値は、 加算の場合は 0、 減算の場合は 1、 ま たはダ イ ナ ミ ッ ク 高速キ ャ リ ー ビ ッ ト の場合は AX 入力にな り ます。 キ ャ リ ー入力 (CI) CI 入力を使用 し て ス ラ イ ス を カ ス ケー ド 接続 し、 よ り 長いキ ャ リ ー チ ェーン を構築 し ます。 長い キ ャ リ ー チ ェーン を構築する には、 ほかの CARRY4 の CO[3] 出力を こ のピ ンに接続 し ます。 50 japan.xilinx.com Spartan-6 FPGA コ ン フ ィ ギ ャ ブル ロ ジ ッ ク ブ ロ ッ ク ユーザー ガ イ ド UG384 (v1.0) 2009 年 6 月 24 日