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.

MicroBlaze Processor<br />

既知の問題<br />

MicroBlaze Status Register (MSR) は、 MicroBlaze にステータス状況を格納し、 エラーが発生した<br />

かど う かを確認する ために使用さ れます。<br />

MSR の読み出し によ るエ ラー確認<br />

FSL の読み出しおよび書き込みでエ ラーが発生する と、 そのエ ラーが MSR (MicroBlaze Status<br />

Register) に返されます。 MSR のエラーは、 アセンブ リ 命令の mfs を使用する と 読み出すこ と がで<br />

きます。 MSR を読み出すには、 次のマ ク ロ を使用し て く だ さ い。<br />

#define readmsr(val, dep) asm("mfs %0,rmsr" : "=d" (##val##) : "d"<br />

(dep))<br />

C プ ロ グ ラ ムの一番上で こ のマ ク ロ を定義し て く だ さ い。 具体的には次の よ う に使用し ます。<br />

int val, mymsr;<br />

microblaze_nbread_cntlfsl(val,0);<br />

readmsr(mymsr,val);<br />

このマクロによ り、val レジスタの書き込みと MSR の読み出し の間に依存関係が築かれます。 これ<br />

は、 特にループ内で使用し ます。 依存関係がない と 、 コ ンパ イ ラ は ソ フ ト ウ ェ ア コー ド の最適化を<br />

実行する際に mfs 命令をループの外部に移動し て し まいます。<br />

FSL 読み出し エ ラー<br />

FSL か ら の読み出し でエ ラーが発生する原因は、 「data invalid」 (データ が無効) か、 「FSL error」<br />

(FSL エラー) にあ り ます。 data invalid の場合は、 FSL にデータがないので、 ブロ ッ キングまたは<br />

ノンブロッキング データ リードが実行できません。 FSL error は、データ値を読み出すのに、ブ ロ ッ<br />

キングまたはノンブロッキング コント ロール リードが使用された場合に、 制御フラッグが 1 に設<br />

定さ れていない と 発生し ます。 また、 データ値を読み出すのに、 ブロ ッ キング ま たは ノ ンブロ ッ キ<br />

ング データ リードが使用された場合に、 制御フラッグが 1 に設定されていな く て も発生し ます。<br />

data invalid エ ラーが発生する と 、 MSR はキャ リ ー フラグを High に設定し ます。 このキャ リー フ<br />

ラグのマスクは 0X4 で、 ビ ッ ト 29 に対応し ます。 キ ャ リ ー フラグは、MSR の MSB (ビット 0)<br />

に も複製されます。<br />

FSL error が発生する と 、 MSR は FSL フラグを High に設定し ます。 この FSL フラグのマスクは<br />

0X10 で、 ビ ッ ト 27 に対応し ます。<br />

FSL 書き込みエ ラー<br />

書き込まれる FSL がフルの場合、 FSL への書き込みでエ ラーが発生し ます。 フルの FSL に書き込<br />

もうとすると、ブロッキングおよびノンブロッキング ライトの両方から data invalid エラーが返さ<br />

れます。<br />

data invalid エ ラーが発生する と 、 MSR はキャ リ ー フラグを High に設定し ます。 このキャ リー フ<br />

ラグのマスクは 0X4 で、 ビ ッ ト 29 に対応し ます。 キ ャ リ ー フラグは、MSR の MSB (ビット 0)<br />

に も複製されます。<br />

• 各デザ イ ンで使用で き る MicroBlaze プロセッサは 1 つだけです。 ただ し、 複数の MicroBlaze<br />

ブロックを EDK 側から作成された FSL イ ン ターフ ェ イ ス に接続する こ と はで き ます。<br />

• MicroBlaze は EDK にエクスポートするとき、最上位レベルにインスタンシエートする必要が<br />

あります。 ハー ド ウ ェ ア協調シ ミ ュ レーシ ョ ン モデルを使用する場合は、FSL の読み出しおよ<br />

び書き込みでエ ラ ーが発生し ないかど う かを確認し て く だ さ い。 シ ミュレーションが開始され<br />

ると、MicroBlaze プロ グ ラ ムがハード ウ ェアで実行され、 モデルが実行される前に FSL から<br />

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