「性能は高いが,設計は難しそう」だと言われることが多い,英ARM Ltd.の最新オンチップ・バス「AMBA AXI(AMBA3)」。その設計を支援するEDAツールをARM自身が,「AMBA Designer」として製品化している(ニュース・リリース,同日本語訳)。ARMの同製品の担当者が来日したのを機に,同製品の機能などについて聞いた。
AMBA Designerでは,AMBAバスの設計(構成の指定)と性能検証,そしてインプリメンテーション用のRTLデータの生成ができる。この際,ARMが提供しているAXIバスのIPコア(Configurable InterconnectまたはAMBA Bus Matrix)を利用する。別の言い方をすると,AXIバスのIPコアを特定のSoC用にカスタマイズするためのツールがAMBA Designerである。
現在,ARMはAXIバスのIPコア(Configurable Interconnect)として「PL300」を提供している(Tech-On!関連記事1)。AMBA Designerの発売に合わせて,PL300よりカスタマイズの余地が大きいIPコア(AMBA Bus Matrix)を提供する(なお,PL300はAMBA Designerの適用対象外である)。その第1弾は「PL301」である。「PL301は高速なバスを指向した製品。今後,低消費電力指向や小チップ面積のAMBA Bus Matrixも製品化する予定である」(ARM Fabric IP Division Marketing Managers,Ben Cade氏)。
AMBA DesignerはARMが2004年8月に買収を発表した米Axys Design Automation, Inc.の技術(Tech-On!関連記事2)をベースに開発された。ARMはAxysの技術をベースにしたSoCのトランザクション・レベル設計・検証システムとして「SoC Designer」を提供している(Tech-On!関連記事3)。今回のAMBA DesignerとSoC Designerは「機能的に重複する部分もあるが,別々の製品として提供する」(Cade氏)。なお,AMBA Designerでシミュレーションを実行して,性能検証をするには,「MaxLib」と呼ぶシミュレーション用のモデル・ライブラリが必要である。
AMBA Designerの使い方は以下の通りである。まず,バスの構成をグラフィカルに指定する。設計対象になっている「バス」のアイコンの周囲に,ジェネリックな「マスター」と「スレーブ」のアイコンを必要な数だけ置く。ジェネリックなアイコンにパラメータを設定するなどして,特定のSoC向けにカスタマイズする。ARMが提供している周辺回路IPコアやプロセサ・コアの場合は,AMBA Designerのメニューから選びドラッグ&ドロップすることで,カスタマイズの作業が軽減される。ユーザー独自設計のブロックは,その動作をSystemCで記述することで,AMBA Designerの設計/検証環境にインポートできる。
シミュレーションは基本的にサイクル・ベースのシミュレーションで,各種性能が見積もれるようになっている。シミュレータとは別に結果の解析機能があり,パイプラインの稼働状況やキャッシュの利用状況などがビジュアライズされる。各種性能に問題がなければ,バスの部分のインプリメンテーション用に,RTLのHDL記述やスクリプト,検証用テストベンチが,SPIRIT1.1に準拠する形で出力される。
具体的な金額は示されなかったが,AMBA Designerでシミュレーションする範囲では,各IPコアのモデルのライセンス料は,インプリメンテーションする場合に比べて,「そうとう安価だ」(Cade氏)という。「AMBA Designerでさまざまな構成を試してもらい,ベストな構成でインプリメンテーションしてもらうことを狙っている」(同氏)。なお生成されたRTLのHDLコードなどをインプリメンテーションに使う場合は,シミュレーションとは価格体系が異なるライセンス料/ロイヤルティがかかる。
ARMは今回の製品を提供するに当たり,「Fabric IP Division」という部門を設立した。Cade氏もそこの所属である。同部門では,バスやバス周りのデータ転送のIPコア,およびその設計ツールなどを扱う。