キャラクタ・ディスプレイ・コントローラのAXI4バス・スレーブIPの作成はあまりうまく行ってないが、現状を書いておこうと思う。
まずは、AXI4バス・スレーブIPの名前がCDC_axi_slave で、CDCの大文字が入っているので、シミュレーションできなかと思って、一旦、CDC_axi_slave をデリートして、cdc_axi_slave に書き換えて、もう一度XPSにAdd IP してみた。そうして、シミュレーションしてみたが、やはり、cdc_axi_slave がないと言われてしまった。

SDKのXilinx ToolsメニューからProgram FPGA を選択したら、エラーになってしまう。

仕方がないので、iMPACT でコンフィグレーションしてから、SDKでchardisp_w_r.elf を右クリックメニューからDebug As -> Launch on Hardware を選択して、デバックモードへ移行する。
XMDを起動して、mwr 0x0001000 0x0000ffc1 でキャラクタ・ディスプレイ・コントローラのAXI4バス・スレーブIPにキャラクタ・データの書き込みを行うが、mrd 0x0001000 で読みだしてもオール0のままで書き込めていない。

同じAXI4バス上にあるMCBには読み書きできる。
(現在は、microblaze_0 のAXI4バスのアドレス0x0001000 にキャラクタ・ディスプレイ・コントローラのAXI4バス・スレーブIPを接続している)

ChipScope でS_AXI_AWVALID が1の時にトリガーをかけておいてもmwr 0x0001000 0x0000ffc1 でトリガーがかからない。

どうやってデバックするか?を考えている。
(2010/03/24:追加)cdc_axi_slave_v2_1_0.pao ファイルに、”lib cdc_axi_slave_v1_00_a afifo_sm.vhd vhdl”の行を追加してもシミュレーションはできません。
system_top_tb_beh.prj にはcdc_axi_slave.vhd の行もあったし、良く分かりません。つまりコンパイルできているはず。なんでエラボレートできないのだろうか?名前間違っている?
- 2012年03月22日 06:01 |
- AXI4 Slave IPの作製
-
| トラックバック:0
-
| コメント:5
ISimがモジュールを見つけてくれないのは、IPのpaoファイルに原因があるのではないかと思います。
ISimの起動エラーの調査には出力ディレクトリのfuse.logというファイルが参考になるかもしれません。
このファイルの前半部分に解析されたソースがリストアップされているので、目的のIPのソースが挙がっているかを確認します。
さらに出力ディレクトリにあるfuseの起動プロジェクトファイルにIPのソースが正しく出力されているかを確認します。
この場合のプロジェクトファイル名は、「system_top_tb_beh.prj」です。
ここにソースが挙がっていないとfuseで正しく認識されません。
では、ソースが挙がっていなかった時にどうすれば良いのかというと、はっきりとは分かりません(スミマセン…)
IPでCoreGenの生成コアを使用していたりすると、コアのシミュレーションモデルが含まれるようにしないと同じようにfuseが見つけられずにエラーになってしまいます。
- 2012/03/23(金) 12:11:48 |
- URL |
- windy #JalddpaA
- [ 編集 ]
ありがとうございます。
前に一度やったことがあるんですが、前の時は、インプリでエラーが出て、.pao にラッパー用のVHDLファイルを入れたんです。今回はエラーが出ないので、忘れていました。.ngc だけだとこのままではシミュレーション用にコンパイルできませんよね?
.pao にラッパー用HDLファイルを入れて試してみようと思っています。
それでダメだったら、教えて頂いた方法で確かめてみます。
http://marsee101.blog19.fc2.com/blog-entry-1895.html
- 2012/03/23(金) 12:54:28 |
- URL |
- marsee #f1oWVgn2
- [ 編集 ]
system_top_tb_beh.prj にカスタム・スレーブIPのHDLは入ってましたが、ダメでした。どこが悪いんだろうか?キャッシュの方を試してみます。
- 2012/03/23(金) 22:08:24 |
- URL |
- marsee #f1oWVgn2
- [ 編集 ]
なんとか全体でシミュレーションできるようになると良いのですけどね。
MBが出してくるAXIトランザクションの種類なんかも一目で分かるので。
前のコメントに書いたDCからのアクセスとキャッシュ範囲の件や、リード時のWRAPバーストの件もシミュレーションで確認しています。
MBのシステムを含むと動作モジュールが大量になってISimの起動も動作も遅くなるのですが、ChipScopeを持ち出すよりはマシだと思っています。
僕のところではVHDLを使っているのですが、Verilogを使用されているという事でここに違いがありますね。
- 2012/03/25(日) 12:33:26 |
- URL |
- windy #JalddpaA
- [ 編集 ]
スレーブIPの構成は、トップはVHDLで一部Verilog、Coregen 生成コア1個の混成です。トップのVHDLが見つからないと言われてしまいます。今度作るマスタIPでシミュレーションを試みてみます。
- 2012/03/25(日) 18:00:50 |
- URL |
- marsee #f1oWVgn2
- [ 編集 ]