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恐るべし.なんでこんなに面倒なんだ!

2015年11月26日木曜日

ハードウェア設計者がEclipseを

使って仕事をするなんて世も末かな.勘弁して欲しいよ.

結局手でucfファイルを書く

ポートをDIP SWとLEDだけにして,手でucfファイルを書いたら,論理合成と配置配線が通って回路が動いた.ここまでは当たり前.

リファレンスデザインを合成するとなぜかエラー多発.

いや,DIP SWの動作がおかしい.結局回路図を追う羽目に.

SWのつながっているBANKには3.3Vが供給されているのに,ucfファイルのひな形では2.5Vになってた.これがおかしい?

直してもおかしい.1つだけ光るはずのLEDが全部光っとるぞ?

こんな簡単なこともできないなんて,だからソフトウェアは....
直すまで次へ進めないぞ.

2015年11月25日水曜日

これからはARMかあ

Xilinxの代理店の人が挨拶に来た.次期のFPGAについて紹介してもらった.ARMコアを載せたモデルがあった.もうmicroblazeの時代ではないのか.ついていくのがきついなあ.

これは分かり易い

この説明はかなり分かりやすい.xparameters.hについてはおおよそ分かった気がする.

hello worldから

サンプルの映像処理プログラムは複雑すぎて全然分からないので,XPSで自分で作ったmicroblaze上のhello worldから解析することにした.

2015年11月24日火曜日

C++の知識が要る

システムが自動作成したIPのインターフェースを理解するのにC++の知識が要る.嫌ならRTLを自分で書けということか.どっちが楽だろう.

合成したIPのバージョンとか

XPSで生成した回路は,今のボードのリファレンスソースが想定していたバージョンより新しい.それがいろいろ不一致の原因のような気がしてきた.できあがったIPを細かく精査すれば直せるかな.結構しんどい作業.

ブラウザで作った回路のサマリーが見えるんだが.複雑怪奇に見える.

ivk_camera.oをmakeするルールがない

ivk_camera.oは出来ているのだが...

microblaze下のライブラリがコンパイルされていない

()_bsp下のmicroblazeライブラリ群がコンパイルされていないようだ.このライブラリに含まれるシンボルなどがnot definedになっている.

clean projectをすれば再コンパイルされる.しかし,シンボルが見つからないエラーはそのままだ.

2015年11月20日金曜日

XPAR_VDMA_0_DEVICE_IDは何処に?

XPAR_VDMA_0_DEVICE_IDの宣言ヘッダファイルを見つけられない.

どうやら昔はあったようで,IPのバージョンが上がって無くなったのではないかという結論に.
手元にある最も古いISEは13.1だが,それには無かった.

top階層はどうやって指定するんだ

Xilinx SDKはeclispe風のインターフェースだが,最上位のCプログラムソースをどうやってしていするのか分からん.自動じゃないのか?

logを見るとmakefileを参照しているようだが,どこにmakefileがあるんだ?

<>/Debugの下にmakefileがあった

2015年11月19日木曜日

fmc_imageov.hはどこだ

インポートではなく,単なるファイルコピーで良かったのだが,makeするとfmc_imageov.hがないと怒られる.

<>_bsp/microblaze_0/includeの下にヘッダーファイルを発見

XPS生成物のディレクトリ構造

どうもXPSがどこに何を生成するか分からないので,0から簡単なmicroblaze回路を作って検証してみよう.

少し分かってきた.system.xmpファイルと同じレベルにソフトウェア名のディレクトリができる.そのディレクトリの下にsrcというディレクトリが出来てその中にソフトのソースファイルが収まる.

2015年11月16日月曜日

ドキュメントと実際のブツが違う

ISE11.1以降はソフトウェアの開発メニューがXPSから消えたそうで,困っている.SDKで同じことができるはずなんだが...

配置配線まで完了

ツールのバッチを当てた後はすこぶる快調で,配置配線まで完了してbitストリームができた.これをFPGAに流し込むと正常に動いた.パッチにもっと早く気付いていれば,時間を無駄にすることもなかったのに.2週間くらい無駄にしたかも.
そう言えば,MATLABが必要なはずだったが,ハードウェアには関係なかったみたい.ソフトをいじると必要になるのかもしれない.

libSecurity_FNP.dllの問題だった

エラーの起きたdllがlibSecurity_FNP.dllだったので,これで検索してみるとISEのパッチがあった.パッチを当てると(dllファイルを入れ替えると),エラーは出なくなった.
http://www.xilinx.com/support/answers/59851.html

ファイル名の問題か?

HDLファイルのパス名に空白が含まれているとエラーになる.また,パス名を作業中に変えるとエラーになる.もしかして今悩んでるxst.exeが突然終了するエラーもこのあたりに原因があるのかも?

2015年11月13日金曜日

ERROR:EDK:546 - Aborting XST flow execution!

エラーメッセージがこれだ.XSTがいきなり落ちて終了する.この原因をつきとめなくてはならない.結構つらい作業だ.

2015年11月9日月曜日

評価版ライセンス取得

期限付きなのであまり気が進まなかったが,Xilinxの画像関係の評価版ライセンスを取得した.プロジェクトがエラー無しで読めるようになった.
それはうれしいのだが,HDLにエクスポートしようとするとエラーで止まる.まだ何か必要なのだろうか.それともISEのバージョン違いのせいか.
そう言えば,MATLABの件は無視しているのだが,そのせいか?

2015年11月5日木曜日

IPも買わなくてはならない

有料のIPが使われている.評価ライセンスなら期限付きで無料だが.こーゆーのを使わずに全部スクラッチで書いたら,きっと性能が出ないんだろうなあ.悩ましい.

MATLABが必要だって!?

デモシステムをジェネレートするのにMATLABが要ると書いてある.持ってないんだが.

OV9715

いじりたいカメラはオムニビジョン社のOV9715だ.FMCに2個付いている.

2015年11月4日水曜日

2015年10月29日木曜日

Spartan-6 FPGA Industrial Video Processsing Kit

AVNETのサイトにまだ資料が残っているのがありがたい.回路図だけじゃどうしようもなかった.

2015年10月28日水曜日

DDR3を使う

Spartan-6搭載ボードに128MB DDR3が載っている.これを使うために中身を理解することにした.wikipediaでSDRAMから読み始めてDDR,DDR2,DDR3と理解していかなくてはならない.

2015年10月21日水曜日

いくつかのソフトは動いた

elfファイルをダウンロードしてrunさせたらいくつかは動いた.エラー無しで.明日もこの続きがうまくやれるといいのだが.時代はARMなのにMicroBladeをいじらないといけないってのもなあ.

ISEのバージョン

サンプルプログラムがISE13.2で書かれていて,私のが13.1なので「動きません」と表示される.0.1くらい大丈夫だからとりあえず動かしてみたいのにできない.
やむを得ず13.7から動かしてみる.これは動くのだが,新しいのでライセンスが全部買えている訳じゃあない.面倒だなあ.世の中はVivadoに移行していっているのに,今さら何をやっているんだか.

デュアルカメラ

IMAGE FMCはデュアルカメラ対応だった.もう1台の150からカメラをひっぺがしてつなげてみた.動かない.何か制御しないとダメっぽい.

2015年10月20日火曜日

Spartan-6 IVKキットのサイトがまだ生きてる

もう4年経つのでディスコンになったと思ったが,思いのほかニーズはあるのか?

2015年10月15日木曜日

Spartan-6 LX150T

AVNETのサイトに行ったら,2011当時のドキュメントやソースファイルがあった.これで勉強しよう.驚いたことにHDMI端子の他にDisplayPort端子が1個ついていたことだ.8k4kも表示できるかもしれない.Spartan-6なのでたぶん無理だけど.悪魔のチューナー○○淳としてはやってみたい気がする.

2015年10月14日水曜日

HDMIは4k2k 30Hzまで

DVIは最高データ伝送速度が4.95Gbpsなので1920x1080@60Hzまで
HDMIは10.8Gbpsなので4096x2160@30Hzまで
DisplayPort21.6Gbpsなので4096x2160@60Hzまで対応可能

4k動画用出力端子

放送局では何で伝送するつもりなのか(やはり同軸か?)まだ分からないけど,とりあえず民生品ではHDMIで伝送できる.HDMI端子があるSpartan-6搭載ボードも持っている.まずはこれで作ってみるか.