ゲーム研究会(らいふゼロ)

ゲーム全般、電子工作

配線完了

2010-12-19 14:30:18 | 電子工作


ビデオゲームシステム~

配線しやすいように気の向くまま結線したので、FPGA側のアサインを変更せねば。
とりあえずこれで動けば万々歳です。

《数時間後》
ザイリンクスのダウンロードケーブルを流用して焼きこみを行いましたが、画面が全く出ません orz
ラインバッファなどでDPRAMを多用しているのですが、どうやらXP2シリーズでは
『Read before Write』モードが使用できない様です。 がっくし。
多分スパ3よりもブロックRAMも高速に動作するだろうから
倍速アクセスで『Read before Write』のような動作を実装すればいいんだろうけど、
コンパイル時間が倍以上軽く掛かるので、Lattice上での設計変更は面倒臭いのよね;_;

《21日午後8時》
色々やってるけど動かない orz
ワーニングも全てみてもまったく動作しないような致命的な要因は見当たらない。
PLLクロックも意図通り周波数になっている様子。
デバッグ用の回路を一切入れていないので、何で動かないのか皆目見当がつかない。
しかし参るのはコンパイルスピードの遅さだ、何をしようにも億劫になってしまう。

■実測してみた
Xilinx 3分30秒
Lattice 12分20秒
なんと3.5倍も掛かってしまうのだ。 モチベーションも駄々下がりです><

あと、迷惑なのはバス幅が違う接続をした際、XilinxはLSB側を基準に揃えるが、
LatticeはMSBを基準にして下側を捨てるのだ!!! 幅を揃えればいいんだけど、
そんな面倒臭いこといちいちしてられませんのよっ プンプン!

色々ソフト面は不満が噴出しますが、チップ自体は良いものだと思います。
PLLも融通が効きますし、DSPの演算ブロックとかは未だ使っていませんが豪華な音源も
実装できそうですし、コンフィギュフラッシュを内蔵してる利便性も高いですね。
あとタグメモリというマイコンで言うところのEEPROMみたいなものもあります。
面白いチップではないでしょうか。(※スパ3と比較した場合の話ですよ)

あぁ、今週中には動かしたいなぁ・・・

LatticeのFPGAへ持ってきた

2010-12-18 17:22:04 | FPGA


回路図の移植は物凄く疲れる、一応付録基板のLFXP2-5E用のコンパイルは通ったようだ。
回路規模的には50%くらいの消費のようなので、音源回路などの構築もできそう。

ただ、Xilinxの環境と比べるとコンパイルスピード等、Latticeの環境はちょっとやりにくい。

動くかどうかドキドキもんですが、SRAMの配線やダウンロードケーブルの製作はこれから
なので、もう少し時間が掛かります。

とりあえず工作

2010-12-16 13:30:04 | FPGA


なかなか手頃な価格のFPGA基板が無いので、とりあえず雑誌付録で行こうかなと。
http://www.amazon.co.jp/gp/product/4789849406

秋月部品
SRAM http://akizukidenshi.com/catalog/g/gI-02165/
変換基板  http://akizukidenshi.com/catalog/g/gP-02411/
水晶48M http://akizukidenshi.com/catalog/g/gP-01806/

LatticeのFPGA用にデザインを移植せねばならない。
Diamondツールをダウンロードして作業してみたものの、回路図エディタがとてつもなく使い辛いwww
ライブラリが薄いってか、必要に応じてIPジェネレータで作らねばならないんだけど面倒臭い。

さて、移植するにしてもコンフィギュ用ROMが載っていないので
(フラッシュベースなのでFPGA内部に持ってました)、どうしたもんか。
載っててもダウンロードケーブルを持ってる人も少ないだろうし、CPU側から
FPGAの設定をやるしかないかなぁ… 色々と課題は多い。

みなし動作完了(゜∀゜)

2010-12-13 17:45:30 | FPGA
やったー、オリジナルVDP完成だぁ、ひゃっほ~~~うぃ

・4重スクロール(サターンクラス)
・128枚スプライト(PCエンジンクラス)

途中10回ほど挫折しそうになりましたが、やっと完成したぁぁぁ。
シミュレーションとかチップスコープとか使わずにトライアンドエラーだけで乗り切ったぁ。

チップスコープは実装してみたんだけどステップ数が少ないのと、
実装すると配置が変わってしまって細かいアナライズが出来ないので全く意味なかった。

細かいハードバグはソフト的に回避しちゃうえば問題ないw
後はAVRマイコン側のソフト次第や。

とりあえず、当初の目的は液晶にAVRマイコンを使ってストレスなくゲームを映すことなので、
達成できましたということで。(現状テレビ画面ですが…)

今はスターターボード上での実装なので、ゲームソフトがある程度動いたら
電子工作に好適なFPGAボード上に構築しようと思います。

選定FPGAに余裕度があったらの話ですけども、次のステップは
・SDカードかUSBメモリーからCG領域への自動転送
・音源実装
ですかね。

VDP経過

2010-12-12 09:33:02 | 電子工作


だいたい動作は落ち着いてきたかな。
でも細かい部分で意図した動きと違うトコがあって、回路構成を色々と変えて試してるけど
結果は全く変化なし。 FPGAは原因究明がとてもやりにくい。
グリッジノイズの要因的な回路は全て排除したんだけど、パラメータのラッチ部分で他所のパラメータ
の影響を受けている様子。

原因の特定ができればテンションも上がるんだけど、ワナを色々仕掛けてもつかまらない。
パレット選択パラメータがなぜかキャラUVに影響するんだよね。
番地が隣なわけでもないのでアクセスでデータが混濁してるのも考えにくいし…

これさえ解決すれば完成なんだけどなー

VDP的にはメガドラクラスとの解釈でいいのかな。
あ、メガドラは拡・縮あったのか。
PCエンジンの強化版って感じでしょうか。

こんなスレッドもあったのね、ここの内容をなぞっている気がしてきたw
http://mimizun.com/log/2ch/denki/1124621751/

手頃なFPGAボード

2010-12-09 11:15:23 | 電子工作
FPGA/Cyclone II EP2C5T144ボード
価格: 6,280円(税込)

http://www.csun.co.jp/SHOP/2010092101.html

電子工作に適した手頃なFPGAボードを探してたけど、価格とチップ規模がなかなか折り合わない…
これがザイリンクスなら丁度良かったんだけどなぁ、裏面にSRAMパターンもあるので。
今回設計のVDPは1200Slice程度の消費なので多分このボードに収容可能だと思う、
けれどFPGAのメーカーが違うので移植する時間を考えると躊躇してしまう…
その理由は回路図率が高いので移植作業が面倒だからだw
100%verilogなら良かったんだけどね。

FPGAの勘所

2010-12-04 09:12:25 | FPGA
ISEを使い始めて丁度一ヶ月が過ぎた。
ようやくFPGA上での回路設計の勘所みたいなのが見えて来たような感じ。
通常のディスクリート部品で構成した設計をそのまま持ち込むと痛い目に遭うのは今回痛感した。
まぁ落ち着いて考えてみればスライスの構成上そのエレメントで構成される回路がどんな特性を
持つか容易に想像できたモンだけど、verilogやら記述言語に見事に踊らされて盲目になってたようだ。

一つの部品が複数のエレメントで構成され、エレメントの配置によって同じクロックから同期生成された
信号が伝播経路によって多少のずれを帯びるのは予想できた事だったけど、
コンパイラによって細分化された一つの部品が、すっとぼけた位置に配置されて2~3nsのバラつきが生じるのは
まったく予想できんかった。

通常のディスクリート部品で構成する回路では、
カウンタ下段で生成される信号をクロックとして上段ビットをラッチする行為は普通に行われるけれど、
FPGAでその回路を構成するとコンパイラの気分で動いたり動かなかったりする。
動作周波数の高い低いに関係なく不安定な回路になるようだ。

ここ一ヶ月、結構無駄に足掻いてしまったけれども、
禁則事項的な意味合いが掴めてきたので、今までの回路を再構成してなんとか完成まで持って行けそうな予感。


なんでだろう

2010-12-02 18:45:53 | 電子工作

http://www.youtube.com/watch?v=sOuit9zeICg

スプライトのアトリビュートでXサイズとX位置のパラメータが衝突している。
カウンタにロードされる直前の値をモニターしてみても正常な値なんだが、
ラインバッファへの書き込みスタートの値はなぜかサイズの値でスタート???
グリッジノイズで変な値がラッチされているのか…?
各信号を一旦フリップフロップへ通しても状態に変化なし。
う~ん、どうやって対処してよいのか全然分からん。

全体的にはイメージに近いんだけど、細かいタイミングがコントロールできない orz
そろそろ心が折れそうです・・・




その後、
スプライト回路、正常に動作しました。(゜∀゜)
ISEの回路図エディタのクセを知らなかったのが敗因ですね、
バスからの引き出し線を安易にリネームした際、その箇所の引き出し線のみならず、
元々同じ接続だった引き出し線の全ての名前が一緒にリネームされていました。
(fpgaの世界では回路図なんて邪道で、回路図エディタ自体がおまけ機能でしかなさそうだし、
今後使い勝手が向上するような事もなさそうですね。
注釈欄に日本語入れるとあっさりアプリケーションエラーで落ちるし、
その回路図も読み込み不能になるというw)

こちら的には局所的な変更をしたつもりだったので、
別の複数箇所にも変更が及んで居たことに暫く気付けずに無駄な時間を過ごしました。
とほほ。