DEOCM-PLD-CV(仮称)計画
概要
GitHub レポジトリ https://github.com/uniabis/deocmpldcv
GitHub リリース https://github.com/uniabis/deocmpldcv/releases
- 1チップMSX を DE0-CV に移植しました。
- DE0-CV に DEOCM を接続すれば MSX の実カートリッジスロットやジョイパッドポートなどが利用可能です。
- 再現ハードウェアは OCM-PLD をベースにしています。
- BIOS や BASIC などは 1チップMSX 販売時に非商用限定で公式にライセンスされた MSX2 相当が組み込み済みです。
- MSX2+ 相当は OCM-PLD v3.4 以降と同じ形式のイメージファイルを用意すれば起動時に読み込まれます。
DE0-CVへのインストール手順
- Intel FPGA Program に登録しサインインします
- ‘追加ソフトウェア>Quartus Prime Programmer and Tools’ をダウンロードしインストールします
- deocm-pld-cv Releases から pof ファイルの入った zip ファイルをダウンロードし展開します
- DE0-CV とパソコンを USB ケーブルで接続します
- DE0-CV の RUN/PROG スライドスイッチ (SW10) を PROG 側にセットします
- ‘Quartus Prime Programmer and Tools’ を起動し pof ファイルの内容を DE0-CV のコンフィグ用シリアルメモリー (EPCS) に書き込みます
- DE0-CV の RUN/PROG スライドスイッチ (SW10) を RUN 側にセットします
更新履歴
v0.0.6 以降の構想
- スロット3-3に MSX-JE を搭載可能にします。
- R800 DRAM モードよりすこしはやい謎 CPU の搭載を目指します。
v0.0.5(2020/01/xx) 概要
- OCM-PLD v3.8 までの更新を適用しました。
v0.0.4(2019/06/19) 概要
- OCM-PLD v3.7.1 までの更新を適用しました。
- 1chipMSX から存在した FIELD ステートメントのバグの修正を適用しました。
- PS/2 キーボードの互換性向上パッチを適用しました。
- 開発環境を Quartus Prime Lite Edition v18.1 Update 1 に変更しました。
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-CVwith DEOCM | DE0with DEOCM | 1chipMSX | MiSTerDE10-Nanowith Memory Board |
---|---|---|---|---|
FPGA | CycloneV E5CEBA4F23C7N | CycloneIIIEP3C16F484C6N | CycloneEP1C12Q240C8N | CycloneV SE5CSEBA6U23I7N |
-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以前のバージョンで開発できます。