Trasferimento dati a 2.4 Gb/s in standard differenziale
Autore
Stefano Infante - Università degli Studi di Napoli - Federico II - [2003-04]
Documenti
Abstract
Lo scopo di questo lavoro di tesi, sviluppato in collaborazione con il CO.RI.S.T.A. (COnsorzio di RIcerca su Sistemi di Telesensori Avanzati) per essere utilizzato in ambito aeronautico, è la realizzazione di un’interfaccia tra il convertitore analogico/digitale MAX104 (Maxim) e la FPGA Virtex-II (Xilinx), utilizzando le rispettive demo-board. I parametri di progetto prevedono l’acquisizione, da parte dell’ADC, di 4000 campioni a 8 bit alla frequenza di 300 MSa/s ed il loro successivo trasferimento (due campioni per ciclo di clock, a 150 MHz) in un’opportuna struttura di memorizzazione, realizzata sulla FPGA. Oltre alla cavetteria appositamente realizzata ed alle schede utilizzate, al lavoro è stato altresì allegato un CD-ROM contenente il codice VHDL sviluppato per i vari sottosistemi implementati sulla FPGA e la documentazione relativa alle schede e agli strumenti utilizzati.
Il trasferimento dei dati è stato effettuato in standard LVPECL (Low Voltage Positive Emitter Coupled Logic), essendo questo l’unico standard supportato in uscita dalla Evaluation Board dell’ADC; esso costituisce un’evoluzione dello standard ECL, che ne mantiene le caratteristiche di swing logico ridotto, alta velocità di commutazione e immunità ai disturbi, utilizzando però una tensione di riferimento positiva ed abbassata a 3.3 V (“Low Voltage Positive”).
I dati, memorizzati sulla FPGA, vengono riportati in uscita da questa allo scopo di verificarne l’integrità. Questo secondo trasferimento è stato realizzato in standard LVDS (Low Voltage Differential Signaling), che presenta caratteristiche migliori rispetto al LVPECL in termini di velocità di commutazione, affidabilità e potenza dissipata.
Il sistema realizzato sulla FPGA è costituito da buffer differenziali (necessari a convertire il segnale differenziale in un segnale single-ended utilizzabile all’interno di altri sistemi), una struttura FIFO (atta a memorizzare i campioni in ingresso) ed una RAM (per consentire il trasferimento dei dati verso l’uscita e per liberare velocemente le locazioni della FIFO).
In una prima fase, si è realizzato il trasferimento dei dati tra due FPGA identiche, in modo da effettuare una prima serie di test sul sistema senza sottostare ai vincoli dell’ADC; si è quindi realizzato un generatore di segnali pseudo-casuali, implementato sulla prima FPGA per simularne il comportamento. Sulla seconda FPGA è stato implementato il sistema digitale ricevente.
Nella realizzazione del prototipo finale sono stati utilizzati i dati ricavati dalla prima implementazione (massima frequenza di clock, tempi di setup e di hold, bit error rate); inoltre, sono state effettuate ottimizzazioni al codice VHDL mediante l’aggiunta di altri componenti, quali multiplexer e contatori, e l’implementazione di una macchina a stati per la gestione del processo di trasferimento dei dati dai buffer differenziali di ingresso alla FIFO, dalla FIFO alla RAM e dalla RAM ai buffer differenziali di uscita.
La realizzazione del codice VHDL e le varie implementazioni sulle FPGA sono stati effettuati utilizzando il software Xilinx ISE 5.2.03i; i sistemi sono stati poi simulati utilizzando ModelSim 5.6e, allo scopo di verificare la coerenza dei segnali. Per la visualizzazione dei segnali analogici sono stati utilizzati gli oscilloscopi LeCroy WaveMaster 8600A e Tektronix TDS3032B; per la generazione del clock e dei segnali di ingresso, nonché per l’acquisizione dei segnali in uscita dal sistema digitale è stato utilizzato il mainframe modulare Tektronix TLA721, equipaggiato con il Pattern Generator TLA7PG2 e l’analizzatore di stati logici TLA7AA2; infine, il software MATLAB 6.0 è stato utilizzato per interpolare i dati acquisiti dall’analizzatore di stati logici ed ottenerne una rappresentazione grafica utile a confrontarli con quelli forniti in ingresso.
Il sistema è stato sollecitato con ingressi di vario genere (onde quadre e triangolari, sinusoidi e segnali a dente di sega di varia ampiezza e frequenza); le relative uscite sono state confrontate direttamente allo scopo di verificare la qualità del trasferimento. Tutte le specifiche richieste sono state rispettate; inoltre, è stato possibile effettuare alcune verifiche anche a frequenze di clock in ingresso ben superiori ai valori di specifica, ed anche in questo caso il sistema ha risposto in maniera corretta, rivelandosi stabile ed efficiente.
Il trasferimento dei dati è stato effettuato in standard LVPECL (Low Voltage Positive Emitter Coupled Logic), essendo questo l’unico standard supportato in uscita dalla Evaluation Board dell’ADC; esso costituisce un’evoluzione dello standard ECL, che ne mantiene le caratteristiche di swing logico ridotto, alta velocità di commutazione e immunità ai disturbi, utilizzando però una tensione di riferimento positiva ed abbassata a 3.3 V (“Low Voltage Positive”).
I dati, memorizzati sulla FPGA, vengono riportati in uscita da questa allo scopo di verificarne l’integrità. Questo secondo trasferimento è stato realizzato in standard LVDS (Low Voltage Differential Signaling), che presenta caratteristiche migliori rispetto al LVPECL in termini di velocità di commutazione, affidabilità e potenza dissipata.
Il sistema realizzato sulla FPGA è costituito da buffer differenziali (necessari a convertire il segnale differenziale in un segnale single-ended utilizzabile all’interno di altri sistemi), una struttura FIFO (atta a memorizzare i campioni in ingresso) ed una RAM (per consentire il trasferimento dei dati verso l’uscita e per liberare velocemente le locazioni della FIFO).
In una prima fase, si è realizzato il trasferimento dei dati tra due FPGA identiche, in modo da effettuare una prima serie di test sul sistema senza sottostare ai vincoli dell’ADC; si è quindi realizzato un generatore di segnali pseudo-casuali, implementato sulla prima FPGA per simularne il comportamento. Sulla seconda FPGA è stato implementato il sistema digitale ricevente.
Nella realizzazione del prototipo finale sono stati utilizzati i dati ricavati dalla prima implementazione (massima frequenza di clock, tempi di setup e di hold, bit error rate); inoltre, sono state effettuate ottimizzazioni al codice VHDL mediante l’aggiunta di altri componenti, quali multiplexer e contatori, e l’implementazione di una macchina a stati per la gestione del processo di trasferimento dei dati dai buffer differenziali di ingresso alla FIFO, dalla FIFO alla RAM e dalla RAM ai buffer differenziali di uscita.
La realizzazione del codice VHDL e le varie implementazioni sulle FPGA sono stati effettuati utilizzando il software Xilinx ISE 5.2.03i; i sistemi sono stati poi simulati utilizzando ModelSim 5.6e, allo scopo di verificare la coerenza dei segnali. Per la visualizzazione dei segnali analogici sono stati utilizzati gli oscilloscopi LeCroy WaveMaster 8600A e Tektronix TDS3032B; per la generazione del clock e dei segnali di ingresso, nonché per l’acquisizione dei segnali in uscita dal sistema digitale è stato utilizzato il mainframe modulare Tektronix TLA721, equipaggiato con il Pattern Generator TLA7PG2 e l’analizzatore di stati logici TLA7AA2; infine, il software MATLAB 6.0 è stato utilizzato per interpolare i dati acquisiti dall’analizzatore di stati logici ed ottenerne una rappresentazione grafica utile a confrontarli con quelli forniti in ingresso.
Il sistema è stato sollecitato con ingressi di vario genere (onde quadre e triangolari, sinusoidi e segnali a dente di sega di varia ampiezza e frequenza); le relative uscite sono state confrontate direttamente allo scopo di verificare la qualità del trasferimento. Tutte le specifiche richieste sono state rispettate; inoltre, è stato possibile effettuare alcune verifiche anche a frequenze di clock in ingresso ben superiori ai valori di specifica, ed anche in questo caso il sistema ha risposto in maniera corretta, rivelandosi stabile ed efficiente.
Questa tesi è correlata alle categorie