よくわかるSystemCによるシステムデザイン入門
2005年4月15日紙版発売
並木秀明,後閑哲也,片岡忠士 著
B5変形判/440ページ/CD1枚
定価4,048円(本体3,680円+税10%)
ISBN 4-7741-2333-1
ただいま弊社在庫はございません。
書籍の概要
この本の概要
本書は,C++ベースのハードウェア記述言語であるSystemCを使ってハードウェア設計を行うための入門書です。
ソフト・ハードの協調設計にこれから挑戦したいという方には好適な1冊です。本書掲載の全ソースリスト,論理合成結果を収録したCD-ROM付き。
こんな方におすすめ
- 初級ハードウェア技術者
- C言語の知識があって,ハードウェア設計に興味のある人
目次
第1章 SystemCによるシステム設計
- 1-1 ハードウェアとソフトウェア
- 1-1-1 コンピュータ導入によるハードウェアの設計
- 1-1-2 システムの設計
- 1-2 システムレベル設計言語SystemC
- 1-2-1 SystemC言語のアーキテクチャ
- 1-2-2 SystemCによる開発環境
- 1-2-3 SystemCによるハードウェア/ソフトウェア協調設計
第2章 SystemCの開発環境設定
- 2-1 SystemCで開発するプロジェクトのファイル構成
- 2-2 SystemCの入手
- 2-2-1 ログインアカウントの取得
- 2-2-2 SystemCのダウンロード
- 2-3 UNIX系環境におけるSystemCの開発環境
- 2-3-1 Cygwinへのインストール
- 2-3-2 Cygwin上でのSystemC環境設定
- 2-3-3 新規プロジェクトのコンパイルと実行
- 2-4 波形のトレース
- 2-4-1 GTKWaveのダウンロード
- 2-4-2 GTKWaveのインストール
- 2-4-3 GTKWaveの動作確認
- 2-4-4 GTKWaveの使用例
- 2-5 Visual C++ 6.0によるSystemCの開発環境
- 2-5-1 SystemCのダウンロードと解凍
- 2-5-2 SystemCライブラリの作成
- 2-5-3 新規プロジェクトのビルドと実行
- 2-5-4 波形ビューアの利用
- 2-6 Visual C++ .NETによるSystemCの開発環境
- 2-6-1 SystemCのダウンロードと解凍
- 2-6-2 SystemCライブラリの作成
- 2-6-3 新規プロジェクトのビルドと実行
- 2-6-4 波形ビューアの利用
- Column 設定に関するQ&A
第3章 SystemCによる回路記述 (1)組み合わせ回路
- 3-1 SystemCによる回路記述
- 3-1-1 ディジタル回路の基礎
- 3-1-2 システムの構成とSystemCファイル書式
- 3-2 単一構成システムの記述
- 3-2-1 ヘッダファイルの記述
- 3-2-2 インプリメンテーションファイルの記述
- 3-2-3 記述の具体例
- 3-2-4 データ型と演算子
- 3-2-5 記述の具体例
- 3-2-6 フロー制御関数
- 3-3 複数プロセスシステムの記述
- 3-3-1 ヘッダファイルの書式
- 3-3-2 インプリメンテーションファイルの記述
- 3-3-3 プロセスの同時並行処理とデルタ遅延
- 3-3-4 プロセス型とイベント同期
- 3-3-5 具体例
- 3-4 子モジュールを含む構成の記述(階層モジュール)
- 3-4-1 ヘッダファイルの記述
- 3-4-2 全加算器の例
- 3-5 システムファイルの記述方法
- 3-5-1 システムファイルの基本書式
- 3-5-2 システムファイルの具体例
- 3-5-3 シミュレーションの記述方法
- 3-5-4 シミュレーション入力信号の記述方法
- 3-5-5 シミュレーション記述例
第4章 SystemCによる回路記述 (2)順序回路
- 4-1 フリップフロップとクロック
- 4-1-1 クロック信号の書式
- 4-1-2 フリップフロップの記述
- 4-2 レジスタとリセット
- 4-2-1 レジスタとリセットの設計
- 4-2-2 シフトレジスタと連接演算子
- 4-3 カウンタとパラメタライズ
- 4-3-1 バイナリカウンタ
- 4-3-2 N進カウンタとパラメータ化
- 4-3-3 プリセット付きN進同期カウンタ
- 4-3-4 カウンタの階層設計
第5章 インターフェースとチャネル
- 5-1 チャネルの基本概念
- 5-1-1 チャネルの基本要素
- 5-2 プリミティブチャネルの使い方
- 5-2-1 プリミティブチャネルの構成
- 5-2-2 プリミティブチャネルの種類
- 5-2-3 sc-bufferの使い方
- 5-2-4 sc-fifoの使い方
- 5-3 階層チャネルの使い方
- 5-3-1 複数モジュール構成のシステムの書式
- 5-3-2 インターフェースの書式
- 5-3-3 チャネルの記述
- 5-3-4 チャネルの使い方
- 5-4 階層チャネルの例
- 5-4-1 動作の流れ
- 5-4-2 階層チャネルを使った記述
第6章 SystemCによるシステム設計
- 6-1 時計の仕様
- 6-2 32768[Hz]のクロック信号
- 6-3 カウンタの基本動作
- 6-3-1 2進カウンタ
- 6-3-2 非同期式4進アップカウンタ
- 6-3-3 同期式4進アップカウンタ
- 6-3-4 非同期式32768進アップカウンタ
- 6-3-5 同期式32768進アップカウンタ
- 6-4 時計のブロック図
- 6-4-1 ブロック図の説明
- 6-4-2 時計数カウンタのBCD補正
- 6-5 スタティックドライブ方式とダイナミックドライブ方式
- 6-5-1 スタティックドライブ方式
- 6-5-2 ダイナミックドライブ方式
- 6-5-3 ダイナミックドライブ方式のタイムチャート
- 6-6 ストリーク現象
- 6-6-1 ストリーク現象の原因
- 6-6-2 ブランキング信号の生成
- 6-7 ダイナミックドライブ方式の回路図
- 6-8 セグメントの周辺回路
- 6-8-1 アノードコモンとカソードコモン
- 6-8-2 カラムスイッチの動作
- 6-8-3 セグメントスイッチの動作
- 6-8-4 ダイナミックドライブ方式の動作
- 6-9 内部リセット信号
- 6-10 SystemCによるRTL記述
- 6-10-1 32768進カウンタ
- 6-10-2 10進カウンタ,6進カウンタ,24進カウンタ
- 6-10-3 7セグメントデコーダ
- 6-10-4 16進→BCDコンバータ
- 6-10-5 セレクタ
- 6-10-6 カラムデコーダ
- 6-10-7 ブランキング信号の生成
- 6-10-8 内部リセット信号の生成
- 6-10-9 時計モジュール(トップモジュール)のヘッダファイル「myclock.h」
- 6-10-10 時計モジュール(トップモジュール)のインプリメンテーションファイル「myclock.cpp」
- 6-11 シミュレーション
- 6-11-1 とりあえずシミュレーションした結果
- 6-11-2 各モジュールの信号に初期値を設定したシミュレーション
- 6-12 テスト機能を搭載したシミュレーション
- 6-13 SystemCの各記述と抽象度
- 6-14 sc_signalチャネルによるBCA記述
- 6-14-1 テストベンチ「main_myclock_bca.cpp」
- 6-14-2 モジュールA(計数モジュール)「myclock_cnt_bca.h」,「myclock_cnt_bca.cpp」
- 6-14-3 モジュールB(表示モジュール)「myclock_disp_bca.h」,「myclock_disp_bca.cpp」
- 6-14-4 静的センシティビティと動的センシティビティ
- 6-14-5 シミュレーション結果
- 6-15 sc_bufferチャネルによるTF記述
- 6-15-1 テストベンチ「main_myclock_tf.cpp」
- 6-15-2 モジュールA(計数モジュール)「myclock_cnt_tf.h」,「myclock_cnt_tf.cpp」
- 6-15-3 モジュールB(表示モジュール)「myclock_disp_tf.h」,「myclock_disp_tf.cpp」
- 6-15-4 モジュールA(計数モジュール)とモジュールB(表示モジュール)の動作確認
- 6-15-5 シミュレーション結果
- 6-16 sc_bufferチャネルによるTF記述で「表示部→計数部アクノリッジ」を省略
- 6-17 sc_bufferチャネルによるUTF記述
- 6-18 sc-fifoチャネルによるUTF記述(ノンブロッキング・アクセス)
- 6-18-1 テストベンチ「main_myclock_utf_fifo_nblk.cpp」
- 6-18-2 モジュールA(計数モジュール)「myclock_cnt_utf_fifo_nblk.h」,「myclock_cnt_utf_fifo_nblk.cpp」
- 6-18-3 モジュールB(表示モジュール)「myclock_disp_utf_fifo_nblk.h」,「myclock_disp_utf_fifo_nblk.cpp」
- 6-19 sc_fifoチャネルによるUTF記述(ブロッキング・アクセス)
- 6-19-1 テストベンチ「main_myclock_utf_fifo_blk.cpp」
- 6-19-2 モジュールA(計数モジュール)「myclock_cnt_utf_fifo_blk.h」,「myclock_cnt_utf_fifo_blk.cpp」
- 6-19-3 モジュールB(表示モジュール)「myclock_disp_utf_fifo_blk.h」,「myclock_disp_utf_fifo_blk.cpp」
第7章 論理シミュレータおよび論理合成ツール
- 7-1 シミュレーションおよび論理合成の手順
- 7-2 Visual Eliteの使い方
- 7-2-1 入手方法
- 7-2-2 インストール
- 7-2-3 ライセンスファイルの登録
- 7-2-4 起動と初期設定
- 7-2-5 ライブラリ作成
- 7-2-6 SystemCによる設計
- 7-2-7 Verilogファイルへの変換
- 7-3 ISE WebPACKの使い方
- 7-3-1 ISE WebPACKの概要
- 7-3-2 入手方法とインストール
- 7-3-3 開発の方法
- 7-3-4 プロジェクトの作成
- 7-3-5 論理合成の実行
- 7-3-6 ピン配置設定
- 7-3-7 書込みと動作確認
- 7-4 Precision Synthesisによる論理合成
- 7-4-1 入手方法および評価ライセンスの取得
- 7-4-2 論理合成作業の流れ
- 7-4-3 RTL Schematicの表示
- 7-4-4 Technology Schematicの表示
- 7-4-5 Area Reportの表示
- 7-4-6 論理合成オプションの指定
第8章 C++入門
- 8-1 C++の基礎知識
- 8-1-1 オブジェクト指向とは
- 8-1-2 C++プログラムの構成
- 8-1-3 クラス
- COLUMN メンバ変数とメンバ関数
- 8-1-4 クラスの設計
- COLUMN ストリームIO
- 8-1-5 クラスを使う
- COLUMN インスタンス化とは
- 8-1-6 アクセス制御
- 8-1-7 コンストラクタとデストラクタ
- 8-1-8 継承と派生
- COLUMN 定数引数の多重定義
- 8-1-9 テンプレート
- 8-2 SystemCによる回路機能の記述
付録
- CD-ROMについて
索引
この本に関連する書籍
-
改訂新版 ディジタル回路とVerilog HDL
ハードウェア記述言語「Verilog-HDL」について,ディジタル回路の基本から懇切丁寧に解説した書籍の改訂版。長年ご支持いただいた本書について,新たな技術,ソフト入手...
-
【実践】C言語による組込みプログラミングスタートブック
ソフトウェアエンジニアにとって,「組込み」の敷居が低くなってきています。本書は,ソフトウェアエンジニアのための「組込み」プログラミングの入門書です。付属のDVD...
-
改訂版 VHDLによるディジタル回路入門
本書は,ディジタル回路と回路設計のハードウェア記述言語VHDLを基礎から学んでいきます。ディジタル回路の概念から組み合わせ回路・順序回路・演算回路の動作原理・設...
-
実用入門 ディジタル回路とVerilog HDL
本書では回路設計のハードウェア記述言語Verilog-HDLを用いて,ディジタル回路を基礎から学んでいきます。ディジタル回路をはじめて学ぶ方,Verilog-HDLをはじめて学ぶ...