Ciao m.brox,
io non ho usato una FPGA, ma una CPLD dell'Altera la MAX II epm1270 e per questa cosa ho sprecato il 73% della logica disponibile.
Ho fatto anche una VGA a 8 colori 320 x 480 pixel con una EPM240 usandola praticamente al 98% delle risorse.
Questi sono i primi ed ultimi 2 lavori che ho fatto con le logiche programmabili. Devo ringraziare un articolo di nuova elettronica che ha proposto una board con la CPLD, ho iniziato con quella ad accendere led e display.
Dato che ero,e sono, inesperto mi sono reso le cose molto semplici. In tutti e due i casi ho usato una RAM statica esterna abbastanza grande(e relativamente costosa) e veloce da contenere il video. Nel caso della scheda a 256 colori ho un doppio buffer RAM per consentire lo scrolling del video in tutte le direzioni in modo fluido. E' possibile usare anche 16 sprites 48x48 pixel. Di piu' non e' possibile perche' la RAM non era abbastanza grande.
Non ho usato il VHDL perche' non ho trovato documentazione abbastanza chiara per me(ho un modo di apprendere le cose un po' troppo particolare).
Non ti dico che fatica per permettere la lettura/scrittura della RAM in modo quasi simultaneo!!!! Il listato della descrizione dell'hardware e' un'accozzaglia di assegnamenti ultracommentati perche' perdevo continuamente il filo del discorso. Per realizzare il tutto ci ho messo quasi un mese lavorando i pomeriggi perche',tra le altre cose, non so come si fanno le simulazioni. Me lo insegnerete voi
. Comunque mi aiutavo con i warning del sintetizzatore.
Adesso alla scheda ho aggiunto un generatore DDS e vari PWM e la controllo con un PIC32. In questo modo ho realizzato una specie di retro-computer che si programma in una specie di basic malaticcio che ho messo insieme alla bene'meglio. Come periferica di input ho usato una vecchia tastiera di un CBM64, ma mi piacerebbe usare una tastiera USB per PC. Non so come fare.
Ciao
Massimo