68
高集積度 FPGA 設計手法 ガイド スタックド シリコン インターコネクト (SSI) テクノロジ UG872 (v14.1) 2012 4 24

高集積度 FPGA 設計手法 ガイド - japan.xilinx.com€¦ · 高集積度 FPGA 設計手法ガイド japan.xilinx.com 5 UG872 (v14.1) 2012 年 4 月 24 日 第1 章 概要

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 高集積度 FPGA 設計手法 ガイド - japan.xilinx.com€¦ · 高集積度 FPGA 設計手法ガイド japan.xilinx.com 5 UG872 (v14.1) 2012 年 4 月 24 日 第1 章 概要

高集積度 FPGA 設計手法ガイド

スタ ック ド シリコン インターコネク ト (SSI) テク ノロジ

UG872 (v14.1) 2012 年 4 月 24 日

Page 2: 高集積度 FPGA 設計手法 ガイド - japan.xilinx.com€¦ · 高集積度 FPGA 設計手法ガイド japan.xilinx.com 5 UG872 (v14.1) 2012 年 4 月 24 日 第1 章 概要

高集積度 FPGA 設計手法ガイド japan.xilinx.com UG872 (v14.1) 2012 年 4 月 24 日

Notice of Disclaimer

The information disclosed to you hereunder (the “Materials”) is provided solely for the selection and use of Xilinx products. Tothe maximum extent permitted by applicable law: (1) Materials are made available "AS IS" and with all faults, Xilinx herebyDISCLAIMS ALL WARRANTIES AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING BUT NOTLIMITED TO WARRANTIES OF MERCHANTABILITY, NON-INFRINGEMENT, OR FITNESS FOR ANY PARTICULARPURPOSE; and (2) Xilinx shall not be liable (whether in contract or tort, including negligence, or under any other theory ofliability) for any loss or damage of any kind or nature related to, arising under, or in connection with, the Materials (includingyour use of the Materials), including for any direct, indirect, special, incidental, or consequential loss or damage (including lossof data, profits, goodwill, or any type of loss or damage suffered as a result of any action brought by a third party) even if suchdamage or loss was reasonably foreseeable or Xilinx had been advised of the possibility of the same. Xilinx assumes noobligation to correct any errors contained in the Materials or to notify you of updates to the Materials or to product specifications.You may not reproduce, modify, distribute, or publicly display the Materials without prior written consent. Certain products aresubject to the terms and conditions of the Limited Warranties which can be viewed at http://www.xilinx.com/warranty.htm; IPcores may be subject to warranty and support terms contained in a license issued to you by Xilinx. Xilinx products are notdesigned or intended to be fail-safe or for use in any application requiring fail-safe performance; you assume sole risk andliability for use of Xilinx products in Critical Applications: http://www.xilinx.com/warranty.htm#critapps.

© Copyright 2012 Xilinx, Inc. Xilinx, the Xilinx logo, Artix, ISE, Kintex, Spartan, Virtex, Vivado, Zynq, and other designatedbrands included herein are trademarks of Xilinx in the United States and other countries. All other trademarks are the propertyof their respective owners.

本資料は英語版 (v14.1) を翻訳したもので、 内容に相違が生じる場合には原文を優先します。

資料によっては英語版の更新に対応していないものがあ り ます。

日本語版は参考用と してご使用の上、 新情報につきましては、 必ず 新英語版をご参照ください。

この資料に関するフ ィードバッ クおよびリ ンクなどの問題につきましては、 [email protected] までお知らせく

ださい。 いただきましたご意見を参考に早急に対応させていただきます。 なお、 このメール アドレスへのお問い合わせは受け

付けており ません。 あらかじめご了承ください。

改訂履歴

日付 バージョ ン 改訂内容

2012 年 1 月 18 日 13.4 初版

2012 年 4 月 24 日 14.1 • 表 3-1 「各 Virtex-7 SLR に含まれる主な リ ソース」 の SLR 間のインターコネク

ト をアップデート

• 表 3-2 「各 SLR の交差ポイン トに使用される SLL コンポーネン ト数」 の SLLコンポーネン ト をアップデート

• 図 3-5 「SSI デバイスで少しずつずら された SLL が交差」 をアップデート

• 図 3-6 「SLR での SLL 接続」 をアップデート

Page 3: 高集積度 FPGA 設計手法 ガイド - japan.xilinx.com€¦ · 高集積度 FPGA 設計手法ガイド japan.xilinx.com 5 UG872 (v14.1) 2012 年 4 月 24 日 第1 章 概要

高集積度 FPGA 設計手法ガイド japan.xilinx.com 3UG872 (v14.1) 2012 年 4 月 24 日

改訂履歴. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

第 1 章 : 概要

デザイン ス ト ラテジ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

高集積度 FPGA デバイス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

SSI テク ノ ロジ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

第 2 章 : 高集積度 FPGA デバイス設計手法

利点 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

配線使用率 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

デザイン パフォーマンス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

消費電力. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

プロジェク ト コス ト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

第 3 章 : スタ ック ド シリコン インターコネク ト (SSI)SSI コンポーネン ト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

ク ロ ッキング . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

SLR コンポーネン トでのデザイン配置の管理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

SSI コンフ ィギュレーシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

第 4 章 : システム レベルのデザイン

ピン配置の選択 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

制御セッ ト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

HDL コーディング手法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

第 5 章 : クロッキング

ク ロ ッ ク リ ソースの選択 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

グローバル クロ ッキング . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

リージ ョナル クロ ッキング . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

SSI デバイスのクロ ッキング . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

SSI デバイスのクロ ッ ク スキュー . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

ク ロ ッ ク位相、 周波数、 デューティ サイクル、 およびジッターの制御 . . . . . . . . . . . . . . . . . . . . . 55

出力クロッ ク . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

ク ロ ッ ク ド メ インの交差 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

非クロッ ク ネッ トにクロ ッ ク バッファーを使用. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

ク ロ ッ ク リ ソースのまとめ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

付録 A : その他のリソース

ザイ リ ンクス リ ソース . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

ハード ウェア資料 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

ISE 資料 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

目次

Page 4: 高集積度 FPGA 設計手法 ガイド - japan.xilinx.com€¦ · 高集積度 FPGA 設計手法ガイド japan.xilinx.com 5 UG872 (v14.1) 2012 年 4 月 24 日 第1 章 概要

4 japan.xilinx.com 高集積度 FPGA 設計手法ガイ ド

UG872 (v14.1) 2012 年 4 月 24 日

パーシャル リ コンフ ィギュレーシ ョ ン資料 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

PlanAhead 資料 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

Page 5: 高集積度 FPGA 設計手法 ガイド - japan.xilinx.com€¦ · 高集積度 FPGA 設計手法ガイド japan.xilinx.com 5 UG872 (v14.1) 2012 年 4 月 24 日 第1 章 概要

高集積度 FPGA 設計手法ガイド japan.xilinx.com 5UG872 (v14.1) 2012 年 4 月 24 日

第 1 章

概要

このガイ ドでは、 高集積度 FPGA デバイスをターゲッ ト にしたデザインについて解説します。 ス

タ ッ ク ド シ リ コン インターコネク ト (SSI) テク ノ ロジを使用したデザインについても説明します。

デザイン スト ラテジ

このガイ ドでは、 次のス ト ラテジを詳し く説明します。

• システム レベルのプランニング

• デザイン作成

• インプ リ メンテーシ ョ ン

• 解析

第 2 章 「高集積度 FPGA デバイス設計手法」 で説明されているよ うに、 これらのス ト ラテジは高集

積度 FPGA において次の面で 適な結果を得るのに役立ちます。

• 配線使用率

• デザイン パフォーマンス

• 消費電力

• プロジェク ト コス ト

高集積度 FPGA デバイス

「高集積度 FPGA デバイス」 という表現は、このガイ ドではザイ リ ンクス Virtex®-6 および Virtex-7デバイス ファ ミ リの高集積度デバイスを指します。

表 1-1 : ザイリンクス高集積度 FPGA デバイス

デバイス ファ ミ リ デバイス

Virtex-6 • LX550T

• LX760

Virtex-7 • 580HT

• 870HT

• 980XT

• 1140XT

• 1500T

• 2000T

Page 6: 高集積度 FPGA 設計手法 ガイド - japan.xilinx.com€¦ · 高集積度 FPGA 設計手法ガイド japan.xilinx.com 5 UG872 (v14.1) 2012 年 4 月 24 日 第1 章 概要

6 japan.xilinx.com 高集積度 FPGA 設計手法ガイ ド

UG872 (v14.1) 2012 年 4 月 24 日

第 1 章 : 概要

次の図に示すよ うに、 デバイスの機能は新しい FPGA デバイス ファ ミ リ ごとに向上しています。

現時点で も集積度の高い FPGA デバイスには、 通常次のものが含まれています。

• 100 万個を超える 6 入力 LUT

• 200 万個を超えるレジスタ

• 数千個のブロ ッ ク RAM コンポーネン トおよび DSP ブロ ッ ク

• 1000 個を超える汎用 I/O コンポーネン ト

• 大 96 個のマルチギガビッ ト ト ランシーバー (GT)

• その他多数のファンクシ ョ ンおよびリ ソース

機能が大き く飛躍したこ とで、 大型システムを少ないチップに、 さ らには 1 つのチップに統合する

こ とが可能になっています。

X-Ref Target - Figure 1-1

図 1-1 : FPGA の機能は 5 年未満で 6 倍以上向上

Page 7: 高集積度 FPGA 設計手法 ガイド - japan.xilinx.com€¦ · 高集積度 FPGA 設計手法ガイド japan.xilinx.com 5 UG872 (v14.1) 2012 年 4 月 24 日 第1 章 概要

高集積度 FPGA 設計手法ガイド japan.xilinx.com 7UG872 (v14.1) 2012 年 4 月 24 日

SSI テク ノロジ

SSI テク ノロジ

大容量、 高性能を誇る Virtex-7 FPGA は、 スタ ッ ク ド シ リ コン インターコネク ト (SSI) テク ノ ロ

ジと呼ばれる製造プロセスを使用して作成されています。

SSI を採用した Virtex-7 をターゲッ トにする と きも、ほかの大型 FPGA デザインで使用されるのと

同じツール、 テクニッ ク、 手法が多く使用されますが、 Virtex-7 アーキテクチャは特殊なため、 特

別な注意事項がいくつかあ り ます。

詳細は、 第 3 章 「スタ ッ ク ド シ リ コン インターコネク ト (SSI)」 を参照して ください。

Page 8: 高集積度 FPGA 設計手法 ガイド - japan.xilinx.com€¦ · 高集積度 FPGA 設計手法ガイド japan.xilinx.com 5 UG872 (v14.1) 2012 年 4 月 24 日 第1 章 概要

8 japan.xilinx.com 高集積度 FPGA 設計手法ガイ ド

UG872 (v14.1) 2012 年 4 月 24 日

第 1 章 : 概要

Page 9: 高集積度 FPGA 設計手法 ガイド - japan.xilinx.com€¦ · 高集積度 FPGA 設計手法ガイド japan.xilinx.com 5 UG872 (v14.1) 2012 年 4 月 24 日 第1 章 概要

高集積度 FPGA 設計手法ガイド japan.xilinx.com 9UG872 (v14.1) 2012 年 4 月 24 日

第 2 章

高集積度 FPGA デバイス設計手法

合成およびインプ リ メンテーシ ョ ン ツールは、FPGA デバイスの固定リ ソースを 適に使用する必

要があ り ます。

この目標を達成するため、このガイ ドでは高集積度 FPGA デバイス設計手法の次の項目について説明

します。

• コードの記述方法

• インプ リ メンテーシ ョ ン手法

• デザイン テクニッ ク

利点

FPGA デバイスは急速に向上してきたため、 リ ソース使用率、 パフォーマンス、 消費電力をはじめ

とするデザイン目標を達成するには、 従来のコード記述方法やインプ リ メンテーシ ョ ン手法は十分

ではあ り ません。

ザイ リ ンクス高集積度 FPGA デバイス設計手法を利用するこ とで、次のよ う なデバイスやデザイン

の特性を 大限に活用した設計が可能となり ます。

• 配線使用率

• デザイン パフォーマンス

• 消費電力

また、 この手法で次の点における効率を高めるこ とができます。

• ソフ ト ウェア ランタイム

• デバッグ

• 移植性

効率の悪いコード記述やインプ リ メンテーシ ョ ンはデザイン目標の達成を大き く妨げるこ とにな り

ます。 これらは、 デザインまたはデバイスのサイズにかかわらず影響しますが、 高集積度デバイス

をターゲッ トにしたデザインには特に影響します。

このガイ ドで説明する ト ピッ クの多くは、 特に新しいものでも高集積度デバイスに限られたもので

もあ り ませんが、大型の FPGA デザインにこ う した手法を採用するこ とで、デザイン目標を満たす

だけでなく、 それを上回る結果を得るこ とが可能になり ます。

Page 10: 高集積度 FPGA 設計手法 ガイド - japan.xilinx.com€¦ · 高集積度 FPGA 設計手法ガイド japan.xilinx.com 5 UG872 (v14.1) 2012 年 4 月 24 日 第1 章 概要

10 japan.xilinx.com 高集積度 FPGA 設計手法ガイ ド

UG872 (v14.1) 2012 年 4 月 24 日

第 2 章 : 高集積度 FPGA デバイス設計手法

配線使用率

FPGA デバイスの配線は、 固定された有限リ ソースです。

配線リ ソースを正し く管理しないと、次のよ う な FPGA デザイン特性に悪影響を与える可能性があ

り ます。

• リ ソース使用率

• パフォーマンス目標の達成

• 電力要件の達成または消費電力の低減

配線の使用は、 次の項目に直接関係しています。

• システム レベル デザインの選択

• デザイン入力

• コードの記述方法

• インプ リ メンテーシ ョ ンおよびデバッグの方法

配線リソースの非効率な使用

配線リ ソースが非効率に使用される と、 配線が密集したり、 ツールでの配線の選択が制限される原

因となり、 次のよ う な結果を招く こ とがあ り ます。

• 配線容量の増加 (消費電力の増加)

• 遅延の増加 (パフォーマンスへの悪影響)

• デバイスにデザインを完全に配線できない (ワース ト ケース)

X-Ref Target - Figure 2-1

図 2-1 : 集積度が高いほど高いリソース使用率を達成するのに努力が必要

Page 11: 高集積度 FPGA 設計手法 ガイド - japan.xilinx.com€¦ · 高集積度 FPGA 設計手法ガイド japan.xilinx.com 5 UG872 (v14.1) 2012 年 4 月 24 日 第1 章 概要

高集積度 FPGA 設計手法ガイド japan.xilinx.com 11UG872 (v14.1) 2012 年 4 月 24 日

デザイン パフォーマンス

高集積度デバイスではロジッ ク アレイ数が多く、 次のよ うな傾向があ り ます。

• 関連ロジッ ク ファンクシ ョ ンが離れて配置される

• 一部の信号のファンアウ トがかなり大き くなる

• 完全なデザインを実現させるにはさ らに多くの配線リ ソースおよび配線エリア必要となる

配線チャネルを使い切ってしま う と、 リ ソース使用率は低下します。

配線使用率の改善

このガイ ドで説明する手法を利用する と、 次が可能になり ます。

• 配線使用率を向上する

• 使用可能なロジッ ク数が増加する

• 一部の FPGA リ ソースの必要性を軽減する

• アプリケーシ ョ ンのデバイス使用率を削減する

• 今後の拡張のためリ ソースに余裕を持たせる

• 集積度の低いデバイスに移行し、 コス ト 、 消費電力などを改善する

デザイン パフォーマンス

デザイン パフォーマンスを管理していないと、 次のよ うな問題が発生するこ とがあ り ます。

• タイ ミ ング ク ロージャが困難になる

• ランタイムが長くなる

• 実行の繰り返しが増える

• デザイン パフォーマンスが低下する

大型デザインでは、次のよ うなさまざまな要因によ り、配置が 適なものにならないこ とがあり ます。

• I/O 接続数が多い

• データ バス幅が非常に大きい

• ファンアウ トが大きい信号が多い

• ロジッ ク レベル数が多すぎる

配置が 適でないと配線リ ソースがさ らに必要になり、 その結果、 配線が長くなり、 パフォーマン

スの低下を招きます。

大型デザインは範囲やサイズが大きいため、数え切れないほどのタイ ミ ング パスを解析し、 ク ロー

ジャに導く必要があ り ます。 大型デザインのパフォーマンス管理は小型デザインよ り も さ らに重要

です。

Page 12: 高集積度 FPGA 設計手法 ガイド - japan.xilinx.com€¦ · 高集積度 FPGA 設計手法ガイド japan.xilinx.com 5 UG872 (v14.1) 2012 年 4 月 24 日 第1 章 概要

12 japan.xilinx.com 高集積度 FPGA 設計手法ガイ ド

UG872 (v14.1) 2012 年 4 月 24 日

第 2 章 : 高集積度 FPGA デバイス設計手法

消費電力

新しいザイ リ ンクス FPGA デバイスでは、 消費電力が大き く削減されています。

こ う した削減がなければ、デザインの消費電力はデザイン サイズに対して過度に増加する可能性があ

り ます。 消費電力を下げるには、 チップ内部の放熱やチップに必要な電源量を削減する必要があり ま

す。

システム レベルで消費電力に細心の注意を払っても、 デバイス レベルで確認しないと、 消費電力

が許容できない量に達してしま う こ とがあ り ます。

このガイ ドの推奨事項の多くは、 特定のデザインやファンクシ ョ ンの消費電力を低減するのに役立

ちます。

消費電力解析および消費電力低減手法の詳細は、付録 A 「その他のリ ソース」 に リ ス ト されている

『消費電力手法ガイ ド』 (UG786) を参照して ください。

プロジェク ト コス ト

大型 FPGA デザインはリ ソースを多く使用します。 リ ソース使用率は、次のよ う な固定リ ソースに

おいて著し く高くなってしま う こ とがあ り ます。

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

• フ リ ップフロ ップ (FF)

• ク ロ ッ ク リ ソース

• I/O コンポーネン ト

• RAM コンポーネン ト

• DSP コンポーネン ト

リ ソース使用率が高まる と、 さ らに高集積の FPGA デバイスや、 複数の高集積度 FPGA デバイス

への移行が必要になる可能性があ り ます。

FPGA リ ソースが効率よ く管理されていないと、 大型デザインがさ らに大き くな り、 プロジェク ト

のコス トが増大するこ とにな り ます。 たとえば、 大型デザインで リ ソースが 10% 非効率に使用さ

れている と、小型デザインでの 10% の非効率よ り もコス トがかなり大き くなる可能性があ り ます。

デザインのサイズや複雑さは、デバイスのコス トだけでなく、 ボードのコス ト、 プロジェク ト スケ

ジュール上の追加コス ト も含め、 全体的なコス トの上昇につながり ます。

Page 13: 高集積度 FPGA 設計手法 ガイド - japan.xilinx.com€¦ · 高集積度 FPGA 設計手法ガイド japan.xilinx.com 5 UG872 (v14.1) 2012 年 4 月 24 日 第1 章 概要

高集積度 FPGA 設計手法ガイド japan.xilinx.com 13UG872 (v14.1) 2012 年 4 月 24 日

第 3 章

スタ ック ド シリコン インターコネク ト (SSI)

このガイ ドでは、高集積度 FPGA デバイスをターゲッ トにしたデザインについて解説します。 この

章では、スタッ ク ド シ リ コン インターコネク ト (SSI) テク ノ ロジを使用したデザインについて特に

説明します。

このテク ノ ロジは、 パッシブ シ リ コン インターポーザーに実装された複数の SLR (Super LogicRegion) コンポーネン ト をま とめるものです。

従来のデバイス と比較する と、SSI テク ノ ロジを利用したザイ リ ンクス FPGA デバイスには次のよ

う な特徴があ り ます。

• 集積度が高い

• 専用機能が多い

• 消費電力が低い

Page 14: 高集積度 FPGA 設計手法 ガイド - japan.xilinx.com€¦ · 高集積度 FPGA 設計手法ガイド japan.xilinx.com 5 UG872 (v14.1) 2012 年 4 月 24 日 第1 章 概要

14 japan.xilinx.com 高集積度 FPGA 設計手法ガイ ド

UG872 (v14.1) 2012 年 4 月 24 日

第 3 章 : スタ ッ ク ド シリコン インターコネク ト (SSI)

注記 : 「従来のデバイス」 および 「モノ リ シッ ク デバイス」 という表現は、 SSI テク ノ ロジを使用

していないデバイスのこ とを指します。X-Ref Target - Figure 3-1

図 3-1 : SSI デバイスの構造

Page 15: 高集積度 FPGA 設計手法 ガイド - japan.xilinx.com€¦ · 高集積度 FPGA 設計手法ガイド japan.xilinx.com 5 UG872 (v14.1) 2012 年 4 月 24 日 第1 章 概要

高集積度 FPGA 設計手法ガイド japan.xilinx.com 15UG872 (v14.1) 2012 年 4 月 24 日

SSI コンポーネン ト

SSI コンポーネン ト

このセクシ ョ ンでは、次のスタ ッ ク ド シ リ コン インターコネク ト (SSI) コンポーネン トについて説

明します。

• SLR (Super Logic Region)

• シ リ コン インターポーザー

• SLL (Super Long Line) 配線

• マスター SLR (Super Logic Region)

SLR (Super Logic Region)

SLR (Super Logic Region) とは、 SSI デバイスに含まれる FPGA ダイ スライス 1 つを指します。

能動回路

各 SLR には、 ほとんどのザイ リ ンクス FPGA に共通の能動回路が含まれています。 この回路には

次のものが多数含まれています。

• 6 入力 LUT

• レジスタ

• I/O コンポーネン ト

• ギガビッ ト ト ランシーバー (GT)

• ブロ ッ ク メモ リ

• DSP ブロ ッ ク

• その他のブロ ッ ク

SLR コンポーネン ト

1 つの SSI デバイスは、 複数の SLR コンポーネン トから構成されています。

SLR のアスペク ト比は、高さよ り も幅の方が広いのが一般的です。SLR コンポーネン トはインター

ポーザー上に垂直に重ねられています。

SSI デバイスは、 複数の SLR コンポーネン ト を垂直方向に重ねて作成されています。

• 一番下の SLR は SLR0

• SLR コンポーネン トが垂直方向に積み重ねられるにつれ、 番号が大き くなる

X-Ref Target - Figure 3-2

図 3-2 : SSI デバイスに含まれる SLR

Page 16: 高集積度 FPGA 設計手法 ガイド - japan.xilinx.com€¦ · 高集積度 FPGA 設計手法ガイド japan.xilinx.com 5 UG872 (v14.1) 2012 年 4 月 24 日 第1 章 概要

16 japan.xilinx.com 高集積度 FPGA 設計手法ガイ ド

UG872 (v14.1) 2012 年 4 月 24 日

第 3 章 : スタ ッ ク ド シリコン インターコネク ト (SSI)

たとえば、 XC7V2000T デバイスには 4 つの SLR コンポーネン トがあ り ます。

• 一番下の SLR は SLR0

• SLR0 のすぐ上は SLR1

• SLR1 のすぐ上は SLR2

• 一番上の SLR は SLR3

ザイ リ ンクス ツール (PlanAhead™ デザイン解析ツールを含む) では、グラフ ィカル ユーザー イン

ターフェイス (GUI) およびレポート ファ イルで SLR コンポーネン トが明確に識別されます。

SLR の命名規則

次の作業を行う際、 ターゲッ ト デバイスの SLR 命名規則を理解しておく こ とが重要です。

• ピン選択

• フロアプラン

• タイ ミ ング レポート をはじめとするレポートの解析

• ロジッ クの位置およびそのロジッ クのソースとデスティネーシ ョ ンの特定X-Ref Target - Figure 3-3

図 3-3 : PlanAhead ツールでの 2000T デバイスの表示

Page 17: 高集積度 FPGA 設計手法 ガイド - japan.xilinx.com€¦ · 高集積度 FPGA 設計手法ガイド japan.xilinx.com 5 UG872 (v14.1) 2012 年 4 月 24 日 第1 章 概要

高集積度 FPGA 設計手法ガイド japan.xilinx.com 17UG872 (v14.1) 2012 年 4 月 24 日

SSI コンポーネン ト

Virtex-7 デバイス ファ ミ リの SLR コンポーネン ト

Virtex®-7 デバイス ファ ミ リでは、 2 つの異なる SLR コンポーネン トが使用されています。

• xc7v1500t および xc7v2000t デバイス

• xc7vx1140t および Virtex-7 HT デバイス ファ ミ リ

xc7v1500t および xc7v2000t デバイス

xc7v1500t および xc7v2000t デバイスでは、 次のものを含む同じタイプの SLR が使用されます。

• 約 50 万個のロジッ ク セル

• 含まれるコンポーネン ト :

• I/O

• ブロ ッ ク RAM

• DSP ブロ ッ ク

• GTX ト ランシーバー

• その他のブロ ッ ク

xc7vx1140t および Virtex-7 HT デバイス ファ ミ リ

xc7vx1140t デバイスおよび Virtex-7 HT デバイス ファ ミ リでは、 次のコンポーネン ト を含む SLRが使用されます。

• 約 29 万個のロジッ ク セル

• GTH ト ランシーバー

• xc7v1500T および xc7v2000t の SLR コンポーネン ト よ り も多数のブロ ッ ク RAM および

DSP コンポーネン ト

表 3-1 : 各 Virtex-7 SLR に含まれる主なリソース

Virtex-7 T SLR Virtex-7 XT/HT SLR

ロジッ ク セル 488,640 284,800

スライス 76,350 44,500

ブロ ッ ク RAM 323 470

DSP スライス 540 840

クロ ッ ク領域/MMCM 6 6

I/O 300 300

ト ランシーバー 12 24

SLR 間のインターコネク ト 12,864 10,560

Page 18: 高集積度 FPGA 設計手法 ガイド - japan.xilinx.com€¦ · 高集積度 FPGA 設計手法ガイド japan.xilinx.com 5 UG872 (v14.1) 2012 年 4 月 24 日 第1 章 概要

18 japan.xilinx.com 高集積度 FPGA 設計手法ガイ ド

UG872 (v14.1) 2012 年 4 月 24 日

第 3 章 : スタ ッ ク ド シリコン インターコネク ト (SSI)

シリコン インターポーザー

シ リ コン インターポーザーは、 SSI デバイスの受動層です。

このレイヤーでは、 SLR コンポーネン ト間に次が配線されます。

• コンフ ィギュレーシ ョ ン

• グローバル ク ロ ッ ク

• 汎用インターコネク ト

シ リ コン インターポーザーでは、 次が提供されます。

• 電源およびグランド

• コンフ ィギュレーシ ョ ン

• デバイス間の接続

• その他必要な接続

能動回路は SLR 上にあ り ます。 シ リ コン インポーザーは Si 貫通電極 (TSV) コンポーネン ト を使

用してパッケージ基板に実装されています。 これらのコンポーネン トは、 FPGA デバイスの回路を

パッケージ ボールに接続します。

シ リ コン インポーザーは、 SLR コンポーネン ト とパッケージ基板の間のパイプ役を果たし、 次の

ものをデバイス パッケージに接続します。

• 電源およびグランドの接続

• I/O コンポーネン ト

• ギガビッ ト ト ランシーバー (GT)X-Ref Target - Figure 3-4

図 3-4 : シリコン インターポーザー

Page 19: 高集積度 FPGA 設計手法 ガイド - japan.xilinx.com€¦ · 高集積度 FPGA 設計手法ガイド japan.xilinx.com 5 UG872 (v14.1) 2012 年 4 月 24 日 第1 章 概要

高集積度 FPGA 設計手法ガイド japan.xilinx.com 19UG872 (v14.1) 2012 年 4 月 24 日

SSI コンポーネン ト

SLL (Super Long Line) 配線

• ある SLR から別の SLR に伝送される信号の汎用接続です。

• シ リ コン インターポーザー内にあ り ます。

• SLR のインターコネク トに直接接続されているマイクロバンプによ り SLR コンポーネン トに

接続されています。

• SLR の 12 本の垂直配線の中央に接続されます。

Virtex-7 デバイスの SLL コンポーネン ト

Virtex-7 デバイスでは、各 SLL コンポーネン トは垂直方向に 50 個のインターコネク ト タイル (50個のスライス コンポーネン トに相当) にまたがっています。これは、ザイ リ ンクス 7 シ リーズ FPGAデバイスの 1 クロ ッ ク領域の高さ と同じです。

つま り、 SLR に隣接するクロ ッ ク領域には、 ク ロ ッ ク領域のインターコネク ト ごとにその SLR に接続するインターコネク ト ポイン トが 1 つあり ます。

表 3-2 : 各 SLR の交差ポイン トに使用される SLL コンポーネン ト数

Virtex-7 デバイス SLL コンポーネン ト

7V1500T 12,864

7V2000T 13,270

7VX1140T 10,560

Page 20: 高集積度 FPGA 設計手法 ガイド - japan.xilinx.com€¦ · 高集積度 FPGA 設計手法ガイド japan.xilinx.com 5 UG872 (v14.1) 2012 年 4 月 24 日 第1 章 概要

20 japan.xilinx.com 高集積度 FPGA 設計手法ガイ ド

UG872 (v14.1) 2012 年 4 月 24 日

第 3 章 : スタ ッ ク ド シリコン インターコネク ト (SSI)

7VX1140T デバイスには、 DSP およびブロ ッ ク メモ リ列が多く含まれているので、 SLL コンポー

ネン トの数が少なくなっています。 これらの列では、同じエリアに対するインターコネク ト タイル

数が少なくなっています。

この SLR コンポーネン ト間の比率や差は図解用であ り、実際の差はこれよ り小さ くなっています。

X-Ref Target - Figure 3-5

図 3-5 : SSI デバイスで少しずつずらされた SLL が交差

Page 21: 高集積度 FPGA 設計手法 ガイド - japan.xilinx.com€¦ · 高集積度 FPGA 設計手法ガイド japan.xilinx.com 5 UG872 (v14.1) 2012 年 4 月 24 日 第1 章 概要

高集積度 FPGA 設計手法ガイド japan.xilinx.com 21UG872 (v14.1) 2012 年 4 月 24 日

SSI コンポーネン ト

SLL コンポーネン トは、SLR の 12 個のインターコネク ト タイルにまたがる 12 本の垂直ロング ラインの中央で SLR に接続されます。

この接続は、SLR とその隣接する SLR との間を SLL が接続するための 3 つの 適接続ポイン ト と

な り、 パフォーマンスを低下させたり消費電力を増加させずに柔軟に配置できるよ うにします。

X-Ref Target - Figure 3-6

図 3-6 : SLR での SLL 接続

Page 22: 高集積度 FPGA 設計手法 ガイド - japan.xilinx.com€¦ · 高集積度 FPGA 設計手法ガイド japan.xilinx.com 5 UG872 (v14.1) 2012 年 4 月 24 日 第1 章 概要

22 japan.xilinx.com 高集積度 FPGA 設計手法ガイ ド

UG872 (v14.1) 2012 年 4 月 24 日

第 3 章 : スタ ッ ク ド シリコン インターコネク ト (SSI)

伝搬上の制限

SLL 信号は、 SLR コンポーネン ト間のデータ接続のみを行います。

次のものは SLR コンポーネン ト間では伝搬されません。

• キャ リー チェーン

• DSP カスケード

• ブロ ッ ク RAM アドレス カスケード

• DCI カスケードなどのその他の専用接続

通常、 伝搬上の制限はツールで自動的に考慮されますが、 デザインが正し く配線されデザイン目標

が満たされるこ とを確実にするには、 非常に長い DSP カスケードを構築し、 SLR の境界付近にそ

のよ う なロジッ クを手動で配置する場合や、 デザインのピン配置を指定する場合にも この制限を考

慮する必要があ り ます。

X-Ref Target - Figure 3-7

図 3-7 : FPGA Editor での SLL (ハイライ ト表示)

Page 23: 高集積度 FPGA 設計手法 ガイド - japan.xilinx.com€¦ · 高集積度 FPGA 設計手法ガイド japan.xilinx.com 5 UG872 (v14.1) 2012 年 4 月 24 日 第1 章 概要

高集積度 FPGA 設計手法ガイド japan.xilinx.com 23UG872 (v14.1) 2012 年 4 月 24 日

SSI コンポーネン ト

マスター SLR (Super Logic Region)各 SSI デバイスには、 マスター SLR が 1 つあり ます。 すべての SSI デバイスにおいて SLR1 がマ

スター SLR とな り ます。

マスター SLR には、 デバイスおよびその他すべてのコンポーネン トのコンフ ィギュレーシ ョ ンを

開始するプライマ リ コンフ ィギュレーシ ョ ン ロジッ クが含まれています。

マスター SLR のみに次のよ うな専用回路が含まれています。

• DEVICE_DNA

• USER_EFUSE

• XADC

これらの回路にアクセスするには、 デバイスにピンまたはロジッ クを手動で制約する際、 関連ピン

またはロジッ クをマスター SLR に配置します。 これらのコンポーネン ト を使用する場合、 配置配

線ツールで関連ピンおよびロジッ クを適切な SLR に割り当てるこ とができます。 通常、 その他の

作業は必要あ り ません。

X-Ref Target - Figure 3-8

図 3-8 : xc7v2000t デバイスのマスター SLR

Page 24: 高集積度 FPGA 設計手法 ガイド - japan.xilinx.com€¦ · 高集積度 FPGA 設計手法ガイド japan.xilinx.com 5 UG872 (v14.1) 2012 年 4 月 24 日 第1 章 概要

24 japan.xilinx.com 高集積度 FPGA 設計手法ガイ ド

UG872 (v14.1) 2012 年 4 月 24 日

第 3 章 : スタ ッ ク ド シリコン インターコネク ト (SSI)

クロッキング

このセクシ ョ ンではクロ ッキングについて説明します。

• リージ ョナル ク ロ ッキング

• グローバル ク ロ ッキング (BUFG)

リージ ョナル クロッキング

SSI デバイスのクロ ッ ク供給アーキテクチャは、ザイ リ ンクス 7 シ リーズ FPGA デバイスのものと

類似しています。

次のコンポーネン トの リージ ョナル ク ロ ッキングの接続および動作は、 ザイ リ ンクス 7 シ リーズ

FPGA デバイスのものと同じです。

• BUFIO

• BUFR

• BUFH

例外

例外が 1 つだけあ り ます。

BUFMR または BUFMRCE が複数の SLR コンポーネン ト をまたぐこ とはあ り ません。

BUFMR または BUFMRCE が別の SLR と隣接する SLR のクロ ッ ク領域にある場合、 次の制限が

適用されます。

1. BUFMR または BUFMRCE は次のものにのみアクセス可能

a. BUFMR または BUFMRCE が配置されているク ロ ッ ク領域

b. 同じ SLR 内の隣接するクロ ッ ク領域

2. BUFMR または BUFMRCE は隣接する SLR にはアクセスできない

BUFMR または BUFMRCE は、 SLR の中央クロ ッ ク領域に配置するよ うにしてください。 そ うす

る と上下両方のクロ ッ ク領域にアクセスできます。

X-Ref Target - Figure 3-9

図 3-9 : SLR のクロック領域 (拡大表示)

Page 25: 高集積度 FPGA 設計手法 ガイド - japan.xilinx.com€¦ · 高集積度 FPGA 設計手法ガイド japan.xilinx.com 5 UG872 (v14.1) 2012 年 4 月 24 日 第1 章 概要

高集積度 FPGA 設計手法ガイド japan.xilinx.com 25UG872 (v14.1) 2012 年 4 月 24 日

クロッキング

ク ロ ッ ク ド メ インの 3 つのクロ ッ ク領域すべてにアクセスする必要が今はなくても、その必要が生

じたと きにすべての領域にクロ ッ クを供給できるよ うになり ます。 ク ロ ッ クおよびピン配置中にこ

の点を必ず考慮してください。

グローバル クロッキング (BUFG)SSI デバイスのグローバル ク ロ ッキング (BUFG) も、 ザイ リ ンクス 7 シ リーズ FPGA デバイスの

ものと類似しています。

• SLR でのグローバル クロ ッキング ト ポロジは同じ

• デバイス全体で使用できる BUFG コンポーネン トは 32 個

• 各 BUFG コンポーネン トで 1 つの SLR のクロ ッ ク領域に含まれている 12 個の水平クロ ッ ク

(BUFH) の 1 つを駆動可能

SSI デバイスに含まれるすべての SLR コンポーネン ト (ク ロ ッ クキングを含む) は、 ほかのザイ リ

ンクス 7 シ リーズ FPGA デバイスと同様です。

SLR の BUFG コンポーネン ト は、 ほかの SLR コンポーネン ト のク ロ ッ ク同期エレ メン ト にも ク

ロ ッ クを供給できます。 これは SLR 間のクロッ ク供給の接続およびトポロジによって可能になり ま

す。 SLR の 32 個の BUFG コンポーネン トのそれぞれが、 垂直グローバル クロ ッキング ライン (グローバル クロ ッキング バッ クボーンと もいう ) と呼ばれる 32 本の垂直ラインの 1 つを駆動します。

この接続は、 各 BUFG の SLR の一番上と下までに到達し、 水平方向のクロ ッキングへの接続を可

能にします。

SLR の境界では、 これらの垂直クロ ッキング スパインは非常に短いインターポーザー ホップに接

続され、 近接 SLR の対応するスパインに接続されます。

このプロセスは、 SLR の水平クロ ッキング リ ソースを駆動し、 すべての SLR コンポーネン トが接

続されるまで上下に継続し、 真のグローバル ク ロ ッキング リ ソースを作成します。

垂直グローバル ク ロ ッキング ラ インは各 SLR の BUFG コンポーネン ト間の共有リ ソースである

ため、 これらのリ ソースを管理するこ とが必要になる場合があ り ます。

Page 26: 高集積度 FPGA 設計手法 ガイド - japan.xilinx.com€¦ · 高集積度 FPGA 設計手法ガイド japan.xilinx.com 5 UG872 (v14.1) 2012 年 4 月 24 日 第1 章 概要

26 japan.xilinx.com 高集積度 FPGA 設計手法ガイ ド

UG872 (v14.1) 2012 年 4 月 24 日

第 3 章 : スタ ッ ク ド シリコン インターコネク ト (SSI)

この SLR コンポーネン ト間の比率や差は図解用であ り、実際の差はこれよ り小さ くなっています。

詳細は、 第 5 章 「ク ロ ッキング」 を参照して ください。

SLR コンポーネン トでのデザイン配置の管理

このセクシ ョ ンでは、 SLR コンポーネン トのデザイン配置管理について説明します。

• 自動 SLR 割り当て

• 手動 SLR 割り当て

SSI デバイスは複数の SLR コンポーネン トから構成されているため、多少の管理が必要になる場合

があ り ます。 配線、 ファンクシ ョ ン、 タイ ミ ングに問題がないよ う、 デザインがデバイスに正し く

配置されているこ とを確認する必要があ り ます。

X-Ref Target - Figure 3-10

図 3-10 : SSI デバイスでのグローバル クロッキング接続

Page 27: 高集積度 FPGA 設計手法 ガイド - japan.xilinx.com€¦ · 高集積度 FPGA 設計手法ガイド japan.xilinx.com 5 UG872 (v14.1) 2012 年 4 月 24 日 第1 章 概要

高集積度 FPGA 設計手法ガイド japan.xilinx.com 27UG872 (v14.1) 2012 年 4 月 24 日

SLR コンポーネン トでのデザイン配置の管理

自動 SLR 割り当て

ザイ リ ンクス ツールには、SSI デバイスのリ ソース配置を管理するビルト イン アルゴ リズムがあ り

ます。SSI パーツにデザインがフ ィ ッ トするよ う、ツールで SLR コンポーネン ト を使用してロジッ

クが自動的に配置されます。

配置スト ラテジ

このビルト イン配置アルゴ リズムを使用して、 ツールで次のよ う な処理が実行されます。

1. SLL リ ソースが超過しないよ うにデザインを配置する

2. SLR コンポーネン ト間をまたぐ必要のあるタイ ミ ング ク リ ティカル パスの数を制限する

3. SLR で特定のリ ソースばかりが多数使用されないよ う リ ソースのバランスを取る

4. SLL の交差を 小限に抑える

こ う したス ト ラテジに従う こ とで、 パフォーマンス要件を満たしながらもバランスの取れた配置が

実行されます。

SLL の交差を制限する利点

SLL の交差を制限する と、 一般的に消費電力が低減され、 SLR 間の接続に影響を与える こ とな く

デザインを拡張できます。

SLR の選択に影響するその他の要因

SLR の選択に影響を及ぼすデザインおよびインプ リ メンテーシ ョ ンの要因は、 ほかにもあ り ます。

この要因には、 次のよ う なものがあ り ます。

1. ピン配置

2. ク ロ ッ ク選択

3. リ ソース タイプ

4. フロアプラン (PBlock) および LOC 制約などの物理制約

5. タイ ミ ング制約

6. I/O 規格およびその他の制約

SLR コンポーネン トは自動で割り当て、適切なピン配置、 クロ ッ ク選択、およびその他のデザイン

選択を実行するこ とをお勧めします。

フロアプラン

デザインの高パフォーマンスが求められる部分にフロアプランが必要な場合があ り ます。 フロアプ

ランは、 必要な場合にのみ実行してください。

Page 28: 高集積度 FPGA 設計手法 ガイド - japan.xilinx.com€¦ · 高集積度 FPGA 設計手法ガイド japan.xilinx.com 5 UG872 (v14.1) 2012 年 4 月 24 日 第1 章 概要

28 japan.xilinx.com 高集積度 FPGA 設計手法ガイ ド

UG872 (v14.1) 2012 年 4 月 24 日

第 3 章 : スタ ッ ク ド シリコン インターコネク ト (SSI)

手動 SLR 割り当て

デザイン要件を満たすソ リ ューシ ョ ンがツールで見つけられない場合や、 実行間で同じ結果が得ら

れるよ うにする必要がある場合は、 手動 SLR 割り当てが必要になるこ とがあ り ます。

手動 SLR 割り当ての実行

手動 SLR 割り当てを実行するには、 次の手順に従います。

1. 大きな PBlock (エリア グループ) を複数作成します。

2. これらのエ リア グループにデザインの一部を割り当てます。

デザインの大きな部分を 1 つの SLR に割り当てるには、 次の手順に従います。

1. 1 つの SLR を含むこ とができる PBlock を作成します。

2. この PBlock にロジッ クの関連階層を割り当てます。

隣接する複数の SLR コンポーネン ト にロジッ クを割り当てるこ とはできますが、 必ず PBlock にSLR 全体が含められるよ うにして ください。

SLR 全体に制約を設定せずに SLR の境界を越える PBlock は作成しないでください。自動 SLR 配置アルゴ リズムで有効な配置を実行するのが難し くなり ます。

手動 SLR 割り当てのガイ ド ライン

次に、 SLR コンポーネン トにロジッ クを手動で割り当てる と きの推奨事項を示します。

1. SLL リ ソースが超過しないよ うにデザインを配置する

2. SLR コンポーネン ト間をまたぐ必要のあるタイ ミ ング ク リ ティカル パスの数を制限する

3. SLR で特定のリ ソースばかりが多数使用されないよ う リ ソースのバランスを取る

4. SLL の交差を 小限に抑える

これらのガイ ド ラインは 「自動 SLR 割り当て」 の 「配置ス ト ラテジ」 と同じです。 これらのガイ ド

ラインに従う と、 割り当てが現在および今後のデザイン ルールに違反する可能性が低くなり ます。

詳細は、付録 A 「その他のリ ソース」 に リ ス ト されている 『フロアプラン設計手法ガイ ド』 (UG633)を参照してください。

SSI の階層

SSI デザインの階層が適切に定義されている と、 SLR を割り当てやすくな り ます。 信号が SLR コンポーネン トの境界を越える必要がある場合は、 タイ ミ ング要件を緩和させるため階層インスタン

スの出力にレジスタを付けます。

次の目的のためにパーティシ ョ ンを使用する場合も、 この推奨事項に従ってください。

• デザインの再利用

• チーム デザイン

• パーシャル リ コンフ ィギュレーシ ョ ン

Page 29: 高集積度 FPGA 設計手法 ガイド - japan.xilinx.com€¦ · 高集積度 FPGA 設計手法ガイド japan.xilinx.com 5 UG872 (v14.1) 2012 年 4 月 24 日 第1 章 概要

高集積度 FPGA 設計手法ガイド japan.xilinx.com 29UG872 (v14.1) 2012 年 4 月 24 日

SSI コンフ ィギュレーシ ョ ン

SSI デバイスで高速デザインを達成

SSI デバイスで超高速デザインを達成するには、さ らに手動での作業が必要となる場合があ り ます。

SLR の速度は、 Virtex-7 デバイスの同等のスピード グレードのものと同じです。

パスのロジッ ク レベルが少ない場合やない場合は、 SLR の境界を越える と きの速度を 400MHz 以上にできます。

パイプライン処理

SLR 境界を越える と きのためにレジスタ間の高速接続を設計する場合、適切なパイプライン処理を

HDL コードに記述し、 合成時に制御する必要があ り ます。

このよ うにする と、 SLR の境界を越える必要のあるロジッ ク パスで、 シフ ト レジスタ LUT (SRL)の推論およびその他の 適化が実行されなくなり ます。

この方法でコードを変更するこ とで SLR の境界を越える位置が定義されます。 このよ う なデザイ

ン変更を反映させるよ う SLR 割り当てを定義する必要があ り ます。

フロアプラン

次が必要になる場合もあ り ます。

• 手動のフロアプラン

• LOC 制約またはエリア グループ制約

LOC 制約およびエ リ ア グループ制約を使用して、 SLR の境界を越える場合のソースおよびデス

ティネーシ ョ ン レジスタに制約を設定します。 これで、 大速度を達成する 適な配置がツールで

検出されます。

こ う した手法は常に必要なものではあ り ませんが、デバイスのパフォーマンス限界付近でピーク パフォーマンスを達成するために必要な場合があ り ます。

SSI コンフ ィギュレーシ ョ ン

SSI デバイスのコンフ ィギュレーシ ョ ンは、 従来のデバイスのものと類似しています。 ツールで 1つのビッ ト ス ト リームが生成され、 すべてのコンフ ィギュレーシ ョ ン機能 (暗号化や SEU など) およびコンフ ィギュレーシ ョ ン モードがサポート されています。

コンフ ィギュレーシ ョ ンの詳細

マルチ SLR コンフ ィギュレーシ ョ ンは、 コンフ ィギュレーシ ョ ン回路およびザイ リ ンクス ツール

ですべて処理されます。 各 SLR にコンフ ィギュレーシ ョ ン エンジンがあ り、 これは従来のデバイ

スのものと実質的には同じです。 マスター SLR にはマスター コンフ ィギュレーシ ョ ン エンジンが

含まれており、 その他すべての SLR コンポーネン トのコンフ ィギュレーシ ョ ン エンジンはスレー

ブと して処理されます。

ザイ リ ンクス ツールで 1 つのビッ ト ス ト リームが生成されます。このビッ ト ス ト リームが読み込ま

れる と、 個々の SLR コンポーネン ト が順にコンフ ィギュレーシ ョ ンされ、 ビッ ト ス ト リームの各

部分が該当する SLR に割り当てられます。

Page 30: 高集積度 FPGA 設計手法 ガイド - japan.xilinx.com€¦ · 高集積度 FPGA 設計手法ガイド japan.xilinx.com 5 UG872 (v14.1) 2012 年 4 月 24 日 第1 章 概要

30 japan.xilinx.com 高集積度 FPGA 設計手法ガイ ド

UG872 (v14.1) 2012 年 4 月 24 日

第 3 章 : スタ ッ ク ド シリコン インターコネク ト (SSI)

結合される信号

次の信号は、 インターポーザーで結合されます。

• INIT

• DONE

• KEYCLEAR

これで、「コンフ ィギュレーシ ョ ン キーのク リ ア」 などのファンクシ ョ ンがすべての SLR で一度に

すばやく一貫して実行されるよ うになり ます。「コンフ ィギュレーシ ョ ンの完了」 や 「コンフ ィギュ

レーシ ョ ン エラー」 を通知するコンフ ィギュレーシ ョ ン フ ィードバッ クは、 従来のデバイス と同

じよ うに動作します。

ビッ トス ト リームの復号化

ビッ ト ス ト リームの暗号化などの操作では、 すべての SLR コンポーネン トで 1 つのキーが使用さ

れます。1 つのキーを使用する と、キーおよびコンフ ィギュレーシ ョ ン データの管理が簡略化され、

SSI デバイスがその他のザイ リ ンク ス FPGA デバイス と同じよ うに表示および動作するよ うにな

り ます。

ビッ ト ス ト リームの復号化は、 SLR で実行されます。 インターポーザーでの SLR 間のデータ伝送

は、 コンフ ィギュレーシ ョ ン データを保護するために暗号化されたままになり ます。

SLR ごとの操作

ほとんどの操作は従来のデバイスでのものと同じですが、 次の操作は SLR ごとに実行されます。

• CAPTURE

• READBACK

• FRAME_ECC

これによ り、 データの収集時間時間や、 ECC の場合は破損データを修正する時間を短縮できます。

マスター SLR にのみ存在するコンポーネン ト

コンフ ィギュレーシ ョ ンやデバイス アクセス関連のコンポーネン トの一部は、 マスター SLR にの

み存在します。 マスター SLR でのみ使用できるコンポーネン トは、 次のとおりです。

• DEVICE_DNA

• USER_EFUSE

• XADC

バウダン リ スキャンはすべての SLR コンポーネン トにあ り ますが、マスター SLR のものが優先さ

れます。

パーシャル リ コンフ ィギュレーシ ョ ン

デバイス コンフ ィギュレーシ ョ ン と同じよ うに、 パーシャル リ コンフ ィギュレーシ ョ ンも従来の

デバイス と同様に処理されます。

1. パーシャル リ コンフ ィギュレーシ ョ ンを実行する方法が外部のものであっても内部のもので

あっても、 1 つのビッ ト ス ト リームが生成されます。

2. マスター SLR によ り ビッ ト ス ト リームが該当する SLR コンポーネン ト に割り当てられます。

Page 31: 高集積度 FPGA 設計手法 ガイド - japan.xilinx.com€¦ · 高集積度 FPGA 設計手法ガイド japan.xilinx.com 5 UG872 (v14.1) 2012 年 4 月 24 日 第1 章 概要

大型 FPGA 手法ガイ ド japan.xilinx.com 31UG872 (v13.4) 2012 年 1 月 18 日

第 4 章

システム レベルのデザイン

この章では、 システム レベルのデザインについて説明します。

• ピン配置の選択

• 制御セッ ト

• HDL コーディング手法

クロ ッキングの詳細は、 第 5 章 「ク ロ ッキング」 を参照して ください。

ピン配置の選択

このセクシ ョ ンではピン配置について説明します。

• ピン配置の重要性

• ピン配置でのザイ リ ンクス ツールの使用

• 一般的なピン配置の推奨事項

• 具体的なピン配置の推奨事項

• デバイスの移行

ピン配置の重要性

ピン配置が適切な場合、 デザイン ロジッ ク も正し く配置されます。

ピン配置が不適切な場合、 駆動するロジッ クの配置オプシ ョ ンが限られてしまいます。 配置が不適

切だと配線が長くなり、 配線が長いと消費電力が増えパフォーマンスが低下します。

不適切なピン配置が原因でこのよ う な結果を招いてしま うのですが、これは特に高集積度 FPGA デバイスに言えるこ とです。高集積度 FPGA デバイスは大型のチップに搭載されているので、ピン配

置が離れている と、 アレイ内に目的のロジッ ク構造を構築するための関連信号の伝送距離が長くな

る可能性があ り ます。

不適切なピン配置→不適切な配置→長い配線→消費電力の増加、 パフォーマンスの低下

Page 32: 高集積度 FPGA 設計手法 ガイド - japan.xilinx.com€¦ · 高集積度 FPGA 設計手法ガイド japan.xilinx.com 5 UG872 (v14.1) 2012 年 4 月 24 日 第1 章 概要

32 japan.xilinx.com 大型 FPGA 手法ガイ ド

UG872 (v13.4) 2012 年 1 月 18 日

第 4 章 : システム レベルのデザイン

ピン配置でのザイリンクス ツールの使用

デザイン プランニングおよびピン配置にザイ リ ンクス ツールを使用できます。 ツールを効果的に

利用するには、 ツールに必要な情報を正し く入力する必要があ り ます。

PlanAhead™ デザイン解析ツールなどのツールは、 ピン配置において次のよ う な利点があ り ます。

• I/O 配置をグラフ ィカルに表示

• ク ロ ッ クおよび I/O コンポーネン ト間の関係を表示

• ピン選択を解析するデザイン ルール チェッ ク (DRC) を提供

必須情報

ツールを効果的に使用するには、 I/O 特性およびト ポロジに関する情報をできる限り多く入力する

必要があ り ます。

次の電気的特性を指定する必要があ り ます。

• I/O 規格

• 駆動

• スルー

また、 次のよ う な関連情報もすべて考慮する必要があ り ます。

• ク ロ ッ ク ト ポロジ

• タイ ミ ング制約

特にクロ ッ ク供給に関する選択は、 ピン配置に大きな影響を与えます。 その逆も同じで、 ピン配置

はクロ ッ ク供給に大きな影響を与えます。

一般的なピン配置の推奨事項

一般的には、 ピンを選択する際は、 関連信号を近くに配置し、 駆動するロードの近くに配置するよ

うにします。

ボード レイアウ トや 終段階での ECO 変更時にピン配置を見直している と き、 こ う した点が見過

ごされがちですが、 よい FPGA デザインを目指すには適切なピン配置を作成し、管理するこ とが重

要です。 これは、 1000 を超えるインターフェイス ピンを使用する高集積度 FPGA デザインでは特

に重要です。

デバイス パッケージ上で近くに配置されているピンが、 デバイス アレイでも近くにある とは限り

ません。内部タイ ミ ングを満たすには、デバイス パッケージ上よ り もアレイ上でピンを近くに配置

するこ とが重要です。

Page 33: 高集積度 FPGA 設計手法 ガイド - japan.xilinx.com€¦ · 高集積度 FPGA 設計手法ガイド japan.xilinx.com 5 UG872 (v14.1) 2012 年 4 月 24 日 第1 章 概要

大型 FPGA 手法ガイ ド japan.xilinx.com 33UG872 (v13.4) 2012 年 1 月 18 日

ピン配置の選択

具体的なピン配置の推奨事項

次の点に関して具体的なピン配置の推奨事項があ り ます。

• インターフェイス データ、 アドレス、 および制御ピン

• インターフェイス制御信号

• ファンアウ トが非常に大きい、 デザイン全体の制御信号

• I/O インターフェイスを含むザイ リ ンクス IP

• CCIO および CMT の使用

• 特定 SLR にあるコンポーネン ト (SSI)

インターフェイス データ、 アドレス、 および制御ピン

同じインターフェイス データ、 アドレス、 および制御ピンは同じバンクにま とめます。

• 同じバンクにこれらのコンポーネン ト をま とめるこ とができない場合は、 隣接するバンクにま

とめる

• SSI デバイスの場合、 特定インターフェイスのピンをすべて同じ SLR にまとめる

インターフェイス制御信号

次のインターフェイス制御信号は、 制御するデータ バスの中央に配置します。

• ク ロ ッキング

• イネーブル

• リセッ ト

• ス ト ローブ

ファンアウトが非常に大きい、 デザイン全体の制御信号

ファンアウ トが非常に大きい、デザイン全体にわたる制御信号は、デバイス中央付近に配置します。

SSI デバイスの場合、駆動する SLR コンポーネン ト群の中央にある SLR にこの信号を配置します。

I/O インターフ ェイスを含むザイリンクス IP

MIG (Memory Interface Generator) などの I/O インターフェイスを含むザイ リ ンクス IP では、 イ

ンターフェイスを生成し、 推奨されるピン配置を使用します。

CCIO および CMT の使用

デバイス上部および下部にある BUFG コンポーネン トへバランスよ くアクセスするには、デバイス

の上下で CCIO および CMT をバランスよ く使用します。

SSI デバイスの場合、 ほかの SLR コンポーネン ト と比較し、 1 つの SLR の上下で CCIO コンポー

ネン ト または CMT コンポーネン ト をバランスよ く使用します。

特定 SLR にあるコンポーネン ト (SSI)

SSI デバイスの場合、 特定 SLR にあるコンポーネン トのピン配置のプラン段階で、 同じ SLR にピ

ンを配置します。

たとえば、外部インターフェイスの一部と してデバイス DNA 情報を使用する と き、DEVICE_DNAが存在するマスター SLR にそのインターフェイスのピンを配置します。

Page 34: 高集積度 FPGA 設計手法 ガイド - japan.xilinx.com€¦ · 高集積度 FPGA 設計手法ガイド japan.xilinx.com 5 UG872 (v14.1) 2012 年 4 月 24 日 第1 章 概要

34 japan.xilinx.com 大型 FPGA 手法ガイ ド

UG872 (v13.4) 2012 年 1 月 18 日

第 4 章 : システム レベルのデザイン

デバイスの移行

多くのザイ リ ンクス デバイスでは、同じパッケージでサイズの異なるデバイスにデザインを移行さ

せるこ とができます。 リ スクを抑えてデザインを移行させるには、デザイン プロセスの初期段階で

次の点に注意してください。

• デバイスの選択

• ピン配置の選択

• デザインの条件

同じパッケージでサイズの異なるデバイスに移行する場合は、 次の点に注意してください。

• ピン配置

• ク ロ ッキング

• リ ソースの管理

制御セッ ト

このセクシ ョ ンでは制御セッ トについて説明します。

• 制御セッ ト とは

• リセッ ト

制御セッ ト とは 制御セッ ト とは、 特定の RAM またはレジスタを駆動する制御信号をま とめたものです。 制御信号

には、 次のものがあ り ます。

• セッ ト / リセッ ト

• ク ロ ッ ク イネーブル

• ク ロ ッ ク

制御信号の組み合わせそれぞれに対し制御セッ トが 1 つ作成されます。

1 つのスライスにあるレジスタは共通の制御信号を使用するため、 共通制御セッ ト を持つレジスタ

のみを同じスライスにパッ クできます。

制御セッ トが複数あるデザインには、 次のよ う な特徴があ り ます。

• デバイス使用率が低い

• 配置オプシ ョ ンが少ない

これが原因で、 消費電力が増加し、 パフォーマンスが低下する可能性があ り ます。

制御セッ トが少ないデザインの場合、 配置オプシ ョ ンが多くなり柔軟性も増すので、 通常結果が良

くなり ます。

Page 35: 高集積度 FPGA 設計手法 ガイド - japan.xilinx.com€¦ · 高集積度 FPGA 設計手法ガイド japan.xilinx.com 5 UG872 (v14.1) 2012 年 4 月 24 日 第1 章 概要

大型 FPGA 手法ガイ ド japan.xilinx.com 35UG872 (v13.4) 2012 年 1 月 18 日

制御セッ ト

リセッ ト

このセクシ ョ ンではリセッ トについて説明します。

• リセッ ト とは

• リセッ ト を使用するタイ ミ ングと場所

• 推論された同期エレ メン トの初期ステートの定義

• 同期リセッ ト と非同期リセッ ト

• アクティブ High およびアクティブ Low のリセッ ト

リセッ ト とは

リセッ トは、 も一般的で重要な制御信号の 1 つです。 リセッ ト を管理しないと、パフォーマンス、

エ リ ア、 消費電力に悪影響を及ぼすこ とがあ り ます。

同期コードが推論される と、 LUT やレジスタだけでなく、 レジスタ以外の多くのデザイン エレ メ

ン トが使用される可能性があ り ます。汎用同期コードによ り、シフ ト レジスタ LUT (SRL)、ブロ ッ

クまたは LUT メモ リ、 DSP48 レジスタなどのリ ソースが使用されるこ と もあ り ますが、 リセッ ト

の使用方法がこれらのコンポーネン トの選択に影響し、 リ ソースが 適に使用されなくなるこ とが

あ り ます。

• アレイに リセッ ト を誤って配置する と、ブロ ッ ク RAM コンポーネン ト 1 つが推論されるはず

が、 数千個のレジスタが推論されてしま う こ とがあ り ます。

• 遅延ラインに不要な リセッ トが記述されている と、 数個の SRL LUT ですむと ころが数百個の

レジスタが使用されるこ とがあ り ます。

• 乗算器の入力または出力に非同期リセッ トが記述されている と、DSP ブロ ッ クではなく、 スラ

イスにレジスタが配置されるこ とがあ り ます。

こ う した点は、 次のものに大き く影響します。

• リ ソース

• 消費電力

• パフォーマンス

リセッ ト を使用するタイ ミ ングと場所

デバイスの初期化には、 リセッ トは必要あ り ません。

FPGA デバイスには、 専用グローバル セッ ト / リ セッ ト信号 (GSR) があ り ます。 デバイスのコン

フ ィギュレーシ ョ ンの 後に GSR が自動的にアサート されて、すべのレジスタが HDL コードで指

定されている初期ステートに初期化されます。

初期ステートが指定されていない場合は、 通常、 論理 0 (ゼロ) がデフォルト値にな り ます。 HDLコードで指定されている リセッ ト ト ポロジにかかわらず、コンフ ィギュレーシ ョ ンの 後に各レジ

スタは既知のステートになり ます。デバイスの初期化のためだけにグローバル リセッ トのコードを

記述する必要はあ り ません。

Page 36: 高集積度 FPGA 設計手法 ガイド - japan.xilinx.com€¦ · 高集積度 FPGA 設計手法ガイド japan.xilinx.com 5 UG872 (v14.1) 2012 年 4 月 24 日 第1 章 概要

36 japan.xilinx.com 大型 FPGA 手法ガイ ド

UG872 (v13.4) 2012 年 1 月 18 日

第 4 章 : システム レベルのデザイン

リセッ トの使用の制限

リセッ トの使用を制限する と、 次のこ とが可能になり ます。

• リセッ ト ネッ トのファンアウ ト を制限

• リセッ ト を配線するのに必要なインターコネク トの数を低減

• リセッ ト パスのタイ ミ ングを単純化

• パフォーマンスおよび消費電力を改善

リセッ トの必要性の決定

リセッ トが必要かど うかを決定するには、 注意が必要です。

1. 各同期ブロッ クの見直し

リセッ トが必要がど うかが不明な場合は、 リセッ ト を記述しないでください。

2. 論理シ ミ ュレーシ ョ ンの使用

論理シ ミ ュレーシ ョ ンが正し く動作する場合は、 インプ リ メン ト されたデザインでも正し く動

作するはずです。

リセッ トが記述されていない場合

ロジッ クに リセッ トが記述されていない場合、ロジッ クをマップする FPGA リ ソースの選択肢が大

き く広がり ます。

たとえば、 単純な遅延ラインに対し リセッ トが記述されている と、 共通のリセッ ト を持つレジスタ

セッ トにマップされる可能性が高くなり ます。

リセッ トがない場合、 同じロジッ クは次のものにマップできます。

• シフ ト レジスタ LUT (SRL) 1 つ

• 1 つの SRL と複数のレジスタの組み合わせ

• すべてのレジスタ

• LUT またはブロ ッ ク メモ リ

その後、 次の点を考慮して、 合成ツールでそのコードに 適な リ ソースが選択されます。

• 機能

• パフォーマンス要件

• 使用可能なデバイス リ ソース

• 消費電力

推論された同期エレメン トの初期ステートの定義

GSR は、 すべてのレジスタを HDL コードで指定された初期値に初期化します。

• 初期値が指定されていない場合、合成ツールによって初期ステートに 0 または 1 が割り当てら

れます。

• 初期ステートのデフォルト値は通常 0 ですが、 ワンホッ ト ステート マシン エンコーディング

など、 いくつかの例外があ り ます。

推論されたシフ ト レジスタ LUT (SRL)、 メモ リ、その他の同期エレ メン トにも、コンフ ィギュレー

シ ョ ン時に関連エレ メン トにプログラムされる初期ステート を定義できます。

Page 37: 高集積度 FPGA 設計手法 ガイド - japan.xilinx.com€¦ · 高集積度 FPGA 設計手法ガイド japan.xilinx.com 5 UG872 (v14.1) 2012 年 4 月 24 日 第1 章 概要

大型 FPGA 手法ガイ ド japan.xilinx.com 37UG872 (v13.4) 2012 年 1 月 18 日

制御セッ ト

すべての同期エレ メ ン ト を正し く初期化する こ と をお勧めします。 レジス タの初期化は、 主な

FPGA 合成ツールであれば完全に推論できます。 コンフ ィギュレーシ ョ ン後、 FPGA デバイスでは

同期エレ メン トがすべて既知の値で開始します。

既知の値で初期化する利点は、 次のとおりです。

• 初期化のためだけにリセッ ト を追加する必要をなくす

• RTL コード と インプ リ メン ト されたデザインが一致しやすくなる

• 論理 (RTL) シ ミ ュレーシ ョ ンが既知のステートになる

同期リセッ ト と非同期リセッ ト

リセッ トが必要な場合、 同期リセッ ト を記述するこ とをお勧めします。

同期リセッ トには、 非同期リセッ ト よ り も多くの利点があ り ます。 同期リセッ トは、 FPGA アーキ

テクチャの多くの リ ソース エレ メン トに直接マップできます。

DSP48 やブロ ッ ク RAM などのコンポーネン トの場合、 ブロ ッ クのレジスタ エレ メン トには同期

リセッ ト しかあ り ません。

これらのエレ メン トに関連したレジスタ エレ メン トに非同期リセッ ト を使用する と、機能を変更し

なければレジスタをこれらのブロ ッ クに直接推論できません。

たとえば 7v2000t デバイスの場合、非同期リセッ トが記述されていなければ、約 650,000 個の DSPレジスタおよび 93,000 個のブロ ッ ク RAM レジスタを使用できます。 これらのレジスタでは同期

リセッ トのみがサポート されています。

また、 集積度が高かったり、 詳細に調整された配置が必要な場合、 同期リセッ ト を使用する と柔軟

に制御セッ ト をマップし直すこ とができます。

アクテ ィブ High およびアクテ ィブ Low のリセッ ト

配線および配置に 大限の柔軟性を持たせるため、 次のよ う なファンアウ トの大きい制御信号では

極性を混合しないでください。

• ク ロ ッ ク イネーブル

• リセッ ト

アクテ ィブ High を使用する こ と をお勧めします。 通常、 アクテ ィブ High を使用する と、 FPGAアーキテクチャにマップする と きに必要なロジッ ク数およびロジッ ク レベル数が少なくな り ます。

極性

デザインを通して一定した極性を使用するこ とは、さ らに重要です。混合制御セッ ト を使用する と、

配置および配線に悪影響が出て、 ワース ト ケースで FPGA デバイスにタイ ミ ングおよびフ ィ ッ ト

に関する問題が発生するこ とがあ り ます。

Virtex-6 および Virtex-7 デバイス

Virtex-6 および Virtex-7 デバイスのスライスおよび内部ロジッ クでは、クロ ッ ク イネーブルおよび

リセッ トはすべてアクティブ High です。

アクテ ィブ Low の リ セッ ト またはク ロ ッ ク イネーブルを記述する と、 これらの配線に単純イン

バーターと して LUT が追加される可能性があ り ます。

Page 38: 高集積度 FPGA 設計手法 ガイド - japan.xilinx.com€¦ · 高集積度 FPGA 設計手法ガイド japan.xilinx.com 5 UG872 (v14.1) 2012 年 4 月 24 日 第1 章 概要

38 japan.xilinx.com 大型 FPGA 手法ガイ ド

UG872 (v13.4) 2012 年 1 月 18 日

第 4 章 : システム レベルのデザイン

HDL コーディング手法

HDL コードを適切に記述する と、 次のよ う な利点があ り ます。

• 合成ツールでの処理が容易になる

• シ ミ ュレーシ ョ ンおよび合成が高速になる

• FPGA アーキテクチャ間での移植性が高まる

• ターゲッ ト アーキテクチャに変換しやすくなる

• 解読およびデバッグしやすい

HDL コードを適切に記述するにはは、 次の点を考慮します。

• デバイス リ ソースへ効率よ く推論される HDL 構文を使用する

• 次の点に注意する

• ロジッ ク

• ク ロ ッキング

• 制御信号

• 適切な階層を使用する

• 合成属性を注意して使用する

デバイス リソースへの推論

ターゲッ ト アーキテクチャの主要な演算、 ス ト レージ、 およびロジッ ク エレ メン ト を考慮するこ

とが必要です。

デザインのコードを記述する と きは、 合成マッピングを理解し予測するこ とで、 潜在的な問題を回

避できます。

次のガイ ド ラ インは、 RTL コードがザイ リ ンクス FPGA リ ソースにどのよ うにマップされるかを

示します。

4 ビッ ト を超える加算、 減算、 加減算

4 ビッ ト を超える加算、 減算、 加減算では、 一般的にキャ リー チェーンが使用され、 2 ビッ トの加

算ごとに LUT が追加で 1 つ使用されます。

たとえば、 8 ビッ ト X 8 ビッ トの加算器には LUT が 8 個と関連キャ リー チェーンが使用されます。

3 値加算の場合 (または加算器の結果がレジスタを介さずに別の値に追加される場合)、、 3 ビッ ト ご

とに LUT が 1 個使用されます。 たとえば、 8 ビッ ト X 8 ビッ ト X 8 ビッ トの加算にも LUT が 8個と関連キャ リー チェーンが使用されます。

複数の加算が必要な場合は、 加算 2 段ごとにレジスタを指定する と有利になる可能性があ り ます。

これによ り 3 値インプ リ メンテーシ ョ ンの生成が可能になるので、デバイス使用率を半分に削減で

きます。

Page 39: 高集積度 FPGA 設計手法 ガイド - japan.xilinx.com€¦ · 高集積度 FPGA 設計手法ガイド japan.xilinx.com 5 UG872 (v14.1) 2012 年 4 月 24 日 第1 章 概要

大型 FPGA 手法ガイ ド japan.xilinx.com 39UG872 (v13.4) 2012 年 1 月 18 日

HDL コーディング手法

乗算

乗算には、 通常 DSP ブロ ッ クが使用されます。

• ビッ ト幅が 18 X 25 未満の符号付き乗算は、 1 つの DSP ブロ ッ クにマップされます。

• ビッ ト幅 17 X 24 未満の符号なし乗算は、 1 つの DSP ブロ ッ クにマップされます。

• 積が大きい乗算の場合は、 複数の DSP ブロ ッ クにマップされる場合があ り ます。

DSP ブロ ッ クに推論されるロジッ クに対しパイプライン処理を行う と、パフォーマンスおよび消費

電力を大き く改善できます。 乗算器を記述する と きは、 その周辺に 3 段のパイプライン処理を行う

こ とで、 ク ロ ッ ク周波数、 セッ ト アップ、 clock-to-out、および電力特性において 善な結果を得る

こ とができます。

パイプラインの段数が非常に少ないと (1 段またはなし )、 これらのブロ ッ クにタイ ミ ングの問題が

発生したり、 消費電力が増加したりするこ とがあ り ます。

シフ ト レジスタまたは遅延ライン

リ セッ ト または複数のタ ップ ポイン ト が不要なシフ ト レジスタまたは遅延ラインは、 通常、 シフ

ト レジスタ LUT (SRL) コンポーネン トにマップされます。

次のものを 1 つの LUT にマップできます。

• ワード数が 16 ビッ ト以下の SRL コンポーネン ト 2 つ

• ワード数が 32 ビッ ト までの SRL コンポーネン ト 1 つ

SRL コンポーネン ト を 大限に利用するには、これらのブロ ッ クの リセッ ト仕様に注意してくださ

い。 リセッ トが不要な場合、 デバイス使用率、 パフォーマンス、 消費電力において望ましい結果が

得られる可能性があ り ます。

64 ビッ トまでのメモリ アレイ

ワード数が 64 ビッ ト までのメモリ アレイは、通常 LUT RAM コンポーネン トにインプ リ メン ト さ

れます。

• ワード数が 32 ビッ ト以下の場合、 1 つの LUT に 2 ビッ トがマップされます。

• ワード数が 64 ビッ ト までの場合、 LUT ごとに 1 ビッ ト をマップできます。

これよ り ワード数が大きい RAM も、 次の条件しだいで LUT RAM にインプリ メン トできます。

• 使用可能な リ ソース数

• 合成ツールでの割り当て

これらのブロ ッ クの記述の際にコーディ ング スタ イルが少し異なっていただけでも、 間違った リ

ソースが使用されるこ とがあ り ます。 たとえば、 アレイの値を変えてしま う非同期の書き込みやリ

セッ ト を記述する と、LUT RAM ではなく、 1 つのレジスタ アレイにインプ リ メン ト される可能性

があ り ます。

ワード数が 256 ビッ ト よりも大きいメモリ アレイ

ワード数が 256 ビッ ト よ り も大きいメモ リ アレイは、 通常ブロ ッ ク メモ リにインプ リ メン ト され

ます。Virtex-6 デバイスおよびザイ リ ンクス 7 シ リーズ FPGA デバイスは、 さまざまな幅と ワード

数の組み合わせでメモ リ をマップする柔軟性を備えています。 これらのコンフ ィギュレーシ ョ ンを

理解しておく と、大型メモリ アレイの宣言に使用されるブロ ッ ク RAM コンポーネン トの数や構造

を理解しやすくなり ます。

Page 40: 高集積度 FPGA 設計手法 ガイド - japan.xilinx.com€¦ · 高集積度 FPGA 設計手法ガイド japan.xilinx.com 5 UG872 (v14.1) 2012 年 4 月 24 日 第1 章 概要

40 japan.xilinx.com 大型 FPGA 手法ガイ ド

UG872 (v13.4) 2012 年 1 月 18 日

第 4 章 : システム レベルのデザイン

これらのブロ ッ クの記述の際にコーディ ング スタ イルが少し異なっていただけでも、 間違った リ

ソースが使用されるこ とがあ り ます。 たとえば、 アレイを リセッ トする非同期の読み出しやリセッ

ト を記述する と、 LUT RAM や複数のレジスタ アレイではなく、 1 つのレジスタ アレイにインプ

リ メン ト される可能性があ り ます。

標準マルチプレクサになる条件文

このコードを理解しておく と、 リ ソースをよ り適切に管理できるよ うにな り、デザインのデータ パスのロジッ ク レベルを理解および制御するのに役立ちます。

汎用ロジック

汎用ロジッ クの場合は、 レジスタを介した出力 1 つに対する入力数を考慮します。 この数に基づい

て、 LUT 数およびロジッ ク レベル数を予測できます。

• 入力数が 6 以下の場合、 ロジッ ク レベル数は 1

• 入力数が 11 以下の場合、 ロジッ ク レベル数は 2 またはそれ以下

入力数が多く、論理式が複雑であるほど、よ り多くの LUT およびロジッ ク レベルが必要になり ます。

初期段階でロジッ ク レベル数を考慮しておく と、 タ イ ミ ング ク ロージャ中ではな く早期に簡単に

変更できます。

適切なデザイン階層の選択

デザイン階層は、 次のものによ りある程度定義されます。

• デザインの論理セクシ ョ ン

• コアまたは IP の使用

• 以前のコードの階層定義

表 4-1 : 標準マルチプレクサになる条件文

マルチプレクサ インプリ メン ト先 ロジック (LUT) レベル数

4:1 • LUT 1 個 1

8:1 • LUT 2 個

• MUXF7 1 個

1

16:1 • LUT 4個

• MUXF7 と MUXF8 リ ソー

スの組み合わせ

1

Page 41: 高集積度 FPGA 設計手法 ガイド - japan.xilinx.com€¦ · 高集積度 FPGA 設計手法ガイド japan.xilinx.com 5 UG872 (v14.1) 2012 年 4 月 24 日 第1 章 概要

大型 FPGA 手法ガイ ド japan.xilinx.com 41UG872 (v13.4) 2012 年 1 月 18 日

HDL コーディング手法

デザイン階層のガイ ド ライン

デザイン階層のガイ ド ラインは、 次のとおりです。

• データ パスの出力にレジスタを付ける

• 階層の上位にクロ ッ ク エレ メン ト を配置

• I/O コンポーネン ト を推論

データ パスの出力にレジスタを付ける

可能であれば、 大型の階層モデル、 特に階層の上の方にあるものにレジスタを付けます。

特に次の理由で階層の境界が 適化されない場合に、 タイ ミ ングを向上させるこ とができます。

• 階層デザイン手法

• フロアプラン

• デバッグ

この手法では、 ク リ ティカル パスが複数の階層をまたぐこ とはな く、モジュール内またはモジュー

ル間の境界に含まれます。 ク リ ティカル パスが複数の階層をまたいでいる と、 タイ ミ ングまたは機

能に問題が発生した場合に、 解析や修正が難し くなり ます。

階層の上位にクロック エレメン ト を配置

ク ロ ッ ク エレ メン ト を上位階層に配置する と、 モジュール間でク ロ ッ クを共有しやすくな り、 リ

ソースを管理しやすくなり ます。 また、必要なクロ ッ ク リ ソースの数が少なくなり、 パフォーマン

スおよび消費電力が改善されるこ と もあ り ます。

I/O コンポーネン ト を推論

可能な場合は I/O コンポーネン ト を推論します。

• インスタンシエーシ ョ ンが必要がと きは、 コードの上位に I/O コンポーネン ト を配置します。

• 階層デザインおよびパーシャル リ コンフ ィギュレーシ ョ ンの場合は、 上位またはその付近に

I/O コンポーネン ト を配置します。

• 回路が階層の上の方にある と、 I/O の問題をデバッグしやすくな り ます。

階層デザイン

境界を適切に定義してデザインを分割しておく と、 次のよ う な階層デザイン設計手法を利用しやす

くなり ます。

• パーティシ ョ ン

• パーシャル リ コンフ ィギュレーシ ョ ン

• チーム デザイン

チーム デザインの場合は、 このよ うな分割が必須条件になるこ とがよ くあ り ます。

次のよ う な要因の影響を受けやすい箇所は、 分割しておく こ とが必要となる場合があ り ます。

• タイ ミ ング ク ロージャ

• 論理デバッグ

Page 42: 高集積度 FPGA 設計手法 ガイド - japan.xilinx.com€¦ · 高集積度 FPGA 設計手法ガイド japan.xilinx.com 5 UG872 (v14.1) 2012 年 4 月 24 日 第1 章 概要

42 japan.xilinx.com 大型 FPGA 手法ガイ ド

UG872 (v13.4) 2012 年 1 月 18 日

第 4 章 : システム レベルのデザイン

階層を適切に定義しておく と、 フロアプランしやすくな り、後でタイ ミ ング ク ロージャを達成しや

すくなり ます。階層レベルでク リティカル パスがまとめられている と、 フロアプランが簡単になり

ます。

SSI デバイスの場合は、個々の SLR コンポーネン トにロジッ クを割り当てる必要があるこ とがあ り

ます。

• すべてのロジッ クが SLR に割り当てられるよ うに階層を定義しておく と、 このよ う な割り当

てを簡単に作成できます。

• すべてのロジッ クが SLR に割り当てられるよ うに階層を定義しておく と、 配置配線が早く完

了します。

• すべてのロジッ クが SLR に割り当てられるよ うに階層を定義しておく と、 デザインを解析し

やすくなり ます。

論理およびタイ ミング デバッグ

ク リ ティカル タイ ミ ング パスが論理デザイン部分に限定されている と、 タイ ミ ング デバッグしや

すくなり ます。

ザイ リ ンクス ツールでは階層別にゲート レベルのタイ ミ ング ネッ ト リ ス ト を書き出すこ とができ

ます。 これによ り、 大型 FPGA デザインのタイ ミ ングおよび論理デバッグが簡単になり ます。

パイプライン処理

タイ ミ ング ク ロージャを制限する主な要因は、 2 つあり ます。

• 不適切な配置が原因で配線が長くなりすぎ、 タイ ミ ング制約を満たすこ とができない

• ロジッ ク レベル数が多すぎ、 デザインが目的の速度で動作しない

パイプライン処理には、 次のよ う な利点があ り ます。

• ロジッ ク レベル数を削減してタイ ミ ング要件を満たします。

• 初期段階にパイプライン処理を計画しておく と、 タイ ミ ング ク ロージャが簡単になり ます。

一部のパスにパイプラインを追加する と、 回路全体にレイテンシの差が伝搬されるこ とがあ り

ます。 この若干の変化のために、 コードを部分的に再設計しなければならなくなるこ とがあ り

ます

• 設計の初期段階にパイプライン処理できる箇所を確認しておく と、 次の利点があ り ます。

• タイ ミ ングク ロージャを達成しやすくなり ます。

• インプ リ メンテーシ ョ ン ランタイムを短縮できます (タイ ミ ングの問題が修正しやすくな

るため)。

• デバイスの消費電力を低減します (ロジッ ク切り替えを低減できるため)。

ファンアウトが大きい非クロック ネッ トの管理

ファンアウ トが大きいネッ トの管理は、デザイン プロセスの早い段階で行うのが簡単です。ネッ トの

ファンアウ トが大き くなるかど うかは、 パフォーマンス要件およびパスの構成によって決ま り ます。

ロードが数千あるネッ ト を確認し、 デザインへの影響を予測します。

Page 43: 高集積度 FPGA 設計手法 ガイド - japan.xilinx.com€¦ · 高集積度 FPGA 設計手法ガイド japan.xilinx.com 5 UG872 (v14.1) 2012 年 4 月 24 日 第1 章 概要

大型 FPGA 手法ガイ ド japan.xilinx.com 43UG872 (v13.4) 2012 年 1 月 18 日

HDL コーディング手法

ファンアウトの大きいネッ トの管理

ファンアウ トが大きいネッ ト を判別できたら、 次のテクニッ クを利用します。

• ロードの低減

• BUFG および BUFH の使用

• ツールでの複製の管理

ロードの低減

デザインのロードを必要と しない部分にロードを移動させます。

• ファンアウ トが大きい制御信号の場合、 コード記述されているすべての箇所で、 正し く機能す

るためにそのネッ トが必要かど うかを確認します。 ロードの要求を抑える と、 タイ ミ ングを大

き く向上させるこ とができます。

• データ パスの場合は、ロジッ クを制限するこ とでファンアウ ト を抑えるこ とができるかど うか

を確認します。

BUFG および BUFH の使用

ネッ ト を駆動するには、 BUFG および BUFH コンポーネン ト を使用します。

詳細は、 第 5 章 「ク ロ ッキング」 の 「非ク ロ ッ ク ネッ トにク ロ ッ ク バッファーを使用」 を参照し

てください。

ツールでの複製の管理

ツールでの複製を管理します。

ほとんどの合成ツールには、ファンアウ トの大きい信号の影響を抑えるため、レジスタまたはロジッ

クの複製を自動的にまたは手動で管理する機能があ り ます。

この機能を利用する と、 場合によってはまった く RTL コードを変更せずに、 ファンアウ トの大き

いネッ トのタイ ミ ングを大幅に改善できます。

Page 44: 高集積度 FPGA 設計手法 ガイド - japan.xilinx.com€¦ · 高集積度 FPGA 設計手法ガイド japan.xilinx.com 5 UG872 (v14.1) 2012 年 4 月 24 日 第1 章 概要

44 japan.xilinx.com 大型 FPGA 手法ガイ ド

UG872 (v13.4) 2012 年 1 月 18 日

第 4 章 : システム レベルのデザイン

Page 45: 高集積度 FPGA 設計手法 ガイド - japan.xilinx.com€¦ · 高集積度 FPGA 設計手法ガイド japan.xilinx.com 5 UG872 (v14.1) 2012 年 4 月 24 日 第1 章 概要

高集積度 FPGA 設計手法ガイド japan.xilinx.com 45UG872 (v14.1) 2012 年 4 月 24 日

第 5 章

クロッキング

合成の初回実行前、 または HDL コードの 初の 1 行を書き始める前であっても、 デザインにおけ

る決定事項がデザイン目標に大き く影響を与えます。 初期段階から賢明に計画し、 少し時間をかけ

るこ とで、 正しい判断ができ、 プロジェク トの時間を短縮できます。

クロック リソースの選択

初のステップの 1 つと して、ピン配置を選択する前に、 クロ ッ ク リ ソースを選択しておく こ とを

推奨します。 ク ロ ッ ク供給の選択によって、 特定のピン配置やロジッ クの配置が決まるこ とがあ り

ます。 適切なクロ ッ ク供給を選択する と、 よ り良い結果が得られます。

Virtex®-6 および Virtex-7 には、BUFG という グローバル ク ロ ッ ク バッファーが 32 個含まれてい

ます。

BUFG を使用する と、次の点に関して要件がそれほど厳し くないデザインのクロ ッ ク要件のほとん

どを満たすこ とができます。

• ク ロ ッ ク数

• デザイン パフォーマンス

• 低消費電力

• ク ロ ッ ク特性 :

• ク ロ ッ ク ゲーティング

• マルチプレクシング

• その他のクロ ッ ク制御

BUFG コンポーネン トは、 合成で簡単に推論でき、 制限事項が少ないので、 も汎用のクロ ッ ク供

給が可能です。

ただし、 ク ロ ッ ク要件が BUFG の機能を上回る場合や、 よ り良いクロッ ク特性が求められる場合、

ザイ リ ンクスでは次を推奨します。

1. 使用可能なクロ ッ ク リ ソースに対してク ロッ ク ニーズを解析する

2. タスクに 善のリ ソースを選択し制御する

Page 46: 高集積度 FPGA 設計手法 ガイド - japan.xilinx.com€¦ · 高集積度 FPGA 設計手法ガイド japan.xilinx.com 5 UG872 (v14.1) 2012 年 4 月 24 日 第1 章 概要

46 japan.xilinx.com 高集積度 FPGA 設計手法ガイ ド

UG872 (v14.1) 2012 年 4 月 24 日

第 5 章 : クロッキング

グローバル クロッキング

グローバル ク ロ ッ ク バッファーには、 クロ ッ ク供給以外にも機能があ り ます。 この追加機能には、

デザイン コードを手動で編集するか、 または合成中にアクセスできます。

グローバル ク ロ ッ ク バッファーには、 次のものが含まれています。

• BUFGCE

• BUFGMUX

• BUFGCTRL

• IP および合成

BUFGCE

BUFGCE プリ ミ ティブを使用する と、グ リ ッチのない同期クロ ッ ク イネーブル (ゲーティング) 機能にアクセスできます。 追加のロジッ クやリ ソースは使用されません。

BUFGCE は、一定期間クロッ クを停止する場合や、周波数の高いベース クロ ッ クから 2 分周または

4 分周したクロッ クなど、 ロー スキューおよび低消費電力のクロッ クを作成する場合に使用します。

これは、 回路動作の異なる時間に異なる周波数を生成する場合に特に特に有益です。

BUFGMUX

BUFGMUX は、 グ リ ッチまたはタイ ミ ングの問題を発生させずにクロ ッ ク ソースを別のものに変

更する場合や、 異なる時間または動作条件に対して異なるク ロ ッ ク周波数を生成する場合に使用し

ます。

BUFGCTRL

グローバル クロッ ク ネッ ト ワークのすべての機能にアクセスするには、BUFGCTRL を使用します。

このク ロ ッ ク バッファーでは、 クロ ッ ク切り替え回路が損失したり停止した場合など、 ク ロ ッ ク供

給のシナリオが複雑な場合に、 ク ロ ッ ク供給を非同期に制御できます。

IP および合成

IP および合成でも、 これらの高度なクロ ッ ク供給機能を使用できます。

たとえば、MIG (Memory Interface Generator) を使用する場合、I/O での高速データ伝送およびキャ

プチャ用に特別なクロ ッ ク バッファーを使用できます。

ク ロ ッ ク供給を作成および計画する際は、 個々の IP に使用されるク ロ ッ ク リ ソースを考慮に入れ

ておく必要があ り ます。

ただし、 通常、 目標のクロ ッキング動作を得るには、 コードでコンポーネン ト をインスタンシエー

ト して正しい接続を設定しておく必要があ り ます。

詳細は、 付録 A 「その他のリ ソース」 にあるク ロ ッキングに関するガイ ドおよびラ イブラ リ ガイ

ドを参照してください。

Page 47: 高集積度 FPGA 設計手法 ガイド - japan.xilinx.com€¦ · 高集積度 FPGA 設計手法ガイド japan.xilinx.com 5 UG872 (v14.1) 2012 年 4 月 24 日 第1 章 概要

高集積度 FPGA 設計手法ガイド japan.xilinx.com 47UG872 (v14.1) 2012 年 4 月 24 日

リージ ョナル クロッキング

リージ ョナル クロッキング

このセクシ ョ ンでは、 リージ ョナル ク ロ ッキングについて説明します。

• 水平クロ ッ ク領域のバッファー (BUFH、 BUFHCE)

• リージ ョナル ク ロ ッ ク バッファー (BUFR)

• I/O クロ ッ ク バッファー (BUFIO)

• マルチリージ ョナル ク ロ ッ ク バッファー (BUFMR)

水平クロック領域のバッファー (BUFH、 BUFHCE)水平クロ ッ ク領域のバッファー (BUFH、 BUFHCE) は、 次のよ うに使用できます。

• BUFG と併用

• スタンドアロン バッファーと して使用

水平クロック領域のバッファーの使用

水平クロ ッ ク領域のバッファーは、 ク ロ ッ ク供給およびクロ ッ クに接続されている関連ロジッ クの

配置をよ り厳し く制御する場合や、 ク ロ ッ ク ド メ イン数が多いデザインに追加のク ロ ッ ク リ ソー

スを提供する場合に使用します。

BUFH および BUFHCE リ ソースを使用する と、クロ ッ ク領域に接続されているグローバル ク ロ ッ

ク ネッ ト ワーク (BUFG) 部分をデザインで使用できます。 これによ り、 グローバル クロ ッ ク ネッ

ト ワークの未使用部分のロー スキュー リ ソースを複数の小さなクロ ッ ク ド メ インに使用して、 こ

れらのド メ インを 1 つのクロ ッ ク領域に制約できます。

グリ ッチなしのクロッ ク イネーブル

BUFHCE には、 BUFGCE と同じグ リ ッチなしのク ロ ッ ク イネーブルがあ り、 特定のクロ ッ ク ドメ インでク ロ ッ クを簡単かつ安全にゲート処理できます。

BUFH を BUFG ネッ ト ワーク とは別に使用する と きは、 BUFH は BUFHCE の単純なバッファー

となり、 同じ リ ソースになり ます。

BUFH は、 クロ ッ ク イネーブルが不要な場合に使用するこ とをお勧めします。

中粒度クロック ゲーテ ィ ング

BUFHCE が BUFG によ り駆動されている場合は、 中粒度ク ロ ッ ク ゲーティ ングと して使用でき

ます。

BUFHCE は、 ク ロ ッ ク供給を断続的に停止する必要があるク ロ ッ ク ド メ インの一部 (ロードが数

百から数千の範囲) に対して有効なクロ ッ ク リ ソース とな り ます。

BUFG は、 同じまたは異なる ク ロ ッ ク領域の BUFH コンポーネン ト を複数駆動でき、 複数のロー

スキュー ク ロ ッ ク ド メ インでクロ ッ ク供給を個別に制御できます。

BUFG から独立させて BUFH および BUFHCE を使用

BUFH および BUFHCE は、 ク ロ ッ ク機能を追加するため、BUFG から独立させて使用するこ と も

できます。

独立させて使用する場合、BUFH に接続されているロードはすべて同じク ロ ッ ク領域にある必要が

あ り ます。 これは非常に高速で細粒度の (ロードが少ない) クロ ッキングに適しています。

Page 48: 高集積度 FPGA 設計手法 ガイド - japan.xilinx.com€¦ · 高集積度 FPGA 設計手法ガイド japan.xilinx.com 5 UG872 (v14.1) 2012 年 4 月 24 日 第1 章 概要

48 japan.xilinx.com 高集積度 FPGA 設計手法ガイ ド

UG872 (v14.1) 2012 年 4 月 24 日

第 5 章 : クロッキング

次の点を必ず確認してください。

1. BUFH によって駆動される リ ソースがクロ ッ ク領域で使用可能な数を超えていない

2. ほかの競合がない

BUFH と ク ロ ッ ク ド メ イン間の位相関係は、 ク ロ ッ ク ド メ インが何によって駆動されているかに

よって (BUFG コンポーネン ト、 ほかの BUFH コンポーネン ト、 またはその他のクロ ッ ク リ ソー

ス)、 異なる可能性があ り ます。

ただし、2 つの BUFH コンポーネン トが水平方向に隣接している領域を駆動している場合は例外で

す。 この場合、 両方の BUFH コンポーネン トが同じク ロ ッ ク ソースによ り駆動されていれば、 左

右のクロ ッ ク領域間のスキューには厳し く制御された位相関係があるはずなので、2 つの BUFH クロ ッ ク ド メ インをまたいでデータを転送できます。

リージ ョナル クロック バッファー (BUFR)リージ ョナル ク ロ ッ ク バッファー (BUFR) は通常、 低速 I/O およびデバイス ク ロ ッ ク と して、 よ

り高速の I/O データのキャプチャおよび供給に使用されます。

リージ ョナル クロック バッファーの使用

リージ ョナル ク ロ ッ ク バッファー (BUFR) は、 ク ロ ッ クをイネーブルまたはディ スエーブルにし

たり (ゲート処理)、 公約数によるクロ ッ ク分周を実行するために使用します。

Virtex-6 デバイスでは、 BUFR は次のものを駆動します。

• BUFR のあるク ロ ッ ク領域

• その上下クロ ッ ク領域

中粒度クロック ゲーテ ィ ング

BUFR は、 中粒度クロ ッ ク供給に適してします。 Virtex-7 デバイスでは、 BUFR は BUFR が含ま

れる領域のみを駆動できます。 このため、 規模がやや小さいクロ ッ ク供給ネッ ト ワークに適してい

ます。

BUFR の速度は BUFG や BUFH よ り も遅いため、 超高速のクロ ッ ク供給には BUFR は使用しな

いでください。 BUFR は中速から低速のクロ ッ ク供給に適してします。

ビルト インのク ロ ッ ク分周機能を使用する場合、BUFR は高速 I/O インターフェイス ク ロ ッ クなど

の外部クロ ッ ク ソースからの分周クロッ ク ネッ ト ワークに適しています。

I/O クロック バッファー (BUFIO)I/O クロ ッ ク バッファー (BUFIO) は、 次の目的に使用します。

• I/O データを入力ロジッ クにキャプチャする

• 出力クロ ッ クをデバイスの出力ロジッ クに供給する

• 高速のソース同期データをバンクでキャプチャする

• BUFR と、ISERDES または OSERDES を共に使用している と きにデータを扱いやすい速度に

する

Page 49: 高集積度 FPGA 設計手法 ガイド - japan.xilinx.com€¦ · 高集積度 FPGA 設計手法ガイド japan.xilinx.com 5 UG872 (v14.1) 2012 年 4 月 24 日 第1 章 概要

高集積度 FPGA 設計手法ガイド japan.xilinx.com 49UG872 (v14.1) 2012 年 4 月 24 日

SSI デバイスのクロッキング

BUFIO は、 次のよ うな ILogic および OLogic にある入力および出力コンポーネン トのみを駆動で

きます。

• IDDR

• ODDR

• ISERDES

• OSERDES

• 単純な専用入力または出力レジスタ

BUFIO を使用する と きは、I/O ロジッ ク とデバイス との間でデータが確実に転送されているこ とを

必ず確認してください。

マルチリージ ョナル クロック バッファー (BUFMR)マルチリージ ョナル ク ロ ッ ク バッファー (BUFMR) は、ザイ リ ンクス 7 シ リーズ FPGA デバイス

の新機能です。 Virtex-6 およびそれ以前のデバイスでは使用できず、 また不要です。

BUFMR を使用する と、 1 つのクロ ッ ク ピン (MRCC) で次の場所にある BUFIO および BUFR を駆動できます。

• BUFMR のあるバンク

• その上下の I/O バンク (適宜)

SSI デバイスをターゲッ ト にしている場合は、 第 3 章 「スタ ッ ク ド シ リ コン インターコネク ト

(SSI)」 を参照して ください。

SSI デバイスのクロッキング

通常、 標準のクロ ッ ク供給ルールが SSI デバイスにも適用されます。 ただし、 SSI デバイスをター

ゲッ トにしている場合は、 さ らに注意点がいくつかあ り ます。

BUFMR が SLR の境界を越えてクロ ッ ク リ ソースを駆動できない点を除き、 リージ ョナル ク ロ ッ

キングは同じです。

BUFMR を駆動するク ロ ッ クは、SLR の中央にあるバンクまたはクロ ッ ク領域に配置するこ とをお

勧めします。 これで、 SLR の 3 つのクロ ッ ク領域すべてにアクセスできます。

16 個以下のグローバル クロックが必要なデザイン

16 個以下のグローバル ク ロ ッ ク (BUFG コンポーネン ト ) が必要なデザインの場合、グローバル クロ ッキングに関して特に注意事項はあ り ません。BUFG コンポーネン トは、競合を避けるため、ツー

ルによ り自動的に割り当てられます。

17 以上 32 個未満のグローバル クロックが必要なデザイン

17 以上 32 個未満の BUFG コンポーネン トが必要な場合、グローバル クロ ッキング ラ インの競合、

ク ロ ッ ク ロードの配置、またはその両方が原因で発生する可能性のある リ ソースの競合を避けるた

め、 ピンの選択および配置を検討する必要があ り ます。

ほかのザイ リ ンクス 7 シ リーズ FPGA デバイスと同様、 ク ロ ッ ク兼用 I/O (CCIO) コンポーネン ト

およびその関連クロ ッ ク マネージメン ト タイル (CMT) には、 SLR で駆動できる BUFG コンポー

ネン トに関する制限があ り ます。

Page 50: 高集積度 FPGA 設計手法 ガイド - japan.xilinx.com€¦ · 高集積度 FPGA 設計手法ガイド japan.xilinx.com 5 UG872 (v14.1) 2012 年 4 月 24 日 第1 章 概要

50 japan.xilinx.com 高集積度 FPGA 設計手法ガイ ド

UG872 (v14.1) 2012 年 4 月 24 日

第 5 章 : クロッキング

SLR の上半分にある CCIO コンポーネン トは SLR の上半分にある BUFG コンポーネン トのみを

駆動でき、SLR の下半分にある CCIO コンポーネン トは 同じ く下半分にある BUFG コンポーネン

トのみを駆動できます。 したがって、すべての SLR コンポーネン トの上半分または下半分で 17 個以上の BUFG コンポーネン トが必要とならないよ うに、ピンおよび関連 CMT を選択する必要があ

り ます。

すべてのク ロ ッ クで競合なくすべての SLR コンポーネン ト を駆動できるよ うに、 ツールによって

BUFG コンポーネン トすべてが自動的に割り当てられます。

33 個以上のグローバル クロックが必要なデザイン

33 個以上のグローバル ク ロ ッ クが必要なデザインの場合は、 小さなク ロ ッ ク ド メ インに対し

BUFR および BUFH を使用するこ とを推奨します。 これで、 グローバル クロ ッ ク ド メ インの数を

削減できます。

BUFMR を使用する BUFR コンポーネン トは、 1 つの SLR の半分を網羅する 3 つのクロ ッ ク領域

にある リ ソースを駆動できます。 これは、 Virtex-7 デバイス ク ラスの SLR 1 つにある約 250,000個のロジッ ク セルに相当します。

水平方向に隣接するクロ ッ ク領域では、 左右両方の HROW バッファーをロー スキューで駆動し、

1 つの SLR の 3 分の 1 にあたるク ロ ッ ク ド メ インをイネーブルにできます。 これは約 167,000 個のロジッ ク セルに相当します。

これらの リ ソースを使用する と、 次のこ とが可能になり ます。

• ク ロ ッ ク リ ソースの競合を避けるための注意点が少なくなる

• デザイン配置を改善する

• パフォーマンスおよび消費電力を改善する

BUFG グローバル クロッキング スパインの分割

グローバル ク ロ ッ クが 33 個以上必要な場合、 BUFG グローバル ク ロ ッキング スパインを分割で

きます。

垂直グローバル ク ロ ッ ク ラインの SLR コンポーネン ト周縁には絶縁バッファーがあ り、同じ垂直

グローバル ク ロ ッ ク ラインの別の SLR にある 2 つの BUFG コンポーネン ト を競合なしに使用で

きます。

33 個以上のグローバル ク ロ ッ クが必要な場合でも、 通常はザイ リ ン ク ス ソ フ ト ウ ェアによ り

BUFG コンポーネン トの配置と割り当てが自動的に制御されます。ただし、複雑な状況では、BUFGコンポーネン ト と駆動されるロジッ クを手動で配置する必要がある場合もあ り ます。

Page 51: 高集積度 FPGA 設計手法 ガイド - japan.xilinx.com€¦ · 高集積度 FPGA 設計手法ガイド japan.xilinx.com 5 UG872 (v14.1) 2012 年 4 月 24 日 第1 章 概要

高集積度 FPGA 設計手法ガイド japan.xilinx.com 51UG872 (v14.1) 2012 年 4 月 24 日

SSI デバイスのクロック スキュー

SSI デバイスのクロック スキュー

高集積度 FPGA デバイスのクロ ッ ク スキューは、 パスのタイ ミ ングの大部分を占めます。

ク ロ ッ ク スキューを管理せずに放置しておく と、過度のスキューが原因で次の面で問題が発生する

可能性があ り ます。

• 大クロ ッ ク速度

• ホールド タイム

この点に関しては SSI デバイスもほかの高集積度 FPGA デバイス と同じです。 スキューの要因は、

次のとおりです。

• ソースからデスティネーシ ョ ンまでのクロ ッ ク ネッ ト ワークでのクロ ッ ク分配が均一でない

• プロセス、 電圧、 および温度 (PVT) のわずかなばらつきが原因で、 データ パスに対しク ロ ッ

ク パスの一部の速度が速くなったり遅くなったりする

X-Ref Target - Figure 5-1

図 5-1 : SSI グローバル クロッキングの分配と共有リソース

Page 52: 高集積度 FPGA 設計手法 ガイド - japan.xilinx.com€¦ · 高集積度 FPGA 設計手法ガイド japan.xilinx.com 5 UG872 (v14.1) 2012 年 4 月 24 日 第1 章 概要

52 japan.xilinx.com 高集積度 FPGA 設計手法ガイ ド

UG872 (v14.1) 2012 年 4 月 24 日

第 5 章 : クロッキング

マルチダイ

1 つのデバイスに含まれるマルチダイ SLR では、 PVT 式のプロセス部分が大き くな り ます。

マルチダイ SLR はザイ リ ンクス アセンブリ プロセスによって管理され、同様のスピードのダイの

みが一緒にパッケージされます。

ザイ リ ンクス タイ ミ ング ツールでは、 タイ ミ ング レポートの一部と してこれらの差が考慮されま

す。 パス解析中、 セッ ト アップおよびホールド計算の一部と してこのよ う な点が解析され、 指定要

件に対するパス遅延の一部と してレポート されます。

SSI デバイスの場合、 追加の計算や注意点はあ り ません。 タイ ミ ング解析ツールで処理されます。

パス遅延の差

上または下の SLR を使用している場合、パス遅延の差も大き くなる可能性があ り ます。2 点間の距

離が大きければ、 スキューが大き くなる可能性があ り ます。

このため、複数の SLR を駆動する必要があるグローバル ク ロ ッ クは、中央の SLR に配置してくだ

さい。 これで、 パーツ全体でクロ ッ ク ネッ ト ワークのク ロ ッ ク分配がさ らに均一になり、 ク ロ ッ ク

スキューを低減できます。

デザインでのクロッキングの指定

このセクシ ョ ンでは、 デザインでのクロ ッキングの指定について説明します。

• 推論

• 合成属性

• IP

• インスタンシエーシ ョ ン

推論

特に指定がない限り、 合成ツールによ り、 アーキテクチャで使用可能な数までのクロ ッ クにグロー

バル バッファー (BUFG) が自動的に指定されます。

BUFG は、 ほとんどのクロ ッキング ニーズに適した制御の行き届いたロー スキューのネッ ト ワー

クを提供します。パーツで使用可能な BUFG コンポーネン トの機能や数を超えるク ロ ッキングでな

い限り、 これ以外のものは必要あ り ません。

ク ロ ッ ク供給構造を制御する と、 次の点において良好な特性を得るこ とができます。

• ジッター

• スキュー

• 配置

• 消費電力

• パフォーマンス

Page 53: 高集積度 FPGA 設計手法 ガイド - japan.xilinx.com€¦ · 高集積度 FPGA 設計手法ガイド japan.xilinx.com 5 UG872 (v14.1) 2012 年 4 月 24 日 第1 章 概要

高集積度 FPGA 設計手法ガイド japan.xilinx.com 53UG872 (v14.1) 2012 年 4 月 24 日

SSI デバイスのクロック スキュー

合成属性

合成属性を正し く使用する と、 ク ロ ッ ク リ ソースを簡単に制御できます。

合成属性の使用

• BUFG が推論されないよ うにするこ とができます。

• BUFG をほかのクロ ッ ク供給構造に置き換えるこ とができます。

• 合成属性で指定しなければ挿入されないクロ ッ ク バッファーを指定できます。

• HDL ソース コードを変更せずにクロ ッ ク リ ソースを制御できます。

XST での BUFFER_TYPE 属性の使用

XST (Xilinx Synthesis Technology) ツールで BUFFER_TYPE 属性を次の目的に使用できます。

• ク ロ ッ ク バッファーを指定しない

• BUFH や BUFR などの特定バッファー タイプを指定する

BUFFER_TYPE 属性は、 次のよ うに指定できます。

• HDL ソース コードに直接記述

これで、 コード内で制約が有効になり ます。

• XST 制約ファイル (XCF) で指定

HDL ソース コードを変更せずにクロ ッ ク リ ソースを制御できます。

IP

一部の IP を使用してクロ ッ ク供給構造を作成できます。

• Clocking Wizard および I/O Wizard

• 複雑な IP

Clocking Wizard および I/O Wizard

Clocking Wizard および I/O Wizard を使用して、 次のクロ ッ ク リ ソースおよびその構造を作成で

きます。

• BUFG

• BUFIO

• BUFR

• 次のよ う なク ロ ッ ク調整ブロ ッ ク :

• MMCM (Mixed Mode Clocking Manager)

• I/O 位相ロッ ク ループ (PLL)

複雑な IP

次のよ う な複雑な IP には、 クロ ッ ク供給構造が含まれているこ とがあ り ます。

• Memory Interface Generator (MIG)

• PCIe

• Transceiver Wizard

こ う した IP は、 十分に配慮すれば、 追加クロ ッ ク リ ソース と して使用できます。

Page 54: 高集積度 FPGA 設計手法 ガイド - japan.xilinx.com€¦ · 高集積度 FPGA 設計手法ガイド japan.xilinx.com 5 UG872 (v14.1) 2012 年 4 月 24 日 第1 章 概要

54 japan.xilinx.com 高集積度 FPGA 設計手法ガイ ド

UG872 (v14.1) 2012 年 4 月 24 日

第 5 章 : クロッキング

適切な配慮なしで使用する と、デザインのほかの部分のクロ ッ ク オプシ ョ ンを制限してしま う こ と

があ り ます。

インスタンシエート された IP に対しては、 デザインのほかの部分のク ロ ッ ク要件、 機能、 リ ソー

スを活用するよ うにしてください。

インスタンシエーシ ョ ン

HDL デザインにクロ ッ ク リ ソースをインスタンシエートするのが、 も具体的で直接的なクロ ッ

ク供給構造制御方法です。

• インスタンシエーシ ョ ンの利点

• 上位でのクロ ッ ク リ ソースのインスタンシエーシ ョ ン

• 重複クロ ッ ク リ ソースのリ スク

インスタンシエーシ ョ ンの利点

HDL デザインにクロ ッ ク リ ソースをインスタンシエートする と、 デバイスのすべての機能にアク

セスし、 制御できます。

一般的に、 インスタンシエーシ ョ ンは次の追加ロジッ クおよび制御が必要なクロ ッ ク供給構造の唯

一のオプシ ョ ンです。

• BUFGCE

• BUFGMUX

• BUFHCE

単純なバッファーであっても、 デザインにそれをインスタンシエートするのが一番簡単です。

最上位でのクロック リソースのインスタンシエーシ ョ ン

ク ロ ッ ク リ ソースは、 コードの 上位またはその近くで、個別のエンティティ またはモジュールに

配置するこ とをお勧めします。

上位またはその近くにあるエンティティやモジュールは、 デザイン内の複数のモジュールに簡単

に分配できます。

重複クロック リソースのリスク

• FPGA リ ソースが無駄に使用されます。

• 消費電力が増加します。

• 次のよ う な結果の原因となる競合や配置が作成されます。

• インプ リ メンテーシ ョ ン ツールのランライムが長くなる

• タイ ミ ングが複雑になる

Page 55: 高集積度 FPGA 設計手法 ガイド - japan.xilinx.com€¦ · 高集積度 FPGA 設計手法ガイド japan.xilinx.com 5 UG872 (v14.1) 2012 年 4 月 24 日 第1 章 概要

高集積度 FPGA 設計手法ガイド japan.xilinx.com 55UG872 (v14.1) 2012 年 4 月 24 日

クロック位相、 周波数、 デューテ ィ サイクル、 およびジッ ターの制御

クロック位相、 周波数、 デューテ ィ サイクル、 およびジッ ターの制御

このセクシ ョ ンでは、 ク ロ ッ ク位相、 周波数、 デューティ サイ クル、 およびジッターの制御につい

て説明します。

• ク ロ ッ ク調整ブロ ッ クの使用

• 位相制御のための IDELAY の使用

• ゲーテッ ド ク ロ ッ クの使用

• ダイナミ ッ ク消費電力の削減

クロック調整ブロックの使用

MMCM または PLL を使用する と、 入力クロ ッ クの特性を調整できます。

MMCM はクロッ クの挿入遅延を削除し、 入力システム同期データにクロ ッ クの位相を揃える際に

一般的に使用されます。

MMCM は、 次の目的にも使用できます。

• 位相をさ らに厳し く制御する

• ク ロ ッ クのジッ ターをフ ィルターする

• ク ロ ッ ク周波数を変更する

• ク ロ ッ ク デューティ サイ クルを修正または変更する

これで、 デザインの重要な部分を厳密に制御できます。

MMCM および PLL コンポーネン トの使用は、 ク ロ ッ ク リ ソースの調整および制御には非常に一

般的です。

MMCM または PLL を使用するには、MMCM が仕様どおりに動作し、目的のクロ ッ ク特性が出力

されるよ うに、 いくつかの属性を設定する必要があ り ます。

Clocking Wizard

これらの リ ソースをコンフ ィギュレーシ ョ ンするには、 Clocking Wizard を使用するこ とを推奨し

ます。

ダイレク ト インスタンシエーシ ョ ン

MMCM または PLL は直接インスタンシエートするこ と もできます。

直接インスタンシエートするこ とで リ ソースは制御しやすくなり ますが、 目標の結果が得られるよ

うにし、 さ らにタイ ミ ング目標も満たすこ とができるよ うにするため、 正しい設定が使用されてい

るこ とを確認する必要があ り ます。

PLL での設定が間違っている と、 ジッ ターが大き くなってク ロッ クのばらつきが増加したり、位相

関係が不正になったり、 タイ ミ ングを不必要に困難にする問題が発生したりするこ とがあ り ます。

Page 56: 高集積度 FPGA 設計手法 ガイド - japan.xilinx.com€¦ · 高集積度 FPGA 設計手法ガイド japan.xilinx.com 5 UG872 (v14.1) 2012 年 4 月 24 日 第1 章 概要

56 japan.xilinx.com 高集積度 FPGA 設計手法ガイ ド

UG872 (v14.1) 2012 年 4 月 24 日

第 5 章 : クロッキング

位相制御のための IDELAY の使用

若干の位相調整のみが必要な場合は、 MMCM および PLL の代わりに IDELAY または ODELAYを使用できます。

IDELAY または ODELAY を使用する と、遅延を追加したり、関連データに対してク ロ ッ クの位相

オフセッ ト を増加したりできます。

ゲーテッ ド クロックの使用

FPGA デバイスには、 ファンアウ トが大き く、 ロー スキューのク ロ ッ ク リ ソースを供給できる専

用クロ ッ ク ネッ ト ワークがあ り ます。HDL コードで細粒度クロ ッ ク ゲーティング テクニッ クを使

用する と、 この機能および専用リ ソースへのマッピングに問題が発生する可能性があ り ます。

FPGA デバイスを直接ターゲッ トにするコードを記述する場合は、 ク ロ ッ ク パスにクロ ッ ク ゲー

ティング構文を記述しないでください。代わりに、 クロ ッ ク イネーブルを推論するコード記述を使

用してク ロ ッキングを制御してください。 これで、 機能または消費電力削減の目的でデザインの一

部を停止するこ とができます。

コードにク ロ ッ ク ゲーティング構文が既に含まれている場合、またはそのよ う なコードが必要な別

のテク ノ ロジを使用している場合、 ク ロ ッ ク パスに配置されたゲート をデータ パスのクロ ッ ク イネーブルにマップし直すこ とができる合成ツールを使用してください。 このよ うにする と、 ク ロ ッ

ク リ ソースへのよ り よいマッピングが可能にな り、 ゲーテッ ド ク ロ ッ ク ド メ インに入出力する

データの回路のタイ ミ ング解析が簡単になり ます。

ク ロ ッ ク ネッ ト ワークの大部分を一定期間シャッ ト ダウンさせる場合、次のコンポーネン トのいず

れかを使用してク ロ ッ ク ネッ ト ワークのオン/オフを切り替えるこ とができます。

• BUFGCE

• BUFHCE

• BUFR

• BUFMRCE

ク ロ ッ クが一定期間遅くなる場合、 次のコンポーネン トのいずれかと追加のロジッ クを使用して、

ク ロ ッ ク ネッ ト を周期的にイネーブルにするこ とができます。

• BUFGCE

• BUFHCE

• BUFR

または、 BUFGMUX を使用して高速クロ ッ ク信号から低速のクロ ッ クにクロ ッ ク ソースを切り替

えるこ と もできます。

ダイナミ ック消費電力の削減

上記のどの手法を使用しても、 ダイナミ ッ ク消費電力を効果的に削減できます。 どの手法が も効

果的かは、 要件およびクロ ッ ク ト ポロジによって異なり ます。

• BUFR

• BUFMRCE

• BUFHCE

• BUFGCE

Page 57: 高集積度 FPGA 設計手法 ガイド - japan.xilinx.com€¦ · 高集積度 FPGA 設計手法ガイド japan.xilinx.com 5 UG872 (v14.1) 2012 年 4 月 24 日 第1 章 概要

高集積度 FPGA 設計手法ガイド japan.xilinx.com 57UG872 (v14.1) 2012 年 4 月 24 日

出力クロック

BUFR

BUFR は、 次の条件を満たす場合に も効果的です。

• 外部で生成されたクロ ッ クである

• 200MHz 未満

• 高 3 つのクロ ッ ク領域にクロ ッ クを供給する必要がある

BUFMRCE

複数のク ロ ッ ク領域 (垂直方向に隣接する領域の場合は 3 つまで) でこの手法を使用するには、

Virtex-7 デバイスで BUFMRCE が必要な場合があ り ます。

BUFHCE

BUFHCE は、 1 つのクロ ッ ク領域に含むこ とができる高速クロ ッ クに も適しています。

BUFGCE

BUFGCE はデバイス全体で使用でき、 も柔軟性があ り ますが、 消費電力を削減するには適切で

はあ り ません。

出力クロック

外部ク ロ ッ ク供給デバイスを使用している場合、 FPGA デバイスから ク ロ ッ クを出力するには

ODDR コンポーネン ト を使用するのが効果的です。

位相関係およびデューティ サイクルが適切に制御されるク ロ ッ クを作成するには、次のよ うに設定

します。

1. 1 つの入力を High にする

2. も う 1 つの入力を Low にする

ク ロ ッ クを停止し、 一定期間ある極性に保持するには、 セッ ト / リ セッ トおよびク ロ ッ ク イネーブ

ルを使用します。

外部クロ ッ クの位相制御がさ らに必要な場合は、MMCM または PLL を使用して次のいずれか、ま

たは両方の機能を使用します。

• 外部フィードバッ ク補正

• 位相補正 :

• 粗粒度または細粒度

• 固定または可変

これで、 ク ロ ッ ク位相およびほかのデバイスへの伝搬時間を制御でき、 デバイスからの外部タイ ミ

ング要件を簡略化できます。

Page 58: 高集積度 FPGA 設計手法 ガイド - japan.xilinx.com€¦ · 高集積度 FPGA 設計手法ガイド japan.xilinx.com 5 UG872 (v14.1) 2012 年 4 月 24 日 第1 章 概要

58 japan.xilinx.com 高集積度 FPGA 設計手法ガイ ド

UG872 (v14.1) 2012 年 4 月 24 日

第 5 章 : クロッキング

クロッ ク ド メインの交差

プロセス、 電圧、 温度 (PVT) は変動するため、 1 つのクロ ッ ク ド メ イン内よ り も 2 つのク ロ ッ ク

ド メ インをまたがる場合の方がクロ ッ クおよび位相のばらつきが増加します。

2 つのクロ ッ ク ド メ インをまたがる と、 セッ ト アップおよびホールド計算に加算され、 低速のデザ

インでもタイ ミ ングを満たすのが困難になるこ とがあ り ます。

デザインの箇所によって異なるク ロ ッ ク周波数が必要な場合、 ク ロ ッ クを次のよ うに制御します。

1. ク ロ ッ ク ド メ イン数を定義する

2. 汎用クロ ッ ク イネーブルか、 次のコンポーネン トのいずれかを使用する

• BUFGCE

• BUFGMUX

• BUFHCE

• BUFR

• BUFMRCE

ク ロ ッ クが同期していない、または各エッジで揃っていない場合は、複数サイ クル信号が正し く転

送されている こ と を確認します。 非同期信号 (位相関係が既知の関係ではない) の場合は、 特別な

手法を使用してド メ イン間でデータが正し く確実に転送されるよ うにする必要があ り ます。

同期ド メインの交差

同期ド メ インとは、 次のよ う なド メ インを指します。

• ク ロ ッ ク間の位相関係が既知のものである

• 位相関係がインプ リ メンテーシ ョ ン実行ごとに変化しない

同期ド メ インは、 次の場合に発生します。

• 互いのド メ インから派生している

• 同じ内部または外部ソースから供給されている

• この両方の条件が当てはまる

このよ う なケースでは、 データを解析するこ とが可能で、 ある程度の注意を払えば、 ド メ イン間で

問題なくデータを転送できます。

クロック スキュー

共通ノード、 およびソースおよびデスティネーシ ョ ンに到達するまでバッファー内を通過する距離

によ り ますが、 ク ロ ッ ク スキュー計算は重要です。

レジスタ間のパスなど小さなデータ パスの場合、 ク ロ ッ ク スキューはデータ遅延よ り も大き くな

る可能性があ り ます。 これを修正しないとホールド タイムに影響します。

ロジッ ク レベルがいくつかある場合は、追加スキューが発生してタイ ミ ングを満たすのが困難にな

る可能性があ り ます。 こ う したク ロ ッ クが交差する状況ではロジッ ク レベルをよ く監視し、 ロジッ

ク レベル数が多すぎる場合や少なすぎる場合の影響を考慮して ください。

Page 59: 高集積度 FPGA 設計手法 ガイド - japan.xilinx.com€¦ · 高集積度 FPGA 設計手法ガイド japan.xilinx.com 5 UG872 (v14.1) 2012 年 4 月 24 日 第1 章 概要

高集積度 FPGA 設計手法ガイド japan.xilinx.com 59UG872 (v14.1) 2012 年 4 月 24 日

クロック ド メ インの交差

同期ド メイン交差の例

• チップの同じ側 (上または下) に 2 つの BUFG コンポーネン トがあ り、同じ MMCM、PLL、ま

たはデバイス ピンから駆動される BUFG ネッ ト ワークから も う一方の BUFG ネッ ト ワーク

への交差

• 水平方向に隣接する BUFH ネッ ト ワークからも う一方の BUFH ネッ ト ワークへの交差

• 同じ BUFMR によって駆動されていて、 BUFR から同様にコンフ ィギュレーシ ョ ンされてい

るも う 1 つの BUFR への交差

BUFR コンポーネン トが BYPASS モードでない場合、すべての関連 BUFR コンポーネン トで

リセッ ト を同期させて両方のコンポーネン トの位相を揃える必要もあ り ます。

• 同じク ロ ッ ク ソースの同じク ロッ ク領域にある BUFIO と BUFR 間の交差

非同期ド メインの交差

非同期ド メ インを交差する場合、不正なバス キャプチャやメ タステーブル状態など、パスのデータ

インテグ リティに影響する要因をできる限り取り除く必要があ り ます。

一般的に、データが非同期クロ ッ ク ド メ インを問題なく またぐこ とができるよ うにするには、次の

2 つの方法があ り ます。

• 1 ビッ トのみが必要な場合、または関連データを 2 ビッ ト以上転送するのにグレー コーディン

グなどの方法を使用する場合、 回路の平均故障間隔 (MTBF ) を抑えるためにレジスタ同期化

回路を挿入します。

• 複数ビッ ト (バス) の場合、独立クロ ッ ク (非同期) FIFO を使用してド メ イン間のデータ転送を

行います。

このよ う な FIFO がソフ ト ロジッ クから作成されている場合は推論できます。専用ハード FIFO の使用が望まれる場合や、 特性化済みまたは定義済みの FIFO ロジッ クを使用した方が目的を達成し

やすい場合は、FIFO を FIFO プリ ミ ティブからデザインに直接インスタンシエート した り、COREGenerator™ の FIFO Generator を使用して FIFO を作成できます。

非同期ド メイン交差の例

• 位相関係がないクロ ッ ク ネッ ト ワークから別のクロッ ク ネッ ト ワークへの交差

• MMCM または PLL を使用しているク ロ ッ ク ネッ ト ワークから MMCM または PLL を使用

していないクロ ッ ク ネッ ト ワークへの交差

• BUFH ネッ ト ワークからこのネッ ト ワークが水平方向に隣接していない別のネッ ト ワークへ

の交差

• 専用クロ ッ ク リ ソース (外部クロ ッ ク ピン、 MMCM、 PLL など) によって直接駆動されてい

ないクロ ッ ク ネッ ト ワーク間の交差

• デバイスの上半分にある BUFG から下半分にある BUFG への交差

Page 60: 高集積度 FPGA 設計手法 ガイド - japan.xilinx.com€¦ · 高集積度 FPGA 設計手法ガイド japan.xilinx.com 5 UG872 (v14.1) 2012 年 4 月 24 日 第1 章 概要

60 japan.xilinx.com 高集積度 FPGA 設計手法ガイ ド

UG872 (v14.1) 2012 年 4 月 24 日

第 5 章 : クロッキング

デバイス スタートアップの制御および同期化

FPGA デバイスのコンフ ィギュレーシ ョ ンが完了する と、 デバイスはコンフ ィギュレーシ ョ ン ステートから一般操作の状態になり ます。

ほとんどのコンフ ィギュレーシ ョ ン シーケンスで、 終ステップの 1 つは次のよ うになり ます。

1. グローバル セッ ト / リセッ ト (GSR) のディアサート

2. 続いて、 グローバル イネーブル (GWE) のディアサート

ディアサート される と、 デザインは既知の初期ステートになり、 操作できるよ うになり ます。

未知のステート

解放ポイン トが指定クロ ッ ク ド メ インに同期していない場合や、クロ ッ クが GWE が安全に解放で

きる速度よ り も速いスピードで動作している場合、 デザインの一部が未知のステートになるこ とが

あ り ます。

デザインの中には未知のステートになっても問題ないものもあ り ますが、 通常デザインが未知のス

テートになる と、 不安定になったり、 初期データ セッ トが不正に処理される可能性があ り ます。

既知のステート

デザインが既知のステートにならなければならない場合、 スタート アップ同期化プロセスを制御す

る必要があ り ます。

単一クロック ド メ イン

デザインにクロ ッ ク ド メ インが 1 つのみある場合、コンフ ィギュレーシ ョ ン後シーケンスをシステ

ム ク ロ ッ クに同期化させるこ とができるので、 デザインに同期化して解放できます。

コンフ ィギュレーシ ョ ン後シーケンスをシステム ク ロ ッ クに同期化するには、 次のよ うにします。

1. STARTUP コンポーネン ト をインスタンシエート します。

2. システム ク ロ ッ クを CLK ピンに接続します。

これで、この同じクロ ッ クによ り コンフ ィギュレーシ ョ ン シーケンスが駆動され、デバイス スター

ト アップの同期化が簡単になり ます。

その他のケース

その他のケースでは、 GWE がアサート された後一定期間すべてのデザイン ク ロ ッ クを遅延させる

こ とができます。

デザイン ク ロ ッ クを遅延させるには、 次のよ うにします。

1. 次のコンポーネン ト をインスタンシエート します。

• BUFGCE

• BUFHCE

• BUFR

2. これらのコンポーネン トのイネーブルを使用し、コンフ ィギュレーシ ョ ン後に数クロ ッ ク サイ

クル間クロ ッ ク供給を遅らせます。

MMCM の場合、 フ ィードバッ ク ク ロ ッ クではなく出力クロ ッ クでこの設定を行います。

Page 61: 高集積度 FPGA 設計手法 ガイド - japan.xilinx.com€¦ · 高集積度 FPGA 設計手法ガイド japan.xilinx.com 5 UG872 (v14.1) 2012 年 4 月 24 日 第1 章 概要

高集積度 FPGA 設計手法ガイド japan.xilinx.com 61UG872 (v14.1) 2012 年 4 月 24 日

非クロック ネッ トにクロック バッファーを使用

別の方法

ステート マシンなどデザインのク リ ティカルな部分で次のものを使用する方法もあ り ます。

• ク ロ ッ ク イネーブル

• ローカル リセッ ト

これでク リ ティカルな部分のスタート アップが制御され既知の状態になり ます。

非クロック ネッ トにクロック バッファーを使用

ク ロ ッ ク バッファーはク ロ ッ クを効果的に供給できるよ う、 均一でロー スキューの信号を供給し

ます。 ク ロ ッキングにクロ ッ ク バッファーが不要な場合は、 ファンアウ トの大きな信号の追加配線

リ ソースと して使用できます。

ク ロ ッ ク バッファーを非クロッ ク信号に選択する場合は、 次の点に注意して ください。

• デザイン パフォーマンス

• 非クロ ッ ク信号に 3 つ以上の BUFG または BUFH コンポーネン ト を使用

• 混合極性信号に BUFG コンポーネン ト を使用

• イネーブル信号を効果的に使用

• バッファーの選択

• バッファー配置の指定

デザイン パフォーマンス

グローバル ク ロ ッ ク バッファーはロー スキューになるよ う設計されており、 必ずしも伝搬遅延が

短いわけではあ り ません。目的のクロ ッ ク周波数、およびタイ ミ ング パスによっては、BUFG を使

用する と タイ ミ ングを満たすこ とができない可能性があ り ます。

非クロック信号に 3 つ以上の BUFG または BUFH コンポーネン ト を使用

BUFG で非クロ ッ ク信号を駆動する場合、その信号がデスティネーシ ョ ンに到達するためにグロー

バル ク ロ ッ ク ネッ トから抜ける必要があ り ます。

• 2 つ以下の BUFG コンポーネン トからの信号がグローバル クロ ッ ク ネッ トの 1 つのポイン ト

から抜ける場合は競合はなく、 どのよ う な状況でもデザインを配線できます。

• 3 つ以上の BUFG コンポーネン トからの信号が同じロケーシ ョ ンに送信される場合、競合が発

生してデザインを配線できなくなる可能性があ り ます。

配線競合を避けるため、3 つ以上の BUFG コンポーネン ト を非クロ ッ ク信号に使用しないでくださ

い。

次の場合にも同じ制限事項が適用されます。

• 非クロ ッ ク信号で同じク ロ ッ ク領域にある 2 つの BUFH コンポーネン ト を駆動する場合

• 同じク ロ ッ ク領域にある同じロジッ クを駆動する必要のある BUFH コンポーネン ト と BUFGコンポーネン トの組み合わせを駆動する場合

Page 62: 高集積度 FPGA 設計手法 ガイド - japan.xilinx.com€¦ · 高集積度 FPGA 設計手法ガイド japan.xilinx.com 5 UG872 (v14.1) 2012 年 4 月 24 日 第1 章 概要

62 japan.xilinx.com 高集積度 FPGA 設計手法ガイ ド

UG872 (v14.1) 2012 年 4 月 24 日

第 5 章 : クロッキング

混合極性信号に BUFG コンポーネン ト を使用

BUFG コンポーネン トは、 次の信号には使用しないでください。

• 混合極性信号

• ネッ トの大部分に追加ロジッ クが必要な信号

たとえば、 次のよ う なファンアウ トの大きな リセッ ト信号がある と します。

• デザインの一部でアクティブ High

• デザインのほかの部分でアクティブ Low

この場合、 アクティブ Low の部分には反転を実行するための LUT またはロジッ クが必要なので、

BUFG を挿入しても利点がないどころか、 悪影響が及ぶ可能性があ り ます。

イネーブル信号を効果的に使用

BUFHCE を使用する と きに伝搬遅延を削減するには、 次のよ うに設定します。

1. 入力を論理 1 に接続する

2. ネッ トのロジッ ク値を変更するためにイネーブル信号を使用する

これには次の設定が必要です。

1. CE_TYPE 属性を ASYNCに設定する

2. INIT_OUT を 0 に設定する

追加コス ト なしにこのパスに反転をエンコードするには、 次のよ うに設定します。

1. 入力をグランドに接続する

2. INIT_OUT を 1 に設定する

同じこ とを BUFGMUX でも行うには、 次の場合にセレク ト (S) ピンに接続します。

• CLK_SEL_TYPE が ASYNC に設定されている

• 制約がマルチプレクサーへの入力に配置されている

バッファーの選択

バッファーの選択によ り、 ロジッ クのグループ化および配置を制御できます。

BUFH または BUFR を使用する と、 接続されているコンポーネン トは 1 つのクロ ッ ク領域に制限

され、要件が厳しい部分でタイ ミ ングを満たすためよ り 適な配置が可能になるこ とがあ り り ます。

バッファー配置の指定

特に高速パスで望ましい結果を得るため、バッファーの配置を指定する必要がある場合があ り ます。

Page 63: 高集積度 FPGA 設計手法 ガイド - japan.xilinx.com€¦ · 高集積度 FPGA 設計手法ガイド japan.xilinx.com 5 UG872 (v14.1) 2012 年 4 月 24 日 第1 章 概要

高集積度 FPGA 設計手法ガイド japan.xilinx.com 63UG872 (v14.1) 2012 年 4 月 24 日

クロック リソースのまとめ

クロッ ク リソースのまとめ

このセクシ ョ ンでは次のコンポーネン トのク ロ ッ ク リ ソースをま とめます。

• BUFG

• BUFGCE

• BUFGMUX および BUFGCTRL

• BUFH

• BUFG

• BUFHCE

• BUFR

• BUFIO

• BUFMR

• BUFMRCE

• MMCM

• PLL

• IDELAY および IODELAY

• ODDR

BUFG

BUFG は、ファンアウ トの大きいクロ ッ クをデバイス全体の複数のクロ ッ ク領域に供給する必要が

ある場合に使用します。

BUFG は、 クロ ッ クをインスタンシエート した り手動で制御しない場合に使用します。

BUFG は、極性が混合していない中速から低速のクロ ッ クのグローバル リセッ ト など、ファンアウ

トが非常に大きな非クロ ッ ク ネッ トに使用できます。 このよ うな使用は、 1 つのデザインにつき 2つに制限してください。

ク ロ ッ クが複数の SLR にまたがる SSI デバイスの場合、中央の SLR にクロ ッ クを配置します。 こ

れでデザイン全体にクロ ッ ク供給ネッ ト を偏りなく分配でき、 スキューを低減できます。

BUFGCE

BUFGCE は、 ファンアウ トが大きい複数領域からなるクロ ッ ク ド メ インを停止するために使用し

ます。

BUFGMUX および BUFGCTRLBUFGMUX および BUFGCTRL は、クロ ッ ク周波数またはクロ ッ ク ソースを変更するために使用

します。

BUFH

BUFH は、1 つのクロ ッ ク領域に含めるこ とができるロジッ クの小さいクロ ッ ク ド メ インに使用し

ます。

BUFH は、 超高速のクロ ッ ク ド メ インに使用します。

Page 64: 高集積度 FPGA 設計手法 ガイド - japan.xilinx.com€¦ · 高集積度 FPGA 設計手法ガイド japan.xilinx.com 5 UG872 (v14.1) 2012 年 4 月 24 日 第1 章 概要

64 japan.xilinx.com 高集積度 FPGA 設計手法ガイ ド

UG872 (v14.1) 2012 年 4 月 24 日

第 5 章 : クロッキング

BUFH は、 BUFG コンポーネン ト と クロ ッ ク リ ソースを奪い合う可能性が低いクロ ッ ク ド メ イン

で使用します。

BUFG

SSI デバイスの場合、 上または下の SLR コンポーネン ト で BUFG を使用します。 これで中央の

SLR にある BUFG コンポーネン トで リ ソースを奪い合う可能性が低くな り ます。

BUFHCE

BUFHCE は、BUFG で駆動されている場合、1 つのクロ ッ ク領域に配置可能なクロ ッ ク ネッ ト ワー

クの中粒度の部分を停止するために使用します。

BUFHCE は、1 つのクロ ッ ク領域に含めるこ とが可能な リセッ ト などのファンアウ トの大きい非ク

ロ ッ ク信号に使用します。

BUFR

BUFR は、 パフォーマンスが 200MHz 以下の小規模から中規模のクロ ッ ク ネッ ト ワークに使用し

ます。

BUFR は、クロ ッ ク分周が必要な垂直方向に隣接するクロ ッ ク領域 (3 領域まで) に制約できる外部

供給クロ ッ クに使用します。

SSI デバイスの場合、上または下の SLR コンポーネン トで BUFR を使用します。これで中央の SLRにある BUFG コンポーネン トで リ ソースを取り合う可能性が低くなり ます。

BUFIO

BUFIO は、通常ソース同期データ キャプチャでの外部供給の高速 I/O ク ロ ッキングに使用します。

BUFMR

ザイ リ ンクス 7 シ リーズ FPGA デバイスのみで使用できます。

1 つのクロ ッ ク ソースに対し垂直方向に隣接する複数のクロ ッ ク領域にある BUFR または BUFIOコンポーネン ト を使用する必要がある場合に、 BUFMR を使用します。

SSI デバイスの場合、 SLR の中央クロッ ク領域に BUFMR および関連ピンを配置します。 これで、

BUFMR から 3 つすべてのクロ ッ ク領域にアクセスできるよ うにな り ます。

BUFMRCE

ザイ リ ンクス 7 シ リーズ FPGA デバイスのみで使用できます。

BUFMRCE は、 ク ロ ッ クを定期的に停止する必要がある と き、 1 つのクロ ッ ク ソースに対し、 垂

直方向に隣接する複数のク ロ ッ ク領域にある BUFR または BUFIO コンポーネン ト を使用する必

要がある場合に使用します。

BUFMRCE は、 ク ロ ッ ク分周が使用されている BUFR を複数使用している場合に使用します。 接

続されている BUFR コンポーネン トすべての開始時の位相を確実にするために使用できます。

Page 65: 高集積度 FPGA 設計手法 ガイド - japan.xilinx.com€¦ · 高集積度 FPGA 設計手法ガイド japan.xilinx.com 5 UG872 (v14.1) 2012 年 4 月 24 日 第1 章 概要

高集積度 FPGA 設計手法ガイド japan.xilinx.com 65UG872 (v14.1) 2012 年 4 月 24 日

クロック リソースのまとめ

MMCM

MMCM は、 システム同期入力および出力のクロ ッ ク挿入遅延を削除するために使用します (入力

データにクロ ッ クの位相を揃える)。

MMCM は、 データを正し く取り込むためにソース同期データをク ロ ッ ク揃えるク ロ ッ ク位相制御

に使用します。

MMCM は、 入力クロ ッ クの周波数またはデューティ サイクルを変更するために使用します。

MMCM は、 クロ ッ ク ジッターをフ ィルターするために使用します。

PLL

PLL は、 高速入力クロ ッ クの位相を揃えるために使用します。

IDELAY および IODELAYIDELAY および IODELAY は、 入力クロ ッ クにわずかな位相オフセッ ト (遅延) を追加するために

使用します。

IDELAY および IODELAY は、入力データに遅延を追加するために使用します。 これによ り、デー

タに対しク ロ ッ ク位相オフセッ ト を効果的に削減できます。

ODDR

ODDR は、 デバイスからの外部転送クロ ッ クを作成するために使用します。

Page 66: 高集積度 FPGA 設計手法 ガイド - japan.xilinx.com€¦ · 高集積度 FPGA 設計手法ガイド japan.xilinx.com 5 UG872 (v14.1) 2012 年 4 月 24 日 第1 章 概要

66 japan.xilinx.com 高集積度 FPGA 設計手法ガイ ド

UG872 (v14.1) 2012 年 4 月 24 日

第 5 章 : クロッキング

Page 67: 高集積度 FPGA 設計手法 ガイド - japan.xilinx.com€¦ · 高集積度 FPGA 設計手法ガイド japan.xilinx.com 5 UG872 (v14.1) 2012 年 4 月 24 日 第1 章 概要

高集積度 FPGA 設計手法ガイド japan.xilinx.com 67UG872 (v14.1) 2012 年 4 月 24 日

付録 A

その他のリソース

ザイリンクス リソース

• デバイス ユーザー ガイ ド : http://japan.xilinx.com/support/documentation/user_guides.htm

• ザイ リ ンクス用語集 : http://japan.xilinx.com/company/terms.htm

• 『ザイ リ ンクス デザイン ツール : インス トールおよびラインセス ガイ ド』 (UG798) : http://japan.xilinx.com/support/documentation/sw_manuals/xilinx14_1/iil.pdf

• 『ザイ リ ンクス デザイン ツール : リ リース ノート ガイ ド』 (UG631) : http://japan.xilinx.com/support/documentation/sw_manuals/xilinx14_1/irn.pdf

• 製品サポート と資料 : http://japan.xilinx.com/support

ハードウェア資料

• 7 シ リーズ デバイスの資料 : http://japan.xilinx.com/support/documentation/7_series.htm

ISE 資料

• ライブラ リ ガイ ド : http://japan.xilinx.com/support/documentation/dt_ise14-1_librariesguides.htm

• ISE Design Suite のマニュアル : http://japan.xilinx.com/support/documentation/dt_ise14-1.htm

• 『コマンド ライン ツール ユーザー ガイ ド』 (UG628) : http://japan.xilinx.com/support/documentation/sw_manuals/xilinx14_1/devref.pdf

• 『制約ガイ ド』 (UG625) : http://japan.xilinx.com/support/documentation/sw_manuals/xilinx14_1/cgd.pdf

• 『Data2MEM ユーザー ガイ ド』 (UG658) : http://japan.xilinx.com/support/documentation/sw_manuals/xilinx14_1/data2mem.pdf

• 『ISim ユーザー ガイ ド』 (UG660) : http://japan.xilinx.com/support/documentation/sw_manuals/xilinx14_1/plugin_ism.pdf

• 『合成/シ ミ ュレーシ ョ ン デザイン ガイ ド』 (UG626) : http://japan.xilinx.com/support/documentation/sw_manuals/xilinx14_1/sim.pdf

• 『タ イ ミ ング ク ロージャ ユーザー ガイ ド』 (UG612) : http://japan.xilinx.com/support/documentation/sw_manuals/xilinx14_1/ug612.pdf

Page 68: 高集積度 FPGA 設計手法 ガイド - japan.xilinx.com€¦ · 高集積度 FPGA 設計手法ガイド japan.xilinx.com 5 UG872 (v14.1) 2012 年 4 月 24 日 第1 章 概要

68 japan.xilinx.com 高集積度 FPGA 設計手法ガイ ド

UG872 (v14.1) 2012 年 4 月 24 日

付録 A : その他のリソース

• 『ザイ リ ンクス/Cadence PCB ガイ ド』 (UG629) : http://japan.xilinx.com/support/documentation/sw_manuals/xilinx14_1/cadence_pcb.pdf

• 『ザイ リ ンクス/Mentor Graphics PCB ガイ ド』 (UG629) : http://japan.xilinx.com/support/documentation/sw_manuals/xilinx14_1/mentor_pcb.pdf

• 『XPower Estimator ユーザー ガイ ド』 (UG440) : http://japan.xilinx.com/support/documentation/sw_manuals/xilinx14_1/ug440.pdf

• 『XST ユーザー ガイ ド (Virtex-4、 Virtex-5、 Spartan-3、 および CPLD デバイス用)』(UG627) : http://japan.xilinx.com/support/documentation/sw_manuals/xilinx14_1/xst.pdf

• 『XST ユーザー ガイ ド (Virtex-6、 Spartan-6、 7 シ リーズ デバイス用)』 (UG687) : http://japan.xilinx.com/support/documentation/sw_manuals/xilinx14_1/xst_v6s6.pdf

パーシャル リコンフ ィギュレーシ ョ ン資料

• パーシャル リ コンフ ィギュレーシ ョ ン ウェブサイ ト : japan.xilinx.com/tools/partial-reconfiguration.htm

• 『パーシャル リ コンフ ィギュレーシ ョ ン ユーザー ガイ ド』 (UG702) : http://japan.xilinx.com/support/documentation/sw_manuals/xilinx14_1/ug702.pdf

PlanAhead 資料

• PlanAhead 各種ユーザー ガイ ド http://japan.xilinx.com/support/documentation/dt_planahead_planahead/14-1_userguides.htm

• 『フロアプラン設計手法ガイ ド』 (UG633) : h t tp : / / j apan .x i l inx .com/suppor t /documenta t ion /sw_manua l s /x i l inx14_1 /Floorplanning_Methodolgy_Guide.pdf

• 『階層デザイン設計手法ガイ ド』 (UG748) : h t tp : / / j apan .x i l inx .com/suppor t /documenta t ion /sw_manua l s /x i l inx14_1 /Hierarchical_Design_Methodolgy_Guide.pdf

• 『ピン配置設計手法ガイ ド』 (UG792) : http://japan.xilinx.com/support/documentation/sw_manuals/xilinx14_1/ug792_pinplan.pdf

• 『消費電力手法ガイ ド』 (UG786) : h t tp : / / j apan .x i l inx .com/suppor t /documenta t ion /sw_manua l s /x i l inx14_1 /ug786_PowerMethodology.pdf

• 『PlanAhead Tcl コマンド リ ファレンス ガイ ド』 (UG789) : h t tp : / / j apan .x i l inx .com/suppor t /documenta t ion /sw_manua l s /x i l inx14_1 /ug789_pa_tcl_commands.pdf

• 『PlanAhead ユーザー ガイ ド』 (UG632) : h t tp : / / j apan .x i l inx .com/suppor t /documenta t ion /sw_manua l s /x i l inx14_1 /PlanAhead_UserGuide.pdf

• PlanAhead チュート リ アル http://japan.xilinx.com/support/documentation/dt_planahead_planahead14-1_tutorials.htm