2-01 VHDL化への流れ

 第1章ではPythonで書かれたディープラーニングのプログラムを「整数化」し、さらにEXCELに移植しました。第2章ではそれを「VHDL化」します。その手順は図2-01のようになります。基本的に@から順にCまで進みますが、なにか問題が起こったときは、その都度上流に戻って再検討します。




@回路図を書く

 VHDLは
ハードウエア記述言語(Hardware Description Language)の一種で、「回路」を表現する言語です。したがってスタートは回路設計、すなわち回路図を書きます。
 ソフトウエアにおける「配列」はハードウエアでは「
メモリ」に相当します。また「配列のインデックス」はハードウエアにおいては「カウンタ」により生成します。


Aタイム・チャートを書く

 ソフトウエアは逐次処理であるゆえに「フローチャート」でその振る舞いを表現します。それに対しハードウエアは並列処理なので「
タイムチャート」を使用します。
 タイムチャートとは、複数の信号がどの時刻にどのような振る舞いをしているかを表現した図であり、
並列処理の一種の表現法ともいえます。
 なお@とAは同時進行的に進めたり、あるいはAの方を先に行ったりする場合もあります。


BVHDLを書く

 タイムチャートで回路が所望の動作をしているかを確認した後は回路図をVHDL化します。本企画ではEXCEL上の「重みやバイアス値」を大量に「ROMのVHDLファイル」にコピペする必要があります。手作業では困難なので。その部分は「EXCEL+VBA」でVHDLファイルを
自動生成します。


C論理シミュレーション

 VHDLファイルをコンパイルして「論理シミュレーション」します(*1)。演算の結果や途中経過がEXCELと
ピタリ一致していることを確認します。これでVHDL化は終了です。


(*1)人間の頭の中での論理シミュレーションには限界があります。近年は無償のツールが使えるようになったのでぜひ活用しましょう。論理シミュレーションなしでFPGAに実装してもほぼ動かないと思ってください。


目次へ戻る