FPGA 用ソフトコア CPU を用いたディジタル回路教育教材 の開発

詫間電波工業高等専門学校
平成19年度プロジェクト研究報告会
講演論文集
FPGA 用 ソ フ ト コ ア CPU を 用 い た デ ィ ジ タ ル 回 路 教 育 教 材
の開発
○月 本 功 , 村 上
浩, 高木正夫
源系との接続を考慮し、インターフェース回路としてバススイッチ
1 まえがき
電子回路設計の現場ではマイコンや HDL(ハードウェア記述
を導入している。さらに、オプション機能として、イーサネットに接
言語)の知識は不可欠なものである。そのため、教育用マイコン
続するためのXPORTを搭載し、TCP/IPによる通信機能やWEB
ボードや、FPGA を搭載した HDL 学習用ボードが多く市販され
サーバ機能も実現可能である 3)。
ており、本校においてもそれらを使用した実験や研究が行われ
ている。FPGA とは、設計した論理を書き込み可能な LSI である。
内部バス
内部メモリ 制御
従来、マイコンボード、CPU LSI に、メモリ、IO 制御IC などの多く
可能となっている。また FPGA は多くの電子回路で使用され、高
機能で大規模な FPGA が多く流通し、低価格化が進んでいる。
そのような状況で、FPGA に組み込むことのできるソフトコア CPU
がリリースされ、FPGA にオリジナルマイコンシステムを構築する
ことが可能となった。
マイコン LSI は複数のメーカーから多くの製品が市販されてい
る。しかし、要求仕様の変更が生じた場合、再度マイコンを選択
内部
ROM
内部
RAM
ROM I/F
I/Oごとに設計
FPGA
RAM I/F
I/Oボード 制
御( 各種)
タイマ -
NIOSIIマイコン
I/Oボード 接続用コネクタ
FPGAに
書き込むこと
で、 FPGAが
マイコンとし
て機能
ROM RAM
USB
RS232C
コネクタ
登場により、CPU の機能と周辺LSIの機能を1つの FPGA で構成
CPU
コア
電源
USB
コネクタ
の周辺LSIを接続することで構成されていたが、大規模FPGAの
バッファ
オリジナルマイコンボード
機能追加、仕様変更に対し、
構成を変更可能
( 例)タイマ を1個から2 個に変更
I/Oの入出力数を変更など
図1 オリジナルマイコンボードの実現
し、それに合わせて回路設計とプリント基板設計を再度行う必要
がある。これに対して FPGA を使用してマイコンシステムを構成
すると、使用目的に合わせて柔軟にシステム構成変更が可能で
ある。また必要に応じ、既存の機能ブロックや、新規に HDL で設
計した機能を、FPGA に組み込むことが可能である。
本研究では、学生実験や研究に適したハードウェア仕様を検
討し、FPGA を使用した教材用オリジナルマイコンボードを開発
したので報告する。
3 ハードウェアの構成と仕様
本マイコンボードはインフォホビー社の NiosIICPU カードをベ
ースに開発を行った1)。使用している FPGA は、アルテラ社の低
価格 FPGA である“cyclone シリーズ”である。また FPGA 用ソフト
図2 開発した NiosII マイコンボード
コア CPU としてアルテラ社の NiosII を採用した。
図1に示すように、NiosIIマイコンは、開発ツールSOPCビルダ
本ボードはマイコンの機能を構成する上での最小構成とした。
を使用することで、機能ライブラリの中から必要な機能を選択し、
主な仕様を表1に示す。なお表1は標準的な構成であるが、設定
必要な設定やコンパイル等の操作をした後、FPGA に NiosII マイ
を変更することで、クロックアップや、内部タイマの追加、割り込
2)
コンを書き込むことで、オリジナルマイコンを構成する 。
み機能の追加など、要求に応じカスタマイズ可能である。
図2に開発した NiosII マイコンボードの外観を示す。本ボード
機能拡張用に外部接続用コネクタが実装され、FPGAに接続
にはプログラム記憶用のフラッシュメモリと、データ用の RAM が
されている。学習教材として使用する場合や研究用途に使用す
実装されているほか、パソコンなどの外部との通信用に、
る場合など、目的に応じ必要となる回路を実装したボードを製作
RS232C と USB の回路を実装している。ボード内は電源電圧
し、図3のように機能拡張用コネクタ(40 ピン)でマイコンボードと
3.3V 系の回路であるが、学習用や研究用で多く使用する5V 電
接続することで、外部回路がFPGAに接続される。
詫間電波工業高等専門学校
平成19年度プロジェクト研究報告会
表1 主な仕様
講演論文集
のユーザプログラムをフラッシュメモリに転送する。(2)は、マイ
コンをリセットし、SW2を2秒以上押し続けた状態にすることで実
行される。スイッチ SW2 を押していない状態でマイコンをリセット
すると、フラッシュメモリに保存した、最新のユーザプログラムが
自動実行される。
本年度は、スイッチ入力、LED、7セグメント表示器を各4回路、
LCD表示器を1回路実装した図3右側のマイコン学習用IOボー
ドを試作した。これをマイコンボードと組み合わせての動作チェ
ックを行い、NiosII マイコンの構成変更の手順やプログラム開発
手順を明確にした。
SW1:リセットスイッチ
SW2:モード切り替えスイッチ
図4 スイッチによるモードの切り替え
4.むすび
本研究では、柔軟に仕様・機能をカスタマイズ可能なマイコ
ンボードを開発した。本ボードは FPGA を実装し、アルテラ社の
図3 IO ボードとの接続
4.プログラム開発手順
FPGA 内部の ROM には、作成したユーザプログラムをボード
ソフトコア CPU「NiosII」を搭載している。FPGA を使用しているた
め、外部回路のインターフェース仕様に合わせ、FPGA 内の制
御論理を修正するだけで、多くの実験課題に同じマイコンボード
を利用することできる。また、本マイコンボードは汎用性を重視し
にダウンロードする機能や、メモリダンプ機能などをもったデバ
ているため、本科の卒業研究や専攻科の特別研究において専
ッグモニタ(GERMS モニタ)を保存している。またマイコン起動時
用回路や特殊な I/O とのインターフェースが必要な場合にも、対
に動作するブートプログラムを FPGA 内の RAM に保存してる。
応可能である。
NiosII マイコンが起動すると、まずブートプログラムが起動する。
ブートプログラムはモード選択スイッチ(SW2)の状態に応じて、
本ボードはイーサネットに接続できるハードウェアを実装して
おり、IO 制御できる電子機器や電子回路と本ボードを組み合わ
(1)デバッグモニタの起動
せることで、ネットワーク経由でそれらの遠隔制御が可能となる。
(2)RAM 内のユーザプログラムをフラッシュメモリへコピー
ネットワーク接続機能を利用するためのネットワークプログラム開
(3)フラッシュメモリ内のユーザプログラムの起動
発手順や遠隔システム開発に必要となる開発環境の構築が今後
のいずれかの処理を行う。
の作業として残っている。またIO数拡張や高スペック化を実施
図4に SW2によるモード切り替えフローを示す。ユーザプロ
するため、cyclone リシーズの後継シリーズである cycloneII リシー
グラム開発時には、(1)と(2)を使用する。パソコン上で作成した
ズへの FPGA 載せ替えや、オンボードメモリの容量アップを実施
ソースプログラムをコンパイルし、ダウンロード用のインテルHEX
したいと考えている。
ファイルを作成する。リセットボタンを押し、SW2を短時間(2秒以
内)押し、NiosII のデバッグモニタを起動する。デバッグモニタと
パソコンの通信でマイコンボードにプログラムをダウンロードす
る。プログラムはボード上の RAM に1時的に保存され、RAM 上
でプログラムが自動的に実行される。正常動作するかどうか、こ
の段階でデバッグを行い、問題なければ、(2)のモードでRAM内
参考文献
1)”インフォホビー社 NiosII CPU カード<Btype>ユーザーズ
マニュアル”,有限会社インフォホビー
2)”NioSysTM で始める NiosII 開発”,東京エレクトロニッ
クシステム株式会社
3)日高亜友、中村雄次、瀬木千秋、和田好司:”センサとイ
ンターネット接続”,CQ 出版社