改訂版EDA用語辞典とは・著者一覧

 プラットフォーム・ベース設計とは,「プラットフォーム」を出発点にしてLSIを設計することをいう。プラットフォームでは,LSI設計の基本的な部分が決まっている。例えば,バス・アーキテクチャなどのチップの基本構造や,その基本構造に設計(回路部品やソフトウェア部品など)を追加するためのインタフェースが定められている。特定のアプリケーション向けのプラットフォームでは,そのアプリでよく使う回路部品やソフトウェア部品などが組み込まれている。

 プラットフォーム・ベース設計のメリットは,一から(スクラッチから)設計するのに比べて設計期間が短く,検証の負荷が小さいことである。プラットフォームに回路部品やソフトウェア部品などが組み込まれていれば,ユーザーはその部分については設計や検証がほとんど要らない。

四つの要素から成る

 一般によく使われているLSI設計のプラットフォームの構成要素は,次の四つに分類できる(図1)。

【図1 プラットフォームの例】出典はコーウェア。
【図1 プラットフォームの例】出典はコーウェア。 (画像のクリックで拡大)

(1)低速・狭バンドの回路部品。この部品は比較的低速で動作し,プロセサ・コアとのデータ転送量も少ない。さまざまなアプリケーションで共通に使えることが多い。

(2)高速・広バンドの回路部品。プロセサ・コアと同程度の高いクロック周波数で動作する。この部品と,プロセサ・コアやメモリー・サブシステムとの間とのデータ転送量は大きい。

(3)インタコネクト。回路部品間のデータを伝送するチャネル。チャネルの本数や構造によって,LSI全体のハードウェア性能は大きく変わる。

(4)プログラマブルな回路部品あるいはソフトウェア部品。プロセサ・コアやDSPコアなどと,それらの上で稼働するソフトウェア部品。

 なお上述した回路部品は,IP(intellectual property)コアとも呼ばれる。

必要な部品は新規に開発

 プラットフォーム・ベース設計は,次のような手順で進む。

(a)プラットフォームや回路部品の最適化

まず,使うプラットフォームや回路部品を最適化する。例えば,チップの目標仕様に対してオーバスペックになっていないかを検討していく。具体的には,インタコネクトやメモリー・サブシステムの速度やバンド幅を見て,最適化する。

(b)新規追加部品の開発と検証

用意されたプラットフォームでは目標仕様を満たせない場合は,新規に部品を開発する。回路部品や,プロセサ/DSPコアで稼働するソフトウェア部品,あるいはその両方を開発し,部品単位で検証する。

(c)プラットフォーム全体の検証

プラットフォームに新規に部品を追加したときは,更新されたプラットフォーム全体の機能や性能を検証する。

用途や工程別のプラットフォーム

 開発するLSIが複雑になるにつれて1種類のプラットフォームだけでは,チップ開発に携わる全設計者,全開発工程で利用するのが難しくなっている。実際,開発の現場では,特定の工程や設計者に向けたプラットフォームなど,さまざまタイプのプラットフォームが使われている。ここでは,そのうち,次の四つを紹介する。(i)「ハード設計向けプラットフォーム」,(ii)「ハード・ソフト協調設計・検証向けプラットフォーム」,(iii)「ファーム開発向けプラットフォーム」,(iv)「アプリ・ソフト開発向けプラットフォーム」である。以下でそれぞれを説明する。

(i)ハード設計向けプラットフォーム

 LSI設計向けのプラットフォームとしては,最も一般的である。精度の高い論理シミュレーションをサポートしており,ハードウェア設計者に向けた性能評価が可能である。このプラットフォームの回路部品は,HDL(hardware description language)で記述されていることが多い。

 最近は,ハード設計者向けのプラットフォームにESL(electronic system level)技術を使うケースが出てきた。例えば,プロセサ・コアはクロック・サイクル精度のISS(instruction set simulator)を使う。また,インタコネクト(バス)や回路部品はトランザクション精度あるいはクロック・サイクル精度(RTLとほぼ等価)でモデル化する。

 このプラットフォームでは,論理シミュレーションの速度は遅いが,精度を重視している。これで,設計に潜む性能のボトルネックを発見したり,データ量やデータの流れなどを細かく観測できるといった利点がある。なお,論理シミュレーションを高速化するために,論理エミュレーションを利用する場合もある。

 また,特定の部品の検証では,プラットフォーム全体ではなく,一部のみを使うことで,検証時間を短縮できる場合が多い。

(ii)ハード・ソフト協調設計・検証向けプラットフォーム

 サンプル・チップが載った評価用のボードを置き換えることを狙ったのが,ハードウェア-ソフトウェア協調検証向けプラットフォームである。サンプル・チップの代わりに,ESL技術を使ったモデルを使うことで,チップの開発の早期段階で,ハードとソフトの連携動作の確認などを行なえる。

 このプラットフォームでは,モデリングにSystemCなどのシステム・レベル記述言語を使うことが一般的である。プロセサ・コアはISS,バスや部品はトランザクション・レベル(時間記述なしのモデル,または概略時間精度モデル)を使う。

(iii)ファーム開発向けプラットフォーム

 ハード・ソフト協調設計向けプラットフォームの派生版と言える。ハード・ソフト協調設計向けでは,システム全体をモデル化していたが,RTOSやデバイス・ドライバ,ミドルウェアなどのファームウェアの開発に向けたプラットフォームでは,対象のファームの検証に必要な部分だけをモデル化してある。

 例えば,RTOSのポーティングの検証向けプラットフォームでは,プロセサ・コア,メモリー,タイマーなどで構成したプラットフォームを使う。

(iv)アプリ・ソフト開発向けプラットフォーム

 アプリケーション・ソフトウェア開発向けのプラットフォームは,ソフトウェア・スタックとも呼ばれる。RTOSやデバイス・ドライバ,ミドルウェアなどのファームのモデルなどからなり,ハードとは独立した形でアプリケーション・ソフトの開発や検証ができる。

 上述した(i)~(iii)のプラットフォームは,LSIメーカーが提供することが多いが,このアプリケーション・ソフト向けのプラットフォームは,機器メーカーやOSメーカーなどが整備している。最近では,米Google, Inc.の携帯電話機のアプリケーション・ソフト開発向けプラットフォーム「Android」が話題になった。