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 />

スライス関数 : xl_slice<br />

xl_slice 関数を使用する と 、固定小数点型ビ ッ ト のシーケ ン スにア ク セ スで き ます。 関数は次の形式<br />

で記述し ます。<br />

x = xl_slice(a, from_bit, to_bit)<br />

固定小数点の各ビ ッ ト は、 LSB の 0 から MSB に向かって、 連続し た数字で イ ンデ ッ ク スが付き ま<br />

す。 たとえば、8 ビッ ト幅で 2 進小数点の位置が 0 にあ る場合、 LSB のインデッ クスは 0 に、MSB<br />

のインデックスは 7 にな り ます。from_bit または to_bit 引数が入力数の イ ンデ ッ ク ス範囲を超え る<br />

と、 エラーになり ます。 関数を実行し た結果は、 0 の位置に 2 進小数点があ る符合な し固定小数点<br />

にな り ます。<br />

次はその例です。<br />

% slice 7 bits from bit 10 to bit 4<br />

b = xl_slice(a, 10, 4);<br />

% to get MSB<br />

c = xl_slice(a, xl_nbits(a)-1, xl_nbits(a)-1);<br />

連結関数 : xl_concat<br />

x = xl_concat(hi, mid, ..., low) 関数では、 複数の固定小数点の値が連結さ れ、 1 つの固定小数点値<br />

が作成されます。 最初の入力引数が MSB に、 最後の入力引数が LSB にな り ます。 出力は、 0 の位<br />

置に 2 進小数点があ る符合な し固定小数点にな り ます。<br />

再解釈関数 : xl_<strong>for</strong>ce<br />

x = xl_<strong>for</strong>ce(a, arith, binpt) 関数は、 出力を新し いデータ型に し ます。 arith はその新しい演算型に、<br />

binpt はその新しい 2 進小数点の位置にな り ます。 arith は、xlUnsigned、xlSigned または xlBoolean<br />

のいずれかにで き ます。 binpt は、 0 ~ ビッ ト幅にしないと、 エラーになり ます。<br />

ステート変数 : xl_state<br />

MCode ブロックには、1 つのシ ミ ュ レーシ ョ ン段階か ら次の段階にな る と き に値を保持する内部ス<br />

テー ト 変数を含める こ と ができ き ます。 ステート変数は、MATLAB キーワードの persistent で宣言<br />

でき、 最初に xl_state 関数呼び出し で代入する必要があ り ます。<br />

次のコード は、 4 ビット アキュムレータの例です。<br />

function q = accum(din, rst)<br />

init = 0;<br />

persistent s, s = xl_state(init, {xlSigned, 4, 0});<br />

q = s;<br />

if rst<br />

s = init;<br />

else<br />

s = s + din;<br />

end<br />

ステート変数 s は、 persistent に宣言され、 s への最初の代入は xl_state を起動した結果になってい<br />

ます。 xl_state 関数では、 2 つの引数が使用さ れます。 1 つは初期値で、 定数にする必要があ り 、 も<br />

う 1 つはス テー ト 変数の精度で、 xfix 関数呼び出し で説明 さ れてい る よ う なセル配列型か、 xfix 型<br />

にでき ます。 上記の コー ド の場合、 s = xl_state(init, din) では、 ステー ト 変数の s に din が精度と し<br />

て使用されます。 xl_state 関数は、 persistent 変数に代入する必要があ り ます。<br />

xl_state 関数は、 次の よ う に動作し ます。<br />

<strong>System</strong> <strong>Generator</strong> <strong>for</strong> <strong>DSP</strong> <strong>リファレンス</strong> <strong>ガイド</strong> japan.xilinx.com 221<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!