UltraFastTM 設計手法 成功のためのガイドライン Vivado Design Suite.

Slides:



Advertisements
Similar presentations
IBM SmarterCloud Control Desk 7.5 新機能ガイド - 資産と構成アイテムの同期
Advertisements

CPU設計と パイプライン.
Chapter11-4(前半) 加藤健.
VLSI設計論第4回 アキュムレータマシンと 仮遅延シミュレーション
実地棚卸/棚卸検数 & 在庫調整 SAP Best Practices.
LZ圧縮回路の設計とハード・ソフト 最適分割の検討 電子情報デザイン学科 高性能計算研究室 4回生 中山 和也 2009/2/27.
Capter9 Creating an Embedded Test Bench ( )
パイプラインパフォーマンス管理 SAP Best Practices.
計算機アーキテクチャ特論Chapter.6.6~6.9
POWERSHOW Limited DVR-POS システム 小売業者のための理想的な損失防止DVRシステム.
Fiery Color Profiler Suite v4.7
Handel-C基礎 および 7セグとマウスのハンドリング
IM、プレゼンス、連絡先 IM 要求に応答する プレゼンスを設定または変更する ユーザーを検索する
Verilog HDL 12月21日(月).
事業計画 発表者名 | 会社名.
市販のソフトウェアが これほど脆弱な理由 (それをどのように解決するか).
Fire Tom Wada IE dept. Univ. of the Ryukyus
第1章 計算基盤としてのFPGA 滝本 宗宏.
第10回 Dフリップフロップ ディジタル回路で特に重要な D-FF 仕組みを理解する タイミング図を読み書きできるようにする 瀬戸
画像処理ボード上での 高速テンプレートマッチングの 実装と検証
リファクタリングのための 変更波及解析を利用した テスト支援ツールの提案
ML 演習 第 7 回 新井淳也、中村宇佑、前田俊行 2011/05/31.
Ibaraki Univ. Dept of Electrical & Electronic Eng.
8. 順序回路の簡単化,機能的な順序回路 五島 正裕.
演算/メモリ性能バランスを考慮した マルチコア向けオンチップメモリ貸与法
2005年11月2日(木) 計算機工学論A 修士1年 No, 堀江準.
VLSI設計論 慶應義塾大学 理工学部 情報工学科 山﨑 信行
組み込み向けCPU 小型デバイスに搭載されるCPU 特徴 携帯電話,デジタルカメラ,PDA,センサデバイスなど 小型 低消費電力 多機能
Oracle APEX Forms変換の概要
6. 順序回路の基礎 五島 正裕.
九州大学キャンパスクラウド 利用法 情報ネットワーク特論 講義資料.
OpenMPハードウェア動作合成システムの検証(Ⅰ)
高速剰余算アルゴリズムとそのハードウェア実装についての研究
SQL パフォーマンス チューニング ~ プランガイドの利用~
PCPU物理設計 ~マクロレベルの配置配線~
5 テスト技術 5.1 テストとは LISのテスト 故障診断 fault diagnosis 故障解析 fault analysis
オブジェクト指向プログラムにおける エイリアス解析手法の提案と実現
ディジタル回路 6. 順序回路の実現 五島 正裕.
実行時情報に基づく OSカーネルのコンフィグ最小化
ゲーム開発モデルの基礎.
DDRターミネーションレギュレータの使用法 - 何個のメモリを駆動できるのか -
ディジタル回路の設計と CADによるシステム設計
VLSI設計論第3回 順序回路の記述と論理合成
情報処理 タイマの基礎 R8C タイマの基礎.
アスペクト指向言語のための 独立性の高いパッケージシステム
VMMのソフトウェア若化を考慮した クラスタ性能の比較
オペレーティングシステムJ/K 2004年11月15日2時限目
ビジネス プロジェクトの計画 発表者名 | 会社名.
信号伝搬時間の電源電圧依存性の制御 による超伝導単一磁束量子回路の 動作余裕度の改善
VMが利用可能なCPU数の変化に対応した 並列アプリケーション実行の最適化
コードクローン分類の詳細化に基づく 集約パターンの提案と評価
プロジェクトの概要 プロジェクト名 | 会社名 | 発表者名.
UMLの概要とオブジェクト指向の基本概念
B演習(言語処理系演習)第2回 田浦.
組込みシステムとは コンピュータ制御システム?
Fire Tom Wada IE dept. Univ. of the Ryukyus
Ibaraki Univ. Dept of Electrical & Electronic Eng.
コンピュータアーキテクチャ 第 9 回.
計算機工学特論 スライド 電気電子工学専攻 修士1年 弓仲研究室 河西良介
プログラムの差分記述を 容易に行うための レイヤー機構付きIDEの提案
8. 順序回路の実現 五島 正裕.
Cソースコード解析による ハード/ソフト最適分割システムの構築
新入社員トレーニング 発表者名 発表日 このテンプレートは、トレーニング資料をグループ設定で紹介するための開始ファイルとして使用できます。
コンピュータアーキテクチャ 第 9 回.
Microsoft® Office® 2010 トレーニング
プログラムの一時停止時に 将来の実行情報を提供するデバッガ
信号伝搬時間の電源電圧依存性の制御 による超伝導単一磁束量子回路の 動作余裕度の改善
オブジェクト指向言語における セキュリティ解析アルゴリズムの提案と実現
ベイジアンネットワークと クラスタリング手法を用いたWeb障害検知システムの開発
Presentation transcript:

UltraFastTM 設計手法 成功のためのガイドライン Vivado Design Suite

内容 UltraFast 設計手法の概要 ハードウェアに適合する HDL コードの記述 タイミング制約の作成と検証 クロック配置、ピン配置、フロアプラン

UltraFastTM 設計手法の利点 コンパイル時間を短縮し、予測可能な結果を取得 適切な設計手法が必要 プロジェクトのスケジュールによりタイム トゥ マーケットの短縮が必要 リスクを効果的に管理 反復回数、特に最終段階での変更を最小限に抑える 予測および解析機能により、設計の初期段階でさまざまなオプションを試すことが可能 エキスパートや上級ユーザーからの推奨事項 ベスト プラクティス (チェックリストおよび資料へのリンク) 検証ツールおよびレポート リンティングおよび DRC

UltraFast 設計手法ガイド (UG949) PCB 設計 : ボードの製造し直しを回避 XPE を使用して消費電力を要件に対して検証 Vivado I/O 配置を使用し、インターフェイスを含む最上位で DRC を実行 デザインの作成 : 最高の QoR を得るためのコーディング スタイル Vivado の HDL 言語テンプレートを使用 新しいリンティング機能 : 設計手法 DRC ルールデック インプリメンテーション : 短期間でタイミング クロージャを達成 短期間でクロージャを達成するための手法 : 最小限の制約でクロージャ 最終的なクロージャ : 適切な制約でクロージャ XDC 言語テンプレートおよびタイミング DRC ルールデックを使用

設計サイクルを高速化するためのストラテジ 初期段階で反復作業 デザイン フローの初期段階からクロージャを開始する 後の段階よりも反復作業を短時間で実行可能 結果の品質 (QoR) に与える影響が大きい QoR への影響 100x 10x 1.2x 1.1x デバイス/IP の選択 PCB / 設計 インプリメンテーション クロージャ IP の統合、RTL デザイン、 検証 コンフィギュレーション、 検証、デバッグ 設計サイクルの時間とコストを削減

タイミング クロージャを短期間で達成するための手法 基本制約の作成 優先順位を決め、1 ステップごとにクロージャ まず合成 (高速、影響が大きい) で、その後バックエンドで 最も単純な制約から開始 : ほとんどの問題の原因となる内部 Fmax (フリップフロップ間の制約) クロックの依存性を適切に定義 デザインおよび制約が妥当なものであることを確認 解析して根本的な原因を把握してから修正方法を決定 クロック パス vs. データ パス vs. インターコネクト遅延 vs. ロジック遅延… I/O 制約を追加し (Vivado XDC テンプレートを使用)、再実行… 最終的な制約と混同しない 完全な制約は必要 6

デザイン クロージャを段階的に達成 必要な場合 タイミング例外、 基本制約 内部パスを最適化 チップ全体を最適化 調整 I/O 制約を追加 合成 解析 配置 配線 基本制約 内部パスを最適化 Fmax 基本 XDC 合成 解析 配置 配線 I/O 制約を追加 チップ全体を最適化 Fmax 完全な XDC 合成 解析 配置 配線 必要な場合 タイミング例外、 フロアプランを追加 調整 Fmax 最終 XDC

クリティカル パスが変わることがある 実際のデザイン例 合成後の予測 (実際の問題) ワースト パス : ロジック レベル数 13 配置後 ワースト パス : ロジック レベル数 7 ロジック レベル数が 7 ~ 13 のパスは ローカルに配置される 配線後 (実際の問題の副作用) ワースト パス : ロジック レベル数 4 ロジック レベル数が 5 ~ 13 のパスは 優先的に配線される ワースト パス : 4.3ns ワースト パス : 4.2ns ワースト パス : 4.1ns タイミング クロージャを短期間で達成するため タイミングの問題を初期段階で解析および修正 8

HDL コーディング スタイルの影響 ブロックの推論 デザインをパイプライン処理してロジック レベルを削減 リセットをできるだけ使用しない RAM、DSP、LUT RAM、SRL の推論には推奨されるテンプレートを使用 デザインをパイプライン処理してロジック レベルを削減 リセットをできるだけ使用しない リセット回路は通常不要 : ザイリンクス デバイスは既知のステートで起動 専用シフト レジスタ (SRL) および RAM メモリ配列はリセットを使用しない リセットが必要な場合は同期リセットを使用 レジスタを専用 RAM および DSP ブロックにパック可能 リセットをデータパス (LUT) にインプリメントすることも可能 合成ツールでの処理がより柔軟に実行される ほかの合成ツールまたは以前のリリースで必要だった属性を再確認 KEEP、dont_touch、syn_preserve、max_fanout などの属性はできるだけ 使用しない

HDL 言語テンプレートの使用 IDE からテンプレートにアクセス 合成テンプレート [Windows] → [Language Templates] をクリック 合成テンプレート BRAM、LUTRAM、ROM、SRL カウンター、乗算器 FSM、デコーダー、エンコーダー …

ハードウェアに適したコード記述 DSP ブロックのカスケード機能を活用 in ブロック RAM の競合を回避するロジック(*) を使用しない 乗算器のチェーンをパイプライン 処理すると最適なパフォーマンスが得られる in 加算器のツリーはパフォーマンスのボトルネックとなる out out DSP48 DSP48 DSP48 DSP48 競合チェックを ディスエーブルに した推論 合成ツールで競合が 発生すると想定される rdaddr RAMB wraddr rdaddr dout RAMB din wraddr dout din = (*) : Synplify でデフォルトで追加されるロジック (syn_no_rw_check 属性を使用すると削除される)

リセットの影響 適切なリセットを選択することによりパフォーマンスを向上 非同期リセットを使用すると DSP/RAM が推論されない P A 可能な限りリセットを使用しないのがベスト 非同期リセットではなく同期リセットを使用 アクティブ Low リセットでなくアクティブ High リセットを使用 レジスタのデフォルト値は INIT プロパティで指定 非同期リセットを使用すると DSP/RAM が推論されない DSP48 A B P 使用済みレジスタ rst 未使用レジスタ 非同期リセットを エミュレートする回路 ‘1’

LUT コンバイン LUT コンバインは LUT の 2 つの出力 (O5/O6) を利用 ツールの動作 利点 : エリアを節約 欠点 : 密集を引き起こす可能性がある ツールの動作 XST/Synplify ではデフォルトで LUT コンバインを使用、Vivado 合成にはソフト LC 制約がある インプリメンテーションでは place_design で使用率に応じて LUT が組み合わせられる デバイスまたは Pblock の使用率が高いと、より多くのLUT が組み合わせられる Use report_utilization を使用し、O5 と O6 を使用する LUT を確認 ガイドライン : >15% の LUT が O5 と O6 の両方を使用している場合 合成で LUT コンバインをオフにすることを考慮 Slice Logic Distribution +-------------------------------------------------------------+-----------+ |Site Type | Used| |Slice | 45910| |LUT as Logic | 120084| | using O5 output only | 422| | using O6 output only | 105082| | using O5 and O6 | 14580|

その他のデザイン 解析 report_high_fanout_nets report_control_sets ネットのファンアウトを削減するには、次を使用 max_fanout (Vivado 合成および XST) syn_maxfan (Synplify) タイミング ドリブン複製には phys_opt_design を使用 report_control_sets パッキングの問題や適合の問題を表す –verbose オプションを実行して完全なリストを生成 Synplify の syn_reduce_controlset_size 属性を使用して制御 デフォルトは 2 だが、8 に設定してファンアウトの小さい制御セットを除去

クリティカル警告を確認して解決 Vivado はクリティカル警告が発生しても停止しない クリティカル警告は深刻なデザインの問題 多くの問題を同時に修正することが可能 クリティカル警告を解決しないと、ビットストリーム生成でエラーが発生する クリティカル警告は深刻なデザインの問題 無効な制約または XDC 構文エラー パスの分割 ネットリスト オブジェクトが見つからない、または無効 次の段階に進む前にこれらの警告を解決 デザイン解析の結果が不正確になる可能性がある クリティカル警告があると、最適なデザインを作成できない

タイミング制約は適切なものにする必要がある 制約 (クロック、I/O) が不足している場合 パスのタイミングが実際よりも良いようにレポートされる 違反はレポートされないが、ハードウェアでは機能しない パスが不適切に制約されている場合 重要でないパスに時間と最適化のエフォートが費やされる レポートされたタイミング違反がハードウェアでは問題とならない場合がある 制約により間違ったホールド違反がレポートされた場合 実行時間が長くなり、セットアップ違反が発生することがある 配置配線では、ホールド違反を修正することが最優先される デザインにホールド違反があると、ハードウェアで機能しない デザインにセットアップ違反があっても、ハードウェアでは機能する (ただし低速)

IP 制約 多くのコアには独自の制約/例外制約がある ネイティブでない IP : 注意が必要 ネイティブ IP : 制約は自動的に含まれる PCIe、MIG、RAM ベースの非同期 FIFO… ネイティブでない IP : 注意が必要 NGC ファイルで提供されている IP 制約を含め忘れることがあるので注意 ネイティブ IP : 制約は自動的に含まれる IDE の [Sources] ビュー : [Compile Order] タブの [Constraints] フォルダー report_compile_order -constraints を使用して制約ファイル ソースを確認

適切な制約の作成方法 クロックを作成し、クロックの関連性を定義 入力遅延および出力遅延を設定 タイミング例外を設定 4 手順のガイドライン 入力遅延および出力遅延を設定 不正なホールド違反を作成しないよう注意 タイミング例外を設定 できるだけ少なく 各手順でレポート コマンドを使用して検証 18

クロックの基本原則 SDC ベースのタイミング エンジンでは、クロックは作成しないと認識されない プライマリ クロックは create_clock を使用して作成 クロックはクロック調整ブロックを介して自動的に伝搬される MMCM および PLL の出力クロックは自動生成される ギガビット トランシーバーは自動的に伝搬されないので、手動で作成する必要あり 必要に応じて内部クロックを create_generated_clock を使用して作成 デフォルトではクロック間のすべてのパスのタイミングが解析される クロックをここで 作成しない クロックを ここで作成

クロックを作成する 4 つの手順 手順 1 手順 2 report_clocks の出力例 最上位ポートに create_clock を使用してプライマリ クロックを作成 デザインを合成するか、ネットリスト デザインを開く 手順 2 report_clocks を実行 レポートを参照して周期、位相、伝搬を確認 必要に応じて制約を修正 Attributes P: Propagated G: Generated Clock Period Waveform Attributes Sources sys_clk 10.000 {0.000 5.000} P {sys_clk} pll0/clkfbout 10.000 {0.000 5.000} P,G {pll0/plle2_adv_inst/CLKFBOUT} pll0/clkout0 2.500 {0.000 1.250} P,G {pll0/plle2_adv_inst/CLKOUT0} pll0/clkout1 10.000 {0.000 5.000} P,G {pll0/plle2_adv_inst/CLKOUT1} report_clocks の出力例

クロックを作成する 4 つの手順 (続き) 手順 3 手順 4 report_clock_interaction を使用してクロックの関連性を評価 注意 : クロック間のパスはすべてデフォルトで制約される クロック間のパス (クロック乗せ換え) を非同期として指定 適切な CDC 同期回路が設計されていることを確認 set_clock_groups を使用 (set_false_path よりも推奨) 注意 : この制約により set_max_delay 制約が無効になるので注意 制約が適用されていないオブジェクトがあるかを確認 check_timing を使用 手順 4 report_clock_networks を実行 ロジックが含まれないクロック ラインを設計する ヒント : 合成でクロック ゲーティング オプションを使用して LUT を削除

クロック ネットワーク レポート report_clock_network は制約されていないネットワークを表示 create_clock クロック ネットワーク レポートに制約されていないクロックが含まれる場合 クロック ネットワーク レポートに制約されていないクロックなし create_clock

クロック関連性の定義と検証

クロック乗せ換えの制約 適切な同期化手法を使用 MTBF を最大化 1 ビットの場合は 2 段以上のレジスタ バスの場合は FIFO 平均故障間隔 (MTBF) を最大にするため、ASYNC_REG を設定して同期化フリップフロップを同じスライスに配置 set_property ASYNC_REG TRUE \ [get_cells [list sync0_reg sync1_reg]]

非同期 CDC の制約 – 1 ビット クロック間のタイミング パスを無視 クロック グループ間のタイミング パスを無視 set_clock_groups -asynchronous -group {clk1} -group {clk2} 上記は次と等価 : set_false_path -from [get_clocks clk1] -to [get_clocks clk2] set_false_path -from [get_clocks clk2] -to [get_clocks clk1] 注意 : これにより set_max_delay 制約は無効になる クロック グループ間のタイミング パスを無視 # SDC create_clock for the two primary clocks create_clock -name clk_oxo -period 10 [get_ports clk_oxo] create_clock -name clk_core -period 10 [get_ports clk_core] # Set Asynchronous Clock Groups set_clock_groups -asynchronous -group [get_clocks -include_generated_clocks clk_oxo] \ -group [get_clocks -include_generated_clocks clk_core} ]

非同期 CDC の制約 – バス ビルトイン ハード FIFO を使用 (推奨) 非同期転送用に設計されている set_clock_groups 制約を使用 ファブリックのグレイ コードで記述された FIFO 転送を使用 タイミング要件を設定 : set_max_delay $delay \ –from [get_pins cell1/C] \ –to [get_pins cell2/D] \ –datapath_only ($delay は clk A の周期または 2 つのクロック周期の 小さい方より小さい) set_max_delay を含む XDC ファイルは IP カタログで自動生成される 非同期クロック グループは作成しない set_clock_groups が set_max_delay より優先され、 set_max_delay が無効になる sync. cell1 sync. cell2 注記 : -datapath_only はザイリンクス特定 (SDC に準拠しない)

入力/出力遅延 I/O 制約なしで開始 主要なタイミングが妥当なものになったら、現実的な I/O 遅延を指定 指定する遅延値は外部遅延 主要なタイミング問題を検出し、修正することに集中 Vivado では I/O 制約を設定しないと I/O タイミングは解析されない I/O タイミングを無視するために false_path -from または -to get_ports は不要 主要なタイミングが妥当なものになったら、現実的な I/O 遅延を指定 set_input_delay および set_output_delay を使用 不正な遅延値 (< 0ns など) を使用すると、解析か不正になる 指定する遅延値は外部遅延 UCF のデフォルト : 内部遅延 27

タイミング例外 : できるだけ少なく 利点 : タイミング クロージャに有益 インプリメンテーション時間が長くなるのを回避 非現実的なタイミング要件を調整 例外がタイミング クロージャおよび実行時間に悪影響を与えることもある set_false_path set_multicycle_path set_max_delay セマンティック set_multicycle_path : –hold を使用 (誤ったホールド違反を回避) regexp : 複雑な式を回避、制約を厳しくしすぎない set_false_path –from : 実行時間への影響なし (単にパスから削除) set_false_path -from -to : 影響あり (削除不可、プロセスで共有されるパス)  非同期クロックの間に set_clock_groups を使用 実行時間 優先順位 set_multicycle_path 3 –from REGA/Q set_multicycle_path 2 –to REGB/D -to よりも -from が 優先される

マルチサイクル パス set_multicycle_path N を設定するとホールド チェックは N-1 で実行される セットアップ チェックを変更すると、ホールド チェックも変更される 実行時間とセットアップへの悪影響を回避するためのガイドライン 適切な回路 (クロック イネーブル ロジックなど) を追加 ホールド要件を 0 に戻して (N-1 減らす) 誤ったホールド違反を回避 hold setup Launch set_multicycle_path –from [get_cells regB] –to [get_cells regC] 2  setup:2, hold:1 == set_multicycle_path –from [get_cells regB] –to [get_cells regC] 2 -setup set_multicycle_path –from [get_cells regB] –to [get_cells regC] 1 –hold  setup:2, hold:0

Vivado 言語テンプレートの使用 XDC テンプレート IDE からテンプレートにアクセス [Windows] → [Language Templates] を クリック SDR および DDR テンプレート 入力および出力 ソース同期/システム同期 中央揃え/エッジ揃え

レポートの解読 report_timing_summary で生成されるタイミング サマリ レポート [Intra-Clock Paths] セクション : クロック ドメイン内のパス [Inter-Clock Paths] セクション : 異なるクロック ドメイン間のパス report_timing をインタラクティブにアドバンス オプションを指定して使用 通常 Tcl コンソールで使用 report_timing –through [get_nets {/cpu_top/crit_net_name}] report_timing –setup –max_paths 10 # For 10 worst setup paths report_timing –hold –to [get_cells {/top/item}] # Hold on “item” XDC ファイルからのフィルターを使用して各制約をチェック set_multicycle_path –from [get_pins regA/C] –to [get_pins regB/D] report_timing –from [get_pins regA/C] –to [get_pins regB/D]

タイミング コマンドのまとめ クロックを作成して検証 クロック グループを確認 I/O 遅延を確認 必要に応じて例外を追加 check_timing : 不足しているクロックおよび I/O 制約を確認 report_clocks : 周波数および位相をチェック report_clock_networks : クロック ルート クロック グループを確認 report_clock_interaction I/O 遅延を確認 report_timing -from [input_port] -setup/-hold report_timing -to [output_port] -setup/-hold 必要に応じて例外を追加 report_timing を使用して確認

制約ファイルの管理 1 つの XDC ファイルを使用 複数の XDC ファイルを使用 プライマリ クロックおよび I/O 遅延 クロックおよび RTL オブジェクトの例外 インプリメンテーション特定の XDC 物理制約 物理ネットリストに基づく例外 Implementation main.xdc impl.xdc Synthesis Elaboration

IP 制約ファイルの管理 一部の IP には独自の XDC 制約がある 制約ファイルの順序は重要 例 : Clocking Wizard 制約ファイルの順序は重要 XDC ファイルの順序をレポート : report_compile_order –constraints report_clocks を使用してクロックを常に検証 (4 手順のプロセスの手順 2) デフォルト順を変更する場合 set_property PROCESSING_ORDER early|late IP_XDC_File 必要に応じて IP の XDC ファイルをイネーブル/ディスエーブル デフォルトでは、Clocking Wizard の XDC はユーザー XDC よりも先に読み込まれる (ユーザー制約で IP で定義されたクロックを上書き可能)

クロックおよびピンの配置 ピンおよびクロックの配置は通常デザイン サイクルの初期段階で決定 ピンとクロックの配置は一緒に考える必要がある これらの決定がデザインのパフォーマンスに影響 過剰なクロック スキュー 不適切な I/O タイミング タイミングに問題のあるクロック乗せ換え ロジック配置の柔軟性低下 クロック リソースの選択肢が少ない 過剰な配線遅延 デバイス使用率の低下 ピンとクロックの配置は一緒に考える必要がある クロック ピンに関する決定事項がクロック タイミングおよびリソースの選択に影響 データ ピンに関する決定事項がクロック ピンの配置に影響

クロックおよびピンの配置 クロック ピン配置での考慮事項 データ ピン配置での考慮事項 ピンを割り当てる前に I/O インターフェイスおよびクロッキング IP を生成する 可能な限りクロックおよび MMCM を統合する クロックおよび MMCM の数を少なくすると、使用されるクロック リソースおよびクロック乗せ換えが 減る クロック リソースおよびピンを割り当てる前にすべての CDC を考慮する データ ピン配置での考慮事項 関連のデータ ピンを同じバンクに配置、それが不可能な場合は隣接バンクに配置 可能な場合は関連の I/O クロックを同じバンクに配置 データ パスと共に関連の制御信号の配置も考慮する ピン配置を実行するときにデータ フローを考慮する データがデバイス内を障害なく通過できるようピン配置を選択する ファンアウトの大きい信号をチップの中央近くに配置する ファンアウトの非常に大きい信号は BUFG リソースを使用して CCIO ピンに割り当てることを考慮 配置段階ですべてのピン属性 (I/O 規格、スルーなど) を評価

クロックおよびピンの配置 Vivado のピン配置機能を使用 ピンおよびクロックの割り当てを生成された IP からインポート パッケージおよびデバイスでの I/O リソース配置を表示 DRC、SSN、およびその他のチェックで検証 コンフィギュレーション ピンの割り当ておよびデバイスを移行した場合の考慮事項 ピンの変更を Vivado で再評価 PCB ピン スワップがタイミングおよび リソースにどのように影響するかを 理解

SSI に関する追加の考慮事項 クロッキング ピン配置 参考資料 ファンアウトの大きいクロックは中央の SLR に配置 クロック ピン/MMCM はタイミング クリティカル I/O インターフェイスと同じ SLR に配置 (タイミング クリティカル I/O インターフェイスを別の SLR から駆動しない) 上部の SLR と下部の SLR でクロック ピンをバランス良く選択する 上部 2 つの SLR のクロック ドメインには 8 個の BUFG x 2 下部 4 つの SLR のクロック ドメインには 4 個の BUFG x 4 ピン配置 すべての SLR を駆動するファンアウトの大きい信号は中央の SLR に配置 I/O インターフェイスは複数の SLR にまたがらないようにする SLR をまたがるデータ フローに注意 ピン配置の選択により複数の SLR をまたぐことが必要になる状況を回避 参考資料 『高集積度 FPGA 設計手法ガイド』 (UG872)

フロアプランで配置を改善 フロアプランなしで開始 まず HDL、合成、制約を改善 Vivado IDE を使用 配置配線アルゴリズムで達成可能な結果を確認 まず HDL、合成、制約を改善 簡単、フロアプランを使用しない方が一貫した結果が 得られる Vivado IDE を使用 モジュールごとに配置をハイライトし、ガイドとして使用 クリティカル タイミング パスの配置を表示 Pblock のデータ フローを理解 Pblock の影響を理解 配置周辺のリソースがデータ フローに影響 リソース使用率を考慮して Pblock を作成 フロアプランを過剰に使用しない (できるだけ少なく) デザインの重要なエリアのみをフロアプラン 使用率の高い Pblock を作成しない 配線の密集または新しいタイミング問題が発生する可能性あり Pblock が重ならないようにする 配置およびクロックが複雑になる Baseline run with highlighted regions

UltraFast 設計手法のまとめ 最適な結果を得るには、FPGA の HDL スタイルを適用 基本制約を作成してクロージャを短時間で達成 BRAM、LUTRAM、DSP、SRL 推論の要件に注意 通常はリセットをできるだけ使用しない、使用する場合は非同期リセットを避ける 制御信号を最小限にする 大型 FPGA はデータ フローおよびフロアプランを考慮して設計 基本制約を作成してクロージャを短時間で達成 適切なタイミング制約を設定 不適切な制約は実行時間が長くなり、パフォーマンスが低下し、ハードウェア エラーが発生する原因となる タイミングの作成方法および検証方法の基本を理解する ピン/クロック配置のガイドラインに従う データ フローに従う ファンアウトの大きいクロックおよびピンを SSIT デバイスの中央に配置する