Progettazione di circuiti digitali e linguaggio VHDL

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Progettazione di circuiti digitali e linguaggio VHDL"

Transcript

1 Progettazione di circuiti digitali e linguaggio VHDL Sergio Ricciarini ~ INFN Firenze Corso di Elettronica Generale I Laurea Magistrale in Scienze Fisiche e Astrofisiche Università di Firenze

2 Sommario Circuiti digitali integrati. Descrizione di un circuito digitale in VHDL. Compilazione e verifica del progetto. Temporizzazioni dei segnali e macchine sincrone. Struttura della macchina sincrona e realizzazione in VHDL. Upset da asincronia; risincronizzazione. Upset da perturbazioni esterne. Bibliografia 2

3 Circuiti digitali integrati. 3

4 Circuito digitale integrato Un circuito digitale integrato è un dispositivo elettronico ( chip ) che contiene al suo interno un insieme di celle logiche opportunamente interconnesse in modo da realizzare la funzionalità desiderata. Ogni cella logica è formata da una combinazione di elementi logici di base: flipflop, porte AND e porte NOT. ASIC: application specific integrated circuit (Analog Device, Texas...). Circuito digitale integrato caratterizzato da interconnessioni scelte e fissate dal produttore al momento della fabbricazione del chip, in base all applicazione richiesta. 4

5 Circuito digitale integrato FPGA: field programmable gate array (Altera, Xilinx, Actel, Quicklogic...) Circuito digitale integrato caratterizzato da interconnessioni configurabili dall utente in base al campo ( field ) di applicazione. Le interconnessioni sono realizzate in vari modi: ad esempio, con transistor NMOS. La configurazione avviene con speciali dispositivi ( programmatori ) oppure direttamente nel circuito stampato ( scheda o printed circuit board PCB). Dopo la configurazione una parte della FPGA risulta inutilizzata. 5

6 Cella logica di una FPGA Cella logica della FPGA: struttura di porte logiche e flip-flop predefinita dal produttore. Un esempio di cella logica (FPGA Actel). (a) Cella combinatoria: solo logica combinatoria: combinazione di porte AND e NOT; (b) Cella sequenziale: un flip-flop (registro a 1 bit) e logica combinatoria. 6

7 Cella logica di una FPGA Altro esempio di cella logica (FPGA Altera): un solo tipo di cella logica, di tipo sequenziale che integra una parte combinatoria più complessa del caso Actel. Progettata per massima versatilità. 7

8 Descrizione di un circuito digitale in VHDL 8

9 Linguaggio VHDL VHDL: Very-high-speed-integrated-circuits Hardware Description Language. Uno dei linguaggi per la descrizione funzionale di qualsiasi circuito digitale (FPGA, ASIC...), indicati genericamente come HDL. Il VHDL è largamente diffuso a livello mondiale (standard IEEE). Un altro linguaggio spesso utilizzato è il Verilog HDL. La descrizione funzionale rappresenta strutture logiche in modo astratto, cioè senza necessariamente indicare una specifica realizzazione del circuito in termini di rete di NOT, AND e flip-flop, fra tutte quelle equivalenti che danno la stessa funzione logica (cioè la relazione fra uscite e ingressi del circuito). Un compilatore (software installato su PC) traduce la struttura VHDL astratta in una struttura specifica da poter riprodurre in un dato dispositivo (ASIC o FPGA). 9

10 Descrizione funzionale o strutturale? In una descrizione strutturale (ad esempio un disegno schematico) viene specificata una sola struttura logica del circuito fra le tante equivalenti. La descrizione strutturale diventa utile quando ci sono esigenze molto particolari in termini di numero di celle utilizzate per realizzare il circuito, ritardi fra ingressi e uscite del circuito ecc. La descrizione funzionale ( behavioural, ad esempio un codice HDL), in quanto astratta, evita di specificare la struttura logica. Risparmio di tempo durante la codifica del circuito e le successive modifiche/correzioni. Minore possibilità di introdurre errori umani nel codice. Maggiore leggibilità del codice da parte degli utenti. Diventa in pratica indispensabile per circuiti di media o alta complessità (> 100 flip-flop). Analogia con C (FORTRAN ecc.) rispetto a linguaggio macchina per un processore: entrambi descrivono sequenze di operazioni: C lo fa in modo astratto, l.m. individua una specifica sequenza fra tutte quelle equivalenti (cioè con stesso risultato finale). Nota: in HDL è anche possibile codificare una descrizione strutturale (porte AND, NOT e flip-flop) del tutto analoga al disegno schematico. In genere un codice HDL contiene un insieme di descrizioni funzionali e strutturali. 10

11 (Es. 1) Semplice progetto VHDL -- i COMMENTI sono preceduti da "--" in modo che il compilatore li riconosca e li ignori -- Questo è un esempio di progetto elementare (solo combinatorio per semplicità) -- In blu sono evidenziate alcune delle parole riservate per la codifica del linguagguo VHDL -- In rosso: nomi di oggetti che devono essere scelti dal progettista (in modo se possibile da essere facilmente compresi nella rilettura del codice) library IEEE; use IEEE.std_logic_1164.all; -- libreria di base (da indicare sempre) entity ex1 is -- entità = interfaccia esterna; "ex1" è il nome, definito dal progettista port ( -- elenco dei segnali esterni di ex1 input1, input2: in std_logic; -- std_logic (tipo del segnale): due valori logici possibili, '1' o '0' output: out std_logic ); -- un singolo enunciato puo essere scritto su più righe end ex1; 11

12 (Es. 1) Semplice progetto VHDL architecture struct1 of ex1 is -- architettura = struttura/funzionalità interna; struct1 è il nome scelto dal progettista -- elenco dei segnali interni signal int1 : std_logic; begin int1 <= NOT input2; output <= input1 OR int1; end struct1; -- questa descrizione è strutturale (viene indicata una specifica combinazione di porte logiche). Vedremo in seguito un esempio di descrizione funzionale. 12

13 (Es. 1) Semplice progetto VHDL architecture behav1 of ex1 is -- architettura = struttura/funzionalità interna; behav è il nome scelto dal progettista -- non ci sono segnali interni!!! begin process (input1, input2) -- lista di sensibilità ( sensitivity list ): contiene gli ingressi del componente che vengono valutati nelle condizioni if...end if e simili che costituiscono la descrizione funzionale interna begin -- descrizione interna del componente, funzionale: non indica una specifica combinazione di NOT e AND fra quelle equivalenti (ne sono riportate ad esempio due nelle figure), ma piuttosto indica astrattamente la funzione desiderata, cioè le combinazioni di valori di ingresso per cui l uscita e 1 if input1 = '1' then output <= '1'; elsif input2 = '0' then output <= '1'; else -- ATTENZIONE: può essere omesso, ma allora cambia la funzionalità! -- (come?) output <= '0'; end if; end behav1; end process; 13

14 Progettare un generico circuito logico Un generico circuito logico (circuito sequenziale, macchina logica) è composto di un insieme di flip-flop e di una rete combinatoria (combinazione di porte NOT e AND). I flip-flop memorizzano lo stato logico della macchina. La rete combinatoria definisce con la propria struttura la sequenza degli stati del circuito. Per comodità pratica il progettista suddivide il circuito logico in un certo numero di blocchi logici o componenti organizzati in maniera gerarchica. Si noti l'analogia con la subroutine nella programmazione di un processore. Conviene definire la gerarchia in modo da poter ripetere più volte nel progetto lo stesso componente e, se possibile, far coincidere la funzionalità di un componente con quella di una macro. 14

15 Macrofunzioni ( macro ) I componenti più comuni possono in genere essere ottenuti senza codificarli a mano (in HDL o disegno schematico), utilizzando un software generatore di macrofunzioni, di solito accessibile tramite interfaccia grafica nell'ambiente software di sviluppo (nell'ambiente Quartus di Altera: MegaWizard Plug-in Manager). Contatori, registri, multiplexer, decodificatori... Configurabili dall utente: numero di bit, presenza di ingressi asincroni preset e/o clear, presenza di ingressi sincroni addizionali (enable, load, reset ecc.) Ogni macrofunzione generata è un blocco logico che può essere incluso nella struttura gerarchica del progetto come tutti gli altri componenti descritti a mano dall'utente. Prima di scrivere il codice per realizzare una data funzione logica, conviene verificare se è possibile utilizzare una o più macro. Risparmio di tempo notevole (servono pochi secondi per generare una macro). A meno che ci siano esigenze molto particolari, per cui serve una descrizione manuale, strutturale e ottimizzata (ritardi, numero di celle utilizzate...). Nota: in genere la macro non è esportabile in un diverso ambiente software di sviluppo. In genere è però possibile creare automaticamente il codice VHDL funzionale equivalente, che può essere utilizzato in qualsiasi ambiente. 15

16 (Es. 2) Architettura a blocchi logici -- Architettura gerarchica a blocchi logici (un solo componente interno) architecture arch of ex2 is -- segnali interni signal in1_and_in2 : std_logic; -- componenti interni di questa architettura component logic_function -- componente = blocco logico, la cui architettura NON è -- specificata qui (il nome e i segnali esterni del componente devono corrispondere a -- un entità decritta altrove) port (input1, input2: in std_logic; output: out std_logic ); end component; begin in1_and_in2 <= in1_pin AND in2_pin; logic_function_inst1: logic_function port map ( -- chiamata ( instance ) del componente con mappatura -- dei suoi segnali esterni sui segnali interni o esterni di ex2 input1 => in1_and_in2, -- segnale interno di ex2 input2 => in3_pin, -- segnale esterno di ex2 output => out_pin ); end arch; 16

17 (Es. 2) Descrizione del componente -- Tipicamente il componente è descritto in un file separato, come blocco logico indipendente library IEEE; use IEEE.std_logic_1164.all; entity logic_function is -- l interfaccia deve essere coerente con quanto dichiarato nella architettura dove il componente viene chiamato (~ subroutine) port ( input1, input2: in std_logic; output: out std_logic ); end logic_function; architecture struct1 of logic_function is -- in questo esempio, il nome e la descrizione (strutturale) dell'architettura sono gli stessi usati nell'esempio 1 (ma si noti il diverso formalismo permesso dalla sintassi del VHDL) begin output <= input1 OR NOT input2; end struct1; 17

18 Vantaggi della descrizione gerarchica Lo stesso componente (blocco logico) può essere inserito in N copie (cioè chiamato N volte) in uno stesso progetto VHDL. Ogni copia è identificata da una diversa etichetta (label) scelta dal progettista: logic_function_inst1: logic_function port map ( ); logic_function_inst2: logic_function port map ( ); Per modificare tutte le copie è sufficiente cambiare una sola volta la descrizione dell architettura del componente (parametri della macro, oppure codice scritto a mano nel caso di componente codificato dal progettista). È possibile anche definire diverse architetture (strutture interne) per una stessa entità (interfaccia) e poi scegliere quella da utilizzare in compilazione per ciascuna copia o gruppo di copie; ad esempio: component end component; for logic_function_inst1, logic_function_inst2 : logic_function use entity work.logic_function(arch1); for logic_function_inst3 : logic_function use entity work.logic_function(arch2); oppure ad esempio: component end component; for all: logic_function use entity work.logic_function(arch1); 18

19 Come descrivere un architettura in VHDL Un architettura in VHDL può contenere 3 diverse tipologie descrittive (inserite fra begin e end): architecture arch of logic_function is begin... << INSERIRE QUI end arch_simple; Prima tipologia: chiamata di un componente la cui architettura è indicata altrove. logic_function_inst1: logic_function port map ( input1 => in1_and_in2, input2 => in3_pin, output => out_pin ); Seconda tipologia: assegnazione (descrizione strutturale): output <= input1 OR NOT input2; 19

20 Come descrivere un architettura in VHDL Terza tipologia: processo (descrizione funzionale): process (input1, input2) -- lista di sensibilità ( sensitivity list ): contiene i segnali che vengono valutati nelle condizioni if...end if e simili che costituiscono la descrizione funzionale begin -- descrizione funzionale: non indica una specifica combinazione di NOT e AND fra quelle equivalenti, ma piuttosto indica astrattamente la funzione desiderata, cioè le combinazioni di valori dei segnali valutati per cui l uscita e 1 if input1 = '1' then output <= '1'; elsif input2 = '0' then output <= '1'; else -- ATTENZIONE: può essere omesso, ma allora cambia la funzionalità! -- (come?) output <= '0'; end if; end process; 20

21 Concetto di concorrenza L ordine, all interno dell architettura, in cui vengono scritti chiamate, assegnazioni e processi non ha effetto sulla struttura del circuito logico. Il codice VHDL è una rappresentazione unidimensionale (un elenco) dei componenti del circuito. Il disegno schematico è una rappresentazione bidimensionale. Il codice VHDL, quindi, è analogo al codice C ecc., ma solo per certi aspetti. In particolare, l elenco di descrizioni nell architettura VHDL non ha nulla a che vedere con l elenco di istruzioni, da eseguire ordinatamente nel tempo, codificate in un programma C. Tutte le decrizioni elencate nel codice VHDL sono concorrenti simultaneamente a definire la funzionalità dell'intero circuito, in quanto rappresentano parti del circuito interconnesse fra loro. Consideriamo un processo: la variazione di un segnale nella lista di sensibilità del processo implica in generale la variazione delle uscite del processo e quindi degli ingressi di altre parti del circuito (assegnazioni, processi, componenti), indipendentemente dal punto del codice in cui sono descritti. Viceversa, le istruzioni codificate in un programma C sono per costruzione attive in successione nel tempo. 21

22 Compilazione e verifica del progetto. 22

23 Compilazione del progetto: sintesi La compilazione avviene in due fasi. Un software (compilatore) permette di automatizzare il lavoro. Eventuali raffinamenti, in entrambe le fasi, sono operati a mano. Prima fase: sintesi. Il codice VHDL (descrizione funzionale) è tradotto dal software di sintesi in una specifica struttura di elementi logici di base (AND, NOT e flip-flop), la netlist. Come viene individuata la netlist? Seguendo criteri di ottimizzazione (ad es. minimizzare il numero totale di elementi logici necessari) sfruttando le equivalenze logiche. Input: il codice VHDL (uno o più file di testo.vhd). Output: tipicamente un file.edf cioè con formato EDIF (Electronic Design Interchange Format, altro standard industriale). La netlist non fa riferimento ad alcun dispositivo specifico (FPGA o ASIC). Il disegno schematico (descrizione strutturale) è anch esso tradotto in edf (vengono operate delle ottimizzazioni). 23

24 Sintesi e ottimizzazioni Con la sintesi la struttura logica viene in genere ottimizzata a partire dalla descrizione funzionale o strutturale del circuito desiderato. Un esempio di ottimizzazione: sono eliminate le parti logiche ridondanti (duplicate nel codice originale) in modo da ridurre il numero di elementi logici necessari. Si ricordi che il numero di elementi logici disponibili in un dato dispositivo è limitato. In genere, così si riduce la potenza assorbita (consumo). Il codice che descrive il circuito logico può così essere scritto dall'utente in maniera non necessariamente sintetica, quindi più naturale e meglio leggibile. Un caso pratico: la descrizione del circuito comporta due flip-flop che pilotano parti diverse del circuito, ma che finiscono con l avere lo stesso segnale logico in ingresso: uno dei due flip-flop può quindi essere omesso (ma attenzione: il fan-out sull'altro aumenta!). 24

25 Compilazione del progetto: configurazione Seconda fase: configurazione del dispositivo o place and route ( posizionamento e interconnessione ). La netlist viene tradotta in un codice di configurazione per un determinato dispositivo e salvato in uno o più file di configurazione. Il codice di configurazione descrive una specifica struttura reale del circuito logico (cioè la disposizione degli elementi logici e delle interconnesioni in un dato tipo di dispositivo) fra tutte quelle che realizzano la struttura descritta nella netlist. Il codice di configurazione viene utilizzato nella fase di realizzazione del circuito nel dispositivo. Per il formato del file di configurazione esistono vari standard, a seconda della tecnica di fabbricazione della ASIC o di programmazione della FPGA. Per una FPGA la configurazione si basa sulle celle e interconnessioni messe a disposizione. Per una ASIC la struttura reale viene definita tenendo conto dei vincoli costruttivi legati alla tecnologia di fabbricazione utilizzata (spessore delle piste, dimensioni dei transistor ecc.). Anche nella fase di configurazione avvengono ottimizzazioni. Ad esempio: minimizzazione dei ritardi nelle interconnessioni, tenendo conto della tecnologia di fabbricazione del dispositivo. 25

26 Verifica del progetto Ci sono due modi per verificare la corretta funzionalità del circuito digitale progettato: simulazione e prove in laboratorio. In entrambi i casi si forniscono al circuito i necessari segnali digitali di ingresso, variabili nel tempo, e si osserva il comportamento nel tempo dei segnali in uscita. Conviene passare alle prove in laboratorio solo quando la simulazione ha dato esito positivo. Simulazione. La simulazione avviene mediante un apposito software; le forme d onda sulle uscite del circuito sono visualizzate in una finestra grafica. E possibile assegnare le forme d onda di ingresso tramite interfaccia grafica. Il VHDL contiene la sintassi necessaria per codificare forme d onda digitali per il simulatore. Ad esempio: process (input1) begin input1 = '1'; wait for 100 ns; input1 = '0'; wait for 100 ns;... end process; 26

27 Verifica del progetto La simulazione è solitamente di tipo temporale. Il simulatore riproduce le temporizzazioni (tempi di propagazione) attese dei segnali nel circuito, per uno specifico dispositivo e per determinati valori dei parametri operativi (V alim, T). si ricorda che le temporizzazioni in un dispositivo elettronico dipendono dai parametri operativi. È possibile anche una simulazione di tipo funzionale (più rapida), assumendo che le temporizzazioni nel circuito non influiscano sul comportamento del circuito (ipotesi realistica solo in pochissimi casi pratici). Limiti della verifica del progetto: in simulazione le temporizzazioni reali sono riprodotte in modo necessariamente approssimato; in simulazione e in laboratorio non è generalmente possibile provare: tutte le possibili combinazioni di valori dei parametri operativi in cui il circuito opererà; tutte le possibili casistiche di utilizzo (sequenze di segnali in ingresso) in cui il circuito opererà. Conviene quindi scegliere un metodo di progettazione che permetta di ottenere un circuito affidabile nonostante i limiti di cui sopra (quale? vedremo nel seguito). 27

28 Temporizzazioni dei segnali e macchine sincrone. 28

29 Flip-flop: ingressi sincroni e asincroni Ingressi sincroni. Internamente: hanno effetto sull uscita solo in corrispondenza del fronte di salita ( leading edge o rising edge ) di clock. Setup time e hold time definiscono l intervallo temporale nell intorno del fronte di salita del clock, in cui questi ingressi devono essere stabili per non introdurre upset in uscita. Esternamente: possono essere pilotati da linee sincrone (che variano cioè con lo stesso segnale di clock del flip-flop) o asincrone. Ingressi asincroni. Internamente: hanno effetto sull uscita immediatamente, indipendentemente dal clock. Esternamente: possono essere pilotati da linee sincrone o asincrone. 29

30 Temporizzazioni Se il setup time o hold time di un flip-flop non viene rispettato, c'è una probabilità non nulla che il flip-flop carichi in uscita il valore sbagliato (upset). Quindi, in una macchina logica reale (FPGA o ASIC), il valore caricato in uscita su ciascun flip-flop non dipende solo dalla struttura logica ma anche dalle temporizzazioni dei segnali. Temporizzazioni dei segnali: indicano genericamente il ritardo fra la transizione in un punto fisico di una linea facente parte del circuito logico e la transizione logicamente conseguente in un altro punto fisico. Esse dipendono da: struttura reale del circuito: struttura logico/fisica realizzata nel dispositivo; tecnologia del dispositivo (circuito integrato): caratteristiche fisiche delle celle logiche (transistor) e delle interconnessioni (piste metalliche). Esse variano con: tolleranze di fabbricazione: ogni singolo dispositivo di una serie ha caratteristiche che fluttuano in un intorno delle specifiche nominali della serie; condizioni ambientali: temperatura e tensione di alimentazione; invecchiamento ( aging ) del dispositivo: da normale usura (passaggio di corrente, variazioni di temperatura...) o da radiazione assorbita. 30

31 Macchina sincrona: introduzione Per poter tener conto in maniera efficace delle temporizzazioni nel circuito integrato, la soluzione più semplice è quella di creare una macchina sincrona o circuito sincrono, cioè un circuito logico caratterizzato dall avere un unico segnale usato come clock per tutti i flip-flop. Il clock è tipicamente generato da un oscillatore periodico ad alta stabilità (si tratta tipicamente di un altro circuito integrato). Unico segnale significa che la forma d onda reale del clock su ogni flip-flop è la stessa, a meno di sfasamenti ( skew ) legati ai diversi tempi di propagazione del segnale dall oscillatore ai vari flip-flop. In pratica il circuito sincrono è diviso in blocchi logichi strutturati in maniera gerarchica, ciascuno costituito da una macchina sincrona, e tutti sincroni fra loro (stesso clock). In generale potrebbe però essere necessario suddividere il circuito in diverse macchine sincrone, in genere asincrone fra loro (usano segnali di clock distinti). Il circuito complessivo in questo caso è asincrono (ci sono almeno due segnali di clock). 31

32 Macchina sincrona e setup time (1/2) Per un circuito sincrono, la relazione che garantisce la non violazione di setup time per il flip-flop (j) è: T CTO(i) max + T comb(i) max + T skew(i-j) max + T setup max < T clock (ST) per ogni flip-flop (i) che contribuisce a pilotare un dato ingresso sincrono di (j). Max si riferisce alla variabilità delle temporizzazioni (tolleranze, condizioni ambientali, invecchiamento). T comb(i) è il ritardo (attraverso un blocco puramente combinatorio) fra la transizione sull uscita data_out_i del flip-flop (i) e la conseguente transizione sull ingresso sincrono data_in_j del flip-flop (j). Dipende da: numero di celle combinatorie attraversate (tipicamente ognuna dà un ritardo < 0.1 ns); lunghezza delle piste metalliche attraversate. 32

33 Macchina sincrona e setup time (2/2) T CTO(i) (CTO: clock-to-out) è il ritardo di propagazione interno al flip-flop (i). T skew(i-j) = t rising(i) - t rising(j) rappresenta lo sfasamento, cioè il ritardo (skewness) fra i fronti di salita del clock su flip-flop diversi. Stiamo parlando dello stesso segnale esterno di clock, che arriva in diversi punti fisici interni del circuito: clock_i e clock_j. Lo sfasamento deriva dalla diversa lunghezza del cammino del segnale di clock dall oscillatore ai due flip-flop. Può essere positivo o negativo. Tipicamente T skew(i-j) << T clock in ogni condizione. Il margine residuo sulla violazione di setup time ( setup margin ) nella connessione i-j si riduce per frequenze operative (frequenze di clock) maggiori. T setup_margin(j-i) = T clock - (T CTO(i) max + T comb(i) max + T skew(i-j) max + T setup max ) Nota: (ST) è soddisfatta se e solo se T setup_margin(j) > 0. 33

34 Circuito asincrono e setup time Nel caso di circuito asincrono, abbiamo almeno due distinti segnali esterni di clock. Il circuito è asincrono anche se i due o più oscillatori sono (nominalmente) uguali: infatti essi sono comunque fisicamente diversi (anche se di poco). Per esempio: clock_1 (va al flip-flop (1)), clock_2 (va al flip-flop (2)). Consideriamo le temporizzazioni per il setup time del flip-flop (2): necessariamente a un certo punto si avrà una transizione di data_in_2 troppo vicina a quella di clock_2, con violazione di setup time. Per un circuito asincrono la relazione (ST) è quindi impossibile da soddisfare sempre. Si dice che il flip-flop (2) realizza una risincronizzazione (o un campionamento asincrono) del segnale data_in_2. 34

35 Macchina sincrona e hold time Per un circuito sincrono, la relazione che garantisce la non violazione di hold time è: T CTO(i) min + T comb(i) min T skew(i-j) max > T hold (HT) per ogni flip-flop (j) e per ogni flip-flop (i) che contribuisce a pilotare un dato ingresso sincrono di (j). In questo caso la relazione non dipende dalla frequenza operativa (frequenza clock) e quindi può essere soddisfatta in maniera più agevole che la (ST) da parte del compilatore. Nel caso asincrono, valgono considerazioni analoghe a quelle svolte per il setup time. 35

36 Vantaggi della macchina sincrona Nel caso sincrono, basta un solo oscillatore (perché usarne due se non ce n'è bisogno?). Nel caso sincrono, con un segnale di clock unico per tutti i flop-flop, la struttura del circuito è la più semplice possibile. Nel caso sincrono, è in genere possibile per il compilatore soddisfare (ST) e (HT) in modo automatico, utilizzando i propri algoritmi di ottimizzazione della fase di sintesi e della fase di configurazione. Nel caso asincrono, gli upset sono inevitabili: richiedono quindi di essere trattati opportunamente per garantire la funzionalità desiderata del circuito (vedremo poi come). Nel caso asincrono, occorre in genere tenere il conteggio dei cicli dei vari clock impiegati, per assicurare la simultaneità di determinate azioni da parte dei rispettivi blocchi logici (asincroni fra loro). Nel caso asincrono, si richiede in sostanza del lavoro addizionale da parte del progettista. 36

37 Macchina sincrona e compilazione Il compilatore (nella fase di configurazione) sceglie e ottimizza la struttura reale (tipo di celle logiche, loro disposizione geometrica e interconnessioni) di ciascuna macchina sincrona che compone in circuito, allo scopo di massimizzare i margini temporali su setup e hold time. Il compilatore si basa su un modello approssimato delle temporizzazioni nel dispositivo (tecnologia, tolleranze, condizioni ambientali ammesse) e sulla massima frequenza operativa richiesta dal progettista per il clock corrispondente a ciascuna macchina sincrona. Il compilatore, se l algoritmo di place and route non è in grado di trovare una configurazione della macchina sincrona che sia soddisfacente per tutti i flip-flop alle condizioni richieste, indica i cammini di segnale che violano setup o hold time. 37

38 Tempo di salita/discesa I tempi di transizione (durata della salita/discesa del segnale) sono stati fin qui trascurati e i fronti di salita/discesa sono stati approssimati come istantanei (linee verticali). In realtà il tempo di transizione su una linea è caratterizzato dalla costante di tempo (RC) data dalla capacità di carico e resistenza della linea. La capacità di carico aumenta linearmente col numero di porte o flip-flop pilotati da una singola linea (cioè con il fan-out). Il compilatore ottimizza il circuito in modo che i tempi di transizione siano trascurabili rispetto alle altre temporizzazioni. In pratica il fan-out viene limitato tramite la duplicazione (ridondanza) della porta o flip-flop in questione. 38

39 Struttura della macchina sincrona e realizzazione in VHDL. 39

40 Macchina sincrona: struttura La macchina sincrona può essere scomposta in due blocchi logici: un registro di stato ( status register ) a N bit (l insieme degli N flip-flop della macchina, con il clock comune) la cui uscita è il bus di stato ( status ); una look-up-table (LUT) (cioè un generico circuito combinatorio). I flip-flop formano la memoria della macchina, immagazzinando l informazione relativa allo stato presente della macchina ( status ). La macchina sincrona è, per questo, anche chiamata macchina a stati. Ogni possibile configurazione di valori caricati nei flip-flop costituisce uno stato. Gli stati possibili sono 2 N. Lo stato durante il ciclo di clock successivo dipende da: stato presente ( status ); LUT; valori degli ingressi di controllo (assumiamo per ora che gli ingressi di controllo siano segnali sincroni). Uno stato può durare N cicli di clock. 40

41 Macchina sincrona e periodicità Una macchina sincrona generica è non periodica. La presenza degli ingressi sincroni di controllo implica che per ogni stato S, lo stato successivo S' non dipende solo dalla struttura della macchina. In altri termini: la sequenza di stati e la loro durata (numero di cicli di clock) non è necessariamente prefissata. Il numero di cicli di clock che intercorre fra due ripetizioni dello stesso stato non è fissato. Un caso particolare è la macchina sincrona periodica. Nessun ingresso di controllo. Quindi: la successione di stati è fissata internamente. Si può mostrare che ogni macchina sincrona periodica con N flip-flop è logicamente equivalente a: un contatore a N bit; una LUT. 41

42 Macchina sincrona: esempio (1/2) Esempio pratico: una FPGA contiene una macchina sincrona che esegue una sequenza di operazioni; dopo l accensione della FPGA, stato iniziale: idle oppure no operation (nop); avvio da parte di un impulso sincrono esterno (ad es. impulso di trigger da un rivelatore); lettura di un ADC esterno e trasferimento del dato in una RAM esterna; incremento del numero di evento e suo trasferimento in una RAM; di nuovo stato iniziale: attesa di un nuovo trigger. La macchina genera sequenze sincrone su un certo numero di uscite digitali verso ADC e RAM. 42

43 Macchina sincrona: esempio (2/2) Conviene scegliere la struttura gerarchica della macchina sincrona in modo opportuno: una macchina principale Main che coordina e attiva varie macchine secondarie quando necessario; una macchina secondaria Sec ADC dedicata a leggere l ADC e immagazzinare il dato in un registro temporaneo (registro? macro! Interfaccia ADC? progettista!); un altra macchina secondaria Sec count che conta il numero di eventi (contatore? macro!); un altra macchina secondaria Sec RAM dedicata a trasferire il dato dal registro temporaneo o dal contatore alla RAM (interfaccia dedicata alla RAM utilizzata? codificata dal progettista!). Ogni macchina secondaria è dedicata (specializzata) per generare una specifica sequenza digitale su uno specifico gruppo di uscite. Tipicamente la stessa macchina secondaria (~ subroutine) viene attivata in momenti diversi del funzionamento della macchina principale: ad es. la scrittura nella RAM avviene due volte per ogni trigger e implica la stessa sequenza digitale di controllo verso la RAM (mentre i dati trasferiti possono cambiare ogni volta). 43

44 (Es. 3) Macchina sincrona in VHDL Scriviamo il codice VHDL che descrive la macchina principale Main dell esempio precedente. entity main is port ( synchro_trigg, adc_read_end, ram_write_end: in std_logic; adc_read_start, ram_write_start, ram_data_select: out std_logic ); end main; La descrizione dell'interfaccia (entità) di Main comporta di aver già chiaro quali sono i segnali di ingresso e di uscita che servono perché la macchina principale (Main) possa coordinare il lavoro della altre macchine. Conviene partire da uno schema a blocchi del circuito, come quello mostrato qui. Nota: non sono mostrate le linee: clock, reset asincrono, segnali di controllo per ADC e RAM. trigger è un segnale asincrono rispetto al clock; il risincronizzatore è descritto più avanti

45 (Es. 3) Macchina sincrona in VHDL Abbiamo visto che l'architettura di una macchina sincrona è ben descritta scomponendola in due blocchi logici: un registro di stato (insieme di flip-flop); una LUT (blocco puramente combinatorio). architecture arch of main is altri segnali interni? type st_value is ( -- con questa notazione funzionale (astratta) il bus di stato (uscita -- del registro di stato) viene rappresentato in maniera ben leggibile nop, adc_read, ram_write1, ram_write2 -- la macchina che definisco in questo esempio ha -- 4 diversi stati (equivalenti ai 4 possibili valori di 2 linee digitali: 00,01,10,11); ); -- descrizione funzionale (astratta) signal st_pres, st_next -- definisco 2 bus di stato di tipo st_value: stato presente -- (uscita registro) e stato successivo (uscita LUT) : st_value;... 45

46 (Es. 3) Macchina sincrona in VHDL... begin process (reset, clock) -- primo blocco logico: è il registro di stato della macchina -- sincrona (insieme di flip-flop) [processo = descrizione funzionale] begin if (reset = '1') then -- reset inviato agli ingressi asincroni clear o preset -- (indispensabile per avere uno stato di partenza definito, anche in una macchina -- sincrona: risolve il problema del transitorio all accensione) st_pres <= nop; -- No OPeration elsif (clock'event and clock = '1') then -- fronte di salita di clock st_pres <= st_next; end if; end process; process (-- secondo blocco logico: è la LUT della macchina sincrona, che definisce lo stato -- successivo st_next e le uscite, in funzione dello stato presente st_pres -- e degli ingressi di controllo [processo = descrizione funzionale] st_pres, synchro_trigg, -- trigger sincronizzato con clock (dal blocco "trigger resynch") adc_read_end, -- segnale di ritorno dalla macchina secondaria Sec ADC ram_write_end -- segnale di ritorno dalla macchina secondaria Sec RAM ) begin... 46

47 (Es. 3) Macchina sincrona in VHDL in alternativa all uso di: -- if ( condizione 1 ) then...elsif ( condizione N ) then...else...end if -- [in cui la condizione else può anche essere omessa...] -- è possibile usare: -- case segnale is when valore 1 =>... when valore 2 =>...when others =>...end case; -- ATTENZIONE: con if si specificano le assegnazioni derivanti da un sottoinsieme dei possibili valori di un bus (gli altri valori non modificano il valore in uscita); con case si specificano le assegnazioni derivanti da ciascuno dei possibili valori del bus (è obbligatorio includere nell elenco dei when TUTTI i possibili valori del bus: esplicitamente, o implicitamente con when others ). -- all'interno del processo, ciascuna assegnazione per ciascun segnale/bus è valida solo se nel seguito della descrizione del processo (prima di "end process") non sono presenti altre assegnazioni per lo stesso segnale/bus che siano valide (in genere, la validità è vincolata, con if/case, a condizioni sui segnali della lista di sensibilità); -- all'interno del processo prevale quindi l'ultima assegnazione valida (la validità dipende dinamicamente dai segnali in ingresso al processo). st_next <= nop; adc_read_start <= '0'; ram_write_start <= '0'; ram_data_select <= '0';... 47

48 (Es. 3) Macchina sincrona in VHDL... case st_pres is when nop => if (synchro_trigg = '1') then -- c è un trigger!! st_next <= adc_read; -- passa allo stato successivo adc_read_start <= '1'; -- avvia la macchina Sec ADC (un impulso lungo un ciclo di clock) -- ram_write_start e ram_data_select non cambiano end if; -- altrimenti resta nello stato presente (nop) -- NOTA: il numero di cicli di clock in cui la macchina Main resta in un generico stato dipende -- dal segnale di controllo (flessibilità) when adc_read => if (adc_read_end = '1') then -- è terminata la lettura dell'adc (comunicazione da Sec ADC ) st_next <= ram_write1; -- passa allo stato successivo ram_write_start <= '1'; -- avvia Sec RAM (un impulso lungo un ciclo di clock) else st_next <= adc_read; -- altrimenti resta nello stato presente (*) end if;... (*) Perché per adc_read è necessario scriverlo mentre per nop è implicito? 48

49 (Es. 3) Macchina sincrona in VHDL... when ram_write1 => if (ram_write_end = '1') then -- Sec RAM comunica di aver terminato la scrittura nella RAM st_next <= ram_write2; -- passa allo stato successivo ram_write_start <= '1'; -- avvia DI NUOVO Sec RAM ram_data_select <= '1'; -- 1 seleziona il dato del contatore else st_next <= ram_write1; -- altrimenti resta nello stato presente end if; when ram_write2 => if (ram_write_end = '1') then -- Sec RAM comunica di aver terminato la (seconda) scrittura -- nella RAM st_next <= nop; -- passa allo stato successivo (chiusura del ciclo) else st_next <= ram_write2; -- altrimenti resta nello stato presente ram_data_select <= '1'; -- mantiene la selezione attiva, altrimenti la linea torna a 0 -- (davvero necessario? dipende dal funzionamento di Sec RAM ) end if; end case; end process; -- NOTA: non sono mai stati usati gli operatori AND, NOT ossia non è mai stata -- data una specifica descrizione strutturale end arch; 49

50 Upset da asincronia; risincronizzazione 50

51 Upset da violazione setup/hold time Definizione: il valore caricato in un flip-flop è l inverso di quello logicamente corretto. Qual è la conseguenza pratica dell upset? In generale (non sempre) l upset nei successivi cicli di clock si propaga ad altri flip-flop nel circuito, modificandone lo stato logico in maniera imprevedibile (non controllata) e in genere scorrelata dal funzionamento atteso (viene introdotto un errore logico nel funzionamento del circuito). Un upset può verificarsi se setup o hold time di un flip-flop sono violati per un certo fronte di salita di clock. L uscita del flip-flop (bistabile) si viene a trovare in uno stato metastabile (cioè di equilibrio instabile), caratterizzato da un valore di tensione intermedio fra lo stato 0 (per circuiti LVTTL: V out < 0.8 V) e lo stato 1 (per circuiti LVTTL: V out > 2.0 V). Il flip-flop decade dallo stato metastabile in tempi brevi (~ 1 ns) nello stato 0 o nello stato 1 (stati stabili), in maniera sostanzialmente imprevedibile: può quindi decadere nello stato logicamente sbagliato, può cioè avvenire l inversione (upset) del valore effettivamente caricato rispetto al valore logicamente atteso. 51

52 Violazione di setup/hold time Quando avviene la violazione di setup/hold time? Esempio: frequenza di clock troppo elevata in una macchina sincrona. Altro esempio: due clock di frequenza diversa in un circuito asincrono. La probabilità di questo tipo di upset viene azzerata, se il circuito è sincrono e soddisfa (ST) e (HT) viste prima. T CTO(i) max + T comb(i) max + T skew(i-j) max + T setup max < T clock T CTO(i) min + T comb(i) min T skew(i-j) max > T hold (ST) (HT) La probabilità di questo tipo di upset in un circuito asincrono non è mai zero. 52

53 Circuito asincrono In un circuito asincrono, è però possibile configurare opportunamente lo stadio di risincronizzazione o campionamento asincrono (flip-flop (2) nello schema sotto) in modo da azzerare la probabilità di errore logico. 53

54 Campionamento asincrono combinatorio (1/2) Vediamo un caso pratico di risincronizzazione. Una parte del circuito lavora con clock_1, l altra parte con clock_2, dati da due oscillatori diversi. La linea ready_1 (combinatoria) è sincrona con clock_1 e indica quando la macchina 1 è pronta. La linea ready_2 è sincrona con clock_2 e avvia una sequenza interna alla macchina 2. Sta avvenendo il campionamento asincrono del segnale ready_1 che è uscita di un elemento combinatorio (porta logica, non flip-flop). 54

55 Campionamento asincrono combinatorio (2/2) Un segnale combinatorio come ready_1 presenta glitch (impulsi spuri) a causa delle temporizzazioni dei segnali nel dispositivo reale. Le transizioni di signal_a e signal_b non sono mai esattamente simultanee, nonostante i due segnali siano generati da flip-flop sincroni. Nel campionamento asincrono combinatorio, un glitch in corrispondenza del fronte di salita di clock_2 può dare un upset sulla linea ready_2 e quindi portare ad un errore logico nella macchina 2. In caso di upset ready_2 cambia stato e la macchina 2 inizia a lavorare senza che la macchina 1 abbia veramente comunicato di essere pronta! Nota bene: nel caso di campionamento sincrono (con setup e hold time soddisfatti), il glitch ci sarebbe comunque, ma non avrebbe effetto, in quanto avverrebbe al di fuori dell intorno del fronte di salita del clock, identificato da setup e hold time. 55

56 Come risincronizzare? Per evitare di avere il glitch in ingresso allo stadio di risincronizzazione, occorre evitare di avere campionamenti asincroni di tipo combinatorio. Occorre quindi avere solo campionamenti asincroni di tipo sequenziale (cioè direttamente sull uscita di un flip-flop). Attenzione: nella risincronizzazione di tipo sequenziale, pur non avendo glitch, avvengono comunque e inevitabilmente degli upset. Il vantaggio sta nel fatto che mentre l upset originato da un glitch introduce sempre un errore logico, l upset originato da una transizione logicamente attesa può essere elaborato in maniera tale da non comportare mai errori logici. 56

57 Campionamento asincrono sequenziale Inserendo un flip-flop si ha un segnale ready_1 per definizione privo di glitch. ready_2 può ancora avere un upset ma ciò non comporta un errore logico nella macchina 2, che parte quando desiderato, cioè solo dopo che la macchina 1 ha comunicato di essere pronta con ready_1. ready_2 replica le transizioni di ready_1 a meno di un incertezza (jitter) nel ritardo, che può variare di volta in volta fra circa 0 e T clock_2 a seconda della fase fra i due clock al momento del campionamento (asincrono). per indicare il ritardo fra i due segnali ready_1 e ready_2: si considera il ritardo medio, pari a circa 0.5 T clock_2 ; si rappresenta il jitter come un incertezza δt distribuita uniformemente con ampiezza massima pari al ritardo medio: δt = ± 0.5 T clock_2 57

58 Upset da perturbazioni esterne 58

59 Upset da perturbazioni esterne Un upset può anche avvenire a causa di perturbazioni esterne, ad esempio le correnti parassite indotte nel flip-flop da una particella altamente ionizzante (ad es. un raggio cosmico). Non è possibile azzerare la probabilità di questo tipo di upset! Non è possibile azzerare la probabilità che questo tipo di upset comporti un errore logico! 59

60 Upset da perturbazioni esterne Si può ridurre la probabilità che questo upset comporti un errore logico, introducendo un qualche tipo di ridondanza (che funziona come sistema di correzione automatica dell'errore logico). Un paio di esempi. Tripla ridondanza. Un segnale logico è realizzato da 3 flip-flop (scritto simultaneamente sui 3 flip-flop). Il valore associato (letto) è dato da quello presente in maggioranza (serve la opportuna logica combinatoria). Il numero di flip-flop necessario è triplo. Codifica Hamming. Quando un valore viene scritto in un registro a N bit, viene anche scritto un codice in un registro ausiliario di H bit. Il valore letto è una combinazione logica delle N+H uscite, tale che in caso di upset di uno o più flipflop fra gli N+H, il valore letto nel registro resti identico a quello scritto. Anche con la ridondanza, l'errore logico è sempre possibile: ad esempio, nel caso di tripla ridondanza, un doppio upset (su due flip-flop simultaneamente) non verrebbe corretto automaticamente. 60

61 Rivelazione dell'errore logico Come rivelare la presenza di un errore logico? Si configura la logica di ridondanza in modo da segnalare gli errori logici che essa non può correggere: ad esempio, una codifica Hamming con N=10, H=5 è in grado di correggere un singolo upset e segnalare un doppio upset. Si verifica che il circuito risponda in un tempo massimo prefissato: watchdog ( cane da guardia ): un contatore sempre attivo all'interno del circuito deve essere azzerato dal circuito stesso prima che venga raggiunto un determinato conteggio, che genererebbe automaticamente un segnale di allarme (ad esempio: un reset asincrono per tutti i flip-flop del circuito); time-out sull esecuzione di un comando: la risposta a un comando esterno deve avvenire entro un tempo massimo prefissato. Altrimenti il circuito logico esterno, che ha inviato il comando, interviene (esempio: reset asincrono, spengimento/riaccensione). Si controllano le sequenze di bit in uscita dalla macchina: codici di controllo: controllo di parità, cioè un bit che rappresenta il numero di 1 presenti nei dati (è pari o dispari?); oppure controlli più sofisticati (ad es. CRC: Cyclic Redundancy Check); controlli sul formato dei dati: presenza di sequenze prefissate ( pattern, frame ). 61

62 Contromisure all'errore logico Come si riporta il circuito in una configurazione corretta dopo aver rivelato la presenza di errore logico? Con un impulso di reset asincrono inviato a tutti i flip-flop attraverso i loro ingressi asincroni (clear o preset), che riportano i singoli flip-flop nello stato iniziale desiderato: 0 (clear) o 1 (preset). NOTA: si ricorda che gli ingressi asincroni clear e preset sono caratterizzati dall agire sullo stato del flip-flop indipendentemente dal clock. Con lo spengimento e riaccensione del circuito. 62

63 Bibliografia (non aggiornata) ricerca su google etc.: "vhdl manual" biblioteche di Ateneo (non Polo Scientifico) 63

Progettazione di circuiti digitali e linguaggio VHDL

Progettazione di circuiti digitali e linguaggio VHDL Progettazione di circuiti digitali e linguaggio VHDL Sergio Ricciarini ~ INFN Firenze Corso di Elettronica Generale I Laurea Magistrale in Scienze Fisiche e Astrofisiche Università di Firenze 2011-11-28

Dettagli

Progettazione di circuiti digitali e linguaggio VHDL

Progettazione di circuiti digitali e linguaggio VHDL Progettazione di circuiti digitali e linguaggio VHDL Sergio Ricciarini ~ INFN Firenze 2008-11-19 Sommario Circuiti digitali integrati. Linguaggio VHDL: compilazione e verifica del progetto; come progettare

Dettagli

Progettazione di circuiti digitali: FPGA e linguaggio VHDL

Progettazione di circuiti digitali: FPGA e linguaggio VHDL Progettazione di circuiti digitali: FPGA e linguaggio VHDL Sergio Ricciarini ~ INFN Firenze Corso di Elettronica Generale I Laurea Specialistica in Scienze Fisiche e Astrofisiche Dip. di Fisica - Università

Dettagli

Progettazione di circuiti digitali e linguaggio VHDL

Progettazione di circuiti digitali e linguaggio VHDL Progettazione di circuiti digitali e linguaggio VHDL Sergio Ricciarini ~ IFAC (CNR), Firenze Corso di Elettronica Generale I Laurea Magistrale in Scienze Fisiche e Astrofisiche Università di Firenze 2017-11-09

Dettagli

Progettazione di circuiti digitali e linguaggio VHDL

Progettazione di circuiti digitali e linguaggio VHDL Progettazione di circuiti digitali e linguaggio VHDL Sergio Ricciarini ~ IFAC (CNR) - Firenze Corso di Elettronica Generale I Laurea Magistrale in Scienze Fisiche e Astrofisiche Università di Firenze 2018-10-22

Dettagli

Progettazione di circuiti digitali e linguaggio VHDL

Progettazione di circuiti digitali e linguaggio VHDL Progettazione di circuiti digitali e linguaggio VHDL Sergio Ricciarini ~ INFN Firenze Corso di Elettronica Generale I Laurea Specialistica in Scienze Fisiche e Astrofisiche Dip. di Fisica - Università

Dettagli

Progettazione di circuiti digitali e linguaggio VHDL

Progettazione di circuiti digitali e linguaggio VHDL Progettazione di circuiti digitali e linguaggio VHDL Sergio Ricciarini ~ IFAC (CNR), Firenze Corso di Elettronica Generale I Laurea Magistrale in Scienze Fisiche e Astrofisiche Università di Firenze 2014-11-04

Dettagli

Seconda esercitazione

Seconda esercitazione Seconda esercitazione progetto e simulazione di registri e contatori Obiettivi analisi del costrutto «process» analisi di reti sequenziali a.a. 2-2 VHDL : Processi 2 un processo rappresenta uno statement

Dettagli

IL VHDL. Perché si usa un linguaggio di descrizione dell'hardware? Permette di formalizzare il progetto di sistemi digitali complessi

IL VHDL. Perché si usa un linguaggio di descrizione dell'hardware? Permette di formalizzare il progetto di sistemi digitali complessi IL VHDL Cosa è il VHDL? NON è un linguaggio di programmazione! E' uno standard IEEE per la descrizione dell'hardware VHDL: VHSIC Hardware Description Language VHSIC: Very High Speed Integrated Circuit

Dettagli

Circuiti sincroni circuiti sequenziali:bistabili e latch

Circuiti sincroni circuiti sequenziali:bistabili e latch Architettura degli Elaboratori e delle Reti Lezione 8 Circuiti sincroni circuiti sequenziali:bistabili e latch Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli

Dettagli

Calcolatori Elettronici B a.a. 2004/2005

Calcolatori Elettronici B a.a. 2004/2005 Calcolatori Elettronici B a.a. 2004/2005 RETI LOGICHE: RICHIAMI Massimiliano Giacomin 1 Unità funzionali Unità funzionali: Elementi di tipo combinatorio: - valori di uscita dipendono solo da valori in

Dettagli

Reti logiche (2) Circuiti sequenziali

Reti logiche (2) Circuiti sequenziali Reti logiche (2) Circuiti sequenziali 1 Un ripasso Algebra booleana: operatori, postulati, identità, operatori funzionalmente completi Circuiti combinatori: tabelle di verità, porte logiche Decodificatore

Dettagli

Introduzione al VHDL. Alcuni concetti introduttivi

Introduzione al VHDL. Alcuni concetti introduttivi Introduzione al VHDL Alcuni concetti introduttivi Riferimenti The VHDL Cookbook, Peter J. Ashenden, Reperibile nel sito: http://vlsilab.polito.it/documents.html The VHDL Made Easy, David Pellerin, Douglas

Dettagli

Reti logiche (2) Circuiti sequenziali

Reti logiche (2) Circuiti sequenziali Reti logiche (2) Circuiti sequenziali 1 Un ripasso Algebra booleana: operatori, postulati, identità, operatori funzionalmente completi Circuiti combinatori: tabelle di verità, porte logiche Decodificatore

Dettagli

VHDL: Simulazione & Sintesi

VHDL: Simulazione & Sintesi VHDL: Simulazione & Sintesi Politecnico di Milano 18 Dicembre 2012 M. CARMINATI mcarminati@elet.polimi.it SIMULAZIONE VHDL: Simulazione & Sintesi - M. Carminati Politecnico di Milano 2 TESTBENCH Dopo aver

Dettagli

architecture tipo_architettura of nome_del_modulo is begin architecture tipo_architettura of nome_del_modulo is

architecture tipo_architettura of nome_del_modulo is begin architecture tipo_architettura of nome_del_modulo is Struttura file.vhd. library IEEE; use IEEE.std_logic_64.all; use IEEE.std_logic_arith.all; link a librerie e package entity nome_del_modulo is port ( term,term2 : in std_logic; term3,term4 : out std_logic)

Dettagli

Esercitazione 11. Control-Unit. Data-Path

Esercitazione 11. Control-Unit. Data-Path Esercitazione 11 Sommario Unità di controllo cablate 1. Unità di controllo L architettura interna di una CPU può essere modellata attraverso una struttura costituita da 2 unità interagenti: percorso dati

Dettagli

Terza esercitazione. Progetto di una rete di controllo. Obiettivi Progetto e analisi di macchine a stati finiti. a.a

Terza esercitazione. Progetto di una rete di controllo. Obiettivi Progetto e analisi di macchine a stati finiti. a.a 1 Terza esercitazione Progetto di una rete di controllo Obiettivi Progetto e analisi di macchine a stati finiti 2 Macchina a Stati Finiti (FSM) Z(n)=f(x(n)) => Sistema Combinatorio Z(n)=f(x(n),x(n-1),x(n-2),..)

Dettagli

Introduzione al Flusso di Progetto di Circuiti e Sistemi Digitali

Introduzione al Flusso di Progetto di Circuiti e Sistemi Digitali Introduzione al Flusso di Progetto di Circuiti e Sistemi Digitali Cristina Silvano Università degli Studi di Milano Dipartimento di Scienze dell Informazione Via Comelico 39/41, I-20135 Milano (Italy)

Dettagli

interfacciamento statico e dinamico analisi di interconnessioni, driver e receiver

interfacciamento statico e dinamico analisi di interconnessioni, driver e receiver Elettronica per telecomunicazioni 1 Contenuto dell unità D Interconnessioni interfacciamento statico e dinamico Integrità di segnale analisi di interconnessioni, driver e receiver Diafonia accoppiamenti

Dettagli

ELETTRONICA GENERALE, FONDAMENTI DI ELETTRONICA DIGITALE Appello d esame del 18/1/2016

ELETTRONICA GENERALE, FONDAMENTI DI ELETTRONICA DIGITALE Appello d esame del 18/1/2016 ELETTRONICA GENERALE, FONDAMENTI DI ELETTRONICA DIGITALE Appello d esame del 18/1/2016 Ogni risposta corretta +2 punti, ogni risposta sbagliata -0,5 punti, ogni risposta in bianco 0 punti Minimo 6 punti

Dettagli

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE. VHDL - Esempi. Martedì 13 Gennaio 2009

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE. VHDL - Esempi. Martedì 13 Gennaio 2009 VHDL - Esempi Martedì 13 Gennaio 2009 Processi Un process è un'istruzione concorrente che contiene un'area sequenziale. Un processo viene eseguito parallelamente alle altre istruzioni concorrenti. L'esecuzione

Dettagli

Le reti sequenziali sincrone memorizzano il proprio stato in dei FF-D

Le reti sequenziali sincrone memorizzano il proprio stato in dei FF-D Reti Sincrone Le reti sequenziali sincrone memorizzano il proprio stato in dei FF-D Le variabili di stato future sono quelle all ingresso dei FF-D mentre le variabili di stato presente sono le uscite dei

Dettagli

Sommario. Modellizzazione Sintassi Classi di Oggetti Tipi di Dati e Operatori Package e Librerie Processi Esempi di codice VHDL VHDL Testbenches

Sommario. Modellizzazione Sintassi Classi di Oggetti Tipi di Dati e Operatori Package e Librerie Processi Esempi di codice VHDL VHDL Testbenches Fondamenti di VHDL Sommario VHDL: premessa e introduzione Modellizzazione Sintassi Classi di Oggetti Tipi di Dati e Operatori Package e Librerie Processi Esempi di codice VHDL VHDL Testbenches Premessa

Dettagli

Elettronica per le telecomunicazioni 21/05/2004

Elettronica per le telecomunicazioni 21/05/2004 Contenuto dell unità D Elettronica per telecomunicazioni Interconnessioni interfacciamento statico e dinamico Integrità di segnale analisi di interconnessioni, driver e receiver Diafonia accoppiamenti

Dettagli

2 Introduzione È più semplice comprendere i sistemi hardware digitali considerando le modalità con cui vengono descritti, che possono essere distinte

2 Introduzione È più semplice comprendere i sistemi hardware digitali considerando le modalità con cui vengono descritti, che possono essere distinte 1 Introduzione L evoluzione dei sistemi hardware digitali negli ultimi cinquant anni è stata caratterizzata da miglioramenti in termini di funzionalità, costi e prestazioni mai visti in altri settori tecnologici.

Dettagli

AXO Architettura dei Calcolatori e Sistemi Operativi. reti sequenziali

AXO Architettura dei Calcolatori e Sistemi Operativi. reti sequenziali AXO Architettura dei Calcolatori e Sistemi Operativi reti sequenziali Sommario Circuiti sequenziali e elementi di memoria Bistabile SR asincrono Temporizzazione e clock Bistabili D e SR sincroni Flip-flop

Dettagli

Settimana n.2. Obiettivi Esecuzione di un programma. Tutorial su CodeBlocks e ambiente di sviluppo.

Settimana n.2. Obiettivi Esecuzione di un programma. Tutorial su CodeBlocks e ambiente di sviluppo. Settimana n.2 Obiettivi Esecuzione di un programma. Tutorial su CodeBlocks e ambiente di sviluppo. Contenuti Linguaggi di programmazione Dati e istruzioni Architettura di un elaboratore Uso del compilatore

Dettagli

library ieee; use ieee.std_logic_1164.all; library IEEE; use IEEE.std_logic_1164.all; use IEEE.numeric_std.all; library STD; use STD.textio.

library ieee; use ieee.std_logic_1164.all; library IEEE; use IEEE.std_logic_1164.all; use IEEE.numeric_std.all; library STD; use STD.textio. VHDL Linguaggio di descrizione dell'hardware VHSIC Hardware Description Language VHSIC: Very High Speed Integrated Circuits VHDL Processi Attivati da qualche segnale Assegnazioni concorrenti A

Dettagli

Lezione E15. Sistemi embedded e real-time

Lezione E15. Sistemi embedded e real-time Lezione E15 Logiche Sistemi embedded e real-time 24 gennaio 2013 Dipartimento di Ingegneria Civile e Ingegneria Informatica Università degli Studi di Roma Tor Vergata SERT 13 E15.1 Di cosa parliamo in

Dettagli

Un contatore è un registro che evolve secondo una sequenza predefinita di stati ordinati all applicazione di un impulso di ingresso

Un contatore è un registro che evolve secondo una sequenza predefinita di stati ordinati all applicazione di un impulso di ingresso ontatori binari Un contatore è un registro che evolve secondo una sequenza predefinita di stati ordinati all applicazione di un impulso di ingresso L impulso di ingresso o impulso di conteggio può coincidere

Dettagli

Introduzione al VHDL Lezione 1

Introduzione al VHDL Lezione 1 Introduzione al VHDL Lezione 1 Cristina Silvano Università degli Studi di Milano Dipartimento di Scienze dell Informazione Via Comelico 39/41, I-20135 Milano (Italy) Tel.: +39-2-5835-6306 e-mail: silvano@elet.polimi.it

Dettagli

Circuiti sincroni Circuiti sequenziali: i bistabili

Circuiti sincroni Circuiti sequenziali: i bistabili Architettura degli Elaboratori e delle Reti Lezione 8 Circuiti sincroni Circuiti sequenziali: i bistabili Proff. A. Borghese, F. Pedersini ipartimento di Scienze dell Informazione Università degli Studi

Dettagli

Reti combinatorie. Reti combinatorie (segue)

Reti combinatorie. Reti combinatorie (segue) Reti combinatorie Sommatore Sottrattore Reti sequenziali Generatore di sequenze Riconoscitore di sequenze Reti combinatorie PROGRAMMAZIONE Il programmatore riporta le istruzioni che il calcolatore dovrà

Dettagli

Giancarlo Rini (rini) FPGA. 29 September 2011

Giancarlo Rini (rini) FPGA. 29 September 2011 Giancarlo Rini (rini) FPGA 29 September 2011 Con questa articolo si vuole dare una breve descrizione dell'architettura interna di una FPGA. Cercare di capire quali sono i pregi e i difetti di questo strumento

Dettagli

Architetture e Reti logiche. Esercitazioni VHDL. a.a. 2003/04 VHDL. Stefano Ferrari

Architetture e Reti logiche. Esercitazioni VHDL. a.a. 2003/04 VHDL. Stefano Ferrari Architetture e Reti logiche Esercitazioni VHDL a.a. 2003/04 VHDL Stefano Ferrari Università degli Studi di Milano Dipartimento di Tecnologie dell Informazione Stefano Ferrari Università degli Studi di

Dettagli

Sistemi a microprocessore

Sistemi a microprocessore Sistemi a microprocessore Programma: Segnali analogici e digitali Uso di segnali digitali per la rappresentazione dei numeri interi La memoria e la CPU I programmi in linguaggio macchina La connessione

Dettagli

Calcolatori Elettronici

Calcolatori Elettronici Calcolatori Elettronici RETI LOGICHE: RETI SEQUENZIALI Massimiliano Giacomin 1 LIMITI DELLE RETI COMBINATORIE Nelle reti combinatorie le uscite dipendono solo dall ingresso Þ impossibile far dipendere

Dettagli

Computer Aided Design. Matteo Montani

Computer Aided Design. Matteo Montani Computer Aided Design Matteo Montani Sommario Gestione di progetti logici complessi Metodologie di progetto (sintesi - verifica) Strategie di implementazione di circuiti digitali - Full custom (layout)

Dettagli

Prima esercitazione. a.a

Prima esercitazione. a.a Prima esercitazione Progetto e simulazione di una semplice rete combinatoria Obiettivi Eseguire tutti i passi del flusso di progettazione Analizzare la struttura di un file.vhd Analizzare i costrutti principali

Dettagli

Progettazione di circuiti integrati

Progettazione di circuiti integrati Architetture e Reti logiche Esercitazioni VHDL a.a. 2003/04 Progettazione di circuiti integrati Stefano Ferrari Università degli Studi di Milano Dipartimento di Tecnologie dell Informazione Stefano Ferrari

Dettagli

I CONTATORI. Definizioni

I CONTATORI. Definizioni I CONTATORI Definizioni. I contatori sono dispositivi costituiti da uno o più flip-flop collegati fra loro in modo da effettuare il conteggio di impulsi applicati in ingresso. In pratica, i flip-flop,

Dettagli

Lezione 15 Il Set di Istruzioni (1)

Lezione 15 Il Set di Istruzioni (1) Lezione 15 Il Set di Istruzioni (1) Vittorio Scarano Architettura Corso di Laurea in Informatica Università degli Studi di Salerno Un quadro della situazione Input/Output Sistema di Interconnessione Registri

Dettagli

Regole per la scrittura di VHDL Sintetizzabile. Fabio Campi. Corso di Elettronica dei Sistemi Digitali LS AA

Regole per la scrittura di VHDL Sintetizzabile. Fabio Campi. Corso di Elettronica dei Sistemi Digitali LS AA Regole per la scrittura di VHDL Sintetizzabile Fabio Campi Corso di Elettronica dei Sistemi Digitali LS AA 2003-2004 2004 VHDL Sintetizzabile Obiettivo: Mappare su celle Hardware di libreria, riferite

Dettagli

Macchine sequenziali

Macchine sequenziali Macchine sequenziali Dal circuito combinatorio al sequenziale (effetto di una retroazione) x z x j Y i, Rete Comb. Y i-, z h Y i,k M Y i-,k abilitazione a memorizzare M memorizza lo stato La nozione di

Dettagli

Reti Logiche T. Esercizi reti sequenziali sincrone

Reti Logiche T. Esercizi reti sequenziali sincrone Reti Logiche T Esercizi reti sequenziali sincrone ESERCIZIO N. Si esegua la sintesi di una rete sequenziale sincrona caratterizzata da un unico segnale di ingresso (X) e da un unico segnale di uscita (Z),

Dettagli

Circuiti sequenziali

Circuiti sequenziali Circuiti sequenziali - I circuiti sequenziali sono caratterizzati dal fatto che, in un dato istante tn+1 le uscite dipendono dai livelli logici di ingresso nell'istante tn+1 ma anche dagli stati assunti

Dettagli

Prima prova intercorso. Lezione 10 Logica Digitale (4) Dove siamo nel corso. Un quadro della situazione

Prima prova intercorso. Lezione 10 Logica Digitale (4) Dove siamo nel corso. Un quadro della situazione Prima prova intercorso Lezione Logica Digitale (4) Vittorio carano Architettura Corso di Laurea in Informatica Università degli tudi di alerno Architettura (2324). Vi.ttorio carano Mercoledì 9 Novembre,

Dettagli

Quarta esercitazione

Quarta esercitazione 1 Quarta esercitazione Soluzione di una prova d esame Obiettivo Fornire una metodologia di progetto scomposizione in blocchi e definzione dei segnali interni diagramma degli stati della FSM scrittura del

Dettagli

Campionamento e memoria. Sommario. Sommario. M. Favalli

Campionamento e memoria. Sommario. Sommario. M. Favalli Sommario Campionamento e memoria M. Favalli Engineering epartment in Ferrara 2 Latch di tipo 3 Sommario (ENIF) Analisiesintesideicircuitidigitali / 29 (ENIF) Analisiesintesideicircuitidigitali 2 / 29 2

Dettagli

AXO - Architettura dei Calcolatori e Sistema Operativo. organizzazione strutturata dei calcolatori

AXO - Architettura dei Calcolatori e Sistema Operativo. organizzazione strutturata dei calcolatori AXO - Architettura dei Calcolatori e Sistema Operativo organizzazione strutturata dei calcolatori I livelli I calcolatori sono progettati come una serie di livelli ognuno dei quali si basa sui livelli

Dettagli

Cenni alle reti logiche. Luigi Palopoli

Cenni alle reti logiche. Luigi Palopoli Cenni alle reti logiche Luigi Palopoli Reti con reazione e memoria Le funzioni logiche e le relative reti di implementazione visto fino ad ora sono note come reti combinatorie Le reti combinatorie non

Dettagli

PSPICE Circuiti sequenziali principali

PSPICE Circuiti sequenziali principali PSPICE Circuiti sequenziali principali Davide Piccolo Riccardo de Asmundis Elaboratori 1 Circuiti Sequenziali Tutti i circuiti visti fino ad ora erano circuiti combinatori, ossia circuiti in cui lo stato

Dettagli

Reti sequenziali (segue)

Reti sequenziali (segue) Nel modello ideale le funzioni σ ed ϖ hanno un tempo di stabilizzazione nullo Nel modello reale occorre un ritardo non nullo per la stabilizzazione delle uscite, a partire da quando gli ingressi sono stabili

Dettagli

REALIZZAZIONE DI SISTEMI DI ELABORAZIONE NUMERICA DEI SEGNALI. E. Del Re - Fondamenti di Elaborazione Numerica dei Segnali 1

REALIZZAZIONE DI SISTEMI DI ELABORAZIONE NUMERICA DEI SEGNALI. E. Del Re - Fondamenti di Elaborazione Numerica dei Segnali 1 REALIZZAZIONE DI SISTEMI DI ELABORAZIONE NUMERICA DEI SEGNALI E. Del Re - Fondamenti di Elaborazione Numerica dei Segnali 1 CARATTERISTICHE DEGLI ALGORITMI E DEI SISTEMI DI ELABORAZIONE NUMERICA DEI SEGNALI

Dettagli

I Bistabili. Maurizio Palesi. Maurizio Palesi 1

I Bistabili. Maurizio Palesi. Maurizio Palesi 1 I Bistabili Maurizio Palesi Maurizio Palesi 1 Sistemi digitali Si possono distinguere due classi di sistemi digitali Sistemi combinatori Il valore delle uscite al generico istante t* dipende solo dal valore

Dettagli

Architettura del Calcolatore

Architettura del Calcolatore Giuseppe Manco Lezione 3 17 Ottobre 2003 Architettura del calcolatore Il calcolatore è uno strumento programmabile per la rappresentazione, la memorizzazione e l elaborazione delle informazioni un calcolatore

Dettagli

Corso di Architettura (Prof. Scarano) 09/04/2002

Corso di Architettura (Prof. Scarano) 09/04/2002 Corso di Architettura (Prof. Scarano) 09/0/2002 Un quadro della situazione Lezione 15 Il Set di Istruzioni (1) Vittorio Scarano Architettura Corso di Laurea in Informatica Università degli Studi di Salerno

Dettagli

7. I linguaggi descrittivi HDL.

7. I linguaggi descrittivi HDL. Marcello Salmeri - Progettazione Automatica di Circuiti e Sistemi Elettronici Capitolo 7-1 7. I linguaggi descrittivi HDL. Introduzione. I linguaggi descrittivi HDL (Hardware Description Language) nascono

Dettagli

Esercizi VHDL nelle prove d esame di Architettura degli elaboratori (a.a. 2002/03)

Esercizi VHDL nelle prove d esame di Architettura degli elaboratori (a.a. 2002/03) Esercizi VHDL nelle prove d esame di Architettura degli elaboratori (a.a. 2002/03) 18 settembre 2003 Prova del 9 giugno 2003 Descrizione VHDL (a scelta, dataflow o comportamentale) di un decoder per il

Dettagli

Memorie Corso di Calcolatori Elettronici A 2007/2008 Sito Web:http://prometeo.ing.unibs.it/quarella Prof. G. Quarella

Memorie Corso di Calcolatori Elettronici A 2007/2008 Sito Web:http://prometeo.ing.unibs.it/quarella Prof. G. Quarella Memorie Corso di Calcolatori Elettronici A 2007/2008 Sito Web:http://prometeo.ing.unibs.it/quarella Prof. G. Quarella prof@quarella.net Tipi di memorie Possono essere classificate in base a varie caratteristiche:

Dettagli

I flip-flop ed il register file. Sommario

I flip-flop ed il register file. Sommario I flip-flop ed il register file Prof. Alberto Borghese ipartimento di Scienze dell Informazione borghese@dsi.unimi.it Università degli Studi di Milano Riferimento sul Patterson: Sezioni C.9 e C.11 1/35

Dettagli

Progetto di Contatori sincroni. Mariagiovanna Sami Corso di reti Logiche 8 Anno

Progetto di Contatori sincroni. Mariagiovanna Sami Corso di reti Logiche 8 Anno Progetto di Contatori sincroni Mariagiovanna Sami Corso di reti Logiche 8 Anno 08 Introduzione Per le reti sequenziali esistono metodologie di progettazione generali, che partendo da una specifica a parole

Dettagli

Un quadro della situazione. Lezione 9 Logica Digitale (3) Dove siamo nel corso. Organizzazione della lezione. Dove siamo. Dove stiamo andando..

Un quadro della situazione. Lezione 9 Logica Digitale (3) Dove siamo nel corso. Organizzazione della lezione. Dove siamo. Dove stiamo andando.. Un quadro della situazione Lezione 9 Logica Digitale (3) Vittorio carano Architettura Corso di Laurea in Informatica Università degli tudi di alerno Architettura (2324). Vi.ttorio carano Input/Output Memoria

Dettagli

La memoria - tecnologie

La memoria - tecnologie Architettura degli Elaboratori e delle Reti Lezione 26 La memoria - tecnologie Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano L 26 1/24 Indirizzi

Dettagli

Luigi Piroddi

Luigi Piroddi Automazione industriale dispense del corso 16. Linguaggio a contatti (Ladder Diagram) piroddi@elet.polimi.it Introduzione Il linguaggio a contatti (o diagramma a scala, dall inglese ladder diagram, LD)

Dettagli

Un linguaggio per la descrizione dello hardware: il VHDL

Un linguaggio per la descrizione dello hardware: il VHDL Un linguaggio per la descrizione dello hardware: il VHDL Gli Hardware Description Languages Gli HDL consentono lo sviluppo di un modello del comportamento dei sistema digitali. Gli HDL permettono l eseguibilità

Dettagli

La memoria - tecnologie

La memoria - tecnologie Architettura degli Elaboratori e delle Reti Lezione 26 La memoria - tecnologie Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano L 25 1/21 Sommario!

Dettagli

Un linguaggio per la descrizione dello hardware: il VHDL

Un linguaggio per la descrizione dello hardware: il VHDL Un linguaggio per la descrizione dello hardware: il VHDL Gli Hardware Description Languages Gli HDL consentono lo sviluppo di un modello del comportamento dei sistema digitali. Gli HDL permettono l eseguibilità

Dettagli

Introduzione al VHDL. Alcuni concetti introduttivi

Introduzione al VHDL. Alcuni concetti introduttivi Introduzione al VHDL Alcuni concetti introduttivi Riferimenti The VHDL Cookbook, Peter J. Ashenden, Reperibile nel sito: http://vlsilab.polito.it/documents.html The VHDL Made Easy, David Pellerin, Douglas

Dettagli

Marco Tarini - Università dell'insubria A.A. 2016/17. Università degli Studi dell Insubria Dipartimento di Scienze Teoriche e Applicate

Marco Tarini - Università dell'insubria A.A. 2016/17. Università degli Studi dell Insubria Dipartimento di Scienze Teoriche e Applicate Università degli Studi dell Insubria Dipartimento di Scienze Teoriche e Applicate Astrazione e Macchine Virtuali parte 2: in un tipico calcolatore I livelli nei moderni calcolatori 6. Livello delle applicazioni

Dettagli

Elementi di memoria Ciascuno di questi circuiti è caratterizzato dalle seguenti proprietà:

Elementi di memoria Ciascuno di questi circuiti è caratterizzato dalle seguenti proprietà: I circuiti elettronici capaci di memorizzare un singolo bit sono essenzialmente di due tipi: LATCH FLIP-FLOP. Elementi di memoria Ciascuno di questi circuiti è caratterizzato dalle seguenti proprietà:

Dettagli

ELETTRONICA GENERALE, FONDAMENTI DI ELETTRONICA DIGITALE Appello d esame del 5/9/2016

ELETTRONICA GENERALE, FONDAMENTI DI ELETTRONICA DIGITALE Appello d esame del 5/9/2016 ELETTRONICA GENERALE, FONDAMENTI DI ELETTRONICA DIGITALE Appello d esame del 5/9/2016 Ogni risposta corretta +2 punti, ogni risposta sbagliata -0,5 punti, ogni risposta in bianco 0 punti Minimo 6 punti

Dettagli

Calcolatori Elettronici A a.a. 2008/2009

Calcolatori Elettronici A a.a. 2008/2009 Calcolatori Elettronici A a.a. 2008/2009 RETI LOGICHE: RETI SEUENZIALI Massimiliano Giacomin 1 LIMITI DELLE RETI COMBINATORIE e RETI SEUENZIALI Le reti combinatorie sono senza retroazione: il segnale di

Dettagli

Laboratorio di Architettura degli Elaboratori A.A. 2016/17 Circuiti Logici

Laboratorio di Architettura degli Elaboratori A.A. 2016/17 Circuiti Logici Laboratorio di Architettura degli Elaboratori A.A. 2016/17 Circuiti Logici Per ogni lezione, sintetizzare i circuiti combinatori o sequenziali che soddisfino le specifiche date e quindi implementarli e

Dettagli

METODOLOGIE PROGETTUALI CMOS

METODOLOGIE PROGETTUALI CMOS METODOLOGIE PROGETTUALI CMOS Un sistema elettronico/circuito integrato può essere descritto in tre diversi domini, comportamentale (behavior), strutturale e fisico. All interno di ciascun dominio la descrizione

Dettagli

Architettura degli Elaboratori,

Architettura degli Elaboratori, Architettura degli Elaboratori, 2013-14 Prima prova di verifica intermedia 20 dicembre 2013 Riportare nome, cognome e numero di matricola Un unità di elaborazione U interagisce a domanda-risposta con U1:

Dettagli

Lezione 1. Sistemi operativi. Marco Cesati System Programming Research Group Università degli Studi di Roma Tor Vergata.

Lezione 1. Sistemi operativi. Marco Cesati System Programming Research Group Università degli Studi di Roma Tor Vergata. Lezione 1 Sistemi operativi 4 marzo 2014 System Programming Research Group Università degli Studi di Roma Tor Vergata SO 14 1.1 Di cosa parliamo in questa lezione? È una introduzione generale ai sistemi

Dettagli

Multiplexer. Multiplexer 2 a 1 (a 1 bit) e sua implementazione. Multiplexer 2 a 1 (a 32 bit) e sua implementazione

Multiplexer. Multiplexer 2 a 1 (a 1 bit) e sua implementazione. Multiplexer 2 a 1 (a 32 bit) e sua implementazione Decoder Circuito combinatorio con n input e 2 n output Traduce gli n bit di input nell equivalente valore binario, e abilita a 1 l uscita corrispondente, mentre le altre uscite sono disabilitate a 0 Esiste

Dettagli

La memoria - tecnologie

La memoria - tecnologie Architettura degli Elaboratori e delle Reti Lezione 26 La memoria - tecnologie Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano L 26 1/24 Indirizzi

Dettagli

Reti sequenziali notevoli: registri, registri a scorrimento, contatori ing. Alessandro Cilardo

Reti sequenziali notevoli: registri, registri a scorrimento, contatori ing. Alessandro Cilardo Corso di Calcolatori Elettronici I A.A. 2012-2013 Reti sequenziali notevoli: registri, registri a scorrimento, contatori ing. Alessandro Cilardo Accademia Aeronautica di Pozzuoli Corso Pegaso V GArn Elettronici

Dettagli

Flip-flop e loro applicazioni

Flip-flop e loro applicazioni Flip-flop e loro applicazioni Reti sequenziali elementari (6) L'elemento bistabile Latch o flip-flop trasparenti Temporizzazione dei flip-flop trasparenti Architettura master-slave Flip-flop non trasparenti

Dettagli

I bistabili ed il register file

I bistabili ed il register file I bistabili ed il register file Prof. Alberto Borghese ipartimento di Scienze dell Informazione borghese@dsi.unimi.it Università degli Studi di Milano 1/32 Sommario I problemi dei latch trasparenti sincroni

Dettagli

ELETTRONICA GENERALE, FONDAMENTI DI ELETTRONICA DIGITALE Appello d esame del 17/6/2015

ELETTRONICA GENERALE, FONDAMENTI DI ELETTRONICA DIGITALE Appello d esame del 17/6/2015 Appello d esame del 17/6/2015 Ogni risposta corretta +2 punti, ogni risposta sbagliata -0,5 punti, ogni risposta in bianco 0 punti Minimo 6 punti sulle domande, minimo 2 punti sui problemi (20 minuti)

Dettagli

LOGICA SEQUENZIALE. Un blocco di logica puramente combinatoria è un. blocco con N variabili di ingresso e M variabili di uscita

LOGICA SEQUENZIALE. Un blocco di logica puramente combinatoria è un. blocco con N variabili di ingresso e M variabili di uscita LOGICA SEQUENZIALE Logica combinatoria Un blocco di logica puramente combinatoria è un blocco con N variabili di ingresso e M variabili di uscita che sono funzione (booleana) degli ingressi in un certo

Dettagli

Il Livello Logico-Digitale. I circuiti sequenziali

Il Livello Logico-Digitale. I circuiti sequenziali Il Livello Logico-Digitale I circuiti sequenziali 22 --25 ommario Circuiti sequenziali e elementi di memoria Bistabile asincrono Temporizzazione e clock Bistabili D e sincroni Flip-flop - 2 - Circuiti

Dettagli

Calcolatori Elettronici M Modulo Introduzione all ambiente Xilinx ISE 12.3 e ISIM

Calcolatori Elettronici M Modulo Introduzione all ambiente Xilinx ISE 12.3 e ISIM Calcolatori Elettronici M Modulo 2 06 Introduzione all ambiente Xilinx ISE 12.3 e ISIM 1 Questi lucidi forniscono una sintetica introduzione all ambiente di sviluppo Xilinx ISE 12.3 utilizzando come riferimento

Dettagli

Flusso di Progetto Mixed Signal in ambiente CADENCE. Approccio Analog Centric. Corso di Progettazione Mixed Signal 19/12/2013 Prof.

Flusso di Progetto Mixed Signal in ambiente CADENCE. Approccio Analog Centric. Corso di Progettazione Mixed Signal 19/12/2013 Prof. Flusso di Progetto Mixed Signal in ambiente CADENCE Approccio Analog Centric Ambiente per Progetto Analogico Full-Custom Ambiente CAD: CADENCE Virtuoso Schematic Virtuoso Schematic Editor Simulation ADE:

Dettagli

Livello logico digitale

Livello logico digitale Livello logico digitale circuiti combinatori di base e circuiti sequenziali Half Adder - Semisommatore Ingresso 2 bit, uscita 2 bit A+ B= ------ C S C=AB S=AB + AB=A B A B In Out HA A B C S S HA A C S

Dettagli

Elettronica digitale: cenni

Elettronica digitale: cenni Elettronica digitale: cenni VERSIONE 30.5.01 Non solo analogico La gestione di informazione prevede tipicamente fasi di elaborazione, in cui occorre calcolare funzioni ( qual è la somma di questi due valori?

Dettagli

Architettura del calcolatore (Seconda parte)

Architettura del calcolatore (Seconda parte) Architettura del calcolatore (Seconda parte) Ingegneria Meccanica e dei Materiali Università degli Studi di Brescia Prof. Massimiliano Giacomin LINGUAGGIO E ORGANIZZAZIONE DEL CALCOLATORE Linguaggio assembly

Dettagli

Circuiti sequenziali e latch

Circuiti sequenziali e latch Circuiti sequenziali e latch Prof. Alberto Borghese ipartimento di Scienze dell Informazione borghese@di.unimi.it Università degli Studi di Milano Riferimento Patterson: sezioni C.7 & C.8. 1/32 Sommario

Dettagli

Rappresentazione con i diagrammi di flusso (Flow - chart)

Rappresentazione con i diagrammi di flusso (Flow - chart) Rappresentazione con i diagrammi di flusso (Flow - chart) Questo tipo di rappresentazione grafica degli algoritmi, sviluppato negli anni 50, utilizza una serie di simboli grafici dal contenuto evocativo

Dettagli

Elettronica Sistemi Digitali 09. Flip-Flop

Elettronica Sistemi Digitali 09. Flip-Flop Elettronica Sistemi igitali 09. Flip-Flop Roberto Roncella Flip-flop e loro applicazioni Reti sequenziali elementari (6) L'elemento bistabile Latch o flip-flop trasparenti Temporizzazione dei flip-flop

Dettagli

Addizionatori: metodo Carry-Lookahead. Costruzione di circuiti combinatori. Standard IEEE754

Addizionatori: metodo Carry-Lookahead. Costruzione di circuiti combinatori. Standard IEEE754 Addizionatori: metodo Carry-Lookahead Costruzione di circuiti combinatori Standard IEEE754 Addizionatori Il circuito combinatorio che implementa l addizionatore a n bit si basa su 1-bit adder collegati

Dettagli

SCHEDA N D05_02A Data: 28/01/2005. ESERCIZIO N 2 7 punti. ESERCIZIO N 3 6 punti. ESERCIZIO N 4 7 punti. ESERCIZIO N 1 8 punti.

SCHEDA N D05_02A Data: 28/01/2005. ESERCIZIO N 2 7 punti. ESERCIZIO N 3 6 punti. ESERCIZIO N 4 7 punti. ESERCIZIO N 1 8 punti. SCHEDA N D05_02A Data: 2/01/2005 Nome Valutazione: ESERCIZIO N 2 7 punti Determinare la caratteristica di trasferimento a vuoto della seguente porta. Si assuma V CC 5 V. Determinare la corrente di uscita

Dettagli