SMM(The Simple MicroBlaze Microcontroller)

The Simple MicroBlaze Microcontroller
EDKを使わないMicoroBlazeプロセッサ、The Simple MicroBlaze Microcontrollerについて調べてみた。
 The Simple MicroBlaze Microcontroller 2 (概要)
前回の”The Simple MicroBlaze Microcontroller”の時はアプリケーションノートのバージョンが1.0だったが、今度見たときにはVer3.0になっていて、ISE12に対応していた。概要をまとめた。
 The Simple MicroBlaze Microcontroller 3(リファレンスデザイン)
今回はXAPP1141 Ver.3.0の25ページのリファレンスデザインをやってみた。LCDに表示して、押しボタンスイッチを押すとLCDの表示が変わる。
 The Simple MicroBlaze Microcontroller 4(リファレンスデザイン2)
リファレンスデザインのテストの続き
 The Simple MicroBlaze Microcontroller 5(デバック機能)
デバック機能付きのSMMに変更して、デバック機能を確かめた。
 The Simple MicroBlaze Microcontroller 6(シミュレーション)
SMMの問題点はシミュレーションが出来ないことだ。この記事では、簡単なSMMのバスモデルを作ってシミュレーションを行った。
 The Simple MicroBlaze Microcontroller 7 (50MHzから25MHzへクロックを変更)
実際にCMOSカメラ回路で使用するために、SMMの動作クロックを50MHzから25MHzに変更した。
 The Simple MicroBlaze Microcontroller 8 (ロータリーエンコーダの実装)
SMMにロータリーエンコーダー制御回路を付けて、テスト表示させた
 The Simple MicroBlaze Microcontroller 9 (SCCB回路の変更、設定SCCBレジスタ)
ロータリーエンコーダー制御回路が動作したので、それで、CMOSカメラのSCCB設定レジスタを設定するための回路の仕様とVHDLファイルの決定
 The Simple MicroBlaze Microcontroller 10 (Cソフトウェアを書いているところ)
前回、SCCBレジスタの設定回路(SCCBインターフェース回路)をSMMから制御できるようにハードウェアを変更と、LCDに表示して設定するSCCBレジスタを決定したので、今度はSDKのソフトウェアを変更中だ。
 The Simple MicroBlaze Microcontroller 11(SDKでエラー発生)
SMMでCMOSカメラのパラメータを設定するために、LCDにパラメータを表示して設定するという計画(長い。。。)のCソースは、だいたい書き終えた。550行くらいあるので、ソースをブログに貼ることができない。長い。
SDKでビルドしようとしたらエラーになってしまった。
 The Simple MicroBlaze Microcontroller 12 (XPSでSMMをカスタマイズ)
前 回、SMMのRAM容量が足りないなそう?ということがわかったので、XPSでSMMをカスタマイズし、RAMを8KBから16KBへ倍増させてみること にした。(最初は12.3でやったのだがワーニングが出ていて良いかどうかわからなくなったので、12.1でやり直した)
 The Simple MicroBlaze Microcontroller 13 (16KB RAMのSMMでもう一度)
”The Simple MicroBlaze Microcontroller 12 (XPSでSMMをカスタマイズ)”でRAMを16KBに拡張したはずなので、生成したsmm.ngcとsmm.bmmをISE12.3のプロジェクトに 入れてインプリメントし、SDKでコンパイルしてみた。
 The Simple MicroBlaze Microcontroller 15 (デバック)
”The Simple MicroBlaze Microcontroller 13 (16KB RAMのSMMでもう一度)”でソフトウェアをSDKでコンパイルできたので、今度はデバックを試みた。
 The Simple MicroBlaze Microcontroller 16 (SDKのデバック)
前回、main()関数の”Could not find the frame base for "main".”を修正したが、他の関数でも同じエラーが出ている。SDKのデバックはやめて、本来のCソースのデバックをすることにした。
 The Simple MicroBlaze Microcontroller 17 (ChipScope Proによるデバックの問題点)
SMMはno_Debugの物でも、BSCANが使用されていてChipScopeが使用できなかった。
 The Simple MicroBlaze Microcontroller 18 (CMOSカメラ回路のシミュレーション)
SMMをCMOSカメラ回路に接続した状態で、シミュレーションのスティミュラスを作って、シミュレーションを行った。
 The Simple MicroBlaze Microcontroller 19 (SCCB設定レジスタを設定できたが...)
シミュレーションも大丈夫のようなので、もう一度、実機で確かめてみた。やはり、SCCB設定レジスタに設定できない。もしかして?と思って、同じ設定レジスタにもう一度設定するようにしたら、設定できた。。。これで目的の動作は実行できたが、疑問は残る?
 SMMのSDKデバックとChipscope Pro Inserter を同時に使用する
SMM(the Simple Microblaze Microcontroller)を使用すると、FPGA内のBSCANユニットが使用されて、Chipscope Proで信号を観測することができなかった。
Virtex-5やSpartan-6では、複数個のBSCANユニットが入っているので、SDKデバックしながら、Chipscope Inserterが使用できるのでは?と考えられるので、試してみることにした。うまくいきました。
 SMMのシミュレーション(NetGenとData2MEMを使用する)
SMMでsmm.ngcをNetGenでVerilogに変換し、Data2MEMでelfファイルをmemファイルに変換して、SMMにソフトウェアをロードして、シミュレーションを行うことができた。


inserted by FC2 system