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.

MCode<br />

empty = v.empty; ベク タが空の場合は true を、それ以外の場合は<br />

false を返します。<br />

len = v.length; ベクタのエレ メン ト数を返します。<br />

ステー ト 変数を問い合わせるベク タの メ ソ ッ ド は 「ク エ リ ー メ ソ ッ ド 」 と 呼ばれます。 クエリー メ<br />

ソッドは、値を返します。 クエリー メソッドには、v(idx)、v.front、v.back、v.full、v.empty、v.length、<br />

v.maxlen などがあり ます。 ス テー ト 変数を変更するベク タ の メ ソ ッ ド は、「ア ッ プデー ト メソッド」<br />

と 呼ばれます。 アップデート メ ソッドは値を返しません。 アップデート メ ソッドには、v(idx) = val、<br />

v.push_front(val)、 v.pop_front、 v.push_back(val)、 v.pop_back、 v.push_front_pop_back(val) など<br />

があ り ます。 ベクタのクエリー メ ソ ッ ド は、 すべてシ ミ ュ レーシ ョ ン サ イ ク ル中に、 ア ッ プデー ト<br />

メソッドよりも前に起動される必要があります。 この順序が違う と、 モデルのコンパイル中にエ<br />

ラーになり ます。<br />

MCode ブ ロ ッ ク では、 ベ ク タ型のス テー ト 変数がその使用方法に基づいて、 レ ジ ス タ のベ ク タ、 遅<br />

延ラ イ ン、 ア ド レ ス指定可能なシフ ト レジスタ、 シングル ポー ト ROM、 シングル ポー ト RAM<br />

などにマップされるこ とがあり ます。 xl_state 関数は、MATLAB の一次元配列を イ ンデ ッ ク ス 0 の<br />

定数配列に変換する ために使用する こ と も で き ます。 MCode ブロックでベクタ型のステート変数<br />

を FPGA デバイ スにマ ッ プで き ない場合は、 モデルのネ ッ ト リ ス ト 生成中にエ ラー メッセージが<br />

表示されます。 次は、 ベ ク タ型のス テー ト 変数を使用し た例です。<br />

遅延ラ イ ン<br />

次の関数のス テー ト 変数は、 遅延ラ イ ンにマ ッ プ さ れます。<br />

function q = delay(d, lat)<br />

persistent r, r = xl_state(zeros(1, lat), d, lat);<br />

q = r.back;<br />

r.push_front_pop_back(d);<br />

レジスタのライン<br />

次の関数のス テー ト 変数は、 レ ジ ス タ の ラ イ ンにマ ッ プ さ れます。<br />

function s = sum4(d)<br />

persistent r, r = xl_state(zeros(1, 4), d);<br />

S = r(0) + r(1) + r(2) + r(3);<br />

r.push_front_pop_back(d);<br />

定数のベ ク タ<br />

次の関数のステー ト 変数は、 定数のベク タにマ ッ プされます。<br />

function s = myadd(a, b, c, d, nbits, binpt)<br />

p = {xlSigned, nbits, binpt, xlRound, xlSaturate};<br />

persistent coef, coef = xl_state([3, 7, 3.5, 6.7], p);<br />

s = a*coef(0) + b*coef(1) + c*coef(2) + c*coef(3);<br />

ア ド レス指定可能なレジス タ<br />

次の関数のス テー ト 変数は、 ア ド レ ス指定可能なシフ ト レジスタにマップされます。<br />

function q = addrsr(d, addr, en, depth)<br />

persistent r, r = xl_state(zeros(1, depth), d);<br />

q = r(addr);<br />

if en<br />

r.push_front_pop_back(d);<br />

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

リリース 9.2.00 2007 年 8 月<br />

R

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

Saved successfully!

Ooh no, something went wrong!