2014年8月31日日曜日

ZYBO 4

なかなか、遅々として進まない… -_-;; 

私は平日は3:30に起床するので遅くても23:00までには就寝する。 そのため、FPGAの作業等で夜更しできるのは金曜日の夜か土曜日の夜だったのだが、 事情で日曜日も3:30に起床しなければならなくなり、夜更しできるのが金曜日の夜だけとなってしまった。 休日の昼間の時間も趣味に使うことは可能なのだけれども、日中でなければできない他の用事もあったりするので やはり集中できるのは夜中となる。のだが、最近は気力減退気味だ。

 ZYBOでのテーマとして以前作成したDFT IPを実装してみることにしたが、DFT IPをCPUから制御するためにはAXI InterconnectとのI/Fが必要になる。レジスタ関係のアクセス(設定・読出し)にはAXI_GPポートに接続するAXI Slave I/Fが必要になるし、DFTしたデータをDRAMに格納しようとすればAXI_HPポートに接続するAXI Master I/Fが必要になる。AXI IPはXilinxのツールでも生成できるようだが、それだと勉強にならないので自作してみることにした。

ということで、RTLの作成を始めた。

資料としては、ARMのAMBA AXI Protocol v1.0 Specification、 XilinxのUG585 Zynq-7000 AP SoC Technical Reference Manual、 UG761 AXI Reference Guide 等を参照している。

AXIの規格を読んでいて、AxCACHE信号がよくわからない。
これはAXI MasterからAXI Slaveに対しての信号になるが、属性値BufferableによってWrite Responseの返し方が変わるというのは想像できるんだけど…   CacheableとかAllocateなどの属性はこのようにMasterが指定するものなのか? Slave側componentの実装内容によって決まることがらのような気がするのだが。。。。




2014年8月16日土曜日

ZYBO 3

さて、ZYBOだが、何して遊ぼうか考えているのだが・・・・

主な周辺I/OやDRAMはPS側に接続されているので、いまさらそれらのIPを実装してみてもしょうがない。 Zynqについては最近NIのLabView/FPGAやZynq搭載計測モジュールの広告をよく見かける気がするが、Zynqでなにか作るとしたら、やはり、信号処理的なやつとか数値演算的なやつが良いのかもしれない。  そこで、以前AtlysボードでやったDFT IPをZYBOに実装して動かして見ようと思う。

・DigilentのDVI(HDMI) IP
  zybo_base_systemに含まれているIPのソース等を色々と眺めていて気づいたのだが、DigilentのDVI (HDMI) IPのライセンスがBSD 3-clause license (修正BSDライセンス)になっていて、ちょっぴり感動した。




2014年8月9日土曜日

世界最小クラスのFPGA

夏バテ気味である。

LatticeのiCE40の0.4mm0.35mmピッチBGAパッケージがどれ程の小ささなのか興味があったので、通販サイトを調べたところDigi-keyで売っていたので買ってみた。 Latticeは最近 iCE40 Ultraというのも出しており、iCE40 Ultraには0.35mmピッチのパッケージ品もあるようだが、Digi-keyではiCE40 Ultra自体をまだ扱っていないようだ。

買ってみたのは、LM4Kという型番の25ボールWLCSPパッケージ品で、外形寸法は1.71mm x 1.71mm x 0.35mm、 ボールピッチ0.4mm0.35mmだ。

もはや、肉眼ではパッケージに印刷されている文字は見えない。デジカメ越しに見てもカメラのLCDの解像度では文字が潰れて判読できなかった。 撮影画像を見て初めて判読できた。



こんなに小さいが、LUT数は3520(XO2-7000の半分くらいの規模か?)、Enbedded RAMは80Kbit(同、1/3位)である。

http://www.latticesemi.com/en/Products/FPGAandCPLD/iCE40

これに自作CPU(zumi32)を実装して動かしてみたいもんだ。
せめて0.5mmピッチだったらワイヤーをボールに直接ハンダ付けして使えそうなんだがなー・・・
さすがに、この大きさだと無理っぽい。



自作CPUで遊ぶ 22

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