2015年12月22日火曜日

IVK_BASEだけは

論理合成,配置配線,SDKでのコンパイルまでうまく行った.映像信号がからむIPコアを使うとダメみたいだ.

2015年12月21日月曜日

ilmb_cntlr_dlmb_cntlrとは?

ilmb_cntlr_dlmb_cntlrに関するエラーメッセージが出るんだが,ソースファイルのどこにもこの文字列の記述がない.

XPAR_VDMA_0_MAX_FRAME_STORE_NUMもない

XPAR_VDMA_0_MAX_FRAME_STORE_NUMがないと文句を言われるが,ソースツリーの中にこの単語は存在しない.XilinxのISE環境のトップディレクトリから検索してもない.いったい何がどこで宣言しているんだ?

2015年12月16日水曜日

XPAR_VDMA_0_DEVICE_IDをgoogleで検索したら

検索にひっかかったのはこのブログだけ.誰もxc6slx150tfgg676-3ボードは使っていないのかな.そんなはずはないのだけれど.古すぎてもう使われていないのかな.それを一生懸命いじっている私は何なんだろうね.

XPAR_VDMA_0_DEVICE_IDが消えた

XPAR_VDMA_0_DEVICE_IDはxparameters.hで宣言されるものだ.xparameters.hはXPSで回路を作ったときに自動生成される.
私が動かそうとしているリファレンスデザインはISE11時代のものだ.それに対して使っているのはISE14.7だ.昔のXPSにはXPAR_VDMA_0_DEVICE_IDはあったのだろうが,今はないのだ.これを使っているCソースを書き換えなくてはならないだろう.

2015年12月14日月曜日

xc6slx150t-3fgg676のサンプルデザイン

ハードウェアはISE14.7にバージョンアップのマイグレーションして配置配線まで成功したが,ソフトは14.7のSDKでは全然動かない.自分でソフトを書くしかないようだ.

備忘のためその2


  1. system.xmpをダブルクリックしてXPSを起動
  2. IPコアを合成
  3. Project Navigatorを起動
  4. FPGAの型番をpropertyに設定
  5. add source で*.xmpを指定
  6. Create top HDLでstubを作成
  7. インプリメントする

2015年12月10日木曜日

備忘のため


  1. PlanAheadで新プロジェクト作成
  2. add souce で Embedded souceを付加
  3. XPSが起動したらGPIOなどを追加
  4. PlanAheadに戻ってtop hdlを作成
  5. timing constraintを設定
  6. Synthesis
  7. timing constraintにピン制約を追加
  8. Setup ChipScopeを起動
  9. トリガ信号やデータ信号を選択
  10. Implement
  11. bitストリーム作成
  12. エクスポートしてSDK起動
  13. アプリを作る
  14. ソースファイルを所望の内容に変更
  15. コンパイル
  16. FPGAに書き込み
  17. PlanAheadに戻ってChipScopeを起動
  18. トリガを調整したり,データ名を変えたり
  19. ChipScopeでデバッグ

2015年12月9日水曜日

PlanAheadでSynthesisまで戻ったらSet up ChipScopeのメニューが現れた!

うーむ,PlanAheadはなかなか奥が深い.昔ウィザードリーをやっていたときのことを思い出す.

しかし,インプリメントしたらエラーが出た.ucfファイルがないとか.

エラーを無視して強行したら,ChipScopeが動いた.まだChipScopeを使っているという感じではなく,ChipScopeに使われているという感じだが.

PlanAheadで始めたら全部PlanAheadで

PlanAheadでプロジェクトを作ってXPSを起動したらXPSで論理合成をしてはエラーになり,PlanAheadから論理合成をかけなくてはならない.

PlanAheadからハードをエクスポートしてSDKを起動したら全てうまく動いた.chipscopeのコアを入れておいたが,用無しになった.

USB-RS232Cのビットレートが設定した値の倍になってしまうのはそのまま.バグだね.

2015年12月7日月曜日

SDKへのエクスポートがうまくいかない

PlanAheadでプロジェクトを作ってサブコンポーネントにmicroblazeを入れて,上位のstubのHDLを生成してからXPSに移るとうまくインプリメントできない.ucfファイルがstub用のピン配置をしているからかなあ?

XPSはPlanAheadから起動してhwをエクスポートする.
SDKはスタートメニューから起動して,エクスポートしたディレクトリを指定する.

ディレクトリの指定がうまくいかなかった.あれ?出来たときと何が違うんだろう?

PlanAheadからエクスポートするときにSDKも一緒に起動するとうまく動いた.

2015年12月4日金曜日

上位モジュールのIOよりコンポーネントのIOの方が多い場合

使わないからとセットしないのはエラーになる.INポートなら'0'とか'1'をセットしておく.OUTポートならopenとしておく.

問題はコンポーネントが差動入力で,上位モジュールがシングルエンド入力のとき.どうすれば良いんだ?

信号の_N側を削除すれば良いんだが,簡単すぎて気持ちが悪い.

VHDLに逆戻り

Project navigatorからXPSを起動する方法はVHDLを対象にして書かれている.げ,2年前にVHDLからVerilogに鞍替えしたばかりなのに.VHDLに戻ることにした.

2015年12月3日木曜日

XPSからProject Navigatorへ

XPSは*.xmpというファイルを作るが,Project Navigatorは*.xiseを作る.どうやって相互に読み込むのか?

Xilinxのサイトにガイドがあった.XPSから始めるのは推奨されていない.Project Navigatorで始めてサブモジュールとしてXPSを使うのが良いらしい.

Project Navigatorで始めるより,Plan Aheadで始める方がラッパーHDLをワンタッチで作れるので便利なことが分かった.

2015年12月2日水曜日

PLBバスに変えてAXIバスでも作ってみる

XPSでAXIバスを選択してmicroblazeを作ってみる.

論理合成でエラーになった.ucfファイルがPLBバスのときと同じではダメらしい.信号名はGraphical Design Viewに載っているものを使う必要がある.クロックはCLK,リセットはRESETとシンプルな名前に変わった.

またリセットが効かなくなった.アクティブハイにしたんだが,名前が違っているんだろうか?

リセットをアクティブローにして再合成してみる.これでもリセットが効かない.???

配置配線エラー無しで通ったんだから,関係ないと思うけどクロック下げてみる.

クロック下げてもmicroblazeが常時リセット状態に陥る....

ChipScopeでデバッグすることにする.

UARTのバグ

XPSでUARTを作るときビットレートを指定するができあがった回路は指定の倍のビットレートになることを確認した.バグだね.分かっていれば何と言うことはない.

2015年12月1日火曜日

LEDも点灯した

プッシュボタンを押すのに合わせてLEDが点灯するCプログラムも動いた.

出たよHello World

リセットの極性を変えて,RS232Cの出力をUSB-RS232Cに変えて,通信ボーレートを19200にしたら,出たよ.Hello Worldが.

そして問題のリセットだが,アクティブハイにして,プッシュボタンに割り当てた.プッシュボタンは常時ロー,押したときだけハイだ.押す度にmicroblazeがリセットされて,Hello Worldが表示される.

動いた後に回路図を眺めると,理解した気になる.そういうもんだろうなあ.

もう一度同じ手順で回路を組んだが,今度は通信速度が38400bpsになった.あれ?19200を指定したのだがなあ.

M0/M1を復習

リセット周りを理解するため,一度は覚えたはずのコンフィグレーションをもう1度復習してみる.

リセットが逆極性っていうオチじゃあ

RESET#って逆極性の意味だろうか?

XPSのデフォルトはアクティブローだ.これをアクティブハイにして回路を合成してみる.

エラーメッセージが変わった!やはりリセットがおかしかった.しかしまだエラーだ.

映像処理リファレンスデザインどころか

Hello worldも動かない.microblaze恐るべし.なんでこんなに面倒なんだ!