レトロなシステム、仕様をエミュレートするMiSTer FPGA

しばらくの間、FPGAを介したレトロシステムのエミュレーション、つまりシミュレーションは非常にファッショナブルになりました。これは、FPGAのおかげで、元のハードウェアに可能な限り忠実なシステムを作成できるためです。 MiSTer FPGAプロジェクトは、このカテゴリに分類されます。 それが何で構成されているかを説明します。

古いシステムは少しずつ完全に劣化して使用できなくなり、可能な限り最も信頼できる方法でそれらを保存することは、コンピューティングの歴史にとって重要です。 元のチップを保持できない場合は、少なくともそれらの構成を維持し、FPGAをXNUMXつのように動作させることができます。

レトロシステムをエミュレートするMiSTerFPGA

MiSTer FPGAとは何ですか?

MiSTer FPGAは、コンピューターであろうとビデオゲームコンソールであろうと、古いシステムをエミュレートするように構成されたFPGAを使用して、古いシステムの可能な限り最も信頼性の高い複製を求める無料のオープンプロジェクトです。 このため、MiSTerコミュニティは、MiSTerFPGAをさまざまな8ビットおよび16ビットシステムとして機能するように構成できるファイルを作成しました。

元のハードウェアとして構成されたFPGAを使用しているため、エミュレーションではなく元のハードウェアと同じように動作します。 言い換えると、MiSTer FPGAは元のハードウェアのように動作し、これらのシステムで可能な限り最も忠実なエクスペリエンスを求める人にとって理想的な代替品です。

他のプロジェクトとの違いは? これはオープンで無料のプロジェクトであるため、商用ブランドとは関係ありません。これにより、参加者は元のハードウェアに可能な限り忠実であることができます。 FPGAを介して古いコンソールを「エミュレート」する商用ソリューションの多くは、特許も知的財産も侵害しないことに限定されているため、訴訟を回避するために他のソリューションを探す必要があります。

さまざまなシステムの核はどのように開発されていますか?

ディセニョサーキットパペル

FPGAは、異なるバージョンのVerilogやVHDLなどのハードウェア記述言語を使用してプログラムされます。 これらの言語は、実行されるプログラムを記述しているのではなく、さまざまなトランジスタの内部構成を記述しています。 これを実現する方法は、まず特殊な顕微鏡で写真を撮り、地図などの視覚情報を使用してエンコードすることです。 これは、分析と実装を複雑にするムーアの法則により、トランジスタの数が時々倍増しているという事実によるものです。

システムが非常に複雑な場合、FPGAのバージョンは元のハードウェアにできるだけ近い形で作成されますが、多くの場合、製造元によって文書化されていない要素があり、これらはリバースエンジニアリングによって実装する必要があります。 これは、MiSTer FPGAが特定のカーネルのように動作するように構成されていても、確実に動作しないことを意味します。

もうXNUMXつの問題は、古いシステムのビデオ時間が、もはや存在しないモニターやテレビで動作するように設計されているという事実に関係しています。CRTモニターを使用できるようにするモジュールを追加することは可能ですが、実際にはすべてのMiSTer FPGAコアはHDMIを介してビデオ信号を出力するように設計されているため、元のハードウェアに完全に忠実ではありません。 幸いなことに、これはオープンプロジェクトであり、ハードウェアを記述するカーネルは時間の経過とともに更新されます。

なぜFPGAなのか?

プロセッサ

FPGAの利点は、FPGAが相互接続され、並列に動作する異なるハードウェアであるかのように構成できることです。 これは、すべての部分が単一のコアまたは複数のコアによってエミュレートされるエミュレーターよりも効率が高くなりますが、効率は低下します。 FPGAを使用すると、古いハードウェアをより確実に統合でき、ハードウェアをそのまま動作させるだけでなく、同じ通信時間とインターフェイスで動作させることもできます。

MiSTer FPGAを構成するハードウェアは何ですか?

テラシックDe10-ナノ

MiSTer FPGAのメインFPGAは、TerasicのDe10-Nanoです。 インテル サイクロンV5CSEBA6U23I7 SoC , XNUMXつ含まれています ARM メインとしてのCortex-A9コア CPU、1 GB DDR3 RAM、Micro SDインターフェース、HDMIビデオ出力、タイプBミニUSBコネクタ。 ハードウェアのこの部分は、メニューからコアをロードするために使用されます。コアがロードされると、FPGAが起動し、ロードしたコアとして機能し始めます。

FPGAに搭載されているロジックゲートの数は110,000です。これは、内部にプログラマブルロジックゲートがないため、複雑なシステムをシミュレートできないことを意味します。 したがって、32ビットまたは64ビットシステムをエミュレートしたい場合は、十分な要素がないため、それを忘れることをお勧めします。

また、100%信頼できるエミュレーションを期待することもできません。前述したように、これらのシステムには多くのハードウェア要素があり、それらの機能を知っていれば、文書化されておらず、実装方法に関する情報もありません。ハードウェア。

MiSTerFPGA用のSDRAMモジュール

ミスターFPGASDRAM

必要なもう1つのアイテムはSDRAMモジュールです。これは、システムに3GBのオンボードDDRXNUMXメモリがあるため驚くべきことです。 説明? RAMがより大きな帯域幅を提供するにつれて、レイテンシーも増加するため、クロック速度とレイテンシーに関係しています。 今日、これはごくわずかですが、古いシステムは、プロセッサが特定の時間に動作するように設計されていました。これは、RAMとさまざまな要素の間の遅延に関連していました。

通常はFPGAの内部メモリを利用することですが、これはハードウェアのシミュレーションのためにそれを減らすことを意味するので、外部RAMを使用する必要があり、答えは妥協点であるSDRAMの使用でした最良の解決策と最悪の解決策は、さまざまなシステムをシミュレートするときにDDRメモリを使用することです。

もうXNUMXつの理由は、DDR RAMがARMコアによって使用されていることです。これは、アクセスに競合があり、レイテンシがさらに増加し​​、FPGAによるシミュレーションが正しくないことを意味します。 一般に、メモリの応答時間は、システムが同期して調整された方法で機能するために重要です。

MiSTerFPGAのI / O拡張

ミスターFPGAセットコンプリート

MiSTer FPGAには、特定の機能と特定の周辺機器との接続を追加するために必要な追加機能を追加する一連の拡張ボードがあります。 これらのプレートの取り付けは簡​​単ではありません。拡張ポートへの接続に基づいていない場合があり、特定の接続をはんだ付けする必要があるためです。 そのため、ほとんどの場合、キット全体が完全に組み立てられたMiSTerFPGAを購入することをお勧めします。

アナログボード

ミスターFPGAアナログボード

MiSTerの最初のI / Oボードは、次の要素を追加するいわゆるアナログボードです。

  • CRTモニターを接続できるVGAコネクタ。
  • TOSLINKを備えたオーディオミニジャック。
  • 一部のコアに必要なセカンダリSDインターフェイス。
  • De10-Nano、つまりFPGAを冷却するためのファン。
  • USB 3.0アスペクトポート。これはユーザーポートと呼ばれ、シリアルポートであり、主に上記のインターフェイスを介して元のコントローラーを接続するために使用されます。

SNACアダプターを使用すると、これらのコネクターのXNUMXつに制御ノブを接続できますが、より多くのノブを接続できるようにする場合、アナログボードにはユーザーポートがXNUMXつしかないため、厳しく制限されます。

RTCボード

ミスターFPGARTCボード

XNUMX番目の拡張ボードはRTCボードで、正しく機能するために必要なコアにリアルタイムクロックを追加します。 CPUは通常、クロックサイクルの持続時間から時間をカウントするため、現実の世界で時間の経過に関する情報を取得するには、このタイプのプレートが必要です。これはインターネットからも更新できます。

ADCボード

ミスターFPGAADCボード

XNUMX番目のプレートは オーディオ /テープ入力。このプレートを使用すると、カセットユニットを接続して、8ビットのコンピューターのエクスペリエンスをより忠実に再現できます。 これは、8ビットコンピュータのテープをまだ保持している人のための追加であり、彼らは長い間動作するので、動作するための基本的な部分ではありません。

USBボードとBlisSTer

MisterFPGAUSBハブ

7番目のボードはUSBハブで、MiSTer FPGAにXNUMXつのUSBポートを追加して、さまざまな周辺機器を接続できるようにします。 マウス、キーボード、ゲームパッドなど、Bluetoothや 無線LAN モジュール。

ミスターFPGAブリスボックス

USBハブをBlisSTerボードと混同しないでください。BlisSTerボードは、一連のユーザーポートを統合して、複数のSNACアダプターを接続し、複数のコントロールと周辺機器を同時に接続できるようにします。 元の周辺機器がまだあり、これらを使い続けたい場合は、これが理想的です。