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

定数式<br />

これが使用できるのは、 a と b の両方がブール型ま たは演算型になってい る場合のみです。<br />

定数式 と は、 その値を表す定数であ り 、 入力引数の値には依存し ません。 たとえば、 変数 c を次の<br />

ように定義したとします。<br />

a = 1;<br />

b = a + 2;<br />

c = xfix({xlSigned, 10, 2}, b + 3.345);<br />

こ れは、 定数を要求する どの文で も使用で き ます。<br />

xfix() Conversion<br />

xfix() 変換関数では、 double が xfix に変換されるか、 1 つの xfix が異な る特性を持つ別のデータ<br />

型に変更されます。 こ の変換関数の呼び出し文は、 次の よ う にな り ます。<br />

x = xfix(type_spec, value)<br />

こ の場合、 x は xfix を受け取る変数で、 type_spec は作成する xfix のデータ型を指定する セル配列<br />

で、 value は演算される値です。 value は、 浮動小数点型ま たは xfix 型にでき ます。 セル配列を示す<br />

type_spec は、 通常の MATLAB 手法では次の よ う に { } を使用して定義します。<br />

xfix({xlSigned, 20, 16, xlRound, xlWrap}, 3.1415926)<br />

この場合、 xfix で π の近似値が返 り ます。 こ の近似値は、 符号付き で、 20 ビット (小数点以下の<br />

ビット 16) を占め、 丸めで量子化さ れ、 オーバーフ ローで ラ ッ プ さ れた値にな り ます。<br />

type_spec には、 1、 3、 または 5 個のエレ メ ン ト が含まれます。 エレ メン トの中には、 削除できる<br />

ものもあります。 エレ メ ン ト が削除さ れる と 、 デフ ォル ト のエレ メ ン ト 設定が使用さ れます。 エレ<br />

メ ン ト では、 データ型、 データ幅、 2 進小数点の位置、 量子化モー ド 、 オーバーフ ロー モード など<br />

のプロパテ ィ が指定でき ます (表示順どお り )。 データ型は、xlBoolean、xlUnsigned または xlSigned<br />

にでき ます。 xlBoolean の場合、 追加エレ メ ン ト は必要な く 、 追加も で き ません。 ほかのデータ型の<br />

場合は、 データ幅 と 2 進小数点を入力する必要があ り ます。 量子化モー ド と オーバーフ ロー モード<br />

は、 オプシ ョ ンですが、 どち らか 1 つを指定し た場合は、 も う 一方 も必ず指定する必要があ り ます。<br />

量子化の値には、 xlTruncate、 xlRound、 xlRoundBanker を使用でき ます。 デフォル ト は xlTruncate<br />

です。 オーバーフ ローの値には、 xlWrap、 xlSaturate、 xlThrowOverflow を使用でき ます。<br />

xlThrowOverflow の場合、オーバーフ ローがシ ミ ュ レーシ ョ ン中に発生する と 、例外が発生し ます。<br />

type_spec の値はすべて コ ンパイル時に既知の値であ る必要があ り ます。 こ の type_spec 値は関数<br />

への入力値には依存で き ません。<br />

次は、 xfix() 変換の別の例です。<br />

width = 10, binpt = 4;<br />

z = xfix({xlUnsigned, width, binpt}, x + y);<br />

この z へは、 量子化に xlTruncate、 オーバーフローに xlWrap を使用した 10 ビット幅 (小数点以下<br />

のビッ ト 4) の符号な し固定小数点型に x + y を変換し た結果が代入さ れます。<br />

複数の xfix() 呼び出し で同じ type_spec 値が必要な場合は、type_spec を変数に代入し、xfix() 呼び<br />

出し で こ の変数を使用し ます。 た と えば、 次の よ う に使用で き ます。<br />

proto = {xlSigned, 10, 4};<br />

x = xfix(proto, a);<br />

y = xfix(proto, b);<br />

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