2015年5月31日日曜日

road to the soldering master 6

前回、フラッシュROMへのアクセスが出来なかった。フラッシュROM単体ではどうか見てみたらアクセスできたので、今度はFPGA単独でFPGA内部のCRAMに書き込めるか見てみようとして配線をばらしていたら、FPGAのコア電圧用のレギュレータの配線が間違っていることが判明した。  他にも問題があるかも知れないので、とにかくFPGA単体での動作確認をしてみることにした。
その結果、単体ではCRAMへのコンフィグレーションデータの書込は旨く行くことが確認できた。
bitmapデータはLatticeのリファレンスデザインのデータを使った。

次に、LEDを点滅させる回路を書いて動かしてみることにした。

iCE40はOn-Chip Strobe Generatorsというパルス発生モジュールを2種(Low Power Strobe Generator と High Speed Strobe Generator)内蔵しており、この出力はクロックソースとしても使える。今回はLPSGをクロックソースとして使用した。LPSGからは10KHzのパルスが出力される。
ちなみに、HPSGは12MHzだ。また、データシートによればiCE40のF/F(フリップフロップ)のfMAXは100MHz程度のようだ。

ただし、25pin WLCSPパッケージの場合はGND端子が2pinのみだし、今回進めている実験では0.15mmのワイヤーで基板のランドまで引き回しているのでどの周波数までちゃんと動作するかは未知数だ。

合成からbitmap生成までは旨くいった。

早速、生成されたbitmapファイルをiCE40に書いてみた。


そしたら、無事LEDが点滅した。
video

やったー \(^_^)/
やっべ、超ウレシー

フラッシュROMを繋いだ状態でどうかも見なければならないが、旨く行かなかったのはレギュレータの配線ミスが原因だと思う。  Lチカが確認できれば後は所望の回路を記述して実装して動かしてみるだけだ。 前回、KiCADで基板設計も行ったがその後若干の修正を加えてFusionPCBに発注した。その基板を使えば次のセットは少しは作りやすくなる筈だ。

2015年5月17日日曜日

road to the soldering master 5

先日の基板に電源とコンフィグレーションデータ用フラッシュROMの回路を追加した。
iCE40はコンフィグデータ用不揮発メモリを内蔵していないため外部に設ける必要がある。

反対側

Latticeの評価基板の回路図を見るとコンフィグレーションデータの書込はFT2232Hを使うようだ。この部分は昨年作成したMY FPGA BOARDのFT2232H部を使うことにした。以下はフラッシュROMへの書込を確認している様子。原因がまだ不明だがフラッシュROMへのアクセスが出来ていない。

FPGA本体の確認はこれが解決してからになる。動いてくれるといいんだが。

上記回路のFPGA以外の回路をパターン化した基板を作ってみたくなってパターンを引いてみた。
形状は24pin DIPと同等のサイズにした。


パターン図を原寸大でプリントアウトして部品を載せてみた。
左側のSOTパッケージは1.2V用LDO、右側の8pin SOICはフラッシュROM、真ん中よりやや左よりの金色の部品がFPGAだ。

上の2つのGALは比較のために置いてみた。 Lattice社は昔はこのGALというPLDのメーカーだった。私も仕事で色々と使った。写真のGAL6001は出力ピンに直結しないF/Fも内蔵するタイプの素子だが、入・出力・内部全部でもF/Fの数は70個もなかった。 かたやiCE40 LM4KはLogice Cell (LUT + F/F)が3520、RAMは80Kbit、その他にハードマクロでI2CやSPIまで内蔵している。



2015年5月10日日曜日

road to the soldering master 4

WCSPパッケージへのハンダ付けの見通しがたったので、ユニバーサル基板にデバイスを貼り付けてハンダ付けをしてみた。

2セットハンダ付けしたのだが、一つ(写真の右側)は途中、ハンダ付けの仕上がり確認で線材をツンツンしていたら2つのピンでパッドごと線材が剥がれてしまった。 orz

左側は一応全ピンハンダ付けできた。




電源やコンフィグ用の回路も実装して、FPGAが動作するか確認してみようと思う。






2015年5月9日土曜日

www.hi-ho.ne.jp/bravo-fpga/のstatistics 2

以前も書いたが、このブログで作成した作品はwww.hi-ho.ne.jp/bravo-fpga/で公開しているが、2011/5/14からアクセスログを取るようにしている。  ログといってもそのページを閲覧したIPアドレスと日時だけだ。 プロバイダの有料サービスを利用するともっと色々な情報が得られるようなのだが、お金をかけてまでこれ以上の情報を得たいと思わないので利用していない。

久しぶりにログを解析してみた。
開始時点から現在までの総アクセス数は約10900件になる。日毎のアクセス数をグラフにすると以下のようになった。

青は日毎のアクセス数、赤は累積数

IPのログはページが参照された時のIPアドレスをそのままログファイルに落としているので、ブラウザの表示を更新した場合はその都度IPがログに記録される。また、同じIPアドレスから数日後、数カ月後に再びアクセスされる場合もある。つまり、IPが重複して記録される訳であるが、上記はそのデータでグラフ化したものだ。

重複IPを排除したデータでグラフ化すると以下のようになった。


IPアドレスからJPNICやAPNICのサイトでそのIPアドレスが割り当てられている組織名を調べることができる。その情報から、ISP(インターネットサービスプロバイダ)、企業、学術機関(学校や国公立の研究機関等)に分類してグラフ化すると以下のようになった。  ISPからのアクセスは主に個人と思われるが、個人事業主や法人格でIPを取得していない企業も含まれている可能性はあるかも知れない。

属性每の累積値


全期間トータルでの比率を見ると以下のようになった。


国別で見ると以下のようになった。
AU,BE,...はドメイン名のccTLD(国コードトップレベルドメイン)である。


日毎で見ると以下のようになった。


TW(台湾)からのアクセスが多い。これは、一時期毎日のようにサイトをチェックされる方がいたためだ。 次にUS(米国)の企業からのアクセスが多いが、殆どはMicrosoftやGoogleのドメインからのアクセスなのでもしかするとクローラかも知れない。徐々にではあるが、それ以外の国からの閲覧数が増えて来ている。

世界的にもFPGAが流行ってきていることの表れなのかも知れない。


TE0720 No.4 (BNN-PYNQを動かしてみる 2)

TE0720でBNN-PYNQを動かすことが出来た。 以下は前回に続いてBNN-PYNQが動くまでの記録。 gdb (GNU debugger)で例外が出る原因を調べてみた。 例外が発生しているのはシェアードライブラリ(python_hw-cnv-pynq.so)の中であ...