ソフトウェアの先行開発やマルチコアSoCの開発環境として注目を集めるVirtual Platformの解説書 ―― 『ESL Models and their Application: Electronic System Level Design and Verification in Practice』
ソフトウェアの先行開発やマルチコアSoCの開発環境として注目を集めるVirtual Platformの解説書
![]() |
『ESL Models and their Application: Electronic System Level Design and Verification in Practice』 |
2009年7月に米国カリフォルニア州San Franciscoで開催されたDAC(Design Automation Conference;設計自動化会議)のキーワードは「ESL」と「Low Power」でした.ESLはElectronic System Levelの略で,設計抽象度がRTL(Register Transfer Level)より高いレベルの設計手法や設計支援技術を指します.
日経マイクロデバイス(2010年1月号をもって休刊)のWebサイトの「マイクロデバイス用語」によると,ESLという単語が登録されたのは2005年4月1日です.この用語説明の中に「ESLという言葉は,EDA業界内では3~4年前から流通している」とあります.ということは,2002年~2003年ころにはESLという言葉が使われていたことになります.
2002年~2003年ころといえばSystemC v2.0がリリースされた後であり,SystemCのツールの出荷や言語教育が本格的になってきた時期です.また,LSI設計言語の普及推進団体であるAccelleraがSystemVerilogの標準化に取りかかった時期でもあります.
現在でもこのSystemCとSystemVerilogは,使われる領域は違うものの,EDA業界の中でそれぞれ重要な役割を果たしています.しかしESLというと,SystemVerilogというよりはSystemCというイメージがあります.それはなぜなのでしょう?
●ESLには主要な三つの領域がある
EDA(Electronic Design Automation)業界のアナリストとして有名なGary Smith氏は,2010年2月に米国カリフォルニア州San Joseで開催されたDVCon(LSIの設計・検証についての技術会議)のSystemC Dayの基調講演で,ESLの領域として次の三つを挙げています(かっこの中の数値はESL市場における割合).
- Virtual Platform (23%)
- Architect's workbench (21%)
- High Level Synthesis (14%)
Virtaul Platform(仮想プラットホーム)は,コンピュータ上に仮想のSoC(System on a Chip)を作り,そのSoC内のCPU上で実際のプログラム(診断プログラムやファームウェア,OS,デバイス・ドライバなど)を動かす環境です.この領域では,米国Synopsys社(旧CoWare社,旧VaST Systems Technology社),米国Carbon Design Systems社,英国Imperas社などがツールを提供しています.
Architect's workbenchは文字通りアーキテクトが作業するためのツールで,処理内容の検証やアーキテクチャの検討などに使用できます.この領域では,米国MathWorks社や米国Mentor Graphics社,フランスのCoFluent Design社などがツールを提供しています.High Level Synthesis(高位合成)は,C言語やC++,SystemCなどで表現された設計抽象度の高い記述を,RTLのHDL記述に変換するツールです.この領域では,米国Forte Design Systems社やMentor社,米国Cadence Design Systems社などがツールを提供しています.
●2冊の解説本が存在する
ESLについて詳しく知りたいときどうすればよいのでしょう?
「ESL Electronic System Level」をキーワードにしてGoogleで検索してみると,上位に以下の2冊の洋書がリストアップされます.
- ESL Design and Verification: A Prescription for Electronic System-Level Methodology(以下,ESL Design and Verification)
- ESL Models and their Application: Electronic System Level Design and Verification in Practice(以下,ESL Models and their Application)
ESL Design and Verificationは2007年3月に,ESL Models and their Applicationは2009年12月に出版されました.共に400ページを超える大作で,ESLに関する内容が盛りだくさんです.いずれの書籍も,著者としてBrian Bailey氏とGrant Martin氏の名が挙がっています.ただし著者がすべてを執筆したのではなく,Contributors(寄稿者.ESL Design and Verificationが11名,ESL Models and their Applicationが6名)が各章の執筆を担当したようです.
どちらの書籍を先に読むかは「何を知りたいか」によって意見の分かれるところですが,筆者はこの2年間でESL関連の技術が大きく変わったと感じているので,最近出版されたESL Models and their Applicationについて,見ていきたいと思います.
●全体はモデル関連とツール関連の2部構成
本書はタイトルにもあるように,ESLのモデルとその応用について解説しています.全体は2部構成になっています.
第1部では機能のモデリングや検証に使われているモデルや言語について説明しています.第1部は,第2部を理解するための基礎知識ととらえるとよいでしょう.第1部のページ数は全体の4割程度の172ページで,これだけでもちょっと薄めの書籍になる分量です.基礎知識といっても,第1部を読まないと第2部の各章について理解できないかというと,そうでもありません.各章の前半では必要な概念などをきちんと説明しています.各章で説明しているので,内容が重複していたり,微妙に表現が違ったりしているところで戸惑うこともあるかもしれません.
第1部についてもう少し詳しく見ていきましょう.1章ではESLの概要を,2章~4章ではモデルとその記述言語について説明しています.言語については,2章ではIP-XACT(XML)を,3章ではMATLABのM言語,C言語,C++,SystemC(TLM 2.0)を,4章ではSystemCとSystemVerilogを取り扱っています.「RTL言語はVerilog HDLとVHDL」,「機能検証用言語はSystemVerilogとe言語」というように,これまでは一つの領域に対して二つ程度の言語で事足りていました.これに対してESLではC言語やC++,SystemCが主な言語ですが,IP-XACT(XML)やM言語なども利用されています.
第2部の各章はツールに対する説明が中心となっています.5章や7章では一般的なVirtual Platformについて,6章ではプロセッサを中心としたVirtual Platformについて,8章ではVirtual Platformに必要なモデルの作り方について,9章ではVirtual Platformに接続するハードウェア部をRTLのHDLに変換するHigh Level Synthesisについて解説しています.扱っているツールは,5章がSynopsys社の「Innovator」,6章が米国Tensilica社の「Xtensa Explorer」,7章が米国Space CoDesign Systems社の「SpaceStudio」,8章がMentor社の「Vista」と「ModelBuilder」です.9章ではハードウェア・モデルに対するHigh Level SynthesisツールであるMentor社の「Catapult-C」を取り扱っています.