DEOCM-PLD-CV(仮称)計画

概要

GitHub レポジトリ https://github.com/uniabis/deocmpldcv

GitHub リリース https://github.com/uniabis/deocmpldcv/releases

  • 1チップMSXDE0-CV に移植しました。
  • DE0-CVDEOCM を接続すれば MSX の実カートリッジスロットやジョイパッドポートなどが利用可能です。
  • 再現ハードウェアは OCM-PLD をベースにしています。
  • BIOS や BASIC などは 1チップMSX 販売時に非商用限定で公式にライセンスされた MSX2 相当が組み込み済みです。
  • MSX2+ 相当は OCM-PLD v3.4 以降と同じ形式のイメージファイルを用意すれば起動時に読み込まれます。

DE0-CVへのインストール手順

  1. Intel FPGA Program に登録しサインインします
  2. ‘追加ソフトウェア>Quartus Prime Programmer and Tools’ をダウンロードしインストールします
  3. deocm-pld-cv Releases から pof ファイルの入った zip ファイルをダウンロードし展開します
  4. DE0-CV とパソコンを USB ケーブルで接続します
  5. DE0-CV の RUN/PROG スライドスイッチ (SW10) を PROG 側にセットします
  6. ‘Quartus Prime Programmer and Tools’ を起動し pof ファイルの内容を DE0-CV のコンフィグ用シリアルメモリー (EPCS) に書き込みます
  7. DE0-CV の RUN/PROG スライドスイッチ (SW10) を RUN 側にセットします

更新履歴

v0.0.5 以降の構想

  • スロット3-3に MSX-JE を搭載可能にします。
  • R800 DRAM モードよりすこしはやい謎 CPU の搭載を目指します。

v0.0.4(2019/06/19) 概要

v0.0.3(2019/03/12) 概要

  • カートリッジと比べて小さすぎる DE0-CV 側の音声出力を増幅しました。ただし、音量を上げすぎると飽和して歪んだ出力となります。
  • 電源投入時に起動ロゴが表示されないのはモニタが原因でした。

v0.0.2(2019/02/24) 概要

  • リセット時にファームウェアを常にコンフィグレーション FLASH(EPCS64) やメモリーカードから読み込むようにしました。従来は DOS2 カーネルの先頭2バイトが正常な場合スキップしていました。
  • 電源投入後にリセットボタンを長押ししない限りファームウェアが読み込まれない問題を修正しました。

v0.0.1(2019/02/17) 概要

  • リセット周りの対応が甘すぎたようでリセットボタン(KEY0)を長押ししないと正常に起動しない場合があるようです。
  • リセットボタンはプッシュスイッチKEY0とします。
  • OCM-PLD v3.6.2 を DEOCM + DE0-CV + Quartus Prime Lite Edition v18.1 に移植しました。
  • 組み込みファームウェア(BIOS,BASIC など)は 1chipMSX 販売時に非商用限定で公式からライセンスされた MSX2 相当に戻しました。パッチが当たっている DOS 以外はそのままの内容ですが配置を OCM-PLD v3.4 以降に合わせるためにダミーデーターを挿入しています。
  • ファームウェアの読込開始アドレスは EPCS4(512KB) の末尾から EPCS64(8MB) の末尾に変更します。
  • 再現ハードウェアはまずは OCM-PLD と同じ MSX2+ 相当に turboR の一部機能を追加したものそのままとします。
  • ディップスイッチはスライドスイッチ(SW0-7)にそのまま割り当てます。
  • YJK モードの出力は4096色に制限されます。

雑記

DE0-CV+DEOCMの1チップMSXからのハードウェアの変更点

  • FPGAがCyclone EP1C12Q240C8NからCycloneV E 5CEBA4F23C7Nに変更になりました。規模がおよそ4倍になりました。内蔵メモリーや積算器なども増えています。 ピン割り当てが完全に異なります。
  • 入力クロックが21,477,270Hzから50MHzに変更になりました。CycloneVの小数PLLの精度に期待します。
  • フラッシュメモリがEPCS4からEPCS64になり容量が16倍になりました。FPGAのコンフィグレーション情報が4倍と考えても6MB以上自由に使えます。
  • SDRAMがK4S561632E-TC75 32MB133MHz(CL3)からIS42S16320F-7TL 64MB143MHz(CL3)になりました。クロックを上げても単純に速くはなりませんが容量は2倍です。
  • カードスロットがmicroサイズになりました。CD端子やWE端子は元からないようです。
  • スイッチやLEDが少し増えています。
  • デバッグに便利そうな7セグがあります。DEOCM取付時の視認性はギリギリでした。小数点は結線されていません。
  • コンポジットビデオ出力端子とS端子がなくなりました。
  • VGA出力のDACがRGB各6ビットからRGB各4ビットになりました。
  • USB端子x2がなくなりました。ゆくゆくはキーボードやパッドをつなぎたかったのですが。
  • PS/2端子のマウス用第2シリアルの結線が追加されました。
  • 音声出力とデータレコーダー出力がR-2RラダーではなくFPGA端子直結1bitCR-LPFに変更されました。端子はピンジャックからミニジャックに変更されました。
  • リセットコントローラーがなくなりました。プッシュスイッチで置き換える必要がありそうです。プッシュスイッチにはバッファ(SN74AUC17)が付いているので出力をそのまま使えそうです。
  • 内部GPIO端子がなくなりました。DE0-CVの40pinGPIOx2はDEOCMとの接続が占有します。いくつか未使用ピンが残ってはいます。
  • JTAG端子が空きパターンのみになりました。USB Blaster相当機能が追加されました。

FPGA等の比較

- DE0-CV
with DEOCM
DE0
with DEOCM
1chipMSX MiSTer
DE10-Nano
with Memory Board
FPGA CycloneV E
5CEBA4F23C7N
CycloneIII
EP3C16F484C6N
Cyclone
EP1C12Q240C8N
CycloneV SE
5CSEBA6U23I7N
-rbf size 38,000,000b 4,100,000b 2,323,240b 56,057,472b
-IOCSR rbf size 190,686b - - 324,888b
-LE 49kLE(18,480ALM) 15,408LE 12,060LE 110kLE(41,910ALM)
-Memory 3,080Kb 504Kb 239,616bit 5,570Kb
-Multiplier 132 56 0 224
-PLL 4(fractional) 4 2 6(fractional)
-Input Clock 50MHz 50MHz 21.48MHz 50MHz
-Global Clock Max 550MHz(C7) 472MHz(C6) 275MHz(C8) 550MHz(I7)
Configuration device EPCS64 EPCS4 EPCS4 EPCS128(rev.A,B)
EPCS64(rev.B2,C)
Flash Memory - 2Mx16bit - -
SDRAM IS42S16320F-7TL A3V64S40ETP-G6
もしくは
IS42S16400J-7TL
K4S561632E-TC75 Memory Board
-capacity 32Mx16bit 4Mx16bit 16Mx16bit Memory Board
-clock 143MHz(CL3) 166MHz(CL3)
もしくは
143MHz(CL3)
133MHz(CL3) Memory Board
Video DAC 4bitx3 4bitx3 6bitx3 HDMI tx
Audio DAC 1bit 1bit 6bitx2 HDMI tx
GPIO 2-2(DEOCM)x40pin
(36I/O,2GND,3.3V,5V)
2-2(DEOCM)x40pin
(32I/O,4CLK,2GND,3.3V,5V)
1x40pin
(40I/O)
2-1(Memory Board)x40pin
(36I/O,2GND,3.3V,5V)
1xArduino
Card Slot 1TF 1MMC 1MMC 1TF[HPS]
MSX Slot 2(DEOCM) 2(DEOCM) 2 0
MSX Joypad Port 2(DEOCM) 2(DEOCM) 2 0

Intel(Altera) FPGA 開発ソフトウェア Quartusについて

IntelのFPGA関連の日本語版サイトはリダイレクトなどの一部が正常に機能していません。 英語版サイトであればうまくいく場合があります。

有償版と無償版があり、有償版は並列コンパイルや大規模デバイスのサポートがあります。 DE0-CVやDE0や1chipMSXに搭載されているFPGAは低コストデバイス向けであるため、無償版でも開発できます。

DE0-CVの搭載デバイスは現行製品のCyclone Vのため、現時点(2019/02/22)での最新版であるQuartus Prime 18.1 Lite Edition Update 1で開発できます。

DE0の搭載デバイスは旧製品のCyclone IIIのため、Quartus II 13.1 Web Edition以前のバージョンで開発できます。

1chipMSXの搭載デバイスは旧製品のCycloneのため、Quartus II 11.0 service pack 1 Web Edition以前のバージョンで開発できます。