2017-04-08 6 views
0

私は実際に私のFPGAで実装したMicroBlazeマイクロコントローラシステムを勉強しています。しかし、私はこのMCUがどのように働いているのか理解したい。のは、このブロック図を考えてみましょう:MicroBlaze MCSでの命令とデータの構成方法は?

MicroBlaze MCS block diagram

私たちは、プロセッサがBRAMモジュールに32ビットの2つのバスかかわらず、接続されていることがわかります。これらのバスの1つはILMB(命令ローカルメモリバス)であり、もう1つはDLMB(データローカルメモリバス)である。両方がBRAMモジュールの異なるポートに接続されていることがわかります。だから私の質問がある:ハーバードアーキテクチャでは、プログラムの命令とランダムアクセスメモリは分離されていないと思われる?ザイリンクスIPコアジェネレータを使用してシステムを生成する場合、メモリに格納されるメモリサイズはプログラム命令、RAM、またはその両方のサイズですか?

Memory size?

IはILMBとDLMBのメモリ内のアドレスを見つけるためxparameters.h内ヘッダファイルに定義し、Iは、両方が同じアドレスの範囲であることがわかってきたに検索しました。

#define XPAR_DLMB_CNTLR_BASEADDR 0x00000000 
#define XPAR_DLMB_CNTLR_HIGHADDR 0x00003FFF 

#define XPAR_ILMB_CNTLR_BASEADDR 0x00000000 
#define XPAR_ILMB_CNTLR_HIGHADDR 0x00003FFF 

命令とデータの両方が同じアドレスで参照されるという事実は私を混乱させます。誰かが私がどこが間違っているか教えてくれますか?

+0

これは[Electrical Engineering](http://electronics.stackexchange.com/)の質問です。 StackOverflowはコードとエラーの詳細です。 – JHBonarius

答えて

0

この場合、ILMBとDLMBの両方のバスが同じ物理メモリ空間を共有しています。同じことがメモリサイズパラメータにも適用されます。デフォルトでは、Mircoblazeシステムは共有データと命令メモリ空間を持つように構成されています。

しかし、実際には2つの別々のバスがあり、まったく異なるアドレス空間(または物理デバイス)に存在するデータと命令を持つようにシステムを構成することができます。例えば、ILMBはROMメモリ上でアドレス指定するように構成することができ、データはRAMメモリの完全に異なるハードウェアブロックにアクセスすることができる。

Microblazeは高度に構成可能なCPUであり、非常にまれなケースで構成する必要があるこれらの構成ポイントの1つです。ほとんどの場合、これらはBRAMメモリの同じアドレス空間を共有します。

関連する問題