1

私は実際に、FPGA に実装した MicroBlaze マイクロ コントローラー システムについて調べています。しかし、この MCU がどのように機能しているかを理解したいと思います。このブロック図を考えてみましょう:

MicroBlaze MCS のブロック図

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

メモリー容量?

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

#define XPAR_DLMB_CNTLR_BASEADDR 0x00000000
#define XPAR_DLMB_CNTLR_HIGHADDR 0x00003FFF

#define XPAR_ILMB_CNTLR_BASEADDR 0x00000000
#define XPAR_ILMB_CNTLR_HIGHADDR 0x00003FFF

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

4

1 に答える 1

0

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

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

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

于 2017-04-09T06:37:44.700 に答える