FPGA超入門 その0-イントロダクション-

1 min read

そもそもFPGAって何?

Field Programmable Gate Array、要するにプログラマブルに論理回路を書き換えられる集積回路のこと。
Altera[1]がIntelに買収されたり、Xilinx[1:1]がAMDと買収合意なんてニュースもあったりして、CPU+GPUに+FPGAなんて時代が来るかも知れません。今まで知らなかった人も、もしかしたら見聞きしたり触る機会が増えるかもと思って、この記事を書こうと思いました。

どんなことに使うの?

デジタル信号処理、画像処理、ネットワーク通信、、、挙げればキリがないほど。
データセンターにFPGAを使ったり、AWSがFPGAに対応していたり、仮想通貨マイニングや機械学習なんかでも。
論理回路を組み合わせて作れるものなら何だって出来る!(はず。。。)

どうやって設計するの?

昔は回路図で設計した(小規模の場合は今もやってる人いるのかな?)けど、ハードウェア記述言語(HDL)で書いてコンパイルする方が一般的かと。HDLには、VHDLやVelilogといったものがあります。
高位合成(HLS)というC++等の言語で記述したコードから回路生成するという手法もあり、ソフトウェアエンジニアさんならこちらを使ってみるのもよいかもしれません。(ハードウェア設計を意識したコードを書かないと期待した性能が出ないようですが。)

さてさて

今後は、FPGAを動かすための基礎的なこと(論理回路やHDLの書き方とか)や、より実践的なことについて書いていければと思っています。こんな記事があったらいいなんてコメントいただけると幸いです。

脚注
  1. ともにFPGAの代表的な企業。2社でシェア80%以上とも。 ↩︎ ↩︎