DesignSpark Electrical Logolinkedin
  • Brought to you by
  • RS Components
  • Allied Electronics

August 15, 2016 15:13

Follow

オープンソースFPGA開発プラットフォーム「Mystorm」を開発してみた

title

土曜の「オフィス」でビールと出来立ての基板を片手にくつろぐ二人

人の成すことには潮時というものがある ――ジュリアス・シーザー 第4幕 第3場面 (シェイクスピア )

今まさにオープンソースコミュニティは、溢れるアイデアとイノベーションの”潮流”の真っ只中にあるといえる。

title

これまで、市場から注目されながらも、気軽に触れる機会があまりなかったFPGA。一方私達OS(オープンソース)ムーブメントは、OS(オープンソース)ソフトウェア → OSファームウェア → OSハードウェアとその活躍の舞台を移動しつつ、ユーザの裾野を押し広げてきた。そして今、オープンソースムーブメントの波がプログラマブルハードウェアにまで到達してきた。今度のテーマは「FPGAを低価格で!」だ。

この「オープンソースのFPGA開発ボードをつくろう」というアイデアは、2016年5月のOSHUG(オープンソースハードウェアユーザグループ)での会合の中で生まれた。

FPGAの使用方法やその可能性についてのAlan Wood氏のトークセッションをぼんやり聞きながら、私はこの大胆なアイデアを閃いた。「OSHUGの活動で使える自分たち専用のオープンソースFPGAプラットフォームを作れないか」というものだった。

このアイデアはしばらく私の中で燻っていたが、これを更に刺激したのがウィーンを中心に活動するエンジニアのClifford Wolfだった。彼はその頃、FPGAの1つであるLattice ICE40のプログラムに使うビットストリームファイル構造のリバースエンジニアリングに成功した。そして、彼の成果である"Project IceStorm"が我々OSHUGやオープンソースハードウェアコミュニティをその気にさせた。

この嵐(Storm)のようなような経緯からmyStormプロヘクトは誕生した。

title

嵐(Storm)がやってくる?

ここ最近FPGAはかなり入手しやすくなってたき。かつては非常に高価だったが、最近100ドル前後の開発ボードを数社が販売するようになってきている。

しかし、これでもまだ充分でない。20年間に渡り、部品表から数円単位でコストを減らしてきたエンジニアの端くれとして、なんとか最大需要が見込める30ドル前後の価格にしなければならないと感じた。

この価格帯にすることで、多額の出費を強いることなく、若者や熱心な愛好家に新しい技術を知ってもらうきっかけとなる。ただ、12.5ドルの部品では、何を搭載して、何を搭載しないかという難しい決断をしなければならなかった。

深圳エクスプレス

幸い、私は中国深圳にToby Yuという友人がいた。彼は現地の電子産業に精通しており、とくにオープンソースコミュニティでの①小規模 ②速く ③安く というリクエストに応える生産を得意としていた。

そこで我々3人は、急いで事業化に乗り出した。これまでとは全く異なるFPGAの開発ボードを実現し、新しい設計を早く製造に移すため、できるだけの努力を行った。ただ、この時点で販売価格はまだよく見えてこなかった。

ICE40 HX1Kを使ったUSB接続のLattice Icestickをみたのだが、最低限の設計となっているため、ロジックエレメント数と拡張性が限られていた。

Latticeのこのチップには、1K、4Kおよび8Kのバージョンが存在するが、8Kのバージョンは残念ながらBGAパッケージとなってしまっている。我々は、表面実装部品をはんだ付けできる人が自分で製作・改良できるように、また2層基板で設計したかったためだ。一方、BGAのパッケージは初心者向けではないだろう。

J1 Forthプロセッサを生み出した北カリフォルニアの良き友人 James Bowmanは、9月にLatticeのチップの1K上でJ1a CPUをデモした。これを見た私は、このオープンソースオープンコアプロセッサと高速な外部SRAMを用意することで、16bit64Kのアーキテクチャを作りたいと考えた。

OSHUGを毎月行っているBritish Computer Societyの向かいの通りにあるパブCoal Holeで、第一回目の関係者打合せを行った。Alanと私の非常に熱のこもった議論の末、9月初めのヨークシャーHebden Bridge市で行われるOSHUGの年次会合「OSHcamp」のFPGAワークショップで、PCBでの最初デモを行うということを決めた。

戦いが始まった。新しいFPGA開発ボードを完成させるまであと約16週間である。

設計初期段階

次の日から基板CADで144 pin LQFPパッケージのFPGA用のフットプリントライブラリを作り始めた。慎重にすべての電源ピンとグランドピンが正しく接続されているか確認した。これが終わった後、高速な10nS 512Kx16 SRAMをFPGAの真下に来るよう、PCBの裏側にRAMのチップを配置し、できるだけ短い距離で接続した。

設計の中心となるFPGAとRAMの配置は終わったが、Alanと私は、OSHUGのメンバーのニーズによく合うよう、他に何をボードに乗せるべきか何度も検討した。

FPGAにビットストリームファイルをプログラム可能なマイクロコントローラと多くのFPGAボードに搭載されている普通のFT2232デュアルUSBシリアル変換デバイスをボードに乗せるべきだという結論に至った。ただ、3ポンドは我々の目的には少し高すぎると思われた。

AlanはXMOSのデバイスにバックグラウンドがあるため、候補として初めは検討したが、コストの面で排除された。私は、ここ数年ARMベースの基板設計を行ってきたのでARMのチップを搭載したいと考えた。また、簡単にAT Tinyなどの8bitデバイスも簡単に検討した。

Giga Devicesという北京を拠点にする企業から非常に安価なARM Cortex M3のチップが出ているという話を耳にした。ARMコントローラでよく利用されるSTM32シリーズとピン配置およびコードに互換性があるという。

Giga Devicesは実際には大きなフラッシュメモリの製造で有名な企業で、GD32はコストに敏感な中国マーケットに低価格のARM M3チップを供給するため、生産に初めて乗り出した製品だ。

GD32はおそらく皆が考えているようなただのSTM32のコピー品ではなく、彼らがその権利を有している点がユニークだ。フラッシュメモリを製造していたバックグラウンドから、Giga Devicesのチップ設計者は賢い方法を見つけた。フラッシュメモリのダイをARMコアと同じパッケージに入れている。起動時にフラッシュメモリの内容はARMのオンチップSRAMにコピーされ実行される。これにより、M3コアの高パフォーマンスを実現でき、フラッシュの遅いアクセス時間が問題となったり、フラッシュの読み込みアクセス時間を増加させるバッファを用意したりする必要がない。

詳しくはこの記事をご参照いただきたい。

設計が90%ほど終えていたある日、ジグソーパズルの2つのピースがはまった。イギリスのメイカーコミュニティと中国深圳からやってきた友人Toby Yuとで、2500マイルの2週間のイギリス旅に向かった。

title

Toby meets the Pi Moroni Crew in Sheffield

この長いイギリス旅行が終わり、我々が"週末オフィス"にしているパブ「Shepherd Flock」でビールを飲んでいるとき、Alanは秘めていた素晴らしい計画を考案について説明してくれた。

Alanのアイデアはこうだ。基板の一辺にあるコネクタをRaspberry PiやPi Zeroに直接もしくは40PinのIDCケーブルを使って接続できるようにしたことである。Cliffordの Ice Storm Tool ChainをRaspberry Piで動作させることができ、ARMチップのフラッシュメモリを通じて、ビットストリームファイルをFPGAへダウンロードするのにも使うことができるのだ。

title

信号のインタフェースのため、SPIに加えて、8bitのバスがRaspberry PiとARM、FPGAで共有されている。これにより、3つのデバイス間で大きなデータを高速に転送するのが可能になる。

さらに、ARMはPCやラップトップにUSBインターフェースを提供し、USBポートを通じてFPGAをプログラムすることもできる。

myStorm – ティーカップの中

画して我々のFPGA「myStorm」は、4Mbit 高速10nS SRAMが接続された低消費電力・多機能FPGA、32bit ARMマイクロコントローラ、Pi Zeroという独自の組み合わせとなった。

FPGAのすべての開発ツールを動作させるRaspberry Pi ZeroはFPGAとARMの統合設計環境を提供し、ハードウェアハッキングプロジェクトの新しい形となる。

大容量SRAMの取り付けられたLattice ICE40シリーズのFPGAとARM M3/M4 CortexマイクロコントローラによりソフトCPUコア設計を含むFPGAのハードウェアアプリケーション設計に理想的な開発プラットフォームを実現する。

拡張性

はじめから、オープンソースハードウェアコミュニティに支持されるようなよく考えられた設計にしたいと我々は考えていた。これには、できるだけ多様な使い方ができる新しいボードを目指して、拡張性を高くしなければならない。

PMODという、Digilentによって考案されたFPGAボードの標準規格のコネクターがある。6ピンの2.54mmピッチメスピンヘッダに、VCCと0V、そして4つの信号線をFPGAのピンから直接取り出している。2つのPMODを重ねることで、ダブルPMODとなり、8つの信号線と電源、GNDを供給できる。

PMOSとPMODにより、ハードウェアを簡単にFPGAボードに接続できるようになり、また、PMODと互換性のあるたくさんのアドオンボードがすでにさまざまなベンダーから販売されていることも利点だ。さらに、ピッチが2.54mmであるので、ユニバーサル基板やブレッドボードのちょっとした回路にも簡単に接続できるのだ。

以前、Arduinoに接続できる互換ハードウェアを作っていたため、ボードにArduinoのシールドと接続できるピンヘッダを取り付けたいと強く思っていた。これがあると、様々な種類のArduinoアクセサリを直接接続することができるようになるからだ。

ARMプロセッサはArduinoのコミュニティにも組み入れられて、Arduino DueやSTM32-Duinoとして知られるArduinoコードが走る STM32F103 ベースのボードなどに使われている。

Olimexは最近、ICE40 HX1KのFPGA開発ボードをリリースしており、これにはLVDSという差動インターフェースが採用されている。我々も、このコネクタをmyStormの下側にいくつかのダブルPMODの代わりに使うことができるように配置した。

最後に、ちょっとした遊び心で、32x32のRGB LEDアレイを直接、IDCケーブルでボードに接続できるようなコネクタも用意した。

そしてARMプロセッサがFPGAのプログラミングしないときには、いくつかの12bitのADC、5VトレラントのGPIO、そして、SPI・I2C・UARTといった共通インタフェースを持つ、32bitのコプロセッサとして利用できるようにもなっている。ARMの20のデジタルピンと12bit ADCの6チャンネルがArduino用のヘッダに引き出されている。

STM32のARMコントローラを使う利点として、シリーズを通してピンの互換性が広くあり、様々なM3やM4、低消費電力M4 64bitプロセッサなどもこのボードに搭載することが容易であることがあげられる。予算の問題も考えると、GD32F103RCは2ドル以下で売られている。

myStormを製作

7月の3週目、ボードの設計が完了した。この時点で16週間のプロジェクトの8週目だった。ガーバーを深圳のTobyに送り、彼は12ボードが載った5パネル、計60枚のボードを現地のPCBサプライヤで製造した。それと同時に、2セットのメタルマスクを発注し、1セットをイギリスのチームに、もう一方を深圳で保管することにした。

ガーバーを送った、たった4日後、ボードとマスクが出来上がった。1つのメタルマスクと1枚の基板パネルを梱包して、TobyにDHLで送ってもらった。ガーバーの注文ボタンを押してから、たった7日後には、ボードをSurreyで手にすることができた。7月の最終週の週末、0402部品を手配置し、メタルマスクを使い、Alanの"ローテク"ホットプレートで、3つのボードを仕上げた。

1週間後、emfcampで少しだけボードをお披露目し、ここで残りのPCBを、深圳の現代的なSMTのラインでの組み立てに移す自信を得た。

Tobyは受動部品とコネクタの部品表を用意し、私はRSコンポーネンツからICを供給する準備をした。数か月前に別のTobyが参加した取り組みでFTDIのグラフィックコントローラICが必要になり、深圳に部品を供給するのは簡単ではないのでRSを利用した。RSの部品を世界各地に出荷する輸出部署に連絡をとったところ、3日でICを深圳まで届けてくれた。

加えて、 OSHCampのウィークエンドワークショップを支援しているPete Woodが、RSコンポーネンツのDesignsparkコミュニティを通して、寛大にもmyStormボードに必要なICを提供してくれた。myStormボードは、OSHCampのFPGAワークショップで供給される予定だ。

私がこれを書いているのは8月10日で、ちょうどFPGAが届き、さらにパーツがRSの輸出部署を通して届く予定だ。これらは深圳のTobyの下へ届けられる予定なので、PCBの組み立ては8月22日から開始できるはずだ。組み立てられたボードは、深圳から24日に出荷され、DHLでOSHCampの中心人物であるAndrew Backに直接届けられることになっている。

Alanと私は9月1日にHebden Bridgeに赴き、9月4日日曜日のFPGAワークショップでmyStormハードウェアプラットフォームについて発表予定だ。

The myStorm Projectの最新情報については Alanのブログ をご覧ください。

私のTwitterアカウントはこちら  @Monsonite

イベント情報 

OSHcamp 2016Wuthering Bytes Festival   - 9日間のイベント- Hebden Bridge, UK  - 2016年9月2-11日

kenboak has not written a bio yet…

August 15, 2016 15:13

Follow