30.06.2015 Views

j_ug1046-ultrafast-design-methodology-guide

j_ug1046-ultrafast-design-methodology-guide

j_ug1046-ultrafast-design-methodology-guide

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

UltraFast エンベデッ ド デザイ ン<br />

設 計 手 法 ガ イ ド<br />

UG1046 (v2.1) 2015 年 4 月 22 日<br />

本 資 料 は 表 記 のバージョンの 英 語 版 を 翻 訳 したもので、 内 容 に 相 違 が 生 じる 場 合 には 原 文 を 優 先 します。<br />

資 料 によっては 英 語 版 の 更 新 に 対 応 していないものがあります。 日 本 語 版 は 参 考 用 としてご 使 用 の 上 、 最<br />

新 情 報 につきましては、 必 ず 最 新 英 語 版 をご 参 照 ください。


改 訂 履 歴<br />

次 の 表 に、 こ の 文 書 の 改 訂 履 歴 を 示 し ます。<br />

日 付 バージ ョ ン 改 訂 内 容<br />

2015 年 4 月 22 日 2.1<br />

2015 年 3 月 26 日 2.0<br />

2014 年 10 月 20 日 1.1<br />

2014 年 10 月 8 日 1.0<br />

• 9 ページの 「Embedded Design Methodology Checklist」 を 追 加<br />

• 10 ページの 「Accessing Documentation and Training」 を 追 加<br />

• 第 8 章 「SDSoC 環 境 」 を 追 加<br />

• 181 ページの 「 関 連 するデザ イ ン ハブ」 を 追 加<br />

• 古 い 情 報 を 削 除<br />

• 第 2 章 「システム レベルの 考 慮 事 項 」 の 次 のセ ク シ ョ ンに 情 報 を 追 加<br />

° 「パフ ォーマン ス」<br />

° 「クロッキングおよびリセッ ト」<br />

初 版<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 2<br />

UG1046 (v2.1) 2015 年 4 月 22 日


目 次<br />

第 1 章 : 概 要<br />

エンベデ ッ ド 設 計 手 法 チェ ッ ク リ ス ト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7<br />

資 料 および ト レーニン グへのア ク セ ス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8<br />

第 2 章 : システム レベルの 考 慮 事 項<br />

パフォーマンス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11<br />

消 費 電 力 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14<br />

クロッキングおよびリセット . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29<br />

割 り 込 み . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32<br />

エンベデッ ド デバイ スのセキ ュ リ テ ィ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36<br />

プ ロ フ ァ イ リ ン グおよび 分 割 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40<br />

第 3 章 : ハー ド ウ ェ ア デザイ ンの 考 慮 事 項<br />

ブー ト デバイ スおよびそのコ ン フ ィ ギ ュ レーシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49<br />

メモリ インターフェイス. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54<br />

ペリフェラル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59<br />

IP ブロッ クの 設 計 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74<br />

ハー ド ウ ェ ア パフ ォーマン スの 考 慮 事 項 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80<br />

データ フ ロー . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85<br />

PL ク ロ ッ ク 供 給 手 法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89<br />

ACP およびキャ ッシュ コ ヒーレンシ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93<br />

PL の HP ポー ト アクセス. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96<br />

シ ス テム 管 理 のハー ド ウ ェ ア アシスタンス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99<br />

ハー ド ウ ェ ア リコンフィギュレーションの 管 理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101<br />

APU からの GP およびダイレク ト PL アクセス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106<br />

第 4 章 : ソフトウェア デザイ ンの 考 慮 事 項<br />

プロセッサ コンフィギュレーション. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110<br />

OS および RTOS の 選 択 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114<br />

ライブラリおよびミドルウェア . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122<br />

ブー ト ローダー . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125<br />

ソ フ ト ウ ェ ア 開 発 ツール . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129<br />

第 5 章 : ハー ド ウ ェ ア デザイ ン フロー<br />

概 要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136<br />

Vivado IDE を 使 用 した IP サブシステムの 構 築 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137<br />

ルール ベースの 接 続 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138<br />

階 層 的 な IP サブシステムの 作 成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138<br />

[Board Part Interfaces] タブ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138<br />

ブロック デザイ ンの 生 成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138<br />

再 利 用 のための IP の 作 成 と パッ ケージ 化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 3<br />

UG1046 (v2.1) 2015 年 4 月 22 日


カスタム インターフェイスの 作 成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140<br />

カスタム IP の 管 理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140<br />

Vivado 高 位 合 成 (HLS) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141<br />

まとめ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141<br />

第 6 章 : ソフトウェア デザイ ン フロー<br />

ボード 立 ち 上 げ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144<br />

ドライバーの 開 発 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147<br />

アプ リ ケーシ ョ ン 開 発 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153<br />

ザイ リ ンクス SDK ツールおよびパッケージ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158<br />

ザイ リ ンクス ソ フ ト ウ ェ ア 開 発 ツール . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161<br />

第 7 章 : デバッ グ<br />

概 要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162<br />

ソ フ ト ウ ェアのみのデバッ グ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164<br />

シミュレーション ベースのデバ ッ グ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167<br />

ボード のデバッ グ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168<br />

ハー ド ウ ェ ア と ソ フ ト ウ ェ アの 協 調 デバ ッ グ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169<br />

仮 想 プ ラ ッ ト フ ォーム . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169<br />

第 8 章 : SDSoC 環 境<br />

概 要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173<br />

全 体 的 な 使 用 フ ロー . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174<br />

プロファイ リ ング . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176<br />

パフォーマンスの 概 算 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176<br />

ソフトウェア/ハー ド ウ ェ ア シ ス テム 全 体 の 作 成 と 実 行 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176<br />

C 言 語 か ら 呼 び 出 し 可 能 な RTL IP ラ イ ブ ラ リ を 使 用 し たパフ ォーマン スの 最 適 化 . . . . . . . . . . . . . . . . . . . . . . . 176<br />

Vivado HLS を 使 用 した IP パフ ォーマン スの 最 適 化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177<br />

システム パフ ォーマン スの 最 適 化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177<br />

システムのデバッグ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179<br />

パフ ォーマン スの 測 定 と 解 析 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179<br />

エクスパート 向 けの 使 用 モデル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179<br />

付 録 A : その 他 の リ ソースおよび 法 的 通 知<br />

ザイ リ ンクス リソース. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181<br />

ソリューション センター. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181<br />

Xilinx Documentation Navigator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181<br />

参 考 資 料 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182<br />

トレーニング リソース. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186<br />

法 的 通 知 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 4<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 1 章<br />

概 要<br />

All Programmable SoC 製 品 のリ リースによ り、 ザイ リ ンクスからさらにスマート なシステムをすばやく、 効 率 的 に、<br />

確 実 に 構 築 で き る 強 力 な 方 法 が 提 供 さ れる よ う になっています。 シ ス テムがス マー ト にな る ほど、 通 常 複 雑 さ も 増 し<br />

ます。 こ れには、 長 所 も あれば、 短 所 も あ り ます。 以 前 は 構 築 する のが 不 可 能 であ った り 、 かな り 困 難 であ った よ う<br />

な 製 品 を 作 成 でき る よ う になった 点 は 長 所 ですが、 製 品 の 複 雑 さ が 増 し た こ と によ り 、 特 に 製 品 のラ イ フ サイクルの<br />

早 期 に 設 計 に 関 する 適 切 な 決 定 を 下 すこ と が さ ら に 重 要 にな る 点 が 短 所 です。 シ ス テム ソフトウェア、 アプリケー<br />

シ ョ ン、 およびハー ド ウ ェ アは 互 いに 影 響 する ので、 シ ス テム レベルの 問 題 を 考 慮 し て 解 決 する ためには、 新 し い 手<br />

法 が 必 要 と なっています。 ザ イ リ ン ク スでは、 こ の 短 所 に 対 応 する ため、 ソ フ ト ウ ェ ア ツール、 ユーザー ガイド、 リ<br />

ファレンス マニュアル、 リ フ ァ レンス デザ イ ンな ど を 含 む 包 括 的 なツール ボ ッ ク を 提 供 し てお り 、 All Programmable<br />

SoC を 使 用 し た 製 品 の 開 発 期 間 を 短 縮 で き ます。<br />

通 常 、 エンベデ ッ ド 開 発 チームには、 シ ス テム 構 築 者 、 ソ フ ト ウ ェ ア エンジニア、 およびハード ウェア エンジニア<br />

が 含 まれ、 それぞれのチーム メ ンバーが 使 い 慣 れた ツールで 設 計 を 開 始 し ます。 こ のアプ ローチ 方 法 は、 過 去 のエン<br />

ベデ ッ ド 開 発 プ ロ ジ ェ ク ト では 問 題 な く 使 用 で き ま し たが、 All Programmable SoC のボー ド 機 能 を 使 用 する 場 合 は、<br />

開 発 方 法 を 前 も って 考 慮 し ておかない と 、 問 題 と な る 可 能 性 があ り ます。 本 書 は、 チームが よ り 効 率 的 にデザ イ ン 開<br />

発 を 進 められる よ う に、 エンベデッ ド シ ス テム 開 発 者 向 けに 記 述 さ れてお り 、 主 に FPGA 設 計 者 向 けの 『UltraFast 設<br />

計 手 法 ガ イ ド (Vivado Design Suite 用 )』 (UG949) [ 参 照 16] を 補 足 する ために リ リ ース さ れています。<br />

「 手 法 」 の 意 味 は 人 に よ って 異 な り ますが、 通 常 はフ ロー チ ャー ト 、 方 法 、 原 則 、 規 則 、 方 針 な ど を 意 味 し ます。 本<br />

書 は、 手 順 を 1 つずつ 示 すも のではな く 、 設 計 者 がザ イ リ ン ク ス ツール ボッ クスを 使 用 してデザインに 関 して 適 切<br />

な 決 定 を 下 すことができるように、エンベデッド シ ス テム を 設 計 する ための 情 報 およびガ イ ダン ス を 示 すための も の<br />

です。 内 容 によ っては、 エンベデッ ド システム 全 般 に 適 用 されるものもあれば、 ザイ リ ンクスの All Programmable<br />

SoC 製 品 に し か 適 用 さ れない も の も あ り ます。 内 容 は、 ユーザーの 経 験 やザ イ リ ン ク ス 内 外 のシ ス テム 開 発 か ら 学 ん<br />

だ こ と を 反 映 し てお り 、 主 な 原 則 や、 実 行 すべき こ と および 実 行 すべき でない こ と 、 ベス ト プラクティス、 危 険 な 状<br />

況 の 回 避 方 法 などについて 記 述 し ています。 ト ピ ッ ク に よ っては、 概 念 を 示 す 使 用 例 も 示 さ れています。<br />

本 書 では、 次 の よ う に、 開 発 チーム 内 の 特 定 の 人 材 を 対 象 に、 機 能 別 に 章 を 分 けています。<br />

• 第 2 章 「システム レベルの 考 慮 事 項 」<br />

• 第 3 章 「ハードウェア デザ イ ンの 考 慮 事 項 」<br />

• 第 4 章 「ソフトウェア デザ イ ンの 考 慮 事 項 」<br />

• 第 5 章 「ハードウェア デザイ ン フロー」<br />

• 第 6 章 「ソフトウェア デザイ ン フロー」<br />

• 第 7 章 「デバッグ」<br />

• 第 8 章 「SDSoC 環 境 」<br />

表 1-1 に 示 すよ う に、 担 当 別 に 章 は 分 け られていますが、 開 発 を 始 め る 前 にチーム 全 員 が 本 書 全 体 を 読 んでお く こ と<br />

をお 勧 め し ます。 内 容 が 担 当 箇 所 と 違 っていて も、 その 他 の 章 に 示 さ れる 難 点 やガ イ ダン ス を 理 解 し てお く こ と で 役<br />

立 つこ と があ り ます。 ソ フ ト ウ ェ ア エンジニアとハード ウェア エンジニアの 境 はあいまいにな って き てお り 、 お 互<br />

いの 分 野 を 超 えて 理 解 し てお く こ と で、 チーム 全 体 が 効 率 的 に 機 能 し ます。 た と えば、 ソ フ ト ウ ェ ア エンジニアは 使<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 5<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 1 章 : 概 要<br />

用 されるハードウェアがどのように 動 作 するのか 理 解 しておく 必 要 がありますし、ハードウェア エンジニアは 指 定 す<br />

るハー ド ウ ェ ア 決 定 事 項 の ソ フ ト ウ ェ アへの 影 響 について 理 解 し てお く 必 要 があ り ます。<br />

表 1‐1 : 各 設 計 チーム メ ンバーに 関 連 する 章<br />

章<br />

第 2 章 「システム レベルの 考 慮 事 項 」<br />

第 3 章 「ハードウェア デザ イ ンの 考 慮 事 項 」<br />

第 4 章 「ソフトウェア デザ イ ンの 考 慮 事 項 」<br />

第 5 章 「ハードウェア デザイ ン フロー」<br />

第 6 章 「ソフトウェア デザイ ン フロー」<br />

第 7 章 「デバッグ」<br />

第 8 章 「SDSoC 環 境 」<br />

システム 構 築 者<br />

ハー ド ウ ェ ア 設 計<br />

者<br />

ソフトウェア 設 計<br />

者<br />

X X X<br />

X<br />

X<br />

X<br />

X<br />

X<br />

X<br />

X<br />

X<br />

X<br />

通 常 、 エンベデ ッ ド デザ イ ンは、 本 書 の 順 番 どお り 、 シ ス テム レベル デザ イ ンか ら 開 始 さ れ、 テ ス ト と デバ ッ グで<br />

終 わ り ますが、 どの 章 から 読 み 始 めて も 問 題 あ り ません。 図 1-1 は、 本 書 の 章 の 相 互 依 存 性 を 示 し ています。<br />

X-Ref Target - Figure 1-1<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

図 1‐1 : 手 法 ガ イ ド の 章 の 相 互 依 存 性<br />

注 記 : 第 8 章 「SDSoC 環 境 」 は、 図 1-1には 含 まれていません。 これは、 このツールが 第 2 章 か ら 第 7 章 ま での 概 念<br />

および 手 法 のすべてを 使 用 し てシ ス テム を 構 築 する のを 支 援 する ツールだか ら です。 ま た、 第 8 章 は SDSoC フ ロ ー<br />

特 有 の 推 奨 事 項 について も 説 明 し ています。<br />

本 書 を 読 む と 、 ザ イ リ ン ク スか ら 提 供 さ れる さ ま ざ ま なツールおよびそれに 付 随 する も のを よ り 詳 細 に 効 率 的 な 方 法<br />

で 知 る こ と がで き ます。 各 ト ピ ッ ク 分 野 の 重 要 事 項 を 知 る こ と で、 All Programmable SoC の 詳 細 な 資 料 を よ り 理 解 で<br />

きるようになります。<br />

『Zynq-7000 All Programmable SoC テクニカル リファレンス マニュアル』 (UG585) [ 参 照 4] および 『Zynq-7000 All<br />

Programmable SoC ソ フ ト ウ ェ ア 開 発 者 向 けガ イ ド 』 (UG821) [ 参 照 7] に 精 通 し てい る 場 合 は、 まず 本 書 を 読 む こ と を<br />

お 勧 め し ます。<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 6<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 1 章 : 概 要<br />

Zynq®-7000 AP SoC アーキテクチャについてよ く 知 らない 場 合 は、 『Zynq-7000 All Programmable SoC 概 要 』 (DS190) <br />

[ 参 照 29] を 参 照 して く ださい。 本 書 を 読 むこ とで、エンベデッ ド デザイ ン チームが ト レー ド オフ をすばや く 理 解 し、<br />

ボ ト ルネ ッ ク や 問 題 を 回 避 で き る よ う にな る ので、エンベデ ッ ド シ ス テム 開 発 に 最 適 な 決 定 を 下 す こ と がで き る よ う<br />

にな り ます。<br />

エンベデ ッ ド 設 計 手 法 チ ェ ッ ク リ ス ト<br />

本 書 は、 UltraFast エンベデ ッ ド 設 計 手 法 チェ ッ ク リ ス ト と 合 わせて 使 用 する こ と をお 勧 め し ます。 チェ ッ ク リ ス ト に<br />

は、プラ ニングからその 後 に 続 く すべての 段 階 のデザイ ン プ ロ セ スに 関 する よ く あ る 質 問 や 推 奨 さ れる 動 作 が 含 まれ<br />

ます。 チェ ッ ク リ ス ト の 質 問 は、 後 の 段 階 に 悪 影 響 を 及 ぼす 可 能 性 のあ るデザ イ ンの 決 定 事 項 に 関 する も ので、 知 ら<br />

れていなかった り 、 無 視 さ れて し まいがちな 問 題 が 含 まれます。<br />

ザ イ リ ン ク スでは、 チェ ッ ク リ ス ト に 進 む 前 に 本 書 を 読 むこ と をお 勧 め し ています。 チェ ッ ク リ ス ト の 項 目 のほ と ん<br />

どは 本 書 およびその 他 のザ イ リ ン ク ス 資 料 に リ ン ク さ れています。 こ れら の 参 照 資 料 は、 質 問 に 関 するデザ イ ンの 考<br />

慮 事 項 のガ イ ダン ス と し てご 使 用 く だ さ い。<br />

チェ ッ ク リ ス ト は、 ザ イ リ ン ク ス 製 品 を 使 用 し なが ら 資 料 にア ク セ ス で き る よ う にする 無 料 ツールであ る Xilinx<br />

Documentation Navigator の 一 部 と し て 提 供 されています。 Documentation Navigator は、 ス タ ン ド ア ロ ン 製 品 と し てダ<br />

ウンロードできるほか、 SDK や Vivado インストールに 含 まれます ( 「Documentation Navigator の 使 用 」 参 照 )。<br />

チェ ッ ク リ ス ト の 機 能 を 使 用 する には、Documentation Navigator 2015.1 バージ ョ ン 以 降 を ご 使 用 く だ さ い ( 日 本 語 版 の<br />

チェッ ク リ ス トは、 Documentation Navigator からは 現 在 の と こ ろ 使 用 でき ませんので、 スプレ ッ ド シー ト バージ ョ ン<br />

を 参 照 して く ださい)。 Documentation Navigator か ら は、 次 の 手 順 で 設 計 手 法 チェ ッ ク リ ス ト を 使 用 で き ます。<br />

1. [Design Hub View] タブをク リ ックします。<br />

2. 左 側 の メ ニ ューの 上 部 にあ る [Create Design Checklist] をクリ ックします。<br />

3. [New Design Checklist] ダイアログ ボックスに 情 報 を 入 力 したら、 [OK] をクリ ックします。<br />

4. 新 し いチェ ッ ク リ ス ト が 開 き ます。 チェ ッ ク リ ス ト の 一 番 上 の タ ブ ( 図 1-2) は、 ナビゲーシ ョ ン と し て 使 用 し ま<br />

す。 [Title Page] タ ブには、 チェ ッ ク リ ス ト を 使 用 する 際 の 基 本 的 な 情 報 が 含 まれます。 ほかの タ ブを ク リ ッ ク す<br />

る と 、 チェ ッ ク リ ス ト の 質 問 およびガ イ ダン スが 表 示 さ れます。<br />

X-Ref Target - Figure 1-2<br />

図 1‐2 : Documentation Navigator のエンベデ ッ ド 設 計 手 法 チ ェ ッ ク リ ス ト のタ ブ<br />

日 本 語 版 については、 次 のスプレ ッ ド シー ト バージ ョ ン を 参 照 し て く だ さ い。<br />

http://japan.xilinx.com/support/documentation/sw_manuals_j/j_xtp397-embedded-<strong>design</strong>-<strong>methodology</strong>-<br />

checklist.xlsx<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 7<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 1 章 : 概 要<br />

資 料 および ト レーニングへのア ク セス<br />

必 要 な と き に 必 要 な 情 報 にア ク セスする こ と は、タ イ ム リ ーなデザ イ ン ク ロージ ャ の 達 成 と 設 計 作 業 全 体 において 重<br />

要 です。 ザイ リ ン ク ス ツールについてできるだけ 短 期 間 で 理 解 できるよう、 リファレンス ガイド、ユーザー ガイド、<br />

チュー ト リ アル、 ビデオなどが 数 々 用 意 さ れています。 こ のセ ク シ ョ ンでは、 資 料 および ト レーニン グの 入 手 先 を 示<br />

します。<br />

Documentation Navigator の 使 用<br />

ザイ リ ンクス エンベデッ ド ツールには Xilinx Documentation Navigator が 含 まれてお り 、 ザイ リ ン ク ソフ ト ウェアお<br />

よびハー ド ウ ェ ア 資 料 、 ト レーニン グ、 サポー ト 資 料 にア ク セス し、 管 理 する 環 境 を 提 供 し ています。 Documentation<br />

Navigator を 使 用 する と 、 最 新 版 およびこ れまでのザ イ リ ン ク ス 資 料 を 表 示 で き ます。 資 料 は、 リ リ ース、 資 料 の 種<br />

類 、 デザ イ ン タ ス ク ご と にフ ィ ルターし て 表 示 で き ます。 検 索 機 能 を 使 用 する と 、 必 要 な 情 報 をすばや く 見 つけ る こ<br />

とができます。<br />

Documentation Navigator はザイ リ ン ク ス ウ ェブサ イ ト を ス キ ャ ン し て、 資 料 がア ッ プデー ト さ れてい る かど う かを<br />

チェッ ク します。 [Update Catalog] を 使 用 する と 、 利 用 可 能 なア ッ プデー ト があ る 場 合 は 警 告 メ ッ セージが 表 示 さ れ、<br />

関 連 する 資 料 の 詳 細 が 表 示 さ れます。 カ タ ロ グ を 最 新 にする よ う メ ッ セージが 表 示 さ れた 場 合 は、 カ タ ロ グ をア ッ プ<br />

デー ト し て 資 料 を 最 新 の 状 態 に し てお く こ と をお 勧 め し ます。 指 定 し た 資 料 を 含 む 資 料 カ タ ロ グ を ローカルに 作 成 し<br />

て、 管 理 で き ます。<br />

Documentation Navigator には、 [Design Hub View] という タブがあります。 このタブには、Zynq-7000 デザインの<br />

概 要 、 PetaLinux ツール、 およびSDK などのデザ イ ン 操 作 別 に 資 料 が 分 類 さ れて 表 示 さ れます。 各 デザ イ ン ハブ<br />

には、 資 料 およびビデオが 分 野 別 に 学 びやすい よ う に 分 類 さ れています。ハブには、それぞれ [Embedded Processor<br />

Design] セクション、[Design Resources] セクション、およびサポート される リ ソースのリ ス トなどが 含 まれます。<br />

新 規 ユーザーの 場 合 は、 [Embedded Processor Desig] セクションから 始 めることをお 勧 めします。<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 8<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 1 章 : 概 要<br />

X-Ref Target - Figure 1-3<br />

図 1‐3 : Xilinx Documentation Navigator の [Catalog View] タブ<br />

ビデオ チ ュー ト リ アルへのア ク セス<br />

ザイ リ ンクス ビデオ チュート リ アルでは、 SDK、 SDSoC、 および PetaLinux などのザイ リ ンクス ツールの 機 能 の 使<br />

用 方 法 が 具 体 的 に 説 明 さ れています。 こ れら のチュー ト リ アルを 使 用 する と 、 短 時 間 で 簡 単 にツールを 学 ぶ こ と がで<br />

き ます。 こ れ ら は、 http://japan.xilinx.com のビデオ チュー ト リ アルのページ またはザイ リ ンクス YouTube チャネルか<br />

ら 表 示 したり、 ローカルにダウンロード したりできます。<br />

ヒント : 接 続 速 度 に よ り 表 示 に 問 題 があ る 場 合 は、 ビデオ ク リップをローカルにダウンロードしてご 覧 ください。ビ<br />

デオ チュート リ アルは Documentation Navigator からも 利 用 できます 。<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 9<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 2 章<br />

システム レベルの 考 慮 事 項<br />

この 章 では、Zynq ® -7000 AP SoC を 使 用 し て 設 計 する 際 に 考 慮 する 必 要 のあ る 次 のシ ス テム レベルのデザ イ ン 問 題 に<br />

ついて 説 明 し ます。<br />

• 11 ページの 「パフ ォーマン ス」 : 通 常 、 ターゲ ッ ト アプ リ ケーシ ョ ンに よ り 全 体 的 なシ ス テム パフォーマンスが<br />

決 ま り ます。 システム パフ ォーマン スの 目 標 は、 ハー ド ウ ェ ア と ソ フ ト ウ ェ アに 分 配 さ れ、 さ ら にサブ コ ンポー<br />

ネン ト に 分 配 さ れます。<br />

• 14 ページの 「 消 費 電 力 」 : システム パフ ォーマン スは、 消 費 電 力 を 増 加 させる 主 な 原 因 と な り ます。 消 費 電 力 と<br />

システム パフ ォーマン スの ト レー ド オフは、 設 計 者 に と って 困 難 な 課 題 と な り ます。 こ のセ ク シ ョ ンでは、<br />

Zynq-7000 AP SoC の 消 費 電 力 を 最 適 化 する 際 の 考 慮 事 項 を 説 明 し ます。<br />

• 29 ページの 「 ク ロ ッ キ ングおよび リ セ ッ ト 」 : クロック リ ソース を 最 適 に 使 用 する よ う プ ラ ンニン グする ため、<br />

使 用 可 能 な ク ロ ッ ク リソースを 理 解 しておくことが 重 要 です。 同 様 にリセット システムにもさまざまなソース<br />

があるので、それぞれが 異 なる リ セッ ト デス テ ィ ネーシ ョ ンにどの よ う に 影 響 する かを 理 解 し てお く こ と も 重 要<br />

です。<br />

• 32 ページの 「 割 り 込 み」 : システム レベルの 割 り 込 み 環 境 では、 アプ リ ケーシ ョ ンのハー ド ウ ェ ア と ソ フ ト ウ ェ<br />

ア リ ソ ースの 優 先 度 を 決 定 する 包 括 的 な 機 能 が 提 供 さ れます。<br />

• 36 ページの 「エンベデ ッ ド デバイ スのセキ ュ リ テ ィ 」 : 必 要 なセキ ュ リ テ ィ レベルは、 アプ リ ケーシ ョ ンによっ<br />

て 大 き く 異 な り ます。Zynq-7000 AP SoC の さ ま ざ ま なセキ ュ リ テ ィ 機 能 を 理 解 し てお く と 、 アプ リ ケーシ ョ ンに<br />

適 切 な レベルのセキ ュ リ テ ィ を 適 用 で き ます。<br />

• 40 ページの 「プ ロ フ ァ イ リ ン グおよび 分 割 」 : システム レベルで 重 要 な 決 定 事 項 は、 アプ リ ケーシ ョ ンの 機 能 を<br />

どの よ う にハー ド ウ ェ ア と ソ フ ト ウ ェ アに 分 割 する か と い う こ と です。 プ ロ フ ァ イ リ ン グ ツールは、 これらの 決<br />

定 に 役 立 ち ます。<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 10<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 2 章 : システム レベルの 考 慮 事 項<br />

パフォーマンス<br />

Zynq-7000 AP SoC デバイ スでは、 シス テム パフ ォーマン スは 最 終 的 なアプ リ ケーシ ョ ンの 目 標 に よ って 異 な り ます。<br />

たとえば、 リアルタイム アプ リ ケーシ ョ ンのシステム パフォーマンスは 割 り 込 みサービス ルーチンのレ イ テンシに<br />

よって 決 まり、ビデオ アプ リ ケーシ ョ ンのシステム パフォーマンスはオフチップ インターフェイスで 毎 秒 60 フレー<br />

ム を 保 持 する こ と に よ って 決 ま り ます。 こ のセ ク シ ョ ンでは、 異 な る 設 計 チーム メ ンバー 間 でのパフ ォーマン ス 目 標<br />

の 分 配 について 説 明 し、 その 後 データ の 移 動 および 計 算 の 設 計 選 択 において こ れ ら のパフ ォーマン ス 目 標 を 適 用 する<br />

ための 考 慮 事 項 を 示 し ます。 ま た、 ソ フ ト ウ ェ アおよびプ ロ グ ラ マブル ロジック (PL) にカスタム パフォーマンス 監<br />

視 機 能 を 構 築 で き る よ う に、 Zynq-7000 AP SoC デバイ スの 監 視 オプシ ョ ンについて も 説 明 し ます。<br />

システム パフォーマンスのデザイン 目 標<br />

システム パフォーマンスの 目 標 は、 Zynq-7000 AP SoC デバイ ス 設 計 チームの 異 な る エンジニア リ ン グ 部 門 に 分 配 さ<br />

れます。 こ のガ イ ド では、 ハー ド ウ ェ ア、 ソ フ ト ウ ェ ア、 シ ス テムの 3 つの 部 門 について 説 明 し ます。<br />

ハー ド ウ ェ ア 設 計 者<br />

Zynq デバイ スのハー ド ウ ェ ア 設 計 者 は、 PL コンポーネント、AXI で 接 続 された IP、 高 速 オフチップ インターフェイ<br />

ス、 およびカスタム ロジックを 組 み 合 わせてデザインをインプリ メント します。 PL の 選 択 は、 スループ ッ ト やレ イ<br />

テンシなどのパフォーマンス 要 件 によ り 決 定 されますが、 システム ソフトウェアとハードウェアの 通 信 におけるパ<br />

フ ォーマン スの 制 限 も 考 慮 さ れる 場 合 があ り ます。 データ の 移 動 および 同 期 は PL のスループッ トおよびレイテンシ<br />

に 大 き く 影 響 するので、 ハード ウ ェア 設 計 者 はプロセ ッ シング システム (PS) と の 通 信 を 考 慮 する 必 要 があ り ます。<br />

PL データ の 移 動 および 監 視 ポ イ ン ト を 設 計 におけ る 決 定 に 使 用 で き ます。 こ れについては、 こ のセ ク シ ョ ンの 後 の<br />

方 で 説 明 し ます。 最 大 周 波 数 や リ ソ ース 使 用 率 な どの 従 来 か ら の PL メトリックについては、 説 明 しません。 詳 細 は、<br />

『UltraFast 設 計 手 法 (Vivado Design Suite 用 )』 (UG949) [ 参 照 16] を 参 照 して ください。<br />

ソ フ ト ウ ェ ア 設 計 者<br />

ソ フ ト ウ ェ ア 設 計 者 は、 PS 内 で 実 行 される システム ソフトウェアと、 そのメモリ、 I/O、 および PL と の 通 信 に 焦 点<br />

を 置 いて 設 計 し ます。 た と えば、 PL と 通 信 するユーザー ソフトウェアに 複 数 の 通 信 オプションがあり、 それぞれ 利<br />

点 と 欠 点 があ る と し ます。 Zynq デバ イ ス 特 有 の ソ フ ト ウ ェ ア パフ ォーマン ス 監 視 機 能 を 使 用 し て、 パフ ォーマン ス<br />

を 調 整 する こ と がで き ます。 こ れについては、 こ のセ ク シ ョ ンの 後 の 方 で 説 明 し ます。 ま た、 既 存 の ARM パフォー<br />

マンス プロファイ リ ング ツールおよび 監 視 ツールを 使 用 して、 デュアル コア Cortex-A9 プ ロ セ ッ サのパフ ォ ーマン<br />

ス を 最 適 化 で き ます。 パフ ォーマン ス 監 視 機 能 の 詳 細 は、 ARM DS-5 Development Studio Streamline Performance<br />

Analyzer の 資 料 [ 参 照 72] を 参 照 して く ださい。<br />

システム 設 計 者<br />

Zynq デバイスを 使 用 してインプ リ メ ンテーシ ョ ンされたデザインのパフォーマンス 目 標 は、 ハード ウェアと ソフ ト<br />

ウ ェ アに 分 配 で き ます。 こ の 分 配 は、デザ イ ンのすべての 段 階 を 通 し て 考 慮 する 必 要 があ り ます。 初 期 段 階 では、ハー<br />

ド ウ ェ ア 設 計 者 と ソ フ ト ウ ェ ア 設 計 者 は 比 較 的 個 別 に 作 業 で き ますが、 早 期 にパフ ォーマン ス を 予 測 し て 現 実 的 なパ<br />

フ ォーマン ス 目 標 を 設 定 し、 分 配 する こ と が 必 要 にな り ます。 シ ス テム 設 計 者 は、 ハー ド ウ ェ ア と ソ フ ト ウ ェ アのパ<br />

フ ォーマン スのボ ト ルネ ッ ク をすべて 考 慮 し、 ト レー ド オフ を 決 定 する 必 要 があ り ます。 シ ス テム 設 計 者 は、 早 期 に<br />

データおよび 通 信 パスのパフ ォーマン ス を 予 測 し、それを 後 でシ ス テム パフォーマンス 監 視 ポイン トおよびツールを<br />

使 用 し て 調 整 し ます。<br />

設 計 チームのすべての メ ンバーは、 データ の 移 動 およびデータ の 計 算 のパフ ォーマン スに 対 する 影 響 を 考 慮 し ます。<br />

システム イベン ト を 監 視 する 機 能 は、 Zynq デバイ スのパフ ォーマン ス を 設 計 および 最 適 化 する 際 に 有 益 です。 次 の<br />

セ ク シ ョ ンでは、 こ れら の 考 慮 事 項 と 、 Zynq デバイ スの 設 計 フ ローを 進 めてい く のに 役 立 つ 推 奨 設 計 手 法 を 示 し ま<br />

す。<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 11<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 2 章 : システム レベルの 考 慮 事 項<br />

システム デー タの 移 動<br />

システム 内 でのデータの 移 動 は、 システム レベル パフ ォーマン スの 一 般 的 な 問 題 です。 Zynq デバイ スには AXI マス<br />

ターが 複 数 あ り 、 直 接 ま たは DMA から ト ランザクショ ンを 駆 動 できます。 このセクションでは、Zynq デバイ スでの<br />

データ 移 動 の 問 題 に 対 処 する ための さ ま ざ ま なオプシ ョ ン と ト レー ド オフについて 説 明 し ます。<br />

ARM CPU では、 memcpy などの 直 接 メ モ リ 転 送 を 使 用 してデータを 移 動 できます。 このよ う な 転 送 は 4KB 以 下 の 小<br />

さ い 転 送 に 有 益 であ り 、 大 き い 転 送 では DMA を 使 用 する と 有 益 です。 データ の ソースおよびデス テ ィ ネーシ ョ ン<br />

バ ッ フ ァーの 場 所 も 考 慮 する 必 要 があ り ます。 た と えば、 PS から PL への DMA データ 転 送 は、 通 常 32 ビッ ト マス<br />

ター GP ポー ト を 介 し ます。 PS DMA コント ローラーを 使 用 するための 手 法 は、 『Zynq-7000 All Programmable SoC テ<br />

クニカル リファレンス マニュアル』 (UG585) [ 参 照 4] に 含 まれています。 PS DMA コント ローラーは、 独 自 のマイク<br />

ロコードを 実 行 します。 別 の 方 法 として、PL の DMA を 使 用 して、 64 ビッ トの ACP または HP ポー ト を 介 し てデー<br />

タ を 移 動 する 方 法 も あ り ますが、 こ ち ら の 方 がパフ ォーマン スが 高 く 、 PL リソースを 使 用 します。<br />

システム データ の 移 動 パフ ォーマン ス を 判 断 する 際 は、PS 内 のほかの AXI マス ター も 考 慮 する 必 要 があ り ます。IOP<br />

DMA は、 GigE コント ローラー、 SDIO コント ローラー、 USB コ ン ト ロ ー ラ ー、 お よ びデバ イ ス コ ン フ ィ ギ ュ レ ー<br />

ション インターフェイス (DevC) の IP ブロックに 存 在 しています。IP ブロックの 機 能 は、『Zynq-7000 All Programmable<br />

SoC テクニカル リファレンス マニュアル』 (UG585) [ 参 照 4] に 説 明 されてお り 、 Linux などのオペレーティング シス<br />

テムおよびスタンドアロン デザイ ンで 使 用 する ための ド ラ イバーが 提 供 されています。 GigE コント ローラーのパ<br />

フ ォーマン ス 特 性 については、 『Zynq-7000 AP SoC 内 で PL イーサネ ッ ト を 使 用 する 場 合 の PS および PL イーサネ ッ<br />

ト パフォーマンス とジャンボ フレームのサポート』 (XAPP1082) [ 参 照 38] を 参 照 し て く だ さ い。 残 り の コ アには 追 加<br />

機 能 を 提 供 する ド ラ イバー 層 があ り ますが、 そのパフ ォーマン ス 特 性 は こ こ では 説 明 さ れていません。<br />

PL からは、AXI マスターによ り ACP、HP、またはスレーブ GP ポー ト のデータ の 移 動 を 駆 動 で き ます。 こ れ ら のポー<br />

ト および 関 連 のパフ ォーマン スは、 次 のセ ク シ ョ ンで 説 明 し ます。<br />

• 93 ページの 「ACP およびキャ ッシュ コヒーレンシ」<br />

• 96 ページの 「PL の HP ポー ト アクセス」<br />

• 106 ページの 「APU からの GP およびダイレク ト PL アクセス」<br />

こ れ ら のポー ト に 接 続 さ れてい る DMA は、AXI4 メモリ マップ インターフェイスと AXI4-Streaming イ ン タ ーフ ェ イ<br />

スの 間 の 変 換 に 使 用 する のが 最 適 で、 メ モ リ マップ アクセスとデータ 中 心 プロセッシング (ビデオ パ イ プ ラ イ ン な<br />

ど) をきれいに 分 離 します。 ただし、 DMA が 常 に 好 ま しい 方 法 ではあ り ません。 ス ト リ ー ミ ング インターフェイス<br />

のパフ ォーマン スが 低 く 、 問 題 と な ら ない 場 合 は、AXI4-Stream FIFO コ ア を 使 用 する のがプ ロ セ ッ サか ら AXI-Stream<br />

イ ン ターフ ェ イ ス を ソースおよび 同 期 する のに 簡 単 な 方 法 です。 ユーザー アプ リ ケーシ ョ ンには、 標 準 の AXI メモ<br />

リ マップ ト ラ ンザ ク シ ョ ン を 使 用 し てデータ を 直 接 移 動 する カ ス タ ム AXI マスターを 含 めるこ とができます。 この<br />

ようなカスタム データ 転 送 のスループ ッ ト およびレ イ テンシのパフ ォーマンス 特 性 は、 標 準 PL DMA デー タ 転 送 に<br />

非 常 に 近 い も のにな る 可 能 性 があ り ます。 13 ページの 「シ ス テム 監 視 」 に 説 明 されている カ ウ ン ターおよびタ イマー<br />

を 使 用 し て、 パフ ォーマン ス を 比 較 で き ます。<br />

DMA は、 ソースからデステ ィ ネーシ ョ ン ロケーシ ョ ンにデータを 転 送 します。 データ ソース、 処 理 、 ま たはデータ<br />

シン ク のレー ト の 違 いを 調 整 し て 合 わせる ため、 メ モ リ がデータ バ ッ フ ァ ー と し て よ く 使 用 さ れ、 処 理 段 階 で 最 大 の<br />

スループッ トを 達 成 できるようにします。<br />

オフチ ッ プのデータ バ ッ フ ァーの 場 所 は、 カ ス タ マ イ ズ 可 能 な MIO または EMIO ピ ン に 接 続 さ れてい る オ フ チ ッ プ<br />

のメモリを 使 用 してインプリ メントできます。 メモリの 特 性 は、SD カードのフ ァ イル システムや GigE コ ン ト ロ ー<br />

ラーを 介 してネッ ト ワークで 接 続 されたス ト レージなど、 大 きなバッファーを 移 動 する 際 のパフォーマンスに 影 響 し<br />

ます。<br />

オンチップのバッファ リ ングには、 OCM、 L2 キャッシュ、 DDR コント ローラーが PS 内 の 共 有 可 能 なバ ッ フ ァ ー 空<br />

間 の 主 な ソースです。 L2 キャッシュおよび DDR コント ローラーは、 プロセッサと ACP ポー ト 間 でデータ を 共 有 す<br />

るのに 非 常 に 適 したバッファー アクセス レイテンシを 持 ちます。ACP のみが PL から L2 キ ャ ッ シ ュ にア ク セ ス 可 能<br />

です。 DDR への 高 バン ド 幅 のア ク セスには、 ACP よ りも HP ポー ト が 適 しています。 OCM は、 PL 内 のすべてのマ ス<br />

ターでアクセス 可 能 な 256KB のスク ラ ッチパッ ド と してソフ ト ウェア アプ リ ケーシ ョ ンで 使 用 できます。OCM を 使<br />

用 する 利 点 は、ラ ンダム アクセス レイテンシが 優 れている とい う こ とです。L2 キャッシュおよび DDR メモリはロー<br />

カルのメモ リ アクセスで 有 益 です。<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 12<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 2 章 : システム レベルの 考 慮 事 項<br />

システム 計 算<br />

計 算 は ARM コアまたは PL 内 で 実 行 で き ます。 一 般 的 な Zynq デバイ スには、 ARM コアで 実 行 されるソフ ト ウェア<br />

に 記 述 された 制 御 プレーンがあ り ます。 データ 中 心 の 計 算 は、 既 存 の IP とカスタム IP を 組 み 合 わせて 使 用 し て PL<br />

で 実 行 さ れます。 ラ イ ン レート パケ ッ ト の 処 理 など 高 パフ ォーマン スが 必 要 な 場 合 は、 計 算 と 制 御 をデータ の 近 く<br />

に 移 動 で き ます。 こ れには 通 常 、 データ フ ローを 制 御 する のにカ ス タ ム PL IP が 必 要 です。<br />

計 算 を ソ フ ト ウ ェ アか ら PL に 移 動 でき る こ と は、 Zynq-7000 AP SoC プラ ッ ト フォームの 重 要 な 利 点 です。 すべての<br />

ソフトウェアが PL に 移 動 でき るわけではあ り ません。 コ ンパイル 前 のコード、 複 雑 な ラ イブラ リ ルーチン、OS サー<br />

ビ スなどは 移 動 でき ません。 ソ フ ト ウ ェ ア コンポーネントを PL に 移 動 でき る 場 合 は、 フル アプ リ ケーシ ョ ン ラン<br />

タイムなどのパフォーマンス メトリックでデータ 移 動 のコストとアクセラレーションのトレードオフを 考 慮 する 必<br />

要 があ り ます。 こ のコ ス ト と 利 点 の 解 析 はソ フ ト ウ ェア プロファイ リング ツールを 使 用 し て 実 行 で き、 アムダール<br />

の 法 則 に 基 づいて 可 能 な 高 速 化 を 判 断 で き ます。<br />

この 式 で、 S はシ ス テム 全 体 のパフ ォーマン スの 向 上 、 α はハード ウ ェ ア アクセラレーションによりスピードアップ<br />

可 能 なアルゴ リ ズムの 割 合 を 示 し ます。 1-α は 向 上 する こ と ので き ないアルゴ リ ズムの 割 合 です。 p はア ク セ ラ レー<br />

シ ョ ンに よ る ス ピー ド ア ッ プです。 た と えば、 すべてが ソ フ ト ウ ェ アに イ ンプ リ メ ン ト さ れていた 計 算 アルゴ リ ズム<br />

を 高 速 化 する ため、 TCF プロファイラーなどのプロファイ リング ツールを 使 用 し て 頻 繁 に 使 用 さ れる 関 数 を 特 定 で<br />

き ます。 その 関 数 が 使 用 さ れる 時 間 の 割 合 が 大 き い と 、 α の 値 が 大 き く な り ます。 この 関 数 をハード ウ ェアにイ ンプ<br />

リ メ ン ト し て ス ピー ド ア ッ プで き ます。 関 数 のス ピー ド ア ッ プが p にマップされます。 頻 繁 に 使 用 さ れる 関 数 を 大 型<br />

乗 算 器 で 分 割 する と 、ハー ド ウ ェ ア ア ク セ ラ レーシ ョ ンに よ り 、 アルゴ リ ズムの 計 算 におけ るパフ ォーマン スの 向 上<br />

が 最 大 にな り ます。<br />

特 定 の 関 数 のス ピー ド ア ッ プには、 2 つの 要 素 があ り ます。 1 つはア ク セ ラ レーシ ョ ン ブ ロ ッ ク と のデータ の 転 送 、<br />

もう 1 つはア ク セ ラ レータ に よ り 実 行 さ れる 実 際 の 計 算 です。 データ 転 送 に DMA を 使 用 する 場 合 は、 p を 算 出 す る<br />

際 に DMA の 設 定 および 制 御 のオーバーヘ ッ ド を 考 慮 する 必 要 があ り ます。 オーバーヘ ッ ド が 大 き い 場 合 は、 p の 値<br />

が 小 さ く な り 、 パフ ォーマン スの 向 上 率 が 低 く な り ます。 詳 細 は、 40 ページの 「プ ロ フ ァ イ リ ングおよび 分 割 」 を 参<br />

照 してください。<br />

高 位 合 成 は、ソ フ ト ウ ェ ア コンポーネントを PL に 移 動 し てア ク セラ レーシ ョ ン オプシ ョ ン を 調 べる のに 適 し た 方 法<br />

です。 候 補 と なってい る ソ フ ト ウ ェ アが 高 位 合 成 に 適 し ていない 場 合 は、ザイ リ ン ク スが 提 供 する プ ロ グ ラ マブル ロ<br />

ジック IP と 対 応 する ド ラ イバーの ラ イ ブ ラ リ を 使 用 し て、 シ ス テム パフ ォーマン ス 全 体 を 向 上 する ため ソ フ ト ウ ェ<br />

アに イ ンプ リ メ ン ト さ れた 関 数 と 置 き 換 え る こ と がで き ます。<br />

システム 監 視<br />

ARM プ ロ セ ッ サの 監 視 用 には、 さ ま ざ ま なツールがあ り ます。 Zynq デバイ スでは、 シス テム レベル パフォーマン<br />

スの 監 視 で PS および PL にあ る ブ ロ ッ ク も 使 用 さ れます。 こ れら のブ ロ ッ ク は、 次 の と お り です。<br />

• SCU グローバル タイマー (PS) : SCU グローバル タイマーは、1 つのク ロ ッ ク ドメインでのシステム イベン トに<br />

タ イ ム ス タ ンプを 付 け る のに 使 用 で き ます。 ま た、 オペレーテ ィ ン グ システムには 通 常 、 Linux clock_nanosleep<br />

のよ うに、 ソフ ト ウェア イベン ト ト レーシング 用 の 高 精 度 タ イ マーが 含 まれています。<br />

• ARM パフォーマンス モニター ユニッ ト (PS) : 各 ARM コアには、 マイクロ アーキテクチャ イベン ト をカウン<br />

トするのに 使 用 されるパフォーマンス 監 視 ユニッ ト (PMU) が 含 まれています。 こ れ ら のカ ウ ン ターには、 オペ<br />

レーテ ィ ング システムのユーティ リティを 介 してソフ ト ウェアから 直 接 アクセスするか、 Linux Perf や ARM<br />

Streamline などのチップ デバ ッ ガーでア ク セスで き ます。 こ れら のカ ウ ン ターは、 SDK 2014.2 の [Performance]<br />

ビューで 表 示 できます。 詳 細 は、ARM 社 の 『Cortex-A9 Technical Reference Manual』 [ 参 照 75] の 「Performance<br />

Monitoring Unit」 を 参 照 し て く だ さ い。<br />

• L2 キャッシュ イベン ト カウンター (PS) : L2 キャッシュには、 キャッシュ パフ ォ ーマ ン ス を 計 測 す る ためにア<br />

クセス 可 能 なイベント カウンターがあります。 これらのカウンターは、 SDK の [Performance Counters] ビ ュ ーで<br />

表 示 で き ま す。 詳 細 は、『Zynq-7000 All Programmable SoC テクニカル リファレンス マニ ュアル』 (UG585) [ 参 照 4]<br />

を 参 照 して く ださい。<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 13<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 2 章 : システム レベルの 考 慮 事 項<br />

• GigE コント ローラー (PS) : ギガビッ ト イーサネッ ト コ ン ト ローラーには、 イ ン ターフ ェ イ スで 送 受 信 さ れたバ<br />

イ ト 数 を 監 視 する ための 統 計 カ ウ ン ターがあ り ます。 詳 細 は、 『Zynq-7000 All Programmable SoC テクニカル リ<br />

ファレンス マニ ュアル』 (UG585) [ 参 照 4] を 参 照 して く ださい。<br />

• ARM パフォーマンス モニター (PL) : このコアは PL に 追 加 し、 スループ ッ ト やレ イ テンシなどの AXI パフ ォー<br />

マンス メ ト リ ッ ク を 監 視 する ために 使 用 で き ます。 ト レース 機 能 は、 ト ラ ンザ ク シ ョ ン ご と のレ イ テンシを 監 視<br />

するためのタイムスタンプ 付 きの AXI トランザクションの 開 始 と 終 了 など、タイムスタンプ 付 き AXI ト レース<br />

をイネーブルにします。 詳 細 は、 AXI パフォーマンス モニターのウ ェブ ページ [ 参 照 43] を 参 照 して く ださい。<br />

• ARM タイマー (PL) : このコアは PL に 追 加 し、 PL 内 のフ リ ーラ ンニング タイマーとして 使 用 できます。PL ク<br />

ロック ド メイン 内 のイベントにタイムスタンプを 付 けるのに 便 利 です。 詳 細 は、 AXI タイマー/カウンターの<br />

ウェブ ページ [ 参 照 44] を 参 照 して く ださい。<br />

• ARM トラフィック ジェネレーター (PL) : こ の コ アを 使 用 する と 、PS イ ン タ ーフ ェ イ ス に 対 し て さ ま ざ ま な ト ラ<br />

フィック パターンを 生 成 できます。 AXI パフォーマンス モニターと 共 に 使 用 して、 システム レベルのパフォー<br />

マン ス を 早 期 に 予 測 で き ます。 こ の コ ア を 使 用 し て、 データ 移 動 コ ス ト を 予 測 し、 デザ イ ンの 分 割 方 法 を 検 証 で<br />

き ます。 詳 細 は、 LogiCORE AXI Traffic Generator のウェブ ページ [ 参 照 45] を 参 照 して く ださい。<br />

これらのモニター ブ ロ ッ ク を 使 用 する と 、 シ ス テム 全 体 のパフ ォーマン ス を 可 視 化 する こ と がで き ます。 イベン ト<br />

カウンターおよび PL 監 視 ブ ロ ッ ク は、 特 定 のデザ イ ン パフ ォーマン ス 目 標 に 合 わせてカ ス タマイ ズ し た り 、 システ<br />

ム パフ ォーマン スの 全 体 像 を 取 得 する のに 使 用 で き ます。ビル ト イ ンのパフ ォーマン ス 監 視 機 能 を 早 期 に 使 用 する こ<br />

とにより、デザイン サイクルを 通 してパフォーマンス フィードバックを 取 得 でき、データ ドリブンのシステム アー<br />

キテ ク チャの 決 定 を 下 す こ と がで き ます。<br />

さ ま ざ ま なブ ロ ッ ク か ら の 監 視 データ を 利 用 および 取 得 する 方 法 は 複 数 あ り ます。 ほ と んどのペ リ フ ェ ラ ルには、 対<br />

応 するベア メ タル ドライバーと 共 にパッケージされたサンプル アプ リ ケーシ ョ ンがザイ リ ンク ス SDK で 提 供 され<br />

ています。 使 用 可 能 な Linux ドライバーのリストは、ザイリンクス Linux ドライバー Wiki ページ [ 参 照 50] を 参 照 し<br />

てください。<br />

ザイ リ ンクス SDK には、 ビル ト イ ンのシステム パフォーマンス モデ リ ン グおよび 解 析 機 能 が 含 まれています。 パ<br />

フォーマンス モニターは、 システムから ラ イブ データまたは 実 際 のト ランザクションをモデリングするト ラフィッ<br />

ク ジェネレーターで 作 成 されたデータを 収 集 します。 このデータは、 ザイ リ ンクス SDK の 表 示 ツールを 使 用 し て、<br />

HP および ACP ポー ト に 接 続 さ れてい る APM (プロファイル モード) か ら の ト ラ ンザ ク シ ョ ン 数 、 バン ド 幅 、 お よ び<br />

レ イ テンシの 統 計 と 共 に 表 示 で き ます。 詳 細 は、 42 ページの 「ザ イ リ ン ク ス SDK システム デバッガー」 を 参 照 して<br />

ください。<br />

消 費 電 力<br />

Zynq-7000 AP SoC の 消 費 電 力 は、 シ ス テム 設 計 およびボー ド 設 計 において 重 要 な 考 慮 事 項 です。 消 費 電 力 はほ と んど<br />

のアプ リ ケーシ ョ ンで 重 大 な 課 題 であ り 、 アプ リ ケーシ ョ ンに よ ってはカー ド ご と ま たはシ ス テム ご と の 最 大 消 費 電<br />

力 が 指 定 さ れます。 そのため、 設 計 プ ロ セ スの 早 期 に 消 費 電 力 を 考 慮 する 必 要 があ り ます ( 多 く の 場 合 デバイ ス 選 択<br />

時 から 開 始 )。<br />

SoC の 消 費 電 力 を 削 減 する と 、 電 源 レールの 電 力 を 下 げ、 電 源 デザ イ ンおよび 温 度 管 理 を 簡 略 化 し、 電 源 分 配 プレー<br />

ンの 要 件 を 緩 和 する こ と に よ り ボー ド 設 計 を 向 上 で き ます。 消 費 電 力 が 少 ない と 、 バ ッ テ リ の 寿 命 も 長 く な り 、 シ ス<br />

テムの 動 作 温 度 が 低 い 方 が 長 持 ちする ので 信 頼 性 も 向 上 し ます。<br />

シ ス テムの 消 費 電 力 を 削 減 する には、 最 適 な 結 果 を 得 る ために 包 括 的 で 集 中 的 なアプ ローチが 必 要 です。 こ のセ ク<br />

ションでは、PS および PL のアーキテ ク チャおよび 機 能 、 PL に 関 連 する 電 力 コ ンポーネン ト 、 プ ロ セ ス テクノロジ<br />

など、Zynq-7000 AP SoC の 消 費 電 力 に 関 する さ ま ざ ま な 側 面 について 説 明 し ます。 ま た、 電 力 損 失 、 消 費 電 力 を 予 測<br />

および 計 測 する 従 来 か ら の 方 法 を 示 し ます。<br />

消 費 電 力 の 課 題<br />

ムーアの 法 則 に よれば、 プ ロ セス テク ノ ロジの 各 世 代 ご とに ト ランジス タのサイズが 小 さ く な り ます。サイズが 小 さ<br />

く な る と 、 各 ト ラ ンジ ス タ の リ ー ク 電 流 が 増 加 し、 ス タ テ ィ ッ ク 消 費 電 力 (デバイ スが 動 作 し ていない と きに 消 費 さ<br />

れる 電 力 ) が 増 加 し ます。 SoC のパフ ォーマン ス を 向 上 する には、 高 周 波 数 ク ロ ッ ク が 必 要 で、 ダ イナ ミ ッ ク 消 費 電<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 14<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 2 章 : システム レベルの 考 慮 事 項<br />

力 が 増 加 し ます。 ス タ テ ィ ッ ク 消 費 電 力 は ト ラ ンジ ス タ の リ ー ク 電 流 に、 ダ イナ ミ ッ ク 消 費 電 力 は ト ラ ンジ ス タ のス<br />

イ ッ チング 周 波 数 に よ って 決 ま り ます。 さ ら に 不 利 な こ と に、 ト ラ ンジ ス タ のサ イ ズを 小 さ く する こ と に よ り 、FPGA<br />

上 に 搭 載 で き る ト ラ ンジ ス タ の 数 が 増 加 し ます。 ト ラ ンジ ス タ 数 が 多 く なれば リ ー ク 電 流 も 増 加 し、 各 FPGA デバイ<br />

ス 上 でより 多 くのト ランジスタがより 高 いクロック 周 波 数 で 切 り 替 わることになります。<br />

こ れ ら の 問 題 のため、 電 源 および 温 度 管 理 の 問 題 にデザ イ ン サイクルの 早 期 から 対 処 しておく 必 要 があり ます。デバ<br />

イ スに ヒ ー ト シン ク を 使 用 する だけでは、 こ れ ら の 問 題 を 適 切 に 解 決 で き ない 可 能 性 があ り ます。デザ イ ン ロジック<br />

の 影 響 を 削 減 する 方 法 を 模 索 する 必 要 があ り ます。<br />

図 2-1 に、 デザイ ン サ イ ク ルの さ ま ざ ま な 地 点 で 消 費 電 力 を 削 減 する ために 実 行 可 能 な 操 作 を 示 し ます。 消 費 電 力 の<br />

問 題 に 設 計 プ ロ セスの 早 期 に 対 処 する と 、 大 き な 効 果 が 得 ら れます。<br />

X-Ref Target - Figure 2-1<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

消 費 電 力 および 信 号 伝 送<br />

図 2‐1 : デザイ ン サイ クルのさ まざまな 段 階 で 消 費 電 力 の 問 題 に 対 処<br />

Zynq-7000 AP SoC デバイ スは、 図 2-2 に 示 すよ う に、 い く つかの 電 源 ド メ イ ンに 分 割 されます。<br />

X-Ref Target - Figure 2-2<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

図 2‐2 : Zynq‐7000 AP SoC の 電 源 ド メ イ ン<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 15<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 2 章 : システム レベルの 考 慮 事 項<br />

PS と PL の 電 源 は 独 立 し ていますが、PL に 電 源 を 供 給 し ている と きには PS に も 電 源 が 供 給 さ れてい る 必 要 があ り ま<br />

す。 PL を 必 要 と しないアプ リ ケーシ ョ ンでは、 PL の 電 源 をオフにでき ます。 表 2-1 に PS および PL の 電 源 ピ ン を 示<br />

し ます。 電 圧 シーケ ン ス と 電 気 的 仕 様 は、 『Zynq-7000 All Programmable SoC (Z-7010、 Z-7015、 Z-7020) : DC 特 性 お よ<br />

び AC ス イ ッ チ 特 性 』 (DS187) [ 参 照 28] を 参 照 して く ださい。<br />

表 2‐1 : 電 源 ピ ン<br />

タイプ ピン 名 公 称 電 圧 説 明<br />

PS 電 源 V CCPINT 1.0V 内 部 ロ ジ ッ ク<br />

V CCPAUX 1.8V I/O バッファー プリドライバー<br />

V CCO_DDR 1.2V ~ 1.8V DDR メモリ インターフェイス<br />

V CCO_MIO0 1.8V ~ 3.3V MIO バンク 0、 ピン 0:15<br />

V CCO_MIO1 1.8V ~ 3.3V MIO バンク 1、 ピン 16:53<br />

V CCPLL 1.8V 3 つの PLL クロック、 アナログ<br />

PL 電 源 V CCINT 1.0V 内 部 コ ア ロジック<br />

V CCAUX 1.8V I/O バッファー プリドライバー<br />

V CCO_# 1.8V ~ 3.3V I/O バッファー ドライバー (バンクご と)<br />

V CC_BATT 1.5V PL 復 号 キーの メ モ リ バックアップ<br />

V CCBRAM 1.0V PL ブロック RAM<br />

V CCAUX_IO_G# 1.8V ~ 2.0V PL 補 助 I/O 回 路<br />

XADC VCCADC 1.8V アナ ロ グ 電 源 およびグ ラ ン ド<br />

グランド GND グランド デジタルおよびアナログ グランド<br />

PS 電 源 ド メ イ ン<br />

Zynq-7000 AP SoC の PS 電 源 ド メ イ ンについては、 『Zynq-7000 All Programmable SoC PCB デザイ ン ガイド』 (UG933) <br />

[ 参 照 14] の 第 5 章 「プロセッシング システム (PS) の 電 源 および 信 号 」 を 参 照 し て く だ さ い。<br />

PL 電 源 ド メ イ ン<br />

Zynq-7000 AP SoC の 異 な る PL リ ソ ースに 電 源 を 供 給 する には、 複 数 の 電 源 が 必 要 です。 異 な る リ ソースは 異 な る 電<br />

圧 レベル 動 作 する ので、 ノ イ ズや 寄 生 効 果 に 対 し て 高 い 耐 性 を 保 ちなが ら、 パフ ォーマン スおよび 信 号 強 度 を 向 上 で<br />

きます。<br />

17 ページの 表 2-2 に、 Zynq-7000 AP SoC で 使 用 可 能 な PL リソースで 使 用 さ れる 一 般 的 な 電 源 を 示 し ます。 詳 細 は<br />

Zynq-7000 AP SoC フ ァ ミ リ によ って 異 な る 場 合 があ るので、 こ の 表 はガイ ド ラ イ ン と し てのみ 示 し ています。<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 16<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 2 章 : システム レベルの 考 慮 事 項<br />

表 2‐2 : PL の 電 源<br />

電 源<br />

V CCINT<br />

および<br />

V CCBRAM<br />

V CCAUX<br />

および<br />

V CCAUX_IO<br />

V CCO<br />

MGT<br />

電 源 が 供 給 される リ ソース<br />

• すべての CLB リソース<br />

• すべての 配 線 リ ソ ース<br />

• すべての ク ロ ッ ク バッファーを 含 むクロック ツ リ ー 全 体<br />

• ブロック RAM/FIFO<br />

• DSP スライス<br />

• すべての 入 力 バ ッ フ ァー<br />

• IOB に 含 まれる ロ ジ ッ ク エレ メン ト (ILOGIC/OLOGIC)<br />

• ISERDES/OSERDES<br />

• トライステート イーサネッ ト MAC<br />

• クロック マネージャー (DCM、 PLL など) ( 大 部 分 は Vccaux で 供 給 さ れる ため 少 量 のみを<br />

供 給 )<br />

• MGT の PCIE および PCS 部 分<br />

• クロック マネージャー (MMCM、 PLL、 DCM など)<br />

• IODELAY/IDELAYCTRL<br />

• すべての 出 力 バ ッ フ ァー<br />

• 差 動 入 力 バ ッ フ ァー<br />

• V REF ベースのシングルエン ド I/O 規 格 (HSTL18_I など)<br />

• 位 相 器<br />

• すべての 出 力 バ ッ フ ァー<br />

• 一 部 の 入 力 バ ッ フ ァー<br />

• デジ タル 制 御 イ ン ピーダン ス (DCI) 回 路 (オンチップ 終 端 (OCT))<br />

• トランシーバーの PMA 回 路<br />

ボード レベルの 電 源 分 配 システム<br />

プ リ ン ト 回 路 基 板 では、 電 源 が 電 源 分 配 シ ス テム (PDS) によ り ソースから 電 源 を 必 要 とするさまざまなチップおよび<br />

デバイ スに 分 配 されます。 PDS デザ イ ンは 単 純 な も のか ら 複 雑 な も のまであ り ますが、 次 の 3 つの 主 な 要 件 を 満 たす<br />

必 要 があ り ます。<br />

• 適 切 に 調 整 さ れた 電 源 を 供 給 する 必 要 があ り ます。 電 源 調 整 は 安 定 化 電 源 回 路 で 実 行 さ れ、 1 つま たは 複 数 のバ<br />

ルク キャパシタと LC フ ィ ルター 回 路 でサポー ト さ れます。<br />

• すべての 電 流 負 荷 条 件 下 でボー ド のすべてのポ イ ン ト で 安 定 し てい る 必 要 があ り ます。すべての 負 荷 条 件 化 での<br />

安 定 には、 次 の 2 つの 要 件 があ り ます。<br />

° 分 配 シ ス テムの 抵 抗 と イ ンダ ク タ ン スは 低 い 必 要 があ り ます。 こ れには 通 常 、 分 配 用 に 電 源 プレーンおよび<br />

帰 路 プレーン と 、 さ ま ざ ま なデバイ ス 接 続 に 低 イ ンダ ク タ ン スのパ ッ ド およびビ アが 必 要 です。<br />

° 電 荷 は 必 要 な と き に 必 要 な 場 所 にあ る こ と が 必 要 です。 必 要 な 電 荷 は 通 常 、 ボー ド 全 体 に 配 置 さ れてい るバ<br />

イパス キ ャパシ タ と 、 それよ り は 少 ないが 分 配 さ れた 平 面 キ ャパシ タ ン スに 蓄 積 さ れます。<br />

• デバイ スのス イ ッ チをオンにし た と きにほかのデバイ ス を 干 渉 し た り 、EMI を 発 生 させる ノ イ ズを 生 成 し ない こ<br />

と が 必 要 です。<br />

Zynq デバイ スの 電 源 分 配 シス テムの 詳 細 は、 『Zynq-7000 All Programmable SoC PCB デザイ ン ガイド』 (UG933) [ 参<br />

照 14] の 第 3 章 「 電 源 分 配 シ ス テム」 を 参 照 し て く だ さ い。<br />

パワー マネージメ ン ト<br />

Zynq-7000 AP SoC を 使 用 する こ と に よ り 、シ ス テムのス タ テ ィ ッ ク 消 費 電 力 を 削 減 で き る こ と があ り ます。Zynq-7000<br />

AP SoC の PS は、 デュ アル コア ARM Cortex-A9 CPU と 統 合 さ れたペ リ フ ェ ラ ルか ら 構 成 さ れる 最 適 化 さ れたシ リ コ<br />

ン エレ メン トです。 PL は、 28nm の 高 性 能 、 低 消 費 電 力 (HPL) プロセスで 構 築 されたザイ リンクス 7 シリーズ アー<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 17<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 2 章 : システム レベルの 考 慮 事 項<br />

キテ ク チャに 基 づいてお り 、 消 費 電 力 を 大 幅 に 削 減 し なが ら 高 パフ ォーマン ス を 提 供 し ます。 HPL プロセスで 構 築 さ<br />

れたデバイ ス を 選 択 する と 、 複 雑 で コ ス ト の 高 いス タ テ ィ ッ ク 消 費 電 力 管 理 機 構 は 必 要 な く な り ます。<br />

シ ス テム 消 費 電 力 を 削 減 する には、 多 数 の 方 法 があ り ます。 次 のセ ク シ ョ ンでは、 シ ス テム 消 費 電 力 要 件 を 満 たすた<br />

めにデザ イ ン を 最 適 化 する 際 に 役 立 つ ヒ ン ト を 示 し ます。<br />

PS パワー マネージメ ン ト<br />

このセクショ ンでは、 Zynq-7000 AP SoC PS の 消 費 電 力 を 最 適 化 する 際 の 考 慮 事 項 を 説 明 し ます。 こ れには、 APU ユ<br />

ニッ ト、 PS ペリフェラル、 クロックおよび PLL、 キャッシュ、SCU、 OCM の 消 費 電 力 管 理 が 含 まれます。 こ こ での<br />

説 明 は、 シ ス テム 全 体 の 消 費 電 力 管 理 の ト レー ド オフの 影 響 を 理 解 し てい る こ と を 前 提 と し ています。<br />

システム 設 計 に 関 する 考 慮 事 項<br />

PS コ ンポーネン ト の 消 費 電 力 は、 次 の よ う に 管 理 で き ます。<br />

• アプ リ ケーシ ョ ン プロセッシング ユニッ ト (APU) : Zynq-7000 AP SoC の APU では、 動 的 な ク ロ ッ ク ゲーテ ィ ン<br />

グがサポート されています。 この 機 能 は、 CP15 電 源 制 御 レ ジ ス タ を 使 用 し て 有 効 にで き ます。 有 効 にする と 、<br />

CPU 内 部 ブ ロ ッ ク への ク ロ ッ ク がア イ ド ル 期 間 中 、 動 的 に 無 効 にな り ます。 ク ロ ッ ク ゲーテ ィ ングの 対 象 と な<br />

るのは、 次 のブロッ クです。<br />

° 整 数 コ ア<br />

° システム 制 御 ブロック<br />

° データ エンジン<br />

プロセッサ コ アの 電 圧 と 動 作 周 波 数 を 下 げる こ と に よ り 、 消 費 電 力 を 最 大 1/2 削 減 する こ と が 可 能 です。 詳 細 は、<br />

『Zynq-7000 All Programmable SoC テクニカル リファレンス マニ ュアル』 (UG585) [ 参 照 4] の 消 費 電 力 管 理 のセ ク<br />

シ ョ ン を 参 照 し て く だ さ い。<br />

• PS ペリフェラル : PS は、 数 個 の ク ロ ッ ク ド メ イ ン をサポー ト し てお り 、 各 ド メ イ ンに 個 別 の ク ロ ッ ク ゲーテ ィ<br />

ング 制 御 があ り ます。 シ ス テムが 動 作 モー ド の 場 合 は、 使 用 さ れていない ク ロ ッ ク ドメインをシャットダウンし<br />

てダ イナ ミ ッ ク 消 費 電 力 を 削 減 で き ます。 タ イ マー、 DMA、 SPI、 QSPI、 SDIO、 DDR コント ローラーなどの PS<br />

ペ リ フ ェ ラ ルの ク ロ ッ ク は、 個 別 にゲーテ ィ ン グ し て 消 費 電 力 を 削 減 で き ます。 シ ス テム クロックと、それらを<br />

分 周 器 、 ゲー ト 、 マルチプレ ク サーを 使 用 し て 制 御 する 方 法 の 詳 細 は、 『Zynq-7000 All Programmable SoC テクニ<br />

カル リファレンス マニ ュアル』 (UG585) [ 参 照 4] の 第 25 章 「 ク ロ ッ ク 」 を 参 照 し て く だ さ い。<br />

• キャッシュ : L2 キャッシュ コ ン ト ローラーでは、 次 のダ イナ ミ ッ ク 消 費 電 力 削 減 機 能 がサポー ト さ れます。 こ<br />

の 機 能 は、 l2cpl310.reg15_power_ctrl レ ジ ス タ の 該 当 する イ ネーブル ビ ッ ト で 制 御 し ます。<br />

° 動 的 ク ロ ッ ク ゲーテ ィ ング : 高 度 な 動 的 ク ロ ッ ク ゲーテ ィ ン グ 機 能 を 有 効 にする と 、 キ ャ ッ シ ュ コ ン ト<br />

ローラーがアイ ドル 状 態 のと きにそのク ロ ッ クが 停 止 します。 ク ロ ッ ク ゲーテ ィ ング 機 能 は、 コ ン ト ロー<br />

ラーがアイ ドル 状 態 になってから 数 サイクル 後 にク ロッ クを 停 止 します。<br />

° スタンバイ モード : L2 キャッシュ コント ローラーのスタンバイ モード は、 L2 キャッシュ コ ン ト ロ ー ラ ー<br />

を 駆 動 し てい る プ ロ セ ッ サの 割 り 込 み 待 機 (WFI) モード と 組 み 合 わせて 使 用 でき ます。 プロセ ッ サが WFI<br />

モード でス タ ンバイ モー ド が 有 効 になってい る 場 合 、 L2 キャッシュ コ ン ト ローラーの 内 部 ク ロ ッ ク が 停 止<br />

します。WFI 使 用 の 詳 細 は、『Zynq-7000 All Programmable SoC テクニカル リファレンス マニ ュアル』 (UG585)<br />

[ 参 照 4] の 第 3 章 「アプリケーション プロセッシング ユニッ ト (APU)」 を 参 照 し て く だ さ い。<br />

スタンバイ モード は、 動 的 ク ロ ッ ク ゲーテ ィ ング 機 能 の 一 部 です。 ス タ ンバイ モード では、 ク ロ ッ ク ゲーテ ィ<br />

ングは WFI ステー ト に 限 定 されるため、 通 常 の 動 作 条 件 における L2 キャッシュ ア ク セスの 予 測 性 が 向 上 し ま<br />

す。<br />

• オンチップ メモリ (OCM) : 通 常 、 Linux スタンドバイ モー ド な どの 低 消 費 電 力 モー ド での 全 体 的 な 消 費 電 力 を<br />

削 減 する ために OCM を 使 用 で き ます。 た と えば、 DDR が 低 消 費 電 力 モー ド の 場 合 に 実 行 コー ド を 格 納 する のに<br />

OCM を 使 用 できます。<br />

• スヌープ 制 御 ユニッ ト (SCU) : mpcore.SCU_CONTROL_REGISTER で 該 当 するビットをセットすると、SCU のス<br />

タンバイ モー ド を 有 効 にで き ます。 こ れを 有 効 にする と 、 次 の 条 件 が 満 た さ れた 場 合 に 内 部 SCU クロックが 停<br />

止 します。<br />

° CPU が WFI モード<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 18<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 2 章 : システム レベルの 考 慮 事 項<br />

° ACP に 保 留 中 の 要 求 がない<br />

° SCU にアクテ ィ ビテ ィが 残 っていない<br />

CPU が WFI モー ド を 終 了 する か、 ACP に 要 求 が 発 生 する と 、 SCU は 通 常 動 作 を 再 開 し ます。<br />

• PLL : PLL の 消 費 電 力 は PLL の 出 力 周 波 数 に 依 存 する ので、PLL の 出 力 周 波 数 を 低 く する と 消 費 電 力 を 削 減 で き<br />

ます。 また、 未 使 用 の PLL の 電 源 をオフに し て も、 消 費 電 力 を 削 減 で き ます。 た と えば、 すべての ク ロ ッ ク ジェ<br />

ネレーターを DDR PLL で 駆 動 で き る 場 合 、ARM コア PLL と I/O PLL を 無 効 に し て 消 費 電 力 を 削 減 で き ます。す<br />

べてのク ロ ッ ク ジ ェ ネレーターを 駆 動 で き る のは DDR PLL のみです。 各 ク ロ ッ ク は、 使 用 し ない 場 合 は 個 別 に<br />

無 効 にで き ます。 個 々のサブシ ス テムが、 こ れ と は 別 の 独 自 の ク ロ ッ ク 無 効 化 機 能 や 消 費 電 力 削 減 機 能 を 備 えて<br />

い る 場 合 も あ り ます。<br />

• 物 理 メ モ リ : Zynq-7000 AP SoCs では、 DDR2、 DDR3、 LPDDR2 な ど、 異 な る タ イ プの 物 理 メ モ リ がサポー ト さ<br />

れます。 サポー ト さ れる DDR メモリ タイプは、16 ビッ ト データおよび 32 ビッ ト デー タ の 両 方 で 動 作 で き ま<br />

す。 DDR の 消 費 電 力 は 総 消 費 電 力 の 大 き な 割 合 を 占 め る ため、 その 消 費 電 力 を 最 小 限 に 抑 え る こ と がシ ス テム<br />

消 費 電 力 を 削 減 する 重 要 な 手 段 と な り ます。 DDR の 消 費 電 力 を 削 減 する 際 には、 次 の 事 項 を 考 慮 し ます。<br />

° DDR コ ン ト ローラーの 動 作 速 度<br />

° DDR の 幅 および ECC を 有 効 にするか 無 効 にするか<br />

° 使 用 さ れる DDR チップの 数<br />

° DDR タイプ ( 電 圧 を 大 幅 に 下 げる ために LPDDR を 使 用 する など)<br />

° 低 消 費 電 力 動 作 中 に 使 用 さ れる 異 な る DDR モード の 使 用 (DDR セルフ リフレッシュ モード など)。 DDR の<br />

低 消 費 電 力 動 作 モー ド での 消 費 電 力 については、 該 当 する DDR 規 格 を 参 照 し て く だ さ い。<br />

DDR コント ローラーのクロック ゲーテ ィ ングのイ ンプ リ メ ンテーシ ョ ンについては、 『Zynq-7000 All<br />

Programmable SoC テクニカル リファレンス マニ ュアル』 (UG585) [ 参 照 4] の 「 ク ロ ッ ク 」 の 章 を 参 照 し て く だ さ<br />

い。<br />

• I/O : MIO や DDR I/O などの I/O デバイ ス も、 総 消 費 電 力 に 影 響 し ます。 I/O バ ッ フ ァ ー 制 御 のパワー マネージ<br />

メントについては、『Zynq-7000 All Programmable SoC PCB デザイ ン ガイド』 (UG933) [ 参 照 14] の 「SelectIO のシ<br />

グナ リ ング」 の 章 を 参 照 して く ださい。<br />

ソフトウェア サポー ト<br />

Linux カーネルでは、 次 のパワー マネージ メ ン ト ステートがサポート されます。<br />

• S0 : フ リ ーズ ま たは 低 消 費 電 力 ア イ ド ル 状 態 。 こ れは、 汎 用 の 純 粋 な ソ フ ト ウ ェ ア、 軽 量 、 低 消 費 電 力 ス テー ト<br />

です。<br />

• S1 : スタンバイまたはパワーオン サスペン ド 。 すべてのプ ロ セ ッ サ キ ャ ッ シ ュ が 消 去 さ れ、 命 令 実 行 が 停 止 し<br />

ます。 プロセッサおよび RAM への 電 源 供 給 は 保 持 さ れます。<br />

• S3 : STR (Suspend-to-RAM)。 シ ス テムおよびデバイ スのス テー ト が メ モ リ に 保 存 さ れます。 すべてのデバイ スが<br />

サスペン ド 状 態 にな り 、 電 源 がオフにな り ます。 RAM への 電 源 供 給 は 保 持 さ れます。<br />

Linux の Zynq-7000 AP SoC のパワー マネージ メ ン ト サポー ト については、 Zynq パワー マネージ メ ン ト Wiki ページ<br />

[ 参 照 64] を 参 照 して く ださい。<br />

このリンクには、Zynq-7000 AP SoC 用 にイ ンプ リ メ ン ト される CPU スケーリング フ レーム ワー ク についての 情 報 も<br />

あります。CPU スケーリング フレームワークは、 ランタイムに CPU の 周 波 数 を ス ケー リ ン グする ために 使 用 さ れま<br />

す。 高 処 理 パフ ォーマン ス を 必 要 と し ないアプ リ ケーシ ョ ンでは、 アプ リ ケーシ ョ ンの 要 件 に 合 わせて CPU の 周 波<br />

数 を 下 げる こ と がで き ます。 ク ロ ッ ク 周 波 数 を 下 げる と 、 動 作 時 の 消 費 電 力 を 大 幅 に 削 減 で き ます。<br />

PL パワー マネージメ ン ト<br />

PL を 必 要 と しないアプ リ ケーシ ョ ンでは、 PL の 電 源 をオフにで き ます。 こ れには、 PS と PL を 独 立 し た 電 源 に 接 続<br />

し てお く 必 要 があ り ます。 オフにで き る PL 電 源 には、 VCCINT、 VCCAUX、 VCCBRAM、および VCCO があ り ます。<br />

電 源 投 入 シーケ ン ス を 判 断 する には、 該 当 するデータ シー ト を 参 照 し て く だ さ い。<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 19<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 2 章 : システム レベルの 考 慮 事 項<br />

PL の 電 源 をオフにする と コ ン フ ィ ギ ュ レーシ ョ ンが 失 われる ため、 次 の 電 源 投 入 時 に も う 一 度 コ ン フ ィ ギ ュ レー<br />

シ ョ ン を 実 行 する 必 要 があ り ます。 PL の 電 源 をオフにし て も 安 全 かど う かは、 ソ フ ト ウ ェアで 判 断 する よ う にする<br />

必 要 があ り ます。<br />

このセクショ ンでは、 Zynq-7000 AP SoC の PL 消 費 電 力 を 最 適 化 する 際 の 考 慮 事 項 を 説 明 し ます。<br />

ロジック リ ソースの 使 用 量<br />

PL リ ソ ースの 使 用 量 は、 Zynq-7000 AP SoC で 使 用 さ れる 総 消 費 電 力 を 決 定 する 重 要 な 要 素 です。 使 用 さ れる CLB リ<br />

ソース、 専 用 ハード ウ ェ ア、 配 線 の 量 はデザイ ンによ って 異 な り 、 PL で 使 用 さ れる ス タ テ ィ ッ ク 消 費 電 力 およびダ<br />

イナ ミ ッ ク 消 費 電 力 が 追 加 さ れます。 PL アーキテクチャを 詳 細 に 理 解 してお く こ とによ り、 シ リ コン リソースを 活<br />

用 でき ます。<br />

消 費 電 力 を 削 減 する には、 デザ イ ンの ロ ジ ッ ク を 削 減 で き る 可 能 性 を 探 す 必 要 があ り ます。 こ れに よ り よ り 小 型 のデ<br />

バイ ス を 使 用 で き る よ う にな り 、 ス タ テ ィ ッ ク 消 費 電 力 が 削 減 さ れます。 1 つの 方 法 は、 CLB にファンクシ ョ ンをイ<br />

ンプ リ メ ン トするのではな く 専 用 ハード ウェア ブ ロ ッ ク を 使 用 する こ と です。こ れに よ り ス タ テ ィ ッ ク 消 費 電 力 およ<br />

びダ イ ナ ミ ッ ク 消 費 電 力 が 削 減 さ れ、 タ イ ミ ン グ 要 件 を 満 た しやす く な り ます。 専 用 ハー ド ウ ェ ア ブロッ ク を 使 用<br />

する と、 CLB ロジッ クを 使 用 して 等 価 コンポーネン ト を 構 築 するよ り も 総 ト ランジスタ 数 が 少 なくなるので、 スタ<br />

テ ィ ッ ク 消 費 電 力 が 削 減 さ れます。<br />

特 定 の リ ソース を イ ン ス タ ンシエー ト する には、 IP カ タ ロ グ を 使 用 し て 専 用 ハー ド ウ ェ ア を カ ス タ マ イ ズ し ます。 未<br />

使 用 の PS IP は、 ほかのタ ス クに 使 用 でき ます。 た と えば DSP48 ス ラ イ スには、 乗 算 、 加 算 、 累 算 、 多 入 力 ロ ジ ッ ク<br />

コンパレータ、 シフター、 パターン 一 致 、 カウンターなど、 多 数 のロジック ファンクションがあります。 ブロック<br />

RAM は、 ステー ト マシン、 数 値 演 算 、 ROM に 使 用 でき ます。<br />

ほ と んどの 必 要 な コーデ ィ ング 手 法 は、 『UltraFast 設 計 手 法 (Vivado Design Suite 用 )』 (UG949) [ 参 照 16] に 説 明 さ れて<br />

います。<br />

制 御 セ ッ ト の 管 理<br />

制 御 信 号 (クロック、 セット、 リセット、 クロック イ ネーブルな どの 制 御 エレ メ ン ト を 制 御 する 信 号 ) は、 デバイ ス<br />

の 集 積 度 、 使 用 率 、 およびパフ ォーマン スに 影 響 し ます。 こ れ ら の 信 号 の 消 費 電 力 への 影 響 を 最 小 限 に 抑 え る ための<br />

ガ イ ド ラ イ ンの 一 部 を 説 明 し ます。<br />

1 つのレ ジ ス タ ま たは ラ ッ チにセ ッ ト と リ セ ッ ト の 両 方 を 使 用 し ない よ う に し ます。 ザ イ リ ン ク ス FPGA のフ リ ップ<br />

フ ロ ッ プは、 非 同 期 と 同 期 の リ セ ッ ト およびセ ッ ト 制 御 の 両 方 がサポー ト さ れます。 ただ し 基 にな る フ リ ッ プフ ロ ッ<br />

プは、 一 度 に 1 つのセット、 リセット、プリセット、 またはクリアのみをインプリ メントできます。RTL コードでこ<br />

れ ら の 機 能 の 複 数 を 指 定 する と 、 1 つの 条 件 がフ リ ッ プフ ロ ッ プの SR ポー ト にイ ンプ リ メ ン ト され、 も う 1 つの 条<br />

件 が PL にインプリ メン ト されるため、 よ り 多 くの PL リソースが 使 用 されます。<br />

1 つの 条 件 が 同 期 でも う 1 つの 条 件 が 非 同 期 の 場 合 、 非 同 期 条 件 が SR ポー ト を 使 用 し て イ ンプ リ メ ン ト さ れ、 同 期<br />

条 件 が PL にインプリメントされます。 通 常 は、 複 数 のセット、 リセット、プリセット、またはクリア 条 件 を 使 用 し<br />

ないよ う にし ます。 また、 1 つのス ラ イ ス 内 にあ る 4 つのフリ ップフロップの 各 グループに 対 して、 1 つの 属 性 に よ<br />

りフリップフロップの SR ポー ト が 同 期 か 非 同 期 かが 決 ま り ます。<br />

レ ジ ス タ 上 の 制 御 ポー ト はア ク テ ィ ブ High なので、 アクテ ィブ High 制 御 信 号 を 使 用 する よ う に し ます。 ア ク テ ィ ブ<br />

Low の 信 号 にはレジス タ 制 御 ポー ト を 駆 動 する 前 に 反 転 が 必 要 なので、 よ り 多 く のルッ ク ア ッ プ テーブルが 使 用 さ<br />

れます。 LUT に 既 にほかの 入 力 があ り 、 反 転 に 別 の LUT が 必 要 と な る こ と があ り ます。 ア ク テ ィ ブ Low の 制 御 信 号<br />

を 使 用 する と 、 イ ンプ リ メ ンテーシ ョ ンの ラ ン タ イ ムが 長 く な り 、 デバイ スの 使 用 率 が 悪 く な り 、 タ イ ミ ン グおよび<br />

消 費 電 力 に 影 響 する こ と があ り ます。 そのため、 FPGA でアクテ ィブ Low の リ セ ッ ト を 使 用 する こ と は 推 奨 さ れませ<br />

ん。<br />

可 能 な 限 り 、 HDL コードまたはインスタンシエート されたコンポーネントでアクティブ High の 制 御 信 号 を 使 用 し て<br />

く だ さ い。 デザ イ ン 内 で 制 御 信 号 の 極 性 を 指 定 する こ と が 不 可 能 な 場 合 は、 コー ド の 最 上 位 階 層 で 信 号 を 反 転 し て く<br />

ださい。 I/O ロジックは 推 論 されたインバーターを 追 加 の FPGA ロ ジ ッ ク ま たは 配 線 を 使 用 せずに 吸 収 する こ と がで<br />

き る ので、 リ ソース 使 用 率 、 パフ ォーマン ス、 および 消 費 電 力 が 向 上 し ます。<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 20<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 2 章 : システム レベルの 考 慮 事 項<br />

セッ トおよびリセッ トの 制 御<br />

不 要 なセ ッ ト および リ セ ッ ト を コー ド に 含 め る と 、 シフ ト レジスタ LUT (SRL)、 LUT RAM、 お よ びその 他 の ロ ジ ッ<br />

ク 構 造 が 推 論 さ れな く な る こ と があ り ます。 コー ド がぎ こ ちない も のにな る 可 能 性 はあ り ますが、 多 く の 回 路 はセル<br />

フ リ セ ッ ト する よ う にする こ と がで き る か、 リ セ ッ ト が 不 要 な 可 能 性 があ り ます。 た と えばデータ パイプライン 内 の<br />

フ リ ッ プフ ロ ッ プでは、 リ セ ッ ト を 付 け る 意 味 はあ ま り あ り ません。 数 サ イ ク ル 後 にはパイ プ ラ イ ン 全 体 が 動 作 可 能<br />

と な り 、 不 正 なデータ はシ ス テムか ら 消 去 さ れます。<br />

セ ッ ト および リ セ ッ ト の 使 用 を 削 減 する と 、 デバイ スの 使 用 率 が 向 上 し、 その 結 果 配 置 が 良 く な る ので、 パフ ォーマ<br />

ン スが 改 善 し、 消 費 電 力 が 削 減 さ れます。<br />

リ セ ッ ト の 設 計 の 詳 細 は、 『Get Smart about Reset: Think Local, Not Global Whitepaper』 (WP272) [ 参 照 32] を 参 照 し て く<br />

ださい。<br />

クロック ゲーテ ィ ング<br />

PL のダ イナ ミ ッ ク 消 費 電 力 は、 さ ま ざ ま なデザ イ ン ノ ー ド におけ る 動 作 ク ロ ッ ク 周 波 数 (fclk)、 ノード キ ャ パシ タ<br />

ンス (C)、 FPGA の 動 作 電 圧 (V)、およびスイッチング アクティビティ () か ら 算 出 さ れます。 ダ イナ ミ ッ ク 消 費 電 力<br />

の 式 は 次 の とお り です。<br />

ダ イナ ミ ッ ク 消 費 電 力 = α x fclk x C x V2 式 2‐1<br />

ほ と んどのデザ イ ンでは、 上 記 のパ ラ メ ーターのい く つかは FPGA テクノロジ ( 動 作 電 圧 など) またはデザイン 要 件 <br />

( 動 作 周 波 数 など) によ り 決 定 されます。<br />

クロックまたはデータ パスのゲーティ ングは、 これらのパスの 結 果 が 使 用 されない 場 合 にスイ ッチング アクティビ<br />

ティを 停 止 するためによく 使 用 される 方 法 です。 クロック ゲーティングによりすべての 同 期 アクティビティが 停 止<br />

し、 データ パス 信 号 およびグ リ ッ チが 伝 搬 さ れな く な り ます。<br />

Vivado ® ツールでは、 望 ま し く ない 状 況 を 検 出 する ため 記 述 およびネ ッ ト リ ス ト が 解 析 さ れますが、 ツールにはない<br />

アプ リ ケーシ ョ ン、 データ フ ロー、 および 依 存 性 に 関 する 情 報 も あ り ます。 こ れら の 情 報 は、 設 計 者 が 指 定 し て、 望<br />

ま し く ない 状 況 を さ ら に 削 除 する 必 要 があ り ます。<br />

デザイ ン ノードには PL 出 力 には 影 響 し ないが ト グルし 続 け る も の も あ り ます。 各 フ リ ッ プフ ロ ッ プ、ブ ロ ッ ク RAM、<br />

および DSP48 にはローカル クロック イネーブルがあります。 これらのローカル クロック イ ネーブルを ゲーテ ィ ン<br />

グすることにより、 不 要 なフリ ップフロップ、 ブロック RAM、 および DSP がトグルしないようにすることができま<br />

す ( 図 2-3)。<br />

X-Ref Target - Figure 2-3<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

図 2‐3 : ローカル クロック イ ネーブルをゲーテ ィ ング し て 不 要 な ト グルを 削 除<br />

可 能 な 場 合 、 ゲーテ ィ ング 信 号 で 制 御 さ れる エレ メ ン ト 数 を 最 大 に し ます。 た と えば、 ク ロ ッ ク イネーブル 信 号 で 各<br />

ロードをゲーティ ングするよ り も、そのソースのクロ ッ ク ド メ イ ン をゲーテ ィ ン グ し た 方 が 消 費 電 力 の 削 減 量 が 大 き<br />

く な り ます。 アプ リ ケーシ ョ ンに よ って、 PL の 異 な る ク ロ ッ ク バッファー プリ ミティブを 使 用 してクロックをゲー<br />

ティングできます。<br />

BUFGCE プリ ミティブは、クロック イネーブル 付 きグローバル クロック バッファーです。BUFGCE は、 グ ロ ーバル<br />

クロックまたはクロック ド メ イ ン を グ リ ッ チな し で 動 的 にゲーテ ィ ン グする ために 使 用 で き ます。こ の リ ソース を 使<br />

用 する と 、 ク ロ ッ ク イ ネーブルのフ ァ ンア ウ ト も 低 減 でき、 PL フ ァ ブ リ ッ ク の 配 線 リ ソース を 節 約 で き ます。<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 21<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 2 章 : システム レベルの 考 慮 事 項<br />

PL 内 の 特 定 のロ ジ ッ ク ファンクションまたはクロック ドメインにゲーティングが 必 要 な 場 合 は、BUFHCE ま たは<br />

BUFRCE プ リ ミ テ ィ ブを 使 用 で き ます。 こ れら のプ リ ミ テ ィ ブは 負 荷 およびキ ャパシ タ ン ス を 低 減 し、 PL のダイナ<br />

ミ ッ ク 消 費 電 力 を 削 減 し ます。<br />

ク ロ ッ ク を 特 定 の 領 域 に 分 配 し、PL フ ァ ブ リ ッ ク の 動 的 ス イ ッ チン グ を 回 避 する には、BUFGMUX_CTRL プリ ミティ<br />

ブを 使 用 で き ます。 こ のプ リ ミ テ ィ ブは、 消 費 電 力 を 削 減 する ために 高 速 ク ロ ッ ク と 低 速 ク ロ ッ ク を 切 り 替 え る ため<br />

に も 使 用 で き ます。<br />

通 常 、 PL 出 力 には 影 響 し ないが ト グルし 続 け るデザ イ ン ノードがいくつかあり、 これらのために 不 要 なダイナミ ッ<br />

ク 消 費 電 力 が 発 生 し ます。 FPGA クロック イ ネーブルを 使 用 する と 、 こ れ ら の ノ ー ド をゲーテ ィ ングで き ます。<br />

低 消 費 電 力 デザ イ ンには、 タ イ ミ ング 制 約 を 最 適 に 使 用 する こ と も 重 要 です。 アプ リ ケーシ ョ ンが 温 度 制 御 さ れた 環<br />

境 で 動 作 する 場 合 は、 タイミングを 満 たすためにタイミング 制 約 を 緩 和 できます。デザインは、 指 定 された 最 大 ク<br />

ロック レー ト を 使 用 する よ う 制 約 する 必 要 があ り ます。 ク ロ ッ ク レー ト を 必 要 以 上 に 高 速 にする と 、 次 の よ う な 悪<br />

影 響 があ り ます。<br />

• リ ソース 共 有 が 低 減 する ため よ り 多 く の PL リソースが 使 用 されます。<br />

• 厳 し い タ イ ミ ング 制 約 を 満 たすために 多 く の ロ ジ ッ ク およびレ ジ ス タ が 複 製 さ れます。<br />

• 配 線 の 量 が 増 加 し ます。<br />

• 推 論 さ れる PL 専 用 機 能 が 少 な く な り ます。<br />

こ れ ら の 悪 影 響 は、 ダ イナ ミ ッ ク 消 費 電 力 に 大 き く 影 響 し ます。<br />

ブロック RAM<br />

ブロック RAM の 消 費 電 力 量 は、 イ ネーブルになってい る 時 間 に 直 接 比 例 し ます。 消 費 電 力 を 削 減 する には、 ブ ロ ッ<br />

ク RAM が 使 用 されない と きにブロ ッ ク RAM イネーブルを Low にします。 ブロッ ク RAM イネーブル レ ー ト と ク<br />

ロック レー ト は、 消 費 電 力 を 最 適 化 する 際 に 考 慮 する 必 要 のあ る 重 要 な 要 素 です。<br />

ブロック RAM は、 ア ク テ ィ ブ 読 み 出 し ま たは 書 き 込 みサ イ ク ル 中 は イ ネーブルにする 必 要 があ り ます。 合 成 ツール<br />

で こ れ ら のプ リ ミ テ ィ ブが 推 論 さ れない 可 能 性 があ る ので、 必 要 な 場 合 は 回 路 図 で 推 論 を 確 認 し、 消 費 電 力 を 削 減 す<br />

る ために 必 要 な 場 合 はイ ン ス タ ンシエー ト する 必 要 があ り ます。<br />

フロアプラン<br />

複 数 の ク ロ ッ ク 領 域 にま たがるデザ イ ンでは、 よ り 多 く の ク ロ ッ ク リ ソースが 使 用 さ れ、 消 費 電 力 も 大 き く な り ま<br />

す。 可 能 な 場 合 は、 図 2-4 に 示 すよ う に、 断 続 的 に 使 用 される ロ ジ ッ ク を 1 つの ク ロ ッ ク 領 域 に 配 置 し、 消 費 電 力 を<br />

削 減 しやす く し ます。 ツールは こ れを 自 動 的 に 実 行 する よ う 試 みますが、 デザ イ ンに よ ってはエ リ ア 制 約 を 適 用 する<br />

など、 手 動 の 操 作 が 必 要 な 場 合 があ り ます。<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 22<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 2 章 : システム レベルの 考 慮 事 項<br />

X-Ref Target - Figure 2-4<br />

<br />

図 2‐4 : 断 続 的 に 使 用 される ロジ ッ ク を 1 つのク ロ ッ ク 領 域 に 配 置<br />

データ の 移 動 を 制 限 する こ と も、 消 費 電 力 を 削 減 する 1 つの 手 段 です。 た と えば 図 2-5 に 示 すよ う に、 PL 内 でオペラ<br />

ン ド を 移 動 する のではな く 、 結 果 のみを 移 動 する よ う に し ます。 バス を 短 く し、 数 を 少 な く する と 、 キ ャパシ タ ン ス<br />

が 低 減 さ れ、 パフ ォーマン スが 向 上 し、 消 費 電 力 が 削 減 さ れます。 フ ロ アプ ラ ンでピ ン 配 置 および 対 応 する ロ ジ ッ ク<br />

デザ イ ン を 考 慮 する 必 要 があ り ます。<br />

X-Ref Target - Figure 2-5<br />

<br />

I/O の 消 費 電 力<br />

図 2‐5 : デー タの 移 動 を 制 限<br />

I/O の 消 費 電 力 は、 総 消 費 電 力 に 大 き く 影 響 し ます。 デザ イ ンに よ っては、 特 に メ モ リ 集 約 型 のシ ス テムでは、 総 消<br />

費 電 力 の 半 分 が I/O で 消 費 される ものも あ り ます。<br />

一 部 の イ ン ターフ ェ イ スでは、 高 速 の 差 動 I/O 機 能 は 必 要 あ り ません。HSLVDCI などの I/O 規 格 を 使 用 する と 、FPGA<br />

間 の 低 速 メ モ リ イ ン ターフ ェ イ スで 消 費 電 力 を 大 幅 に 削 減 で き ます。<br />

すべての Zynq-7000 AP SoC では、 スルー レー ト および 駆 動 電 流 をプ ロ グ ラ ム 可 能 で、I/O のダ イナ ミ ッ ク 消 費 電 力 を<br />

削 減 する ために 使 用 で き ます。 デバイ スはデジ タル 制 御 イ ン ピーダン ス (DCI) をサポート しており、 ト ラ イステート<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 23<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 2 章 : システム レベルの 考 慮 事 項<br />

にでき ます。 DCI を 使 用 する と 、 I/O の 出 力 が イ ネーブルの 場 合 に 終 端 電 力 が 不 要 にな る ので、 デバイ スで 終 端 電 力<br />

が 消 費 されるのはイ ングレ ス サイ クル 中 のみです。<br />

Zynq-7000 AP SoC には、 HSTL および SSTL 用 にユーザーがプ ロ グ ラ ム 可 能 な レ シーバー 消 費 電 力 モー ド が 組 み 込 ま<br />

れています。 各 I/O のプ ロ グ ラ ム 可 能 な 消 費 電 力 モー ド を 制 御 する と 、 消 費 電 力 と パフ ォーマン ス を ト レー ド オフす<br />

ることにより DC 消 費 電 力 を 削 減 で き ます。<br />

Zynq-7000 AP SoC には、 高 パフ ォーマン ス 用 に 最 適 化 さ れたジ ッ ターの 小 さ い ト ラ ンシーバーが 含 まれています。 こ<br />

れ ら の ト ラ ンシーバーには 複 数 の 低 消 費 電 力 機 能 があ り 、 消 費 電 力 と パフ ォーマン ス を ト レー ド オフする ために 動 作<br />

と 粒 度 を 柔 軟 にカ ス タ マ イ ズで き ます。<br />

トランシーバーでは、 共 有 LC PLL を 使 用 して 消 費 電 力 を 削 減 できます。 レーン レー ト が 同 一 の 4 レーン デザ イ ン<br />

(XAUI など) では、 個 々のチャネルの PLL ではな く ク ワ ッ ド PLL を 使 用 で き ます。 同 様 に、 PLL は 範 囲 内 であれば 高<br />

いレー ト および 低 いレー ト で 動 作 で き る ので、 低 い 動 作 範 囲 を 選 択 する と 消 費 電 力 を 削 減 で き ます。<br />

RXPOWERDOWN および TXPOWERDOWN オプシ ョ ン を 有 効 にで き ます。 PCIe システムで 主 に 使 用 されるシステム<br />

D3 ス テー ト などの 最 小 消 費 電 力 モー ド では、 PLL パワーダウンを 有 効 にできます。<br />

I/O 消 費 電 力 は、 次 の 方 法 で 削 減 する こ と も で き ます。<br />

• 時 分 割 多 重 化 を 使 用 し て I/O 数 を 削 減 する。<br />

• I/O バン ク が 使 用 さ れていない と き にオフに しやすい よ う に、 最 小 限 I/O 数 デザ イ ン 分 割 を 使 用 する。<br />

• 1 つのバン ク 内 で 使 用 される I/O 規 格 の 数 を 削 減 する。<br />

パーシ ャル リコンフィギュレーション<br />

ス タ テ ィ ッ ク 消 費 電 力 を 削 減 する には、 よ り 小 型 のデバイ ス を 使 用 する のが 1 つの 方 法 です。パーシ ャル リコンフィ<br />

ギ ュ レーシ ョ ン を 使 用 する と 、 PL のロジッ ク ブ ロ ッ ク を 時 分 割 し、 デザ イ ンの 部 分 を 個 別 に 実 行 で き ます。 デザ イ<br />

ンのすべての 部 分 が 100% の 時 間 必 要 ではないので、 こ の よ う にする と よ り 小 型 のデバイ ス を 使 用 で き ます。<br />

パーシ ャル リ コ ン フ ィ ギ ュ レーシ ョ ンでは、ダ イナ ミ ッ ク 消 費 電 力 と ス タ テ ィ ッ ク 消 費 電 力 の 両 方 を 削 減 で き る 可 能<br />

性 があ り ます。 た と えば、 多 く のデザ イ ンは 非 常 に 高 速 に 動 作 し ますが、 高 パフ ォーマン スが 必 要 なのはわずかな 時<br />

間 であ る こ と があ り ます。 消 費 電 力 を 削 減 する には、 100% の 時 間 高 パフ ォーマン スのデザ イ ン を 作 成 する 代 わ り に、<br />

パーシ ャル リコンフィギュレーションを 使 用 して 高 パフォーマンス デザ イ ン を 同 じデザ イ ンの 低 消 費 電 力 バージ ョ<br />

ンに 置 き 換 え、 システムで 高 パフォーマンスが 必 要 な と きに 高 パフォーマンス バージ ョ ンのデザイ ンに 戻 し ます。<br />

こ の 概 念 は、 特 にデザ イ ンで 高 消 費 電 力 イ ン ターフ ェ イ スがすべての 時 間 必 要 でない 場 合 など、 I/O 規 格 に も 適 用 で<br />

きます。 LVDS は、 電 源 投 入 に 高 DC 電 流 が 必 要 なため、 ア ク テ ィ ビ テ ィ にかかわ らず 高 消 費 電 力 イ ン ターフ ェ イ ス<br />

です。 パーシ ャル リ コ ン フ ィ ギ ュ レーシ ョ ン を 使 用 し て、 デザ イ ンで 高 パフ ォーマン スが 必 要 でない 場 合 に、 I/O を<br />

LVDS から LVCMOS な どの 低 消 費 電 力 イ ン ターフ ェ イ スに 切 り 替 え、 シ ス テムで 高 速 転 送 が 必 要 な と き に LVDS に<br />

戻 す こ と がで き ます。<br />

消 費 電 力 予 測<br />

消 費 電 力 予 測 は、 デザ イ ン サイクルの 次 の 3 つの 段 階 で 実 行 で き ます。<br />

• 概 念 段 階 : こ の 段 階 では、 ロ ジ ッ ク 容 量 およびア ク テ ィ ビ テ ィ レー ト の 予 測 に 基 づき、 消 費 電 力 を 大 まかに 見 積<br />

もることができます。<br />

• 設 計 段 階 : デザイ ンが Zynq-7000 AP SoC にどの よ う に イ ンプ リ メ ン ト さ れるかに 関 する 詳 細 な 情 報 に 基 づき、よ<br />

り 正 確 な 消 費 電 力 予 測 を 実 行 で き ます。<br />

• シ ス テム 統 合 段 階 : 消 費 電 力 を ラ ボ 環 境 で 計 測 し ます。<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 24<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 2 章 : システム レベルの 考 慮 事 項<br />

ザ イ リ ン ク スでは、シ ス テムの 温 度 要 件 および 電 源 要 件 をデザ イ ン サ イ ク ルを 通 し て 評 価 する ためのツールおよび 資<br />

料 を 提 供 し ています。 図 2-6 に、 デザイ ン サ イ ク ルの 各 段 階 で 使 用 で き る ツールを 示 し ます。<br />

X-Ref Target - Figure 2-6<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

図 2‐6 : FPGA 設 計 プ ロセスで 使 用 でき る Vivado 消 費 電 力 予 測 / 解 析 ツール<br />

ツールには、スタンドアロンのものと インプリ メ ンテーシ ョ ン プロセスに 統 合 されているものがあり、 設 計 プロセス<br />

の 各 段 階 で 入 手 可 能 な 情 報 を 使 用 し ます。 すべてのツール 間 で 情 報 を 交 換 で き、 解 析 が 効 率 よ く 実 行 さ れます。<br />

最 終 的 な 消 費 電 力 は、 シ ス テム を イ ンプ リ メ ン ト し、 ラ ボで 計 測 する こ と に よ り 判 断 し ます。 こ れには、 開 発 ボー ド<br />

の 電 源 ラ イ ン を 手 動 でプ ローブする か、 外 部 プ ロ グ ラ マブル 電 圧 レ ギ ュ レータ か ら 電 圧 および 電 流 を 読 み 出 す 機 構 を<br />

使 用 し ます。 設 計 の 初 期 段 階 で 消 費 電 力 を 正 確 に 予 測 する こ と に よ り 、 後 で 問 題 が 発 生 する のを 回 避 で き ます。<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 25<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 2 章 : システム レベルの 考 慮 事 項<br />

Xilinx Power Estimator (XPE)<br />

Xilinx Power Estimator (XPE) は、 通 常 プ ロ ジ ェ ク ト の 概 念 段 階 で 使 用 さ れる スプレ ッ ド シー ト 形 式 の 消 費 電 力 予 測<br />

ツールです。XPE はアーキテ ク チ ャ の 評 価 およびデバイ スの 選 択 に 利 用 で き、 アプ リ ケーシ ョ ンに 適 し た 電 源 や 温 度<br />

管 理 コ ンポーネン ト の 選 択 に 役 立 ち ます。 図 2-7 に、 Zynq-7000 AP SoC 用 の XPE インターフェイスを 示 します。 こ<br />

のツールを 使 用 して、 デザイン リ ソ ースの 使 用 状 況 、 ア ク テ ィ ビ テ ィ レート、 I/O 負 荷 、 CPU ク ロ ッ ク 周 波 数 、 その<br />

他 のデザイ ン パラ メーターを 指 定 できます。 デバイス モデル と パラ メ ーターが 組 み 合 わ さ れて、 消 費 電 力 分 配 が 予<br />

測 されます。<br />

X-Ref Target - Figure 2-7<br />

図 2‐7 : Zynq‐7000 AP SoC 用 の XPE インターフェイス<br />

XPE は、 デザ イ ン サ イ ク ルの 後 半 の イ ンプ リ メ ンテーシ ョ ンおよび 消 費 電 力 を 最 適 化 する 段 階 で も、 た と えば 設 計<br />

変 更 指 示 (ECO) の 消 費 電 力 への 影 響 を 評 価 する 場 合 などに よ く 使 用 さ れます。 複 数 のチームに よ り イ ンプ リ メ ン ト さ<br />

れる 大 型 デザ イ ンでは、 プ ロ ジ ェ ク ト リーダーが XPE を 使 用 し て 各 チームのモジ ュールの 使 用 量 およびア ク テ ィ ビ<br />

テ ィ を イ ンポー ト し て 総 消 費 電 力 を 監 視 し、 制 約 が 満 た さ れる よ う に 消 費 電 力 バジ ェ ッ ト の 割 り 当 てを 変 更 で き ま<br />

す。<br />

システム レベルの 消 費 電 力 解 析<br />

最 終 的 なシ ス テム 消 費 電 力 は、 デザ イ ン を イ ンプ リ メ ン ト し、 ラ ボで 計 測 する こ と に よ り 判 断 し ます。 こ れには、 開<br />

発 ボー ド の 電 源 ラ イ ン を 手 動 でプ ローブする か、 電 圧 レ ギ ュ レータ か ら 電 圧 および 電 流 を 読 み 出 す 機 構 を 使 用 し ま<br />

す。<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 26<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 2 章 : システム レベルの 考 慮 事 項<br />

「Zynq-7000 AP SoC Low Power Techniques part 1 - Installing and Running the Power Demo Tech Tip」 (Zynq-7000 AP SoC 低<br />

消 費 電 力 手 法 1 - 消 費 電 力 デモの イ ン ス ト ールおよび 実 行 に 関 する テ ク ニカル ヒント) Wiki ページ [ 参 照 61] に、<br />

Zynq-7000 AP SoC の PS と PL セクションで 異 なるアプリケーション シナ リ オを 実 行 している 場 合 のシステム レベル<br />

の 消 費 電 力 を 示 す リ フ ァ レ ン ス デザイ ンがあ り ます。 デザイ ンでシステム レベルの 消 費 電 力 を 計 測 する 際 に、 こ の<br />

ページを 参 照 で き ます。<br />

Vivado 消 費 電 力 解 析<br />

Vivado 消 費 電 力 解 析 は、 設 計 段 階 で 配 置 配 線 済 みデザ イ ンの 消 費 電 力 を 解 析 する 機 能 です。 消 費 電 力 の 詳 細 な 解 析<br />

や、 指 定 の 動 作 条 件 におけ る 温 度 情 報 を 示 す 包 括 的 な GUI があ り ます。 図 2-8 に、 Vivado 消 費 電 力 解 析 か ら のレポー<br />

ト 例 を 示 します。<br />

X-Ref Target - Figure 2-8<br />

図 2‐8 : Vivado 消 費 電 力 解 析 のレポー ト 例<br />

Viovado 消 費 電 力 解 析 機 能 には、 消 費 電 力 に 関 する 2 つのビ ューがあ り ます。<br />

• クロック ツ リ ー、 ロ ジ ッ ク 、 信 号 、 I/O、 およびブロック RAM や DSP ブロックなどの PS IP な ど、 デザ イ ン の<br />

ブロッ クのタイプによ り 消 費 される 電 力<br />

• デザ イ ン 階 層 で 消 費 さ れる 電 力<br />

この 2 つのビ ューを 切 り 替 え る こ と に よ り 、 詳 細 な 消 費 電 力 解 析 を 実 行 で き ます。 こ れ ら のビ ューに よ り 消 費 電 力 が<br />

最 も 大 き いブ ロ ッ ク ま たはデザ イ ンの 部 分 を 効 率 的 に 判 断 で き、 消 費 電 力 最 適 化 を 集 中 的 に 実 行 する 部 分 を 特 定 で き<br />

ます。<br />

VCD (Value Change Dump) および SAIF (Switching Activity Interchange Format) からのスイッチング ア ク テ ィ ビ テ ィ 情 報<br />

を Vivado 消 費 電 力 解 析 に 入 力 する こ と に よ り 、よ り 正 確 な 消 費 電 力 予 測 が 可 能 です。VCD ファイルには、シミュレー<br />

シ ョ ンの 各 段 階 でのヘ ッ ダー 情 報 、 変 数 定 義 、 値 の 変 更 の 詳 細 が 含 まれます。 SAIF ファイルには、 信 号 のトグル 回<br />

数 と 信 号 が 0、 1、 X、 または Z と な る 期 間 を 指 定 する タ イ ミ ン グ 属 性 が 含 まれます。<br />

Vivado での PL 消 費 電 力 の 最 適 化<br />

前 述 の よ う に ク ロ ッ ク ゲーテ ィ ン グ を 使 用 し て 消 費 電 力 を 最 適 化 で き ますが、 実 際 に 使 用 さ れる こ と はほ と んど あ り<br />

ません。 これは、 デザイ ンにほかのソースからの IP が 含 まれていた り 、 詳 細 な ク ロ ッ ク ゲーテ ィ ングを 実 行 するに<br />

は 多 大 な 労 力 を 要 する ためです。 Vivado ツールでは、 こ の よ う な 消 費 電 力 の 最 適 化 を 自 動 的 に 実 行 で き、 最 小 限 の 労<br />

力 で 最 大 限 の 消 費 電 力 削 減 を 達 成 で き ます。<br />

Vivado デザイ ン ツールでは、 さ ま ざ ま な 消 費 電 力 の 最 適 化 が 提 供 さ れてお り 、 ダ イ ナ ミ ッ ク 消 費 電 力 を 最 大 30% 削<br />

減 でき ます。<br />

Vivado は、 レガシ IP ブロックおよびサードパーティ IP ブロックを 含 む PL デザ イ ン 全 体 を 解 析 し、 消 費 電 力 を 削 減<br />

できる 可 能 性 を 調 べます。 クロッ ク サイクルの 結 果 に 影 響 しないソース レ ジ ス タ の 出 力 ロ ジ ッ ク を 特 定 し、 細 粒 度<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 27<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 2 章 : システム レベルの 考 慮 事 項<br />

クロック ゲーティングおよびロジッ ク ゲーテ ィ ン グ 信 号 を 作 成 し て、 不 要 な ス イ ッ チ イ ング ア ク テ ィ ビ テ ィ を 除 去<br />

します。<br />

消 費 電 力 最 適 化 は、 専 用 ブ ロ ッ ク RAM に も 適 用 さ れます。 節 約 さ れる 消 費 電 力 のほ と んどは、 データ が 書 き 込 まれ<br />

ていないと きおよび 出 力 が 使 用 されていないと きに、 専 用 ブロ ッ ク RAM をデ ィ スエーブルにする こ と に よ り 達 成 さ<br />

れます。<br />

消 費 電 力 最 適 化 オプシ ョ ンの 使 用 方 法 およびデザ イ ンの 消 費 電 力 情 報 の 取 得 方 法 の 詳 細 は、『Vivado Design Suite ユー<br />

ザー ガイド : 消 費 電 力 の 解 析 と 最 適 化 』 (UG907) [ 参 照 10] を 参 照 して く ださい。<br />

PL 消 費 電 力 バジ ェ ッ ト の 超 過 の 修 正<br />

デザイ ン サイ クルの 最 後 の 方 では、 システムを 市 場 に リ リ ースする 圧 力 が 大 き く 、 ボード 環 境 および 冷 却 ソ リ ュー<br />

ションなどのほとんどのシステム パラ メ ーターが 詳 細 に 定 義 されています。そのためエンジニア リ ング 作 業 のや り 直<br />

しは 制 限 されますが、 PL で さ ら に 消 費 電 力 の 削 減 が 可 能 な 場 合 があ り ます。 次 のプ ロ セス を 使 用 する と 、 PL の 消 費<br />

電 力 を 削 減 で き る 可 能 性 が 高 い 部 分 に 集 中 で き ます。<br />

1. 消 費 電 力 バジ ェ ッ ト を 超 えてい る 箇 所 の 特 定<br />

Vivado GUI を 使 用 している 場 合 は Vivado 消 費 電 力 解 析 レポー ト の [Summary] ページ、 コ マン ド ラ イ ン を 使 用 し<br />

てい る 場 合 は 消 費 電 力 レ ポー ト ファイルの Summary セクションを 確 認 します。 [On-Chip Power] および [Power<br />

Supply] セ ク シ ョ ンで、 消 費 電 力 分 配 の 概 要 を 確 認 で き ます。[Summary] ページでバジ ェ ッ ト を 超 えてい る 消 費 電<br />

力 の 種 類 および 電 力 量 を 確 認 し ます。<br />

2. 集 中 する エ リ アの 特 定<br />

Vivado 消 費 電 力 解 析 レ ポー ト ま たは Xilinx Power Estimator で 詳 細 を 確 認 し ます。 環 境 パ ラ メ ーター と 、 各 リ ソー<br />

ス、 デザ イ ン 階 層 、 ク ロ ッ ク ド メ イ ンで 消 費 さ れる 電 力 を 解 析 し ます。 消 費 電 力 が 高 いエ リ ア を 見 つけた ら、 示<br />

さ れてい る 情 報 を 使 用 し てその 原 因 を 特 定 し ます。<br />

3. 試 行<br />

消 費 電 力 最 適 化 を 実 行 するデザ イ ン 箇 所 の リ ス ト を 作 成 し た ら、 簡 単 な も のか ら 困 難 な も のの 順 に 並 び 替 えて、<br />

実 行 する 最 適 化 ま たは 試 みを 決 定 し ます。 消 費 電 力 解 析 機 能 では What-If 解 析 が 可 能 であ り 、 コー ド や 制 約 を 変<br />

更 せず、 イ ンプ リ メ ンテーシ ョ ン を 再 実 行 せずに、 デザ イ ンにすばや く 変 更 を 加 えて 消 費 電 力 予 測 を 実 行 で き ま<br />

す。<br />

消 費 電 力 最 適 化 の 手 法 は こ のガ イ ド に も リ ス ト さ れていますが、 詳 細 は 『Vivado Design Suite ユーザー ガイド :<br />

消 費 電 力 の 解 析 と 最 適 化 』 (UG907) [ 参 照 10] を 参 照 して く ださい。<br />

Vivado 消 費 電 力 最 適 化 機 能 での 試 行<br />

Vivado ツールで 消 費 電 力 最 適 化 を 実 行 し た と き に 消 費 電 力 が 最 大 限 に 削 減 さ れる よ う にする には、 消 費 電 力 最 適 化 を<br />

デザ イ ン 全 体 に 実 行 し、 デザ イ ンの 一 部 を 除 外 し ない よ う に し ます。 消 費 電 力 最 適 化 を 有 効 に し て も 消 費 電 力 を 削 減<br />

できない 場 合 は、 次 の 3 つのエ リ ア を 詳 細 に 調 べます。<br />

• グローバル セッ ト/ リセット 信 号<br />

• ブロック RAM イネーブルの 生 成<br />

• レジスタのクロック ゲーテ ィ ング<br />

こ れ ら の 部 分 で 消 費 電 力 最 適 化 に よ り 生 成 さ れた イ ネーブルの 数 が 少 ない 場 合 、 コーデ ィ ン グ 手 法 およびデザ イ ンに<br />

設 定 さ れてい る プ ロパテ ィ を 見 直 す 必 要 があ る 可 能 性 があ り ます。<br />

Vivado 消 費 電 力 解 析 機 能 での 試 行<br />

Vivado の [Report Power] ダイアログ ボ ッ ク スで 設 定 を 変 更 し て 解 析 を 実 行 し、 消 費 電 力 への 影 響 を 確 認 で き ます。 最<br />

適 な 結 果 を 取 得 するために Vivado 消 費 電 力 解 析 の さ ま ざ ま なオプシ ョ ン を 使 用 する 方 法 の 詳 細 は、 『Vivado Design<br />

Suite ユーザー ガイド : 消 費 電 力 の 解 析 と 最 適 化 』 (UG907) [ 参 照 10] を 参 照 して く ださい。<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 28<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 2 章 : システム レベルの 考 慮 事 項<br />

Xilinx Power Estimator (XPE) での 試 行<br />

複 数 の ソースで 開 発 さ れたモジ ュールか ら の Vivado 消 費 電 力 解 析 結 果 を、 XPE にインポートできます。 これによ り、<br />

異 なる IP ブ ロ ッ ク がデバイ スに イ ンプ リ メ ン ト さ れた と き の 総 消 費 電 力 を 確 認 で き ます。 デザ イ ンの 変 更 の 消 費 電<br />

力 への 影 響 を、 コー ド やネ ッ ト リ ス ト を 変 更 せずに 予 測 で き ます。 XPE では 各 ロジ ッ ク エレ メン ト または 信 号 を 個<br />

別 に 調 整 する こ と はで き ないので、 XPE での 消 費 電 力 予 測 の 精 度 は Vivado 消 費 電 力 解 析 よ り も 低 く な り ます。<br />

まとめ<br />

コー ド 記 述 の 前 に 消 費 電 力 削 減 のための 設 計 手 法 を 理 解 し て 適 用 する のが、 シ ス テムの 消 費 電 力 を 削 減 する 最 良 の 方<br />

法 です。 デザイ ン サイクルの 適 切 な 段 階 でさまざまなザイ リンクス ツールを 使 用 こ と に よ り 、 消 費 電 力 仕 様 を 満 た<br />

す こ と がで き、 ボー ド 設 計 において 電 源 の 数 、 タ イ プ、 サ イ ズを 選 択 する ための 情 報 が 得 ら れます。<br />

クロッキングおよびリセッ ト<br />

Zynq-7000 AP SoC のさまざまな IP ブロックへのソース ク ロ ッ ク と し て、 外 部 および 内 部 ク ロ ッ ク リソースを 使 用 で<br />

き ます。 こ のセ ク シ ョ ンでは、 こ れ ら の リ ソ ースについて 説 明 し ます。 ま た、 さ ま ざ ま なハー ド ウ ェ ア、 ソ フ ト ウ ェ<br />

ア、 およびデバ ッ グ リ セ ッ ト について と 、 こ れら をいつ 使 用 すべき かについて も 説 明 し ます。<br />

外 部 ク ロ ッ ク<br />

PS_CLK<br />

PS 側 では、 プロセ ッ サ クロック PS_CLK を 供 給 する のに 30 ~ 60MHz の 範 囲 の 固 定 周 波 数 オシ レーターが 通 常 使 用<br />

されます。 クロッ クは、 MIO バンク 0 用 の I/O 電 圧 と 同 じ 電 圧 レベルを 使 用 する シン グルエン ド の LVCMOS 信 号 で<br />

あ る 必 要 があ り ます。 その 他 すべての PS 内 部 クロックは、 このクロックから ARM、 DRM、 および IO の 3 つの PLL<br />

を 使 用 して 生 成 されます。<br />

ザ イ リ ン ク ス 評 価 キ ッ ト で 使 用 さ れる PS_CLK のデフ ォル ト 周 波 数 は 33.3 MHz です。 その 他 の ク ロ ッ ク 周 波 数 も 使<br />

用 でき ますが、 次 のものは PS ク ロ ッ ク 周 波 数 に 依 存 し ているので、 それに 応 じ て 調 整 が 必 要 と な り ます。<br />

• LogiCORE IP Processing System 7 コンフィギュレーション ウ ィ ザー ド を 使 用 する と 、 選 択 し た PS_CLK 周 波 数 に<br />

基 づいて、PLL および SPI や UART などの I/O ペリフェラル ク ロ ッ ク それぞれの 分 周 値 および 逓 倍 値 を 算 出 で き<br />

ます。 これらの 値 は、 PS の 初 期 化 時 に FSBL (First Stage Boot Loader) によ り 使 用 されます。<br />

• U-Boot ボード コンフィギュレーション インクルード ファイル<br />

• Linux デザ イ ン 特 定 のデバイ ス ツリー<br />

その 他<br />

PL 側 では、 シン グルエン ド ま たは 差 動 の 固 定 周 波 数 オシ レーターを 追 加 の ク ロ ッ ク ソースと して 使 用 でき、 よ り 柔<br />

軟 性 があ り ます。 こ れら のオシレーターをマルチ リージョナル クロック 兼 用 (MRCC) 入 力 ピ ンに 接 続 し、 対 応 する<br />

PL バンクの I/O 規 格 および 電 圧 要 件 に 従 う 必 要 があ り ます。 PL 入 力 ク ロ ッ ク のジ ッ ターは、 PS で 生 成 されるクロッ<br />

クよりもかなり 小 さくなります。アプリケーションによっては (ビデオ シ ス テムでビデオの 解 像 度 に 依 存 する 正 確 な<br />

ピクセル ク ロ ッ ク を 生 成 する ためなど)、 外 部 低 ジ ッ ター プログラマブル クロック シンセサ イ ザーが 使 用 さ れます。<br />

一 部 のボー ド ペリフェラルでは、PHY を 動 作 させるために 外 部 ク リ ス タルが 必 要 です。た と えば、イーサネ ッ ト PHY<br />

には 25MHz クリスタルが 必 要 です。また、ペリフェラル I/O イ ン ターフ ェ イ スには、 対 応 する PHY と 通 信 する ため<br />

に 入 力 ク ロ ッ ク と 出 力 ク ロ ッ ク があ る ものも あ り ます (イーサネッ トの RX クロックと TX クロックなど)。<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 29<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 2 章 : システム レベルの 考 慮 事 項<br />

内 部 ク ロ ッ ク<br />

PS<br />

PS クロック サブシステムで 生 成 されるすべてのク ロ ッ クは、 3 つのプロ グ ラマブル PLL (CPU、 DDR、 または I/O) の<br />

いずれかから 派 生 し た も のです。 これらの 各 PLL は、 CPU、 DDR、 およびペリフェラル サブシステムのク ロ ッ クに<br />

緩 く 関 連 付 け られています。 通 常 の 動 作 では、 PLL はイネーブルになっており、PS_CLK クロック ピンで 駆 動 されま<br />

す。 バイパス モード では、 PLL の 代 わ り に PS_CLK ピン 上 のクロック 信 号 がさまざまなクロック ジ ェ ネ レー タ ーの<br />

ソースとなり ます。 ブート プロセスの 後 、 バイパス モードおよび 各 PLL の 出 力 周 波 数 は、 ソ フ ト ウ ェ アに よ り 個 別<br />

に 制 御 でき ます。<br />

CPU クロック ドメインは、CPU_6x4x、 CPU_3x2x、 CPU_2x、および CPU_1x の 4 つの ク ロ ッ ク で 構 成 さ れてい ます。<br />

これらの 4 つの ク ロ ッ ク の 名 前 は、 周 波 数 に 基 づいています。 周 波 数 は、 6:3:2:1 (6:2:1 と 省 略 ) または 4:2:2:1 (4:2:1 と<br />

省 略 ) のいずれかの 比 率 で 関 連 付 け られています。 すべての CPU ク ロ ッ ク は、 お 互 いに 同 期 し ています。 DDR には<br />

DDR_3x と DDR_2x の 2 つの 独 立 し た ク ロ ッ ク ド メ イ ンがあ り ます。 こ れ ら の ク ロ ッ ク は、 お 互 いに 非 同 期 で、 CPU<br />

ク ロ ッ ク と も 非 同 期 です。ほ と んどの I/O ペリフェラル ク ロ ッ ク には 専 用 分 周 器 があ り ます。 各 ペ リ フ ェ ラ ル クロッ<br />

ク はほかのすべての ク ロ ッ ク と 完 全 に 非 同 期 です。<br />

PS ‐ PL インターフェイス<br />

PL AXI チャネル (AXI_HP、 AXI_ACP、 および AXI_GP) には、 PS と PL の 間 に 非 同 期 イ ン ターフ ェ イ スがあ り ます。<br />

ク ロ ッ ク 乗 せ 換 えが 発 生 する 部 分 の 同 期 化 は PS 内 にあ り 、 PL から PS にインターフェイス ク ロ ッ ク を 供 給 し ます。<br />

上 記 の 各 イ ン ターフ ェ イ スでは、 PL の 異 なる ク ロ ッ ク を 使 用 でき ます。<br />

PS から PL には 4 つの 周 波 数 プ ロ グ ラ マブル ファブリ ック クロック (FCLK [3:0]) が 供 給 されてお り 、 PS と PL の 境<br />

界 に 物 理 的 に 分 散 しています。これらのクロックは、クロックのソース (ARM、 DDR、 または I/O PLL) およびク ロ ッ<br />

ク の 出 力 周 波 数 を 設 定 する こ と に よ り 、 個 別 に 制 御 で き ます。 4 つの FCLK クロックが 同 じクロック ソース を 共 有 し<br />

ていて も、 こ れら の ク ロ ッ ク 間 に 位 相 関 係 があ る と は 限 り ません。 複 数 の FCLK 領 域 間 の イ ン ターフ ェ イ スには、 適<br />

切 なデザイ ン 制 約 を 使 用 して く ださい。 FCLK クロックは、PS - PL レベル シ フ タ ーが 有 効 にな る ま でデ ィ ス エーブ<br />

ルにな り ます。<br />

推 奨 : 1 つの FCLK を PL 内 にイ ン ス タ ンシエー ト された Clocking Wizard IP コ アに 配 線 し 、 複 数 の 位 相 が 揃 っ た 出 力<br />

ク ロ ッ ク を 生 成 する のが 推 奨 さ れる 方 法 です。<br />

FCLK を 使 用 する 際 の 利 点 と 欠 点 は、 次 の と お り です。<br />

• FCLK は、 次 の 状 況 で 推 奨 される PL クロックです。<br />

° プロセッサが PL ク ロ ッ ク 周 波 数 を 制 御 する 場 合 。<br />

° オンボード クロック ジ ェ ネレーターが 使 用 で き ない 場 合 。<br />

• FCLK は、 次 の 状 況 では 推 奨 さ れません。<br />

° PL ク ロ ッ ク 周 波 数 が FCLK でサポー ト さ れる 周 波 数 範 囲 を 超 えてい る 場 合 。<br />

° FPGA ピンで 提 供 されるクロックが PL で 使 用 さ れる 場 合 。こ れは、 受 信 データ のサンプ リ ン グに 入 力 ク ロ ッ<br />

ク を 使 用 する ソース 同 期 プ ロ ト コルではよ く あ り ます。<br />

° 低 クロッ ク ジ ッ ターが 必 要 な 場 合 。<br />

° 特 定 の ク ロ ッ ク 供 給 が 必 要 な IP ブロックの 中 に FCLK を 使 用 で き ない も のがあ る 場 合 。<br />

- メモリ インターフェイス ジェネレーター (MIG) で 差 動 ク ロ ッ ク が 必 要 です。 このため、 ジ ッ ターが 原<br />

因 で 削 減 さ れた 周 波 数 を 除 き、 MIG には FCLK が 使 用 でき ません。<br />

- GT は、 基 準 ク ロ ッ ク と し てボー ド か ら の 差 動 ク ロ ッ ク を 使 用 する 必 要 があ り ます。<br />

PS クロック システムの 詳 細 は、『Zynq-7000 All Programmable SoC テクニカル リファレンス マニ ュアル』 (UG585) [ 参<br />

照 4] の 「 ク ロ ッ ク 」 の 章 を 参 照 し て く だ さ い。<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 30<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 2 章 : システム レベルの 考 慮 事 項<br />

PL<br />

PL には、 グ ローバルまたは リ ージ ョ ナル クロック バッファー (BUFG、 BUFR)、 位 相 ロック ループ (PLL)、 混 合 モー<br />

ド クロック マネージャー (MMCM) など、FPGA デバイ スで 一 般 的 に 使 用 さ れる ク ロ ッ ク プ リ ミ テ ィ ブ を 使 用 で き ま<br />

す。 Clocking Wizard IP コアは、 8 つまでのコンフ ィ ギュレーシ ョ ン 可 能 な 出 力 ク ロ ッ クを 持 つ MMCM/PLL プ リ ミ<br />

ティブのラッパーをインプリ メントします。 ダイナミック リコンフィギュレーション ポー ト (DRP) または AXI-Lite<br />

イ ン ターフ ェ イ ス を 使 用 し て、 ク ロ ッ ク 周 波 数 のダ イナ ミ ッ ク リコンフィギュレーションを 有 効 にできます。<br />

ヒント : Zynq システムを PS_CLK に 基 づ く 1 つの 入 力 クロ ッ クを 使 用 して 構 築 し、すべての PL クロックを FCLK お<br />

よび FPGA クロック リ ソ ースか ら 生 成 する のが 最 も 単 純 です。<br />

PS のパワーオン リセッ ト<br />

PS のパワーオン リセット (PS_POR_B) は、 すべての PS 電 源 が 必 要 な 電 圧 レベルで 安 定 する まで、 PS を リ セ ッ ト 状<br />

態 に 保 持 するために 使 用 される ア ク テ ィ ブ Low の 信 号 です。 こ の 信 号 は、 電 源 のパワーグ ッ ド 信 号 ま たは 電 圧 監 視<br />

チ ッ プか ら 生 成 する 必 要 があ り ます。 PS_POR_B が 解 放 された と きに、 システム クロック (PS_CLK) が 2,000 ク ロ ッ<br />

ク サイクル 間 安 定 している 必 要 があり ます。PS_POR_B は、 VCCO_MIO0 に プ ル ア ッ プす る 必 要 が あ り ま す。<br />

PS_POR_B をアサートする 際 は、 パルスを 100s よ り 長 く する 必 要 があ り ます。<br />

パワーオン リセットは、チップのマスター リセッ トです。 デバイス 上 でリセッ ト 可 能 なすべてのレジスタをリセッ<br />

トし、すべての PS RAM (OCM、 FIFO、 バッファーなどを 含 む) を リセットして、BootROM の 実 行 を 開 始 し て PL コ<br />

ンフィギュレーショ ンをク リアします。PS_POR_B が Low に 保 持 されている 間 、PS I/O は ト ラ イ ス テー ト に 保 持 さ れ<br />

ます。<br />

PS システム リセッ ト<br />

PS システム リセット (PS_SRST_B) は、 主 にデバ ッ グに 使 用 される ア ク テ ィ ブ Low の 信 号 です。 ブー ト プ ロ セ ス を<br />

開 始 する には、 こ の 信 号 を High に 接 続 する 必 要 があ り ます。 PS_SRST_B を 使 用 しない 場 合 は、 VCCO_MIO1 にプル<br />

アップします。 PS_POR_B をアサートする 際 は、 パルスを 1s よ り 長 く する 必 要 があ り ます。<br />

PS システム リセット (PS_SRST_B) は、 デバ ッ グ 環 境 に 影 響 を 与 えずにすべての 機 能 ロ ジ ッ ク を リ セ ッ ト し ます。 こ<br />

れは、デバッ グ コ ン フ ィ ギ ュ レーシ ョ ン を 消 去 するパワーオン リセット (PS_POR_B) と 異 なります。PS_SRST_B は、<br />

すべての PS RAM を 消 去 し、 BootROM の 実 行 を 開 始 し て、 PL コ ン フ ィ ギ ュ レ ーシ ョ ン を すべて ク リ ア し ま すが、<br />

PS_POR_B のよ うにブート モード ス トラッピング ピンをサンプ リ ング し 直 し ません。 ブー ト モー ド は 前 回 のパワー<br />

オン リセット と 同 じになり、 セキュリティ レベルは 以 前 のブー ト の も のが 維 持 さ れます。<br />

PS_POR_B 信 号 をデ ィ アサー ト する 前 に、 PS_SRST_B 信 号 をデ ィ アサー ト する 必 要 があ り ます。 PS_POR_B リセッ<br />

トによる BootROM の 実 行 中 に PS_SRST_B リセット 信 号 がアサートされると、 システムが 停 止 します。PS_SRST_B<br />

と PS_POR_B の 両 方 を 使 用 する 場 合 は、 PS_POR_B を 最 後 にデ ィ アサー ト する 必 要 があ り ます。 詳 細 は、 ザ イ リ ン ク<br />

ス アンサー 52847 [ 参 照 68] を 参 照 して く ださい。<br />

PL をク リアしない PS リセット ソ リ ューシ ョ ンが 必 要 な 場 合 は、 ザ イ リ ン ク ス テクニカル サポー ト ま でご 連 絡 く だ<br />

さい。<br />

システム ソフトウェア リセッ ト<br />

システム ソフトウェア リセット (SLCR ソフト リセットとも 呼 ばれる) は、 PSS_RST_CTRL[SOFT_RST] に 書 き 込 む<br />

ことによりアサートされ、PS_SRTS_B ピンをアサートするのと 同 じ 効 果 があります。 すべての PS RAM が ク リ ア さ<br />

れ、 PL もリセットされます。<br />

ウォッチド ッグ タイマーのリセット<br />

ウォッチドッグ タイマーのリセットには、システム ウォッチドッグ (SWDT) と 2 つの ARM ウォッチドッグ (AWDT0<br />

および AWDT1) の 2 種 類 の ソ ースがあ り ます。 SWDT は 常 にシステム 全 体 を リ セ ッ ト し、 AWDT は 関 連 付 け ら れて<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 31<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 2 章 : システム レベルの 考 慮 事 項<br />

いる ARM コア (CPU リセット と 同 じ 効 果 ) またはシステム 全 体 (システム ソフトウェア リセットと 同 じ 効 果 ) を リ<br />

セッ トするのに 使 用 できます。<br />

CPU リセッ ト<br />

各 ARM コア 用 に 2 つの CPU リセットがあり、A9_CPU_RST_CTRL[A9_RSTx] に 書 き 込 む こ と に よ り アサー ト し ま<br />

す。1 つのプロセ ッ サへの CPU リセットは、もう 1 つの CPU から JTAG または PL を 介 し て 適 用 する 必 要 があ り ます。<br />

デバッ グ リセッ ト<br />

デバ ッ グ リセットには、デバッグ システム リセット とデバッグ リセットの 2 つがあ り 、 ARM DAP か ら 送 信 さ れ、<br />

JTAG によ り 制 御 されます。デバッグ システム リセットはシステム ソフトウェア リセット と 同 じ 効 果 があり、デバッ<br />

グ リセットはデバッグ ロジックのみをリセッ ト します。<br />

ペリフェラル リセッ ト<br />

個 々のペ リ フ ェ ラ ルの リ セ ッ ト は、 SLCR 内 のプ ロ グ ラ ム 可 能 なビ ッ ト を 使 用 し て、 ソ フ ト ウ ェ アの 制 御 下 でアサー<br />

トできますが、ペリフェラル ブロック レベルで リ セッ ト をアサートする こ とはお 勧 めしません。AXI トランザクショ<br />

ンではタ イ ムア ウ ト 機 構 はサポー ト さ れないので、 実 行 中 ま たは 保 留 中 の ト ラ ンザ ク シ ョ ン をすべて 完 了 せずにペ リ<br />

フ ェ ラルを リ セ ッ ト する と 、 シ ス テムが 停 止 する こ と があ り ます。 ペ リ フ ェ ラ ルの リ セ ッ ト をアサー ト する 場 合 は、<br />

実 行 中 および 保 留 中 の ト ラ ンザ ク シ ョ ン をすべて 完 了 し、 リ セ ッ ト の 前 にそれ 以 上 の ト ラ ンザ ク シ ョ ンが 発 行 さ れな<br />

い よ う にする 必 要 があ り ます。<br />

PL リセッ ト<br />

PS は、PL に 4 つのプロ グ ラ ム 可 能 な リ セ ッ ト 信 号 (FCLK_RESET [3:0]) を 供 給 し ます。 リ セ ッ ト は 個 別 にプ ロ グ ラ ム<br />

可 能 で、 PL ク ロ ッ ク と は 独 立 し ています。 POR またはシステム 全 体 のリセッ トの 後 、BootROM の 実 行 が 終 了 し、 PS<br />

から PL へのレベル シフターが 有 効 になるまで、 リセッ ト 信 号 はディアサート されません。<br />

FCLK_RESET は、 同 じ 番 号 の FCLK と 緩 く 関 連 付 けられているので、 FCLK_RESET を PS 外 部 に 伝 搬 さ せ る には<br />

FCLK が ト グル し てい る 必 要 があ り ます。 こ の リ セ ッ ト は PL への 非 同 期 リ セ ッ ト であ り 、 必 要 に 応 じ て PL 内 で リ<br />

セ ッ ト を 同 期 する 必 要 があ り ます。<br />

推 奨 : FCLK_RESET ラ イ ン を 同 期 する には、 こ の 信 号 を proc_sys_reset IP コ アの 外 部 リ セ ッ ト 入 力 ポー ト に 接 続 し て<br />

ください。 これにより、 その 他 の PL IP コ アに 接 続 さ れる リ セ ッ ト 出 力 信 号 を 最 低 速 の ク ロ ッ ク に 同 期 する こ と がで<br />

きます。<br />

FCLK_RESET 信 号 で PL 内 の AXI ベースの IP を 駆 動 し、 前 述 の 初 期 デ ィ アサー ト の 後 に 再 アサー ト する 場 合 、 プ ロ<br />

セス ブ ロ ッ ク に 対 する 実 行 中 ま たは 保 留 中 の ト ラ ンザ ク シ ョ ン をすべて 完 了 せずに IP を リセットすると、システム<br />

が 停 止 し ます。 リ セ ッ ト をアサー ト する 前 に、 システムですべての AXI マスターをアイ ドル 状 態 にし、すべての AXI<br />

ト ラ ンザ ク シ ョ ン を 終 了 する 必 要 があ り ます。<br />

割 り 込 み<br />

汎 用 割 り 込 みコ ン ト ローラー<br />

Zynq-7000 AP SoC には 多 数 の 割 り 込 みソースがあるので、MPCore マルチコア プロセッサにはこれらの 割 り 込 みソー<br />

ス を 供 給 、 優 先 付 け、 アービ ト レーシ ョ ンする ための GIC ( 汎 用 割 り 込 みコ ン ト ローラー ) アーキテクチャのインプ<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 32<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 2 章 : システム レベルの 考 慮 事 項<br />

リメンテーションが 含 まれています。GIC は、 割 り 込 みを 特 定 のプロ セ ッ サの nIRQ ラインおよび nFIQ ラインにマッ<br />

プ し ます。 複 数 の 同 時 割 り 込 みは、 1 つま たは 複 数 のプ ロ セ ッ サ 割 り 込 みラ イ ンに 順 次 供 給 さ れます。<br />

概 念 的 には、GIC に 割 り 込 み 分 配 ブ ロ ッ ク ( 割 り 込 み 分 配 器 ) が 1 つとプロセッサ 割 り 込 みブロックが 2 つ 含 まれてい<br />

ます。 各 ブロックには、 レジスタのセッ トが 含 まれます。 プロセッサ 割 り 込 みブロッ クのレジスタは、 接 続 されてい<br />

る プ ロ セ ッ サでプ ラ イベー ト バスを 使 用 してのみアクセス 可 能 で、 も う 1 つの CPU またはシステムのほかの AXI マ<br />

ス ターでア ク セスする こ と はで き ません。 割 り 込 み 分 配 器 は 両 方 のプ ロ セ ッ サか ら ア ク セス 可 能 で、 一 部 のレ ジ ス タ<br />

はセキュアおよび 非 セキュア アクセス 用 にバンキングされています。<br />

X-Ref Target - Figure 2-9<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

図 2‐9 : システム レベルのブロッ ク デザイ ン<br />

GIC に 送 信 さ れる 割 り 込 みは、 制 御 な し (レガシ) または 制 御 ありにできます。 レガシ 割 り 込 みは GIC によ り 制 御 さ<br />

れず、 割 り 込 みハン ド ラーは GIC レ ジ ス タ にア ク セス し ません。 制 御 割 り 込 みは GIC によ り 制 御 され、 割 り 込 みハ<br />

ンドラーは GIC レジスタにアクセスします。<br />

割 り 込 み 分 配 器 に よ り 、 制 御 割 り 込 み ソース を 次 の よ う に 制 御 で き ます。<br />

• ハー ド ウ ェ ア コ ン フ ィ ギ ュ レーシ ョ ンの 制 限 に 応 じ て、 割 り 込 みをエ ッ ジ トリガーまたはレベル トリガーとし<br />

て 定 義 し ます。<br />

• 割 り 込 みに、 2 進 小 数 点 をプ ロ グ ラ ム 可 能 な 5 ビ ッ ト の 優 先 度 を 割 り 当 て ます。<br />

• 割 り 込 みに TrustZone テクノロジ セキュ リ ティ ステート 割 り 当 てます。セキュアと 指 定 されている 割 り 込 みはグ<br />

ループ 0 割 り 込 み と 呼 ばれ、 非 セキ ュ ア 割 り 込 みはグループ 1 割 り 込 み と 呼 ばれます。<br />

• 共 有 ペ リ フ ェ ラ ル 割 り 込 みを 1 つま たは 両 方 のプ ロ セ ッ サに 配 線 し ます。<br />

注 記 : PPI (Private Peripheral Interrupts) は 各 CPU 専 用 で、GIC を 介 さずにほかの 部 分 に 配 線 する こ と はで き ません。<br />

• ソ フ ト ウ ェ ア 生 成 割 り 込 みを 1 つま たは 両 方 のプ ロ セ ッ サに 配 線 し ます。<br />

• 各 割 り 込 みの 保 留 ス テー ト を 保 存 し て 復 元 し ます。 こ れは、 低 消 費 電 力 アプ リ ケーシ ョ ンで 有 益 です。<br />

割 り 込 みアーキテ ク チ ャ<br />

このセクショ ンでは、 PS および PL 割 り 込 みソース、PS 割 り 込 み 階 層 、 Cortex-A9 プ ロ セ ッ サに 関 する 考 慮 事 項 を 示<br />

します。<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 33<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 2 章 : システム レベルの 考 慮 事 項<br />

PS 割 り 込 みソース<br />

各 Cortex-A9 プ ロ セ ッ サには、 次 の ソ ースで 割 り 込 むこ と がで き ます。<br />

• ソ フ ト ウ ェ アでいずれかのプ ロ セ ッ サに 割 り 込 むため、 16 個 の ソ フ ト ウ ェ ア 生 成 割 り 込 み (SGI) があ り ます。<br />

• 5 つのプラ イベー ト ペリフェラル 割 り 込 み (PPI) があ り ます。 PL からの 割 り 込 みが 2 つ (FIQ と IRQ) あ り 、 グ<br />

ローバル タ イ マー、 プ ラ イベー ト タイマー、および AWDT からの 割 り 込 みが 1 つずつあ り ます。<br />

• 60 個 の 共 有 ペ リ フ ェ ラル 割 り 込 みがあ り ます。 44 個 の PS I/O ペ リ フ ェ ラ ル 割 り 込 み と 16 個 の PL 割 り 込 みがあ<br />

ります。<br />

• 4 つの PL 割 り 込 みは GIC をバイパス し、 直 接 プ ロ セ ッ サに 割 り 込 む こ と がで き る ので、 割 り 込 みレ イ テンシを<br />

削 減 で き ます。<br />

• 割 り 込 みではあ り ませんが、 CPU で WFE 命 令 を 使 用 し て 意 図 的 に 停 止 し、 ほかの CPU または PL か ら の 専 用 入<br />

力 ラ イ ンの イベン ト を 待 機 する こ と がで き ます。<br />

PL 割 り 込 みソース<br />

割 り 込 みに 応 答 する PL の 各 デバイ スでは、 必 要 な 場 合 はそれぞれに 割 り 込 みコ ン ト ローラーを 用 意 する 必 要 があ り<br />

ます。 PS から PL に 対 し て 次 の 割 り 込 みを 送 信 で き ます。<br />

• PS からの 29 個 の 共 有 ペ リ フ ェ ラ ル 割 り 込 み。 こ れ ら は、 すべてではあ り ませんが 多 く の PS ペリフェラルに 対<br />

応 します。<br />

• EMIO GPIO、 PL の AXI_GPIO 出 力 チャ ネルを 使 用 する か、 ま たは SEV 命 令 を 使 用 し てプ ロ セ ッ サご と のハー ド<br />

ウェア イベン ト ラ イ ン をアサー ト する こ と に よ り 、プ ロ セ ッ サで ソ フ ト ウ ェ ア 生 成 割 り 込 みを 使 用 し て PL に 割<br />

り 込 むこともできます。<br />

割 り 込 み ID<br />

Zynq-7000 AP SoC では、 IRQ ID #0 ~ #95 が 次 のよ う にサポー ト されています。<br />

• IRQ ID #0 ~ #15 : ソ フ ト ウ ェ アで 生 成 さ れ る 割 り 込 みに 割 り 当 て ら れ、 プ ロ セ ッ サがホ ス テ ィ ン グする ソ フ ト<br />

ウェアも 含 め、 ソフトウェアからプロセッサに 割 り 込 みを 送 信 できます。<br />

• IRQ ID #16 ~ #31 : プライベート ペ リ フ ェ ラ ル 割 り 込 みに 割 り 当 て られます。IRQ ID #16 ~ #26 は 使 用 さ れませ<br />

ん。 Zynq-7000 AP SoC では、 IRQ ID #27 ~ #31 は 次 のよ う にイ ンプ リ メ ン ト されます。<br />

a. IRQ ID #27 : プロセッサ グローバル タイマーにより 使 用 されます。<br />

b. IRQ ID #28 : 制 御 FIQ に よ り 使 用 さ れ、 制 御 な し 入 力 で も あ り ます。<br />

c. IRQ ID #29 : プロセッサ プライベート タイマーにより 使 用 されます。<br />

d. IRQ ID #30 : プロセッサ AWDT によ り 使 用 されます。<br />

e. IRQ ID #31 : 制 御 IRQ に よ り 使 用 さ れ、 制 御 な し 入 力 で も あ り ます。<br />

• IRQ ID #32 ~ #95 : 共 有 ペ リ フ ェ ラ ル 割 り 込 みに 割 り 当 て ら れます。 IRQ ID #36 は 使 用 されません。 Zynq-7000<br />

AP SoC では、 IRQ ID #32 ~ #35 と #37 ~ #95 がインプリ メン ト されます。 31 個 の 割 り 込 み (IRQ ID #32 ~ #62)<br />

は、ユーザーの 変 更 に 対 してすべてをロックまたはロックなしに 設 定 できます。<br />

特 有 の 機 能<br />

割 り 込 みはPS または PL から 送 信 し、PS プロセッサまたは PL ファブリックの 専 用 ハードウェア (MicroBlaze など)<br />

で 割 り 込 みに 応 答 で き ます。 こ れに よ り 、 次 のセ ク シ ョ ンで 説 明 する よ う に、 Zynq-7000 AP SoC 特 有 の 機 能 が 可 能 に<br />

なります。<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 34<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 2 章 : システム レベルの 考 慮 事 項<br />

フ ァ ブ リ ッ ク での 割 り 込 み 処 理<br />

割 り 込 み 処 理 を PL に 移 行 する ため、 カ ス タ ム ハー ド ウ ェ アを 作 成 でき ます。 こ のよ う にする と 、 割 り 込 みレ イ テン<br />

シが 短 くなり、 確 定 的 なものになります (クロック サイクル 精 度 )。 また、カスタム ハー ド ウ ェ アでプロ セ ッ サでは<br />

時 間 のかか る 計 算 をプ ロ セ ッ サ と 並 列 に 実 行 で き ます。 こ の 場 合 、データ スティ ッチングが 必 要 となり、PL マスター<br />

のキャ ッシュ コ ヒーレンシに ACP が 有 益 であ る こ と があ り ます。<br />

カスタム ハー ド ウ ェ アを 割 り 込 みを フ ィ ルター 処 理 に 使 用 し、 PS 割 り 込 みの 頻 度 と プ ロ セ ッ サの 負 荷 を 削 減 する こ<br />

と も でき ます。 これには、 複 数 の 低 レベル 割 り 込 みをそれよ り 少 ない 数 の 高 レベル 割 り 込 みに 変 換 し ます。<br />

フ ァ ブ リ ッ クの 拡 張 と し てのプ ロセ ッ サ<br />

Zynq-7000 AP SoC のプロセッサをフ ァブ リ ッ ク ハー ド ウ ェ アの 拡 張 と し て 使 用 し、 ハー ド ウ ェ アに イ ンプ リ メ ン ト<br />

する のが 困 難 な ソ フ ト ウ ェ アで タ ス ク を 実 行 させる こ と がで き ます。タ ス ク を 開 始 する ために PL から PS に 割 り 込 み<br />

を 送 信 し、 PS から PL に 割 り 込 みを 送 信 し て タ ス ク の 完 了 を 通 知 する こ と がで き ます。 こ の 方 法 は、 PS DMA330 コ<br />

ン ト ローラーで 追 加 の 実 行 ス レ ッ ド を 提 供 する ために 使 用 で き ます。<br />

ハン ド ラーに OCM を 使 用<br />

DDR メモリから 割 り 込 みハンド ラーをフェッチするのに 時 間 がかかり 過 ぎるこ とがあり ます。 Zynq-7000 AP SoC に<br />

は 大 型 の L2 キ ャ ッ シ ュがあ り ますが、 割 り 込 みが 発 生 し た と きに 割 り 込 みハン ド ラーをキ ャ ッ シ ュする こ と はでき<br />

ません。 この 場 合 、 割 り 込 みハン ド ラーをオンチップ メモリ (OCM) に 配 置 する と 有 益 であ る こ と があ り ます。 こ の<br />

よ う にする と、 割 り 込 みハン ド ラーを フ ェ ッ チするのにかかる 時 間 の 変 動 は L1 キャッシュ ミスに 制 限 され、ジッ<br />

ターが 削 減 されます。<br />

プロセッサ アフ ィニティ<br />

2 つのプ ロ セ ッ サがあ る ので、 ポー リ ン グ 操 作 と 割 り 込 みハン ド ラーを 2 つのプ ロ セ ッ サに 分 配 し、 レ イ テンシを 削<br />

減 し て 応 答 時 間 を 向 上 で き ます。 こ れは、 同 期 ま たは 非 同 期 のマルチプ ロ セ ッ サ システムで 実 行 できます。<br />

FIQ および IRQ の 使 用<br />

Zynq の 各 Cortex-A9 には、ARM 汎 用 割 り 込 みコ ン ト ローラーで 駆 動 さ れる 2 つの 割 り 込 みラ イ ン (nFIQ および nIRQ)<br />

があ り ます。 接 頭 辞 n は、 ア ク テ ィ ブ Low の 割 り 込 みであ る こ と を 示 し ます。 FIQ のレイテンシは IRQ よ り も 短 く 、<br />

通 常 優 先 度 の 高 い 割 り 込 みに 使 用 さ れます。 IRQ は、 レ イ テンシの 短 い 応 答 が 必 要 でない 割 り 込 みに 使 用 さ れます。<br />

FIQ は 常 に IRQ を 横 取 りし、 割 り 込 まれた IRQ ハン ド ラーは FIQ ハン ド ラーが 完 了 する と 再 開 し ます。<br />

TrustZone<br />

Zynq-7000 AP SoC は ARM TrustZone テクノロジを 使 用 しており、 システム コ ン ポーネン ト を 保 護 す る か し ないかを<br />

指 定 で き ます。 た と えば、 各 プ ロ セ ッ サを 異 な る 時 間 にセキ ュ ア モードおよび 非 セキ ュ ア モー ド で 動 作 さ せる こ と<br />

がで き ます。 同 様 に、 割 り 込 みをセキ ュ アおよび 非 セキ ュ アにする こ と がで き ます。 こ れに よ り 、 セキ ュ ア コンポー<br />

ネン ト と 非 セキュア コ ンポーネン ト を 分 離 で き ます。 こ の 場 合 、 優 先 度 の 高 い FIQ をセキ ュ ア 割 り 込 みに 使 用 し、 優<br />

先 度 の 低 い IRQ を 非 セキ ュ ア 割 り 込 みに 使 用 で き ます。 多 く のセキ ュ ア 設 定 も ロ ッ ク し、 変 更 さ れない よ う にする こ<br />

とができます。<br />

システム 設 計 に 関 する 考 慮 事 項<br />

システム デザイ ンでは、 さ まざまな 割 り 込 みイ ンプ リ メ ンテーシ ョ ン オプシ ョ ンのパフ ォーマン スへの 影 響 を 考 慮<br />

する 必 要 があ り ます。<br />

• レ イ テンシおよび 関 連 のジ ッ ターを 特 性 評 価 し、ハー ド ウ ェ ア ま たはオペレーテ ィ ング シ ス テムで 管 理 する 必 要<br />

があ り ます。 ジッ ターは、 OS で 予 測 不 可 能 な 時 間 割 り 込 みがマス ク さ れた 場 合 や、 よ り 優 先 度 の 高 い 割 り 込 み<br />

が 処 理 されるために 発 生 し ます。<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 35<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 2 章 : システム レベルの 考 慮 事 項<br />

• 割 り 込 みの 処 理 が 遅 れた 場 合 のペ リ フ ェ ラル と 関 連 の ソ フ ト ウ ェ アでの 対 処 方 法 を 定 義 し てお く 必 要 があ り ま<br />

す。 選 択 肢 には、 データ を 破 棄 する、 リ モー ト データ ソース を ス ロ ッ ト ルま たは 一 時 停 止 する、 ハー ド ウ ェ ア<br />

で 低 いパフ ォーマン スで 実 行 でき る よ う にする などの 方 法 があ り ます。<br />

• 平 均 およびワース ト ケースの 状 況 を 想 定 し た 場 合 、 プ ロ セ ッ サの 使 用 率 はペ リ フ ェ ラ ル サービスおよびほかの<br />

タ ス ク に 十 分 です。<br />

• 割 り 込 みハン ド ラーの メ モ リ ロケーションは、 命 令 フェッチ パフ ォーマン スに 影 響 し ます。 プ ロ セ ッ サに 近 い<br />

メ モ リ の 方 がレ イ テンシが 短 く な り ます。 割 り 込 みサービ ス ルーチン をキ ャ ッ シ ュ ラ イ ン 境 界 で 開 始 する よ う<br />

に 揃 え る と 、 レ イ テンシが 向 上 し ます。<br />

• 割 り 込 まれたペ リ フ ェ ラ ルがプ ロ セ ッ サでキ ャ ッ シ ュ 可 能 なデータ を 操 作 する 場 合 、 プ ロ セ ッ サでキ ャ ッ シ ュ を<br />

無 効 にま たは 消 去 し た り 、ACP などのハードウェア コヒーレンシ メ カニズム を 使 用 する こ と に よ り 、キ ャ ッ シ ュ<br />

コ ヒ ーレ ンシを 保 持 する 必 要 があ り ます。 Zynq-7000 AP SoC では、 ACP ポー ト を 使 用 する PL ペ リ フ ェ ラ ルでは<br />

こ の 制 限 が 回 避 さ れます。<br />

• 非 対 称 マルチプ ロ セ ッ シング (AMP) をインプリ メン トするシステムでは、 割 り 込 みおよびほかのシステム リ<br />

ソースのオーナーシ ッ プを 確 立 し てお く 必 要 があ り ます。<br />

エンベデッ ド デバイスのセキュ リ テ ィ<br />

現 代 のエンベデ ッ ド デバイ スにおける セキ ュ リ テ ィ の 意 味 は、 アプ リ ケーシ ョ ンによ って 異 な り ます。 携 帯 電 話 で<br />

は、 セキ ュ リ テ ィ は 銀 行 口 座 番 号 やパス ワー ド などの 個 人 情 報 への 不 正 なア ク セス を 防 ぐ こ と を 意 味 し ます。 データ<br />

センター スイッチでは、 ハッカーが 不 正 にログインし、 ネッ トワーク サービ スの 混 乱 を 招 く こ と を 防 ぐ こ と を 意 味<br />

し ます。 フ ラ ッ シ ュ メ モ リ に 格 納 さ れてい るバイナ リ ソフトウェア ロ ジ ッ ク の 盗 難 および 逆 コ ンパイルや、 物 理 的<br />

なデバ イ スの 解 体 に よ る リ バース エンジニア リ ングなども、 エンベデッ ド デバイ スでのセキ ュ リ テ ィ の 課 題 と な り<br />

ます。<br />

エンベデッ ド デバイ スに 対 する 潜 在 的 脅 威 には、 次 の も のがあ り ます。<br />

• エンベデッ ド デバイ ス 内 のデータ の 機 密 性<br />

• エンベデッ ド デバイ スの ク ローン 作 成<br />

• サービ ス 拒 否<br />

• エンベデッ ド デバイ スの 動 作 を 変 更 するマルウ ェ アの 挿 入<br />

• 内 部 関 係 者 に よ る 外 部 へのキーの 供 給<br />

上 記 の 例 はハ ッ カーおよび 競 合 他 社 か ら の 脅 威 です。 出 来 の 悪 いプ ロ グ ラ ムが 原 因 でその 他 のシ ス テム セキュ リ ティ<br />

への 脅 威 が 発 生 する こ と も あ り ます。 その よ う なプ ロ グ ラ ムは、 エンベデ ッ ド デバイ スのフ ラ ッ シ ュに 格 納 されてい<br />

るほかのプログラ ムやユーザー データを 誤 って 破 損 したり、プロセッサまたはペリ フェラルのバンド 幅 を 独 占 してエ<br />

ンベデッ ド デバイ スの 通 常 の 動 作 を 妨 げる こ と があ り ます。<br />

Zynq-7000 AP SoC は、 エンベデッ ド シ ス テムのセキ ュ リ テ ィ を 向 上 する よ う 設 計 さ れています。 こ のセ ク シ ョ ンで<br />

は、 さ ま ざ ま な レベルのセキ ュ リ テ ィ を 提 供 する ために 使 用 可 能 な 次 の よ う な Zynq-7000 AP SoC のセキュ リ テ ィ 機<br />

能 について 説 明 し ます。<br />

• ブー ト イ メ ージ と ビ ッ ト ス ト リ ームの 暗 号 化 および 認 証 (セキュア ブー ト )<br />

• システムを 異 なるセキュア ゾーン (TrustZone) に 分 割<br />

• Zynq-7000 AP SoC での 非 同 期 マルチプ ロ セ ッ シン グ (AMP) の 展 開<br />

• Zynq-7000 AP SoC での Linux 展 開<br />

セキュア ブート<br />

Zynq-7000 AP SoC を 使 用 したエンベデッ ド システムでは 通 常 、デバイスがもともと 意 図 したのとは 異 なる 方 法 で 使<br />

用 さ れるのを 防 ぐ 必 要 があ り ます。Zynq-7000 AP SoC を 使 用 したエンベデッ ド シ ス テムに 通 常 、 ソ フ ト ウ ェ ア (PS イ<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 36<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 2 章 : システム レベルの 考 慮 事 項<br />

メージ) と PL ビットスト リームの 最 低 2 つのプロ グ ラ マブル コ ン ポーネ ン ト があ り ます。 現 場 に 設 置 さ れた 後 、 シ<br />

ステム ブー ト に 信 頼 で き ない 破 損 し たプ ロ グ ラ マブル コ ンポーネン ト が 使 用 さ れない よ う にシ ス テム を 設 計 する 必<br />

要 があ り ます。 ま た、 悪 質 な 競 合 他 社 に PS イ メージまたは PL ビッ トスト リームを 盗 まれないようにするための、プ<br />

ログラマブル コ ンポーネン ト の 盗 難 に 対 処 する セキ ュ リ テ ィ を 含 め る 必 要 があ り ます。 不 正 なプ ロ グ ラ マブル コン<br />

ポーネン ト か ら のブー ト を 回 避 する ためには 認 証 が 使 用 さ れ、プ ロ グ ラ マブル コ ンポーネン ト の 盗 難 を 回 避 する ため<br />

には 暗 号 化 が 使 用 さ れます。<br />

Zynq-7000 AP SoC にはハー ド ウ ェ ア と ソ フ ト ウ ェ アに 複 数 の 機 能 (BootROM) があ り、 信 頼 されるプログラマブル コ<br />

ンポーネン ト (ソフトウェアおよび PL ビッ トスト リーム) が Zynq-7000 AP SoC のブー ト に 使 用 さ れ る よ う コ ン フ ィ<br />

ギュレーションできます。セキュア ブー ト モー ド では、 外 部 ブー ト デバイ スは NOR、NAND、SDIO、または Quad-SPI<br />

フ ラ ッ シ ュ に 制 限 さ れます。 JTAG やその 他 の 外 部 イ ン ターフ ェ イ スからのセキ ュ ア ブー ト は 実 行 でき ません。<br />

PS ソフトウェアのブート フロー<br />

図 2-10 に、 PS のブー ト フローを 示 します。<br />

X-Ref Target - Figure 2-10<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

図 2‐10 : PS のブー ト フロー<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 37<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 2 章 : システム レベルの 考 慮 事 項<br />

パワーオン BootROM CRC チェック<br />

電 源 投 入 後 に 最 初 に 実 行 さ れる ソ フ ト ウ ェ ア コンポーネントは BootROM です。 FSBL を 読 み 込 む 前 に、 BootROM で<br />

オプシ ョ ンの 128KB CRC チェッ クを 実 行 できます。 CRC チェッ クは eFuse 設 定 で 制 御 さ れます。 Zynq-7000 AP SoC<br />

での eFuse のプ ロ グ ラ ミ ングに 関 する 詳 細 は、 『Zynq-7000 All Programmqable SoC のセキュア ブー ト 』 (XAPP1175) [ 参<br />

照 40] の 「Secure Key Driver」 セクシ ョ ンを 参 照 してください。<br />

BootROM の 実 行 中 、 モー ド ピ ンで 設 定 さ れた 外 部 ス ト レージ ブー ト デバイ ス (SDIO、 QSPI フラッシュ、 NAND フ<br />

ラッシュ、 または NOR フラッシュ ) からブート ヘ ッ ダーが 読 み 込 まれます。 ヘ ッ ダーにはデバイ スがセキ ュ ア ま た<br />

は 非 セキ ュ アでブー ト さ れる かを 示 す 情 報 が 含 まれます。 モー ド ピンの 詳 細 は、『Zynq-7000 All Programmable SoC テ<br />

クニカル リファレンス マニ ュアル』 (UG585) [ 参 照 4] の 「ブートおよびコンフィギュレーション」の 章 を 参 照 してく<br />

ださい。<br />

FSBL の RSA 認 証<br />

BootROM の 実 行 中 、 復 号 化 前 にセキ ュ ア FSBL を 認 証 、 ま たは RSA 公 開 キー 認 証 を 使 用 し て 実 行 前 に 非 セキ ュ ア<br />

FSBL を 認 証 で き ます。 こ の 機 能 は、 PS eFuse アレイの RSA 認 証 有 効 ヒ ューズを 飛 ばす こ と で 有 効 にな り ます。 FSBL<br />

を 認 証 する こ と に よ り 、 悪 質 な ま たは 破 損 し た FSBL によ り、 不 正 なプログラマブル コ ンポーネン ト を 使 用 し て 不 正<br />

なブー ト ソースから Zynq-7000 AP SoC がブー ト されるのを 防 ぐ こ と ができ ます。RSA 認 証 の 詳 細 は、『Zynq-7000 All<br />

Programmqable SoC のセキュア ブー ト 』 (XAPP1175) [ 参 照 40] を 参 照 して く ださい。<br />

セキュア ブート イメージ<br />

モノ リシック ブー ト イ メージのプログラマブル コンポーネント (BOOT.bin) には、 次 が 含 まれています。<br />

• PS イメージ コンポーネント<br />

° 初 期 化 ヘ ッ ダー : オプシ ョ ンでレジス タに 値 を 書 き 込 むこ とができ ます。 た と えば、BootROM が FSBL をコ<br />

ピーし て 実 行 する 前 に、 CPU のクロック スピードやブート デバイ ス ス ピー ド を 増 加 する ために 初 期 化 ヘ ッ<br />

ダーを 使 用 でき ます。<br />

° FSBL<br />

° オプシ ョ ンのセカンダ リ ブー ト ローダー (U-Boot またはベアメ タル ソフトウェアなど)<br />

° オプシ ョ ンのデータ イ メ ージおよび 複 数 の ELF<br />

° オプシ ョ ンの Linux uImage<br />

• PL ビッ トスト リーム<br />

必 要 であれば、 ブー ト イ メージをセキュアにできます。セキュア ブー ト イ メージに 含 まれる PS イ メージと PL ビ ッ<br />

トストリームは、ハッシュ ベース メッセージ 認 証 コード (HMAC) を 使 用 して 認 証 され、 AES (Advanced Encryption<br />

Standard) を 使 用 し て 暗 号 化 さ れます。セキ ュ ア ブー ト イ メ ージの 作 成 については、『Zynq-7000 All Programmqable SoC<br />

のセキュア ブー ト 』 (XAPP1175) [ 参 照 40] および 『Zynq-7000 All Programmable AP SoC セキュア ブー ト スタートアッ<br />

プ ガイド』 (UG1025) [ 参 照 20] を 参 照 して く ださい。<br />

AES および HMAC 認 証 エンジン<br />

Zynq-7000 AP SoC の PL には、 AES 復 号 化 および HMAC 認 証 エンジンが 含 まれています。 そのため、 セキ ュ ア ブー<br />

ト イ メージに PL ビッ トスト リームが 含 まれていなくても、セキュア ブー ト プロセス 中 PL に 電 源 を 投 入 する 必 要 が<br />

あります。BootROM はブー ト イ メ ージか ら 暗 号 化 さ れた イ メ ージを 読 み 出 す 前 に PL に 電 源 が 投 入 さ れてい る か を<br />

チェッ クするので、エンベデッ ド システムで 復 号 化 の 前 に 確 実 に PL に 電 源 が 投 入 さ れてい る よ う にする 必 要 があ り<br />

ます。 PL には 異 なる 電 源 レールから 電 源 が 投 入 されるので、 電 源 レールが 適 切 に 電 源 レギュレータに 接 続 されるよ<br />

うエンベデッド シ ス テム を 設 計 する 必 要 があ り ます。<br />

Bootgen<br />

BOOT.bin のプログ ラマブル コンポーネントは、 Bootgen というザイ リンクス ソフトウェア ツールを 使 用 し て アセ ン<br />

ブルし ます。 セキュア ブー ト オプシ ョ ンが 選 択 されている 場 合 、 Bootgen はプログ ラマブル コ ン ポーネン ト を 暗 号<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 38<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 2 章 : システム レベルの 考 慮 事 項<br />

化 します。 『Zynq-7000 All Programmqable SoC のセキュア ブー ト 』 (XAPP1175) [ 参 照 40] の 「セキュア ブー ト イ メ ー<br />

ジの 作 成 」 および 『Zynq-7000 All Programmable SoC ソ フ ト ウ ェ ア 開 発 者 向 けガ イ ド 』 (UG821) [ 参 照 7] の 「Bootgen の<br />

使 用 」 を 参 照 し て く だ さ い。<br />

キーの 生 成<br />

セキュア ブー ト の 認 証 および 復 号 化 プ ロ セスでは、 暗 号 キーを 使 用 する 必 要 があ り ます。 Zynq-7000 AP SoC で 使 用<br />

されるキーは、 次 のとおりです。<br />

• AES 256 ビッ ト キー<br />

• HMAC キー<br />

• RSA プライマリ 秘 密 キー (PSK)<br />

• RSA プライマリ 公 開 キー (PPK)<br />

• RSA セカンダ リ 秘 密 キー (SSK)<br />

• RSA セカンダ リ 公 開 キー (SPK)<br />

AES および HMAC エンジン 用 の 開 発 者 のキーを 提 供 する か、 Bootgen を 使 用 して 生 成 します。Bootgen では、 key0 お<br />

よび HMAC の 両 方 に 対 し て 1 つのキーが 作 成 されます。 key0 と HMAC に 固 有 の 値 が 必 要 な 場 合 は、 Bootgen を 2 回<br />

実 行 し て 各 実 行 か ら キーを 取 り 出 し、 3 回 目 の 実 行 でキーのユーザー 供 給 セ ッ ト と し て 供 給 で き ます。 AES キーは、<br />

Vivado または Secure Key Driver を 使 用 して PL 内 の eFuse または BBRAM にプログラ ム し ます。<br />

Zynq AP SoC では、 プラ イマ リ RSA キーを 使 用 してセカンダ リ キーを 認 証 し ます。 セカンダ リ キーは、 ソ フ ト ウ ェ<br />

ア、 データ、 ビ ッ ト ス ト リ ームな どのパーテ ィ シ ョ ン を 認 証 する のに 使 用 さ れます。 RSA プライマリおよびセカンダ<br />

リ キーを 作 成 する のには、 OpenSSL が 使 用 されます。 OpenSSL が 使 用 されるのは 利 用 しやすいから ですが、 ほかの<br />

方 法 を 使 用 し てキーを 生 成 する こ と も 可 能 です。 OpenSSL で 生 成 される RSA キーは、 プラ イベー ト キー と 公 開 キー<br />

のペアです。 公 開 キーはプ ラ イベー ト キーのサブセッ ト です。 セキュ リ テ ィ のため、 プラ イベー ト キーを 保 護 する<br />

ことが 重 要 です。RSA では、 製 造 業 者 のサ イ ト でパーテ ィ シ ョ ンに 署 名 する のにプ ラ イベー ト キーが 使 用 さ れ、 署<br />

名 の 確 認 用 に 公 開 キーのハッ シ ュが Zynq AP SoC エンベデッ ド デバイ スにプロ グ ラ ム されます。<br />

セキュ リテ ィのための eFuse / BBRAM<br />

RSA 認 証 では、 PPK のハッ シュは PS eFuse ア レ イ に 格 納 さ れます。 PS eFuse は、 Secure Key Driver を 使 用 し てプ ロ グ<br />

ラムします。AES 復 号 化 では、 キーは PL の eFuse または BBRAM に 格 納 されます。 eFuse セキュア ブー ト 、 BBRAM<br />

キー ディスエーブル、 JTAG チェーン ディスエーブルの PL eFuse 制 御 ビ ッ ト は、 Vivado または Secure Key Driver を<br />

使 用 し てプ ロ グ ラ ム し ます。 eFuse は 1 回 しかプログラムできません (OTP)。 eFuse を プ ロ グ ラ ム し た 後 、 パ ワーオン<br />

リセット (POR) が 必 要 です。<br />

Secure Key Driver およびこのセクシ ョ ンで 説 明 したその 他 のセキュ リ テ ィ 機 能 の 詳 細 は、 『Zynq-7000 All<br />

Programmqable SoC のセキュア ブー ト 』 (XAPP1175) [ 参 照 40] を 参 照 して く ださい。<br />

システムを 異 なるセキュア ゾーン (TrustZone) に 分 割<br />

セキュア ブー ト では、 暗 号 化 と 認 証 を 使 用 し て、 不 正 な ソ フ ト ウ ェ ア を 使 用 し たブー ト およびプ ロ グ ラ マブル PS イ<br />

メージと PL ビ ッ ト ス ト リ ームの 盗 難 を 防 ぐ こ と がで き ますが、 シ ス テムで 信 頼 さ れる ソ フ ト ウ ェ アが 実 行 さ れた 場<br />

合 にのみに 一 部 のシステム コ ンポーネン ト にア ク セスで き る よ う にする な ど、 追 加 の 保 護 レベルを 含 め る こ と が 必 要<br />

な 場 合 があ り ます。 こ れに よ り 、 動 的 に 読 み 込 まれる サー ド パーテ ィ アプ リ ケーシ ョ ンが 個 人 データ にア ク セ ス し た<br />

り、 システム リソースを 独 占 してシステム パフ ォーマン ス を 低 下 さ せる のを 回 避 する こ と がで き ます。 た と えば、<br />

サー ド パーテ ィ ソ フ ト ウ ェ アが 銀 行 口 座 の 詳 細 やパス ワー ド などの 個 人 データ を 格 納 する シ ス テム フラッシュにア<br />

クセスしないよ うにする 場 合 などです。<br />

ARM TrustZone テ ク ノ ロ ジを 使 用 する と 、 シ ス テム を 論 理 パーテ ィ シ ョ ンに 分 割 し、 信 頼 さ れる ソ フ ト ウ ェ アのみが<br />

ハー ド ウ ェ ア レベルのセキュア コンポーネントにアクセスできるようにすることで、 確 実 なランタイム セキュ リ<br />

テ ィ を 達 成 で き ます。 詳 細 は、 次 の 資 料 を 参 照 し て く だ さ い。<br />

• 『ARM Security Technology: Building a Secure System using TrustZone® Technology』 [ 参 照 74]<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 39<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 2 章 : システム レベルの 考 慮 事 項<br />

• 『ザイ リ ン ク ス Zynq-7000 All Programmable SoC での ARM TrustZone アーキテクチャのプログ ラ ミ ング ユーザー<br />

ガイド』 (UG1019) [ 参 照 19]<br />

非 同 期 マルチプロセ ッ シング (AMP) を 使 用 したセキュ リテ ィ<br />

非 同 期 マルチプ ロ セ ッ シング (AMP) を Zynq-7000 AP SoC で 使 用 し、システム セ キ ュ リ テ ィ 強 化 のために ソ フ ト ウ ェ<br />

ア を 実 行 で き る 場 所 を 制 限 する こ と がで き ます。 た と えば、 1 つの ARM Cortex-A9 プ ロ セ ッ サを 信 頼 さ れないサー ド<br />

パーテ ィ アプ リ ケーシ ョ ン を 実 行 する のに 使 用 し、 も う 1 つの ARM Cortex-A9 プ ロ セ ッ サ を 信 頼 さ れ る ソ フ ト ウ ェ<br />

ア を 実 行 する のに 使 用 で き ます。 信 頼 さ れる ソ フ ト ウ ェ アを 実 行 する ARM Cortex-A9 プロセッサのオペレーティン<br />

グ シ ス テムには、 ペ リ フ ェ ラ ルな どの 重 要 なシ ス テム リ ソ ースが 割 り 当 て ら れます。 信 頼 さ れない ソ フ ト ウ ェ ア を<br />

実 行 する ARM コアのオペレーティング システムでは、セキュア ペ リ フ ェ ラルは 認 識 されません。 こ の 方 法 では、 意<br />

図 されたものかされていないものかにかかわらず、 信 頼 されないソ フ ト ウ ェアによ り システム パフ ォーマン スが 低 下<br />

する こ と がない よ う に 論 理 的 に 分 離 し ます。 こ れに よ り 、 ラ ン タ イ ム セキュ リ テ ィが 確 実 にな り ます。 不 正 なプログ<br />

ラマブル コンポーネントによる Zynq-7000 AP SoC の 悪 質 なブー ト は、 セキ ュ ア ブー ト に よ り 回 避 さ れます。<br />

Linux 展 開<br />

Linux は Zynq-7000 AP SoC に 移 植 されているので、 Linux のセキュ リ テ ィ 機 能 を 使 用 でき ます。 Linux セ キ ュ リ テ ィ<br />

には、 フ ァ イル アクセス 制 御 、 プログラムなどによる 不 正 なメモリ ア ク セ ス を 回 避 する ための メ モ リ 管 理 の 使 用 が<br />

含 まれます。<br />

Android などの Linux ベースのプ ラ ッ ト フ ォームでは、 サー ド パーテ ィ アプ リ ケーシ ョ ンがハード ウェア リ ソ ース に<br />

直 接 ア ク セス し ない よ う にする 仮 想 マシン を 使 用 し たデバイ ス セキュ リ テ ィが 提 供 されます。<br />

Linux には、 ほかに も 多 数 のサー ド パーテ ィ および 専 用 セキ ュ リ テ ィ 拡 張 があ り ます。<br />

プロファイリングおよび 分 割<br />

プロファイ リ ング ツールは、 最 適 なパフ ォーマン スのためにハー ド ウ ェ ア と ソ フ ト ウ ェ アにアプ リ ケーシ ョ ンの 機 能<br />

を 分 割 する 方 法 を 決 定 する のに 役 立 ち ます。<br />

ソフトウェアのプロファイリング<br />

プロファイ リ ングは、 ソフ ト ウェア アプ リ ケーシ ョ ンの 最 適 化 を 支 援 する ために 使 用 さ れる プ ロ グ ラ ム 解 析 手 法 で<br />

す。 次 のよ う な 多 数 のアプ リ ケーシ ョ ン コー ド のプ ロパテ ィ を 計 測 する のに 使 用 さ れます。<br />

• メ モ リ の 使 用 状 況<br />

• 関 数 呼 び 出 し の 実 行 時 間<br />

• 関 数 呼 び 出 し の 頻 度<br />

• 命 令 の 使 用 状 況<br />

プロファイ リ ングは、ソフ ト ウェア プ ロ グ ラ ム を 実 行 せずにス タ テ ィ ッ ク に 実 行 する か、 物 理 ま たは 仮 想 プ ロ セ ッ サ<br />

でソフ ト ウェア アプ リ ケーシ ョ ン を 実 行 し なが ら ダ イナ ミ ッ ク に 実 行 で き ます。<br />

スタティック プ ロ フ ァ イ リ ン グは 通 常 、 ソ フ ト ウ ェ ア コード またはオブジェク ト コー ド を 解 析 する こ と に よ り 実 行<br />

されます。<br />

ダイナミ ック プ ロ フ ァ イ リ ン グは、 プ ロ セ ッ サでのプ ロ グ ラ ムの 実 行 が 情 報 を 収 集 する ために 中 断 さ れる、 介 入 プ ロ<br />

セスです。 一 部 のプロセッサ 内 のト レース メ カニズム を 使 用 する と 、 非 介 入 的 にプ ロ フ ァ イ リ ン グ データ を 収 集 で<br />

きます。<br />

プ ロ フ ァ イ リ ングに よ り 、 次 の 原 因 に よ る コー ド 実 行 のボ ト ルネ ッ ク を 特 定 で き ます。<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 40<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 2 章 : システム レベルの 考 慮 事 項<br />

• 効 率 の 悪 い コー ド<br />

• PL での 関 数 と モジ ュールの 通 信 不 良<br />

• ソ フ ト ウ ェ アの 関 数 間 の 通 信 不 良<br />

• ソフ ト ウェアにインプリ メント されているアルゴリズムまたはルーチンが、ハードウェアにインプリ メン トする<br />

方 が 適 し てい る 可 能 性 があ る<br />

ボ トルネッ クが 特 定 されたら、 ソフ ト ウェア 関 数 を 記 述 し 直 したり、 PL に 移 動 し た り し て 最 適 化 で き ます。 ま たは、<br />

関 数 の 一 部 を ソ フ ト ウ ェ アに 保 持 し、 問 題 の 部 分 をハー ド ウ ェ アに 移 動 する 方 法 も あ り ます。<br />

プロファイ リ ングは、 ソース コー ド を 読 み 込 んで 解 析 する には 大 きすぎ る 大 型 プ ロ グ ラ ム を 解 析 する のに も 有 益 で<br />

す。 プ ロ フ ァ イ リ ングに よ り 、 そ う でなければ 発 見 さ れないバグ を 特 定 で き る こ と があ り ます。<br />

X-Ref Target - Figure 2-11<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

図 2‐11 : プ ログ ラムの 実 行 例<br />

図 2-11 に、 さ ま ざ ま な 関 数 の 実 行 フ ローを、 その 関 数 を 実 行 する のにかか る ク ロ ッ ク サイクル 数 と 共 に 示 します。<br />

プログラムのプロファイ リ ングによ り 各 関 数 の 実 行 にかかるクロッ ク サ イ ク ル 数 を 特 定 する こ と に よ り 、 関 数 を 最 適<br />

化 する 必 要 があ る かど う かを 判 断 で き ます。 ソ フ ト ウ ェ アの 開 発 中 に、 関 数 を PS で 実 行 する のにかか る 平 均 時 間 が<br />

予 測 さ れている 場 合 があ り ます。 こ の 予 測 がプ ロ フ ァ イ リ ング 結 果 を 比 較 し て、 大 き く 異 な る 場 合 は 調 査 し ます。<br />

図 2-11 の 実 行 フ ローのプ ロ フ ァ イ リ ング 出 力 例 を 図 2-12 に 示 し ます。<br />

X-Ref Target - Figure 2-12<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

図 2‐12 : プ ロ フ ァ イ リ ング 出 力 例<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 41<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 2 章 : システム レベルの 考 慮 事 項<br />

ザイリンクス SDK システム デバッ ガー<br />

ザイ リ ンクス SDK には、 PL 内 で 実 行 さ れてい る 関 数 と プ ロ セ ッ サで 実 行 さ れてい る 関 数 の 通 信 に よ り 発 生 する コー<br />

ド のボ ト ルネ ッ ク を 特 定 する のに 役 立 つプ ロ フ ァ イ リ ング ツールが 含 まれています。 ボ ト ルネッ クが 特 定 されたら、<br />

関 数 全 体 を PL に 移 動 する か、 プ ロ セ ッ サの 関 数 コー ド を 最 適 化 する か、 関 数 をプ ロ セ ッ サ と PL に 分 割 する こ と に<br />

よ り 最 適 化 で き ます。<br />

SDK では 階 層 プ ロ フ ァ イ リ ングがサポー ト さ れ、 どの 呼 び 出 し 関 数 と 呼 び 出 さ れる どのサブ 関 数 がプ ロ セス パ<br />

フ ォーマン スに 最 も 影 響 する かを 表 示 で き ます。<br />

TCF プロファイリング<br />

ザイ リ ンクス SDK でのプロ フ ァ イ リ ングは、 TCF プロ フ ァ イ ラーで 実 行 でき ます。 このプロ フ ァ イ ラーは、 システ<br />

ムを 一 定 の 間 隔 で 調 べる 統 計 サンプ リ ング 方 法 を 使 用 し、 どのコード が 実 行 されているかを 判 断 し、 適 切 なカ ウ ン<br />

ターをア ッ プデー ト し ます。 実 行 プ ロ フ ァ イルの 精 度 は、 サンプ リ ング レー ト が 十 分 であれば、 プ ロ フ ァ イルの 収 集<br />

時 間 が 長 く な る ほど 高 く な り ます。 割 り 込 みを 使 用 する ほかのプ ロ フ ァ イ ラー と は 異 な り 、 こ の 方 法 ではプ ロ フ ァ イ<br />

リ ングする コー ド で 割 り 込 みが 無 効 になってい る 場 合 に 結 果 が 不 正 確 にな る こ と はあ り ません。 プ ロ フ ァ イ リ ン グす<br />

るプログラムは、 gprof でのよ う に 再 コンパイルする 必 要 はあ り ません。<br />

パフ ォーマンスの 監 視<br />

SDK のパフ ォーマン ス 監 視 機 能 は、 PL から AXI パフォーマンス モニター (APM) のイベン ト カウント モジュール<br />

データ、 ARM パフォーマンス モニター ユニッ ト (PMU) データ、 Zynq-7000 AP SoC PS から L2 キャッシュ データ を<br />

収 集 し ます。 データは、 SDK で JTAG を 介 してリアルタイムに 収 集 されます。 これらのカウンターからの 値 は、10ms<br />

ご と にサンプ リ ング さ れます。 こ れら の 値 を 使 用 し て メ ト リ ッ ク が 算 出 さ れ、 専 用 ビ ューに 表 示 さ れます。<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 42<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 2 章 : システム レベルの 考 慮 事 項<br />

図 2-13 に、 SDK のパフ ォーマン ス 解 析 表 示 を 示 し ます。<br />

X-Ref Target - Figure 2-13<br />

図 2‐13 : SDK のパフ ォーマンス 解 析 表 示<br />

各 Cortex-A9 CPU では、 次 の PMU イベン トが 監 視 されます。<br />

• データ キャッシュ リフィル<br />

• データ キャッシュ アクセス<br />

• データ ストール<br />

• 書 き 込 みス トール<br />

• 命 令 名 の 変 更<br />

• 分 岐 ミ ス<br />

次 の 2 つの L2C-PL310 (L2 キャッシュ コント ローラー) カ ウ ン ターが 監 視 さ れます。<br />

• キャッシュ ヒットの 数<br />

• キャッシュ アクセスの 数<br />

デザイ ンで APM が 使 用 さ れてい る 場 合 は、 各 HP ポー ト および ACP ポー ト の APM カ ウ ン ターを 監 視 で き ます。<br />

• 書 き 込 みバイ ト 数<br />

• 読 み 出 しバイ ト 数<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 43<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 2 章 : システム レベルの 考 慮 事 項<br />

• 書 き 込 み ト ラ ンザ ク シ ョ ン 数<br />

• 総 書 き 込 みレ イ テンシ<br />

• 読 み 出 し ト ラ ンザ ク シ ョ ン 数<br />

• 総 読 み 出 し レ イ テンシ<br />

ARM Development Studio 5 (DS‐5)<br />

ARM Development Studio 5 (DS-5) ツール チェーンは、 ARM プロセッサ ベース のシ ス テ ム 用 の ソ フ ト ウ ェ ア 開 発 ツー<br />

ル スイートです。DS-5 では、 プラ ッ ト フォームの 起 動 から アプ リ ケーシ ョ ンのプロ フ ァ イ リ ングまで、 ARM プロ<br />

セッサ ベース 製 品 の 開 発 段 階 が 網 羅 さ れ、 ARM Linux および Android 特 定 の 機 能 も 含 まれます。<br />

Streamline パフォーマンス アナラ イザーは ARM Development Studio 5 (DS-5) ツール チェーンのコンポーネン トの 1 つ<br />

で、 Linux および Android システム 用 のシステム レベルのパフォーマンス 解 析 ツールです。 サンプル ベー ス のプ ロ<br />

ファイリング、Linux カーネル トレース、およびソフトウェア ア ノ テーシ ョ ン 手 法 が 使 用 さ れます。Streamline レポー<br />

トでは、[Timeline]、 [Call Paths]、 [Functions]、 [Code]、 [Call Graph]、 [Stack Analysis]、 および [Logs] の 7 つのペ イ ン に<br />

さ まざまなパフ ォーマン スに 関 する 情 報 が 示 されます。<br />

デフォル ト では、 Streamline プロファイ リ ング レポートは 1ms または 10ms ごとにプログラム カ ウ ン タ ーを サン プ リ<br />

ングするこ とによ り 生 成 されます。 イベン ト ベースのサンプ リ ング を 有 効 にする と 、 イベン ト カ ウ ン ターが 指 定 の<br />

し き い 値 に 達 し た と き にサンプ リ ング さ れます。 こ れ ら のサンプルは 最 後 の イベン ト を 発 生 させた 命 令 に 位 置 付 け ら<br />

れ、 プ ロ フ ァ イ リ ング レポー ト に 時 間 ベースのデータの 代 わ り にイベン ト ベースのデータ が 表 示 さ れます。 イベン<br />

ト ベースのサンプ リ ングは、 た と えばコー ド のどの 部 分 がキ ャ ッ シ ュ ミ スや 分 岐 ミ ス を 発 生 させてい る かを 判 断 す<br />

る ために 使 用 で き ます。<br />

実 用 的 なアプ リ ケーシ ョ ン<br />

ブート 時 間<br />

シ ス テムに よ っては、 アプ リ ケーシ ョ ンがブー ト する のにかか る 時 間 が 重 要 な 考 慮 事 項 と な り ます。 総 ブー ト 時 間 に<br />

は、 BootROM、 FSBL、 U-Boot などのセカンド ステージ ブー ト ローダー、 およびオペレーテ ィ ン グ シ ス テ ム の 実 行<br />

時 間 が 含 まれます。 ブー ト 時 間 の 詳 細 は、 ザ イ リ ン ク ス アンサー 55572 [ 参 照 69] を 参 照 して く ださい。<br />

プ ロセ ッ サ 負 荷<br />

プ ロ セ ッ サの 負 荷 は、 実 際 に 実 行 さ れた 計 算 量 の 実 行 可 能 な 総 計 算 量 に 対 する 割 合 を 時 間 の 経 過 と 共 に 計 測 し た も の<br />

です。 プロセ ッ サの 負 荷 が 100 パーセン ト に 近 づ く と 、 シ ス テムでエ ラーが 発 生 し た り 、 シ ス テムが 応 答 し な く なっ<br />

たりします。<br />

Top は、 プ ロ セ ッ サの 負 荷 を リ アルタ イ ムに 監 視 で き る Linux ツールです。 シ ス テムで CPU に 最 も 負 担 のかか る タ ス<br />

ク を リ ス ト し、 プ ロ セ ス を 操 作 する 対 話 型 イ ン ターフ ェ イ ス を 提 供 し ます。 タ ス ク は、 CPU ごと、CPU 使 用 量 、 メ<br />

モ リ 使 用 量 、 ラ ン タ イ ムで 並 べ 替 え る こ と がで き ます。<br />

システム レイテンシ<br />

システム レ イ テンシは、 シ ス テム 操 作 の 要 求 が 発 行 さ れてか ら 操 作 が 実 際 に 開 始 する までの 時 間 です。 シ ス テム レ<br />

イ テンシには、アプ リ ケーシ ョ ン と その 下 の ソ フ ト ウ ェ ア 層 すべてが 含 まれるので、 原 因 を 特 定 する こ と は 困 難 です。<br />

割 り 込 みレ イ テンシ<br />

割 り 込 みレ イ テンシは、 割 り 込 みが 生 成 さ れてか ら 操 作 が 実 行 さ れる までの 時 間 です。 通 常 、 CPU が 割 り 込 みを 認 識<br />

し てか ら、 現 在 の 処 理 内 容 の 実 行 を 一 時 停 止 し て 応 答 する までの 時 間 と し て 計 測 さ れます。 割 り 込 み 処 理 を 開 始 する<br />

までの 時 間 が 計 測 さ れる こ と も あ り ます。<br />

SMP Linux では、 割 り 込 み 処 理 はど ち ら の CPU でも 実 行 でき、デフォルトでは CPU0 で 実 行 さ れます。 デフ ォ ル ト の<br />

ままにすると、 1 つの CPU への 負 荷 が 大 き く な る 可 能 性 があ り ます。 各 割 り 込 みの CPU ア フ ィ ニ テ ィ を ユーザー 空<br />

間 か ら 変 更 し、 処 理 負 荷 のバ ラ ン ス を 取 る こ と がで き ます。 ま た、 irqbalance の よ う に 割 り 込 み 負 荷 のバ ラ ン ス を 取<br />

るためのアプリケーショ ンもあり ます。<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 44<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 2 章 : システム レベルの 考 慮 事 項<br />

cyclictest は、 割 り 込 みか ら 割 り 込 み 応 答 の 開 始 までの 時 間 を 計 測 する Linux ツールです。 計 測 さ れた 時 間 は、 予 測 さ<br />

れる 時 間 と 比 較 さ れ、 その 差 がレ イ テンシ と な り ます。 イベン ト 数 が 実 際 の 割 り 込 み 応 答 を 遅 らせる こ と があ り ます<br />

が、 cyclictest を 使 用 する と こ れら の 遅 延 を 特 定 し、 特 性 評 価 で き ます。<br />

ハー ド ウ ェ アのプロ フ ァ イ リ ング<br />

プ ロ フ ァ イ リ ングの 際 、 シ ス テム をサブシ ス テムの 階 層 と し て 表 示 で き、 それぞれに 独 自 のパフ ォーマン ス 監 視 機 能<br />

があ り ます。 システム パフ ォーマン ス を 完 全 に 解 析 する には、 すべてのデータ を 1 つのビ ューに 統 合 および 同 期 し<br />

て、 シ ス テムのど こ で 時 間 が 費 や さ れてい る かを 確 認 で き る よ う にする 必 要 があ り ます。<br />

PL には 従 来 の 固 定 SoC にはない 柔 軟 性 があ り 、 さ ま ざ ま な イ ンプ リ メ ンテーシ ョ ン を 使 用 で き ます。 デザ イ ンのプ<br />

ロ フ ァ イ リ ングは、 特 定 の イ ンプ リ メ ンテーシ ョ ンの 影 響 を 完 全 に 理 解 する ために 使 用 可 能 な 1 つの 方 法 です。<br />

プログラム トレース モジュール (PTM)<br />

PTM は、 プロ グ ラ ム フロー トレース (PFT) アーキテ ク チャに 基 づいて リ アルタ イ ムで 命 令 フ ローの ト レース を 実 行<br />

するモジュールです。 PTM は、 プ ロ グ ラ ムのすべて ま たは 一 部 の 実 行 を 再 構 築 する のに ト レース ツールで 使 用 され<br />

る 情 報 を 生 成 し ます。<br />

PFT アーキテクチャは、 DS-5 などのト レース ツールがトレースされるコードのコピーにアクセスできることを 前 提<br />

としているので、PTM はウ ェ イ ポイ ン ト と 呼 ばれるプロ グ ラ ムの 特 定 の 箇 所 のみで ト レース を 生 成 し ます。 これに<br />

より、PTM によ り 生 成 される ト レース データ の 量 が 抑 え ら れます。 ウ ェ イ ポ イ ン ト は、 例 外 な ど、 プ ロ グ ラ ム フ<br />

ローまたはイベン トの 変 化 です。 ト レース ツールはウ ェ イ ポ イ ン ト を 使 用 し てプ ロ グ ラ ムの 実 行 フ ローを 追 跡 し ま<br />

す。<br />

全 プロ グ ラ ム フ ローの 再 構 築 のため、 PTM は 次 を ト レース し ます。<br />

• ターゲッ ト ア ド レ スおよび 条 件 コー ド を 含 む 間 接 分 岐<br />

• 条 件 コー ド のみを 含 む 直 接 分 岐<br />

• 命 令 バ リ ア 命 令<br />

• 例 外 の 発 生 位 置 を 含 む 例 外<br />

• プロセッサ 命 令 セッ ト ステートの 変 更<br />

• プロセッサ セキュ リ テ ィ ステートの 変 更<br />

• コンテキスト ID の 変 更<br />

• Halting デバ ッ グ モー ド が 有 効 の と き に、 デバ ッ グ ステートに 入 り、 デバッグから 戻 る<br />

PTM は、 次 を ト レースする よ う に も コ ン フ ィ ギ ュ レーシ ョ ンでき ます。<br />

• トレースされたウェイポイント 間 のサイクル 数<br />

• グローバル システム タイムスタンプ<br />

• 実 行 さ れた 直 接 分 岐 の ターゲ ッ ト アドレス<br />

パフォーマンス モニター ユニッ ト (PMU)<br />

Cortex-A9 プロセッサの PMU には、 プロセ ッサおよびメ モ リ シ ス テムの 動 作 に 関 する 統 計 情 報 を 収 集 する ためのカ<br />

ウンターが 6 個 あ り ます。 各 カウンターを 使 用 して、 システム パフォーマンスの 計 測 に 重 要 な 58 種 類 の イベン ト の<br />

どれでもカウン ト できます。 ザイ リ ンク ス システム デバ ッ ガーなどの ソ フ ト ウ ェ ア アプ リ ケーシ ョ ンは、 イベン ト<br />

カ ウ ン ト と ソ フ ト ウ ェ アの 実 行 時 間 を 使 用 で き、 ソ フ ト ウ ェ ア を 最 適 化 する のに 役 立 ち ます。 こ れ ら の 情 報 にはザ イ<br />

リンクス ド ラ イ バーを 使 用 し てア ク セ ス で き、 ソ フ ト ウ ェ ア アプ リ ケーシ ョ ンでド ラ イバーを 介 してこの 情 報 を 取<br />

得 して 表 示 できます。<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 45<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 2 章 : システム レベルの 考 慮 事 項<br />

レベル 2 (L2) キャッシュ イベン ト カウンター<br />

PL310 L2 キャッシュ コント ローラーには、 キャッシュ イベン ト を 監 視 できる 2 つのカ ウ ン タ ーが 含 ま れてい ます。<br />

これらのイベン トは、 アプリケーショ ンが L2 キャッシュにどのよ うに 影 響 するか、 アプリケーショ ンをどのよ うに<br />

最 適 化 で き る かを 理 解 する のに 役 立 ち ます。 こ れ ら の 情 報 にはザ イ リ ン ク ス ド ラ イバーを 使 用 し てア ク セスで き、 ソ<br />

フトウェア アプ リ ケーシ ョ ンでド ラ イバーを 介 してこの 情 報 を 取 得 して 表 示 できます。<br />

AXI パフォーマンス モニター (APM)<br />

LogiCORE IP AXI パフォーマンス モニターは、 PL に 組 み 込 んで PL 内 の AMBA AXI システム パフォーマンス メ ト<br />

リックを 計 測 できるソフト IP です。 パフ ォーマンス モニターは、 システム 内 のマスター/ スレーブ<br />

(AXI4/AXI3/AXI4-Stream) のバス レ イ テンシ、 指 定 の 期 間 内 での メ モ リ ト ラ フ ィ ッ ク 量 、 およびその 他 のパフ ォーマ<br />

ンス メ ト リ ッ ク を 計 測 し ます。 ま た、 ソ フ ト ウ ェ ア アプ リ ケーシ ョ ンの リ アルタ イム プロファイ リ ングにも 使 用 で<br />

きます。<br />

APM は AXI シ ス テム を 非 介 入 的 に 監 視 する ので、 CPU 処 理 は 不 要 です。 ただ し、 ARM CPU の ソ フ ト ウ ェ アで 特 定<br />

のデータの 監 視 を 開 始 し、 APM から 結 果 を 収 集 できるので、 これはシステム プ ロ フ ァ イ リ ン グでは 最 小 限 に 介 入 的<br />

です。 これらの 情 報 にはザイ リ ン ク ス ドライバーを 使 用 してアクセスでき、 ソフトウェア アプ リ ケーシ ョ ンでド ラ<br />

イバーを 介 し て 情 報 を 取 得 し て 表 示 で き ます。 APM は、 シ ス テム デバ ッ ガーでプ ロ フ ァ イル モー ド に 設 定 する こ と<br />

もできます。<br />

APM には、 プ ロ フ ァ イルに 有 益 な 次 の 機 能 が 含 まれます。<br />

• メモリ コント ローラーなどの AXI ベースのス レーブのレ イ テンシを 調 べ、 コ ア を 調 整<br />

• 書 き 込 みスループ ッ ト 、 読 み 出 し スループ ッ ト 、 平 均 イ ン ターコ ネ ク ト レイテンシなどのシステム レベルのメ<br />

トリックを 取 得<br />

• トランザクション レイテンシを 解 析 し、 トランザクションで 多 くのアイドル サイ クルを 発 生 させる 要 因 を 特 定<br />

• 2 つの 同 様 の 要 因 を 比 較<br />

• FIFO オーバーフ ロー /アンダーフ ロー、 割 り 込 みなどの AXI 以 外 の 外 部 イベン ト を カ ウ ン ト<br />

• 特 定 の イベン ト をモニ ター ス ロ ッ ト に ロ グ し、 再 構 築 し て 動 作 /パフォーマンスを 解 析<br />

イーサネッ ト 統 計 レジスタ<br />

ギガビッ ト イーサネッ ト コント ローラーには、 低 レベル インターフェイスを 介 してソフト ウェアにアクセス 可 能 な<br />

統 計 レ ジ ス タ が 含 まれています。 統 計 レ ジ ス タ には、 送 受 信 に 関 連 する さ ま ざ ま な イベン ト のカ ウ ン ト 値 が 格 納 さ れ<br />

ます。 これらのカウン ト 値 は、 ネッ ト ワーク パフ ォーマン ス をプ ロ フ ァ イルおよび 解 析 する のに 有 益 です。 こ れ ら の<br />

情 報 にはザ イ リ ン ク ス ドライバーを 使 用 してアクセスでき、 ソフトウェア アプ リ ケーシ ョ ンで 取 得 して 表 示 できま<br />

す。<br />

ソフトウェア/ハー ド ウ ェ アの 分 割<br />

ソフトウェア プ ロ フ ァ イ リ ン グに よ り 、 アプ リ ケーシ ョ ン 内 の 計 算 集 約 型 関 数 を 特 定 で き ます。 こ れら の 関 数 のパ<br />

フ ォーマン ス を 向 上 する ため、 ハー ド ウ ェ アに コ ンパイルし て PL に 移 行 でき ます。<br />

ハー ド ウ ェ ア と ソ フ ト ウ ェ アのイ ン ターフ ェ イ スには、 これらの 間 でデータ を 交 換 でき る 通 信 メ カニズムがあ り ま<br />

す。 高 速 化 さ れた 関 数 のパ ラ メ ーターは PL のハード ウ ェア ア ク セ ラ レータ に 渡 さ れ、 ハー ド ウ ェ アでの 計 算 結 果 が<br />

ソフトウェアに 戻 されます。<br />

この 通 信 は、PS AXI ポー ト (AXI_ACP、 AXI_HP、 またはスレーブ AXI_GP) のいずれかを 介 し て、 次 のデータ 移 動 方<br />

法 のいずれかを 使 用 し て 実 行 でき ます。<br />

• メモリ マップ レジスタ<br />

• AXI-Stream FIFO<br />

• AXI-DMA<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 46<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 2 章 : システム レベルの 考 慮 事 項<br />

ハー ド ウ ェ アで 使 用 さ れる ポー ト およびデータ 移 動 方 法 の 選 択 は、 データ 転 送 サ イ ズ、 通 信 メ カニズム を イ ンプ リ メ<br />

ン ト する のに 必 要 な リ ソース、 およびレ イ テンシ 要 件 に よ って 異 な り ます。 次 に、 最 も よ く 使 用 さ れる ソ リ ューシ ョ<br />

ンを 示 します。<br />

メモリ マップ レ ジ ス タ をア ク セ ラ レータ に イ ンプ リ メ ン ト する のが、 最 も 単 純 なデータ 通 信 方 法 です。1 つの 方 法 で<br />

は、 ア ク セ ラ レータは AXI ス レーブです。 ソ フ ト ウ ェ アが 計 算 パラ メ ーターを レ ジ ス タ に 書 き 込 み、 ハー ド ウ ェ ア を<br />

開 始 し ます。 ハー ド ウ ェ アが 完 了 し た ら、 ア ク セ ラ レータ が PS を 割 り 込 むか、 ソ フ ト ウ ェアでポー リ ングされる ス<br />

テータ ス レジスタ ビ ッ ト に 書 き 込 みます。 低 消 費 電 力 アプ リ ケーシ ョ ンでは、 割 り 込 みよ り も イベン ト 入 力 を 使 用<br />

する 方 が 望 ま し い 場 合 があ り ます。 その 後 、 ソ フ ト ウ ェ アがレ ジ ス タ に 対 し て 一 連 の 読 み 出 し を 実 行 し て 結 果 を 取 得<br />

します。 図 2-14 に、 こ の 方 法 のブ ロ ッ ク 図 を 示 し ます。<br />

X-Ref Target - Figure 2-14<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

図 2‐14 : メモリ マップ レジスタ<br />

別 の 方 法 と し て、 ア ク セラ レータ を AXI マ ス ター と し て 動 作 さ せ、 ソ フ ト ウ ェ アの 指 示 に 従 ってシ ス テム メモリま<br />

たは PS ペ リ フ ェ ラ ルか らデータ を 取 り 出 すこ と がで き ます。 図 2-15 に、 こ の 方 法 のブ ロ ッ ク 図 を 示 し ます。<br />

X-Ref Target - Figure 2-15<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

図 2‐15 : AXI マスターを 使 用 するメモリ マップ レジスタ<br />

レジスタ ベース ソリューションは 簡 単 にインプリメントできますが、ソフトウェア/ハー ド ウ ェ ア 境 界 を 転 送 する<br />

データ セ ッ ト が 小 さ いア ク セ ラ レータ と 共 に 使 用 する のが 最 適 です。 個 々のレ ジ ス タ にア ク セ スする には ソ フ ト ウ ェ<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 47<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 2 章 : システム レベルの 考 慮 事 項<br />

ア オーバーヘ ッ ド があ り 、 データ 転 送 の コ ス ト が 高 く な り ます。 大 型 のデータ セッ トでは、 スト リーミング タイプ<br />

のインターフェイスに AXI FIFO を 使 用 できます。 図 2-16 に、 こ の 方 法 のブ ロ ッ ク 図 を 示 し ます。<br />

X-Ref Target - Figure 2-16<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

図 2‐16 : メモリ マップ FIFO<br />

ビデオ ベースのアプ リ ケーシ ョ ンでなど、 多 く の 場 合 、 大 量 のデータ を 処 理 する のにハー ド ウ ェ ア アクセラレータ<br />

が 使 用 さ れます。 データ は、 OCM や DDR など、 ソフ ト ウェアと PL のハー ド ウ ェ アの 両 方 がア ク セ ス 可 能 な メ モ リ<br />

に 格 納 さ れます。 データ を メ モ リ か ら 取 り 出 し、 ア ク セ ラ レータ での 処 理 の 後 データ を メ モ リ に 戻 すのに DMA が 使<br />

用 されます。 図 2-17 に、 こ の 方 法 のブ ロ ッ ク 図 を 示 し ます。<br />

X-Ref Target - Figure 2-17<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

図 2‐17 : メモリ マップ DMA<br />

『Zynq-7000 All Programmable SoC ZC702 ベース ターゲッ ト リファレンス デザイ ン (Vivado Design Suite 2014.2) ユー<br />

ザー ガイド』 (UG925) [ 参 照 13] は、1080p60 ビデオ ス ト リ ームに 対 する エ ッ ジ 検 出 フ ィ ルターを ソ フ ト ウ ェ ア と ハー<br />

ドウェアの 両 方 にインプリメントするビデオ 処 理 アプリケーションです。ハードウェア インプリ メンテーションで<br />

は、 ビデオ DMA がビデオ データ を DDR か ら 取 り 出 し、 エ ッ ジ 検 出 エンジン を 介 し て 送 信 し、 ビデオ ス ト リ ーム を<br />

DDR に 書 き 込 みます。 ソ フ ト ウ ェ アは DMA レジスタをアップデート し、 ビデオ データ のフ ローを 制 御 し ます。<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 48<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 3 章<br />

ハー ド ウ ェ ア デザイ ンの 考 慮 事 項<br />

本 章 では、Zynq ® -7000 AP SoC デザ イ ン を 設 計 する 際 に 考 慮 する 必 要 のあ る 次 の よ う なハー ド ウ ェ ア デザイ ン 問 題 に<br />

ついて 説 明 し ます。<br />

• 49 ページの 「ブー ト デバイ スおよびそのコ ン フ ィ ギ ュ レーシ ョ ン」 : ブー ト は、 さ ま ざまなプ ラ イマ リ およびセ<br />

カンダリ ブー ト デバイ スか ら 実 行 で き ます。 こ のセ ク シ ョ ンでは、 ブー ト フローおよびブート デバイ ス オプ<br />

ションについて 説 明 します。<br />

• 54 ページの 「 メ モ リ インターフェイス」 : DDR メモリ コント ローラーは、 16 ビッ トまたは 32 ビ ッ ト 幅 のデー<br />

タバス を 使 用 し て さ ま ざ ま な DDR メモリ デバイ スに 接 続 で き ます。ま た、ECC オプシ ョ ンがサポー ト されます。<br />

• 59 ページの 「ペ リ フ ェ ラ ル」 : Zynq-7000 AP SoC では、 さ ま ざ ま なペ リ フ ェ ラ ルを 使 用 で き ます。 こ のセ ク シ ョ<br />

ンでは、 それらのペリ フェラルと APU (アプ リ ケーシ ョ ン プロセッシング ユニッ ト ) と のや り と り について 説 明<br />

します。<br />

• 74 ページの 「IP ブ ロ ッ ク の 設 計 」 : IP ブ ロ ッ ク と は、 デザ イ ンおよび 検 証 済 みの 再 利 用 可 能 なフ ァ ン ク シ ョ ン ブ<br />

ロ ッ ク で、 設 計 時 間 を 削 減 する こ と がで き ます。 こ のセ ク シ ョ ンでは、 IP ブ ロ ッ ク を 含 むデザ イ ン ソリューショ<br />

ンのプ ロ セスについて 説 明 し ます。<br />

• 80 ページの 「ハー ド ウ ェ ア パフ ォーマン スの 考 慮 事 項 」 : このセクションでは、 AXI マスター、 AXI ス レーブ、<br />

AXI データ パスのパフ ォーマン ス を 調 整 するハー ド ウ ェ ア パフォーマンス メ ト リ ッ ク と 手 法 について 説 明 し ま<br />

す。<br />

• 85 ページの 「データ フ ロー」 : このセクションでは、 プロセッシング システム (PS) 内 のデータ フローおよび PS<br />

とプログラマブル ロジック (PL) 間 のデータ フローについて 説 明 します。<br />

• 89 ページの 「PL ク ロ ッ ク 供 給 手 法 」 : このセクションでは、PL ク ロ ッ ク 供 給 手 法 について と 、 さ ま ざ ま な PL ク<br />

ロック ソースおよびその 推 奨 さ れる 使 用 方 法 について 説 明 し ます。<br />

• 93 ページの 「ACP およびキャ ッシュ コヒーレンシ」 : このセクションでは、 L1 キ ャ ッ シ ュ を 使 用 し たオプシ ョ<br />

ンのコ ヒーレンシを 含 め、 PL マス ターへ 低 レ イ テンシのア ク セ ス を 提 供 で き る ACP の 機 能 について 説 明 し ま<br />

す。<br />

• 96 ページの 「PL の HP ポー ト アクセス」 : HP ポー ト を 使 用 する と 、 DDR コ ン ト ローラーおよびオンチ ッ プ メ<br />

モリ (OCM) に PL から 直 接 アクセスできます。このセクショ ンでは HP ポー ト を 使 用 するデザ イ ン ド リ ブン の 最<br />

適 化 について 説 明 し ます。<br />

• 99 ページの 「シ ス テム 管 理 のハー ド ウ ェ ア アシスタンス」 : こ のセ ク シ ョ ンでは、 ユーザー 指 定 入 力 に 基 づいた<br />

システム レベルのパフ ォーマン スの 制 御 な どのシ ス テム 管 理 について 説 明 し ます。<br />

• 101 ページの 「ハー ド ウ ェ ア リ コ ン フ ィ ギ ュ レーシ ョ ンの 管 理 」 : スタティック ロジックではない FPGA 部 分 に<br />

はパーシ ャル リ コ ン フ ィ ギ ュ レーシ ョ ン を 使 用 で き ます。 こ のセ ク シ ョ ンでは、デザ イ ン を 部 分 的 に リ コ ン フ ィ<br />

ギュ レーシ ョ ンする 方 法 について 説 明 し ます。<br />

• 106 ページの 「APU からの GP およびダイレク ト PL アクセス」 : このセクションでは、 APU から PL の レ ジ ス タ<br />

およびメモリにアクセスするための GP イ ン ターフ ェ イ スの 使 用 方 法 について 説 明 し ます。<br />

ブート デバイスおよびそのコ ン フ ィ ギュ レーシ ョ ン<br />

このセクションでは、 Zynq-7000 AP SoC ブー ト デバイ ス と それら のコ ン フ ィ ギ ュ レーシ ョ ン 方 法 について、 および<br />

ブー ト フ ロー と 、 ブー ト 初 期 化 シーケ ン ス を 実 行 する ためのエージ ェ ン ト と し ての BootROM の 役 割 について 説 明 し<br />

ます。 また、 Zynq-7000 AP SoC の Quad-SPI、 SD、 NAND、 NOR フラッシュ、および JTAG ブー ト モードなどのプラ<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 49<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 3 章 : ハー ド ウ ェ ア デザイ ンの 考 慮 事 項<br />

イマリ ブー ト オプシ ョ ン と、 eMMC および PCIe などのセカンダリ ブー ト オプシ ョ ン について 説 明 し ます。 こ のセ<br />

クションでは、 それぞれのブート フローとシステム レベルの 状 況 におけ る ブー ト デバイ スの 有 用 性 を 中 心 に 説 明 し<br />

ます。 JTAG ブー ト モード はス レーブ ブー ト モード と 考 え る こ と ができ、 常 に 非 セキ ュ ア ブー ト モード です。<br />

典 型 的 なブー ト フロー<br />

Zynq-7000 AP SoC のブー ト シーケ ン スでは、 通 常 は NAND または NOR フラッシュ メ モ リ な ど の 外 部 ス タ テ ィ ッ ク<br />

ストレージから FSBL (First-Stage Boot Loader) がまず 読 み 出 さ れます。 BootROM には、 パワー オン リ セ ッ ト 後 に 実<br />

行 されるコードが 含 まれます。 このコードによ り 外 部 スタティ ック ス トレージから FSBL が 読 み 出 さ れます。<br />

PS_POR_B ピンがディアサート されると、ハードウェアがブート ス トラップ ピンをサンプリングして、PS と PLL を<br />

コンフィギュレーションします。 PS 内 部 の BootROM でソフ ト ウェアが 実 行 されます。 まず、 ARM コ ア と ペ リ フ ェ<br />

ラル ( 選 択 し たブー ト デバイ スか ら OCM に FSBL イメージをコピーするのに 必 要 ) を コ ン フ ィ ギ ュ レーシ ョ ンす る<br />

コードから 実 行 され、 その 後 OCM からの 実 行 に 切 り 替 わ り ます。 FSBL は 前 述 のプ ラ イ マ リ ブー ト デバ イ ス か ら コ<br />

ピーでき るほか、 JTAG を 使 用 し て 読 み 込 む こ と も で き ます。 非 セキ ュ ア ブー ト モー ド の 場 合 、 オプシ ョ ンで コー ド<br />

を メ モ リ にコ ピーせずに 直 接 実 行 で き る (execute-in-place をサポートする) Quad-SPI/NOR フラッシュから FSBL を 実<br />

行 でき ます。<br />

図 3-1 は、 典 型 的 なブー ト フローを 示 しています。<br />

X-Ref Target - Figure 3-1<br />

<br />

図 3‐1 : 典 型 的 なブー ト フロー<br />

セキュア モードおよび 非 セキ ュ ア モー ド の 両 方 で Zynq-7000 AP SoC をブート できます。セキュア モー ド のブー ト は<br />

スタティック メ モ リ を 使 用 し た 場 合 のみ 使 用 で き ますが、 非 セキ ュ ア モード のブー ト は JTAG でもスタティ ック メ<br />

モ リ で も 使 用 で き ます。 JTAG ブー ト は 主 にシ ス テム 開 発 段 階 で 使 用 さ れます。<br />

ブート デバイ スの 選 択<br />

Zynq-7000 AP SoC では、 次 のプラ イマ リ ブー ト オプシ ョ ン を 使 用 で き ます。<br />

• オプシ ョ ンの execute-in-place モード を 使 用 した Quad-SPI<br />

• NAND フラッシュ<br />

• オプシ ョ ンの execute-in-place モード を 使 用 した NOR フラッシュ<br />

• SD メモリ カード<br />

• JTAG<br />

次 のセカンダ リ ブー ト オプシ ョ ンは、 Zynq-7000 AP SoC で 使 用 でき ます。<br />

• eMMC<br />

• PCIe、 Ethernet、 USB、 UART、 またはカスタム FPGA インターフェイス<br />

BootROM デバイ スの 選 択 には、 次 の 基 準 を 使 用 でき ます。<br />

• デバイ スは Zynq-7000 AP SoC BootROM と 動 作 し、ザイ リンクス ツール (iMPACT、 SDK) および U-Boot や Linux<br />

などの 高 度 なソフ ト ウェアでサポート されている。さまざまなブート オプシ ョ ンにザ イ リ ン ク スが 推 奨 するデバ<br />

イスのリストは、 ザイリンクス アンサー 50991 [ 参 照 67] を 参 照 して く ださい。<br />

• デバイ スがアプ リ ケーシ ョ ンのコ ン フ ィ ギ ュ レーシ ョ ン ピ ン 要 件 を 満 た し てい る。 た と えば、 QSPI ブー ト オプ<br />

シ ョ ンに 必 要 なピンの 数 は NAND または NOR ブー ト オプシ ョ ンよ り も 少 な く な り ます。<br />

<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 50<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 3 章 : ハー ド ウ ェ ア デザイ ンの 考 慮 事 項<br />

• デバイ スがアプ リ ケーシ ョ ンのサイ ズ 要 件 を 満 た し ている。 NAND および SD ブー ト オプシ ョ ンの 方 が、 QSPI<br />

および NOR ブー ト オプシ ョ ン よ り も 記 録 密 度 が 高 く な り ます。<br />

• デバイ スがアプ リ ケーシ ョ ンの コ ン フ ィ ギ ュ レーシ ョ ン 速 度 要 件 を 満 た し てい る。 QSPI は 使 用 可 能 な 最 速 の<br />

ブー ト オプシ ョ ンです。<br />

• デバイ ス をアプ リ ケーシ ョ ンで 適 切 に 管 理 で き る。 NAND デバイ スは、 その 他 のブー ト オプシ ョ ン よ り も 管 理<br />

が 困 難 です。 ブ ロ ッ ク に 問 題 があ る 場 合 、 問 題 が 発 生 し た と き にそれ ら を どの よ う に 管 理 する かを 指 定 する 必 要<br />

があ り ます。<br />

ブー ト デバ イ スの 選 択 に よ って 必 要 な ピ ン 数 、 最 大 メ モ リ サ イ ズ、 ブー ト 時 間 、 デバイ ス 管 理 ソ フ ト ウ ェ アの 複 雑<br />

性 などが 変 わ り ます。 表 3-1 では、 デザイ ンの ト レード オフをま とめています。<br />

表 3‐1 : フラッシュ メ モ リ の 比 較<br />

ペリフェラ<br />

ル<br />

ピン<br />

QSPI シングル 7<br />

個 、<br />

デュアル ス<br />

タックド 8<br />

個 、<br />

デュアル パ<br />

ラレル 13 個<br />

NAND X8–14<br />

X16–22<br />

ブート デバイ<br />

ス<br />

可 能 。<br />

ブー ト イ<br />

メージはシ<br />

ングルおよ<br />

びスタ ッ ク<br />

ド の 場 合 は<br />

16MB、 パラ<br />

レルの 場 合<br />

は 32MB<br />

可 能 。<br />

ブー ト イ<br />

メージは 最<br />

初 の 128MB<br />

XIP<br />

あり<br />

なし<br />

制 限<br />

ブー ト デバイ ス と し ては、<br />

容 量 が 各 デバイ ス ご と に<br />

16MB に 制 限 される。<br />

削 除 / 書 き 込 みは 超 低 速 。 通<br />

常 は 読 み 出 し 専 用 と し て 使<br />

用 される。<br />

よく MMC または SD カード<br />

と 一 緒 に 使 用 される。<br />

ECC、 ウェア レべリ ング、<br />

不 正 ブ ロ ッ ク の ソ フ ト ウ ェ<br />

ア 管 理 が 必 要 。<br />

JFFS2 または UBIFS などの<br />

Raw フラッシュにはファイ<br />

ル シ ス テムが 必 要 。<br />

ECC が 必 要 。<br />

ハー ド ウ ェ ア サポー ト は 1<br />

ビッ ト ECC のみ。<br />

読 み 出 し/ 書 き<br />

込 み<br />

バイ ト<br />

/ブロック<br />

ブロック<br />

/ブロック<br />

SD 6 可 能 なし 機 械 的 コ ネ ク タ が 必 要 。 ブロック<br />

/ブロック<br />

パラレル<br />

NOR<br />

37 可 能 あり 大 型 QSPI と 同 等 の 容 量 がサ<br />

ポー ト されるが、 ピン 数 は<br />

多 くなる。<br />

バイ ト<br />

/ブロック<br />

eMMC 6 不 可 なし eMMC か ら ブー ト 不 可 能 ブロック<br />

/ブロック<br />

各 ブー ト オプシ ョ ンの 詳 細 は、 次 のセ ク シ ョ ン を 参 照 し て く だ さ い。<br />

オプシ ョ ンの excecute‐in‐place モード を 使 用 した Quad‐SPI<br />

最 大 サイズ<br />

リニア モー<br />

ドで 16MB<br />

IO モード で<br />

QSPI ごとに<br />

128MB。 各<br />

コント ロー<br />

ラーでは 最<br />

大 2 つの<br />

QSPI までサ<br />

ポー ト 可 能 。<br />

1GB<br />

すべてのサ<br />

イズ<br />

64MB<br />

すべてのサ<br />

イズ<br />

ブート 時<br />

間<br />

高 速<br />

中 程 度<br />

低 速<br />

高 速<br />

なし<br />

BootROM では、 幅 検 出 パラ メーター 値 (0xAA995566) および 画 像 識 別 パ ラ メ ーター 値 (0x584C4E58) を 使 用 して<br />

Quad-SPI インターフェイス 用 の I./O 幅 を 検 出 で き ます。 Quad-SPI は、 使 用 可 能 な 最 速 の コ ン フ ィ ギ ュ レーシ ョ ン ソ<br />

リューションです。 これよりピン 数 が 少 ないのは、SD メモリ カード ブー ト オプシ ョ ンのみです。 Quad-SPI には、<br />

Zynq-7000 AP SoC のリニア メモリ としてアクセスできます。 不 正 なブロックは NAND フ ラ ッ シュなどのほかのデバ<br />

イ ス ほど 問 題 と はな ら ないので、 デバ イ ス 管 理 が よ り シンプルにな り ます。 リ ニア モード の 場 合 、 Quad-SPI ではシ<br />

ングル モード で 最 大 16 MB まで、 デュアル モード で 32 MB までサポート されます。 Quad-QSPI が IO モー ド で 動 作<br />

する 場 合 も、16MB を 超 え る 容 量 がサポー ト さ れます。 execute-in-place オプシ ョ ンでは、 非 セキュア ブー ト モード の<br />

場 合 、 BootROM で Quad-SPI コント ローラーのリニア ア ド レ ス 指 定 機 能 が 使 用 さ れます。 Quad-SPI を 使 用 し た 場 合 、<br />

マルチブー ト が 可 能 です。<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 51<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 3 章 : ハー ド ウ ェ ア デザイ ンの 考 慮 事 項<br />

推 奨 さ れる Quad-SPI ブー ト デバイ ス ファミ リは、 Micron (N25Q) および Spansion (25FL) です。<br />

NAND フラッシュ<br />

NAND フラッシュ ブー ト オプシ ョ ンは、 高 集 積 度 デバイ ス をサポー ト する 低 コ ス ト の ソ リ ューシ ョ ンです。 ブー ト<br />

イメージを NAND フラッシュ デバイ スの 最 初 の 1GB のア ド レ ス 空 間 内 に 配 置 する 必 要 があ る 点 が 唯 一 の 制 限 です。<br />

このブート オプシ ョ ンのパフォーマンスは Quad-SPI オプシ ョ ンのパフ ォーマン ス よ り も 劣 り ます。 典 型 的 な NAND<br />

フラッシュ ソリューションの 場 合 は、Quad-SPI ソリューションより 多 くのピンが 必 要 となり、 メモリ バン ド 幅 は 小<br />

さくなります。アプリケーション デザ イ ンに、 ブー ト 中 を 含 め、 問 題 のあ る ク ロ ッ ク を 管 理 する メ カニズムが 必 要 で<br />

す。 NAND を 使 用 し た 場 合 、 マルチブー ト が 可 能 です。<br />

推 奨 さ れる NAND ブー ト デバイ ス ファミ リは、Micron (オンダイ ECC) および Spansion (S34) です。 Micron NAND デ<br />

バイスには 通 常 マルチビッ ト ECC が 必 要 なので、 オンダ イ ECC サポー ト を 含 むデバイ スのみを 使 用 する 必 要 があ り<br />

ます。<br />

オプシ ョ ンの execute‐in‐place モード を 使 用 した NOR フラッシュ<br />

NOR フラッシュには、Zynq-7000 AP SoC のリニア メモリ としてアクセスできます。 また、 不 正 なブロックは NAND<br />

フラッシュ デバイ ス を 使 用 し た 場 合 ほどは 問 題 と な り ません。 NOR フ ラ ッ シ ュ の 集 積 度 は、 Quad-SPI と 互 換 性 があ<br />

り ます。 その 他 のブー ト オプシ ョ ン と 比 べて、 よ り 多 く の MIO ピ ン を 使 用 し ます。 典 型 的 な NOR フラッシュ (バ イ<br />

ト ペリフェラル インターフェイス) では、 MIO ピンが 40 個 使 用 さ れ、 最 大 64MB までサポートできます。<br />

推 奨 さ れる NOR フラッシュ ブー ト デバイ スは、 Micron (M29EW) および Spansion (29GL) です。<br />

SD メモリ カード<br />

SD メモリ カー ド の 集 積 度 は NAND フラッシュ ブー ト オプシ ョ ンよ り も 高 く、 デバイ スは 通 常 フ ァ イル シ ス テ ム と<br />

して 管 理 されます。 不 正 なブロ ッ クは、アプ リ ケーシ ョ ン デザ イ ンで 管 理 する 必 要 があ り ます。SD メモリは Quad-SPI<br />

ブー ト オプシ ョ ンよ り も 遅 く、 オンボード コネクタが 必 要 です。eMMC デバイ スはプ ラ イ マ リ ブー ト デバイ スでは<br />

ありませんが、 セカンダリ ブー ト ソース と し て 使 用 で き ます。 SD ブー ト モード では、 BootROM でヘ ッ ダー 検 索 が<br />

実 行 さ れず、 マルチブー ト オプシ ョ ン もサポー ト されません。 SD ブー ト モード のブー ト 時 間 は、 ARM_CLK_CTRL<br />

レジスタで CPU ク ロ ッ ク 分 周 を 2 (0x1F000200) に 設 定 する と 改 善 で き ます 。<br />

JTAG<br />

JTAG ブー ト モード の 場 合 、 独 立 し た JTAG モー ド を 選 択 し て、 ARM DAP コ ン ト ロ ー ラ ーに 接 続 さ れたデバ ッ ガー<br />

およびザイ リ ンクス PL TAP コント ローラーに 接 続 された 別 のツールをサポートできます。 ザイ リンクス PL TAP コ<br />

ントローラーには、 専 用 PL ピンに 接 続 された PL JTAG イ ン ターフ ェ イ ス を 使 用 する と ア ク セ スで き ます。ARM DAP<br />

コント ローラー ( 別 のツール 用 ) へは、 EMIO JTAG インターフェイスを 使 用 してアクセスします。 これには、 PL に<br />

ビッ トスト リームをダウンロードする 必 要 があります。 ビッ トスト リームは、 ザイリンクス PL TAP コント ローラー<br />

を 使 用 する と ダ ウ ン ロー ド で き ます。<br />

eMMC<br />

Quad-SPI がプラ イマ リ ブー ト オプシ ョ ンで、 小 型 の Quad-SPI メ モ リ が 使 用 さ れる 場 合 に、 eMMC セカンダ リ ブー<br />

ト オプシ ョ ン を 使 用 で き ます。 通 常 は、 FSBL が Quad-SPI に 読 み 込 まれ、 その 他 のパーテ ィ シ ョ ンが eMMC に 読 み<br />

込 まれます。 eMMC は、 標 準 速 度 モー ド ( 最 大 周 波 数 25 MHz) の 場 合 にのみ SDIO コ ン ト ローラー と 一 緒 に 使 用 する<br />

ことをお 勧 めします。<br />

PCIe、 イーサネット、USB、 UART、 カスタム FPGA インターフェイス<br />

PCIe、 イーサネット、USB、 UART、 カスタム FPGA インターフェイスを 使 用 してもセカンダリ ブー ト を イ ンプ リ メ<br />

ントでき、ユーザー アプ リ ケーシ ョ ンに 合 ったオプシ ョ ンを 選 択 できます。 PCIe ベースのセカ ンダ リ ブー ト オプ<br />

ションについては、 次 で 説 明 します。<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 52<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 3 章 : ハー ド ウ ェ ア デザイ ンの 考 慮 事 項<br />

PCIe セカンダ リ ブー ト は PCIe プ ロ ト コルを 使 用 し て、 PCIe Root Complex をインプリ メントするホスト シ ス テ ム か<br />

らセカンド ステージ ブー ト ローダーをフェ ッチします。 Zynq-7000 AP SoC PL の PCIe ブロックは、 Endpoint フ ァ ン<br />

クションをインプリ メント して、PCIe Root Complex と の 通 信 リ ン ク を 形 成 し ます。 FSBL イ メ ージ は 外 部 メ モ リ<br />

(QSPI、 NAND、 または NOR フラッシュ ) からフェッチできます。 FSBL の 実 行 が 終 了 し た ら、 FSBL が PCIe を 使 用<br />

してホス ト システム メモリからのセカンダリ U-Boot イ メージをフェッチできます。<br />

このオプションをインプリ メントするには、 デザインに PCIe ブロックをインスタンシエートするビッ ト ス ト リーム<br />

を 生 成 する 必 要 があ り ます。 た と えば、 Xilinx 7 Series PCIe IP ブ ロ ッ ク を 使 用 する と 、 プ ロ グ ラ ム 済 みの IO (PIO) デ<br />

ザインをインプリ メン トできます。 APU とホスト CPU 間 のハン ド シェ イ ク ス テータ ス を 取 得 する には、 PL レ ジ ス<br />

タのセッ ト もインプリ メン ト し、 PS マスターの GP ポー ト にそのレジス タ イ ン ターフ ェ イ ス を 接 続 する 必 要 があ り<br />

ます。 ブート フローは、 次 のようになります。<br />

• FSBL がプラ イマ リ ブー ト デバイ スか ら 読 み 込 まれる<br />

• APU は FSBL がペ リ フ ェ ラ ル 初 期 化 プ ロ セス を 実 行 する まで 待 機<br />

• FSBL が PIO デザイ ン と ハン ド シ ェ イ ク ステータスのレジスタ セ ッ ト を 使 用 し てビ ッ ト ファイルをプログラム<br />

• APU がビッ ト フ ァ イルのプ ロ グ ラ ム 終 了 後 に bitDone レジスタをプログラム<br />

• ホス ト PIO ドライバーが bitDone レ ジ ス タ を 読 み 出 し て PL ブロック RAM に U-Boot.elf ファイルを 書 き 込 み<br />

• U-Boot.elf が 書 き 込 まれた ら、 ステータ スが U-BootDone レジスタに 書 き 込 まれる<br />

• APU が U-BootDone ビッ トをポーリングし、 それが 終 了 したらファイルを PS DDR メモリにコピー<br />

ファイル システム<br />

選 択 し たフ ラ ッ シ ュ に よ って、 イ ンプ リ メ ン ト で き る フ ァ イル システムは 異 なり ます。 次 に 示 すファイル システム<br />

の 選 択 肢 は Linux 用 ですが、 注 意 する 必 要 のあ る 問 題 の 概 要 を 示 し ています。<br />

eMMC および SD カードには、 FTL (Flash Translation Layer) フ ァーム ウ ェ アを 実 行 する ビル ト イ ン コ ン ト ロ ー ラ ーが<br />

含 まれているので、 OS でデバイ スがブロ ッ ク デバイ ス と し 表 示 で き る よ う にな り ます。 FAT や ext3 な ど の 従 来 の<br />

ファイル システムはブロック デバイ ス と 一 緒 に 使 用 で き、 こ れら のデバイ ス を 使 用 する こ と で イ ンプ リ メ ン ト で き<br />

ます。<br />

Raw フラッシュ デバイ ス (NAND、 QSPI、 またはパラレル NOR など) の 場 合 、 読 み 出 さ れる メ モ リ セルお よ び 書 き<br />

込 まれる メモ リ セルが 正 し く 動 作 する ためには、 ソ フ ト ウ ェ ア 管 理 が 必 要 です。 Linux では メ モ リ テクノロジ デバ<br />

イス (MTD) サブシ ス テム を 使 用 し て、 ハー ド ウ ェ ア 専 用 のデバイ ス ド ラ イバー と 高 度 なアプ リ ケーシ ョ ン 間 に 抽 象<br />

化 レ イ ヤーが 提 供 さ れます。 Linux では、 MTD デバイ スの 上 のレ イ ヤーのフ ァ イル システム (JFFS2 および UBIFS な<br />

ど) がサポー ト されます。 これらのフ ァ イル システムは、 ウェア レべ リ ン グおよび 不 正 なブ ロ ッ ク の 管 理 などの 問 題<br />

を 処 理 する ための ソ フ ト ウ ェ ア 管 理 アルゴ リ ズムが 含 まれる よ う に 設 計 さ れてお り 、デバイ スが 問 題 な く 動 作 する た<br />

めに 必 要 です。<br />

ブー ト 時 間 の 最 適 化<br />

各 フラ ッシュ デバイ ス タ イ プか ら の 読 み 出 し に 使 用 さ れる BootROM 設 定 は、パフ ォーマン ス を 犠 牲 に し て も 互 換 性<br />

が 最 大 にな る よ う に 選 択 さ れます。 ブー ト インターフェイスのパフォーマンスは、 BootROM ヘッダーのレジスタ 初<br />

期 化 部 分 で 該 当 する コ ン ト ローラー レ ジ ス タ を 設 定 する と 改 善 で き ます。 設 定 は、 使 用 さ れるデバイ スおよびボー ド<br />

レイアウト パ ラ メ ーターに よ っ て 異 な り ます。 最 適 化 さ れる レ ジ ス タ 値 は、 使 用 するデバ イ ス のベンダーのデータ<br />

シー ト から 取 得 でき ます。 各 ブー ト デバイ ス 用 に 最 適 化 さ れる 値 の 例 は、 『Zynq-7000 All Programmable SoC テクニカ<br />

ル リファレンス マニュアル』 (UG585) [ 参 照 4] の 「Register Initialization でブー ト 時 間 を 最 適 化 」 セ ク シ ョ ンおよびザ<br />

イリンクス アンサー 55572 [ 参 照 69] を 参 照 し て く だ さ い。 最 適 化 さ れた 値 は Bootgen を 使 用 してブー ト イメージ<br />

ヘ ッ ダーに 追 加 で き ます。 詳 細 は、 『Zynq-7000 All Programmable SoC ソ フ ト ウ ェ ア 開 発 者 向 けガ イ ド』 (UG821) [ 参<br />

照 7] の 付 録 「Bootgen の 使 用 」 を 参 照 し て く だ さ い。 さ ま ざ ま なブー ト ス テージで タ イ ミ ン グおよびバン ド 幅 結 果 を<br />

改 善 する 方 法 は、 『Zynq-7000 All Programmable SoC テクニカル リファレンス マニ ュアル』 (UG585) [ 参 照 4] の 「ブー<br />

トおよびコンフィギュレーション」 の 章 の 「BootROM の 性 能 」 セ ク シ ョ ン を 参 照 し て く だ さ い。<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 53<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 3 章 : ハー ド ウ ェ ア デザイ ンの 考 慮 事 項<br />

ケース スタディ : QSPI ブー ト 時 間 の 変 動<br />

このケース スタディでは、ザイリンクス ZC702 ボード を 使 用 し、 100MHz で 実 行 される さ まざまな QSPI デバ イ ス で<br />

PS 周 波 数 を 変 更 し た 場 合 の QPSI デバイ ス ブー ト 時 間 について 説 明 し ます。<br />

32MB Spansion シングル デバイ スで PS が 667MHz で 実 行 さ れる 場 合 のブー ト 時 間 (U-Boot 開 始 か ら Linux プ ロ ン プ<br />

トまでを 測 定 ) は 約 3036 ミリ 秒 です。PS が 同 じ 周 波 数 で 実 行 さ れる 64MB Spansion デュアル パラレル デバ イ ス の<br />

ブー ト 時 間 は 約 2994 ミリ 秒 です。つまり、シングル QSPI デバイ スの 2 倍 のサイ ズのデュ アル パラレル QSPI デバ イ<br />

ス を 使 用 する と 、 PS 周 波 数 を 変 更 し な く て も ブー ト 時 間 が 約 41 ミ リ 秒 改 善 さ れます。<br />

PS 周 波 数 を 変 更 し て も ブー ト 時 間 が 変 わ り ます。 前 述 の よ う に、 PS が 667MHz で 実 行 される 32MB Spansion シ ン グ<br />

ル QSPI デバイ スのブー ト 時 間 は 約 3036 ミリ 秒 です。 同 じ QSPI デバイ ス を 使 用 し て、PS の 速 度 を 867MHz に 増 加 す<br />

ると、ブート 時 間 は 約 2523 ミリ 秒 になります。つまり、QSPI デバイ ス を 変 更 せずに、 PS 動 作 周 波 数 を 667 MHz か<br />

ら 867 MHz に 増 加 する と 、 ブー ト 時 間 が 約 513 ミ リ 秒 改 善 さ れます。<br />

メモリ インターフェイス<br />

DDR<br />

Zynq-7000 AP SoC の DDR マルチプロ ト コル メモリ コント ローラーでは、 1.8V DDR2、 1.2V LPDDR2、 1.5V DDR3、<br />

および 1.35V DDR3L がサポー ト され、 16 ビットまたは 32 ビッ ト 幅 のデータ バスが 提 供 されるようにコンフィギュ<br />

レーシ ョ ンできます。 16 ビッ ト データ バス 幅 のみをサポートする 7Z010 CLG225 デバイ ス 以 外 は、 すべてのデバイ<br />

スで 16 ビッ トおよび 32 ビ ッ ト のデータ バス 幅 オプシ ョ ンがサポー ト されます。 このコ ン ト ローラーでは、オプシ ョ<br />

ンで 32 ビッ ト コンフィギュレーションの ECC (16 データ ビッ ト、10 チェッ ク ビッ ト) がサポー ト されます。ECC が<br />

イネーブルになると、 データ 幅 は 16 ビッ トに 制 限 されます。1GB アドレス マップは DDR に 割 り 当 てられますが、<br />

ECC が 使 用 さ れる 場 合 は、 使 用 で き る のは 512MB のア ド レ ス 空 間 のみにな り ます。<br />

DDR メモリ コント ローラーには、 AXI メモリ ポー ト インターフェイス (DDRI)、 ト ランザクシ ョ ン スケジューラー<br />

を 含 むコア コント ローラー (DDRC)、 デジタル PHY を 含 むコン ト ローラー (DDRP) の 3 つのブロックが 含 まれます。<br />

各 ブロ ッ クおよびその 他 のコ ン ト ローラーの 詳 細 は、 『Zynq-7000 All Programmable SoC テクニカル リファレンス マ<br />

ニュアル』 (UG585) [ 参 照 4] ( リンク) を 参 照 して く ださい。<br />

コ ン ト ローラーには、 専 用 の I/O セ ッ ト を 含 むデジ タル PHY が 含 まれます。 一 部 の Zynq-7000 AP SoC デバ イ ス の 最<br />

速 のス ピード グレードでサポート される 最 大 バス クロックは、DDR3 モード の 場 合 666 2/3MHz です。 その 他 すべて<br />

のスピード グ レー ド の 場 合 、 DDR3 モード でサポー ト される 最 大 のバス クロックは 533 MHz です。 論 理 的 には、 最<br />

大 バス ビット レー ト は、 次 の よ う に 計 算 さ れます。<br />

データ 転 送 レー ト = 666 2/3 MHz * 2 ビット (ダブル データ レー ト の 場 合 ) = データ I/O ごとに<br />

1333Mb/s<br />

最 大 のバス 幅 、 32 ビ ッ ト を 使 用 する 場 合 、 最 大 バス バン ド 幅 は 42.6Gb/s または 5.3GB/s です。 このバン ド 幅 は、 4 つ<br />

の DDRI スレーブ ポー ト を 使 用 し て 接 続 さ れた 複 数 のマス ターで 共 有 さ れます ( 図 3-2)。DDRI ブロックは、4 つの 64<br />

ビッ トの 同 期 AXI イ ン ターフ ェ イ スに 接 続 さ れ、 複 数 のマス ターに 同 時 に 信 号 が 供 給 さ れます。 各 AXI インターフェ<br />

イスには、 専 用 のトランザクション FIFO が 含 まれます。 ポー ト S0 は L2 キ ャ ッ シ ュ に 接 続 さ れ、 PL の CPU お よ び<br />

ACP イ ン ターフ ェ イ スにのみ 使 用 さ れる ので、 レ イ テンシを 抑 えた 高 速 ア ク セスが 可 能 にな り ます。 ポー ト P1 は、<br />

PS ペリフェラルおよび AXI GP ポー ト などのセン ト ラル インターコネク ト マ ス ターすべてで 共 有 さ れます。 4 つの<br />

PL AXI_HP インターフェイスは 2 つに 多 重 化 さ れて、 ポー ト S2 および S3 に 接 続 されます ( 図 3-2)。<br />

最 大 バス バン ド 幅 は 5.3GB/s ですが、 持 続 でき ません。 DDR の 効 率 は、 DDR に 関 連 し たオーバーヘ ッ ド を 考 慮 する<br />

必 要 があ り 、 データ アクセス パターンの 影 響 を 受 けます。 ページおよび 行 の 変 更 を 最 小 限 にする ア ド レ ス パターン<br />

を 使 用 する と 、ページおよび 行 の 変 更 オーバーヘ ッ ド が 削 減 さ れるので、 使 用 率 およびシ ス テム スループ ッ ト が 上 が<br />

り ます。 詳 細 は、 『Zynq-7000 All Programmable SoC テクニカル リファレンス マニュアル』 (UG585) [ 参 照 4] の 「DDR<br />

メモリ コ ン ト ローラー」 の 章 の 「 行 /バンク/ 列 ア ド レスのマップ」 セク シ ョ ン ( リンク) を 参 照 して く ださい。<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 54<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 3 章 : ハー ド ウ ェ ア デザイ ンの 考 慮 事 項<br />

PL AXI マスターの HP ポー ト への 接 続 方 法 に よ って も、 シ ス テム スループ ッ ト は 変 わ り ます。 複 数 の AXI マ ス タ ー<br />

の 方 がラ ンダム アドレス ア ク セ ス を 生 成 する 可 能 性 が 高 く 、 存 在 し ないページが 増 え る ので、 DDR の 効 率 は 下 が り<br />

ます。 図 3-2 のよ うに、 AXI_HP から DDR へのイ ン ターコネ ク ト によ り 、 4 つの PL AXI_HP が ポー ト S2 および S3<br />

に 接 続 された 2 つ (どちらもインターコネク トで 調 整 ) に 多 重 化 さ れます。 PL AXI マスターが 2 つ し かない 場 合 、 マ<br />

スターを AXI_HP0 と AXI_HP2 または AXI_HP1 と AXI_HP3 に 接 続 する と 、 DDR コント ローラーのポート S2 と S3<br />

両 方 が 使 用 さ れる ので、 パフ ォーマン ス を 向 上 で き ます。 標 準 的 な Linux ベースのビデオ デザ イ ンの 場 合 、 AXI_HP<br />

ポー ト か ら 達 成 可 能 なシ ス テム バン ド 幅 は 約 50% です。 これについては、 『Zynq-7000 All Programmable SoC を 使 用<br />

し た 高 性 能 ビデオ シ ス テムの 設 計 』 (XAPP792) [ 参 照 34] を 参 照 して く ださい。<br />

コント ローラー DDRC ブロックには、 DDR 制 御 レ イ テンシを 改 善 する ための 3 ステージ アービ タ が 含 まれます。 レ<br />

イ テンシは、 レ ジ ス タ 設 定 を 使 用 する と 制 御 で き ます。 DDR レ イ テンシの 管 理 に 関 する 詳 細 は、 『Zynq-7000 All<br />

Programmable SoC テクニカル リファレンス マニュアル』 (UG585) [ 参 照 4] の 「DDR メモリ コ ン ト ロ ー ラ ー」 の 章 の<br />

「DDRC のアービ ト レーシ ョ ン」 セクシ ョ ン ( リンク) を 参 照 して ください。<br />

X-Ref Target - Figure 3-2<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

図 3‐2 : DDR メモリ コントローラーのブロック 図 および AXI_HP ポー ト へのイン ターコネク ト<br />

高 バン ド 幅 の 動 作 には、 DDR インターフェイス タイミングが 正 しく 初 期 化 され、 キャリブレーションされている 必<br />

要 があ り ます。 DDRP には、 DRAM ト レーニン グ 機 能 が 含 まれてお り 、 データ を 最 適 な 範 囲 に 揃 え る ために 必 要 な タ<br />

イ ミ ング 遅 延 が 自 動 的 に 指 定 さ るので、 確 実 にデータがキ ャプチャ される よ う になっています。 こ の 機 能 の 詳 細 は、<br />

『Zynq-7000 All Programmable SoC テクニカル リファレンス マニュアル』 l (UG585) [ 参 照 4] の 「DDR メモリ コ ン ト<br />

ローラー」 の 章 の 「 初 期 化 と キ ャ リ ブレーシ ョ ン」 セ ク シ ョ ン ( リンク) を 参 照 して く ださい。<br />

Zynq-7000 AP SoC ツール フ ローを 使 用 する と 、 DDR の 起 動 を 自 動 化 しやす く な り ます。 こ れには、 PS DDRC ボー ド<br />

パラ メーターをザイ リ ンクス アンサー 46778 [ 参 照 65] の よ う に 設 定 する 必 要 があ り ます。 こ れに よ り 、 ハー ド ウ ェ<br />

ア 設 計 プロセス 中 にボードの DDR 信 号 の 遅 延 特 性 が イ ンポー ト さ れます。 こ れら の 特 性 は、 自 動 ト レーニン グ アル<br />

ゴ リ ズムで 使 用 さ れる 初 期 化 を 指 定 する ため、 ま たは 自 動 アルゴ リ ズムが 特 定 の DDR 規 格 でサポー ト さ れない 場 合<br />

にスタティ ッ ク インターフェイス タ イ ミ ング を 計 算 する ために 使 用 さ れます。 タ イ ミ ン グ 値 はデザ イ ンのハー ド<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 55<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 3 章 : ハー ド ウ ェ ア デザイ ンの 考 慮 事 項<br />

ウェア プ ラ ッ ト フ ォーム 仕 様 の 一 部 で、 SDK にエク スポー ト され、 FSBL で 呼 び 出 さ れる PS 初 期 化 コー ド で 使 用 さ<br />

れます。 DDR は、 BootROM では 使 用 されません。<br />

QSPI<br />

PS QSPI フラッシュ コント ローラーは QSPI インターフェイスを 使 用 して 外 部 シリアル フラッシュ メ モ リ と 通 信 し<br />

ます。 メモ リ フラッシュ セルは 並 列 に 配 置 され、 NOR フ ラ ッ シ ュ と 呼 ばれ る こ と も あ り ます。 こ の コ ン フ ィ ギ ュ<br />

レーシ ョ ンの 場 合 、 NAND フラッシュ メ モ リ よ り も 集 積 度 および 容 量 は 小 さ く な り ますが、 配 列 のど こ でで も シン<br />

グル バイ ト の 読 み 出 し がで き る よ う にな り ます。 読 み 出 し の 場 合 は、 標 準 的 なア ド レ ス マップ メ モ リ の よ う に 動 作<br />

し、 コード ス トレージに 適 しています。また、execute-in-place (XIP) 機 能 がサポー ト されるので、 CPU は DDR ま た<br />

は OCM に コー ド を 読 み 込 ま な く て も、 QSPI か ら 直 接 コー ド を 実 行 で き ます。 XIP を 使 用 した ZC702 ボード で hello<br />

world サンプル デザイ ンについては、「Zynq-7000 AP SoC Boot - Booting and Running Without External Memory Tech Tip」<br />

ウ ィ キページ [ 参 照 59] を 参 照 して く ださい。<br />

Zynq-7000 AP SoC でサポー ト される フ ラ ッ シュ メモリの 中 でも、QSPI の 読 み 出 しパフ ォーマン スは 最 速 なので、 少<br />

ないピ ン 数 要 件 で 最 速 のブー ト ソリューションが 提 供 されます。ページ ベースの 書 き 込 みおよびセ ク ター ベースの<br />

削 除 はサポー ト されますが、その 他 のデバイ ス タ イ プに 比 べる と レー ト はかな り 遅 く な り ます。 ブー ト 時 間 が 最 速 で<br />

メモリ 容 量 が 大 きいコスト 効 率 の 良 いソ リューションには、プライマリ ブー ト デバイ ス と し て 小 型 の QSPI を 使 用 し<br />

て、 FSBL が 格 納 される よ う にでき ます。 その 他 すべてのパーテ ィ シ ョ ンは、 eMMC や SD な ど の よ り 大 き な フ ラ ッ<br />

シュ デバイ スに 配 置 でき ます。 こ のよ う なシステムのイ ンプ リ メ ン ト 方 法 の 詳 細 は、 『Zynq-7000 All Programmable<br />

SoC ソ フ ト ウ ェ ア 開 発 者 向 けガ イ ド 』 (UG821) [ 参 照 7] の 「eMMC フラッシュ デバイ ス」 セ ク シ ョ ン ( リンク) を 参 照<br />

してください。<br />

QSPI フラッシュ コント ローラーでは、 I/O モード、 リ ニア ア ド レ ス 指 定 モー ド 、 従 来 の SPI モード の 3 つのモー ド<br />

がサポー ト さ れます。 リ ニア アドレス 指 定 モードでは、QSPI コ ン ト ローラーで 受 信 さ れる AXI トランザクションが、<br />

フラッシュ デバイ スに 接 続 される QSPI バスの 該 当 するコマンドおよびデータ ト ラ ンザ ク シ ョ ンに 自 動 的 に 変 換 さ<br />

れます。 コ ン ト ローラーでは 24 ビッ トのフラッシュ アドレスのみがサポートされるので、QSPI の 最 大 サイ ズが リ ニ<br />

ア モード では 16MB に 制 限 されます。 BootROM は、 リ ニア モード で QSPI にアクセスします。QSPI が XIP モー ド で<br />

使 用 さ れる と 、 FSBL の 長 さが リ ニア モード の QSPI の 容 量 からブー ト ヘッ ダーの 長 さ を 引 いた 値 に 制 限 されます。<br />

XIP モード がブー ト ヘッダーを 介 してイネーブルになる と、FSBL が OCM にコピーされる 代 わりに、BootROM か ら<br />

FSBL に 制 御 が 移 行 し て、 FSBL が QSPI フ ラ ッ シ ュ か ら 直 接 実 行 さ れる よ う にな り ます。 QSPI が XIP モー ド で 使 用<br />

さ れない 場 合 、 BootROM は FSBL を OCM に コ ピーし て 実 行 し ます。 こ の 場 合 、 FSBL のサイズは 192KB の OCM 容<br />

量 に 制 限 されます。 OCM の 最 初 の 3/4 は 下 位 メ モ リ に、 上 部 1/4 は 上 位 メ モ リ にマ ッ プ されます。 FSBL は 上 部 1/4<br />

のほ とんどをス タ ッ クおよびヒープなどに 使 用 でき ます。<br />

I/O モー ド の 場 合 、 ソ フ ト ウ ェ アが TXD レ ジ ス タ で コ マン ド およびデータ を 構 成 し、 コ ン ト ローラーがレ ジ ス タ の 内<br />

容 を 正 しい 形 式 でフラ ッシュ メ モ リ に 駆 動 し ます。フ ラ ッ シ ュ メ モ リ で 駆 動 さ れるデータは 対 応 する RXD レジスタ<br />

にシフトされ、そのデータがソフトウェアで 抽 出 されます。I/O モー ド を 使 用 する と 、 ソ フ ト ウ ェ アがフ ラ ッ シ ュ コ<br />

マンドを 実 行 して、 フラ ッシュ メモリ 内 の 特 定 のレジスタ ビ ッ ト を 修 正 で き る ので、 ページ 間 を 効 率 的 に 切 り 替 え<br />

て QSPI フラッシュ ア ド レ ス 空 間 を 拡 張 で き ます。 こ の 方 法 を 使 用 する と 、 コ ン ト ローラーで 各 QSPI で 最 大 128MB<br />

までサポートできるようになります。QSPI の I/O モード については、『Zynq-7000 All Programmable SoC テクニカル リ<br />

ファレンス マニュアル』 (UG585) [ 参 照 4] の 「Quad-SPI フラッシュ コント ローラー」 の 章 の 「I/O モード」 セ ク シ ョ<br />

ン ( リンク) を 参 照 して く ださい。<br />

ボー ド で 使 用 さ れる QSPI が 16MB よ り も 大 き い 場 合 、 ページ レジスタがリセッ ト されるよ うに、 Zynq-7000 AP SoC<br />

プラッ ト フォーム リセットで QSPI に 対 するリセットもト リガーする 必 要 があります。 これにより、BootROM が リ<br />

ニア モード でア ド レ ス 0X0 か ら 読 み 出 す と き に、 ブー ト イメージにアクセスできるようになります。16MB を 超 え<br />

るフラッシュ デバイ ス を 使 用 する 場 合 は、 リ セ ッ ト 要 件 の 詳 細 をザ イ リ ン ク ス アンサー 57744 [ 参 照 70] で 確 認 し て<br />

ください。<br />

16 MB を 超 えるフラ ッシュ デバイ スにブー ト イ メ ージを 格 納 する のに RSA 暗 号 化 ま たは XIP モー ド が 使 用 さ れ る 場<br />

合 、 ブー ト イメージはオフセット 0x0 に 配 置 でき ませんが、 オフセ ッ ト 0x0+32K に 配 置 で き ます。 イ メ ージが 0x0<br />

にあ る 場 合 、 重 複 するヘ ッ ダー イ メージを 0x0+16MB に 含 めるか、 シングル x1 QSPI を 使 用 できます。<br />

QSPI フラッシュ デバイ スが 異 な る と 、 QSPI ク ロ ッ ク 周 波 数 および 読 み 出 し を 実 行 する のに 使 用 さ れた コ マン ド タ<br />

イプによって、 必 要 と されるダミー クロック サイクルが 異 なり ます。 QSPI のボードでのコンフ ィ ギュレーシ ョ ン 方<br />

法 (x1、 x2、 x4、 シングル、スタックド、またはパラレル) と 使 用 される 特 定 のフラッシュ デバイ スによ って、 フ ラ ッ<br />

シュ デバイ ス と の 通 信 用 にコ ン ト ローラーの LQSPI_CFG レ ジ ス タ を 設 定 する 必 要 があ り ます。 ザ イ リ ン ク スのサ<br />

ポー ト する QSPI フラッシュ デバイ ス を 使 用 する 場 合 、 ザ イ リ ン ク ス PS の QSPI デバイ ス ド ラ イ バーが 適 切 な 値 を<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 56<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 3 章 : ハー ド ウ ェ ア デザイ ンの 考 慮 事 項<br />

LQSPI_CFG レ ジ ス タ に 自 動 的 に 書 き 込 みます。 ザ イ リ ン ク ス では、 Micron および Spansion 製 造 の QSPI デバ イ ス を<br />

サポー ト し ています。 現 在 Zynq-7000 AP SoC ツールでサポート されているベンダーのフラ ッシュ デバイ スについて<br />

は、 ザイ リ ン ク ス アンサー 50991 [ 参 照 67] を 参 照 して く ださい。<br />

BootROM では、 BootROM ヘ ッ ダーの 幅 検 出 値 と 画 像 識 別 値 を 検 証 する こ と で、 高 速 読 み 出 し (x1)、 ク ワ ッ ド 出 力 読<br />

み 出 し (x4)、 デュ アル 出 力 高 速 読 み 出 し (x2)、 シングル モード、 またはパラ レル モー ド のいずれかを 使 用 し て 読 み<br />

出 し コマン ド が 自 動 的 に 実 行 されます。 これらの 値 に 基 づいて、 BootROM はサポー ト される 最 大 I/O バス 幅 を 使 用<br />

して Quad-SPI デバイ スか らデータ を 読 み 出 し ますが、 コ マン ド は x1 で 送 信 し ます。 BootROM は、 初 期 値 のセ ッ ト<br />

を LQSPI_CFG レ ジ ス タ に 書 き 込 みます。 こ れら の 値 の 詳 細 は、 『Zynq-7000 All Programmable SoC テクニカル リ フ ァ<br />

レンス マニュアル』 (UG585) [ 参 照 4] の 「ブートおよびコンフィギュレーション」の 章 の「Quad-SPI ブー ト 」 セ ク シ ョ<br />

ン ( リンク) を 参 照 して く ださい。<br />

メモリ インターフェイス クロックが 40MHz を 超 え る 高 速 の QSPI アプ リ ケーシ ョ ンでは、QSPI フィードバック モー<br />

ド を 使 用 する 必 要 があ り ます。 QSPI のフ ィードバッ ク クロックについては、『Zynq-7000 All Programmable SoC テ ク<br />

ニカル リファレンス マニュアル』 (UG585) [ 参 照 4] の「Quad-SPI フラッシュ コ ン ト ローラー」の 章 の「Quad-SPI フ ィ ー<br />

ドバック クロック」 セクション ( リンク) を 参 照 して く ださい。<br />

QSPI は、 U-Boot、 Linux、 iMPACT、 SDK でプログラ ムでき ます。<br />

QSPI フラッシュ コント ローラーの 詳 細 は、 『Zynq-7000 All Programmable SoC テクニカル リファレンス マニ ュ アル』<br />

(UG585) [ 参 照 4] の 「Quad-SPI フラッシュ コント ローラー」 の 章 の 「Quad-SPI フラッシュ コ ン ト ローラー」 セ ク シ ョ<br />

ン ( リンク) を 参 照 して く ださい。<br />

スタティ ック メモリ コントローラー<br />

スタティック メモリ コント ローラーには、NAND フラッシュ インターフェイス モード と パラ レル ポー ト メモリ イ<br />

ンターフェイス モード の 2 つのイ ン ターフ ェ イ ス モード があ り ます。NAND フラッシュ インターフェイス モー ド で<br />

は NAND フラッシュが、パラレル ポー ト インターフェイス モード では NOR フ ラ ッ シ ュ と 非 同 期 SRAM がサポー ト<br />

されます。 QSPI と NOR フラッシュのどちらでも NOR ベースの メ モ リ セルが 使 用 され、 QSPI では リ ニア モー ド で<br />

16MB に 制 限 されるので、 QSPI よ りも NOR フ ラ ッ シ ュ を 選 択 する のは 容 量 が 要 因 と な り ますが、 ス タ テ ィ ッ ク メモ<br />

リ コント ローラーではアドレス ラインの 数 が 26 ビッ トに 制 限 されるので、サポート されるのは 64MB の NOR フ ラ ッ<br />

シュまでです。QSPI の 16MB 制 限 はブー ト 中 にだけ 適 用 さ れる ので、 BootROM で 読 み 出 さ れるデータ 量 が 16MB を<br />

超 えないよ う にする 必 要 があ り ます。 BootROM によ り FSBL が OCM か DDR メ モ リ の ど ち ら かに 読 み 込 ま れた ら 、<br />

QSPI コント ローラーを I/O モー ド に 切 り 替 えて、 最 大 で 128MB メモリ (フラッシュ デバイ スのページ レ ジ ス タ のサ<br />

ポー ト あ り ) までアクセスできるよ うにします。 64MB デバイ ス (40 ピンを 使 用 ) をサポートする NOR フラッシュ コ<br />

ントローラーの 機 能 と QSPI でサポー ト される 128MB デバイ ス (8 ピ ンのみ 使 用 ) を 比 較 する と 、QSPI の 方 が NOR フ<br />

ラッシュよりも 推 奨 されます。<br />

次 のセ ク シ ョ ンでは、 NAND フラッシュ インターフェイス モード について 説 明 し ます。 パラ レル ポー ト メモリ イ<br />

ンターフェイスの 使 用 の 詳 細 は、『Zynq-7000 All Programmable SoC テクニカル リファレンス マニュアル』 (UG585) [ 参<br />

照 4] を 参 照 して く ださい。<br />

NAND メモリ コントローラー<br />

NAND フラッシュでは、 メモリ セルが 直 列 に 配 置 されているので、 NOR フラッシュよりもメモリ セルの 集 積 度 は 高<br />

く、 シリコン エリ アごとの 容 量 も 大 き く、 ビッ ト ごとのコス ト も 安 くなり ます。 NAND フラッシュ コント ローラー<br />

では、ア ド レ ス/データ/コマンドに 対 して 8 ビットまたは 16 ビッ トの I/O バスを 使 用 して、1GB までの 外 部 NAND フ<br />

ラ ッ シ ュ をサポー ト で き ます。 ま た、 Open NAND フラッシュ インターフェイス 1.0 仕 様 がサポー ト さ れます。<br />

高 集 積 度 の メ モ リ セル パ ッ ケージの 場 合 、 プ ロ グ ラ ムおよび 消 去 サ イ ク ル 中 にセルに 負 荷 がかか り 、 ビ ッ ト エラー<br />

が 発 生 しやす く な り ます。 こ れら のエ ラーを 軽 減 する には ECC を 使 用 します。 NAND フラッシュ コント ローラーに<br />

は、 1 ビッ トの ECC 訂 正 に 対 するハー ド ウ ェ ア サポー ト が 含 まれています。 フ ラ ッシュ 管 理 アルゴ リ ズム ( さまざま<br />

なエラー モー ド を 管 理 し、 不 正 なブ ロ ッ ク を 処 理 し、 メ モ リ セル 全 体 の 磨 耗 を 均 一 に し、 セルの 耐 性 およびデータ<br />

保 持 を 改 善 する ために、 ECC データ を 使 用 ) を 実 行 する ためには、 ソ フ ト ウ ェ アが 使 用 さ れます。<br />

コント ローラーでは 1 ビッ トの ECC しかサポート されないので、 オンチップ ECC または 1 ビット ECC を 使 用 し た<br />

NAND デバイ スのみを Zynq-7000 AP SoC と 一 緒 に 使 用 でき ます。 現 在 の と こ ろ、 こ の ECC 条 件 に 合 う のはシン グル<br />

レベル セル (SLC) デバイ スのみで、 マルチ レベル セル (MLC) はサポー ト さ れてい ません。 ま た、 コ ン ト ロ ー ラ ーで<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 57<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 3 章 : ハー ド ウ ェ ア デザイ ンの 考 慮 事 項<br />

は、 シングル チップ セレク ト しかサポート されません。 ザイ リ ンクスでは、 x8 および x16 コ ン フ ィ ギ ュ レーシ ョ ン<br />

の 両 方 で 128MB ~ 1GB の 範 囲 の NAND デバイ ス をサポー ト し ています。 公 式 にサポー ト し ているのは、 Micron お<br />

よび Spansion の NAND デバイ スです。Zynq-7000 AP SoC ツールでサポート されているベンダーのフラ ッシュ デバ イ<br />

スについては、 ザイ リ ンクス アンサー 50991 [ 参 照 67] を 参 照 して く ださい。<br />

容 量 の 大 き な NAND デバイ スで も、Zynq-7000 AP SoC の BootROM は 開 始 する ブー ト イ メージを 最 初 の 128MB か ら<br />

検 索 し ます。 こ のため、 ス タ ンダー ド ブー ト イ メージとフォールバック ブー ト イ メージ ( 使 用 さ れる 場 合 ) の 両 方 が<br />

最 初 の 128MB で 開 始 さ れる 必 要 があ り ます。<br />

NAND フラッシュとの 通 信 は、デバイスによって 異 なる AC タイミング パラ メーターのセッ トに 基 づきます。 正 しい<br />

タイミングを 使 用 した Zynq-7000 AP SoC と NAND デバイ ス と の 通 信 には、デバイ スの AC タ イ ミ ン グ 値 に 基 づいて、<br />

該 当 する タ イ ミ ング パラ メーターを [SMC Timing Calculation] ページの CS0 列 に 入 力 する 必 要 があ り ます。 図 3-3 は、<br />

これを 示 しています。<br />

CS0 サイクルは NAND ク ロ ッ ク 周 波 数 に 基 づいて 自 動 的 に 計 算 さ れます。 こ の 値 は、 SDK の PS 初 期 化 コー ド にデザ<br />

インのハードウェア プ ラ ッ ト フ ォーム 仕 様 の 一 部 と し て 含 まれます。 初 期 化 コー ド に よ り、 こ れ ら の 値 が<br />

smc.SET_CYCLE レジスタに 書 き 込 まれます。<br />

X-Ref Target - Figure 3-3<br />

図 3‐3 : [SMC Timing Caliculation] ページ 例<br />

BootROM は、smc.SET_CYCLE レ ジ ス タ に 格 納 さ れた 初 期 値 のセ ッ ト を 使 用 し て、PS 初 期 化 コー ド の 実 行 前 に NAND<br />

フ ラ ッ シ ュ か ら 読 み 出 し ます。 こ れ ら の 値 の 詳 細 は、 『Zynq-7000 All Programmable SoC テクニカル リファレンス マ<br />

ニュアル』 (UG585) [ 参 照 4] の 「ブートおよびコンフ ィギュレーシ ョ ン」 の 章 の 「NAND ブー ト 」 セ ク シ ョ ンを 参 照<br />

してください。<br />

NAND フ ラ ッ シ ュ では、 読 み 出 しおよび 書 き 込 みはページ 単 位 で、 消 去 はブ ロ ッ ク 単 位 で 実 行 さ れます。 NAND フ<br />

ラッシュはランダム アクセス メモリのようには 動 作 しないので、 ソフトウェアで MTD サブシステム API を 使 用 し<br />

てデバイ スにア クセスでき る よ う に、 Linux システムでは 抽 象 化 レイヤーを 提 供 するメモリ テクノロジ デバイ ス<br />

(MTD) として 使 用 されます。 この API は、 さ ま ざ まなフ ラ ッ シ ュ タイプおよびテクノロジ 間 で 共 通 です。MTD はブ<br />

ロック デバイ スではないので、 ウ ェ ア レべ リ ン グや 不 正 なブ ロ ッ ク の 管 理 な どの 問 題 を 処 理 する ための ソ フ ト ウ ェ<br />

ア 管 理 アルゴ リ ズムがあ り ません。 ext2、 ext3、 および FAT (ブロック デバイ ス 上 で 動 作 ) のよ うな 従 来 からのファイ<br />

ル システムの 代 わ り に、 FFS2 または UBIFS のよ うな Raw フ ラ ッ シ ュ 上 で 動 作 する よ う なフ ァ イル シ ス テ ム を 設 計<br />

する 必 要 があ り ます。 JFFS2 は MTD サブシ ス テム 上 で 動 作 し ます。 UBIFS は UBI サブシステム 上 で 動 作 し、MTD サ<br />

ブシ ス テム 上 で 動 作 する 場 合 は NAND デバイ スに 必 要 な ソ フ ト ウ ェア 管 理 アルゴ リ ズムが 提 供 されます。<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 58<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 3 章 : ハー ド ウ ェ ア デザイ ンの 考 慮 事 項<br />

ペリフェラル<br />

このセクショ ンでは、 Zynq-7000 AP SoC PS に 含 まれる メ モ リ マップされたペリフェラル、 これらのペリフェラルと<br />

APU およびメモ リ コント ローラーとの 関 係 について 説 明 します。 AMBA バス トポロジ (AHB および APB)、および<br />

USB、 CAN、 UART、 イーサネットSPI プロ ト コルについては、 既 に 理 解 しているものとします。<br />

Zynq-7000 AP SoC ペ リ フ ェ ラルは、 大 まかには 次 のよ う に 分 類 でき ます。<br />

• PS ペリフェラル<br />

• PL ペリフェラル<br />

PS ペ リ フ ェ ラ ルは、ハー ド ワ イ ヤのペ リ フ ェ ラ ルで、 標 準 的 な ASSP インプリ メ ンテーシ ョ ンの 一 部 と してインプ リ<br />

メントされます。PS ペリフェラルは、 オンザフライでプログラムおよびリコンフィギュレーション 可 能 です。 この<br />

セクションでは PS ペ リ フ ェ ラ ルについて 説 明 し ます。 PL ペリフェラルについては、 その 後 のセクションで 説 明 しま<br />

す。<br />

PS ペリフェラルはメモリ マップされています。 ペリフェラル メモリ マ ッ プは 定 義 済 みです。ペ リ フ ェ ラ ルは、AMBA<br />

(Advanced Microcontroller Bus Architecture) プ ロ ト コルに 準 拠 するバス アーキテクチャをインプリメントし、セントラ<br />

ル インターコネク トまたはアプリケーション プロセッサ ユニ ッ ト の 一 部 のいずれかに 接 続 されます。 これらは<br />

AMBA 指 定 ト ラ ンザ ク シ ョ ン を 使 用 し て ARM Cortex-A9 プ ロ セ ッ サ と 通 信 し ます。 ペ リ フ ェ ラ ルは ARM TrustZone<br />

セキュ リ ティ 認 識 されるので、オプシ ョ ンで 非 セキュアのマスターからの 非 セキュア ア ク セ ス を 拒 否 する こ と がで き<br />

ます。セン ト ラル インターコネク トに 接 続 されたペリフェラルは、オプションで PL アクセスをイネーブルにする PL<br />

に 配 線 でき ます。<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 59<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 3 章 : ハー ド ウ ェ ア デザイ ンの 考 慮 事 項<br />

図 3-4 は、 PS に 含 まれるペ リ フ ェ ラ ルの 最 上 位 ブ ロ ッ ク 図 を 示 し ています。<br />

X-Ref Target - Figure 3-4<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

図 3‐4 : PS ペリフェラルのブロック 図<br />

ペ リ フ ェ ラルの 詳 細<br />

次 は、 PS ブロックに 含 まれる 主 なペリ フェラルです。<br />

USB ペリフェラル<br />

PS USB コント ローラーは USB 2.0 に 準 拠 し、 次 のモード で 動 作 でき ます。<br />

• デバイ ス モード<br />

• ホス ト モード<br />

• On-The-Go (OTG) モード<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 60<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 3 章 : ハー ド ウ ェ ア デザイ ンの 考 慮 事 項<br />

USB コント ローラーは ULPI インターフェイスを 使 用 して 外 部 PHY に 接 続 され、MIO を 使 用 して 8 ライン SDR デー<br />

タ バス と してインプリ メ ン ト されます。ULPI PHY は USB コ ン ト ローラーの 一 部 ではないので、ULPI 準 拠 の PHY を<br />

インプリ メントすると、Zynq-7000 AP SoC の USB コント ローラーに 接 続 できます。 ポート コ ン ト ロ ー ラ ーの イ ン ジ<br />

ケーター 信 号 、 電 源 選 択 信 号 、 電 源 障 害 信 号 は、 EMIO を 介 して PL に 配 線 で き ます。 サ イ ド バン ド 信 号 も SelectIO<br />

ピンに 配 線 できます。USB コント ローラーには、AHB バス を 使 用 し てデータ を メ モ リ に 入 出 力 する 送 信 FIFO および<br />

受 信 FIFO を 含 むビル ト イン DMA エンジンが 含 まれます。<br />

詳 細 は、 『Zynq-7000 All Programmable SoC テクニカル リファレンス マニュアル』 (UG585) [ 参 照 4] の 「USB ホス ト/デ<br />

バイス/OTG コ ン ト ローラー」 の 章 ( リンク) を 参 照 して く ださい。<br />

データ フロー<br />

メモリから DMA で 転 送 されるデータは、 USB 2.0 プロ ト コル フォーマッ トを 使 用 してカプセル 化 され、 ULPI イ ン<br />

ターフェイスを 使 用 して PHY に 送 信 されます。<br />

システム レベルの 考 慮 事 項<br />

USB コント ローラーは、 2 つのク ロ ッ ク ド メ イ ンか ら ク ロ ッ ク 供 給 さ れます。<br />

• AHB インターフェイスは、 CPU_1x クロック ドメインでクロック 供 給 されます。<br />

• USB プロ ト コル エンジンとプロ ト コル コント ローラー インターフェイスでは、ULPI PHY で 生 成 された 60MHz<br />

クロックが 使 用 されます。<br />

USB コント ローラーをリセッ トするには、 次 の 3 つの 方 法 があ り ます。<br />

• APB インターフェイスを 使 用 して USB コマンド レジスタに 書 き 込 むと、 コン ト ローラー リセットを PS リ セ ッ<br />

トでト リガーできます。<br />

• GPIO 信 号 の 制 御 下 で ULPI PHY リセットをト リガーできます。<br />

• OTG モー ド で 自 動 リ セ ッ ト 機 能 を 使 用 する と USB バス リセットをト リガーできます。<br />

コント ローラーは USB ホス ト、 USB デバイ ス ま たは OTG としてコンフィギュレーションできます。 コンフィギュ<br />

レーションは、アプリケーションで 決 定 されます。 コントローラー ホス ト モード では、 USB ホス ト コ ン ト ローラー<br />

インターフェイスが Linux イ メージでビルトインされる 必 要 があります。USB マス ス トレージ、アイソクロナス、ま<br />

たは 割 り 込 みベースのいずれかで 異 な るデバイ ス モード オプシ ョ ン を 設 定 で き ます。 高 速 エン ド ポ イ ン ト の 場 合 、 最<br />

大 パケ ッ ト サイズはバルク 転 送 で 512 バイ ト、 アイソ クロナス デバイ スで 1024 バ イ ト です。 ビデオの よ う な ス ト<br />

リーミング アプ リ ケーシ ョ ンの 場 合 は、 アイ ソ ク ロナス モー ド を 使 用 で き ます。<br />

イーサネッ ト ペリフェラル<br />

ギガビッ ト イーサネッ ト MAC (GEM) は、 IEEE 802.3-2008 規 格 と 互 換 性 のあ る 10/100/1000 Mb/s Ethernet MAC を イ<br />

ンプ リ メ ン ト します。 3 つの 速 度 すべてで、 ハーフ モード またはフル デュプレッ クス モー ド の ど ち ら かで 動 作 で き<br />

ます。 2 つの GEM コ ン ト ローラーはそれぞれ 別 々にコ ン フ ィ ギ ュ レーシ ョ ンで き ます。 ピ ン を 保 存 する ために、 各<br />

コント ローラーでは MIO を 介 して RGMII が 使 用 されます。 PL へは、 GMII イ ン ターフ ェ イ ス を 提 供 する EMIO を 介<br />

してアクセスされます。<br />

PL でその 他 の イーサネ ッ ト 通 信 イ ン ターフ ェ イ ス を 作 成 する には、 EMIO イ ン ターフ ェ イ スか ら 使 用 可 能 な GMII を<br />

使 用 し ます。<br />

Zynq-7000 AP SoC の GEM コント ローラーからは MAC ファンクションしか 提 供 されないので、 別 の PHY を イ ン プ リ<br />

メントする 必 要 があります。<br />

データ フロー<br />

コント ローラーに 含 まれる DMA ブロッ クが AHB バスを 使 用 してシステム メ モ リ か ら デー タ を フ ェ ッ チ し 、 送 信<br />

FIFO にデータ を 格 納 し ます。 FIFO データ はコ ン ト ローラーに よ って イーサネ ッ ト プロ ト コル フ ォ ーマ ッ ト に 変 換<br />

され、 RGMII または GMII インターフェイス (ユーザーが MIO と EMIO イ ン タ ーフ ェ イ ス のいずれを 使 用 す る かに<br />

よって 異 なる) を 使 用 してイーサネッ ト PHY に 送 信 されます。<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 61<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 3 章 : ハー ド ウ ェ ア デザイ ンの 考 慮 事 項<br />

レジスタは、 MAC の 機 能 を コ ン フ ィ ギ ュ レーシ ョ ン し、 さ ま ざ ま な 動 作 モー ド を 選 択 し、 ネ ッ ト ワー ク 管 理 統 計 を<br />

イ ネーブルに し て 監 視 する ために 使 用 さ れます。<br />

コント ローラーには、 PHY 管 理 用 の MDIO インターフェイスが 含 まれます。 PHY は、 いずれかの MDIO イ ン タ ー<br />

フ ェ イ スか ら 制 御 で き ます。<br />

システム レベルの 考 慮 事 項<br />

GEM コ ン ト ローラーには、 システム 要 件 に 基 づいて イ ンプ リ メ ン ト 可 能 なシステム レベル 機 能 が 多 く 含 まれます。<br />

たとえば、 ネッ トワーク 効 率 を 向 上 し、 CPU 使 用 率 を 低 く する 必 要 があ る シ ス テムで、 チェ ッ ク サム オフローディ<br />

ングをイネーブルにできます。 別 のシステム レベルの 考 慮 事 項 は、 IEEE 1588 で 定 義 される PTP (Precision Time<br />

Protocol) のインプリ メンテーショ ンです。 コン ト ローラーは PTP イベン ト を 検 出 し、 それに 応 答 し ます。 ま た、 PTP<br />

準 拠 のネ ッ ト ワー ク ピアを 必 要 とします。<br />

DMA インターフェイスを 使 用 すると、 オプションでコント ローラーから PL にイーサネッ ト パケ ッ ト を 配 線 で き ま<br />

す。 こ のオプシ ョ ンには、 PL にパケ ッ ト 加 速 またはパケ ッ ト 検 査 IP をインプリ メントする 必 要 があることがありま<br />

す。<br />

GEM コント ローラーでは、ジャンボ フレームはサポート されません。ジャンボ フレームのサポートが 必 要 な 場 合 は、<br />

PL にザイ リ ン ク ス AXI Ethernet MAC IP をインプリ メントできます。 AXI DMA IP を 使 用 する と、 イーサネッ ト フ<br />

レームを PS の DDR メ モ リ か ら 読 み 出 しおよび 書 き 込 みで き ます。 GEM コント ローラーでは、 3.3 V の IO 電 圧 はサ<br />

ポー ト されません。 詳 細 は、『Zynq-7000 All Programmable SoC テクニカル リファレンス マニュアル』 (UG585) [ 参 照 4]<br />

の 「ギガビッ ト イーサネッ ト コント ローラー」 の 章 ( リンク) を 参 照 して く ださい。<br />

SDIO ペリフェラル<br />

SD/SDIO コント ローラーは、 SDIO デバイ スおよび SD メモリ カー ド と 通 信 し ます。 SDIO インターフェイスは MIO<br />

マルチプレ クサーを 介 して MIO ピンに 配 線 したり、 EMIO を 介 して PL の SelectIO ピ ンに 配 線 で き ます。 コ ン ト ロ ー<br />

ラーでは、 802.11 デバイ ス、 GPS、 WiMAX な どの 広 範 囲 のポータ ブルな 低 消 費 電 力 アプ リ ケーシ ョ ンで SD および<br />

SDIO アプ リ ケーシ ョ ンをサポート できます。<br />

SD/SDIO コント ローラーは、SDMA (シングル オペレーシ ョ ン DMA)、 ADMA1 (4 KB バウ ンダ リ 制 限 付 き DMA)、 お<br />

よび ADMA2 サポー ト のある 標 準 の SD Host Controller Specification Version 2.0 Part A2 と 互 換 性 があ り ます。 ADMA2<br />

を 使 用 する と 、 データ がど こ にあ って も どのサ イ ズで も Scatter-Gather DMA を 使 用 して 32 ビッ ト システム メ モ リ で<br />

転 送 で き ます。 こ の コ アで も、 SD1 および SD4 で 最 大 7 つのフ ァ ン ク シ ョ ン までサポー ト されますが、 SPI モー ド は<br />

サポー ト されません。 このコアでは、 SD High-Speed (SDHS) および SD High Capacity (SDHC) カー ド 規 格 がサポー ト<br />

されます。 ユーザーは、 SD2.0/SDIO 2.0 仕 様 [ 参 照 89] に 精 通 し ている 必 要 があ り ます。<br />

SD/SDIO コント ローラーには、AHB バスを 介 して ARM プロセッサからアクセスできます。 コ ン ト ロ ー ラ ーには、 ス<br />

ループッ ト 要 件 を 満 たすための 内 部 FIFO を 使 用 する DMA ユニッ ト も 含 まれます。 SD/SDIO コ ン ト ロ ー ラ ーは、<br />

MMC 3.31 仕 様 と 互 換 性 があ り ます。<br />

データ フロー<br />

SD/SDIO コント ローラーには、 AHB バスを 使 用 してシステム メモリからデータをフェッチできる DMA が ビル ト イ<br />

ンされています。 こ の コ ン ト ローラーは、 接 続 さ れたカー ド にデータ を 読 み 出 しおよび 書 き 込 みする FIFO ペアを イ<br />

ンプ リ メ ン ト して、 スループッ ト を 最 大 にします。 APU から 開 始 される SD 専 用 コ マン ド に 基 づいて、 接 続 さ れた<br />

カードへのデータの 書 き 込 みまたは リ ード バッ ク が 実 行 されます。<br />

システム レベルの 考 慮 事 項<br />

SD カー ド は 本 質 的 には NAND フラッシュ デバイ スで、 フ ラ ッ シ ュ トランザクション レイヤー (FTL) を イ ン プ リ メ<br />

ントするビルトイン コント ローラーが 含 まれます。 FTL では ECC、 ブ ロ ッ ク 管 理 、 およびウ ェ ア レべ リ ン グが 処 理<br />

されるので、 メモリがブロッ ク デバイスのように 動 作 します。 このため、 従 来 のファイル システム (FAT、 ext2、 お<br />

よび ext3 など) をインプリ メントできます。 マルチチップ パッケージ テクノロジとマルチレベル セル テ ク ノ ロ ジの<br />

進 歩 のため、SD メモリ デバイ スの 集 積 度 と 容 量 は、Zynq-7000 AP SoC で 使 用 可 能 なすべてのフ ラ ッ シ ュ メ モ リ の 中<br />

でも 最 大 です。 SD メモリの 欠 点 は、 SD カード コネクタが 必 要 な 点 にあり ます。 物 理 的 なコネクタを 使 用 しない 場<br />

合 は、 eMMC を 使 用 できます。 eMMC には、 フ ラ ッ シュ メモリ と 小 型 のボール グ リッド アレイ (BGA) にパ ッ ケー<br />

ジされたコント ローラーが 含 まれ、BGA は 機 械 的 な コ ネ ク タ な し に 回 路 ボー ド に 直 接 取 り 付 け る こ と がで き ます。SD<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 62<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 3 章 : ハー ド ウ ェ ア デザイ ンの 考 慮 事 項<br />

ソリューションと eMMC ソ リューションの 違 いは、ブート デバイ ス と し て 機 能 する かど う かにあ り ます。 Zynq-7000<br />

AP SoC は、 SD カード から 直 接 起 動 でき ますが、 eMMC からは 実 行 できません。 eMMC ソ リ ュ ーシ ョ ン の 場 合 は、<br />

QSPI のよ うなブート デバイ スが 追 加 で 必 要 にな り ます。<br />

CLK、 CMD、 データ 信 号 に 加 えて、カード 検 出 (CDn) 信 号 で SD カー ド の 挿 入 ま たは 存 在 が 示 さ れ、 書 き 込 み 保 護<br />

(WPn) 信 号 で メ モ リ カー ド での 書 き 込 み 保 護 ス イ ッ チの 位 置 が 示 さ れます。 ソ フ ト ウ ェ ア ド ラ イバーの 中 には、 こ<br />

れ ら の 信 号 の 使 用 に 依 存 する も のがあ り ます。 こ のため、 信 号 を 使 用 で き ない 場 合 は、 CDn をアクティブに、WPn を<br />

非 ア ク テ ィ ブにするのがシンプルなソ リ ューシ ョ ンにな り ます。<br />

SD/SDIO ペリフェラルをブート モード デバイ ス と し て 使 用 する こ と も でき ます。 詳 細 は、 49 ページの 「ブー ト デバ<br />

イスおよびそのコンフィギュレーション」 および 『Zynq-7000 All Programmable SoC テクニカル リファレンス マニ ュ<br />

アル』 (UG585) [ 参 照 4] の 「SD/SDIO コント ローラー」 の 章 ( リンク) を 参 照 して ください。<br />

UART ペリフェラル<br />

UART コ ン ト ローラーは、 広 範 囲 のプ ロ グ ラ マブル ボー レートおよび I/O 信 号 フ ォーマ ッ ト をサポー ト する フル デ ュ<br />

プレ ッ ク ス 非 同 期 レ シーバーおよび ト ラ ン ス ミ ッ ターです。 こ のコ ン ト ローラーでは、 自 動 パ リ テ ィ 生 成 およびマル<br />

チマス ター 検 出 モー ド を 使 用 で き ます。<br />

UART の 操 作 は、 コ ンフ ィ ギュ レーシ ョ ンおよびモード レジスタで 制 御 されます。 FIFO の ス テー ト 、 モデム 信 号 、<br />

およびその 他 のコン ト ローラー フ ァ ン ク シ ョ ンは、 ステータ ス、 割 り 込 みステータ ス、 およびモデム ステータス レ<br />

ジ ス タ を 使 用 し て 読 み 出 さ れます。<br />

データ フロー<br />

コント ローラーと APU 間 の 通 信 は、 APB バス を 介 し て 実 行 さ れます。 コント ローラーは、 別 の Rx および Tx デー タ<br />

パスを 使 用 して 構 築 されます。 各 パスには、 64 バイ ト FIFO が 含 まれます。 APB バスを 介 してシステム メ モ リ か ら<br />

到 着 するデータは、 送 信 FIFO に 格 納 されます。 MIO/EMIO インターフェイスから 受 信 したデータは、 受 信 FIFO に<br />

格 納 さ れ、 APB バスを 使 用 してシステム メ モ リ に 送 信 さ れます。<br />

コント ローラーには、Rx および Tx FIFO のデータ をデシ リ ア ラ イ ズ し、 RxD および TxD 信 号 に 対 し てループバ ッ ク<br />

コンフィギュレーションをサポートするモード スイッチが 含 まれます。FIFO 割 り 込 みス テータ ス ビッ トでは、ポー<br />

リングまたは 割 り 込 みドリブン ハン ド ラーがサポー ト されます。 ソ フ ト ウェアでは、 Rx および Tx データ ポー ト レ<br />

ジ ス タ を 使 用 し てデータ バイ ト を 読 み 出 しおよび 書 き 込 みし ます。<br />

システム レベルの 考 慮 事 項<br />

Zynq-7000 AP SoC には、 エンベデッ ド システムのデバッグ ポー ト と し て よ く 使 用 さ れる UART コント ローラーが 2<br />

つ 含 まれます。 こ れらは、 ホ ス ト PC と の 端 子 接 続 に も よ く 使 用 さ れます。 こ れら の 有 用 性 のため、 こ の コ ン ト ロー<br />

ラーはソフ ト ウェアのすべてのレイヤー (FSBL、 U-Boot、 スタンドアロン、およびその 他 さまざまなオペレーティン<br />

グ システム) でサポー ト されます。<br />

UART はブー ト プ ロ セスの 初 期 段 階 で FSBL に よ り 使 用 さ れ、 情 報 を 端 末 に 送 信 し ます。 UART コ ン ト ロ ー ラ ーへの<br />

最 も 単 純 な 接 続 には、 TX と RX の 2 つの 信 号 が 必 要 です。 TX と RX の 2 つのテス ト ポイント を 含 む PMOD を 使 用<br />

する 場 合 で も、 デバ ッ グ 用 に UART1 にア ク セスで き る よ う に し てお く こ と をお 勧 め し ます。<br />

バン ド 幅 が 狭 く 、 電 圧 幅 が 大 き く 、 コ ネ ク タ が 大 き いため、 最 新 のコ ン ピ ューターには UART ポー ト は 含 まれず、 代<br />

わりに USB が 標 準 バス ペ リフェラルとして 使 用 されるようになっています。 このため、 ホスト USB ポー ト と<br />

Zynq-7000 AP SoC UART ポー ト 間 に USB-to-UART ブリッジ コ ン ト ロ ー ラ ーを 追 加 す る 必 要 があ る こ と があ り ます。<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 63<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 3 章 : ハー ド ウ ェ ア デザイ ンの 考 慮 事 項<br />

図 3-5 は、 これを 示 し ています。 ホ ス ト PC 端 末 ソ フ ト ウ ェ アでは、 ブ リ ッ ジが 仮 想 COM ポー ト と して 認 識 される<br />

ので、 Zynq-7000 AP SoC と の 通 信 には 広 く 使 用 さ れる 端 末 プ ロ グ ラ ム を 使 用 で き ます。<br />

X-Ref Target - Figure 3-5<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

図 3‐5 : USB‐to‐UART ブリッジを 介 した Zynq‐7000 AP SoC UART から PC への 接 続<br />

図 3-6 は、 ホ ス ト コンピューターと Zynq-7000 AP SoC 間 の 接 続 を イ ネーブルにするのに、 Cypress USB-to-UART ブ<br />

リ ッ ジを 使 用 し た 例 です。 最 も のシンプルな イ ンプ リ メ ンテーシ ョ ンでは、 端 末 をサポー ト する のに UART コント<br />

ローラーの TXD と RXD 信 号 のみが 必 要 と な り ます。 フ ロー 制 御 が 必 要 な 場 合 は、 拡 張 MIO を 使 用 し て 追 加 で き ま<br />

す。 Cypress には 著 作 権 使 用 料 無 料 の Virtual COM Port (VCP) ドライバーが 含 まれ、CY7C64225 USB-to-UART ブ リ ッ<br />

ジがホス ト コンピューター (TeraTerm または HyperTerm など) の 通 信 ソ フ ト ウ ェアへの COM ポー ト と し て 表 示 さ れ<br />

ます。<br />

表 3‐2 : CY7C6 接 続<br />

EPP ピン<br />

EPP の UART<br />

ファンクション<br />

回 路 図 ネ ッ ト 名<br />

CY7C6 ピン<br />

CY7C64225 の UART<br />

ファンクション<br />

D11 (MIO バンク 1/501) TX、 データ 出 力 USB_1_RXD 23 RXD、 データ 入 力<br />

C15 (MIO バンク 1/501) RX、 データ 入 力 USB_1_TXD 4 TXD、 データ 出 力<br />

X-Ref Target - Figure 3-6<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

図 3‐6 : Cypress USB‐to‐UART ブリッジを 使 用 した 接 続<br />

または、 Silicon Labs CP2103GM USB-to-UART ブリッジ デバ イ ス を 使 用 し て も イ ンプ リ メ ンテーシ ョ ンで き ます。 詳<br />

細 は、 『Zynq-7000 XC7Z020 All Programmable SoC ZC702 評 価 ボー ド ユーザー ガイド』 (UG850) [ 参 照 8] を 参 照 し て く<br />

ださい。<br />

MIO を 介 して 配 線 でき るのは、 2 ピンの UART のみです。 フルの 8 ピン UART は、 EMIO を 使 用 し て 配 線 す る 必 要 が<br />

あり、プログラマブル ボー レート + プロ ト コルおよびパリティがサポート されます。 UART コ ン ト ローラーの 詳 細<br />

は、 『Zynq-7000 All Programmable SoC テクニカル リファレンス マニュアル』 (UG585) [ 参 照 4] の 「UART コ ン ト ロ ー<br />

ラー」 の 章 ( リンク) を 参 照 して く ださい。<br />

CAN ペリフェラル<br />

PS の CAN コント ローラーは、 最 大 1Mb/s までのビッ ト レート をサポートする メモ リ マ ッ プ さ れたペ リ フ ェ ラ ルで<br />

す。 こ の コ ン ト ローラーは、 64 メ ッ セージを 格 納 する 機 能 があ る 送 信 および 受 信 FIFO をインプリ メント します。 コ<br />

ントローラーは 受 信 メッセージ 用 に 16 ビッ トのタイム ス タ ンプを イ ンプ リ メ ン ト し、 受 信 および 送 信 エ ラー カウン<br />

ターを 提 供 します。<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 64<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 3 章 : ハー ド ウ ェ ア デザイ ンの 考 慮 事 項<br />

データ フロー<br />

CAN コン ト ローラーには、 ペリ フェラルをセン ト ラル インターコネク トに 接 続 する APB イ ン タ ーフ ェ イ ス が 含 ま<br />

れ、 制 御 レ ジ ス タ を コ ン フ ィ ギ ュ レーシ ョ ンする ために 使 用 で き ます。 CAN 送 信 および 受 信 信 号 は、 MIO または<br />

EMIO を 介 した PL のいずれかに 配 線 で き ます。 CAN コント ローラーでは、 5 つの 操 作 モー ド がサポー ト さ れます。<br />

• コンフィギュレーション モード<br />

• 通 常 モー ド<br />

• スリープ モード<br />

• ループバ ッ ク モード<br />

• スヌープ モード<br />

これらのモードは、 コン ト ローラーに 接 続 された APB バス を 使 用 し た レ ジ ス タ 書 き 込 み 操 作 で 開 始 で き ます。 詳 細<br />

は、 『Zynq-7000 All Programmable SoC テクニカル リファレンス マニュアル』 (UG585) [ 参 照 4] の 「CAN コ ン ト ロ ー<br />

ラー」 の 章 ( リンク) を 参 照 して く ださい。<br />

I2C ペリフェラル<br />

I2C (Inter-Integrated Circuit) は、 2 つのオープン ドレイン ライン (Serial Data (SDA) および Serial Clock (SCL)、 ど ち ら<br />

も 抵 抗 でプルアップ) を 使 用 する マルチマス ター シリアル シングルエンド バスです。 プロ ト コルには、 スレーブ ア<br />

ドレスと、 スレーブ デバイ ス 内 のオプシ ョ ンのレジス タ アドレス、 バイトごとの ACK/NACK ビッ トが 含 まれます。<br />

I2C は、 センサー、 EEPROM、 I/O エキ スパンダー、 プ ロ グ ラ マブル クロック デバイ ス、 またはエンベデッ ド シ ス テ<br />

ムへの A/D および D/A コ ンバーターな どの 低 速 ペ リ フ ェ ラ ルを 接 続 する ために 使 用 し ます。 I2C バスからは、System<br />

Management Bus (SMBus)、 Power Management Bus (PMBus)、 Intelligent Platform Management Interface (IPMI) な ど の 複 数<br />

のバス イ ンプ リ メ ンテーシ ョ ンが 派 生 さ れています。<br />

Zynq-7000 AP SoC には、 100Kb/s ( 標 準 モー ド ) および 400Kb/s ( 高 速 モー ド ) の 共 通 I2C バスで 実 行 可 能 な I2C コ ン ト<br />

ローラーが 2 つ 含 まれます。 こ れら の コ ン ト ローラーは、 マルチマス ター デザイ ンではそれぞれマス ターまたはス<br />

レーブと して 機 能 できます。 マスターは、 通 常 (7 ビッ ト) ア ド レ ス 指 定 モー ド と 拡 張 (10 ビッ ト) ア ド レ ス 指 定 モー<br />

ド の 両 方 を 使 用 する よ う にプ ロ グ ラ ムで き ます。マス ターは、ク ロ ッ ク の 生 成 と データ 転 送 の 制 御 を 実 行 し ます。デー<br />

タは、 マスターとスレーブ モード コ ン フ ィ ギ ュ レーシ ョ ンの 両 方 で 送 信 ま たは 受 信 で き ます。<br />

データ フロー<br />

スレーブ モニター モード では、 I2C インターフェイスで slave-busy ス テータ ス を 監 視 する よ う に 設 定 で き ます。 こ の<br />

モードの 場 合 、 スレーブ デバイ スが ACK を 送 信 する まで、 I2C は 継 続 し てそのス レーブ デバイ スに 転 送 し よ う と し<br />

ます。<br />

スレーブ モー ド では、 最 初 のア ド レ ス バイ トのビッ ト [7:3] で 特 定 コード が 検 出 される と、 拡 張 ア ド レ ス サポー ト が<br />

自 動 的 にイネーブルにな り ます。 HOLD ビ ッ ト を 設 定 する と 、 マス ターが 転 送 を 続 行 で き な く な り 、 ス レーブでの<br />

オーバーフ ローを 回 避 で き ます。 ただ し、 I2C コ ン ト ローラーで タ イ ムア ウ ト が 発 生 する 前 に HOLD ビッ トをクリア<br />

し てお く 必 要 があ り ます。 タ イ ムア ウ ト 値 は、 さ ま ざ ま な 値 にプ ロ グ ラ ムで き ます。<br />

I2C コント ローラー レジスタは、APB スレーブ イ ン ターフ ェ イ ス を 使 用 する と プ ロ グ ラ ムで き ます。SCL および SDA<br />

信 号 専 用 の I2C インターフェイスは、EMIO を 介 して PL に 配 線 でき るほか、 MIO に 配 線 する こ と も で き ます。 EMIO<br />

を 介 し て 配 線 さ れる 場 合 、 PL I/O バンクの 1 つに 接 続 さ れた I2C と 通 信 する ために、 SCL および SDA 信 号 が ト ラ イ<br />

ステート I/O バ ッ フ ァーを 使 用 し て イ ンプ リ メ ン ト さ れる こ と が 多 く な り ます。 コ ン ト ローラーか ら は、 転 送 が 終 了<br />

し た こ と を ホ ス ト に 示 す 完 了 割 り 込 みが 送 信 さ れます。マ ス ター モー ド の 場 合 、 コ ン ト ローラーで 受 信 さ れた NACK<br />

は、 NACK 割 り 込 みを 使 用 し てホ ス ト に 通 知 さ れます。 詳 細 は、 『Zynq-7000 All Programmable SoC テクニカル リ フ ァ<br />

レンス マニュアル』 (UG585) [ 参 照 4] の 「I2C コント ローラー」 の 章 ( リンク) を 参 照 して く ださい。<br />

システム レベルの 考 慮 事 項<br />

プルア ップ 抵 抗 は、 SCL および SDA ラインの 遠 端 (Zynq-7000 AP SoC から 最 も 遠 い) に 配 置 す る 必 要 があ り ます。 プ<br />

ルア ッ プ 抵 抗 の 計 算 例 は、 『Design Calculations for Robust I2C Communications』 [ 参 照 76] を 参 照 し て く だ さ い。 典 型 的<br />

な 電 圧 は +5V または +3.3V です。 使 用 される I2C デバイ スの 電 圧 および Zynq-7000 AP SoC I/O バン ク に よ っ て、 レ<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 65<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 3 章 : ハー ド ウ ェ ア デザイ ンの 考 慮 事 項<br />

ベル シフター/ リ ピーターが 必 要 と な る こ と があ り ます。 PCB および SDA から SCL ま でのパ ッ ケージ 遅 延 ス キ ュ ー<br />

は、 ±500ps 未 満 であ る 必 要 があ り ます。<br />

すべての I2C デバイ スにプロ グ ラ マブル アドレスが 含 まれるわけではないので、 同 じアドレスを 使 用 して 複 数 のデバ<br />

イ ス を 単 一 のバスに 接 続 する と 、 ア ド レ ス 競 合 が 発 生 する 可 能 性 があ り ます。 こ の 理 由 か ら、 I2C アダプター ポー ト<br />

は 通 常 I2C バス スイッチを 介 して 配 線 され、 同 じアドレスを 使 用 して I2C スレーブを 別 のバス セ グ メ ン ト に 接 続 さ<br />

れます。I2C バス セグメ ン ト の 1 つにあ る ス レーブ デバイ ス と 通 信 する 前 に、 アプ リ ケーシ ョ ンはまずア ド レ ス を 指<br />

定 してから、 バス スイッチをコンフィギュレーションして、 必 要 な I2C チ ャ ネルを 選 択 する 必 要 があ り ます。 I2C ア<br />

ドレスが 異 なり、バス セグ メ ン ト の 容 量 が 許 容 さ れる 値 よ り も 低 い 場 合 は、I2C バス セグ メ ン ト ご と に 複 数 のデバイ<br />

スを 含 めることができます。66 ページの 図 3-7 は、 1:8 バス スイッチを 含 む I2C バス トポロジ 例 を 示 しています。 詳<br />

細 は、 『PCA9548A Low Voltage 8-Channel I2C Switch With Reset』 [ 参 照 88] を 参 照 して ください。<br />

X-Ref Target - Figure 3-7<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

図 3‐7 : I2C バス トポロジの 例<br />

I2C コント ローラーの 操 作 には、 スタンドアロン、 U-Boot、 Linux ドライバーを 使 用 できます。 スタンドアロン ドラ<br />

イバーは、FSBL 内 でペ リ フ ェ ラ ルの 早 期 初 期 化 に 使 用 で き ます。 マ ス ター モード と ス レーブ モー ド の 両 方 で よ く 使<br />

用 さ れる 転 送 モー ド がすべてサポー ト さ れます。 Linux ド ラ イ バーの 詳 細 および 単 純 なアプ リ ケーシ ョ ン 例 は、 ザ イ<br />

リンクス Linux I2C ドライバーの Wiki ページ [ 参 照 52] を 参 照 して く ださい。<br />

SPI ペリフェラル<br />

SPI (シ リアル ペリフェラル インターフェイス) は、 フル デュプレッ クス モー ド で 動 作 する 同 期 シ リ アル バ ス で、<br />

SCLK (Serial Clock)、 MISO (Master Input, Slave Output)、 MOSI (Master Output, Slave Input)、 および SS (Slave Select) の<br />

4 つのワ イ ヤを 使 用 し ます。 デバイ スはマス ター /スレーブ モード で 通 信 し、 マス ター デバイ スがデータ 転 送 を 開 始<br />

し ます。 マス ターでは、 ス レーブ と 通 信 する 際 にア ド レ ス 指 定 メ カニズムが 使 用 さ れません。 通 常 ア ク テ ィ ブ Low で<br />

あ る 個 別 のス レーブ セレク ト ラ イ ンを 使 用 する と、 複 数 のス レーブ デバイ ス を 使 用 で き ます。 SPI は、 通 常 A/D と<br />

D/A コンバーター、 フラッシュおよび EEPROM メモリ、 LCD、 およびその 他 多 く のペ リ フ ェ ラ ル と 通 信 する ために<br />

使 用 さ れます。 JTAG 規 格 は、 本 質 的 には 3 ワイヤ SPI プロ ト コルのアプリケーショ ン スタックです。<br />

Zynq-7000 AP SoC には、 マ ス ター、 ス レーブ、 ま たはマルチマス ター モー ド で 動 作 可 能 な SPI コント ローラーが 2 つ<br />

含 まれます。 コ ン ト ローラーは、 常 にフル デュプレッ クス モード (データ を 同 時 に 受 信 および 送 信 ) で 動 作 し ます。<br />

データ フロー<br />

マスター モー ド では、 個 別 のス レーブ セレ ク ト 信 号 を 使 用 し て 最 大 3 つまでのスレーブ デバイ ス を ターゲ ッ ト にで<br />

き ます。 外 部 ペ リ フ ェ ラ ル 選 択 の 3-to-8 デコーダーをボー ド に 追 加 する と 、 最 大 8 つまでのスレーブ デバ イ ス を タ ー<br />

ゲッ トにできます。3-to-8 デコーダー オプシ ョ ン を 使 用 する と 、 ソ フ ト ウ ェ ア を 使 用 し てデコーダーへの 3 出 力 ピ ン<br />

を 制 御 で き ます。 デバイ スに 単 一 の 双 方 向 SPI データ ピ ンが 含 まれる 場 合 、 ソ フ ト ウ ェ アは こ の 機 能 を 使 用 し て 外 部<br />

ト ラ イ ス テー ト を 制 御 で き ます。<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 66<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 3 章 : ハー ド ウ ェ ア デザイ ンの 考 慮 事 項<br />

スレーブ モー ド の 場 合 、 コ ン ト ローラーでは 外 部 マ ス ターか ら の メ ッ セージを 受 信 し、 同 時 に 応 答 を 送 信 し ます。 コ<br />

ントローラーは、32 ビッ トのレジスタ マ ッ プ さ れたデータ ポー ト レジスタを 使 用 し、 128 バイ トの TX/RX FIFO を<br />

介 してスレーブ デバイ スに 対 し て 読 み 出 しおよび 書 き 込 みを 実 行 し ます。 読 み 出 し FIFO および 書 き 込 み FIFO は、<br />

SPI I/O インターフェイスとソフト ウェア (APB スレーブ インターフェイスを 介 してコント ローラーに 使 用 ) 間 にバ ッ<br />

ファーを 供 給 します。 FIFO は、 ス レーブ I/O モー ドおよびマス ター I/O モー ド の ど ち ら に も 使 用 さ れます。 詳 細 は、<br />

『Zynq-7000 All Programmable SoC テクニカル リファレンス マニュアル』 (UG585) [ 参 照 4] の 「SPI コ ン ト ロ ー ラ ー」 の<br />

章 ( リンク) を 参 照 して く ださい。<br />

注 意 : SPI トランザクションはすべてバイト アライメント (8 ビットの 倍 数 ) されている 必 要 があり ます。10 ビット ア<br />

ドレスや 16 ビッ ト データ などのバイ ト アライメント されていない SPI ト ラ ン ザ ク シ ョ ン を イ ン プ リ メ ン ト す る ス<br />

レーブ デバイ スは、 サポー ト さ れていません。<br />

システム レベルの 考 慮 事 項<br />

どちらの SPI インターフェイスでも、 SPI[0,1] は EMIO を 介 して MIO ピンまたは PL に 配 線 でき ます。 EMIO を 介 し<br />

て 配 線 する 場 合 、 PL I/O バンクの 1 つに 接 続 さ れた SPI デバイ ス と の 通 信 に、 ト ラース テー ト I/O バ ッ フ ァ ーを 使 用<br />

し て イ ン ターフ ェ イ ス 信 号 を イ ンプ リ メ ン ト する 方 法 が 最 も よ く 使 用 さ れます。 こ の 場 合 、 SPI インターフェイスは<br />

PL がプログラムされるまで 使 用 できません。 コアをマスター モードで 使 用 する 場 合 は、 スレーブ セレク ト 信 号 の<br />

SS[1,2] をオプシ ョ ンで イ ネーブルにで き ます。 こ れ ら の 信 号 は、 コ アがマ ス ター と し て コ ン フ ィ ギ ュ レーシ ョ ン さ れ<br />

た 場 合 にのみ 使 用 で き る ので、 真 の 出 力 信 号 です。 SS0 信 号 は、 ス レーブ モー ド で も 使 用 さ れる ので、 ト ラ イ ス テー<br />

トです。I/O 信 号 が MIO ピ ンに 配 線 さ れる 場 合 、 SCLK ク ロ ッ ク 周 波 数 は 最 大 50MHz です。 I/O 信 号 が EMIO を 介 し<br />

て 配 線 さ れる 場 合 、 SCLK 周 波 数 は 最 大 25MHz です。<br />

67 ページの 図 3-8 は、SPI コント ローラーがマスター モード 用 にコ ンフ ィ ギ ュ レーシ ョ ン され、MIO を 介 し て 配 線 さ<br />

れる と ころを 示 しています。 SS0 は、 EMIO ピンを 介 して 配 線 される 必 要 があります。 このコンフィギュレーション<br />

では、 SS0 が 使 用 さ れる 場 合 はプルア ッ プ 抵 抗 を 使 用 し て High にする 必 要 があ り 、 外 部 デバイ スで Low に 駆 動 さ れ<br />

ないよ う にし ます。 最 大 で 3 つのス レーブ デバイ ス までを 同 時 に 接 続 し て、 対 応 する ス レーブ セレク ト ライン (SSn)<br />

を 使 用 し て 選 択 で き ます。 接 続 さ れる ス レーブ デバイ スが 3 つよ り も 少 ない 場 合 は、どの SS 信 号 で も 使 用 で き ます。<br />

SS0 が 使 用 されない 場 合 は、 Vcc に 接 続 し て、 その 他 の 目 的 には 使 用 し ない よ う に し ます。<br />

X-Ref Target - Figure 3-8<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

図 3‐8 : マスター モードでの SPI コントローラーへの SPI スレーブ 接 続<br />

EMIO を 介 し て 配 線 する 場 合 は、EMIOSPIxSSON0 出 力 信 号 を PL スレーブに、EMIOSPIxSSIN 入 力 信 号 を Vcc に 接 続<br />

します。 SS0 は High にする こ と が 重 要 です。 これは、 コン ト ローラーがマスター モード で この 信 号 を 監 視 して、 マ<br />

ルチマス ター モー ド を 検 出 する か ら です。 SS0 が Low の 場 合 、 コ ン ト ローラーではマルチマ ス ター モード と 認 識 さ<br />

れ、 Mode_Fail 割 り 込 みが 発 行 さ れます。 マルチマ ス ター モード は 推 奨 されません。 SPI 制 御 信 号 の 駆 動 に 関 する 詳<br />

細 は、 ザイ リ ン ク ス アンサー47511 [ 参 照 66] を 参 照 して く ださい。<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 67<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 3 章 : ハー ド ウ ェ ア デザイ ンの 考 慮 事 項<br />

図 3-9 は、 SPI コ ン ト ローラーがス レーブ モード 用 にコ ンフ ィ ギ ュ レーシ ョ ン され、 MIO を 介 して 配 線 される と ころ<br />

を 示 しています。 外 部 マスター デバイ ス を ス レーブ コント ローラーに 接 続 するには、 スレーブ セレク ト ラ イ ン の<br />

SS0 が 使 用 されます。 その 他 の 外 部 ス レーブ デバイ スは、 マス ター デバイ スの 機 能 によ ってオフチッ プに 接 続 でき<br />

ます。<br />

X-Ref Target - Figure 3-9<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

図 3‐9 : スレーブ モードでの SPI コントローラーへの SPI マスター 接 続<br />

セッ トアップおよびホールド 時 間 を 満 たしやすくするため、 SCLK、 MISO、 MOSI および SS ラインの 長 さは 同 じに<br />

するこ とをお 勧 めします。 PCB と SCLK に 関 連 する MISO、 MOSI、 SS ラインのパッケージ 遅 延 スキューは、±50ps<br />

未 満 であ る 必 要 があ り ます。<br />

SPI コント ローラーの 操 作 には、スタンドアロン、U-Boot、 Linux ド ラ イバーを 使 用 で き ます。 コ ン ト ローラーが MIO<br />

を 介 し て 配 線 さ れる 場 合 、 ス タ ン ド ア ロ ン ドライバーを FSBL 内 でペ リ フ ェ ラ ルの 早 期 初 期 化 に 使 用 で き ます。 コ ン<br />

トローラーが EMIO を 介 して 配 線 される 場 合 は、 ビ ッ ト フ ァ イルがダ ウ ン ロー ド さ れてか ら 初 期 化 が 実 行 さ れます。<br />

マスター モード と ス レーブ モー ド の 両 方 で よ く 使 用 さ れる 転 送 モー ド がすべてサポー ト さ れます。Linux ドライバー<br />

の 詳 細 および 単 純 なアプ リ ケーシ ョ ン 例 は、 ザ イ リ ン ク ス Linux SPI ドライバーの Wiki ページ [ 参 照 53] を 参 照 し て<br />

ください。<br />

GPIO ペリフェラル<br />

GPIO (General Purpose Input/Output) は、 ラ ン タ イ ムでユーザーがプ ロ グ ラ ムで き る 汎 用 ピ ン ( 入 力 ま たは 出 力 ) です。<br />

GPIO ピンは、 通 常 LED、 DIP スイッチ、プッシュ ボ タ ン を 接 続 する ために 使 用 さ れる か、 ボー ド ペリフェラルの 割<br />

り 込 み 信 号 および リ セ ッ ト 信 号 を 接 続 する ために 使 用 さ れます。 EMIO を 介 して GPIO を 使 用 する と 、 FCLK_RST を<br />

制 御 する こ と に よ る 悪 影 響 を 考 え る 必 要 な く 、 PL リセットを 制 御 できます。PL からの 64 入 力 、 64 の 真 の 出 力 、 お<br />

よび EMIO インターフェイスを 介 した PL に 対 する 64 の 出 力 イ ネーブル も 提 供 さ れます。 出 力 イ ネーブルが 必 要 でな<br />

い 場 合 は、 方 向 レ ジ ス タ を 制 御 する と 、 出 力 イ ネーブルを 追 加 の 64 出 力 と し て 使 用 で き ます。 各 GPIO はそれぞれ<br />

入 力 、 出 力 、 割 り 込 み 検 出 と し てダ イナ ミ ッ ク にプ ロ グ ラ ムで き ます。 割 り 込 みが 検 出 さ れる よ う コ ン フ ィ ギ ュ レー<br />

ションする 場 合 は、 レベル センシティブ (High または Low で 認 識 ) またはエッジ センシティブ ( 立 ち 上 が り 、 立 ち 下<br />

が り 、 ま たは 両 方 で 認 識 ) に 設 定 でき ます。<br />

システム レベルの 考 慮 事 項<br />

GPIO コント ローラーには、 4 つのバン ク が 含 まれます。 バン ク 0 には 32 個 のピンが、 バン ク 1 には 24 個 の ピ ン が<br />

あります。 この 2 つのバン ク の 合 計 54 個 の GPIO ピンは MIO 専 用 です。 こ れ ら の ピ ンは ト ラ イ ス テー ト で、 入 力 ま<br />

たは 出 力 と してコンフ ィ ギュレーシ ョ ンでき ます。 バンク 2 とバンク 3 にはそれぞれ 32 個 のピンが 含 まれ、 合 計 64<br />

個 の GPIO ピンが EMIO を 使 用 して PL に 接 続 されています。 これらの GPIO には、 入 力 、 出 力 、 出 力 イ ネーブルの 3<br />

つの 信 号 が 含 まれます。 デバイ スの 境 界 に ト ラ イ ス テー ト バッファーをインスタンシエートすることはできますが、<br />

PS から PL への 接 続 は 単 純 な ワ イ ヤです。<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 68<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 3 章 : ハー ド ウ ェ ア デザイ ンの 考 慮 事 項<br />

各 GPIO はそれぞれ 入 力 、 出 力 、 割 り 込 み 検 出 と し てダ イ ナ ミ ッ ク にプ ロ グ ラ ムで き ます。 割 り 込 みが 検 出 さ れる よ<br />

う コ ン フ ィ ギ ュ レーシ ョ ンする 場 合 は、 レベル センシティブ (High または Low で 認 識 ) またはエッジ センシティブ <br />

( 立 ち 上 が り 、 立 ち 下 が り 、 または 両 方 で 認 識 ) に 設 定 でき ます。 ソ フ ト ウ ェ アは、 1 つのロード 命 令 を 使 用 し て 1 つ<br />

のバン ク 内 のすべての GPIO 値 を 読 み 出 し た り 、 1 つの 格 納 命 令 を 使 用 し て 1 つま たは 複 数 の GPIO に (GPIO の 範 囲<br />

内 で) データ を 書 き 込 んだ り で き ます。<br />

注 意 : MIO ピン [8:7] は、 出 力 と し てしか 使 用 でき ません。 GPIO チャネル 7 および 8 は、 出 力 と し て し か コ ン フ ィ<br />

ギュレーションできません。<br />

オンボード ペリフェラルの I/O 規 格 および 電 圧 は、MIO または PL の I/O ピン コ ン フ ィ ギ ュ レーシ ョ ン と 同 じ であ る<br />

必 要 があ り ます。<br />

GPIO コント ローラーの 操 作 には、 スタンドアロンおよび Linux ドライバーを 使 用 できます。 スタンドアロン ドライ<br />

バーは、FSBL 内 でペ リ フ ェ ラ ルの 早 期 初 期 化 に 使 用 で き ます。Linux ド ラ イバーの 詳 細 および 単 純 なアプ リ ケーシ ョ<br />

ン 例 は、 ザイ リ ン ク ス Linux GPIO ドライバーの Wiki ページ [ 参 照 51] を 参 照 して く ださい。<br />

Cortex‐A9 マルチプロセ ッ シング ペリフェラル<br />

Cortex-A9 マルチプロセッ シング ペ リ フ ェ ラルには、 自 動 デク リ メ ン ト 機 能 の 付 いた SWDT および TTC が 含 まれ、 汎<br />

用 タイマーと して 使 用 できます。これらのタイマーは、プロセッサをスタンバイ モー ド か ら 起 動 する ために 使 用 さ れ<br />

ます。<br />

SLCR (System Level Control Register) は、 APU および 外 部 PL マスターへのペリ フェラルと して 動 作 します。 SLCR に<br />

は、 レジ ス タ アクセスをリ クエストするセキュア モード のマス ターでのみア ク セスでき ます。 SLCR には、 ペ リ フ ェ<br />

ラ ルの さ ま ざ ま な ク ロ ッ ク 供 給 、 リ セ ッ ト 、セキ ュ リ テ ィ 設 定 を コ ン フ ィ ギ ュ レーシ ョ ンする レ ジ ス タ が 含 まれます。<br />

PS DMA コントローラー<br />

PS DMA コント ローラーは、 PS または PL ペリフェラルから DDR、 OCM、 リ ニア QSPI、 SMC、 PL ペ リ フ ェ ラ ル、<br />

またはリニア アドレス 可 能 メモリ (PS-PL 境 界 で M_AXI_GP ポー ト に 接 続 ) にデー タ を 転 送 す る ために 使 用 で き ま<br />

す。<br />

DMA コント ローラーはハードウェア コプロセッサのア クセラ レーシ ョ ンを 必 要 とするアプ リ ケーシ ョ ンで 使 用 で<br />

き、PL アルゴ リ ズムは Cortex-A9 で DDR メ モ リ に 書 き 込 まれたデータ を 処 理 する ために 使 用 さ れます。 データ が PS<br />

と PL ペ リ フ ェ ラルの 両 方 で 処 理 さ れる よ う なアプ リ ケーシ ョ ンでは、DMA コ ン ト ローラーが 重 要 な 役 割 を 果 た し ま<br />

す。<br />

DMA コ ン ト ローラーを 使 用 する と 、 シ ス テムの 消 費 電 力 を 削 減 で き ます。 CPU は 低 消 費 電 力 モー ド にな り 、 バル ク<br />

データ 転 送 を PS DMA インターフェイスで 実 行 できるようになります。CPU クロックは DMA ク ロ ッ ク よ り も かな り<br />

高 速 なので、 こ の 方 法 に よ り ダ イナ ミ ッ ク 消 費 電 力 を 大 幅 に 削 減 で き ます。 詳 細 は、『Zynq-7000 All Programmable SoC<br />

テクニカル リファレンス マニュアル』 (UG585) [ 参 照 4] の 「DMA コント ローラー」 の 章 を 参 照 してください。<br />

XADC<br />

XADC には、 2 つの 12 ビットの 1-MSPS ADC と 、 ト ラ ッ ク 増 幅 器 およびホール ド 増 幅 器 、 オンチ ッ プ アナログ マル<br />

チプレ ク サー、 オンチ ッ プ 温 度 センサーおよび 電 源 センサーが 含 まれます。 2 つの ADC は、 2 つの 外 部 アナロ グ 入 力<br />

チャネルを 同 時 にサンプリ ングするよ うにコンフィギュレーシ ョ ンできます。 ト ラ ッ クおよびホールド 増 幅 器 では、<br />

単 極 、 双 極 、 差 動 など、 広 範 囲 のアナロ グ 入 力 信 号 がサポー ト さ れます。 外 部 入 力 には、 専 用 差 動 アナロ グ 入 力 が 1<br />

組 (Vp/Vn) と、 アナログ 入 力 をサポート 可 能 またはデジタル I/O と し て 使 用 可 能 な 16 の 多 機 能 ピ ン (Vauxn/p) が 含 ま<br />

れます。 専 用 アナロ グ 入 力 では、 サンプル レー ト 1MSPS で 500KHz 以 上 、 補 助 チャ ネルでは 250KHz の 信 号 バン ド<br />

幅 をサポー ト できます。<br />

XADC には、 オンチ ッ プ 電 源 電 圧 およびダ イ 温 度 の 計 測 をサポー ト する オンチ ッ プ センサーも 多 く 含 まれます。 す<br />

べてのソース ( 温 度 、 電 源 電 圧 、 ま たはアナロ グ 入 力 チ ャ ネル) からの ADC 変 換 の 結 果 は、 XADC ブ ロ ッ ク 内 の ス<br />

テータ ス レ ジ ス タ のセ ッ ト に 格 納 さ れます。 温 度 を 検 出 で き、 ク ロ ッ ク がプ ロ グ ラ マブルなので、 Zynq-7000 AP SoC<br />

ク ロ ッ ク を 温 度 の 変 動 に 合 わせて 調 整 で き ます。<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 69<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 3 章 : ハー ド ウ ェ ア デザイ ンの 考 慮 事 項<br />

XADC ブロックには、XADC 操 作 を コ ン フ ィ ギ ュ レーシ ョ ン し て 制 御 する ために 使 用 さ れる 制 御 レ ジ ス タ のセ ッ ト も<br />

含 まれます。 こ れには、 内 部 測 定 センサー ( 温 度 および 電 圧 ) 用 に 自 動 ア ラームの し き い 値 を 指 定 する ア ラーム レジ<br />

ス タ が 含 まれます。 ア ラームは、 温 度 ま たは 電 圧 がレ ジ ス タ で 定 義 さ れた 許 容 範 囲 を 超 え る と 、 PS 割 り 込 みを 自 動<br />

的 に ト リ ガーし ます。<br />

XADC アナロ グ 入 力 は、 モーター 制 御 、 タ ッ チ センサー、 またはアナログ フロントエンドを 必 要 とするその 他 多 く<br />

のアプ リ ケーシ ョ ン をサポー ト する ために 使 用 で き ます。 電 圧 および 温 度 感 知 機 能 を 使 用 する と 、 シ ス テムの 健 全 性<br />

を 監 視 し、 シ ス テムの 温 度 ま たは 電 圧 が 異 常 な 値 になった と き に 適 切 に 対 処 で き ます。<br />

システム モニターと して 使 用 される XADC の 詳 細 と、 外 部 アナロ グ 信 号 での ADC 操 作 の 実 行 に 関 する 詳 細 は、 次 の<br />

2 つのアプ リ ケーシ ョ ン ノ ー ト を 参 照 し て く だ さ い。<br />

• 『Zynq-7000 の PS と XADC 間 の 専 用 イ ン ターフ ェ イ ス を 利 用 し たシ ス テム 監 視 および 外 部 チャ ネル 計 測 』<br />

(XAPP1172) [ 参 照 39]<br />

• 『Zynq-7000 AP SoC プロセッシング システムと XADC AXI インターフェイスを 使 用 したシステム モニ タ リ ン<br />

グ』 (XAPP1182) [ 参 照 41]<br />

XADC ス テータ スおよび 制 御 レ ジ ス タは、 パラ レル DRP インターフェイスまたはシリアル JTAG-DRP インターフェ<br />

イスのいずれかを 使 用 するとアクセスできます (71 ページの 図 3-10)。 LogiCORE IP は、 XADC ハー ド ブロック 全<br />

体 と 必 要 なロジックをカプセル 化 して、 XADC を PS のマス ター AXI_GP ポー ト に 接 続 で き る 32 ビッ ト AXI ス レー<br />

ブ ペ リ フ ェ ラ ルに 変 換 する ために 使 用 で き ます。 こ の ソ リ ューシ ョ ンでは、 PS が 1Mbps レー ト でデータにアクセス<br />

し てい る 必 要 があ り ます。 AXI XADC LogiCORE IP の 場 合 、 イ ンプ リ メ ン ト に PL リ ソ ース が 消 費 さ れて し ま う と い<br />

うデメ リ ッ トはありますが、 高 速 でク リーンなインターフェイスが XADC に 提 供 されます。 これによ り 、 ペ リ フ ェ<br />

ラル データ パスの 利 点 をすべて 活 用 で き ます。 ま た、 こ れが 1 MSPS すべてを 認 識 で き る 唯 一 の 方 法 です。 詳 細 は、<br />

『Zynq-7000 AP SoC プロセッシング システムと XADC AXI インターフェイスを 使 用 したシステム モニ タ リ ン グ』<br />

(XAPP1182) [ 参 照 41] を 参 照 して く ださい。<br />

また、 ビルト インの PS_XADC インターフェイス ブ ロ ッ ク を 使 用 する ソ リ ューシ ョ ン も あ り ます。 こ の 場 合 、 追 加 の<br />

PL ロ ジ ッ クが 必 要 でないこ と が 利 点 です (ビル ト イ ン 機 能 を 使 用 する 場 合 、 FPGA をコンフィギュレーションする 必<br />

要 なし)。 XADC DRP レ ジ ス タ か ら の 読 み 出 しおよび 書 き 込 みには、 正 し い コ マン ド を XADCIF_CMDFIFO に 書 き 込<br />

んで、 XADCIF_RDFIFO か ら 読 み 出 す 必 要 があ り ます。 ただ し、 ブ ロ ッ ク は FIFO の 内 容 をシ リ アル 化 し、 DRP JTAG<br />

インターフェイスを 介 して XADC ハー ド ブロックにデータを 1 ビ ッ ト ずつシフ ト 入 力 し てシ フ ト 出 力 する ので、 こ<br />

の ソ リ ューシ ョ ン を 使 用 する と 速 度 が 遅 く な り 、 高 いデータ レー ト には 対 応 でき ません。 『Zynq-7000 の PS と XADC<br />

間 の 専 用 イ ン ターフ ェ イ ス を 利 用 し たシ ス テム 監 視 および 外 部 チャ ネル 計 測 』 (XAPP1172) [ 参 照 39] に 示 すよ う に、こ<br />

のインターフェイスは 100KHz し か 達 成 で き ません。 ま た、 PL-JTAG インターフェイスと 内 部 PS-XADC は 同 時 には<br />

使 用 で き ません。<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 70<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 3 章 : ハー ド ウ ェ ア デザイ ンの 考 慮 事 項<br />

X-Ref Target - Figure 3-10<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

図 3‐10 : XADC ブロック 図<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 71<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 3 章 : ハー ド ウ ェ ア デザイ ンの 考 慮 事 項<br />

ペリフェラルとの 通 信<br />

前 述 のペ リ フ ェ ラ ルは AMBA 特 有 のバス 構 造 を イ ンプ リ メ ン ト し て、 APU およびメモリ システムと 通 信 します。<br />

USB、 GEM、 SDIO、 SPI ペリフェラルには、 次 の 2 つの 通 信 イ ン ターフ ェ イ ス タイプがあります。<br />

• APB インターフェイスがペリフェラル スレーブを APU マスターに 接 続 します。 インターフェイスはセン ト ラル<br />

インターコネク ト を 使 用 して 通 信 します。<br />

• AHB インターフェイスがペリフェラルに 埋 め 込 まれた DMA コント ローラーとシステム メモリ 間 の 高 速 バス ト<br />

ランザクションをイネーブルにします。インターフェイスは、セントラル インターコネク トを 使 用 してシステム<br />

メ モ リ に 接 続 し ます。<br />

図 3-11 は、 メ イ ン メモリ と APU へのペ リ フ ェ ラル バス 接 続 を 示 し ています。 図 3-11 は、 DMA とインプリメントさ<br />

れた 制 御 レ ジ ス タ セ ッ ト を 含 むペ リ フ ェ ラ ルの 一 般 的 なブ ロ ッ ク 図 です。<br />

X-Ref Target - Figure 3-11<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

図 3‐11 : ペ リ フ ェ ラルの 通 信 バス<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 72<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 3 章 : ハー ド ウ ェ ア デザイ ンの 考 慮 事 項<br />

ペリフェラルのデザイン 例<br />

こ の 例 は、 ペ リ フ ェ ラ ルを 含 めて 設 計 する 際 に 考 慮 すべき 事 項 を 示 し ています。 こ の 例 では、 Zynq-7000 AP SoC GEM<br />

コント ローラーと 2 つの 異 な る 物 理 イ ン ターフ ェ イ スが 使 用 さ れています。コ ン ト ローラーの 1 つには MIO イ ン タ ー<br />

フェイスを 使 用 した RGMII PHY が 含 まれ、 も う 1 つのコ ン ト ローラーには EMIO を 使 用 した 1000BASE-X PHY が 含<br />

まれています。 サポー ト される インターフェ イ スの 中 から 要 件 を 満 たすものを 選 択 して く ださい。<br />

1. PS には、 GEM コント ローラーのインスタンスが 2 つ 含 まれ、 1 つは RGMII インターフェイスを、 も う 1 つは<br />

1000BASE-X インターフェイスを 使 用 します。<br />

2. TrustZone セキュ リ ティでは、Cortex-A9 マルチプロセッ シング コ アからのペ リ フ ェ ラルのア ク セスが 認 識 されま<br />

す。<br />

3. GEM ハー ド ウ ェ アに 対 する TCP チェッ クサム オフ ロード を イ ネーブルまたはデ ィ スエーブルにする と、 2 つの<br />

オプシ ョ ン 間 の CPU 使 用 率 およびパフ ォーマン スの 違 いがわか り ます。<br />

図 3-12 は、 こ のハー ド ウ ェ ア ブロッ ク 図 を 示 しています。<br />

X-Ref Target - Figure 3-12<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

図 3‐12 : GEM インスタンシエーションの 例<br />

この 例 は、ギガビッ ト イーサネッ ト ペリフェラルのものですが、ほかの PS ペ リ フ ェ ラ ルで も こ の コ ンセプ ト を 使 用<br />

できます。<br />

ハー ド ウ ェ ア デザイ ンの 考 慮 事 項<br />

ハー ド ウ ェ ア デザイ ンは、 Vivado ® IP インテグレーター フローを 使 用 して 作 成 できます。 GEM0 では MIO 接 続 を、<br />

GEM1 では EMIO 接 続 を イ ネーブルにする 必 要 があ り ます。 GEM1 用 に EMIO を イ ネーブルにする と 、 送 信 および 受<br />

信 GMII 信 号 が PS の IP 最 上 位 イ ン ス タ ン スに 含 まれる よ う にな り ます。 ユーザーは、 IP インテグレーター デザ イ ン<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 73<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 3 章 : ハー ド ウ ェ ア デザイ ンの 考 慮 事 項<br />

でザイ リ ン ク スからの 1000BASE-X IP コアをインスタンシエート して、GEM1 EMIO ポー ト に 接 続 す る 必 要 があ り ま<br />

す。 デザ イ ンは Vivado Design Suite インプリ メンテーション フ ローを 使 用 し て イ ンプ リ メ ン ト し て、 ビ ッ ト ス ト リ ー<br />

ムを 生 成 できます。 詳 細 は、『Zynq-7000 AP SoC で PL イーサネ ッ ト を 使 用 する 場 合 の PS および PL イーサネ ッ ト の<br />

性 能 と ジ ャ ンボ フレームのサポー ト 』 (XAPP1082) [ 参 照 38] を 参 照 して く ださい。<br />

ソフトウェア デザイ ンの 考 慮 事 項<br />

GEM ペリフェラルでは、 TCP チェックサムのハードウェアへのオフロードがサポート されており、 数 値 計 算 チェッ<br />

ク サムの 計 算 をハー ド ウ ェ アで 実 行 する こ と で、 イーサネ ッ ト パフォーマンスを 上 げて、 CPU 使 用 率 を 改 善 で き る<br />

ようになっています。チェックサム オフロードは、APB インターフェイスを 使 用 して GEM コンフィギュレーション<br />

レジスタに 書 き 込 むとイネーブルにできます。<br />

GEM ド ラ イバーでは、 特 定 の 転 送 サイ ズ 用 に GEM DMA がコ ン フ ィ ギ ュ レーシ ョ ン さ れます。ま た、 こ の ド ラ イバー<br />

では 記 述 子 リ ング、 DMA の 割 り 当 て、 リ サ イ ク ル も 設 定 さ れ、 ソ ースおよびデス テ ィ ネーシ ョ ン MAC アドレスが<br />

プログラムされます。<br />

DMA 転 送 は、 ネ ッ ト ワー ク 制 御 レ ジ ス タへの 書 き 込 みに よ り 、 ト ラ ン ス ミ ッ ター と レ シーバーを イ ネーブルに し て<br />

か ら 開 始 さ れます。<br />

IP ブ ロ ッ クの 設 計<br />

検 証 済 みの IP (Intellectual Property) ブ ロ ッ ク を 使 用 する と 、 タ イ ム トゥ マーケ ッ ト を 短 縮 で き、 SoC で 多 機 能 のデジ<br />

タルおよびアナログ 回 路 をイネーブルにできます。 これらの IP ブロッ クには、 エンベデッ ド プロセッサ、 メモリ ブ<br />

ロック、 インターフェイス ブロック、 アナログ ブ ロ ッ ク、 アプ リ ケーシ ョ ン 特 有 の 処 理 機 能 を 扱 う コ ンポーネン ト<br />

などがあり ます。AMBA 高 速 仕 様 および AXI 仕 様 などの 標 準 的 な イ ン ターフ ェ イ ス 仕 様 を 使 用 する こ と で、IP ブロッ<br />

ク の 再 利 用 性 が 改 善 さ れています。 選 択 し た Zynq-7000 AP SoC デバイ スでサポー ト される IP ブロックの 詳 細 は、<br />

Vivado IP カタログを 参 照 してください。<br />

IP ブロックは、 主 に 2 つのカテゴ リ に 分 類 されます。<br />

• ソフト IP ブロック : これらのブロッ クは FPGA ファブリックにインプリ メントでき、RTL ま たは 高 位 記 述 を 使<br />

用 し て 指 定 さ れます。ハー ド ウ ェ ア 記 述 言 語 (HDL) はプ ロ セスに 依 存 せず、 ゲー ト レベルに 合 成 で き る ので、デ<br />

ジタル コアに 向 いています。 HDL 記 述 には、 柔 軟 性 、ポータビリティ、 再 利 用 性 といった 利 点 はありますが、<br />

タ イ ミ ング ま たは 消 費 電 力 特 性 などは 保 証 さ れません。<br />

• PS IP ブロック : こ れ ら のブ ロ ッ ク は、 固 定 のレ イ ア ウ ト で、 特 定 のアプ リ ケーシ ョ ンおよびプ ロ セ ス 用 に 最 適<br />

化 さ れています。 主 な 利 点 はパフ ォーマン スが 予 測 可 能 な 点 で、 労 力 およびコ ス ト は 抑 え る こ と がで き ますが、<br />

移 植 性 は 劣 る ので、 アプ リ ケーシ ョ ンのエ リ アがかな り 限 ら れて し ま う 可 能 性 があ り ます。PS IP ブ ロ ッ ク は、 通<br />

常 提 供 元 に よ り シ リ コ ン 上 でテ ス ト 済 みなので、 かな り 正 確 です。<br />

SoC デザ イ ンは 本 来 複 雑 なので、 プ ロ セ ッ シン グ ブロ ッ クの 周 り にさ らに 複 雑 な イ ン ターフ ェ イ スがイ ンプ リ メ ン<br />

テーシ ョ ン される こ とにな り ます。 Zynq-7000 AP SoC に 含 まれる 高 速 シ リ アル ト ラ ンシーバーがその 典 型 的 な 例 で<br />

す。 ト ラ ンシーバーの 高 速 シ リ アル IO は、データ をギガヘルツの 何 倍 も の 速 度 でデータ を 転 送 で き ます。 ト ラ ンシー<br />

バー ブロックでは、 バイ ト バウンダ リ アライメント、 クロック データ リカバリ、 複 数 トランシーバー レーン 間 の<br />

ス キ ュー 削 除 を 実 行 で き ます。 ま た、 ppm 変 動 を 含 む 独 立 し た 送 信 ク ロ ッ ク と 受 信 ク ロ ッ ク を 使 用 する シ ス テム 内 の<br />

クロックも 補 正 できます。 ユーザー ロ ジ ッ ク は 複 雑 な イ ン ターフ ェ イ ス を 使 用 し て ト ラ ンシーバーに 接 続 さ れます。<br />

このロジックの 機 能 は、 ト ランシーバー 内 でさまざまなファンクション ブ ロ ッ ク を 制 御 する 必 要 があ る ため、 複 雑 で<br />

す。<br />

IP ブロックを 使 用 すると、 ユーザー イ ン ターフ ェ イ スの 根 本 的 な 複 雑 さ を 理 解 していな く ても、 ト ラ ンシーバーを<br />

コ ン フ ィ ギ ュ レーシ ョ ンで き ます。 ザ イ リ ン ク スの Aurora IP ブロックに AXI4-Stream 準 拠 のユーザー インターフェ<br />

イ ス を 使 用 する と 、 ト ラ ンシーバーの 初 期 化 、 ク ロ ッ ク 補 正 、 チャ ネル ボンディ ング、 バイ ト バウンダ リ アライメ<br />

ン ト が 実 行 さ れます。 ユーザーは、 根 本 的 な ト ラ ンシーバーの 複 雑 さ を 理 解 し ていな く て も、 AXI4-Stream インター<br />

フェイスに 基 づいたト ランシーバー アプ リ ケーシ ョ ンを 構 築 できます。<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 74<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 3 章 : ハー ド ウ ェ ア デザイ ンの 考 慮 事 項<br />

X-Ref Target - Figure 3-13<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

図 3‐13 : Aurora IP の 例<br />

図 3-13 は、Aurora IP が Zynq-7000 AP SoC のトランシーバー インターフェイスにどのよ うにプラグインされるかを 示<br />

しています。<br />

IP コ アの 設 計 手 法<br />

ザイ リ ンクスからは IP ブ ロ ッ ク を 作 成 する さ ま ざ ま な 手 法 と 簡 単 な メ ンテナン ス 方 法 が 提 供 さ れています。 IP ブ<br />

ロックは、Zynq-7000 AP SoC 用 に 作 成 さ れたエンベデ ッ ド システム デザイ ンおよび MicroBlaze プ ロ セ ッ サな ど の<br />

その 他 のプロセッシング シ ス テムで 再 利 用 で き ます。 次 のセ ク シ ョ ンでは、 ザ イ リ ン ク ス ツールを 使 用 した IP の 作<br />

成 方 法 について 説 明 し ます。<br />

System Generator<br />

System Generator は、 FPGA システム デザイ ン 用 に MathWorks Simulink を 使 用 して、 ユーザー コ ン フ ィ ギ ュ レーシ ョ<br />

ンに 基 づいた DSP IP ブロッ クを 作 成 できるツールで、システム デザ イ ン 用 の 高 位 合 成 モデル ベースの 環 境 が 提 供 さ<br />

れています。 System Generator には、 単 純 な 数 学 演 算 か ら 複 雑 な DSP 処 理 まで、 さ ま ざ ま な 機 能 ブ ロ ッ ク が 含 まれて<br />

います。<br />

Vivado Design Suite では、 IP パッケージャーのコンパイル ターゲッ ト を 使 用 して、 System Generator か ら 生 成 さ れた<br />

IP をパッケージして、Vivado IP カタログに 含 めることができます。 これにより、System Generator デザイ ンを IP カ タ<br />

ログからのほかの IP ブロックのよ うに 使 用 して、 デザインにインスタンシエートできます。<br />

HDL Coder<br />

HDL Coder は、MATLAB ファンクションおよび Simulink モデルか ら の 合 成 可 能 な HDL コー ド を 生 成 する MathWorks<br />

社 のツールです。 MATLAB/Simulink モデルを 解 析 し て、 モデルを 浮 動 小 数 点 か ら 固 定 小 数 点 に 変 換 し、 高 抽 象 度 の<br />

モデルを 提 供 する ワー ク フ ローを 使 用 で き ます。 こ のワー ク フ ローには、 検 証 コー ド も 含 まれてい る ので、 HDL コー<br />

ドを 元 の MATLAB/Simulink モデルを 使 用 し てテ ス ト する こ と も で き ます。<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 75<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 3 章 : ハー ド ウ ェ ア デザイ ンの 考 慮 事 項<br />

MATLAB および Simulink に 含 まれるすべてのフ ァ ン ク シ ョ ンで HDL 生 成 がサポー ト さ れ る わけではあ り ません。 こ<br />

のため、 HDL 生 成 をサポー ト する フ ァ ン ク シ ョ ン ま たはブ ロ ッ ク が 使 用 さ れる よ う に、 モデルの 機 能 の 一 部 を 変 更<br />

する 必 要 のあ る こ と も あ り ます。<br />

Vivado HLS<br />

Vivado HLS ( 高 位 合 成 ) は、 C ベース デザイ ンをザイ リ ン ク ス FPGA デバ イ ス に イ ン プ リ メ ン テーシ ョ ン で き る よ う<br />

に RTL デザイ ン ファイルに 変 換 できるザイリンクス ツールです。 図 3-14 は、Vivado HLS ツールのフローを 示 して<br />

います。<br />

X-Ref Target - Figure 3-14<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

図 3‐14 : Vivado HLS フロー<br />

Vivado HLS フローでは、RTL 出 力 が 次 のフ ォーマ ッ ト にパ ッ ケージ さ れ、 その 他 のザ イ リ ン ク ス デザイ ン ツールに<br />

簡 単 に 統 合 できるようになっています。<br />

• IP Catalog : Vivado IP カタログに 追 加 できる ZIP ファイルです。<br />

• Synthesized Checkpoint (.dcp) : Vivado Design Suite でデザ イ ンに 直 接 追 加 で き る Vivado チェッ クポイン ト フ ァ イ<br />

ルです。<br />

• System Generator for DSP : 出 力 は System Generator for DSP の Vivado エデ ィ シ ョ ンに 追 加 でき ます。<br />

• System Generator for DSP (ISE ® ) : 出 力 は System Generator for DSP の ISE エデ ィ シ ョ ンに 追 加 でき ます。<br />

• EDK の pcore : この 出 力 は、 Xilinx Platform Studio に 追 加 でき ます。<br />

パ ッ ケージ さ れた 出 力 形 式 のほか、 RTL ファイルを (パッケージ 済 みフォーマッ トの 一 部 ではなく) スタンドアロン<br />

ファイルとして 入 手 できます。<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 76<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 3 章 : ハー ド ウ ェ ア デザイ ンの 考 慮 事 項<br />

IP コ アの 設 計 に 関 する 考 慮 事 項<br />

IP ブ ロ ッ ク を 設 計 する 際 は、 その IP ブロックを 複 数 のエンベデッ ド システム デザ イ ンで 再 利 用 し た り 、ユーザー コ<br />

ンフィギュレーショ ン オプシ ョ ン を 変 更 し て 再 利 用 し た り する 場 合 を 考 慮 し てお く 必 要 があ り ます。 IP ブロックは、<br />

標 準 バス トポロジのパラメーターを 設 定 してインプリメンテーションすると、ほとんどのシステム レベル デザイ ン<br />

で 再 利 用 で き ます。<br />

IP ブ ロ ッ ク を 設 計 する 際 には、 次 の 点 について 考 慮 し て く だ さ い。<br />

• パラ メータの 設 定 : パラ メーターの 設 定 には、 インターフェイス レベルのコンフ ィ ギュレーシ ョ ン と IP の 機 能<br />

別 コンフ ィギュレーシ ョ ンが 含 まれます。 インターフェイス レベルのコンフ ィ ギュレーシ ョ ンは、 IP ブロック<br />

とその 他 の IP ブロ ッ ク とのインターフェイスに 重 要 で、 ユーザーがデータおよびアドレス バス 幅 、 ク ロ ッ ク 供<br />

給 、 リ セ ッ ト インターフェイス コンフィギュレーションなどのバス パラ メーターを 制 御 する 必 要 があり ます。<br />

IP の 機 能 別 コ ン フ ィ ギ ュ レーシ ョ ンでは、 ユーザーの 選 択 に 基 づいて IP ブロックの 機 能 をイネーブルまたは<br />

ディスエーブルにします。<br />

IP ブ ロ ッ ク のパ ラ メ ーターの 設 定 には、 複 数 の 方 法 を 使 用 で き ます。 基 本 的 なパ ラ メ ーター 設 定 は HDL コード<br />

内 でイ ンプ リ メ ン ト でき ます。HDL パラ メーターは、Vivado IP インテグレーター ツールを 使 用 して IP ブ ロ ッ ク<br />

をパッケージにした 後 に 使 用 できる IP コンフィギュレーション ウィザードからコンフィギュレーションできま<br />

す。 カ ス タ マ イ ズ さ れた 環 境 を イ ンプ リ メ ン ト する と 、 IP ブ ロ ッ ク のパ ラ メ ーターを 設 定 で き ます。<br />

• バス トポロジ : IP ブ ロ ッ ク を 設 計 する 際 には、 IP ブ ロ ッ ク を 再 利 用 で き る よ う に し てお く こ と が 重 要 です。 業<br />

界 標 準 のバス イ ン ターフ ェ イ スに 準 拠 するバス ト ポ ロ ジを イ ンプ リ メ ン ト する と 、 再 利 用 性 が 上 が り ます。 最<br />

も よ く 使 用 さ れる 標 準 の 1 つは AMBA で、 多 く の IP ブ ロ ッ ク が こ のバス 仕 様 に 準 拠 し ています。 業 界 標 準 イ ン<br />

ターフェイスを 使 用 してインプリ メン ト されたバス ト ポ ロ ジを 使 用 する と 、 シ ス テム レベルでマ ス ターおよび<br />

スレーブ IP ブロックを 簡 単 にプラグ アンド プレイできるようになります。このような IP では、 特 定 バージ ョ ン<br />

の 標 準 プロ ト コルおよびインターフェイス レベルのコンフ ィ ギュレーシ ョ ンを 柔 軟 に 選 択 できる よ う になって<br />

います。<br />

バス インターフェイスは、 システム レベルの 要 件 に 基 づいて 選 択 さ れます。 AXI4-Lite バスは、 主 に PS か ら の<br />

制 御 バス と し て 使 用 さ れ、 AXI4 Memory-Mapped バスは IP コ ア 間 の メ モ リ 転 送 に 使 用 されます。 AXI4-Stream バ<br />

スは、アドレス 指 定 のコンテキストを 含 まないデザインのストリーミング ブ ロ ッ ク に 接 続 する ために 使 用 さ れま<br />

す。 次 の 図 は、 AXI DMA ベース デザイ ンの AXI4-Lite、 AXI4 Memory-Mapped、 および AXI4-Stream バ ス を 示 し<br />

ています。 この 図 では、 AXI DMA が HP (ハイ パフォーマンス) ポー ト を 使 用 して、 PS システム メ モ リ と<br />

AXI4-Stream に 準 拠 する Sobel IP 間 のデータ を 移 動 し ています。 PS は、 AXI4-Lite イ ン タ ーフ ェ イ ス を 使 用 し て<br />

AXI DMA のバ ッ フ ァー 記 述 子 を 設 定 し ます。<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 77<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 3 章 : ハー ド ウ ェ ア デザイ ンの 考 慮 事 項<br />

X-Ref Target - Figure 3-15<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

図 3‐15 : AXI4‐Lite、 AXI4 Memory‐Mapped、 AXI4‐Stream バス<br />

• IP のセキュ リ テ ィおよび 資 料 : IP ブ ロ ッ ク を 設 計 する 際 は、 著 作 権 侵 害 か らデザ イ ン を 保 護 する こ と について 考<br />

慮 する 必 要 があ り ます。 HDL フ ァ イルの 暗 号 化 には、 さ ま ざ ま なセキ ュ リ テ ィ アルゴ リ ズ ム を 使 用 で き ます。<br />

ザイ リ ンクス ツールを 使 用 する と 、AES アルゴ リ ズムを 使 用 して HDL を 暗 号 化 し た り 、 復 号 化 し た り で き ます。<br />

IP ブロックと PS の 接 続<br />

PS と PL 間 のイ ン ターフ ェ イ スで AMBA 準 拠 の イ ン ターフ ェ イ スが 使 用 さ れる 場 合 は、 ソ フ ト IP ブロックを 使 用 し<br />

てデザイ ンを イ ンプ リ メ ン ト でき ます。 PS-PL インターフェイスには AXI3 または AXI4 インターフェイスをインプ<br />

リメントできる GP ポー ト (マスターおよびスレーブ) が 含 まれ、PS をソフト IP コア レジスタ インターフェイスに 接<br />

続 でき ます。ハイ パフォーマンス (HP) ポー ト は、PL 内 の AXI3 または AXI4 マスター IP ブロックで 駆 動 される AXI3<br />

スレーブ ポー ト と し て 使 用 で き ます。 ACP イ ン ターフ ェ イ ス も 同 じ よ う に 使 用 で き ます。 ACP インターフェイスは、<br />

AWCACHE および ARCACHE 信 号 を イ ンプ リ メ ン ト し ます。 これらの 信 号 は、 ACP マスター コント ローラーをイン<br />

プリ メントするユーザー IP ブ ロ ッ ク で イ ンプ リ メ ン ト する 必 要 があ り ます。 詳 細 は、93 ページの 「ACP およびキャ ッ<br />

シュ コ ヒーレンシ」 を 参 照 して く ださい。<br />

ACP インターフェイスは、 L2 キャッシュへの 接 続 をイネーブルにするほか、 PL の IP ブロックがかなりの CPU 使 用<br />

量 を 必 要 と する 計 算 集 約 型 演 算 を 同 時 処 理 する 場 合 に 使 用 で き ます。<br />

ユーザーは AXI3/4 Memory-Mapped または AXI4-Stream プロ ト コルをインプリ メン トできます。AXI3/4<br />

Memory-Mapped イ ン ターフ ェ イ スには、 読 み 出 し/ 書 き 込 みア ド レ ス 信 号 と データ イ ン ターフ ェ イ ス 信 号 が 含 まれま<br />

す。 AXI4-Stream インターフェイスには、 アドレス 信 号 は 含 まれません。<br />

IP ブロックを 含 めて Zynq AP SoC を 設 計 する 際 には、 PL では 次 が 考 慮 されている 必 要 があ り ます。<br />

1. IP ブロックは AXI3/4 プロ ト コルに 準 拠 し、 PS-PL 境 界 の AXI インターフェイスは AXI3 プ ロ ト コ ルに 準 拠 し ま<br />

す。 AXI4 準 拠 の IP を PS-PL インターフェイス ポー ト に 接 続 する には、 ザ イ リ ン ク ス 提 供 の AXI Interconnect IP<br />

ブロックを 使 用 します。<br />

2. IP ブロックは、 IP ブロックのシステム レベル デザ イ ンへの 統 合 を 簡 略 化 する IP インテグレーター リ ポジ ト リ<br />

の 一 部 です。<br />

3. PS-PL インターフェイスでは、 インプリ メント されたペリフェラルのメモリ マップ アクセスがサポート されま<br />

す。<br />

4. AXI4-Stream イ ン ターフ ェ イ ス を 選 択 する と 、 コ ンテキ ス ト のア ド レ ス 指 定 を 必 要 と し ない IP ブロックを 接 続 で<br />

きます。 AXI4-Stream インターフェイスは、 ビデオ ベースの IP ブ ロ ッ ク に 対 し て 広 く 使 用 さ れます。 HP ポー ト<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 78<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 3 章 : ハー ド ウ ェ ア デザイ ンの 考 慮 事 項<br />

インターフェイスに 接 続 されるビデオ DMA IP ブ ロ ッ ク を 使 用 する と 、PS DDR メモリにビデオ IP ブ ロ ッ ク か ら<br />

のス ト リーム ビデオ 入 力 を 格 納 で き ます。<br />

ケース スタディ : ザイ リンクス IP ブロックを 使 用 した 設 計<br />

このセクショ ンでは、ザイ リンクス IP インテグレーター カタログから IP ブ ロ ッ ク を 使 用 し てシ ス テム を 設 計 する 方<br />

法 を 示 し ます。 こ こ で 示 す 方 法 はどの IP ブロックにでも 使 用 できます。<br />

このケース スタディでは、 ノッチ フ ィ ルターを 使 用 し ます。 ノ ッ チ フィルターは、アナログ サンプルを 処 理 して 外<br />

部 センサーに よ る 非 線 形 性 を 削 除 可 能 な DSP IP です。 アナロ グ 信 号 が 非 線 形 センサー (たとえば RTD センサー ) を<br />

介 し て 渡 さ れる と 、 センサーのビヘイ ビ アーがアナロ グ 信 号 出 力 で 非 線 形 にな り ます。 こ れは、 温 度 に 基 づいたセン<br />

サー 転 送 フ ァ ン ク シ ョ ンに さ ま ざ ま なバ リ エーシ ョ ンがあ る ためです。 非 線 形 出 力 には 補 正 アルゴ リ ズムが 必 要 で<br />

す。 補 正 アルゴ リ ズムは、 アナログまたはデジタル ド メインのいずれかでインプリ メントできます。 デジタル アル<br />

ゴ リ ズム を 使 用 し た 方 が コ ス ト 効 率 が 良 く 、 非 線 形 信 号 の 再 構 成 が 正 確 にな り ます。<br />

Zynq-7000 AP SoC の 場 合 、 PL にザイ リ ン ク ス ADC (XADC) が 含 まれます。 XADC をインスタンシエートする IP ブ<br />

ロックには、ユーザー ラッパーと XADC サンプルを AXI4-Stream 準 拠 の イ ン タ ーフ ェ イ ス に 変 換 す る オプシ ョ ン が<br />

含 まれます。 XADC サンプルを 検 索 多 項 式 係 数 で 前 も って 正 し く する こ と で、 非 線 形 センサーを 補 正 する IP ブロッ<br />

ク を 設 計 で き ます。<br />

センサー 補 正 IP ブロッ クは、 Zynq-7000 AP SoC で 使 用 可 能 な DSP ブ ロ ッ ク を 使 用 する と 設 計 で き ます。 IP はユー<br />

ザー インターフェイス 2 つ (データ には AXI4-Stream インターフェイス、 制 御 には AXI4-Lite) を イ ン プ リ メ ン ト で き<br />

ます。AXI4-Stream インターフェイスは XADC Wizard IP に 接 続 し、AXI4-Lite インターフェイスは PS の GP0 マ ス タ ー<br />

イ ン ターフ ェ イ スに 接 続 する と 、 IP 特 有 のパ ラ メ ーターを 制 御 で き ます。<br />

80 ページの 図 3-16 は IP ブロックのブロック 図 を 示 しています。<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 79<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 3 章 : ハー ド ウ ェ ア デザイ ンの 考 慮 事 項<br />

IP ブ ロ ッ ク を 作 成 する プ ロ セスは、 次 の と お り です。<br />

1. データ に AXI4-Stream インターフェイス、 制 御 に AXI4-Lite をインプリ メントする HDL コー ド を 記 述 し ます。<br />

AXI4-Stream データ を 補 間 係 数 で 乗 算 する フ ァ ン ク シ ョ ン を イ ンプ リ メ ン ト し ます。<br />

2. Vivado IP パッケージャーを 使 用 して HDL コー ド をパ ッ ケージ し ます。 イ ン ターフ ェ イ ス を 自 動 推 論 し て ク ロ ッ<br />

ク を 各 イ ン ターフ ェ イ ス と 関 連 付 け ます。<br />

3. ローカル リポジト リを 設 定 し、パックされた IP XACT ファイルをローカルリポジト リにコピーします。<br />

4. Vivado プロジェク ト を 作 成 し、 ローカル リ ポジ ト リ を 追 加 し ます。<br />

5. ローカル IP ブロック とほかの IP ブロ ッ クをインスタンシエート して、それらを 接 続 してブロ ッ ク デザイ ンを 作<br />

成 します。<br />

6. Vivado Design Suite を 使 用 してデザインをインプ リ メ ン ト します。<br />

X-Ref Target - Figure 3-16<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

図 3‐16 : IP の 使 用 例<br />

ハー ド ウ ェ ア パフ ォーマンスの 考 慮 事 項<br />

Zynq-7000 AP SoC の PL には、 データ と リ ソ ース を 共 有 する ための ソ フ ト ウ ェ アおよびハー ド ウ ェ ア 用 の 複 数 の 通 信<br />

パスが 含 まれます。 これらのパスそれぞれにコンフ ィギュレーシ ョ ン 設 定 があ り、 ハード ウェアごとにパフォーマン<br />

スを 変 更 できます。 このセクションでは、 ハードウェア パフォーマンス メトリックと、AXI マスター、 AXI ス レー<br />

ブ、 および AXI データ パスのパフ ォーマン ス を 調 整 する 方 法 について 説 明 し ます。<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 80<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 3 章 : ハー ド ウ ェ ア デザイ ンの 考 慮 事 項<br />

ハー ド ウ ェ ア パフォーマンス メトリック<br />

Zynq-7000 AP SoC のパフ ォーマン スがク リ テ ィ カルな IP にア ク セスする 場 合 、 AXI ス ループ ッ ト お よ びレ イ テ ン シ<br />

が PL パフ ォーマン スの 重 要 な メ ト リ ッ ク にな り ます。 ザ イ リ ン ク スでは、 PL の ARM AMBA AXI イ ン タ ー コ ネ ク ト<br />

を 使 用 してユーザー IP をグローバル ア ド レ ス 空 間 に 接 続 およびマ ッ プ し ます。アプ リ ケーシ ョ ン データ パスの 中 に<br />

は、 スループ ッ ト が 制 約 された も の (ビデオおよびネッ ト ワークなど) と、 レイテンシが 制 約 されされたもの ( リアル<br />

タイム アプ リ ケーシ ョ ン ま たはプ ロ ト コル 別 制 約 など) があ り ます。 Zynq-7000 AP SoC デザ イ ンの 開 始 時 には、 2 つ<br />

の 単 純 な メ ト リ ッ ク (スループッ ト と レイテンシ) を 使 用 し てパフ ォーマン ス を 指 定 する こ と し かで き ない こ と が よ<br />

くあります。<br />

レイテンシとスループッ トのトレードオフについて 説 明 すると、 8 つの 未 処 理 32 ビッ ト ト ラ ンザ ク シ ョ ン を 発 行 す<br />

る ACP マスターの 方 が 1 つの 未 処 理 ト ラ ンザ ク シ ョ ン マスターよ り も 平 均 130% 読 み 出 し レ イ テ ン シが 長 く な り ま<br />

すが、 8 つの 未 処 理 ト ラ ンザ ク シ ョ ン を 含 むマス ターの 場 合 、 スループ ッ ト も 平 均 よ り 262% 高 くなります。 これは、<br />

複 数 の 未 処 理 ト ラ ンザ ク シ ョ ンがパイ プ ラ イ ン 処 理 さ れる こ と で、 スループ ッ ト と レ イ テンシのパフ ォーマン スが よ<br />

くなるからです。システム パフ ォーマン スにおいて レ イ テンシ と スループ ッ ト のど ち ら が 重 要 かは、 設 計 者 が 決 定 で<br />

きます。<br />

これらの 2 つの メ ト リ ッ ク によ り 、 アプ リ ケーシ ョ ン パフ ォーマン スの 視 覚 化 および 調 整 の 基 礎 が 構 成 さ れます。 IP<br />

が Zynq-7000 AP SoC 内 でア ク セスする AXI インターフェイスについては、 次 に 説 明 します。AXI IP デザ イ ン のベス<br />

ト プラクティスは、 考 慮 されません。<br />

ハイ パフォーマンス AXI マスター<br />

AXI マスターのデザインおよびコンフ ィギュレーシ ョ ンは、ハイ パフォーマンス ト ラ フ ィ ッ ク の 駆 動 に 影 響 し ます。<br />

次 は、 AXI イ ン ターフ ェ イ スか ら 見 た 場 合 の 異 な るパフ ォーマン ス 特 性 を 持 つ AXI マスターの 2 つの 例 です。<br />

AXI マスター #1 : 32 ビットの AXI-Lite インターフェイスをサポート し、 一 度 に 1 つの 未 処 理 AXI ト ラ ンザ ク シ ョ ン<br />

を 発 行 します。このマスターでは、1 ビー ト の ト ランザクシ ョ ンが 生 成 され、ZC702 ボード で 100MHz で 実 行 されます。<br />

AXI マスター #2 : 64 ビットの AXI4 インターフェイスを 使 用 し、 一 度 に 16 個 の 未 処 理 ト ラ ンザ ク シ ョ ン を 発 行 し ま<br />

す。 各 ト ラ ン ザ ク シ ョ ン の 最 大 バー ス ト 長 は 16 ビー ト です。 このマスターは、 同 じ Zynq-7000 AP SoC ボー ド で<br />

200MHz で 実 行 でき ます。<br />

データ パス と AXI デステ ィネーシ ョ ン スレーブは 別 にして、AXI マスター #1 と AXI マスター #2 のパフ ォーマ ン ス<br />

は 同 じ にな り ません。 スループ ッ ト 制 約 を 最 小 限 に 抑 え る には、 AXI マスターで AXI アドレスとデータ チ ャ ネルを<br />

完 全 に 使 用 する 必 要 があ り ます。 ト ラ ンザ ク シ ョ ンは AXI データ チャネルで 順 にパイプライン 処 理 されるので、 レ<br />

イ テンシ 制 約 を 最 小 限 に 抑 え る には 未 処 理 ト ラ ンザ ク シ ョ ンの 数 を 抑 え る 必 要 があ り ます。<br />

こ の 例 は 単 純 なのでわか り やすいですが、 高 速 AXI マス ターを 構 築 する と 、 デザ イ ンの 複 雑 さ が 増 し、 よ り 多 く の リ<br />

ソースが 消 費 さ れます。 パフ ォーマン スは、 パフ ォーマン ス 目 標 が 満 た さ れない 場 合 にのみ 考 慮 さ れます。 次 のセ ク<br />

ションでは、AXI マス ターを 設 計 する 際 のパフ ォーマン スの 考 慮 事 項 のガ イ ド ラ イ ン を 示 し ます。<br />

高 速 AXI マス タ ーの 構 築<br />

デザ イ ンの 多 く は 構 築 済 み IP を 使 用 し て 生 成 さ れる ので、 パフ ォーマン スの 選 択 肢 が 制 限 さ れます。 ただ し、 次 の<br />

一 般 的 なガ イ ド ラ イ ン を 使 用 する と 高 速 AXI マス ターを 構 築 しやす く な り 、パ ラ メ ーターを 指 定 で き る 場 合 は、 既 存<br />

の IP を 変 更 する こ と も で き ます。<br />

• スループ ッ ト の 制 約 さ れたマス ターの 場 合 、 複 数 の 未 処 理 ト ラ ンザ ク シ ョ ン をサポー ト : こ の 要 件 に よ り AXI マ<br />

スターの 複 雑 さは 増 しますが、Zynq-7000 AP SoC イ ン ターフ ェ イ スで さ ま ざ ま な 数 の 複 数 ト ラ ンザ ク シ ョ ン を 内<br />

部 でサポー ト でき ます。 このデータ パイプラインによ り、 よ り 多 くの AXI データ チャネルが 使 用 できるように<br />

なります。 通 常 スループット ベースのデザイ ンで 重 要 なのはこのチャネルのみです。<br />

• レ イ テンシの 短 いマ ス ターの 場 合 、 レ イ テンシ と スループ ッ ト のビヘイ ビ アーを 最 大 にする ために 未 処 理 ト ラ ン<br />

ザクション 数 を 調 整 : ト ラ ンザ ク シ ョ ン 数 を 調 整 する のは 困 難 な 場 合 があ り ますが、 いろいろ 試 すこ と に よ り 、<br />

複 数 の 未 処 理 ト ランザクシ ョ ンを 許 容 しながら レイテンシを 最 小 限 に 抑 えるレイテンシ 曲 線 を 得 る こ とができ<br />

ます。 図 3-17 は、 リ ク エス ト さ れた ト ラ ンザ ク シ ョ ン 数 を 増 加 する と レ イ テンシにどの よ う に 影 響 する かを、 レ<br />

イテンシとスループッ トの 曲 線 を 使 用 して 示 しています。<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 81<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 3 章 : ハー ド ウ ェ ア デザイ ンの 考 慮 事 項<br />

X-Ref Target - Figure 3-17<br />

図 3‐17 : HP ポー ト の 読 み 出 しのレ イ テンシ と スループ ッ ト の 曲 線 例<br />

• AXI 応 答 チャ ネルを 無 視 : 可 能 であれば、 ト ラ ンザ ク シ ョ ン レ イ テンシを 削 減 する ためにポ ス テ ッ ド 書 き 込 みを<br />

使 用 し ます。 た と えば、 書 き 込 み 応 答 チャ ネルの 応 答 を 無 視 し て、 AXI の rdlast または wrlast 信 号 で 完 了 する ト<br />

ラ ンザ ク シ ョ ン を 考 慮 し て く だ さ い。 適 切 なデザ イ ンの 場 合 、 AXI マ ス ターが 管 理 する 必 要 のあ るチャ ネルま た<br />

はスレーブ エ ラーはあ り ません。 書 き 込 みをポ ス ト で き ない 場 合 、 こ のチ ャ ネルは 無 視 で き ません。 ただ し、<br />

AXI 書 き 込 み 応 答 チ ャ ネルを 使 用 する と 、 多 く の Zynq-7000 AP SoC データ パスで ト ラ ンザ ク シ ョ ンに 数 十 サ イ<br />

クルが 追 加 されます。<br />

• AXI マスターのアドレス 指 定 ビヘイビアーとデスティネーショ ン AXI ス レーブ 応 答 を 考 慮 : AXI マスターの 生<br />

成 する ア ド レ ス シーケンスは、 その ト ラ フ ィ ッ クに 使 用 されるデステ ィ ネーシ ョ ン ス レーブの 機 能 に 影 響 し ま<br />

す。 た と えば、 AXI マスターで DDR ベースの メ モ リ に 対 し て ラ ンダム アドレスが 生 成 される 場 合 、 メモリ パ<br />

フ ォーマン スが 低 下 する こ と があ り ます。 ま た、DDR アドレス 範 囲 にアクセスする 複 数 のマスターにより、DDR<br />

のス ケジ ュー リ ングが 最 適 にな ら ない こ と があ り ます。 OCM のよ うに、 メモリ スレーブの 中 にはランダム アク<br />

セス 処 理 に 優 れた ものがあ るので、 これは 常 に 問 題 にな るわけではあ り ません。 また、 ラ ンダム アクセスが 小 さ<br />

いア ド レ ス 範 囲 内 に 維 持 さ れる 場 合 は、L2 キャッシュをこのト ラフィ ックに 使 用 できます。これらの AXI スレー<br />

ブについては、 後 で 説 明 し ます。<br />

• クロック レー ト 、 データ 幅 、 ト ラ ンザ ク シ ョ ン バース ト サ イ ズを 最 大 にする : これらのパラ メーターは、<br />

Zynq-7000 AP SoC でネイテ ィブにサポー ト される ものと 一 致 している 必 要 があ り ます (たとえば、 内 部 64 ビッ ト<br />

データ パス、 および 最 大 AXI3 バース ト 長 16 ビー ト )。 通 常 、 AXI マスター クロック レー ト を 増 加 する と 、 デー<br />

タ パス 合 計 の 一 部 にのみ 影 響 し ます。 こ れは、 その よ う な ト ラ ンザ ク シ ョ ンは PS およびそのク ロ ッ ク ドメイン<br />

も 通 過 する か ら です。 PL データ 幅 は、 必 要 に 応 じ て PS データ 幅 に 内 部 変 換 さ れます。 バース ト サイズを 例 と し<br />

て 使 用 する と 、 PL AXI マスターが AXI4 トラフィックを PS に 駆 動 する 場 合 、 こ の ト ラ ンザ ク シ ョ ンは AXI3 ト<br />

ラ ンザ ク シ ョ ンに 変 換 さ れる こ と があ り ます。<br />

パフォーマンスがクリテ ィ カルな AXI スレーブの 使 用<br />

パフォーマンス クリティカルなスレーブは、PL か ら のデータ 移 動 リ ク 応 答 し ます。 Zynq-7000 AP SoCs には、 OCM、<br />

L2 キャッシュ、DDRC といった 特 にパフォーマンスがク リティカルな AXI スレーブが 3 つあ り ます。 PL にコンフィ<br />

ギャラブルなメモリ インターフェイス ジェネレーター (MIG) を 追 加 する こ と もできます。 それぞれのスレーブの 利<br />

点 は、 次 の とお り です。<br />

• オンチップ メモリ : OCM は、 ARM コアおよび GP、 HP、 ACP ポー ト からの PL の 両 方 にア ク セス 可 能 な 256KB<br />

のメモリ ブロックです。 OCM は、 同 期 ま たは メ モ 帳 アプ リ ケーシ ョ ンで 使 用 する のに 理 想 的 な コ ンポーネン ト<br />

です。<br />

• L2 キャッシュ : 512KB の L2 キャッシュは、PL からの ACP でのみアクセスでき、 2 つの ARM Cortex-A9 コアと<br />

リソースを 共 有 できます。 このスレーブには、データ トラフィックが 512KB 内 に 収 ま る 場 合 、 優 れたパフ ォー<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 82<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 3 章 : ハー ド ウ ェ ア デザイ ンの 考 慮 事 項<br />

マン ス 特 性 があ り ます。 ただし、 プロセ ッ サ 競 合 が 多 い 場 合 は、 パフ ォーマン スが 悪 化 し ます。 ACP およびコ<br />

ヒーレント メモリ アクセスについては、93 ページの 「ACP およびキャ ッシュ コヒーレンシ」 を 参 照 して く ださ<br />

い。<br />

• DDR コント ローラー : DDRC を DDR3 および LPDDR2 などのさまざまなオフチップ メモリ デバ イ ス に 接 続 で<br />

きます。 DDRC は、 AXI マスター インターフェイス (GP、 HP、 および ACP) を 使 用 して PL か ら ア ク セ ス で き ま<br />

す。 各 PL インターフェイスには、 DDRC への 一 意 のデータ パスが 含 まれます。 DDRC のメモリ 容 量 とスルー<br />

プッ ト パフォーマンスは、 OCM および L2 キャッシュより も 大 きくなっています。<br />

• MIG に 接 続 された PL (オプシ ョ ン) : Zynq-7000 AP SoC では、 PL で MIG 生 成 の メ モ リ コ ン ト ロ ー ラ ーがサポー<br />

ト さ れます。 こ の ソ フ ト IP オプシ ョ ンには、 PL メモリを DDRC へのプロセ ッ サ システムのソフ ト ウェア ア ク<br />

セスから 隔 離 できる 高 速 メモリ イ ン ターフ ェ イ スが 別 に 含 まれます。 MIG では、 デザ イ ン を 標 準 的 な AXI マス<br />

ター IP に 接 続 でき る AXI イ ン ターフ ェ イ スがエ ク ス ポー ト さ れます。 こ の コ アを 使 用 する 最 大 の 利 点 は、 特 定<br />

アプ リ ケーシ ョ ン 用 にバン ク 方 式 およびア ド レ ス 方 式 に PHY をカスタマイズできる 点 です。<br />

パフォーマンスがク リテ ィ カルな AXI スレーブの 選 択<br />

データ パス 用 の AXI スレーブは、CPU コ ヒーレンシまたはメモリ サ イ ズの よ う な 論 理 要 件 を 満 たすために 選 択 さ れ<br />

ることがよくあります。AXI ス レーブは、 パフ ォーマン ス 要 件 で も 選 択 でき ます。 Zynq-7000 AP SoC を 使 用 する 場 合<br />

は、 次 を 考 慮 する こ と をお 勧 め し ます。<br />

• パフォーマンス クリティカルなデータ パスを 回 避 または 隔 離 : デザイ ン プ ロ セス 中 は、 特 定 のデータ パ ス がシ<br />

ステム パフォーマンスに 対 してク リ テ ィ カル、 その 他 のパスがセカンダ リ とマーク される こ とがよ く あ り ます。<br />

たとえば、 ネッ トワーク プロセッシング アプ リ ケーシ ョ ンの 場 合 は、 オフチップ メモリへの 専 用 アクセスが 必<br />

要 なこ とがあ り ますが、パケ ッ ト 検 査 はあま り ク リ テ ィ カルではないデータ パスでよ り 遅 いレート で 実 行 される<br />

可 能 性 があ り ます。ACP アクセスのメモリ フ ッ ト プ リ ン ト を 制 限 する こ と に よ り 、L2 キャッシュへの ACP アク<br />

セスを HP から DDRC への ト ラ フ ィ ッ ク か ら 隔 離 で き ます。 同 様 に、GP からの OCM アクセスを ACP および HP<br />

ト ラ フ ィ ッ ク か ら 隔 離 で き ます。<br />

• 低 レイテンシ : 許 容 さ れる イ テンシの 量 は、 シ ス テム レベルのアプ リ ケーシ ョ ン とデータ ト ラ フ ィ ッ ク のビヘ<br />

イビアーによって 異 なります。 OCM には、 優 れた 低 レ イ テンシ 特 性 があ り ます。 ACP を 介 し て 小 さ い メ モ リ 領<br />

域 にア ク セスする と、 アプ リ ケーシ ョ ンがイネーブルにな り 、 低 レ イ テンシの L2 キャッシュ アクセスの 利 点 を<br />

活 用 で き ます。<br />

• 高 スループッ ト : HP (ハイ パフォーマンス) ポー ト を 使 用 する と 、 PL から PS DDR への ス ループ ッ ト が 高 く な り<br />

ます。HP パフ ォーマン スに 関 する よ く あ る 問 題 は、 DDRC での L2 キ ャ ッ シ ュ の 競 合 です。 メ モ リ 集 約 型 ソ フ ト<br />

ウェア アプ リ ケーシ ョ ンでは、 HP スループッ ト が 低 下 する こ とがあ り ますが、 DDRC プライオリティ 設 定 と<br />

DDRC データ パスへの L2 キャッシュの QoS 301 設 定 を 使 用 する と 、 競 合 を 削 減 で き ます。<br />

• 設 定 可 能 性 および 信 頼 性 : デザイ ンの 中 には PL MIG を 使 用 して、プロセッサ サブシステム との メ モ リ ア ク セ ス<br />

競 合 を 回 避 で き る も のがあ り ます。 その 他 のデザ イ ンでは、 以 前 のデザ イ ンや 開 発 者 の 経 験 に 基 づいたカ ス タ ム<br />

メ モ リ が 使 用 さ れる こ と があ り ます。Zynq-7000 AP SoC のプロ ト タ イプ ボード (ZC706 ボード など) では MIG が<br />

サポー ト されるので、 カス タム MIG コアを 評 価 して、 結 果 を DDRC への 標 準 的 な Zynq-7000 AP SoC データ パ<br />

ス と 結 果 を 比 較 で き ます。<br />

ハイ パフォーマンス データ パス<br />

PS には、 PL (マスター GP0、 マスター GP1) と 通 信 するための 2 つの 対 称 データ パスがあ り、 PL AXI マ ス タ ーには<br />

トラフィックを PS に 駆 動 する ためのデータ パスが 7 つあ り ます。<br />

AXI インターフェイスの 詳 細 は、 次 のセクションを 参 照 してください。<br />

• 93 ページの 「ACP およびキャ ッシュ コヒーレンシ」<br />

• 96 ページの 「PL の HP ポー ト アクセス」<br />

• 106 ページの 「APU からの GP およびダイレク ト PL アクセス」<br />

こ れ ら の イ ン ターフ ェ イ スか ら 選 択 する ためにシ ス テム パフ ォーマン ス を 使 用 する プ ロ セスについて、 次 で 説 明 し ま<br />

す。<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 83<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 3 章 : ハー ド ウ ェ ア デザイ ンの 考 慮 事 項<br />

パフォーマンス データ パスの 選 択<br />

データ パスは、 デザイン フ ァ ン ク シ ョ ンに 基 づいて 選 択 さ れる こ と が よ く あ り ますが、 パフ ォーマン スに 基 づいて<br />

も 選 択 できます。<br />

• ACP および HP ポー ト 間 の 選 択 : キャッシュおよびユーザーの AXI4 信 号 がキ ャ ッ シ ュ ア ク セ ス 用 に 設 定 さ れ<br />

ると、ACP ポー ト が L2 キャッシュへのアクセスに 使 用 され、 キャッシュ コ ヒ ーレ ンシが 維 持 さ れます。 キ ャ ッ<br />

シュがイネーブルになっていない 状 態 で ACP を 使 用 する と 、 メ モ リ マップが Cortex-A9 コ アで 認 識 さ れ る も の<br />

と 一 致 する ため、 PL マ ス ターで 有 益 な 場 合 があ り ます。 L2 キャッシュは 共 有 リ ソースなので、ACP ポー ト を 使<br />

用 する と プ ロ セ ッ サの メ モ リ バン ド 幅 が 変 わる こ とがあ り ます。AXI マスターで 生 成 された ト ラフィ ッ クが 大 き<br />

なア ド レ ス 範 囲 に 広 がる 場 合 (ビデオ フレームなど)、 ま たは 本 質 的 に ラ ンダムな 場 合 (Scatter-Gather DMA な ど<br />

)、 L2 キ ャ ッ シ ュ の ミ スが 増 え る ので、 レ イ テンシが 増 加 し、 スループ ッ ト が 低 下 する 可 能 性 があ り ます。<br />

HP ポー ト では 32 ビッ トおよび 64 ビ ッ ト のデータ パスがサポート され、DDRC への 高 スループ ッ ト ア ク セ ス が<br />

提 供 さ れます。 HP ポー ト には、 バース ト スループッ ト を 増 加 するための FIFO が 含 まれてお り 、 その 優 先 度 は<br />

ユーザーが 制 御 でき ます。 HP ポー ト は OCM に 低 レ イ テンシおよび 高 バン ド 幅 でア ク セスでき るので、 ア ク セ<br />

ラレータが PL に 含 まれ、 OCM の 容 量 がバ ッ フ ァ ーに 対 し て 十 分 にあ る 場 合 に 使 用 する と 便 利 です。<br />

• GP ポー ト の 選 択 : スレーブ GP ポー ト を 使 用 する と 、 ACP および HP ポー ト のパフ ォーマンス ク リ テ ィ カルな<br />

データ パスか ら 隔 離 さ れた 多 く の リ ソ ースに PL マスターから 直 接 アクセスできるよ うになり ます。<br />

• メモリ アクセス フッ トプリント : キ ャ ッ シ ュ 局 所 性 が 低 く 、 コ ヒ ーレ ン ト でないア ク セスに ACP が 使 用 さ れ る<br />

場 合 、 DDRC が ACP ト ラ フ ィ ッ ク の 大 部 分 に 使 用 さ れます。 た と えば、 Zynq-7000 AP SoC の 場 合 、 ACP レ イ テ<br />

ンシは ト ラ ンザ ク シ ョ ンのキ ャ ッ シ ュ 局 所 性 を 高 め る こ と で 最 大 53% まで 削 減 さ れます。 HP および GP ト ラ ン<br />

ザクショ ンは L2 キャッシュにアクセスしないので、 キャッシュ ビヘイ ビ アーに 直 接 影 響 さ れる こ と はあ り ませ<br />

ん。 コ ヒ ーレ ン ト アクセスに ACP を 使 用 する 場 合 は、 93 ページの 「ACP およびキャ ッシュ コヒーレンシ」 を<br />

参 照 し て く だ さ い。<br />

• PS データ パス パフォーマンス 制 御 : システム クロック レー ト、 QoS-301 信 号 、 DDRC プ ラ イ オ リ テ ィ 設 定 は、<br />

すべてデータ パス パフ ォーマン スに 影 響 する 可 能 性 があ り ます。 デザ イ ン を 設 計 する 際 に IP インテグレーター<br />

を 使 用 する と 、 ほ と んどの メ モ リ マップ レジスタおよびファンクショ ンを 設 定 できます。 QoS-301 ビッ トはラ<br />

ンタイム 時 に 設 定 できます。 システム クロック レー ト が 高 い 方 がデータは 高 速 に 移 動 し ますが、 QoS-301 信 号<br />

と DDRC プライオリティ 設 定 によ り、 競 合 している AXI マ ス タ ー 間 のパフ ォ ーマンス を 変 更 で き ます。 た と え<br />

ば、L2 から DDRC へのデータ パスの QoS-301 設 定 に よ り DDRC への L2 キャッシュ ト ラ ンザ ク シ ョ ン を 制 限 し<br />

て、 HP トラフィックがより 頻 繁 に DDRC で 処 理 される よ う にでき ます。 DDR プライオリティ 設 定 は、DDRC 内<br />

の 読 み 出 しおよび 書 き 込 み ト ラ ンザ ク シ ョ ンの 優 先 順 位 を 決 め る ために も 使 用 で き ます。<br />

ハー ド ウ ェ ア パフ ォーマンスの 監 視<br />

ザ イ リ ン ク スか ら 提 供 さ れる AXI Performance Monitor (APM) コア ( 図 3-18) を 使 用 する と 、PL の AXI イ ン タ ーフ ェ イ<br />

スのレイテンシとスループッ ト を 観 察 して 測 定 できます。 このコアは、 IP イ ンテグ レーターか ら 使 用 で き ます。 本 書<br />

で 参 照 されるすべての AXI パフ ォーマン ス 測 定 結 果 は、 こ の コ アで 測 定 さ れた も のです。<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 84<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 3 章 : ハー ド ウ ェ ア デザイ ンの 考 慮 事 項<br />

X-Ref Target - Figure 3-18<br />

図 3‐18 : Vivado 2013.4 IP インテグレーター デザイ ンへの AXI Performance Monitor の 追 加<br />

Zynq-7000 AP SoC を 開 発 する 際 は、 こ の APM コアをその 他 の IP と 同 様 に PL デザイ ンに 挿 入 し て、 デザイ ン サイク<br />

ルでのパフ ォーマンス メ ト リ ッ ク を 検 証 で き ます。<br />

データ フ ロー<br />

このセクションでは、 Zynq-7000 AP SoC のデータ フ ローの 概 要 について 説 明 し ます。 まず、 PS 内 のデータ フ ローに<br />

ついて、 PS の DDR と PS の DDR への PS ペリフェラルの APU ア ク セ ス を 中 心 に 説 明 し ます。 次 に、 PL から PS へ<br />

のデータ フ ローについて、 汎 用 イ ン ターフ ェ イ ス、 ACP インターフェイス、 ハイ パフォーマンス インターフェイス<br />

などの PS-PL AXI イ ン ターフ ェ イ ス を 中 心 に 説 明 し ます。 スループ ッ ト 、 主 なシステム デザ イ ン 特 性 および 考 慮 事<br />

項 について も 記 述 し ます。 その 他 の 詳 細 は、 『Zynq-7000 All Programmable SoC テクニカル リファレンス マニ ュ アル』<br />

(UG585) [ 参 照 4] を 参 照 して く ださい。<br />

Zynq-7000 AP SoC 内 ではさ まざまな イ ン ターコネ ク ト ブロックが 使 用 されており、 それぞれがさまざまなファンク<br />

ション ブ ロ ッ ク の 必 要 性 を 満 たすために 設 計 さ れています。 PS インターコネク トは、 さまざまなペリフェラルおよ<br />

び DDR メモリ 間 、 APU と DDR または OCM メ モ リ 間 のデータ 転 送 のいずれかを イ ネーブルにする 高 速 データ パ ス<br />

スイッチに 基 づいています。PS-PL インターフェイスでは PL に AXI インターフェイスが 含 まれ、 PS お よ び 後 続 の<br />

データ フ ローに 接 続 さ れた PL ペリフェラルがイネーブルになります。<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 85<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 3 章 : ハー ド ウ ェ ア デザイ ンの 考 慮 事 項<br />

図 3-19 のブロ ッ ク 図 は、 このセクシ ョ ンで 説 明 される 主 なデータ パスを 示 しています。<br />

X-Ref Target - Figure 3-19<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

PS 内 のイ ン タ ー コ ネ ク ト<br />

図 3‐19 : ブロック レベルのデー タ パスの 概 要<br />

PS 内 には、 APU から PS DDR へのイ ン ターコネ ク ト と、 PS ペリフェラルから PS DDR への イ ン タ ー コ ネ ク ト の 主 に<br />

2 つデータ パスがあ り ます。<br />

セン ト ラル インターコネク トは 64 ビッ トで、ARM NIC-301 ス イ ッ チの コ アです。マス ターおよびス レーブ イ ン タ ー<br />

コネク トでは、 セン ト ラル インターコネク ト、 汎 用 インターコネク ト、 PS の I/O ペ リ フ ェ ラ ル 間 の 低 レベルか ら 中<br />

レベルの ト ラ フ ィ ッ ク が 配 線 さ れます。 メ モ リ インターコネク トは、PL の HP インターフェイスから DDR メモリ コ<br />

ン ト ローラーへの 直 接 高 速 データ パス を 提 供 する ほか、 OCM インターコネク トを 介 したオンチップ RAM へのア ク<br />

セスも 提 供 します。<br />

イ ン ターコ ネ ク ト では 完 全 な ク ロ スバー 構 造 は 提 供 さ れないので、すべてのマ ス ターがすべてのス レーブにア ク セ ス<br />

でき るわけではあ り ません。 どのマス ターがどのス レーブにア ク セスするかの 詳 細 については、 『Zynq-7000 All<br />

Programmable SoC テクニカル リファレンス マニュアル』 (UG585) [ 参 照 4] の 「インターコネクト データパス」 の 表 <br />

( リンク) を 参 照 して く ださい。<br />

PS‐DDR への APU アクセス<br />

プロセッサには、 それぞれ 2 つの 64 ビットの 擬 似 AXI インターフェイスがあります。 AXI ト ラ ンザ ク シ ョ ンはすべ<br />

て SCU を 経 由 し、 それぞれのアド レスに 基 づいて OCM または L2 キャッシュ コ ン ト ローラーに 接 続 さ れます。 APU<br />

は SCU および L2 キャッシュ コント ローラーを 介 して DDR メモリにアクセスします。SCU および L2 キャッシュ コ<br />

ントローラーにはアドレス フ ィ ルター 機 能 があ る ので、 両 方 と も ス イ ッ チの よ う に 動 作 し ます。 SCU では、 APU ま<br />

たは PL の ACP ペリフェラルから OCM への 低 レ イ テンシ パスも 提 供 されるほか、2 つのプロセ ッ サ と L1 キ ャ ッ シ ュ<br />

間 のデータ コ ヒ ーレ ンシを 管 理 する 機 能 も 提 供 さ れます。<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 86<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 3 章 : ハー ド ウ ェ ア デザイ ンの 考 慮 事 項<br />

L2 キャッシュ コ ン ト ローラーがデ ィ スエーブルの 場 合 、ト ラ ンザ ク シ ョ ンはそれ ら のア ド レ スに 基 づいて DDR コン<br />

トローラーまたはマスター インターコネク トに 送 信 されます。<br />

PS‐DDR への PS ペリフェラル アクセス<br />

I/O ペリフェラル (USB、 GEM、 SDIO など) は、 通 信 用 に 次 の 2 つのイ ン ターフ ェ イ ス を イ ンプ リ メ ン ト し ます。<br />

• ペリフェラル スレーブを APU マス ターに 接 続 する APB インターフェイス<br />

• 高 速 ペ リ フ ェ ラ ルのエンベデ ッ ド DMA コント ローラーをシステム メ モ リ に 接 続 する ための 高 速 バス トランザ<br />

クションを 容 易 にする AHB インターフェイス<br />

APB イ ン ターフ ェ イ スは 主 にペ リ フ ェ ラルの 制 御 に 使 用 され、 ペ リ フ ェ ラルの DMA マスターからの AHB イ ン タ ー<br />

フェイスはセント ラル インターコネク トに 接 続 されて、 DDR コ ン ト ローラーへのア ク セス を 提 供 し ます。<br />

PS–PL AXI インターフェイス<br />

このセクショ ンでは、PL ベースのペ リ フ ェ ラ ル と PS へのフ ァ ン ク シ ョ ン を 接 続 する のに 使 用 さ れる PS-PL AXI イ ン<br />

ターフ ェ イ スについて 説 明 し ます。 各 イ ン ターフ ェ イ ス を どの よ う に 使 用 する かについては、 それぞれのセ ク シ ョ ン<br />

で 説 明 し ます。<br />

汎 用 AXI インターフェイス (AXI_GP)<br />

AXI_GP インターフェイスには 4 つの 32 ビッ ト 汎 用 ポート と、2 つのマス ター ポー ト および 2 つのス レーブ ポー ト<br />

が 含 まれます。 PL は 2 つのポー ト のマス ターで、 PS はそれ 以 外 の 2 つのポー ト のマス ターです。 ポー ト は PS のマ<br />

スターおよびスレーブ インターコネク ト ポー ト に 接 続 さ れます。<br />

AXI_GP は 汎 用 目 的 に 提 供 さ れてお り 、 ハイ パフォーマンス 用 には 設 計 されていません。<br />

M_AXI_GP ポー ト は、 通 常 PL にインプリ メン ト されたペリ フェラルの 制 御 プレーンに 接 続 して 使 用 します。PL から<br />

のア ド レ ス 指 定 可 能 な PS ペ リ フ ェ ラ ル と の 通 信 には、 S_AXI_GP を 使 用 できます。 PL ペリフェラルのパフォーマン<br />

ス 要 件 は 高 く ないので、 S_AXI_GP を PS-DDR へのア ク セ スに 使 用 する こ と も で き ます。<br />

アクセラレータ コヒーレンシ ポー ト (ACP)<br />

ACP では、 SCU に 直 接 接 続 する ために、 PL のマス ターへの イ ン ターフ ェ イ スが 提 供 さ れます。 PL マスターは L1<br />

キ ャ ッ シ ュ を 使 用 し て メ モ リ コヒーレンシを 維 持 し、L2 キャッシュおよび OCM に 直 接 ア ク セスでき ます。 ACP で<br />

は、 ペ リ フ ェ ラル と メ モ リ への 接 続 レベルが CPU と 同 じ です。 『Zynq-7000 All Programmable SoC テクニカル リ フ ァ<br />

レンス マニュアル』 (UG585) [ 参 照 4] の 「システム アドレス」 の 章 ( リンク) のアド レス マ ッ プを 参 照 し て く だ さ い。<br />

ACP ポー ト のア ド レ スは、 全 I/O コ ヒーレンシを 提 供 するために SCU でスヌープされます。 ACP の 読 み 出 し が CPU<br />

の L1 データ キ ャ ッ シ ュ のいずれかに ヒ ッ ト する と 、 書 き 込 みが L1 の 以 前 のデータ を 無 効 に し、 L2 に ラ イ ト ス ルー<br />

します。 これにより、 パフォーマンスがかなり 改 善 され、 ドライバー ソ フ ト ウ ェ ア を 簡 略 化 で き ます。<br />

ACP を 使 用 する と 、 データ が CPU キャッシュまたはメモリ 階 層 のどこにあるかに 関 係 なく、 外 部 PL-DMA などのデ<br />

バイスが CPU コ ヒーレント データ に 直 接 ア ク セスで き る よ う にな り ます。こ の 結 果 のシ ス テム コ ヒーレンスにより、<br />

ソフトウェア ドライバーでキャッシュ フ ラ ッ シ ュ などの コ ス ト のかか る 演 算 が 実 行 さ れな く な る ので、 シ ス テム パ<br />

フォーマンスが 改 善 されます。<br />

ACP はキャ ッシュ ラ イ ン 長 転 送 用 に 最 適 化 さ れてお り 、 特 定 の 制 限 も あ る ので、 ACP を 使 用 し たシ ス テム を 設 計 す<br />

る 際 はこれらを 考 慮 する 必 要 があ り ます。 詳 細 は、 93 ページの 「ACP およびキャッシュ コヒーレンシ」 を 参 照 して<br />

ください。<br />

ハイ パフォーマンス アプ リ ケーシ ョ ンの ACP の 使 用 には、 注 意 が 必 要 です。 これは、 ACP に 接 続 さ れたペ リ フ ェ ラ<br />

ルと CPU のキャ ッシュおよび PS のメモリ サブシステムへのア ク セスが 競 合 し、 パフ ォーマン ス 全 体 に 影 響 を 与 え<br />

るためです。<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 87<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 3 章 : ハー ド ウ ェ ア デザイ ンの 考 慮 事 項<br />

ハイ パフォーマンス ポー ト (AXI_HP)<br />

PL マスター、DDR、および PS の OCM メモリ 間 の 高 スループッ ト データ パスをイネーブルにするため、4 つの 高 パ<br />

フォーマンス AXI インターフェイスが 提 供 されています。 各 データ パスには、 32 ビッ トか 64 ビ ッ ト を 選 択 で き ま<br />

す。 専 用 メ モ リ インターコネク トは、 これらの AXI-HP ポー ト から PS の DDR メモリ コ ン ト ローラーへの 直 接 接 続<br />

を 提 供 し ます。 ま た、 読 み 出 しおよび 書 き 込 み ト ラ フ ィ ッ ク 用 の FIFO バッファーもあり、 高 パフォーマンス 機 能 が<br />

提 供 さ れています。 こ れら のポー ト は、 AXI FIFO インターフェイス (AFI) と 呼 ばれることもあります。<br />

4 つの AXI-HP は 2 つに 多 重 化 さ れ、 メ モ リ コント ローラーの 2 つのポー ト に 接 続 さ れます。 こ の 2 つのポー ト 間 の<br />

アービ ト レーシ ョ ンは、メ モ リ インターコネク ト スイッチで 処 理 されます。2 つの HP ポー ト を 使 用 する 場 合 は、ポー<br />

ト 0 とポート 2 を 使 用 する こ と をお 勧 めし ます。 これは、 これらのポー ト が 別 々の DDR イ ン タ ーフ ェ イ ス にあ る か<br />

らです。<br />

HP AXI インターフェイスには、 QoS、 FIFO 占 有 率 、 イ ン ターコ ネ ク ト の 発 行 ス ロ ッ ト リ ン グなどのその 他 の 機 能 も<br />

あります。これにより、 複 数 のマスターがあり、 異 なるタイプのトラフィック フ ローが 使 用 される 場 合 に、 バン ド 幅<br />

管 理 が イ ネーブルにな り ます。QoS 信 号 は、PL 信 号 を 使 用 する か、APB レジスタをスタティ ッ クにコンフィギュレー<br />

シ ョ ンする こ と で 制 御 で き ます。<br />

前 述 の PS-PL AXI インターフェイスに 加 えて、 次 のよ うな PS-PL インターフェイスもあります。<br />

a. 拡 張 MIO では、 PL への I/O ペ リ フ ェ ラ ル 信 号 を 配 線 で き ます。 こ れに よ り 、 PS の IOP コ ン ト ロ ー ラ ー と<br />

PL のユーザー ロジック 間 にインターフェイスが 提 供 され、 PL デバイ ス ピ ン の 使 用 も イ ネーブルにな り ま<br />

す。 詳 細 は、 『Zynq-7000 All Programmable SoC テクニカル リファレンス マニュアル』 (UG585) [ 参 照 4] ( リ ン<br />

ク ) を 参 照 して ください。<br />

b. PS-PL ク ロ ッ ク 、 リ セ ッ ト 、 割 り 込 みイ ン ターフ ェ イ スでは、 PL に ク ロ ッ ク 、 リ セ ッ ト 、 割 り 込 み 信 号 が 提<br />

供 さ れます。 詳 細 は、 『Zynq-7000 All Programmable SoC テクニカル リファレンス マニュアル』 (UG585) [ 参<br />

照 4] ( リンク) を 参 照 して く ださい。<br />

c. デバイ ス コンフィギュレーション インターフェイスでは、PS ソ フ ト ウ ェ ア 制 御 下 で PL を コ ン フ ィ ギ ュ レー<br />

シ ョ ンで き ます。 詳 細 は、 『Zynq-7000 All Programmable SoC テクニカル リファレンス マニュアル』 (UG585)<br />

[ 参 照 4] ( リンク) を 参 照 して く ださい。<br />

d. PS と PL 間 の DMA インターフェイスは、PL IP ブロ ッ ク と その 他 のペ リ フ ェ ラルまたは PS のメモリ ブ ロ ッ<br />

ク 間 の 高 速 データ 転 送 に 使 用 で き ます。 PS とファブリック 間 のインターフェイスは、CPU 割 り 込 みイベン<br />

ト を 伝 搬 する ために 使 用 で き ます。<br />

システム レベルの 設 計 に 関 する 考 慮 事 項<br />

PS-PL AXI イ ン ターフ ェ イ スのバン ド 幅 を 管 理 する 際 は、 次 の 点 について 考 慮 する 必 要 があ り ます。<br />

• 汎 用 ポー ト は、 PS からの PL ペ リ フ ェ ラ ルの 制 御 な ど 低 ~ 中 程 度 の ト ラ フ ィ ッ ク に 使 用 する か、 低 速 の PL ペリ<br />

フェラルのデータ パス と し て 使 用 する 必 要 があ り ます。 た と えば、 S_AXI_GP ポー ト はバン ド 幅 と レ イ テンシ 要<br />

件 を 満 たしているので、 このポートを 介 してイーサネッ ト パケ ッ ト を PL に 移 動 でき ます。 PL に イ ン プ リ メ ン<br />

ト さ れたビデオなど、 確 実 な レ イ テンシおよび 高 性 能 を 必 要 と する アプ リ ケーシ ョ ンの 場 合 は、 HP ポー ト の 使<br />

用 をお 勧 め し ます。<br />

• アクセラレータ コヒーレンシ ポー ト は、 PL のアプ リ ケーシ ョ ンでプロセッサ L1 キ ャ ッ シ ュ を 使 用 し て コ ヒ ー<br />

レ ンシを 維 持 する 必 要 があ る 場 合 、ま たは ソ フ ト ウ ェ ア オーバーヘ ッ ド を 削 減 する 必 要 があ る 場 合 に 使 用 する と<br />

便 利 です。<br />

• HP ポー ト は、 PL のアプ リ ケーシ ョ ンで DDR コント ローラーまたは OCM への 高 バン ド 幅 のア ク セスが 必 要 な<br />

場 合 に 使 用 する こ と をお 勧 め し ます。 複 数 のポー ト が 提 供 さ れてい る ので、 PL マスターを 1 つの HP ポー ト に 制<br />

限 する のではな く 、4 つの HP ポー ト に 分 散 する と 、 負 荷 バ ラ ン ス を 改 善 で き ます。 複 数 の HP ポー ト セッ ト (HP0<br />

と HP2、 または HP1 と HP3) を 使 用 する と 、 1 つの PL マスターのバンド 幅 をさらに 高 くするこ とができます。<br />

複 数 ポー ト セ ッ ト の 使 用 方 法 の 詳 細 は、 『Zynq-7000 AP SoC テクニカル リファレンス マニュアル』 (UG585) [ 参<br />

照 4] ( リンク) を 参 照 して く ださい。<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 88<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 3 章 : ハー ド ウ ェ ア デザイ ンの 考 慮 事 項<br />

PL ク ロ ッ ク 供 給 手 法<br />

このセクショ ンでは、PL で 使 用 可 能 な ク ロ ッ ク ソース と それら の 推 奨 さ れる 使 用 方 法 など、Zynq-7000 AP SoC PL の<br />

ク ロ ッ ク 手 法 について 説 明 し ます。 PL で 使 用 可 能 な ク ロ ッ ク ソースは、 次 のとおりです。<br />

• 「PS からのクロック (FCLK)」<br />

• 「GT から 復 元 されたクロック」<br />

• 「 外 部 ソースか ら の ク ロ ッ ク 」<br />

• 「MMCM によ り 生 成 されたクロッ ク」<br />

このセクショ ンの 最 後 では、 さまざまなクロック ソースの 使 用 を 示 す 典 型 的 なモデル と し て、 ビデオ システム デザ<br />

インを 使 用 して 説 明 します。<br />

PS からのクロッ ク (FCLK)<br />

FCLK の 使 用 に 関 する 詳 細 は、 第 2 章 の 「ク ロ ッ キングおよび リ セ ッ ト 」 を 参 照 して く ださい。<br />

GT から 復 元 されたクロッ ク<br />

GT トランシーバー 内 のレシーバー クロック データ リカバリ (CDR) 回 路 では、 入 力 さ れるデータ ス ト リームからク<br />

ロ ッ ク と データ が 抽 出 さ れます。 復 元 さ れた ク ロ ッ ク は、 ト ラ ンシーバーの ラ イ ン レート とデータ パス 幅 に 直 接 関<br />

連 します。 PL で 復 元 さ れた ク ロ ッ ク を 使 用 する には、 リ ン ク パー ト ナー と 通 信 する 高 速 シ リ アル トランシーバーが<br />

必 要 です。 復 元 さ れた ク ロ ッ ク には、 通 常 元 の ク ロ ッ ク のジ ッ ターが 含 まれるので、 入 力 ジ ッ ターに 敏 感 なデザ イ ン<br />

で ク ロ ッ ク を 使 用 する 前 に こ のジ ッ ターを 修 正 する 必 要 があ り ます。 通 常 は、 復 元 さ れた ク ロ ッ ク は PL ロジックで<br />

受 信 さ れたデータ をサンプ リ ングする ために 使 用 さ れます。 図 3-20 は、 CDR アーキテクチャを 示 しています。<br />

詳 細 は、 『7 シリーズ FPGA GTX/GTH トランシーバー ユーザー ガイド』 (UG476) [ 参 照 2] および 『7 シリーズ FPGA<br />

GTP トランシーバー ユーザー ガイド』 (UG482) [ 参 照 3] の 「レシーバー」 の 章 を 参 照 してください。<br />

X-Ref Target - Figure 3-20<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

外 部 ソースからのク ロ ッ ク<br />

図 3‐20 : CDR アーキテクチャ<br />

PL には、 差 動 ク ロ ッ ク をサポー ト する FPGA のクロック 兼 用 I/O ピンからクロッ クを 供 給 できます。 シングルエン<br />

ド ク ロ ッ ク を 使 用 する 場 合 は、 ク ロ ッ ク 兼 用 入 力 ピ ン ペアの P (マスター ) 側 に 接 続 する 必 要 があ り ます。<br />

シングルエンド ク ロ ッ ク を 使 用 する か 差 動 入 力 ク ロ ッ ク を 使 用 する かは、デザ イ ンの ク ロ ッ ク 供 給 要 件 に よ って 決 ま<br />

り ます。 電 源 ノ イ ズおよび ラ イ ン カップリング ノ イ ズ を 削 減 する ので、 差 動 ク ロ ッ ク の 方 が 推 奨 さ れます。 デザ イ<br />

ンのピ ンが 制 限 さ れてい る 場 合 は、 シングルエン ド クロックを 使 用 できます。<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 89<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 3 章 : ハー ド ウ ェ ア デザイ ンの 考 慮 事 項<br />

シングルエンド クロックが 入 力 ピン ペアの P 側 に 接 続 さ れる 場 合 、 N 側 を 別 のシングルエン ド ク ロ ッ ク に 使 用 で き<br />

ませんが、 ユーザー I/O と し ては 使 用 で き ます。<br />

クロック 兼 用 ピンでは、 内 部 グローバルおよびリージョナル クロック ソースに 専 用 の 高 速 アクセスが 提 供 されます<br />

( 図 3-21)。<br />

詳 細 は、 『7 シリーズ FPGA クロッキング リソース ユーザー ガイド』 (UG472) [ 参 照 1] を 参 照 して く ださい。<br />

X-Ref Target - Figure 3-21<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

図 3‐21 : ク ロ ッ ク 兼 用 入 力<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 90<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 3 章 : ハー ド ウ ェ ア デザイ ンの 考 慮 事 項<br />

MMCM により 生 成 されたクロッ ク<br />

MMCM は、 さ ま ざ ま な 周 波 数 および 位 相 関 係 で 複 数 の ク ロ ッ ク を 生 成 する ために 使 用 さ れます。 MMCM では、 ク<br />

ロック 出 力 のスキューも 調 整 されます。 図 3-22 は、 使 用 モデルを 示 し ています。<br />

MMCM プ リ ミティブ MMCME2_ADV では、 前 述 の 機 能 のほか、 ダイナ ミ ッ ク リコンフィギュレーション ポー ト<br />

(DRP) を 使 用 し た 入 力 ク ロ ッ ク 選 択 機 能 が 提 供 さ れます。<br />

X-Ref Target - Figure 3-22<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

図 3‐22 : MMCM の 使 用 モデル<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 91<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 3 章 : ハー ド ウ ェ ア デザイ ンの 考 慮 事 項<br />

FCLK の 使 用 モデル<br />

FCLK 使 用 モデルの 例 は、デ ィ スプレ イ モニターにテス ト パターン を 表 示 する ビデオ アプ リ ケーシ ョ ンです。 図 3-23<br />

は、 こ のモデルを 示 し ています。<br />

X-Ref Target - Figure 3-23<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

この 使 用 モデルには、 次 の IP ブロックが 含 まれます。<br />

図 3‐23 : FCLK の 使 用 モデル<br />

• テス ト パターン ジェネレーター (TPG) : さまざまなテスト パターンでビデオ フレームを 生 成 します。<br />

• ビデオ タイミング コント ローラー (VTC) : TPG のタイ ミ ングを 生 成 します。<br />

• ビデオ ダイレク ト メモリ アクセス モジュール (VDMA) : DDR メモリに TPG で 生 成 されたビデオ フ レーム を 書<br />

き 込 みます。<br />

• ディスプレイ コント ローラー : HP2 ポー ト を 介 して DDR からフレームをフェッチして、モニターに 表 示 します。<br />

• オンボード クロック シンセサイザー : すべての 入 力 ビデオ モジュールとディ スプレイ コ ン ト ローラーを 駆 動 す<br />

るビデオ クロックとして 使 用 します。PS でプ ロ グ ラ ム 可 能 です。<br />

• MMCM を 使 用 して FCLK から 派 生 したクロック : こ の ク ロ ッ ク の 周 波 数 は Sys_clk よ り も 高 く 、 デ ィ ス プ レ イ<br />

コ ン ト ローラーのレ イ テンシ 要 件 のため、VDMA とディスプレイ コント ローラーの AXI マスター インターフェ<br />

イスで 使 用 されます。<br />

こ の 例 の 場 合 、 PL と MMCM ( 必 要 な Sys_clk 出 力 を 生 成 ) に 配 線 さ れた 外 部 ク ロ ッ ク を 使 用 で き ます。 PS の AXI イ<br />

ンターコネク トは、 HP/GP ポー ト と PL 間 にク ロ ッ ク ドメインを 提 供 します。<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 92<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 3 章 : ハー ド ウ ェ ア デザイ ンの 考 慮 事 項<br />

ACP およびキャ ッシュ コヒーレンシ<br />

アクセラレータ コ ヒーレンシ ポー ト (ACP) は PL マスターに 低 レイテンシのアクセスを 提 供 し、オプションでデュア<br />

ル コア ARM Cortex-A9 CPU とのキャッシュ コ ヒーレンシも 提 供 します。システムの 観 点 からは、ACP インターフェ<br />

イスの 接 続 は APU CPU と 類 似 しています。 このため、ACP と APU CPU は APU ブロック 外 部 のリソースへのアクセ<br />

スにおいて 競 合 します。 図 3-24 は、 ACP の 接 続 の 概 要 を 示 し ます。<br />

X-Ref Target - Figure 3-24<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

図 3‐24 : ACP の 接 続 図<br />

ほかの PL マスターと 比 較 した 場 合 の ACP の 主 な 利 点 は、 CPU キャッシュ コ ヒーレント メ モ リ へのア ク セ ス と 、 低<br />

レイテンシ 512KB の L2 キ ャ ッ シ ュ の 使 用 にあ り ます。 一 般 的 な Zynq-7000 AP SoC インプリ メンテーションでは、PL<br />

アクセラレータが ACP ポー ト に 接 続 されます。 これは、 GP ポー ト の 1 つを 使 用 して CPU に よ り コ ン フ ィ ギ ュ レー<br />

ションされ、 アクセラレータにより ACP を 介 し てデータ が 移 動 さ れます。 コ ヒ ーレ ン ト データ の 移 動 はハー ド ウ ェ<br />

アで 管 理 さ れ、 PL ACP マスターで 標 準 AXI 読 み 出 しおよび 書 き 込 みを 発 行 で き る よ う にな り ます。 ACP キ ャ ッ シ ュ<br />

コヒーレント アクセスの 唯 一 の 要 件 は、 これらのト ランザクションで A*CACHE および A*USER ビッ トをすべて 1<br />

に 設 定 する 必 要 があ る と い う こ と です。<br />

こ のハー ド ウ ェ ア 管 理 の コ ヒ ーレ ンシ モデルは、 PL ア ク セ ラ レータ がない 場 合 に 使 用 し ます。 DDR コント ローラー<br />

からコ ヒーレン ト メモリではないメモリに 直 接 アクセスするには、 HP または GP ポー ト を 使 用 し て く だ さ い。 こ の<br />

場 合 、 ソ フ ト ウ ェ ア 管 理 の コ ヒ ーレ ンシが 必 要 な こ と があ り 、 プ ロ セ ッ サが コ ヒ ーレ ンシを 確 実 にする ために 共 有 メ<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 93<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 3 章 : ハー ド ウ ェ ア デザイ ンの 考 慮 事 項<br />

モリを DDR に 書 き 込 み 戻 す 必 要 があ る こ と があ り ます。 ソ フ ト ウ ェ ア 管 理 の コ ヒ ーレ ンシを イ ンプ リ メ ン ト する 方<br />

法 はさ ま ざまですが、 ACP はそれをハー ド ウ ェ アで 実 行 する ので、 ソ フ ト ウ ェ ア 設 計 が 簡 単 にな り ます。<br />

ACP ではキャ ッ シュ コ ヒーレンシがサポートされるため、ACP が 接 続 された AXI マスターと CPU が L2 キ ャ ッ シ ュ<br />

リソースを 競 い 合 います (L1 キャッシュは CPU にしか 使 用 でき ません)。ACP からの AXI 読 み 出 し ま たは 書 き 込 み ト<br />

ランザクションでは、 L2 キャッシュ リ ソースを 使 用 してデータ 移 動 (アービ ト レーシ ョ ン、 タグ マッチ、 DDR コン<br />

トローラーへのキャッシュ ライン フェッチ) が 行 われます。このデータ 移 動 が CPU アクティビティ ( 上 記 のア ク セ ラ<br />

レータの 例 など) と 連 動 する 場 合 、 メ モ リ リ ソースの 共 有 は 大 規 模 シ ス テム アプ リ ケーシ ョ ンで 有 益 です。 こ のデー<br />

タ 移 動 が 関 連 のない CPU タ ス ク と 並 列 で 処 理 される 場 合 は、 次 のセ ク シ ョ ンで 説 明 する よ う に、 CPU と ACP マ ス<br />

ター と の 競 合 を 軽 減 する 方 法 がほかに も あ り ます。<br />

ACP 設 計 手 法<br />

次 の 設 計 手 法 は、 ACP を 効 率 的 に 使 用 するベス ト プラクティスであり、 Zynq-7000 AP SoC ACP の 複 数 のカ ス タ マー<br />

使 用 例 と パフ ォーマン ス 解 析 に 基 づいています。<br />

ACP マス タ ーの 設 計 手 法<br />

• キャッシュ スラッシングの 回 避 : 512KB の L2 キャッシュは、 2 つの ARM プロセッサと ACP 間 で 共 有 さ れ る リ<br />

ソースです。 大 容 量 のデータ にア ク セスする ACP の 機 能 によ り 、 ソ フ ト ウ ェ ア パフ ォーマン スが 下 が る 可 能 性<br />

があ り ます。 キ ャ ッ シ ュ を ロ ッ ク し て 分 割 する と 、 共 有 データ のキ ャ ッ シ ュ ヒット 率 が 高 くなります。たとえ<br />

ば、 ACP ポー ト へのビデオ 形 式 のア ク セスにはキ ャ ッ シ ュ 局 所 性 がほ と んど ないので、 キ ャ ッ シ ュ 管 理 がない<br />

と、 メモリのシステム パフ ォーマン スが 低 下 し ます。<br />

たとえば、パフォーマンス テス ト ケースの 1 つでは、キ ャ ッ シ ュ 局 所 性 に 優 れた ACP ア ク セ ス の レ イ テ ン シが、<br />

キ ャ ッ シ ュ 局 所 性 のない ACP アクセス パターン と 比 較 する と 、 54% 短 くなります。 結 果 は、 アプリケーション<br />

によって 異 なり ます。<br />

• AXI トランザクション パラ メーターを ACP に 一 致 : ACP は、 AXI3 準 拠 の 64 ビッ ト インターフェイスで、ACP<br />

に 接 続 された AXI3 または AXI4 準 拠 のマス ター 用 ト ラ ンザ ク シ ョ ン を 最 大 バース ト 長 16 ビー ト の 64 ビ ッ ト 幅<br />

の ト ラ ンザ ク シ ョ ンに 変 換 し ます。 すべての 変 換 は、 プ ロ ト コル コンバーターや AXI インターコネク トなどの<br />

ソフト IP を 使 用 して 実 行 されます。 64 ビット 以 外 のトランザクションおよびビート カウントの 多 いト ランザク<br />

シ ョ ンが 変 換 さ れる と 、 余 分 なデータ 転 送 サ イ ク ルが 発 生 する 可 能 性 があ り ます。 その 他 の ACP アクセス 最 適<br />

化 および 制 約 については、ARM Infocenter Accelerator Coherency Port ウェブ ページ [ 参 照 73] を 参 照 して く ださい。<br />

• ブロッキングと ノンブロッキングの 選 択 : ACP ポー ト で 順 序 が 間 違 って 完 了 する ト ラ ンザ ク シ ョ ンには、 注 意 が<br />

必 要 です。 特 定 の 状 況 下 では、axresp チャネルが 後 続 ト ランザクシ ョ ン 間 のバリ アと して 使 用 されていない 限 り、<br />

書 き 込 みま たは 読 み 出 し (もしくは 両 方 共 ) が 間 違 った 順 序 で 完 了 する こ と があ り ます。 応 答 チャ ネルを 無 視 し<br />

て、 ト ラ ンザ ク シ ョ ンがデータ が 転 送 さ れた 直 後 に 完 了 する よ う に し てお く のが 理 想 的 です。 ただ し、 同 じ ア ド<br />

レ ス 範 囲 に 複 数 の 読 み 出 しおよび 書 き 込 み 命 令 を 発 行 する 場 合 は、 注 意 が 必 要 です。 DMA のバル ク 転 送 の 場 合 、<br />

こ れは 通 常 問 題 と な り ませんが、 複 数 の 未 処 理 読 み 出 しおよび 書 き 込 み ト ラ ンザ ク シ ョ ンが 狭 いア ド レ ス 範 囲 に<br />

対 し て 発 行 さ れる と 、 問 題 にな る こ と があ り ます。<br />

使 用 例 では、 同 じ ア ド レ スへの read-modify-write が 複 数 回 実 行 さ れる 間 に ACP の 応 答 チャ ネルが 無 視 さ れる と 、<br />

read-after-write の 順 序 が 間 違 った も のにな り 、 競 合 が 発 生 する こ と があ り ます。<br />

• コヒーレント アクセス 以 外 に 対 する ACP の 使 用 : PL からのキャッシュ コ ヒ ーレ ン シのない ト ラ フ ィ ッ ク は、<br />

HP または GP ポー ト を 介 し て 配 線 する こ と をお 勧 め し ます。 ただ し、 必 要 であれば、 ACP ア ク セ ス の ビヘ イ ビ<br />

アーを 修 正 する よ う に AXI の 4 ビッ ト キャッシュ フ ィ ール ド を 設 定 で き ます。 詳 細 は、 『Cortex-A9 Technical<br />

Reference Manual』 [ 参 照 75] のセクシ ョ ン 2.4 「Accelerator Coherency Port」 を 参 照 し て く だ さ い。<br />

ACP 設 計 手 法 のための PS コンフィギュレーション<br />

• L2 キ ャ ッ シ ュ の ク ロ ッ ク 供 給 およびプ リ フ ェ ッ チ : L2 キャッシュは CPU クロック レー ト で ク ロ ッ ク 供 給 さ れ、<br />

キ ャ ッ シ ュ 局 所 性 に 優 れてお り 、 ACP ア ク セスのほ と んどに 使 用 さ れています。 PL のクロック レー ト を 上 げて<br />

アクセス レ イ テンシを 削 減 する こ と はで き ますが、 こ の 場 合 は L2 キ ャ ッ シ ュ の ク ロ ッ ク をで き る だけ 高 速 にす<br />

る 必 要 もあ り ます。 L2 プリフェッチ 設 定 を 使 用 すると、 プリフェッチをオン/オフにできます。 その 他 の 設 定 を<br />

使 用 する と 、 ミ ス ご と にフ ェ ッ チ さ れる キ ャ ッ シ ュ ラ イ ン 数 を 制 御 で き ます。 た と えば、 キ ャ ッ シ ュ 局 所 性 のほ<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 94<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 3 章 : ハー ド ウ ェ ア デザイ ンの 考 慮 事 項<br />

とんどない ACP アクセスの 場 合 、 L2 から DDR コン ト ローラーへのフェッチが 誤 って 推 測 されるこ とがあるた<br />

め、 プ リ フ ェ ッ チの 利 点 がないこ と があ り ます。<br />

ACP アクセスのための PS 設 定 と L2 キ ャ ッ シ ュ 設 定 の 変 更 に 関 する 詳 細 は、『Zynq-7000 All Programmable SoC テ<br />

クニカル リファレンス マニュアル』 (UG585) [ 参 照 4] を 参 照 して く ださい。<br />

CPU 手 法 における ソ フ ト ウ ェ ア との 競 合<br />

• CPU メモリ アクセス パターンの 考 慮 : プ ロ セ ッ サ と 競 合 する キ ャ ッ シ ュ の 影 響 は、 プ ロ セ ッ サの メ モ リ ア ク セ<br />

ス パターンからもわかり ます。プロセッサの L1 キ ャ ッ シ ュ が 完 全 に 空 の 状 態 で 実 行 さ れる ソ フ ト ウ ェ アは、ACP<br />

アクセスの 影 響 を 受 けませんが、 メモリ ス トライド アプ リ ケーシ ョ ンの よ う なキ ャ ッ シ ュ 局 所 性 の 低 い ソ フ ト<br />

ウ ェ アには 影 響 する 可 能 性 があ り ます。<br />

たとえば、 ARM Cortex-A9 で 実 行 さ れる メ モ リ 集 約 型 の ソ フ ト ウ ェ ア アプ リ ケーシ ョ ンは、 L2 キ ャ ッ シ ュ か ら<br />

の 1 つの 4KB メモリ ページにア ク セスする 大 量 の ACP トラフィックの 影 響 は 受 けません。<br />

また、 その 他 の 例 と し ては、 Dhrystone または Coremark のよ うな L1 キャッシュ バウンド ベンチマーク を CPU<br />

で 実 行 する 場 合 も、L2 キャッシュ 内 に 保 持 される 512KB バ ッ フ ァーにア ク セスする 大 量 の ACP ト ラ フ ィ ッ ク の<br />

影 響 はあ り ません。<br />

• 高 度 なキ ャ ッ シ ュ 管 理 : キ ャ ッ シ ュ の ロ ッ ク および 分 割 などの 手 法 を 使 用 する と 、 複 数 の CPU および ACP マ ス<br />

ター 間 のキ ャ ッ シ ュ の 共 有 と 隔 離 を 実 行 しやす く な り ます。 こ れ ら の 手 法 を 実 行 する には、 リ ン カー スクリプト<br />

を 修 正 し、アプ リ ケーシ ョ ン メ モ リ のレ イ ア ウ ト に 対 する ARM メ モ リ 記 述 子 を 変 更 する 必 要 があ る こ と があ り<br />

ます。 キ ャ ッ シ ュ の ロ ッ ク 方 法 と パフ ォーマン スへの 影 響 の 可 能 性 については、 ザ イ リ ン ク ス Wiki ページ<br />

「Zynq-7000 AP SoC ブー ト - L2 キ ャ ッ シ ュ か ら の ロ ッ ク および 実 行 のテ ク ニカル ヒント」 [ 参 照 60] を 参 照 し て<br />

ください。<br />

• 競 合 の 監 視 : デザ イ ン 目 標 が 満 た さ れない 場 合 は、 競 合 を 監 視 し て 測 定 する こ と が 重 要 にな り ます。 L2 キャッ<br />

シュ、CPU、および ACP 自 体 を 監 視 し て ACP パフ ォーマン ス を 調 べる こ と がで き ます。 L2 キ ャ ッ シ ュ は、 イ ベ<br />

ント カウンター、 プロセッサ キャッシュ アクセス (ARM Performance Monitoring Units (PMU) を 使 用 )、 お よ び<br />

ACP (ザイ リ ンクスの AXI パフォーマンス モニターを 使 用 ) を 使 用 して 監 視 できます。 3 つの 監 視 手 法 の 詳 細 は、<br />

11 ページの 「パフ ォーマン ス」 を 参 照 して く ださい。<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 95<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 3 章 : ハー ド ウ ェ ア デザイ ンの 考 慮 事 項<br />

PL の HP ポー ト アクセス<br />

HP (ハイ パフォーマンス) ポー ト を 使 用 する と DDR コ ン ト ローラーおよびオンチ ッ プ メモリ (OCM) に PL から 直 接<br />

アクセスできます。 HP ポー ト の 機 能 の 詳 細 な 説 明 および 可 能 なパフ ォーマン ス 最 適 化 については、 『Zynq-7000 All<br />

Programmable SoC テクニカル リファレンス マニュアル』 (UG585) を 参 照 して く ださい。このセクシ ョ ンでは、HP ポー<br />

トを 使 用 するカスタマー デザ イ ンに イ ンプ リ メ ン ト さ れた 標 準 的 なデザ イ ン ド リ ブンの 最 適 化 について 説 明 し ま<br />

す。<br />

HP ポー ト は 通 常 、 OCM または DDR コ ン ト ローラーに 接 続 さ れた DRAM (こ ち ら の 方 が 一 般 的 ) のいずれかへの PL<br />

からの 高 スループッ ト アクセスを 必 要 とするデザインで 使 用 されます。 図 3-25 は、 互 いに 接 続 された HP ポー ト と<br />

PS アーキテクチャ 内 のさ まざまなポイン ト でのその 他 の PS マ ス ターを 示 し てい ます。 シ ス テ ム 競 合 のあ る 複 数 の<br />

HP インターフェイスで 高 スループッ ト デザイ ンを 達 成 する 方 法 については、 次 で 説 明 し ます。<br />

X-Ref Target - Figure 3-25<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

図 3‐25 : HP ポー ト の 接 続<br />

HP マス タ ーの 設 計 手 法<br />

• HP ポー ト の 追 加 順 序 : HP データ パスがあるため、HP ポー ト を 追 加 し てデータ パスの 競 合 を 最 小 限 に 抑 え る 必<br />

要 があ り ます。 通 常 、 HP ポー ト は HP0、 HP2、 HP1、 HP3 の 順 序 で 追 加 し ます。 こ の 順 序 を 使 用 する こ と で、 HP<br />

マスターが 2 つの 専 用 DDR コント ローラー ポー ト の 機 能 を 十 分 に 活 かすこ と ができ ます。<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 96<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 3 章 : ハー ド ウ ェ ア デザイ ンの 考 慮 事 項<br />

たとえば、2 つの HP ポー ト を 必 要 と するデザ イ ンの 場 合 、 ア ク セ スの 多 い 読 み 出 し ト ラ フ ィ ッ ク が HP0 と HP1<br />

ではな く HP0 と HP2 を 介 して 配 線 されていれば、 合 計 スループッ ト が 15% 改 善 さ れます。 スループ ッ ト ト ラ<br />

フ ィ ッ ク が 高 ければ 高 いほど、 パフ ォーマン スの 違 い も 増 加 し ます。<br />

必 要 な HP マスターが 4 つを 超 え る 場 合 、 PL の AXI インターコネク トを 使 用 して、4 つの HP ポー ト にそのマ ス<br />

ターを 多 重 化 で き ます。 マ ス ターを HP ポー ト に 割 り 当 てる 場 合 、 HP ポー ト のスループ ッ ト を 最 大 限 にする の<br />

が 目 標 にな り ます。 た と えば、 ト ラ フ ィ ッ ク の 多 いマス ターを 別 々の HP ポー ト に 割 り 当 てて、 ト ラ フ ィ ッ クの<br />

少 ないマス ターのペアにし ます。 1 つの HP ポー ト は、 DDRC の 飽 和 点 よ り も 低 いスループ ッ ト で 飽 和 する 可 能<br />

性 があ る こ と に 注 意 し て く だ さい。<br />

• AXI ア ド レ ス 最 適 化 : 可 能 であれば、ア ド レ ス 最 適 化 および 読 み 出 し/ 書 き 込 みの 混 合 を 最 小 限 に 抑 え る こ と 含 め<br />

た 標 準 DRAM ア ク セスの 最 適 化 を 考 慮 する 必 要 があ り ます。 ビデオ アプ リ ケーシ ョ ンの DRAM の 行 /バンク/ 列<br />

のレ イ ア ウ ト を 一 致 させる ための 非 線 形 ア ド レ スのガ イ ダン スは、 『Zynq-7000 All Programmable SoC を 使 用 した<br />

高 性 能 ビデオ システムの 設 計 』 (XAPP792) [ 参 照 34] を 参 照 して く ださい。 また、 読 み 出 し/ 書 き 込 みの 混 合 はで<br />

き る だけ 最 小 限 に 抑 え る 必 要 があ り ますが、デザ イ ン ビヘイビアーによっては 常 に 可 能 なわけではあ り ません。<br />

た と えば、 読 み 出 し 専 用 HP0 および HP2 ポー ト を 使 用 し たシ ス テムの 場 合 、HP0 の 読 み 出 し スループ ッ ト は HP2<br />

が 書 き 込 み 専 用 に 変 更 さ れる と 、 0.12% 低 下 し ます。 こ のパフ ォーマン ス 劣 化 範 囲 は、 ト ラ フ ィ ッ ク ア ド レ ス 指<br />

定 と 生 成 さ れた ト ラ ンザ ク シ ョ ン レート によって 異 な り ます。<br />

• PL クロック レート の 増 加 : アプ リ ケーシ ョ ン パフ ォーマン ス を 最 大 限 にする には、プ ロ グ ラ マブル ク ロ ッ ク の<br />

ス ピー ド を 増 加 する 方 法 が よ く 使 用 さ れます。 ただ し、 PL と DDR コ ン ト ローラー 間 のデータ 移 動 にパフ ォーマ<br />

ンス ボトルネックがある 場 合 は、PL クロック レート を 増 加 しても 効 果 はあ り ません。 図 3-25 のデータ パ ス に<br />

示 すよ う に、 PL マスターによ り PL クロック ド メ イ ンの ト ラ フ ィ ッ ク が 開 始 されますが、 ほ と んどのデータ パ<br />

スが PS クロック ドメインに 含 まれます。また、DDRC は PL マス ターの ト ラ フ ィ ッ ク が 増 加 する こ と で 最 終 的<br />

には 飽 和 する ので、 最 大 の DDRC バン ド 幅 について も 考 慮 する 必 要 があ り ます。<br />

たとえば、 大 量 の 読 み 出 しおよび 書 き 込 みト ラフ ィ ッ クが 2 つの HP ポー ト で 533MHz の DDR コ ン ト ロ ー ラ ー<br />

に 駆 動 さ れる 場 合 、PL クロックの 速 度 を 50 MHz から 100 MHz に 増 加 する と 、HP スループ ッ ト の 合 計 が 92% 増<br />

加 し、 100MHz から 200MHz に 増 加 する と 、 スループ ッ ト が 13% 増 加 し ます。 100MHz から 200MHz に 増 加 す る<br />

例 では、 ト ラ フ ィ ッ クは PL か ら 駆 動 さ れる こ と が 多 いので、 標 準 DDR コ ン ト ローラーが 飽 和 し ます。<br />

HP 設 計 手 法 のための PS コンフィギュレーション<br />

HP ポー ト を 使 用 し て 設 計 する 際 は、 DDR コント ローラーと DRAM デスティネーシ ョ ンとの 高 スループッ ト の ト ラ<br />

フィックの 競 合 は 無 視 できません。HP ポー ト には DDR コ ン ト ローラー 用 の 専 用 ポー ト が 2 つ 含 まれますが、 こ れ ら<br />

は L2 キャッシュと DDR コントローラーのセントラル インターコネク トでアービトレーションされます。L2 キ ャ ッ<br />

シ ュ に リ ク エス ト さ れたデータ が 含 まれる 場 合 、 L2 によ り CPU と ACP リクエストが 処 理 されるので、512KB の L2<br />

キャッシュ ポー ト か ら の 競 合 を 最 小 限 にで き ます。 ただ し、 CPU ま たはキ ャ ッ シ ュ 局 所 性 のほ と んどない ACP アク<br />

セス メ モ リ の 場 合 、 こ れら のキ ャ ッ シ ュ には DDRC からアクセスされ、HP パフ ォーマン スが 損 なわれる 可 能 性 があ<br />

り ます。 ま た、 DDRC でのセン ト ラル イ ン ターコネ ク ト の 競 合 はアプ リ ケーシ ョ ンに 依 存 し、 USB またはギガビッ<br />

ト イーサネッ ト マ ス ターか ら の ト ラ フ ィ ッ ク が 大 量 にな る 可 能 性 があ り ます。<br />

L2 とセント ラル インターコネク トの DDRC へのア ク セス を 制 限 する には、2 つの 高 度 なテ ク ニ ッ ク を 使 用 で き ます。<br />

こ の 場 合 、 競 合 の 多 い イ ンプ リ メ ンテーシ ョ ンで HP スループ ッ ト を 改 善 する のが 目 標 です。 デフ ォル ト 設 定 を 試 し<br />

て HP パフ ォーマン ス 目 標 が 満 た さ れない 場 合 は、 こ れ ら のテ ク ニ ッ ク を 使 用 し て く だ さ い。 次 のいずれかを 変 更 で<br />

きます。<br />

• DDRC プライオリティ 設 定<br />

• PS 内 の QoS-301 設 定<br />

こ のテ ク ニ ッ ク を 使 用 する と 、 HP トラフィックが DDR よ り も 優 先 さ れますが、 パフ ォーマン ス 全 体 が 必 ずし も 増 加<br />

するわけではあ り ません。 HP ポー ト には 利 点 があ り ますが、 ほかの PS マスターは 遅 くなり ます。<br />

• DDR コント ローラーのプライオリティ 設 定 : こ れ ら の 設 定 では、 DDR コント ローラー ポー ト と DDR PHY で 使<br />

用 さ れる ト ラ ンザ ク シ ョ ンの 順 番 が 制 御 さ れます。 優 先 度 の 高 い 読 み 出 し 機 能 および go2critical カウンター 値 は、<br />

DDR コ ン ト ローラーのプラ イオ リ テ ィ 設 定 で 制 御 される 最 も 重 要 な 機 能 です。 各 DDR コント ローラーのポート<br />

で 優 先 度 の 高 い 読 み 出 し オプシ ョ ン を 使 用 する と 、 その 他 の DDR コントローラーのポートよりもポートの 読 み<br />

出 し 優 先 度 が 上 が り ます。 こ の 優 先 度 の 上 昇 は、 ロード の 多 いシステムの HP スループッ トに 影 響 します (たと<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 97<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 3 章 : ハー ド ウ ェ ア デザイ ンの 考 慮 事 項<br />

えば、 HP ポー ト すべてが 高 スループッ ト ト ラ フ ィ ッ ク を 駆 動 する 場 合 な ど)。 これらの 高 度 な 機 能 は、DDR コ<br />

ン ト ローラーが 論 理 的 な 最 大 スループ ッ ト で 飽 和 する 場 合 など、Zynq-7000 AP SoC がそのパフォーマンス 制 限 に<br />

到 達 する 場 合 に 便 利 です。 詳 細 は、 『Zynq-7000 All Programmable SoC テクニカル リファレンス マ ニ ュ ア ル』<br />

(UG585) [ 参 照 4] ( リンク) を 参 照 して ください。<br />

• QoS-301 設 定 : L2 キャッシュから DDR コ ン ト ローラーへの AXI データ パスには QoS-301 設 定 が 含 まれ、 現 在<br />

の と こ ろアプ リ ケーシ ョ ンか ら のレ ジ ス タへの 直 接 書 き 込 みを 使 用 し てのみア ク セス で き ます。 こ の 設 定 は、<br />

Vivado GUI か ら は 変 更 で き ません。 こ の 機 能 を 使 用 する と 、 そのパスの ト ラ ンザ ク シ ョ ン スロッ ト リングが 可<br />

能 になるので、 DDR ト ラ フ ィ ッ ク が 大 量 な 場 合 の HP ポー ト のパフ ォーマン スが 改 善 さ れます。 こ の 機 能 は、 L2<br />

キ ャ ッ シ ュ 局 所 性 に 優 れていない メ モ リ 集 約 型 ソ フ ト ウ ェ アが 実 行 さ れる 場 合 に 使 用 する のが 最 適 です。 詳 細<br />

は、 『Zynq-7000 All Programmable SoC テクニカル リファレンス マニュアル』 (UG585) [ 参 照 4] ( リンク) を 参 照 し<br />

てください。<br />

DDR コ ン ト ローラー 手 法 の 競 合 緩 和<br />

ACP 競 合 ソ ース と 同 様 、 HP パフォーマンスは 特 に DDR コント ローラーでのシステム ロー ド の 影 響 を 受 け ます。 競<br />

合 の 発 生 する 可 能 性 の 最 も 高 い ソースは、CPU または ACP ア ク セ ス を 処 理 する ためのキ ャ ッ シ ュ ライン リ ク エ ス ト<br />

を 作 成 する L2 キャッシュです。 CPU と ACP の 競 合 は、 512KB の L2 キャッシュの 容 量 を 超 えるメモリ アクセス パ<br />

ターンによって 異 なり ます。 セン ト ラル スイッチからのイーサネッ トおよび USB トラフィックでは、DDR コ ン ト<br />

ローラーへの 大 量 の ト ラ フ ィ ッ ク も 駆 動 で き ます。<br />

• 競 合 の 監 視 : デザ イ ン 目 標 が 満 た さ れない 場 合 は、 競 合 を 監 視 し て 測 定 する こ と が 重 要 にな り ます。HP パフォー<br />

マンスの 場 合 、 L2 キャッシュ、 イーサネッ ト コ ン ト ロー ラ ー、 および HP ポー ト を 監 視 で き ます。 コ ア 内 で イ<br />

ベン ト カウンターを 使 用 すると L2 キャッシュおよびイーサネッ ト コント ローラーを 監 視 できるほか、 PL 内 に<br />

インプリ メント されたザイ リンクスの AXI パフォーマンス モニ ターを 使 用 する と HP ポー ト も 監 視 で き ます。<br />

• 問 題 と な る 競 合 の 量 : DDR へのシステム トラフィックの 合 計 が DDR コ ン ト ローラーの 論 理 的 な 最 大 値 に 近 づ<br />

いた 場 合 は、 ほ と んどの 競 合 緩 和 テ ク ニ ッ ク でパフ ォーマン ス を 明 ら かに 改 善 する こ と がで き ます。 た と えば、<br />

ZC702 ボード 上 で 533MHz で 実 行 される 32 ビット DDR コ ン ト ローラーでは、 論 理 上 は メ モ リ スループ ッ ト の<br />

4.3GB/s を 維 持 できます。 DDR コントローラーは、 公 平 にアービトレーションされて、 複 数 の 高 スループット<br />

ソースを 維 持 するよ うに 設 計 されています。 DDR コ ン ト ローラーの 使 用 率 が 低 い 場 合 、 競 合 の 影 響 は 見 られま<br />

せん。<br />

• 接 続 さ れた PL メモリ インターフェイス ジェネレーター (MIG) の 使 用 : ザイ リ ンクスからはオフチップ DDR へ<br />

の PL メモリ インターフェイスが 提 供 されており、 HP から DDR コント ローラーへのデータ パ ス を 補 足 ま たは<br />

置 換 で き ます。 こ の 追 加 さ れた メ モ リ は PS メモリ マップから 隔 離 したり、 GP ポー ト を 使 用 し て ア ク セ ス で き<br />

ます。 詳 細 は、 ザイ リ ンク ス アンサー 58387 [ 参 照 71] を 参 照 して く ださい。<br />

MIG は 通 常 、 イーサネ ッ ト およびビデオ フレームなどの 1 つのマスタ ーか ら の 連 続 し た ア ド レ ス に 大 き なバル<br />

ク データ を 転 送 する ための、 パフ ォーマン スに 優 れた メ モ リ オプシ ョ ンです。 またこれは、 この PL DDR への<br />

CPU のダイ レ ク ト アクセスが 32 ビッ トの GP ポー ト を 介 してお り 、MIG パフ ォ ーマ ン ス が 制 限 さ れてい る ので、<br />

PS ア ク セスか ら 隔 離 さ れたデータ をバ ッ フ ァーする に も 最 適 なオプシ ョ ンです。 こ れ 以 外 の 場 合 、 PS DDR コン<br />

ト ローラーを 使 用 する と 、 HP ワーク ロードに 優 れたメモ リ パフ ォーマン スが 提 供 さ れます。<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 98<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 3 章 : ハー ド ウ ェ ア デザイ ンの 考 慮 事 項<br />

システム 管 理 のハー ド ウ ェ ア アシスタンス<br />

このセクショ ンでは、 Zynq-7000 AP SoC PS でシ ス テム 管 理 を 可 能 にするハー ド ウ ェ ア コ ンポーネン ト について 説 明<br />

し ます。 シ ス テム 管 理 には、 ユーザー 指 定 入 力 に 基 づいたシ ス テム レベルのパ ラ メ ーターの 制 御 が 含 まれます。 チ ッ<br />

プ レベルの 管 理 には、 ダ イ 温 度 の 制 御 、 エ ラーの 管 理 、 シ ス テム 休 止 中 の 低 消 費 電 力 モー ド の イ ンプ リ メ ンテーシ ョ<br />

ン、 ペ リ フェ ラルへのセキュア アクセスおよび 非 セキュア アクセスの 管 理 が 含 まれます。<br />

ソフトウェア コンポーネントは、 システム 管 理 を 実 行 する 上 で 重 要 な 役 割 があります。 このセクションでは、<br />

Zynq-7000 AP SoC のシステム 管 理 のハード ウ ェア アシ ス タ ン ス 機 能 について 説 明 し ます。<br />

ザイ リンクス Analog‐to‐Digital コンバーター<br />

ザイ リ ンクス Analog-to-Digital コンバーター (XADC) は、 PL に 含 まれ、 温 度 および 電 源 センサーを 監 視 しやす く する<br />

柔 軟 なアナロ グ インターフェイスです。 XADC には、 JTAG、 DRP および PS-XADC の 3 つのインターフェイスが 含<br />

まれ、 これらを 使 用 してシステム アプ リ ケーシ ョ ンで 温 度 および 電 圧 ス テータ ス を 監 視 し て、 適 切 なア ク シ ョ ン を 実<br />

行 でき る よ う になっています。 JTAG および DAP インターフェイスは、7 シ リーズ FPGA すべてに 含 まれますが、<br />

PS-XADC インターフェイスは Zynq-7000 AP SoC にしか 含 まれません。<br />

図 3-26 は、XADC による AXI XADC DRP インターフェイスと PL-JTAG または PS-XADC インターフェイス 間 のアー<br />

ビトレーションを 示 しています。<br />

X-Ref Target - Figure 3-26<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

TrustZone セキュ リテ ィ<br />

図 3‐26 : XADC のアービ ト レーシ ョ ン<br />

ARM の TrustZone テ ク ノ ロ ジでは、 ハー ド ウ ェ ア、 ソ フ ト ウ ェ ア、 および メ モ リ を 含 め、 複 数 レベルでのシ ス テム 全<br />

体 のセキ ュ リ テ ィ がサポー ト されます。 Zynq-7000 AP SoC PS アーキテクチャでは、 スーパーバイザー、 システム、<br />

ユーザー モード など 複 数 の 動 作 モード がサポー ト されてお り 、 アプ リ ケーシ ョ ン レベルで 異 な る 保 護 レベルが 提 供<br />

されています。<br />

セキュア エリアと 通 常 ( 非 セキ ュア) エリアの 2 つのエ リ アは、 モニター モー ド と 呼 ばれる プ ロ セ ッ サ モードを 使 用<br />

して 切 り 替 えられます ( 図 3-27)。 TrustZone テクノロジは、APU、 L1 キャッシュ コント ローラー、 メモリ マネージ メ<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 99<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 3 章 : ハー ド ウ ェ ア デザイ ンの 考 慮 事 項<br />

ント ユニッ ト、 SCU、 SLCR、 ト リプル タイマー カ ウ ン ター、 ウ ォ ッ チ ド ッ グ タイマー、I2C、 GPIO、 SPI、 CAN、<br />

UART、 QSPI、 NOR、 DDR メモリ コント ローラー、 L2 キャッシュ コント ローラー、 AXI イ ン タ ー コ ネ ク ト 、 オ ン<br />

チップ メモリ、 DMAC、 ギガビット イーサネッ ト コント ローラー、 SDIO コ ン ト ローラー、 および USB コ ン ト ロ ー<br />

ラーなど、 多 くの PS コンポーネントにインプリ メント されます。<br />

X-Ref Target - Figure 3-27<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

DDR メモリ コントローラー<br />

図 3‐27 : セキュア エリアと 非 セキュア エリアの 切 り 替 え<br />

64MB セグメ ン ト の DDR メモリはコンフィギュレーションでき、 各 セグメントは 制 御 レジスタの TZ_DDR_RAM<br />

(0xF8000430) を 使 用 してセキュアまたは 非 セキュアにコンフ ィ ギュレーシ ョ ンできます。<br />

• ビッ ト 値 0 は、 関 連 する メ モ リ セグ メ ン ト のセキュア メモリ 領 域 を 示 します。<br />

• ビッ ト 値 1 は、 関 連 する メ モ リ セグ メ ン ト の 非 セキュア メモリ 領 域 を 示 します。<br />

DDR メモリのセキュア セグ メ ン トへの 非 セキュア ア ク セスがあ る 場 合 、DECERR 応 答 が ト ラ ンザ ク シ ョ ンの イ ニシ<br />

エーターに 戻 り ます。 ト ラ ンザク シ ョ ンがマス ク されて DDR メ モ リ への 書 き 込 みがない 状 態 にな る と 、 読 み 出 し ト<br />

ラ ンザ ク シ ョ ンがすべて 0 に 戻 り ます。<br />

L2 キャッシュ コントローラー<br />

L2 キャッシュ コント ローラーでは、キャッシュされたデータへ NS ビ ッ ト を 追 加 する こ と で TrustZone テクノロジが<br />

サポー ト されます。 この 方 法 では、キャ ッシュ コン ト ローラーがセキュアおよび 非 セキュアを 2 つの 別 々の メ モ リ 空<br />

間 にあ る も の と し て 処 理 さ れます。 読 み 出 し 転 送 では、 キ ャ ッ シ ュ コ ン ト ローラーは 外 部 メ モ リ に ラ イ ン フィル コ<br />

マンドを 送 信 し、 外 部 メモリからプロセッサにセキュ リ ティ エラーを 伝 搬 します。 エラーがある 場 合 は L2 キャッ<br />

シュのラインは 割 り 当 てられません。<br />

DDR エラー リカバリ<br />

誤 り 訂 正 符 号 (ECC) メカニズムは、16 ビッ ト DDR でサポー ト されます。 これによ り 破 損 した DDR データ が 復 元 で<br />

き ます。 各 16 ビッ トごとに ECC の 10 ビットでは、 1 ビッ ト エ ラーの 訂 正 と 2 ビッ ト エラーの 検 出 がサポート され<br />

ます。 ECC が 書 き 込 み 用 に イ ネーブルにな る と 、 ECC コードが 計 算 されてデータ と 一 緒 に DDR に 書 き 込 まれます。<br />

ECC が 読 み 出 さ れる と 、 DDR コント ローラーでは 格 納 された ECC コードに 対 してデータが 確 認 されます。ECC をイ<br />

ネーブルにしないで DDR メモリに 書 き 込 んでから、 ECC を イ ネーブルに し て 読 み 出 す と 、 ECC エラーになります。<br />

エ ラーが 訂 正 可 能 な 場 合 は、 コ ン ト ローラーがデータ を 訂 正 し て、 割 り 込 みま たは AXI 応 答 を 生 成 せずにそれを 送 信<br />

し ます。エ ラーが 訂 正 で き ない 場 合 は、コ ン ト ローラーが 破 損 し たデータ と 一 緒 に AXI SLVERR 応 答 を AXI マスター<br />

に 送 信 し ます。 PS の AXI マスターは L2 または DMA 割 り 込 み、 CPU プリフェッチまたはデータ 例 外 も 生 成 します。<br />

こ の 場 合 、 同 じ AXI SLVERR 応 答 が PS AXI マスターに 送 信 されます。<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 100<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 3 章 : ハー ド ウ ェ ア デザイ ンの 考 慮 事 項<br />

低 消 費 電 力<br />

Zynq-7000 AP SoC の 消 費 電 力 は、 PL の 電 源 オフ、 プロセ ッ サのス タ ン ド バイ モード、 PS サブシ ス テ ム の ク ロ ッ ク<br />

ゲーテ ィ ング、 PLL コンフィギュレーション、 I/O 電 圧 制 御 など、 さ ま ざ ま な 方 法 で 最 適 化 で き ます。<br />

PL が 使 用 されない 場 合 は、 PL 全 体 の 電 源 をオフにで き ます。 ただ し、 PL の 電 源 をオフにする と コ ンフ ィ ギュ レー<br />

シ ョ ンの 内 容 が 失 われる ため、 次 の 電 源 投 入 時 に も う 一 度 コ ン フ ィ ギ ュ レーシ ョ ン を 実 行 する 必 要 があ り ます。 PL<br />

の 電 源 をオフにする タ イ ミ ン グ と 、 必 要 な と き に 再 び PL をコンフィギュレーションし 直 すタイ ミングは、 システム<br />

ソフトウェアで 決 定 されます。<br />

クロック ゲーテ ィ ング<br />

PS には、 複 数 のク ロ ッ ク ド メ イ ンが 含 まれ、 それぞれの ク ロ ッ ク に ク ロ ッ ク を 停 止 する ゲーテ ィ ング 制 御 が 含 まれ<br />

ます。 システム ソフトウェアでは、 クロック ドメインが 使 用 されていない 場 合 に、 特 定 のクロックのゲーティング<br />

を イ ネーブルにで き ます。 こ れに よ り 、 ダ イナ ミ ッ ク 消 費 電 力 が 削 減 さ れます。<br />

アドレス 0xF8000000 で 開 始 されるシステム レベルの 制 御 レジスタ (SLCR) を 使 用 す る と 、 ク ロ ッ ク をデ ィ ス エーブ<br />

ルにでき ます。<br />

たとえば、SPI コ ン ト ローラーが 使 用 さ れていない 場 合 、 SPI_CLK_CTRL (0xF8000158) レジスタに 適 切 な 値 を 書 き 込<br />

むこ とで、 コン ト ローラーの 基 準 クロッ クをディ スエーブルにできます。<br />

図 3-28 は、 SPI 基 準 ク ロ ッ ク の ク ロ ッ ク ゲーテ ィ ングがどの よ う に 動 作 する かを 示 し ています。<br />

X-Ref Target - Figure 3-28<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

図 3‐28 : クロック ゲーテ ィ ング<br />

ハー ド ウ ェ ア リ コ ン フ ィ ギュ レーシ ョ ンの 管 理<br />

パーシ ャル リコンフィギュレーションとは、FPGA チップの 一 部 をリ コンフィギュレーションする 機 能 のことで、<br />

チッ プ 上 の 残 り のロ ジ ッ ク に 影 響 を 与 え る こ と な く 別 のロ ジ ッ ク ファンクションをインプリ メントできます。このテ<br />

ク ノ ロ ジを 使 用 する と 、 FPGA に 時 分 割 方 式 で 別 のフ ァ ン ク シ ョ ン ブロッ クをインプリ メン トできます。<br />

ヒント : パーシ ャル リコンフィギュレーションに 関 するその 他 の 詳 細 へのリンクは、Documentation Navigator の<br />

[Partial Reconfiguration] デザイ ン ハブに 含 まれます。 詳 細 は、 181 ページの 「 関 連 するデザ イ ン ハブ」 を 参 照 して く<br />

ださい。<br />

FPGA のパーシャル リ コ ン フ ィ ギ ュ レーシ ョ ンは、 次 の コ ン ス ト ラ ク ト を 使 用 する と サポー ト さ れます。<br />

• 電 源 電 圧 をパワーダ ウ ンせずに SRAM FPGA のパーシ ャル リコンフィギュレーションをイネーブルにするコン<br />

フィギュレーション セレク ト ライン<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 101<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 3 章 : ハー ド ウ ェ ア デザイ ンの 考 慮 事 項<br />

• パーシ ャル リコンフィギュレーションに 使 用 されるコンフィギュレーション データ を 格 納 で き る コ ン フ ィ ギ ュ<br />

レーシ ョ ン ラ ッチ<br />

Zynq-7000 AP SoC PL アーキテ ク チ ャ の 場 合 、 基 本 的 なプ ロ グ ラ マブル ユニッ ト は LUT、 DSP48、 および BRAM か<br />

ら 構 成 されるコンフ ィギュレーシ ョ ン フレームです。パーシャル コ ン フ ィ ギ ュ レーシ ョ ンでは、 リ コ ン フ ィ ギ ュ レー<br />

ション エージ ェ ン ト と し て 動 作 する PCAP (Processor Configuration Access Port) を 使 用 してコンフ ィ ギュレーシ ョ ン フ<br />

レームが リ プログラムされます。 各 コンフ ィ ギュレーシ ョ ン フ レームには、 それぞれ 最 上 位 / 最 下 位 ア ド レ ス ビッ ト、<br />

メジャー アドレス、およびマイナー ア ド レ スで 識 別 さ れる 一 意 のア ド レ スがあ り ます。 ザ イ リ ン ク ス Vivado ツール<br />

フ ローを 使 用 する と パーシ ャル ビッ トスト リームが 生 成 され、このパーシャル ス トリームが PCAP で 解 析 されて、フ<br />

レームが リ コンフ ィ ギュレーシ ョ ンされます。<br />

パーシ ャル リコンフィギュレーションには、 従 来 のフル コンフィギュレーションに 比 べて 次 のよ うな 利 点 がありま<br />

す。<br />

• ハー ド ウ ェ ア リ ソース 使 用 率 の 削 減 : デザイ ン フ ァ ン ク シ ョ ン をダ イナ ミ ッ ク に 時 分 割 する こ と で、 さ ら に 多<br />

く の ロ ジ ッ ク を 既 存 デバイ スにフ ィ ッ ト で き ます。<br />

• 生 産 性 と ス ケーラ ビ リ テ ィ の 増 加 : 既 に 検 証 済 みのデザ イ ンに、 変 更 し た フ ァ ン ク シ ョ ンのみを イ ンプ リ メ ン ト<br />

できます。<br />

• 保 全 性 の 向 上 と シ ス テム ダウンタイムの 削 減 : 新 し いフ ァ ン ク シ ョ ンがで き た ら、シ ス テム 稼 働 中 にそれ ら をダ<br />

イナ ミ ッ ク に 挿 入 で き ます。<br />

図 3-29 は、 パーシ ャル リ コ ン フ ィ ギ ュ レーシ ョ ン 手 法 を 概 念 的 に 示 し ています。 ス タ テ ィ ッ ク デザイ ンは 変 更 され<br />

ず、パーシ ャル リコンフィギュレーション モジュールと スタテ ィ ッ ク デザ イ ン 間 の 通 信 が 確 立 さ れます。ス タ テ ィ ッ<br />

ク ロジックおよびパーシャル リコンフィギュレーション モジ ュール 間 の 通 信 には、 双 方 向 通 信 エンテ ィ テ ィ および<br />

トライステート ゲー ト を 含 む 通 信 マ ク ロ のセ ッ ト が 使 用 さ れます。<br />

X-Ref Target - Figure 3-29<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

図 3‐29 : パーシ ャル リ コ ン フ ィ ギュ レーシ ョ ンの 概 念<br />

Zynq-7000 AP SoC には、パーシャル リ コンフ ィ ギュ レーシ ョ ンを 使 用 した リ コンフ ィ ギュ レーシ ョ ン 可 能 な PL 部 分<br />

が 含 まれます。 PL は、 PS デバイ ス コンフィギュレーション インターフェイスの 一 部 である PCAP (Processor<br />

Configuration Access Port) を 使 用 してプログラムされます。 PCAP ブロックは、 PCAP-APB ブリッジ (APB トランザク<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 102<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 3 章 : ハー ド ウ ェ ア デザイ ンの 考 慮 事 項<br />

ションを PCAP 読 み 出 し/ 書 き 込 み ト ラ ンザ ク シ ョ ンに 変 換 ) を 使 用 して CPU とシステム メ モ リ と 通 信 し ます。 ザ イ<br />

リンクス Vivado デザイ ン ツールを 使 用 し て 生 成 さ れたパーシ ャル ビッ トスト リームは PS DDR メ モ リ に 格 納 で き 、<br />

パーシ ャル リ コ ン フ ィ ギ ュ レーシ ョ ン 手 法 を 使 用 し て PCAP インターフェイスを 介 してそれらを 取 り 出 して PL をコ<br />

ンフィギュレーショ ンできます。<br />

パーシ ャル リコンフィギュレーションの 用 語<br />

「リコンフィギャラブル パーテ ィ シ ョ ン」 と は、 パーシ ャル リ コ ン フ ィ ギ ュ レーシ ョ ン 用 に 選 択 さ れた FPGA の 物 理<br />

的 位 置 の こ と で、 残 り のデザ イ ンは、 「ス タ テ ィ ッ ク ロ ジ ッ ク」 と 呼 ばれます。 特 定 のデザ イ ン インプリ メンテー<br />

ションは、「リコンフィギャラブル モジュール」 と 呼 ばれます。 コンフ ィ ギュ レーシ ョ ンでは、 完 全 な FPGA デザイ<br />

ンが 定 義 さ れ、リ コ ン フ ィ ギ ャ ラ ブル モジュールと スタテ ィ ッ ク ロジック、リ コンフィギャラブル モジュールのパー<br />

シャル ビットスト リームを 含 むフル ビッ トスト リームが 生 成 されます。<br />

システム レベルの 考 慮 事 項<br />

デザイ ン フローでパーシャル リ コ ン フ ィ ギ ュ レーシ ョ ン を 使 用 する 場 合 は、 次 の よ う なシ ス テム レベル 考 慮 事 項 が<br />

あります。<br />

推 奨 : Vivado でパーシャル リ コ ンフ ィ ギ ュ レーシ ョ ンを 使 用 し て 設 計 する 方 法 については、 Documentation Navigator<br />

の [Partial Reconfiguration] デザイ ン ハブを 参 照 して く ださい。 詳 細 は、 181 ページの 「 関 連 するデザ イ ン ハブ」 を 参<br />

照 してください。<br />

ハー ド ウ ェ ア デザイ ン フロー<br />

部 分 的 に リ コ ン フ ィ ギ ュ レーシ ョ ン 可 能 なデザ イ ン を 作 成 する には、 まず リ コ ン フ ィ ギ ャ ラ ブルなモジ ュール と ス タ<br />

ティック デザイ ン フローを 使 用 してデザインを 作 成 します。パーシャル リコンフィギュレーション デザイ ン フ ロ ー<br />

を 使 用 する には、 次 の 手 順 に 示 すよ う に Vivado デザイ ン ツールが 必 要 です。<br />

• ザイ リ ンクス Vivado デザイ ン ツールを 使 用 し、 ターゲ ッ ト の 評 価 プ ラ ッ ト フ ォーム を 指 定 し てパーシ ャル リコ<br />

ンフィギュレーショ ン プ ロ ジ ェ ク ト を 作 成 し た ら、 ネ ッ ト リ ス ト および 制 約 フ ァ イルを イ ンポー ト し ます。<br />

• リコンフィギャラブル パーテ ィ シ ョ ン を 定 義 し ます。 こ のパーテ ィ シ ョ ンに よ り 、 複 数 のデザ イ ンに 共 通 の ロ<br />

ジ ッ クおよび 配 線 が 同 一 であ る こ と が 確 実 にな り ます。<br />

• 対 応 する ネ ッ ト リ ス ト および 制 約 フ ァ イルを 追 加 し て、 リ コ ン フ ィ ギ ャ ラ ブル パーテ ィ シ ョ ン 用 の リ コ ン フ ィ<br />

ギャラブル モジ ュールを 作 成 し ます。 特 定 の リ コ ン フ ィ ギ ャ ラ ブル モジ ュールに し か 適 用 さ れない 制 約 は、 モ<br />

ジュール レベルで 指 定 し、 対 応 する ネ ッ ト リ ス ト と 共 に 供 給 する 必 要 があ り ます。 ス タ テ ィ ッ ク ロジックに 適<br />

用 さ れる 制 約 と すべての リ コ ン フ ィ ギ ャ ラ ブル モジ ュール 間 で 共 有 さ れる 制 約 は、 最 上 位 の 制 約 フ ァ イルに 含 め<br />

る 必 要 があ り ます。<br />

• パーテ ィ シ ョ ンの 物 理 的 なサ イ ズ と 必 要 な リ ソース タ イ プを 設 定 し て、 リ コ ン フ ィ ギ ャ ラ ブル パーテ ィ シ ョ ン<br />

をフロアプランします。 ザイ リンクス FPGA では、 CLB (フリ ップフロップ、 LUT、 分 散 RAM、 マルチプ レ ク<br />

サーなど)、 BRAM、 DSP ブ ロ ッ ク 、 およびその 他 の 関 連 する 配 線 リ ソースの リ コ ン フ ィ ギ ュ レーシ ョ ンがサポー<br />

ト さ れます。 リ コ ン フ ギ ャ ラ ブル パーテ ィ シ ョ ンは、 リ コ ン フギ ャ ラ ブル モジュールで 必 要 な リ ソースが 含 ま<br />

れる よ う にフ ロ アプ ラ ンする 必 要 があ り ます。 基 本 的 に、 配 線 リ ソ ースには 20% のオーバーヘ ッ ド があ る と 考<br />

えてください。PL 内 のス タ テ ィ ッ ク ロジックに 対 する リ コンフギャラブル パーテ ィ シ ョ ンの 位 置 は、 データ フ<br />

ローおよびリ コンフギャラブル モジ ュール と 残 り のデザ イ ン と の 通 信 方 法 に よ って 異 な り ます。まずフ ロ アプ ラ<br />

ンなしで リ ソース 使 用 率 を 最 大 にしてコンフ ィ ギュレーシ ョ ンをインプ リ メ ン ト し、ほとんどの リ ソースが 配 置<br />

さ れる 領 域 を 見 つけて、 その 領 域 の 近 く にすべての リ ソ ース を 含 む 大 き さ のパーテ ィ シ ョ ン を 作 成 する のが 簡 単<br />

な 方 法 です。<br />

• リコンフギャラブル デザイ ン コ ン フ ィ ギ ュ レーシ ョ ン を 構 築 する には、 最 も 困 難 な コ ン フ ィ ギ ュ レーシ ョ ン を<br />

最 初 に イ ンプ リ メ ン ト し ます。<br />

• パーシ ャル リコンフィギュレーションのコンフィギュレーション 検 証 ユーティ リティを 実 行 して、リコンフギャ<br />

ラブル モジ ュールの イ ンプ リ メ ンテーシ ョ ン 間 の 一 貫 性 を 検 証 し ます。<br />

• リコンフギャラブル モジ ュールに 対 する フルおよびパーシ ャル ビッ トスト リームを 生 成 します。<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 103<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 3 章 : ハー ド ウ ェ ア デザイ ンの 考 慮 事 項<br />

図 3-30 は、パーシ ャル リコンフィギュレーションをインプリメントするハードウェア デザイ ン フローを 示 していま<br />

す。<br />

X-Ref Target - Figure 3-30<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

図 3‐30 : パーシ ャル リ コ ン フ ィ ギュ レーシ ョ ンのハー ド ウ ェ ア デザイ ン フロー<br />

システム デザイ ン フロー<br />

Zynq-7000 AP SoC へのパーシ ャル リコンフィギュレーションのインプリメントには、AXI-PCAP ブ リ ッ ジ を 含 むデ<br />

バイス コンフィギュレーション (DevC) インターフェイスが 使 用 されます。<br />

次 の 例 は、 パーシ ャル リコンフィギュレーションのブート シーケ ン スの 概 要 を 示 し ます。<br />

1. パワー オン リセット 後 、BootROM が 外 部 メ モ リ インターフェイスまたはブート モード (SD フラッシュ メモリ)、<br />

および 暗 号 ステータス ( 非 セキ ュ ア) を 判 断 します。BootROM は、FSBL (First Stage Boot Loader) をオンチップ RAM<br />

(OCM) に 読 み 込 むのに DevC の DMA を 使 用 します。<br />

2. BootROM がシャ ッ ト ダウンして CPU の 制 御 が FSBL に 移 行 し、 FSBL が PCAP を 介 してフル ビ ッ ト ス ト リ ーム<br />

を 使 用 して PL をコンフィギュレーションします。<br />

3. FSBL がベア メ タル OS のユーザー アプ リ ケーシ ョ ン を 読 み 込 み、 制 御 を こ のアプ リ ケーシ ョ ンに 移 行 し ます。<br />

4. ユーザー アプ リ ケーシ ョ ンが、 ス ター ト ア ップ 中 にパーシャル ビットスト リームを DDR メ モ リ に 読 み 込 みま<br />

す。 こ れは、 PCAP インターフェイスでのコンフィギュレーション スループ ッ ト を 最 大 にし、 コ ンフ ィ ギュ レー<br />

シ ョ ン 時 間 を 短 縮 し て、 キ ャ ッ シ ュ を 利 用 する ためです。<br />

5. アプ リ ケーシ ョ ンでは、 残 りの FPGA はア ク テ ィ ブな 状 態 のま ま 中 断 せずに、 パーシ ャル ビッ トスト リームを<br />

使 用 し て 定 義 済 み PL 領 域 をいつで も 変 更 で き ます。 こ れには、 PCAP を 介 して DDR から PL に リ コ ン フ ギ ャ ラ<br />

ブル モジュール ビッ トスト リームを 転 送 します。<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 104<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 3 章 : ハー ド ウ ェ ア デザイ ンの 考 慮 事 項<br />

6. 1 つのコ ンフ ィ ギ ュ レーシ ョ ン エンジンで、 フル コンフィギュレーションとパーシャリ リコンフィギュレー<br />

シ ョ ンの 両 方 が 処 理 さ れます。 パーシ ャル ビットスト リームにはコンフィギュレーション フレームのアドレス<br />

指 定 情 報 が 含 まれてい る ので、パーシ ャル ビッ トスト リームを PL に 読 み 込 む 際 に リ コ ン フ ギ ャ ラ ブル モジュー<br />

ルの 物 理 的 な 位 置 を 指 定 する 必 要 はあ り ません。<br />

105 ページの 図 3-31 は、 パーシャル リコンフィギュレーションのシステム レベルのフローを 示 しています。 ザイ リ<br />

ンクス デバイ ス コンフィギュレーション ドライバーにより PCAP ブロ ッ クへのア ク セス 用 に 下 位 の API が イ ン プ リ<br />

メントされており、ユーザー アプ リ ケーシ ョ ンから この API を 呼 び 出 し てパーシ ャル リコンフィギュレーション フ<br />

ローを 開 始 できます。 ユーザー アプ リ ケーシ ョ ンで、 パーシャル ビットスト リームの 格 納 された DDR のソース ア<br />

ド レ スが 認 識 さ れてい る 必 要 があ り ます。<br />

X-Ref Target - Figure 3-31<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

図 3‐31 : パーシ ャル リコンフィギュレーションのシステム レベルのフ ロー<br />

この 例 では、 パーシャル ビットスト リームを PS-DDR メ モ リ か ら 読 み 出 す 方 法 を 示 し ています。 通 常 、 ビ ッ ト ス ト<br />

リームはデバイス コンフィギュレーション イ ン ターフ ェ イ スでア ク セス 可 能 な 任 意 の 外 部 メ モ リ に 含 める こ と がで<br />

きます。<br />

U‐Boot および Linux を 使 用 したリ コンフ ィギュレーシ ョ ンの 管 理<br />

リコンフギャラブル ビッ トスト リームを PL にダ イナ ミ ッ ク に 読 み 込 むには、 Linux および U-Boot を 使 用 で き ます。<br />

アプ リ ケーシ ョ ンが Linux で 実 行 さ れていて、 ハー ド ウ ェ アの 一 部 を リ コ ン フ ィ ギ ュ レーシ ョ ンする 必 要 があ る 場 合<br />

は、 アプ リ ケーシ ョ ンか ら Linux カーネルにリクエストを 送 信 して、 適 切 なビットストリームとそのハードウェア デ<br />

バイスをサポートする 該 当 カーネル モジ ュールを 読 み 込 むこ と がで き ます。<br />

FSBL の 実 行 時 間 が ク リ テ ィ カルな 場 合 は、 パーシ ャル リ コンフィギュレーショ ンを 使 用 してデザインを 分 割 して、<br />

FSBL の 実 行 中 に 小 さ なビ ッ ト ス ト リ ームが よ り 高 速 に 読 み 込 まれる よ う に し ます。 こ れに よ り 、 ブー ト 時 間 が 全 体<br />

的 に 削 減 さ れます。 U-Boot では、 残 り のデザ イ ンが コ ン フ ィ ギ ュ レーシ ョ ン さ れて 初 期 化 さ れます。 デザ イ ンの 分 割<br />

は、 特 定 の PL フ ァ ン ク シ ョ ン を 特 定 の 時 間 内 に 開 始 する 必 要 があ る 場 合 に 使 用 する と 便 利 です。<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 105<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 3 章 : ハー ド ウ ェ ア デザイ ンの 考 慮 事 項<br />

パーシ ャル リ コ ン フ ィ ギ ュ レーシ ョ ン さ れたビ ッ ト ス ト リ ームは、 暗 号 キーを 使 用 し て 暗 号 化 で き ます。 復 号 化 は、<br />

アプ リ ケーシ ョ ン 要 件 に 基 づいて U-Boot または Linux のいずれかを 使 用 し て 実 行 で き ます。 暗 号 が 解 除 さ れた ら、そ<br />

のビッ ト ス ト リームを 使 用 して PCAP インターフェイスで PL をコンフィギュレーションできます。<br />

APU からの GP およびダイレク ト PL アクセス<br />

このセクショ ンでは、 AXI 汎 用 イ ン ターフ ェ イ ス を 使 用 し た APU からの PL のレジスタおよびメモリへのアクセス、<br />

PL の AXI スレーブ ア ド レ ス 要 件 、 セキ ュ リ テ ィ およびパフ ォーマン スに 関 する 問 題 などについて 説 明 し ます。 典 型<br />

的 な 使 用 例 と し て、 ARM コアによるダイレク ト PL ア ク セス を 処 理 する シ ス テム デザイ ンを 示 し ます。<br />

PS の APU は、 PS-PL インターフェイスの 一 部 である GP マスター AXI インターフェイスを 使 用 して PL のレジスタ<br />

およびメモリにアクセスできます。 PL にインプリ メン ト されたスレーブへの AXI ト ラ ンザ ク シ ョ ン を 開 始 する のに<br />

APU で 使 用 される GP マスター AXI インターフェイスは、 2 つあ り ます。<br />

M_AXI_GP ポー ト には、 次 の 機 能 があ り ます。<br />

• AXI3 プロ ト コル<br />

• 32 ビ ッ ト のデータ バス 幅<br />

• 12 ビッ トのマスター ポー ト ID 幅<br />

• マスター ポー ト には 8 読 み 出 し 8 書 き 込 みを 発 行 する 機 能 あ り<br />

表 3-3 は、 システムのア ド レ ス 空 間 をそれぞれ 1GB 占 める AXI インターフェイス (M_AXI_GP0 および M_AXI_GP1)<br />

を 示 しています。<br />

表 3‐3 : GP ポー ト のア ド レス 範 囲<br />

インターフェ<br />

イス<br />

下 位 ア ド レス<br />

上 位 ア ド レス<br />

M_AXI_GP0 0x40000000 0x7FFFFFFF<br />

M_AXI_GP1 0x80000000 0xBFFFFFFF<br />

表 3-3 に 示 すア ド レ ス 範 囲 内 の APU アクセスはすべて、 PS のインターコネク ト を 通 り、 そのアドレスに 基 づいて、<br />

PS のインターコネク トによ り M_AXI_GP0 または M_AXI_GP1 のいずれかに 配 線 されます。 APU か ら 開 始 さ れた ト<br />

ランザクションがこれらのアドレス 範 囲 外 になると、 そのト ランザクションはマスター HP ポー ト には 配 線 さ れませ<br />

ん。<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 106<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 3 章 : ハー ド ウ ェ ア デザイ ンの 考 慮 事 項<br />

図 3-32 は、 PL の AXI スレーブにアクセスする APU で 使 用 されるパス を 示 しています。<br />

X-Ref Target - Figure 3-32<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

パフォーマンス<br />

図 3‐32 : GP ポー ト を 介 し て PL スレーブにアクセスする APU<br />

GP ポー ト は、 パフ ォーマン ス と スループ ッ ト を 増 加 する FIFO バッファーを 含 む HP ポー ト と は 異 な り 、 FIFO バ ッ<br />

ファーなしで PS マスター インターコネク ト ポー ト に 直 接 接 続 さ れています。 こ のため、 GP ポー ト はあ く まで 汎 用<br />

ポー ト であ り 、 高 パフ ォーマン ス 用 には 設 計 されていません。 GP ポー ト には、 M_AXI_GP インターフェイス クロッ<br />

クの 38 サイクル 分 のレイテンシがあり ます。<br />

AXI マスター GP ポー ト のデザイ ン 考 慮 事 項<br />

• AXI インターコネク トが PS GP マスター AXI インターフェイスと HP AXI スレーブ イ ン タ ーフ ェ イ ス に 接 続 さ<br />

れる 場 合 は、マスター ポー ト GP からの HP スレーブ ポー ト ア ク セス をデ ィ スエーブルする 必 要 があ り ます。 IP<br />

インテグレーターの [Adress Editor] ビューの processing_system7 の 下 で、 HP ポー ト のア ド レ ス の 割 り 当 て を 解 除<br />

して、 アドレスが 競 合 しないよ うにしてください。<br />

• GP イ ン ターフ ェ イ スへのア ク セスは、 デフ ォル ト ではキ ャ ッ シュに 格 納 されません。 TLB (Translation Lookaside<br />

Buffer) を 変 更 する と ア ク セス をキ ャ ッ シ ュ で き ます。<br />

• GP インターフェイスと AXI インターコネク トを PL で 使 用 する 場 合 は、 シ ス テム ソフトウェアが AXI イ ン タ ー<br />

コネク ト に 存 在 しないア ド レスにアクセス しないよ う にして く ださい。 これによ り、 AXI インターコネク トが 永<br />

久 にロックアップされることはなくなります (AXI インターコネク トで 設 定 されるタイムアウトはなし)。<br />

• PS-PL 境 界 の 電 圧 変 換 器 は、 APU がマス ター GP インターフェイスを 使 用 して PL の AXI ス レーブにア ク セ スす<br />

る 前 に コ ン フ ィ ギ ュ レーシ ョ ンする 必 要 があ り ます。 こ れは、 通 常 FSBL で 実 行 されます。<br />

使 用 例<br />

図 3-33 は、 PS の GP マスター AXI インターフェイスが PL の AXI スレーブ レジスタにどのよ うにアクセスし、ペリ<br />

フェラルをコンフィギュレーションして、 ステータスを 読 み 出 して、 DDR メモリにアクセスしているかを 示 してい<br />

ます。<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 107<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 3 章 : ハー ド ウ ェ ア デザイ ンの 考 慮 事 項<br />

X-Ref Target - Figure 3-33<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

図 3‐33 : PL の AXI スレーブにアクセスする APU<br />

GP0 ポー ト は、 PL の DDR コント ローラーを 介 して PS か ら 使 用 可 能 な DDR メ モ リ 容 量 を 増 加 する ために DDR コン<br />

ト ローラーに 接 続 さ れます。 GP1 ポー ト は、 AXI IIC および AXI GPIO IP ブロックをコンフィギュレーショ ンするた<br />

めに 使 用 さ れます。 PL の DDR メモリのキャッシュを 可 能 にするには、 TLB を 変 更 する 必 要 があ り ます。<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 108<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 4 章<br />

ソフトウェア デザイ ンの 考 慮 事 項<br />

本 章 では、Zynq ® -7000 AP SoC デザ イ ン を 設 計 する 際 に 考 慮 する 必 要 のあ る 次 の よ う な ソ フ ト ウ ェ ア デザイ ン 問 題 に<br />

ついて 説 明 し ます。<br />

• 110 ページの 「プ ロ セ ッ サ コンフィギュレーション」 : プロセッサをシステム 要 件 を 満 たすよ うにコンフィギュ<br />

レーシ ョ ンする こ とは、 エンベデッ ド シ ス テムの イ ンプ リ メ ンテーシ ョ ンでは 重 要 な 考 慮 事 項 です。 こ のセ ク<br />

ションでは、 ユーザーのアプリケーション 要 件 を 満 たすように ARM コ アを 最 適 化 する 方 法 を 示 し ます。<br />

• 114 ページの 「OS および RTOS の 選 択 」 : このセクションでは、エンベデッ ド システムに 最 適 なソフ ト ウェア プ<br />

ラットフォーム (OS、 RTOS、 またはベアメタル) を 選 択 する 際 の 長 所 と 短 所 について 説 明 し ます。<br />

• 122 ページの 「ラ イ ブ ラ リ および ミ ド ルウ ェ ア」 : ラ イ ブ ラ リ を 使 用 する と 、 よ く 使 用 さ れる 便 利 なフ ァ ン ク シ ョ<br />

ンをユーザー アプ リ ケーシ ョ ンで 再 利 用 で き る よ う に、1 つの 場 所 にまとめることができます。ミ ドルウェアは、<br />

オペレーテ ィ ング システムの 上 に 位 置 する もので、 ソ フ ト ウ ェア ス タ ッ ク を 中 央 に 集 中 する こ とで 複 雑 さを 軽<br />

減 します。 これがないと、アプリ ケーシ ョ ン 層 でソフ ト ウェア スタックが 重 複 してしまいます。このセクション<br />

では、ラ イブラ リ と ミ ドルウ ェアを 使 用 してアプ リ ケーシ ョ ン プ ロ グ ラ ミ ン グの 生 産 性 と 信 頼 性 を 向 上 する 方 法<br />

について 説 明 し ます。<br />

• 125 ページの 「ブー ト ローダー」 : エンベデッ ド シ ス テムのアプ リ ケーシ ョ ンは、 さ ま ざ ま な 方 法 で 起 動 で き ま<br />

す。 こ のセ ク シ ョ ンでは、 電 源 投 入 か ら アプ リ ケーシ ョ ン 実 行 までの Zynq-7000 AP SoC ブー ト フロー オプシ ョ<br />

ンについて 説 明 します。<br />

• 129 ページの 「 ソ フ ト ウ ェ ア 開 発 ツール」 : このセクションでは、 Zynq-7000 AP SoC のソフ ト ウェア コ ン ポーネ<br />

ン ト を 構 築 する ために 使 用 で き るザイ リ ン ク ス ソ フ ト ウ ェ ア 開 発 ツールについて 説 明 し ます。<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 109<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 4 章 : ソフトウェア デザイ ンの 考 慮 事 項<br />

プロセッサ コンフィギュレーション<br />

エンベデッ ド システムで SoC を 完 全 に 使 用 する には、 シ ス テム 要 件 を 満 たすよ う にプ ロ セ ッ サを コ ン フ ィ ギ ュ レー<br />

シ ョ ンする こ と が 重 要 です。 こ のセ ク シ ョ ンでは、 その 際 に 考 慮 すべき 点 について 説 明 し ます。 内 容 は、 Zynq-7000<br />

AP SoC シ ス テム 用 に 記 述 さ れていますが、 ほかのシ ス テムに も 適 用 で き ます。<br />

クロック 速 度 と 複 数 コア<br />

消 費 電 力 と パフ ォーマン スのバ ラ ン スが 良 い と 、 エンベデ ッ ド シ ス テムが 効 率 的 な も のにな り ます。 プ ロ セ ッ サを 最<br />

大 ク ロ ッ ク 周 波 数 よ り も 低 い 周 波 数 で 実 行 する よ う に コ ン フ ィ ギ ュ レーシ ョ ンする と 、 消 費 電 力 を 削 減 で き る こ と が<br />

あります。 オペレーティング システムで 複 数 のプロセッサ コ アがサポー ト さ れる 場 合 は、 単 一 のコ アを 高 周 波 数 で<br />

実 行 する よ り も、 複 数 の コ ア を 低 周 波 数 で 実 行 する 方 が 消 費 電 力 が 抑 え ら れます。 どれ く ら い 消 費 電 力 が 削 減 で き る<br />

かは、 消 費 電 力 要 件 と 低 ク ロ ッ ク 周 波 数 で 実 行 さ れる 複 数 のプ ロ セ ッ サ コ アの 消 費 電 力 を 解 析 し て、 高 ク ロ ッ ク 周 波<br />

数 で 実 行 さ れる 単 一 の コ アの 結 果 と 比 較 する と わか り ます。<br />

プロセッサのクロック 周 波 数 は、 システム ソ フ ト ウ ェ アでダ イ ナ ミ ッ ク に 変 更 で き ます。 両 方 のプ ロ セ ッ サ コアを<br />

実 行 する 場 合 、 それらは 常 に 同 じ 周 波 数 で 実 行 さ れます。 コ ア 間 に 拡 張 可 能 なマルチス レ ッ ド ソ フ ト ウ ェ ア を 使 用 す<br />

ると、マルチコア シ ス テム を 完 全 に 利 用 で き ます。 こ の よ う な ソ フ ト ウ ェ アでは、 シ ス テム を 最 大 ク ロ ッ ク 周 波 数 に<br />

しなくても、 スレッドを 並 列 に 実 行 することでパフォーマンスを 上 げることができます。<br />

SMP および AMP コンフィギュレーション<br />

マルチコア プ ロ セ ッ サを 使 用 する と 決 めた 場 合 、 オペレーテ ィ ング システム 選 択 も 含 め、 ソフ ト ウェア システム デ<br />

ザ イ ンが 変 わ り ます。 マルチ コ ア SoC のほ と んどにシステムを 非 対 称 マルチプロセッサ (AMP) または 対 称 マルチプ<br />

ロセッサ (SMP) と し て 実 行 する オプシ ョ ンがあ り ます。<br />

AMP コンフィギュレーションの 場 合 は、 各 プロセッサ コアが 異 なる ( 通 常 は 関 連 のない) タスクに 対 して 使 用 され、<br />

それぞれが 別 々に 動 作 し、 メ ッ セージを 交 換 する ために さ ま ざ ま な タ イ ミ ン グでほかのコ アに 信 号 を 送 った り 、 ほか<br />

の コ ア と 同 期 し た り し ます。 通 常 、 メ ッ セージの 伝 送 に 使 用 さ れる メ モ リ を 除 き、 それぞれのコ アに 独 自 の メ モ リ ア<br />

ドレス 空 間 があります。 実 際 には、AMP コンフ ィ ギュレーシ ョ ンは 通 常 異 なるオペレーテ ィ ング システムや 同 じオ<br />

ペレーティ ング シ ス テム 内 の 異 な る 独 立 し た イ ン ス タ ン ス を 実 行 する ために 使 用 さ れます。<br />

SMP コ ン フ ィ ギ ュ レーシ ョ ンでは、 複 数 のプ ロ セ ッ サを 使 用 し て 同 じ 動 作 環 境 内 で タ ス ク が 実 行 さ れます。 た と え<br />

ば、 マルチ コ ア Linux では 複 数 タ ス ク が 同 時 に 実 行 さ れます。 異 な る プ ロ セ ッ サ コ アで 異 な る タ ス ク を 発 行 する に<br />

は、 共 通 のス ケジ ューラーが 使 用 さ れます。 各 コ アのシ ス テム ビ ューは 同 じ なので、 動 作 は 対 称 にな り ます。<br />

APM および SMP コンフィギュレーションが 違 えば、 異 なるキャッシュ コ ヒーレンシおよびメモリ 共 有 インプリメン<br />

テーシ ョ ンが 使 用 されます。 システムの AMP または SMP のビヘイビアーは、 プロセッサ コアのシステム 制 御 プラ<br />

イベート レジスタ ( 例 : ARM v7 コアの CP15 など) を 使 用 する と 制 御 で き ます。<br />

図 4-1 および 図 4-2 は、 それぞれ AMP および SMP システムの 典 型 的 な 例 を 示 し ています (プロセッサはプロセッサ<br />

コアのこと)。<br />

図 4-1 は、 AMP の 例 を 2 つ 示 し ています。<br />

• 例 1 の 場 合 、 各 プ ロ セ ッ サがプ ラ イベー ト メモリに 割 り 当 てられ、そのメモリはプロセッサ 間 では 共 有 されませ<br />

ん。 どち らのプロセ ッ サから も 共 有 メ モ リ とペ リ フ ェ ラル セッ トにアクセスできます。<br />

• 例 2 の 場 合 、 1 つのプ ロ セ ッ サが メ モ リ 操 作 すべてを 実 行 し ますが、 こ の CPU か ら ペ リ フ ェ ラ ルにはア ク セ ス で<br />

きません。2 つ 目 のプ ロ セ ッ サか ら はペ リ フ ェ ラ ルにア ク セスで き ますが、 こ の CPU か ら メ モ リ 操 作 は 実 行 で き<br />

ません。<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 110<br />

UG1046 (v2.1) 2015 年 4 月 22 日


.<br />

第 4 章 : ソフトウェア デザイ ンの 考 慮 事 項<br />

図 4-2 の 場 合 、 どのプ ロ セ ッ サか ら もすべてのペ リ フ ェ ラ ル と メ モ リ に 同 等 にア ク セスで き ます。<br />

X-Ref Target - Figure 4-1<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

図 4‐1 : 典 型 的 な AMP コンフィギュレーション<br />

X-Ref Target - Figure 4-2<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

コ プ ロセ ッ サの 使 用<br />

図 4‐2 : 典 型 的 な SMP コンフィギュレーション<br />

ハー ド ウ ェ ア コ プ ロ セ ッ サを 使 用 する と 、 シ ス テム パフ ォーマン ス を 改 善 で き ます。 た と えば、 NEON 専 用 命 令 を<br />

使 用 する と 、 多 く の 浮 動 小 数 点 ま たは SIMD 演 算 を 実 行 する 際 のシ ス テム パフォーマンスを 改 善 できます。 これらの<br />

命 令 では、 ARM Cortex-A9 MPCore プロセッサの NEON メディア プ ロ セ ッ サの 機 能 が 使 用 さ れます。<br />

NEON テ ク ノ ロ ジは 消 費 電 力 最 適 化 さ れていますが、 ほ と んどの コ プ ロ セ ッ サで 多 く の 消 費 電 力 が 必 要 と さ れます。<br />

ただ し、 コ プ ロ セ ッ サは 特 定 タ ス ク 用 に 設 計 さ れてい る ので、 こ れ ら の タ ス ク を 実 行 する 際 は、 メ イ ン プロセッサを<br />

使 用 する よ り も 高 速 で 消 費 電 力 効 率 に 優 れています。 コ プ ロ セ ッ サは CPU のバン ド 幅 を 削 減 する ので、 ワー ク ロー<br />

ド を 減 少 する と CPU 消 費 電 力 を 削 減 で き ます。<br />

コ プ ロ セ ッ サは、その 使 用 のために 設 計 さ れた 特 定 の 命 令 を 実 行 し ます。た と えば、「ザ イ リ ン ク ス Zynq-7000 AP SoC<br />

Spectrum Analyzer パーツ 2 - ARM NEON ラ イ ブ ラ リ の 構 築 に 関 する テ ク ニカル ヒント」 の Wiki ページ [ 参 照 62] に<br />

は、 NEON ライブラリを 使 用 して Zynq-7000 AP SoC の NEON 機 能 を ターゲ ッ ト にする 方 法 について 説 明 されていま<br />

す。<br />

キャ ッ シ ュの 考 慮 事 項<br />

キャッシュはシステム パフ ォーマン ス を 大 き く 改 善 する 可 能 性 があ る ので、 で き る 限 り 使 用 する よ う に し て く だ さ<br />

い。 ほ と んどの SoC には、 L1 および L2 キャッシュが 含 まれています。 各 CPU コ アには、 そのコ アで 使 用 さ れ る よ<br />

う に 個 別 に コ ン フ ィ ギ ュ レーシ ョ ン 可 能 な 専 用 の L1 キ ャ ッ シ ュ が 通 常 含 まれます。 L2 キ ャ ッ シ ュは、 通 常 すべての<br />

CPU コ アで 共 有 さ れます。キ ャ ッ シ ュ 間 の コ ヒ ーレ ンシはス ヌープ 制 御 ユニ ッ ト (SCU) によ り 維 持 されます。 コ ヒ ー<br />

レンシは AMP または SMP マルチプロセッサ コ ン フ ィ ギ ュ レーシ ョ ンで 決 定 さ れます。<br />

キャッシュは、 イネーブルになる 前 は 無 効 です。 L1 命 令 キ ャ ッ シ ュは、 ブー ト プロセスの 最 初 で ( 通 常 は FSBL<br />

(First-Stage Boot Loader) によ り) イ ネーブルにす る 必 要 が あ り 、 こ れ よ り 後 はデ ィ ス エーブルにす る こ と はで き ま せ<br />

ん。 L1 および L2 データ キャッシュは、 後 でコンフィギュレーションおよびイネーブルにできます。<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 111<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 4 章 : ソフトウェア デザイ ンの 考 慮 事 項<br />

すべてのキ ャ ッ シ ュ 操 作 は、 キ ャ ッ シ ュ ラインで 実 行 されます。 キャッシュ コント ローラーは、 キャッシュ ウェイ<br />

または 物 理 アドレスでキャッシュ ラインをライトバックし、 無 効 化 できます。<br />

通 常 、 SoC には Strongly Ordered (プ ロ グ ラ ムの 記 述 順 序 どお り に ロー ド および 格 納 を 実 行 ) のメモリやデバイス メ<br />

モリなどの 順 番 の 異 なるメモリが 含 まれており、システムはそのメモリでキャッシュ 操 作 を 使 用 したり、しなかった<br />

り で き ます。 ま た、 プ ロ グ ラ ム 特 定 の ラ イ ト スルーやラ イ ト バ ッ ク などのキ ャ ッ シ ュ 方 法 があ る こ と も あ り ます。<br />

システム ペリフェラルが CPU と 共 有 さ れる メ モ リ を 使 用 する 場 合 、ソ フ ト ウ ェ アでその メ モ リ と CPU 間 のコ ヒ ーレ<br />

ンシを キ ャ ッ シ ュ 操 作 を 使 用 し て 維 持 する 必 要 があ り ます ( 費 用 が 高 い)。 同 様 に、 複 雑 なシ ス テ ムの 中 には、パフ ォー<br />

マンスを 向 上 するためにペリ フェラルがキャ ッシュされたメモリにアクセスするものもあ り ます。 このよ う な 場 合 、<br />

ペリフェラル キャッシュ、 メモリ、 および CPU キ ャ ッ シ ュ 間 の コ ヒ ーレ ンシは ソ フ ト ウ ェ アで 維 持 する 必 要 があ り<br />

ます。 コ ヒ ーレ ンシを 維 持 する 際 の ソ フ ト ウ ェ ア オーバーヘッドによ り、 レイテンシが 発 生 します。 レイテンシは、<br />

ACP (アクセラレータ コヒーレンシ ポー ト ) などのキャッシュ コヒーレンシ ポー ト から 提 供 されるハード ウ ェア コ<br />

ヒ ーレ ンシを 使 用 する と 回 避 で き ます。<br />

Zynq-7000 AP SoC システムには、 プロセッサ キャッシュへの 外 部 ポート アクセスを 可 能 にする ACP が 含 まれます。<br />

ACP を 使 用 する と 、 DMA エンジンや 暗 号 化 ア ク セ ラ レータ コアのよ うなその 他 のキャッシュがないマスター ペリ<br />

フェラルおよびアクセラレータ と、プロセッサ コアの L1 キャッシュとの 間 にキャッシュ コ ヒーレンシがあるように<br />

できます。<br />

パワーオン リ セ ッ ト 後 のプ ロセ ッ サ ステート<br />

Zynq-7000 AP SoC では、 両 方 のプロセ ッサ コアがパワーオン リセット (POR) 後 に 開 始 し ます。CPU0 がア ド レス 0x0<br />

で 開 始 し、 BootROM が FSBL (First-Stage Boot Loader) を 読 み 込 みます。 CPU1 は、 wait-for-event (WFE) ループに 送 信<br />

されます。 割 り 込 みがあると、CPU1 がウェークアップして WFE ステートでなくなり ます。 後 で CPU1 を 開 始 する に<br />

は、 通 常 ブー ト ローダー、 カーネル、 ま たは 同 等 の ソ フ ト ウ ェ アが 使 用 さ れます。<br />

ほ と んどの 場 合 、 DDR メモリは POR で 初 期 化 さ れないので、 FSBL はオンチップ メ モ リ な ど の よ り 単 純 な メ モ リ に<br />

読 み 込 まれ、 SoC のア ド レス 0x0 にマップされます。<br />

ARM プロセッサは POR 後 の SVC (スーパーバイザー ) モー ド で 開 始 し ます。 こ の 後 、 カーネルま たは 同 等 の ソ フ ト<br />

ウェアが ARM プ ロ セ ッ サのモー ド を 必 要 に 応 じ て 変 更 し ます。<br />

割 り 込 み 処 理<br />

ARM コ アには、 割 り 込 み 処 理 用 に 汎 用 割 り 込 みコ ン ト ローラー (GIC) と プ ラ イベー ト ペ リ フ ェ ラ ル 割 り 込 み コ ン ト<br />

ローラー (PPI) が 含 まれます。 GIC には、 プ ロ セ ッ サ 間 通 信 、 シ ス テム 割 り 込 みの 配 線 および 優 先 順 位 付 けを 柔 軟 に<br />

行 う 機 能 があ り ます。 ソ フ ト ウ ェ アでは、 最 大 224 までの 独 立 し た 割 り 込 みを 制 御 で き ます。 各 割 り 込 みは 1 つまた<br />

は 両 方 のプロ セ ッ サ コ アに 分 配 さ れ、 ハー ド ウ ェ アの 優 先 順 位 付 けが 行 われ、 オペレーテ ィ ン グ システムと ARM<br />

TrustZone テ ク ノ ロ ジの ソ フ ト ウ ェ ア 管 理 層 間 が 配 線 さ れます (113 ページの 「セキ ュ ア コンフィギュレーシ ョ ン」 を<br />

参 照 )。 ま た、 その 下 の 割 り 込 みで 指 定 し た 優 先 度 が 無 視 さ れる よ う にで き る プ ラ イ オ リ テ ィ マスク レジスタもあり<br />

ます。<br />

GIC とは 異 なり、 プロセッサ シ ス テムの 制 御 レ ジ ス タ で 割 り 込 みマス ク を 設 定 する と 、 プ ロ セ ッ サ コアが 送 信 され<br />

るすべての 割 り 込 みをマスクできます。ARM プロセッサでは、 各 プロセッサ コアに 対 して IRQ および FIQ ラ イ ン を<br />

個 別 にマス ク で き ます。<br />

割 り 込 みハン ド ラーは、 カーネルのブー ト ア ッ プの 始 めにコ ン フ ィ ギ ュ レーシ ョ ン さ れる 必 要 があ り ます。 有 効 な 割<br />

り 込 みソースは、 次 の 3 つです。<br />

• プライベート ペリフェラル 割 り 込 み (PPI) :<br />

これらのプロセッサ コ アご と の 割 り 込 みの 機 能 には 制 限 があ り ます。 こ の 割 り 込 みには、 FIQ、 CPU ウォッチ<br />

ドッグ、CPU タイマー、FPGA ロ ジ ッ ク か ら 割 り 込 み 信 号 を 含 む 可 能 性 のあ る 一 部 の IRQ などが 含 まれます。<br />

• 共 有 ペ リ フ ェ ラ ル 割 り 込 み (SPI) :<br />

これらの 割 り 込 みはプロセッサ コ ア 間 で 共 有 さ れます。 SPI を 特 定 プロセッサ コ アに 分 配 する 方 法 は、 GCI で 決<br />

定 さ れます。 こ れらは 通 常 ハー ド ウ ェ ア 割 り 込 みで、 多 数 あ る 場 合 があ り ます。<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 112<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 4 章 : ソフトウェア デザイ ンの 考 慮 事 項<br />

• ソ フ ト ウ ェ ア 生 成 割 り 込 み (SGI) :<br />

こ れ ら は、 シ ス テムの 特 定 の SGI レ ジ ス タ に 割 り 込 みを 書 き 込 むこ と で 生 成 さ れた 同 期 割 り 込 みです。<br />

GCI レ ジ ス タは、 上 記 に リ ス ト さ れてい る 割 り 込 みを 処 理 する ために コ ン フ ィ ギ ュ レーシ ョ ンで き ます。 図 4-3 は、<br />

GIC v1.0 (PL310) の 割 り 込 み 配 線 メ カニズム を 示 し ています。<br />

X-Ref Target - Figure 4-3<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

図 4‐3 : 割 り 込 み 処 理<br />

タイマー<br />

各 プロセ ッ サ コアには、 そのプロセッサ コ アの コ ンテキ ス ト で 使 用 可 能 なプ ラ イベー ト タイマーがそれぞれ 含 まれ<br />

ます。 タ イ マーは、 シ ス テム 全 体 ではな く 、 コ アの ラ ン タ イ ム を 監 視 する のに 便 利 です。 SoC にも、 システム 全 体 の<br />

タ イ ミ ング 情 報 を 示 すグ ローバル タ イ マーが 含 まれます。 こ れら の タ イ マーで 生 成 さ れる 割 り 込 みは、 プ ラ イベー ト<br />

ペリフェラル 割 り 込 み (PPI) で、 プロセ ッ サ コ アご と に 割 り 当 て られます。 タ イ マー 割 り 込 みは、 ス ケジ ュー リ ン グ<br />

および 時 分 割 タ ス ク に 使 用 さ れる ので、 シ ス テム 操 作 には 欠 かす こ と がで き ません。<br />

MMU コンフィギュレーション<br />

Linux などのほとんどのオペレーシ ョ ン システムでは、 仮 想 メモリ シ ス テムが 必 要 です。 メ モ リ 管 理 装 置 (MMU) は、<br />

仮 想 メ モ リ ア ク セ ス を 処 理 するハー ド ウ ェ ア ブロックで、 アドレス 変 換 にページ テーブルなどのデータ 構 造 を 使 用<br />

します。 オペレーティング システムのカーネルは MMU をコ ンフ ィ ギュ レーシ ョ ン して、 ページ テーブルを 設 定 し<br />

て 仮 想 メ モ リ システムをインプリ メン トする 必 要 があり ます。 TrustZone テクノロジのセキュア モード など、 オペ<br />

レーテ ィ ング システム モードが 違 えば、 異 なるページ テーブルが 必 要 にな り ます。<br />

セキュア コンフィギュレーション<br />

Zynq-7000 AP SoC には、 TrustZone テクノロジ メカニズムを 使 用 して、 セキュアと 非 セキュアの 2 つのエリアにシス<br />

テム を 分 割 する オプシ ョ ンがあ り ます。 セキ ュ ア 操 作 を 実 行 する ためにセキ ュ ア エ リ アを 使 用 する には、 プ ロ セ ッ サ<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 113<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 4 章 : ソフトウェア デザイ ンの 考 慮 事 項<br />

モード はモニター モード (セキュア モード) に 切 り 替 え る 必 要 があ り ます。ま た、 別 のエ リ アには 別 の MMU コ ン フ ィ<br />

ギ ュ レーシ ョ ンが 必 要 です。<br />

TrustZone テクノロジの 詳 細 は、 99 ページの 「TrustZone セキュ リ ティ」 を 参 照 して く ださい。<br />

OS および RTOS の 選 択<br />

オペレーテ ィ ング システム ソ フ ト ウ ェ アに よ り 、 操 作 が 管 理 さ れ、 コ ン ピ ューター システムのハードウェア リソー<br />

スが 保 護 さ れます。 OS および RTOS では、 マルチタ ス ク のサポー ト および リ ソース 使 用 の 管 理 をサポー ト で き ます。<br />

ベア メ タル ソ フ ト ウ ェ アは、 必 要 最 小 限 のシ ス テム 管 理 フ ァ ン ク シ ョ ン と し て 使 用 で き ます。 こ のセ ク シ ョ ンでは、<br />

シ ス テム 管 理 の タ イ プの 比 較 、 ハー ド ウ ェ ア 要 件 、 使 用 可 能 な OS および RTOS ポー ト 、 複 数 OS の 実 行 、 開 発 ツー<br />

ルおよびデバ ッ グ ツールについて 説 明 します。<br />

ま た、 モ ノ リ シ ッ ク およびマ イ ク ロ カーネル 間 のセキ ュ リ テ ィ 考 慮 事 項 も あ り ます。 Linux の よ う な 完 全 機 能 のモ ノ<br />

リシック OS では、セキュアおよび 非 セキュア メモリ 領 域 に 対 して MMU が 使 用 されますが、マイ ク ロ カーネル RTOS<br />

では MMU が 使 用 されません。 このため、マイ ク ロ カーネル RTOS からはモノ リシック カーネルと 同 じメモリ 保 護 は<br />

提 供 さ れません。 詳 細 は、 ザ イ リ ン ク ス セキュ リ テ ィ ソ リューション ウェブページ [ 参 照 46] を 参 照 して く ださい。<br />

エンベデッ ド システム ソフトウェアのタイプ<br />

表 4-1 では、 ベア メ タル、 RTOS、 OS シ ス テム 管 理 ソ フ ト ウ ェ アの 機 能 を 比 較 し ています。<br />

表 4‐1 : ベアメ タル ソフトウェア、 RTOS、 OS の 比 較<br />

ベアメ タル ソフトウェア RTOS 汎 用 OS<br />

機 能 単 純 単 純 ~ 高 度 アドバンス<br />

ハー ド ウ ェ ア 抽 象 なし 最 小 限 ハイレベル<br />

マルチタ ス ク なし あり あり<br />

リアルタイム 保 証 応 答 時 間 保 証 応 答 時 間 できるだけ 速 く<br />

メモリ 管 理 なし 基 本 的 な メ モ リ 保 護 高 度 な 仮 想<br />

メモリ 管 理<br />

コード フッ トプ<br />

リント<br />

小 (KB) 小 ~ 中 (KB ~ MB) 中 ~ 大 (MB)<br />

例<br />

SDK を 使 用 したベア メ タル<br />

ソフトウェア<br />

VxWorks、 FreeRTOS<br />

Windows Embedded、 Linux<br />

オープン ソース<br />

検 討<br />

Vivado ® および SDK ツールで<br />

使 用 可 能 (これらのツールに<br />

は 特 定 の ラ イ セン スが 必 要 )<br />

オープン ソース ラ イ セン ス で 使<br />

用 でき る ものも あれば、 有 償 バー<br />

ジョンもあり<br />

オープン ソース ライセン<br />

スで 使 用 できるものもあ<br />

れば、 有 償 バージ ョ ン も あ<br />

り<br />

シ ス テム 管 理 ソ フ ト ウ ェ アの 選 択 は、 次 の 要 素 に 基 づき ます。<br />

• 以 前 の 経 験 / 既 存 ソ リ ューシ ョ ン : こ の 方 法 でシ ス テム 管 理 ソ フ ト ウ ェ ア を 選 択 する と 、 時 間 および 検 証 作 業 を 削<br />

減 で き ます。 既 存 OS または RTOS に 追 加 機 能 を 含 めた も のを 使 用 し て も、 シ ス テム 設 計 を 簡 略 化 で き ます。 こ<br />

れは、 異 な る 機 能 をサポー ト する 新 規 OS または RTOS を 使 用 する 際 には、 その OS について 学 ぶ 必 要 があ る か<br />

らです。<br />

• 機 能 : OS および RTOS では、 その 機 能 と ミ ドルウ ェア サポー ト が 異 な り ます。 USB のミ ドルウェア ス タ ッ ク 、<br />

TCP/IP、 ファイル システム サポー ト などのシステム デザ イ ン 全 体 の 必 要 性 に 基 づいて 1 つを 選 択 する こ と が 重<br />

要 です。<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 114<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 4 章 : ソフトウェア デザイ ンの 考 慮 事 項<br />

• コンフィギュアビリティ : RTOS の 中 には GUI ベースの コ ン フ ィ ギ ュ レーシ ョ ン オプシ ョ ン があ る も の も あ り 、<br />

キ ャ ッ シ ュ を イ ネーブルに し た り 、 割 り 込 みの 優 先 度 を 決 めた り 、 RTOS の tick 周 期 (OS の 周 期 的 な 処 理 間 隔 )<br />

を 選 択 する ために 使 用 さ れます。 Linux の よ う な 完 全 機 能 の OS は、 menuconfig の よ う な ツールを 使 用 し て 機<br />

能 をコンフィギュレーションできます。 これらのコンフィギュレーション インターフェイスおよびツールによ<br />

り 、 時 間 が 削 減 さ れ、 使 用 可 能 な 機 能 のオプシ ョ ンがわか り やす く な り ます。<br />

• パフォーマンス : 割 り 込 みおよびタ ス ク 切 り 替 え レ イ テンシは、 OS および RTOS によって 異 なり ます。 OS ま た<br />

は RTOS を 選 択 する 際 は、 ハー ド リアルタイム、 ソフト リ アルタ イ ム、 レ イ テンシ 全 体 をすべて 検 証 し て く だ<br />

さい。<br />

• メモリ サイズ : OS、 RTOS、 アプリケーション タスクのメモリ サイズ 要 件 は、 OS または RTOS を 選 択 す る 際 に<br />

予 測 する 必 要 があ り ます。<br />

• コスト : GNU ライセンス ベースの OS または RTOS には 無 償 の も のがあ り ます。 ベンダーに よ っ ては、 サポー ト<br />

およびサービス モデルに 基 づいて 有 償 の も の も あ り ます。<br />

° ベア メ タル BSP およびド ライバーは、 SDK の よ う なザ イ リ ン ク ス 開 発 環 境 で 無 償 で 提 供 さ れています。<br />

° RTOS は、 その 機 能 およびサポー ト モデルに よ って、 無 償 ま たは 有 償 の 商 用 ラ イ セン スに 基 づいて 選 択 さ れ<br />

ます。<br />

° Linux は、 その 機 能 およびサポー ト モデルに よ って、 無 償 ま たは 有 償 の 商 用 ラ イ セン スに 基 づいて 選 択 さ れ<br />

ます。<br />

° これらには、USB ミドルウェア スタックまたは RTOS ファイル システム ス タ ッ ク の よ う なサポー ト お よ び<br />

追 加 機 能 が 含 まれます。<br />

• アプ リ ケーシ ョ ン 要 件 :<br />

° アプ リ ケーシ ョ ンに 既 製 ラ イ ブ ラ リ を 含 む 高 度 な ソ フ ト ウ ェ アが 必 要 な 場 合 は、 Linux の よ う な 完 全 機 能 の<br />

OS を 考 慮 して く ださい。<br />

° 多 くのタスクに 対 してハード リ アルタ イ ム 応 答 が 必 要 な 場 合 は、 freeRTOS のよ うな RTOS を 考 慮 して く だ<br />

さい。<br />

° アプ リ ケーシ ョ ンに 完 全 機 能 の OS と リ アルタ イ ム 応 答 の 両 方 が 必 要 な 場 合 、 リ アルタ イ ム パ ッ チを 含 む<br />

Linux SMP ( 対 称 マルチプ ロ セ ッ シング) のよ うなマルチ OS 環 境 か、 デュ アル ARM コ ア ま たはハ イ パーバ<br />

イザーで 実 行 される Linux および RTOS を 使 用 した AMP ( 非 対 称 マルチプ ロ セ ッ シン グ) を 考 慮 し て く だ さ<br />

い。<br />

OS または RTOS を 実 行 するハードウェア 要 件<br />

OS または RTOS には、 次 が 必 要 です。<br />

• システム タイマー : これは、 Linux OS のジフ ィのよ う なカーネル ハー ト ビー ト のハー ド ウ ェ ア タ イ マーです。<br />

こ の タ イ マーは、ス ケジ ュー リ ングおよび 遅 延 などのすべての 時 間 に 関 連 する カーネル アクティビティに 対 して<br />

OS または RTOS で 使 用 されます。<br />

• メモリ フッ トプリント : RTOS の RAM および ROM の 容 量 は、 5KB ~ 30KB にな り ます。 Linux OS の 場 合 は、<br />

カーネルおよびサービス コ ン フ ィ ギ ュ レーシ ョ ンの 選 択 に 基 づいて、 数 KB ~ 100MB にな り ます。<br />

• メ モ リ 管 理 装 置 (MMU) : Linux の よ う な 完 全 機 能 の 汎 用 OS に 必 要 で、 RTOS イ ン プ リ メ ン テーシ ョ ン に よ っ て<br />

は メ モ リ 保 護 に 使 用 さ れます。<br />

Zynq-7000 AP SoC には、 RTOS および Linux の よ う な 完 全 機 能 の OS を 実 行 するハー ド ウ ェ ア リ ソ ース がすべて 含 ま<br />

れます。 リ アルタ イム ソ リ ューシ ョ ンの 時 間 決 定 性 の 達 成 は、 リ ソースの 割 り 当 て と ア ク セ ス 時 間 の よ う なその 他 の<br />

要 因 、 ソ リ ューシ ョ ン アーキテクチャ 全 体 などによ って 異 な り ます。<br />

OS および RTOS のポー ト<br />

次 のセ ク シ ョ ンでは、 Zynq-7000 AP SoC への OS および RTOS ポー ト の 複 数 の 例 を 示 し てい ますが、 全 リ ス ト が こ の<br />

情 報 だけに 限 定 さ れる わけではあ り ません。<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 115<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 4 章 : ソフトウェア デザイ ンの 考 慮 事 項<br />

Linux OS および PetaLinux ツール<br />

ザイ リ ンクスの Linux ディス ト リビューションには、Linux OS と 、 完 全 な コ ン フ ィ ギ ュ レーシ ョ ン、ビル ド 、Zynq-7000<br />

AP SoC 用 の 展 開 環 境 などが 含 まれます。 PetaLinux は、 完 全 な 機 能 を 持 ち、 統 合 およびテ ス ト 済 みで、 資 料 化 さ れて<br />

いるので、 ザイ リ ンクス カスタマーには 推 奨 される Linux 展 開 メ カニズムです。 PetaLinux はザ イ リ ン ク ス 製 品 なの<br />

で、 その 他 のザイ リ ン ク ス ツール と 同 じ レベルの 製 品 管 理 、 サポー ト 、 バグ トラッキング、 拡 張 などがザイリンク<br />

スから 提 供 されています。<br />

PetaLinux ツールを 使 用 し て 構 築 さ れた Linux OS は、 安 定 し て 完 全 にテ ス ト さ れた Linux カーネル (ザイ リ ンクス Git<br />

サーバーか ら も ダウ ン ロー ド 可 能 ) に 基 づいていますが、 PetaLinux の 方 がザイ リ ン ク ス Git サーバーか ら ダ ウ ン ロー<br />

ド 可 能 な も の よ り も 多 く の 機 能 が 含 まれます。 PetaLinux には、 イ ンス ト ーラー、 開 発 ツール、 ボード サポー ト パッ<br />

ケージ (BSP)、 プラ ッ ト フォーム 管 理 ユーテ ィ リ テ ィ、 アプ リ ケーシ ョ ンおよびラ イブラ リ フ レーム ワー ク および 資<br />

料 が 含 まれます。 PetaLinux は、 PetaLinux ライセンス ページに 示 す と お り 、 無 償 の 商 用 ラ イ セン スに 基 づいて 使 用 で<br />

きるようになっています。PetaLinux ユーザーはすべてフ ォーラ ム ベースの コ ミ ュ ニテ ィ サポー ト を 受 ける こ とがで<br />

き ます。 商 用 ラ イ セン ス を 取 得 し てい る ユーザーは、 ザ イ リ ン ク スか ら 直 接 サポー ト を 受 け る こ と も で き ます。 詳 細<br />

は、 ザイ リ ン ク ス Linux Wiki ページ [ 参 照 54] およびザイ リ ンクス PetaLinux Wiki ページ [ 参 照 56] を 参 照 して く ださ<br />

い。<br />

ザイ リ ンクスの PetaLinux ツールでは、 Zynq-7000 AP SoC の 完 全 機 能 の OS に 対 し て Linux BSP の コ ン フ ィ ギ ュ レー<br />

シ ョ ン、 カ ス タ マ イ ズ、 構 築 、 およびパ ッ ケージがサポー ト さ れます。 こ れら の BSP のコンフィギュレーショ ンおよ<br />

び 使 用 方 法 については、 ザ イ リ ン ク ス PetaLinux ツールのウェブサイ ト [ 参 照 48] を 参 照 して く ださい。<br />

OS および RTOS のエコシステム<br />

前 述 の と お り 、 Zynq-7000 AP SoC には、 ザイ リ ン ク ス OS および RTOS ポー ト だけで な く 、 サー ド パーテ ィ お よ び<br />

Alliance メ ンバーか ら の 製 品 をサポー ト する 強 力 なエ コ シ ス テムが 含 まれます。 こ れ ら の 製 品 には、 サポー ト さ れる<br />

機 能 、 コ ンテキ ス ト スイッチ パフ ォーマン ス、 割 り 込 みレ イ テンシ、 テ ク ニカル サポー ト 、 およびフ ァ イル システ<br />

ム、 USB、 PCIe、 イーサネットなどのミドルウェア サポー ト において 違 いがあ り ます。<br />

表 4-2 および 次 のセクシ ョ ンでは、 サードパーティおよびアラ イアンス メンバーのエコシステム ソリューションに<br />

ついて 示 されています。 その 他 の 情 報 は、 ザイ リ ン ク ス Zynq-7000 AP SoC のエコシステムのウ ェブページ [ 参 照 47]<br />

を 参 照 して く ださい。<br />

表 4‐2 : OS、 RTOS、 およびミドルウェア 製 品<br />

Alliance メンバー OS、 RTOS、 およびミドルウェア 製 品 詳 細<br />

Adeneo Embedded Windows Embedded Compact 7、 Linux、 Android、 および QNX [ 参 照 84]<br />

Discretix セキュ リ ティ 中 心 のソフ ト ウェアおよび IP ソ リューション [ 参 照 77]<br />

ENEA Software AB OSE RTOS および ENEA Linux [ 参 照 78]<br />

eSOL uITRON 4.0 RTOS、 T-Kernel RTOS および IDE [ 参 照 79]<br />

Green Hills Software INTEGRITY RTOS [ 参 照 81]<br />

Express Logic ThreadX RTOS [ 参 照 80]<br />

iVeia Android On Zynq-7000 AP SoC [ 参 照 84]<br />

Mentor Graphics Nucleus RTOS [ 参 照 85]<br />

Micrium µC/OS RTOS [ 参 照 86]<br />

MontaVista Software MontaVista Carrier Grade Linux [ 参 照 87]<br />

Open Kernel Labs OKL4 Microvisor [ 参 照 90]<br />

QNX QNX Neutrino RTOS [ 参 照 91]<br />

Quadros<br />

RTXC RTOS<br />

機 能 の 詳 細 は、 117 ページの 「Quadros Systems の 機 能 」 を 参 照 し<br />

てください。<br />

[ 参 照 92]<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 116<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 4 章 : ソフトウェア デザイ ンの 考 慮 事 項<br />

表 4‐2 : OS、 RTOS、 およびミドルウェア 製 品 ( 続 き)<br />

Alliance メンバー OS、 RTOS、 および ミ ド ルウ ェ ア 製 品 詳 細<br />

Real Time Engineers Ltd. FreeRTOS [ 参 照 93]<br />

Sciopta Sciopta RTOS [ 参 照 94]<br />

Sierraware<br />

オープン ソースの SierraVisor Hypervisor および SierraTEE Trusted<br />

Execution Environment<br />

[ 参 照 95]<br />

SYSGO PikeOS [ 参 照 96]<br />

[ 参 照 97]<br />

Timesys LinuxLink [ 参 照 99]<br />

Wind River VxWorks、 Linux、 および Workbench IDE [ 参 照 100]<br />

Quadros Systems の 機 能<br />

Quadros Systems からの RTXC RTOS には、 次 の よ う な 機 能 があ り ます。<br />

• どの ROM および RAM バジェットにもフィットするような 小 さいスケーラブルなフットプリント ( 通 常 25KB<br />

以 下 )<br />

• ソース コードを ARM DS-5 開 発 ツールを 使 用 する 作 業 中 のプ ロ ジ ェ ク ト 用 のサンプル コード と 共 に 提 供<br />

• アプ リ ケーシ ョ ンの RTOS を 構 築 しやすくするための RTXCgen グラフィカル コンフィギュレーション プ ロ グ<br />

ラム<br />

• システム パフ ォーマン スおよびビヘイ ビ アーを 視 覚 化 する RTXCview グラフィカル トレース ツール<br />

• 非 対 称 マルチプ ロ セ ッ シング (AMP) に 使 用 可 能 な RTXC/mp<br />

• ラ イ セン ス 使 用 料 あ り<br />

次 の ミ ド ルウ ェア スタックは、 RTXC RTOS と 共 にサポート されます。<br />

• イーサネッ ト TCP/IP v4 および v6<br />

• イーサネッ ト パケ ッ ト の 優 先 順 位 付 け<br />

• イーサネッ ト セキュ リ テ ィ スイート<br />

• アプ リ ケーシ ョ ン サーバー :<br />

° AJAX、 JSON、 および XML-RPC<br />

° 持 続 的 ソ ケ ッ ト (WebSockets) を 含 むリ モー ト デバイ ス 管 理<br />

° リモート GUI<br />

• USB ホス トおよびデバイス<br />

• 高 パフ ォーマン スのフ ェ イルセーフ ファイル システム<br />

° NAND および NOR<br />

° SD、 MMC、 およびフラッシュ ドライブ<br />

Zynq-7000 AP SoC および ZC702 開 発 ボー ド のサポー ト<br />

• タ イ マー 初 期 化<br />

• UART 初 期 化<br />

• MMU 初 期 化<br />

• 割 り 込 みコ ン ト ローラーの 設 定 および 初 期 化<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 117<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 4 章 : ソフトウェア デザイ ンの 考 慮 事 項<br />

• 命 令 およびデータ キ ャ ッ シ ュ の 初 期 化<br />

• ARM Vector Floating Point (VFP) および NEON のア ドバンス サポー ト<br />

° VFP または NEON を 使 用 する タ ス ク に 対 し て VFP レ ジ ス タ の コ ンテキ ス ト 拡 張 を 明 示 的 ま たは 自 動 的 に イ<br />

ネーブル<br />

° コンテキスト ス イ ッ チのオーバーヘ ッ ド を 削 減 する VFP および NEON レジスタ セ ッ ト を オプシ ョ ン でサ<br />

ポー ト<br />

° VFP および NEON レジスタ セッ トの 割 り 込 みレイテンシおよびコンテキス ト ス イ ッ チのオーバーヘ ッ ド を<br />

最 小 限 にする Lazy Swapping を 使 用<br />

° 手 動 に よ る 一 時 停 止 および 自 動 ま たは 手 動 の 再 開 と いった VFP コ ンテキ ス ト の 制 御 。 詳 細 レベルの 制 御 に<br />

より、VFP および NEON 以 外 の 実 行 パスで VFP レジスタのコンテキス ト オーバーヘ ッ ド を 最 小 限 にで き ま<br />

す。 隔 離 さ れたフ ァ ン ク シ ョ ン を 除 き、 大 部 分 が 整 数 の 環 境 (VFP または NEON をほとんど 必 要 と しないタ<br />

スク) で 便 利 です。 Lazy Swapping と 一 緒 に 使 用 する と 、 明 示 的 な 一 時 停 止 制 御 を 使 用 し てシ ス テム ス ルー<br />

プ ッ ト 全 体 を 改 善 で き ます。<br />

Real Time Engineers Ltd.<br />

FreeRTOS は、 カ ス タ ム コー ド を 明 ら かにする 必 要 な く 無 償 で 使 用 で き ます。 FreeRTOS では、 タ ス ク および 割 り 込 み<br />

サービ ス ルーチン 間 の 通 信 および 同 期 のために、 リ アル タイム タスク、 キュー、バイナリ セマフォ、 カウンテ ィ ン<br />

グ セマフォ、ミ ューテッ ク スなどがサポー ト されます。FreeRTOS メモリ フットプリントは 約 4 ~ 9KB です。 freeRTOS<br />

でサポー ト される ミ ドルウ ェア スタックには、 次 が 含 まれます。<br />

• FAT ファイル システム<br />

• UDP/IP および TCP/IP スタック<br />

• CLI<br />

• Safety<br />

• CyaSSL SSL/TSL<br />

マルチ OS<br />

Zynq-7000 AP SoC のデュ アル コア ARM Cortex-A9 MPCore プロセッサの CPU コ ア 両 方 で 実 行 さ れ る 複 数 のオペレー<br />

ティング シ ス テム を イ ネーブルにする 方 法 は 複 数 あ り ます。 対 称 および 非 対 称 マルチプ ロ セ ッ シング オプシ ョ ンの<br />

詳 細 は、 次 を 参 照 し て く だ さ い。<br />

• 『Zynq-7000 All Programmable SoC ソ フ ト ウ ェ ア 開 発 者 向 けガ イ ド 』 (UG821) [ 参 照 7]<br />

• ザイ リ ンクス マルチ OS サポー ト Wiki ページ [ 参 照 55]<br />

単 純 な AMP<br />

単 純 なマルチ OS の AMP インプリ メンテーションには、たとえば Linux OS およびベアメ タル アプ リ ケーシ ョ ン の 実<br />

行 、 ま たは 2 つのベア メ タル アプ リ ケーシ ョ ンの 実 行 を 含 むこ と がで き ます。<br />

ARM プロセッサの 2 つの CPU コアは、 メモリ とペリフェラルを 共 有 します。 非 対 称 マルチプロセッシング (AMP)<br />

は、 どち ら の コ ア も 独 自 のオペレーテ ィ ング システムまたはベアメ タル アプ リ ケーシ ョ ンを 実 行 できる メ カニズム<br />

で、 共 有 リ ソース を 介 し て こ れら のアプ リ ケーシ ョ ンが 疎 結 合 さ れます。 図 4-4 は、 Linux OS およびベアメ タル アプ<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 118<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 4 章 : ソフトウェア デザイ ンの 考 慮 事 項<br />

リケーションを 使 用 した AMP の 例 を 示 し ています。 120 ページの 図 4-5 は、 Linux OS および RTOS を 使 用 した AMP<br />

の 例 を 示 し ています。<br />

X-Ref Target - Figure 4-4<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

図 4‐4 : Linux OS およびベアメ タル アプリケーシ ョ ンを 使 用 した AMP<br />

図 4-4 に 示 すよ う に、 Linux OS およびベアメ タル アプ リ ケーシ ョ ンを 使 用 した AMP は 次 の よ う に 動 作 し ます。<br />

• Linux は CPU0 で 実 行 されます。<br />

° この 後 、 Linux が FSBL に よ り メ モ リ に 読 み 込 まれた CPU1 実 行 フ ァ イルを 開 始 し ます。<br />

• ベア メ タル アプ リ ケーシ ョ ンは CPU1 の 専 用 メ モ リ 空 間 で 実 行 さ れます。<br />

° MMU0 は Linux で 通 常 どお り 使 用 さ れます。 MMU1 はベア メ タル アプ リ ケーシ ョ ンのメモ リ コ ン テ キ ス ト<br />

を 定 義 する ために 使 用 さ れますが、 特 別 の コー ド は 必 要 あ り ません。<br />

° ベア メ タル アプ リ ケーシ ョ ンは、 Linux メモリ コ ンテキス ト 内 では 実 行 されません。<br />

° Linux は CPU1 で 使 用 さ れる メ モ リ を 認 識 し ません。<br />

アプ リ ケーシ ョ ンを 含 めるために MMU を 使 用 できます。<br />

° MMU は、 アプ リ ケーシ ョ ンが 通 常 ア クセスでき るア ド レス ( メモリ と AXI デバイ ス) を 定 義 します。<br />

° CPU1 の Linux メ モ リ 空 間 ま たは 共 有 デバイ ス (ICD または SCU) へのア ク セ ス は 制 限 さ れませんが、 そのよ<br />

うなアクセスが 発 生 した 場 合 は Linux で 検 出 で き、 適 切 な 操 作 を 実 行 で き ます。<br />

• インプリ メンテーション 方 法<br />

° Linux とベアメタル アプ リ ケーシ ョ ン 間 の 通 信 には OCM が 使 用 されます。<br />

° OCM キ ャ ッ シ ュは 決 定 性 を 向 上 する ためデ ィ スエーブルにな り ます。<br />

• こ の 使 用 例 は、 ザ イ リ ン ク ス テクニカル サポー ト によ り サポー ト されます。<br />

詳 細 は、 次 の 資 料 を 参 照 し て く だ さ い。<br />

• 『シンプルな AMP : 2 つの Cortex-A9 プ ロ セ ッ サ 上 で 動 作 するベア メ タル システム』 (XAPP1079) [ 参 照 37]<br />

• 『シンプルな AMP : 2 つの Zynq SoC プ ロ セ ッ サ 上 で 動 作 する Linux およびベア タル システム』 (XAPP1078) [ 参<br />

照 36]<br />

<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 119<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 4 章 : ソフトウェア デザイ ンの 考 慮 事 項<br />

X-Ref Target - Figure 4-5<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

図 4‐5 : Linux OS および RTOS を 使 用 した AMP<br />

図 4-5 に 示 すよ う に、 Linux OS および RTOS を 使 用 した AMP は 次 の よ う に 動 作 し ます。<br />

• ファームウェアはアドレス 0x0000_0000 の 専 用 メ モ リ 空 間 で 実 行 さ れます。<br />

° FreeRTOS カーネルは、 Linux メモリ コンテキス ト 内 で 実 行 されません。<br />

° Linux は、 ほかのデバイ ス メ モ リ を 読 み 出 すの と 同 じ よ う に、 こ のア ド レ ス 空 間 を 読 み 出 しおよび 書 き 込 み<br />

できます。<br />

• MMU は、 フ ァーム ウ ェ アの Linux への 影 響 を 制 限 し ます。<br />

° MMU は、 アプ リ ケーシ ョ ンが 通 常 ア クセスでき るア ド レス ( メモリ と AXI デバイ ス) を 定 義 します。<br />

° 粒 度 は 1MB です。 2 つのデバイ スが 1MB 領 域 にあ る 場 合 は、 それら を 隔 離 する こ と はで き ません。<br />

° GIC は、 フ ァーム ウ ェ ア と Linux 間 で 共 有 さ れます。<br />

- 割 り 込 みは、 GIC によ りファームウェアまたは Linux に 配 線 されます。<br />

- ファームウェアにより GIC のリコンフィギュレーションが 阻 止 されることはありません。<br />

• Linux カーネルによ り フ ァームウ ェアの 破 損 は 回 避 されません。<br />

° ただ し、 違 反 は 明 示 的 な 呼 び 出 し ま たは 特 定 タ イ プの ク ラ ッ シ ュ か ら し か 発 生 し ません。<br />

° システム デザ イ ンおよび 包 括 的 なテ ス ト に よ り 、 実 際 の 懸 念 を 軽 減 で き る こ と があ り ます。<br />

• インプリ メンテーション 方 法<br />

° ほかのフ ラ ッ ト RTOS に 適 用 可 能 です。<br />

° カーネルおよびユーザー 空 間 などの 仮 想 メ モ リ を 使 用 し て RTOS に 適 用 可 能 な 場 合 があ り ます。<br />

120 ページの 図 4-5 に 示 す Linux OS および FreeRTOS AMP デザイ ンの 概 要 は、 『PetaLinux ツール ユーザー ガイド :<br />

Zynq All Programmable SoC Linux-FreeRTOS AMP ガイド』 (UG978) [ 参 照 17] を 参 照 して く ださい。<br />

ARM Cortex‐A9 TrustZone<br />

Zynq-7000 AP SoC では Trusted Base System Architecture 仕 様 の 推 奨 事 項 に 基 づいた ARM Cortex-A9 TrustZone テ ク ノ ロ<br />

ジがサポー ト されます。 このテク ノ ロジを 使 用 する と、 Trusted Execution Environment (TEE)、 セキュリティ 意 識 の 高<br />

いアプ リ ケーシ ョ ン、 セキュア サービ ス、 または Trusted Application (TA) を サポー ト す る プ ラ ッ ト フ ォ ーム を 開 発 で<br />

きます。TEE は 小 型 のセキ ュ ア カーネルで、 GlobalPlatform の 産 業 フ ォーラ ムで 展 開 された TEE 仕 様 に 従 って、 標 準<br />

API を 使 用 し て 通 常 開 発 さ れます。<br />

TrustZone テクノロジでは、 通 常 ド メインに 加 え、 モニター モードおよびセキ ュ ア ドメインとして 知 られる 操 作 モー<br />

ド を 作 成 する こ と で 別 の Rich Operating System および TEE 環 境 を 開 発 で き ます。 セキ ュ ア ド メ イ ン には、 通 常 ド メ<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 120<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 4 章 : ソフトウェア デザイ ンの 考 慮 事 項<br />

イ ン と 同 じ 機 能 があ り ますが、 別 の メ モ リ 空 間 で 動 作 し ます。 セキ ュ ア モニ ターは、 仮 想 ゲー ト キーパー と し て 動 作<br />

し、 ド メ イ ン 間 の 移 行 を 制 御 し ます。<br />

開 発 およびデバ ッ グ ツール<br />

ユーザー アプ リ ケーシ ョ ン をサポー ト する のに 使 用 可 能 な 開 発 およびデバ ッ グ ツールについて、 次 に 説 明 し ます。<br />

ザイリンクス ソフトウェア 開 発 キット (SDK)<br />

ザイ リ ンクス ソ フ ト ウ ェ ア 開 発 キ ッ ト (SDK) には、 ソ フ ト ウ ェア プ ラ ッ ト フ ォーム 開 発 用 の ド ラ イバー、 ラ イ ブ ラ<br />

リ、ボード サポー ト パッケージ、 完 全 オペレーティング システムなどを 含 むさまざまなザイ リンクス ソフトウェア<br />

パッケージが 含 まれます。<br />

ヒント : ソフトウェア 開 発 キッ トおよびエンベデッド デザイ ンの 使 用 に 関 するその 他 の 情 報 への リ ン クは、<br />

Documentation Navigator の [Software Development Kit] デザイ ン ハブを 参 照 して く ださい。 詳 細 は、 181 ページの 「 関<br />

連 するデザ イ ン ハブ」 を 参 照 して く ださい。<br />

ザイ リ ンクス SDK は、 次 を 含 む 完 全 な 開 発 環 境 です。<br />

• プラッ ト フォームを 認 識 した BSP 生 成<br />

• メモリ テス トから TCP/IP エコー サーバーまでの 範 囲 のサンプル アプ リ ケーシ ョ ン コードの 生 成<br />

• クロスコンパイル ツール<br />

• アプ リ ケーシ ョ ン プロファイ リ ング<br />

• リンカー スクリプトの 生 成<br />

• JTAG を 使 用 したデバッグ インターフェイス<br />

• ターゲッ ト 通 信 フレームワーク<br />

• リモート デバ ッ グ<br />

• ヘテロジニアス マルチコアのデバッ グ<br />

• フラッシュ ローダー<br />

• セキ ュ アおよび 非 セキ ュ ア 環 境 用 のブー ト ファイル 作 成<br />

• FSBL (First-Sage Boot Loader) の 生 成<br />

SDK では、 JTAG を 介 した Linux カーネルのデバッ グ、 および TCF (Target Communications Framework ) エージ ェ ン ト<br />

と GNU GDB インフラスト ラクチャを 使 用 したのスレッド レベルのデバッグがサポート されます。<br />

ARM DS‐5 Development Studio<br />

ARM DS-5 Development Studio は、 Linux、 Android、および RTOS デバ ッ グ をサポー ト する 完 全 な 開 発 環 境 です。 DS-5<br />

で Zynq-7000 AP SoC を 使 用 する 詳 細 については、 『Xilinx XC702 DS-5 Getting Connected Guide』 [ 参 照 101] お よ び<br />

『ARM® DS-5 ツールチェーンを 使 用 したZynq-7000 プラッ ト フォーム ソフトウェアの 開 発 』 (XAPP1185) [ 参 照 42] を<br />

参 照 し て く だ さ い。<br />

IAR<br />

IAR システムのデバッガーでは、 OS および RTOS カーネル レベルのデバッグがサポート されます。 詳 細 は、 IAR の<br />

Integrated Solutions Partner Program ウェブサイト [ 参 照 83] を 参 照 して く ださい。<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 121<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 4 章 : ソフトウェア デザイ ンの 考 慮 事 項<br />

ライブラリおよびミ ドルウェア<br />

このセクションでは、ライブラリとミドルウェアを 使 用 してアプリケーション プ ロ グ ラ ミ ン グの 生 産 性 と 信 頼 性 を 改<br />

善 する 方 法 について 説 明 し ます。<br />

ライブラリ<br />

ラ イ ブ ラ リ は、 共 通 の 便 利 な フ ァ ン ク シ ョ ン をプ ロ グ ラ ムで 再 利 用 可 能 な 1 つのユニ ッ ト にま と める 便 利 な 方 法 で<br />

す。 ラ イ ブ ラ リ はイ ンプ リ メ ンテーシ ョ ンの 詳 細 を 抽 象 化 し た も ので、 プ ロ グ ラ ムに 簡 単 に 統 合 で き る テ ス ト 済 みお<br />

よび 最 適 化 済 みのビヘイ ビ アーを 提 供 し ます。 ラ イ ブ ラ リ では、 ス タ テ ィ ッ ク およびダ イ ナ ミ ッ ク リンクがサポート<br />

されます。<br />

ライブラリは、 よく 使 用 されるライブラリとドメイン 別 ライブラリに 分 類 できます。<br />

• よく 使 用 されるライブラリの 例 は、GNU C、 GNU C++ ライブラリ、POSIX Pthread ライブラリなどです。<br />

• ドメイン 別 ライブラリの 例 は、Intel Threading Building Blocks ( 並 列 処 理 )、 FFmpeg audio、 OpenCV、 DRM (Direct<br />

Rendering Manager)、KMS (Kernel Mode Setting)、ARM OpenMAX DL サンプル ソフトウェア ライブラリ (オーディ<br />

オ/ビデオ 処 理 )、 および MATLAB エンジン ライブラリ ( 数 学 的 処 理 ) などです。<br />

ライブラリの 利 点<br />

• ビヘイビアーおよびコードを 再 利 用 できるよ うにします (1 回 記 述 する だけで 何 回 も 再 利 用 )。<br />

• 下 位 のハー ド ウ ェ アおよび ソ フ ト ウ ェ アを 抽 象 化 する こ と で、 アプ リ ケーシ ョ ン 開 発 の 速 度 が 上 が り ます。<br />

• テス ト リ ソ ース を 削 減 する 簡 単 に 管 理 可 能 な コー ド を 提 供 し ます。<br />

たとえば、 GNU C はテ ス ト 済 みの ラ イ ブ ラ リ なので、 バグは 定 期 的 に 修 正 さ れます。 こ のため、 ラ イ ブ ラ リ を 使 用<br />

する こ と で、 かな り のテ ス ト および 開 発 リ ソース を 節 約 で き ます。<br />

スタンドアロン システムのザイ リ ン ク ス ライブラリ<br />

ザイ リ ンクス ソ フ ト ウ ェ ア 開 発 キ ッ ト (SDK) には、Zynq-7000 AP SoC プロセッシング システム (PS) およびプログラ<br />

マブル ロジック (PL) コ ンポーネン 用 の 再 利 用 可 能 な ラ イ ブ ラ リ と ド ラ イバーのセ ッ ト が 含 まれます。 こ れら の ラ イ<br />

ブラ リ およびド ラ イバーには、 次 が 含 まれます。<br />

• libxil.a : ペリフェラルのデバイス ドライバー<br />

• LibXil MFS : メモリ ファイル システム<br />

• LibXil FFS : オープン ソース インプリ メンテーションに 基 づく 汎 用 の FAT ファイル システム。 主 に SD/eMMC ド<br />

ライバーと 一 緒 に 使 用 され、 ドライバーとのリンク 用 にグルー レイヤーがインプリ メントされています。<br />

• LibXil Flash : パラレル フラッシュ デバイ ス 用 に 読 み 出 し、 書 き 込 み、 削 除 、 ロ ッ ク、 ロ ッ ク 解 除 、 デバイ ス 特<br />

有 のフ ァ ン ク シ ョ ンなど を 提 供 する ラ イ ブ ラ リ<br />

• LibXil Isf : SPI/QSPI でザイ リ ン ク スのイ ンシステム フラッシュ ハー ド ウ ェ アおよびシ リ アル フ ラ ッ シュをサ<br />

ポー ト する イ ンシステム フラッシュ ライブラリ<br />

• LibXil SKey : ユーザー 定 義 の eFUSE ビットのプログラミング メ カニズム を 提 供 する ラ イ ブ ラ リ 。 PS eFUSE は<br />

RSA プライマリ キー ハッシュ ビッ トおよびユーザー 機 能 ビッ トを 保 持 します。 これらのビッ トは、Zynq-7000<br />

AP SoC プロセ ッサ 機 能 の 一 部 を イネーブルまたはデ ィ スエーブルにでき ます。<br />

• lwIP : サード パーテ ィ の 軽 量 TCP/IP ネッ ト ワーク ライブラリ<br />

ライブラリは、 リンケージ オブジェ ク ト のタ イプにによってス タテ ィ ッ ク と ダイナ ミ ッ クの 2 種 類 に 分 類 さ れます。<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 122<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 4 章 : ソフトウェア デザイ ンの 考 慮 事 項<br />

スタティ ック ライブラリ<br />

スタティック ライブラリは、 リンク 後 にアプリケーション イメージの 一 部 になるオブジェクト ファイルのコレク<br />

ションです。Linux の 場 合 、 こ れら の ラ イ ブ ラ リ はアーカ イ ブ と 呼 ばれます。 ス タ テ ィ ッ ク ラ イ ブ ラ リ のフ ァ イル 名<br />

は、 通 常 .a で 終 わ り ます。<br />

利 点<br />

• 使 用 方 法 が 簡 単 で、 外 部 依 存 性 はコ ンパイル 時 に 解 決 さ れます。<br />

• コ ンパイル 時 間 が 短 縮 さ れます。<br />

• 実 行 速 度 がわずかに 上 昇 し ます。 理 論 上 、 実 行 フ ァ イルに リ ン ク さ れた ス タ テ ィ ッ ク ELF ライブラリのコード<br />

は、 共 有 ラ イ ブ ラ リ やダ イナ ミ ッ ク に 読 み 込 まれた ラ イ ブ ラ リ よ り も 1% ~ 5% 速 く 実 行 さ れます。<br />

• リンカーはアプリケーションで 必 要 とされるオブジェクト フ ァ イルを 検 索 し て 抽 出 する ので、 makefile のリンク<br />

手 順 が 単 純 にな り ます。<br />

欠 点<br />

• スタティック ラ イ ブ ラ リ を 変 更 し た 場 合 、 すべての 依 存 アプ リ ケーシ ョ ン を 再 構 築 する 必 要 があ り ます。<br />

• 実 行 フ ァ イルの メ モ リ フットプリントが 大 きくなります。<br />

• オブジェ ク ト ラ イ ブ ラ リ を 共 有 する プ ロ セスが 同 時 に 実 行 さ れる 場 合 、 コー ド と オブジ ェ ク ト ライブラリの<br />

データ セ ク シ ョ ンが 各 プ ロ セスのア ド レ ス 空 間 にコ ピーさ れます。<br />

使 用 する 状 況<br />

スタティック リ ン ク を 使 用 する と 、 ターゲ ッ ト アプ リ ケーシ ョ ン と 一 緒 に 依 存 ラ イ ブ ラ リ を 配 信 する 必 要 はな く な<br />

る ので、 アプ リ ケーシ ョ ン を 配 信 する 最 も 簡 単 な 方 法 であ る こ と が よ く あ り ます。<br />

ダイナミ ック ライブラリ<br />

ダイナミ ック ラ イ ブ ラ リ は、 それら を 使 用 する アプ リ ケーシ ョ ンが 実 行 さ れた と き に 読 み 込 まれます。 オブジ ェ ク ト<br />

ラ イ ブ ラ リ の 単 一 コ ピーが 複 数 アプ リ ケーシ ョ ン 間 で 共 有 さ れる ので、 その ラ イ ブ ラ リ の コー ド およびデータ セク<br />

シ ョ ンはアプ リ ケーシ ョ ンのア ド レ ス 空 間 の 一 部 にはな り ません。 共 有 さ れたオブジ ェ ク ト は、 それぞれのアプ リ<br />

ケーシ ョ ン プログラム エリアにはコピーされません。 代 わりに、そのライブラリを 必 要 とする 最 初 のアプリケーショ<br />

ンが 実 行 さ れた と き に、 オブジ ェ ク ト ラ イ ブ ラ リ の 単 一 コ ピーが ラ ン タ イ ム 時 に メ モ リ に 読 み 込 まれます。<br />

Linux の 場 合 、 ダ イナ ミ ッ ク ライブラリ フ ァ イルの 命 名 規 則 に よ り 、 最 初 に lib が 付 いて、 その 後 ラ イ ブ ラ リ 名 、<br />

.so と い う 文 字 列 が 付 いて、 バージ ョ ン 番 号 が 付 き ます。 バージ ョ ン 番 号 は、 イ ン ターフ ェ イ ス ま たはイ ンプ リ メ ン<br />

テーシ ョ ンが 変 更 さ れる と 増 加 し ます。<br />

利 点<br />

• スタティック ライブラリよりも 実 行 ファイルのメモリ フットプリントが 小 さくなります。<br />

• オブジェ ク ト ラ イ ブ ラ リ が 変 更 さ れた 場 合 は、 依 存 する アプ リ ケーシ ョ ン を 単 に 実 行 し 直 すだけです。<br />

欠 点<br />

• ライブラリは、 ランタイム ローダーに 依 存 します。 Linux の 場 合 、 ダ イナ ミ ッ ク ローダー (ld.so) は GNU C ラ イ<br />

ブ ラ リ の 一 部 で、 すべての 依 存 する 共 有 ラ イ ブ ラ リ を 読 み 込 みます。<br />

• シンボル リ ロ ケーシ ョ ンは、 ラ ン タ イ ム 時 に 実 行 さ れます。 こ のため、 共 有 ダ イナ ミ ッ ク ラ イ ブ ラ リ を 使 用 す<br />

るアプリケーションは、スタティ ック ラ イ ブ ラ リ の 同 等 の も の よ り も 実 行 する のに 少 し 時 間 がかか る こ と があ り<br />

ます。<br />

ターゲッ ト プ ラ ッ ト フ ォームで 実 行 フ ァ イルを 実 行 する には、 カ ス タ ムの 共 有 ラ イ ブ ラ リ パスをダイナミ ッ ク リン<br />

カーの 検 索 パスに 追 加 しておく 必 要 があ り ます。 LD_LIBRARY_PATH 環 境 変 数 は、 カ ス タ ム 共 有 ラ イ ブ ラ リ が 一 部<br />

の 特 定 ロ ケーシ ョ ンに 含 まれる ラ ン タ イ ム リンカーに 指 定 されます。<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 123<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 4 章 : ソフトウェア デザイ ンの 考 慮 事 項<br />

使 用 する 状 況<br />

ダイナミ ック ラ イブラ リ は、 ラ イブラ リ が 複 数 のアプ リ ケーシ ョ ン 間 で 共 有 される 場 合 に 使 用 し ます。 た と えば、<br />

GNU C ライブラリのようなエンベデッド ランタイム ラ イ ブ ラ リ を こ の 方 法 で 使 用 し ます。<br />

ザイ リ ンクス Zynq-7000 AP SoC のテクニカル ヒントには、ZC702 プラッ ト フォームで ARM NEON ラ イ ブ ラ リ を 使<br />

用 する 例 が 示 されています。 詳 細 は、「ザイリンクス Zynq-7000 AP SoC Spectrum Analyzer パー ト 2 - ARM NEON ラ<br />

イブラ リの 構 築 に 関 するテクニカル ヒント」 [ 参 照 62] を 参 照 して く ださい。<br />

このテクニカル ヒントには、Zynq-7000 AP SoC ZC702 プラッ ト フォームをターゲッ トにしたフィルター フ ァ ン ク<br />

シ ョ ンのセ ッ ト を 取 得 し て、 構 築 する プ ロ セスが 説 明 さ れています。 Zynq-7000 AP SoC の 処 理 機 能 の 利 点 を 活 かす こ<br />

と ので き る 多 く のアプ リ ケーシ ョ ンで、 フ ィ ルターで 使 用 さ れる 複 雑 な 計 算 、 ビデオ 操 作 、 信 号 処 理 が 実 行 さ れます。<br />

ARM コ ミュニティ 内 のオープン ソース プロジェク トには、NEON に よ り 高 速 化 さ れる 共 通 の 便 利 な 関 数 の ラ イ ブ ラ<br />

リ が 含 まれてお り 、 アプ リ ケーシ ョ ンの 開 発 時 に 使 用 で き ます。 こ れが、 Ne10 プロジェク トおよび Ne10 ライブラリ<br />

に 発 展 し ています。<br />

ミドルウェア<br />

ミドルウェアは、オペレーティング システムとアプリケーショ ン 層 間 で 実 行 されるライブラ リ セ ッ ト です。 エンベ<br />

デッ ド シ ス テムの 場 合 、 ミ ド ルウ ェ アはオペレーテ ィ ング システムの 上 にあるシステム ソフトウェアのこともあれ<br />

ば、 オペレーテ ィ ン グ シ ス テムの 一 部 と し て 含 まれる こ と も あ り ます。 た と えば、 TCP/IP 通 信 ス タ ッ ク の よ う な 共<br />

通 の ミ ド ルウ ェアは 典 型 的 な 近 代 のオペレーテ ィ ング システムの 一 部 です。<br />

ミ ドルウェアは、 ソフ ト ウェア スタ ッ クを 中 央 に 集 中 する こ とで 複 雑 さを 軽 減 します。 これがないと、 アプリケー<br />

ション 層 でソフトウェア スタックが 重 複 してしまいます。 ミ ドルウェアには、 MOM (Message-Oriented Middleware)、<br />

RPC (Remote Procedure Call)、ネッ ト ワーク プロ ト コル (デバイ ス ド ラ イバー 層 の 上 、アプ リ ケーシ ョ ン 層 の 下 ) な ど、<br />

さまざまな 種 類 があります。<br />

例<br />

• TCP/IP スタック<br />

• USB ホス ト スタック<br />

• CAN (Controller Area Network) スタック<br />

• マルチ メディ ア ミドルウェア スタック<br />

利 点<br />

• 強 力 なアプ リ ケーシ ョ ン を 高 速 開 発<br />

• アプ リ ケーシ ョ ン 独 自 の も ののみを 実 行<br />

• ス ケーラ ビ リ テ ィ および 抽 象 性 をサポー ト<br />

• 信 頼 性<br />

使 用 例<br />

lwIP は、 BSD ラ イ セン ス 下 で 使 用 可 能 なオープン ソースの TCP/IP プロ ト コル セッ トで、 オペレーティング シ ス テ<br />

ムと 一 緒 に 使 用 はできますが、 オペレーティング シ ス テム と の 依 存 関 係 がないス タ ン ド ア ロ ン ス タ ッ ク です。 使 用<br />

例 では、lwIP (lightweight IP) ネッ ト ワーク スタックなどのミ ドルウェアをスタンドアロン アプ リ ケーシ ョ ンに 統 合 す<br />

る 方 法 を 示 します。<br />

ザイ リ ンクス ソ フ ト ウ ェ ア 開 発 キ ッ ト (SDK) では、lwIP ソフトウェアをカスタマイズできます。lwIP ス タ ッ ク では、<br />

IP、 ICMP、 IGMP、 UDP、 TCP、 およびその 他 のネットワーク プロ ト コルがサポート されます。 lwIP ス タ ッ ク を 使 用<br />

する と、 アプリ ケーシ ョ ン コ アの 開 発 に 集 中 し て、 TCP/IP インプリ メンテーションは lwIP ス タ ッ ク に 任 せる こ と が<br />

できます。<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 124<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 4 章 : ソフトウェア デザイ ンの 考 慮 事 項<br />

オープン ソースのネッ ト ワーク ス タ ッ ク をアプ リ ケーシ ョ ン 開 発 に 統 合 する 方 法 については、 『LightWeight IP (lwIP)<br />

アプ リ ケーシ ョ ン 例 』 (XAPP1026) [ 参 照 35] を 参 照 して く ださい。<br />

ブー ト ローダー<br />

ブー ト ローダーは、オペレーテ ィ ング シ ス テムな どの 次 のレベルの ソ フ ト ウ ェ アの 実 行 を 準 備 する ためにシ ス テム を<br />

初 期 化 する ソ フ ト ウ ェ アです。 通 常 、 各 オペレーシ ョ ン システムにはそれ 専 用 のブート ローダーのセッ トが 含 まれま<br />

す。 ブー ト ローダーには、 OS カーネルを 起 動 する 複 数 の 方 法 が 含 まれる ほか、 カーネル 環 境 をデバ ッ グ ま たは 修 正<br />

するためのコマンド も 含 まれます。<br />

ブー ト プロセスの 詳 細 は、 完 全 なシステム デザイ ン と、 OS 選 択 ( 組 み 込 み Linux、 RTOS、 またはベアメタル OS) に<br />

よって 異 なります。 ブート ステージ 数 は、 システム デザイ ンにっ よ って 変 わ り ます。 こ のセ ク シ ョ ンでは、 電 源 投<br />

入 から アプ リ ケーシ ョ ン 実 行 までの Zynq-7000 AP SoC のブー ト フローについて 説 明 します。<br />

ブート プロセス<br />

Zynq-7000 AP SoC ブー ト プ ロ セスには、 シ ス テム 要 件 に 基 づいてマルチス テージ ブートにできます。 このセクショ<br />

ンでは、 大 き く 3 つに 分 けたブー ト ステージとブート プロセスでのそれぞれの 役 割 について 説 明 し ます。125 ページ<br />

の 図 4-6 は、 組 み 込 み Linux と Zynq-7000 AP SoC でのアプ リ ケーシ ョ ン コード の 起 動 をステージ 別 に 示 しています。<br />

電 源 が SoC に 適 用 される と、 ブー ト プロセスが BootROM から 開 始 されます。 このプロセスによ り、 オンチップ メ<br />

モリ (OCM) から FSBL (First-Stage Boot Loader) が 読 み 込 まれて 実 行 さ れ 始 めます。 FSBL は 特 定 の 初 期 化 を コ ン フ ィ<br />

ギュレーションし、 ソフ ト ウェア アーキテ ク チ ャ に 基 づいて、 組 み 込 み Linux の 場 合 は U-Boot のよ うな SSBL<br />

(Second-Stage Boot Loader) を 初 期 化 し て 実 行 し ます。 FSBL と SSBL のいずれかま たは 両 方 が RTOS (ま たは 組 み 込 み<br />

Linux) とアプリケーション コー ド を 開 始 し ます。<br />

X-Ref Target - Figure 4-6<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

図 4‐6 : ブート フロー<br />

ステージ 0<br />

パワーオンまたはリセッ ト で、 ARM コアは BootROM からの 初 期 化 コードを 実 行 します。 BootROM コードは、 各<br />

Zynq-7000 AP SoC に 含 まれる 工 場 で 予 めプロ グ ラ ム 済 みのコー ド なので、 変 更 でき ません。 BootROM コードでは、<br />

ブー ト モード ピ ン を 読 み 出 し て 次 のレベルの ローダーのデバイ スでの 位 置 が 決 定 さ れます。 ブー ト モード 設 定 に<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 125<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 4 章 : ソフトウェア デザイ ンの 考 慮 事 項<br />

よって、FSBL が NAND、 パラレル NOR、 シリアル NOR (Quad-SPI)、 または SD (Secure Digital) フラッシュ メ モ リ か<br />

ら OCM にコピーされます。<br />

図 4-7 は、 標 準 ( 非 セキュア) ブー ト フローを 示 しています。セキュア ブー ト フ ローについては、 36 ページの 「エン<br />

ベデ ッ ド デバイ スのセキ ュ リ テ ィ 」 を 参 照 して く ださい。<br />

X-Ref Target - Figure 4-7<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

図 4‐7 : 非 セキュア ブート フロー<br />

ステージ 1<br />

FSBL が BootROM か ら 実 行 制 御 を 受 け 取 り 、 ブー ト モー ド 設 定 に 基 づいて、OCM または execute-in-place フ ラ ッ シ ュ<br />

のいずれか ら 実 行 し ます。 FSBL は PS を 初 期 化 し、 ブー ト デバイ スのビ ッ ト ファイルを 検 索 します。 見 つかったら、<br />

FSBL はそのビ ッ ト ファイルを PL に 書 き 込 みます。ビ ッ ト フ ァ イルが 見 つかったかど う かに 関 係 な く 、FSBL はブー<br />

ト デバイ スか ら イ メ ージすべてが 読 み 出 さ れる まで、 アプ リ ケーシ ョ ン バイナリ とデータ フ ァ イルを メ モ リ に 読 み<br />

込 みます。 こ の 後 、 FSBL が 読 み 込 まれた 最 初 のアプ リ ケーシ ョ ン バイナリ を 実 行 し 始 めます。<br />

通 常 、 FSBL は 外 部 RAM を 初 期 化 し て、 SSBL (Second-Stage Boot Loader) またはスタンドアロン アプ リ ケーシ ョ ン を<br />

読 み 込 みます。 ソ フ ト ウ ェ ア アーキテ ク チ ャ に 基 づいて、 組 み 込 み Linux の よ う な 完 全 機 能 の OS の 場 合 は、 SSBL <br />

(た と えば、 組 み 込 み Linux の 場 合 は U-Boot) が 初 期 化 さ れて 実 行 さ れます。 FSBL と SSBL のいずれか ま たは 両 方 が<br />

RTOS (ま たは 組 み 込 み Linux) と アプ リ ケーシ ョ ン を 開 始 し ます。 こ の 後 、 FSBL は、 組 み 込 み Linux の よ う な 完 全 機<br />

能 の OS の 場 合 は SSBL の 開 始 ア ド レ スにジャ ンプするか、 RTOS またはアプリ ケーシ ョ ンにジャンプして、 の 制 御<br />

を 移 行 します。<br />

ステージ 1 では、 OCM メモリにフィッ トするサイズであればユーザー アプ リ ケーシ ョ ンを 含 める こ とができます。<br />

Zynq-7000 AP SoC では、 セキュア ブー ト および 非 セキ ュ ア ブー ト の 両 方 の 方 法 がサポー ト さ れます。 BootROM コー<br />

ド フローは、 それぞれ 次 のようになります。<br />

セキュア ブー ト の 場 合 、 SoC の 主 なセキ ュ リ テ ィ 目 的 は 信 頼 性 の 基 盤 を 構 築 する こ と にあ り ます。 こ の 基 盤 は、 電 源<br />

が 投 入 さ れてか ら 制 御 がアサー ト さ れる までの イ ンテグ リ テ ィ 、 機 密 性 、 認 証 を 使 用 し て 構 築 さ れます。 SoC には、<br />

こ の 信 頼 性 を 維 持 する 方 法 も 含 まれます。 SoC では、 PL のビルト イン Advanced Encryption Standard (AES-256) と ハ ッ<br />

シュ ベースの メ ッ セージ 認 証 符 号 (HMAC) エンジン、 および PS の RSA 認 証 機 能 を 使 用 し て こ れが 実 行 さ れます。<br />

SoC は、 セキ ュ ア モード から 非 セキ ュ ア モー ド に 変 更 さ れない 限 り 、 安 全 にブー ト さ れます。 最 初 の 決 定 は、 FSBL<br />

の 初 期 読 み 込 み 時 点 です。 FSBL が 暗 号 化 さ れる 場 合 、 BootROM コードが 安 全 にブート され、 制 御 が FSBL に 移 行 し<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 126<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 4 章 : ソフトウェア デザイ ンの 考 慮 事 項<br />

ます。 FSBL が 暗 号 化 さ れない 場 合 、 AES 256 と HMAC エンジンがディ スエーブルにな り、 JTAG ポー ト にア ク セ ス<br />

できるようになります。 RSA 認 証 を イ ネーブルにする には、 RSA Enable eFUSE をプ ロ グ ラ ムする 必 要 があ り ます。<br />

ザイ リ ンクス デザイ ン ツールでは、ソ フ ト ウ ェアおよびビ ッ ト ス ト リーム パーテ ィ シ ョ ンが 公 開 キーの RSA アルゴ<br />

リ ズム を 使 用 し て 認 証 さ れる のかど う か、 それに 続 く イ メ ージが AES および HMAC を 使 用 し て 暗 号 化 および 認 証 さ<br />

れるのかど う かが 指 定 で き ます。 暗 合 化 さ れないパーテ ィ シ ョ ン を 指 定 する こ と も で き ます。 こ れに よ り 、 パーテ ィ<br />

ション ベースで 公 開 キーおよび 秘 密 キーのアルゴ リ ズムの 両 方 を 使 用 で き ます。<br />

ま た、 コ ン フ ィ ギ ュ レーシ ョ ン 時 間 が 重 要 な 場 合 は、 暗 号 化 さ れたパーテ ィ シ ョ ン よ り も 暗 号 化 さ れていないパー<br />

テ ィ シ ョ ンの 方 がコ ンフ ィ ギュ レーシ ョ ン 速 度 が 速 く なるので、セキ ュ リ テ ィ と ブー ト 時 間 の ト レード オフがあ る こ<br />

と があ り ます。 た と えば、 比 較 的 大 き いオープン ソースの U-Boot または Linux イ メ ージの 場 合 、 イ メ ージが 暗 号 化<br />

さ れていない 方 が 読 み 込 みが 高 速 に 実 行 さ れます。 セキ ュ ア 機 能 のいずれかを 選 択 する 場 合 は、 最 初 の FSBL は 最 低<br />

でも AES-256 で 暗 号 化 し て、 HMAC で 認 証 する 必 要 があ り ます。<br />

128 ページの 図 4-8 はセキュア ブー ト モード の FSBL フローを 示 し、129 ページの 図 4-9 は 非 セキ ュ ア ブー ト モード<br />

の FSBL フローを 示 しています。<br />

Zynq-7000 AP SoC のセキュア ブー ト に 関 する 情 報 は、 次 を 参 照 し て く ださい。<br />

• 『Zynq-7000 All Programmable SoC でのセキュア ブー ト 』 (WP426) [ 参 照 33]<br />

• 『Zynq-7000 All Programmable SoC のセキュア ブー ト 』 (XAPP1175) [ 参 照 40]<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 127<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 4 章 : ソフトウェア デザイ ンの 考 慮 事 項<br />

X-Ref Target - Figure 4-8<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

図 4‐8 : セキュア ブートの FSBL フロー<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 128<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 4 章 : ソフトウェア デザイ ンの 考 慮 事 項<br />

X-Ref Target - Figure 4-9<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

図 4‐9 : 非 セキュア ブートの FSBL フロー<br />

ステージ 2<br />

このステージは、U-Boot のよ うな SSBL (Second-Stage Boot Loader) または RTOS やアプ リ ケーシ ョ ンにな り ます。 組 み<br />

込 み Linux の よ う な 完 全 機 能 の OS の 場 合 、 SSBL の U-Boot が CPU0 で 実 行 されて、 OS がブー ト する 環 境 が 初 期 化 お<br />

よび 設 定 されます。 この 初 期 化 では、 フラ ッ ト メモリを 使 用 するために MMU がコンフィギュレーシ ョ ンがされます<br />

( 仮 想 および 物 理 的 ローケーシ ョ ンが 同 じ)。 この 後 、ブートローダーがカーネル イ メージ (ブー ト モード 設 定 ご と) と<br />

ブー ト 引 数 などのその 他 の 情 報 を RAM にフ ェ ッ チ し、 制 御 を 組 み 込 み Linux などの OS に 渡 し ます。<br />

Linux の 場 合 、OS が 2 つ 目 のプ ロ セ ッ サ コアを 検 出 してイネーブルにし、MMU とデータ キャッシュをコンフィギュ<br />

レーシ ョ ンおよびア ク テ ィ ベー ト し てか ら、 その 他 の 操 作 を 実 行 し てシ ス テム 全 体 をアプ リ ケーシ ョ ンで 使 用 で き る<br />

ようにします。<br />

各 ス テージでの 実 際 の 実 行 内 容 に 制 限 はあ り ませんが、 特 定 のス テージで 実 行 し た 方 がほかのス テージで 実 行 する よ<br />

り も 簡 単 に 実 行 で き る も のはあ り ます。 た と えば、 NTFS USB ド ラ イ ブか ら のフ ァ イルの 読 み 出 し は Linux か ら 実 行<br />

で き ますが、 ブー ト ローダーか ら 実 行 する 場 合 は さ ら に 開 発 作 業 が 必 要 にな り ます。 U-Boot は、 そのよ う な 要 件 に 適<br />

応 する よ う になっています。<br />

アーキテ ク チャの 詳 細 、 プ ロ グ ラ ミ ン グ モデル、 OS の 考 慮 事 項 、 Zynq-7000 AP SoC で Linux およびアプリ ケーシ ョ<br />

ン を 実 行 する 全 開 発 手 順 については、 『Zynq-7000 All Programmable SoC ソ フ ト ウ ェ ア 開 発 者 向 けガ イ ド 』 (UG821) [ 参<br />

照 7] を 参 照 して く ださい。<br />

ソフトウェア 開 発 ツール<br />

ザイ リ ンクスでは、 次 のよ うなさまざまなソフ ト ウェア 開 発 ツールを 提 供 しており、Zynq-7000 AP SoC で 使 用 される<br />

さまざまなソフトウェア コ ンポーネン ト を 構 築 する ために 使 用 で き ます。<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 129<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 4 章 : ソフトウェア デザイ ンの 考 慮 事 項<br />

• ボード サポー ト パッケージ (BSP) : 低 レベル ハー ド ウ ェ アにア ク セスする ために 使 用 さ れる API のセ ッ ト です。<br />

これらの API は、 それら がア ク セスするペ リ フ ェ ラ ル と 実 行 する フ ァ ン ク シ ョ ンに 基 づいて 分 類 さ れます。 BSP<br />

には、 ス ター ト ア ップ、 CPU 初 期 化 および EABI コード も 含 まれます。<br />

• スタンドアロン (ベア メ タル) アプ リ ケーシ ョ ン : マルチタ ス ク の よ う な 複 雑 なカーネル 機 能 はサポー ト し ない<br />

単 純 なアプ リ ケーシ ョ ンで、 BSP API を 使 用 して 低 レベル ハー ド ウ ェ アにア ク セス し ます。<br />

• FSBL (First Stage Boot Loader) : PS ハー ド ウ ェ ア 初 期 化 を 実 行 し、 ビ ッ ト ス ト リ ーム を 使 用 し てフ ァ ブ リ ッ ク に<br />

読 み 込 み、 オプシ ョ ンでその 他 のデータ と SSBL (Second-Stage Boot Loader) を 読 み 込 む 小 型 のアプ リ ケーシ ョ ン<br />

です。 FSBL はスタンドアロン (ベア メ タル) アプ リ ケーシ ョ ンの 例 です。<br />

• U-Boot (Second Stage Boot Loader) : カーネルの 実 行 を 開 始 する ために 必 要 なハー ド ウ ェ ア 初 期 化 を 実 行 し ます。<br />

終 了 する と 、 Linux カーネルが 読 み 込 まれて 実 行 が 開 始 さ れます。<br />

• Linux カーネル : Linux はオープン ソースのオペレーティング システムです。Zynq-7000 AP SoC には、Linux カー<br />

ネルのハー ド ウ ェ アに 依 存 するパーツ (デバイ ス ドライバーなど) が 提 供 さ れています。 カーネルのハー ド ウ ェ<br />

アに 依 存 しないパーツ (ファイル システム、 ネッ ト ワーキングなど) は、 その 他 の Linux マ シ ン と 類 似 し てい ま<br />

す。 カーネルは、 必 要 に 応 じ て コ ン フ ィ ギ ュ レーシ ョ ン さ れ、 ARM プロセッサをターゲッ トにします。<br />

• ユーザー アプ リ ケーシ ョ ン : 通 常 のユーザー アプ リ ケーシ ョ ンは Linux 環 境 で 実 行 さ れ、ハー ド ウ ェ アに 依 存 し<br />

ません。 ハード ウェア アクセスはドライバー API か ら 実 行 さ れます。<br />

• デバイ ス ツリー ブロブ (.dtb) : デバイ ス ツリーは、ハードウェア (PS ペリフェラル、 ARM プ ロ セ ッ サ、 お よ び<br />

PL ペリフェラル) でサポート されるコンポーネン トおよび 機 能 を 記 述 したノードおよびプロパティのの 構 造 で<br />

す。 ノ ー ド には、 ハー ド ウ ェ ア コンポーネントのマップ ア ド レ ス、 割 り 込 み 番 号 、 デフ ォル ト 設 定 などの 情 報<br />

が 含 まれます。 デバイ ス ツ リ ーはコ ンパイルされ、 起 動 時 に Linux カーネルに 提 供 さ れます。 起 動 中 は、 カーネ<br />

ルが こ の 情 報 を 使 用 し て 対 応 するデバイ ス ド ラ イバーを 読 み 込 みます。<br />

ソ フ ト ウ ェ ア 開 発 ツールは、ハー ド ウ ェ ア プラッ ト フォームでソフ ト ウェアを 選 択 してデバッグおよびプロファイル<br />

する ために も 使 用 さ れます。<br />

Zynq-7000 AP SoC のソフ ト ウェア 開 発 ツールには、 次 が 含 まれます。<br />

• GUI ベースのツール チェーン : これらのツールは、 グラフィカル ユーザー イ ン タ ーフ ェ イ ス で 提 供 さ れます。<br />

ツールおよび 構 築 機 能 は、 メ ニ ュー オプシ ョ ンから 選 択 でき ます。 これが 終 了 したら、 コンパイ ラ/ リンカーが<br />

バ ッ ク グ ラ ウ ン ド で 開 始 さ れ、 コ ンパイルの 進 捗 状 況 が 表 示 さ れます。 GNU ツールは GUI ベースのツール<br />

チェーン アプ リ ケーシ ョ ンに 統 合 さ れています。 た と えば、 GUI ベースのツール チェーンには、 ザイ リ ンクス<br />

ソ フ ト ウ ェ ア 開 発 キ ッ ト (SDK) があ り ます。<br />

IDE ( 統 合 開 発 環 境 ) を 使 用 する と 、 次 の よ う な さ ま ざ ま な ソ フ ト ウ ェ ア コ ンポーネン ト を 構 築 で き ます。<br />

° BSP<br />

° スタンドアロン プラッ ト フォームのユーザー アプ リ ケーシ ョ ン<br />

° Linux プラッ ト フォームのユーザー アプ リ ケーシ ョ ン<br />

• コマンド ライン ベースのツール チェーン : これらのツールは ARM プ ロ セ ッ サ 用 に コ ン フ ィ ギ ュ レーシ ョ ン さ<br />

れた 標 準 GNU ツール (gcc など) です。Zynq-7000 AP SoC の 開 発 ツールでは、CodeSourcery (ARM アーキテク チ ャ<br />

をサポートする Mentor Graphics 社 からの gcc) が 使 用 されます。 コ ンパイ ラおよび リ ンカー オプシ ョ ンは、 コ マ<br />

ンド ラインまたは makefile を 使 用 して 提 供 されます。 コマン ド ライン ベースのツール チ ェ ーン の 例 と し ては、<br />

arm-linux-xilinx-gnueabi-gcc があ り ます。<br />

GNU ベースのツール チェーン を 使 用 する と 、 次 の よ う な さ ま ざ ま な ソ フ ト ウ ェ ア コンポーネントを 構 築 できま<br />

す。<br />

° Linux カーネルおよびデバイ ス ドライバー<br />

° デバイ ス ツ リー ブロブ (.dtb)<br />

° ユーザー アプ リ ケーシ ョ ン<br />

° 再 利 用 可 能 な ラ イ ブ ラ リ<br />

• ハイブリ ッ ド ツール チェーン : これらのツールは、 GUI とコマンド ライン ベースのツールが 組 み 合 わ さ れた も<br />

ので、 すべてのプロジェ ク ト コンポーネントのコンフィギュレーションは GUI ベースのツールで 実 行 さ れます<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 130<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 4 章 : ソフトウェア デザイ ンの 考 慮 事 項<br />

が、 各 コ ンポーネン ト ビルドはコマン ド ライン ツールを 使 用 し て 実 行 さ れます。 PetaLinux は、 ハイ ブ リ ッ ド<br />

ツール チェーンの 例 です。<br />

ARM プロセッサ 用 にコンフィギュレーショ ンされる GNU ツールは、 ハイブ リ ッ ド ツール チ ェーン に 統 合 さ れ<br />

ています。 ハイブ リ ッ ド ツール チェーン を 使 用 する と 、 次 の よ う な さ ま ざ ま な ソ フ ト ウ ェ ア コンポーネントを<br />

構 築 で き ます。<br />

° Linux カーネルおよびデバイ ス ドライバー<br />

° デバイ ス ツ リー ブロブ (.dtb)<br />

° ユーザー アプ リ ケーシ ョ ン<br />

° 再 利 用 可 能 な ラ イ ブ ラ リ<br />

° 完 全 にパ ッ ケージ さ れた イ メ ージ<br />

GUI ベースのツール チェーン<br />

ザイ リ ンクス SDK は、 Eclipse に 基 づいた 統 合 開 発 環 境 (IDE) で、 ソ フ ト ウ ェア アプ リ ケーシ ョ ンの 作 成 、 コ ンパイ<br />

ル、 デバッグをするための 環 境 を 提 供 し ます。<br />

SDK はバッ ク グ ラ ウ ン ド で GNU ベースのコ ンパイ ラ ツール チ ェーン を 実 行 し ます。サポー ト さ れ る ユーテ ィ リ テ ィ<br />

には、 GCC コンパイラ、 リンカー、 GDB デバ ッ ガーなどのほか、 JTAG デバ ッ ガー、 フ ラ ッ シ ュ プ ロ グ ラ マ、 ラ イ<br />

ブラ リなどのその 他 のユーティ リティがあります。 また、 このツールではすべてのザイ リンクス IP コア、 サンプル<br />

アプ リ ケーシ ョ ン、 ソフ ト ウェア サービ ス パッケージ、 ベアメ タル BSP の ド ラ イバーが 統 合 さ れます。 こ れ ら の コ<br />

ンポーネン ト を 統 合 する と 、 アプ リ ケーシ ョ ン を 構 築 で き ます。 SDK では、 アセンブ リ 、 C、および C++ を 使 用 した<br />

アプ リ ケーシ ョ ンの 開 発 がサポート されます。<br />

ザイ リ ンクス SDK には、 次 の 機 能 が 含 まれます。<br />

• Zynq-7000 AP SoC および MicroBlaze プロセッサをサポート<br />

• Eclipse C/C++ Development Tooling (CDT) がベース<br />

• Vivado ツールに 直 接 イ ン ターフ ェ イ スする 完 全 IDE<br />

• マルチコア、 ハード ウ ェア、 ソ フ ト ウ ェア デバ ッ グ 機 能 を 含 め、 全 ソ フ ト ウ ェ ア デザ イ ンおよびデバ ッ グ プロ<br />

セスをサポート<br />

• エデ ィ ター、 コ ンパイ ラ、 ビル ド ツール、 フラ ッシュ メ モ リ 管 理 、 JTAG、 および GDB デバ ッ ガーを 統 合<br />

• Mentor 社 の Sourcery CodeBench Lite のザイ リ ン ク ス エデ ィ シ ョ ンでサポー ト<br />

• カスタム ライブラリおよびデバイス ドライバー<br />

• SDK には、 サポー ト されるすべてのザイ リ ン ク ス ハー ド ウ ェ ア IP コア、 POSIX 準 拠 のカーネル ラ イ ブ ラ リ 、<br />

ネ ッ ト ワーキングおよびフ ァ イル 処 理 ラ イブラ リ に 対 し て、 ユーザーがカ ス タマ イ ズ 可 能 な ド ラ イバーが 含 まれ<br />

ています。 ラ イ ブ ラ リ および ド ラ イバーは、 必 要 な 機 能 、 メ モ リ 要 件 、 およびハー ド ウ ェ ア 機 能 に 基 づいてカ ス<br />

タマイズできます。<br />

• 管 理 さ れた makefile、ハードウェア プ ラ ッ ト フ ォームの 管 理 、 リ モー ト デバ ッ グ、 ハー ド ウ ェ ア と ソ フ ト ウ ェ ア<br />

デバ ッ グ 間 の ク ロ ス プローブのサポート、 フラッシュ プログラ ミ ング、 ブート イメージ (boot.bin) 作 成 、 リ ン<br />

カー ス ク リ プ ト の 生 成 、 リ ポジ ト リ 管 理 、 および FPGA プログラ ミ ング<br />

• プロファイ リ ングのサポート<br />

ザイ リ ンクス SDK のデバッ ガーには、 次 の 機 能 が 含 まれます。<br />

• Eclipse Target Communication Framework (TCF) がベース<br />

• ホモジニアスおよびヘテロジニアス マルチプロセッサのサポー ト<br />

• ターゲッ ト プラッ ト フォームでの Linux アプ リ ケーシ ョ ン デバ ッ グ<br />

• 階 層 プ ロ フ ァ イ リ ング<br />

• ベア メ タルおよび Linux アプ リ ケーシ ョ ンの 開 発<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 131<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 4 章 : ソフトウェア デザイ ンの 考 慮 事 項<br />

• 対 称 マルチプ ロ セ ッ シングおよび 非 対 称 マルチプ ロ セ ッ シング デザイ ンのサポー ト<br />

• コアごとのハードウェアおよびソフ ト ウェア ブレー ク ポ イ ン ト の 関 連 付 け<br />

• NEON ライブラリのサポート<br />

アプ リ ケーシ ョ ンは、 スタン ドアロンまたは Linux プラッ ト フォーム モデルのいずれかに 基 づいて 開 発 されます。<br />

スタンドアロン プラッ トフォーム<br />

スタンドアロン プ ラ ッ ト フ ォームの 場 合 、 アプ リ ケーシ ョ ンはモ ノ リ シ ッ ク で 実 行 可 能 な コー ド と し て 構 築 さ れま<br />

す。 マルチ タ ス ク はサポー ト さ れないので、 デバ イ ス ド ラ イバーはアプ リ ケーシ ョ ン と 一 緒 に 読 み 込 まれ、 アプ リ<br />

ケーシ ョ ンがド ラ イバー API を 直 接 起 動 し ます。<br />

スタンドアロン ソフトウェア プラッ ト フォームは、 アプリケーションがプロセッサ フ ァ ン ク シ ョ ンに 直 接 ア ク セ ス<br />

する 場 合 に 使 用 されるシングル スレッド 環 境 です。 スタンドアロン ソフトウェア プラッ ト フォームでは、 プログラ<br />

ム プ ロ フ ァ イ リ ングがサポー ト さ れ、 プ ロ セ ッ サ 割 り 込 み 処 理 、 例 外 処 理 、 およびキ ャ ッ シ ュ 処 理 などのフ ァ ン ク<br />

シ ョ ンが 提 供 さ れます。<br />

スタンドアロン プラッ ト フォームは、 オペレーティング システムを 必 要 と しない 小 型 の 専 用 システムで 使 用 されま<br />

す。 ス タ ン ド ア ロ ン プラッ ト フォームの 長 所 は、 次 のとおりです。<br />

• 通 常 シンプルなすばやいアプ リ ケーシ ョ ン 開 発 が 可 能<br />

• コンテキスト ス イ ッ チおよびマルチ タ ス ク が 使 用 さ れないので、 全 体 的 な 複 雑 さ は 最 小 限 にな る<br />

• 開 発 者 が 上 か ら 下 までのシ ス テム イ ンプ リ メ ンテーシ ョ ン を よ り 詳 細 に 包 括 的 に 理 解 可 能<br />

• 新 し いハー ド ウ ェ アの 最 初 の 開 発 段 階 には 理 想 的<br />

• このプラッ ト フォームを 使 用 してコンソール (テキス ト) ベースのアプ リ ケーシ ョ ン を 構 築 可 能<br />

スタンドアロン プラッ ト フォームの 短 所 は、 次 のとおりです。<br />

• マルチタ ス ク を 必 要 と する 複 雑 なアプ リ ケーシ ョ ン システムが 構 築 できない<br />

• GUI ベースのアプ リ ケーシ ョ ンには 向 かない<br />

スタンドアロン アプ リ ケーシ ョ ンの 開 発 手 順 は、 次 の と お り です。<br />

• 新 しいワークスペースを 作 成 してハード ウェア プラッ ト フォームをワークスペースにインポート (ハー ド ウ ェ<br />

ア プラッ ト フォームは Vivado デザイ ン ツールからエク スポー ト )<br />

• 新 しいボード サポー ト パッケージ (BSP) およびアプリ ケーシ ョ ンを 作 成<br />

• 既 存 BSP およびソフ ト ウェア アプ リ ケーシ ョ ンをワーク スペースにインポート。 SDK のボード サポー ト パ ッ<br />

ケージ (BSP) には、 提 供 されている API が 使 用 される 場 合 に ソ フ ト ウ ェ ア アプ リ ケーシ ョ ン で 使 用 で き る ラ イ<br />

ブラ リおよびドライバーが 含 まれます。<br />

• BSP 設 定 を 修 正<br />

• BSP およびアプリ ケーシ ョ ンを 構 築<br />

• ソフトウェア アプ リ ケーシ ョ ンをデバッグ<br />

• ソフトウェア アプ リ ケーシ ョ ンをプロファ イル<br />

図 4-10 は、 SDK ツールを 使 用 し た 開 発 サ イ ク ルを 示 し ています。<br />

SDK 使 用 方 法 の 詳 細 は、 次 の 資 料 を 参 照 し て く だ さ い。<br />

• 『K7 Embedded TRD 2013.2』 [ 参 照 49]<br />

• 『OS およびラ イ ブ ラ リ 資 料 コ レ ク シ ョ ン』 (UG643) [ 参 照 5]<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 132<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 4 章 : ソフトウェア デザイ ンの 考 慮 事 項<br />

X-Ref Target - Figure 4-10<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

図 4‐10 : SDK ソ フ ト ウ ェ ア 開 発 フ ロー<br />

Linux プラッ トフォーム<br />

Linux は、 マルチプロセス オペレーテ ィ ング システムで、 Linux プラッ ト フォーム 用 に 記 述 されたアプリケーション<br />

は Linux を 実 行 する どのシ ス テム と も 互 換 性 があ り ます。アプ リ ケーシ ョ ンは Linux ライブラリ API を 使 用 する ので、<br />

抽 象 的 な 方 法 でハー ド ウ ェ ア リソースにアクセスします。<br />

Linux プラッ ト フォームのアプリケーショ ン 開 発 は、 ハードウェア プラ ッ ト フォームに 依 存 しないほかの Linux アプ<br />

リ ケーシ ョ ン 開 発 プ ロ セス と 類 似 し ています。 SDK ワー ク スペースでアプ リ ケーシ ョ ン を 作 成 する 手 順 は、 Linux プ<br />

ラットフォーム BSP が 選 択 される 点 を 除 き、 スタンドアロン プラッ ト フォームと 類 似 しています。<br />

GNU ベース コンパイラのツール チェーン<br />

Zynq-7000 AP SoC は、 次 の 2 つの 方 法 の GNU ツール チェーンの 起 動 をサポー ト しています。<br />

• GNU オープン ソース ツール チェーン<br />

• PetaLinux フレームワーク<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 133<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 4 章 : ソフトウェア デザイ ンの 考 慮 事 項<br />

これらについて、 次 のセ ク シ ョ ンで 説 明 し ます。<br />

GNU オープン ソース ツール チェーン<br />

オープン ソース ツール チェーンは、 Mentor Graphics 社 の CodeSourcery ツール チェーンに 基 づいています。 Sourcery<br />

CodeBench は、 ARM、 Power、 ColdFire およびその 他 のアーキテクチャのエンベデッ ド C/C++ 開 発 のための 完 全 開 発<br />

環 境 です。 Sourcery CodeBench Lite Edition には、 次 が 含 まれます。<br />

• GNU C および C++ コンパイラ<br />

• GNU アセンブラーおよびリ ンカー<br />

• C および C++ ランタイム ライブラリ<br />

• GNU デバ ッ ガー<br />

ARM プロセッサの 場 合 、 ツール チェーンでは ARM アーキテクチャのバージ ョ ン 7 を 含 むアクテ ィブ アーキ テ ク<br />

チャに 対 して ARM、 Thumb、 および Thumb-2 命 令 がサポー ト さ れます。<br />

GNU オープン ソース ツール チェーンの 詳 細 は、ザイ リ ンクス Zynq-7000 AP SoC Linux Wiki ページ [ 参 照 63] を 参 照<br />

してください。<br />

PetaLinux フレームワーク<br />

PetaLinux ツールは、Zynq-7000 AP SoC のザイ リ ン ク ス ハー ド ウ ェ ア デザイ ン フ ローで 使 用 で き る 開 発 環 境 です。 ソ<br />

リ ューシ ョ ンには、 デザ イ ンの 生 産 性 を 上 げる よ う にエンベデ ッ ド Linux シ ス テム を 構 築 、 開 発 、 テ ス ト 、 展 開 する<br />

のに 必 要 なすべてが 含 まれます。<br />

PetaLinux は、 主 に 次 の 3 つのエレ メ ン ト から 構 成 されています。<br />

• 前 もってコンフィギュレーショ ンされたバイナリ ブー ト 可 能 イ メ ージ<br />

• ザイ リ ンクス デバイ ス 用 に 完 全 にカ ス タ マ イ ズ 可 能 な Linux オペレーテ ィ ング システム<br />

• コ ン フ ィ ギ ュ レーシ ョ ン、 ビル ド 、 展 開 などの 複 雑 な タ ス ク を 自 動 化 する ツールおよびユーテ ィ リ テ ィ を 含 む<br />

PetaLinux ツール<br />

PetaLinux は、 完 全 な 機 能 を 持 つ 統 合 さ れてお り 、 テ ス ト 済 みで、 資 料 が 提 供 さ れてい る ので、 ザ イ リ ン ク ス カスタ<br />

マーに 推 奨 される Linux 展 開 メ カニズムです。 PetaLinux BSP には、 完 全 な 統 合 およびテ ス ト 済 みのザ イ リ ン ク ス デ<br />

バイス 用 Linux オペレーテ ィ ング システムが 提 供 されています。<br />

• BSP<br />

• ブー ト ローダー<br />

• Linux カーネル<br />

• Linux アプ リ ケーシ ョ ンおよびラ イブラ リ<br />

• C および C++ アプ リ ケーシ ョ ン 開 発<br />

• デバ ッ グ<br />

• スレッドおよび FPU サポー ト<br />

• ネッ ト ワークおよびファームウェア コ ン フ ィ ギ ュ レーシ ョ ン を 簡 単 に リ モー ト か ら 管 理 で き る 統 合 ウ ェ ブ サー<br />

バー<br />

PetaLinux は 安 定 し ていて 完 全 にテ ス ト された Linux バージ ョ ンに 基 づいていますが、 PetaLinux ツールにはザ イ リ ン<br />

クス Git サーバーか ら 使 用 可 能 な も の よ り も 多 く の も のが 含 まれます。 PetaLinux ツールには、 イ ン ス ト ーラー、 開 発<br />

ツール、 BSP、 プラ ッ ト フォーム 管 理 ユーテ ィ リ テ ィ、 アプ リ ケーシ ョ ンおよびラ イブラ リ フレームワーク、および<br />

ザイ リ ンクス オープン ソース Linux (OS) には 含 まれない 資 料 などが 含 まれます。<br />

PetaLinux ユーザーはすべて、 コ ミ ュニテ ィ (フォーラム ベース) サポー ト を 使 用 で き ます。 商 用 ラ イ セン スでは、 ザ<br />

イリンクスから 直 接 サポートを 受 けることができます。<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 134<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 4 章 : ソフトウェア デザイ ンの 考 慮 事 項<br />

PetaLinux ツール チェーンの 詳 細 は、 ザイ リ ンクス PetaLinux ツールのウェブサイ ト [ 参 照 48] を 参 照 して く ださい。<br />

JTAG デバッ ガー<br />

GUI ベースの SDK にはデバ ッ グ 機 能 が 含 まれてお り 、 次 の 方 法 で コー ド をデバ ッ グで き ます。<br />

• 1 つの 手 順<br />

• ブレークポイン ト<br />

• メモリ ウォッチ<br />

• 分 解<br />

• 呼 び 出 し ス タ ッ ク<br />

• プロセッサ レジスタ ダンプ<br />

SDK には、デバ ッ グ 機 能 を 使 用 する さ ま ざ ま な 方 法 が 含 まれます。シ ス テム デバ ッ ガーは、Vivado ハー ド ウ ェ ア サー<br />

バー (TCF に 基 づ く ) に 基 づいています。 システム デバ ッ ガーでは、 JTAG または TCP/IP リ ン ク を 使 用 し たデバ ッ グ<br />

操 作 が 実 行 さ れます。 Linux では、 JTAG リンクはローカル デバ ッ グ、 TCP/IP リンクは TCF エージ ェ ン ト と の 通 信 に<br />

使 用 さ れます。 デバ ッ ガーは、 XSDB と 呼 ばれるコマンド ライン デバ ッ ガー と し て も 使 用 でき ます。 XSDB は、 SDK<br />

を 起 動 し な く て も 使 用 で き ます。<br />

GUI ベースの SDK デバ ッ ガーの 詳 細 については、 『K7 Embedded TRD 2013.2』 を 参 照 し て く だ さ い。 [ 参 照 49]<br />

コマンド ライン XMD デバッ ガーの 詳 細 は、『エンベデッ ド システム ツール リファレンス マニュアル』 (UG1043) [ 参<br />

照 21] を 参 照 して く ださい。<br />

JTAG プロファイラー<br />

GUI ベースの SDK には、 ソ フ ト ウ ェア プ ロ フ ァ イ ラーも 含 まれます。 プ ロ フ ァ イ ラーでは、 関 数 呼 び 出 し、 各 関 数<br />

ご と にプ ロ セ ッ サで 費 や さ れる 時 間 、 プ ロ セ ッ サ 使 用 のグ ラ フ ィ ッ ク 表 示 など を 監 視 する こ と がで き ます。 デバ ッ グ<br />

機 能 と 同 様 、 プ ロ フ ァ イ ラーは TCF ベースの XMD ツールに 基 づいており、 プロフ ァ イ リ ング 操 作 を JTAG リ ン ク を<br />

使 用 し て 実 行 し ます。<br />

詳 細 は、『AXI インターフェイス ベース KC705 エンベデッ ド キッ ト MicroBlaze プロセッサ サブシステム ソ フ ト ウ ェ<br />

ア チュート リ アル』 (UG915) [ 参 照 12] を 参 照 して く ださい。<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 135<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 5 章<br />

ハー ド ウ ェ ア デザイ ン フロー<br />

本 章 では、Zynq ® -7000 AP SoC デザ イ ン を 設 計 する 際 に 考 慮 する 必 要 のあ る 次 の よ う な ソ フ ト ウ ェ ア デザイ ン 問 題 に<br />

ついて 説 明 し ます。<br />

• 137 ページの 「Vivado IDE を 使 用 した IP サブシ ス テムの 構 築 」 : Vivado ® Design Suite では、 こ のセ ク シ ョ ン で<br />

説 明 する さ ま ざ ま なツールを 使 用 し て IP サブシステムを 構 築 でき ます。<br />

• 138 ページの 「ルール ベースの 接 続 」 : デザイ ン 検 証 プロセス (ブロック デザイ ンでデザイ ン ルール チ ェ ッ ク<br />

を 実 行 し て 警 告 およびエ ラーを レポー ト ) を 実 行 する こ と でエ ラーを 見 つけ る こ と がで き ます。こ のセ ク シ ョ<br />

ンでは、 こ のデザ イ ン 検 証 プ ロ セスについて 説 明 し ます。<br />

• 138 ページの 「 階 層 的 な IP サブシステムの 作 成 」 : Vivado IP インテグレーター ツールを 使 用 する と 、 階 層 IP サ<br />

ブシ ス テム を 作 成 で き ます。<br />

• 138 ページの 「[Board Part Interfaces] タブ」 : IP インテグレーターの [Board Part Interfaces] タ ブには、 特 定 ボー ド<br />

に 含 まれるすべての イ ン ターフ ェ イ スが 表 示 さ れます。<br />

• 138 ページの 「ブ ロ ッ ク デザ イ ンの 生 成 」 : ブロック デザイ ン または IP サブシステムを 作 成 したら、 ソース コー<br />

ド、 IP 制 約 、 および 構 造 ネ ッ ト リ ス ト を 生 成 で き ます。 こ れが 終 了 し た ら、 上 位 HDL デザ イ ンに 統 合 する か、<br />

合 成 およびイ ンプ リ メ ンテーシ ョ ン を 実 行 し ます。<br />

• 139 ページの 「 再 利 用 のための IP の 作 成 と パッ ケージ 化 」 : Vivado IP パ ッ ケージ ャーを 使 用 する と 、 カ ス タ ム IP<br />

およびサードパーティ IP を Vivado IP カ タ ロ グで 使 用 でき る よ う に 準 備 でき ます。 このよ う にする と、 カ ス タ ム<br />

IP を Vivado Design Suite を 使 用 してデザインにインスタンシエー ト できます。<br />

• 140 ページの 「カ ス タ ム イ ン ターフ ェ イ スの 作 成 」 : Vivado Design Suite では、 すべての メ モ リ マップ イ ン タ ー<br />

フェイスで AXI イ ン ターフ ェ イ スが 使 用 される よ う にする 必 要 があ り ます。 Vivado Design Suite には、 カ ス タ ム<br />

IP インターフェイスを AXI イ ン ターフ ェ イ ス 規 格 に 準 拠 する よ う 変 換 する ウ ィ ザー ド があ り ます。<br />

• 140 ページの 「カ ス タ ム IP の 管 理 」 : Vivado IP カタログには、 別 のソースから IP を 追 加 で き る ビル ト イ ン の リ<br />

ポジ ト リ 管 理 機 能 が 含 まれます。<br />

• 141 ページの 「Vivado 高 位 合 成 (HLS)」 : 高 位 合 成 (HLS) を 使 用 する と 、C、C++、OpenCL Kernel または SystemC<br />

デザイ ン 仕 様 を レジス タ トランスファー レベル (RTL) イ ン プ リ メ ン テーシ ョ ン に 変 換 し 、 それを ザ イ リ ン ク ス<br />

All Programmable デバイ スに 合 成 で き ます。<br />

概 要<br />

プログラマブル デバイ スの 集 積 度 が 増 加 し、 よ り 複 雑 にな り 、 ス ケジ ュールが 短 く な る につれ、 サー ド パーテ ィ IP<br />

およびデザ イ ンの 再 利 用 が 必 須 になって き ています。 ザ イ リ ン ク スでは、 設 計 者 が 直 面 する こ れら の 課 題 を 認 識 し、<br />

Vivado ® Design Suite に 新 たな 機 能 を 追 加 し、これらの 課 題 に 対 処 できるようにしました。この 機 能 は、Vivado IP イ<br />

ンテグ レーター と 呼 ばれます。<br />

IP イ ンテグ レーターを 使 用 する と 、ブ ロ ッ ク デザイ ンを 作 成 でき ます。ブロ ッ ク デザイ ン と は、ユーザーがコ ン フ ィ<br />

ギュレーションした IP およびインターコネク ト を 含 む IP サブシステムのこ とです。 IP インテグレーターは、 Vivado<br />

デザイ ン ツールで Zynq ® -7000 AP SoC、 MicroBlaze プロセッサ デザイ ン、 およびプロセ ッ サ ベース でないデザ イ<br />

ン を 含 むエンベデ ッ ド プロセッサ デザ イ ン を 作 成 する ための 機 能 です。 Vivado HLS か ら の 高 位 合 成 モジ ュール、<br />

System Generator からの DSP モジュール、 IP の 作 成 およびパ ッ ケージ 化 フ ローを 使 用 し て 作 成 し たカ ス タ ム IP を イ<br />

ンスタンシエートするために 使 用 します。 デザインは、 IP インテグレーター GUI を 使 用 してインタ ラ クテ ィブに 作<br />

成 でき るほか、 Tcl プログラ ミ ング イ ン ターフ ェ イ ス を 使 用 し て も 作 成 で き ます。<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 136<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 5 章 : ハー ド ウ ェ ア デザイ ン フロー<br />

詳 細 は、 『Vivado Design Suite ユーザー ガイド :IP インテグレーターを 使 用 した IP サブシステムの 設 計 』 (UG994) [ 参<br />

照 18] を 参 照 して く ださい。<br />

Vivado IDE を 使 用 した IP サブシステムの 構 築<br />

Vivado IDE では、 IP インテグレーター GUI、 Tcl スクリプト フロー、 または IP インテグレーターの 一 部 である 設 計<br />

アシスタンスを 使 用 して、 IP サブシステムを 構 築 でき ます。<br />

GUI を 使 用 した IP サブシステムの 作 成<br />

IP インテグレーターには、 IP サブシ ス テム を 作 成 する ための 高 度 な GUI 環 境 があ り ます。 さ ま ざ ま な 自 動 化 機 能 を<br />

使 用 し て、 IP コ ア を イ ン ス タ ンシエー ト し、 接 続 で き ます。 カ ス タ ム IP は、 IP インテグレーターで 使 用 できるよう<br />

パ ッ ケージ 化 する こ と も 可 能 です。 デザ イ ン を GUI 環 境 で 再 構 成 し、 フ ローを 実 行 する 必 要 があ り ます。 デザ イ ンが<br />

安 定 し た ら、 デザイ ンを 作 成 およびイ ンプ リ メ ン ト する ス ク リ プ ト を 記 述 でき ます。 GUI の 機 能 の 詳 細 は、 『Vivado<br />

Design Suite ユーザー ガイド :IP インテグレーターを 使 用 した IP サブシ ス テムの 設 計 』 (UG994) [ 参 照 18] を 参 照 し て<br />

ください。<br />

スクリプト フローを 使 用 した IP サブシステムの 作 成<br />

IP インテグレーターの GUI キャンバスでの 操 作 には、 等 価 の Tcl コマンドがあり ます。 これらの Tcl コ マ ン ド は、<br />

Vivado Design Suite のジャーナル ファイルに 記 録 されます。 スクリプトはこのジャーナル フ ァ イ ルを 基 に 記 述 で き 、<br />

作 成 し た ス ク リ プ ト を 使 用 し てデザ イ ン を 後 で 作 成 およびイ ンプ リ メ ン ト で き ます。<br />

設 計 アシス タ ンス<br />

プロセッサ ベースのデザ イ ン を 短 時 間 で 作 成 する には、 IP インテグレーターのブロック オート メーシ ョ ンおよびコ<br />

ネクション オー ト メ ーシ ョ ン 機 能 を 使 用 し ます。 ブ ロ ッ ク オー ト メ ーシ ョ ン 機 能 は、 プ ロ セ ッ サおよび 関 連 の IP コ<br />

アをコンフィギュレーショ ンするために 使 用 し、 コネクショ ン オー ト メーシ ョ ン 機 能 はデザイ ンの 異 なる ピン/ポー<br />

ト への 反 復 的 な 接 続 に 使 用 し ます。 IP イ ンテグ レーターではボー ド も 認 識 さ れ、 ザ イ リ ン ク スの 評 価 ボー ド がサポー<br />

ト さ れます。 評 価 ボー ド を ターゲ ッ ト ハー ド ウ ェ ア と し ている 場 合 、 IP イ ン テグ レーターでそのボー ド にあ るすべ<br />

てのインターフェ イ スが 認 識 されるので、 コネクシ ョ ン オー ト メ ーシ ョ ン 機 能 を 使 用 し て、 デザ イ ンの I/O ポー ト を<br />

ターゲッ ト ボード 上 の 既 存 のイ ン ターフ ェ イ スに 接 続 でき ます。 設 計 アシス タ ン スでは、 ク ロ ッ クおよび リ セ ッ ト も<br />

接 続 で き ます。 [Signals] および [Board Interface] などの 複 数 のタブを 使 用 して、 ブロッ ク デザイ ンの 接 続 を 実 行 でき<br />

ます。 設 計 アシ ス タ ン ス を 使 用 する と 、 接 続 をすばや く 実 行 で き、 意 図 し ないデザ イ ン エ ラーを 回 避 で き ます。<br />

ブロック オー ト メーシ ョ ン<br />

複 雑 な IP およびプロセッサ ベースのデザ イ ンの 中 には、IP インテグレーターでブロック オー ト メ ーシ ョ ン と 呼 ばれ<br />

る 機 能 が 使 用 で き る も のがあ り ます。 こ の 機 能 を 使 用 する と 、 プ ロ セ ッ サ ベース ま たは IP ベースのサブシ ス テム と<br />

よ く 使 用 さ れる コ ンポーネン ト をすばや く 統 合 で き ます。エンベデ ッ ド デザ イ ンの 基 本 的 な 構 築 ブ ロ ッ ク が 統 合 さ た<br />

ら、 カタログから IP コ アを 追 加 し て こ の 基 本 的 なシ ス テム を 拡 張 し てい き ます。<br />

コネクション オー ト メーシ ョ ン<br />

ブロッ ク オー ト メ ーシ ョ ンが 実 行 さ れ、 基 本 的 なシ ス テムが 構 築 さ れた ら、 外 部 I/O ピ ン を 接 続 する 必 要 があ り ま<br />

す。 こ れにはコ ネ ク シ ョ ン オートメーションを 使 用 できます。コネクション オー ト メ ーシ ョ ン を 使 用 する と 、 I/O ピ<br />

ンへの 接 続 を 作 成 で き、 デザ イ ン 自 体 の 別 の ソースへの 接 続 も 作 成 可 能 です。 ボー ド が 認 識 さ れるので、 コ ネ ク シ ョ<br />

ン オー ト メ ーシ ョ ン 機 能 でターゲ ッ ト ボー ド に 存 在 する 外 部 イ ン ターフ ェ イ スにブ ロ ッ ク デザ イ ンのポー ト を 接 続<br />

し、 こ れ ら のポー ト の 物 理 制 約 を 作 成 で き ます。 そのため、 こ の 機 能 を 使 用 する こ と を 推 奨 し ます。<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 137<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 5 章 : ハー ド ウ ェ ア デザイ ン フロー<br />

ルール ベースの 接 続<br />

IP イ ンテグ レーターでは、 デザ イ ン を 構 築 し てい く 際 に リ アルタ イ ムで 基 本 的 なデザ イ ン ルール チェッ クが 実 行 さ<br />

れますが、 デザ イ ン 作 成 中 に 何 ら かの 問 題 が 発 生 する 可 能 性 があ り ます。 た と えば、 ク ロ ッ ク ピ ンの 周 波 数 が 正 し く<br />

設 定 さ れていない こ と があ り ます。 こ の よ う なエ ラーは、 デザ イ ン 検 証 を 実 行 する と 検 出 で き ます。 デザ イ ン 検 証 で<br />

は、 ブロ ッ ク デザイ ンに 対 し てデザイ ン ルール チェッ クが 実 行 され、 デザインにエラーまたは 警 告 があればそれが<br />

レポート されます。 このエラーまたは 警 告 メ ッセージをク リ ッ クする と、ブロッ ク 図 でその 部 分 がハイライ ト されま<br />

す。 デザ イ ン フローの 後 半 までデザイン エ ラーに 気 づかない と い う 状 況 を 避 け る ため、 デザ イ ン を 検 証 する こ と を<br />

お 勧 め し ます。<br />

デザ イ ン 検 証 を 実 行 する と 、 ブ ロ ッ ク デザ イ ンのパラ メ ーター 伝 搬 も 実 行 さ れます。 これは、 IP インテグレーター<br />

の 最 も 有 益 な 機 能 の 1 つです。 こ の 機 能 に よ り 、 IP コ アがデザイ ンにどのよ う に 接 続 されているかに 基 づいて、 パラ<br />

メ ーターが 自 動 的 にア ッ プデー ト さ れます。 IP コ ア を 特 定 の 伝 搬 規 則 を 使 用 し てパ ッ ケージ 化 する と 、 ブ ロ ッ ク 図 の<br />

生 成 時 に IP インテグレーターによりこれらのルールが 実 行 されます。<br />

階 層 的 な IP サブシステムの 作 成<br />

IP イ ンテグ レーターでは、 階 層 的 な IP サブシ ス テム を 作 成 で き ます。 こ の 機 能 は、 ブ ロ ッ ク を 多 数 含 むデザ イ ンで、<br />

GUI のキ ャ ンバス 上 で 管 理 し に く い よ う な 場 合 に 便 利 です。 複 数 の 階 層 レベルがサポー ト さ れてお り 、 デザ イ ンでの<br />

機 能 に 基 づいてブロ ッ ク をグループ 化 でき ます。 IP イ ンテグ レーター 内 で 階 層 を 使 用 する と 、 デザ イ ン をモジ ュール<br />

化 でき、 IP インテグレーター キ ャ ンバスが 見 やす く な り ます。<br />

デザイ ン オブジ ェ ク ト の 表 示 方 法 も 変 更 で き ます。 た と えば、 ク ロ ッ ク および リ セ ッ ト を 別 の 色 で 表 示 し た り 、 さ ま<br />

ざ ま な レ イ ヤーを 表 示 ま たは 非 表 示 にで き ます。<br />

[Board Part Interfaces] タブ<br />

先 ほど 述 べた よ う に、 IP インテグレーターではボードが 認 識 されます。 ブロック デザイ ンのターゲ ッ ト を 特 定 のザ<br />

イ リ ン ク ス 評 価 ボー ド に 設 定 する と 、 [Board Part Interfaces] タブにそのボードに 含 まれるすべてのインターフェ イ ス<br />

が 表 示 されます。 [Board Part Interfaces] タブに 表 示 されるインターフェイスを 接 続 して、 プロセッサを 含 むターゲッ<br />

ト デザイ ン またはプロセ ッ サを 含 まないターゲ ッ ト デザイ ンを 作 成 でき ます。 これは、 ブロ ッ ク デザ イ ン を 作 成 す<br />

る ための 優 れた メ カニズムです。 接 続 に イ ン ターフ ェ イ ス を 選 択 する と 、 その イ ン ターフ ェ イ スに 接 続 可 能 なすべて<br />

の IP コ アが 表 示 さ れます。 た と えば、 Kintex ® KC705 ボード では、 8 ビッ ト LED を 選 択 すると、 このインターフェ<br />

イ スに 接 続 可 能 な 3 つの IP (GPIO、 I/O モジュール、 および MicroBlaze MCS IP) が 表 示 さ れます。 選 択 し た IP に 基 づ<br />

いて、ボード 上 の LED に 接 続 する か、 設 計 アシ ス タ ン ス を 使 用 し てブ ロ ッ ク デザイ ンの 残 り の 部 分 に 接 続 でき ます。<br />

ブロック デザイ ンの 生 成<br />

ブロック デザイ ン または IP サブシステムを 作 成 したら、 ソース コード、 IP 制 約 、 および 構 造 ネ ッ ト リ ス ト を 生 成 で<br />

き ます。 こ れが 終 了 し た ら、 上 位 HDL デザ イ ンに 統 合 する か、 合 成 およびイ ンプ リ メ ンテーシ ョ ン を 実 行 し ます。<br />

ブロック デザイ ンを 独 立 させて 合 成<br />

階 層 デザ イ ン フ ローを 使 用 する と、 デザ イ ン を 小 型 の 管 理 しやすいモジ ュールに 分 割 し て、 個 別 に 処 理 で き ます。<br />

Vivado Design Suite では、 この 分 割 されたモジ ュールを 残 り のデザイ ンから 独 立 させて (アウ ト オブ コンテキスト<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 138<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 5 章 : ハー ド ウ ェ ア デザイ ン フロー<br />

OOC) 合 成 で き ます。 IP インテグレーターでは、 OOC モジュールを 合 成 し、 デザイン チェッ クポイン ト (DCP) フ ァ<br />

イルを 作 成 する のが 最 も よ く 使 用 さ れる フ ローです。 こ の よ う なブ ロ ッ ク デザ イ ンは、 よ り 大 型 の Vivado デザイ ン<br />

の 一 部 と し て 使 用 さ れる 場 合 、 デザ イ ンのほかの 部 分 が 変 更 さ れる たびに 合 成 し 直 する 必 要 はないので、 ラ ン タ イ ム<br />

が 大 幅 に 短 縮 さ れるので、 特 にデザ イ ン を 吟 味 する 初 期 段 階 で ラ ン タ イ ムが 問 題 と な る 場 合 に 考 慮 する 必 要 があ り ま<br />

す。<br />

リモート ブロック デザイ ンの 作 成<br />

IP インテグレーターでは、 複 数 の Vivado Design Suite プ ロ ジ ェ ク ト で 再 利 用 可 能 な ス タ ン ド ア ロ ン ブロック デザ イ<br />

ン を 作 成 で き ます。 デザ イ ン を 作 成 し た ら、 リ ビ ジ ョ ン 管 理 下 に 置 いて、 複 数 の 設 計 チームで 同 じ ブ ロ ッ ク デザイ ン<br />

を 再 利 用 し て、 複 数 のプ ロ ジ ェ ク ト を 作 成 で き る よ う に し ます。 こ れはIP イ ンテグ レーターの 重 要 な 再 利 用 機 能 であ<br />

り 、 チームでデザ イ ン を 開 発 する 場 合 に 考 慮 する 必 要 があ り ます。<br />

再 利 用 のための IP の 作 成 とパ ッ ケージ 化<br />

Vivado IP パ ッ ケージ ャーを 使 用 する と 、 カ ス タ ム IP およびサードパーティ IP を Vivado IP カタログで 使 用 できるよ<br />

うに 準 備 できます。このようにすると、カスタム IP を Vivado Design Suite を 使 用 してデザインにインスタンシエート<br />

できます。 次 の IP パ ッ ケージ 化 フ ローを 使 用 する と 、 ザ イ リ ン ク ス IP、 サードパーティ IP、 またはカスタム IP のい<br />

ずれも Vivado Design Suite で 同 様 に 使 用 で き ます。<br />

カスタム IP および IP サブシステムのパッケージ 化<br />

Vivado の Create and Package IP ウ ィ ザー ド を 使 用 する と 、 Vivado IP カ タ ロ グか ら 使 用 可 能 なカ ス タ ム IP を 作 成 でき<br />

ます。 IP コ アのパ ッ ケージ 化 には、 業 界 標 準 の IP-XACT フ ォーマ ッ ト が 使 用 さ れます。 パ ッ ケージ 化 さ れた IP の<br />

ディレク ト リは、 Vivado Design Suite の [Project Settings] → [IP] → [Repository Manager] タブに 追 加 できます。 IP コア<br />

の リ ポジ ト リ を 追 加 する と 、 その IP が IP カタログに 表 示 されるよ うになり、 選 択 してカスタマイズできます。<br />

Vivado IP パ ッ ケージ ャーを 使 用 し た フ ローは、 次 の と お り です。<br />

1. Vivado IP パ ッ ケージ ャーを 使 用 し て、 IP の HDL および 関 連 するデータ ファイルを 作 成 してパッケージ 化 しま<br />

す。IP パ ッ ケージ ャーでは、 現 時 点 では SystemVerilog ソースは 最 上 位 と し てはサポー ト さ れません。SystemVerilog<br />

ソースには Verilog または VHDL ラッパーが 必 要 です。<br />

2. パッケージ 化 された IP をチーム メンバーまたはカスタマーに 提 供 します。<br />

3. エンド ユーザーは、その IP ディレク ト リを Vivado Design Suite の [Project Settings] → [IP] → [Repository Manager]<br />

タブに 追 加 します。<br />

4. IP コアが IP カ タ ロ グに 表 示 さ れ、 ザ イ リ ン ク ス 提 供 の IP と 同 様 、 その IP を 選 択 およびカスタマイズできるよ<br />

うになります。<br />

Create and Package IP ウ ィザードでは、2 つの 方 法 でカ ス タ ム IP を 作 成 できます。1 つ 目 の 方 法 では、Create and Package<br />

IP ウ ィザードで 1 つ 以 上 の AXI イ ン ターフ ェ イ ス を 含 む 新 規 IP コアを 作 成 します。インターフェイスを 作 成 したら、<br />

カスタム IP を 挿 入 してインターフェ イ スに 接 続 します。 2 つ 目 の 方 法 では、 IP コアをパッケージ 化 し、 IP インテグ<br />

レーターで 後 で 使 用 でき る よ う に IP カ タ ロ グに 含 めます。 こ の 方 法 は、 AXI インターフェイスを 含 むカスタム IP の<br />

すべての HDL フ ァ イルがあ る 場 合 に 使 用 で き ます。<br />

Create and Package IP ウ ィ ザー ド を 使 用 する と 、 ザ イ リ ン ク ス IP、 サードパーティ IP、 カスタム IP のどれでも、 同 じ<br />

ように 設 定 できるようになります。IP の 作 成 およびパ ッ ケージの 詳 細 については、 『Vivado Design Suite ユーザー ガ<br />

イド : カスタム IP の 作 成 およびパ ッ ケージ』 (UG1118) [ 参 照 22] を 参 照 して く ださい。<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 139<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 5 章 : ハー ド ウ ェ ア デザイ ン フロー<br />

IP カタログのアップデート<br />

Vivado IP カタログは、IP の 検 索 、 詳 細 情 報 の 確 認 、 関 連 資 料 の 表 示 を 実 行 可 能 な 統 合 リ ポジ ト リ です。 IP コアをパッ<br />

ケージ 化 した 後 、 その IP コアを 含 む IP リポジト リを Vivado ツールで 指 定 し て、 Vivado IP カタログに IP コ ア を 追 加<br />

できます。 これで、 新 し くパッケージ 化 された IP を IP インテグレーターで 使 用 できます。<br />

カスタム イ ン タ ーフ ェ イ スの 作 成<br />

Vivado Design Suite では、 すべての メ モ リ マップ インターフェイスで AXI インターフェイスが 使 用 されるようにす<br />

る 必 要 があ り ます。Vivado Design Suite には、 カス タ ム IP インターフェイスを AXI イ ン ターフ ェ イ ス 規 格 に 準 拠 する<br />

よう 変 換 するウィザードがあります。Create and Package IP ウ ィザードでは、3 種 類 の AXI インターフェイスを 生 成<br />

できます。<br />

• AXI4 :1 つのア ド レ ス フェーズを 使 用 して、 最 大 256 データ 転 送 サ イ ク ルのバース ト が 可 能 な メ モ リ マップ イ<br />

ン ターフ ェ イ スに 使 用 し ます。<br />

• AXI4-Lite : 軽 量 の 単 一 ト ラ ンザ ク シ ョ ンの メ モ リ マップ インターフェイスです。<br />

• AXI4-Stream :アドレス フ ェーズの 要 件 を 削 除 し、 制 限 のないデータ バース ト サ イ ズを 使 用 で き る よ う に し ます。<br />

Create and Package IP ウ ィザードでは、HDL、 ドライバー、テスト アプ リ ケーシ ョ ン、 バス ファンクション モデル<br />

(BFM)、 およびテンプレート 例 を 含 む AXI4 ペ リ フ ェ ラ ルのテンプレー ト を 作 成 で き ます。 ペ リ フ ェ ラルが 作 成 さ れ<br />

たら、 デザイン ファイルを 追 加 してカスタム IP を 完 成 します。 詳 細 は、『Vivado Design Suite ユーザー ガイド :IP を<br />

使 用 し た 設 計 』 (UG896) [ 参 照 22] および 『Vivado Design Suite ユーザー ガイド :IP インテグレーターを 使 用 した IP サ<br />

ブシ ス テムの 設 計 』 (UG994) [ 参 照 18] を 参 照 して く ださい。<br />

カスタム IP の 管 理<br />

Vivado IP カタログには、 別 のソースから IP を 追 加 で き る ビル ト イ ンの リ ポジ ト リ 管 理 機 能 が 含 まれます。 カ ス タ ム<br />

IP が 表 示 される よ う にするには、ホ ス ト マシンからアクセス 可 能 なディ レ ク ト リ にカスタム IP を 置 き、Vivado Design<br />

Suite を 起 動 して IP カタログで [IP Settings] ツールバー ボタンをク リ ックして、 新 しいユーザー リポジト リのディレ<br />

ク ト リ を 指 定 し て、 新 規 IP がカタ ログに 含 まれる よ う にします。<br />

リポジト リには、 次 の 2 種 類 があ り ます。<br />

• 標 準 ザ イ リ ン ク ス リポジト リ : Vivado Design Suite には、 標 準 ザイ リ ン ク ス リポジト リが 含 まれています。 これ<br />

らのリポジト リは 常 にオンになっており、 ザイ リンクス IP カ タ ロ グで 変 更 する こ と はで き ません。<br />

• 設 定 さ れたユーザー リポジト リ : ユーザー リポジト リは、1 つ 以 上 の IP コアを 含 むアクティブなマシンからア<br />

クセス 可 能 なディレク ト リです。<br />

リポジト リ マネージ ャーを 使 用 する と 、 ユーザー リ ポジ ト リ を 追 加 ま たは 削 除 し た り 、 リ ポジ ト リ 間 の 優 先 順 位 を<br />

指 定 で き ます。 IP は、 ベンダー、 ラ イ ブ ラ リ 、 名 前 、 バージ ョ ン (VLNV) に よ って 区 別 さ れます。<br />

複 数 の リ ポジ ト リ が 参 照 さ れ、 同 じ IP の VLNV が 複 数 のロ ケーシ ョ ンにあ る 場 合 は、 優 先 順 位 の 最 も 高 い リ ポジ ト<br />

リの IP コアが 表 示 されます。 ザイ リンクス IP リ ポジ ト リ は 常 にオンになってお り 、 優 先 順 位 は 一 番 低 く なっていま<br />

す。<br />

プ ロ ジ ェ ク ト の リ ポジ ト リ 設 定 を 変 更 する と 、リ ポジ ト リ マネージ ャーに よ り 変 更 がプ ロ ジ ェ ク ト 設 定 に 保 存 さ れる<br />

ので、 そのプロ ジェ ク ト を どのマシンで 開 いて も、 変 更 された リ ポジ ト リ 設 定 が 使 用 されます ( リポジト リ パスが 有<br />

効 であ る 場 合 )。<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 140<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 5 章 : ハー ド ウ ェ ア デザイ ン フロー<br />

Vivado 高 位 合 成 (HLS)<br />

高 位 合 成 (HLS) を 使 用 する と 、 C、 C++、 OpenCL Kernel または SystemC デザイ ン 仕 様 を レジス タ トランスファー<br />

レベル (RTL) イ ンプ リ メ ンテーシ ョ ンに 変 換 し、 それをザ イ リ ン ク ス All Programmable デバイ スに 合 成 でき ます。<br />

HLS では、 デザイ ンに 対 して 2 種 類 の 合 成 を 実 行 し ます。<br />

• アルゴ リ ズム 合 成 : 機 能 文 を 複 数 ク ロ ッ ク サイクル 数 の RTL 文 に 合 成 し ます。<br />

• インターフェイス 合 成 : 関 数 引 数 (またはパラ メーター) を 特 定 のタ イ ミ ング プロ ト コルを 使 用 した RTL ポート<br />

に 変 換 し、 デザイ ンがシステム 上 のほかのデザイ ン と 通 信 でき る よ う にし ます。<br />

手 動 の RTL デザ イ ン と 同 様 に、 可 能 な イ ンプ リ メ ンテーシ ョ ンおよび 最 適 化 は 数 多 く あ り 、 その 組 み 合 わせ も 非 常<br />

に 多 数 です。 HLS を 使 用 する と 、 ユーザーが こ の よ う な 詳 細 を 考 慮 する 必 要 はな く 、 短 時 間 で 最 適 なデザ イ ン を 作 成<br />

できます。<br />

HLS は 通 常 、 SDK またはサードパーティ ツールでソフ ト ウェア アプ リ ケーシ ョ ンのプ ロ フ ァ イ リ ン グ を 実 行 し て ソ<br />

フトウェアのボトルネックを 特 定 した 後 に 使 用 されます。ボトルネックとなっている 関 数 を 特 定 したら、これらの 関<br />

数 を HLS を 使 用 してハード ウ ェアに 移 動 します。 この HLS デザイ ンを IP コアとしてエクスポート し、 IP インテグ<br />

レーターで 使 用 できます。 HLS では、 IP の 機 能 を 検 証 する ために 使 用 でき る シ ミ ュ レーシ ョ ン モデルも 生 成 でき ま<br />

す。 詳 細 は、 『Vivado Design Suite ユーザー ガイド : 高 位 合 成 』 (UG902) [ 参 照 9] を 参 照 して ください。<br />

まとめ<br />

エンベデッ ド デザイ ンを IP イ ンテグ レーターでキ ャ プチャする には、 通 常 次 の 手 順 に 従 う 必 要 があ り ます。<br />

1. Zynq-7000 AP SoC や MicroBlaze プロセッサなどのプロセッサ IP を 追 加 します。<br />

2. プロセッサ IP をインスタンシエートすると、 設 計 アシスタンスが 使 用 できるよ うになります。 設 計 アシスタン<br />

ス を 使 用 し て、 プ ロ セ ッ サおよびペ リ フ ェ ラ ルを コ ン フ ィ ギ ュ レーシ ョ ン し ます。<br />

3. 必 要 に 応 じ てプロ セ ッ サを さ らにカ ス タ マイ ズ し ます。 この 手 順 は、 ク ロ ッ ク、 リ セ ッ ト 、 I/O ポー ト などに 機<br />

能 および 制 御 を 追 加 する 場 合 に 必 要 です。<br />

4. ペリフェラルを 追 加 し、 設 計 アシスタンスがあればそれを 利 用 してペリフェラルを 接 続 します。<br />

5. GPIO、 イーサネットなどの 外 部 インターフェイス 用 にコネクティビティ IP を 追 加 します。<br />

6. 必 要 に 応 じ てプ ロ グ ラ マブル ロジックのカスタム ア ク セ ラ レータ を 追 加 し ます。<br />

7. [Signals] タブまたは Make Connection ウィザードを 使 用 して、 クロックおよびリセット ド メ イ ン を 接 続 し て 確 認<br />

します。<br />

8. デザイ ン ルール チェ ッ ク を 実 行 し、 デザ イ ン を 検 証 し ます。 デザ イ ン 検 証 で 検 出 さ れたエ ラーま たは 警 告 を 解<br />

決 し、 エ ラーがな く な る までデザ イ ンの 検 証 を 続 け ます。<br />

9. デザ イ ン を 合 成 、 イ ンプ リ メ ン ト し、 ビ ッ ト ス ト リ ーム を 生 成 し ます。<br />

10. ソフトウェア 開 発 のためデザインを SDK にエク スポー ト し ます。<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 141<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 6 章<br />

ソフトウェア デザイ ン フロー<br />

この 章 では、 Zynq ® -7000 AP SoC でのソ フ ト ウ ェア デザイ ン フ ローについて 説 明 し、 ソ フ ト ウ ェ ア 開 発 における さ<br />

ま ざ ま な 役 割 に 関 する ガ イ ダン ス を 示 し ます。 各 役 割 のデザ イ ン フローについて、 ツール フローの 概 要 、 およびザ<br />

イ リ ン ク スおよびパー ト ナーか ら 提 供 さ れてい る 各 段 階 の ソ リ ューシ ョ ン を 示 し ます。 よ り 詳 細 な 情 報 が 必 要 な 場 合<br />

は、 こ のガ イ ド のほかのセ ク シ ョ ンおよび 外 部 資 料 への 参 照 が 示 さ れています。<br />

ASIC および ASSP とは 異 なり、 Zynq-7000 AP SoC にはプログ ラマブル ロジック (PL、 デバイスのハードウェアでコ<br />

ンフィギュレーショ ン 可 能 な FPGA 部 分 ) とプロセッシング システム (PS、 2 つの ARM Cortex-A9 コア) が 含 まれま<br />

す。 PL のハー ド ウ ェ ア 設 計 およびコ ン フ ィ ギ ュ レーシ ョ ンは、 ザ イ リ ン ク ス Vivado ® ツールを 使 用 し て 実 行 し ます。<br />

詳 細 は、 第 5 章 「ハードウェア デザイ ン フロー」 を 参 照 して く ださい。 Vivado ツールからのハード ウェア デザイ ン<br />

フ ァ イルは、 ソ フ ト ウ ェ ア 開 発 用 にザ イ リ ン ク ス SDK に 送 信 されます。 図 6-1 に、Zynq-7000 AP SoC でのハード ウ ェ<br />

アとソフトウェアの 開 発 フローを 示 します。<br />

X-Ref Target - Figure 6-1<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

図 6‐1 : ハー ド ウ ェ アおよびソ フ ト ウ ェ アの 開 発 フ ロー<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 142<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 6 章 : ソフトウェア デザイ ン フロー<br />

142 ページの 図 6-1 を 見 る と、ハード ウェア フローからソフトウェア フ ローに 送 信 さ れる フ ァ イル (ハン ドオフ ファ<br />

イル) には、 ハー ド ウ ェ ア 仕 様 、 PS ペ リ フ ェ ラ ル 情 報 、 レ ジ ス タ メモリ マップ、 PL の ビ ッ ト ス ト リ ームな ど の 情 報<br />

が 含 まれています。ハン ド オフ フ ァ イルに よ り 、ソ フ ト ウ ェ ア 開 発 者 は Zynq-7000 AP SoC のリコンフィギュレーショ<br />

ン 可 能 なハー ド ウ ェ ア を 考 慮 する 必 要 はあ り ません。ハン ド オフ ファイルは、ソフトウェアに 対 してハードウェアを<br />

ASSP の よ う に 示 し ます。 ソ フ ト ウ ェ ア 開 発 者 はハン ド オフ フ ァ イルを 使 用 し て、 フ ァーム ウ ェ ア、 ド ラ イバー、 お<br />

よびボード サポー ト パッケージ (BSP) を 設 計 し ます。<br />

通 常 、Zynq7000-AP SoC のソフ ト ウェア デザイ ン フローには、 図 6-2 に 示 すソ フ ト ウ ェ ア 層 の 1 つま たは 複 数 の 開 発<br />

が 含 まれます。<br />

X-Ref Target - Figure 6-2<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

図 6‐2 : ソ フ ト ウ ェ ア 開 発 層<br />

こ の 後 のセ ク シ ョ ンで、 ボー ド 立 ち 上 げ、 ド ラ イバー 開 発 、 アプ リ ケーシ ョ ン 開 発 の 3 つの 役 割 におけ る ソ フ ト ウ ェ<br />

ア 開 発 フ ローについて 説 明 し ます。 各 役 割 は、 図 6-2 に 示 す 層 の 1 つを 開 発 し ます。 こ の 章 の 該 当 する セ ク シ ョ ン を<br />

参 照 し て、 役 割 に 関 連 する ソ フ ト ウ ェ ア 開 発 フ ローを 理 解 で き ます。<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 143<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 6 章 : ソフトウェア デザイ ン フロー<br />

ボード 立 ち 上 げ<br />

ボー ド 立 ち 上 げの 作 業 には、 低 レベル ファームウェアの 開 発 、 ブート シーケ ン ス の 設 定 、 イ ン ターフ ェ イ スおよび<br />

ペ リ フ ェ ラ ルの 基 本 的 なテ ス ト が 含 まれます。 こ のセ ク シ ョ ンでは、 ボー ド 立 ち 上 げの 基 本 的 な 作 業 の 次 の 段 階 で 使<br />

用 可 能 なザ イ リ ン ク ス 開 発 ソ リ ューシ ョ ン を 示 し ます。<br />

1. PS の 初 期 化<br />

2. PL コンフィギュレーション<br />

3. メモリおよびペリフェラルのテスト<br />

4. ハー ド ウ ェ ア と ソ フ ト ウ ェ アのデバ ッ グ<br />

PS の 初 期 化<br />

Vivado でデザイ ンをエク スポー ト する と、 ps7_init.tcl および ps7_init.c フ ァ イルが 自 動 的 に 作 成 されます。<br />

ps7_init.c ファイルは 初 期 化 ファイルで、 FSBL (First Stage Boot Loader) で PS を 初 期 化 す る ために 使 用 さ れ ます。<br />

ボード の 立 ち 上 げの 最 初 の 手 順 では、 ターゲ ッ ト Zynq-7000 AP SoC にザイ リ ン ク ス デバッガーを 介 して 接 続 し、<br />

ps7_init.tcl スクリプト (ps7_init.c と 同 じ 結 果 を 提 供 ) を 実 行 して PS ペリフェラル、 クロック、DDR、 PLL、<br />

および MIO を 初 期 化 し ます。 PS が 正 し く 初 期 化 さ れた こ と を 検 証 する には、 メ モ リ 読 み 出 し を 実 行 し て、 XSDB デ<br />

バッガーからコマンドを 検 証 します。システム ペ リ フ ェ ラ ルに 対 し て 読 み 出 しおよび 書 き 込 みを 実 行 し て、 基 本 的 な<br />

機 能 を 検 証 で き ます。<br />

FSBL は、 U-Boot などのセカンド ステージ ブー ト ローダーを 読 み 込 むか、 オペレーテ ィ ン グ シ ス テム を 読 み 込 んで<br />

ブー ト で き ます。 ベア メ タル インプリ メンテーションでは、 FSBL はアプ リ ケーシ ョ ン コー ド を 直 接 読 み 込 みます。<br />

通 常 のブー ト およびセキ ュ ア ブー ト を 含 む FSBL の 詳 細 は、 『Zynq-7000 All Programmable SoC ソ フ ト ウ ェ ア 開 発 者 向<br />

けガイ ド』 (UG821) [ 参 照 7] を 参 照 して く ださい。<br />

サー ド パーテ ィ デバ ッ ガーでは、 FSBL を 使 用 して DDR メ モ リ を 初 期 化 し、 アプ リ ケーシ ョ ン コー ド を 読 み 込 む こ<br />

とができ、 これらをデバッガーでデバッグできます。 たとえば、 FSBL を OCM に 読 み 込 み、 数 秒 間 実 行 し て 停 止 し、<br />

その 後 デバ ッ グ ツールを 使 用 し て、 JTAG を 介 してデバッグ 用 に DDR のアプ リ ケーシ ョ ン コー ド を 読 み 込 む こ と が<br />

で き ます。 ほ と んどのデバ ッ ガーでは、 こ のプ ロ セス を 自 動 化 する ス ク リ プ ト メカニズムがサポートされます。<br />

ザイ リ ンクス SDK リポジト リには、 ボード 立 ち 上 げに 使 用 できるベアメタル ドライバーが 含 まれています。<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 144<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 6 章 : ソフトウェア デザイ ン フロー<br />

U‐Boot<br />

U-Boot はオープン ソースのユニバーサル ブー ト ローダーで、プラ イマ リ またはセカンダ リ ブー ト ローダー と し て 使<br />

用 でき ます。 U-Boot は、 ス タ ン ド ア ロ ン アプ リ ケーシ ョ ン、 ビ ッ ト ス ト リーム、 または Linux OS カーネルを 読 み 込<br />

むのに 使 用 でき ます。 Zynq-7000 AP SoC では、 U-Boot はセカンダ リ ブー ト ロ ーダー と し て 使 用 さ れますが、 プ ラ イ<br />

マリ ブー ト ローダー と し て コ ン フ ィ ギ ュ レーシ ョ ンおよび 再 構 築 で き ます。FSBL は、U-Boot などのセカンダリ ブー<br />

ト ローダーを 起 動 する ために 設 計 さ れています。 U-Boot は 外 部 デバイ スか ら 読 み 込 むこ と がで き、 プ ラ イ マ リ ブー<br />

ト ローダーで 初 期 化 さ れない PS ペ リ フ ェ ラ ルを 初 期 化 する のに 使 用 で き ます。U-Boot やその 他 のセカンダ リ ブー ト<br />

ローダーは、 ブー ト 時 間 を 短 縮 する ため 最 終 製 品 か ら 削 除 で き ます。<br />

図 6-3 に、 ブー ト プ ロ セスに 関 連 する ブー ト シーケンス と フ ァ イルを 示 し ます。<br />

X-Ref Target - Figure 6-3<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

図 6‐3 : ブート シーケンスとブー ト ファイル<br />

オープン ソースのザイ リ ンクス U-Boot プロジェク トは、 ザイ リ ンクス Git リ ポジ ト リ か ら 入 手 で き ます。 ザ イ リ ン<br />

クス U-Boot は、 PetaLinux の 一 部 と し て も リ リ ース されています。 U-Boot のコンフィギュレーショ ンおよびビルドの<br />

詳 細 は、 ザ イ リ ン ク ス U-Boot の Wiki ページ [ 参 照 57] を 参 照 して く ださい。<br />

PL コンフィギュレーション<br />

PL は、 ARM コアで 実 行 されているソフト ウェアまたは JTAG を 介 してコンフ ィ ギュレーシ ョ ンされます。 ザイ リ ン<br />

クスでは、FSBL、 U-Boot、 または Linux を 使 用 した PL コンフィギュレーションがサポート されています。<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 145<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 6 章 : ソフトウェア デザイ ン フロー<br />

プロダクショ ン ボード では、 FSBL で PCAP インターフェイスを 使 用 して PL を コ ン フ ィ ギ ュ レーシ ョ ン で き ま す。<br />

開 発 およびデバ ッ グ 段 階 では、Vivado ツールまたはザイ リ ンク ス SDK を 使 用 して JTAG を 介 して PL を コ ン フ ィ ギ ュ<br />

レーシ ョ ンできます。 PL を コ ン フ ィ ギ ュ レーシ ョ ン し た 後 、 プ ロ セ ッ サか ら PS ペリフェラルと 同 様 に PL ペリフェ<br />

ラ ルにア ク セスで き ます。 こ の 段 階 では、 デバ ッ ガーで PL ペリフェラル レ ジ ス タ に 対 し て 読 み 出 しおよび 書 き 込 み<br />

を 実 行 できます。<br />

メモリおよびペリフェラルのテスト<br />

ザイ リ ンクス SDK には、 DDR メモリ と、 メモリ コント ローラーおよび DDR インターフェイスのシグナル イ ン テ グ<br />

リ テ ィ を 検 証 する メ モ リ テ ス ト が 含 まれています。ベア メ タル メモリ テス ト アプ リ ケーシ ョ ンを 使 用 して、DDR メ<br />

モリのパワーオン セルフ テス ト を 実 行 できます。 DRAM テス ト アプ リ ケーシ ョ ン テ ン プ レー ト は、 イ ン ス ト ール<br />

ディレク ト リの SDK\2014.2\data\embeddedsw\lib\sw_apps\zynq_dram_test にあ り ます。<br />

多 くの PS ペ リフェラルのサンプル ドライバーが 用 意 されています。 これらは、インストール デ ィ レ ク ト リ の<br />

SDK\\data\embeddedsw\XilinxProcessorIPLib\drivers\ に あ り ま す。 こ の<br />

フォルダーには、ザイ リンクス ソフト IP コアのサンプル テス ト アプ リ ケーシ ョ ン も 含 まれてい ます。 こ れ ら のテ ス<br />

ト を 使 用 し て、 ボー ド 立 ち 上 げ 段 階 でペ リ フ ェ ラ ルをテ ス ト で き ます。 ま た、 テ ス ト を 変 更 し て、 包 括 的 なパワーオ<br />

ン セルフ テス ト またはビルト イン テ ス ト を 開 発 する こ と も で き ます。<br />

ハー ド ウ ェ ア と ソ フ ト ウ ェ アのデバッ グ<br />

DDR の 初 期 化 でエ ラーが 発 生 する こ と があ り ます。 その 場 合 、 FSBL 段 階 のデバ ッ グ を 実 行 し てデバ ッ ガーに 接 続 で<br />

き ます。 その 後 、 DDR にダウンロード されるアプ リ ケーシ ョ ンをデバッグできます。 ザイ リ ン ク ス SDK では、 ヘテ<br />

ロジニアス マルチコア デバ ッ グがサポー ト されてお り 、MicroBlaze プロセッサと ARM コアの 両 方 をデバッグでき<br />

ます。 問 題 が ソ フ ト ウ ェ アにあ る のかハー ド ウ ェ アにあ る のかがはっ き り し ない 場 合 は、 ク ロ ス トリガーを 使 用 でき<br />

ます。 ク ロス ト リ ガーの 設 定 の 詳 細 は、 『Vivado Design Suite チュート リ アル : エンベデッ ド プロセッサ ハー ド ウ ェ<br />

ア デザイ ン』 (UG940) [ 参 照 15] を 参 照 して く ださい。<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 146<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 6 章 : ソフトウェア デザイ ン フロー<br />

ド ラ イバーの 開 発<br />

ド ラ イバー 開 発 では、 SoC およびオンボード ペリフェラル 用 のソフトウェア ドライバーを 作 成 し、OS やベア メ タル<br />

アプ リ ケーシ ョ ンなどの 上 位 ソ フ ト ウ ェ ア 層 の イ ン ターフ ェ イ ス を 確 立 し ます。ARM Cortex-A9 および MicroBlaze コ<br />

ア 用 にペ リ フェ ラル ドライバーを 作 成 する 必 要 があります。 このセクションでは、 コンフィギュレーションされた<br />

ハー ド ウ ェ ア 用 にベア メ タルおよび Linux ド ラ イバーを 開 発 する 際 の 考 慮 事 項 と 、 使 用 可 能 なザ イ リ ン ク ス ソ リュー<br />

ションを 示 します。<br />

ベアメ タル ドライバー<br />

ザイ リ ンクス SDK では、 ド ラ イバー 開 発 (ザイ リ ンクス IP ドライバーおよびカスタム ドライバーの 両 方 ) お よ び ソ<br />

フトウェア 開 発 サイクルで 使 用 されるさまざまなファイル タイプがサポートされています。 図 6-4 にファ イル タイ<br />

プ と デ ィ レ ク ト リ 構 造 を 示 し ます。<br />

X-Ref Target - Figure 6-4<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

図 6‐4 : ドライバー、OS、 ライブラリのディレクトリ 構 造<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 147<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 6 章 : ソフトウェア デザイ ン フロー<br />

ハン ドオフ フ ァ イルの 詳 細<br />

図 6-5 に、 ハン ド オフか らデバ ッ グ までの ソ フ ト ウ ェ ア 開 発 サ イ ク ルを 示 し ます。<br />

X-Ref Target - Figure 6-5<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

図 6‐5 : SDK を 使 用 し た ソ フ ト ウ ェ ア 開 発 サイ クル<br />

ソフ ト ウェア 開 発 サイクルは、 ハードウェア デザイ ン フローで 作 成 されたハンドオフ フ ァ イ ルか ら 開 始 し ます。<br />

Vivado ツールでハード ウェア デザイ ンが 用 意 される と、 ド ラ イバーおよびアプ リ ケーシ ョ ンの 開 発 で SDK によ り 使<br />

用 されるハードウェア ハン ドオフ フォルダーが 作 成 されます。 2014.2 リリースから、Vivado ハー ド ウ ェ ア エクス<br />

ポー ト によ り 1 つの 圧 縮 されたハー ド ウ ェ ア 定 義 フ ァ イル (*.hdf) が 作 成 され、 SDK_Export フォルダーに 保 存 さ<br />

れます。 このファ イルには、 ベース ア ド レ スやバージ ョ ン 情 報 などのハー ド ウ ェ アの 詳 細 が 含 まれます。 SDK ワー<br />

クスペースから、ハードウェア プラッ ト フォーム プロジェク トが 作 成 されます。 ワー ク スペース 内 に 作 成 さ れたプ ロ<br />

ジェク トは *.hdf フ ァ イルに 指 定 する こ と に よ り コ ン フ ィ ギ ュ レーシ ョ ン さ れます。 SDK の 2014.2 リリースから、<br />

*.hdf フ ァ イルに 加 えて 従 来 の XML ファイルのインポートがサポート されるようになりました。<br />

BSP プ ロ ジ ェ ク ト を 構 築 する 際 は、 SDK によ り xparameters.h フ ァ イルが 生 成 され、 ハード ウ ェ アの 詳 細 (ベース<br />

ア ド レ スおよび 割 り 込 み ID など) が #define 定 数 の 形 で 挿 入 さ れます。 ソ フ ト ウ ェ ア ドライバー (スタンドアロン<br />

プラッ ト フォーム) およびアプ リ ケーシ ョ ンは、 コー ド の こ れら の 定 数 を 参 照 で き ます。<br />

ドライバー フ ァ イルの 構 成<br />

ザイ リ ンクス IP (PS ペリフェラル IP およびソフ ト IP) のドライバーは、SDK に 含 まれています。これらの ド ラ イバー<br />

は、 SDK インストール ディレク ト リの data/embeddedsw/XilinxProcessorIPLib/drivers フォルダーにあ<br />

ります。 各 ドライバーは、 個 別 のフォルダーに 含 まれます。 これらのドライバーは、SDK インストール ディレク ト<br />

リの data/embeddedsw/XilinxProcessorIPLib/drivers フォルダーにあります。<br />

各 ドライバー フ ォルダーには、 次 の 4 つのサブフ ォルダーがあ り ます。<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 148<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 6 章 : ソフトウェア デザイ ン フロー<br />

• data : MDD ファイルと Tcl スクリプト ファイルが 含 まれます。<br />

• doc : API の 詳 細 と ド ラ イバーに イ ンプ リ メ ン ト さ れるデータ 構 造 を 示 すヘルプ ファイルが 含 まれます。<br />

• examples : ド ラ イバーの 使 用 法 の 例 を 示 す C ソース フ ァ イルが 含 まれます。 これらの 例 は、 ビル ド し てハード<br />

ウ ェ ア 上 ですぐ 駆 動 で き ます。ス タ ン ド ア ロ ン アプ リ ケーシ ョ ンをビルドする 手 順 に 従 う 際 にそのまま 使 用 でき<br />

ます。 必 要 に 応 じ て 変 更 も 可 能 です。<br />

• Src : ドライバーのソース コード (C および H ファイル) が 含 まれます。<br />

ソース ファイルのリポジト リは、 図 6-6 に 示 す 構 造 になっています。<br />

X-Ref Target - Figure 6-6<br />

図 6‐6 : ソース ファイルのリポジトリ<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 149<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 6 章 : ソフトウェア デザイ ン フロー<br />

ドライバーのソース コードをプロジェク ト ワー ク スペースに 読 み 込 むため、 SDK によ り MDD フ ァ イ ルが 各 バー<br />

ジ ョ ンのフ ォルダーに 読 み 込 まれます。 MDD フ ァ イルのパ ラ メ ーター 値 に 基 づいて、 対 応 する ド ラ イバー バージ ョ<br />

ンが 選 択 さ れます。SDK で ド ラ イバーに 複 数 のバージ ョ ンが 検 出 される と 、デフ ォル ト で 最 新 のバージ ョ ンが 選 択 さ<br />

れます。 プ ロ グ ラ マでは、 ド ロ ッ プボ ッ ク スか ら 必 要 なバージ ョ ン を 選 択 で き ます。<br />

MDD は、 次 の タ ス ク で 使 用 さ れます。<br />

• カスタム ドライバーを SDK に 統 合<br />

• 既 存 のド ライバーを 変 更 し、 その 変 更 したバージ ョ ンを SDK に 統 合<br />

• 新 しいソフ ト ウェア サービ ス を 追 加 する な ど、 BSP を 変 更<br />

IP ブロックと ドライバー<br />

表 6-1 は、 IP ブロック と ド ライバーを 示 しています。 この 表 に 示 すよ うに、 どちらのタイプの IP ブロックに 対 して<br />

も、 SDK でドライバーのソース コー ド を 特 定 し て 読 み 込 むこ と がで き ます。<br />

表 6‐1 : SDK でサポー ト される IP ブ ロ ッ ク と ド ラ イバーの 組 み 合 わせ<br />

ソフト IP (PL)<br />

ザイリンクス ドライバー<br />

サポー ト あ り<br />

カスタム ドライバー<br />

サポー ト あ り<br />

PS IP (PS)<br />

サポー ト あ り<br />

サポー ト あ り<br />

PS IP<br />

PS IP は、 Zynq-7000 AP SoC PS に 含 まれるハード ウ ェ ア ブロックです。 PS には、 複 数 のペ リ フ ェ ラル (USB、 I2C、<br />

イーサネッ ト など) と ARM Cortex-A9 プロセッサが 含 まれます。<br />

ペリフェラルにアクセスするには、 アプリケーションにドライバー サポー ト が 必 要 です。 ベア メ タル ドライバーお<br />

よび Linux ド ラ イバーは 提 供 さ れています。 SDK では、すべての PS IP ペ リ フ ェ ラ ル 用 のビル ド 済 みベア メ タル ド ラ<br />

イバーと Linux カーネル (ザイ リ ンクス サポー ト ) ド ラ イバーが 提 供 さ れています。<br />

ソフト IP<br />

ソフト IP は、 デザ イ ンの 一 部 と し て 構 築 さ れ、 Zynq-7000 AP SoC PL に 読 み 込 まれるハー ド ウ ェ ア ブ ロ ッ ク です。 た<br />

とえば、 PL 内 の ソ フ ト IP ブロックには、 VDMA、 AXI イーサネッ ト、 サードパーティ IP ブロッ クなどがあり ます。<br />

ペリフェラルにアクセスするには、 アプリケーションにドライバー サポー ト が 必 要 です。 ベア メ タル ドライバーお<br />

よび Linux ドライバーは 提 供 されています。ベアメタル ドライバーは SDK で 提 供 されてお り 、Linux ド ラ イ バーはザ<br />

イリンクスから Linux カーネル ソース ツ リ ーに よ り 提 供 さ れています。<br />

サー ド パーテ ィ IP ドライバーを SDK で 使 用 でき る よ う にするには、 次 の 手 順 に 従 う 必 要 があ り ます。<br />

• IP ブ ロ ッ ク 用 の ド ラ イバーを 作 成 し ます。<br />

• SDK で 使 用 する 関 連 のデータ 定 義 フ ァ イル (MDD) とデータ 生 成 ファイル (Tcl) を 作 成 し ます。<br />

• ドライバーのパスを SDK プロジェク トの 外 部 リポジト リ として 設 定 します。 これで、 SDK で 通 常 どお り ド ラ イ<br />

バーが 認 識 さ れ、 読 み 込 まれます。<br />

151 ページの 図 6-7 に、 ベアメタル ド ラ イバー と アプ リ ケーシ ョ ン 開 発 フ ローを 示 し ます。<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 150<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 6 章 : ソフトウェア デザイ ン フロー<br />

X-Ref Target - Figure 6-7<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

図 6‐7 : ベアメ タル アプ リ ケーシ ョ ンの 概 要<br />

詳 細 は、 『Zynq-7000 All Programmable SoC ソ フ ト ウ ェ ア 開 発 者 向 けガ イ ド 』 (UG821) [ 参 照 7] を 参 照 して く ださい。<br />

ザイリンクス ドライバー フロー<br />

ソフト IP ドライバーは、 ツール イ ンス ト ールと 共 に 提 供 されています。 ド ラ イバーは、 標 準 ド ラ イバーの 場 所 から<br />

BSP に 直 接 イ ンポー ト でき ます。<br />

標 準 ド ラ イバーを 変 更 および 使 用 する には、 次 の 2 つの 方 法 があ り ます。<br />

• 方 法 1 :<br />

° デフォル ト のド ラ イバー パスでド ラ イバー ソース コー ド を 変 更 し ます。<br />

° BSP を 読 み 込 み 直 し て 構 築 し ます。 こ れに よ り 、 変 更 さ れた ド ラ イバーが 読 み 込 み 直 さ れます。<br />

• 方 法 2 :<br />

° ローカル パスにド ライバー フ ォルダー 構 造 を 作 成 し ます。<br />

° 標 準 ド ラ イバーをコピーし、 異 なるバージ ョ ン 番 号 を 付 けます。<br />

° ソース コー ド と 対 応 する MDD ファイルを 変 更 します。<br />

° SDK で、 ローカル リポジト リ パスを 指 定 し、 SDK で 変 更 し た ド ラ イバーが 使 用 される よ う にし ます。<br />

MDD パラ メーターの 詳 細 は、 『 基 本 的 なソフ ト ウェア プラッ ト フォームの 生 成 リ ファレンス ガイド』 (UG1138) [ 参<br />

照 23] の 「Microprocessor Driver Definition (MDD)」 の 章 を 参 照 し て く だ さ い。<br />

カスタム ドライバー フロー<br />

カスタム IP ソ フ ト ウ ェ アは、 ラ イ ブ ラ リ ま たは ド ラ イバーの 形 式 にする こ と がで き ます。 ザ イ リ ン ク ス MDD および<br />

MLD ファイルは、 カスタム IP ブロ ッ ク 用 の ド ラ イバーの 作 成 に 必 要 な 機 能 を 提 供 し、 次 を 可 能 にし ます。<br />

• 新 しいド ライバーを 変 更 し、 SDK に 統 合<br />

• 既 存 の ド ラ イバーを カ ス タ マ イ ズ<br />

• BSP フ ォーマ ッ ト およびフ ォルダー 構 造 を OS ツール チェーンに 合 わせてカスタマイズ<br />

• ハー ド ウ ェ アに 基 づいて OS をカスタマイズ<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 151<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 6 章 : ソフトウェア デザイ ン フロー<br />

MLD フォーマッ トは、 ライブラ リおよび OS を カ ス タ マ イ ズする ために 使 用 するパラ メ ーターを 記 述 し ます。 Libgen<br />

ツールでコ ンフ ィ ギュ レーシ ョ ンする 必 要 のあ るユーザー 記 述 ラ イブラ リ およびオペレーテ ィ ング システムの 詳 細<br />

は、 『 基 本 的 な ソ フ ト ウ ェ ア プラッ ト フォームの 生 成 リ ファレンス ガイド』 (UG1138) [ 参 照 23] の 「Microprocessor<br />

Software Specification (MSS)」 の 章 を 参 照 し て く だ さ い。<br />

MDD ファイルには、 ソフトウェア ドライバーをカスタマイズまたは 作 成 するための 指 示 子 が 含 まれます。MDD<br />

フ ォーマ ッ ト および ド ラ イバーのカ ス タ マ イ ズ ま たは 作 成 に 使 用 可 能 なパ ラ メ ーターの 詳 細 は、 『 基 本 的 な ソ フ ト<br />

ウェア プラッ ト フォームの 生 成 リ ファレンス ガイド』 (UG1138) [ 参 照 23] の 「Microprocessor Driver Definition (MDD)」<br />

の 章 を 参 照 し て く だ さい。<br />

カスタム ド ラ イバーの 変 更 および 仕 様 方 法 は、 151 ページの 「ザ イ リンクス ドライバー フロー」 に 説 明 されている<br />

ザイ リ ンクス ドライバーの 方 法 2 と 同 じです。<br />

Linux ド ラ イバーの 開 発<br />

Zynq-7000 AP SoC 上 の Linux には、 PS IP (ペリフェラル) とソフト IP (PL にインプリ メン ト されたカスタム ロ ジ ッ ク<br />

) の 両 方 に ド ラ イバーが 必 要 です。 ド ラ イバーは、 カーネルの 一 部 と し て、 またはロー ド 可 能 なカーネル モジュール<br />

として Linux に 追 加 で き ます。 ザ イ リ ン ク スでは、 Zynq-7000 AP SoC をターゲッ ト とした 完 全 な Linux ソース を 提 供<br />

し ています。 詳 細 およびコ ピーをダ ウ ン ロー ド する には、 ザ イ リ ン ク スが 提 供 する Linux カーネルのページ [ 参 照 98]<br />

を 参 照 して く ださい。 ザイ リ ン ク ス Wiki の Linux ドライバー ページに、 ザ イ リ ン ク スか ら の ド ラ イバーに 関 する 情<br />

報 が 記 載 さ れています。 こ のページには、 ザ イ リ ン ク スが 提 供 する Linux に 関 する ソ リ ューシ ョ ンの 情 報 も 記 載 さ れ<br />

ています。<br />

ザイ リ ンクス ツールの リ リース 時 には Zynq-7000 AP SoC 評 価 ボー ド (ZC702、 ZC706、 および ZedBoard) 用 の ビル ド<br />

済 みの イ メ ージが リ リ ース さ れます。<br />

デバイス ツリー<br />

ハード ウ ェアの 追 加 または 削 除 に 関 する 情 報 (PL の IP ブロッ クなど) は、デバイ ス ツ リ ーを 使 用 し てカーネルに 送 信<br />

できます。 デバイス ツ リ ーには、 ハー ド ウ ェ アに 関 する 特 定 情 報 を 送 信 する のに も 使 用 で き ます。<br />

ザイ リ ンクス Wiki のビルド デバイ ス ツ リー ページに、ザ イ リ ン ク ス SDK を 使 用 してデバイ ス ツ リー BSP の 構 築 方<br />

法 が 記 載 さ れています。 デバイ ス ツ リー BSP を 作 成 する には、 SDK で 次 の 2 つのフ ァ イルが 必 要 です。<br />

• Vivado ツールからのハード ウェア ハン ドオフ ファイル<br />

• SDK リポジト リのデバイス ツリー リリースからのデバイス ツリー ファイル (.tcl および .mld)<br />

ルー ト ファイル システム<br />

ザイ リ ンクスでは、 Zynq-7000 AP SoC 用 に 初 期 ルー ト ファイル システム ramdisk/initrd を 提 供 し てい ます。 サポー ト<br />

されるほかのファイル システムは、 システム ブー ト の 後 にルー ト ファイル システムに 組 み 込 むこ とができます。<br />

ルー ト ファイル シ ス テムの 構 築 および 変 更 方 法 については、 ザ イ リ ン ク ス Wiki ページを 参 照 し て く だ さ い。<br />

Linux カーネルのデバッグ<br />

ザイ リ ンクス SDK のシステム デバ ッ ガーを 使 用 する と 、JTAG を 介 して Linux カーネルをデバ ッ グで き ます。 シ ス テ<br />

ム デバ ッ ガーはヘテ ロ ジニア ス マルチコア デバ ッ ガーであ り 、MicroBlaze と ARM コ ア を 同 時 にデバ ッ グで き ます。<br />

Linux カーネルを SMP モー ド で 実 行 し てい る 場 合 、 シ ス テム デバ ッ ガーでプ ロ セ ッ サ コ ア を 個 別 に 制 御 で き ます。<br />

PL ア ド レ ス 空 間 をデバ ッ グで き、 デバ ッ グ 中 、 メ モ リ ビューに PL メ モ リ 空 間 が 表 示 さ れます。<br />

SDK ヘルプに、 シス テム デバ ッ ガーを 使 用 し て Zynq-7000 AP SoC 上 の Linux カーネルをデバ ッ グする 方 法 が 示 さ れ<br />

ています。 SDK ヘルプには、 デバ ッ グ コンフィギュレーション 中 に Linux カーネル シンボル フ ァ イルを 追 加 する 方<br />

法 、 Windows 環 境 で Linux ホス ト マシンからのコンパイル パスを Linux ソース ツ リ ーにマ ッ プす る 手 順 も 説 明 さ れ<br />

ています。<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 152<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 6 章 : ソフトウェア デザイ ン フロー<br />

実 行 中 の ターゲ ッ ト に 接 続 する モー ド を 使 用 し てデバ ッ グする 場 合 、 デフ ォル ト では PL レジスタにはアクセスでき<br />

ません。SDK シ ェルを 使 用 し て 環 境 変 数 HW_SERVER_ALLOW_PL_ACCESS を 設 定 し、 次 の 手 順 に 従 って hw_server<br />

を 開 始 する 必 要 があ り ます。<br />

1. 実 行 中 の hw_server インスタンスを 停 止 します。<br />

2. SDK からターミナル コマンド プロンプト を 起 動 し、HW_SERVER_ALLOW_PL_ACCESS 環 境 変 数 を 設 定 し ます。<br />

3. 同 じシェルから hw_server を 起 動 します。<br />

GDB デバッ ガーを 使 用 し て、 JTAG を 介 して Linux カーネルをデバッ グする こ と もでき ます。 ARM DS-5 で も 、<br />

Zynq-7000 AP SoC 上 の Linux カーネルのデバッグがサポー ト されています。<br />

アプリケーシ ョ ン 開 発<br />

アプ リ ケーシ ョ ンは、ベア メ タルまたは Linux や FreeRTOS などのオペレーティング シ ス テムで 実 行 する よ う 開 発 さ<br />

れます。 このセクシ ョ ンでは、 Zynq-7000 AP SoC 上 で 実 行 される Linux およびベアメ タル プ ラ ッ ト フ ォ ーム 用 のア<br />

プ リ ケーシ ョ ンの 開 発 、 デバ ッ グ、 および 解 析 方 法 を 説 明 し ます。 ソ フ ト ウ ェ ア アプ リ ケーシ ョ ンの 開 発 、 デバッ<br />

グ、 および 開 発 で SDK ツールを どの よ う に 使 用 で き る かを 示 す 使 用 例 も 示 し ます。<br />

ベアメ タル<br />

SDK では、 エク スポー ト と されたハード ウ ェア デザイ ンでのソ フ ト ウ ェ ア アプ リ ケーシ ョ ン 開 発 をサポー ト し てい<br />

ます。 SDK は、 Vivado ツールか ら エ ク ス ポー ト さ れたデザ イ ンか ら ハー ド ウ ェ アの 情 報 を 抽 出 し ます。 その 情 報 に<br />

基 づき、 完 全 なアプ リ ケーシ ョ ン 開 発 環 境 を 提 供 し ます。 アプ リ ケーシ ョ ンの 開 発 には、 ハー ド ウ ェ ア 初 期 化 、 ド ラ<br />

イバー、およびライブラ リのセッ ト (TCP/IP スタック (lwIP)、FAT ファイル システム (FFS) など) を 含 むボード サポー<br />

ト パ ッ ケージが 必 要 です。<br />

ザイ リ ンクス SDK では、 次 の 2 つのテンプレー ト タ イ プが 提 供 さ れます。<br />

• Zynq-7000 AP SoC 用 のハード ウ ェア (PS のみ) テンプレート : こ のテンプレー ト を 使 用 する と 、 Vivado ツールで<br />

デザ イ ン を 作 成 せずにアプ リ ケーシ ョ ン を 開 発 で き ます。 ZC702、 ZC706、 ZedBoard、 および MicroZed ボード 用<br />

のテンプレー ト が 提 供 さ れています。<br />

• アプ リ ケーシ ョ ン テンプレート : 使 用 可 能 なペ リ フ ェ ラ ルを 使 用 し たハー ド ウ ェ ア デザイ ン 用 に、hello world な<br />

どの 定 義 済 みアプ リ ケーシ ョ ンおよび 空 のアプ リ ケーシ ョ ン を 生 成 で き ます。 lwIP などのその 他 のアプリ ケー<br />

ションは、SDK で 最 小 限 の 労 力 で 作 成 で き ます。<br />

SDK をバッチ モー ド で 使 用 する と 、 SDK IDE を 起 動 せずに、 コ マン ド ライン イ ン タ ーフ ェ イ ス か ら アプ リ ケーシ ョ<br />

ン を 作 成 およびビル ド で き ます。<br />

詳 細 は、 ザ イ リ ン ク ス ソフトエア 開 発 キッ ト ヘルプ (UG782) [ 参 照 6] を 参 照 して く ださい。<br />

ザイ リ ンクス SDK には、 スタンドアロン アプ リ ケーシ ョ ンの 開 発 に 使 用 でき る ラ イブラ リ のセ ッ ト が 含 まれていま<br />

す。 詳 細 は、 122 ページの 「スタンドアロン システムのザイ リ ンクス ラ イブラ リ」 を 参 照 して ください。<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 153<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 6 章 : ソフトウェア デザイ ン フロー<br />

使 用 例 : 開 発 、 デバ ッ グ、 および 統 合<br />

図 6-8 に、 C/C++ アプ リ ケーシ ョ ン を 作 成 する ダ イ ア ロ グ ボ ッ ク ス を 示 し ます。 詳 細 は、 SDK ヘルプ [ 参 照 6] を 参 照<br />

してください。 Xilinx C/C++ New Project Wizard<br />

X-Ref Target - Figure 6-8<br />

図 6‐8 : C/C++ アプリケーシ ョ ンを 作 成 するダイアログ ボックス<br />

アプ リ ケーシ ョ ン を 作 成 し た ら、 ビル ド する 必 要 があ り ます。 詳 細 は、 SDK ヘルプ [ 参 照 6] を 参 照 して ください。 プ<br />

ロジェク ト 構 築 のウェブページ<br />

アプ リ ケーシ ョ ンの 実 行 およびデバ ッ グの 詳 細 は、ザ イ リ ン ク ス ソフトエア 開 発 キッ ト ヘルプ (UG782) の 「Running,<br />

Debugging, and Profiling Projects」 [ 参 照 6] を 参 照 して ください。<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 154<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 6 章 : ソフトウェア デザイ ン フロー<br />

Linux アプリケーシ ョ ン 開 発<br />

Linux アプ リ ケーシ ョ ンでは、 Linux カーネル、 ラ イブラ リ 、 フ ァ イル システム、およびドライバー API を 含 む Linux<br />

ソフトウェア スタックを 使 用 します。<br />

Linux アプ リ ケーシ ョ ンの 開 発 に 影 響 する アーキテ ク チ ャ の 選 択 には、 次 の も のがあ り ます。<br />

1. 対 称 型 マルチプ ロ セ ッ シング (SMP) ま たは 非 対 称 型 マルチプ ロ セ ッ シン グ (AMP) システム<br />

2. AMP シ ス テムでの リ ソース 共 有 。 AMP システムでは、 個 別 のコアにメモリ マ ッ プが 必 要 です。 詳 細 は、 サンプ<br />

ル AMP コ ン フ ィ ギ ュ レーシ ョ ン を 参 照 し て く だ さ い。<br />

3. SMP システムの 割 り 込 みアフィニティ<br />

4. サー ド パーテ ィ ライブラリ。 詳 細 は、122 ページの 「ラ イ ブ ラ リ および ミ ド ルウ ェ ア」 を 参 照 し て く だ さ い。 自<br />

社 固 有 のプ ロ ジ ェ ク ト で 使 用 さ れる オープン ソース ラ イ ブ ラ リ およびソ フ ト ウ ェ アの ラ イ セン ス を 考 慮 する 必<br />

要 があ り ます。<br />

5. TrustZone 実 行 などのセキ ュ ア 実 行<br />

6. カスタム IP のドライバー サポー ト<br />

7. プロセッサ 間 の 通 信 メカニズム。 詳 細 は、「How a MicroBlaze can peaceably coexist with the Zynq-7000 AP SoC」 [ 参<br />

照 82] と い う 記 事 を 参 照 し て く だ さ い。<br />

アーキテ ク チャ 設 計 に 関 する 考 慮 事 項 は、 第 4 章 「ソフトウェア デザ イ ンの 考 慮 事 項 」 を 参 照 して く ださい。<br />

ザ イ リ ン ク スでは、 アーキテ ク チ ャ の 設 計 および 評 価 段 階 で 使 用 可 能 な 資 料 、 基 本 的 な ソ フ ト ウ ェ ア ブロック、およ<br />

びリファレンス デザイ ンを 提 供 し ています。 詳 細 は、ザイ リ ン ク ス Linux Wiki ページ [ 参 照 54] を 参 照 して く ださい。<br />

アプ リ ケーシ ョ ン 開 発 フ ロー<br />

ザイ リ ンクス SDK では、Linux アプ リ ケーシ ョ ンの 開 発 のためのツール と 推 奨 開 発 フ ローが 提 供 さ れています。 詳 細<br />

は、『Zynq-7000 All Programmable SoC ソ フ ト ウ ェ ア 開 発 者 向 けガ イ ド 』 (UG821) [ 参 照 7] の「ソフトウェア アプ リ ケー<br />

シ ョ ンの 開 発 フ ロー」 を 参 照 し て く だ さ い。<br />

または、 自 社 製 またはサードパーティ ソリューションを 使 用 して Linux アプ リ ケーシ ョ ン を 開 発 する こ と も で き ま<br />

す。 Zynq-7000 AP SoC 用 のアプ リ ケーシ ョ ンを 開 発 するには、 ツールに 次 のサポー ト が 必 要 です。<br />

• ホス ト システム 上 のクロス 開 発 ツール チェーンを 含 むビルド システム<br />

• Linux カーネル、 デバイ ス ツリー、 ソフトウェア スタック、 およびライブラリ<br />

• Zynq-7000 AP SoC Linux ターゲッ ト またはエミ ュレーシ ョ ン プラッ ト フォーム<br />

Linux アプ リ ケーシ ョ ン 開 発 のザイ リ ン ク ス ツール フロー<br />

ザイ リ ンクスでは、 PetaLinux ツール フローおよびザイリンクス Linux ディス ト リビューションの 一 部 として、Linux<br />

ドライバー、BSP、 およびソース コードを 提 供 しています。 PetaLinux フローは、 Zynq-7000 AP SoC と 同 様 の FPGA<br />

およびデバイ ス 用 に 設 計 さ れています。 完 全 なツール チェーン、 BSP、 ザイリンクス 評 価 ボードを 含 む、Zynq-7000<br />

AP SoC 用 のコ ンフ ィ ギュ レーシ ョ ンおよび Linux 展 開 機 能 が 含 まれます。 PetaLinux のコンフィギュレーショ ンの 詳<br />

細 は、 ザイ リ ン ク ス Wiki の PetaLinux ページを 参 照 し て く だ さ い。<br />

PetaLinux については、 114 ページの 「OS および RTOS の 選 択 」 でよ り 詳 細 に 説 明 しています。<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 155<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 6 章 : ソフトウェア デザイ ン フロー<br />

図 6-9 に、 Linux アプ リ ケーシ ョ ンの 開 発 に 使 用 さ れるザイ リ ン ク ス ツールを 示 します。<br />

X-Ref Target - Figure 6-9<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

図 6‐9 : Linux アプ リ ケーシ ョ ンの 開 発 に 使 用 されるザイ リ ン ク ス ツール<br />

<br />

ザイリンクス SDK を 使 用 したアプリケーシ ョ ンの 開 発<br />

ザイ リ ンクス SDK では、 Zynq-7000 AP SoC 用 の Linux アプ リ ケーシ ョ ン の 開 発 お よ びデバ ッ グがサポー ト さ れてい<br />

ます。 ARM Linux GCC ツール チェーン (Sourcery CodeBench Lite) がサポー ト されてお り 、 Linux アプ リ ケーシ ョ ン の<br />

開 発 用 に さ ま ざ ま なザ イ リ ン ク ス ツールが 含 まれます。 ザイ リ ンク ス SDK には Linux アプ リ ケーシ ョ ン テ ン プ レー<br />

トおよびサポート ライブラリも 含 まれており、Zynq-7000 AP SoC を 最 小 限 の 設 定 で 評 価 で き ます。<br />

Linux アプ リ ケーシ ョ ン 開 発 フ ロー 詳 細 は、 『Zynq-7000 All Programmable SoC ソ フ ト ウ ェ ア 開 発 者 向 けガ イ ド』<br />

(UG821) [ 参 照 7] の 「ソフ ト ウェア アプ リ ケーシ ョ ンの 開 発 フ ロー」 を 参 照 し て く だ さ い。<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 156<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 6 章 : ソフトウェア デザイ ン フロー<br />

図 6-10 に、SDK で Linux アプ リ ケーシ ョ ン 開 発 プ ロ ジ ェ ク ト を 作 成 する ダ イ ア ロ グ ボックスを 示 します (OpenCV サ<br />

ンプル アプ リ ケーシ ョ ン テンプレート を 使 用 )。 SDK では、 OpenCV アプ リ ケーシ ョ ンに 必 要 な ラ イ ブ ラ リ が 提 供 さ<br />

れます。<br />

X-Ref Target - Figure 6-10<br />

図 6‐10 : ザイ リンクス SDK で 新 規 Linux アプリケーシ ョ ンを 作 成 するダイアログ ボックス<br />

図 6-11 に、 SDK を 使 用 して Linux アプ リ ケーシ ョ ンをビルドする 際 に 選 択 できるビルド 設 定 と ラ イブラ リ を 示 しま<br />

す。<br />

X-Ref Target - Figure 6-11<br />

図 6‐11 : ザイ リンクス SDK のビルド 設 定 およびライブラ リ<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 157<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 6 章 : ソフトウェア デザイ ン フロー<br />

SDK では、 Zynq-7000 AP SoC の Linux ターゲッ トに IP ア ド レ ス を 使 用 し て 接 続 で き ます。 接 続 し た ら 、 アプ リ ケー<br />

ション 実 行 ファイルを Linux ターゲッ トにコピーして 実 行 できます。<br />

Linux アプリケーシ ョ ンのデバッグ<br />

Linux アプ リ ケーシ ョ ンは、GDB またはザイ リ ンクス システム デバ ッ ガーを 使 用 し て Zynq-7000 AP SoC 上 でデバ ッ<br />

グできます。 ザイ リ ンクス SDK では、 ローカル ターゲッ ト またはリモート ターゲッ トの Linux アプ リ ケーシ ョ ン も<br />

デバ ッ グでき ます。 Linux アプ リ ケーシ ョ ンのデバッグは、 ザイ リ ンク ス SDK で GDB の gdbserver ま たはシ ス テ ム<br />

デバ ッ ガーの TCF エージ ェ ン ト を 使 用 する こ と に よ り サポー ト さ れます。Linux アプ リ ケーシ ョ ンをシステム デバ ッ<br />

ガーを 使 用 し てデバッ グするには、 TCF エージェ ン ト のプロセス を Linux ターゲ ッ ト 上 で 実 行 する 必 要 があ り ます。<br />

X-Ref Target - Figure 6-12<br />

図 6‐12 : ザイ リンクス SDK のビルド 設 定 およびライブラ リ<br />

Linux アプ リ ケーシ ョ ンは、 ARM DS-5 などのその 他 の IDE を 使 用 し て 開 発 およびデバ ッ グする こ と も で き ます。 コ<br />

マンド ラ イ ン を 使 用 する 場 合 は、 自 社 製 のビル ド システムまたは OS ベンダーか ら 取 得 し たビル ド シ ス テ ム を 使 用<br />

できます。 Zynq-7000 AP SoC のエコシステムは、 さ まざまな OS パー ト ナーに よ り サポー ト されています。 OS パー<br />

トナーのリストは、114 ページの 「OS および RTOS の 選 択 」 を 参 照 して く ださい。<br />

ザイリンクス SDK ツールおよびパッケージ<br />

ザイ リ ンクスでは、 Zynq-7000 AP SoC ソフトウェア 開 発 用 にツールおよびソフトウェア パッケージを 提 供 していま<br />

す。 開 発 ユーテ ィ リ テ ィ は、 次 の 形 で リ リ ース さ れます。<br />

• SDK IDE でリ リースされるザイリンクス ツール<br />

• ベア メ タル BSP、 ドライバー、ソース コードを 含 むソフ ト ウェア パッケージ<br />

• ザイ リ ンクス Git を 介 して リ リ ース される ソ フ ト ウェア<br />

ザイ リンクス SDK でリリースされるツール<br />

このセクショ ンでは、 ザイ リンクス SDK でリ リースされるツールおよびユーティ リティについて 説 明 します。<br />

ブート イメージの 作 成<br />

ザイ リ ンクス SDK には、 ブー ト イ メ ージを 作 成 する ツール Bootgen が 含 まれています。 Bootgen は、 ブー ト ロ ーダー<br />

FSBL、 ビットストリーム、アプリケーション 実 行 ファイル (U-Boot を 含 む) を 結 合 し、 bin または .mcs 形 式 のブー<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 158<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 6 章 : ソフトウェア デザイ ン フロー<br />

ト イ メージを 生 成 します。SDK には、 パーテ ィ シ ョ ン イ メ ージを 追 加 し、 ブー ト 可 能 イ メ ージを 作 成 する ブー ト イ<br />

メージ 作 成 ウィザード オプションもあります。 詳 細 は、 次 の 資 料 を 参 照 してください。<br />

• ザイ リ ンクス ソ フ ト ウ ェ ア 開 発 キ ッ ト ヘルプ (UG782) [ 参 照 6] の 「Creating a Zynq Boot Image for an<br />

ApplicationCreating a Zynq Boot Image for an Application」<br />

• 『Zynq-7000 All Programmable SoC ソ フ ト ウ ェ ア 開 発 者 ガ イ ド 』 (UG821) [ 参 照 7] の 付 録 「Bootgen の 使 用 」 (this link)<br />

を 参 照 して く ださい。<br />

• Vivado Design Suite ビデオ チュート リ アル : ザイ リ ンクスの SDK を 使 用 して Zynq ブー ト イ メ ージを 作 成 す る 方<br />

法<br />

プログラ ミング ユーテ ィ リ テ ィ<br />

フラッシュのプログラム<br />

[Program Flash] ユーテ ィ リ テ ィ を 使 用 する と 、.bin および .mcs ファイルをオンボードのフラッシュ デバ イ ス にダ ウ ン<br />

ロードできます。 図 6-13 に、 こ のユーテ ィ リ テ ィ でサポー ト される フ ラ ッ シ ュ デバイスを 示 します。<br />

X-Ref Target - Figure 6-13<br />

FPGA のプログラム<br />

図 6‐13 : [Program Flash] ユーテ ィ リ テ ィ でサポー ト されるフ ラ ッ シュ デバイス<br />

PL ビ ッ ト ス ト リ ームは 複 数 の 方 法 でプ ロ グ ラ ムで き ます。SDK GUI の [Program FPGA] ユーテ ィ リ テ ィ を 使 用 する の<br />

が 1 つの 方 法 です。<br />

デバッ ガー<br />

ザイ リンクス SDK には、 ARM および MicroBlaze のデバッ グをサポー ト するヘテ ロ ジニアス デバ ッ ガーが 含 ま れて<br />

います。デバッグ 機 能 は、 GUI およびコマンド ライン インターフェイスで 使 用 できます。コマンド ライン イ ン タ ー<br />

フェイスでは Tcl スクリプトがサポートされ、コマンドを JTAG モード で 実 行 でき ます。 次 に、 ザイ リ ン ク ス SDK で<br />

サポー ト されるデバッガーを 示 し ます。<br />

• システム デバ ッ ガー<br />

• XSDB : ザイ リ ンクス システム デバ ッ ガー (コマンド ライン)<br />

• XMD : Xilinx Microprocessor Debugger<br />

• GDB デバ ッ ガー<br />

デバ ッ ガーで MicroBlaze コ アが 認 識 される よ う にするには、 Vivado でハード ウ ェア デザイ ンを 作 成 する 際 に MDM<br />

を 有 効 にする 必 要 があ り ます。<br />

SDK システム デバ ッ ガーには、 Zynq-7000 AP SoC 上 で 実 行 中 の コー ド をデバ ッ グする のに 役 立 つハー ド ウ ェ ア と ソ<br />

フ ト ウ ェ アのデバ ッ グ 機 能 があ り ます。デバ ッ ガーでは、ハー ド ウ ェ ア と ソ フ ト ウ ェ アの ク ロ ス トリガーもサポート<br />

されます。<br />

詳 細 は、 第 7 章 「デバッグ」を 参 照 して く ださい。<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 159<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 6 章 : ソフトウェア デザイ ン フロー<br />

パフォーマンス 解 析<br />

パフ ォーマン ス 解 析 は、 コー ド のボ ト ルネ ッ ク を 特 定 する のに 重 要 です。 ザ イ リ ン ク ス SDK には、 コード プロファ<br />

イラーとパフォーマンス アナラ イザーが 含 まれています。 詳 細 は、 第 2 章 「プ ロ フ ァ イ リ ン グおよび 分 割 」 を 参 照 し<br />

てください。<br />

アプリケーショ ン テンプレート<br />

図 6-14 に、 ベア メ タル プログラ ミ ング 用 に SDK に 含 まれる アプ リ ケーシ ョ ン テンプレート を 示 します。<br />

X-Ref Target - Figure 6-14<br />

図 6‐14 : SDK アプリケーシ ョ ン テンプレート<br />

ザイ リンクス Git ソフトウェア ソリューション<br />

ザイ リ ンクスでは、 Zynq-7000 AP SoC および MicroBlaze ターゲッ ト 用 のシステム ソ フ ト ウ ェ ア を リ リ ース し てい ま<br />

す。 Git ページに リ リ ース されているパッケージの 一 部 を 次 に 示 します。<br />

1. Linux xlnx : ザイ リ ンクス Linux カーネル<br />

2. U-boot-xlnx : ザイ リ ンクス U-Boot リポジト リ<br />

3. device-tree : ザイ リンクス SDK Linux デバイ ス ジェネレーター<br />

4. meta-xilinx : Yocto/OE-core 用 のザイ リ ン ク ス デバイ スおよびボー ド サポー ト<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 160<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 6 章 : ソフトウェア デザイ ン フロー<br />

ザイリンクス ソ フ ト ウ ェ ア 開 発 ツール<br />

ザイ リ ンクスで 提 供 されるソフ ト ウェア 開 発 ツールには、 SDK およびザイ リ ンクス Yocto プロジェク トがあり ます。<br />

ザイ リンクス SDK<br />

ザイ リ ンクス SDK は Eclipse ベースの IDE で、 ザイ リ ン ク ス ツールおよびソ フ ト ウェア パ ッ ケージが 含 ま れ ま す。<br />

ザイ リ ンクス FPGA および Zynq-7000 AP SoC デバイ ス 用 のエンベデッ ド ソフトウェアを 開 発 できます。 SDK には、<br />

ザ イ リ ン ク ス 評 価 ボー ド 用 の 定 義 済 みハー ド ウ ェ ア コンフィギュレーション、ペリフェラルおよび IP のデバイ ス ド<br />

ライバー、ベアメタル BSP リ ポジ ト リ 、フ ァーム ウ ェ ア と 必 要 なサポー ト ライブラリ、アプリケーション テンプレー<br />

トなど、 主 要 なソフトウェア パッケージが 含 まれます。 パッケージは 最 新 のソース コード と 共 にリ リースされ、 必<br />

要 に 応 じ て 変 更 でき ます。 SDK には、 ブー ト イ メージの 作 成 、 プロセッサのプログラム、 パフォーマンスのテス ト<br />

に 使 用 されるその 他 のツールも 含 まれます。<br />

ザイ リ ンクス SDK は 無 償 で 提 供 されてお り 、 http://japan.xilinx.com/tools/sdk.htm からダウンロードできます。<br />

PetaLinux<br />

PetaLinux は、 All Programmable デバイ ス 上 の Linux ベースの ソ フ ト ウ ェ ア を 開 発 および 展 開 する ための ソ リ ューシ ョ<br />

ンを 提 供 します。 PetaLinux ツール セ ッ ト には、 イ ン ス ト ーラー、 開 発 ツール、 ザ イ リ ン ク ス 評 価 ボー ド 用 の Linux<br />

ベースの BSP、 ライブラリ フレームワークが 含 まれます。PetaLinux の 詳 細 は、 ザイ リ ン ク ス Wiki ページで 説 明 さ れ<br />

ています。Wiki ページには、 ザ イ リ ン ク スが 提 供 する Linux に 関 する ソ リ ューシ ョ ンおよびザイ リ ン ク スのオープン<br />

ソース ソフトウェアの 資 料 もあります。<br />

ザイ リンクス Yocto プロジェク ト<br />

ザイ リ ンクス Yocto プロジェク トは、MicroBlaze および Zynq-7000 AP SoC に ビル ド さ れてい る エンベデ ッ ド 製 品 用 の<br />

Linux ベースのカ ス タ ム シ ス テム を 作 成 する ためのテンプレー ト 、 ツール、 および 方 法 を 提 供 し ます。 メ タ ファイ<br />

ル、 開 発 ボー ド 、 および QEMU エミュレーターが 含 まれます。 ザイリンクス Wiki ページの Yocto ページに、 ザ イ リ<br />

ンクス Yocto リリースへのリンクがあります。これには、meta-xilinx、 Linux カーネル ビルド をサポートする Yocto<br />

BSP 層 、 U-Boot および Poky ディス ト リビューションが 含 まれます。<br />

ザイ リ ンクス Yocto プ ロ ジ ェ ク ト では、 ザ イ リ ン ク ス 以 外 の 提 供 者 に よ る 関 連 ド ラ イバーおよびソ フ ト ウ ェ ア パッ<br />

ケージのア ッ プ ロー ド も 可 能 です。カ ス タ マーおよび OS ベンダーは、 準 拠 ソ フ ト ウ ェ ア を 開 発 し、 ド ラ イバーをア ッ<br />

プ ロー ド する こ と を ご 考 慮 く だ さ い。 製 品 の 向 上 およびザ イ リ ン ク ス コ ミ ュ ニテ ィ 全 体 に 貢 献 で き ます。<br />

ザイ リ ンクス Yocto プロジェク トの 詳 細 は、 次 を 参 照 してください。<br />

• ザイ リ ンクス Yocto Wiki ページ [ 参 照 58]<br />

• Yocto プ ロ ジ ェ ク ト のウ ェ ブページ [ 参 照 102]<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 161<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 7 章<br />

デバッ グ<br />

本 章 では、 デバッ グ 手 法 に 関 する 次 の 情 報 について 説 明 し ます。<br />

• 162 ページの 「 概 要 」 : このセクショ ンでは、 Zynq ® -7000 AP SoC を 使 用 する と アプ リ ケーシ ョ ン を 開 発 する ため<br />

のデバ ッ グ 手 法 の 概 要 について 説 明 し ます。<br />

• 164 ページの 「ソ フ ト ウ ェ アのみのデバ ッ グ」 :エンベデッ ド ソフトウェアのデバッグには、ザイリンクスソフト<br />

ウェア 開 発 キッ ト (SDK) を 使 用 します。 SDK のデバッ グ パースペ ク テ ィ ブは、 包 括 的 なデバ ッ グ 環 境 を 提 供 し<br />

ます。<br />

• 167 ページの 「シ ミ ュ レーシ ョ ン ベースのデバ ッ グ」 : シ ミ ュ レーシ ョ ンでは、 最 終 的 なデザ イ ンの 動 作 を ソ フ ト<br />

ウ ェ ア 環 境 でエ ミ ュ レー ト し ます。 シ ミ ュ レーシ ョ ン を 使 用 する と 、 ス テ ィ ミ ュ ラ ス を 挿 入 し て 出 力 結 果 を 観 察<br />

する こ と に よ り 、 デザ イ ンの 機 能 を 検 証 で き ます。<br />

• 168 ページの 「ボー ド のデバ ッ グ」 : デザイ ンを イ ンプ リ メ ン ト し た ら、 ハー ド ウ ェ ア 上 でテ ス ト する 必 要 があ り<br />

ます。 ハード ウェアのソフ ト ウェア デバ ッ グは、 SDK ツールを 使 用 して 実 行 できます。 デバッグは、 FPGA ま<br />

たはフ ァ ブ リ ッ ク 側 の 問 題 を 発 見 する のに 役 立 ち ます。<br />

• 169 ページの 「ハー ド ウ ェ ア と ソ フ ト ウ ェ アの 協 調 デバ ッ グ」 : ザイ リ ンクスでは、プロセッシング システム (PS)<br />

とプログラマブル ロジック (PL) 内 のペ リ フ ェ ラルを 同 時 にデバッ グするためのソ リ ューシ ョ ンを 提 供 し ていま<br />

す。<br />

• 169 ページの 「 仮 想 プ ラ ッ ト フ ォーム」 : 仮 想 プ ラ ッ ト フ ォームは、 ハー ド ウ ェ アの 動 作 を 模 倣 する ソ フ ト ウ ェ ア<br />

システムで、 エンベデッ ド プラッ ト フォームの 高 速 ファンクショ ン モデルです。<br />

プログラマブル ロジック (PL) の 集 積 度 およびプ ロ セ ッ サ シ ス テムの 複 雑 性 のため、 Zynq ® -7000 AP SoC を 使 用 し た<br />

アプ リ ケーシ ョ ンの 開 発 には こ の 章 で 説 明 するデバ ッ グ 方 法 が 必 要 です。<br />

Zynq-7000 AP SoC のテ ス ト およびデバ ッ グ 機 能 は、 ARM CoreSight テクノロジと 共 に 使 用 して、 介 入 (intrusive) お よ<br />

び 非 介 入 (non-intrusive) 方 式 を 使 用 し たプ ロ セ ッ シン グ システム (PS) と PL のデバ ッ グ を 可 能 に し ます。 PS と PL を<br />

含 むシ ス テム 全 体 をデバ ッ グで き ます。 ソ フ ト ウ ェ アのデバ ッ グに 加 えて、 PS 内 のハード ウ ェ ア ポイン トおよび PL<br />

内 のユーザーが 選 択 し たハード ウ ェ ア ポイン ト もデバッグできます。<br />

テス トおよびデバッグ 機 能 は ARM CoreSight v1.0 アーキテクチャに 基 づいており、 ア クセス と 制 御 、 ト レース ソー<br />

ス、 ト レース リンク、トレース シンクの 4 つのク ラ スの CoreSight テクノロジ コ ン ポーネン ト を 定 義 し てい ます。 ま<br />

た、 デバッ グ アクセス ポー ト (DAP) は CoreSight コンポーネントではありませんが、 CoreSight コ ン ポーネ ン ト お よ<br />

びその 他 のシステム 機 能 にア ク セスでき ます。<br />

概 要<br />

ソフトウェア ツールでは、 介 入 デバ ッ グ と 非 介 入 デバ ッ グが 可 能 です。 介 入 デバ ッ グ 用 には、 ブレー ク ポ イ ン ト と<br />

ウ ォ ッ チポ イ ン ト があ り ます。 非 介 入 デバ ッ グは、 命 令 フ ローを キ ャ プチャする ARM プログラム トレース マクロセ<br />

ル (PTM) を 使 用 して 実 行 されます。 フローは、 プログラム フローの 変 更 のみをキャプチャすることにより 圧 縮 され<br />

ます。 データは、 MIO/EMIO の 一 部 であ る 2 ~ 32 ト レース 出 力 ポー ト ピンを 介 してオフチップに 送 信 できます。 も<br />

う 1 つのオプシ ョ ン と し ては、 ト レース データ をエンベデ ッ ド トレース バッファー (ETB) に 読 み 込 み、 サー ド パー<br />

ティ ツールを 使 用 して ト レース データ を JTAG を 介 してアップロード し ます。<br />

ソ フ ト ウ ェ アのみでデバ ッ グ を 実 行 する か、Vivado ® Integrated Logic Analyzer (ILA) コアをデザインに 追 加 してハード<br />

ウェアとソフトウェアを 一 緒 にデバッグします。 PL JTAG ポー ト は、 ARM デバ ッ グ アクセス ポー ト (DAP) とデイ<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 162<br />

UG1046 (v2.0) 2015 年 3 月 26 日


第 7 章 : デバッ グ<br />

ジー チェーン 接 続 さ れます。 Vivado ILA コアは、 PL JTAG を 介 してアクセス されます。 ARM お よ びサー ド パーテ ィ<br />

ツールは ARM デバ ッ グ アクセス ポー ト (DAP) に 接 続 されます。<br />

PS および PL のデバッ グ コンフィギュレーションの 詳 細 は、 『Zynq-7000 All Programmable SoC テクニカル リ フ ァ レ<br />

ンス マニュアル』 (UG585) [ 参 照 4] の 「JTAG および DAP サブシステム」 ( リンク) と 「システムのテス ト とデバッグ」<br />

( リンク) の 章 を 参 照 し て く だ さい。<br />

PS のデバッ グ<br />

Zynq-7000 AP SoC PS には、 システム 全 体 の ト レース 用 に 次 の 機 能 があ り ます。<br />

• 単 一 のデバ ッ ガー 接 続 に よ り 全 シ ス テムのデバ ッ グおよび ト レース を 可 視 化<br />

• SoC サブシステム 間 のク ロ ス トリガーをサポート<br />

• 単 一 ス ト リ ームでのマルチ ソースの ト レース<br />

• データ 圧 縮 率 を 以 前 の ソ リ ューシ ョ ンに 比 べて 向 上<br />

• ツールをサポー ト するための 標 準 プログラマ モデル<br />

• ト ポ ロ ジの 自 動 認 識<br />

• サー ド パーテ ィ ソフト コア 用 のオープン インターフェイス<br />

• ロー ピン カウント オプシ ョ ン<br />

PL のデバッ グ<br />

ザイ リ ンクスは、 PL のテス ト およびデバッグ 用 にフ ァブ リ ッ ク トレース モニター (FTM) を 提 供 し てい ます。 こ れ<br />

は、 ARM CoreSight アーキテクチャをベース と した ト レース ソース クラスのコンポーネントで、Zynq-7000 AP SoC<br />

の CoreSight システム 内 に 含 まれます。FTM は、 PL から ト レース データ を 受 信 し、 プ ロ グ ラ ム トレース マ ク ロ セル<br />

(PTM) やインス トルメンテーシ ョ ン トレース マクロセル (ITM) などのほかの ト レース ソース コ ン ポーネン ト か ら の<br />

トレース パケッ ト と 結 合 でき る よ う に、 ト レース パケ ッ ト に 変 換 し ます。 この 機 能 によ り、 PL イベン ト と PS イベ<br />

ントを 同 時 にトレースできます。FTM は、PS と PL 間 のク ロ ス ト リ ガーもサポー ト し ています ( トレース ダ ン プ を 除<br />

く )。 また、PS と PL 間 に 汎 用 のデバ ッ グ 信 号 を 提 供 し ます。<br />

PL のテ ス ト およびデバ ッ グ 機 能 は、 次 の と お り です。<br />

• ARM CoreSight 準 拠<br />

• PL からの 32 ビッ トのトレース データ<br />

• PL からの 4 ビッ トのトレース ID<br />

• PL と PS 間 の ク ロ ッ ク 乗 せ 換 え<br />

• PL トレース データ のバース ト 転 送 を 取 り 込 むために ト レース パケ ッ ト を FIFO にバッ フ ァ リ ング<br />

• オーバーフ ロー パケッ ト を 生 成 して FIFO のオーバーフ ローを 通 知<br />

• トレース パケッ ト は ARM トレース ポー ト ソ フ ト ウ ェ アおよびハー ド ウ ェ ア と 互 換 性 あ り<br />

• PL からおよび PL への ト リ ガー 信 号<br />

• PL からおよび PL への 汎 用 I/O<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 163<br />

UG1046 (v2.0) 2015 年 3 月 26 日


第 7 章 : デバッ グ<br />

ソ フ ト ウ ェ アのみのデバッ グ<br />

エンベデッ ド ソフトウェアのデバッグには、ザイリンクスソフトウェア 開 発 キット (SDK) を 使 用 します。 SDK のデ<br />

バッグ パースペ ク テ ィ ブは、 包 括 的 なデバ ッ グ 環 境 を 提 供 し ます。 デバ ッ グ ウ ィ ン ド ウ に、 呼 び 出 し ス タ ッ ク 、 ソー<br />

ス コード、 逆 アセンブル コード、 プロセス メモリ、 レジスタ 情 報 、 および XMD コンソールを 含 むセッション ス<br />

テー ト が 表 示 さ れます。 ブレー ク ポ イ ン ト を 設 定 で き、 標 準 デバ ッ ガー コ マン ド を 使 用 し て 実 行 を 制 御 で き ます。<br />

典 型 的 なアプ リ ケーシ ョ ンの 開 発 およびデバ ッ グ プロセスは、 図 7-1 に 示 すと お り です。<br />

X-Ref Target - Figure 7-1<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

図 7‐1 : アプ リ ケーシ ョ ンの 開 発 およびデバ ッ グの 概 要<br />

システム デバッ ガーおよびターゲ ッ ト 接 続<br />

アプ リ ケーシ ョ ンをデバッグする 際 は、 TCF (Target Communication Framework) を 使 用 して、 システム デバ ッ ガーを<br />

JTAG を 介 してターゲッ ト ボー ド に 接 続 し ます。 デバ ッ グが 開 始 する と 、 シ ス テム デバ ッ ガーがローカル ホ ス ト 上<br />

でハード ウ ェア サーバー エージェ ン ト を 実 行 し ます。 リ モー ト ラ ボ 環 境 など、 1 つのマシンでデバッ グ アプ リ ケー<br />

シ ョ ン を 実 行 し、 別 のマシン をボー ド に 接 続 し てい る 場 合 は、 シ ス テム デバ ッ ガーを リ モー ト ホス ト 上 で 実 行 でき<br />

ます。 システム デバッ ガーのターゲ ッ ト 接 続 ウ ィ ン ド ウ を 使 用 し て、 デバッ グ 中 のボード を 制 御 でき ます。<br />

システム デバッ ガー<br />

ザイ リ ンクス システム デバ ッ ガー (XSDB) は、 Zynq-7000 AP SoC に 適 し た ソ フ ト ウ ェ ア デバ ッ グ 方 法 です。 シ ス テ<br />

ム デバ ッ ガーでは、 ベア メ タルまたは Linux ベース システム 上 で、 同 じセッショ ンでデュアル ARM と 複 数 の<br />

MicroBlaze プロセッサのヘテロジニアス デバ ッ グが 可 能 です。 階 層 プ ロ フ ァ イ リ ング、 ARM NEON ライブラリ サ<br />

ポー ト 、 および XSDB コマンド インターフェイスも 含 まれます。 ボードを 接 続 した 後 、 システム 内 の 各 CPU の ス<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 164<br />

UG1046 (v2.0) 2015 年 3 月 26 日


第 7 章 : デバッ グ<br />

テータ ス を 特 定 で き ます。 こ のデバ ッ ガーでは、 ターゲ ッ ト アプ リ ケーシ ョ ン (.elf ファイル) の 各 CPU への 接 続 、<br />

Linux デバ ッ グ 用 のシンボルの 割 り 当 て、 レ ジ ス タ の 表 示 および 設 定 、 ブレー ク ポ イ ン ト の 表 示 および 設 定 、 および<br />

メモリ 位 置 の 監 視 も 実 行 できます。 コマンドは XSDB を 介 してシステムに 発 行 でき、 逆 アセンブル アプ リ ケーシ ョ<br />

ン コー ド を 停 止 およびブレー ク ポ イ ン ト を 使 用 し て 表 示 で き ます。<br />

ボー ド への 接 続 方 法 を 含 む 詳 細 は、ザ イ リ ン ク ス ソ フ ト ウ ェ ア 開 発 キ ッ ト ヘルプ (UG782) [ 参 照 6] を 参 照 して く ださ<br />

い。<br />

ザイリンクス システム デバッ ガー (コマンド ライン)<br />

XSDB は、 CPU を 読 み 込 んで 制 御 する ためのコ マン ド インターフェイスです。 コマンド ラインから、または SDK に<br />

組 み 込 まれた 対 話 型 GUI を 使 用 して 起 動 できます。XSDB には、 繰 り 返 し タ ス ク や 複 雑 な タ ス ク のス ク リ プ ト 記 述 が<br />

サポー ト されるツール コマンド 言 語 (Tcl) インターフェイスが 含 まれます。 レジスタ、 メモリ 位 置 を 読 み 出 し、 コー<br />

ド ブレー ク ポ イ ン ト を 設 定 する こ と も で き ます。XSDB では、コ マン ド の 使 用 方 法 を 示 すヘルプがサポー ト さ れます。<br />

プロファイリング<br />

SDK のシステム デバ ッ ガーでは、 関 数 呼 び 出 し の 実 行 時 間 を 表 示 する コー ド プロファイ リグもサポート されており、<br />

アプ リ ケーシ ョ ンで 最 も 時 間 がかか る 部 分 を 特 定 で き ます。 関 数 呼 び 出 し を 分 離 し て 呼 び 出 さ れたサブ 関 数 をプ ロ<br />

ファイリングすると、 ソース コー ド に ク ロ ス プ ローブで き ます。 プ ロ フ ァ イ リ ン グに よ り 、 よ り 高 速 なシ ス テム パ<br />

フォーマンスのためにソフト ウェア アプ リ ケーシ ョ ンに PL または DSP フ ァ ン ク シ ョ ン に 移 行 で き る 部 分 があ る か<br />

を 判 断 できます。<br />

GNU ツール チェーンのサポート<br />

SDK では、 システム デバ ッ ガーに 加 え、 GNU デバ ッ ガー (GDB) およびアプリ ケーシ ョ ン プロファイル 用 の gprof を<br />

含 む GNU ツール チェーンを 使 用 したアプリ ケーシ ョ ンのデバッグがサポート されます。<br />

ドライバーおよび BSP デバッ グ<br />

ソフトウェア アプ リ ケーシ ョ ンは、 API を 使 用 して、 ソ フ ト ウェア プラッ ト フォームにリンクするか、 ソフ ト ウェ<br />

ア プ ラ ッ ト フ ォーム 上 で 実 行 する 必 要 があ り ます。 そのため、 SDK でソフト ウェア アプ リ ケーシ ョ ン を 作 成 および<br />

使 用 する 前 に、 ボー ド サポー ト パッケージ (BSP) を 作 成 する 必 要 があ り ます。 ボー ド サポー ト パ ッ ケージは、 アプ<br />

リケーション ソフトウェア ス タ ッ ク の 最 下 位 層 を 構 成 する ラ イ ブ ラ リ と ド ラ イバーの コ レ ク シ ョ ンです。<br />

SDK には、アプリケーション 開 発 用 にスタンドアロン ボード サポー ト パッケージが 含 まれます。このパッケージは、<br />

標 準 入 力 / 出 力 、 プ ロ セ ッ サ ハー ド ウ ェ ア 機 能 へのア ク セス な どの 基 本 的 な 機 能 を 提 供 する 単 純 なセ ミ ホ ス ト 型 シン<br />

グル ス レ ッ ド 環 境 です。<br />

ボード サポー ト パッケージおよびそのライブラ リは、SDK の [Board Support Package Settings] ダイアログ ボ ッ ク ス で<br />

設 定 で き ます。 SDK ワー ク スペースに 複 数 のボー ド サポー ト パ ッ ケージを 作 成 で き ます。 こ れに よ り 、 異 な る ボー<br />

ド サポー ト パッケージを 同 時 に 使 用 でき、 アプリケーショ ンのターゲッ ト を 1 つのパ ッ ケージか ら 別 のパ ッ ケージ<br />

に 変 更 でき ます。<br />

アプ リ ケーシ ョ ン を 作 成 する には、 ド ラ イバーを 使 用 で き ます。 アプ リ ケーシ ョ ン と ド ラ イバーはザ イ リ ン ク ス シス<br />

テム デバ ッ ガーを ス タ ン ド ア ロ ン デバ ッ グ モー ド で 使 用 し てデバ ッ グする か、 実 行 中 の ターゲ ッ ト に 接 続 で き ます。<br />

デバ ッ ガーは 各 コ ア 用 に 設 定 でき、ス タ ン ド ア ロ ン アプ リ ケーシ ョ ンを JTAG を 介 し てダ ウ ン ロー ド し て 実 行 する 前<br />

に、 ユーザーが 選 択 可 能 なオプシ ョ ンに よ り 初 期 化 フ ァ イルを 実 行 で き ます。<br />

詳 細 は、 ザ イ リ ン ク ス ソ フ ト ウ ェ ア 開 発 キ ッ ト ヘルプ (UG782) [ 参 照 6] および 『Zynq-7000 All Programmable SoC ソ<br />

フ ト ウ ェ ア 開 発 者 向 けガ イ ド 』 (UG821) [ 参 照 7] を 参 照 して く ださい。<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 165<br />

UG1046 (v2.0) 2015 年 3 月 26 日


第 7 章 : デバッ グ<br />

OS のデバッ グ<br />

ザイ リ ンクス システム デバ ッ ガーを 実 行 中 の ターゲ ッ ト に 接 続 する モー ド で 使 用 する と 、 オペレーテ ィ ング システ<br />

ムおよびサポー ト ドライバーをデバッグできます。システム デバ ッ ガーのコ ン フ ィ ギ ュ レーシ ョ ンによ り 、 カーネ<br />

ル シンボル ファイルを 追 加 し、コンパイル パス マ ッ プを 提 供 し て ソ ース コード のデバ ッ グ を 有 効 にで き ます。 カー<br />

ネル ソースは、 次 のフラグ セ ッ ト を 使 用 し て コ ンパイルする 必 要 があ り ます。<br />

CONFIG_DEBUG_KERNEL=y<br />

CONFIG_DEBUG_INFO=y<br />

デバ ッ ガーでは、 PL ア ド レ ス 空 間 で 実 行 中 のコー ド もデバ ッ グで き、 デバ ッ グ 中 は メ モ リ ビューにより PL メ モ リ<br />

空 間 がサポー ト さ れます。<br />

実 行 中 の ターゲ ッ ト に 接 続 する モー ド を 使 用 し てデバ ッ グする 場 合 、 デフ ォル ト では PL レジスタにはアクセスでき<br />

ません。 環 境 変 数 HW_SERVER_ALLOW_PL_ACCESS を SDK シ ェルで 設 定 し、 その 後 次 の 手 順 に 従 って hw_server<br />

で 設 定 する 必 要 があ り ます。<br />

1. 実 行 中 の hw_server の イ ン ス タ ン ス をすべて 終 了 し ます。<br />

2. SDK からターミナル コマンド プロンプト を 起 動 し、 HW_SERVER_ALLOW_PL_ACCESS 環 境 変 数 を 設 定 し ます。<br />

3. 同 じシェルから hw_server を 起 動 します。<br />

または、 GDB デバ ッ ガーも Linux カーネルのデバ ッ グに 使 用 で き ます。 GDB は、 シ ステム デバ ッ ガー と 同 様 、 TCP<br />

と JTAG の 間 で 変 換 を 実 行 する サーバーに 接 続 さ れた リ モー ト デバ ッ ガーです。 ARM DS-5 Development Studio で も 、<br />

Zynq-7000 AP SoC 用 の Linux カーネルのデバッグがサポー ト されています。<br />

詳 細 は、ザ イ リ ン ク ス ソ フ ト ウ ェ ア 開 発 キ ッ ト ヘルプ (UG782) [ 参 照 6] の「Attach and Debug Linux Kernel Using Xilinx<br />

System Debugger」 を 参 照 し て く だ さ い。<br />

Linux アプリケーシ ョ ンのデバッグ<br />

システム デバ ッ ガーの Linux アプ リ ケーシ ョ ン デバ ッ グ モー ド を 選 択 する と 、Linux アプ リ ケーシ ョ ン をデバ ッ グで<br />

きます。ザイリンクス SDK では、Linux アプ リ ケーシ ョ ンのデバッグにローカル ターゲッ ト またはリモート ターゲッ<br />

ト も 有 効 にで き ます。 Linux アプ リ ケーシ ョ ンのデバッグは、 ザイ リ ンク ス SDK で TCF エージ ェ ン ト を 使 用 する こ<br />

とによりサポート されます。Linux アプ リ ケーシ ョ ンをシステム デバ ッ ガーを 使 用 し てデバ ッ グするには、 TCF エー<br />

ジェントのプロセスを Linux ターゲ ッ ト 上 で 実 行 する 必 要 があ り ます。<br />

GDB デバ ッ ガーで も Linux アプ リ ケーシ ョ ンをデバッグできます。 リ モート ARM Linux アプ リ ケーシ ョ ン デバ ッ<br />

ガーは、 Zynq-7000 AP SoC ターゲ ッ ト 上 で 実 行 中 の gdbserver プ ロ セス と 通 信 する こ と に よ り デバ ッ グ をサポー ト し<br />

ます。 図 7-2 に、 システム デバ ッ ガーのウ ィ ン ド ウの 例 を 示 し ます。<br />

X-Ref Target - Figure 7-2<br />

図 7‐2 : SDK システム デバッ ガーのウ ィ ン ド ウ<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 166<br />

UG1046 (v2.0) 2015 年 3 月 26 日


第 7 章 : デバッ グ<br />

ARM DS-5 Development Studio など、 ザイ リ ンクス SDK 以 外 の IDE を 使 用 して、 Linux アプ リ ケーシ ョ ン の 開 発 お よ<br />

びデバ ッ グ を 実 行 で き ます。 Linux アプ リ ケーシ ョ ンの 開 発 にコマン ド ライン ツールが 使 用 される 場 合 もあ り ます。<br />

その 場 合 、 社 内 で 開 発 し たツールま たは OS ベンダーか ら 入 手 し た ツールを 使 用 で き ます。 Zynq-7000 AP SoC のエ コ<br />

システムは、 さまざまな OS パー ト ナーによ り サポー ト されています。 OS パー ト ナーの リ ス ト は、 114 ページの 「OS<br />

および RTOS の 選 択 」 を 参 照 して く ださい。<br />

トレース<br />

Cortex-A9 には、 ARM CoreSight プログラム フロー ト レース 機 能 と 互 換 性 のあ る プ ロ グ ラ ム トレース モ ジ ュ ール<br />

(PTM) が 含 まれています。 これを Cortex-A9 プ ロ セ ッ サ 上 で 使 用 し て、 プ ロ セ ッ サ 命 令 フ ロー 全 体 を 可 視 化 で き ます。<br />

Cortex-A9 PTM にはサ イ ク ル 数 を カ ウ ン ト する プ ロ フ ァ イル 解 析 機 能 があ り 、 コー ド 分 岐 と プ ロ グ ラ ム フ ローの 変 化<br />

を 完 全 に 可 視 化 で き ます。 PTM ブロックおよび CoreSight デザイ ン キ ッ ト に よ り 、 複 数 のプ ロ セ ッ サの 実 行 履 歴 を 非<br />

介 入 的 に ト レースで き ます。 命 令 の 実 行 結 果 はオンチ ッ プ バ ッ フ ァーに 格 納 さ れる か、 開 発 およびデバ ッ グでの 表 示<br />

を 向 上 する ため、 標 準 ト レース インターフェイスを 使 用 してオフチップに 送 信 できます。<br />

ARM DS-5 Development Studio を DSTREAM と 共 に 使 用 する と 、 Zynq-7000 AP SoC デバイ スの ETB および PTM 命 令<br />

ト レース 機 能 がサポー ト さ れます。 Lauterbach Trace32 でも PTM、 FTM、 ETB、 および AXI モニ タ ーか ら の ト レース<br />

データ がサポー ト さ れます。<br />

SDK ソフトウェア デバ ッ グの 詳 細 は、 次 の 資 料 を 参 照 し て く だ さ い。<br />

• 『Zynq-7000 All Programmable SoC ソ フ ト ウ ェ ア 開 発 者 向 けガ イ ド 』 (UG821) [ 参 照 7]<br />

• ザイ リ ンクス ソ フ ト ウ ェ ア 開 発 キ ッ ト ヘルプ (UG782) [ 参 照 6]<br />

シミュレーション ベースのデバッ グ<br />

シ ミ ュ レーシ ョ ンでは、 最 終 的 なデザ イ ンの 動 作 を ソ フ ト ウ ェ ア 環 境 でエ ミ ュ レー ト し ます。 シ ミ ュ レーシ ョ ン を 使<br />

用 する と 、 ス テ ィ ミ ュ ラ ス を 挿 入 し て 出 力 結 果 を 観 察 する こ と に よ り 、 デザ イ ンの 機 能 を 検 証 で き ます。<br />

システムのシミ ュレーシ ョ ン<br />

Zynq-7000 AP SoC は、Zynq-7000 AP SoC バス ファンクション モデル (BFM) を 使 用 して RTL レベルでシミュレーショ<br />

ンできます。BFM では、Zynq-7000 AP SoC アプ リ ケーシ ョ ンの 論 理 シ ミ ュレーシ ョ ンがサポート されます。PS-PL イ<br />

ンターフェイスおよび PS の OCM/DDR メモリを 模 倣 することにより、 PL の 機 能 を 検 証 し ます。 BFM は、 暗 号 化 さ<br />

れた Verilog モジュールのパッケージと して 提 供 されています。 BFM の 動 作 は、 Verilog 構 文 フ ァ イルに 記 述 さ れた<br />

Verilog タスクで 制 御 します。 Zynq-7000 AP SoC BFM の 詳 細 は、 『Zynq-7000 バス ファンクション モデル データシー<br />

ト』 (DS897) [ 参 照 30] を 参 照 して く ださい。<br />

デザイ ンが IP インテグレーターを 使 用 して 作 成 されている 場 合 は、 デザインのシ ミ ュレーシ ョ ン フ ァ イルを 生 成 す<br />

る 際 に Vivado ツールによ り Zynq-7000 AP SoC BFM が 自 動 的 に 使 用 さ れます。 PL ロジックは、IP RTL お よ び<br />

Zynq-7000 AP SoC BFM を 使 用 し てシ ミ ュ レーシ ョ ン し ます。 典 型 的 な 使 用 例 では、 GP ポー ト を 使 用 して PS か ら ト<br />

ラ ンザ ク シ ョ ン を 生 成 し ます。 こ れは、 Zynq-7000 AP SoC BFM の 一 部 として 定 義 した Verilog タスクの 1 つを 使 用 し<br />

て 実 行 でき ます。<br />

PL 側 の DDR メ モ リ を 使 用 する 際 は、MIG スレーブ インターフェイスを AXI インターコネク トを 使 用 して Zynq-7000<br />

AP SoC BFM に 接 続 し ます。 Micron 社 の メ モ リ モジ ュールを 使 用 する 場 合 は、 デザイ ンのシ ミ ュ レーシ ョ ン 中 、 関<br />

連 の Micron シミュレーション モデルをテ ス ト ベンチに 接 続 する 必 要 があ り ます。<br />

カスタム IP の 検 証<br />

Vivado ツールを 使 用 してパッケージ 化 したカスタム IP は、シミュレーションおよびハードウェア 上 で 検 証 できます。<br />

Create and Package IP 機 能 を 使 用 し てカ ス タ ム IP を 作 成 する 際 は、 [Verify peripheral IP using AXI BFM Simulation<br />

interface] をオンにする 必 要 があ り ます。 こ のオプシ ョ ン をオンにする と 、 AXI BFM スレーブおよびマスター コアを<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 167<br />

UG1046 (v2.0) 2015 年 3 月 26 日


第 7 章 : デバッ グ<br />

使 用 し てテンプレー ト IPI デザイ ンが 作 成 され、 コ アの 機 能 がシ ミ ュ レーシ ョ ン されます。 こ のテンプレー ト デザイ<br />

ンで 使 用 されるテス トベンチでは、AXI BFM IP で 定 義 された API が 使 用 されます。AXI バス ファンクション モデル<br />

の API および 応 答 コー ド については、 『LogiCORE IP AXI BFM Cores v5.0 製 品 ガ イ ド (AXI)』 (PG129) [ 参 照 31] を 参 照<br />

してください。<br />

CIP ウィザードで 生 成 された IP コアをテス トする 際 は、 デフォルト テス トベンチを 変 更 する 必 要 があり ます。 HDL<br />

を IP テンプレートにマップするプロセスの 詳 細 は、 『Vivado Design Suite ユーザー ガイド : カスタム IP の 作 成 お よ び<br />

パッケージ』 (UG896) [ 参 照 22] ( リンク) を 参 照 して く ださい。 また、 ポー ト が 公 開 されている 場 合 は、 デザインをシ<br />

ミュレーションする 前 に、テンプレート IPI デザイ ンおよびテンプレー ト テ ス ト ベンチをそれに 応 じ て 変 更 する 必 要<br />

があ り ます。<br />

ボー ドのデバッ グ<br />

デザイ ンを イ ンプ リ メ ン ト し た ら、 ハード ウ ェ ア 上 でテス ト する 必 要 があ り ます。 ハード ウ ェアのソ フ ト ウ ェア デ<br />

バッグは、SDK ツールを 使 用 し て 実 行 で き ます。 デバ ッ グは、 FPGA またはフ ァ ブ リ ッ ク 側 の 問 題 を 発 見 するのに 役<br />

立 ちます。<br />

FPGA のみのデバ ッ グ<br />

PL は、 Vivado の Integrated Logic Analyzer (ILA) を 使 用 してデバッグできます。 ILA は、 RTL コードに 含 めるか、 合 成<br />

後 に PL に 挿 入 し、 デザインのインターフェイスおよびネッ ト を 監 視 するよ う コンフ ィギュレーシ ョ ンできます。 ラ<br />

ン タ イ ムに ト リ ガー 条 件 を 指 定 し、 特 定 の 問 題 を 検 出 で き ます。 デバ ッ グ 用 にマー ク さ れ、 ILA に 接 続 されたネ ッ ト<br />

を 監 視 する こ と に よ り 、 問 題 の 原 因 を 見 つけ る こ と がで き ます。<br />

プ ロセ ッ サのみのデバ ッ グ<br />

ソフトウェアの 問 題 をデバッグするには、 SDK を 使 用 し ます。 SDK では、 コー ド および 変 数 値 の 表 示 、 制 御 フ ロー<br />

の 追 跡 、 ブレー ク ポ イ ン ト の 設 定 および 解 析 が 可 能 です。<br />

SDK を 使 用 する 前 に、 デザ イ ン をハー ド ウ ェ アにエ ク ス ポー ト する 必 要 があ り ます。 エ ク ス ポー ト プロセスによ り、<br />

Vivado ツールからハード ウェア コ ン フ ィ ギ ュ レーシ ョ ン を 記 述 する フ ァ イルを 含 むデザ イ ン ディレク ト リが 作 成 さ<br />

れます。 フ ァ イルには、すべてのデザ イ ン IP ブロックおよびそれらのメモリ マ ッ プに 関 する 情 報 が 含 まれます。SDK<br />

は、 こ の 情 報 を 使 用 し て IP ド ラ イ バーを 作 成 し ます。 エ ク ス ポー ト 機 能 で 供 給 さ れる 情 報 を 使 用 し て、 SDK で 異 な<br />

るソフトウェア アプ リ ケーシ ョ ンを 作 成 できます。<br />

SDK でソフ ト ウェア アプ リ ケーシ ョ ンを 作 成 したら、デザイン ビッ トスト リームを 使 用 して FPGA をプログラムし、<br />

アプ リ ケーシ ョ ン をハー ド ウ ェ ア 上 で 起 動 で き ます。 その 後 、 シ ス テム デバ ッ ガーを 使 用 し て ソ フ ト ウ ェ ア アプ リ<br />

ケーシ ョ ンをデバッ グでき ます。<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 168<br />

UG1046 (v2.0) 2015 年 3 月 26 日


第 7 章 : デバッ グ<br />

ハー ド ウ ェ ア と ソ フ ト ウ ェ アの 協 調 デバッ グ<br />

Zynq-7000 AP SoC では、プロセッサの 機 能 と カス タ ム FPGA ロ ジ ッ ク を 組 み 合 わせる こ と が 可 能 であ り 、デザ イ ンの<br />

可 能 性 が 広 が り ます。 こ れはデザ イ ンの 複 雑 性 が 増 すこ と も 意 味 し てお り 、 高 度 なツール セ ッ ト が 必 要 と な り ます。<br />

ザイ リ ンクスでは、 PS と PL 内 のペ リ フ ェ ラルを 同 時 にデバッ グするための ソ リ ューシ ョ ンを 提 供 し ています。<br />

ハー ド ウ ェ ア と ソ フ ト ウ ェ アの 協 調 デバ ッ グには、 Vivado ILA およびザイ リ ンクス SDK を 使 用 します。 ILA により、<br />

ネ ッ ト をデバッ グ 用 にマーク し、 解 析 でき ます。 SDK では、 ブレー ク ポ イ ン ト ま たはウ ォ ッ チポ イ ン ト の 設 定 、 プ ロ<br />

グラムの 1 行 ずつの 実 行 、 プ ロ グ ラ ムの 変 数 およびス タ ッ ク の 表 示 、 シ ス テム メ モ リ の 内 容 の 表 示 が 可 能 です。 協 調<br />

デバ ッ グは、ソ フ ト ウ ェ ア と ハー ド ウ ェ アを 組 み 合 わせた と き のシ ス テム レベルの 問 題 をデバ ッ グする ために 使 用 し<br />

ます。<br />

クロス トリガー<br />

エンベデッ ド クロス トリガー (ECT) は、ハードウェアとソフトウェアのやり 取 りをデバッグするクロス トリガー メ<br />

カニズムです。 ECT を 使 用 する こ と に よ り 、 CoreSight コ ンポーネン ト は ト リ ガーを 送 受 信 し、 ほかの コ ンポーネン<br />

ト と 通 信 で き ます。 ECT には、 次 の 2 つのコ ンポーネン ト が 含 まれます。<br />

• CTM : クロス トリガー マト リックス<br />

• CTI : クロス トリガー インターフェイス<br />

クロス トリガーは、プロセッサ 上 で 実 行 されているアプリケーションと PL ハー ド ウ ェ アの 協 調 デバ ッ グに 使 用 で き<br />

ます。 これには、Vivado ハー ド ウ ェ ア マネージャーおよび SDK を 使 用 し ます。Zynq-7000 AP SoC のクロス ト リガー<br />

ポー ト によ り 、 ILA とのハンドシェイク 信 号 を 使 用 してこの 機 能 を 有 効 にできます。 各 ARM コ アに、 専 用 イ ン ター<br />

フェイス TRIGGER_IN および TRIGGER_OUT があ り ます。 PS-PL インターフェイスでは、 ARM クロス トリガー イ<br />

ンターフェ イスのどちらかまたは 両 方 を 選 択 できます。 また、 PL 内 の ILA IP を 使 用 し、 SDK の GUI でクロス ト リ<br />

ガーを 設 定 する 必 要 があ り ます。 ハー ド ウ ェ ア ト リ ガー 条 件 が 発 生 し た ら プ ロ セ ッ サ ソフトウェアを 割 り 込 むこと<br />

ができ、 またソ フ ト ウ ェア ブレークポイン ト が 発 生 したらハード ウェア 信 号 をプローブできます。 Vivado でのク ロ<br />

ス ト リ ガーの 設 定 およびデバ ッ グの 詳 細 は、 『Vivado Design Suite チュート リ アル : エンベデッ ド プロセッサ ハード<br />

ウェア デザイ ン』 (UG940) [ 参 照 15] を 参 照 して く ださい。<br />

カスタム IP のハー ド ウ ェ ア 検 証<br />

CIP ウィザードを 使 用 すると IP インテグレーターでカスタム IP デザ イ ン のテ ン プ レー ト を 作 成 で き 、 それをハー ド<br />

ウェアでのデバッグに 使 用 できます。 Create and Package IP 機 能 を 使 用 する と 、 JTAG を AXI マスター コ ア を 使 用 し<br />

てカスタム IP に 接 続 する サンプル デザイ ンを 作 成 でき ます。 こ のデザイ ンには、 作 成 されたペ リ フ ェ ラル IP に 基 づ<br />

く AXI BFM マスターおよびスレーブ コ アが 組 み 込 まれています。 対 応 する ビ ッ ト ス ト リ ーム をボー ド にプ ロ グ ラ ム<br />

したら、 生 成 したテス ト ベクター Tcl ファイルを 使 用 して、 ボードでそのペリフェラル IP フ ァ ン ク シ ョ ン を テ ス ト<br />

できます。 テス ト ベクター ファイルには、 IP を 検 証 する のに 使 用 さ れる 一 連 の 書 き 込 みおよび 読 み 出 し が 含 まれま<br />

す。<br />

仮 想 プ ラ ッ ト フ ォーム<br />

仮 想 プ ラ ッ ト フ ォームは、 ハー ド ウ ェ アの 動 作 を 模 倣 する ソ フ ト ウ ェ ア システムで、 エンベデッ ド プ ラ ッ ト フ ォー<br />

ムの 高 速 ファンクシ ョ ン モデルです。 ハー ド ウ ェ ア と 同 じ ソ フ ト ウ ェ ア バイナリ を 実 行 し、 従 来 のデスク ト ップ、<br />

ラップトップ、またはサーバーで 実 行 します。 仮 想 プラットフォームを 使 用 すると、システム デザイ ンを 早 期 に 高 い<br />

抽 象 度 で 作 成 で き ます。 ハー ド ウ ェ ア (ボード または HDL) が 準 備 でき る 前 に、 ソ フ ト ウ ェア 開 発 を 進 める こ と がで<br />

き ます。 仮 想 プ ラ ッ ト フ ォームでは 故 障 注 入 およびテ ス ト が 無 制 限 でサポー ト さ れてお り 、 開 発 の 早 期 にバグ を 検 出<br />

し て 修 正 で き ます。 仮 想 プ ラ ッ ト フ ォームではハー ド ウ ェ ア パ ラ メ ーターをすばや く 変 更 で き る ので、ハー ド ウ ェ ア<br />

よ り も 簡 単 に 短 時 間 で 変 更 で き ます。<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 169<br />

UG1046 (v2.0) 2015 年 3 月 26 日


第 7 章 : デバッ グ<br />

Zynq‐7000 AP SoC の 仮 想 プ ラ ッ ト フ ォーム<br />

Zynq-7000 AP SoC の 仮 想 プ ラ ッ ト フ ォームでは、 典 型 的 な SoC に 含 まれる 次 の PS コ ン ポーネン ト のモデルが 使 用 さ<br />

れます。<br />

• Cortex-A9 MPCore プロセッサ<br />

• UART、 イーサネット、USB、 CAN な どのプ ロ セ ッ サ 周 辺 のペ リ フ ェ ラ ル<br />

• PCIe テクノロジやビデオなど、 プログラマブル ファブリ ックで 頻 繁 に 使 用 されるコンポーネント モデル<br />

仮 想 プラットフォームは、イーサネット、USB、 シリアル コ ン ソ ール、 グ ラ フ ィ カル 表 示 な どの さ ま ざ ま な イ ン ター<br />

フェイスにモデルを 接 続 できます。<br />

仮 想 プ ラ ッ ト フ ォーム を 使 用 する と 、 新 し いデバイ ス モデルを 作 成 し、 Zynq-7000 AP SoC PL 内 に 統 合 で き ます。 モ<br />

デルは、Zynq-7000 AP SoC を 含 むボー ド に 作 成 し て 統 合 する こ と も で き ます。 仮 想 ターゲ ッ ト に 接 続 する ためにカ ス<br />

タム IP のハード ウ ェア インプリメンテーションが 必 要 なほかのソリューションとは 異 なり、ザイリンクスの 仮 想 プ<br />

ラ ッ ト フ ォームはすべて ソ フ ト ウ ェ アで 変 更 し てカ ス タ ム ハー ド ウ ェ ア デザイ ンを 表 すこ と ができ ます。<br />

ザ イ リ ン ク ス 仮 想 プ ラ ッ ト フ ォームは、 アーキテ ク チ ャ 前 の 製 品 定 義 か ら、 シ ス テム 設 計 、 展 開 、 統 合 、 テ ス ト 、 最<br />

終 的 な 出 荷 まで、 製 品 開 発 のすべての 段 階 で 有 益 です。<br />

利 点 は 次 の と お り です。<br />

• タイム トゥ マーケ ッ ト<br />

° 早 期 に ソ フ ト ウ ェ ア を 開 発 : ハード ウ ェ アの 準 備 ができ る 前 にデバイ ス ドライバーおよびアプリケーショ<br />

ンの 開 発 を 開 始 で き ます。<br />

° 短 期 間 に ソ フ ト ウ ェ ア を 開 発 : ハー ド ウ ェ ア デザ イ ンのシ ミ ュ レーシ ョ ンおよび 検 証 と は 異 な り 、 仮 想 プ<br />

ラ ッ ト フ ォームは ソ フ ト ウ ェ ア 開 発 者 の 要 求 を 十 分 に 満 たせる ほど 高 速 です。<br />

° 高 度 な ソ フ ト ウ ェ ア 開 発 : 仮 想 プ ラ ッ ト フ ォーム を 使 用 する と 、 新 し い 手 法 を 試 し、 開 発 期 間 を 大 幅 に 短 縮<br />

できます。<br />

° ターゲ ッ ト を 変 更 する 必 要 な し : 仮 想 プ ラ ッ ト フ ォームでは、 レ ジ ス タおよび 命 令 精 度 モデルに よ り 、 ハー<br />

ドウェア イ ンプ リ メ ンテーシ ョ ンで 使 用 さ れる の と 同 じ 製 品 バイナ リ を 実 行 で き る ので、ソ フ ト ウ ェ アの 物<br />

理 プラ ッ ト フ ォームへの 移 行 が 簡 略 化 されます。<br />

° ハー ド ウ ェ ア と ソ フ ト ウ ェ アの 依 存 関 係 がない : 開 発 者 が 少 ない 開 発 機 器 を 共 有 する 必 要 はあ り ません。<br />

• 製 品 の 質<br />

° システム デザイ ンの 向 上 : 代 替 ソ フ ト ウ ェ アおよびハー ド ウ ェ ア コンフィギュレーションを 同 時 に 試 すこ<br />

とにより、 最 適 なシステム デザイ ンを 達 成 し ます。<br />

° シ ス テム 全 体 を 可 視 化 および 制 御 : すべてのレ ジ ス タおよび メ モ リ の 位 置 を、 物 理 デバイ スでア ク セ スで き<br />

ない 部 分 で も、 監 視 およびデバ ッ グで き ます。<br />

° テス トの 向 上 : ソ フ ト ウ ェ ア と ハー ド ウ ェ ア を 並 列 にデバグおよびテ ス ト で き、 よ り 包 括 的 なテ ス ト が 可 能<br />

です。<br />

° ソフトウェアのリグレッション テス トの 向 上 : 毎 晩 の ソ フ ト ウ ェ アのビル ド およびテ ス ト を 仮 想 プ ラ ッ ト<br />

フォームで 実 行 できます。<br />

° 故 障 注 入 および メ ト リ ッ ク ド リ ブン 検 証 の 向 上 : 仮 想 プ ラ ッ ト フ ォームでは、 物 理 デバイ スでア ク セ スで き<br />

ない 部 分 であ って も、 ハー ド ウ ェ ア 故 障 注 入 が 可 能 です。<br />

Cadence 社 Virtual System Platform<br />

従 来 の 仮 想 プ ラ ッ ト フ ォームで も 新 し い 開 発 手 法 を 使 用 し て 製 品 デザ イ ン を 変 更 する こ と はで き ますが、 開 発 プ ラ ッ<br />

ト フ ォームか ら 製 品 特 有 のハー ド ウ ェ アに 移 行 する には 不 十 分 な こ と が よ く あ り ます。 拡 張 性 を 備 えた 仮 想 プ ラ ッ ト<br />

フォームには、 次 の 利 点 があります。<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 170<br />

UG1046 (v2.0) 2015 年 3 月 26 日


第 7 章 : デバッ グ<br />

• 便 利 な 明 確 に 定 義 さ れたモデル : Zynq-7000 AP SoC の 仮 想 プ ラ ッ ト フ ォームは、 出 荷 さ れた 状 態 でそのま ま 使 用<br />

できます。 Linux、 RTOS、 およびベアメタル アプ リ ケーシ ョ ンの 開 発 にすぐに 使 用 でき ます。<br />

• 拡 張 性 : 仮 想 プ ラ ッ ト フ ォーム を、 Zynq-7000 SoC のプログラマブル フ ァ ブ リ ッ ク ま たはボー ド 上 に イ ン ス タ ン<br />

シエー ト された 新 しいデバイス、あるいはシステム モデルに 拡 張 で き ます。 拡 張 性 を 備 えた 仮 想 プ ラ ッ ト フ ォー<br />

ムには、 物 理 ハー ド ウ ェ アの 柔 軟 性 と 設 定 可 能 性 があ り ます。 Cadence 社 のツールを 使 用 する と、 SystemVerilog<br />

または VHDL で 記 述 されたモデルだけでな く C または System-C で 記 述 されたモデルがサポー ト されます。<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 171<br />

UG1046 (v2.0) 2015 年 3 月 26 日


第 8 章<br />

SDSoC 環 境<br />

本 章 では、 SDSoC 環 境 での 設 計 について 説 明 し ます。<br />

• 174 ページの 「 全 体 的 な 使 用 フ ロー」 : SDSoC 設 計 環 境 を 使 用 する 際 の 全 体 的 な フ ローのほか、 サポー ト OS お よ<br />

びハー ド ウ ェ ア プ ラ ッ ト フ ォームについて も 理 解 する 必 要 があ り ます。<br />

• 176 ページの 「プ ロ フ ァ イ リ ング」 : SDSoC は、 ザイ リ ン ク ス SDK に さ ら にプ ロ フ ァ イ リ ン グ 機 能 を 統 合 する た<br />

めのツールで、 コー ド をプ ロ グ ラ ムせずにアプ リ ケーシ ョ ン をプ ロ フ ァ イルで き ます。<br />

• 176 ページの 「パフ ォーマン スの 概 算 」 : SDSoC 環 境 には、 ハー ド ウ ェ ア ア ク セ ラ レーシ ョ ン 用 の 関 数 を 見 つけ<br />

る 際 に 使 用 で き るパフ ォーマン ス 改 善 をすばや く 概 算 する ツールが 含 まれます。<br />

• 176 ページの 「 ソ フ ト ウ ェ ア/ハー ド ウ ェ ア シ ス テム 全 体 の 作 成 と 実 行 」 : パフォーマンス 概 算 フローを 実 行 した<br />

ら、 シ ス テム を 再 構 築 し て、 生 成 する シ ス テムの 実 際 のパフ ォーマン ス を 確 認 で き ます。<br />

• 176 ページの 「C 言 語 か ら 呼 び 出 し 可 能 な RTL IP ラ イ ブ ラ リ を 使 用 し たパフ ォーマン スの 最 適 化 」 :C 言 語 か ら<br />

呼 び 出 し 可 能 な RTL の IP ラ イ ブ ラ リ を 使 用 し てパフ ォーマン ス を 最 適 化 で き ます。<br />

• 177 ページの「Vivado HLS を 使 用 した IP パフ ォーマン スの 最 適 化 」 : Vivado 高 位 合 成 (HLS) を 使 用 する と 、SDSoC<br />

環 境 でハード ウェアに 送 られるアプ リ ケーシ ョ ン コードをコンパイルできます。 この 後 SDSoC ツールで よ く 使<br />

用 さ れる ス ト ラ テジを 使 用 し て コー ド を 改 善 で き ます。<br />

• 177 ページの 「シ ス テム パフ ォーマン スの 最 適 化 」 : SDSoC を 使 用 する と 、 さ ま ざ ま な 手 法 を 使 用 し てシ ス テム<br />

パフ ォーマン ス を 最 適 化 で き ます。<br />

• 179 ページの 「シ ス テムのデバ ッ グ」 : SDSoC を 使 用 する と 、 SDSoC 環 境 を 使 用 し てプ ロ ジ ェ ク ト を 作 成 および<br />

デバッグできるようになります。SDSoC のデバッ グ 基 盤 と 手 法 は、 ザイ リ ン ク ス SDK System Debugger と 共 通 し<br />

ています。<br />

• 179 ページの「パフ ォーマン スの 測 定 と 解 析 」 : SDSoC の 高 度 なシ ス テム レベルのパフ ォーマン ス 測 定 と 解 析 機 能<br />

はザイ リ ン ク ス SDK と 共 通 し てお り 、 パフ ォーマン ス を 計 測 し た り 、 そのボ ト ルネ ッ ク を 判 別 する ための 関 数<br />

がオプシ ョ ンで 含 まれます。<br />

• 179 ページの 「エ ク スパー ト 向 けの 使 用 モデル」 : エキスパート ユーザーは SDSoC のデザ イ ン 決 定 事 項 を 上 書 き<br />

できます。<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 172<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 8 章 : SDSoC 環 境<br />

概 要<br />

SDSoC には、 ソ フ ト ウ ェア エンジニアおよびシステム アーキテク ト のための Zynq®-7000AP SoC 開 発 用 デザ イ ン<br />

ツールを 含 め、 使 いやすい Eclipse ベースの 開 発 環 境 を 使 用 し た C/C++ でのプ ロ グ ラ ミ ン グ 環 境 が 提 供 さ れています。<br />

SDSoC には、 プロ グ ラマブル ロジックでの 自 動 ソフ ト ウェア アクセラレーションや、 ソフトウェアとハードウェア<br />

間 の 自 動 システム コネクティビティの 生 成 など、 C/C++ コ ンパイ ラ を 最 適 化 する フルシ ス テムが 含 まれます。<br />

SDSoC プログラ ミ ング モデルは、ソ フ ト ウ ェア エンジニアに 馴 染 みやすい よ う に 設 計 さ れています。アプ リ ケーシ ョ<br />

ンは C/C++ コードで 記 述 されており、 ターゲッ ト プラッ ト フォームと 関 数 のサブセッ トはプログラマによ りアプリ<br />

ケーシ ョ ン 内 で 識 別 されています。 これがハー ド ウ ェ アにコ ンパイル さ れます。 こ の 後 、SDSoC の C/C++ コンパイラ<br />

と リ ンカーで、 アプリ ケーショ ンがハードウェアと ソフ ト ウェアにコンパイルされ、 ファームウェア、 オペレーティ<br />

ング システム、 アプリケーショ ン 実 行 ファイルと 一 緒 にブート イ メージ 全 体 を 含 めた、 完 全 なエンベデッ ド システ<br />

ムが Zynq デバイ スにイ ンプ リ メ ン ト されます。 図 8-1 は、 シ ス テム フ ロー 全 体 を 示 し ています。<br />

X-Ref Target - Figure 8-1<br />

図 8‐1 : SDSoC を 使 用 した C/C++アプリケーシ ョ ンから Zynq システムへのフ ロー<br />

SDSoC は 本 書 に 含 まれるハード ウ ェ ア デザイ ン フローとソフトウェア デザイ ン フローを 1 つの C/C++ ベース フ<br />

ローにま とめて、 特 にシステム コ ネ ク テ ィ ビテ ィ 生 成 やハー ド ウ ェ ア と ソ フ ト ウ ェ アの 統 合 など、 時 間 のかか る タ ス<br />

ク の 多 く を 自 動 化 し ます。 図 8-2 は、 従 来 のハー ド ウ ェ ア と ソ フ ト ウ ェ アのデザ イ ン フローと SDSoC を 使 用 したデ<br />

ザイン フローの 違 いを 示 しています。SDSoC で 多 く のデザイ ン タ ス ク が 自 動 化 さ れる と 、 ソ フ ト ウ ェ ア エンジニア<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 173<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 8 章 : SDSoC 環 境<br />

およびシステム アーキテ ク ト がすばや く アプ リ ケーシ ョ ン を イ ンプ リ メ ン ト し て、 繰 り 返 し 作 業 を 短 時 間 で 実 行 で き<br />

るようになります。<br />

X-Ref Target - Figure 8-2<br />

図 8‐2 : 従 来 のデザイ ン フロー (a) と SDSoC を 使 用 したデザイン フロー (b)<br />

ハー ド ウ ェ ア/ ソフトウェア イ ン ターフ ェ イ スは、 ハー ド ウ ェ アにマ ッ プ される 関 数 間 と 残 り のプ ロ グ ラ ム 間 の 相 互<br />

作 用 と データ フ ローで 定 義 さ れます。ハー ド ウ ェ アにマ ッ プ さ れた 関 数 はそれぞれ 独 立 し た ス レ ッ ド と し て 実 行 さ れ<br />

ますが、 プログラム 動 作 はコンパイ ラによ り 保 持 されます。 SDSoC コンパイラでは、 アプリケーションを 記 録 して<br />

ハー ド ウ ェ ア 関 数 ご と にデバイ ス ド ラ イバーを 起 動 する のではな く 、 SDSoC の 効 率 的 なデータ ムーバーのラ イブラ<br />

リを 使 用 して、 生 成 したハードウェア シ ス テムに 元 のアプ リ ケーシ ョ ンが 自 動 的 にマ ッ プ さ れ、 プ ロ セ ッ シング シ<br />

ステムとプログラマブル ロ ジ ッ ク 間 でデータ 通 信 が 行 われます。<br />

マ ッ ピ ング を 理 解 する には、 SDSoC コンパイラがプログラム 構 造 とそのデータ フ ローを 解 析 し て、 効 率 的 にプ ロ グ<br />

ラムのデータ フローをインプリ メントするハードウェアおよびソフトウェア システムを 生 成 するこ とを 知 っておく<br />

必 要 があ り ます。 これには、プロセッシング システムのメ イン メ モ リ を 常 に 介 する のではな く 、 1 つのハード ウ ェア<br />

ブロックを 別 のハードウェア ブ ロ ッ ク に 直 接 データ を 通 信 する こ と も 含 まれます。<br />

アプ リ ケーシ ョ ンで C 言 語 か ら 呼 び 出 し 可 能 な IP ライブラリをリンクすると、IP の 再 利 用 がサポー ト さ れます。 ア<br />

プリケーション コー ド がプ ラ ッ ト フ ォームの 一 部 と し て 提 供 さ れる C 言 語 か ら 呼 び 出 し 可 能 な ラ イ ブ ラ リ と リ ン ク<br />

さ れる 場 合 、 こ れら の ラ イ ブ ラ リ への イ ン ターフ ェ イ スに よ り アプ リ ケーシ ョ ンのプ ラ ッ ト フ ォーム 特 有 部 分 がカプ<br />

セル 化 さ れます。 こ の 方 法 を 使 用 する と 、 アプ リ ケーシ ョ ンはプ ラ ッ ト フ ォーム 間 でかな り のポータ ビ リ テ ィ を 達 成<br />

するこ とができます。<br />

全 体 的 な 使 用 フ ロー<br />

図 8-3 は、SDSoC デザ イ ン 環 境 を 使 用 し た 全 体 的 な 使 用 フ ローを 示 し ています。 た と えば、 ユーザー アプ リ ケーシ ョ<br />

ンの 場 合 は、 まず、 プ ロ フ ァ イ リ ン グ を 使 用 する か、 その 他 の 方 法 を 使 用 し てアプ リ ケーシ ョ ンの 計 算 負 荷 の 高 い 部<br />

分 を 識 別 し ます。 こ れら の 部 分 は、 既 に 存 在 し てい る か、 関 数 に リ フ ァ ク タ リ ン グ さ れてい るはずです。 SDSoC デザ<br />

イ ン 環 境 では、 これらの 関 数 がハード ウ ェ アに 割 り 当 て られます。 SDSoC では、 フル ビッ ト ス ト リ ームな し に 高 速<br />

なパフ ォーマン ス 概 算 がサポー ト さ れ、 すばや く デザ イ ンが 最 適 化 で き る よ う になっています。 最 適 化 は、 パフ ォー<br />

マン ス 概 算 に 基 づいて、 次 の 目 的 で 実 行 で き ます。<br />

• ハー ド ウ ェ アに さ ら に 計 算 部 分 を 移 行 する ため<br />

• ハー ド ウ ェ アに 移 行 する 関 数 のパフ ォーマン ス を 最 適 化 する ため (た と えば 高 位 合 成 (HLS) の pragma を 使 用 )<br />

• プロセッシング システムとプログラマブル ロ ジ ッ ク 間 のデータ 転 送 パフ ォーマン ス を 最 適 化 する ため (たとえ<br />

ば、 異 な るデータ ムーバーまたは 異 なる メモ リ ア ロ ケーシ ョ ン を 使 用 する)<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 174<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 8 章 : SDSoC 環 境<br />

必 要 なパフ ォーマン ス を 達 成 し た ら、 SDSoC でそのフル システムの SD カード イ メージを 生 成 して、 ターゲット プ<br />

ラ ッ ト フ ォームのアプ リ ケーシ ョ ンが 実 行 で き ます。 こ の 生 成 さ れたシ ス テムの 実 行 に 基 づき、 さ ら に 最 適 化 を 実 行<br />

できます。<br />

X-Ref Target - Figure 8-3<br />

図 8‐3 : SDSoC ユーザー フロー<br />

デフォル ト では、 SDSoC は Linux オペレーテ ィ ング システムをターゲッ トにしています。 生 成 される SD カード イ<br />

メージには、 Linux カーネル、 フ ァ イル システム、 ユーザー アプ リ ケーシ ョ ンが 含 まれます。 SDSoC では、 OS の 選<br />

択 肢 と し て FreeRTOS とスタンドアロン (ベア メ タル) モード もサポー ト されます。 FreeRTOS と ス タ ン ド ア ロ ン の 場<br />

合 、 ユーザー アプ リ ケーシ ョ ンはザイ リ ンク ス スタンドアロン システム (LibXil) か ら のサポー ト を 使 用 し て コ ンパ<br />

イルされます。OS の 選 択 を 制 御 するオプシ ョ ンの 詳 細 は、 『SDSoC の 概 要 』 (UG1027) [ 参 照 25] および 『SDSoC 入 門<br />

ガイド』 (UG1028) [ 参 照 26] を 参 照 して ください。<br />

SDSoC には、 そのま まの 状 態 で 使 用 でき るハード ウ ェア プラッ ト フォームも 数 個 サポート されます。 サポート され<br />

るプラッ ト フォームのリ ス トには、 ZC702、 ZC706、 Zed ボード、 および MicroZed などのよ く 使 用 されるボードが 含<br />

まれます。 アプ リ ケーシ ョ ンの ターゲ ッ ト プ ラ ッ ト フ ォームは、 プ ロ ジ ェ ク ト を 設 定 する と き に SDK 内 で 設 定 でき<br />

るほか、 makefile 内 で -sds-pf コマンド ライン オプシ ョ ン を 指 定 する と 設 定 で き ます。 使 用 可 能 なプ ラ ッ ト フ ォー<br />

ムの リ ス ト は、 sdscc コマンド ライン ツールに -sds-pf-list オプシ ョ ン を 付 けて 実 行 する と 表 示 で き ます。<br />

SDSoC を 使 用 する と 、 ユーザーおよびサー ド パーテ ィ が Vivado デザインから 開 始 してプラッ ト フォームを 生 成 する<br />

こ と も で き ます。 こ の よ う なプ ラ ッ ト フ ォームは、 SDK またはコマンド ラ イ ンのいずれかで 最 上 位 プ ラ ッ ト フ ォー<br />

ム デ ィ レ ク ト リ を 指 定 する と 選 択 で き ます。SDSoC プ ラ ッ ト フ ォームの 作 成 方 法 の 詳 細 は、『SDSoC プラッ ト フォー<br />

ムおよびラ イブラ リ ガイド』 (UG1146) [ 参 照 27] を 参 照 して ください。<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 175<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 8 章 : SDSoC 環 境<br />

プロファイリング<br />

パフ ォーマン ス 解 析 と プロ フ ァ イ リ ングの 重 要 性 については、 既 に 前 の 章 で 説 明 されています。 SDSoC では、 機 能 を<br />

介 し てツール 内 で こ れら の 概 念 が 統 合 さ れます。 SDSoC はザイ リ ン ク ス SDK のプ ロ フ ァ イ リ ン グ 機 能 に さ ら に 追 加<br />

さ れるプロ フ ァ イ リ ング 機 能 なので、アプ リ ケーシ ョ ン 開 発 者 は 非 介 入 TCF プ ロ フ ァ イ ラーを 使 用 する こ と で、 コー<br />

ド をプ ロ グ ラ ムせずにアプ リ ケーシ ョ ン をプ ロ フ ァ イルで き ます。 こ のプ ロ フ ァ イル 情 報 に 基 づいて、 移 動 中 の 関 数<br />

の 最 初 のハード ウ ェ アへの 受 け 渡 しが 開 始 されます。 詳 細 は、 第 6 章 「ソフトウェア デザイ ン フロー」 を 参 照 して<br />

ください。<br />

SDSoC では、 標 準 的 な Eclipse ベースのツール (ユーザー アプ リ ケーシ ョ ンをプロファ イルする gprof など) も サポー<br />

トされます。 詳 細 は、 第 7 章 「デバッグ」を 参 照 して く ださい。 SDSoC ユーザーは、 アプ リ ケーシ ョ ンのビル ド プロ<br />

パテ ィ を 変 更 した り、 –pg および –g1 オプシ ョ ンを 選 択 してプロ フ ァ イル 情 報 を 取 得 した り でき ます。 これらのオ<br />

プシ ョ ン を 選 択 する と 、 プ ロ ジ ェ ク ト を 構 築 し て、 ボー ド でそれを 実 行 し、 プ ロ フ ァ イル 情 報 フ ァ イル (gmon.out)<br />

を 取 得 する こ と がで き ます。 SDSoC 環 境 には、 gmon.out ファイルが 標 準 Eclipse ベースでグ ラ フ ィ ッ ク 表 示 さ れる<br />

機 能 があ り 、 関 数 の 階 層 ビ ューがそれぞれにかかった 時 間 の 割 り 合 い (%) と 一 緒 に 表 示 さ れます。<br />

パフォーマンスの 概 算<br />

SDSoC 環 境 には、 ハー ド ウ ェ ア ア ク セ ラ レーシ ョ ン 用 に 関 数 を 識 別 し た 後 に、 パフ ォーマン スの 改 善 をすばや く 概<br />

算 する ツールが 含 まれます。 た と えば、 典 型 的 なアプ リ ケーシ ョ ンのビル ド サイクル 全 体 が 40 分 かかる 場 合 、 パ<br />

フ ォーマン ス 概 算 フ ローを 使 用 する と 、 アプ リ ケーシ ョ ン ス ピー ド ア ッ プが 数 分 で 概 算 可 能 です。パフ ォーマン ス 概<br />

算 フローは、 ビルド コンフィギュレーションを [SDEstimate] に 変 更 し てプ ロ ジ ェ ク ト を 構 築 する と 実 行 で き ます。 こ<br />

のフローの 詳 細 は、 『SDSoC の 概 要 』 (UG1027) [ 参 照 25] および 『SDSoC 入 門 ガ イ ド 』 (UG1028) [ 参 照 26] の 演 習 4 を<br />

参 照 し て く だ さ い。<br />

ソフトウェア/ハー ド ウ ェ ア システム 全 体 の 作 成 と<br />

実 行<br />

パフォーマンス 概 算 フローを 使 用 し、デザインを 繰 り 返 し 試 して 取 得 したパフォーマンの 概 算 で 問 題 なければ、 ビル<br />

ド コンフィギュレーションを [SDRelease] に 変 更 し てプ ロ ジ ェ ク ト を 構 築 し 直 し ます。 生 成 し た SD カード イメージ<br />

を SD カー ド にコ ピーし て、 ボー ド で 実 行 し て、 生 成 し たシ ス テムの 実 際 のパフ ォーマン ス を 確 認 する こ と も で き ま<br />

す。<br />

C 言 語 から 呼 び 出 し 可 能 な RTL IP ライブラリを 使 用<br />

し たパフ ォーマンスの 最 適 化<br />

173 ページの 「 概 要 」 に 示 すよ う に、 ソ フ ト ウ ェア アプ リ ケーシ ョ ンに よ り 定 義 さ れたデータ フローは、そのアプリ<br />

ケーシ ョ ン 用 の SoC のハー ド ウ ェ ア と ソ フ ト ウ ェ アに 自 動 的 にマ ッ プ さ れます。 SDSoC コンパイラでは、 プログラ<br />

ム データ フ ローに 基 づいて 動 作 がハード ウ ェア 関 数 にマ ッ プおよびス ケジュールされます。 アプ リ ケーシ ョ ンは、<br />

Verilog な どのハー ド ウ ェ ア 記 述 言 語 で 定 義 さ れた IP ブ ロ ッ ク に 関 数 呼 び 出 し マ ッ ピ ン グ を 提 供 する ラ イ ブ ラ リ へ リ<br />

ンクすることもできます。アプリケーション コードおよび SDSoC コンパイラの 観 点 では、スケジュールとマップは、<br />

関 数 が HLS を 使 用 してコンパイル 時 に 合 成 されよ う が、 HDL IP ブ ロ ッ ク にマ ッ プ さ れよ う が 同 じ にな り ます。 ハー<br />

ド ウ ェ ア 関 数 への 呼 び 出 し は、 SDSoC コンパイラでハードウェアにマップされます。<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 176<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 8 章 : SDSoC 環 境<br />

IP ブロックのペリ フェラルをターゲッ トにする 従 来 の 「ソフ ト ウェア ド ラ イバー」 手 法 では、 通 常 制 御 イ ン ターフ ェ<br />

イスのみにアクセスでき、 ハードウェア システムでこのデータ フローが 取 り 込 まれます。 SDSoC アプ リ ケーシ ョ ン<br />

のよ うなフルシステム コ ンパイ ラ を 使 用 する と 、 その 他 の 関 数 ラ イ ブ ラ リ と 同 様 、 アプ リ ケーシ ョ ン コードから 直<br />

接 データ プ ロ セ ッ シン グ 関 数 が 起 動 で き ます。 DMA の よ う なデータ 転 送 は、 関 数 呼 び 出 し が 効 率 的 に イ ンプ リ メ ン<br />

ト さ れる よ う に 抽 象 化 さ れ 自 動 的 に 起 動 さ れます。<br />

詳 細 は、 『SDSoC プラッ ト フォームおよびライブラ リ ガイド』 (UG1146) [ 参 照 27] の 「SDSoC ライブラ リ」 (SDSoC<br />

Libraries) の 章 を 参 照 し て く だ さい。<br />

Vivado HLS を 使 用 した IP パフ ォーマンスの 最 適 化<br />

SDSoC 環 境 でハー ド ウ ェ アに 送 ら れる アプ リ ケーシ ョ ン コードは、 Vivado HLS ( 高 位 合 成 ) を 使 用 してコンパイルさ<br />

れます。 これについては、 第 5 章 「ハードウェア デザイ ン フロー」 を 参 照 して く ださい。 さ まざまな 最 適 化 ス ト ラ<br />

テジについては、『Vivado Design Suite ユーザー ガイド : 高 位 合 成 』 (UG902) [ 参 照 9] を 参 照 して く ださい。SDSoC ツー<br />

ルでは、 計 算 負 荷 の 高 いループ よ り も 前 にパイ プ ラ イ ン を イ ネーブルに し た り 、 内 部 ループ 内 でア ク セ ス さ れる 変 数<br />

に 対 し て array_partition pragma を 指 定 し て 内 部 ループの メ モ リ 帯 域 幅 を 増 加 し た り と いった、 コー ド を 改 善 する のに<br />

よ く 使 用 さ れる ス ト ラ テジがい く つか 使 用 さ れます。 最 適 化 ス ト ラ テジの 概 要 については、『SDSoC の 概 要 』 (UG1027)<br />

[ 参 照 25] を 参 照 して く ださい。<br />

システム パフ ォーマンスの 最 適 化<br />

アクセラレーションを 使 用 したシステム パフォーマンスの 改 善 は、 SDSoC に 統 合 された 主 な 概 念 の 1 つです。 ソ フ<br />

ト ウ ェ アの 観 点 と ハー ド ウ ェ アの 観 点 の 両 方 か ら パフ ォーマン ス を 改 善 する さ ま ざ ま な 方 法 については、 第 2 章 「シ<br />

ステム レベルの 考 慮 事 項 」 および 第 3 章 「ハードウェア デザ イ ンの 考 慮 事 項 」 を 参 照 して く ださい。 このセクシ ョ<br />

ンでは、 SDSoC で 使 用 されるその 他 の 手 法 と、 システム メ モ リ へのデータ の 格 納 およびデータ パイプラインなどの<br />

前 述 の 手 法 の 一 部 について 説 明 し ます。<br />

物 理 的 に 連 続 する メ モ リ の 使 用<br />

SDSoC シ ス テム 最 適 化 コ ンパイ ラ では、 メ モ リ アロケーションのト レード オフがソフ ト ウェアおよびハード ウェア<br />

関 数 に 組 み 込 まれます。 Linux ベースのシ ス テムでは、 malloc() でアロケート される メモ リ がページ 化 されます。<br />

カーネルではそのユーザー 用 にページが 記 録 さ れ、 ユーザー アプ リ ケーシ ョ ンに 統 一 し たビ ューが 表 示 されます。た<br />

だし、malloc() でア ロ ケーシ ョ ン さ れる メ モ リ がア ク セ ラ レータ に 転 送 さ れる 場 合 、 個 別 ページを 集 めて、<br />

AXI-DMA でスキャッター ギャザー モー ド を 使 用 し てそれら を 転 送 する ため、 パフ ォーマン ス ペナルテ ィ があ り ま<br />

す。 SDSoC には、 sds_alloc() と い う ユーザーがア ク セスでき る 関 数 が 含 まれます。 これは、 malloc() のよ うに<br />

動 作 し ますが、 物 理 的 に 連 続 する メ モ リ をア ロ ケーシ ョ ン し ます。 こ れに よ り 、 ス キ ャ ッ ター ギャザー DMA のよ う<br />

なデータ ムーバーを 使 用 する 場 合 はパフォーマンスがよ り 速 く な り ます。 また、 SDSoC でシンプル モ ー ド の<br />

AXI-DMA の よ う なデータ ムーバーを 選 択 する こ と も で き、 オーバーヘ ッ ド が 減 る ので、 パフ ォーマン ス も かな り 改<br />

善 されます。<br />

ローカル キャッシュとスト リーミング デー タの 使 用<br />

Vivado HLS で コ ンパイルされる コー ド に 転 送 さ れるデータ は、 データ 量 が 少 なければ、 1 度 送 信 し て、 その 計 算 中 に<br />

プログラマブル ロジックの BRAM 内 に 含 まれる よ う にで き ます。 データ がプ ロ グ ラ マブル ロジックの BRAM 内 に<br />

フ ィ ッ ト し ない く ら い 大 き い 場 合 、 ま たは 計 算 中 に 複 数 回 使 用 さ れない 場 合 は、 生 成 し たア ク セ ラ レータ にデータ ス<br />

ト リ ーム と し て 送 信 で き ます。 プ ロ セ ッ サ と ア ク セ ラ レータ 間 で 転 送 さ れるデータ をキ ャ ッ シ ュする か、 ス ト リ ー ミ<br />

ングする かは、 ユーザーが 選 択 で き ます。 詳 細 は、 『SDSoC の 概 要 』 (UG1027) [ 参 照 25] を 参 照 して く ださい。<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 177<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 8 章 : SDSoC 環 境<br />

共 有 メ モ リ の 使 用<br />

プロセッサのメモリからアクセラレータのローカル メ モ リ にデータ を 転 送 し た り 、ア ク セ ラ レータ を 介 し て ス ト リ ー<br />

ミ ング し た り する 代 わ り に、 プ ロ セ ッ サ と ア ク セ ラ レータ が 共 有 メ モ リ の 共 通 領 域 にア ク セ スする よ う にする こ と も<br />

できます。 これには、 コード pragma をハー ド ウ ェ アにマ ッ プ さ れる 関 数 に 追 加 し ます。 こ の 方 法 を 使 用 する には、<br />

ユーザー アプ リ ケーシ ョ ンが malloc() ではな く、 sds_alloc() を 使 用 し て メ モ リ を ア ロ ケーシ ョ ン し てい る 必<br />

要 があります。 詳 細 は、『SDSoC の 概 要 』 (UG1027) [ 参 照 25] の 第 10 章 を 参 照 し て く だ さ い。<br />

ア ク セ ラ レー タ 間 の 直 接 デー タ 転 送<br />

ハー ド ウ ェ ア ア ク セ ラ レーシ ョ ンに 複 数 の 関 数 を 選 択 し た 場 合 、 SDSoC 環 境 でそれ ら が 自 動 的 にパイ プ ラ イ ン さ れ<br />

ます。 つま り 、 関 数 間 でデータ 転 送 が 直 接 や り 取 り さ れる ので、 プ ロ セ ッ サ 側 で 使 用 さ れない 限 り 、 最 初 にプ ロ セ ッ<br />

サに 関 数 を コ ピーする 必 要 はあ り ません。<br />

同 じハー ド ウ ェ ア 関 数 の 複 数 イ ンス タ ンスの 使 用<br />

1 つのソース ロ ケーシ ョ ンか ら ハー ド ウ ェ アにマ ッ プ さ れた 関 数 に 対 する 複 数 の 呼 び 出 し は、 1 つのア ク セ ラ レータ<br />

にマップされますが、SDSoC の 場 合 は、 複 数 のア ク セ ラ レータ イ ン ス タ ン ス を 生 成 する よ う コ ンパイ ラ に 命 令 し、 よ<br />

り 多 く のデータ を 並 列 処 理 する こ と でアプ リ ケーシ ョ ンのパフ ォーマン ス を 改 善 する async という コード pragma<br />

を 使 用 できます。<br />

計 算 を 含 むデー タ 通 信 のパイ プ ラ イ ン<br />

ア ク セ ラ レータへの 連 続 する 複 数 の 呼 び 出 し は、 ユーザーの pragma 制 御 の 下 、 SDSoC でパイプラ イ ンでき ます。 こ<br />

れに よ り 、 その 後 に 続 く ア ク セ ラ レーターへの 呼 び 出 し をデータ 転 送 しつつ、 ア ク セ ラ レータ の 計 算 を 同 時 に 実 行 で<br />

きます。 図 8-4 は、 2 つの 入 力 と 1 つの 出 力 を 使 用 し たア ク セ ラ レータへの 連 続 呼 び 出 し を 示 し ています。<br />

X-Ref Target - Figure 8-4<br />

図 8‐4 : ア ク セ ラ レー タへの 呼 び 出 しの 連 続 実 行<br />

図 8-5 は、 パイプ ラ イ ン 形 式 で 実 行 される 同 じ ア ク セ ラ レーターへの 2 つの 呼 び 出 し を 示 し ています。 コ ンパイ ラ で<br />

は 複 数 のバッ フ ァーが 自 動 的 に 挿 入 されるので、 2 つ 目 の 呼 び 出 し のデータ 転 送 が、 最 初 の 呼 び 出 し の 完 了 直 後 に 開<br />

始 でき ます。 これには、 『SDSoC の 概 要 』 (UG1027) [ 参 照 25] の 第 7 章 に 記 述 さ れる よ う に、 async pragma を SDSoC<br />

環 境 で 使 用 する 必 要 があ り ます。<br />

X-Ref Target - Figure 8-5<br />

図 8‐5 : 別 のア ク セ ラ レー タへの 呼 び 出 しのパイ プ ラ イ ン 実 行<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 178<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 8 章 : SDSoC 環 境<br />

システムのデバッグ<br />

SDSoC には、 ザイ リ ン ク ス SDK System Debugger と 同 じデバッグ 構 造 と 手 法 が 使 用 され、 スタンドアロン プラット<br />

フ ォームのアプ リ ケーシ ョ ンのデバ ッ グ、 および 物 理 ア ド レ ス 空 間 で IP を 検 索 でき る 機 能 などのサポー ト が 含 まれ<br />

ます。 詳 細 は、 第 6 章 「ソフトウェア デザイ ン フロー」 を 参 照 して く ださい。<br />

SDSoC を 使 用 する と、 SDSoC IDE を 使 用 し てプ ロ ジ ェ ク ト を 作 成 およびデバ ッ グで き ます。 プ ロ ジ ェ ク ト は、 コ マ<br />

ンド ラインまたはSDSoC IDE のいずれかで、 ユーザー 定 義 の makefile を 使 用 して SDSoC IDE 外 で 作 成 し た り 、 デ<br />

バッグしたりするこ と もできます。 デバッグの 詳 細 は、 『SDSoC の 概 要 』 (UG1027) [ 参 照 25] および 『SDSoC 入 門 ガ<br />

イド』 (UG1028) [ 参 照 26] を 参 照 して ください。<br />

パフ ォーマンスの 測 定 と 解 析<br />

単 純 なパフ ォーマン ス 測 定 を し て、 パフ ォーマン スのボ ト ルネ ッ ク を 判 別 させる ため、 SDSoC には<br />

sds_clock_counter() という 関 数 が 含 まれます。 この 関 数 は、 ハードウェアのフリーランニング カウンターから<br />

のサイ クル 精 度 のタイムスタンプを 戻 します。このカウンターは、コード 計 装 およびパフォーマンス データ の 収 集 に<br />

使 用 で き ます。Vivado_HLS レポートはビルド ディレク ト リの _sds フォルダーからも 入 手 でき、 生 成 したハードウェ<br />

アの 詳 細 情 報 やパフ ォーマン ス を 改 善 する ために 加 え る こ と ので き る 変 更 点 など を 確 認 で き ます。<br />

SDSoC の 高 度 なシ ス テム レベルのパフ ォーマン ス 測 定 と 解 析 機 能 の 多 く はザ イ リ ン ク ス SDK と 共 通 しています。 詳<br />

細 は、 第 6 章 「ソ フ ト ウ ェア デザイ ン フロー」 を 参 照 して く ださい。 SDSoC コンパイラではオプションで AXI<br />

Performance Monitor (APM) を 生 成 するシステムに 挿 入 して、 Zynq デバイ スのプロ グ ラ ミ ング ロジック (PL) と プ ロ<br />

セッシング システム (PS) 間 の ト ラ フ ィ ッ ク を 監 視 でき ます。ARM を 使 用 して PS/PL バ ウ ン ダ リ のア ク テ ィ ビ テ ィ を<br />

監 視 する こ と で、 シ ス テムがキ ャ ッ シ ュ コヒーレント ACP ポー ト などの 特 定 の リ ソ ースの 容 量 で 飽 和 状 態 になって<br />

いるかど うかが 判 別 できます。<br />

計 算 間 で 長 い 時 間 ア イ ド ル データ 転 送 イ ン ターフ ェ イ ス を 監 視 するハー ド ウ ェ ア 関 数 を 使 用 する と 、ア ク セ ラ レータ<br />

マ イ ク ロ アーキテ ク チャ 最 適 化 の 恩 恵 を 受 け る 可 能 性 のあ る CPU バウンド システムが 示 されるので、 スループッ ト<br />

を 増 加 してレイテンシを 減 少 させる こ とができ る こ と もあ り ます。 逆 に、 飽 和 したデータ 転 送 インターフェ イ スによ<br />

り、 ト ラフィ ックを PS 上 のほかの 使 用 可 能 な 転 送 イ ン ターフ ェ イ スに リ ダ イ レ ク ト で き る よ う な 状 態 が 示 さ れる こ<br />

と も あ り ます。 詳 詳 細 は、 『ザ イ リ ン ク ス ソフトエア 開 発 キッ ト (SDK) ユーザー ガイド : システム パフ ォーマ ン ス 解<br />

析 』 (UG1145) [ 参 照 24] を 参 照 して く ださい。<br />

エクスパート 向 けの 使 用 モデル<br />

SDSoC に よ る 設 計 決 定 はすべて、 アプ リ ケーシ ョ ン コードに pragma を 挿 入 する か、 IDE/コマンド ライン パラメー<br />

ターを 使 用 する こ と で、 必 要 に 応 じ て 上 書 き で き ます。<br />

よ り 高 度 なユーザー 用 の 特 定 の 制 御 には、 次 の よ う な 機 能 が 含 まれます。<br />

• データ ムーバーの 選 択 : シンプル モード DMA、スキャ ッ ター ギャザー DMA、2-D DMA などの 異 なる IP ブロッ<br />

ク へのデータ 転 送 のマ ッ ピ ングを 制 御 する ため<br />

• CPU および DDR への Zynq-7000AP SoC プロセッシング システム インターフェイスの 選 択 : キャッシュ コヒー<br />

レント または 高 スループッ トの AXI イ ン ターフ ェ イ スへのマ ッ ピ ングを 制 御 する ため<br />

• ハー ド ウ ェ ア 関 数 port インターフェイスの 選 択 : ハー ド ウ ェ ア アクセラレータでハードウェア インターフェイ<br />

ス を 制 御 する ため (たとえば、 ハードウェア 関 数 とソフ ト ウェア スレッド 制 御 間 の 共 有 メモリ として、 または<br />

ローカル BRAM のデータのキ ャ ッ シ ュに 「コ ピー イン、 コピー アウ ト」 として)<br />

• 実 行 時 にサ イ ズ 変 更 可 能 なデータ 転 送 : 「コピー イン、 コピー ア ウ ト 」 方 法 に 従 った 転 送 の 場 合 、 可 能 な 場 合 は<br />

転 送 サ イ ズを 制 限 する こ と で、 シ ス テム パフ ォーマン ス を 改 善 可 能<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 179<br />

UG1046 (v2.1) 2015 年 4 月 22 日


第 8 章 : SDSoC 環 境<br />

• Vivado HLS を 使 用 したハード ウ ェア 関 数 マイ ク ロアーキテクチャ : CPU バウンド シ ス テムの 場 合 、 Vivado HLS<br />

の pragma と 指 示 子 を 使 用 し て スループ ッ ト と レ イ テンシを 改 善 可 能<br />

• ブロッキング vs ノ ンブ ロ ッ キ ン グ 関 数 の 起 動 : デフ ォル ト では、 関 数 は 元 の 関 数 呼 び 出 し 方 法 を 保 持 し ますが、<br />

ソフトウェア タスクのパイプラインをインプリ メントするためなど、 コードで pragma を 使 用 する と コ ンパイ ラ<br />

に 制 御 をすぐに 戻 すよ う に 命 令 可 能<br />

• ラ ン タ イ ム 中 にアプ リ ケーシ ョ ンで 時 分 割 される 別 のビ ッ ト ス ト リ ームへのハー ド ウ ェ ア 関 数 のサブセ ッ ト の<br />

マップ : プログラマブル ロジック ファブリックを 時 分 割 して、 ターゲッ ト デバイ スに 同 時 にフ ィ ッ ト する よ り<br />

も 多 く のハー ド ウ ェ ア 関 数 を 認 識 する ため<br />

こ れ ら の 各 制 御 に 関 する 詳 細 は、 『SDSoC の 概 要 』 (UG1027) [ 参 照 25] の 「SDSoC Pragma Specification」 セクションを<br />

参 照 し て く だ さ い。<br />

高 度 なユーザー、ハー ド ウ ェ ア 設 計 者 、シ ス テム ソフトウェア チームは、 部 分 的 なハー ド ウ ェ ア デザイ ンおよび OS、<br />

ファイル システム、 ライブラ リなどのソフ ト ウェア コ ンポーネン ト を 含 め、 独 自 の SDSoC プ ラ ッ ト フ ォーム を 構 築<br />

で き ます。 ま た、 独 自 の HDL IP を C 言 語 か ら 呼 び 出 し 可 能 な IP ライブラリもパッケージできます。SDSoC を サポー<br />

トするため、および HDL IP の C 言 語 か ら 呼 び 出 し 可 能 な ラ イ ブ ラ リ を 作 成 する ため、 明 確 に 定 義 さ れたオーバー<br />

ヘッ ドの 少 ない Vivado ハー ド ウ ェ ア システムをエク スポー ト する 手 法 があ り ます。 詳 細 は、『SDSoC プ ラ ッ ト フ ォー<br />

ムおよびラ イブラ リ ガイド』 (UG1146) [ 参 照 27] を 参 照 して ください。<br />

SDSoC は、 前 の 章 で 説 明 さ れてい る 多 く の 手 法 を 使 用 し て、 シ ス テム を 効 率 的 に 構 築 、 設 計 、 デバ ッ グ しやす く する<br />

ツールで、 前 述 の 手 法 を イ ンプ リ メ ン ト で き ます。 こ のツールは、 ソ フ ト ウ ェ ア 設 計 者 に と って 最 も 有 益 です。 こ れ<br />

は、ハー ド ウ ェ ア コ ンポーネン ト を 使 用 し てシ ス テム 開 発 を 促 進 する ためには、 ソ フ ト ウ ェ ア 設 計 者 のツールボ ッ ク<br />

スに 必 須 のツールです。<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 180<br />

UG1046 (v2.1) 2015 年 4 月 22 日


付 録 A<br />

その 他 の リ ソースおよび 法 的 通 知<br />

ザイリンクス リソース<br />

ア ンサー、 資 料 、 ダ ウ ン ロー ド 、 フ ォーラ ムなどのサポー ト リソースは、ザイ リ ンクス サポー ト サイ ト を 参 照 して<br />

ください。<br />

ソリューション センター<br />

デバイ ス、 ツール、 IP のサポー ト については、 ザイ リ ンクス ソリューション センターを 参 照 して く ださい。 デザイ<br />

ン アシスタン ト、 デザイン アドバイザリ、 ト ラブルシューティングのヒン ト などが 含 まれます。<br />

Xilinx Documentation Navigator<br />

Xilinx Documentation Navigator は、 ザ イ リ ン ク ス 製 品 を 使 用 し なが ら 資 料 にア ク セスで き る よ う にする 無 償 のツール<br />

で、 Vivado のインス トールに 含 まれます。システムにインス トールした 後 は、[スタート] → [すべてのプ ロ グ ラ ム] →<br />

[Xilinx Design Tools] → [DocNav] をクリ ックし、 [DocNav] アイコンをク リ ックするとアクセスできます。<br />

Xilinx Documentation Navigator の 使 用 方 法 の 詳 細 は、 『Vivado Design Suite ユーザー ガイド : 入 門 』 (UG910) [ 参 照 11] <br />

( リンク) を 参 照 して く ださい。<br />

関 連 するデザイ ン ハブ<br />

デザイ ン ハブを 使 用 する と 、 特 定 のデザ イ ン タ ス ク の 資 料 、 ト レーニング、 情 報 をすばや く 入 手 で き ます。 こ のガ<br />

イ ド で 説 明 さ れる エンベデ ッ ド 開 発 および 手 法 には、 次 のデザ イ ン ハブが 該 当 し ます。<br />

• Partial Reconfiguration デザイ ン ハブ<br />

• Software Development Kit (SDK) デザイ ン ハブ<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 181<br />

UG1046 (v2.1) 2015 年 4 月 22 日


付 録 A : その 他 の リ ソースおよび 法 的 通 知<br />

参 考 資 料<br />

さ ら に 詳 細 な 情 報 が 必 要 な 場 合 は、 次 の 資 料 を 参 照 し て く だ さ い。<br />

注 記 : 日 本 語 版 のバージ ョ ンは、 英 語 版 よ り 古 い 場 合 があ り ます。<br />

ザイ リンクス ユーザー ガイドおよびリファレンス ガイド<br />

1. 『7 シリーズ FPGA クロッキング リソース ユーザー ガイド』 (UG472 : 英 語 版 、 日 本 語 版 )<br />

2. 『7 シリーズ FPGA GTX/GTH トランシーバー ユーザー ガイド』 (UG476 : 英 語 版 、 日 本 語 版 )<br />

3. 『7 シリーズ FPGA GTP トランシーバー ユーザー ガイド』 (UG482 : 英 語 版 、 日 本 語 版 )<br />

4. 『Zynq-7000 All Programmable SoC テクニカル リファレンス マニュアル』 (UG585 : 英 語 版 、 日 本 語 版 )<br />

5. 『OS およびラ イ ブ ラ リ 資 料 コ レ ク シ ョ ン』 (UG643)<br />

6. ザイ リ ンクス ソ フ ト ウ ェ ア 開 発 キ ッ ト (SDK) ヘルプ (UG782)<br />

7. 『Zynq-7000 All Programmable SoC ソ フ ト ウ ェ ア 開 発 者 向 けガ イ ド 』 (UG821 : 英 語 版 、 日 本 語 版 )<br />

8. 『Zynq-7000 XC7Z020 All Programmable SoC ZC702 評 価 ボー ド ユーザー ガイド』 (UG850)<br />

9. 『Vivado Design Suite ユーザー ガイド : 高 位 合 成 』 (UG902)<br />

10. 『Vivado Design Suite ユーザー ガイド : 消 費 電 力 解 析 および 最 適 化 』 (UG907)<br />

11. 『Vivado Design Suite ユーザー ガイド : 入 門 』 (UG910)<br />

12. 『AXI インターフェイス ベース KC705 エンベデッ ド キッ ト MicroBlaze プロセッサ サブシステム ソ フ ト ウ ェ ア<br />

チュート リ アル』 (UG915)<br />

13. 『Zynq-7000 All Programmable SoC ZC702 ベース ターゲッ ト リファレンス デザイ ン (Vivado Design Suite 2014.2)<br />

ユーザー ガイド』 (UG925)<br />

14. 『Zynq-7000 All Programmable SoC PCB デザイ ン ガイド』 (UG933 : 英 語 版 、 日 本 語 版 )<br />

15. 『Vivado Design Suite チュート リ アル : エンベデッ ド プロセッサ ハー ド ウ ェ ア デザイ ン』 (UG940)<br />

16. 『UltraFast 設 計 手 法 ガ イ ド (Vivado Design Suite 用 )』 (UG949)<br />

17. 『PetaLinux ツール ユーザー ガイド : Zynq All Programmable SoC Linux-FreeRTOS AMP ガイド』 (UG978)<br />

18. 『Vivado Design Suite ユーザー ガイド : IP インテグレーターを 使 用 した IP サブシ ス テムの 設 計 』 (UG994)<br />

19. 『ザイ リ ン ク ス Zynq-7000 All Programmable SoC での ARM TrustZone アーキテクチャのプログラ ミ ング ユーザー<br />

ガイド』 (UG1019 : 英 語 版 、 日 本 語 版 )<br />

20. 『Zynq-7000 All Programmable SoC セキュア ブー ト スタートアップ ガイド』 (UG1025 : 英 語 版 、 日 本 語 版 )<br />

21. 『エンベデッ ド システム ツール リファレンス マニュアル』 (UG1043)<br />

22. 『Vivado Design Suite ユーザー ガイド : カスタム IP の 作 成 と パッ ケージ』 (UG1118)<br />

23. 『 基 本 的 な ソ フ ト ウ ェ ア プラッ ト フォームの 生 成 リ ファレンス ガイド』 (UG1138)<br />

24. 『ザイ リ ン ク ス ソ フ ト ウ ェ ア 開 発 キ ッ ト (SDK) ユーザー ガイド : システム パフ ォーマン ス 解 析 』 (UG1145)<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 182<br />

UG1046 (v2.1) 2015 年 4 月 22 日


付 録 A : その 他 の リ ソースおよび 法 的 通 知<br />

SDSoC 資 料<br />

次 の SDSoC 資 料 は、 現 時 点 ではア ク セスが 制 限 さ れています。 こ れら のフ ァ イルを 入 手 する には、 ザ イ リ ン ク ス 販 売<br />

代 理 店 までご 連 絡 く だ さ い。<br />

25. 『SDSoC の 概 要 』 (UG1027)<br />

26. 『SDSoC 入 門 ガ イ ド 』 (UG1028)<br />

27. 『SDSoC プラッ ト フォームおよびライブラ リ ガイド』 (UG1146)<br />

その 他 のザイ リ ン ク ス 資 料<br />

データ シー ト<br />

28. 『Zynq-7000 All Programmable SoC (Z-7010、 Z-7015、 Z-7020) : DC 特 性 および AC ス イ ッ チ 特 性 』 (DS187 : 英 語 版 、<br />

日 本 語 版 )<br />

29. 『Zynq-7000 All Programmable SoC 概 要 』 (DS190 : 英 語 版 、 日 本 語 版 )<br />

30. 『Zynq-7000 バス ファンクション モデル データ シー ト 』 (DS897)<br />

製 品 ガイ ド<br />

31. 『LogiCORE IP AXI BFM Cores v5.0 製 品 ガ イ ド (AXI)』 (PG129)<br />

ホワイ ト ペーパー<br />

32. 『Get Smart about Reset: Think Local, Not Global Whitepaper』 (WP272)<br />

33. 『Zynq-7000 All Programmable SoC でのセキュア ブー ト 』 (WP426)<br />

アプリケーシ ョ ン ノート<br />

34. 『Zynq-7000 All Programmable SoC を 使 用 し た 高 性 能 ビデオ システムの 設 計 』(XAPP792 : 英 語 版 、 日 本 語 版 )<br />

35. 『LightWeight IP (lwIP) アプ リ ケーシ ョ ン 例 』 (XAPP1026)<br />

36. 『シンプルな AMP : 2 つの Zynq SoC プ ロ セ ッ サ 上 で 動 作 する Linux およびベア タル システム』 (XAPP1078 : 英 語<br />

版 、 日 本 語 版 )<br />

37. 『シンプルな AMP : 2 つの Cortex-A9 プロセッサ 上 で 動 作 するベアメ タル システム』 (XAPP1079 : 英 語 版 、 日 本 語 版 )<br />

38. 『Zynq-7000 AP SoC 内 で PL イーサネ ッ ト を 使 用 する 場 合 の PS および PL イーサネッ トの 性 能 とジャンボ フ レー<br />

ムのサポート』 (XAPP1082 : 英 語 版 、 日 本 語 版 )<br />

39. 『Zynq-7000 の PS と XADC 間 の 専 用 イ ン ターフ ェ イ ス を 利 用 し たシ ス テム 監 視 および 外 部 チャ ネル 計 測 』<br />

(XAPP1172 : 英 語 版 、 日 本 語 版 )<br />

40. 『Zynq-7000 All Programmable SoC のセキュア ブー ト 』 (XAPP1175 : 英 語 版 、 日 本 語 版 )<br />

41. 『Zynq-7000 AP SoC プロセッシング システムと XADC AXI インターフェイスを 使 用 したシステム モニ タ リ ン グ』<br />

(XAPP1182 : 英 語 版 、 日 本 語 版 )<br />

42. 『ARM DS-5 ツールチェーンを 使 用 した Zynq-7000 プラッ ト フォーム ソ フ ト ウ ェ アの 開 発 』 (XAPP1185 : 英 語 版 、<br />

日 本 語 版 )<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 183<br />

UG1046 (v2.1) 2015 年 4 月 22 日


付 録 A : その 他 の リ ソースおよび 法 的 通 知<br />

ウェブ ページ<br />

43. AXI パフォーマンス モニター ウェブ ページ<br />

44. AXI タイマー/カウンター ウェブ ページ<br />

45. LogiCORE AXI Traffic Generator ウェブ ページ<br />

46. ザイ リ ンクス セキュ リ テ ィ ソ リューション ウェブ ページ<br />

47. ザイ リ ンクス Zynq-7000 AP SoC エコシステム ウェブ ページ<br />

48. ザイ リ ンクス PetaLinux ツール ウェブ ページ<br />

Wiki ページ<br />

49. K7 Embedded TRD 2013.2 Wiki ページ<br />

50. ザイ リ ンクス Linux ドライバー Wiki ページ<br />

51. ザイ リ ンクス Linux GPIO ドライバー Wiki ページ<br />

52. ザイ リ ンクス Linux I2C ドライバー Wiki ページ<br />

53. ザイ リ ンクス Linux SPI ドライバー Wiki ページ<br />

54. ザイ リ ンクス Linux Wiki ページ<br />

55. ザイ リ ンクス マルチ OS サポー ト Wiki ページ<br />

56. ザイ リ ンクス PetaLinux Wiki ページ<br />

57. ザイ リ ンクス U-Boot Wiki ページ<br />

58. ザイ リ ンクス Yocto Wiki ページ<br />

59. Zynq-7000 AP SoC ブー ト - 外 部 メ モ リ な し のブー ト および 実 行 のテ ク ニカル ヒント<br />

60. Zynq-7000 AP SoC ブー ト - L2 キ ャ ッ シ ュ か ら の ロ ッ ク および 実 行 のテ ク ニカル ヒント<br />

61. Zynq-7000 AP SoC 低 消 費 電 力 手 法 1 - 消 費 電 力 デモの イ ン ス ト ールおよび 実 行 に 関 する テ ク ニカル ヒント Wiki<br />

ページ<br />

62. ザイ リ ンクス Zynq-7000 AP SoC Spectrum Analyzer パー ト 2 - ARM NEON ラ イ ブ ラ リ の 構 築 に 関 す る テ ク ニ カル<br />

ヒント<br />

63. ザイ リ ンクス Zynq Linux Wiki ページ<br />

64. ザイ リ ンクス Zynq パワー マネージ メ ン ト の Wiki ページ<br />

アンサー データベース<br />

65. ザイ リ ンクス アンサー 46778<br />

66. ザイ リ ンクス アンサー 47511<br />

67. ザイ リ ンクス アンサー 50991<br />

68. ザイ リ ンクス アンサー 52847<br />

69. ザイ リ ンクス アンサー 55572<br />

70. ザイ リ ンクス アンサー 57744<br />

71. ザイ リ ンクス アンサー 58387<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 184<br />

UG1046 (v2.1) 2015 年 4 月 22 日


付 録 A : その 他 の リ ソースおよび 法 的 通 知<br />

他 社 の 情 報<br />

72. ARM DS-5 Development Studio Streamline Performance Analyzer 資 料 : <br />

http://ds.arm.com/ds-5/optimize<br />

73. ARM Infocenter Accelerator Coherency Port ウェブページ :<br />

http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0407e/CACGGBCF.html<br />

74. ARM Security Technology: Building a Secure System using TrustZone® Technology :<br />

http://infocenter.arm.com/help/topic/com.arm.doc.prd29-genc-009492c/PRD29-GENC-009492C_trustzone_security_whitep<br />

aper.pdf<br />

75. Cortex-A9 Technical Reference Manual :<br />

http://infocenter.arm.com/help/topic/com.arm.doc.ddi0388e/DDI0388E_cortex_a9_r2p0_trm.pdf<br />

76. Design Calculations for Robust I2C Communications :<br />

http://www.edn.com/<strong>design</strong>/analog/4371297/Design-calculations-for-robust-I2C-communications<br />

77. Discretix : http://www.discretix.com/<br />

78. ENEA Software AB Solutions : http://www.enea.com/solutions/<br />

79. eSOL Embedded Engineering and Enabling Solution : http://www.esol.com/<br />

80. Express Logic ThreadX RTOS : http://rtos.com/products/threadx/xilinx_arm<br />

81. GreenHills INTEGRITY RTOS : http://www.ghs.com/products/xilinx_zynq.html<br />

82. How a MicroBlaze can peaceably coexist with the Zynq-7000 AP SoC :<br />

http://www.eetimes.com/document.asp?doc_id=1280680<br />

83. IAR Integrated Solutions Partner Program : http://www.iar.com/Products/RTOS/Integrated-RTOSes/<br />

84. iVeia Adeneo Embedded Board Support Packages : http://www.adeneo-embedded.com/Products/Board-Support-Packages<br />

85. Mentor Graphics Nucleus RTOS : http://www.mentor.com/embedded-software/nucleus/?sfm=auto_suggest<br />

86. Micrium µC/OS RTOS : http://micrium.com/products/<br />

87. MontaVista Carrier Grade Edition 7 : http://www.mvista.com/product-carrier-grade-edition7.html<br />

88. PCA9548A Low Voltage 8-Channel I2C Switch With Reset : http://www.ti.com/lit/ds/symlink/pca9548a.pdf<br />

89. SD Association, Latest Simplified Specifications : https://www.sdcard.org/downloads/pls/simplified_specs/<br />

90. Open Kernel Labs OKL4 Microvisor : http://www.ok-labs.com/products/okl4-microvisor<br />

91. QNX Neutrino RTOS : http://www.qnx.com/products/neutrino-rtos/neutrino-rtos.html#overview|<br />

92. Quadros RTOS : http://www.quadros.com/products/operating-systems<br />

93. Real Time Engineers FreeRTOS Interactive ウェブページ :<br />

http://www.freertos.org/Interactive_Frames/Open_Frames.html?http://interactive.freertos.org/entries/23277857-Updated-Xil<br />

inx-FreeRTOS-port-for-Zynq-to-SDK-14-4-release<br />

94. Sciopta RTOS : http://www.sciopta.com/news/ZYNQ-7000.html<br />

95. Sierraware Hypervisor and SierraTEE Trusted Execution Environment : http://www.sierraware.com/arm_hypervisor.html<br />

96. SYSGO PikeOS BSPs for ZC702, Zed, and Zynq-7000 All Programmable SoC BSP :<br />

http://www.sysgo.com/products/board-support-packages/pikeos-bsp-list/<br />

97. SYSGO PikeOS Product Information :<br />

http://www.sysgo.com/news-events/press/press/details/article/sysgos-certified-pikeos-supports-xilinxs-zynq-7000-all-progra<br />

mmable-soc/<br />

98. ザイ リ ンクス ウェブページからの 公 式 Linux カーネル : https://github.com/Xilinx/linux-xlnx<br />

99. Timesys LinuxLink : http://www.timesys.com/embedded-linux/linuxlink<br />

100. Wind River VxWorks, Linux, and Workbench IDE : http://www.windriver.com/<br />

101. Xilinx XC702 DS-5 Getting Connected Guide : http://www.arm.com/files/pdf/zc702_ds5_2.pdf<br />

102. Yocto Project ウェブページ : http://git.yoctoproject.org/cgit/cgit.cgi/meta-xilinx/about/<br />

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 185<br />

UG1046 (v2.1) 2015 年 4 月 22 日


付 録 A : その 他 の リ ソースおよび 法 的 通 知<br />

トレーニング リソース<br />

ザ イ リ ン ク スでは、 本 書 に 含 まれる コ ンセプ ト を 説 明 する さ ま ざ ま な ト レーニン グ コースおよびオンライン ビデオを<br />

提 供 し ています。 次 の リ ン ク か ら 関 連 する ビデオを 参 照 し て く だ さ い。<br />

1. Vivado Design Suite ビデオ チュート リ アル : ザイ リンクスの SDK を 使 用 して Zynq ブー ト イ メージを 作 成 する 方 法<br />

2. Vivado Design Suite ビデオ チュート リ アル<br />

法 的 通 知<br />

The information disclosed to you hereunder (the “Materials”) is provided solely for the selection and use of Xilinx products.To the maximum extent<br />

permitted by applicable law:(1) Materials are made available "AS IS" and with all faults, Xilinx hereby DISCLAIMS ALL WARRANTIES AND<br />

CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY,<br />

NON-INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and (2) Xilinx shall not be liable (whether in contract or tort,<br />

including negligence, or under any other theory of liability) for any loss or damage of any kind or nature related to, arising under, or in connection<br />

with, the Materials (including your use of the Materials), including for any direct, indirect, special, incidental, or consequential loss or damage<br />

(including loss of data, profits, goodwill, or any type of loss or damage suffered as a result of any action brought by a third party) even if such<br />

damage or loss was reasonably foreseeable or Xilinx had been advised of the possibility of the same.Xilinx assumes no obligation to correct any<br />

errors contained in the Materials or to notify you of updates to the Materials or to product specifications.You may not reproduce, modify, distribute,<br />

or publicly display the Materials without prior written consent.Certain products are subject to the terms and conditions of Xilinx’s limited warranty,<br />

please refer to Xilinx’s Terms of Sale which can be viewed at http://www.xilinx.com/legal.htm#tos; IP cores may be subject to warranty and support<br />

terms contained in a license issued to you by Xilinx.Xilinx products are not <strong>design</strong>ed or intended to be fail-safe or for use in any application<br />

requiring fail-safe performance; you assume sole risk and liability for use of Xilinx products in such critical applications, please refer to Xilinx’s<br />

Terms of Sale which can be viewed at http://www.xilinx.com/legal.htm#tos.<br />

© Copyright 2014-2015 Xilinx, Inc. Xilinx, the Xilinx logo, Artix, ISE, Kintex, Spartan, Virtex, Vivado, Zynq, and other <strong>design</strong>ated brands<br />

included herein are trademarks of Xilinx in the United States and other countries.All other trademarks are the property of their respective owners.<br />

こ の 資 料 に 関 する フ ィ ード バッ クおよび リ ン ク などの 問 題 につき ま し ては、 jpn_trans_feedback@xilinx.com まで、 ま たは 各 ページの<br />

右 下 にあ る [フ ィードバック 送 信 ] ボ タ ン を ク リ ッ ク する と 表 示 さ れる フ ォームか らお 知 らせ く だ さ い。 フ ィ ー ド バ ッ ク は 日 本 語 で<br />

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

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

UltraFast エンベデッ ド デザイ ン 設 計 手 法 ガ イ ド japan.xilinx.com 186<br />

UG1046 (v2.1) 2015 年 4 月 22 日

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!