私はTaylorシリーズを使ってVerilogでCOS X関数を実装しようとしています。テイラー級数近似を使ってcosxを計算するためのVerilogコード
"テイラー級数近似を使用してcosXを計算するためのVerilogコードを作成してください。X = 0の符号付き10進基数形式のソースとテストベンチコードを添付してください10°の増分で360°まで "
私は進む前にいくつかのことを理解する必要があります。 10°0°〜360°=> 36位小数で
36は、6ビットで表現することができるカバーする単位:私は
解像度計算間違ってどこかだ場合私を修正してください。 6ビットを使うことができるので、解像度は64ワードを使用することによってわずかに改善されます。 64ワードは0°から360°を表し、したがって各ワードは5.625°の分解能、すなわち0°から360°のCosのすべての値を5.625°単位で表します。 は、このように分解能は5.625°
テイラー級数計算 COSため テイラー級数は、それが簡単ですが、私は、クエリ
1)のカップルを持っているCos x approximation by Taylor series
COS X = 1 − (X^2/2!) + (X^4/4!) − (X^6/6!) ..... (using only 3~4 terms)
で与えられます乗算器を使用してX * X(X正方形)またはX立方体の項を生成するには、X正方形またはX立方体の項の計算中に生成される余分なビットを処理する方法がわかりませんs。 出力は8ビットのみです
たとえばX = 6ビットです。 Xの正方形= 12ビット; Xキューブ= 18ビット。
私はそれらを生成し、後でMSBの結果全体の8ビットだけを考慮して無視しますか? ...そのような波が右を吸うだろうか?
2)Taylorシリーズの開始時に+1を処理する方法がわかりません... COS X = - (X^2/2!)+(X^4/4! ...私はバイナリ1を直接追加するか、私はの6ビットと出力のの8ビットを使用しているので、2^8 = 255または2^6 = 64として1をスケーリングする必要がありますか?