●回路削減しても判定結果が合っているか確認
図11‐22はシミュレーションを1500usほど走らせたようすです。ANSWERが判定結果で7、2、1、0、4、1、4、9と正解が続きます。パイプライン化されているので判定結果は100us毎に出てきます |
図11-22 MNISTの最初の8枚の判定結果。シミュレーションには10時間以上かかった
●judge.vhdのAINにAffine2層目の出力が入る
図11-23のAINは判定回路の入力(Affine2層目の出力)です。7+1番目が1番大きいので判定結果は’7’になります。これはMNIST画像の最初の1枚です。 |
図11-23 Pythonの結果(図11‐26の1行目)と比較してみよう
図11-24のAIN信号では2+1番目が1番大きいので判定結果は’2’になります。これはMNIST画像の2枚目です。 |
図11-24 Pythonの結果(図11‐26の2行目)と比較してみよう
図11‐25のAIN信号では9+1番目が1番大きいので判定結果は’9’になります。これはMNIST画像の8枚目です。 |
図11-25 Pythonの結果(図11‐26の8行目)と比較してみよう
●PythonでもEXCELでもVHDLでも同じ結果になる
図11-26はPythonにおけるAffine2層目の出力です。1行目はMNIST1枚目、2行目はMNIST2枚目、8行目はMNIST8枚目です。上のシミュレーションと比べてすべての値がピタリ一致していることを確認します。
ビット削減したので以前より各値は小さくなっていますが、かなり余裕をもって正解しています。一番下には正解率がありますが、VHDLにおいてもこの数字(98.53%)になるはずです |
図11-26 Anaconda jupyter labでPythonを走らせた結果
●使用率は6割強なのでまだ余裕がある
図11‐27は係数2ビット化後の論理合成結果です。以前より回路規模が2割程度減り、ロジックの使用量が63%となりました。後々回路を追加することを考えると、これくらいの余裕があると安心です。 |
図11-27 論理合成すると使用率は63%
最初のページへ
目次へ戻る |