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

2 Sommario Circuiti digitali integrati. Linguaggio VHDL: compilazione e verifica del progetto; come progettare un circuito logico in VHDL. Temporizzazioni dei segnali e macchine sincrone. Upset ed errori logici. Campionamento asincrono. 2

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

4 Circuiti digitali integrati 4

5 Circuito digitale integrato ASIC: application specific integrated circuit (Analog Device, Texas...). Matrice di celle logiche con interconnessioni fissate dal produttore al momento della fabbricazione del chip, in base all'applicazione richiesta. FPGA: field programmable gate array (Altera, Xilinx, Actel, Quicklogic...) Il chip è una matrice di celle logiche con interconnessioni configurabili dall utente in base al campo ("field") di applicazione. La configurazione avviene o con speciali dispositivi ("programmatori") o direttamente nel circuito stampato ("scheda"). Dopo la configurazione una parte della FPGA risulta inutilizzata. Celle logiche elementari: (a) combinatorie: - solo logica combinatoria: combinazione di porte AND, OR, NOT; (b) sequenziali: - un flip-flop (memoria a 1 bit); - logica combinatoria. 5

6 Esempio: cella elementare Altera Unica cella logica elementare, integra parte combinatoria e flip-flop. Progettata per massima versatilità. 6

7 Linguaggio VHDL compilazione e verifica del progetto 7

8 Linguaggio VHDL VHDL: Very-high-speed-integrated-circuits Hardware Description Language. Uno dei linguaggi per la descrizione ad alto livello dei circuiti digitali (o circuiti logici), diffuso a livello mondiale (standard IEEE). Permette di descrivere strutture logiche da realizzare in un circuito integrato (FPGA o ASIC). Vantaggio del linguaggio descrittivo ad alto livello sulla progettazione a basso livello (fatta mediante altri linguaggi o disegno schematico): non si devono specificare nel codice tutte le necessarie interconnessioni fra celle logiche della FPGA (cioè la struttura a basso livello). Codice ad alto livello è di più facile interpretazione, per successive modifiche e correzioni. Risparmio di tempo, minore possibilità di introdurre errori. Programmare ad alto livello diventa indispensabile per circuiti di media-alta complessità (> 100 celle elementari). NOTA: in VHDL è anche possibile programmare a basso livello (porte OR, AND, NOT e flipflop) in modo del tutto analogo al disegno schematico. Il compilatore (programma installato su PC) descrive tutte le interconnessioni a basso livello in base al progetto ad alto livello preparato dall utente. Analogia con C, FORTRAN rispetto a linguaggio macchina per un processore. 8

9 Compilazione del progetto per una FPGA Il compilatore agisce in due fasi. Spesso due software distinti: unico software (Quartus) nel caso di Altera. 1) Per FPGA o ASIC: sintesi. Il progetto in codice VHDL (alto livello) è tradotto in una rete (netlist, basso livello) di porte logiche AND, OR, NOT e flip-flop. 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 è una struttura logica ancora astratta, nel senso che il codice che la descrive non fa riferimento ad alcun dispositivo specifico (FPGA o ASIC). 2) Solo per FPGA: fit ("adattamento") o, equivalentemente, place and route ( posizionamento e interconnessione ). La netlist è tradotta in un codice di configurazione per un determinato dispositivo FPGA, e salvato in uno o più file. Il software di place and route (fitter) e i file di configurazione cambiano a seconda del modello di FPGA e dalla modalità di configurazione (dispositivo programmatore, memoria flash sul circuito stampato ecc.). 9

10 Sintesi e ottimizzazioni Con la sintesi la struttura logica viene automaticamente ottimizzata. Sono eliminate le parti logiche ridondanti in modo da ridurre il numero di celle logiche necessarie. Questo permette di scrivere il codice in maniera non necessariamente sintetica, quindi più naturale e meglio leggibile. Il numero di celle a disposizione in una FPGA è limitato. Viene limitato il numero di ingressi pilotati da una singola uscita (fan-out), tramite la ridondanza (duplicazione) della parte logica in questione. La capacità di carico e quindi la costante di tempo sulla linea di uscita aumenta linearmente col numero di porte pilotate, mentre la frequenza operativa del circuito viene fissata dall utente. 10

11 Verifica del progetto Ci sono due modi per verificare la corretta funzionalità del circuito digitale (FPGA o ASIC) progettato: simulazione e misure in laboratorio. In entrambi i casi si forniscono al circuito i necessari segnali di ingresso, variabili in genere nel tempo, e si osserva il comportamento dei segnali in uscita. Simulazione. La simulazione avviene mediante un apposito software; le forme d onda sulle uscite sono visualizzate in una finestra grafica. E possibile assegnare le forme d onda di ingresso anche tramite interfaccia grafica. Il VHDL contiene anche la sintassi necessaria per generare forme d onda digitali da assegnare agli ingressi del circuito digitale. Conviene passare alle prove in laboratorio solo quando la simulazione ha dato esito positivo. 11

12 Linguaggio VHDL come progettare un circuito logico in VHDL 12

13 Macrofunzioni (macro) I blocchi logici di base, di uso più diffuso, e già ottimizzati in vista dell utilizzo in una data FPGA, sono in genere disponibili attraverso un generatore software di macrofunzioni, integrato nel software di compilazione (in Quartus: MegaWizard Plug-in Manager). Contatori a N bit, registri a N bit (SIPO, SISO, PIPO, PISO), multiplexer a N bit, decodificatori... Configurabili dall utente: numero di bit, presenza di ingressi asincroni preset e/o clear, presenza di enable ecc. La macrofunzione (macro) così generata può essere inclusa nel progetto come gli altri file VHDL. Si tratta in genere di un file.vhd scritto a basso livello e con una struttura logica già ottimizzata. Difficilmente comprensibile dall utente in tempi brevi. Prima di scrivere il codice per realizzare una data funzione logica, verificare sempre se è possibile creare una macro. Risparmio di tempo notevole (servono pochi secondi per generare una macro). Un blocco di codice VHDL scritto a mano, che realizza la stessa funzione della macro, non potrà in genere essere meglio ottimizzato della macro, a meno di programmare direttamente a basso livello (ottimizzato) ed essere più bravi dei programmatori ingaggiati dalla casa costruttrice della FPGA 13

14 Progettare in VHDL Un generico circuito logico è una struttura sequenziale o macchina logica, composta cioè di un insieme di flip-flop e di parti puramente combinatorie. I flip-flop memorizzano lo stato logico della macchina. Le parti combinatorie (combinazioni di porte AND, OR, NOT) definiscono con la loro struttura la sequenza degli stati del circuito. Un circuito logico è in genere composto di un certo numero di blocchi logici. Conviene comporlo in modo da poter realizzare quanti più blocchi logici possibile come macro. Cosa è necessario scrivere per realizzare un progetto in VHDL. Le interconnessioni fra i vari blocchi logici interni e verso l esterno. I blocchi logici originali, cioè che non possono essere realizzati da una macro: ad esempio le macchine a stati (descritte in seguito). Quando si scrive un blocco logico originale: conviene se possibile riferirsi a un modello (template) riportato sui manuali. in generale, conviene usare uno stile di codifica in linea con quanto riportato sui manuali, per evitare che in fase di compilazione alcune parti del progetto subiscano ottimizzazioni che in pratica ne modificano le funzionalità desiderate perché sono male interpretate dal compilatore. Questo aspetto è diverso dal banale errore di sintassi, che viene segnalato dal compilatore. Questo problema sorge dal fatto che il compilatore deve in qualche misura interpretare il codice VHDL per adattarlo alla particolare FPGA. 14

15 (Es. 1) Semplice progetto VHDL -- COMMENTO: esempio di progetto elementare (solo combinatorio per semplicità) library IEEE; use IEEE.std_logic_1164.all; -- libreria di base (da indicare sempre) entity main is -- entità = interfaccia esterna; main è il nome, definito dall utente port ( -- elenco dei segnali esterni di main in1_pin, in2_pin, in3_pin: in std_logic; -- std_logic (tipo del segnale): due valori, '1' o '0' out_pin: out std_logic ); -- un singolo enunciato puo essere scritto su più righe end main; architecture arch1 of main is -- architettura = struttura interna; arch1 è il nome -- segnali interni signal in1_and_in2 : std_logic; begin in1_and_in2 <= in1_pin AND in2_pin; out_pin <= in1_and_in2 OR NOT in3_pin; end arch1; -- questo è un progetto a basso livello (descrizione in termini di porte logiche AND, OR, NOT ecc.) 15

16 (Es. 2) Architettura a blocchi gerarchici -- altra architettura più generale per l entità main, con un componente interno, la cui architettura è definita altrove (~ subroutine) architecture arch2 of main is -- componenti interni di main component logic_function -- componente = blocco logico, la cui architettura non è specificata nell architettura di main (il nome e l interfaccia del componente devono corrispondere a un entità decritta altrove) port (input1, input2: in std_logic; output: out std_logic ); end component; -- segnali interni di main signal in1_and_in2 : std_logic; 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 main input1 => in1_and_in2, -- segnale interno di main input2 => in3_pin, -- segnale esterno di main output => out_pin ); end arch2; 16

17 (Es. 2) Descrizione del componente -- tipicamente il componente è descritto in un file separato library IEEE; use IEEE.std_logic_1164.all; entity logic_function is port ( input1, input2: in std_logic; -- la interfaccia deve essere coerente con quanto dichiarato nella entità (main) dove il componente viene chiamato (~ subroutine) output: out std_logic ); end logic_function; architecture arch_simple of logic_function is begin output <= input1 OR NOT input2; end arch_simple; 17

18 Progettazione a blocchi gerarchici Lo stesso componente (blocco logico) può essere inserito in N copie (chiamato N volte) in uno stesso progetto VHDL. Ogni copia è identificata da una diversa etichetta (label): logic_function_inst1: logic_function port map ( ); logic_function_inst2: logic_function port map ( ); Per modificare tutte le copie del componente è sufficiente cambiare una volta sola l architettura del componente (arch_simple). E possibile definire tante diverse architetture per uno stesso componente e poi scegliere quella da utilizzare in compilazione: architecture arch_new of logic_function is -- nuova architettura arch_new begin output <=...; end arch_new; Le macrofunzioni sono chiamate nel progetto come qualsiasi altro componente. 18

19 Come descrivere un architettura in VHDL Un architettura in VHDL può contenere 3 diverse tipologie descrittive: assegnazioni semplici (enunciati di basso livello): architecture arch_simple of logic_function is begin output <= input1 OR NOT input2; end arch_simple; processi (con molteplici assegnazioni semplici condizionate; descrizione ad alto livello): architecture arch_simple_new of logic_function is begin process (input1, input2) -- lista di sensibilità: input1, input2... begin -- struttura interna del processo if (input1 = '1' OR input2 = '0') then output <= '1'; else -- ATTENZIONE: può essere omesso, ma allora cambia la funzionalità!!! output <= '0'; end if; end process; end arch_simple_new; chiamate di componenti (la cui architettura è strutturata allo stesso modo: chiamate, assegnazioni, processi): logic_function_inst1: logic_function port map ( ); 19

20 Concetto di concorrenza NOTA: l'ordine, nel codice VHDL, in cui vengono dichiarati chiamate, assegnazioni e processi non ha effetto sulla struttura del circuito logico. Il codice VHDL è una rappresentazione "unidimensionale" (su righe successive) della struttura logica del progetto. Il disegno schematico è una rappresentazione "bidimensionale". Le righe di codice VHDL non vengono compilate come le righe di un codice C o FORTRAN, non rappresentano quindi una serie di istruzioni di un unico programma (serialità). Le righe di codice VHDL rappresentano, invece, un circuito logico composto di vari blocchi logici interconnessi e simultaneamente interdipendenti. Ogni blocco logico è in generale attivo simultaneamente con tutti gli altri (concorrenza). Consideriamo un processo generico: la variazione, ad esempio, di un segnale nella lista di sensibilità del processo implica in generale la variazione delle uscite del blocco logico e quindi degli ingressi di altri blocchi logici. 20

21 Temporizzazioni dei segnali e macchine sincrone 21

22 Temporizzazioni: setup e hold time Per un blocco puramente combinatorio (cioè blocco logico senza flip-flop) la corretta funzionalità dipende solo dalla correttezza del codice. Per un blocco sequenziale o macchina logica (cioè un blocco logico che contiene anche flip-flop), invece, la effettiva realizzazione della funzionalità desiderata dipende anche dalle temporizzazioni dei segnali. Per ogni flip-flop nella macchina logica, setup time e hold time non devono essere violati, pena la possibilità di funzionamento scorretto della macchina (il flip-flop carica in uscita il valore sbagliato: upset). Tutte le temporizzazioni variano (in maniera più o meno significativa) anche con temperatura, tensione di alimentazione, radiazione assorbita, tecnologia (famiglia di FPGA), singolo dispositivo. Conviene quindi massimizzare i margini temporali per rendere il circuito quanto più possibile immune a tali variazioni. 22

23 Macchina sincrona: introduzione Il fitter (software di place and route) ottimizza disposizione geometrica e interconnessioni del circuito logico per massimizzare i margini temporali. Il fitter tiene conto della famiglia di FPGA, del campo di condizioni ambientali ammesse (temperatura e tensione di alimentazione), della massima frequenza operativa richiesta dall'utente. In fase di compilazione e simulazione il software indica i cammini di segnale che violano setup o hold time. L'ottimizzazione effettuata dal fitter è tanto più efficace quanto più opportuno lo stile di codifica adottato. In particolare, la seguente soluzione è impiegata normalmente, se la particolare applicazione lo permette: progettare nella FPGA una macchina sincrona (o circuito sincrono), cioè un circuito logico caratterizzato dall avere un unico segnale come clock per tutti i suoi flip-flop; il clock è tipicamente generato a partire da un oscillatore periodico ad alta stabilità (in ogni caso, da un circuito integrato esterno alla FPGA). NOTA: la sincronia del circuito riguarda solo ingressi e uscite correlati al clock (per l appunto indicati come sincroni ) e non gli ingressi che agiscono indipendentemente dal clock (ad es.: clear) e che sono indicati appunto come asincroni. 23

24 Macchina sincrona e setup time Per un circuito sincrono, la relazione che garantisce la non violazione del setup time è: T max CTO + T max comb + T max skew + T setup < T clock (ST) Il margine a disposizione del compilatore per non violare il setup time si riduce per frequenze operative (frequenze di clock) maggiori. T CTO (clock-to-out) èil ritardo di propagazione interno al flip-flop. T comb (combinatorio) èil ritardo (attraverso un blocco puramente combinatorio) fra la transizione sull'uscita data_out di un flip-flop e la conseguente transizione sull'ingresso data_in di un altro flip-flop. Dipende da: numero di celle combinatorie elementari della FPGA attraversate (ogni cella dà un ritardo ~ 0.1 ns); lunghezza delle piste metalliche che connettono le celle e i flip-flop (dipende dalla disposizione geometrica). T skew rappresenta lo sfasamento (skewness) fra i fronti di salita dei clock su flip-flop diversi. Dipende dalla lunghezza del cammino del segnale di clock dall'oscillatore ai due flip-flop. 24

25 Macchina sincrona e hold time In genere il costruttore stesso della FPGA garantisce, per qualsiasi circuito sincrono realizzato nella FPGA, che la relazione seguente, che assicura la non violazione di hold time, sia sempre soddisfatta: T min CTO + T min comb -T max skew > T hold (HT) il compilatore si prende carico della opportuna configurazione del circuito nella FPGA. 25

26 Macchina sincrona: struttura La macchina sincrona può essere scomposta in due blocchi logici: un registro di stato (l insieme di tutti i flip-flop della macchina, con il clock comune); un decodificatore (blocco puramente combinatorio). I flip-flop costituiscono in sostanza la memoria della macchina, immagazzinando l informazione relativa allo stato della macchina fra due successivi impulsi di clock. La macchina sincrona è, per questo, anche chiamata macchina a stati. Uno stato può durare N impulsi di clock. Qualsiasi macchina sincrona passa attraverso un certo numero di stati diversi, caratterizzati da una diversa configurazione di valori nei flip-flop. Il numero di stati possibili è necessariamente finito: una macchina sincrona è necessariamente ciclica. Il numero di flip-flop della macchina dà il numero di stati possibili: es. 3 flip-flop fino a 8 stati diversi. 26

27 Macchina sincrona e periodicità Una macchina sincrona generica è non periodica: per ogni stato S, lo stato della macchina al colpo di clock successivo può dipendere non solo da S stesso, ma anche da un certo numero di ingressi di controllo (sincroni). In altri termini: la sequenza di stati e la loro durata (numero di impulsi di clock) non è necessariamente prefissata. Gli ingressi di controllo sono pilotati da un blocco logico esterno (altra macchina sincrona), che può risiedere nella stessa FPGA o in un'altra FPGA ecc. Un caso particolare è la macchina sincrona periodica. Nessun ingresso di controllo. Si può mostrare che è equivalente a un contatore a N bit ( 0 1, 1 2,..., 2N-1 0 ecc.) più un decodificatore. N stati di durata 1 impulso di clock. 27

28 Macchine sincrone e asincrone Riassumendo: un tipico circuito logico, se possibile, è una macchina sincrona. Esempio pratico: una macchina sincrona, avviata da un impulso logico esterno (ad es. impulso di trigger da un rivelatore) esegue una sequenza di operazioni: lettura di un ADC e trasferimento del dato nella RAM (di un microprocessore); incremento del numero di evento e suo trasferimento nella RAM; attesa di un nuovo trigger; generando sequenze sincrone su un certo numero di uscite di controllo verso ADC e processore. Altrimenti: si progetta un circuito logico asincrono, composto cioè di diverse macchine sincrone che però non sono sincrone fra loro (che cioè usano clock diversi per i rispettivi flip-flop). Vedremo nella sezione campionamento asincrono sequenziale come interfacciare fra loro queste macchine. In altri termini: un circuito asincrono è un insieme di flip-flop che non usano tutti lo stesso segnale come clock. 28

29 Macchine sincrone e blocchi logici Conviene scomporre circuiti sincroni complessi in blocchi logici opportuni, con una macchina principale più varie macchine secondarie specializzate. Le macchine sincrone elementari (registri, contatori) sono già codificate come macro. Nel caso dell esempio precedente: una macchina secondaria dedicata a leggere l ADC e immagazzinare il dato in un registro temporaneo (registro: macro); un altra macchina secondaria che conta il numero di eventi (contatore: macro); un altra macchina secondaria dedicata a copiare il dato dal registro temporaneo o dal contatore alla RAM; una macchina principale che coordina e attiva le varie macchine secondarie quando necessario. 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 di controllo verso il processore. 29

30 (Es. 3) Macchina sincrona in VHDL Scriviamo il codice VHDL che descrive la macchina principale dell esempio precedente. Abbiamo visto che una macchina sincrona è ben descritta scomponendola in due blocchi logici: un registro di stato (insieme di flip-flop); un decodificatore (blocco puramente combinatorio). -- di seguito: descrizione della sola macchina principale architecture arch of main is signal synchro_trigg, adc_read_end, ram_write_end, adc_read_start, ram_write_start, ram_data_select : std_logic; altri segnali interni type st_value is ( -- con questa notazione astratta il bus (gruppo di segnali) 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; ); -- descrizione ad alto livello (astratta) signal st_pres, st_next -- definisco 2 bus di stato di tipo st_value : st_value; 30

31 (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 ad alto livello] 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; elsif (clock'event and clock = '1') then st_pres <= st_next; end if; end process; process (-- secondo blocco logico, puramente combinatorio: è il decodificatore della macchina sincrona, che definisce lo stato successivo e le uscite, in dipendenza dallo stato presente e dagli ingressi di controllo [processo: descrizione ad alto livello] st_pres, -- qui va indicata la lista di sensibilità cioè l insieme dei segnali che compaiono nelle condizioni (if, case, ecc.) all'interno del processo: in altri termini, stato presente e ingressi sincroni della macchina synchro_trigg, adc_read_end, -- segnale di ritorno dalla macchina secondaria per la lettura dell ADC ram_write_end -- segnale di ritorno dalla macchina secondaria per la scrittura nella RAM ) begin... 31

32 (Es. 3) Macchina sincrona in VHDL in alternativa all uso di: if ( condizione 1 ) then...elsif ( condizione N ) then...else...end if è 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 certo numero di condizioni che coinvolgono vari segnali; con case si specificano le assegnazioni di CIASCUNO dei possibili valori di un dato segnale (non è ammesso non includere nell elenco dei when anche uno solo dei possibili valori del segnale).... case st_pres is when nop => -- No OPeration case synchro_trigg is -- case innestato (sottocaso) when '1' => -- c è un trigger!! st_next <= adc_read; -- passa allo stato successivo adc_read_start <= '1'; -- avvia la macchina secondaria per la lettura dell ADC ram_write_start <= '0'; ram_data_select <= '0'; when '0' => -- ancora nessun trigger st_next <= nop; -- resta nello stato presente (nop) adc_read_start <= '0'; ram_write_start <= '0'; ram_data_select <= '0'; end case; 32

33 (Es. 3) Macchina sincrona in VHDL... when adc_read => case adc_read_end is when '1' => -- è terminata la lettura dell'adc (comunicazione dalla macchina secondaria per lettura ADC, esterna alla macchina che stiamo descrivendo) -- NOTA: il numero di cicli di clock in cui la macchina resta in un generico stato presente dipende dal segnale di controllo (flessibilità) st_next <= ram_write1; -- passa allo stato successivo adc_read_start <= '0'; ram_write_start <= '1'; -- avvia la macchina secondaria per la scrittura nella RAM ram_data_select <= '0'; when '0' => st_next <= adc_read; -- resta nello stato presente (adc_read) adc_read_start <= '0'; ram_write_start <= '0'; ram_data_select <= '0'; --***** end case; Domanda: è consentito omettere un assegnazione, ad esempio la riga indicata con --*****? -- Risposta: sì, tenendo conto che la funzionalità della macchina, in genere, cambia. -- Domanda: come cambia il funzionamento della macchina? -- Risposta: mentre prima, nello stato adc_read, con l ingresso adc_read_end a 0, l uscita ram_data_select era necessariamente 0, adesso nelle stesse condizioni, ram_data_select MANTIENE IL VALORE CHE AVEVA PRECEDENTEMENTE: tale valore, in generale, può essere 1 o 0 a seconda di quale era la condizione della macchina (stato e ingressi) al colpo di clock precedente. 33

34 (Es. 3) Macchina sincrona in VHDL... when ram_write1 => case ram_write_end is when '1' => -- la macchina secondaria per scrittura RAM comunica di aver terminato la scrittura nella RAM st_next <= ram_write2; -- passa allo stato successivo adc_read_start <= '0'; ram_write_start <= '1'; -- avvia DI NUOVO la macchina secondaria per la scrittura nella RAM ram_data_select <= '1'; -- ad es. seleziona il dato di un contatore invece che il dato dell'adc per la scrittura nella RAM when '0' => st_next <= ram_write1; -- resta nello stato presente (ram_write1) adc_read_start <= '0'; ram_write_start <= '0'; ram_data_select <= '0'; end case;... 34

35 (Es. 3) Macchina sincrona in VHDL... when ram_write2 => case ram_write_end is when '1' => -- la macchina secondaria per scrittura RAM comunica di aver terminato la (SECONDA) scrittura nella RAM st_next <= nop; -- passa allo stato successivo (chiusura del ciclo) adc_read_start <= '0'; ram_write_start <= '0'; ram_data_select <= '0'; when '0' => st_next <= ram_write2; -- resta nello stato presente (ram_write2) adc_read_start <= '0'; ram_write_start <= '0'; ram_data_select <= '1'; -- mantiene la selezione attiva (se necessario) end case; end case; end process; -- NOTA: non sono mai stati usati gli operatori di basso livello AND, OR, NOT altra logica: macchine secondarie, registri, ecc. (non descritti qui) end arch; 35

36 Upset ed errori logici 36

37 Upset ed errori logici Un circuito sincrono, se ben progettato, garantisce massima affidabilità contro la presenza di errori logici causati dalla violazione di setup o hold time Cosa succederebbe se il setup o hold time di un generico flip-flop fosse violato per un certo fronte di salita del clock? Può accadere anche in una macchina sincrona, se le condizioni richieste non sono soddisfatte (ad es.: frequenza clock troppo elevata). L'uscita del flip-flop (bistabile) si viene a trovare in uno stato metastabile, cioè ad un valore di tensione intermedio fra lo stato 0 (LVTTL: V out < 0.8 V) e lo stato 1 (LVTTL: V out > 2.0 V). Il flip-flop decade dallo stato metastabile in tempi brevi (~ 1 ns per FPGA tipiche) nello stato 0 o nello stato 1 (stati stabili), in maniera sostanzialmente imprevedibile. Per quel ciclo di clock lo stato del flip-flop può non essere corretto, cioè può essere avvenuta un inversione (upset) del valore effettivo rispetto al valore logicamente atteso. NOTA: un upset può essere prodotto anche da altre cause, ad esempio dalle correnti parassite indotte nel flip-flop da una particella altamente ionizzante (ad es. un raggio cosmico). 37

38 Upset ed errori logici Qual è la conseguenza pratica dell upset? In assenza di contromisure (specificate ad esempio nella sezione campionamento asincrono sequenziale ), l'upset nei successivi cicli di clock si propaga ad altri flip-flop nel circuito, modificandone lo stato logico in maniera scorrelata dal funzionamento atteso e in genere imprevedibile (errore logico). Come si rivela l'errore logico? Meccanismi di time-out (ad es. watchdog o time-out di esecuzione di un comando) in grado di rivelare se il circuito è rimasto bloccato in un qualche stato logico. Controllo di consistenza delle sequenze di bit in uscita dalla macchina (ad es. Cyclic Redundancy Check o controlli sul formato dei dati). Come si riporta il circuito in una configurazione corretta dopo aver rivelato la presenza di upset? Tipicamente con un segnale di reset asincrono (ad es. un pulsante di reset) inviato a tutti i flipflop attraverso uno degli ingressi asincroni (clear o preset), che riporta il 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. 38

39 Campionamento asincrono 39

40 Campionamento asincrono Vediamo un caso pratico di campionamento asincrono. Abbiamo detto che non sempre è possibile realizzare in una FPGA un circuito logico completamente sincrono (unico clock per tutti i flip-flop). Ad esempio, una parte del circuito riceve il clock da un microprocessore; l altra parte lo riceve da un ADC, con frequenza diversa o uguale (solo nominalmente, visto che si tratta di oggetti fisicamente distinti). In tal caso l uscita del flip-flop FF_a, che usa un clock clock_a, è inviata ad un ingresso sincrono del flip-flop FF_b, che usa un altro clock clock_b. NOTA: invece del termine ingresso sincrono, sarebbe più appropriato dire: ingresso che dovrebbe essere sincrono. L uscita del flip-flop A è quindi un segnale asincrono rispetto a FF_b (o anche rispetto a clock_b), anche se viene inviato ad un ingresso (che dovrebbe essere) sincrono del flip-flop B. In altri termini: il flip-flop B sta effettuando un campionamento asincrono. ATTENZIONE: questa fenomenologia non ha nessuna relazione con gli ingressi asincroni (clear e preset) del flip-flop. 40

41 Campionamento asincrono ed upset Più in generale, si parla di campionamento asincrono per un flip-flop nei due seguenti casi: la relazione di fase fra il segnale inviato all ingresso sincrono del flip-flop e il clock non è fissa (in generale non è nemmeno nota a priori). in questo caso non è possibile garantire la non violazione del setup o hold time. la relazione di fase è fissa (il segnale è sincrono con il clock) ma non sono soddisfatte le condizioni (ST) e (HT) per il corretto campionamento sincrono. Per il campionamento asincrono non è possibile evitare la presenza di upset. E però possibile evitare l insorgere di errori logici, come vedremo. La situazione è infatti fondamentalmente diversa a seconda che ci sia il campionamento asincrono di un segnale combinatorio (uscita di blocco combinatorio) o di un segnale sequenziale (uscita diretta di flip-flop). Il campionamento asincrono di un segnale sequenziale introduce upset in maniera casuale ma prevedibile e controllabile. 41

42 Campionamento asincrono combinatorio La linea ready_a (combinatoria) è sincrona con clock_a e indica quando la macchina A èpronta. La linea ready_b è sincrona con clock_b e avvia una sequenza interna alla macchina B. Sta avvenendo il campionamento asincrono combinatorio di ready_a. Unglitch (impulso spurio) su ready_a (inevitabile sui segnali combinatori) comporta in genere un errore logico nella macchina B, in quanto ready_b potrebbe cambiare stato per upset e la macchina B partire senza che la macchina A abbia veramente comunicato di essere pronta. 42

43 Campionamento asincrono sequenziale Inserendo un flip-flop si ha un segnale ready_a per definizione privo di glitch. Il campionamento asincrono sequenziale non comporta errori logici. ready_b può ancora avere un upset ma in questo caso ciò non comporta un errore logico nella macchina B, che parte solo dopo che la macchina A ha comunicato di essere pronta. ready_b replica tutti e soli i cambiamenti di stato di ready_a, a meno di un'incertezza (jitter) nel ritardo, che può variare di volta in volta fra circa 0 e T clock_b a seconda della fase istantanea fra i due clock. per indicare il ritardo fra i due segnali ready_a e ready_b: si considera il ritardo medio, pari a circa 0.5 T clock_b ; si rappresenta il jitter come un'incertezza uniformemente distribuita con ampiezza massima di circa ± 0.5 T clock_b. 43

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 ~ 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 Corso di Elettronica Generale I Laurea Magistrale in Scienze Fisiche e Astrofisiche Università di Firenze 2013-10-27

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 2016-11-07

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 ~ IFAC (CNR) - Firenze Corso di Elettronica Generale I Laurea Magistrale in Scienze Fisiche e Astrofisiche Università di Firenze 2018-11-06

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

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

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

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 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

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

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

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

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

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

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

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

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 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

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

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

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

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

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

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

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

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

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

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

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

Circuiti sequenziali. Circuiti sequenziali e applicazioni

Circuiti sequenziali. Circuiti sequenziali e applicazioni Circuiti sequenziali Circuiti sequenziali e applicazioni Circuiti sequenziali Prima di poter parlare delle memorie è utile dare un accenno ai circuiti sequenziali. Per circuiti sequenziali intendiamo tutti

Dettagli

Tecniche Analogiche e tecniche Digitali

Tecniche Analogiche e tecniche Digitali Tecniche Analogiche e tecniche Digitali Tecniche Analogiche e tecniche Digitali Da rappresentazione Analogica a Digitale Trattamento dell'informazione Esercizi riepilogativi 2 2005 Politecnico di Torino

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

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

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

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

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

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

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

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

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

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

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

Esercitazione : REALIZZAZIONE IMPIANTO SEMAFORICO

Esercitazione : REALIZZAZIONE IMPIANTO SEMAFORICO Esercitazione : REALIZZAZIONE IMPIANTO SEMAFORICO Strumenti utilizzati Strumento Marca e modello Caratteristiche Alimentatore Scheda ALTERA Fotocamera digitale Topward electronics TPS- 4000 ALTERA Max

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

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

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

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

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

Circuiti integrati semi-custom

Circuiti integrati semi-custom Circuiti integrati semi-custom g Gate array gcomponent array gstandard cell g PLD Circuiti integrati semi-custom g Gate array gcomponent array gstandard cell g PLD Introduzione Qualsiasi sistema digitale

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

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

Riassunto tecnica digitale

Riassunto tecnica digitale Introduzione... 2 Operazioni... 4 OR...4 AND...4 XOR...5 Operatori logici... 5 Negazione... 6 Ottimizzare mediante il teorema di De Morgan. 7 VHDL...8 Contatori...10 Multiplexer... 11 Demultiplexer...12

Dettagli

Le Alee. La presenza di ritardi nei dispositivi utilizzati può avere l effetto di modificare il comportamento delle uscite in alcuni casi

Le Alee. La presenza di ritardi nei dispositivi utilizzati può avere l effetto di modificare il comportamento delle uscite in alcuni casi Le Alee La presenza di ritardi nei dispositivi utilizzati può avere l effetto di modificare il comportamento delle uscite in alcuni casi Si chiamano Alee (o hazard) quei fenomeni per i quali le uscite,

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

Circuiti Sequenziali

Circuiti Sequenziali Circuiti Sequenziali 1 Ingresso Circuito combinatorio Uscita Memoria L uscita al tempo t di un circuito sequenziale dipende dagli ingressi al tempo (t) e dall uscita al tempo (t- t ) Circuiti sequenziali

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

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

Reti Logiche A II Prova - 2 marzo 2009

Reti Logiche A II Prova - 2 marzo 2009 Politecnico di Milano Dipartimento di Elettronica e Informazione prof.ssa Anna Antola prof. Fabrizio Ferrandi Reti Logiche A II Prova - 2 marzo 2009 Matricola prof.ssa Cristiana Bolchini Cognome Nome Istruzioni

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

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

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

Q1 D. CK Qn CK Q1. E3x - Presentazione della lezione E3

Q1 D. CK Qn CK Q1. E3x - Presentazione della lezione E3 E3x - Presentazione della lezione E3 1/1- Obiettivi» ivisori di frequenza e contatori asincroni» Contatori sincroni» Shift register e convertitori SIPO e PISO» Concetto elementare di macchina a stati finiti

Dettagli

AB=AB. Porte logiche elementari. Livello fisico. Universalità delle porte NAND. Elementi di memoria: flip-flop e registri AA= A. Porta NAND.

AB=AB. Porte logiche elementari. Livello fisico. Universalità delle porte NAND. Elementi di memoria: flip-flop e registri AA= A. Porta NAND. 1 Elementi di memoria: flip-flop e registri Porte logiche elementari CORSO DI CALCOLATORI ELETTRONICI I CdL Ingegneria Biomedica (A-I) DIS - Università degli Studi di Napoli Federico II Livello fisico

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

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

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

Reti logiche A All. Informatici (M-Z)

Reti logiche A All. Informatici (M-Z) Reti logiche A All. Informatici (M-Z) Fabrizio Ferrandi a.a. 2003-2004 Contenuti - Progetto logico di sistemi digitali Metodologie di progetto per la realizzazione dei dispositivi di elaborazione costruire

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

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

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

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

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

Reti logiche A All. Informatici (M-Z) Fabrizio Ferrandi a.a

Reti logiche A All. Informatici (M-Z) Fabrizio Ferrandi a.a Reti logiche A All. Informatici (M-Z) Fabrizio Ferrandi a.a. 2003-2004 Contenuti - Progetto logico di sistemi digitali Metodologie di progetto per la realizzazione dei dispositivi di elaborazione costruire

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

Progettazione di circuiti integrati

Progettazione di circuiti integrati Architetture e reti logiche Esercitazioni VHDL a.a. 2007/08 Progettazione di circuiti integrati Stefano Ferrari UNIVERSITÀ DEGLI STUDI DI MILANO DIPARTIMENTO DI TECNOLOGIE DELL INFORMAZIONE Stefano Ferrari

Dettagli

ELETTRONICA GENERALE, FONDAMENTI DI ELETTRONICA DIGITALE Appello d esame del 11/7/2016

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

Dettagli

Informatica Generale 07 - Sistemi Operativi:Gestione dei processi

Informatica Generale 07 - Sistemi Operativi:Gestione dei processi Informatica Generale 07 - Sistemi Operativi:Gestione dei processi Cosa vedremo: Esecuzione di un programma Concetto di processo Interruzioni Sistemi monotasking e multitasking Time-sharing Tabella dei

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

Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE. Francesco Tura. F. Tura

Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE. Francesco Tura. F. Tura Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE Francesco Tura francesco.tura@unibo.it 1 Lo strumento dell informatico: ELABORATORE ELETTRONICO [= calcolatore = computer] Macchina multifunzionale Macchina

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

DESCRIZIONE DEL FUNZIONAMENTO

DESCRIZIONE DEL FUNZIONAMENTO I FLIP FLOP 1.1. Flip Flop Set Reset In figura è rappresentato un f/f set reset con porte NAND. Si tratta del blocco fondamentale alla base di tutti i tipi di F/F. Tabella di verità del Flip Flop Set Reset

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

Memorie a semiconduttore

Memorie a semiconduttore Memoria centrale a semiconduttore (Cap. 5 Stallings) Architettura degli elaboratori -1 Pagina 209 Memorie a semiconduttore RAM Accesso casuale Read/Write Volatile Memorizzazione temporanea Statica o dinamica

Dettagli

Architetture dei Dispositivi Programmabili Avanzati Altera

Architetture dei Dispositivi Programmabili Avanzati Altera Architetture dei Dispositivi Programmabili Avanzati Altera Elettronica dei Sistemi Digitali LA Cesena, 4 Febbraio 2005 Aldo Romani aromani@deis.unibo.it tel. 051 209 3811 Lab. Star-Arces, V.le Pepoli,

Dettagli

Reti sequenziali. Nord

Reti sequenziali. Nord Reti sequenziali Nord Ovest Est Semaforo a due stati verde/rosso Sud Vogliamo definire un circuito di controllo per produrre due segnali NS ed EO in modo che: Se NS è on allora il semaforo è verde nella

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

Rappresentazione dell informazione

Rappresentazione dell informazione Rappresentazione dell informazione Codifica dei numeri Rappresentazioni in base 2, 8, 10 e 16 Rappresentazioni M+S, C1 e C2 Algoritmi di conversione di base Algoritmi di somma, moltiplicazione e divisione

Dettagli

INDICE Capitolo I - I dispositivi elettronici. Condizioni operative statiche. 1.1) Introduzione. 1.2) Interruttori ideali e reali.

INDICE Capitolo I - I dispositivi elettronici. Condizioni operative statiche. 1.1) Introduzione. 1.2) Interruttori ideali e reali. INDICE Capitolo I - I dispositivi elettronici. Condizioni operative statiche. 1.1) Introduzione. 1 1.2) Interruttori ideali e reali. 1 1.3) Condizioni operative statiche del transistore a giunzione. 5

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

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

INTRODUZIONE ALLE LOGICHE PROGRAMMABILI

INTRODUZIONE ALLE LOGICHE PROGRAMMABILI INTRODUZIONE ALLE LOGICHE PROGRAMMABILI TEMA: L DESCRIZIONE: Introduzione al linguaggio VHDL per la descrizione dell hardware e sintesi di un circuito logico. LUOGO: Laboratori Nazionali di Legnaro (PD)

Dettagli