FPGAは楽しい!
昨年(2019年)の春頃から、FPGAに取り組み始めました。 FPGA(Field Programmable Gate Array)とは、プログラマブルなハードウェアです。
HDL(Hardware Description Language: ハードウェア記述言語)というプログラミング言語によって、デジタル回路を記述します。 これがいわゆる「ソースファイル」に当たります。 HDLで記述したソースファイルを開発ツールで処理することにより、Bitstreamファイル(FPGAに与える定義データ)を生成します。 FPGAの電源を投入すると、FPGAはBitstreamファイルを読み込んで、記述した回路として動作するという仕組みです。
数年前からFPGAには興味があったのですが、2019年になって本腰を入れて取り組むことにしました。 いろいろと情報を集めて、3月12日に秋葉原の秋月電子で、Xilinx社のFPGAが搭載されたZybo Z7-20というボードを購入しました。
このボードには、Xilinx社のZynq-7020というFPGAが搭載されています。 Zynqシリーズは、FPGAに加えて、CPU(デュアルコアのCortex-A9)も搭載しています。 ですからCPUとFPGAを組み合わせて、処理を行なうこともできます。 また、CPU上でLinuxを動かすこともできます。
広く使われているHDLとしては、Verilog HDLとVHDLの2種類がありますが、私はVerilogを選びました。 Verilogの入門書を読みつつ、サンプルを写経したり、アレンジしたりしました。 Verilogを一通りは理解しました(つもりです)。 ソフトウェアと同じように、実際にはこの先の道のりが果てしなく長いわけですが。
下の動画は、Zyboをいじりはじめた頃(2019/3/30)のもので、VerilogでLチカ回路を実装して動かしています。
Lチカとは、「LEDをチカチカ点滅させる」という意味で、ソフトウェアのHello Worldに相当します。
4個のLEDを順に点滅させるだけですが、自分で設計した回路が動作するのはわくわくしますね。 「パタヘネを読みながらCPUを実装したいな」などと、夢が広がります。