2011年5月22日日曜日

dvi_encをAtlysに移植した

Spartan6のprogrammingも出きるようになったので、次のステップとして dvi_enc の移植を行った。
移植は簡単に出来たが、ついでにclockの乗せ替え部分(dvi_gearbox)の変更を行った。
dvi_gearboxはこれまで非同期FIFOにしていたがこれを止めて、hs_ddr2cのclockの乗せ替え部と同じ方式にした。具体的にはclock生成部において、pixel clock(pclk)はTMDSのclock(sclk)をring counterで1/5して作るのだが、この時pclkのstrobe信号(pvld)も生成する。 clockの乗せ替え部ではpclk同期の信号をpvldに同期してsclkでcaptureする。 この方式の方が使用するresourceが少なくて済む。



以下は動作している様子だ。 XGA (1024x768)で動作させている。



公開しているdvi_encも新版に更新した。

jwrtのSpartan6対応

FPGAの開発はLinux (ubuntu) 上で行っているが、
IMPACT等のprogram softwareはwindrvがinstallできないためubuntu上では動いてくれない。
動かす方法はあるかも知れないがXilinxのanswer等を見ても情報が無いのでそれ以上の調査は行っていない。 その代わり・・・という訳でもないのだが、FPGAのprogramingには自作のTOOLとsoftwareを使っている。 これはjwrtというもので、sorceforgeで公開をしている。

今般、DigilentのAtlysを入手したので、こいつのSpartan6をprogramするためにjwrtにspartan6対応を追加した。



下がjwrtでprogramしている様子だ。





AtlysではFPGAのconfiguration用ROMはSPI 仕様の物を使っているため、JTAG chainにはspartan6だけが繋がっている。 SPI ROMをJTAG I/Fからprogramするためには、JTAG本来の機能を使ってFPGAの端子を制御してROMへの書込みを行うことになると思われるが、jwrtにはその機能は無い。 SPI ROMの書込みは、このように無理してJTAG経由で行うよりも、Spartan6に書込み回路を入れてUART等からdataを流し込んでprogramする方が多分高速にできると思うので、ROMへのprogramが必要になったらその方法でいこうと考えている。

ま、当面はSpartan6へのprogramが出来れば十分なのだが。


2011年5月14日土曜日

zumi32のRTLを公開

zumi32版gccのPortingにはCGENを利用しようと考えており、CGENのdocumentを読んで勉強して来ておおよそは理解できcpuファイルをほぼ書き上げたところで地震騒ぎがあり中断してしまっていた。
また再開したいと思うのだが、完成はまだまだ先になりそうだ。
そこで、zumi32のRTLとassemblerだけでも先に公開することにした。

いつものように、ここ(http://www.hi-ho.ne.jp/bravo-fpga)に置いた。

Spartan6 LX45評価ボード

これまで主にSpartan3A StarterKitで遊んでいたが、それ以外の最近のFPGAも使ってみたいと考えていたところ、ストロベリー・リナックスでSpartan6 LX45評価ボードを販売しているのを見付け思い切って購入した。このボードはDigilent製で、DigilentといえばSpartan3A StarterKitもDigilent製だった。



このボードは、Audio & Visual系を意図した評価ボードの様でHDMI I/Fを4つも持っていたり、AC97 I/Fが付いている。
DIGILENTロゴ下のBEYOND THEORYという文字が気に入った。(実際入手するまで気づかなかったのだが。) いい言葉だと思う。

今後は、このボードでSpartan6の学習もしていこうと思う。

DE0のLCDの交換

DE0のLCDは手持ちのほとんど骨董品のような物を使っていたが、
表示濃度が薄すぎて文字が見づらかったので、新しい物に交換した。
このLCDは秋月電子から購入した。


2012.07.17 追記
LCDの出っ張りが気に入らなくて Strawberry-Linuxで販売しているLCD-10862に交換した。


このLCDはバックライトLEDが赤・青・緑あり電流を調節すれば白色発光も出来そうだが、
面倒なので青色だけ使用している。また、DE0の電源がUSBバスパワーのみだとコントラスト
が悪いようだ。接続先がUSB-HUBの場合かPC直結かによっても変わると思うが、
LCD使用時はDE0付属のACアダプターを使った方が良さそうだ。


自作CPUで遊ぶ 22

今使用しているモータードライバはDM556Dというものだが、このドライバはMicro Stepが 800 [pulse/rev] 〜 40000 [pulse/rev]の範囲で設定できる。 Mi...