@回路図を書く
VHDLはハードウエア記述言語(Hardware Description Language)の一種で、「回路」を表現する言語です。したがってスタートは回路設計、すなわち回路図を書きます。
ソフトウエアにおける「配列」はハードウエアでは「メモリ」に相当します。また「配列のインデックス」はハードウエアにおいては「カウンタ」により生成します。
Aタイム・チャートを書く
ソフトウエアは逐次処理であるゆえに「フローチャート」でその振る舞いを表現します。それに対しハードウエアは並列処理なので「タイムチャート」を使用します。
タイムチャートとは、複数の信号がどの時刻にどのような振る舞いをしているかを表現した図であり、並列処理の一種の表現法ともいえます。
なお@とAは同時進行的に進めたり、あるいはAの方を先に行ったりする場合もあります。
BVHDLを書く
タイムチャートで回路が所望の動作をしているかを確認した後は回路図をVHDL化します。本企画ではEXCEL上の「重みやバイアス値」を大量に「ROMのVHDLファイル」にコピペする必要があります。手作業では困難なので。その部分は「EXCEL+VBA」でVHDLファイルを自動生成します。
C論理シミュレーション
VHDLファイルをコンパイルして「論理シミュレーション」します(*1)。演算の結果や途中経過がEXCELとピタリ一致していることを確認します。これでVHDL化は終了です。
(*1)人間の頭の中での論理シミュレーションには限界があります。近年は無償のツールが使えるようになったのでぜひ活用しましょう。論理シミュレーションなしでFPGAに実装してもほぼ動かないと思ってください。
|