目次

Cレベル設計の良いとこ悪いとこ

  • Cレベル設計の良いところ
    	◎シミュレーションが非常に速い
    	◎Cで書いたアルゴリズムからHWにするのが楽
    	◎別のアルゴリズム、アーキテクチャへの「what if」検証もしやすい
    	◎
  • Cレベル設計の悪いところ
    	×面積効率・速度がHDLに比べ、大きく劣る
    	×どの言語がスタンダードとなるかわからない

Cレベル設計言語いろいろ

  • System C
    	・ASIC用
    	・C++(オブジェクト指向、テンプレート、動的メモリ割り当て)
    	・クラスライブラリとして拡張
    	・クラスライブラリとシミュレーションカーネルを持つ
    	・HWを書くとき、SystemCは"structual cell"として扱われる
    	・基本セルはモジュール
    	・モジュールはモジュールを内包する。並列実行
    	・モジュール間通信はポートを用いた1対1
    	・ユーザは、単にクラスと関数を呼ぶだけで、その実装について考慮する必要はない
    	・100倍程度高速なシミュレーション
    	×インプリメンテーション「インテリジェンス」をコード内にHWとして記述しなければならない。つまり、ターゲット依存となって移行が大変
    	×擬似タイムド構成が馴染みが無く、非常に複雑
    	・デザインフローに関して
    	・システムレベルからRTL、SWからHWの全てがSystemCで書ける
  • ImpulseC
    	・FPGA用
    	・C、関数ライブラリ、コンパイラ、デバッガ(ImpulseC Acceraleted Systems社)
    	・プロセスの集合
    	・SWとHWの接続はストリーム、シグナル、メモライザーで行う
    	・コンパイラが命令スケジューリング、循環パイプライン、展開が行える(?)
    	・#pragmaで色々な最適化を行ったコンパイルが行える
    	・
  • SpecC
    	・Cの拡張、構文(シンタックス)、データの意味(セマンティクス)を組み込み用にしたもの
    	・その他HW開発に必要な並列実行や、ビヘイビアを要約した
    	・システムレベル設計、合成とシミュレーションに長所を持つ
  • Catapult C
    	・ASIC用。C++。最近熱いらしい
  • Comparision of several SLDLs and C/C++
    Available FeatureSystemCImpulse CSpec C
    behavioral hierarchy  ○  ○
    structual hierarchy  ○  ○
    concurrency  ○  ○
    exception handling  ○  ○
    timing  ×  ○
    state transitions  ×  ○
    composite data types×  ×  ×
  • 普通のCコードからHWを意識したCにする流れ
    	+C1:機能アルゴリズムだけを考えたふつーのCプログラミング
    	+C2:C1に対し、処理の関数かやビット幅の明確化などを行う
    	+C3:HWアーキテクチャのん実装/制約に関わる変更を加える

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2023-12-29 (金) 10:20:37