FPGAプログラミング大全 Xilinx編

概 要

FPGAは、CPUを内蔵したことでユーザーが回路を自由にプログラミングする面白さがさらに広がりました。本書は、回路設計の基礎やCプログラミングを学んだ方を対象に、FPGAの基礎から応用まで(LチカからVivado HLSを使った高位合成まで)をステップバイステップで解説します。無償のVivado Design Suiteを使って、ハードウェア設計の基礎から、論理シミュレーションによる回路検証、実機検証までを説明。初学者の最高のバイブルです。

著者 小林優
価格 本体3800円(税別)
ISBN 978-4-7980-4753-9
発売日 2016/12/15
判型 B5変
ページ数 584
CD/DVD
ダウンロード
表紙イメージ
購入 アマゾンで購入する
楽天で購入する

※リンク先によっては、販売ページが用意されていないことがあります。あらかじめご了承ください。

新しいウィンドウで開く 書籍購入のご案内

サポート

サポート情報は以下からご参照下さい。

サポート情報へのリンク

目次

準備編 第1章~第4章

第1章 無償ツールでここまでできる

1-1 無償化が一気に進んだXilinxの開発ツール

【1-1-1】 Xilinx FPGA向け開発ツール群「Vivado Design Suite」

【1-1-2】 統合開発環境「Vivado」

【1-1-3】 ソフトウェア開発環境「Xilinx SDK」

【1-1-4】 高位合成ツール「Vivado HLS」

コラムA Xilinx開発ツール無償化の歴史

1-2 各種低価格FPGAボード

【1-2-1】 Digilent社の低価格FPGAボード

【1-2-2】 例題の対応状況

【1-2-3】 Artyだけは工作が必要

【1-2-4】 おすすめのボード

第2章 Vivadoの論理合成を試す

2-1 LED点滅回路の記述と動作確認

【2-1-1】 LED点滅回路の構造と回路記述

【2-1-2】 Vivadoの起動

【2-1-3】 プロジェクトの作成

【2-1-4】 Vivadoの操作画面

【2-1-5】 回路記述の読み込み

【2-1-6】 制約ファイルの読み込み

【2-1-7】 コンパイル

【2-1-8】 FPGAのコンフィグレーションと動作確認

2-2 LED点滅回路にプッシュスイッチ入力を追加

【2-2-1】 プッシュスイッチ入力で点滅速度を切り替える

【2-2-2】 チャタリング除去回路

【2-2-3】 コンパイルと動作確認

【2-2-4】 主なコンパイルエラーと対策

2-3 PC用ディスプレイにパターンを表示

【2-3-1】 パターン表示回路の仕様

【2-3-2】 VGAのタイミング

【2-3-3】 パターン表示回路の回路構成

【2-3-4】 パターン表示回路の回路記述

【2-3-5】 動作確認

2-4 第2章の課題

【2-4-1】 LED点滅回路の拡張……プッシュスイッチで表示パターンを切り替える

【2-4-2】 パターン表示回路の拡張……階調をつけてグラデーション表示にする

コラムB 私のFPGA履歴書「第一話 進化の過程を目撃」

第3章 論理シミュレーションによる事前確認

3-1 論理シミュレーションとは

【3-1-1】 論理シミュレーションでできること

【3-1-2】 機能だけの検証と遅延を含めた検証

コラムC より確実な設計・検証手順

3-2 シミュレーションによる検証の実際

【3-2-1】 テストベンチの準備

【3-2-2】 Vivadoシミュレータによるシミュレーション手順

【3-2-3】 波形表示の操作と観測方法

3-3 シミュレーションの進んだ使い方

【3-3-1】 配置・配線後のシミュレーション

【3-3-2】 テストベンチを拡張して出力ファイルによる確認をする

【3-3-3】 波形フォーマット(WCFG)と波形データ(WDB)の保存と利用

3-4 第3章の課題

【3-4-1】 第2章課題のグラデーション表示回路をシミュレーションする

第4章 ロジックアナライザによる回路デバッグ

4-1 ロジックアナライザの基本

【4-1-1】 実機で不具合を発見するには

【4-1-2】 FPGA内蔵ロジックアナライザ

【4-1-3】 ロジックアナライザの基本はサンプリングとトリガ

4-2 ロジックアナライザによる実機検証

【4-2-1】 ロジックアナライザのセットアップ

【4-2-2】 ロジックアナライザの基本操作

4-3 ロジックアナライザの進んだ使い方

【4-3-1】 複数ウィンドウによる複数画面の観測

【4-3-2】 キャプチャコントロールを試す

【4-3-3】 最適化の抑制による信号の維持

【4-3-4】 最適化の抑制による階層の維持

4-4 第4章の課題

【4-4-1】 第2章課題のグラデーション表示回路の実機動作波形を観測する

コラムD 私のFPGA履歴書「第二話 商売道具にフル活用」

ソフトマクロCPU(MicroBlaze)編 第5章~第6章

第5章 ソフトマクロCPU「MicroBlaze」

5-1 MicroBlazeとは

【5-1-1】 ソフトマクロCPUのメリット

【5-1-2】 MicroBlazeの概要

【5-1-3】 MicroBlazeシステムの開発手順

5-2 MicroBlazeシステムのハードウェア構築

【5-2-1】 MicroBlaze版LED点滅回路のハードウェア

【5-2-2】 IPインテグレータによるシステム構築

5-3 MicroBlazeのプログラムを実行

【5-3-1】 ハードウェア情報のコピーとSDKの起動

【5-3-2】 アプリケーションプロジェクトの作成

【5-3-3】 FPGAのコンフィグレーションとプログラムの実行

【5-3-4】 LED点滅のCプログラム

【5-3-5】 LED点滅プログラムの実行

5-4 タイマー割り込みとAPIの利用

【5-4-1】 プロジェクトの作成と描画スクリプトの利用

【5-4-2】 タイマーIPと割り込みコントローラIPの接続

【5-4-3】 タイマー割り込みのプログラムとAPI

【5-4-4】 タイマー割り込みの応用……チャタリング除去

5-5 第5章の課題

【5-5-1】 第2章課題の「LED点滅回路の拡張」をMicroBlazeシステムで実施する

コラムE 私のFPGA履歴書「第三話 CPU内蔵は超面白い」

第6章 MicroBlazeに自作IPを接続

6-1 簡易IP作成機能を使った自作IPの設計

【6-1-1】 MicroBlazeのバスとプロジェクトの作成

【6-1-2】 「Create and Package IP」機能で簡易IPを作成する

【6-1-3】 生成された回路記述の構造と動作

【6-1-4】 出力ポートを追加しIPをパッケージ化

【6-1-5】 MYIPをシステムに組み込む

【6-1-6】 SDKでMYIPの動作確認

6-2 文字表示回路の設計とIP作成

【6-2-1】 文字表示回路の仕様

【6-2-2】 回路の構成

【6-2-3】 プロジェクトの作成とVRAMの生成

【6-2-4】 CGROMを生成しIP作成完了

6-3 文字表示回路の事前検証と実機確認

【6-3-1】 文字表示回路のシミュレーション

【6-3-2】 システムの構築と動作確認

【6-3-3】 ロジックアナライザによる波形観測

6-4 第6章の課題

【6-4-1】 文字表示回路を拡張して1文字ごとに反転と点滅を可能にする

【6-4-2】 1文字表示関数を作成し英文字の文章を表示する

コラムF マルチCPUを試す

ハードマクロCPU(Zynq)編 第7章~第9章

第7章 ハードマクロCPU内蔵「Zynq」

7-1 Zynqとは

【7-1-1】 Zynqの概要

【7-1-2】 PS内蔵の周辺回路

【7-1-3】 PSとPL間の接続……AXIポート

【7-1-4】 PSとPL間の接続……クロックやリセットなど

【7-1-5】 起動シーケンス

7-2 Zynqシステムの構築とプログラム実行

【7-2-1】 Zynqシステムの構成

【7-2-2】 IPインテグレータによるシステム構築

【7-2-3】 Zynqのプログラムを実行

【7-2-4】 LED点滅プログラムの実行

7-3 Zynqの割り込みと自作IPの設計

【7-3-1】 プロジェクト「second_zq」のハードウェアを作成

【7-3-2】 タイマー割り込みのプログラム

【7-3-3】 タイマー割り込みの応用……チャタリング除去

【7-3-4】 簡易IP作成機能を使った自作IPの設計

7-4 第7章の課題

【7-4-1】 第2章課題の「LED点滅回路の拡張」をZynqシステムで実施する

【7-4-2】 第6章の「文字表示回路」をZynqシステムで実施する

コラムG マルチARMコアを試す

第8章 AXIバス入門

8-1 AXIバスとは

【8-1-1】 AXIの歴史と概要

【8-1-2】 AXIの基礎用語

【8-1-3】 転送とVALID/READY信号

【8-1-4】 トランザクション

【8-1-5】 各チャネルの信号

【8-1-6】 代表的な読み書きタイミング

【8-1-7】 信号の依存関係

8-2 AXIモデルを用いたシミュレーションと実機の波形観測

【8-2-1】 AXIのスレーブとマスターの検証用モデル

【8-2-2】 マスターとスレーブのモデルを接続してAXIシミュレーション

【8-2-3】 ロジックアナライザによるAXI信号の観測

8-3 第8章の課題

【8-3-1】 AXIスレーブBFMの設定を変更してシミュレーションし動作を確認する

コラムH 制約ファイル(?.xdc)の読み方と書き方

第9章 グラフィック表示回路の設計

9-1 グラフィック表示回路IPの仕様と設計

【9-1-1】 グラフィック表示回路の設計仕様

【9-1-2】 グラフィック表示回路の構造

【9-1-3】 AXI読み出し制御

9-2 グラフィック表示回路IPの検証と組み込み

【9-2-1】 グラフィック表示回路の検証

【9-2-2】 IPの構築とZynqシステムへの組み込み

9-3 動作確認と実機デバッグ

【9-3-1】 テストプログラムによる動作確認

【9-3-2】 ロジックアナライザによるAXIバスと映像出力信号の観測

コラムI SDカードの読み出しを試す

9-4 第9章の課題

【9-4-1】 SDカードの画像ファイルを読み出して表示する

【9-4-2】 解像度をXGAにする

高位合成編 第10章

第10章 C言語からの高位合成

10-1 高位合成とVivado HLS

【10-1-1】 高位合成とは

【10-1-2】 高位合成の基本

【10-1-3】 C言語からの高位合成

【10-1-4】 Vivado HLSでの設計手順とディレクティブ

10-2 高位合成を試す

【10-2-1】 乗加算回路とテストベンチ

【10-2-2】 プロジェクトの作成とCシミュレーション

【10-2-3】 高位合成と性能評価

【10-2-4】 ディレクティブを与えて性能を比較

【10-2-5】 C/RTL協調シミュレーション

10-3 IP化して実機確認

【10-3-1】 AXI4-Liteインターフェースの追加とIP化

【10-3-2】 Zynqシステムへの組み込み

【10-3-3】 乗加算回路APIを用いた制御プログラムで実機確認

10-4 AXIマスターの描画回路を設計

【10-4-1】 パターン描画回路の仕様と回路記述

【10-4-2】 プロジェクトの作成とCシミュレーションによる検証

【10-4-3】 ディレクティブの付加からIP化まで

【10-4-4】 グラフィック表示回路に組み込んで動作確認

10-5 第10章の課題

【10-5-1】 表示領域外への書き込み禁止機能をつける

【10-5-2】 ドットで表現された文字を、任意位置、任意色、任意サイズで表示する回路

コラムJ Vivado HLSは誰のためのツールか?そしてSDSoCとは?

Appendix

Appendix I 開発環境の構築

I-1 Vivadoのダウンロードとインストール

【I-1-1】 インストーラのダウンロード

【I-1-2】 Vivadoのインストール

I-2 ボードファイルとUSBシリアル変換ドライバのインストール

【I-2-1】 ボードファイルのインストール

【I-2-2】 USBシリアル変換ドライバのインストール

Appendix II 各FPGAボード利用上の注意点

II-1 Arty:ボード概要とVGAインターフェースの作成

【II-1-1】 ボード上の部品配置

【II-1-2】 VGAインターフェースボードの作成

【II-1-3】 DDR3メモリを使ったグラフィック表示回路

II-2 Basys3:ボード概要

【II-2-1】 ボード上の部品配置

II-3 Zybo:ボード概要とMicroBlazeシステムの作成

【II-3-1】 ボード上の部品配置

【II-3-2】 ZyboでMicroBlazeシステムを作成する場合の注意点

II-4 設計データの利用方法

【II-4-1】 設計データの内容

【II-4-2】 bitファイルでコンフィグレーションする方法

【II-4-3】 hdfファイルからハードウェアプロジェクトを作成する方法

Appendix III 回路データおよびプログラムのROM化

III-1 ROM化方法(Arty、Basys3)

【III-1-1】 LED点滅回路のROM化

【III-1-2】 回路データとMicroBlazeプログラムのROM化

III-2 SDカード化方法(Zybo)

コラムK 私のFPGA履歴書「番外編 私のFPGAボードコレクション」

PR

秀和システム