2013年11月14日

X68000

次のネタ
http://fpga8801.seesaa.net/article/379936122.html
としてX68000を考えていましたが、難しいということが判明しました。
RAMの帯域が足りません。
1chip MSXもDE0も16bitデータ幅のSDRAMを積んでいます。
DRAMなのでROWアドレスを指定してからデータが出るまで
40nsec位は掛かってしまいます。
グラフィックス用のVRAMをSD-RAMに置くと、16bit colorの場合、
1dot描画するのに1ワード(2バイト/1アドレス)のデータが必要になります。
768×512ドットの画面が表示可能なVESA画面モードは解像度800x600以上
になりますが、800x600x60Hzの画面でドットクロックは40MHzです。つまり
1秒間に40Mアドレスからデータを読み出せる速度が必要です。
更にテキスト画面4プレーンも容量的にSD-RAMに置かざるを得ませんので
1dotに4bit(1/4ワード)必要になりますのでグラフィックスとテキスト
合わせてSD-RAMから平均50MHzの間隔(20nsec間隔)で読み出す必要があります。

幸い、SD-RAMにはバーストモードがあり、連続したアドレスであれば
1クロックで1ワード(アドレス)のデータ読み出しが可能ですが、SD-RAMの
クロックが100MHz程度なので最低でも半分のクロックはバーストでの
読み出しが必要になります。当然、グラフィックスとテキストのアドレスは
連続していない(スクロール等でずらすことが出来てしまう)為、
別々にアクセスしようとすると80MHz平均程度の間隔で読み出すことが
必要になってしまい、そうすると全体の20%がRAS→データ読み出しまでの
時間+プリチャージ時間とすると、RAS→読み出しが40ns、プリチャージが
20nsで合わせて60ns、60nsが全体の20%ということは300nsが1サイクルで
最初の60nsでデータが出て、それから220nsのデータを読み出し、20nsの
プリチャージが1サイクルの動作になると思います。その間、アドレスは
連続している必要がありますのでCPUはメモリにアクセスできず、
CPUがアクセスできるのは約300nsに1回、3.3MHz程度のクロックまで
下がってしまいます。また、220nsの読み出しということは22ワードになりますが
ページサイズが256ワードなので割り切れず、端数が出てしまいます。
32ワードにすると1サイクルが380nsになりますのでCPUからのアクセス周期は
2.6MHzにまで遅くなってしまいます。
MC68000のメモリアクセスサイクルが4クロック/サイクル
だとすると最高でも10MHz程度の速度、実際にはメモリアクセスサイクルは
もっと短い為ウェイトが入ることになってしまい、CPUが実機よりかなり遅い
動作になってしまうことが想定されます。
posted by プー at 02:07| Comment(0) | 雑記 | 更新情報をチェックする

2013年11月11日

次のネタ

気は長いのですが、飽きっぽい正確なので次に on FPGA化する
ネタを考えています。
(まだ8801ですら不足している機能やバグが沢山あるのですが。。。)

所持しているPCは他に、
・ポケコン PC-G801
・PC-9821(続く型番は忘れた。。。ゴミ捨て場で拾った物。)
・FM-R50(同上)
・FM TOWNS2
・MSX2(Pana)、MSX2+(SONY)
・AT互換機数台。。。
ポケコンはFPGA化したところで動かしたいソフトがある訳ではないので却下
MSXは1chip MSXが既にあり、AT互換機はZetがある。
残すはPC-9821とFM2機種。FM-Rはともかく、TOWNSは作れたら面白そうだし
それなりに需要は有りそうですが、ATAPI等のCD-ROM I/Fを実装したり
386のプロテクトモードまで実装するとゲート数が足りなさそう。。。
PC-98シリーズは需要はとても有りそうです。Zetも同じi8086系なので
作れないことは無いと思います。ただ、手持ちは486(DX4)の9821なので
PC-9821用のBIOSがi8086で走るかどうか。。。もしかしたら
V30世代位のBIOSが必要になるのかもしれません。

手持ち以外では、X68000がBIOSが公開されています。先日Inside X68000(本)も
入手しましたので環境は揃ったと思います。これも、ある程度機能限定になる
かもしれませんが面白そうです。ただ、実機が無いので(エミュレータだけなので)
画面周りがどのような動きになるのかちょっと気になります。
とりあえずX68000ディレクトリだけ作りました。。。
posted by プー at 13:52| Comment(0) | 雑記 | 更新情報をチェックする

2013年11月07日

Zet

そういえば、Zet processor
http://zet.aluzina.org/index.php/Main_Page
の最新がv1.3.0になり、DE0でもグラフィックスがサポートされたようです。
(Windowsが動くようになったと書いてあるので)
これも面白そうですね。今までグラフィックスはDE0では対応ではなかったようなので
試していませんでしたが暇なときに試してみようかな。

ちなみに、このソース(のPLL部分だけCyclone1用に書き換えて)でデバイスを
1chip FPGAのEP1C12Q240に変更したところ、無事にコンパイルが完了したので
収まるようです。(LEが90%なので僕の8801より小さい!僕のコードが汚いからでしょう。。。)
一度1chip PC/AT互換機と言うのもやってみたいです。ただ、ZetはBIOSをFlashに置くので
1chipで動かすにはEPCS4からSDRAMにコピーするという手法をとらないとダメですから
結構な改造が必要になりそうです。
posted by プー at 20:20| Comment(0) | 雑記 | 更新情報をチェックする

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。