2011年10月31日月曜日

SDRAMCのLattice XP2への実装 6

一応、画も表示されるようにはなった。



ただし、見ての通りノイズのような線が入る。
そこで、UART経由でSDRAMの画像を吸い上げて見てみたのが下図である。(Cameraの前の人形はどかした。) これを見るとCamera→SDRAMの経路は問題なさそうだ。 まだVIF (line buffer)に問題があるのかも知れない。



考えてみると、去年もこれと似たようなことをしていたなぁ~
態々StarterKit等を使わなくても、本の付録基板でも同様のことはできるということか。

2011年10月30日日曜日

SDRAMCのLattice XP2への実装 5

半田付け作業は終わって動作確認を行っている。



最終的に、FPGAのSystem Architectureの方は下図の様にした。
MPIFを4 portに拡張して、UIF(uart)、CIF(camera)、VIF(vga)、CPU(zumi32)から、DRAMのAccessが出来るようにした。



Memory R/W は問題なさそうだが、SDRAM→VGAの経路に問題があるようでまともに表示されない。 zumiでMemory R/W check programを実行させた結果はOK。 CameraからSDRAMに取り込んだ画像をuart経由で読み出してppm に変換してViewerで確認した結果もOK。 uart経由で画像Dataを書込み、次に読み出して同様にppmに変換してViewerで確認した結果もOKだった。
しかし、vifをenableにしてVGAに出力させると画が出ない。
このvif moduleはDE0でのSDRAMCの動作確認でも使用した物なのでmodule自体に問題は無い筈なのだが??
FPGA内部の帯域も問題無い筈だ。FPGA内部は50MHz, 32bit busなので、50MHz x 4 = 200MByte/sec。 SDRAMはPage切り替えやRefreshがあるので現実的には70%程度として、200M x 0.7 = 140MByte/sec。 一方、vifはVGAでRGB565なので640 x 2 / 25usec = 51MByte/sec。 Cameraは15fpsなのでレートとしてはvifの約半分として合計で51M x 1.5 = 76.8 MByte/sec → 77MByte/sec としても140MByte/sec の半分程度だ。
以下のSimulation波形を見ても十分余裕があるのが判る。





したがって、帯域不足とかそういった問題ではない筈だ。
SDRAMの内容の代わりにColor Barを表示するようにしてみたら、こちらはちゃんと表示された。



したがって、半田付けが失敗している訳ではない。
line bufferか、SDRAMのburst readに問題があるのか?
Simulation上は問題なさそうなんだが。それにDE0での実績もあるし。
う~ん。。。

2011年10月27日木曜日

SDRAMCのLattice XP2への実装 4

電源とパスコンの実装も終わった。



後は部品面で水晶発信器を取り付けたり、若干改造したり・・・
もう一息。

2011年10月26日水曜日

SDRAMCのLattice XP2への実装 3

もう片方の半田付けも終わった。
後は3.3Vの電源とパスコンだ。 続きはまた明日。

2011年10月25日火曜日

SDRAMCのLattice XP2への実装 2

付録基板が入手できたので早速SDRAMの取り付け作業に着手し、片側の半田付けが終わった。



この基板は半田面側にパスコン類が実装されていてSDRAMの下も凸凹しているので、両面テープを何枚も重ね張りして高さを調整した。

2011年10月22日土曜日

SDRAMCのLattice XP2への実装

SD Card Controllerの作成をするつもりで、SD Cardの規格書を読んだりして調べていた。
規格書はSD Association からSimplified Specificationsを入手できる。
https://www.sdcard.org/downloads/pls
その他Internetでも調査した結果、SD Card規格で制御する場合はSD AssociationからLicenseを受ける必要があるが、SPI modeで制御する場合は不要という事が判った。
SPI modeでの制御仕様は規格書を読んだ限りではそれほど難解では無さそうだと感じたのだが、いざRTLを作成する段になってどうにもこうにも気分がのらない。 UART経由とは言え、撮影画像が見れたことで満足してしまったのかも知れない。(自分自身のことなのによく判らん。)

そこで、SD Card Controllerはやる気が起きるまで保留にして、今度はSDRAMCをLattice XP2に実装してみることにした。 XP2のボードはCQ出版社のディジタル・デザイン・テクノロジ No1に付属していた物を使う。 このNo1は今でも購入できるようだ。
http://shop.cqpub.co.jp/hanbai/books/49/49401.html
このボードのうれしいところは144pin のXP2を実装しているお陰で、使える端子数が81本もあるという点だ。お陰で、VGA I/Fも持つことができる。 現状考えているPin Assignmentは以下の通りだ。



一応、RTLの構築と合成は出来た。  Diamond 1.3を使用しているのだがGUIを操作していると異常終了してしまうことが度々あったのには参った。 Linux版だからなのかな??? また、このDiamondはXilinxやALTERAのToolに比べて合成制約やSTAの手段が貧弱な気がしている。使いこなせてないだけかも知れないが。。



次はボードにSDRAMを半田付けして実機で動作確認だ。 動くかな~?

2011年10月17日月曜日

dvi_enc download 200+1

先日jwrtのsourceforgeでのdownload数が100に到達したが、
今日見たらdvi_encも201に到達していた。



国数は27ヵ国、記念すべき200 Download目は日本のようだ。
200 Download目を見逃してしもうた。
それにしても、FPGAをやっている人って世界中にいらっしゃるんだな。
当然っちゃー当然かも知れんが。

2011年10月7日金曜日

SDRAMCのSpartan3Eへの実装 5

Cameraから画像が撮れるようになった。

Camera→SDRAMまでの経路の動作確認の為にCameraからの画像をSDRAMに書かせ、これをUART経由で吸い上げてppm形式のfileに落として見てみた。

まず、Camera(TCM8230MD)をColor Bar Modeにしてみた。


良さそうだったのでNormal Modeで机上を撮影してみた。


撮影している様子


う~ん、、、いい感じ?

System Architectureはこんな感じにしている。ただし、SDC(SDCARD I/F)はまだ実装していない。また、SDRAMは125MHzでも動作したので現状125MHzで動かしている。


今後はSDCの実装を行うが、FPGAのResourceにはまだ余裕があるので大丈夫だろう。
このFPGA(XC3S250E)は結構入るもんだと思うが、驚嘆すべきはこれが4年前に本の付録だったと言うことだろう。

2011年10月2日日曜日

SDRAMCのSpartan3Eへの実装 4

子基板が出来た。

これはCamera実装側から見たところ


側面からみたところ


これは部品面側


FPGA基板と合体させたところ


側面から見たところ


動作確認はこれからだ。 動くといいな。♪♪

2011年10月1日土曜日

SDRAMCのSpartan3Eへの実装 3

子基板に実装するCameraへの線材の半田付けを行った。
CameraはTCM8230MDで、これは以前Spartan3A Starter Kitで遊んだときに予備で買っておいた物だ。  久しぶりに部品箱から出して現物を見たが、相変わらずこの部品は小さい。 比較の為に私の左手小指と一緒に撮影したが、こうして見ると、白魚の様にか細い私の小指がまるで親指のようだ。



半田付けの方だが、今回はUEW線を使用したこともあり割と順調に作業できた。



今回はしっかりと基板に固定したいので発光面が平坦なLEDをCamera裏面に接着してスペーサ代りにしている。 基板取り付けの際に線材の剥離とか起きなければいいのだが。
多分大丈夫だろう。

自作CPUで遊ぶ 25

まだ制御ソフトが完成していないので今まではスピンドルを移動するために一々簡単なプログラムを書いて移動させていたのだが、非常に面倒なのでCNCペンダント的なものを作ることにした。 右側の縦に2つ並んでいるスイッチ...