塚田 雄一 著
本書は、組込み開発におけるハードウェア技術者、ソフトウェア技術者の両者を対象にしています。
まずSystemCの基礎知識を紹介する1から3章では、ハードウェア技術者向けにC/C++の基礎知識、ソフトウェア技術者にはハードウェアの基礎知識をそれぞれ紹介しています。すでにご存知の部分については読み飛ばしてかまいません。また実際のSystemCプログラミングを紹介する4章以降では、SystemCでもHDL設計と同じ事が行える事をハードウェア開発者に把握していただけるように、取り扱う抽象殿レベルを1段階ずつ上げて行く構成になっています。
4章から7章までを順番に読み終えた後は、7章から4章へのトップダウン設計の考え方が理解できるでしょう。(本書まえがきより)
付録CD-ROMにVisual Studioのプラグインツール体験版を収録。手を動かしながら学べるSystemC入門書の決定版。Verilog/VHDLプログラマ、エンタープライズ系エンジニアに最適です。
第1章 SystemCの概要
1.1 組込み開発とシステム設計
1.1.1 システム設計の歴史
1.1.2 システムLSI開発の現状
1.1.3 システムLSI開発の将来
1.2 SystemCとは?
1.2.1 SystemCのアーキテクチャ
1.2.2 コードがハードウェアに実装されるまで
1.2.3 SystemCを使うメリット
1.2.4 SystemCをどのようにイメージすれば良いか?
1.3 システムLSI設計の基礎知識
1.3.1 回路設計の基礎知識
1.3.2 組み合わせ回路と順序回路
1.3.3 論理回路記号(MIL記号)
1.3.4 複数のゲート回路を構成する際の注意点
第2章 SystemCプログラミングの基礎
2.1 C/C++言語の基礎知識
2.1.1 基本的な構造
2.1.2 変数
2.1.3 制御コード
2.1.4 関数
2.1.5 大文字小文字が区別される
2.1.6 さまざまな変数の種類
2.1.7 インクルードには2種類ある
2.1.8 ソースファイル、ヘッダファイルを2つに分ける理由
2.2 SystemCのシステム構造
2.3 SystemCプログラムのファイル構成
2.4 開発ツールのインストール方法
2.4.1 SystemCの開発環境
2.4.2 開発ツールのインストール
2.4.3 インストール後の設定
2.4.4 SystemCプロジェクトの作成方法
第3章 はじめてのSystemCプログラミング
3.1 サンプル回路(AND回路)
3.1.1 はじめてのSystemCコード
3.2 ヘッダファイルのプログラミング
3.2.1 ポートの宣言
3.2.2 プロセスの宣言と登録
3.2.3 センシティビティの設定
3.3 ソースファイルのプログラミング
3.3.1 プロセス内部の処理を記述する
3.3.2 ポートアクセスの方法
3.3.3 演算子
3.4 メインファイルのプログラミング
3.4.1 シグナル宣言
3.4.2 モジュールインスタンス
3.4.3 ポートとシグナルを接続する
3.5 シミュレーションの方法
3.5.1 シミュレーションの開始と停止
3.5.2 トレースファイル
3.5.3 波形をトレースする
3.5.4 リターン値の設定方法
3.5.5 テストデータ作成方法
3.6 コードのシミュレーションを行なう
3.7 シミュレーション時の注意事項
第4章 RTLレベルのSystemCプログラミング(組み合わせ回路)
4.1 半加算器を使ったサンプル
4.2 半加算器回路を記述する
4.3 半加算器のコードを実行する
4.4 全加算器のコーディング方法
4.5 階層モジュールのコーディング方法
4.6 さまざまな組み合わせ回路
4.6.1 マルチプレクサの設計
4.6.2 その他の組み合わせ回路
4.7 複数のモジュールを接続する
4.7.1 デコーダ&エンコーダの設計
4.7.2 マルチプレクサ&デマルチプレクサの設計
4.8 複数プロセスのコーディング方法
4.8.1 複数プロセスの設計
第5章 RTLレベルのSystemCプログラミング(順序回路)
5.1 Dフリップフロップを使ったサンプル
5.1.1 Dフリップフロップのソースコード
5.1.2 SystemCでクロックを生成する
5.1.3 Dフリップフロップのコードを動作させる
5.1.4 初期設定を行なわない設定
5.2 リセット付きDフリップフロップ
5.2.1 同期リセット付きDフリップフロップ
5.2.2 非同期リセット付きDフリップフロップ
5.3 イネーブル付きDフリップフロップ
5.4 4ビットDフリップフロップ
5.5 さまざまな順序回路
5.5.1 カウンタ回路
5.5.2 シフト回路
5.5.3 ナイトライダー
5.6 組み合わせ回路と順序回路の混在
第6章 BCAレベルのプログラミング
6.1 BCAレベルのプログラミングの特徴
6.1.1 クロック同期スレッド(CTHREAD)モデル
6.1.2 BCAレベルのシステム構成
6.2 8ビットデータ信号送信モジュールの作成
6.2.1 SystemCコードの紹介
6.2.2 ヘッダファイル
6.2.3 ウォッチング宣言
6.2.4 ソースファイル
6.3 8ビットデータ信号受信モジュールの作成
6.3.1 2つの回路を同期させるための送信モジュールを変更する
6.3.2 16個のデータを受信する
6.3.3 送信回路&受信回路の設計
6.3.4 ウォッチング処理(リセット)の設計
第7章 TLMレベルのSystemCプログラミング
7.1 TLMモデルとは?
7.1.1 TLMの時間概念とは
7.1.2 TLMのシステム構成
7.1.3 チャネル
7.1.4 イベント
7.1.5 バッファ
7.1.6 FIFO
7.1.7 TLMでサポートされているポート
7.2 サンプルモデルの作成
7.2.1 送信モジュールのヘッダファイル
7.2.2 ソースファイル
7.2.3 メイン(cs_main)ファイル
7.2.4 サンプルの実行
7.3 Timed Functionモデル
7.3.1 時間精度を記述する 7.3.2 実行時の動作タイミング
7.4 イベントを使ったサンプル
7.4.1 3つのプロセスを同期する
7.4.2 サンプルを実行する
第8章 THREADモデルからのトップダウン設計
8.1 抽象度の異なるモデルの混在シミュレーション
8.1.1 トランザクタを追加する
8.1.2 THREADとCTHREAD混在モデル
8.2 インターフェースを使用した階層化チャネル
8.2.1 FIFOチャネルを階層化チャネルに変更する
8.2.2 階層化チャネルのヘッダファイル
8.2.3 階層化チャネルのソースファイル
8.2.4 階層化チャネルへのアクセス方法
8.2.5 階層化チャネルのサンプルを実行する
8.2.6 トップダウン設計を行なう
第9章 SystemCを使用して開発効率を上げるヒント
9.1 ハードウェア設計者へのヒント
9.2 ソフトウェア設計者へのヒント
9.3 システム設計者へのヒント
9.4 UMLへの取り組み
9.5 ハード/ソフト協調設計
内容についてのお問い合わせは、正誤表、追加情報をご確認後に、お送りいただくようお願いいたします。
正誤表、追加情報に掲載されていない書籍内容へのお問い合わせや
その他書籍に関するお問い合わせは、書籍のお問い合わせフォームからお送りください。
本書の書影(表紙画像)をご利用になりたい場合は書影許諾申請フォームから申請をお願いいたします。
書影(表紙画像)以外のご利用については、こちらからお問い合わせください。