Reti Logiche Introduzione Capitolo 1: Introduzione Reti Logiche Contemporary Logic Design Randy H. Katz University of California, Berkeley May 1993 Trasparenze tradotte da: Luciano Lavagno Universita’ di Udine Settembre 1998 © R.H. Katz 1-1 Motivazione Reti Logiche Introduzione Il modo in cui l’hardware viene progettato sta cambiando radicalmente • Strumenti di Progetto Assistito da Calcolatore (CAD) Minore importanza data a tecniche di progetto manuale Maggiore importanza data a rappresentazioni astratte Il progetto hardware sembra sempre piu’ al progetto software • Tecnologie circuitali per prototipazione rapida Uso di logica programmabile invece di logica discreta • Importanza di metodi di progetto solidi e ben fondati Progetto sincrono Regole di composizione © R.H. Katz 1-2 Reti Logiche Introduzione Gli elementi di un progetto moderno Rappresentazioni, tecnologie circuitali, prototipazione rapida Comportamenti Blocchi Rappresentazioni del progetto Forme d’onda Porte logiche Tavole di verita’ Algebra Booleana Tecnologie di prototipazione rapida Interruttori Simulazione Sintesi MOS PAL, PLA, ROM, PLD Computer-Aided Design TTL Tecnologie circuitali © R.H. Katz 1-3 Struttura del capitolo Reti Logiche Introduzione • Flusso di progetto • Sistemi digitali • Rappresentazioni di progetto • Prototipazione rapida © R.H. Katz 1-4 Reti Logiche Introduzione Il flusso di progetto Progetto realizzazione Debug Progetto Idea iniziale: qual’e’ la funzione che l’oggetto deve svolgere? Vincoli: Quanta velocita’? Quanta area? Quanto costo? Trasformare blocchi funzionali astratti in realizzazioni piu’ concrete realizzazione (“implementazione”) Comporre blocchi primitivi in blocchi piu’ complessi Composizione tramite interconnessione (“fili”) Scegliere tra alternative per migliorare il progetto Debug (identificazione e correzione degli errori) Errori in un sistema: progetto, composizione, componenti Progettare in modo da facilitare il debugging Abilita’ specifiche per ipotizzare e correggere gli errori © R.H. Katz 1-5 L’arte del progetto: Trasformazione di rappresentazioni Reti Logiche Introduzione 1. Specifica funzionale/Che cosa il sistema deve fare Es: Controllore di semaforo Luci in 4 direzioni: N, S, E, O Luci N e S hanno la stessa funzione (idem E ed O) Ripete la sequenza VERDE-GIALLO-ROSSO N-S e E-O mai VERDI o GIALLI allo stesso istante VERDE per 45 secondi, GIALLO per 15, ROSSO per 60 2. Vincoli di prestazioni e costo velocita’: calcolare le transizioni in meno di 100 ms potenza: consumare meno di 20 W area: realizzazione in meno di 20 cm2 costo: fabbricazione con meno di 20 Euro © R.H. Katz 1-6 Reti Logiche Introduzione L’arte del progetto: ”Progettare e’ rappresentare" 1. Specifiche in italiano (spesso in inglese…) facili da scrivere, ma imprecise ed ambigue inizio 2. Descrizione funzionale Specifica piu’ precisa diagrammi di flusso, pezzi di programma 3. Descrizione strutturale componenti complessi decomposti in composizioni di componenti piu’ semplici 4. Descrizione fisica il progetto descritto in termini dei componenti “piu’ elementari”, p.es. porte logiche o transistor N-S verde E-O rosso dopo 45 secondi N-S giallo E-O rosso dopo 15 secondi N-S rosso E-O verde dopo 45 secondi N-S rosso E-O giallo dopo 15 secondi © R.H. Katz 1-7 Reti Logiche Introduzione Il flusso di progetto Realizzazione come composizione Progetto Top Down: Funzioni complesse sostituite da funzioni piu’ semplici Progetto Bottom Up: Blocchi semplici composti per ottenere blocchi complessi Regole di composizione (“correttezza per costruzione”): Regole elettriche: quanti componenti possono essere interconnessi? Regole di temporizazione: come cambia il sistema in risposta ad eventi periodici di eccitazione (“triggering”)? © R.H. Katz 1-8 Reti Logiche Introduzione Il flusso di progetto Decomposizione Top Down Progetto Rappresentazione strutturale Start N-S Green N-S Yellow N-S Red E-W Green E-W Yellow E-W Red Traffic Light Subsystem 45 seconds Start Light Sequencer Timer 15 seconds 45 seconds Start Timer 15 seconds N-S Lights Primitive Sequencer E-W Lights Decoder N-S Green N-S Yellow N-S Red E-W Green E-W Yellow E-W Red N-S Green N-S Yellow N-S Red E-W Green E-W Yellow E-W Red Decomposizione di funzioni complesse in funzioni piu’ semplici © R.H. Katz 1-9 Reti Logiche Introduzione Il flusso di progetto Composizione Bottom Up Progetto Blocchi semplici composti per creare blocchi piu’ complessi edificio p.es. un gruppo di stanze costituisce un piano p.es. un gruppo di piani costituisce un edificio piano un gruppo di transistor costituisce una porta logica un gruppo di porte logiche costituisce un circuito sommatore circuiti sommatori ed elementi di memoria costituiscono il datapath di un processore stanze © R.H. Katz 1-10 Reti Logiche Introduzione Il flusso di progetto: debugging del sistema Che cosa puo’ non funzionare • Errori di progetto La realizzazione non soddisfa la specifica funzionale Il progetto logico e’ sbagliato (realizza la funzione sbagliata) Interpretazione errata o dimenticanza di casi • Errori di realizzazione I componenti funzionano correttamente, ma la composizione no Interpretazione errata delle interfacce e temporizzazioni Errori di interconnessione, errori di compatibilita’ tra famiglie • Errori nei componenti Logicamente corretto, interconnessione corretta Non tutti i componenti hardware funzionano sempre! P.es. componente bruciato © R.H. Katz 1-11 Il flusso di progetto Reti Logiche Introduzione Debugging per via simulativa prima della realizzazione Abilita’ di debugging: • Migliorare la collaudabilita’ del progetto • Formulare un piano di collaudo e sviluppare casi da esaminare • Ipotizzare le cause di un malfunzionamento • Isolare parti della realizzazione per collaudarle • Usare in modo appropriato gli strumenti di laboratorio © R.H. Katz 1-12 Reti Logiche Introduzione Sistemi digitali hardware Sistemi digitali Forme d’onda digitali ed analogiche +5 +5 1 0 1 V V Tempo –5 Digitale (numerico): assume solo un insieme finito discreto di valori Tempo –5 Analogico: il valore varia in modo continuo su un’ampia gamma © R.H. Katz 1-13 Reti Logiche Introduzione Sistemi digitali hardware Vantaggi dei sistemi digitali Sistemi analogici: un piccolo errore in ingresso puo’ causare un grande errore in uscita I sistemi digitali sono piu’ accurati ed affidabili Facile considerarli come blocchi a se’ stanti, e comporli per generare altri blocchi I calcolatori oggi usano circuiti digitali al loro interno I circuiti di interfaccia (sensori ed attuatori) sono spesso analogici Questo corso parla di progetto logico, non di progetto di sistema (architettura di un processore) ne’ di progetto circuitale (livello di transistor) © R.H. Katz 1-14 Sistemi hardware digitali Reti Logiche Introduzione Sistemi digitali binari • Due valori discreti: si’, acceso, 5 volt, corrente scorre, magnetizzato a nord, "1" no, spento, 0 volt, corrente non scorre, magnetizzato a sud, "0" • Vantaggio dei sistemi binari: solide basi matematiche, in termini di logica IF la porta del garage e’ aperta AND l’auto funziona THEN l’auto puo’ uscire dal garage la porta deve essere aperta e la macchina deve funzionare prima che io possa uscire dal garage IF N-S e’ verde AND E-O e’ rosso AND sono passati 45 secondi dall’ultimo cambio delle luci THEN possiamo passare alla prossima configurazione delle luci le tre pre-condizioni devono essere vere per implicare la conclusione © R.H. Katz 1-15 Reti Logiche Introduzione Sistemi hardware digitali Algebra booleana ed operazioni logiche Algebra: variabili, valori, operazioni Nell’algebra booleana i valori sono 0 ed 1 Se un’affermazione logica e’ falsa, ha valore 0 Se un’affermazione logica e’ vera, ha valore 1 Operazioni: AND, OR, NOT X Y X AND Y X Y X OR Y X NOT X 0 0 1 1 0 1 0 1 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 1 0 1 1 0 © R.H. Katz 1-16 Reti Logiche Introduzione Sistemi hardware digitali Sistemi hardware ed operazioni logiche IF la porta del garage e’ aperta AND l’auto funziona THEN l’auto puo’ uscire dal garage porta aperta? auto funziona? falso/0 falso/0 vero/1 falso/0 falso/0 vero/1 vero/1 vero/1 puo’ uscire? falso/0 falso/0 falso/0 VERO/1 © R.H. Katz 1-17 Reti Logiche Introduzione Sistemi hardware digitali Il mondo reale I componenti fisici sono (quasi…) continui, non discreti! Componenti continui sono alla base di tutti i sistemi discreti! +5 1 logico V 0 logico 0 Una transizione dall’1 allo 0 logico non e’ istantanea nei sistemi digitali reali Valori intermedi possono essere visibili “per breve tempo” L’algebra booleana e’ utile per analizzare il comportamento in stato stazionario dei sistemi digitali Ma talvolta bisogna fare attenzione al comportamento dinamico, nel tempo! © R.H. Katz 1-18 Sistemi hardware digitali Reti Logiche Introduzione Tecnologie dei circuiti digitali Tecnologie dei circuiti integrati scelta di materiali conduttori, isolanti e semi-conduttori interruttori controllati elettronicamente quando l’interazione tra i materiali permette di controllare il flusso di elettroni Tecnologie principali MOS: Metallo-Ossido-Silicio Bipolare Transistor-Transistor Logic Emitter Coupled Logic © R.H. Katz 1-19 Reti Logiche Introduzione Sistemi hardware digitali Tecnologia MOS Transistor interruttore elettrico fondamentale Gate Drain Sourc e interruttore a tre terminali: gate, source, drain se la tensione tra gate e source e’ al di sopra della soglia, l’interruttore conduce, o ”e’ chiuso" gli elettroni scorrono tra source e drain se la tensione viene tolta, l’interruttore non conduce, o ”e’ aperto" la connessione source-drain e’ interrotta © R.H. Katz 1-20 Reti Logiche Introduzione Sistemi hardware digitali Circuito che realizza la negazione logica (NOT) +5 1 all’ingresso produce 0 all’uscita 0 all’ingresso produce 1 all’uscita tensione di 1 logico comportamento dell’Inverter in funzione della tensione in ingresso l’ingresso sale da 0V a 5V tensione di l’uscita rimane a 5V per un certo intervallo 0 logico di tensioni in ingresso poi cambia rapidamente, ma non istantaneamente! VOut 0 V In +5 ricordate la distinzione tra comportamento stazionario e dinamico! © R.H. Katz 1-21 Reti Logiche Introduzione Sistemi hardware digitali Logica combinatoria e sequenziale X1 X2 - Xn - Rete logica Z1 Z2 - Rete di porte logiche. La presenza o meno di memoria distingue tra reti sequenziali e combinatorie. Zm Logica combinatoria le uscite sono funzione degli ingressi condizione sufficiente: assenza di cicli p.es. circuito full adder (sommatore ad 1 bit): (A, B, Carry In) genera (Sum, Carry Out) A B Cin Full Adder Sum Cout © R.H. Katz 1-22 Reti Logiche Introduzione Sistemi hardware digitali Logica sequenziale gli ingressi e le uscite “interagiscono” le uscite dipendono sia dagli ingressi sia dall’intera storia precedente della rete la rete tipicamente ha un numero finito di configurazioni uniche, chiamate stati p.es. il controllore del semaforo procede all’infinito lungo una sequenza di 120 (45+15+45+15) stati nuovo tipo di componenti nelle reti sequenziali: elementi di memoria, che ricordano lo stato presente uscite e stato futuro funzione degli ingressi e dello stato presente cioe’ uscite che rientrano in reazione realizzano lo stato! Sistemi sincroni un segnale periodico di riferimento, il clock, fa si’ che gli elementi di memoria accettino nuovi ingressi e cambino stato Sistemi asincroni non c’e’ un singolo segnale che dice quando cambiare stato © R.H. Katz 1-23 Reti Logiche Introduzione Sistemi hardware digitali Logica combinatoria e sequenziale Esempio del controllore di semaforo Other Inputs, Like T imer Alarms Traffic Light Controller New Traffic Light Controller Configuration Current Traffic Light Controller Configuration Cloc k Timer Alarms Next State Combinational Logic S T A T E Output Combinational Logic Detailed Light Control Signals Current State Logica di stato futuro Stato presente Trasforma stato Elementi di memoria corrente ed cambiano valore eventi del quando arriva il temporizzatore segnale di clock nello stato futuro Logica di uscita Trasforma lo stato corrente nei segnali per le luci e per attivare il temporizzatore IF lo stato e’ N-S verde, E-O rosso AND l’ingresso del temporizzatore a 45 secondi e’ presente THEN lo stato futuro diventa N-S giallo, E-O rosso la prossima volta in cui il segnale clk e’ presente © R.H. Katz 1-24 Reti Logiche Introduzione Rappresentazioni di un progetto digitale Due tipi di interruttori: Un interruttore connette due punti sotto il controllo di un terzo segnale Normalmente aperto (NMOS) quando il controllo e’ a 0 (falso), e’ aperto Normalmente chiuso (PMOS) quando il controllo e’ a 1 (vero), e’ aperto quando e’ ad 1 (vero), e’ chiuso quando e’ a 0 (falso), e’ chiuso True Control Clos ed Sw itc h True Control Fals e Normally Open Sw itc h Open Sw itc h Fals e Normally Clos ed Sw itc h Open Sw itc h Clos ed Sw itc h © R.H. Katz 1-25 Reti Logiche Introduzione Rappresentazioni di un progetto digitale: Interruttori Esempio: portare gli ingressi in uscita in un labirinto Esempio: IF auto in garage AND porta aperta AND auto funziona THEN puoi uscire auto in garage auto funziona puoi uscire Vero Esempio: IF auto sul vialetto OR (auto in garage AND NOT porta aperta) AND auto funziona THEN puoi uscire porta aperta porta chiusa auto in garage auto funziona Vero puoi uscire Vero auto sul vialetto Nodi fluttuanti (non pilotati, alta impedenza): che cosa accade se l’auto non funziona? le uscite fluttuano invece di assumere il valore “falso” In qualsiasi configurazione dei segnali di controllo (1) tutte le uscite vanno collegate ad un ingresso lungo un cammino (2) nessuna uscita puo’ essere collegata a piu’ di un ingresso © R.H. Katz 1-26 Reti Logiche Introduzione Rappresentazioni di un progetto digitale: interruttori Realizzazione di funzioni AND ed OR con interruttori A False B A output True Funzione AND Connessione in serie a VERO False B output True Funzione OR Connessione in parallelo a VERO © R.H. Katz 1-27 Reti Logiche Introduzione Rappresentazioni di un progetto digitale Tabelle di verita’ (o tavole di verita’) elencare tutte le possibili combinazioni di valori in ingresso ed i corrispondenti valori in uscita Esempio: half adder somma due numeri binari per generare Sum e Carry (somma e riporto) A B Sum Carry 0 0 1 1 0 1 0 1 0 1 1 0 0 0 0 1 NOTA: 1 piu’ 1 fa 0 con il riporto di 1 in binario... Esempio: full adder somma due numeri binari e Carry in per generare Sum e Carry Out A 0 0 0 0 1 1 1 1 B Cin 0 0 0 1 1 0 1 1 0 0 0 1 1 0 1 1 Sum Cout 0 0 1 0 1 0 0 1 1 0 0 1 0 1 1 1 © R.H. Katz 1-28 Reti Logiche Introduzione Rappresentazioni di un progetto digitale Algebra booleana valori: 0, 1 variabili: A, B, C, . . ., X, Y, Z operazioni: NOT, AND, OR, . . . NOT X e’ scritto X X AND Y e’ scritto X & Y, oppure X Y X OR Y e’ scritto X | Y, oppure X + Y Derivazione di equazioni booleane da una tabella di verita’: A B 0 0 1 1 0 1 0 1 Sum Carry 0 1 1 0 0 0 0 1 Sum = A B + A B termini prodotto messi in OR per ogni riga in cui la funzione vale 1 se una variabile di ingresso vale 0, appare complementata (“negata”); se vale 1, appare non-complementata Carry = A B © R.H. Katz 1-29 Rappresentazioni di un progetto digitale: algebra booleana Reti Logiche Introduzione Un altro esempio: A B Cin 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 Sum Cout 0 1 1 0 1 0 0 1 Sum = A B Cin + A B Cin + A B Cin + A B Cin 0 0 0 1 0 1 1 1 Cout = A B Cin + A B Cin + A B Cin + A B Cin © R.H. Katz 1-30 Rappresentazioni di un progetto digitale: algebra booleana Reti Logiche Introduzione Come ridurre la complessita’ di espressioni booleane Possiamo applicare le leggi dell’algebra booleana alla funzione Carry out per derivare un’espressione semplificata: Cout = A Cin + B Cin + A B B Cin A Cin AB A 0 0 0 0 1 1 1 1 B Cin Cout 0 0 0 0 1 0 1 0 0 1 1 1 0 0 0 0 1 1 1 0 1 1 1 1 Verificate l’equivalenza con la tabella di verita’ originale: mettete un 1 in ogni riga della tabella in cui un termine prodotto e’ vero ogni termine prodotto dell’equazione “copre” esattamente due righe della tabella molte righe sono “coperte” da piu’ di un termine © R.H. Katz 1-31 Reti Logiche Rappresentazioni di un progetto digitale Introduzione Porte logiche il blocco base piu’ usato nel progetto di circuiti logici digitali Rappresentazione logica standard Schema dell’half adder A Inverter AND Net 1 SUM B OR Net 2 CARRY Rete (net): insieme di fili elettricamente connessi Netlist: lista degli ingressi e delle uscite delle porte, e delle reti a cui sono connesse © R.H. Katz 1-32 Rappresentazioni di un progetto digitale: porte logiche Reti Logiche Introduzione Schema del full adder \Cin \ B \ A Cin B A A B SUM Cin A B Cout B Cin Cout A Cin Fan-in: numero di ingressi di una porta Fan-out: numero di ingressi cui un’uscita e’ collegata Le “regole di compatibilita’ logica" limitano fan-in e fan-out © R.H. Katz 1-33 Reti Logiche Introduzione Rappresentazioni di un progetto digitale Forme d’onda comportamento dinamico di un circuito i circuiti reali hanno ritardi non-nulli Diagramma temporale dell’half adder 100 200 A B SUM CARRY ritardo di ritardo di propagazione propagazione di sum di sum alea: 1 piu’ 0 e’ 1, non 0! Cambiamenti in uscita sono ritardati rispetto agli ingressi Il ritardo di propagazione dipende dal cammino entro il circuito Le uscite possono momentaneamente cambiare al valore errato e poi di nuovo a quello giusto: questo femomeno e’ chiamato glitch o alea © R.H. Katz 1-34 Reti Logiche Rappresentazioni di un progetto digitale: forme d’onda Introduzione 10 unita’ di tempo Analizziamo il ritardo: A=0,B=0 to A=0,B=1 di ritardo 0 1 0 0 1 0 A 0 1 0 0 1 A 0 SUM 1 0 0 B SUM 1 0 0 0 B 0 CARRY 0 CARRY 1 1 (i) condizioni iniziali 0 1 0 1 (ii) Y cambia da 0 ad 1 1 0 1 0 A 1 0 1 1 A 1 SUM 1 0 0 B 0 SUM 1 0 0 B CARRY 1 0 (iii) l’uscita della porta AND in alto cambia dopo 10 unita’ di tempo 0 CARRY 1 0 (iv) l’uscita della porta OR cambia dopo 10 unita’ di tempo © R.H. Katz 1-35 Reti Logiche Introduzione Rappresentazioni di un progetto digitale Blocchi organizzazione strutturale del progetto “scatole nere” con terminali di ingresso e di uscita (“porte”) svolgono funzioni ben definite permettono di concentrarsi sull’interconnessione per realizzare la funzione complessa desiderata A A Sum HA B B Carry Sum A Sum HA B Carry A B Cout Cin full adder realizzato componendo half adder Cin Sum A B Sum FA Cout Cin Cout rappresentazione del blocco full adder © R.H. Katz 1-36 Reti Logiche Introduzione Rappresentazioni di un progetto digitale Verifica delle forme d’onda Il full adder composto con due half adder si comporta allo stesso modo di quello composto di porte logiche? 100 Glitch 200 A B Cin Sum Cout Le forme d’onda di Sum, Cout sono in ritardo rispetto agli ingressi Quante unita’ di tempo dopo che gli ingressi sono cambiati possiamo esaminare “in modo sicuro” le uscite? © R.H. Katz 1-37 Rappresentazioni di un progetto digitale : comportamento Reti Logiche Introduzione ABEL Hardware Description Language MODULE half_adder; a, b, sum, carry PIN 1, 2, 3, 4; TRUTH_TABLE {[a, b] -> [sum, carry]} Specifica con tabella di verita’ [0, 0] -> [0, 0]; [0, 1] -> [1, 0]; [1, 0] -> [1, 0]; [1, 1] -> [0, 1]; END half_adder; MODULE half_adder; a, b, sum, carry PIN 1, 2, 3, 4; Specifica con equazioni EQUATIONS SUM = (A & !B) # (!A & B); CARRY = A & B; END half_adder; AND OR NOT © R.H. Katz 1-38 Rappresentazioni di un progetto digitale Comportamento Linguaggi di descrizione dell’hardware (HDL) descrivono struttura e funzione di un progetto digitale Reti Logiche Introduzione Esempio: Half Adder in VHDL -- *****modello di una porta inverter ***** -- porte esterne ENTITY inverter_gate; PORT (a: IN BIT; z: OUT BIT); END inverter_gate; -- comportamento interno ARCHITECTURE behavioral OF inverter_gate IS BEGIN z <= NOT a AFTER 10 ns; END behavioral; -- ***** modello di una porta and ***** -- porte esterne ENTITY and_gate; PORT (a, b: IN BIT; z: OUT BIT); END and_gate; “Scatola Nera” visibile dall’esterno Comportamento interno Notate l’istruzione di ritardo (AFTER 10 ns) -- comportamento interno ARCHITECTURE behavioral OF and_gate IS BEGIN z <= a AND b AFTER 10 ns; END behavioral; © R.H. Katz 1-39 Rappresentazioni di un progetto digitale: comportamento -- ***** modello di una porta or ***** -- porte esterne ENTITY or_gate; PORT (a, b: IN BIT; z: OUT BIT); END or_gate; Reti Logiche Introduzione modelli di AND, OR, NOT di solito sono parte di una biblioteca (“libreria”) -- comportamento interno ARCHITECTURE behavioral OF or_gate IS BEGIN z <= a OR b AFTER 10 ns; END behavioral; -- *****modello di un half adder ***** -- porte esterne ENTITY half_adder; PORT (a_in, b_in: INPUT; sum, c_out: OUTPUT); END half_adder; Componenti che -- comportamento interno saranno usati dal ARCHITECTURE structural of half_adder IS modello -- tipi di componenti da usare dell’half adder COMPONENT inverter_gate PORT (a: IN BIT; z: OUT BIT); END COMPONENT; COMPONENT and_gate PORT (a, b: IN BIT; z: OUT BIT); END COMPONENT; COMPONENT or_gate PORT (a, b: IN BIT; z: OUT BIT); END COMPONENT; -- segnali interni (fili) SIGNAL s1, s2, s3, s4: BIT; © R.H. Katz 1-40 Rappresentazioni di un progetto digitale: comportamento Reti Logiche Introduzione BEGIN -- una riga per porta logica, descrivendone il tipo e le connessioni i1: inverter_gate PORT MAP (a_in, s1); i2: inverter_gate PORT MAP (b_in, s2); Descrizione testuale a1: and_gate PORT MAP (b_in, s1, s3); della netlist a2: and_gate PORT MAP (a_in, s2, s4); o1: or_gate PORT MAP (s3, s4, sum); END structural; Questa specifica VHDL corrisponde a questo schema logico A i1 s1 a1 s3 o1 SUM B a2 i2 s4 s2 a3 Carry © R.H. Katz 1-41 Prototipazione veloce di sistemi elettronici Reti Logiche Introduzione Obiettivi: creazione rapida di sistemi digitali per dimostrare idee esplorazione rapida di alternative di progetto prestazioni ridotte per avere una realizzazione piu’ in fretta Tecniche: Strumenti CAD simulazione: verificare come il sistema si comportera’ prima di costruirlo sintesi: generare descrizioni dettagliate, come gli schemi logici, da descrizioni ad alto livello, come le equazioni booleane tecniche di realizzazione veloce logica programmabile © R.H. Katz 1-42 Prototipazione veloce di sistemi elettronici Reti Logiche Introduzione Progetto assistito da calcolatore (CAD) Strumenti di sintesi creare una parte del progetto a partire da altre parti tradurre una rappresentazione piu’ astratta in una piu’ concreta VHDL Sintesi comportamentale ABEL, VHDL Equazioni Booleane Sintesi logica Schemi logici Biblioteche di porte logiche trasformare una rappresentazione in una forma piu’ ottimizzata, p.es. espresso © R.H. Katz 1-43 Reti Logiche Introduzione Prototipazione veloce di sistemi elettronici Simulazione programma che esegue dinamicamente una rappresentazione astratta del circuito verificare correttezza funzionale ed alcune informazioni sui ritardi prima della realizzazione fisica piu’ facile da analizzare e correggere che una realizzazione... la simulazione non garantisce che un progetto funziona valida quanto i casi esaminati non controlla errori elettrici non considera (astrazione) alcuni aspetti dei sistemi reali Simulazione logica progetto descritto tramite porte logiche valori sono 0, 1 (piu’ altri che vedremo poi) va bene per verificare tabelle di verita’ Simulazione con ritardi (“timing”) forme d’onda in ingresso ed uscita considera i ritardi delle porte le forme d’onda sono come ci si aspettava? identificazione dei colli di bottiglia delle prestazioni © R.H. Katz 1-44 Reti Logiche Introduzione Realizzazione veloce di sistemi elettronici Tecnologie di realizzazione veloce la funzione e le interconnessioni di un componente possono essere ”personalizzate" alternativa a porte logiche discrete (TTL…) e fili riduce complessita’ delle interconnessioni e numero di pezzi facilita modifiche e miglioramenti del progetto Programmazione con zeri ed uni funzione del componente configurata con tabella di verita’ interconnect among internal modules also configured in this way selectively blown fuses programmable switching matrix configured by 1's and 0's © R.H. Katz 1-45 Reti Logiche Introduzione Prototipazione veloce di sistemi elettronici Esempio: memorie a sola lettura (Read-Only Memories, ROM) realizzazione hardware di un vettore bidimensionale ingressi sono l’indice entro il vettore (indirizzo) la parola binaria nella posizione indirizzata costituiscono i valori di uscita il contenuto e’ programmato una volta, letto molte volte Half Adder realizzato in ROM: indice 00 01 Half adder 10 11 A B contenuto 0 0 1 0 1 0 0 1 S C U A M R R Y Full Adder realizzato in ROM: indice 00 0 00 1 01 0 01 1 Full adder 1 0 0 10 1 11 0 11 1 A B Cin contenuto 0 0 1 0 1 0 0 1 1 0 0 1 0 1 1 1 S C U o M u t © R.H. Katz 1-46 Riassunto del capitolo Reti Logiche Introduzione Abbiamo visto: • il flusso di progetto: decomposizione funzionale e progetto tramite composizione • il tipo di sistemi che progetteremo: logica combinatoria e sequenziale sistemi digitali binari realizzati in tecnologia MOS e bipolare • i livelli di rappresentazione di un progetto: da interruttori a comportamento • il cambiamento del panorama dell’elettronica: realizzazione rapida di sistemi elettronici aiutata da strumenti CAD (in particolare simulazione e sintesi) basata su dispositivi programmabili © R.H. Katz 1-47