2017-08-10 5 views
0

HDLの行列乗算について質問したいと思います。私は6ヶ月間、FPGAとASICの設計について学んできましたが、まだVerilog/VHDLを使ってFPGAをプログラミングするのに十分な経験はありません。私は迅速な検索をして、Verilyが私に適していることを発見しました。とにかく私は初心者だと思っています。今までは、ザイリンクスのSpartan 3E-XCS1600E MicroBlazeスターターキットを使用して作成した簡単なチュートリアルをたどりました。浮動小数点を含む行列をFPGAに乗算する方法は?

私にとって最も挑戦的な部分は、Verilogで行列を作成することでした。行列を作成して最初に整数で満たすことができれば、浮動小数点数を使って次のステップ行列に進むことができます。事前に、私はまた、これらの行列を逆にしたいと私には非常に難しいようです。

私の質問は、行列を乗算するにはどうすればよいですか? C言語のようにそれを行うには、トリッキーで簡単な方法はありますか? (私はVerilogがHDLであることを知っており、そのように考えることはできません)。浮動小数点数を固定または整数型に変換するにはどうしたらいいですか?それで私はこのように自分の問題を解決できると思う。他の質問を見ても、よく分からなかった。あなたのお返事ありがとうございます。

ボーナス質問:これらの操作をMATLABまたはSimulinkで試してみると、HDL Coderを使用してHDLに変換する方が簡単でしょうか?それがあれば、それを私に導くことができますか?

よろしく、

レオナルド

+0

多次元配列を持つ 'system verilog'では行列を作成するのが簡単です。それらを乗算することは簡単です... 'c'で。あなたのFPGAに搭載されている演算ユニットがない場合は、最低でも乗算ユニットを少なくともモデル化する必要があります。 – Serge

答えて

0

あなたは、ハードウェア設計のRAMを持つ行列を作成することができます。実際には、すべてはRAMとして記述することができます。

もちろん、整数だけをVerilogでサポートできますが、浮動小数点数を作成して計算できるメソッドがあります。

  1. float構文を定義します。 reg var[7:0]があると仮定すると、var [7:4]は整数部、var [3:0]は小数部とみなすことができます。 DECのように8'b0101_1001は5.9に等しくなります。 var [3:0]の範囲を0〜9に制限する必要があります!
  2. IEEE 754. http://grouper.ieee.org/groups/754/この規格は多くの分野で広く使用されていますが、少し難しいと思います。

行列は特別なものではなく、数学のクラスで学んだことに従ってください。

私は英語が上手ではありません。あなたが理解することを願って。

関連する問題