みんながシステム設計を気にする理由 ――システムLSI開発の視点から

山崎正実

tag: 組み込み 半導体

技術解説 2001年11月12日

●標準言語の候補が乱立

 現在の状況は,1990年代のHDL導入期よりも混沌としていると思います.HDLのときは,言語さえ決めれば設計スタイルはほぼ決まりました.一方,C/C++によるシステムLSIの設計では,C言語で一本化と思いきや,実際は言語仕様が少しずつ異なるさまざまな記述言語が林立しているような状況です.そして,これらの言語の記述スタイルはソフトウェア・プログラムのスタイルとも異なるため,ソフトウェア記述との統合についても課題を残しています(図6)

 ここで,C/C++でハードウェアを記述する際の問題点について説明しておきます.ANSIが規定しているC/C++はソフトウェア言語ですから,ハードウェアを記述するために必要な「並列動作」,「時間の概念」,「構造記述」といったものが含まれていません.つまり,C/C++を使うと決断しても,すぐにハードウェア設計を始められるわけではありません.例えばC/C++の教科書のどこを見ても,ハードウェア設計に必要不可欠な「ポート」の概念は出てきません.ポートをC/C++でどのように書くかは,別に定義しなければならないのです.

 システムLSIの設計にC/C++を使用するためには,システムをモデリングするためのルールやライブラリが必要になります.この部分が混沌としているため,さまざまなC/C++ベースの記述言語が生まれてきました.例えば,SystemCやSpecC,Superlogなどです.また,ANSI C/C++の文法をそのまま利用することを推奨しているEDAベンダもあります.これらはそれぞれ異なる言語と言っても差し支えないと思います.

 では,今後はどうなるのでしょうか? 正直に言って,筆者にも先のことはよくわかりません.しかし,フォーマル・ベリフィケーション・ツールなどの検証ツールや高位合成ツールがどこまで整備されるかが,言語普及のかぎになるのではないかと予測しています.

f06_01.gif
〔図6〕林立するシステム・レベル言語
SpecC,SystemC,Superlog,ANSI C/C++(拡張などをほどこさないC/C++)など,システム・レベル設計向けに,さまざまな言語が名乗りをあげている.

組み込みキャッチアップ

お知らせ 一覧を見る

電子書籍の最新刊! FPGAマガジン No.12『ARMコアFPGA×Linux初体験』好評発売中

FPGAマガジン No.11『性能UP! アルゴリズム×手仕上げHDL』好評発売中! PDF版もあります

PICK UP用語

EV(電気自動車)

関連記事

EnOcean

関連記事

Android

関連記事

ニュース 一覧を見る
Tech Villageブログ

渡辺のぼるのロボコン・プロモータ日記

2年ぶりのブログ更新w

2016年10月 9日

Hamana Project

Hamana-8最終打ち上げ報告(その2)

2012年6月26日