What's New in DesignWare IP? - Synopsys

Preview:

Citation preview

15

はじめに

DesignWare Hybrid IP Prototyping Kit

64ビットARMプロセッサ・ベース設計のプロトタイピング、ソフトウェア開発、システム統合を支援するDesignWare Hybrid IP Prototyping Kit シノプシス Achim Nohl、 Hugo Neto

What's New in DesignWare IP?

ARM®ベース・プロセッサのソフトウェア・スタックは複雑化の一途をたどっています。ハードウェアIPに必要なソフトウェアを完全に垂直統合するには、多くのソフトウェア・レイヤで膨大な作業が要求されます。まず、セキュア・ブート・ファームウェアのベアメタル・ドライバを開発して最適化します。そして同じ作業を第2ステージ・ブートローダ(UEFI)、そしてもちろんLinux®などのメイン・オペレーティング・システムに対しても行う必要があります。エンド・ツー・エンドのテストは、Android™など、より高次のアプリケーション・ソフトウェア・スタックを考慮して初めて実行可能になります。

こうした目標をすべて解決するには、ソフトウェア・チームが使用するソフトウェア開発ターゲットに厳しい要件が課せられます。デバッグ生産性を向上させるには、すべてのソフトウェア・レイヤにおいてハードウェアの詳細まで可視化できる高度なデバッグ / トレース機能が必要です。本稿では、Linuxソフトウェア・スタックを使用した64ビットARMプロセッサ・ベース・システムにおけるDesignWareインターフェイスIPのドライバの開発およびシステム統合にかかる期間を短縮する新しいハイブリッド型のプロトタイピング・キットについてご説明します。シノプシスのDesignWare Hybrid IP Prototyping Kitは、バーチャル・プロトタイピングと物理プロトタイピングの技術を組み合わせ、両方の利点が得られるように構成されています。

DesignWare Hybrid IP Prototyping Kitには、すぐに開発を始めていただけるよう必要なソフトウェアおよびハードウェア・コンポーネントがすべて揃っています。このキットは、Virtualizer Development Kit(VDK)とFPGAベースのDesignWare IP Prototyping Kitを統合した形で提供されます。Hybrid IP Prototyping Kitは、アナログPHYドーターボードを追加したHAPS-DXプロトタイピング・システムに実績豊富なDesignWare IPリファレンス・デザインとLinaro® Linuxソフトウェア・スタックおよびドライバを搭載しています(図1)。このような構成とすることで、次のようなソフトウェア開発の主要なニーズに応えます。

● 第1に、VDK(開発ターゲットとしてバーチャル・プロトタイプを使用するソフトウェア開発キット)を使用して、プロセッサのRTLが完成するよりもはるかに早い段階で最新のARM Cortex®プロセッサ上でDesignWare IPのソフトウェア開発が行えます。このバーチャル・プロトタイプにはARM社支給のプロセッサ・シミュレーション・モデルが内蔵されています

● 第2に、FPGAベースのDesignWare IP Prototyping Kitを使用して、ソフトウェア開発者は実際のI/Oおよびインターオペラビリティに関する特別な条件を伴うシナリオをテストできます

● 第3に、Lauterbach TRACE32®、ARM DS-5™、GNU GDBなどの一般的なサードパーティ・ソフトウェア・デバッガをブリングアップしてシステム全体をデバッグできます

● 第4に、デバッグの範囲を拡大するDeep Trace Debug機能により、割り込みラインなどの重要なハードウェア要素をデバッグできます

そしてもう1つの重要な点として、Hybrid IP Prototyping Kitは全体が事前に検証されており、ビルド済みARMv8 Linaro Linuxソフトウェア・スタックおよびシノプシスの特定のDesignWare IPのリファレンス・デバイス・ドライバを完備しています。 VDKはARMベース・プラットフォーム仕様とバイナリ・ソフトウェア互換性があるため、ARMv8ベースのリファレンスVDKと呼ばれます。ARMおよび非営利団体Linaroはこの仕様に基づいて最新のARMプロセッサに対応したオープンソース・ソフトウェアの開発と改良を進めています。この仕様は、コンポーネント、プラットフォーム・メモリーマップ、割り込みをカバーしています。DesignWare Hybrid IP Prototyping Kitに含まれるVDKは、4つのCortex-A53プロセッサと4つのCortex-A57プロセッサ、キャッシュ・コヒーレントなインターコネクト、ARM GIC(Generic Interrupt Controller)で構成されるARMv8 big.LITTLE™サブシステムのモデルをホスティングします。さらに、キーボード / マウス・インターフェイス、カラーLCDコントローラ、Ethernetコントローラ、複数のUARTなどのI/Oデバイスをはじめ各種ペリフェラルも含まれます。これらのペリフェラル・シミュレーション・モデルはバーチャルI/O機能を装備しており、ユーザーのソフトウェア・スタックから実際のEthernetネットワークにアクセスできます。物理的な開発ボードと同様、VDKを使用するとUEFI(Unified Extensible Firmware Interface)やLinuxドライバ開発をはじめ、DesignWare IPのAndroid環境へのハードウェア・アダプテーション・レイヤなど幅広い種類のソフトウェアを開発できます。VDKは非常に高い性能を備えており、Linuxを1分以内に起動できるほか、Android 5.0(Lollipop)のウォームブートも約10分で完了します。

ARMv8ベースのリファレンスVDKの特徴的な機能として、明確に定義された拡張インターフェイスによる優れた拡張性があります。このインターフェイスを使用すると、シノプシスのVirtualizerツール・スイートで開発したカスタム・ペリフェラル・サブシステムのVDKシミュレーション・モデルといったカスタム・エクステンションを追加してARMv8ベースの仕様を補完できます。このインターフェイスは、ARM社のLogicTile Expressインターフェイスに準拠しており、LogicTile Expressインフラストラクチャ向け標準ドライバ(コンフィギュレーション・コントローラなど)とのソフトウェア互換性が確保されています。DesignWare Hybrid IP Prototyping Kitもこのインターフェイスを利用してVDKとHAPS-DX7システムを結合しています。

DesignWare Hybrid IP Prototyping Kitに含まれるIP Prototyping Kitには、ターゲットとなるDesignWare IP(およびトランザクタなどVDKとの接続に必要なすべての補助IP)のRTLリファレンス・コンフィギュレーションが事前検証済みの形でロードされています。IP Prototyping KitとVDKを相互に接続図1. DesignWare Hybrid IP Prototyping Kit

LinaroファームウェアおよびLinux ソフトウェア リファレンス

Linuxドライバ

Virtualizer Development Kit

マルチコアARM Cortex-A57

タイマーIRQ

マルチコアARM Cortex-A53

RTCGPIO

メモリー I2C

ARMベースVP

PCI ExpressUMRBus

IP Prototyping Kit

DesignWare IP

PHYドーターボード

サードパーティソフトウェア・デバッガ ツール VP Explorer

Support Q

&A

検証

編S

upport Q&

Aフ

ィジ

カル

編S

upport Q&

A論

理合

成編

New

s Release

ニュ

ース

リリ

ース

Industry TrendW

hat's New

in DesignW

are IP?

Custom

erH

ighlightTechnology U

pdate最

新技

術情

16

前ページより続く

64ビットARMプロセッサ・ベース設計のプロトタイピング、ソフトウェア開発、システム統合を支援するDesignWare Hybrid IP Prototyping KitWhat's New in DesignWare IP?

図3. Lauterbach TRACE32によるUSB割り込みルーチンのデバッグ

システム・デバッグ

ソフトウェア・デバッグ

するARM AMBA®インターコネクト用トランザクタとして、AXI3™トランザクタ(マスタとスレーブが各1)および割り込み用GPIOトランザクタが用意されています。

このインターフェイスに対するデバッグ / トレース可視性を高めるため、プローブが追加されています。DesignWare IPのライセンシーは、高速イタレーション・フローを使用してDesignWare Hybrid IP Prototyping Kitを変更することもできます。また、ProtoCompiler DXツールを使用してデバッグ / トレースのインストルメンテーションをユーザーがカスタマイズして、プロトタイプ・デザインの内部ハードウェア信号を可視化できます。

最大限の性能を得るには、DesignWare Hybrid IP Prototyping Kitのすべてのコンポーネント、リンク、トランザクタの速度を最適化する必要があります。このため、DesignWare IP Prototyping KitはPCI Express®インターフェイスを介してシノプシスの広帯域UMRBus(Universal Multi-Resource Bus)でVDKホスト・マシンに接続しており、400Mbps(Typ.)超の転送速度を達成しています。

たとえば、USBフラッシュ・ドライブをPHYドーターボードに挿入してVDKのDesignWare USB xHCIドライバでマウントし、ドライブ内の30秒のH.264 SDビデオをFFmpegアプリケーションでデコードした場合、最近の機種のノートブックPCをホストに使用すると約2分でストリーミング再生できます

(図2)。

DesignWare Hybrid IP Prototyping Kitのセットアップは簡単で、付属のPCI-4_MGBキットを使用してプロトタイプをPCI ExpressケーブルでホストPCに接続し、HAPS-DX7のソケットにPHYドーターボードを装着するだけです。ホストPCにVDKソフトウェアをインストールすればシステムの準備は完了し、サンプルのLinuxをブートできます。

DesignWare Hybrid IP Prototyping Kitには、ARMのトラステッド・ファームウェア、UEFI、Linux、およびLinuxツール / ライブラリを含むオープンなエンベデッド・ファイル・システムのビルド済みイメージが付属します。さらに、上記のソフトウェア・コンポーネントのダウンロードおよびビルド・フレームワークもすべて含まれます。このため、ソフトウェア開発者はいくつものコミュニティ・サイトにアクセスしてreadmeファイルやダウンロード・ファイルを入手してインストールするという複雑な手順を踏まなくても、Linuxソフトウェア・スタックをすぐに編集して再ビルドできます。また、デバイス・ツリー・カーネル・コンフィギュレーション・ファイルが自動的に生成されるため、人手によるポーティングなしで任意のARMv8カーネルを実行できます。

デバッグは、業界を代表するデバッグ・ツールを使用して即座に実行できます。システム内の8つのプロセッサのそれぞれに1つまたは複数の組込みソフトウェア・デバッガを個別に接続するか、対称形マルチプロセッシング・デバッグ・モードで1つのデバッガをすべてのプロセッサに接続することができます。

デバッグは「Stop」モードで実行します。いずれか1つのデバッガによってターゲットが停止するとターゲット全体が停止します。この停止期間中、ターゲットのすべてのバーチャル・コンポーネント(すなわちVDK側のコンポーネント)のステートが停止します。このため、タイマーやウォッチドッグ・ペリフェラルのタイムアウト、あるいは割り込みの発生によってシステム・ステートが変化することがありません。ただしプロトタイプの物理側にはこの原則は適用されません。ターゲットの動作が停止中もHAPS-DXとドーターボードのクロックは動作を継続します。DesignWare Hybrid IP Prototyping Kitはドライバのデバッグが主な用途と考えられるため、デバッグ・シナリオ中にターゲットの状態が変化しないよう特に配慮されています。VDKの停止中、HAPS-DX上のデザインに対するデバッグ・アクセスを実行できます。図3は、PHYドーターボードのスロットに挿入したUSBメモリーからのビデオ再生中にUSB 3.0ホスト割り込みハンドラのデバッグを実行したようすを示したものです。

ドライバの開発およびテスト中に出現する問題やバグのほとんどは、個々のソフトウェア・スレッドではなく、より広い範囲でデバッグを行う必要があります。ユーザーレベルの不具合症状として現れる挙動をトレースしてソフトウェア関数内の根本原因をつきとめるには、テストベンチまたはアプリケーションなどのユーザーレベル・ソフトウェア・プロセス、ミドルウェア・ライブラリ、Linuxカーネル・ドライバ、ファームウェア関数、下層のハードウェア

(IP)など、さまざまなハードウェアおよびソフトウェア・コンポーネントの連携動作を理解する必要があります。ハードウェア / ソフトウェア間の同期および通信メカニズムは非常に高い柔軟性を備えています。ハードウェア割り込みがユーザーレベル・プロセスに到達するまでには、一連の重要なイベントを処理する必要があります。たとえば複数のARMv8例外レベルへ割り込みが伝播し、ドライバが周辺I/O経由でペリフェラルと通信することにより仮想化されたペリフェラルに対してMMU例外がトリガされ、カーネル・スケジューラとの協調によってユーザー・プロセスを復帰させます。

DesignWare Hybrid IP Prototyping KitのVP Explorer(図4)を使用すると、ソフトウェア開発者はスレッドレベルのソフトウェア・デバッグより広範囲のシステムレベルで、ハードウェアとソフトウェアの連携動作をデバッグできます。VP Explorerではソフトウェアとハードウェア(IP)のステータスをプローブしてインタラクティブなデバッグおよびトレースが可能で、ハードウェアとソフトウェアのイベントを関連付けて表示することでハードウェア / ソフトウェアのデバッグ生産性が向上します。VP Explorerを利用すると、バーチャル側のプロセッサおよびペリフェラルを深いレベルまで可視化できます。さらに、VP ExplorerではFPGAベースIP Prototyping Kit側のIPデザインの重要な要素についても可視性が得られます。

図2. ビデオ再生

17

図4. USBフラッシュ ドライブをマウント中のハードウェア / ソフトウェア トレース

Linuxスレッドのトレース

USB IRQハンドラのデバッグ

バス・アクセスとの相関

割り込みとの相関

HAPS-DX側からのUSB割り込み信号に対して

ヒットしたウォッチ・ポイントデバッグ・シナリオのスクリプト実行

HAPS-DXのUSBメモリーおよびレジスタの検査

詳細情報● ウェブページ:DesignWare Hybrid IP Prototyping Kit http://www.synopsys.com/JP2/IP/ip-accelerated/Pages/hybrid-ip-prototyping-kits.aspx

まとめ

一般に、ハードウェアとソフトウェアの統合デバッグでは細部にとらわれるのではなく、まずシステム全体の視点で問題を理解することが重要です。VP Explorerでは、システム実行を抽象化することでトップダウン型の根本原因解析(RCA)を実行できます。VP Explorerのトレース機能はLinuxに対応しているため、ソフトウェア開発者はユーザーレベルおよびカーネルレベルのさまざまなスレッドや割り込みハンドラ、さらにはLinuxカーネルのデバッグおよびverboseメッセージを追跡できます。

たとえば、Linuxのカーネル・パニック・メッセージでユーザーがメッセージを選択し、プロセスを特定して詳細へズームすると、マッピングされていないアドレスへソフトウェアが書き込みを実行してアボート例外が発生した位置をピンポイントで把握できます。ハードウェアの観点からは、IP Prototyping Kit内のHAPS-DX7インターフェイスの割り込みラインに対するウォッチ・ポイント、およびプロセッサのIRQ例外に対するウォッチ・ポイントを設定し、ファームウェアおよびカーネル・ドライバにおけるプロセッサの割り込み処理を追跡できます。統合デバッグではコンポーネント単位でデバッグを行うのではなく、一度にシステム全体を俯瞰できる必要があります。VP Explorerには、トレースの詳細レベルをソフトウェア・プロセスから信号、レジスタ、バス・トランザクションのレベルまで引き上げる機能があります。

HAPS-DX7上のデザインのメモリーマップド周辺レジスタは、VP Explorerから直接検査できます。ハードウェアに対してさらに深い可視性が必要な場合は、HAPS Deep Trace Debug(DTD)機能を利用できます。DTDはデバッグ用のサンプル・データを内部FPGAメモリーまたは最大8GBのオンボード拡張DDR3メモリーに格納する機能で、設定はHAPS ProtoCompiler DXで行います。デフォルトでは、Hybrid IP Prototyping KitはDesignWare IPのトレースおよび可観測性に必要な特定の内部信号をインストルメントしてビルドされています。ただし、どの信号をトレースするかは開発の必要に応じてHAPS ProtoCompiler DX RTL Instrumentorで変更できます。別の信号をインストルメントする場合も1つのファイルを編集するだけでよく、高い柔軟性を実現しています。このファイルは、ProtoCompiler DXでのコンパイル時の入力として使用するほか、HAPS-DX FPGAシステムで使用する新しいビルドの作成用としても使います。トリガ条件が発生すると、それまでにインストルメントしたすべての信号がただちに記録を開始し、選択したメモリー位置に格納されます。これを後で抽出して、Verdi、GTKWave、Discovery Visualization Environment(DVE)など標準のRTL波形ビューアで解析できます。

HAPS ProtoCompiler DX RTL Instrumentor(図5)には、コマンドライ

ン・モードのほか、メニュー形式で設定やコンフィギュレーションを直感的に行えるGUIモードもあります。どちらのモードも得られる出力と結果は同じです。

DesignWare Hybrid IP Prototyping KitにはDesignWare IPのソフトウェア開発に必要なハードウェアおよびソフトウェア・コンポーネントがすべて揃っています。DesignWare Hybrid IP Prototyping Kitは徹底的にテストされた完全実証済みのソリューションで、特定のDesignWare IPに向けたソフトウェア開発をすぐに開始していただけます。このプラットフォームを利用するとDesignWare IPのソフトウェア開発生産性がただちに向上し、IPをARMベースのソフトウェア・スタックに短期間で統合できます。DesignWare Hybrid IP Prototyping Kitには、DesignWare IPライセンシーがリファレンスIPコンフィギュレーションを短時間で変更し、プロトタイピング・キット上で再ビルドするために必要なリファレンス・デザイン、ドライバ、ツール、スクリプト・ファイルがすべて揃っています。さらに、このキットにはLinaro Linuxソフトウェア・スタック全体に対する完全なビルド環境も付属しており、ユーザーがカスタマイズしたDesignWare IPドライバを用いてソフトウェアをすぐに再ビルドできます。DesignWare Hybrid IP Prototyping KitはARM Cortexプロセッサ用の主要なサードパーティ・ソフトウェア・デバッグ・ツールをすべてサポートしているため、既存のソフトウェア開発フローにシームレスに組み入れることができます。Virtualizer VDKのVP ExplorerおよびHAPS-DXのDeep Trace Debug機能を利用すると、ソフトウェア開発者は強力なデバッグおよびトレース機能を活用して根本原因解析(RCA)を効率よく実行できます。このシステムは実機とほぼ同等の性能で動作するため、実際の広帯域I/Oを使用するテスト・シナリオにも対応できます。

図5. GUIモードのHAPS ProtoCompiler DX RTL Instrumentor

Support Q

&A

検証

編S

upport Q&

Aフ

ィジ

カル

編S

upport Q&

A論

理合

成編

New

s Release

ニュ

ース

リリ

ース

Industry TrendW

hat's New

in DesignW

are IP?

Custom

erH

ighlightTechnology U

pdate最

新技

術情

Linuxカーネル・メッセージの検査

Recommended