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 ~ IFAC (CNR), 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 violazione di setup/hold time; asincronia e risincronizzazione. Upset da perturbazioni esterne. Per la bibliografia: cerchiamo insieme in rete 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. Un primo tipo è l'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. Il circuito è programmato una volta per tutte durante la fabbricazione. 4

5 Circuito digitale integrato Un secondo tipo è la FPGA: field programmable gate array (Altera, Xilinx, Actel, Quicklogic...) Circuito digitale integrato caratterizzato da interconnessioni programmabili dall utente in base al campo ( field ) di applicazione. Una rete di piste e celle fissata dal produttore, con interruttori che collegano/scollegano i tratti di pista adiacenti secondo la scelta dell'utente. La programmazione avviene con speciali dispositivi programmatori oppure direttamente nel circuito stampato ( scheda o printed circuit board PCB). Dopo la programmazione una parte della FPGA risulta inutilizzata. 5

6 Interconnessioni nella FPGA Possono essere non-riprogrammabili o riprogrammabili. Non-riprogrammabili: ad esempio, connessioni ad antifusibile (Actel). Alla fabbricazione, l'antifusibile è un interruttore aperto. Una volta "bruciato", la connessione è permanente e quindi non-volatile (si mantiene dopo lo spengimento della FPGA). Riprogrammabili: ad esempio, connessioni realizzate con transistor NMOS. Lo stato degli interruttori NMOS è memorizzato in una porzione della FPGA che funge da interfaccia di configurazione (quindi con struttura fissata, come una ASIC). Lo stato può essere riprogrammato in seguito. La memoria dello stato può essere volatile (RAM) o non-volatile (E 2 PROM). 6

7 Cella logica di una FPGA Cella logica della FPGA: struttura di porte logiche e flip-flop predefinita dal produttore. Esempi di celle logiche (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. 7

8 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 maggiore versatilità, impiega più elementi circuitali delle celle Actel. 8

9 Descrizione di un circuito digitale in VHDL 9

10 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 interna 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 HDL astratta in una struttura specifica da poter riprodurre in un dato dispositivo (ASIC o FPGA). 10

11 Descrizione funzionale o strutturale? In una descrizione strutturale (ad esempio un disegno schematico) viene specificata una sola struttura logica interna 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 interna. 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, mentre il linguaggio macchina 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. 11

12 (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 linguaggio VHDL -- In rosso: nomi di oggetti che devono essere scelti dal progettista (in modo da essere immediatamente 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 del circuito; "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; 12

13 (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; -- assegnazione output <= input1 OR int1; -- assegnazione end struct1; -- questa descrizione è strutturale (viene indicata una specifica combinazione di porte logiche). 13

14 (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) -- "processo" (descrizione funzionale) con lista di sensibilità ( sensitivity list ) che 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 (ne sono riportate ad esempio due nelle figure), ma piuttosto indica astrattamente la funzione desiderata, cioè le combinazioni 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; 14

15 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 (detti anche 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 macrofunzione ( macro ). 15

16 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 HDL funzionale equivalente, che può essere utilizzato in qualsiasi ambiente. 16

17 (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 l'interfaccia esterna 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 ), identificata come "logic_function_inst1", del componente "logic_function" con mappatura dei suoi segnali esterni sui segnali del circuito "ex2" che lo contiene input1 => in1_and_in2, -- segnale interno di ex2 input2 => in3_pin, -- segnale esterno di ex2 output => out_pin -- segnale esterno di ex2 ); 17 end arch;

18 (Es. 2) Descrizione del componente -- Tipicamente il componente è descritto in un file separato da quello del circuito in cui viene chiamato 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, anche per indicare una stessa STRUTTURA) begin output <= input1 OR NOT input2; -- una assegnazione composta invece di -- di due assegnazioni elementari -- (non serve definire int1) end struct1; 18

19 Vantaggi della descrizione gerarchica Lo stesso componente può essere inserito in N copie (cioè chiamato N volte) in uno stesso circuito logico. Ogni copia è identificata da una diversa etichetta ("label") scelta dal progettista: logic_function_inst1: logic_function port map ( ); -- prima chiamata logic_function_inst2: logic_function port map ( ); -- seconda chiamata 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); 19

20 Come descrivere un architettura in VHDL Riepilogando, 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; -- in sostanza, è una definizione implicita di un -- blocco logico (entità e struttura). Membro di sinistra = uscita. -- Membro di destra = ingressi. 20

21 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. -- In sostanza è una definizione implicita di un blocco logico. -- Lista di sensibilità = lista degli ingressi del blocco logico. -- Membri di sinistra nelle assegnazioni: uscite del blocco logico. 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 (e per cui è 0) if input1 = '1' then output <= '1'; elsif input2 = '0' then output <= '1'; else output <= '0'; end if; end process; 21

22 Concetto di concorrenza L ordine, all interno del codice HDL, in cui vengono scritti chiamate, assegnazioni e processi non ha effetto sulla struttura del circuito logico. Il codice HDL è una rappresentazione unidimensionale (un elenco) dei componenti del circuito. Il disegno schematico è una rappresentazione bidimensionale. L elenco di descrizioni nell architettura HDL non ha nulla a che vedere con l elenco di istruzioni, da eseguire ordinatamente nel tempo, codificate in un programma C o simili linguaggio di alto livello per processori. Tutte le descrizioni elencate nel codice HDL 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 (il processore esegue una istruzione alla volta). 22

23 Compilazione e verifica del progetto. 23

24 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 HDL (descrizione funzionale) o disegno schematico (descrizione strutturale) è tradotto dal software di sintesi in una specifica struttura di elementi logici di base (AND, NOT e flip-flop), la netlist (abbreviazione di "network list"). Input: il codice HDL (ad esempio uno o più file di testo con estensione.vhd) o il codice che rappresenta il disegno schematico (il formato del file dipende dall'ambiente di sviluppo). Output: tipicamente un file con estensione.edf cioè in formato EDIF (Electronic Design Interchange Format, altro standard industriale). La netlist non fa riferimento ad alcun dispositivo specifico (FPGA o ASIC). 24

25 Sintesi e ottimizzazioni Con la sintesi la struttura logica del circuito viene in genere ottimizzata a partire dalla descrizione funzionale o strutturale fatta dall'utente. L'ottimizzazione avviene secondo vari criteri e sfruttando le equivalenze logiche. La struttura della netlist può essere molto diversa da quella dell'eventuale disegno schematico di input. 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 ridondante (non necessariamente sintetica), quindi più naturale e meglio leggibile. Un caso pratico: la descrizione del circuito fatta dall'utente contiene due flip-flop che pilotano parti diverse del circuito, ma che hanno lo stesso segnale logico in ingresso: uno dei due flip-flop può quindi essere omesso (ma attenzione: il fan-out sull'altro aumenta!). Fan-out: numero di linee fisiche di ingresso (di elementi logici) pilotate dall'uscita di un elemento logico. Nota: "fan" = ventaglio. 25

26 Compilazione del progetto: configurazione Seconda fase: configurazione del dispositivo o place and route ( posizionamento e interconnessione ). La netlist viene tradotta dal software di configurazione in un codice di configurazione per un determinato tipo di dispositivo e salvato in uno o più file di configurazione. Il codice di configurazione viene utilizzato nella fase di realizzazione fisica del circuito nel dispositivo (fabbricazione ASIC o programmazione FPGA). Il codice di configurazione descrive una specifica struttura reale del circuito logico (cioè la disposizione degli elementi logici e delle interconnessioni in un dato tipo di dispositivo), scelta fra quelle logicamente equivalenti alla specifica struttura descritta nella netlist. La codifica del file di configurazione varia a seconda della tecnica di fabbricazione della ASIC o di programmazione della FPGA. Per una FPGA la configurazione si basa sulle celle e interconnessioni 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. 26

27 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 in 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 in 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; 27

28 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 (cioè correttamente funzionante in tutte le condizioni operative attese e probabili casistiche di utilizzo) nonostante i limiti di verifica indicati qui sopra: in pratica la soluzione è quella di progettare una macchina sincrona (nei casi in cui ciò è possibile). 28

29 Temporizzazioni dei segnali e macchine sincrone. 29

30 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 in uscita un upset (caricamento del valore "rovesciato" cioè sbagliato). 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 e indipendentemente dal clock. Esternamente: possono essere pilotati da linee sincrone o asincrone. 30

31 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. Con temporizzazioni dei segnali si indicano genericamente i tempi di propagazione (ritardi) 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. Dipendono da: struttura reale del circuito: struttura logico/fisica (connessioni e loro lunghezza) realizzata nel dispositivo; tecnologia del dispositivo (circuito integrato): caratteristiche fisiche delle celle logiche (transistor) e delle interconnessioni (piste metalliche). 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. 31

32 Macchina sincrona: introduzione Per poter tener conto in maniera efficace delle temporizzazioni nel circuito integrato, la soluzione più semplice è quella di creare un circuito sincrono o macchina sincrona, 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 solitamente 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 legati ai diversi tempi di propagazione del segnale dall oscillatore ai vari flipflop. Se il circuito è diviso in blocchi logici, ciascuno di essi è una macchina sincrona e i blocchi sono sincroni fra loro (stesso segnale di clock). In generale potrebbe però essere necessario suddividere il circuito in due o più macchine sincrone, asincrone fra loro (usano cioè segnali di clock fisicamente distinti). Il circuito complessivo in questo caso è asincrono (ci sono almeno due segnali di clock distinti). 32

33 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 clock è il periodo del clock. 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. 33

34 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) all'ingresso del flip-flop (i), clock(j) all'ingresso del flip-flop (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(i-j) = 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-i) > 0. 34

35 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 hanno frequenze nominalmente uguali: infatti essi sono comunque fisicamente diversi (per quanto strette siano le tolleranze di fabbricazione di diversi esemplari dello stesso modello, le frequenze non saranno mai perfettamente uguali). Per esempio consideriamo clock_1 (va al flip-flop (1)) più lento di clock_2 (va al flip-flop (2)). Consideriamo le temporizzazioni per il setup time del flip-flop (2): dato che lo sfasamento aumenta ad ogni ciclo, 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. In altri termini, per un circuito asincrono la relazione (ST) a un certo tempo non sarà soddisfatta. Si dice che il flip-flop (2) realizza una risincronizzazione (o un campionamento asincrono) del segnale data_in_2. 35

36 Macchina sincrona e hold time Per un circuito sincrono, la relazione che garantisce la non violazione di hold time per il flip-flop (j) è: T CTO(i) min + T comb(i) min > T hold max + T skew(j-i) max (HT) 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. 36

37 Vantaggi della macchina sincrona Nel circuito sincrono, basta un solo oscillatore (perché usarne due se non ce n'è bisogno?). Con un segnale di clock unico per tutti i flip-flop, la struttura del circuito è la più semplice possibile. Il compilatore (nella fase di configurazione) automaticamente 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 per tutte le coppie di flip-flop i-j. 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. In genere l'algoritmo di place and route è in grado di trovare una configurazione della macchina sincrona che sia soddisfacente per tutti i flip-flop alle condizioni richieste. In caso contrario, il compilatore indica i cammini di segnale che violano setup o hold time. 37

38 Svantaggi del circuito asincrono Nel circuito asincrono, gli upset sono inevitabili: richiedono quindi di essere trattati opportunamente per garantire la funzionalità desiderata del circuito (vedremo poi come). Nel circuito 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). Se T clock_1 = 110% T clock_2, 10 cicli di clock_1 durano quanto 11 cicli di clock_2. Il circuito asincrono richiede in sostanza del lavoro addizionale da parte del progettista. Lavoro addizionale che non conviene fare, se la stessa funzionalità si può ottenere con un circuito sincrono. 38

39 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 nei diagrammi). 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. 39

40 Struttura della macchina sincrona e realizzazione in VHDL. 40

41 Una 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) 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 della macchina durante ciascun ciclo di clock. 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. Non tutti sono necessariamente raggiunti (cioè usati). Lo stato durante il ciclo di clock successivo dipende da: stato presente ( status ); LUT; Macchina sincrona: struttura valori degli ingressi di controllo (assumiamo che gli ingressi di controllo siano pilotati da segnali sincroni). Uno stato può durare N cicli di clock. 41

42 Macchina sincrona e periodicità Una generica macchina sincrona è non periodica: la presenza degli ingressi di controllo implica che per ogni stato S, lo stato successivo S' non dipende soltanto dalla LUT. 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 è necessariamente fissato. Un caso particolare è la macchina sincrona periodica. Nessun ingresso di controllo. Quindi la successione di stati è fissata dalla LUT. Si può dimostrare che ogni macchina sincrona periodica con N flip-flop e una LUT L 1 è logicamente equivalente a: un contatore a N bit; una LUT L 2 (contiene la parte di L 1 che non è inglobata nel contatore). 42

43 (Es. 3) Macchina sincrona Esempio pratico: una FPGA contiene una macchina sincrona che esegue una sequenza di operazioni: dopo l accensione della FPGA, si trova nello 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 (ram_write1) incremento del numero di evento e suo trasferimento in RAM (ram_write2); di nuovo nello stato iniziale, in attesa di un nuovo trigger. La macchina genera sequenze sincrone su un certo numero di uscite digitali verso ADC e RAM. 43

44 (Es. 3) Macchina sincrona 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). 44

45 (Es. 3) Macchina sincrona in VHDL Scriviamo il codice VHDL che descrive la macchina principale Main. 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 chiaro quali sono i segnali di ingresso e di uscita che servono a Main per coordinare il lavoro delle altre macchine Sec. Conviene quindi aver disegnato uno schema a blocchi del circuito, come quello mostrato qui. Nota: non sono mostrate le linee di clock, reset asincrono e i segnali di controllo per ADC e RAM. trigger è un segnale asincrono rispetto al clock; il risincronizzatore "trigger resync" è descritto più avanti

46 (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 dei flip-flop); una LUT (blocco puramente combinatorio). architecture arch of main is servono altri segnali interni? type st_value is ( -- con questa descrizione funzionale (astratta) il bus di stato (uscita -- del registro di stato) viene rappresentato in maniera ben leggibile, definendo un -- apposito tipo di segnale i cui valori sono rappresentati da stringhe 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); ); signal st_pres, st_next -- definisco 2 bus di stato di tipo st_value: stato presente -- (uscita registro) e stato successivo (ingresso registro) : st_value;... 46

47 (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, -- per avere uno stato di partenza definito dopo l'accensione (in che stato vanno -- i flip-flop 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 resync") adc_read_end, -- segnale di ritorno dalla macchina secondaria Sec ADC ram_write_end -- segnale di ritorno dalla macchina secondaria Sec RAM ) begin... 47

48 (Es. 3) Macchina sincrona in VHDL All'interno del processo (fra "begin" e "end process"), è permesso avere, per ciascun -- segnale di uscita, più di una assegnazione (ciascuna in genere condizionata ai segnali -- della lista di sensibilità), tali che per una data combinazione di valori in ingresso, -- due o più assegnazioni siano valide. -- In tal caso, prevale l'ultima assegnazione nell'ordine di scrittura. st_next <= nop; adc_read_start <= '0'; ram_write_start <= '0'; ram_data_select <= '0'; -- Queste assegnazioni sono valide per qualsiasi combinazione di valori in ingresso al -- processo; se nel seguito del processo si trova un'altra assegnazione per uno di questi -- segnali, ed è valida, essa prevale. -- Lo scopo di queste assegnazioni (e delle successive assegnazioni condizionate, -- che vedremo subito) è di far sì che le uscite del processo siano sempre 0 a meno che -- gli ingressi assumano determinate combinazioni di valori

49 (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 bus 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 ). 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à)... 49

50 (Es. 3) Macchina sincrona in VHDL... 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? 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;... 50

51 (Es. 3) Macchina sincrona in VHDL... 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; 51

52 Upset da violazione di setup/hold time; asincronia e risincronizzazione 52

53 Upset da violazione di setup/hold time Definizione generale di upset ("rovesciamento"): il valore dell'uscita di un flip-flop diviene l'inverso di quello che al momento sarebbe logicamente corretto. Qual è la conseguenza pratica dell upset? In generale (tranne casi specifici, come vedremo) l upset nei successivi cicli di clock si propaga ad altri flip-flop nel circuito, modificandone lo stato logico in maniera diversa rispetto a quanto previsto in base alla struttura logica del circuito (viene quindi 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 qualche 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 (tipicamente a cause delle oscillazioni di rumore elettronico): può quindi decadere nello stato logicamente sbagliato rispetto a quello che si sarebbe dovuto caricare in base ai valori degli ingressi "sincroni" del flip-flop, può cioè avvenire l'upset. 53

54 Caso della macchina sincrona In una macchina sincrona la violazione di setup/hold time avviene se non sono soddisfatte per ogni coppia i,j di flip-flop le relazioni: T max CTO(i) + T max comb(i) + T max skew(i-j) + T max setup < T clock T min CTO(i) + T min comb(i) > T max hold + T max skew(j-i) (ST) (HT) Ciò avviene ad esempio se la frequenza di clock è troppo elevata, per cui (ST) non può essere soddisfatta per tutti o parte dei flip-flop del circuito (e per ogni ciclo di clock). La probabilità di questo upset viene azzerata se si riesce a soddisfare (ST) e (HT). 54

55 Caso del circuito asincrono In un circuito asincrono, che quindi ha (almeno) due clock di frequenza diversa, i flip-flop che realizzano il campionamento asincrono avranno violazione di setup/hold time per determinati fronti di salita del proprio clock (a seconda dello sfasamento corrente fra i due clock). La probabilità di questo tipo di upset non può mai essere azzerata. In un circuito asincrono, è però possibile configurare opportunamente lo stadio di risincronizzazione o campionamento asincrono (flip-flop (2) nello schema) in modo da azzerare la probabilità di errore logico nel funzionamento complessivo del circuito. 55

56 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). 56

57 Campionamento asincrono combinatorio (2/2) Un segnale combinatorio come ready_1 presenta in genere 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, per determinati fronti di salita di clock_2 (a seconda dello sfasamento corrente fra i due clock) il glitch avverrà troppo vicino al fronte di salita di clock_2, con violazione di setup o hold time e quindi con possibile upset sulla linea ready_2, da cui la possibilità di 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: anche nel caso di campionamento sincrono combinatorio ci sono in genere dei glitch, ma se (ST) e (HT) sono soddisfatte, questi glitch non danno mai upset, in quanto avvengono al di fuori dell intorno del fronte di salita del clock, identificato da setup e hold time. 57

58 Come risincronizzare senza errore logico? 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è solo sul segnale che esce da 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 (dell'uscita del flip-flop) può essere elaborato in maniera tale da non comportare mai errori logici. 58

59 Campionamento asincrono sequenziale Inserendo opportunamente un flip-flop nel circuito visto prima, 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. 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 a: δt = ± 0.5 T clock_2 59

60 Upset da perturbazioni esterne 60

61 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). 61

62 Upset da perturbazioni esterne Non è possibile azzerare la probabilità di questo tipo di upset, perché è intrinsecamente associata al flip-flop (e alla presenza di radiazione ionizzante in natura). Non è possibile azzerare la probabilità che questo tipo di upset comporti un errore logico, perché può avvenire in qualunque flip-flop del circuito. Si può ridurre la probabilità che questo upset comporti un errore logico, introducendo una qualche ridondanza che funziona come sistema di correzione automatica dell'errore logico. Ad esempio: 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). Codifica Hamming. Quando un valore A viene scritto in un registro a N bit, viene anche scritto un codice B 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ù flip-flop fra gli N+H (es. A A + 2, B invariato), il valore letto nel registro resti identico a quello scritto (A+2 combinato con B dà A, proprio come A combinato con B dà A). 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. 62

63 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 (ma nulla segnala in caso di upset tripli o superiori). 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 dal circuito: codici di controllo: controllo di parità, cioè un bit che rappresenta il numero di 1 presenti nei dati (è pari o dispari?); oppure controlli analoghi più sofisticati (ad es. CRC: Cyclic Redundancy Check); controlli sul formato dei dati: presenza di sequenze prefissate ( pattern, frame ). 63

64 Contromisure all'errore logico Come si riporta il circuito in una configurazione corretta dopo aver rivelato la presenza di errore logico? Di seguito i metodi più semplici. 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. 64

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

Esame di INFORMATICA

Esame di INFORMATICA Università di L Aquila Facoltà di Biotecnologie Esame di INFORMATICA Lezione 4 MACCHINA DI VON NEUMANN Anni 40 i dati e i programmi che descrivono come elaborare i dati possono essere codificati nello

Dettagli

Reti sequenziali. Esempio di rete sequenziale: distributore automatico.

Reti sequenziali. Esempio di rete sequenziale: distributore automatico. Reti sequenziali 1 Reti sequenziali Nelle RETI COMBINATORIE il valore logico delle variabili di uscita, in un dato istante, è funzione solo dei valori delle variabili di ingresso in quello stesso istante.

Dettagli

Circuiti sequenziali e elementi di memoria

Circuiti sequenziali e elementi di memoria Il Livello Logicoigitale I circuiti sequenziali Corso ACSO prof. Cristina SILVANO Politecnico di Milano Sommario Circuiti sequenziali e elementi di memoria Bistabile SR asincrono Temporizzazione e clock

Dettagli

Reti sequenziali sincrone

Reti sequenziali sincrone Reti sequenziali sincrone Un approccio strutturato (7.1-7.3, 7.5-7.6) Modelli di reti sincrone Analisi di reti sincrone Descrizioni e sintesi di reti sequenziali sincrone Sintesi con flip-flop D, DE, T

Dettagli

Macchine a stati finiti G. MARSELLA UNIVERSITÀ DEL SALENTO

Macchine a stati finiti G. MARSELLA UNIVERSITÀ DEL SALENTO Macchine a stati finiti 1 G. MARSELLA UNIVERSITÀ DEL SALENTO Introduzione Al più alto livello di astrazione il progetto logico impiega un modello, la cosiddetta macchina a stati finiti, per descrivere

Dettagli

Architettura hardware

Architettura hardware Architettura dell elaboratore Architettura hardware la parte che si può prendere a calci Sistema composto da un numero elevato di componenti, in cui ogni componente svolge una sua funzione elaborazione

Dettagli

Macchine a stati finiti. Sommario. Sommario. M. Favalli. 5th June 2007

Macchine a stati finiti. Sommario. Sommario. M. Favalli. 5th June 2007 Sommario Macchine a stati finiti M. Favalli 5th June 27 4 Sommario () 5th June 27 / 35 () 5th June 27 2 / 35 4 Le macchine a stati si utilizzano per modellare di sistemi fisici caratterizzabili mediante:

Dettagli

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi.

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi. Algoritmi 1 Sommario Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi. 2 Informatica Nome Informatica=informazione+automatica. Definizione Scienza che si occupa dell

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

Il processore. Il processore. Il processore. Il processore. Architettura dell elaboratore

Il processore. Il processore. Il processore. Il processore. Architettura dell elaboratore Il processore Architettura dell elaboratore Il processore La esegue istruzioni in linguaggio macchina In modo sequenziale e ciclico (ciclo macchina o ciclo ) Effettuando operazioni di lettura delle istruzioni

Dettagli

Macchine a stati finiti. Sommario. Sommario. M. Favalli. Le macchine a stati si utilizzano per modellare di sistemi fisici caratterizzabili mediante:

Macchine a stati finiti. Sommario. Sommario. M. Favalli. Le macchine a stati si utilizzano per modellare di sistemi fisici caratterizzabili mediante: Sommario Macchine a stati finiti M. Favalli Engineering Department in Ferrara 4 Sommario (ENDIF) Analisiesintesideicircuitidigitali / 35 (ENDIF) Analisiesintesideicircuitidigitali 2 / 35 4 Le macchine

Dettagli

La memoria centrale (RAM)

La memoria centrale (RAM) La memoria centrale (RAM) Mantiene al proprio interno i dati e le istruzioni dei programmi in esecuzione Memoria ad accesso casuale Tecnologia elettronica: Veloce ma volatile e costosa Due eccezioni R.O.M.

Dettagli

Chapter 1. Circuiti sequenziali: macchine a stati

Chapter 1. Circuiti sequenziali: macchine a stati Chapter 1 Circuiti sequenziali: macchine a stati Nella prima parte del corso ci siamo occupati dei circuiti combinatori. In un circuito combinatorio con un ouput Z funzione degli input X 1 ; : : : X n,

Dettagli

Testi di Esercizi e Quesiti 1

Testi di Esercizi e Quesiti 1 Architettura degli Elaboratori, 2009-2010 Testi di Esercizi e Quesiti 1 1. Una rete logica ha quattro variabili booleane di ingresso a 0, a 1, b 0, b 1 e due variabili booleane di uscita z 0, z 1. La specifica

Dettagli

Laurea Specialistica in Informatica

Laurea Specialistica in Informatica Corso di Laurea in FISICA Laurea Specialistica in Informatica Fisica dell informazione 1 Elementi di Architettura degli elaboratori Prof. Luca Gammaitoni Informazioni sul corso: www.fisica.unipg unipg.it/gammaitoni/fisinfoit/gammaitoni/fisinfo

Dettagli

Lezione 8. La macchina universale

Lezione 8. La macchina universale Lezione 8 Algoritmi La macchina universale Un elaboratore o computer è una macchina digitale, elettronica, automatica capace di effettuare trasformazioni o elaborazioni su i dati digitale= l informazione

Dettagli

Laboratorio di Informatica

Laboratorio di Informatica per chimica industriale e chimica applicata e ambientale LEZIONE 4 La CPU e l esecuzione dei programmi 1 Nelle lezioni precedenti abbiamo detto che Un computer è costituito da 3 principali componenti:

Dettagli

DMA Accesso Diretto alla Memoria

DMA Accesso Diretto alla Memoria Testo di rif.to: [Congiu] - 8.1-8.3 (pg. 241 250) 08.a DMA Accesso Diretto alla Memoria Motivazioni Organizzazione dei trasferimenti DMA Arbitraggio del bus di memoria Trasferimento di un blocco di dati

Dettagli

Strutturazione logica dei dati: i file

Strutturazione logica dei dati: i file Strutturazione logica dei dati: i file Informazioni più complesse possono essere composte a partire da informazioni elementari Esempio di una banca: supponiamo di voler mantenere all'interno di un computer

Dettagli

CONTROLLO IN TENSIONE DI LED

CONTROLLO IN TENSIONE DI LED Applicazioni Ver. 1.1 INTRODUZIONE CONTROLLO IN TENSIONE DI LED In questo documento vengono fornite delle informazioni circa la possibilità di pilotare diodi led tramite una sorgente in tensione. La trattazione

Dettagli

Macchine sequenziali

Macchine sequenziali Corso di Calcolatori Elettronici I A.A. 2010-2011 Macchine sequenziali Lezione 14 Università degli Studi di Napoli Federico II Facoltà di Ingegneria Automa a Stati Finiti (ASF) E una prima astrazione di

Dettagli

Calcolatori Elettronici B a.a. 2006/2007

Calcolatori Elettronici B a.a. 2006/2007 Calcolatori Elettronici B a.a. 2006/2007 RETI LOGICHE: RICHIAMI Massimiliano Giacomin 1 Due tipi di unità funzionali Elementi di tipo combinatorio: - valori di uscita dipendono solo da valori in ingresso

Dettagli

LE SUCCESSIONI 1. COS E UNA SUCCESSIONE

LE SUCCESSIONI 1. COS E UNA SUCCESSIONE LE SUCCESSIONI 1. COS E UNA SUCCESSIONE La sequenza costituisce un esempio di SUCCESSIONE. Ecco un altro esempio di successione: Una successione è dunque una sequenza infinita di numeri reali (ma potrebbe

Dettagli

Laboratorio di Architettura degli Elaboratori - A.A. 2012/13

Laboratorio di Architettura degli Elaboratori - A.A. 2012/13 Università di Udine - Facoltà di Scienze Matematiche, Fisiche e Naturali Corso di Laurea in Informatica Laboratorio di Architettura degli Elaboratori - A.A. 2012/13 Circuiti logici, lezione 1 Sintetizzare

Dettagli

Tipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto:

Tipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto: Tipi primitivi Il linguaggio Java offre alcuni tipi di dato primitivi Una variabile di tipo primitivo può essere utilizzata direttamente. Non è un riferimento e non ha senso tentare di istanziarla mediante

Dettagli

C. P. U. MEMORIA CENTRALE

C. P. U. MEMORIA CENTRALE C. P. U. INGRESSO MEMORIA CENTRALE USCITA UNITA DI MEMORIA DI MASSA La macchina di Von Neumann Negli anni 40 lo scienziato ungherese Von Neumann realizzò il primo calcolatore digitale con programma memorizzato

Dettagli

Funzioni in C. Violetta Lonati

Funzioni in C. Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica Funzioni - in breve: Funzioni Definizione di funzioni

Dettagli

Appunti sulla Macchina di Turing. Macchina di Turing

Appunti sulla Macchina di Turing. Macchina di Turing Macchina di Turing Una macchina di Turing è costituita dai seguenti elementi (vedi fig. 1): a) una unità di memoria, detta memoria esterna, consistente in un nastro illimitato in entrambi i sensi e suddiviso

Dettagli

Excel. A cura di Luigi Labonia. e-mail: luigi.lab@libero.it

Excel. A cura di Luigi Labonia. e-mail: luigi.lab@libero.it Excel A cura di Luigi Labonia e-mail: luigi.lab@libero.it Introduzione Un foglio elettronico è un applicazione comunemente usata per bilanci, previsioni ed altri compiti tipici del campo amministrativo

Dettagli

Famiglie logiche. Abbiamo visto come, diversi anni fa, venivano realizzate in concreto le funzioni

Famiglie logiche. Abbiamo visto come, diversi anni fa, venivano realizzate in concreto le funzioni Famiglie logiche I parametri delle famiglie logiche Livelli di tensione TTL Le correnti di source e di sink Velocità di una famiglia logica Vcc Il consumo Fan-in La densità di integrazione I parametri

Dettagli

Organizzazione degli archivi

Organizzazione degli archivi COSA E UN DATA-BASE (DB)? è l insieme di dati relativo ad un sistema informativo COSA CARATTERIZZA UN DB? la struttura dei dati le relazioni fra i dati I REQUISITI DI UN DB SONO: la ridondanza minima i

Dettagli

Pagina 2 di 14. Indice

Pagina 2 di 14. Indice Manuale d uso per la raccolta: Sicurezza e continuità del servizio di distribuzione gas (comma 28.17 dell'allegato A alla deliberazione 574/2013/R/gas) Pagina 1 di 14 Indice 1. Accesso alla raccolta...

Dettagli

Introduzione alla programmazione in C

Introduzione alla programmazione in C Introduzione alla programmazione in C Testi Consigliati: A. Kelley & I. Pohl C didattica e programmazione B.W. Kernighan & D. M. Ritchie Linguaggio C P. Tosoratti Introduzione all informatica Materiale

Dettagli

Funzioni di Trasferimento Movimenti

Funzioni di Trasferimento Movimenti Airone Gestione Rifiuti Funzioni di Trasferimento Movimenti Airone Funzione di Trasferimento Movimenti pag. 1 Indice INTRODUZIONE... 3 FUNZIONE DI TRASFERIMENTO MOVIMENTI... 3 Configurazione dell applicazione...4

Dettagli

CPU. Maurizio Palesi

CPU. Maurizio Palesi CPU Central Processing Unit 1 Organizzazione Tipica CPU Dispositivi di I/O Unità di controllo Unità aritmetico logica (ALU) Terminale Stampante Registri CPU Memoria centrale Unità disco Bus 2 L'Esecutore

Dettagli

FONDAMENTI di INFORMATICA L. Mezzalira

FONDAMENTI di INFORMATICA L. Mezzalira FONDAMENTI di INFORMATICA L. Mezzalira Possibili domande 1 --- Caratteristiche delle macchine tipiche dell informatica Componenti hardware del modello funzionale di sistema informatico Componenti software

Dettagli

Corso di Informatica

Corso di Informatica CdLS in Odontoiatria e Protesi Dentarie Corso di Informatica Prof. Crescenzio Gallo crescenzio.gallo@unifg.it La memoria principale 2 izzazione della memoria principale ria principale è organizzata come

Dettagli

Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati

Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati Algoritmi Algoritmi Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati Il procedimento (chiamato algoritmo) è composto da passi elementari

Dettagli

Registri. «a2» 2013.11.11 --- Copyright Daniele Giacomini -- appunti2@gmail.com http://informaticalibera.net

Registri. «a2» 2013.11.11 --- Copyright Daniele Giacomini -- appunti2@gmail.com http://informaticalibera.net «a2» 2013.11.11 --- Copyright Daniele Giacomini -- appunti2@gmail.com http://informaticalibera.net Registri Registri semplici....................................... 1823 Registri a scorrimento..................................

Dettagli

La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1)

La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1) La gestione di un calcolatore Sistemi Operativi primo modulo Introduzione Augusto Celentano Università Ca Foscari Venezia Corso di Laurea in Informatica Un calcolatore (sistema di elaborazione) è un sistema

Dettagli

ARCHITETTURA DI RETE FOLEGNANI ANDREA

ARCHITETTURA DI RETE FOLEGNANI ANDREA ARCHITETTURA DI RETE FOLEGNANI ANDREA INTRODUZIONE È denominata Architettura di rete un insieme di livelli e protocolli. Le reti sono organizzate gerarchicamente in livelli, ciascuno dei quali interagisce

Dettagli

Il database management system Access

Il database management system Access Il database management system Access Corso di autoistruzione http://www.manualipc.it/manuali/ corso/manuali.php? idcap=00&idman=17&size=12&sid= INTRODUZIONE Il concetto di base di dati, database o archivio

Dettagli

Struttura del calcolatore

Struttura del calcolatore Struttura del calcolatore Proprietà: Flessibilità: la stessa macchina può essere utilizzata per compiti differenti, nessuno dei quali è predefinito al momento della costruzione Velocità di elaborazione

Dettagli

Più processori uguale più velocità?

Più processori uguale più velocità? Più processori uguale più velocità? e un processore impiega per eseguire un programma un tempo T, un sistema formato da P processori dello stesso tipo esegue lo stesso programma in un tempo TP T / P? In

Dettagli

Creare diagrammi di Gantt con Visio 2003

Creare diagrammi di Gantt con Visio 2003 Creare diagrammi di Gantt con Visio 2003 La fase di pianificazione di un progetto è sicuramente molto delicata e alquanto complessa, in quanto bisogna riuscire a definire una scomposizione del progetto

Dettagli

Strumenti e metodi per la redazione della carta del pericolo da fenomeni torrentizi

Strumenti e metodi per la redazione della carta del pericolo da fenomeni torrentizi Versione 2.0 Strumenti e metodi per la redazione della carta del pericolo da fenomeni torrentizi Corso anno 2011 E. MANUALE UTILIZZO HAZARD MAPPER Il programma Hazard Mapper è stato realizzato per redarre,

Dettagli

SPC e distribuzione normale con Access

SPC e distribuzione normale con Access SPC e distribuzione normale con Access In questo articolo esamineremo una applicazione Access per il calcolo e la rappresentazione grafica della distribuzione normale, collegata con tabelle di Clienti,

Dettagli

IL SOFTWARE SECONDO LA NORMA UNI EN ISO 13849-1:2008 (IIA PARTE) 1

IL SOFTWARE SECONDO LA NORMA UNI EN ISO 13849-1:2008 (IIA PARTE) 1 Ernesto Cappelletti (ErnestoCappelletti) IL SOFTWARE SECONDO LA NORMA UNI EN ISO 13849-1:2008 (IIA PARTE) 6 April 2012 1. Requisiti per la scrittura del software secondo la norma UNI EN ISO 13849-1:2008

Dettagli

Calcolatori Elettronici A a.a. 2008/2009. RETI SEQUENZIALI: ESERCIZI Massimiliano Giacomin

Calcolatori Elettronici A a.a. 2008/2009. RETI SEQUENZIALI: ESERCIZI Massimiliano Giacomin Calcolatori Elettronici A a.a. 2008/2009 RETI SEQUENZIALI: ESERCIZI Massimiliano Giacomin 1 Esercizio 1: implementazione di contatori Un contatore è un dispositivo sequenziale che aggiorna periodicamente

Dettagli

Dispensa di Informatica I.1

Dispensa di Informatica I.1 IL COMPUTER: CONCETTI GENERALI Il Computer (o elaboratore) è un insieme di dispositivi di diversa natura in grado di acquisire dall'esterno dati e algoritmi e produrre in uscita i risultati dell'elaborazione.

Dettagli

Architettura dei calcolatori II parte Memorie

Architettura dei calcolatori II parte Memorie Università degli Studi di Palermo Dipartimento di Ingegneria Informatica Informatica ed Elementi di Statistica 3 c.f.u. Anno Accademico 2010/2011 Docente: ing. Salvatore Sorce Architettura dei calcolatori

Dettagli

Laboratorio di Informatica

Laboratorio di Informatica per chimica industriale e chimica applicata e ambientale LEZIONE 4 - parte II La memoria 1 La memoriaparametri di caratterizzazione Un dato dispositivo di memoria è caratterizzato da : velocità di accesso,

Dettagli

LABORATORIO DI SISTEMI

LABORATORIO DI SISTEMI ALUNNO: Fratto Claudio CLASSE: IV B Informatico ESERCITAZIONE N : 1 LABORATORIO DI SISTEMI OGGETTO: Progettare e collaudare un circuito digitale capace di copiare le informazioni di una memoria PROM in

Dettagli

Università degli Studi di L Aquila. Facoltà di Ingegneria. Corso di Laurea in Ingegneria Elettronica Corso di Sistemi Informativi

Università degli Studi di L Aquila. Facoltà di Ingegneria. Corso di Laurea in Ingegneria Elettronica Corso di Sistemi Informativi Università degli Studi di L Aquila Facoltà di Ingegneria Corso di Laurea in Ingegneria Elettronica Corso di Sistemi Informativi Prof. Gaetanino Paolone Dott. Ottavio Pascale a.a.2003-2004 Progetto Campo

Dettagli

Database. Si ringrazia Marco Bertini per le slides

Database. Si ringrazia Marco Bertini per le slides Database Si ringrazia Marco Bertini per le slides Obiettivo Concetti base dati e informazioni cos è un database terminologia Modelli organizzativi flat file database relazionali Principi e linee guida

Dettagli

Memorie ROM (Read Only Memory)

Memorie ROM (Read Only Memory) Memorie ROM (Read Only Memory) Considerando la prima forma canonica, la realizzazione di qualsiasi funzione di m variabili richiede un numero di porte AND pari al numero dei suoi mintermini e di prolungare

Dettagli

Raggruppamenti Conti Movimenti

Raggruppamenti Conti Movimenti ESERCITAZIONE PIANO DEI CONTI Vogliamo creare un programma che ci permetta di gestire, in un DB, il Piano dei conti di un azienda. Nel corso della gestione d esercizio, si potranno registrare gli articoli

Dettagli

ALGEBRA DELLE PROPOSIZIONI

ALGEBRA DELLE PROPOSIZIONI Università di Salerno Fondamenti di Informatica Corso di Laurea Ingegneria Corso B Docente: Ing. Giovanni Secondulfo Anno Accademico 2010-2011 ALGEBRA DELLE PROPOSIZIONI Fondamenti di Informatica Algebra

Dettagli

Capitolo 13: L offerta dell impresa e il surplus del produttore

Capitolo 13: L offerta dell impresa e il surplus del produttore Capitolo 13: L offerta dell impresa e il surplus del produttore 13.1: Introduzione L analisi dei due capitoli precedenti ha fornito tutti i concetti necessari per affrontare l argomento di questo capitolo:

Dettagli

Algebra Di Boole. Definiamo ora che esiste un segnale avente valore opposto di quello assunto dalla variabile X.

Algebra Di Boole. Definiamo ora che esiste un segnale avente valore opposto di quello assunto dalla variabile X. Algebra Di Boole L algebra di Boole è un ramo della matematica basato sul calcolo logico a due valori di verità (vero, falso). Con alcune leggi particolari consente di operare su proposizioni allo stesso

Dettagli

Accise Settore Prodotti Alcolici Manuale d uso

Accise Settore Prodotti Alcolici Manuale d uso Olitech Informatica Telematico Accise Accise Settore Prodotti Alcolici Manuale d uso Versione del manuale: 26-01-2010 1 Indice Accise Settore Prodotti Alcolici Manuale d uso... 1 Indice... 2 Funzionalità

Dettagli

I CONTATORI SINCRONI

I CONTATORI SINCRONI I CONTATORI SINCRONI Premessa I contatori sincroni sono temporizzati in modo tale che tutti i Flip-Flop sono commutato ( triggerati ) nello stesso istante. Ciò si realizza collegando la linea del clock

Dettagli

Matematica in laboratorio

Matematica in laboratorio Unità 1 Attività guidate Attività 1 Foglio elettronico Divisibilità tra numeri naturali Costruisci un foglio di lavoro per determinare se a è divisibile per b, essendo a e b due numeri naturali, con a

Dettagli

Matematica generale CTF

Matematica generale CTF Successioni numeriche 19 agosto 2015 Definizione di successione Monotonìa e limitatezza Forme indeterminate Successioni infinitesime Comportamento asintotico Criterio del rapporto per le successioni Definizione

Dettagli

Capitolo 3. L applicazione Java Diagrammi ER. 3.1 La finestra iniziale, il menu e la barra pulsanti

Capitolo 3. L applicazione Java Diagrammi ER. 3.1 La finestra iniziale, il menu e la barra pulsanti Capitolo 3 L applicazione Java Diagrammi ER Dopo le fasi di analisi, progettazione ed implementazione il software è stato compilato ed ora è pronto all uso; in questo capitolo mostreremo passo passo tutta

Dettagli

Architettura del calcolatore

Architettura del calcolatore Architettura del calcolatore La prima decomposizione di un calcolatore è relativa a due macro-componenti: Hardware Software Architettura del calcolatore L architettura dell hardware di un calcolatore reale

Dettagli

Gestione delle informazioni necessarie all attività di validazione degli studi di settore. Trasmissione degli esempi da valutare.

Gestione delle informazioni necessarie all attività di validazione degli studi di settore. Trasmissione degli esempi da valutare. Gestione delle informazioni necessarie all attività di validazione degli studi di settore. Trasmissione degli esempi da valutare. E stato previsto l utilizzo di uno specifico prodotto informatico (denominato

Dettagli

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione.

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione. Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione. Compito fondamentale di un S.O. è infatti la gestione dell

Dettagli

Ing. Paolo Domenici PREFAZIONE

Ing. Paolo Domenici PREFAZIONE Ing. Paolo Domenici SISTEMI A MICROPROCESSORE PREFAZIONE Il corso ha lo scopo di fornire i concetti fondamentali dei sistemi a microprocessore in modo semplice e interattivo. È costituito da una parte

Dettagli

L espressione torna invece sempre vera (quindi la soluzione originale) se cambiamo contemporaneamente il verso: 1 < 0.

L espressione torna invece sempre vera (quindi la soluzione originale) se cambiamo contemporaneamente il verso: 1 < 0. EQUAZIONI E DISEQUAZIONI Le uguaglianze fra espressioni numeriche si chiamano equazioni. Cercare le soluzioni dell equazione vuol dire cercare quelle combinazioni delle lettere che vi compaiono che la

Dettagli

CONVERTITORI DIGITALE/ANALOGICO (DAC)

CONVERTITORI DIGITALE/ANALOGICO (DAC) CONVERTITORI DIGITALE/ANALOGICO (DAC) Un convertitore digitale/analogico (DAC: digital to analog converter) è un circuito che fornisce in uscita una grandezza analogica proporzionale alla parola di n bit

Dettagli

Arduino: Programmazione

Arduino: Programmazione Programmazione formalmente ispirata al linguaggio C da cui deriva. I programmi in ARDUINO sono chiamati Sketch. Un programma è una serie di istruzioni che vengono lette dall alto verso il basso e convertite

Dettagli

Automazione Industriale (scheduling+mms) scheduling+mms. adacher@dia.uniroma3.it

Automazione Industriale (scheduling+mms) scheduling+mms. adacher@dia.uniroma3.it Automazione Industriale (scheduling+mms) scheduling+mms adacher@dia.uniroma3.it Introduzione Sistemi e Modelli Lo studio e l analisi di sistemi tramite una rappresentazione astratta o una sua formalizzazione

Dettagli

Pianificazione e progettazione

Pianificazione e progettazione Pianificazione e progettazione L analisi preventiva degli eventi e delle loro implicazioni rappresenta una necessità sempre più forte all interno di tutte le organizzazioni variamente complesse. L osservazione

Dettagli

Descrizione attività

Descrizione attività Descrizione attività Associazione complessa Nelle attività di associazione complessa le celle possono essere in quantità differente nelle due griglie per stabilire vari tipi di corrispondenza: biunivoca,

Dettagli

CALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.6. Unità di controllo microprogrammata

CALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.6. Unità di controllo microprogrammata Lezione n.6 Unità di controllo microprogrammata 1 Sommario Unità di controllo microprogrammata Ottimizzazione, per ottimizzare lo spazio di memoria occupato Il moltiplicatore binario Esempio di architettura

Dettagli

Airone Gestione Rifiuti Funzioni di Esportazione e Importazione

Airone Gestione Rifiuti Funzioni di Esportazione e Importazione Airone Gestione Rifiuti Funzioni di Esportazione e Importazione Airone Funzioni di Esportazione Importazione 1 Indice AIRONE GESTIONE RIFIUTI... 1 FUNZIONI DI ESPORTAZIONE E IMPORTAZIONE... 1 INDICE...

Dettagli

Il software impiegato su un computer si distingue in: Sistema Operativo Compilatori per produrre programmi

Il software impiegato su un computer si distingue in: Sistema Operativo Compilatori per produrre programmi Il Software Il software impiegato su un computer si distingue in: Software di sistema Sistema Operativo Compilatori per produrre programmi Software applicativo Elaborazione testi Fogli elettronici Basi

Dettagli

Il file seme o file modello del disegno

Il file seme o file modello del disegno o file modello del disegno Alla fine del capitolo saremo in grado di: Comprendere il significato e l utilizzo del file seme. Scegliere tra file seme bidimensionali e tridimensionali. Creare nuovi disegni.

Dettagli

Introduzione al MATLAB c Parte 2

Introduzione al MATLAB c Parte 2 Introduzione al MATLAB c Parte 2 Lucia Gastaldi Dipartimento di Matematica, http://dm.ing.unibs.it/gastaldi/ 18 gennaio 2008 Outline 1 M-file di tipo Script e Function Script Function 2 Costrutti di programmazione

Dettagli

APPUNTI DI MATEMATICA ALGEBRA \ INSIEMISTICA \ TEORIA DEGLI INSIEMI (1)

APPUNTI DI MATEMATICA ALGEBRA \ INSIEMISTICA \ TEORIA DEGLI INSIEMI (1) ALGEBRA \ INSIEMISTICA \ TEORIA DEGLI INSIEMI (1) Un insieme è una collezione di oggetti. Il concetto di insieme è un concetto primitivo. Deve esistere un criterio chiaro, preciso, non ambiguo, inequivocabile,

Dettagli

Manuale d uso per la raccolta: Sicurezza degli impianti di utenza a gas - Postcontatore

Manuale d uso per la raccolta: Sicurezza degli impianti di utenza a gas - Postcontatore Manuale d uso per la raccolta: Sicurezza degli impianti di utenza a gas - Postcontatore 1. Obbligo di comunicazione dei dati... 2 2. Accesso alla raccolta... 2 3. Compilazione... 6 2.1 Dati generali Sicurezza

Dettagli

Reti Logiche A Appello del 24 febbraio 2010

Reti Logiche A Appello del 24 febbraio 2010 Politecnico di Milano Dipartimento di Elettronica e Informazione prof.ssa Anna Antola prof. Fabrizio Ferrandi Reti Logiche A Appello del 24 febbraio 2010 Matricola prof.ssa Cristiana Bolchini Cognome Nome

Dettagli

Esercizi su. Funzioni

Esercizi su. Funzioni Esercizi su Funzioni ๒ Varie Tracce extra Sul sito del corso ๓ Esercizi funz_max.cc funz_fattoriale.cc ๔ Documentazione Il codice va documentato (commentato) Leggibilità Riduzione degli errori Manutenibilità

Dettagli

Luigi Piroddi piroddi@elet.polimi.it

Luigi Piroddi piroddi@elet.polimi.it Automazione industriale dispense del corso 10. Reti di Petri: analisi strutturale Luigi Piroddi piroddi@elet.polimi.it Analisi strutturale Un alternativa all analisi esaustiva basata sul grafo di raggiungibilità,

Dettagli

Calcolatori Elettronici A a.a. 2008/2009

Calcolatori Elettronici A a.a. 2008/2009 Calcolatori Elettronici A a.a. 2008/2009 PRESTAZIONI DEL CALCOLATORE Massimiliano Giacomin Due dimensioni Tempo di risposta (o tempo di esecuzione): il tempo totale impiegato per eseguire un task (include

Dettagli

Per scrivere una procedura che non deve restituire nessun valore e deve solo contenere le informazioni per le modalità delle porte e controlli

Per scrivere una procedura che non deve restituire nessun valore e deve solo contenere le informazioni per le modalità delle porte e controlli CODICE Le fonti in cui si possono trovare tutorial o esempi di progetti utilizzati con Arduino si trovano nel sito ufficiale di Arduino, oppure nei forum di domotica e robotica. Il codice utilizzato per

Dettagli

Fasi di creazione di un programma

Fasi di creazione di un programma Fasi di creazione di un programma 1. Studio Preliminare 2. Analisi del Sistema 6. Manutenzione e Test 3. Progettazione 5. Implementazione 4. Sviluppo 41 Sviluppo di programmi Per la costruzione di un programma

Dettagli

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14. Pietro Frasca.

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14. Pietro Frasca. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14 Pietro Frasca Lezione 11 Martedì 12-11-2013 1 Tecniche di allocazione mediante free list Generalmente,

Dettagli

Correttezza. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 10. A. Miola Novembre 2007

Correttezza. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 10. A. Miola Novembre 2007 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa 10 Correttezza A. Miola Novembre 2007 http://www.dia.uniroma3.it/~java/fondinf1/ Correttezza 1 Contenuti Introduzione alla correttezza

Dettagli

COS È UN LINGUAGGIO? LINGUAGGI DI ALTO LIVELLO LA NOZIONE DI LINGUAGGIO LINGUAGGIO & PROGRAMMA

COS È UN LINGUAGGIO? LINGUAGGI DI ALTO LIVELLO LA NOZIONE DI LINGUAGGIO LINGUAGGIO & PROGRAMMA LINGUAGGI DI ALTO LIVELLO Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware COS È UN LINGUAGGIO? Un linguaggio è un insieme di parole e di metodi di combinazione delle

Dettagli

Gerarchia delle memorie

Gerarchia delle memorie Memorie Gerarchia delle memorie Cache CPU Centrale Massa Distanza Capacità Tempi di accesso Costo 2 1 Le memorie centrali Nella macchina di Von Neumann, le istruzioni e i dati sono contenute in una memoria

Dettagli

La propagazione delle onde luminose può essere studiata per mezzo delle equazioni di Maxwell. Tuttavia, nella maggior parte dei casi è possibile

La propagazione delle onde luminose può essere studiata per mezzo delle equazioni di Maxwell. Tuttavia, nella maggior parte dei casi è possibile Elementi di ottica L ottica si occupa dello studio dei percorsi dei raggi luminosi e dei fenomeni legati alla propagazione della luce in generale. Lo studio dell ottica nella fisica moderna si basa sul

Dettagli

- la possibilità di monitorare lo stato attuale della macchina - fornire una reportistica sulla base di alcune variabili

- la possibilità di monitorare lo stato attuale della macchina - fornire una reportistica sulla base di alcune variabili Il GAI WEB PORTAL nasce con un duplice obiettivo: - la possibilità di monitorare lo stato attuale della macchina - fornire una reportistica sulla base di alcune variabili Si tratta di un software installato

Dettagli

CALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.7. Il moltiplicatore binario e il ciclo di base di una CPU

CALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.7. Il moltiplicatore binario e il ciclo di base di una CPU Lezione n.7 Il moltiplicatore binario e il ciclo di base di una CPU 1 SOMMARIO Architettura del moltiplicatore Architettura di base di una CPU Ciclo principale di base di una CPU Riprendiamo l analisi

Dettagli

L applicazione dei vettori di collaudo

L applicazione dei vettori di collaudo L applicazione dei vettori di collaudo Fulvio Corno Maurizio Rebaudengo Matteo Sonza Reorda Politecnico di Torino Dipartimento di Automatica e Informatica Sommario Introduzione Gli ATE I programmi di collaudo.

Dettagli

La prima tabella da creare è quella relativa all elenco delle modalità mediante le quali è possibile identificare la corrispondenza (Posta

La prima tabella da creare è quella relativa all elenco delle modalità mediante le quali è possibile identificare la corrispondenza (Posta Diamo ordine all ufficio protocollo a cura della redazione OFFICE MAGAZINE Come sostituire il registro cartaceo dedicato alla gestione della corrispondenza in entrata e in uscita delle aziende e degli

Dettagli

L unità di elaborazione pipeline L unità Pipelining

L unità di elaborazione pipeline L unità Pipelining Struttura del processore L unità di elaborazione pipeline Corso ACSO prof. Cristina SILVANO Politecnico di Milano Incremento delle Per migliorare ulteriormente le si può: ridurre il periodo di clock aumentare

Dettagli

Volume GESTFLORA. Gestione aziende agricole e floricole. Guidaall uso del software

Volume GESTFLORA. Gestione aziende agricole e floricole. Guidaall uso del software Volume GESTFLORA Gestione aziende agricole e floricole Guidaall uso del software GESTIONE AZIENDE AGRICOLE E FLORICOLE Guida all uso del software GestFlora Ver. 2.00 Inter-Ware Srl Viadegli Innocenti,

Dettagli