私はFPGA上で動作するニューラルネットワークを構築しており、パズルの最後の部分はハードウェアでシグモイド関数を実行しています。これは、次のいずれかです。システムVerilogの浮動小数点数のe^xを計算しますか?
1/(1 + e^-x)
または
(atan(x) + 1)/2
残念ながら、ここでxはfloat値(SystemVerilogの中
real
値)です。
これらの機能をSystemVerilogで実装する方法についてのヒントはありますか?
これらの関数の両方が複雑で、フロート値の複雑さが増すため、どこで実装するのかわからないため、これは本当に混乱しています。
あなたはどのFPGAを設計していますか? DSPリソースはありますか? – Hida
FPGA上のDSPブロックを使用してシグモイド関数を計算します。 – noobuntu
レイテンシとスループットの要件は何ですか?それは私がこれをデザインするものに大きな影響を与えます。また、実際の(浮動小数点数)をハードウェアに合成できるFPGAツールには慣れていません(存在する可能性がありますが、それがあればかなり最近のものです)。 – hops