回路図で学べるFPGA入門 回路図は読める人のためのHDLガイド
工場で生産されるLSIは、製造には何日もかかり費用も莫大なものでした。しかし、FPGAがあれば、パソコン1台で任意の回路を瞬時に作ることができます。本書は、ディジタル回路にはじめて触れる初心者を対象に、回路図の設計手法を、VHDLおよびVerilog HDLと比較しながらわかりやすく解説します。また、ディジタル回路の基礎知識を知りたい人や、これまで回路図で設計されていた人がHDLへ移行するときの参考としても最適な内容です。
【サポートはこちら】→https://www.shuwasystem.co.jp/support/7980html/4589.html
【サポートはこちら】→https://www.shuwasystem.co.jp/support/7980html/4589.html
第1章 FPGA
1.1 FPGAとは
1.2 組み込みシステム
1.2.1 パソコンとの差が無くなった?
1.2.2 実装効率の問題
1.3 集積回路
1.3.1 いろいろな部品をまとめたもの
1.3.2 市販のICの例
1.3.3 本当に部品を集めて作れるのか?
1.3.4 ディスクリート部品で作れない理由
1.3.5 何故書き換えられるのか?
1.3.6 SRAM型FPGAの構造
1.3.7 設計がそのまま製造となる
1.3.8 実際の製品にも組込まれている
第2章 開発準備
2.1 開発に必要なもの
2.1.1 パソコンと開発ソフト
2.1.2 FPGAボード
2.1.3 ダウンロードケーブル
2.2 FPGAボード
2.2.1 Digilent社製 Basys2
2.3 ダウンロードケーブル
2.3.1 Xilinx社製 Platform USB (DLC9)/USB II (DLC10)
2.3.2 Digilent社製 XUP USB-JTAG
2.4 開発にあると便利なもの
2.4.1 論理回路シミュレータ
2.4.2 ロジック・アナライザ
2.4.3 オシロスコープ
2.5 ISE WebPACK
2.5.1 開発の全体像
2.5.2 プログラム構成と概要
2.5.3 インストール
第3章 回路図エディタによる設計
3.1 回路設計
3.1.1 スイッチとLEDを繋ぐ回路
3.1.2 新規プロジェクトの作成
3.1.3 回路図シートの作成
3.1.4 I/Oバッファの配置
3.1.5 各シンボルの内容について
3.1.6 配線
3.1.7 I/Oパッドの追加
3.1.8 タイトルやコメントの追加
3.1.9 エラーチェック(インプリメンテーション)
3.2 ピン・アサイン
3.2.1 UCFの作成
3.2.2 UCFの構文
3.3 論理合成とインプリメンテーション
3.3.1 インプリメンテーションの実行
3.3.2 ピンの確認
3.4 ダウンロード
3.4.1 BAYSY2の場合
3.4.2 Xilinx社純正のダウンロードケーブルを使用する場合
3.4.3 iMPACTの起動
3.4.4 チェーンの初期化
3.4.5 ビットファイルの選択
3.4.6 ダウンロードの開始
3.4.7 実装結果
第4章 ハードウェア記述言語による設計
4.1 HDL
4.2 回路設計
4.2.1 新規プロジェクトの作成
4.2.2 HDLモジュールの作成とプロジェクトへの追加
4.2.3 作成されたHDLコード
4.2.4 回路の記述
4.3 論理合成?FPGAへのダウンロードまで
4.3.1 インプリメンテーションによるエラーチェック
4.3.2 ピン・アサイン(既存のUCFの適用方法)
4.3.3 ダウンロード
第5章 基本回路
5.1 論理素子
5.1.1 NOTゲート
5.1.2 ANDゲート
5.1.3 ORゲート
5.1.4 XORゲート
5.1.5 NANDゲート
5.1.6 NORゲート
5.1.7 XNORゲート
5.2 組み合わせ回路
5.2.1 全ての基本となるNANDゲート
5.2.2 HDLの3つの記述方法
5.2.3 マルチプレクサ
5.2.4 デコーダ(デマルチプレクサ)
5.2.5 比較器(コンパレータ)
5.2.6 大小比較器(マグニチュード・コンパレータ)
5.2.7 加算回路
5.2.8 減算回路
5.3 順序回路
5.3.1 RSフリップ・フロップ
5.3.2 Dフリップ・フロップ
5.3.3 クロック
5.3.4 トグル・フリップ・フロップ
5.3.5 クロック・イネーブル
5.3.6 セット/リセット
5.3.7 クロック・イネーブル/セット/リセット付きトグル・フリップ・フロップ
5.3.8 完全同期式回路
5.3.9 シフトレジスタ
5.3.10 カウンタ
第6章 論理シミュレータ(ISim)
6.1 シミュレーションの目的
6.2 シミュレーションする回路について
6.3 入力信号の設定
6.3.1 特定の値に固定する場合
6.3.2 周期信号にする場合
6.4 シミュレーションの実行
6.4.1 指定時間分の実行
6.4.2 バス信号に対する操作
6.4.3 波形の拡大/縮小
6.4.4 カーソル/マーカ操作
第7章 応用回路I
7.1 LED点滅回路
7.1.1 N進カウンタ
7.1.2 外部同期機能の追加
7.2 スイッチ入力の回路
7.2.1 チャタリングとは?
7.2.2 外部アナログ・フィルタによるもの
7.2.3 RS-FFによるもの
7.2.4 D-FFによるもの
7.2.5 メタステーブル
7.2.6 複雑なチャタリング・ノイズへの対応
7.2.7 タイマを用いたマスクによるもの
7.3 非同期式回路から同期式回路への変換
7.3.1 微分回路
7.3.2 非同期式回路から同期式回路への変換例(スイッチを押した数を数える回路の例)
7.4 タイマ
7.4.1 タイマ回路
7.5 初回のパルス伝達を無効にする回路
第8章 シーケンサ
8.1 ルーブ・ゴールドバーグ・マシン
8.2 トリガ
8.2.1 トリガ駆動型モジュール
8.2.2 トリガ駆動型モジュールの実例
8.3 最も簡単なシーケンサ
8.4 ステート・コントローラ
8.4.1 自己トリガによる繰り返し処理
8.4.2 繰り返しによる面積効率の向上
8.4.3 トリガ・パルス生成器によるステート表示と繰り返し回数制御
8.4.4 トリガ・パルス生成器
8.4.5 ステート・コントローラ
第9章 IPコア
9.1 IPコアとは
9.2 機能の切り分け
9.3 IPコアの作り方
9.3.1 回路図IPコアの作成
9.3.2 回路図IPコアの呼び出し
9.3.3 回路シンボルの編集
9.3.4 回路図IPコアの使用
9.3.5 HDLのIPコアの作成と呼び出し
9.3.6 IPコア名や信号名のルール
9.3.7 ドキュメンテーション
9.4 ライブラリ化
9.4.1 HDLモジュールのライブラリ化に関する補足
第10章 応用回路II
10.1 マイコン、専用LSIとの違い
10.1.1 マイコンの長所と短所
10.1.2 専用LSIの長所と短所
10.1.3 FPGAの長所と短所
10.2 DCモータのPWM制御
10.2.1 PWM制御回路
10.2.2 動作テスト
10.2.3 モータの逆転
10.3 ステッピングモータの制御
10.3.1 2相バイポーラ・ステッピングモータ・フルステップ制御回路
10.3.2 動作テスト
10.4 マイクロステップ制御
10.4.1 2相バイポーラ・ステッピングモータ・マイクロステップ制御回路
10.4.2 動作テスト
第11章 スタンドアローン動作
11.1 スタンドアローン動作の方法
11.2 コンフィギュレーション・モードの詳細
11.3 コンフィギュレーションROMファイルの作成と書き込み
11.3.1 Xilinx社製PROMの場合
11.3.2 他社製SPI-ROMの場合
第12章 フリーハードウェア
12.1 ハードとソフト
12.1.1 狭義のハードとソフト
12.1.2 広義のハードとソフト
12.2 ハードウェアの仮想化
12.2.1 現在のパソコンの構成
12.2.2 パソコンの仮想化
12.3 フリーハードウェアの実現
12.4 オープンソース・ハードウェアとの関係
補章
A.1 ディジタルICの分類
A.1.1 汎用プロセッサとMCU
A.1.2 メモリ
A.1.3 標準ロジックIC
A.1.4 ASSP
A.1.5 ASIC (ASCP)
A.2 PLDの分類
A.2.1 EEPROM型
A.2.2 ヒューズ型/アンチヒューズ型
A.2.3 SRAM型
A.3 回路図の基礎
A.4 ディジタルとアナログ
A.4.1 量子化と標本化
A.5 存在しない論理素子
A.6 2進数
A.6.1 n進数
A.7 補数
A.8 オシロスコープ/ロジック・アナライザの読み方
A.9 CMOS
A.9.1 FET
A.9.2 NチャンネルMOSFET
A.9.3 PチャンネルMOSFET
A.9.4 CMOSインバータ回路
A.9.5 CMOS NAND回路
A.10 Xilinx FPGA List
索 引
1.1 FPGAとは
1.2 組み込みシステム
1.2.1 パソコンとの差が無くなった?
1.2.2 実装効率の問題
1.3 集積回路
1.3.1 いろいろな部品をまとめたもの
1.3.2 市販のICの例
1.3.3 本当に部品を集めて作れるのか?
1.3.4 ディスクリート部品で作れない理由
1.3.5 何故書き換えられるのか?
1.3.6 SRAM型FPGAの構造
1.3.7 設計がそのまま製造となる
1.3.8 実際の製品にも組込まれている
第2章 開発準備
2.1 開発に必要なもの
2.1.1 パソコンと開発ソフト
2.1.2 FPGAボード
2.1.3 ダウンロードケーブル
2.2 FPGAボード
2.2.1 Digilent社製 Basys2
2.3 ダウンロードケーブル
2.3.1 Xilinx社製 Platform USB (DLC9)/USB II (DLC10)
2.3.2 Digilent社製 XUP USB-JTAG
2.4 開発にあると便利なもの
2.4.1 論理回路シミュレータ
2.4.2 ロジック・アナライザ
2.4.3 オシロスコープ
2.5 ISE WebPACK
2.5.1 開発の全体像
2.5.2 プログラム構成と概要
2.5.3 インストール
第3章 回路図エディタによる設計
3.1 回路設計
3.1.1 スイッチとLEDを繋ぐ回路
3.1.2 新規プロジェクトの作成
3.1.3 回路図シートの作成
3.1.4 I/Oバッファの配置
3.1.5 各シンボルの内容について
3.1.6 配線
3.1.7 I/Oパッドの追加
3.1.8 タイトルやコメントの追加
3.1.9 エラーチェック(インプリメンテーション)
3.2 ピン・アサイン
3.2.1 UCFの作成
3.2.2 UCFの構文
3.3 論理合成とインプリメンテーション
3.3.1 インプリメンテーションの実行
3.3.2 ピンの確認
3.4 ダウンロード
3.4.1 BAYSY2の場合
3.4.2 Xilinx社純正のダウンロードケーブルを使用する場合
3.4.3 iMPACTの起動
3.4.4 チェーンの初期化
3.4.5 ビットファイルの選択
3.4.6 ダウンロードの開始
3.4.7 実装結果
第4章 ハードウェア記述言語による設計
4.1 HDL
4.2 回路設計
4.2.1 新規プロジェクトの作成
4.2.2 HDLモジュールの作成とプロジェクトへの追加
4.2.3 作成されたHDLコード
4.2.4 回路の記述
4.3 論理合成?FPGAへのダウンロードまで
4.3.1 インプリメンテーションによるエラーチェック
4.3.2 ピン・アサイン(既存のUCFの適用方法)
4.3.3 ダウンロード
第5章 基本回路
5.1 論理素子
5.1.1 NOTゲート
5.1.2 ANDゲート
5.1.3 ORゲート
5.1.4 XORゲート
5.1.5 NANDゲート
5.1.6 NORゲート
5.1.7 XNORゲート
5.2 組み合わせ回路
5.2.1 全ての基本となるNANDゲート
5.2.2 HDLの3つの記述方法
5.2.3 マルチプレクサ
5.2.4 デコーダ(デマルチプレクサ)
5.2.5 比較器(コンパレータ)
5.2.6 大小比較器(マグニチュード・コンパレータ)
5.2.7 加算回路
5.2.8 減算回路
5.3 順序回路
5.3.1 RSフリップ・フロップ
5.3.2 Dフリップ・フロップ
5.3.3 クロック
5.3.4 トグル・フリップ・フロップ
5.3.5 クロック・イネーブル
5.3.6 セット/リセット
5.3.7 クロック・イネーブル/セット/リセット付きトグル・フリップ・フロップ
5.3.8 完全同期式回路
5.3.9 シフトレジスタ
5.3.10 カウンタ
第6章 論理シミュレータ(ISim)
6.1 シミュレーションの目的
6.2 シミュレーションする回路について
6.3 入力信号の設定
6.3.1 特定の値に固定する場合
6.3.2 周期信号にする場合
6.4 シミュレーションの実行
6.4.1 指定時間分の実行
6.4.2 バス信号に対する操作
6.4.3 波形の拡大/縮小
6.4.4 カーソル/マーカ操作
第7章 応用回路I
7.1 LED点滅回路
7.1.1 N進カウンタ
7.1.2 外部同期機能の追加
7.2 スイッチ入力の回路
7.2.1 チャタリングとは?
7.2.2 外部アナログ・フィルタによるもの
7.2.3 RS-FFによるもの
7.2.4 D-FFによるもの
7.2.5 メタステーブル
7.2.6 複雑なチャタリング・ノイズへの対応
7.2.7 タイマを用いたマスクによるもの
7.3 非同期式回路から同期式回路への変換
7.3.1 微分回路
7.3.2 非同期式回路から同期式回路への変換例(スイッチを押した数を数える回路の例)
7.4 タイマ
7.4.1 タイマ回路
7.5 初回のパルス伝達を無効にする回路
第8章 シーケンサ
8.1 ルーブ・ゴールドバーグ・マシン
8.2 トリガ
8.2.1 トリガ駆動型モジュール
8.2.2 トリガ駆動型モジュールの実例
8.3 最も簡単なシーケンサ
8.4 ステート・コントローラ
8.4.1 自己トリガによる繰り返し処理
8.4.2 繰り返しによる面積効率の向上
8.4.3 トリガ・パルス生成器によるステート表示と繰り返し回数制御
8.4.4 トリガ・パルス生成器
8.4.5 ステート・コントローラ
第9章 IPコア
9.1 IPコアとは
9.2 機能の切り分け
9.3 IPコアの作り方
9.3.1 回路図IPコアの作成
9.3.2 回路図IPコアの呼び出し
9.3.3 回路シンボルの編集
9.3.4 回路図IPコアの使用
9.3.5 HDLのIPコアの作成と呼び出し
9.3.6 IPコア名や信号名のルール
9.3.7 ドキュメンテーション
9.4 ライブラリ化
9.4.1 HDLモジュールのライブラリ化に関する補足
第10章 応用回路II
10.1 マイコン、専用LSIとの違い
10.1.1 マイコンの長所と短所
10.1.2 専用LSIの長所と短所
10.1.3 FPGAの長所と短所
10.2 DCモータのPWM制御
10.2.1 PWM制御回路
10.2.2 動作テスト
10.2.3 モータの逆転
10.3 ステッピングモータの制御
10.3.1 2相バイポーラ・ステッピングモータ・フルステップ制御回路
10.3.2 動作テスト
10.4 マイクロステップ制御
10.4.1 2相バイポーラ・ステッピングモータ・マイクロステップ制御回路
10.4.2 動作テスト
第11章 スタンドアローン動作
11.1 スタンドアローン動作の方法
11.2 コンフィギュレーション・モードの詳細
11.3 コンフィギュレーションROMファイルの作成と書き込み
11.3.1 Xilinx社製PROMの場合
11.3.2 他社製SPI-ROMの場合
第12章 フリーハードウェア
12.1 ハードとソフト
12.1.1 狭義のハードとソフト
12.1.2 広義のハードとソフト
12.2 ハードウェアの仮想化
12.2.1 現在のパソコンの構成
12.2.2 パソコンの仮想化
12.3 フリーハードウェアの実現
12.4 オープンソース・ハードウェアとの関係
補章
A.1 ディジタルICの分類
A.1.1 汎用プロセッサとMCU
A.1.2 メモリ
A.1.3 標準ロジックIC
A.1.4 ASSP
A.1.5 ASIC (ASCP)
A.2 PLDの分類
A.2.1 EEPROM型
A.2.2 ヒューズ型/アンチヒューズ型
A.2.3 SRAM型
A.3 回路図の基礎
A.4 ディジタルとアナログ
A.4.1 量子化と標本化
A.5 存在しない論理素子
A.6 2進数
A.6.1 n進数
A.7 補数
A.8 オシロスコープ/ロジック・アナライザの読み方
A.9 CMOS
A.9.1 FET
A.9.2 NチャンネルMOSFET
A.9.3 PチャンネルMOSFET
A.9.4 CMOSインバータ回路
A.9.5 CMOS NAND回路
A.10 Xilinx FPGA List
索 引