360°見守りローバー君だぜ ラズパイ式走る リモート探査カメラ

Raspberry Pi 2 LIFE
ダウンロード・データあります
地球の裏側からも OK! 360°見守りローバー君だぜ
ラズパイ式走る
リモート探査カメラ
ご購入はこちら
第
12 回
FPGA ×ラズベリー・パイの準備 2…
C プログラムからお試し用 LCD 表示回路を作る
ラズベリー・パイ
+GPIO引き出し用万能基板
森岡 澄夫
Arduino用キャラクタ
LCDシールド
拡張用Pmod端子
(3.3Vインターフェース)
モーション・
センサ
(BNO055)
I/O拡張用
FPGAボード
PiCamera
Arduino用
モータ・シールド
車輪駆動用
モータ(4個)
写真 1 ラスト 3 回の仕上げ…モータ多軸制御のために機能& I/O
拡張自由自在の FPGA とラズベリー・パイを組み合わせる
FPGA(カスタマイズ可能なハードウェア)で I/O を
拡張する方法を,4 回に渡って紹介します.今回は第
2 回です.写真 1 が作ろうとしているローバーで,ラ
ズベリー・パイと FPGA ボードを搭載しています.
使っている FPGA ボードは写真 2 で,Artix-7 シリー
ズ XC7A35TICSG324-1L(ザイリンクス)が載ってい
ます.ローバー搭載 FPGA 用の回路については,次
回と次々回で詳しく紹介します.
ステップ 1:C プログラムから
お試し用 LCD 表示回路を作る
今 回 は C 言 語 か ら HDL(Hardware Descriptian
Language)を生成するツールを使った回路作成を実
際に体験してみます.そのための例題が図 1 で,16 ×
2 キャラクタ・ディスプレイ・モジュールに時計を表
示します.前回は図 1 中の時刻カウント回路,LCD 表
示バッファ・メモリ,LCD 制御コマンド生成回路を C
言語で書きました(第 11 回リスト 1 〜リスト 3).
今回は第 11 回,リスト 1 〜リスト 3 のソースを高位
合成ツールにかけ,RTL(Register Transfer Level)
コードを生成します.頒布アーカイブを利用し,ソー
スが D:¥20_sample_artix7 の下にあると仮定し
104
256Mバイト
DDR3Lメモリ
FPGA
Artix-7 XC7A35TICSG324-1L
(ザイリンクス)
Arduinoシールド用端子
(ただし電圧レベルは3.3V)
写真 2 使用する FPGA ボード
Artix-7 35T 搭載の FPGA 評価ボード Arty(Digilent 社)
FPGA
クロック
100MHz
時刻
カウント
回路
LCD表示
バッファ・
メモリ
0.1秒に1回,
表示する値を
メモリに上書き
LCD制御
コマンド
生成回路
0.1秒に1回,
表示する値を
メモリから読む
Arduino用
キャラクタ
LCDシール
ドへ
0.1秒に
1回,表示
コマンド
をLCDに
送信
図 1 C 言語による FPGA 設計のお試し回路
各回路は C 言語で作成.各ユニットの接続は Verilog HDL で記述
て説明を進めます.
高位合成はソースごと別々に行います.LCD 制御
回 路 を 例 と し ま す. ま ず Vivado HLS( 論 理 合 成 の
Vivado と間違えないよう注意)を立ち上げて,プロ
ジェクトを新規作成します(図 2)
.特に問題がなけれ
ば,プロジェクト名はモジュールが分かる適当な名称
に(ここでは lcddrv),location はソースと同じ
ディレクトリにしておきます.続くソース・ファイル
指定で,トップ関数名(第 11 回,リスト 2 の lcddrv)
も入力します.Solution Configuration の指定では,使
用 FPGA デバイスとクロック周期(ボードや設計に依
第 1 回 準備…動画像処理環境の構築(2015 年 11 月号)
第 2 回 リアルタイム画像処理のための高速化テク①…4 コアをフル回転させる
(2015 年 12 月号)
第 3 回 リアルタイム画像処理のための高速化テク②…スループット / 遅延性能のチューニング(2016 年 1 月号)
2016 年 12 月号