何かしらのデバイスを作る時にシングルボードコンピュータの上でソフトウェアを記述すれば良いものも多々あります。しかし、研究上どうしても速度的な問題等でロジック回路に頼る必要がある部分が発生します。近年ロジック回路はFPGA(フィールド・プログラマブル・ゲート・アレイ)と呼ばれるLSIに後から任意のロジックを組み込むことが可能になりました。おかげさまで、今まで複雑なロジックで作製も諦めていた回路も簡単?に低価格で作ることが可能となりました。
当然シングルボードコンピュータとFPGA上に作った複雑なロジックとを「通信」させたくなります。
はい!色々とできることが増えます。
ここで問題なのがシングルボードコンピュータ(ここではRaspberryPi3)に付いているGPIO(General-purpose input/output)と呼ばれるインターフェースの割り込み処理での応答速度が130μsec程度と遅く、データの送受信速度はさほど期待できるものではないのです。このシングルボードコンピュータにはSPI(シリアル・ペリフェラル・インタフェース)と呼ばれる通信用ICが搭載されており、こちらを用いれば5Mbpsくらいの速度は出せそうです。
ということで、研究室でモノづくりのベースとなってもらうためFPGAにSPI通信ロジックを組み込み、シングルボードコンピュータ(RaspberryPi3)とFPGA(Cyclone V)との通信を実装してみました。 さらって書いてありますが、持ってきてつなげば動くというものでは無いので結構面倒くさかったです。