2017-02-06 8 views
-1

VHDLでarctanを計算する必要があります。このため私はCilinx IPコア "Cordic V4.0"を使用します。 これはデータシートである:VHDL - XILINX CORDICアルゴリズム

https://www.xilinx.com/support/documentation/ip_documentation/cordic_ds249.pdf

I'veは、逆正接計算が-1から1

入力値が私の値は2^32ビット(整数、ノーの範囲を持っている必要があることを読み出しますフラクション)。

入力値をCordic-Algorithmに入れる前に変換する必要がありますか?

はいの場合、どのように変換する必要がありますか?それが書かれているザイリンクス明細書において

よろしく、 エリック

答えて

0

「入力ベクトル、(XIN、陰)、及び出力ベクトル、(Xout端子、Youtの)をペアとして表され(1QN形式)の固定小数点2の補数の入力回転角Pin radiansは、固定小数点2の補数で表現されますが、3ビットの整数幅(2QN形式)で表されます。 "

したがって、32ビット幅のベクトルを使用している場合、2つの最上位ビットが整数部分として使用され、30のその他のビットが小数部分として使用されます。

あなたはどのように固定小数点数の作業がわからない場合、私はあなたがそれについて少し読むことをお勧め:

https://en.wikipedia.org/wiki/Fixed-point_arithmetic

+0

ちょうどこの部分の上に読んでああ。ありがとうございました。 Wikipediaによると、 "スケーリング係数Rの固定小数点型からスケーリング係数Sの別の型に数値を変換するには、その整数にRを掛けてSで割る必要があります。比率R/S " 私は30桁のMantisseのために私のNumberをスケールする必要がありますか? 私はバイナリで2^30と2^2で除算する必要がありますコンマを移動することによって行うことができますか?それは正しい? – oleeiner

+0

実際には、実際の範囲[-1; 1 [[-2^31; 2^31 [で表されます。したがって、第2セグメントの1ステップは、実数で1/2^31(すなわち:4.66 * 10^-10) –