SystemCを利用したLSI設計の工程を追体験できる ―― 『C/C++によるVLSI設計―SystemCによるJPEGコーデック設計』
SystemCを利用したLSI設計の工程を追体験できる
大村正之,深山正幸 著
共立出版株式会社 刊
ISBN:4-320-12081-7
18.3×23.5cm
167ページ
3,200円(税別)
2003年11月(初版第1版)
本書は,JPEG処理を題材として,Cベース設計の開発フローを紹介しています.開発の流れとしては,まずC/C++のアルゴリズム・レベルから始まり,SystemCによるUTF(untimed functional)レベルやBCA(bus cycle accurate)レベルのモデリング,検証を行います.その後,ビヘイビア合成を経てFPGAに実装されます.
使用された4万行を超えるソース・コードは,序文で紹介されたURLからダウンロードできるようになっています.また,各サンプルにはMakefileやテスト用の画像データが用意されているので,本文を読みながらモデルの抽象レベルの変更やテストベンチの動作を実際に確認することができます.
6章の「動作合成概要」では,いくつかの市販ツールの比較などにも踏み込んで書いてほしかった気もしますが,ビヘイビア合成ツールは守秘義務契約に基づく範囲でしか使用できない場合が多く,書きたくても書けないのがつらいところなのかもしれません.「動作合成を成功させるためには」という節では,ビヘイビア合成ツールとつき合うときにたいせつな心がまえと,SystemCと組み合わせて使うことのメリットが述べられています.
7章ではJPEGコーデックの設計事例として,次のような項目について比較検討しています.
- アルゴリズムの比較
- 処理ビット長と画質の検証
- すべての処理をソフトウェアで実行した場合と,DCT(離散コサイン変換)演算部をハードウェアで実行した場合の規模とサイクル数の比較
ビヘイビア合成ツールとしては,米国Synopsys社の「CoCentric SystemC Compiler」を使用していますが,本書で紹介されているアルゴリズム記述は他社製のツールでも(部分的な変更は必要だが)合成可能なため,参考になると思います.
最後に,3章の「SystemC文法」のインスタンスの説明で,newを使用しない場合は「上位モジュールから下位モジュールのインスタンス内部へアクセスする方法がない」とありますが,以下のようにすると可能になります.ただし,評者も本書で推奨されているポインタによる方法を使用しています.
SC_MODULE(モジュール名){ 下位モジュール名 インスタンス名; SC_CTOR(モジュール名):インスタンス名("インスタンス名"){ |
鮫島正裕
設計コンサルタント