...

FPGA の中に ARM を作る ~ソフトコア CPU の可能性について

by user

on
Category: Documents
23

views

Report

Comments

Transcript

FPGA の中に ARM を作る ~ソフトコア CPU の可能性について
FPGA の中に ARM を作る
~ソフトコア CPU の可能性について
土井
滋貴(奈良工業高等専門学校)
ARM Builds in a FPGA
- A Possibility of Soft-Core CPU
Shigeki Doi (Nara National College of Technology)
In continuing education, "Genki-Nara Training for Embedded Systems Engineers" , We are engaged in basic
training of programmable logic devices. In this paper reported a possibility of Soft-Core CPU from results of
above project.
キーワード:ソフトコア CPU,組み込みシステム,ARM,Cortex-M1
(Keywords, Soft-Core CPU, Embedded System, ARM, Cortex-M1)
ロック等を持つ Fusion の3つがあげられる。これらはすべ
1. はじめに
て Cortex-M1 デバイスと呼ばれる、Coretx-M1 搭載可能デ
以前から、FPGA の上にソフトコア CPU を構成した SoC
バイスが用意されて、Actel 社からはスタータキットがいく
構成が、FPGA と CPU の利点を併せ持つ手段として注目さ
つか用意されている。今回は、ProASIC3 を使ったシンプル
れていた。しかしながら、コスト、消費電力、求められる
な構成のシステムを紹介する。
技術が多岐にわたるなどで、限られた分野での適応だった
〈2・2〉
Cortex-M1
代表的な FPGA メーカからは、
ことは否めない。また、確実性や信頼性、トラブルの際の
Coretx-M1 を除き各メーカ独自のソフトコア CPU が提供
原因の切り分けという点でも技術的に超えるべきハードル
されている。その例を表1に示す。4 種とも 32 ビット RISC、
は高いものになってしまう。
ハーバードアーキテクチャ、JTAG デバッグ機能、3 段程度
しかしここにきて、低コスト、低消費電力なデバイスや
のパイプラインとほぼ共通な性能をもつ。LUT 換算で 5000
スタータキットが増えてきたこと、開発ツールを動かす PC
前後で実装される。この中で、低コストで利用できるもの
の性能向上等で、導入のハードルが確実に低く、身近な技
と し て は ア ク テ ル 社 の Cortex-M1 か ラ テ ィ ス 社 の
術となってきたと思われる。
Mico32(1)がある。
今回は、ARM CPU の新しいシリーズの Cortex シリーズ
Cortex-M1 は図1に示すように ARM 社の新しいファミ
のローエンドモデルの Cortex-M1 が搭載可能でコンフィグ
リで Cortex シリーズから用途別に A,R,M と枝番が付くよ
レーションが内部フラッシュで行われるユニークな Actel
うになった。コントローラ用に特化した小規模コアが
社のデバイスをとりあげ、シンプルな構成で Cortex-M1 マ
Cortex-M シリーズである。Cortex-M シリーズと従来の
シンを構成した例を紹介する。
ARM7 との比較を表 2 に示す。
2.
Actel 社の FPGA と Cortex-M1
現状の Actel 社の提供する CortexM1 の IP、Ver2.6 では
本来の Cortex-M1 仕様と比べて実装されていない部分があ
Actel 社の FPGA デ
る。NVIC の中の、外部割り込みサポート、SysTick タイマ
バイスは宇宙機器などでよく使われ、コンフィグレーショ
などであり、ARM7 に近い構成といえる。これらは本来の
ンを内部フラッシュメモリで行う構造をとる。従ってコン
Cortex-M1 の特徴でもあり実装が望まれる。ただし、構築
フィグレーションのためのシリアル ROM や起動時のコン
するシステムによっては、「このような物を使わないです
フィグレーション時間を必要としない。主力となるシリー
む場合もある、従って実装しない方が、要求によりフィッ
ズには、標準的な ProASIC3、低消費電力向け IGLOO、ア
トしたスリムな構成になる」という実装方針なのかもしれ
ナログコアとプログラム用にも使えるフラッシュメモリブ
ない。CPU を構築するときの設定で NVIC の機能を選択で
〈2・1〉 CLPD のような FPGA
1/6
ッケージが用意されていて、海外の通販サイトから購入可
きるような実装方法になることが望まれる。
能である。このパッケージなら変換基板等を使って手配線
名称
ザイリンク
アルテラ
ラティス
アクテル
でなんとかテストボードを作ることができる。今回はそれ
ス社
社
社
社
をもう一歩進めて、FPGA 周りの最低限の付属回路を搭載
MicroBlaze
NiosⅡ
Lattice
Cortex-M1
したいわゆる CPU ボードを紹介する。
〈3・1〉 回路設計
Mico32
HDL
-
-
ソース
オープン
Spartan-3
Cyclon
なファミ
Virtex
Stratix
ECP2、他
リ
無償
際での使用に近いかたちでの評価ができるようにシンプル
な評価ボードを製作する。チップは Actel 社の FPGA の中
ソース
実装可能
開発環境
-
スターターキットでなく、より実
ProASIC3
では最もポピュラーな ProASIC3 ファミリの Cortex-M1 搭
IGLOO
載可能版の M1A3P600 とする。M1A3P600 はその名のと
Fusion
おり約 600k ゲート、13,824 個のロジックセル(Actel 社の
無償
デバイスではロジックセル単位を VersaTiles と呼ぶ)を持
有償
有償
30 日 間 の
時間制限
無償評価版
付きの無
がある
償評価版
ュ ROM は用意されていないので、一般的なフラッシュマイ
がある
コンのようなプログラム不揮発な使い勝手を得るには外部
ち、海外通販から数千円、1 週間程度で入手可能である。
ProASIC3 ファミリの場合、プログラム用の内部フラッシ
代表的なソフトコア CPU
にフラッシュ ROM を配置する必要がある。この場合、IP
Table 1. Typical Soft-Core CPU
として提供されるメモリコントローラが 16 ビットのデータ
表1
バスによる接続方法も利用できるため 16 ビットのフラッシ
ュ ROM を1つ用意するだけで済む。
その他に周辺回路として、リセット回路、クロック、電
源を用意し、いわゆる CPU ボードのよう仕様でまとめる。
試作したボードの写真を図2に示す。追加したフラッシュ
ROM は裏面に表面実装している。
図 1 ARM のファミリとアーキテクチャ
Fig.1. ARM family and architecture
表2
ARM7 と Cortex-M
Table 2. ARM7 and Cortex-M1
3. シンプルな評価ボードを試作する
FPGA に限ったことではないが、スターターキット等で
図 2 M1A3P600 シンプルボード
Fig.2. M1A3P600simple board
〈3・2〉 FPGA 内部回路設計
FPGA 内部回路の設計
一応の動作確認ができたあとの次のステップは自前で簡単
については、FPGA の中にソフトコア CPU を組み込む場合
な評価ボードを作り試してみることだろう。ProASIC3 や
は、これまでにない CPU 周りの自由度が生じてくる。また
Fusion の場合は 40 万~60 万ゲートのチップに PQ208 パ
その分、やり方を間違えるとトラブルの際にはハード、ソ
フトの切り分けなどの作業が大変になる。動作の確認には
2/6
テストベンチをユーザが準備することになるが、大きな構
成を構築してからの確認はかなり困難になる。確実な動作
をめざすには、最小限の規模の構成から組み立てて動作を
確かめていくのが最良の方法と思われる。
〈3・3〉
動作確認
本格的な CPU の利用の前に
FPGA ボ ー ド だ け で の 動 作 確 認 を 行 う 。 試 作 し た
M1A3P600 ボードにはこのような目的に利用する最低限の
I/O として LED を1つ設置している。これを利用すること
により、FPGA 内部の CPU の動作確認が行える。
確認手順は、まず初めに CPU を搭載せず、LED の点灯
のみの回路、クロックを分周して LED を点滅する回路等を
試しておく。これにより JTAG からの FPGA コンフィグレ
ーションの動作、FPGA 外部の回路動作が確認できる。つ
づいて最小限の CPU セットを構築し動作を確かめる。
CPU セットの作成は Actel 社のデバイスの場合は CPU
構築ソフトの CoreConsole を使用する。周辺回路を含めた
CPU の構築の後、作成した CPU の HDL ソースを回路合成
ソフトの IDE に読み込ませる。
CoreConsole の画面を図3に示す。この CPU モジュール
を受ける Top の回路を図4の Top.v に示す。Top.v はチップ
の外部配線を CPU に渡すだけのシンプルな構成となる。更
に外部ピンの接続情報を指定するファイルを用意します。
これあのシンプルな1つのグラフと2つのファイルを用意
するだけで 8k バイトの RAM と I/O を伴った Cortex-M1
が構築されることになる。
ここから先は通常のマイコンと同じとなるから、C 言語
のソフトウェアを用意する。アクテル社の Coretx-M1 には
SoftConsole と呼ばれる、Eclips の上に ARM 用の GCC を
載せた統合開発環境が提供さる。SoftConsole にはアクテル
社の JTAG 接続の書き込み機、FlashPro3 を利用したプロ
グラムの書き込み、デバッグ機能がサポートされる。
図 4 トップレベルの回路記述
Fig.4. Top level circuit description
動作テストとしてループによる LED 点滅動作を行うプロ
グラムをデバッグ中の SoftConsole の画面を図5に示す。
ソフトコア CPU の場合、I/O 等はハードウェアとしてある
程度作りこんでしまうので、ソフトでの設定が通常のマイ
コンチップに比べ省略あるいは簡単に済ませられる。
図 3 CoreConsole で CPU を作る
図 5 SoftConsole による開発
Fig.3. Design CPU using CoreConsole
Fig.5. Development on SoftConsole
3/6
LED の点滅だけでは物足りない
拡張 I/O ボードに対応した、外部メモリのインターフェ
のでもう少し I/O を充実させて、割り込みやプログラム不
ース、タイマ、割り込みコントローラ等を増設した CPU モ
揮発の実現など CPU の周辺機能の充実を試す手順について
ジュールのデザインを図8に示す。
〈3・4〉 I/O の拡張
紹介する。
ソフトコア CPU を使う場合でも I/O の物理的な仕様は通
常とかわらない。ここでは、押しボタンスイッチ、リマッ
プの切り替え用スイッチ、7セグメント LED、圧電ブザー
など定番のテスト用 I/O を用意する。その回路図を図6、
FPGA ボードと接続した写真を図7に示す。通常のマイコ
ンと異なりピンのアサインはあとからも変えられるので、
配線は使用する I/O の配置、形状に合わせて順に素直に
FPGA に接続するだけでいいことになる。図6では、拡張
I/O に対応したパラレルポートを追加した I/O テスト用
CPU の構成も併せて記述している。このような図を作って
おくとあとからのソフト開発のとき重宝する。
図 8 外部フラッシュ ROM、タイマ割り込みを
含めた CPU 周りのデザイン
Fig.8. Design of CPU including externalflashROM
and timer interrupt
4. まとめ
Cortex-M1 を搭載可能な Actel 社の FPGA の導入につい
て紹介した。本 FPGA は他の FPGA と比べソフトコアのラ
イセンス費が抑えられ、教材として使用するには適当と思
われる。実施例の報告等を期待する。
図 6 拡張 I/O ボードの回路図
Fig.6. Extended I/O board schematic
文
献
(1) 「FPGA 超入門」,デジタルデザインテクノロジ,2009 年春号 (2009)
(2) 「特集 FPGA マイコン活用テクニック」, デザインウエーブマガジ
ン,2008 年 12 月号 (2008)
(3) 大牧正知,コンピュータ・システム技術学習キット活用通信~第3回
EDK を使った MicroBlaze システム開発,Interface,2006 年 4 月
号,p176,CQ 出版社 (2006)
(4) 「特集ソフトウェア技術者のための FPGA 入門」,Interface,2009
年 9 月号,CQ 出版社 (2009)
(5) Joseph Yiu,ARM: 「Cortex-M3 システム開発ガイド」,2009 年 6
月,CQ 出版社 (2009)
図 7 拡張 I/O ボードを接続した様子
Fig.7. Connected Extended I/O board
4/6
Fly UP