Struttura e funzionamento della scheda XSA50 BOARD XSA50 Struttura e funzionamento della scheda XSA50
Uno sguardo generale
Dotazione FPGA Spartan XC2S50 CPLD XC9572 XL Generatore di Clock Programmabile DS1075 Memoria RAM sincrona (SDRAM) da 16 Mbyte Memoria Flash da 256K alcuni “jumpers” da usarsi in fase di “configurazione”
Periferiche 4 micro interruttori 1 pulsante 1 display a 7 segmenti 1 pota parallela (interfacciata verso la CPLD) 1 Uscita VGA pilotata direttamente dalla FPGA 1 interfaccia PS2 1 slot di espansione con 84 reofori
L’architettura
Scheda d’espansione
Periferiche 8 micro interruttori 4 pulsanti 2 display a 7 segmenti 1 barra di LED 1 pota USB 1 porta RS232 2 convertitori audio A/D e D/A stereo Interfaccia IDE Prototyping Area
Passi FONDAMENTALI Procurarsi la documentazione della scheda file: xsa-manual-v1_2.pdf (48 pagine) sito: www.xess.com Utile perche’: Descrive il funzionamento del software della XESS Descrive il layout della scheda, in special modo Piedinatura dei componenti Segnali condivisi tra i vari dispositivi Impiego della CPLD come interfaccia Illustra gli schemi realizzativi LINK
Test della scheda Test autodiagnostico della scheda Configura prima la CPLD e poi la FPGA Se tutto va bene compare uno “O” sul display In caso contrario compare una “E” E’ molto comune un problema sulla porta parallela, nel qualcaso provare a seguire le istruzioni contenute nel file read.me
Configurazione del CLOCK Si puo’ configurare tra 100 MHz e 48,7 KHz (oppure esterno) Sfrutta la configurabilita’ del DS1075 per modificare il clock del sistema portando gli opportuni segnali tramite porta parallela Ci si attenga “STRETTAMENTE” alle istruzioni che compaiono sullo schermo e nell’ESATTO ORDINE ! La frequenza viene memorizzata su un supporto NON VOLATILE
Configurazione del CLOCK Se in fase di accensione la linea I/O risulta alta il disp. si mette in uno stato di attesa per una configurazione che gli verra’ fornita in forma seriale tramite la stessa linea di I/O
Configurazione del CLOCK p64 NC NC Per garantire I/O allo stato alto in accensione si deve: ponticellare J6 disconnettere la parallela Vcc Vcc I/O
Download su FPGA Il tool consente di configurare la FPGA e/o la CPLD Inserire dati nella RAM Inserire il programma nella EEPROM (non Volatile) Tutte queste configurazioni prevedono una pre- configurazione opportuna della CPLD (funziona da interfaccia fra la parallela ed i dispositivi)
Configurazione EEPROM Per configurare la EEPROM Verificare che i 4 Swithes siano OFF il display a 7 segmenti si illuminera’ durante la fase di configurazione
Display e switches I segmenti si illuminano quando viene fornito loro un segnale logico alto I swithes hanno una resistenza di pull-up ossia si ottiene lo stato logico alto quando lo switch e’ OFF I segnali sono condivisi tra FPGA, CPLD, FLASH Quando non impiegati e’ opportuno che gli swithes siano tutti OFF
Porta PS2 I dati sulla porta PS2 viaggiano in forma seriale su due segnali: CLOCK DATA Sul segnale DATA e’ connesso un pulsante con resistenza di pull-up quando premuto si ottiene sulla linea DATA un segnale logico basso
Porta VGA I segnali alla porta VGA sono tipicamente segnali ANALOGICI, di cui: I sincronismi prevedono solo due livelli di tensione I dati prevedono un ampiezza proporzionale alla luminosita’ del singolo canale RGB per il pixel in esame In questo caso si puo’ modificare l’ampiezza di ogni segnale analogico agendo con due segnali digitali su un semplice partitore resistivo con due resistenze di valore una il doppio dell’altra (e’ un semplicissimo convertitore D/A)
Porta VGA
Temporizzazioni VGA Esistono varie “risoluzioni VGA” 640 x 480 800 x 600 1024 x 768 … Con diverse frequenze di quadro 50 Hz, 60 Hz, 75 Hz Con segnale “interlacciato” o “progressivo” Ciascuna di queste prevede una certa “cadenza” o “clock” con cui fornire i dati piu’ due segnali di sincronismo HS (sincronismo di riga) VS (sincronismo di quadro)
Temporizzazioni VGA
Temporizzazioni VGA Sincronismo di riga (HS) HS Linea attiva RGB B C D
Temporizzazioni VGA Sincronismo di quadro (VS) VS Linee attive RGB G H J F
Temporizzazioni VGA MODE 640 x 480 x 60 Hz (clock: 25.175 MHz)
L’interfaccia parallela E’ il mezzo di comunicazione tra la scheda ed il PC Tramite essa si configura il clock di sistema si configura la CPLD si configura la FPGA si accede alle memorie Flash e SDRAM Vi sono a disposizione 4 linee di controllo C0-C3 8 linee dati D0-D7 5 linee di Stato S3-S7 La CPLD funziona da interfaccia e deve essere configurata opportunamente
L’interfaccia parallela Dettagli: C0 e’ usata per la configurazione dell’oscillatore i due buffer 74LS14 sono “triggher di Schmitt” (ossia buffer con isteresi) e sono impiegati per “ripulire” il segnale da eventuale rumore S6 e’ usata per una comunicazione diretta tra FPGA e PC Le restanti 15 linee sfruttano tutte la CPLD come interfaccia
L’interfaccia parallela Dettagli: C1,C2,C3 servono a configurare la CPLD col protocollo JTAG (TCK,TMS,TDI) S7 e’ collegata al TDO (funzioni di controllo) sia TCK che TDO sono bufferizzate Le rimanenti linee sono “general purpose” e verranno impiegate per configurare i vari dispositivi
L’interfaccia parallela La CPLD verra’ programmata per funzionare da interfaccia tra la parallela e l’FPGA per la configurazione di quest’ultima il file downldpar.svf serve a questo (viene fornito da XESS) la linea D1 e’ opportunamente bufferizzata ed e’ opportuno impiegare questa linea per fornire un eventuale clock esterno al sistema LINK
L’interfaccia parallela I dati per la configuarzione vengono forniti sfruttando un bus di 8 bit (comune anche a Flash e Display) Vi sono poi altri segnali di controllo per configurare l’FPGA M0,M1,M2 ha due segnali fissi sono consentite solo le configurazioni slave serial master select (SelectMAP - slave parallel) La CPLD accede ai segnali JTAG della FPGA (per eventuale testabilita’ o per progarmmazione all’interno dell’ambiente xilinx) J9 serve a “emulare” il cavo Xilinx LINK
L’interfaccia parallela Quando L’FPGA e’ configurata e DONE si alza La CPLD cambia funzione e diventa “trasparente” ai segnali tra parallela ed FPGA
L’interfaccia parallela Si puo’ impiegare un tool della XESS per pilotare i segnali sulla parallela
L’interfaccia parallela Configurazione della CPLD (file downldpar.svf)
Altre configurazioni della CPLD Emulazione del cavo XILINX (parallel cable III) (configuarzione JTAG) Scrittura di dati nella Flash (programma residente) Sistema di controllo per leggere i dati dalla flash e fornirli alla Spartan (configurata come Slave parallelo)
L’interfaccia parallela ATTENZIONE 1 La FPGA fornisce segnali alla PP tramite S3,S4,S5 (pins 40,29,28) La FPGA riceve segnali alla PP tramite D0-D7 (pins 50,48,42,47,65,51,43,58) pertanto questi piedini NON DEVONO ESSERE CONFIGURATI COME USCITE !! NOTA: La FPGA usa questi pin per accedere alla FLASH, ma in tal caso all’abbassamento del CE sul pin 41 la CPLD risponde rilasciando opportunamente (mettendo in alta impedenza) tutte le linee
L’interfaccia parallela ATTENZIONE 2 La linea D7 della PP e’ impiegata anche per pilotare la linea PROG dell’FPGA Pertanto se si abbassa detta linea si ottiene una “sprogrammazione” dell’FPGA In alternativa si puo’ utilizzare una diversa configurazione della CPLD
L’interfaccia parallela ATTENZIONE 3 La CPLD segnala sul punto decimale del display la avvenuta configurazione della FPGA Pertanto il pin 44 dell’ FPGA NON DEVE ESSERE CONFIGURATO COME USCITA NOTA: La FPGA usa questi pin per accedere alla FLASH, ma in tal caso all’abbassamento del CE sul pin 41 e la CPLD risponde rilasciando opportunamente tutte le linee
Sul manuale fornito da XESS vengono marcati: Connessioni utente ATTENZIONE 4 Sul manuale fornito da XESS vengono marcati: Con 1 asterisco i segnali utilizzabili come General-Purpose Con 2 asterischi quelli utilizzabili solo dopo una opportuna RICONFIGURAZIONE della CPLD Senza alcun asterisco quelli che NON POSSONO ESSERE IMPIEGATI DALL”UTENTE LINK
Connessioni utente Si suggerisce di usare per interfacce verso l’esterno i seguenti piedini (senza vincoli): Sebbene molti altri possono essere sfruttati pur di adottare un po’ di sana cautela
Alimentazione Usare un alimentatore a 9V con polo POSITIVO al centro Alcuni“Jumpers”consentono di usufruire di alimentazioni esterne
L’espansione E’ stata realizzata una semplice espansione che serve Da supporto meccanico per la scheda Per accedere ai vari segnali E’ resa inoltre disponibile una serie di contatti a massa E’ stata apposta un’ etichetta sul fondo dove riportare data check del circuito frequenza di lavoro del circuito configurazione della CPLD (xilinx - xess)
Programmable Logic Design Flow 1 Design Entry in schematic, ABEL, VHDL, and/or Verilog. Implementation includes Placement & Routing and bitstream generation using Xilinx Technology. Also, analyze timing, view layout, and more. 2 Download directly to the Xilinx hardware device(s) with unlimited reconfigurations* !! 3