2012年01月05日

mk2設計(7)

  細かいバグを収束させて、だいぶまともに動くようになりました。

  ↓こんな感じです。



  サンダーフォース



  ワンダラー



  ハイドライド


  ただ、動かないソフトもだいぶあります。

  とりあえず、I/OポートのF3〜F7 の実装がまだなので、これが終わったらリリースするつもりです。


  音声合成とFDD周りの実装は、後回しですね。
posted by えすび at 13:10| Comment(0) | FPGA化:その他 | このブログの読者になる | 更新情報をチェックする

2012年01月01日

mk2設計(4)

  新年を迎えましたが、関係なく設計しています(^^;

  画面周りが出来たので、とりあえず必要なI/O を作って、メモリマッピングとか行って、mk2 のROMで立ち上がるようにしました。

  

 ...動かない。


 とりあえず、例によってロジアナで解析モードです。

posted by えすび at 18:08| Comment(0) | FPGA化:その他 | このブログの読者になる | 更新情報をチェックする

2011年10月11日

CPU周りの設計(7)

 とりあえずCPU周りの雑多な回路から実装してみようと思いました。

 まず、WAIT の生成。

 回路から読み取った、WAIT の発生条件は次の通り。

・M1ステートの読み出しは、全て1WAIT。
・A15 = L の時(つまりROM領域にアクセス時)、メモリのリード、ライト時に1WAIT。
・AY-3-8910(I/Oポートアドレス 0xA0〜0xAF)に対するリード、ライト時に1WAIT。

 少ないので簡単だと思ったんですが...

 使っている T80 のパルスが、Z80 と違うー。

 ほとんど問題はないんですが、ライト時のWAIT の入れ方が異常!
 MREQ/IORQ と WR が L になる前に、WAIT 信号を要求する仕様になっています。


 このために、I/O を含むライト時に WAIT は入れられませんでした。WAIT を入れる必要があるデバイスかどうかは、アドレスで区別するのですが、メモリか I/O かの区別をするためのIORQ の前に WAIT を入れる必要があるので、どうしようもありません。


 ライト時の WAIT が問題になりそうなのは、

 ・ROM 領域に書き込みを行った時、CPU の動きがちょっとだけ速くなる。
  →多分問題にならない(というかROM領域に書き込みしない)

 ・AY-3-8910 に書き込みを行った時、CPU の動きがちょっとだけ速くなる。
  →あまり問題にならない(速度に多少影響をするかも、程度)


 なので、WAIT 発生条件を以下のようにして実装することにしました。

・M1ステートの読み出しは、全て1WAIT。
・A15 = L の時(つまりROM領域にアクセス時)、メモリのリード時に1WAIT。
・AY-3-8910(I/Oポートアドレス 0xA0〜0xAF)に対するリード時に1WAIT。
・ライト時は、全てWAITなし。


 ついでに、2ms タイマと割り込みの優先回路も実装しました。


 ただ、8255 と 8049 を実装しないと、全然動かないんですけどね。

posted by えすび at 23:07| Comment(0) | FPGA化:その他 | このブログの読者になる | 更新情報をチェックする

2011年09月30日

カラーLCD購入

 今日、医者に行ったついでに日本橋に行きました。

 お目当ては、持ち運び可能のPC-6001のためのLCD。ついでに、キャラクタの表示用のLCDも買おうかと(ボードの正規品は4000円と高い)。
 デジットでいろいろ探してみると、白黒のLCDはいろいろと安いのがたくさんあるけど、カラーは殆どなかった。

 で、見つけたのが、タッチパネル付きのカラーLCD(型番:KCG047QV1AE-G00)。

 2500円でまあまあ手頃で、ドットが 320×200 と、まるで PC-6001mkII を作れと言っているようだ。

 使えそうなので買ってみる。店員にインバータやら変換コネクタやらを勧められたが、とりあえず買わないでおく。
 インバーターは何とかなりそうだが、変換コネクタは、フレキのケーブルが必要っぽい。

 ついでに怪しげなノーチェックのカラーLCDも買う(300円)。箱に『CRマリンギャルズ』と書いていたから、パチンコの液晶のようだ。
 何気なく2つ買って、帰ってから見たら、『CRマリンギャルズ』と『マリンギャルズ』と別だった。演出でも違うんかな?


 帰りに共立電子に寄って、キャラクタLCD(800円)とコネクタ類を買う。
 帰ってから袋の中を見ると広告があり、その広告は『DE0 nano』と『DE0』の広告が。

 もう少し早く知っていたら、要らない本を買わずに済んだのに...


 DE0 nano のスペックを見てみると、DE0 よりも(多少)よくなってます。CycloneIV になってますから。

 http://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&No=593


posted by えすび at 14:58| Comment(0) | FPGA化:その他 | このブログの読者になる | 更新情報をチェックする

2011年09月28日

FPGA化の方針について

 FPGA化するにあたり、大方針をまず決めておきます。

1)PC-6001の回路を出来るだけそのまま実現する。

  PC-6001の回路図は、昔のI/Oに掲載されていました。1983年4月号のP301〜に、「PC-6001解析+全回路図」が掲載されています。国会図書館で閲覧が可能かと思います。


  ちょっと昔、P6エミュレータの存在をまだ知らない頃に、部屋の大掃除をした時に、PC-6001関連の書籍などはほとんど捨ててしまいました(すごく後悔...)。
  ただ、PC-Techknow6001 は捨てておらず、その本に切り取っていた回路図をはさんでいました。

  最近、この回路図を発掘したのが、このプロジェクト(?)を始めるきっかけです。


2)回路をFPGA化する際は、出来るだけ推奨されている設計方法にする。
 ・内部バス、内部トライステートは使わない。
 ・クロックの立ち上がりエッジに同期した回路にする。
 ・メインクロック以外にクロックを使用しない。
 ・ゲートだけのループ回路(ex.NANDたすきがけのRSラッチ)は使わない。

  基本的に現在のFPGAやLSIの設計で一般的なものです。上記の項目を守らないと、タイミング検証がまともに出来ません(=まともに動くかどうかわからない)。


  PC-6001mkII 以降に関しては....当面は考えないことにします。




posted by えすび at 12:41| Comment(0) | FPGA化:その他 | このブログの読者になる | 更新情報をチェックする