UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

AR# 15137

LogiCORE CORDIC v3.0 - 平方根ファンクションのデータ入力/出力に使用されるフォーマット

説明

キーワード : calculate, calculation, 計算

CORDIC core v1.0 を使用して入力の平方根を算出する必要があります。 入力および出力データに必要なフォーマットは何ですか。 フォーマットはどのように平方根に関係しますか。

ソリューション

データ フォーマットに関して例をはじめとする情報が、CORDIC v4.0 およびそれ以降のバージョンのデータシートに記載されています。

CORDIC コアの出入力は、Q1 フォーマットの 2 進数です。Q1 フォーマットには、左から 1 つ目の位置に虚数の小数点がにあります。CORDIC の平方根関数では、符号なしの出入力データが想定されます。Q1 フォーマットの例は次のとおりです。

CORDIC コアを平方根計算に使用する場合、次の 2 つのケースがあります。

ケース 1 : 小数の平方根を計算する場合

8 ビット入力の入力フォーマット :
0.0001000 = (SQRT 1/16)
8 ビット入力の出力フォーマット :
0.0100000 = (1/4)

20 ビット入力の入力フォーマット :
0.0001000000000000000 = (SQRT 1/16)
20 ビット入力の出力フォーマット :
0.0100000000000000000 = (1/4)

ケース 2 : 平方根の出入力を直接解釈して入力範囲を変更する場合

左から 1 つ目の位置 (Q1) から開始し、入力データが 2*N ビット左にシフトされている場合は出力データを N ビット左にシフトします。

平方根の 8 ビット入力 :
0000100.0 = (SQRT 4) ------> この入力は 6 (= 2*3) ビット シフトされているので N = 3
0010.0000 = (2) ---> 出力を 3 ビット分シフト

平方根の 20 ビット入力の例 1 :
0000000000000000010.0 = SQRT(2) ---------> 入力が 18 (= 2*9) シフトされているので N = 9
0000000001.0110101000 = 1.4140625 ------> 出力を 9 ビット分シフト

平方根の 20 ビット入力の例 2 :
0000000000000000100.0 = SQRT(4)
0000000010.0000000000 = 2

CORDIC 平方根の整数出入力のインスタンシエーションは次のとおりです。

X_IN : STD_LOGIC_VECTOR(20-1 DOWNTO 0);
X_OUT : STD_LOGIC_VECTOR(20-1 DOWNTO 0);

21 ビット平方根のインスタンシエーション :

X_IN_SQRT : STD_LOGIC_VECTOR(21-1 DOWNTO 0);
X_OUT_SQRT : STD_LOGIC_VECTOR(21-1 DOWNTO 0);

次のように指定します。

入力 :
X_IN_SQRT <= X_IN & '0';

出力 :
X_OUT(20-1 DOWNTO 11) <= (OTHERS=>'0');
X_OUT(10 DOWN TO 0) <= X_OUT_SQRT(21-1 DOWN to 10)

LogiCORE CORDIC のリリース ノートおよび既知の問題は、(Xilinx Answer 29570) を参照してください。

AR# 15137
日付 03/27/2009
ステータス アクティブ
種類 一般
このページをブックマークに追加