02.08.2013 Views

System Generator for DSP リファレンス ガイド - Xilinx

System Generator for DSP リファレンス ガイド - Xilinx

System Generator for DSP リファレンス ガイド - Xilinx

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

R<br />

CORDIC プロセッサはこのよ うな処理エレメン トがカスケード接続によ り構成されており、次の図<br />

に示すよ う に、各エレ メ ン ト が Simulink サブシステムとしてインプリ メント されます。 チェーンの<br />

最後のエレ メ ン ト の出力では、 zn は tan-1(x0) の近似値、 xn は K(x2 + y2)1/2 と な り ます。 こ の場<br />

合、 定数 K = 1.646760... です。<br />

CORDIC プ ロ セ ッ サの出力でのビ ッ ト 精度は、繰 り 返し ス テ ッ プ数の関数、 またはチェーンにあ る<br />

処理エレ メ ン ト の数の関数です。 この値はマスク パラ メータ と して保管でき、 モデルはパラ メータ<br />

の変化に対応し て動的に調整されます。<br />

VHDL では、 こ の タ イ プの反復する ブ ロ ッ ク の イ ン ス タ ンシエーシ ョ ンは、 FOR GENERATE 文<br />

で実行でき ます。 <strong>System</strong> <strong>Generator</strong> では、 サブシ ス テムのマス ク 初期化コー ド で MATLAB API 関<br />

数を実行し ます。 次の よ う にな り ます。<br />

cordic_pe = find_system(gcb, 'lookUnderMasks', 'all',<br />

'FollowLinks','on','masktype', 'CORDIC parallel PE');<br />

a=find_system(cordic_pe{1}, 'lookUnderMasks', 'all',<br />

'FollowLinks','on','masktype', 'CORDIC iteration PE');<br />

こ の結果、 含まれた CORDIC PE サブシ ス テムすべてのベ ク タ (セル配列) 'a' が生成 さ れます。 各<br />

ベクタの削除は、 次のよ うに実行されます。<br />

delete_block(a{i});<br />

ま た、 次の関数呼び出し では、 エレ メ ン ト 間の ラ イ ンが削除さ れます。<br />

delete_line(cordic_pe{1}, ['CORDIC PE' int2str(i-1) '/' int2str(j)],<br />

['CORDIC PE' int2str(i) '/' int2str(j)]);<br />

同様の呼び出し で、 サブシ ス テムの入力ポー ト および出力ポー ト への ラ イ ンが削除さ れます。 次の<br />

よ う に、 サブシ ス テムに反復サブシ ス テム を任意の回数挿入し ます。<br />

add_block([cordic_pe{1} '/CORDIC PE1'], [cordic_pe{1} '/CORDIC PE'<br />

int2str(i)], 'ii', int2str(i-1),'pe_nbits', 'pe_nbits','pe_binpt',<br />

'pe_binpt','pipeline',['pipeline(1,' int2str(i)<br />

')'],'position',[150+(i-1)*125, 70, 205+(i-1)*125, 130]);<br />

ここで、マスク パラ メータ pe_nbits および pe_binpt では、 各処理エレ メ ン ト のビ ッ ト 精度が定義<br />

されます。 サブシステム ブ ロ ッ ク は次の関数を使用し て接続されます。<br />

add_line(cordic_pe{1}, ['CORDIC PE' int2str(i-1) '/' int2str(j)],<br />

['CORDIC PE' int2str(i) '/' int2str(j)], 'autorouting', 'on');<br />

ザイ リンクス <strong>リファレンス</strong> ブロッ クセッ トには、CORDIC アルゴ リ ズムのバ リ エーシ ョ ンを含め、<br />

この API を使用する サブシ ス テムの例が含まれています。 API の構文の詳細は、Simulink のマニュ<br />

アルを参照して く ださい。<br />

メモ : CORDIC デモで示 さ れてい る よ う に、サブシ ス テムのマス ク 初期化コー ド にモデルを変更す<br />

る コ マン ド を組み込む場合は、 コー ド を MATLAB の 「try」 「catch」 節で囲み、このcatch 節で<br />

disp(lasterr) を呼び出す と 便利です。<br />

メモ : ブ ロ ッ ク のパ ラ メ ータ設定を容易にする ため、 ザ イ リ ン ク ス ではブ ロ ッ ク に設定で き るすべ<br />

てのパ ラ メ ータ と 設定可能なパ ラ メ ータ を記述する MATLAB 関数を提供し ています。 こ の関数を<br />

使用する には、 パ ラ メ ータ を設定する ブ ロ ッ ク の コ ピーを選択し、 次の関数を実行し ます。 こ こ で<br />

は、 ザイ リ ン ク スの Accumulator ブ ロ ッ ク に対し て生成 さ れる出力も同時に示し ます。<br />

446 japan.xilinx.com <strong>System</strong> <strong>Generator</strong> <strong>for</strong> <strong>DSP</strong> <strong>リファレンス</strong> ガイ ド<br />

リリース 9.2.00 2007 年 8 月

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!