FC2カウンター FPGAの部屋 The Simple MicroBlaze Microcontroller 2 (概要)
FC2ブログ

FPGAやCPLDの話題やFPGA用のツールの話題などです。 マニアックです。 日記も書きます。

FPGAの部屋

FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。Xilinx ISEの初心者の方には、FPGAリテラシーおよびチュートリアルのページをお勧めいたします。

The Simple MicroBlaze Microcontroller 2 (概要)

前回の”The Simple MicroBlaze Microcontroller”の時はアプリケーションノートのバージョンが1.0だったが、今度見たときにはVer3.0になっていて、ISE12に対応していた。XAPP1141のデザインファイルはここ(登録とライセンスの承認が必要)。
The Simple MicroBlaze Microcontroller(以下SMM)は、Xilinx Platform Studio (XPS) を使わないで使えるMicroBlazeだ。もともと、IPの形になっているので、ISEからインスタンスして手軽に使うことができる。EDKでやると、MicroBlazeが主で、もっと大きい他の回路が従となってしまって、どうも納得がいかないのだが(ISEからEDKをIPとして使う方法があったので削除します。でもいちいちジェネレートする面倒くさいさはありますね)、これならばハードウェアはISEで全部行うことができる。ただし、ソフトウェアをつくるのに、SDKが必要なので、EDKのライセンスは必要だ。(WebPACKで使えたら良かったのだが、残念。。。)XPSはカスタマイズするのに必要となる。
SMM Ver3.0は、Spartan-6、Spartan-3A 、Virtex-6、Virtex-5で使用することができる。
主な特徴を下に示す。

・32ビットMicroBlaze
・8KB内部ROM/RAM
・ソフトウェアはコンフィギュレーション時にBRAMにロード
・32ビット幅のIO
・64KBのユーザースペース
・割り込み入力
・オプションでUART
・フルC, C++サポート
・オプションでデバック・サポート


SMMには、4つのネットリストがある。

・SMM + UART + Debug Support
・SMM + UART
・SMM + Debug Support
・SMM


SMMのフローは、SMM FPGA Design FlowとThe SMM Softwar Flowに分かれている。SMM FPGA Design FlowはISEで、The SMM Softwar FlowはSDKで行う。
SMM FPGA Design Flowの説明用に、XAPP1141 Ver.3.0の7ページのFigure 6: ISE Design Flowを引用させていただく。
SMM_1_101124.png

SMMはVerilogやVHDLでインスタンスを作って使用する。XSTで論理合成後に、Traslateで、SMMのIPのsmm.ngcと8KB内部ROM/RAMに対するBRAMの割り当てファイルのsmm.bmm と連結される。MAP,P&Rを経て、BitGenで.bitファイルとsmm_bd.bmm が生成される。smm_bd.bmm には、DATA2MEMが必要とする実際の配置が書き加えられている。

The SMM Softwar Flowの説明用に、XAPP1141 Ver.3.0の12ページのFigure 12: SDK Design Flowを引用させていただく。
SMM_2_101124.png

smm.xmlを読み込んで、プロジェクトに必要な情報を設定して、CやC++ソースをコンパイル、リンクして、.elfファイルを生成する。先ほどの.bitファイルとsmm_bd.bmmを使って、.bitファイルに.elfファイルのソフトウェアをロードして、新しい.bitファイルを作る。その.bitファイルをFPGA基板にロードして、動作させる。

こんなフローでSMMは動作する。次回は、リファレンスデザインをやってみることにする。XAPP1141 Ver.3.0の通りにやってもできなかったが、工夫してうまく行ったのだ。。。

SMMは、CMOSカメラの設定レジスタを設定するために、LCDとロータリーエンコーダ、スイッチを制御するのに使用する予定です。
  1. 2010年11月24日 17:05 |
  2. SMM
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック URL
http://marsee101.blog.fc2.com/tb.php/1647-9bc42493
この記事にトラックバックする(FC2ブログユーザー)