”
Xilinx 社のマイクロプロセッサまとめ1(PicoBlaze, MicroBlaze MCS)”の続きです。
”ハードウェア開発、CPUアーキテクチャ Advent Calendar 2016”の11日目の記事として書きます。
MicroBlaze次のXilinx社のマイクロプロセッサはMicroBlaze です。最近はZynq のARM プロセッサばかりでMicroBlaze はあまり使っていませんでした。ですが、MicroBlaze はXilinx社の32ビットのソフトコアのマイクロプロセッサの代表格です。(
MicroBlaze プロセッサ リファレン ガイド 2016.1 UG984 (v2016.1) 2016 年 4 月 6 日参照)
いろいろなコンフィギュレーションがあって、性能重視には5段パイプライン、エリア重視には3段パイプラインと使え分けられます。
MicroBlaze の基本機能です。(
MicroBlaze プロセッサ リファレン ガイド 2016.1 UG984 (v2016.1) 2016 年 4 月 6 日から引用)
・32 個の 32 ビッ ト 汎用レジス タ
・オペランド 3 つと アドレス指定モード 2 つを含む 32 ビッ ト 命令ワード
・デフォルトでは、32ビットのアドレスバス
・シングル・パイプライン
ブロック図を引用します。(
MicroBlaze プロセッサ リファレン ガイド 2016.1 UG984 (v2016.1) 2016 年 4 月 6 日6 ページの図 2‐1 : MicroBlaze コアのブロック図を引用)

それでは実際にMicroBlazeを使ったプロジェクトを作ってみましょう。
Vivado 2016.3 を使用して、ZedBoardのボードの定義ファイルを使ってやってみました。
IP Integrator のブロックデザインを作成しました。
ブロックデザイン上でAdd IP をして、 microで検索して、MicroBlaze を選択しました。

MicroBlaze のIP がインスタンスされました。

MicroBlaze をダブルクリックして設定を見てみよう。
Select implementation optimization は、PERFORMANCE とAREA, FREQUENCY に設定することができる。


Select Configuration は下の図に示す設定があります。

Next > ボタンをクリックするとGeneral 設定画面が表示されます。
ここでは、バレルシフタを使うか?や浮動小数点演算器を使うか?整数掛け算器、整数割り算器、などなどの設定を行うことができます。

次がDebug 設定画面です。
デバック・モジュールの設定ができるようです。

次がBus の設定画面です。
AXI バスの設定などがあります。ストリームのインターフェースも指定できるようです。

これで設定画面を終了させます。
Run Block Automation のリンクをクリックすると、Run Block Automation ダイアログが表示されます。
ここではメモリを 32KB にしてOK ボタンをクリックしました。

MicroBlaze の周辺回路がインスタンスされて、配線されました。

axi_gpio を Add IP してみましょう。

Run Connection Automation をクリックして配線を行いました。

アドレスマップです。

これでブロックデザインは終了なので、セーブします。
次に、Source ウインドウのブロックデザインを右クリックして、Create HDL Wapper... を選択して、トップのVerilog HDLファイルを生成します。

論理合成、インプリメントを行ってから、ハードウェアをエクスポートし、SDKを立ち上げました。
SDK のFile メニューからNew を選択し、Application Project を選択します。
Application Project ダイアログで、Project name をtest にし、Next > ボタンをクリックします。
次のTemplates ダイアログで、Peripheral Tests を選んで、周辺デバイス・テストのサンプルデザインを選択し、Finish ボタンをクリックします。そうすると、test プロジェクトがビルドされます。

これを起動すると、MicroBlaze を使うことができると思います。
- 2016年12月11日 03:48 |
- FPGAのマイクロプロセッサ
-
| トラックバック:0
-
| コメント:0