Last Update 2022/06/03

音声&画像処理/画像転送/測定器…なんでも高速・高安定・高機能
FPGAパソコンZYBOで作るLinux I/Oミニコンピュータ

岩田 利王/横溝 憲治 共著
B5判 208ページ
CD-ROM 1枚付き
定価6,600円(税込)
JAN9784789848091
2016年4月1日発行
好評発売中!
FPGAパソコンZYBOで作るLinux I/Oミニコンピュータ

 本書は,Zynq(ザイリンクス)搭載ボードZYBOを使ったSoC(System-on-a-Chip)開発の入門書です.開発ツールVivadoは無償で使えるWebPACKがあり,また最近,従来期限付き無償だった高位合成HLSが期限無しで無償で使えるようになり,ますます身近なものになりました.本書の基礎編ではVivadoでのZynqの基本的な設計方法をソフトウェア,ハードウェアともに紹介します.ベア・メタル編ではOSを使わないソフトウェアとハードウェア開発を,IPベース,HLSを中心に紹介します.Linux編では学習用途であれば無償で使えるXillinuxを使って,従来のFPGAでは困難だったネット接続やOS上のソフトウェアと協調したアプリケーション作成例などを紹介します.

目次

第1部 基礎編

第1章 ARMベースSoC Zynqとは何か
1.1 リッチなGUIとリアルタイム信号処理をこなすシステムを作るには
1.2 従来のFPGAを進化させたSoCの誕生!
1.3 Zynqの用途とアーキテクチャ
1.4 ZYBOボードの仕様と開発環境

第2章 PSでHello World,PLだけでLED点滅
2.1 Vivadoのインストール
2.2 Zynqの設計フロー
2.3 PL部のみでLEDの点滅

第3章 IPベースで作るLED点灯回路
3.1 設計ツールはVivado 2015.4 WebPACKとSDK
3.2 IPベース設計ツールIP Integratorの使い方
3.3 GPIO制御用プログラムの作成

第4章 microSD,QSPIから起動する方法
4.1 Zynqの起動シーケンス
4.2 BOOT.binの作成
4.3 microSDカードから起動する方法
4.4 QSPIフラッシュ・メモリから起動する方法
4.5 工場出荷時のQSPIフラッシュ・メモリのデータ

第2部 ベア・メタル編

第1章 IPで作る画像処理システム-画像表示回路の作成
1.1 構築する画像表示回路の構成
1.2 画像表示用IPを追加して画像表示回路を構築
1.3 画像表示用プログラムの作成

第2章 IPで作る画像処理システム-AXI回路作成とIPパッケージ登録

2.1 IP間のインターフェースはAXIを使用
2.2 AXIスレーブ回路の作成とIPパッケージ化
2.3 AXIスレーブ回路IP myip_slave_ipの使い方
2.4 AXIマスタ回路の作成とIPパッケージ化
2.5 AXIマスタ回路IP myip_master_line_rdの使い方

第3章 IPで作る画像処理システム-HDMI→VGA変換回路の作成
3.1 画像+音声伝送用インターフェースHDMIの特徴
3.2 HDMI→VGA変換回路の回路構成
3.3 シリアル‐パラレル変換はIPで対応
3.4 コントロール・コード検出と10b8b変換
3.5 ピン配置と動作確認

第4章 IPで作る画像処理システム-VRAMインターフェースの作成
4.1 画像処理システム全体の構成
4.2 作業の流れ
4.3 画像メモリVRAMの追加

第5章 IPで作る画像処理システム-HLSを使った画像処理回路の作成
5.1 高位合成ツールVivado HLSの使い方
5.2 色反転とエッジ検出の追加

第6章 LEDマトリクス表示制御回路の作成
6.1 使用したLEDマトリクスの仕組み
6.2 制御回路
6.3 動作確認

第7章 GbEで画像転送-GEMの使い方
7.1 GEMの概要
7.2 画像転送装置の概要
7.3 GEMの動作確認

第8章 GbEで画像転送-ハード&ソフトの作成
8.1 画像データの転送経路
8.2 各ブロックの動作
8.3 動作確認の進め方と設計データの書き込み
8.4 テスト内容とプログラムの作成

第3部 Linux編

第1章 ZYBOにLinuxを載せて使ってみる -OSからFPGAのロジックを制御!
1.1 LinuxからLED点灯…ありきたりに見えるがその本質は全然違う
1.2 ZYBOでLinuxを走らせる手順
1.3 OSからデバイス・ドライバを操作してデバイスにアクセスしてみる
1.4 HDLを変更してデバイス・ドライバの先の回路を変える
1.5 ARM Cortex-A9とロジックの使い分け…SoC FPGAならではの応用例

第2章 ロジック×ARMで実現!堅牢で柔軟なディジタル・フィルタ
2.1 「複雑な浮動小数点演算」と「リアルタイムな固定小数点演算」を 兼ね備えたシステムを作るには
2.2 OSだけでは信号処理のリアルタイム性を保つのが難しい
2.3 ロジックでディジタル・フィルタの「枠組み」を用意する
2.4 OSでIIR型フィルタの「係数」を計算してロジックに渡す
2.5 ディジタル・フィルタのカットオフ周波数を自由自在に変える
2.6 キーワードは柔軟性と安定性...PS部とPL部にかかっている

第3章 ネットに繋がるFPGA!ZYBOで作る遠隔操作システム
3.1 「ネットに繋がるFPGA」というZynqのメリットを活かす
3.2 ウェブ・サイトからIIRフィルタの係数をダウンロードするアプリ
3.3 IIRフィルタの係数をPL部に送るアプリケーション
3.4 PL部からIIRフィルタの出力を受け取るアプリケーション
3.5 IIRフィルタの出力をFFTするアプリケーション
3.6 mailコマンドでウェブ・サイトの管理人にメールを送る
3.7 シェル・スクリプトでコマンドとアプリをぐるぐる回して実行

第4章 LinuxのGUIでロジックの動作検証 -ZYBOで作るジェネレータ&ロジアナ
4.1 LinuxのGUIからロジックにアクセスできるメリットを活かす
4.2 PL部にセレクタを設けてIIRフィルタにテスト信号を入力
4.3 PS部はパターン・ジェネレータ,IIRフィルタにテスト信号を入力
4.4 PS部はロジアナ,IIRフィルタの出力を描画
4.5 C言語のIIRフィルタとHDLのIIRフィルタの結果を比較

第5章 ドライバの知識がなくてもOK -Linux on ZYBOで制御する加速度センサ
5.1 既存のデバイス・ドライバを使って新規のデバイスを制御する
5.2 加速度センサ・モジュールの使い方
5.3 PL部にSPI通信回路を追加する
5.4 PS部から加速度センサ・モジュールを読み書きする

Appendix OpenCVで画像処理を試す

第6章 XillinuxからLEDマトリクス表示制御
6.1 Xillinuxから制御するLEDマトリクス表示システムの構成
6.2 XillybusのFIFOインターフェースの使い方
6.3 XillinuxへLEDマトリクス制御回路を組み込んで動作確認
6.4 Xillinux用LEDマトリクス表示制御プログラムの作成
6.5 Xillinux用LEDマトリクスBMPファイル表示プログラムの作成

第7章 ネットワーク経由でZYBOを遠隔制御
7.1 動作概要
7.2 準備
7.3 SSHからの制御
7.4 ウェブ・ブラウザからLEDの点灯とスイッチの読み取り
7.5 ウェブ・ブラウザからLEDマトリクスの制御