MiSTer FPGA per emulare sistemi retrò, specifiche

Da tempo ormai l'emulazione, o meglio la simulazione, di sistemi retrò tramite FPGA è diventata molto di moda, poiché grazie ad essi è possibile avere un sistema il più fedele possibile all'hardware originale. Il progetto MiSTer FPGA rientra in questa categoria. Spieghiamo in cosa consiste.

A poco a poco i vecchi sistemi sono completamente degradati e non possono essere utilizzati e preservarli nel modo più affidabile possibile è importante per la storia dell'informatica. Se non possiamo mantenere i chip originali, possiamo almeno mantenere la loro organizzazione e fare in modo che gli FPGA si comportino come tale.

MiSTer FPGA per emulare sistemi retrò

Cos'è MiSTer FPGA?

MiSTer FPGA è un progetto libero e aperto che cerca la riproduzione più affidabile possibile di vecchi sistemi attraverso l'uso di un FPGA, che è configurato per emulare vecchi sistemi, siano essi computer o console per videogiochi. Per questo, la comunità MiSTer ha creato file che consentono di configurare l'FPGA MiSTer per funzionare come diversi sistemi a 8 e 16 bit.

Grazie all'utilizzo di un FPGA configurato come hardware originale, si comporta come l'hardware originale e non tramite emulazione. In altre parole, l'FPGA MiSTer si comporta come l'hardware originale ed è il sostituto ideale per chi desidera la più fedele esperienza possibile con quei sistemi.

Le differenze con altri progetti? Trattandosi di un progetto aperto e gratuito, non è associato a un marchio commerciale, questo dà ai partecipanti la libertà di essere il più fedeli possibile all'hardware originale. Molte delle soluzioni commerciali che “emulano” vecchie console tramite FPGA si limitano a non violare né i brevetti né la proprietà intellettuale e quindi devono cercare altre soluzioni per evitare controversie.

Come si sviluppano i nuclei dei diversi sistemi?

Design Circuitos Papel

Gli FPGA sono programmati utilizzando linguaggi di descrizione hardware come Verilog e VHDL nelle loro diverse versioni. Questi linguaggi non descrivono i programmi da eseguire, ma piuttosto l'organizzazione interna dei vari transistor. Il modo per ottenere ciò è prima di tutto scattare fotografie con microscopi speciali e utilizzare informazioni visive come una mappa che viene quindi codificata. Ciò è dovuto al fatto che il numero di transistor è raddoppiato di volta in volta a causa della legge di Moore, che complica l'analisi e l'implementazione.

Quando i sistemi sono molto complessi, viene creata una versione per FPGA il più vicino possibile all'hardware originale, ma molte volte ci sono elementi che non sono stati documentati dal produttore e questi devono essere implementati tramite reverse engineering. Ciò significa che anche se l'FPGA MiSTer è stato configurato per comportarsi come un kernel specifico, non funziona in modo affidabile.

Un altro problema ha a che fare con il fatto che i tempi video nei vecchi sistemi erano progettati per funzionare con monitor e televisori che non esistono più, e sebbene sia possibile aggiungere moduli aggiuntivi che permettono di utilizzare un monitor CRT, in realtà tutti MiSTer FPGA i core sono progettati per emettere il loro segnale video tramite HDMI, quindi non sono completamente fedeli all'hardware originale. Per fortuna è un progetto aperto ei kernel che descrivono l'hardware vengono aggiornati nel tempo.

Perché un FPGA?

Processore

Il vantaggio degli FPGA è che possiamo configurarli come se fossero diversi componenti hardware interconnessi tra loro e funzionanti in parallelo. Questo ha un'efficienza maggiore di un emulatore in cui tutti i suoi pezzi sono emulati da un singolo core o da più ma in modo meno efficiente. Un FPGA consente di integrare hardware più vecchio in modo più affidabile, non solo facendo funzionare l'hardware così com'è, ma anche con gli stessi tempi di comunicazione e interfacce.

Quale hardware compone l'FPGA MiSTer?

Terasico De10-Nano

L'FPGA principale dell'FPGA MiSTer è il De10-Nano di Terasic, è un file Intel SoC Cyclone V 5CSEBA6U23I7 , che include due ARM Core Cortex-A9 come principale CPU, una DDR1 da 3 GB RAM, un'interfaccia Micro SD, un'uscita video HDMI e un connettore mini-USB di tipo B. Questa parte dell'hardware viene utilizzata per caricare i core tramite un menu, una volta caricati viene avviato l'FPGA, che inizia a funzionare come core che abbiamo caricato.

Il numero di porte logiche che l'FPGA ha è 110,000, ciò significa che non può simulare sistemi complessi a causa della mancanza di porte logiche programmabili all'interno. Quindi, se speri di emulare un sistema a 32 o 64 bit, è meglio che ti dimentichi di farlo, poiché non ci sono abbastanza elementi per farlo.

Né ti aspetti un'emulazione affidabile al 100%, poiché come abbiamo accennato prima ci sono molti elementi hardware di questi sistemi che, se sappiamo cosa fanno, non sono mai stati documentati e non abbiamo le informazioni su come vengono implementati in l'hardware.

Moduli SDRAM per MiSTer FPGA

Signor FPGA SDRAM

L'altro elemento richiesto sono i moduli SDRAM, il che è sorprendente poiché il sistema ha 1 GB di memoria DDR3 integrata. La spiegazione? Ha a che fare con la velocità di clock e la latenza, poiché poiché la RAM ha fornito larghezze di banda maggiori, anche la latenza è aumentata. Oggi questo è trascurabile, ma i vecchi sistemi sono stati progettati in modo che i processori funzionassero in momenti specifici, che erano legati alla latenza tra la RAM ei diversi elementi.

La cosa usuale sarebbe fare uso della memoria interna dell'FPGA, ma questo significa ridurla per la simulazione dell'hardware, quindi è necessario utilizzare RAM esterna e la risposta è stata l'uso della SDRAM, che è un compromesso tra i migliori La soluzione che sarebbe la SRAM e la peggiore è che l'uso della memoria DDR durante la simulazione dei diversi sistemi.

L'altro motivo è che la RAM DDR è utilizzata dai core ARM, il che significa che c'è una contesa nel suo accesso, aggiungendo ancora più latenza e rendendo la simulazione da parte dell'FPGA non corretta. In generale, i tempi di risposta della memoria sono importanti affinché il sistema funzioni in modo sincronizzato e coordinato.

Espansioni I / O per MiSTer FPGA

Mister FPGA Set completo

L'FPGA MiSTer ha una serie di schede di espansione che aggiungono funzionalità aggiuntive necessarie per aggiungere determinate funzionalità e connettività con determinate periferiche. L'installazione di queste piastre non è semplice, poiché in alcuni casi non si basano sul collegamento di esse a una porta di espansione e devono essere eseguite saldando determinate connessioni. Quindi nella maggior parte dei casi consigliamo di acquistare un MiSTer FPGA con l'intero kit completamente assemblato.

Scheda analogica

Scheda analogica Mister FPGA

La prima scheda I / O per MiSTer è la cosiddetta scheda analogica che aggiunge i seguenti elementi:

  • Un connettore VGA, per poter collegare un monitor CRT.
  • Un minijack audio con TOSLINK.
  • Un'interfaccia SD secondaria, necessaria per alcuni core.
  • Una ventola per raffreddare il De10-Nano, cioè l'FPGA.
  • Una porta USB 3.0, che si chiama Porta Utente ed è una porta seriale, che viene utilizzata principalmente per collegare i controller originali attraverso detta interfaccia.

Gli adattatori SNAC consentono di collegare una manopola di controllo a uno di questi connettori, ma se vogliamo essere in grado di collegare più manopole siamo fortemente limitati, poiché la scheda analogica ha solo una porta utente.

Scheda RTC

Scheda Mister FPGA RTC

La seconda scheda di espansione è la scheda RTC, che aggiunge un orologio in tempo reale per i core che ne hanno bisogno per funzionare correttamente. Le CPU di solito contano il tempo dalla durata dei loro cicli di clock, quindi per avere informazioni sull'andamento del tempo nel mondo reale, hanno bisogno di questo tipo di piastra, che può essere aggiornata anche tramite Internet.

Consiglio di amministrazione dell'ADC

Scheda Mister FPGA ADC

Il terzo piatto è il audio / Tape Input, questa piastra permette di collegare un'unità cassette per una maggiore fedeltà dell'esperienza dei computer di 8 bit. È un'aggiunta per le persone che conservano ancora i nastri dei loro computer a 8 bit e lavoreranno dopo così tanto tempo, quindi non è un pezzo fondamentale da lavorare.

Scheda USB e BlisSTer

Hub USB MisterFPGA

La quarta scheda è l'hub USB, che aggiunge 7 porte USB all'FPGA MiSTer per poter collegare varie periferiche. Che si tratti di mouse, tastiere, gamepad e possiamo anche aggiungere Bluetooth e WiFi moduli.

Signor FPGA Bliss Box

L'Hub USB non va confuso con la scheda BlisSTer, che integra una serie di Porte Utente per poter collegare più adattatori SNAC e poter collegare più controlli e periferiche contemporaneamente. Che è l'ideale se hai ancora le periferiche originali e desideri continuare a utilizzarle.