Fondamenti di elettronica Contenuto del corso (sinteticamente): - Circuiti elettronici digitali (logica combinatoria e sequenziale) i circuiti con cui sono fatti i computer - Memorie (RAM/DRAM) - Le interfacce fra il mondo digitale e analogico: DAC e ADC - Amplificatori operazionali 1 Fondamenti di elettronica Scopo: Alla fine del corso lo studente dovrebbe essere in grado di realizzare circuiti digitali non banali. Esempi di circuiti non banali: - interfaccia display - impianto di allarme - microcontroller di ADC e DAC - cronometro e orologio digitale - multimetro digitale - interfaccia VGA - microprocessore RISC 2 Fondamenti di elettronica N.B. Realizzare, non studiare in termini astratti un’arida teoria Corso predominantemente pratico: Ogni argomento o concetto verrà accompagnato da dimostrazioni pratiche scheda elettronica, oscilloscopio digitale (uno dei principali strumenti del mestiere) 3 Fondamenti di elettronica Il vostro feedback e la vostra cooperazione importante importante seguire il corso passo passo prove durante il corso esame: 2 prove durante il corso + 1-2 domande veloci (max) alla fine del corso 4 Fondamenti di elettronica Realizzazione e test pratico di tutti i circuiti: Circuito logico programmabile FPGA altro scopo del corso: imparare sul campo con una FPGA, uno dei dispositivi più avanzati attualmente usati in elettronica digitale Potete e dovete provare, testare e ideare circuiti (esercizi) voi: software di disegno elettronico QUARTUS Versione “educational” scaricabile dal sito web www.altera.com Permette di implementare i vostri circuiti nella scheda e verificarne il funzionamento! 5 Fondamenti di elettronica La domanda fondamentale: Perchè dovreste seguire questo corso? Posso dare varie risposte: - L’elettronica domina il nostro mondo in una infinità di applicazioni - Una conoscenza dell’elettronica, unita alla capacità di risolvere problemi tipica dei fisici, aiuta a trovare un lavoro - Un fisico (vedi il mio caso di fisico delle particelle) deve spesso realizzare i propri strumenti (rivelatori, sistemi di acquisizione, coprocessori, ...) - L’ultimo punto non è certamente il meno importante: può essere estremamente divertente (anche se a volte bisogna sudare 7 camicie per ottenere un circuito funzionante)! 6 La rivoluzione digitale o Computer digitali (dal 1940 fino ad internet) o Fotocamere digitali (la pellicola è morta!) o Registrazione video (DVD, MPEG, ...) o Registrazione audio (CD, disco in vinile morto già da 20 anni) o Carburatori, elettronica nei veicoli o Il sistema telefonico o Sistemi di controllo del traffico (semafori) o Effetti speciali dei film o Apparecchiature mediche o Sicuramente molto altro che non mi viene in mente adesso PERCHE’ una tale esplosione? 7 I vantaggi dei circuiti digitali Riproducibilità dati gli stessi input un circuito digitale produce sempre gli stessi output – l’ouput di un circuito analogico dipende da temperatura, invecchiamento, alimentazione, ... Semplicità di progettazione: il disegno digitale è logico. Non è necessaria una conoscenza dettagliata del comportamento elettrico di tutti i singoli elementi di circuito. Flessibilità e funzionalità implementazione di funzioni molto complesse (e.g. Voice scrambler) impossibili con circuiti analogici Programabilità i circuiti digitali possono essere modellati e simulati con linguaggi di programmazione di alto livello. Velocità Economia Tecnologia in continua evoluzione 8 Analogico e digitale a confronto Dispositivi analogici: processano segnali che possono assumere qualunque valore in un intervallo continuo di tensioni, correnti, o qualche altra grandezza. Circuiti digitali: processano e producono segnali che possono assumere solo due valori discreti: 0V–5V 0–1 LOW – HIGH FALSE – TRUE (una finzione in realtà: anche questi sono segnali analogici che possono variare entro due range distinti – più o meno ristretti)9 Aspetti elettronici del disegno digitale I circuiti digitali processano tensioni e correnti analogiche e sono fatti con componenti analogici Astrazione digitale: il comportamento analogico può essere ignorato (quasi sempre) circuiti modellati come se processassero davvero zeri e uni. Perchè ciò è possibile? 10 11 Consideriamo due inverter in cascata Nel circuito logico (secondo inverter) c’è un intervallo di tensioni di IN che è interpretato come uno 0 logico e un altro intervallo, disgiunto, che è interpretato come un uno logico: IN in questi intervalli produce un OUT corretto. Esempio: un circuito CMOS funzionante con un’alimentazione di 5V: Tensione di input nel range 0-1.5 V 0 logico Tensione di input nel range 3.5-5 V 1 logico Astrazione digitale: i dispositivi (il primo inverter) devono generare tensioni di 12 ouput entro gli intervalli sopra in modo che vengano riconosciute correttamente Intervalli in cui deve variare il segnale di output del primo inverter Intervalli in cui puo’ variare il segnale di input del secondo inverter affinchè il circuito produca un output corretto VOHmin VIHmin VILmax VOLmax VOHmin=minima tensione di output corrispondente a un 1 logico VIHmin=minima tensione di input riconosciuta come un 1 logico VOLmax=massima tensione di ouput corrispondente a uno 0 logico VILmax=massima tensione di input riconosciuta come un 0 logico 13 Funzionamento corretto: deve essere VOHmin > VIHmin VOLmax < VILmax Margini di rumore: VOHmin - VIHmin VILmax - VOLmax VOHmin VIHmin VILmax VOLmax 14 quarzo Microchip programmabile FPGA connettore a pettine 15 16 linee di input/output della FPGA sono collegate a questo connettore Possiamo vedere segnali prodotti dalla FPGA Possiamo inviare segnali alla FPGA quarzo Genera un segnale onda quadra a 60 MHz che viene mandato in ingresso alla FPGA connettore a pettine 16 Disegno “schematico”: rappresentazione dell’oscillatore Pin 1 segnale di abilitazione del chip Pin 4 alimentazione: VCC=5V +5 V chip abilitato Pin 3 segnale di clock Pin 2 massa dell’alimentazione a 5V 17 Disegno “schematico”: FPGA Collegamento FPGA-pettine: linee SPEAR15, ..., SPEAR0 Clock dall’oscillatore SPEAR0: collegato al pin0 18 del connettore a pettine Visualizzazione del segnale di clock o altri segnali Poggiamo la sonda dell’oscilloscopio al pin 3 dell’oscillatore Relativamente facile perchè il chip è grande e i pin ben separati Per altri chip può risultare molto difficile Poggiamo la massa al pin 2 Provate a poggiare la sonda su un pin di uno di questi chip e a tenerla ferma per più di qualche secondo ... 19 Soluzione per visualizzare un segnale: Facciamolo uscire su una delle linee che vanno al pettine e colleghiamo la sonda al pin del pettine quarzo terminale di massa dell’oscilloscopio sonda dell’oscilloscopio 20 Saldati a piazzole collegate a piste sul circuito stampato Package ad alta integrazione Pin distribuiti uniformemente sulla superficie inferiore del package e saldati su piazzole corrispondenti presenti sul circuito stampato 21 Problema: dobbiamo collegare internamente alla FPGA il pin CLK (pin 79) al pin SPEAR0 (pin 104) Segnale di clock dall’oscillatore circuito da implementare nella FPGA Segnale di clock inviato al pin 0 del pettine 22 Progettazione con software CAD design entry sintesi simulazione funz. no Il circuito è sintetizzato in termini di elementi logici contenuti nel chip netlist Il circuito è simulato per verificarne la correttezza funzionale disegno corretto? si fitting analisi temporale/ simulazione temp. no Il circuito è specificato in termini di un diagramma schematico o di un linguaggio di programmazione prestazioni temporali soddisfatte? Il CAD dispone gli LE definiti nella netlist in LE del chip reale – sceglie anche i fili di connessione fra i vari LE Vengono analizzati i ritardi di propagazione lungo i vari percorsi indicando le prestazioni del circuito 23 Dispositivi digitali Tavola della verità INVERTER X X’ C=A·B B 0 1 0 1 C 0 0 0 1 se A=1 E B=1 allora C=1 altrimenti C=0 C=A+B A 0 0 1 1 B 0 1 0 1 C 0 1 1 1 se A=1 O B=1 allora C=1 altrimenti C=0 OR A B se X=0 allora X’=1 se X=1 allora X’=0 A 0 0 1 1 AND A B X’ 1 0 X 0 1 24