コンピュータを専門としない研究者や学生の皆様に,FPGAを道具として手軽に使ってもらえるような教材として用意しています.
- 幅広い入門(第一部)
- VivadoHLSの活用(第二部)
- Linuxの活用事例(第三部)
で構成されます.FPGAが(関数電卓と同じくらい)馴染み深い道具になれば,いいのになあ,と願っています.
教材の目次は以下の通りです.各部,5コマ〜7コマ程度を目安にしています.
一部をオンラインでご覧いただけるように公開しました。Learning FPGA 非商用利用に限り、自由にご利用ください。
■ 第一部: FPGA基礎編
1. イントロ(読み物)
FPGAとは?
FPGAの開発の流れ
2. VHDL/Verilog HDLの簡単な導入
基本的な構文
演算子
回路の作り方
組合せ回路と順序回路
3. Vivadoを使ったFPGA開発クイックスタート
合成,配置配線
FPGAボードへのダウンロード方法
実機で動作させてみる(Lチカ)
4. RTLシミュレーション
テストベンチの書き方
シミュレータの使い方
5. 基本実験
ILAを使ったFPGA内の信号の観測方法を学ぶ
AND/OR/XOR/NORなどの基本演算を確認してみよう
加算器を作ってみよう
HDLの四則演算を試してみよう
ステートマシンの作り方と利用方法
6. アプリケーション実験
ストップウォッチを作ってみよう – スイッチ入力とLED出力の実験
シリアル通信に挑戦してみよう
音声信号を観測してみよう
(音声信号処理に挑戦してみよう)
Appendix: Vivadoのインストール方法
■ 第二部: 高位合成編
7. 今どきのFPGA開発手法 – 高位合成(読み物)
C/C++ベースのFPGA開発とは
C/C++ベースのFPGA開発の流れ
8. VivadoHLSを使ったCベース設計に挑戦
コード記述方法
C/C++からHDLを生成
生成したモジュールをFPGAプロジェクトで利用する
実機で動作を確認
9. 基本実験
C/C++ベース設計とデータ入出力方法
pragmaを使って回路の高速化に挑戦
10. 応用実験
C/C++ベースの音声信号処理に挑戦
C/C++ベースの画像処理に挑戦(OpenCVを使ってみる)
■ 第三部: ARM+FPGA編
11. ARM搭載FPGA(読み物)
ARM搭載FPGAとは
FPGAとCPUの使い分け
12. プロセッサをベアメタルで使用する
13. Linuxを使ってみる
14. Jupyter Notebookを使ったFPGA利用方法