• 検索結果がありません。

資料作成Wordフォーム(社外秘)

N/A
N/A
Protected

Academic year: 2021

シェア "資料作成Wordフォーム(社外秘)"

Copied!
107
0
0

読み込み中.... (全文を見る)

全文

(1)

Spartan-6 FPGA

設計ガイド

(2)

本設計情報は、設計者の皆様がザイリンクス社 Spartan-6 デバイス選択、および設計を進める上で必要となる 基本的な注意事項をまとめた資料です。Spartan-6 に関する詳細な技術情報はデータシートおよびユーザーガ イドを参照してください。 本資料に記載されている各事項については、データシートおよびユーザーガイドに記載されている事項を優先 します。データシートおよびユーザーガイドのURLは 14 章をご参照ください。

目次

1 Spartan-6 概要 ... 5 1.1 特徴... 5 1.2 デバイス規模、およびリソース... 6 1.3 型番とパッケージマーキング... 8 2 アーキテクチャ... 9 3 クロック リソース... 10 3.1 IOクロック領域... 10 3.2 クロック ネットワーク概要... 11 3.3 グローバルクロックバッファ... 12 3.4 リージョナルクロックバッファ... 13 3.5 GCLKピン ... 15 3.6 クロック専用入力バッファ... 18 4 CMT(クロック マネージメント タイル) ... 20 4.1 DCM... 22 4.1.1 DCM_SPプリミティブ ... 24 4.1.1.1 DLL機能 ... 24 4.1.1.2 DCMの周波数合成... 26 4.1.2 DCM_ CLKGENプリミティブ ... 26 4.1.2.1 ダイナミック周波数合成... 27 4.1.2.2 スプレッドスペクトラムクロック... 27 4.1.2.3 フリーランニングオシレータ... 28 4.1.3 DCMパフォーマンス ... 28 4.1.4 DCM初期化... 29 4.1.5 DCMモジュール作成方法 ... 30 4.2 PLL... 31 4.2.1 ジッタフィルタ... 33 4.2.2 クロック ネットワーク スキュー調整 ... 34 4.2.3 周波数合成... 35 4.2.4 PLLパフォーマンス ... 36

(3)

4.2.6 PLLモジュール作成方法... 36 5 ブロックRAM... 37 5.1 ブロックRAM ... 38 6 DSP ... 40 6.1 概要... 40 6.2 入力ファンクション... 42 6.3 OPMODE ... 43 7 CLB (コンフィギャブル ロジック ブロック) ... 45 7.1 スライス... 45 7.2 LUT(ルックアップテーブル)... 47 7.3 内部ロジックパフォーマンス ... 48 7.4 分散RAM ... 48 7.5 LUTシフトレジスタ(SRL) ... 49 8 Select IOリソース... 50 8.1 Select IO ... 51 9 SelectIO ロジックリソース ... 52 9.1 ILOGIC2 リソース ... 53 9.2 OLOGIC2 リソース ... 54 9.3 IODELAY2 ( 入力/出力遅延エレメント ) ... 55 9.4 位相検出器の概要... 59 9.5 アドバンスト SelectIO... 61 10 RocketIO GTP ( 3.125Gbps 内蔵 トランシーバ )... 68 10.1 Spartan-6 GTP概要 ... 68

10.2 Clock Distribution from / to GTP... 70

10.3 Transmitter Function ... 75 10.4 Receiver Function ... 76 11 メモリコントローラブロック... 77 12 コンフィギュレーション... 81 12.1 コンフィギュレーションビット ... 81 12.2 コンフィギュレーション用IOバンク ... 81 12.3 コンフィギュレーションモード ... 82 12.4 コンフィギュレーションROM... 88 12.5 コンフィギュレーション ケーブル... 89 13 回路設計上の注意点 ... 91 13.1 回路設計上の注意 ... 91 14 パッケージ設計... 92 14.1 ピンアサイン... 92

(4)

14.2 ピンアウト ダイアグラム ... 92 14.3 ピンアサイン処理方法 ... 93 14.4 電源 ... 94 14.5 消費電力の見積もり ... 95 14.6 電源レギュレータ... 96 14.7 パッケージ熱抵抗... 97 14.8 パッケージ設計注意点... 98 15 デバッグ テクニック... 100 16 データシート / ユーザーガイド ... 101 17 開発ツール... 102 17.1 メモリ要件... 102 17.2 ISE サービスパック および IPアップデート... 103 17.3 SecureIP... 104 18 開発ボード ... 105 改訂履歴... 106

(5)

1 Spartan-6 概要

1.1 特徴

ザイリンクスSpartan®-6 は、コストを重要視するアプリケーションにおいて低リスク、低コスト、低消費電力、 そして高性能といった要素を最適なバランスで提供するデバイスです。実績を誇る低消費電力45nm、9 層 の銅配線テクノロジ、デュアル酸化膜テクノロジを採用したSpartan-6 は、Spartanシリーズの第 6 世代にあ たり、高度な電力管理テクノロジ、最大 147,000 のロジックセル、統合されたPCI Express®ブロック、最先 端のメモリサポート、250MHzで動作するDSPスライス、3.125Gbpsの低消費電力トランシーバを備えてい ます。 Spartan-6 は、ロジック向けと高速シリアルコネクティビティ向けに 2 種類のプラットフォームを用意していま す。 表1-1-1 : Spartan-6 プラットフォーム一覧 LX シリーズ:高性能なロジック向けの業界で最も低リスク、そして低コストなソリューション - 6 入力 LUT 45nm 低電力プロセステクノロジ - 1050MHz クロック マネージメント タイル(2DCM + 1PLL) - メモリ コントローラ ブロック(最大 4 個) - 1.05Gbps SelectIO™テクノロジ - 250MHz DSP48A1 スライス - Speed Grade -L1(LX シリーズのみ)でコア電圧 1.0V(低消費電力向け) LXT シリーズ:シリアル コネクティビティ向けの、業界で最も低リスク、低コストなソリューション LX シリーズの機能に加え、以下の機能もサポート - 低消費電力 3.125Gbps GTP トランシーバ ! Speed Grade -2 : 622Mbps ~ 2.7Gbps ! Speed Grade -3, -4 : 622Mbps ~ 3.125Gbps - PCI Express®エンドポイント ブロック

(6)

1.2 デバイス規模、およびリソース

Spartan-6 の 13 種類のデバイス規模およびリソースは以下の通りです。 表1-2-1:Spartan-6 デバイスの機能一覧 (1) ロジックセル数は 6 入力 LUT アーキテクチャによって強化されたロジックセル機能を反映させてカウントしてい ます。 (2) 各スライスは 4 つの LUT と 8 つのフリップフロップ(FF)を含んでいます。 本表には LUT 数、およびスライス FF 数の記載がございません。必要な場合は以下で算出してください。 LUT 数 = Spartan-6 スライス数 x 4 スライス FF 数 = Spartan-6 スライス数 x 8 (3) 各 DSP48E1 スライスは、18 x 18 乗算器、加算器、アキュムレータを 1 つずつ含みます。 (4) ブロック RAM の基本的なサイズは 18Kb ですが、2 つの独立した 9Kb ブロックとしても使用できます。 (5) 各クロックマネージメントタイル(CMT)は、2 つの DCM と 1 つの PLL を含みます。

(7)

Spartan-6 ファミリの 13 種類のパッケージは、以下の通りです。 表1-2-2:Spartan-6 デバイスとパッケージの組合せおよび使用可能な最大 I/O 数 (1) これらのデバイスにメモリコントローラは搭載されていません。 (2) XC6SLX9 および XC6SLX16 デバイスでサポートされるメモリコントローラは x8 です。XC6SLX4 にメモリコントロ ーラは搭載されていません。 (3) これらのデバイスは鉛パッケージと鉛フリーパッケージ(G 付のパッケージ)で提供されています。 (4) XC6SLX75、XC6SLX75T、XC6SLX100、XC6SLX100T、XC6SLX150、および XC6SLX150T デバイスでは 4 つ搭 載されているメモリ コントローラ ブロックのうち 2 つが使用可能です。

(8)

1.3 型番とパッケージマーキング

Spartan-6 のパッケージマーキング例は、以下の通りです。

(9)

45nm Transistor 45nm Transistor

2 アーキテクチャ

Spartan-6 は、低コスト、低消費電力に最適化された 45nmプロセスのFPGAデバイスです。 Spartan-6LX ファミリは、主に以下の 5 つの基本的な機能から 構成されています。 ・ CMT(クロック マネージメント タイル) ・ ブロックRAM ・ DSPブロック ・ CLB (コンフィギャブル ロジック ブロック) ・ IOB (IOブロック) また、Spartan-6LXT ファミリは、Spartan-6LX ファミリの機能に加え、以下の機能が付加されて います。 *Virtex-6 Only Spartan-6 Only DSP Blocks DSP Blocks Low-Power Serial Transceivers Low-Power Serial Transceivers SelectIO with ChipSync Technology SelectIO with ChipSync Technology BlockRAM BlockRAM 10/100/1000 Mbps Ethernet MAC Blocks* 10/100/1000 Mbps Ethernet MAC Blocks* Hard Memory Controller† Hard Memory Controller† Clock Management DCM†and PLL Clock Management DCM†and PLL PCI-Express Hard Blocks PCI-Express Hard Blocks AES Encryption AES Encryption DSP Blocks DSP BlocksDSP Blocks DSP Blocks Low-Power Serial Transceivers Low-Power Serial Transceivers Low-Power Serial Transceivers Low-Power Serial Transceivers SelectIO with ChipSync Technology SelectIO with ChipSync Technology SelectIO with ChipSync Technology SelectIO with ChipSync Technology BlockRAM BlockRAMBlockRAM BlockRAM 10/100/1000 Mbps Ethernet MAC Blocks* 10/100/1000 Mbps Ethernet MAC Blocks* 10/100/1000 Mbps Ethernet MAC Blocks* 10/100/1000 Mbps Ethernet MAC Blocks* Hard Memory Controller† Hard Memory Controller† Hard Memory Controller† Hard Memory Controller† Clock Management DCM†and PLL Clock Management DCM†and PLL Clock Management DCM†and PLL Clock Management DCM†and PLL PCI-Express Hard Blocks PCI-Express Hard Blocks PCI-Express Hard Blocks PCI-Express Hard Blocks AES Encryption AES EncryptionAES Encryption AES Encryption

・ RocketIO GTP マルチギガビットトランシーバ ・ PCI-Express エンドポイントハードコア

PCI-Express 機能の説明については、ユーザーガ イドをご参照ください。

(10)

3 クロック リソース

Spartan-6 のクロック ネットワークには、チップ全体を駆動できるグローバルクロックネットワークと、グローバ ルクロックとは別に、特定の範囲のIOタイル内のリソースにクロックを分配できるIOリージョナルクロックネット ワークを備えています。 特定の範囲は、IOクロック領域の単位で分割されています。

3.1 IO クロック領域

Spartan-6 の IO リージョナルクロックネットワークは、駆動範囲が IO クロック領域によって分割されています。 IO クロック領域の範囲はデバイス規模により異なります。 IO クロック領域の範囲は、4 バンクのデバイスの場合は IO バンクの半分、6 バンクのデバイスの場合は、上 下バンクはIO バンクの半分、左右のバンクは IO バンクと同等になります。 ※ デバイス規模によりバンク数が異なります。バンク数は、開発ツール ISE(PlanAhead)、もしくは、 Spartan-6 パッケージファイルで確認できます。 各デバイスのIO クロック領域イメージは下記のとおりです。 【 参考 】 Spartan-6 パッケージファイル 使用デバイスのパッケージをご選択ください。 http://www.xilinx.com/support/packagefiles/spartan-6-pkgs.htm ※ これ以降、本章内で 「IO バンク」 と記載がある場合は、デバイス1辺分を意味します。(4 バンクデバイ スのイメージ) 図3-1-1 : クロック領域の配置と IO バンク

PlanAhead 画面

(11)

3.2 クロック ネットワーク概要

Spartan-6 のクロック ネットワークは、チップ全体を駆動できるグローバルクロックネットワークと、グローバル クロックとは別に、特定の領域のみを駆動できるIOリージョナルクロックネットワークで構成されています。 グローバル クロック ネットワーク ・ チップ全体を駆動できるグローバルクロックネットワーク ・ チップ全体で16 本のグローバルクロックを使用可能 ・ 16 個のグローバルクロックバッファを装備 IO リージョナルクロック ネットワーク ・ IO タイルを駆動できる IO クロックネットワーク ・ 各IO クロック領域で 6 本の IO クロックを使用可能 ・ IO クロック領域毎に 4 個の IO クロックバッファ(BUFIO2)を装備 ・ IO クロックバッファは IO クロック領域内の IO クロックネットワークのみを駆動可能 ・ IO バンク毎に 2 個の PLL クロックバッファ(BUFPLL)を装備 ・ PLL クロックバッファは IO バンク全体の IO クロックネットワークを駆動可能 ・ 図3-2-1 : クロックバッファとクロックネットワーク IO クロック領域 グローバルクロックネットワーク IO クロックネットワーク

(12)

3.3 グローバルクロックバッファ

Spartan-6 は、デバイスサイズに関係なく、16 個のBUFG(グローバルクロックバッファ)を用意しています。 BUFG はグローバルクロックバッファを駆動し、デバイス全体のシーケンシャルリソースを駆動します。 注意: デバイス内で主に使用するクロックはグローバルクロックバッファ(BUFG)を使用してください。 グローバル クロック バッファ は、BUFG の他にクロックセレクタ機能を持つ BUFGMUX、クロック イネーブル機能を備えているBUFGCE 等のプリミティブを用意することで、複数クロックの制御が 実現できます。 グローバルバッファは 図3-3-1 : グローバルクロックバッファ BUFGCE、BUFGMUX を使用する際、クロック切り替えタイミング等の詳細に関しては、以下の資料でご確認 ください。 また、BUFG はデバイスサイズ、およびスピードグレードによって最高動作周波数が異なります。 以下は BUFG 最高動作周波数となります。値につきましては、ご設計時には必ず Spartan-6 データシートで ご確認ください。 【 参考1 】 Spartan-6 クロッキング リソース ユーザーガイド – 英語版 v1.1 [ p.17~ : Global Clock Buffer Primitives ]

http://www.xilinx.com/support/documentation/user_guides//ug382.pdf

【 参考2 】 Spartan-6 データシート :DC 特性およびスイッチ特性 – 英語版 v1.1 [ p.35~ : Table 42: Global Clock Switching Characteristics ]

(13)

3.4 リージョナルクロックバッファ

Spartan-6 は、リージョナルクロックバッファとして、BUFIO2、BUFPLL等を用意しています。これらはIOクロッ クネットワークを通じIOタイル内のロジックを駆動することが可能です。 BUFIO2 - IO クロック領域毎に 4 個 - IO タイルを駆動できる 4 本の IO クロックネットワークを駆動 " 各 IO クロック領域内の IO クロックネットワークのみを駆動 - クロック分周機能(1、2、3、4、5、6、7、8)を装備(BYPASS も可能) - 入力可能リソース " GCLK ピン " ローカル配線 - ドライブ可能リソース " IO クロックネットワーク ! IODDR2,IODELAY2,IOSERDES2 " PLL/DCM BUFPLL - IO バンク毎に 2 個 - IO タイルを駆動できる 2 本の IO クロックネットワークを駆動 " IO バンク全体(IO クロック領域 2 個分)の IO クロックネットワークを駆動 - クロック分周機能(1、2、3、4、5、6、7、8)を装備 - 入力可能リソース " PLL 出力 " BUFG 出力 - ドライブ可能リソース " IO クロックネットワーク ! IODELAY2、IOSERDES2,BUFIO2FB

(14)

以下はBUFIO2、BUFPLL のプリミティブポート定義です。 【 BUFIO2 プリミティブとポート定義 】 【 BUFPLL プリミティブとポート定義 】 BUFIO2、BUFPLL は、デバイスサイズ、およびスピードグレードによって最高動作周波数が異なります。各 値は、必ずご設計時に最新版のSpartan-6 データシートでご確認ください。 注意: BUFIO2、BUFPLL は、論理合成ツールで自動挿入されません。

BUFIO2、BUFPLL を使用する場合は、デザイン上で BUFIO2 プリミティブ、BUFPLL2 プリミティブをインスタンシエートしてご使用ください。

プリミティブをインスタンスする場合は、ISE 内の Language Templates でプリミティブをご確認いただくか、 以下の資料でご確認ください。

表3-4-1 : BUFIO2 のポート定義

表3-4-2 : BUFRのポート定義

[ p.82~ : About Design Elements ]

http://www.xilinx.com/support/documentation/sw_manuals/xilinx11/spartan6_hdl.pdf

(15)

3.5 GCLK ピン

Spartan-6 には、クロック専用入力ピン GCLK ピンが最高で 32 本(16 ペア)用意されています。 GCLK ピンは、デバイスの各辺の中央部に配置されています。 GCLK ピンからは、BUFG、BUFIO2 をドライブすることができます。 GCLK ピンをクロック入力ピンとして使用しない場合は、通常 IO ピンと同様に使用できます。 GCLK ピンの数、位置は、開発ツール ISE(PlanAhead)、もしくは Spartan-6 パッケージファイルで確認できま す。 図3-5-1 : グローバルクロックピンの確認方法 GCLK ピンは、それぞれのピンからドライブできるリソースが特定されています。さらに、2 本の GCLK ピンが 1 つのBUFG を共有するなど、リソースの共有をしています。GCLK ピンを使用する場合は、ドライブするリソー スを確認して、リソースの競合がおこらないように注意してください。 リソース共有については、下記ユーザーガイドでご確認ください。 以下は、バンク0、バンク 1 のリソース共有イメージです。 【 参考 】 Virtex-6 パッケージファイル 使用デバイスのパッケージをご選択ください。 http://www.xilinx.com/support/packagefiles/virtex-6-pkgs.htm

PlanAhead 画面

パッケージファイル

【 参考 】 Spartan-6 クロッキング リソース ユーザーガイド – 英語版 v1.1 [ p.9~ : Global Clocking Infrastructure ]

(16)
(17)

以下は、バンク2、バンク 3 のリソース共有イメージです。

(18)

3.6 クロック専用入力バッファ

GCLK ピンにはクロック専用入力バッファ、または入力バッファを挿入する必要があります。 BUFG をドライブする場合にはクロック専用バッファ、BUFIO2 やロジックをドライブする場合には入力バッファ を使用します。 シングルエンドクロックの場合は、ツールのオプションによりバッファが論理合成ツールで自動挿入されますが、 差動クロックの場合は個別に挿入する必要があります。 以下はクロック専用バッファ IBUFG(シングルエンド用)、IBUFGDS(差動クロック用)のプリミティブとなりま す。 図3-6-1 : IBUFG/IBUFDS プリミティブ 注意: ピンから差動クロックを入力する場合は、必ず[ P チャネル名称ピン ] に P チャネル信号、 [ N チャネル名称ピン] に N チャネル信号を配置してください。 逆に配置した場合、デバイス内部でクロック信号は反転して伝播されます。 図3-6-2 : 差動信号使用時の注意事項 差動クロックの場合、クロック専用バッファをインスタンスする場合には、以下の構成でバッファを挿入してくだ さい。 図3-6-3 : 差動クロックの場合

(19)

BUFIO2 やロジックをドライブする場合は、入力専用バッファ IBUF(シングルエンド用)、IBUFDS(差動クロッ ク用)のプリミティブを使用して、BUFIO を駆動してください。

バッファの詳細につきましては、ユーザーガイドにてご確認ください。

【 参考 】 Spartan-6 SelectIO Resources ユーザーガイド – 英語版 v1.0 [ p.16~ : Spartan-6 SelectIO Primitives ]

(20)

4 CMT(クロック マネージメント タイル)

Spartan-6 のCMT(クロック マネージメン トタイル)には、 2 つのDCMと 1 つのPLLが含まれます。 また、 CMT の数はデバイスサイズによって異なります。 以下はSpartan-6 の CMT および DCM 数の一覧表です。 表4-1 : 使用可能なCMT、DCM、PLLリソース CMT は垂直のグローバルクロックツリーに沿った中央列にあります。 下部にそれぞれ配置されます。 CMT はデバイスの中央カラムの上部、

(21)

以下は、XILINX の FPGA での DCM の機能比較となります。 表 4-2 : XILINX FPGA の DCM 比較表

(22)

4.1 DCM

Spartan-6 には最大 12 個の DCM が含まれています。Spartan-6 DCM の主な機能は以下の通りです。 ・ DLL 機能(デジタル ロック ループ 機能) クロック出力信号の伝播遅延がゼロになるようにスキュー調整します。 この機能はデバイス内部 および デバイス外部のスキュー除去に使用できます。 ・ DFS 機能(デジタル周波数合成機能) 入力クロックを逓倍、分周をして、必要とする周波数のクロックを生成します。 DFS 機能を使用することでさまざまな周波数のクロックを生成できます。 ・ PS 機能(位相シフト機能) データーシートで定義されているDCM_DELAY_STEP の値でクロックの位相を前後にシフトできます。 外部メモリとのインターフェースなどデータとクロックとの位相調整に使用できます。 ・ ステータス管理 DCM のステータス管理ピンをモニタすることで DCM の状態を確認できます。 ステータスピンの機能を以下に示します。 - LOCKED : DLLロック - STATUS[0] : フェーズシフト オーバーフロー - STATUS[1] : CLKIN停止 - STATUS[2] : CLKFX、CLKFX180 停止 - STATUS[7:3] : 未使用

DCM のステータス信号(LOCKED、STATUS[2:0])は FPGA 外部でモニタをおこなうか、ChipScope などデバッグ時に確認できるような回路構成にしてください。

(23)

DCM を構成している4つのユニットは独立して、または互いに関連して動作します。 以下にDCM の機能ブロック図を示します。 図 4-1-1 : DCM の機能ブロック図 partan-6 の DCM プリミティブは、DCM_SP、DCM_CLKGEN の 2 種類が用意されています。DCM_SP プ CLKIN)のジッタの許容量を改善し S リミティブは従来のDCM 機能を利用し、クロックスキュー調整、周波数合成、位相シフトを行います。 DCM_CLKGEN プリミティブは、更に高度な DFS 機能を利用できます。 CLKFX(CLKFX180)から低出力ジッタのクロックを生成し、入力クロック( ています。また、クロックダイナミック周波数合成、スペクトラム拡散クロックの生成、フリーランニングオシレー タ等の新機能がサポートしています。 図 4-1-2 : DCM プリミティブ

(24)

4.1.1 DCM_SP プリミティブ

DCM_SP プリミティブと各ピンの機能を以下に示します。 表4-1-1-1 : DCM プリミティブポート一覧表 端子名 機能 CLKIN クロック入力ピン CLKFB CLK0またはCLK2Xをフィードバックして入力 RST リセットピン アクティブHigh (CLKIN 3サイクル以上アサート) PSEN 位相調整クロックPSCLKのイネーブル信号 アクティブHigh PSINCDEC 位相調整選択 Highでインクリメント、Lowでデクリメント PSCLK 位相シフト調整同期化信号※ PSDONE 位相調整完了フラグ位相シフトが完了するとPSCLKの1クロック分Highになる CLK0 CLKINと周波数及び位相が一致したクロックを出力 CLK90 CLKINと同じ周波数で90°位相がシフトしたクロックを出力 CLK180 CLKINと同じ周波数で180°位相がシフトしたクロックを出力 CLK270 CLKINと同じ周波数で270°位相がシフトしたクロックを出力 CLK2X CLKINの2倍の周波数で位相が一致したクロックを出力 CLK2X180 CLKINの2倍の周波数で位相が180°シフトしたクロックを出力 CLKDV CLKINと位相が一致している分周クロックを出力分周パラメータはCLKDV_DIVIDEで設定 CLKFX 周波数合成クロックを出力 CLKFX_MULTIPLY/CLKFX_DIVIDEパラメータで設定 CLKFX180 CLKFXと同じ周波数で180°位相がシフトしたクロックを出力 LOCKED DCMがロックした後、Highとなる ※PSCLK を駆動できるのは、BUFGMUX_X2Y1、BUFGMUX_X2Y2、BUFGMUX_X2Y3、BUFGMUX_X2Y4、BUFGMUX_X3Y5、 BUFGMUX_X3Y6、BUFGMUX_X3Y7、BUFGMUX_X3Y8 の上部 8 個の BUFGMUX になります。

4.1.1.1 DLL 機能

①FPGA 内部 クロックのスキュー調整 CLKIN CLKFB RST CLK0 LOCKED STATUS[7:0] DCM BUFG OBUF OBUF IBUF IBUFG 内部ロジック回路 CLKIN CLKFB RST CLK0 LOCKED STATUS[7:0] DCM BUFG OBUF OBUF IBUF IBUFG 内部ロジック回路 図4-1-1-1-1 : 内部フィードバック DCM の DLL 機能を使用することで、クロック出力信号の伝播遅延がゼロになるようにスキュー調 整します。デバイス内部のクロックスキュー調整を行う場合には、DCM の CLK0 ピンに接続した グローバルバッファ(BUFG)の出力を CLKFB にフィードバックします。CLKFB には CLK0、 CLK2X の出力を使用する必要があります。 DCM の初期化を行う RST ピンの制御及び LOCKED ピン、STATUS[7:0]のモニタができる回路

(25)

②FPGA 外部クロックのスキュー調整 CLKIN CLKFB RST CLK0 LOCKED STATUS[7:0] DCM BUFG OBUF OBUF IBUFG IBUF D1 D0 C Q ODDR2 D A[3:0] CLK Q SRL16E INIT=000Fh Spartan-6 CLKIN CLKFB RST CLK0 LOCKED STATUS[7:0] DCM BUFG OBUF OBUF IBUFG IBUF D1 D0 C Q D1 D0 C Q ODDR2 D A[3:0] CLK Q SRL16E INIT=000Fh Spartan-6 図 4-1-1-1-2 : 外部フィードバック DCM のクロックを基板に出力することで、基板上の他のデバイスのクロックとして使用できます。 基板に出力したDCM の出力クロックをフィードバックすることで、入力クロックと伝播遅延が ゼロになるように基板上でクロックスキューを調整することができます。 クロックを基板上に出力する場合には、クロックのデューティ比を補正するため、DCM の CLK0 に グローバルバッファ(BUFG)と IOB 内の DDR レジスタ(ODDR)コンポーネントを接続する回路を 構成してください。 ③FPGA 内部及び外部クロックのスキュー調整 CLKIN CLKFB RST CLK0 LOCKED STATUS[7:0] DCM BUFG OBUF OBUF IBUFG IBUF D1 D0 C Q ODDR2 D A[3:0] CLK Q SRL16E INIT=000Fh Spartan-6 CLKIN CLKFB RST CLK0 LOCKED STATUS[7:0] DCM BUFG OBUF OBUF D A[3:0] CLK Q SRL16E 内部ロジック回路 CLKIN CLKFB RST CLK0 LOCKED STATUS[7:0] DCM BUFG OBUF OBUF IBUFG IBUF D1 D0 C Q D1 D0 C Q ODDR2 D A[3:0] CLK Q SRL16E INIT=000Fh Spartan-6 CLKIN CLKFB RST CLK0 LOCKED STATUS[7:0] DCM BUFG OBUF OBUF D A[3:0] CLK Q SRL16E 内部ロジック回路 図 4-1-1-1-3 : 内部、外部フィードバック デバック時に、DCM ロック状態が確認できるように、使用している各 DCM の LOCKED ピンを 個別にモニタできるように回路構成を推奨します。

(26)

4.1.1.2 DCM の周波数合成

周波数合成機能は、DCM入力クロックに対してアプリケーションで多く使用される機能の 1 つとして、 新しいクロック周波数を柔軟に生成できる機能があります。 Spartan-6 のDCMは、以下の 3 つの独立した周波数合成機能を持っています。 ・ 2 逓倍クロック(CLK2X、CLK2X180)は、入力クロック(CLKIN)の周波数を 2 倍にします。 ・ クロック分周(CLKDV)は、入力クロック周波数を一定の分周値にて分周します。 ・ 周波数合成(CLKFX、CLKFX180)は、入力クロックから新しいクロックを生成します。 DCM_SP DCM_SP 図 4-1-1-2-1 : DCM のクロック合成オプション

4.1.2 DCM_ CLKGEN プリミティブ

DCM_CLKGEN プリミティブと各ピンの機能を以下に示します。 表4-1-2-1 : DCM プリミティブポート一覧表 端子名 機能 CLKIN クロック入力ピン RST リセットピン アクティブHigh (CLKIN 3サイクル以上アサート) FREEZEDCM フリーランニングオシレータ機能使用時、LOCKED信号と接続 CLKFX 周波数合成クロックを出力CLKFX_MULTIPLY/CLKFX_DIVIDEパラメータで設定 CLKFX180 CLKFXと同じ周波数で180°位相がシフトしたクロックを出力 LOCKED DCMがロックした後、Highとなる CLKFXDV CLKFXの分周クロックFCLKFX/CLKFXDV_DIVIDEパラメータで設定 PROGDONE ダイナミック周波数合成完了フラグプログラミングが完了するとPROGCLKの1クロック分Highになる PROGDATA ダイナミック周波数合成シリアルデータ入力 PROGEN ダイナミック周波数合成イネーブル信号 アクティブHigh PROGCLK ダイナミック周波数合成クロック

(27)

4.1.2.1

ダイナミック周波数合成

DCM_CLKGEN プリミティブでは、ダイナミックに周波数を変更することができます。 PROGDATA、PROGEN、PROGCLK、PROGDONE の 4 つの信号を使用して、 CLKFX_MULTIPLY 及 び CLKFX_DIVIDE の 設 定 値 を 変 更 し て 、 CLKFX ( CLKFX180 、 CLKFXDV)の周波数をダイナミックにプログラムできます。 プログラミングシーケンスは、下記をご参照ください。 図 4-1-2-1-1 : DCM_CLKGEN の M 及び D コンフィギュレーションのタイミング波形

4.1.2.2

スプレッドスペクトラムクロック

DCM_CLKGEN プリミティブでは、スプレッドスペクトラムクロックソースを生成することができます。 以下のように、シンプルな固定スプレッドスペクトラムモードとフレキシブルなソフトスプレッド スペクトラムモードに対応しています。但し、ソフトスプレッドスペクトラムモードには追加回路が 必要です。 表 4-1-2-2-1 : DCM_CLKGEN スプレッドスペクトラム モード

(28)

4.1.2.3

フリーランニングオシレータ

DCM_CLKGEN プリミティブでは、下記の図のように LOCKED ピンを FREEZEDCM ピンに接続し、 クロックを生成することができます。 DCM がロック(LOCKED ピンが High)になるまで、CLKIN から安定したクロックを入力する必要が あります。 図 4-1-2-3-1 :フリーランニングオシレータのセットアップ

4.1.3 DCM パフォーマンス

例: 75MHz の入力クロックから、155MHz のクロック を生成する場合、以下のパラメータを設定 CLKFX_MULTIPLY(M) = 31 CLKFX_DIVIDE(D) = 15 DLL 機能の入力クロック(CLKIN)に対する DCM 出力スペックの各値は、必ずご設計時に最新版の Spartan-6 データシートでご確認ください。 DCM で周波数合成(CLKFX、CLKFX180)を制御するには、CLKFX_MULTIPLY (M) と CLKFX_DIVIDE (D) の 2 つの属性を指定します。

CLKFX_MULTIPLY (M) が分子、CLKFX_DIVIDE (D) が分母として、CLKIN クロック入力を分周、 逓倍して周波数を合成します。

図4-1-3-1 : 出力クロックジッタの計算式 【 参考 】 Spartan-6 データシート – 英語版 v1.2

p.38~ : DCM Switching Characteristics

(29)

周波数合成機能のスペックを以下に示します。

DCM_CLKGEN プリミティブでは、DCM_SP プリミティブと比べ、広範囲のパラメータを指定できます。 表 4-1-3-1 : 周波数合成のスペック

min

max

min

max

CLKFX_MULTIPLY

2

32

2

256

CLKFX_DIVIDE

1

32

1

256

DCM_SP

DCM_CLKGEN

Attribute

※入力周波数52MHz の場合、CLKFX_DIVIDE < FCLKIN / 0.200MHz の条件があります。 DCM Wizard は、入力クロック周波数から生成する出力クロック周波数に対して、適切な CLKFX_MULTIPLY (M)パラメータ と CLKFX_DIVIDE (D)パラメータを算出します。

4.1.4 DCM 初期化

DCM の CLKIN ピンに入力するクロックは、常に安定している必要があります。 全てのデザインに おいてCLKIN が安定するまで DCM のリセットを保持しておくことが必要です。

また、DCM のロックが外れた(LOCKED ピンが Low → High になった)場合も、DCM の初期化が必要と なりますので、ユーザー回路、もしくは、外部ピンで初期化できる回路構成にしてください。

【 電源投入時 】

ディスクリートの PLL デバイス、あるいは ASSP に搭載されている PLL からのクロック出力を DCM の

CLKIN に入力する場合、PLL 出力が安定した後に DCM のリセットを解除してください。

(30)

4.1.5 DCM モジュール作成方法

DCM を使用する際は、開発ツール ISE に含まれている Clocking Wizard で生成することができます。 Mode の 設 定 が デ フ ォ ル ト の Auto Selection が 指 定 さ れ て い る 場 合 、 DCM_SP 、 PLL_BASE 、 DCM_CLKGEN の中で最適なプリミティブが選択されます。Mode の設定を Manual Selection に指定す ることで、任意のプリミティブを選択することができます。

また、Clocking Wizard では GUI メニュー上で、入力周波数、周波数合成、位相シフト等のパラメータを指 定できます。生成されたアトリビュートに間違いが無いか必ず確認してください。

図 4-1-5-1 DCM 生成方法

DCM を Clocking Wizard で生成しない場合は、必ず最新版 Spartan-6 データシートで各動作周波数範 囲をご確認の上、ご使用ください。

【 参考 】 Spartan-6 データシート – 英語版 v1.2 p.38~ : DCM Switching Characteristics

(31)

4.2 PLL

Spartan-6 には、最大 6 個の PLL が含まれています。PLL の主な機能は以下の通りです。 ・ ジッタフィルタ PLL は常にリファレンスクロック上のジッタを低減する機能を持ちます。 ・ クロックネットワークのスキュー調整 クロック出力信号の伝播遅延がゼロになるようにスキューを調整します。 この機能はデバイス内部、およびデバイス外部のスキュー除去に使用できます。 ・ 周波数合成 入力クロックを逓倍または分周をして、必要とする周波数のクロックを生成します。 ・ ステータス管理 PLL のステータス管理ピンをモニタすることで PLL のステータスを確認できます。 ステータスピンの機能を以下に示します。 ・ LOCKED :PLL ロック

PLL ステータス信号(LOCKED)は FPGA 外部でモニタを行なうか、ChipScope などでデバッグ時に 確認できるような回路構成にしてください。

PLL ブロック図は、以下の通りです。

(32)

Spartan-6 の PLL プリミティブの PLL_BACE は、クロックスキュー調整、周波数合成、位相シフト、および デューティサイクル調整機能等の機能を提供します。 図 4-2-2 : PLL プリミティブ PLL の各ピンの機能は、以下の通りです。 表 4-2-1 PLL ポート PLL から IO クロックネットワークを使用する場合、BUFPLL で駆動されます。 デバイスに応じて、BUFPLL に接続できる PLL は、以下の通りです。

(33)

表 4-2-2 : PLL から BUFPLL への接続

4.2.1 ジッタフィルタ

PLL は、常にリファレンスクロック上のジッタを低減する機能を持ちます。 PLL の BANDWIDTH アトリビュートを LOW に設定することによって、より大きなジッタフィルタ機能を作 成できます。ただし、BANDWIDTH アトリビュートを LOW に設定すると PLL のスタティックオフセットが増 加する可能性があります。 図 4-2-1-1 :波形例

(34)

4.2.2 クロック ネットワーク スキュー調整

①FPGA 内部クロックスキュー調整 FPGA 内部クロックスキューを削減する PLL の回路構成を以下に示します。 User Logic User Logic CLKIN1 CLKFBIN RST CLKOUT0 PLL BUFG IBUFG CLKOUT1 CLKOUT2 CLKOUT3 CLKOUT4 CLKOUT5 CLKFBOUT BUFG User Logic User Logic User Logic User Logic CLKIN1 CLKFBIN RST CLKOUT0 PLL BUFG IBUFG CLKOUT1 CLKOUT2 CLKOUT3 CLKOUT4 CLKOUT5 CLKFBOUT BUFG 図 4-2-2-1 : デバイス内部のフィードバック PLL でクロックネットワークスキュー調整をする事で伝播遅延がゼロになるようにスキュー調整します。 デバイス内部のスキュー調整を行う場合、PLL の CLKFBOUT ピンに接続したグローバルクロックバッフ ァ(BUFG)の出力を CLKFB にフィードバックします。 ②PLL 内部クロックスキュー調整 PLL の入力クロックと出力クロック位相関係が不要な場合、PLL 内部でクロックをフィードバックすることが できます。 User Logic User Logic CLKIN1 CLKFBIN RST CLKOUT0 PLL BUFG IBUFG CLKOUT1 CLKOUT2 CLKOUT3 CLKOUT4 CLKOUT5 CLKFBOUT User Logic User Logic User Logic User Logic CLKIN1 CLKFBIN RST CLKOUT0 PLL BUFG IBUFG CLKOUT1 CLKOUT2 CLKOUT3 CLKOUT4 CLKOUT5 CLKFBOUT 図 4-2-2-2 : PLL の内部フィードバック PLL を周波数合成回路またはジッタフィルタのみとして使用し、PLL の入力クロックと出力クロック間に位 相関係を必要しない場合、PLL 内部でフィードバックする事ができます。 フィードバッククロックは、コア電源が供給されているブロックを通過しないため、VCCINT 電源ノイズの影 響を受けにくく、PLL のパフォーマンスを向上します。

(35)

4.2.3 周波数合成

PLL をスタンドアロンで使用し、周波数合成を実現できます。 ジッタ特性を最小に抑える為にPLL フィードバック を内部配線にすることで、全てのローカル配線が保持 されるため、ジッタを最小限に抑えることができます。 以下は100MHz のリファレンスクロックから GTP トランシーバへのクロック、PCI Express へのクロックを 生成する場合の例です。 なお、PLL 構成は、4.2.2 章 「 ②FPGA 内部クロックスキュー調整 」 をご参照ください。 図 4-2-3-1 : 周波数合成器としての PLL

(36)

4.2.4 PLL パフォーマンス

PLL スペックの各値は、必ずご設計時に最新版の Spartan-6 データシートでご確認ください。

4.2.5 PLL 初期化

PLL には、CLKIN1 および CLKIN2 の入力クロックに周波数の変動が無い場合は、PLL にリセットを 入れる必要はありませんが、コンフィギュレーション終了後に 5ns 以上の非同期リセットを入力することを 推奨します。 なお、入力クロックに周波数変動があった場合は、必ず5ns 以上の非同期リセットを入力してください。

4.2.6 PLL モジュール作成方法

PLL を使用する際は、開発ツール ISE に含まれている Clocking Wizard で生成することができます。 Mode の 設 定 が デ フ ォ ル ト の Auto Selection が 指 定 さ れ て い る 場 合 、 DCM_SP 、 PLL_BASE 、 DCM_CLKGEN の中で最適なプリミティブが選択されます。Mode の設定を Manual Selection に指定す ることで、任意のプリミティブを選択することができます。

また、Clocking Wizard では GUI メニュー上で、入力周波数、周波数合成、位相シフト等のパラメータを指 定できます。生成されたアトリビュートに間違いが無いか必ず確認してください。 図 4-2-6-1 : PLL 生成方法 【 参考 】 Spartan-6 データシート – 英語版 v1.2 p.37~ : PLL Switching Characteristics ] http://www.xilinx.com/support/documentation/data_sheets/ds162.pdf 【 参考 】 Spartan-6 データシート – 英語版 v1.2 p.37~ : PLL Switching Characteristics ] http://www.xilinx.com/support/documentation/data_sheets/ds162.pdf

(37)

5 ブロック RAM

Spartan-6 ブロック RAM は、最大 18Kb のデータを格納でき、2 つの独立した 9Kb ブロック RAM(独立ハーフ サイズRAM)、または 1 つの 18Kb ブロック RAM として構成できます。

18Kb ブロック RAM は、隣接した 2 つの 9Kb ブロック RAM を使用することで、スライスのロジックを使用せず に、16K x 1 のメモリを構成できます。

Spartan-6 のブロック RAM には、ECC 回路および FIFO コントローラ回路が含まれません。

注意: ECC 回路および FIFO 制御回路を使用する場合は、Core Generator をご使用ください。

Spartan-6 ブロック RAM の主な機能は、以下の通りです。 表5-1 : ブロック RAM 特性 ブロックRAMサイズ 18Kb 最大データ幅 72ビット 独立ハーフサイズRAMサポート 有り (9Kb) モード シングルポート シンプルデュアルポート デュアルポート パフォーマンス 最大250MHz ステートマシン 可能 カウンター 可能 コードコンバータ 可能 ROM 可能 ロジック 可能 ハードメモリコントローラ回路 可能 ハードECC回路 なし ハードFIFO制御回路 なし

(38)

5.1 ブロック RAM

Spartan-6 のブロック RAM は、シングルポート、シンプルデュアルポート、デュアルポートに構成できます。 図5-1-1 : 構成可能な RAM すべての出力は、ライトイネーブル(WE)の状態によって、「読み出し」または「書き込み中読み出し」になりま す。書き込み中読み出しの出力には、WRITE_FIRST、READ_FIRST、NO_CHANGE という 3 つのモードが あります。 WRITE_FIRST: 入力データがメモリに書き込まれると同時にデータ出力に格納されます。デフォルト。 READ_FIRST : 以前に書き込みアドレスに格納されていたデータが出力ラッチに格納され、それと同時に入 力データがメモリに格納されます。 NO_CHANGE : 書き込み中、出力ラッチの値は変化しません。 注意: デュアルポート RAM でアドレス競合が起きた場合(同じアドレスに対して書き込みと読み出し が同時に発生)、各モードの処理が異なります。

WRITE_FIRST, NO_CHANGE : 読み出しポートの DOUT が無効(不確定)になります。 READ_FIRST : 読み出しポートは以前に格納されたデータを読み出します。

また、ブロック RAM への入力はレジスタによる入力になります。入力レジスタを取り除くことはできません。出

力に関しては、オプションにより出力レジスタを追加することが可能です。デフォルトはバイパスされていま す。

(39)

図5-1-2 : ブロック RAM の論理図

次に、Spartan-6 で使用できるブロック RAM プリミティブの深さ(Word)とデータ幅(Bit 幅)を示します。

表5-1-1 : ブロック RAM サイズ モード BRAMサイズ シングルポートRAM 18Kb 16K x 1 8K x 2 4K x 4 2K x 9 1K x 18 512 x 36 256 x 72 9Kb 8K x 1 4K x 2 2K x 4 1K x 9 512 x 18 256 x 36 シンプルデュアルポートRAM 18Kb 16K x 1 8K x 2 4K x 4 2K x 9 1K x 18 512 x 36 9Kb 8K x 1 4K x 2 2K x 4 1K x 9 512 x 18 256 x 36 デュアルポートRAM 18Kb 16K x 1 8K x 2 4K x 4 2K x 9 1K x 18 512 x 36 9Kb 8K x 1 4K x 2 2K x 4 1K x 9 512 x 18 Word x Bit 注意: x9, x18, x36, x72 にはパリティビットを含んでいます。 ブロックRAM は 2 つのプリミティブを組み合わせて、 実際に使用する Word x Bit のブロック RAM を構成 します。

ブロックRAM をご使用の際は、Core Generator または Block Memory Generator から生成することを推奨します。

Block Memory Generator の使用方法は、Block Memory Generator データシートをご確認ください。

図5-1-3 : Block Memory Generator 出力レジスタ

入力レジスタ

【 参考 】Block Memory Generator データシート

(40)

6 DSP

6.1 概要

Spartan-6 に搭載されている DSP48A1 スライスを使用することで、多くの信号処理タスクや数値計算タスクに ロジックスライスを使用する必要がなくなります。尚、1 世代前の Spartan3A-DSP に搭載されている DSP48A からは上位互換です。DSP48A1 スライスのアーキティクチャは図 6-1 の通りです。 図6-1-1 : DSP48A1 スライスアーキティクチャ

Spartan-6 の DSP48A1 スライスは、そのスライス内で FIR フィルターや FFT に代表されるような積和演算や 多ビットの論理演算等の様々な信号処理機能を実現可能です。 DSP48A1 スライスの主な機能は以下の通りです。 18x18 2 の補数乗算 48-bit 加減算/累積器 パイプラインレジスタ Pre-Adder カスケード接続 注意: カスケード接続は上下の DSP48A1 スライス同士を接続する専用配線なので、 汎用配線に接続し、ファブリックへ出力することはできません。

(41)

DSP48A1 スライスの動作スペックは表 6-1-1 の通りです。 表6-1-1 : DSP48A1 スライススペック

DSP48A1 スライスプリミティブは図 6-1-2 のようになります。

(42)

6.2 入力ファンクション

Spartan-6 の DSP48A1 の入力ファンクションは A、B、C、D となり、Pre-Adder が搭載されることにより(A + D) * B という演算が可能になりました。これによって、対称係数の FIR フィルターや複素数乗算が従来のデバイ スに比べて効率良くインプリメントできます。図6-2-1、6-2-2 に DSP48A1 スライスの入力ファンクションを示し ます。

図6-2-1 : B、D 入力及び Pre-Adder ファンクション

(43)

6.3 OPMODE

40 種類を超えるダイナミック OPMODE コンフィギュレーションが可能で、クロック サイクルごとに演算モード を変更できるため、DSP48A1 スライスは仮想プロセッサとして利用可能です。 図6-3-1 : X,Z による OPMODE 制御 表6-3-1 : X マルチプレクサ制御モード 表6-3-2 : Z マルチプレクサ制御モード

(44)

表6-3-3 : OPMODE[7:4]による機能モード 例として1 つの DSP48A1 スライスにて行う複素乗算シーケンスを以下に示します。 図 6-3-2 : OPMODE を使用した演算シーケンス より詳細な情報はDSP48A1 スライスユーザーガイドを参照ください。 P (Imaginary) 0x25 Multiply-Accumulator X BRe[17:0] AIm[17:0] 4 0x05 Multiply X BIm[17:0] ARe[17:0] 3 P (Real) 0x25 Multiply-Accumulator X BIm[17:0] AIm[17:0] 2 0x05 Multiply-Sub X BRe[17:0] ARe[17:0] 1 1 Complex Multiply Output OPMODE[6:0] Function C B A Cycle Slice Number Single Slice Mode P (Imaginary) 0x25 Multiply-Accumulator X BRe[17:0] AIm[17:0] 4 0x05 Multiply X BIm[17:0] ARe[17:0] 3 P (Real) 0x25 Multiply-Accumulator X BIm[17:0] AIm[17:0] 2 0x05 Multiply-Sub X BRe[17:0] ARe[17:0] 1 1 Complex Multiply Output OPMODE[6:0] Function C B A Cycle Slice Number Single Slice Mode ARe

BRe AImBIm BIm

ARe BRe AIm Multiply-Sub Multiply-Accumulator Multiply-Accumulator Multiply P (Real) P (imaginary) 【 参考 】DSP48A1ユーザーガイド http://www.xilinx.com/support/documentation/user_guides/ug389.pdf

(45)

7 CLB

(コンフィギャブル ロジック ブロック)

CLB は、順序回路や組み合わせ回路を実現するための基本的な論理ブロックです。 各 CLB はスイッチマトリクスに接続して、汎用配線スイッチマトリクスにアクセスします。1 つの CLB は、 2 つのスライスで構成されています。この2つのスライスは直接相互接続がされておらず、各スライスは 1 つの列として配置されています。

7.1 スライス

各スライスには、4 個のルックアップテーブル(LUT)および 8 個のフリップフロップ(FF)があります。スライスで は、これらを使用してロジックおよびROM 機能等の提供をします。スライスには SLICEL、SLICEM、SLICEX の3 つのスライスが存在します。 SLICEL にはスライス列で垂直方向に接続可能なキャリーロジックおよび多入力マルチプレクサが含まれま す。

SLICEM にはキャリーロジック、マルチプレクサ、及び 64 ビット RAM、シフトレジスタとして使用可能な LUT が含まれます。

SLICEX は LUT と FF のみで構成されるスライスです。

CLB には 2 つのスライス列が含まれており、その内 1 列は SLICEX の列、もう 1 列は SLICEL または SLICEM のいずれかです。使用可能なスライスの50%は SLICEX、残りの 25%ずつが SLICEL と SLICEM にとなり ます。 *XC6SLX4 には SLICEL は存在しません 図7-1 : CLB とスライス間における行と列の関係 図7-2 : CLB 内のスライス配置 【 参考 】UG384 ,P12, 表2参照 http://www.xilinx.com/support/documentation/user_guides/ug384.pdfhttp:/

(46)

SLICEM ・LUT (64bitRAM、シフトレジスタとして構成可能) ・FF(フリップフロップ) ・キャリーロジック ・マルチプレクサ SLICEL ・LUT ・FF(フリップフロップ) ・マルチプレクサ ・キャリーロジック SLICEX ・LUT ・FF(フリップフロップ) 図7-1-1 : 図7-1-2 : SLICEL

(47)

下表に 1 つの CLB に含まれるロジックリソースを示します。 スライス LUT フリップフロップ 演算(2) キャリーチェー ン 分散RAM(1) シフトレジスタ(1) 2 8 16 1 256ビット 128ビット メモ: 1.SLICEMにのみ該当します。SLICEL,SLICEXには分散RAMまたはシフトレジスタはありません。 2.SLICEL,SLICEMにのみ該当 以下は、Virtex-5®とSpartan-6 とのCLB比較となります。 表 7-1-2 : CLB 比較 1CLB内 Slice数 2 2 1CLB内 LUT数 8 8 1CLB内 FF数 16 8 1CLB内 クロック、クロックイネーブル、 リセット リソース 2 2

1CLB内 分散RAM容量 256bit 256bit

1CLB内 LUTシフトレジスタ ビット数 128bit 128bit 1Slice ロジックセル数 6.4ロジックセル 6.4 ロジックセル

7.2 LUT(ルックアップテーブル)

Spartan-6 の LUT は、6 入力 2 出力の LUT が採用されており、より複雑な組み合わせ回路を1つの LUT で

構成できます。実現できる回路は複雑さではなく、入力数によって制限されます。一つのLUT で最大 6 入力 1 出力の組み合わせ回路を実現できます。 また、6 入力と 5 入力サブファンクションの組み合わせ、3 入力と 2 入力の組み合せ、その他サブファンクショ ンの組み合せも実現できます。 図7-2-1:6 入力 LUT 表7-1-1 : CLB 内のロジックリソース

(48)

7.3 内部ロジックパフォーマンス

論理一段あたりのブロックディレイ、の目安を以下に示します。なお、表中の値はロジックの使用率、ファンア ウト、配置配線のバージョン、回路構成等に影響されるため、数値はあくまでも参考値とお考えください。 表 : 7-3-1 ロジックパフォーマンス

スピードグレード

-3

-2

単位

論理段数 2段

424

328

MHz

論理段数 4段

302

222

論理段数 6段

206

134

論理段数 8段

147

109

論理段数 10段

125

94

制約あり(Period制約)、オプションはデフォルトの条件で検証 (ISE11.3、XC6SLX9CSG324) 図 7-3-1 : FMAX 計算時のイメージ図

7.4 分散 RAM

分散RAM は、SLICEM の LUT でサポートされている機能です。

Spartan-6 の SLICEM 1 つでは、最大 256 ビットのシングルポート RAM または最大 128 ビットのデュアルポ ートRAM などを構成できます。表 4-1 に構成可能な RAM を記載します。LUT で RAM を実現するため、デバ イス全体に分散して配置されることから、[ 分散 RAM ] と呼ばれています。

(49)

表7-4-1 LUT で構成可能な RAM

7.5 LUT シフトレジスタ(SRL)

SLICEM の LUT では、スライス内のフリップ フロップを使用せずに、最大 32 ビットのシフトレジスタを構成でき ます。シフトレジスタとして使用した場合、各LUT でシリアルデータを 1~32 クロックサイクル遅延させることが できます。 また、SLICEM 内の 4 個の LUT をカスケードし、最大 128 サイクル遅延させることもできます。 LUT で構成するシフトレジスタを使用することで、遅延やレイテンシ補填を必要とするアプリケーションを効果 的に実現することができます。 図7-5-1 : 32 ビットシフトレジスタ 図7-5-2 : SRL のタイミングチャート

(50)

8 Select IOリソース

Spartan-6 には SelectIO と呼ばれる多様な I/O 規格に対応できるコンフィギャブルでハイパフォーマンスな IO テクノロジが搭載されています。 各 IO ブロック(IOB)は、入力、出力、双方向 I/O としてユーザー設定できます。

また、すべてのI/O がシングルエンドおよび差動 I/O 規格をサポートしています。

Spartan-6 の IO タイルは、2つの IOB、2 つの ILOGIC、2 つの OLOGIC、2 つの IODLAY で構成されて います。 【 IO ブロック(IOB)構造 】 IODELAY2 ILOGIC2 ISERDES2 Pad IOB OSERDES2 OLOGIC2 IODELAY2 ILOGIC2 ISERDES2 Pad IOB OLOGIC2 OSERDES2 図8-1 : Spartan-6 I/O タイル 図8-2 : IOB 基本図

(51)

Spartan-6 と Virtex-5 との IO リソース比較は、以下の通りです。 入力信号 ディレイ調整 (デフォルト/固定/可変値)有り (IDELAYCTRL必須) (デフォルト/固定/可変値)有り 出力信号 ディレイ調整 有り (IDELAYCTRL必須) (固定値のみ) 有り (固定値のみ) IDELACTRL リファレンスクロック周波数 200MHz -IDELAY 1タップあたりの遅延 78ps タイミングレポートを確認 タップ数 64タップ 256タップ

8.1 Select

IO

全てのSpartan-6 には、コンフィギュレーション可能な高性能 SelectIO ドライバとレシーバがあり、さまざまな インターフェース規格に対応しています。また、インターフェース規格によっては、出力能力、スルーレート、オ ンチップ終端などを設定することもできます。 以下はSpartan -6 でサポートしているインターフェース規格です。 【 シングルエンドインターフェース規格 】 LVTTL 3.3V、LVCMOS(3.3V、2.5V、1.8V、1.5V、1.2V)、PCI 3.3V、I2C、SMBUS、SDIO 3.3V、 MOBILE_DDR、HSTL 1.8V および 1.5V(Class I、II、III)、SSTL 3.3V、2.5V、1.8V(Class I、II)、SSTL 1.5V(Class II) 【 差動インターフェース規格 】 LVDS(3.3V、2.5V)、LVPECL(3.3V、2.5V)、Bus-LVDS 2.5V、DISPLAY_PORT、Mini-LVDS(3.3V、 2.5V)、RSDS(3.3V、2.5V)、TMDS 3.3V、PPDS(3.3V、2.5V)、差動 HSTL、差動 SSTL I/O をバンクに割り当てる際は、次の規則に従ってください。 規則 1 : バンクを使用しない場合でも、FPGA 上のすべての VCCO ピンを接続。 規則 2 : 1 つのバンクに関連付けられている VCCO ラインは、すべて同じ電圧レベルに設定。 規則 3 : バンクの I/O に割り当てられたすべての規格で使用される VCCO レベルは一致。 規則 4 : バンクに VCCO 要件がない場合は、VCCO を 2.5V や 3.3V などの使用可能な電圧に接続。 規則 5 : 差動インターフェース出力はバンク 0、2 のみに割り当て VREF が使用されている場合は、次の規則にも従ってください。 規則 1 : すべての VREF ピンをバンク内で接続。 規則 2 : 1 つのバンクに関連付けられている VREF ラインは、すべて同じ電圧レベルに設定。 規則 3 : バンクの I/O に割り当てられたすべての規格で使用される VREF レベルは一致。

【 参考 】 Spartan-6 FPGA SelectIO リソース ユーザーガイド – 英語版 v1.1 [ p.40~ : I/O Banking Rules ]

(52)

9 SelectIO ロジックリソース

Spartan-6 には、従来の Spartan FPGA に含まれる全ての基本的な I/O ロジックリソースがあります。 基本的な I/O ロジックリソースは、以下の通りです。 ・ 組み合わせ入力/出力 ・ トライステート出力制御 ・ レジスタ付き入力/出力 ・ レジスタ付きトライステート出力制御 ・ 3 ステート出力コントロールレジスタ ・ ダブルデータレート (DDR) 入力/出力 ・ DDR 出力トライステート制御 さらに、Spartan-6 は次のアーキテクチャ機能を実装しています。 ・ IODELAY2 (入出力遅延調整機能) ・ NONE、 C0 、そして C1 出力 DDR モード ・ NONE、 C0 、そして C1 入力 DDR モード ・ ISERDES ・ OSERDES

(53)

9.1 ILOGIC2 リソース

ILOGIC2 は以下の機能をサポートします。 ・ エッジトリガ D 型フリップフロップ ・ DDR モード ・ レベル認識ラッチ ・ 非同期/同期組み合わせ 図9-1-1 : ILOGIC2 ブロック 【 入力 DDR ( IDDR2 ) について 】

Spartan-6 には、 ILOGIC2 内部に入力 DDR ( IDDR2 ) 専用レジスタが内蔵されているため、ILOGIC2 内で 入力ダブルデータレート ( DDR ) レジスタを実装できます。 この機能を使用する場合は IDDR プリミティブをインスタンシエートしてください。 表 9-1-1:IDDR 2 ポート信号 図9-1-2 : IDDR2 プリミティブ 表9-1-2:IDDR 2 アトリビュート [ p.47~ : ILOGIC2 Resources ] http://www.xilinx.com/support/documentation/user_guides/ug381.pdf http://www.xilinx.com/support/documentation/user_guides/ug381.pdf [p.48~ : Input DDR Primitive ] 【 参考 】 Spartan-6 SelectIO リソース ユーザーガイド 英語版 v1.1 【 参考 】 Spartan-6 SelectIO リソース ユーザーガイド 英語版 v1.1

(54)

9.2 OLOGIC2 リソース

OLOGIC2 は以下の機能をサポートします。 ・ エッジトリガ D 型フリップフロップ ・ DDR モード ・ レベル認識ラッチ ・ 非同期/同期組み合わせ 図9-2-1 :OLOGIC プリミティブ 【 出力 DDR ( ODDR2 ) について 】

Spartan-6 には、 OLOGIC2 内部に出力 DDR ( ODDR2 ) 専用レジスタが内蔵されているため、OLOGIC2 内で出力ダブルデータレート ( DDR ) レジスタを実装できます。 この機能を使用する場合は ODDR プリミティブをインスタンシエートしてください。 表9-2-1:ODDR2 ポート信号 図9-2-2 : ODDR2 プリミティブ 表 9-2-2 :ODDR2 アトリビュート [p.53~ : OLOGIC2 Resources ] http://www.xilinx.com/support/documentation/user_guides/ug381.pdf http://www.xilinx.com/support/documentation/user_guides/ug381.pdf

[p.54~ : Output DDR Overview ( ODDR2 ) ]

【 参考 】 Spartan-6 SelectIO リソース ユーザーガイド 英語版 v1.1 【 参考 】 Spartan-6 SelectIO リソース ユーザーガイド 英語版 v1.1

(55)

9.3 IODELAY2 ( 入力/出力遅延エレメント )

全ての IO ブロック内には 入力遅延または出力遅延としてコンフィギュレーション可能な遅延エレメントが含ま れています。 Virtex-5 の構造とは異なり、Spartan-6 の遅延は温度や電圧に対して調整されませんが、遅延をダイナミック に正しくキャリブレーションする機構が含まれています。 IODELAY2 は 0 ~ 255 タップの遅延エレメントで、1 タップあたりの遅延値は 20 ~ 80 ps となります。 正確な値を知るためには開発ツール ISE に含まれている Timing Analyzer を使用して調べてください。 また、IDELAY_TYPE の Attribute を VARIABLE_FROM_HALF_MAX にして、キャリブレーションを実行す ることで、図 9-3-1 のように、 入力クロックの 周期の半分の位相に入力データを調整することができます。

(56)

図 9-3-2 に IODELAY2 プリミティブ を示します。

図 9-3-2 : IODELAY2 プリミティブ 表9-3-1 : IODELAY2 ポート信号

(57)
(58)

この機能を使用する場合は IODELAY2 プリミティブをインスタンシエートするか、開発ツール ISE に含まれて いる SelectIO Interface Wizard を使用して生成してください。

図9-3-3 : SelectIO Interface Wizard と Language Templates

http://www.xilinx.com/support/documentation/user_guides/ug381.pdf

[p.61~ : I/O Delay Overview]

(59)

9.4 位相検出器の概要

位相検出器によって、サンプリング IO クロックが受信データビットのアイの中央より前または後で行われてい るのかを判断でき、入力遅延エレメント( IODELAY2 ) の遅延は適切に調整されます。

位相検出器は入力差動データでのみ使用可能です。この機構を使用する場合は、入力遅延エレメント ( IODELAY2 ) を 特別なモード ( IDELAY_TYPE = DIFF_PHASE_DETECTOR )

に設定し、マスタおよびスレーブ ISERDES を使用します。また、デシリアル化のデータおよび FPGA ロジック への入力は、常にマスタ入力遅延から供給されます。 図 9-4-1 に 位相検出器のトポロジ を示します 図 9-4-1 位相検出器のトポロジ 【 位相検出器のキャリブレーションおよび動作について】 ここでは、位相検出器のキャリブレーションおよび動作について簡単に説明します。 ISERDES2 ① マスタおよびスレーブ入力遅延に対して、CAL コマンド、RST コマンドを発行。 ・ マスタ遅延は入力IO クロック周期の 1/2 周期を加えたもの(HALF MAX) ・ スレーブ遅延は入力IO クロック周期の 1 周期 を加えたもの(MAX)

(60)

② 図 9-4-2 に示す S3、S2、E3 信号を比較し、マスタおよびスレーブ入力遅延をインクリメント / デクリメン トする。 ・ E3 と S2 が同じ場合:S3 は少し早くサンプリングされている ・ E3 と S3 が同じ場合:S3 は少し遅くサンプリングされている 図 9-4-2 :位相検出器の動作 サンプリングが早い場合のタイミング図を図 9-4-3 に、サンプリングが遅い場合のタイミング図を 図9-4-4 に示します。 図 9-4-3 : サンプリングが早い場合の位相検出器の内部タイミング ( S3 ≠ E3、S2 = E3 ) 図 9-4-4 :サンプリングが遅い場合の位相検出器の内部タイミング ( S3 = E3、S2 ≠ E3 ) ③ スレーブ入力遅延のみに対して定期的にCAL コマンドを発行 http://www.xilinx.com/support/documentation/user_guides/ug381.pdf

[p.73~ : Phase Detector Overview]

(61)

9.5 アドバンスト SelectIO

Spartan-6 の ILOGIC2 には、入力シリアル-パラレルコンバータ機能である ISERDES2 、 OLOGIC2 には出 力パラレル-シリアルコンバータ機能である OSERDES2 を備えています。 これらの機能を使用することで、 非常に高速な IO データレートをサポートすることができます。

このコンバータはシングルデータレート ( SDR ) およびダブルデータレート ( DDR ) の両方をサポートしてい ます。

1 つの ISERDES2 / OSERDES2 では 2, 3 または 4 ビット幅のパラレルワードを作成できます。また差動入 力/出力を使用する場合、2 つの IOB にある、それぞれの ISERDES2 / OSERDES2 をカスケードさせること により、 5, 6, 7 または 8 ビット幅のパラレルワードを作成できます。

この機能を使用する場合は、ISERDES2 / OSERDES2 プリミティブをインスタンシエートするか、開発ツール ISE に含まれている SelectIO Interface Wizard を使用して生成してください。

(62)

【 ISERDES2 について 】 図 9-5-2 に ISERDES2 プリミティブを示します。 表 9-5-1 :ISERDES2 ポート信号

(63)
(64)

図9-5-2 : ISERDES2 プリミティブ

http://www.xilinx.com/support/documentation/user_guides/ug381.pdf

[p.67~ : ISERDES Overview]

(65)

【 OSERDES2 について 】

図 9-5-3 に OSERDES2 プリミティブを示します。 表9-5-3 : OSERDES2 ポート信号

(66)
(67)

図 9-5-3 : OSERDES2 プリミティブ

http://www.xilinx.com/support/documentation/user_guides/ug381.pdf

[p.79~ : OSERDES Overview]

(68)

10 RocketIO GTP ( 3.125Gbps 内蔵 トランシーバ )

10.1

Spartan-6 GTP 概要

Spartan-6 LXT デバイスには GTP という、最大 3.125Gbps*で動作する全 2 重トランシーバが内蔵されてい ます。(Spartan-6 LX デバイスには、GTP は内蔵されていません。) *GTP の対応するレートは、【614Mb/s~810Mb/s】、【1.22Gb/s ~1.62Gb/s】、【2.45Gb/s~3.125Gb/s】 の 3 領域に分かれます。( Speed Grade -2 の場合、最大 2.7Gbps まで対応)

GTP は、Spartan-6 LXT デバイスに内蔵されている、PCI Express Endpoint Block*と接続することで、容易 にPCI express インターフェース(Gen1 x1)を実現することが可能です。

*PCI Express Base Specification 1.1 に準拠 ( x1 のみ対応 )

その他、対応するプロトコルは以下となります。( 2010 年 1 月時点 )

XAUI / Gigabit Ethernet / Serial RapidIO / SATA / CPRI / OBSAI / Display Port / GPON / SDI GTP は、Spartan-6 LXT デバイスに最大 8 個( デバイス・パッケージサイズに依存 )内蔵されています。 デバイス・パッケージサイズごとに搭載されているGTP の数は、表 1-2-1 をご参照ください。 8 個 GTP を内蔵しているデバイスの場合、4 個ずつ上下に GTP が配置されます。 4 個以下の場合は、上辺にのみ GTP が配置されます。

GTP_Bank

GTP_Bank

表 3-4-1 : BUFIO2 のポート定義
図 3-5-2 : グローバルクロックリソースの共有(BANK0,1)
図 3-5-3 : グローバルクロックリソースの共有(BANK2,3)
図 4-1-3-1 : 出力クロックジッタの計算式 【 参考 】 Spartan-6 データシート – 英語版 v1.2
+7

参照

関連したドキュメント

Municipal Bond Fund JPY-H Dividend Retail Class」における比率です。

③ 低温事業

党外の一般「政治新聞」として社会党を後援するという形で刊行が継続されることとなった

35 大阪城公園での走行コース例 大阪府 みどり・ 都市環境室 環境情報 センター 平坦、上り・ 下り坂など 変化に富ん だコース

(Dawkins, 1976)

梅野・川野:社会科教育「教材資料」作成の方法と課題(2)

低速の自律型モビリティシステム向け 無線ネットワーク構築・制御技術 2018/2/16

冷凍・空調機器での炭化水素系冷媒による爆発事故例 機器 冷媒 時期・場所 事故状況 備考 家庭用冷蔵庫