2014年09月04日

MSX on DE0

他人様のFPGAばかりの話で恐縮ですが、OneChip MSXがDE0に移植されています。
ロシア語のページですがここです。
僕もOneChip MSXの実機は持っていますが、HRA!さんのページのものをベースにI2C接続のRTCやEEPROMの制御回路を追加し、
画面モードや時計が電源を切っても保持されるようにしています。(USBポートをI2Cに使用)
僕の8801互換機は最初はOneChip MSXのハードウェアを使って開発を始めましたが、OneChip MSXの
特徴として不揮発メモリはFPGAイニシャライズ用シリアルフラッシュだけ、というのがあります。
初期化フラッシュは4Mbitあるのですが、FPGAの初期化には約半分の容量しか使用しません。
(実際には、無圧縮の状態では半分を若干超えるのですが圧縮して半分に収まる)
残りの半分の容量にBIOS等が入っており、FPGAがフラッシュからSDRAMにコピーするのですが、
このコピー動作はCPUが行っています。つまり、Z80のコードでフラッシュからSDRAMにコピー
しています。(僕の8801互換機はハードウェアで処理)
この部分のZ80コードにはソースがついておりません。上記HRA!さんのところはもともとMSX2だったものを
MSX2+にしたり、その他いろいろ機能が追加になっている関係でBIOSデータも増えており、
そのままではFlashの空き容量では不足するらしく、圧縮して収めてあり、Z80コードで
展開しながらSDRAMにコピーしているようです。
ロシア語の方はMSX3のロゴが出ますが、恐らく同様にMSX2+相当になっているようです。
ただ、OneChipMSXのFPGAデータが圧縮してフラッシュの半分に収まるのに対し、
DE0のFPGAはゲート数が1.5倍ほどありますので圧縮してもFlashの半分には収まりません。
HRA!さんのBIOSデータはFlashの約半分のサイズですので、ロシア語の方はさらに
BIOSデータを圧縮してあるのでしょうか。

僕の8801も98の方も、BIOSコードはFPGA初期化用フラッシュではなく、パラレルフラッシュに
置くようにしています。(ただ、98の方のフォントを除いて起動時にSDRAMにコピーするのは
同じですが。)
これは、パラレルFlashは4MB有るのでFPGAイニシャル用の8倍の容量があり、アドレスの重複を
回避すれば複数のPCのBIOSをパラレルFlashに焼いておき、FPGAの初期化はJTAGから行えば
いちいち初期化Flashを焼き直さなくても機能の切換えが出来るというメリットがあります。
(Flashの書き換えには数十秒、JTAGでの初期化は1~2秒。それにFlashには書き換え寿命もあり)
また、フォントは98と88で同じものを共有しています。(88用フォントを98で使用)
その為、MSXもBIOSをパラレルFlash側に移したいというのが希望です。
その為にはBIOSデータを初期化FlashからSDRAMに展開するコードを解析して
展開後のデータを吸出し、Flashに書かなくてはなりません。

現時点ではDIPスイッチの設定はスライドスイッチに割り当てていますが、
最終的にはI2C EEPROMに移したいと考えています。これも、
アドレス重複を避けて他機種で1個のEEPROMで共有する予定です。
まぁDE0のスライドスイッチは大きいので簡単に切換えできますが
OneChip MSXのDIPスイッチは指先では切換えできないような大きさなので
機種を変える度にスイッチを切り替えるのは面倒だ、という意図で、
実際にOneChip版8801はDIPスイッチは一切使用せず、手抜きで
RTLでの決め打ちになっています。
posted by プー at 21:34| Comment(0) | 雑記 | 更新情報をチェックする

2014年08月28日

SPARCstation on FPGA

先ほどネットで調べていたら、既にFPGA上で
SPARCstationが動いているようです。
youtubeにアップされていました。
実はSPARCstationも幾つか持っているのですが
(DEC AlphaもIBM RS/6000も持っていますが)
nvramの電池が干上がってしまっていますので起動すら
出来ません。
ですが、もしde0でSPARCが動作したら格好いいですね。続きを読む
posted by プー at 01:00| Comment(0) | 雑記 | 更新情報をチェックする

2014年08月25日

Plus Too

インターネットで面白そうなものを見つけました。
FPGA上でMacを動かそうというもののようです。
Plus Tooというもので、DE1で512k MACが動作するようです。
まだキーボードが実装されておらず、入力デバイスはマウスだけのようです。
早速ダウンロードしてみましたが、試しにデバイスをDE0で使用しているEP3C16F484C7に
変更しコンパイルしたところ、正常にコンパイルができることが確認できました。
ただ、DE1は512kBのSRAMを実装しており、DE0はSRAMは無く、外部RAMはSDRAMのみです。Plus TooはSRAMを
使用しているようなのでこのままでは動作しません。FPGAの内蔵RAMも64kB以下の容量しかありませんので
無理です。
DE0で動作させるのであれば、外部にSRAMを接続するかSDRAM用に書き直す必要がありそうです。
Macにはあまり思い入れはありませんが(PowerPC時代のものを1台持ってはいますが)
一度動くところを見てみたいものです。
posted by プー at 00:06| Comment(0) | 雑記 | 更新情報をチェックする

広告


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

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

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