2011年11月15日火曜日

ガニメデの優しい巨人

創元SF文庫のジェイムズ・P・ホーガンの「星を継ぐもの」シリーズにはまっていて、今は「ガニメデの優しい巨人」を読んでいる。 これのp217の記述 「ハードウェアの構成自体がプログラム可能であって ~   言うなれば、ソフト・ハードウェアだな。」ってまるでFPGAだね。。。この作品は本当に面白い!!

この作品のCopyright情報によれば、「INHERIT THE STARS」(星を継ぐもの)は1977 in USA、「THE GENTLE GIANTS OF GANYMEDE」(ガニメデの優しい巨人)は1978 in USAとなっている。一方、Wikipediaによると、「プログラム可能なロジックアレイ、論理ゲート、論理ブロックといった基本概念は1985年、David W. Page と LuVerne R. Peterson の取得した特許に既に見られる」そうだが、これの出典である特許(http://www.google.com/patents?id=BB4vAAAAEBAJ&dq=4508977)によるとFilling date(申請?)が1981年、特許内で引用している他の特許でもっとも古いのが1971年のものになっている。作者ジェイムズ・P・ホーガンの作品中の上記記述は彼の独創によるものなのか、それとも作品とほぼ同時期に発明されていたPLA (Program Logic Array)の概念について既に知っていたんだろうか・・・ どうでもいいっちゃどうでもいいことなんだけど、ちょっと興味があるな。

2011年11月13日日曜日

Spartan6 FPGA LX9 MicroBoard

AvnetのSpartan6 FPGA LX9 MicroBoardを入手した。

このBoardはLPDDR-SDRAMを実装しており、DDR CONTROLLERを作ってみたいと考え入手したのだった。また、PMODというUser I/O用のConnectorも有るので、例えばDVI出力もできるかも知れないと期待してのことだった。。が残念なことにPMODはFPGAのBank1の端子が使われている。 DS162によるとBank1は差動系のI/Fは殆ど使えないようだ。遊び心がないなぁー Avnetって。 それにU60_xlx_s9_lx9_fpga_microboard-ug022811.pdfというUser Guideによると、PMODはBank0になってるんだけどな。。。



でも、DDR CONTROLLERの作成はできると思うので挑戦してみよう。

2011年11月7日月曜日

Spartan3A StarterKit 用 DVI (HDMI)変換基板の作成

Spartan3A StarterKitのDVI I/F用コネクタは下の写真の通りHDMIコネクタに線材を直付けしていて、いつか変換基板を作ることが懸案事項になっていた。


ようやく、今日ユニバーサル基板を用いて変換基板を作成した。


配線はUEW線を使用したが差動信号なのでツイストペアにし、長さも揃えた。


気持ち LCD Displayの同期のかかりも早くなった気がする。


アップロードした動画は階調が落ちる?らしく上の動画ではLCD Displayの表示画面の画質や階調が悪く見えるが、実際は綺麗に表示されている。


2011年11月3日木曜日

SDRAMCのLattice XP2への実装 7

ようやく、ちゃんとした画が映るようになった。


ちゃんとした画がでるようにはなったのだが、Timing解析の結果ではクロック載せ替えの部分でSetup ErrorとHold Errorが若干ある。 これらはfalse pathやmulticycle path指定すればいいとは思うのだが、Diamondでの制約の付け方が資料を見たりもしているのだが、何かよく判らない。 また、RTLを編集してClock位相関係を変えて合成するとTiming Errorはまったく出なくなるのだが、実際の動作は画がでなかったり不安定になったりする。 Timing Error有りだと安定動作、Timing Error無しだと不安定という、よく判らない状態だ。

何んかもやもやした気分だが、SDRAMCの作成はこれで終了としようと思う。

ここまでのRTL一式はいつも通り、
http://www.hi-ho.ne.jp/bravo-fpga/
に置いた。

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をやっている人って世界中にいらっしゃるんだな。
当然っちゃー当然かも知れんが。

ERROR: Failed to spawn fakeroot worker to run ...

なにかと忙しくてなかなか趣味の時間を確保できない。 ...orz  家の開発機のOSはLinux Mintなのだが、最近バージョンを22に更新したところ、myCNC用のpetalinuxをビルドできなくなってしまった。ビルドの途中で ERROR: Failed to spawn ...