Comments
Description
Transcript
SRL 16 - Xilinx
Application Note: Spartan-3 R XAPP465 (v1.0) 04.10.03 概要 Spartan-3 デバイ スでのシ フ ト レ ジ ス タ (SRL 16) と し てのル ッ ク ア ッ プ テーブルの 使用 SRL16 は、16 ビ ッ ト シ フ ト レ ジ ス タ と し て使用 さ れ る ル ッ ク ア ッ プ テーブルの代替モー ド です。 こ の シ フ ト レ ジ ス タ LUT (SRL) モー ド の使用に よ り 、 パフ ォーマン ス の向上 と 大規模な コ ス ト 削減がで き ます。 SRL16 は ソ フ ト ウ ェ ア ツールで自動的に推論で き ますが、効率的な使用で さ ら に コ ス ト を抑え た デザ イ ンが実現で き ます。 は じ めに Spartan-3 FPGA は、 SLICEM ス ラ イ ス のル ッ ク ア ッ プ テーブル (LUT) を フ リ ッ プ フ ロ ッ プ リ ソ ース を使用 し ない 16 ビ ッ ト シ フ ト レ ジ ス タ と し て設定で き ます。 シ フ ト イ ン オペレーシ ョ ンは ク ロ ッ ク と 同期 し てお り 、 出力幅はダ イ ナ ミ ッ ク に選択で き ま す。 独立 し た専用出力に よ り 、 16 ビ ッ ト シ フ ト レ ジ ス タ を何個で も カ ス ケー ド で き る ため、 必要なサ イ ズのシ フ ト レ ジ ス タ を生成で き ます。 各 CLB リ ソ ース では、 8 個の LUT の う ち 4 個を 65 ビ ッ ト シ フ ト レ ジ ス タ と し て設定で き ます。 こ のアプ リ ケーシ ョ ン ノ ー ト は、 16 か ら 64 ビ ッ ト ま でのシ フ ト レ ジ ス タ の イ ン プ リ メ ン テーシ ョ ン に必要な一般的な VHDL と Verilog のサブモジ ュ ール、 お よ び リ フ ァ レ ン ス コ ー ド の例を紹介 し ます。 こ れ ら のサブモジ ュ ールは、 16 ビ ッ ト シ フ ト レ ジ ス タ プ リ ミ テ ィ ブ、 お よ び専用 MUXF5、 MUXF6、 MUXF7 マルチプ レ ク サか ら 構成 さ れてい ます。 こ れ ら のシ フ ト レ ジ ス タ に よ り 、遅延やレ イ テ ン シの補正を必要 と す る アプ リ ケーシ ョ ンの効果的なデ ザ イ ン を展開 し ます。 ま た、 同期 FIFO お よ び内容参照可能 メ モ リ (CAM) デザ イ ンにおいて も シ フ ト レ ジ ス タ は有効です。 フ リ ッ プ フ ロ ッ プ (SRL16 エ レ メ ン ト な ど ) を使用 し ない Spartan-3 シ フ ト レ ジ ス タ を素早 く 生成す る には、 CORE Generator RAM-based Shift Register モジ ュ ールを使用 し ます。 シ フ ト レジス タ アーキテ ク チ ャ SRL16 構造についての説明は、 基本的なシ フ ト レ ジ ス タ か ら 始め FPGA 構造の周辺構築へ と 展開 し て い き ます。 LUT 構造 ル ッ ク ア ッ プ テーブルは、 バ イ ナ リ セ レ ク ト ラ イ ン と し て機能す る 4 入力の 16:1 マルチプ レ ク サで す。 ル ッ ク ア ッ プ テーブルにプ ロ グ ラ ム さ れた値が選択 さ れたデー タ にな り ます (図 1 を参照)。 1 A[3:0] 0 1 1 1 0 0 0 1 1 1 0 1 0 0 1 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 D x465_01_040203 図 1: 16:1 マルチ プ レ ク サ と し て設計 さ れた LUT SRL16 は、 ア ド レ ス指定可能なシ フ ト レ ジ ス タ の代わ り に固定 し た LUT 値が設定 さ れます (図 2 を参 照)。 シ フ ト レ ジ ス タ の入力は LUT の同期 RAM 設定 と 同様に、 デー タ 入力、 ク ロ ッ ク お よ び ク ロ ッ ク イ ネーブル (図2 に表示 さ れてい ません ) があ り ます。 シ フ ト レ ジ ス タ の最後の フ リ ッ プ フ ロ ッ プには特 © 2002 Xilinx, Inc. All rights reserved. すべての Xilinx の商標、 登録商標、 特許、 免責条項は、 http://www.xilinx.com/legal.htm に リ ス ト さ れています。 他のすべての商標お よび登録商標 は、 それぞれの所有者が所有 し ています。 すべての仕様は通知な し に変更 さ れる可能性があ り ます。 保証否認の通知 : Xilinx ではデザイ ン、 コ ー ド 、 その他の情報を 「現状有姿の状態」 で提供 し ています。 この特徴、 ア プ リ ケーシ ョ ン ま たは規格の一実施例 と し てデザイ ン、 コ ー ド 、 そ の他の情報を提供 し てお り ますが、 Xilinx は この実施例が権利侵害のク レ ームを全 く 受けない と い う こ と を表明する も のではあ り ません。 お客様がご自分で実装 さ れる場合には、 必要な 権利の許諾を受け る責任があ り ます。 Xilinx は、 実装の妥当性に関するいかな る保証を行な う も のではあ り ません。 こ の保証否認の対象 と な る保証には、 権利侵害の ク レームを受けない こ と の保証または表明、 お よび市場性や特定の目的に対する適合性についての黙示的な保証も 含まれます。 www.xilinx.co.jp 1 R 別な出力があ り ます。 ラ イ ブ ラ リ プ リ ミ テ ィ ブでは こ れを Q15、 ま た FPGA Editor では MC15 と 表示 し ます。 LUT 入力は、 シ フ ト レ ジ ス タ の 16 記憶装置エ レ メ ン ト の中か ら 非同期 ( ま たはダ イ ナ ミ ッ ク ) に 1 つ選択 し ます。 DIN DQ DQ DQ DQ DQ DQ DQ DQ DQ DQ DQ DQ DQ DQ DQ DQ Q15 or MC15 CLK A[3:0] 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 D x465_02_040203 図 2: ア ド レ ス指定可能なシ フ ト レ ジ ス タ と し て設定 し た LUT ダ イ ナ ミ ッ ク レ ン グス調整 ア ド レ ス でシ フ ト レ ジ ス タ の長 さ を ダ イ ナ ミ ッ ク に変更で き ます。 Q15 の代わ り に D を シ フ ト レ ジ ス タ 出力 と し て使用す る 場合は、 ア ド レ ス に 7 (0111) を入力 し て出力を Q7 に設定 し 、 8 ビ ッ ト シ フ ト レ ジ ス タ を エ ミ ュ レー ト し ます。 ア ド レ ス ラ イ ンは mux を制御 し てい る ため、 出力に非同期パ ス が与え ら れます。 ロ ジ ッ ク セル構造 各 SRL16 LUT には関連 し た フ リ ッ プ フ ロ ッ プがあ り 、 こ れ ら がすべての ロ ジ ッ ク セルを構成 し てい ま す。 シ フ ト レ ジ ス タ のア ド レ ス指定可能な ビ ッ ト は同期出力のため、フ リ ッ プフ ロ ッ プに格納で き ます。 ま た CLB の組み合わせ出力へ直接接続 も で き ます。 レ ジ ス タ を使用す る 場合は、 固定シ フ ト レ ジ ス タ 長を選択 し てい る 固定ア ド レ ス ラ イ ンが必要です。 フ リ ッ プ フ ロ ッ プの ク ロ ッ ク か ら 出力の遅延はシ フ ト レ ジ ス タ の遅延 よ り 短いため、 パ フ ォーマ ン ス向上には最期か ら 2 番目の ビ ッ ト を ア ド レ ッ シ ン グ し 、 シ フ ト レ ジ ス タ の最後にフ リ ッ プ フ ロ ッ プを使用 し ます。 フ リ ッ プ フ ロ ッ プの使用に よ り 、 出力の 非同期ま たは同期セ ッ ト / リ セ ッ ト も 可能にな り ます。 専用 SHIFTIN 信号 が シ フ ト レ ジ ス タ 入 力 に な り 、 最 期 の シ フ ト レ ジ ス タ の Q15/MC15 信号 が SHIFTOUT 出力を駆動 し ます。 ア ド レ ス指定可能な D 出力は、すべての SRL プ リ ミ テ ィ ブにあ り ます が、 SHIFTOUT を駆動す る Q15/MC15 信号は、 カ ス ケー ド 可能な SRLC16 プ リ ミ テ ィ ブのみに存在 し ます。 SRLC16 SHIFTIN SHIFT-REG A[3:0] 4 A[3:0] D MC15 WS DI Output D Q Registered Output DI (BY) WSG CE (SR) CLK (optional) WE CK SHIFTOUT or YB 図 3: ロ ジ ッ ク セル SRL 構造 2 www.xilinx.co.jp X465_03_040203 R ス ラ イ ス構造 ス ラ イ ス 内 の 2 つ の ロ ジ ッ ク セ ル は、 最大 32 ビ ッ ト の シ フ ト レ ジ ス タ を カ ス ケ ー ド す る た め、 SHIFTOUT お よ び SHIFTIN 信号で接続 さ れます (図 4 を参照)。 こ の信号は、前にあ る シ フ ト レ ジ ス タ の Q15/MC15 と 次のシ フ ト レ ジ ス タ の DI ( ま たは Q0 フ リ ッ プフ ロ ッ プ) を接続 し ます。 SLICEM SRL16 LC MC15 SHIFTOUT SHIFTIN DI SRL16 LC X465_04_040203 図 4: ス ラ イ スのロ ジ ッ ク セル間のシ フ ト レ ジ ス タ 接続 ダ イ ナ ミ ッ ク ア ド レ ッ シ ン グ ( ま たは、ダ イ ナ ミ ッ ク レ ン グ ス調整) を行 う 場合、各 SRL16 か ら の 2 つ の独立 し たデー タ 出力は多重化 し ます。 F5MUX に よ り 、 2 つの SRL16 ビ ッ ト の う ち片方が選択 さ れま す (図 5 を参照)。 SRL16 LC F5MUX A[3:0] SRL16 LC A4 X465_05_040203 図 5: F5MUX を使用 し た複数 SRL16 コ ンポーネ ン ト のア ド レ ッ シ ング CLB 構造 Spartan-3 の CLB には 4 つの ス ラ イ ス があ り 、 各ス ラ イ ス に 2 つのル ッ ク ア ッ プ テーブルがあ り ます が、 その中の 2 つの ス ラ イ ス のみ、 ル ッ ク ア ッ プ テーブルを SRL16 コ ン ポーネ ン ト お よび分散 RAM と し て使用で き ます。 左側に位置す る 2 つの SLICEM コ ン ポーネ ン ト は、 2 つの LUT を 16 ビ ッ ト シ フ ト レ ジ ス タ と し て設定で き ま す。 LUT 間の カ ス ケー ド と 同様に、 SHIFTOUT か ら SHIFTIN への SLICEM コ ン ポーネ ン ト 間のカ ス ケー ド も で き ます。 ひ と つの CLB の 左側に位置す る 4 個の LUT を カ ス ケー ド す る と 、 最大 64 ク ロ ッ ク 周期の遅延を生成 し ます (図 6 を参照)。 www.xilinx.co.jp 3 R 1 Shift Chain in CLB IN DI D SRLC16 MC15 FF DI D SRLC16 MC15 FF SLICEM S1 SHIFTOUT SHIFTIN DI D SRLC16 MC15 FF DI D SRLC16 MC15 FF SLICEM S0 OUT CASCADABLE OUT X465_06_040503 図 6: CLB のシ フ ト レ ジ ス タ LUT のカ スケー ド SLICEM にあ る 2 つの LUT を接続す る の と 同様に、 複数の SLICEM を ア ド レ ス指定す る にはマルチ プ レ ク サ を使用 し ま す。 F6MUX を使用 し て CLB 内の SRL16 コ ン ポーネ ン ト を 3 つ ま たは 4 つ選択 し 、 最大 64 ビ ッ ト ま でのア ド レ ス指定可能なシ フ ト レ ジ ス タ がで き ます (図 7 を参照)。 D LUT F5 LUT SLICEM S1 F6 LUT F5 LUT SLICEM S0 CLB X465_07_040203 図 7: F6MUX を使用 し た 64 ビ ッ ト シ フ ト レ ジ ス タ のア ド レ ス指定 4 www.xilinx.co.jp R ライブラ リ プリ ミティブ ラ イ ブ ラ リ プ リ ミ テ ィ ブは 8 個あ り 、 オプシ ョ ンで ク ロ ッ ク イ ネーブル (CE)、 反転 ク ロ ッ ク (CLK)、 お よ びカ ス ケー ド 可能な出力 (Q15) の組み合わせがあ り ます。 合成お よ びシ ミ ュ レーシ ョ ンで使用で き る すべてのプ リ ミ テ ィ ブを 表 1 に示 し ます。 表 1: シ フ ト レ ジ ス タ プ リ ミ テ ィ ブ プリ ミティブ 長さ 制御 ア ド レ ス入力 出力 SRL16 16 ビ ッ ト CLK A3、 A2、 A1、 A0 Q SRL16E 16 ビ ッ ト CLK、 CE A3、 A2、 A1、 A0 Q SRL16_1 16 ビ ッ ト CLK A3、 A2、 A1、 A0 Q SRL16E_1 16 ビ ッ ト CLK、 CE A3、 A2、 A1、 A0 Q SRLC16 16 ビ ッ ト CLK A3、 A2、 A1、 A0 Q、 Q15 SRLC16E 16 ビ ッ ト CLK、 CE A3、 A2、 A1、 A0 Q、 Q15 SRLC16_1 16 ビ ッ ト CLK A3、 A2、 A1、 A0 Q、 Q15 SRLC16E_1 16 ビ ッ ト CLK、 CE A3、 A2、 A1、 A0 Q、 Q15 D SRLC16E CE CLK Q Q15 A0 A1 A2 A3 X465_19_040503 図 8: SRLC16E プ リ ミ テ ィ ブ 表 2: VHDL および Verilog コ ー ド によ る初期化 シ フ ト レ ジ ス タ は、 合成お よ びシ ミ ュ レ ーシ ョ ンにおいて VHDL ま たは Verilog コ ー ド で初期化で き ま す。 合成を 行 う 場合、 16 ビ ッ ト シ フ ト レ ジ ス タ イ ン ス タ ン シ エーシ ョ ン に INT 属性が あ る ので、 Alliance シ リ ーズ ツールで コ ンパ イ ルで き る よ う に、 INT 属性を EDIF 出力フ ァ イ ルに コ ピー し ます。 VHDL コ ー ド シ ミ ュ レーシ ョ ンは、 generic パ ラ メ ー タ を使用 し て属性を渡 し ます。 Verilog コ ー ド シ ミ ュ レーシ ョ ンは、 defparam パ ラ メ ー タ を使用 し て属性を渡 し ます。 S3_SRL16E シ フ ト レ ジ ス タ イ ン ス タ ン シエーシ ョ ン コ ー ド の例 (VHDL お よ び Verilog) を用いて、 こ れ ら のテ ク ニ ッ ク を説明 し ます (VHDL お よび Verilog テ ン プ レー ト を参照)。 S3_SRL16E.vhd お よ び .v フ ァ イ ルに関す る 説明はあ り ません。 www.xilinx.co.jp 5 R ポー ト 信号 ク ロ ッ ク ― CLK 同期シ フ ト イ ンでは、 ク ロ ッ ク の立ち上が り エ ッ ジ、 ま たは立ち下が り エ ッ ジの ど ち ら か片方を使用 し ます。 デー タ お よ び ク ロ ッ ク イ ネーブル入力ピ ンのセ ッ ト ア ッ プ タ イ ムは、 選択 し た ク ロ ッ ク エ ッ ジ が基準にな り ます。 デー タ 入力 — D デー タ 入力は、 シ フ ト レ ジ ス タへ移動す る 新 し いデー タ (1 ビ ッ ト ) を与え ます。 ク ロ ッ ク イ ネーブル — CE ( オ プ シ ョ ン ) ク ロ ッ ク イ ネーブル ピ ンは、 シ フ ト 機能に影響を与え ます。 非ア ク テ ィ ブな ク ロ ッ ク イ ネーブル ピ ン は、 シ フ ト レ ジ ス タ へデー タ を移動 し ません。 ま た、 新 し いデー タ の書 き 込み も 行い ません。 ク ロ ッ ク イ ネーブルを ア ク テ ィ ブに し た場合、 data in (D) が最初の ロ ケーシ ョ ンに書 き 込まれ、 すべてのデー タ が 1 つの ロ ケーシ ョ ン に移動 し ます。 こ のオプシ ョ ン を使用 し た場合、 新 し いデー タ は出力ピ ン (Q) お よ びカ ス ケー ド 可能な出力ピ ン (Q15) か ら 出力 さ れます。 ア ド レ ス — A3、 A2、 A1、 A0 ア ド レ ス入力は、読み出 さ れ る ビ ッ ト (0 か ら 15 ま で) を選択 し ます。 選択 さ れた n 番目の ビ ッ ト は、出 力 ピ ン (Q) か ら 出力 さ れ ま す。 カ ス ケー ド 可能な出力 ピ ン (Q15) は、 常に シ フ ト レ ジ ス タ の最後の ビ ッ ト ( ビ ッ ト 15) を出力す る ためア ド レ ス入力の影響は受け ません。 デー タ 出力 — Q デー タ 出力 Q は、 ア ド レ ス入力で選択 さ れたデー タ 値 (1 ビ ッ ト ) を出力 し ます。 デー タ 出力 — Q15 ( オプ シ ョ ン ) デー タ 出力 Q15 は、16 ビ ッ ト シ フ ト レ ジ ス タ の最後の ビ ッ ト を出力 し ます。 各シ フ ト イ ンの動作が終 了す る と 毎回新 し いデー タ が出力 さ れます。 制御ピ ンの反転 2 つの制御ピ ン (CLK、 CE) には、 反転オプシ ョ ンがあ り ます。 デフ ォ ル ト では、 ク ロ ッ ク は立ち上が り エ ッ ジで、 CE はア ク テ ィ ブ high です。 GSR グ ロ ーバル セ ッ ト / リ セ ッ ト (GSR) は、 シ フ ト レ ジ ス タ に影響を与え ません。 属性 内容の初期化 — INIT INIT 属性は、 シ フ ト レ ジ ス タ 内容の初期値を定義 し た も のです。 INIT 属性は 4 桁 (0000) の 16 進数で エン コー ド さ れた ビ ッ ト ベ ク タ です。 一番左の数字が最上位ビ ッ ト (MSB) です。 デバ イ ス設定シーケ ン ス で、 シ フ ト レ ジ ス タ はデフ ォル ト ですべての数字が 0 に初期化 さ れますが、 その他の設定値を指定 す る こ と も で き ます。 ロケーシ ョ ン制約 CLB 内部の ス ラ イ ス レ イ ア ウ ト は 図 9 に示 し ます。 各 CLB に 4 つの ス ラ イ ス があ り ますが、 左下 2 つの ス ラ イ ス のみシ フ ト レ ジ ス タ と し て使用で き ます。 CLB で S0 お よ び S1 に位置す る こ の 2 つの ス ラ イ スは、 SLICEM と 表示 さ れます。 各座標は、 XOYO お よ び X0Y1 です。 配置制約を行 う 場合、 SRL プ リ ミ テ ィ ブの LOC プ ロ パテ ィ で こ の座標を使用 し ます。 専用 CLB シ フ ト チ ェ ーンは上下に渡っ て い ますが、 始め と 終わ り は 4 つの SLICEM LUT の ど こ を選んで も チ ェーン を作成で き ます。 6 www.xilinx.co.jp R Left-Hand SLICEM (Logic or Distributed RAM or Shift Register) Right-Hand SLICEL (Logic Only) COUT CLB SLICE X1Y1 SLICE X1Y0 COUT Switch Matrix CIN Interconnect to Neighbors SLICE X0Y1 SHIFTOUT SHIFTIN SLICE X0Y0 CIN X465_08_040203 図 9: CLB 内部のス ラ イ ス レ イ アウ ト シ フ ト レ ジ ス タ の動作 デー タ フ ロー 各シ フ ト レ ジ ス タ (SR16 プ リ ミ テ ィ ブ) は、 次をサポー ト し ます。 • 同期シ フ ト イ ン • ア ド レ ス がダ イ ナ ミ ッ ク に変更す る 場合の非同期 1 ビ ッ ト 出力 • ア ド レ ス が固定の場合の同期シ フ ト ア ウ ト その他、 カ ス ケー ド 可能なシ フ ト レ ジ ス タ (SRLC16) は、 最期 (16 番目) の ビ ッ ト の同期シ フ ト ア ウ ト 出力を サポー ト し ます。 こ の出力には、 CLB リ ソ ー ス 内で次の SRLC16 の入力への専用接続が あ り ま す。 2 つのプ リ ミ テ ィ ブを 図 10 に示 し ます。 SRLC16E D Q Address SRL16E CE Q15 CLK D Q Address SRLC16E CE CLK D Q Address CE CLK Q15 X465_09_040603 図 10: シ フ ト レ ジ ス タ と カ スケー ド 可能なシ フ ト レ ジ ス タ www.xilinx.co.jp 7 R シ フ ト オペ レ ーシ ョ ン シ フ ト オペレーシ ョ ンは、CE がア ク テ ィ ブ High でシ ン グル ク ロ ッ ク エ ッ ジです。 イ ネーブルが High の と き 、 入力 (D) はシ フ ト レ ジ ス タ の最初の ビ ッ ト に ロ ー ド さ れ、 各ビ ッ ト が順に次のポジシ ョ ンへ と 移動 し ます。 カ ス ケー ド 可能なシ フ ト レ ジ ス タ (SRLC16 な ど ) では、 最期の ビ ッ ト が Q15 か ら 出力 さ れます。 4 ビ ッ ト ア ド レ ス で選択 さ れた ビ ッ ト は、 Q か ら 出力 さ れます。 ダ イ ナ ミ ッ ク リ ー ド オペ レ ーシ ョ ン Q 出力は、 4 ビ ッ ト ア ド レ ス で決定 し ます。 4 入力ピ ンに新 し いア ド レ ス が与え ら れ る たびに、 LUT へ のア ク セ ス時間を経て Q 出力に新 し い ビ ッ ト ポジシ ョ ンの値が出力 さ れます。 こ のオペレーシ ョ ンは、 ク ロ ッ ク お よ び ク ロ ッ ク イ ネーブル信号 と は非同期で単独の動作です。 シ フ ト お よ びダ イ ナ ミ ッ ク リ ー ド オペレーシ ョ ン を 図 11 に示 し ます。 CLK CE D tshift Q Q15 Shift Timing Diagram 7 Address Q 10 Position (7) taccess Position (10) taccess Dynamic Length Timing Diagram X465_10_040203 図 11: シ フ ト およびダ イ ナ ミ ッ ク レ ングス タ イ ミ ング ダ イ アグ ラ ム ス タ テ ィ ッ ク リ ー ド オペ レ ーシ ョ ン 4 ビ ッ ト ア ド レ ス が固定 さ れてい る 場合、 Q 出力は常に同 じ ビ ッ ト ポジシ ョ ン を使用 し ます。 こ のモー ド は、 1 つの LUT に 1 か ら 16 ビ ッ ト ま で ど の長 さ のシ フ ト レ ジ ス タ で も イ ンプ リ メ ン ト で き ます。 シ フ ト レ ジ ス タ長は (N+1) です。 (N = 入力ア ド レ ス ) Q 出力は、 各シ フ ト オペレーシ ョ ンに同期 し て変化 し ます。 前の ビ ッ ト は次のポジシ ョ ンに移動 し 、 Q か ら 出力 さ れます。 特性 8 • シ フ ト オペレーシ ョ ン 1 回につ き 、 ク ロ ッ ク エ ッ ジが 1 つ必要です。 • ダ イ ナ ミ ッ ク レ ン グ ス リ ー ド オペレーシ ョ ンは非同期です。 (Q 出力 ) • ス タ テ ィ ッ ク レ ン グ ス リ ー ド オペレーシ ョ ンは同期です。 (Q 出力 ) • デー タ 入力には、 セ ッ ト ア ッ プか ら ク ロ ッ ク 間の タ イ ミ ン グ仕様があ り ます。 www.xilinx.co.jp R • • シ フ ト レジス タ 推論 カ ス ケー ド 可能な コ ン フ ィ ギ ュ レーシ ョ ンでは、 Q15 出力に常に最期の ビ ッ ト 値が出力 さ れます。 Q15 出力は、 各シ フ ト オペレーシ ョ ンの後に同期 し て変化 し ます。 一般的な HDL コ ー ド でシ フ ト レ ジ ス タ を記述 し た場合、 合成ツールは SRL16 コ ン ポーネ ン ト の使用 を推論 し ます。 SRL16 には、 同期ま たは非同期セ ッ ト / リ セ ッ ト 入力の ど ち ら も ないため、 同時にすべ てのビ ッ ト にア ク セ ス で き ません。 こ の機能は SRL16 を使用する 上で妨げ と な る ため、 フ リ ッ プ フ ロ ッ プの方に こ の機能を イ ンプ リ メ ン ト し ます。 シ フ ト レ ジ ス タ が 16 ビ ッ ト 以上の場合、 ま たは Q15 のみ使用 し た場合は、 カ ス ケー ド 可能なシ フ ト レ ジ ス タ (SRLC16) が推論 さ れ る 可能性があ り ます。 SRL16 シ フ ト レ ジ ス タ はパ ラ レル ロ ー ド で き ませんが、 ロ ー ド し たいデー タ を シ フ ト イ ンす る と 同等 の機能を イ ンプ リ メ ン ト で き ます。 ロ ー ド コ マ ン ド には一定の タ イ ミ ン グが必要です。 VHDL 推論コ ー ド 次は、 SRL16 を推論す る VHDL コ ー ド です。 architecture Behavioral of srl16 is signal Q_INT: std_logic_vector(15 downto 0); begin process(C) begin if (Cíevent and C=’1’) then Q_INT <= Q_INT(14 downto 0) & D; end if; end process; Q <= Q_INT(15); end Behavioral; 反転 ク ロ ッ ク (SRL16_1) を推論 さ せ る 場合は、 C='1' を C='0' に変更 し ま す。 ク ロ ッ ク イ ネーブル (SRL16E) を推論 さ せ る 場合は、 最初の if-then 文の後に if (CE='1') then を挿入 し ます。 Verilog 推論コ ー ド 次は、 SRL16 を推論す る Verilog コ ー ド です。 always @ (posedge C) begin Q_INT <= {Q_INT[14:0],D}; end always @(Q_INT) begin Q <= Q_INT[15]; end 反転 ク ロ ッ ク (SRL16_1) を推論 さ せ る 場合は、(posedge C) を (negedge C) に変更 し ます。 ク ロ ッ ク イ ネーブル (SRL16E) を推論 さ せ る 場合は、 begin 文の後に if(CE) を挿入 し ます。 www.xilinx.co.jp 9 R シ フ ト レジス タ サブ モ ジ ュ ール 16 ビ ッ ト プ リ ミ テ ィ ブのほかに も 、 32 ビ ッ ト と 64 ビ ッ ト のカ ス ケー ド 可能なシ フ ト レ ジ ス タ を イ ン プ リ メ ン ト す る 2 つのサブモジ ュ ールが VHDL お よ び Verilog コ ー ド であ り ます。こ のサブモジ ュ ール を 表 3 に示 し ます。 表 3: シ フ ト レ ジ ス タ サブ モ ジ ュ ール サブモジ ュール 長さ 制御 ア ド レ ス入力 出力 SRLC32E_SUBM 32 ビ ッ CLK、 CE A4、 A3、 A2、 A1、 A0 Q、 Q31 CLK、 CE A5、 A4、 A3、 A2、 A1、 A0 Q、 Q63 ト SRLC64E_SUBM 64 ビ ッ ト サブモジ ュ ールは、 SRLC16E プ リ ミ テ ィ ブが基本 と な り 、 専用マルチプ レ ク サ (MUXF5、 MUXF6 な ど ) が あ り ま す。 こ の イ ン プ リ メ ン テーシ ョ ン は、 大規模な シ フ ト レ ジ ス タ の場合で も 、 高速な ス タ テ ィ ッ ク レ ン グ ス モー ド お よ びダ イ ナ ミ ッ ク レ ン グ ス モー ド がで き ます。 10 www.xilinx.co.jp R 表 3 のサブモジ ュ ールで イ ン プ リ メ ン ト し た カ ス ケー ド 可能な シ フ ト レ ジ ス タ (32 ビ ッ ト お よ び 64 ビ ッ ト ) を 図 12 に示 し ます。 A4 Add. A5, A4 5 Add. A3, A2, A1, A0 D A3, A2, A1, A0 D 4 A5 6 Q D D 4 A[3:0] A4 CE Q A[3:0] CE Q15 Q15 SRLC16E SRLC16E Q MUXF5 D 4 MUXF5 Q D 4 A[3:0] CE Q A[3:0] CE Q15 Q31 Q15 SRLC16E SRLC16E Q 32-bit Shift Register MUXF6 D 4 Q A[3:0] CE Q15 SRLC16E MUXF5 D 4 Q A[3:0] CE Q15 Q63 SRLC16E 64-bit Shift Register X465_11_040603 図 12: シ フ ト レ ジス タ モ ジ ュ ール (32 ビ ッ ト および 64 ビ ッ ト ) 1 つのサブモジ ュ ールにつき 、 すべての ク ロ ッ ク イ ネーブル (CE) と ク ロ ッ ク (CLK) 入力は、 1 つのグ ロ ーバル ク ロ ッ ク イ ネーブル と 1 つの ク ロ ッ ク 信号に接続 し てい ま す。 グ ロ ーバルな ス タ テ ィ ッ ク ま たはダ イ ナ ミ ッ ク レ ン グ ス モー ド を必要 と し ない場合は、マルチプ レ ク サな し で SRLC16E プ リ ミ テ ィ ブを カ ス ケー ド で き ます。 完全同期シ フ ト レ ジ ス タ すべてのシ フ ト レ ジ ス タ プ リ ミ テ ィ ブお よ びサブモジ ュ ールは、 同 じ ス ラ イ ス内の レ ジ ス タ を使用 し ません。 完全同期 リ ー ド / ラ イ ト シ フ ト レ ジ ス タ を イ ンプ リ メ ン ト す る と き は、 出力ピ ン Q を フ リ ッ プ www.xilinx.co.jp 11 R フ ロ ッ プに接続す る 必要があ り ます。 図 13 で示す よ う に、 シ フ ト レ ジ ス タ と フ リ ッ プ フ ロ ッ プは同 じ ク ロ ッ ク を共有 し てい ます。 FF D Q SRLC16E D Q Synchronous Output Address CE (Write Enable) Q15 CLK X465_12_040203 図 13: 完全同期シ フ ト レ ジ ス タ こ の設定では、 タ イ ミ ン グ が向上 し デザ イ ン が簡略化 し ま す。 フ リ ッ プ フ ロ ッ プは、 シ フ ト レ ジ ス タ チ ェ ーンの最後の レ ジ ス タ にな る ので、 ス タ テ ィ ッ ク ま たはダ イ ナ ミ ッ ク ア ド レ スは、 要求す る 長 さ か ら フ リ ッ プ フ ロ ッ プの分を 1 ビ ッ ト 引いて考え ます。 必要な場合は、 カ ス ケー ド さ れた出力を フ リ ッ プ フ ロ ッ プに レ ジ ス タ す る こ と も で き ます。 ス タ テ ィ ッ ク シ フ ト レジス タ カ ス ケー ド 可能な 16 ビ ッ ト シ フ ト レ ジ ス タ は、 専用マルチプ レ ク サ (MUXF5、 MUXF6 な ど ) を使用 し ない、 あ ら ゆ る 長 さ の ス タ テ ィ ッ ク レ ン グ ス モー ド レ ジ ス タ を イ ンプ リ メ ン ト で き ます。 40 ビ ッ ト シ フ ト レ ジ ス タ を 図 14 に示 し ます。 最期の SRLC16E プ リ ミ テ ィ ブのみ、 ア ド レ ス入力を 0111 に固 定す る 方法、 お よ びシ フ ト レ ジ ス タ の長 さ を 39 ビ ッ ト ( ア ド レ ス を 0110 に固定) に制限 し て、 フ リ ッ プ フ ロ ッ プを最期の レ ジ ス タ と し て使用す る 方法があ り ます。 (SRLC16E プ リ ミ テ ィ ブの場合、 シ フ ト レ ジ ス タ の長 さ はア ド レ ス入力 + 1 です。 ) D D D D LUT LUT Q15 SRLC16 Q15 SRLC16 D D LUT LUT Q15 SRLC16 Q15 SRLC16 FF "0111" 4 D A[3:0] Q OUT (40-bit SRL) "0110" D A[3:0] Q LUT LUT Q15 SRLC16 Q15 SRLC16 D Q OUT (40-bit SRL) X465_13_040603 図 14: 40 ビ ッ ト ス タ テ ィ ッ ク シ フ ト レ ジ ス タ VHDL および Verilog イ ン ス タ ン シ エーシ ョ ン すべてのプ リ ミ テ ィ ブお よ びモジ ュ ールの、 VHDL お よ び Verilog の イ ン ス タ ン シエーシ ョ ン テ ン プ レー ト があ り ます。 12 www.xilinx.co.jp R VHDL の場合、各テ ンプ レー ト に component declaration お よ び architecture section があ り ます。 VHDL デザ イ ン フ ァ イ ルにテ ンプ レー ト の各パー ト を挿入 し て く だ さ い。 architecture section の port map には デザ イ ン信号名が必要です。 ShiftRegister_C_x (x = 16、 32、 お よ び 64) テ ン プ レー ト はカ ス ケー ド 可能なモジ ュ ールで、 対応す る SRLCxE プ リ ミ テ ィ ブ (16)、 ま たはサブモジ ュ ール (32 お よ び 64) を イ ン ス タ ン シエー ト し ます。 ShiftRegister_16 テ ンプ レー ト を使用 し て、 SRL16 プ リ ミ テ ィ ブ を イ ン ス タ ン シエー ト で き ます。 VHDL およ び Verilog テ ン プ レ ー ト テ ンプ レー ト 名の数字はビ ッ ト 数を表 し てい ます (例 : SHIFT_SELECT_16 は、 16 ビ ッ ト シ フ ト レ ジ ス タ )。 C はカ ス ケー ド 可能を意味 し ます。 次は、 プ リ ミ テ ィ ブのテ ンプ レー ト です。 • • SHIFT_REGISTER_16 SHIFT_REGISTER_16_C 次は、 サブモジ ュ ールのテ ンプ レー ト です。 • • SHIFT_REGISTER_32_C (submodule: SRLC32E_SUBM) SHIFT_REGISTER_64_C (submodule: SRLC64E_SUBM) 対応す る サブモジ ュ ールは、 デザ イ ン と 合成す る 必要があ り ます。 例 と し て、SHIFT_REGISTER_16_C モジ ュ ールのテ ンプ レー ト を VHDL お よ び Verilog コ ー ド で示 し ます。 VHDL テ ン プ レー ト -- Module: SHIFT_REGISTER_C_16 -- Description: VHDL instantiation template -- CASCADABLE 16-bit shift register with enable (SRLC16E) -- Device: Spartan-3 Family ---------------------------------------------------------------------- Components Declarations: -component SRLC16E -- pragma translate_off generic ( -- Shift Register initialization ("0" by default) for functional simulation: INIT : bit_vector := X"0000" ); -- pragma translate_on port ( 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 Instantiation www.xilinx.co.jp 13 R U_SRLC16E: SRLC16E port map ( D => , -- insert CE => , -- insert CLK => , -- insert A0 => , -- insert A1 => , -- insert A2 => , -- insert A3 => , -- insert Q => , -- insert Q15 => -- insert ); input signal Clock Enable signal (optional) Clock signal Address 0 signal Address 1 signal Address 2 signal Address 3 signal output signal cascadable output signal Verilog テ ン プ レー ト // Module: SHIFT_REGISTER_16 // Description: Verilog instantiation template // Cascadable 16-bit Shift Register with Clock Enable (SRLC16E) // Device: Spartan-3 Family //------------------------------------------------------------------// Syntax for Synopsys FPGA Express // synopsys translate_off defparam //Shift Register initialization ("0" by default) for functional simulation: U_SRLC16E.INIT = 16'h0000; // synopsys translate_on //SelectShiftRegister-II Instantiation SRLC16E U_SRLC16E ( .D(), .A0(), .A1(), .A2(), .A3(), .CLK(), .CE(), .Q(), .Q15() ); // synthesis attribute declarations /* synopsys attribute INIT "0000" */ CORE Generator システム ザ イ リ ン ク ス Core Generator シ ス テ ムは、 SRL16 を使用 し て高速で小型の FIFO ス タ イ ル シ フ ト レ ジ ス タ 、 遅延 ラ イ ン、 お よ び タ イ ム ス キ ュ ー バ ッ フ ァ を生成 し ます。 最大幅 256、 ワ ー ド 数 1024 の非常 に効率的なシ フ ト があ る 、 RAM-based Shift Register モジ ュ ールを 図 15 に示 し ます。 ス タ テ ィ ッ ク レ ン グ ス シ フ ト レ ジ ス タ お よ びダ イ ナ ミ ッ ク レ ン グ ス シ フ ト レ ジ ス タ を生成で き ます。 ま た、 モジ ュ ー ルの出力を レ ジ ス タ す る オプシ ョ ン も あ り ます。 出力を レ ジ ス タ す る オプシ ョ ン を使用す る 場合、 次の よ う な追加オプシ ョ ン が あ り ま す。 Clock Enable、 Asynchronous Set/Clear/Init、 お よ び Synchronous Set/Clear/Init。 相対配置マ ク ロ (RPM) ま たは未配置 ロ ジ ッ ク と し てモジ ュ ールを作成す る オプシ ョ ン も あ り ます。 14 www.xilinx.co.jp R ASET SSET D[N:0] Q[N:0] A[M:0] CE CLK ACLR SCLR AINIT SINIT x465_14_040203 図 15: CORE Generator RAM-Based Shift Register モ ジ ュ ール ア プ リ ケーシ ョ ン 遅延 ラ イ ン レ ジ ス タ が豊富なザ イ リ ン ク ス FPGA アーキテ ク チ ャ は、パ イ プ ラ イ ン ス テージ を追加で き る ため、高 処理能力が得 ら れます。 要求す る 機能を維持す る ため、 デー タ パ ス を均等にす る 必要があ り ます。 遅延 の追加 ク ロ ッ ク サ イ ク ルが必要な場合は、 SRL16 を使用 し ます (図 16 を参照)。 12 Cycles Operation A Operation B 4 Cycles 8 Cycles Operation C 3 Cycles 9-cycle imbalance 3 Cycles 12 Cycles Operation A Operation B 4 Cycles 8 Cycles Operation C Pipeline 3 Cycles 9 Cycles using SRL16 Paths statically balanced 12 Cycles X465_20_040603 図 16: 遅延ラ イ ン と し て SRL16 を使用 www.xilinx.co.jp 15 R リ ニア フ ィ ー ド バ ッ ク シ フ ト レ ジ ス タ リ ニ ア フ ィ ー ド バ ッ ク シ フ ト レ ジ ス タ (LFSR) のシーケ ン ス は、 2n-1 (n = フ リ ッ プ フ ロ ッ プの数) の連続です。 特定の ビ ッ ト を XOR ま たは XNOR ゲー ト を通っ て フ ィ ー ド バ ッ ク す る こ と でシーケ ン ス がで き ます。 カ ウ ン ト シーケ ン ス があ ま り 重要でないアプ リ ケーシ ョ ン (例 : FIFO) に関 し ては、 従 来のバ イ ナ リ カ ウ ン タ の代わ り に LFSR を使用で き ます。 ま た、 擬似 ラ ン ダ ム ナンバー ジ ェ ネ レー タ と し て も 使用 し ます。 LFSR は、 アルゴ リ ズ ムの暗号化お よ び解読に重要な構築ブ ロ ッ ク です。 最長 LFSR は、 シ フ ト レ ジ ス タ 内の特定の場所か ら ビ ッ ト を タ ッ プす る 必要があ り ます。 SRL16 には さ ま ざ ま な タ ッ プ方法があ り ます。 1 つ目は、 Q15 と 次の SRL16 を カ ス ケー ド す る 一方で SRL16 で必 要な ビ ッ ト を ア ド レ ッ シ ン グす る 方法です。 2 つ目は、 タ ッ プ ポ イ ン ト にア ク セ スす る ために フ リ ッ プ フ ロ ッ プを使用 し て SRL16 を拡張する 方法です。 た と えば、 ビ ッ ト 49 と ビ ッ ト 52 の フ ィ ー ド バ ッ ク で 1 つの CLB に 52 ビ ッ ト LFSR が イ ンプ リ メ ン テーシ ョ ン さ れ る 様子を 図 17 に示 し ます。 3 つ目 は、 複数 SRL の LFSR を複製 し 、 各 SRL に異な る ビ ッ ト を ア ド レ ス指定す る 方法です。 4 つ目は、 複 数のビ ッ ト ポジシ ョ ン を得 る ために 1 つの SRL ク ロ ッ ク サ イ ク ルに複数のア ド レ ス を生成す る 方法で す。 LFSR に 必要 な XNOR ゲ ー ト は、 CLB の SLICEL に あ ら か じ め 配置 さ れ て い ま す。 詳細 は、 XAPP210 を参照 し て く だ さ い。 Bit 52 D Q Bit 1 XNOR Bit 49 Bit 17 D Q Output D Q SRL16 Bit 52 Address = 15 Bit 33 D Q D Q SRL16 Bit 51 Address = 15 Bit 49 D Q SRL16 D Q Bit 50 Address = 15 x465_15_040203 図 17: 1 つの CLB にある 52 ビ ッ ト LFSR Gold コ ー ド ジ ェ ネ レー タ 優れた相関プ ロ パテ ィ を持つ コ ー ド シーケ ン ス を生成す る には、 CDMA シ ス テ ム で Gold コ ー ド ジ ェ ネ レー タ を使用 し ます (図 18 を参照)。 要素 コ ー ド を持つ 2 つの LFSR の結果を足 し たモジ ュ ロ 2 に よ り 小 さ な相関 コ ー ド のセ ッ ト を生成す る こ と を R.Gold 氏は提唱 し てい ます。 た く さ んの コ ー ド 信号が 混 じ っ た スペ ク ト ルの中で各 コ ー ド のセ ッ ト を識別で き る よ う にな り ます。 Gold コ ー ド ジ ェ ネ レー タ を図 18 に示 し ます。 LFSR を完成 し て フ ィ ー ド バ ッ ク を行 う のに必要な ロ ジ ッ ク は、 CLB の SLICEL の中に配置 さ れてい ます。 詳細は、 XAPP217 を参照 し て く だ さ い。 16 www.xilinx.co.jp R LFSR 1 Gold Code Out LFSR 2 x465_16_040203 図 18: Gold コ ー ド ジ ェ ネ レー タ FIFO SRL16 コ ン ポーネ ン ト か ら 同期 FIFO を生成で き ます。 他の リ ソ ース が不足 し てい る 場合には、 こ の方 法が非常に有効です。1 つの CLB に対 し て最大 64 ビ ッ ト ま で可能です。 よ り 大規模な FIFO の場合は、 最 も 効果的な リ ソ ース と し てブ ロ ッ ク RAM を使用 し ます。 詳細は、 XAPP256 を参照 し て く だ さ い。 CLK SINIT DATA_IN RD_EN SRL16 Based FIFO DATA_OUT FIFO Count FIFO_COUNT Address Counter WR_EN Status Flag Generation FULL EMPTY x465_17_040203 図 1: SRL16 シ フ ト レ ジ ス タ を使用 し た同期 FIFO カ ウン タ SRL16 の各出力を フ ィ ー ド バ ッ ク す る こ と に よ り 、 16 ス テー ト のシーケ ン ス がで き ます。 SRL16 を カ ス ケー ド し た場合、 さ ら に長い不定カ ウ ン ト シーケ ン ス がで き ます。 タ ー ミ ナル カ ウ ン ト は、 通常の キ ャ リ ー チ ェーン を使用 し て生成で き ます (図 19 を参照)。 www.xilinx.co.jp 17 R TC Q3 SRL 0 1 Q2 SRL 0 1 Q1 SRL 0 1 Q0 SRL 0 VCC 1 x465_18_040503 図 19: タ ー ミ ナル カ ウン ト 付きの SRL-Based カ ウン タ 関連資料および リ フ ァ レンス • XAPP210 : Virtex デバイ スの リ ニ ア フ ィ ー ド バ ッ ク シ フ ト レ ジ ス タ • XAPP211 : SRL マ ク ロ を使用 し た PN ジ ェ ネ レ ー タ リ ニ ア フ ィ ー ド バ ッ ク シ フ ト レ ジ ス タ は FPGA アーキテ ク チ ャ で非常に有効な カ ウ ン タ です。 シ フ ト レ ジ ス タ の基本 と し て SRL16 を使用 し た場合、 1 つの ス ラ イ ス には 15 ビ ッ ト カ ウ ン タ 、 2 つの ス ラ イ ス には 52 ビ ッ ト カ ウ ン タ が入 り ます。 擬似 ラ ン ダ ム雑音シーケ ン ス を使用 し 、 スペ ク ト ラ ム拡散の変調のために信号を コ ー ド 化 し て幅広 い伝送周波に信号を拡散 し ます。 PN ジ ェ ネ レー タ は LFSR がベース であ り 、 SRL16 コ ン ポーネ ン ト で効率的に生成で き ます。 • XAPP217 : Virtex デバイ スの Gold コ ー ド ジ ェ ネ レ ー タ • XAPP220 : ワ イ ア レ ス ア プ リ ケーシ ョ ンの機能ブ ロ ッ ク と し ての LFSR PN シーケ ン ス の特殊な タ イ プ と し て Gold コ ー ド ジ ェ ネ レー タ があ り ます。 こ れは、 SRL16 ベー ス の LFSR で生成で き ます。 CDMA な ど のアプ リ ケーシ ョ ンにおけ る LFSR ( 例 : Gold コ ー ド ジ ェ ネ レー タ ) の使用に関す る 詳細について • • XAPP256 : Virtex-II シ フ ト レ ジ ス タ を使用 し た FIFO 小規模な同期 FIFO を構築する には SRL16 が最適です。 ど んな幅の FIFO で も 作成で き 、 1 ビ ッ ト の解像度が得 ら れます。 カ ス ケー ド 可能な SRL16 シ フ ト レ ジ ス タ (SRLC16) で フ レ キ シブルな深 度が 16 得 ら れます。 こ れ ら のテ ク ニ ッ ク は、 ブ ロ ッ ク RAM リ ソ ース が不足 し てい る 場合の大規 模 FIFO の生成に有益です。 TechXclusive : The SRL16E : How Using this Exciting Mode Can Lead to Cost Saving of an Order of Magnitude SRL16 の機能お よ び次の項目におけ る アプ リ ケーシ ョ ンについて説明 し ます。 パ イ プ ラ イ ン補正、 擬似 ラ ン ダ ム ノ イ ズ ジ ェ ネ レー タ 、 シ リ アル フ レーム同期装置、 ラ ン ニ ン グ アベレージ、 パルス 生成 と ク ロ ッ ク 分割、 パ タ ーン生成、 ス テー ト マシ ン、 動的ア ド レ ス指定可能シ フ ト レ ジ ス タ 、 FIFO、 お よ び RS232 レ シーバ。 • DS228 : RAM-Based Shift Register LogiCORE Module SRL16 を使用 し て、 高速で小型な FIFO ス タ イ ルのシ フ ト レ ジ ス タ 、 遅延 ラ イ ン、 お よ び タ イ ム ス キ ュ ー バ ッ フ ァ を生成 し ます。 • SRL16 Primitives in Libraries Guide SRL16 プ リ ミ テ ィ ブ と その変形の使用方法お よ び機能について説明 し ます。 おわ り に Sprtan 3 ル ッ ク ア ッ プ テーブルの SRL16 は、 16 個の フ リ ッ プ フ ロ ッ プ を使用 し ない空間効率の よ い シ フ ト レ ジ ス タ です。 小規模シ フ ト レ ジ ス タ が HDL コ ー ド で記述 さ れた場合、 自動的に こ の機能が推 論 さ れます。 こ のアプ リ ケーシ ョ ン ノ ー ト で説明する SRL16 の使用を積極的に取 り 入れ る こ と に よ り 、 その他のアプ リ ケーシ ョ ンにおいて も 優れた効果が得 ら れます。 18 www.xilinx.co.jp R 改訂履歴 次の表に、 こ の文書の改訂履歴を示 し ます。 日付 バージ ョ ン 04/10/03 1.0 改訂内容 初版 リ リ ース www.xilinx.co.jp 19