Progettazione di circuiti digitali e linguaggio VHDL

Размер: px
Начинать показ со страницы:

Download "Progettazione di circuiti digitali e linguaggio VHDL"

Транскрипт

1 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à di Firenze

2 Sommario Circuiti digitali integrati. Progettazione digitale e VHDL: descrizione del progetto: come progettare un circuito logico in VHDL; compilazione e verifica del progetto. Temporizzazioni dei segnali e macchine sincrone. Struttura della macchina sincrona e realizzazione in VHDL. Upset ed errori logici. Circuito asincrono e risincronizzazione. 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...). Insieme 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 è un insieme 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 o printed circuit board PCB). Dopo la configurazione una parte della FPGA risulta inutilizzata. Celle logiche: (a) combinatorie: solo logica combinatoria: combinazione di porte AND, NOT ecc.; (b) sequenziali: - un flip-flop (memoria a 1 bit); - logica combinatoria. 5

6 Esempio: FPGA Actel Contengono celle logiche dei due tipi: (a) cella combinatoria. (b) cella sequenziale. 6

7 Esempio: FPGA Altera Contengono un unica cella logica di tipo sequenziale: integra una parte combinatoria più complessa del caso Actel. Progettata per massima versatilità. 7

8 Progettazione digitale e VHDL descrizione del progetto: come progettare un circuito logico in VHDL 8

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

10 Descrizione funzionale o strutturale? Dall altra parte, in una descrizione strutturale (ad esempio un disegno schematico) viene indicata una sola struttura logica interna fra le tante equivalenti. La descrizione strutturale diventa utile quando ci sono esigenze molto particolari in termini di numero di celle utilizzate, ritardi fra ingressi e uscite ecc. La descrizione funzionale, in quanto astratta, è di più immediata comprensione per l utente rispetto a quella strutturale. Risparmio di tempo durante la codifica del circuito e le successive modifiche/correzioni. Minore possibilità di introdurre errori. Diventa in pratica indispensabile per circuiti di media-alta complessità (> 100 celle elementari). Analogia con C, FORTRAN rispetto a linguaggio macchina per un processore. NOTA: in VHDL è anche possibile effettuare una descrizione strutturale (porte AND, NOT e flip-flop) del tutto analoga al disegno schematico. In genere un codice VHDL contiene un insieme di descrizioni funzionali e strutturali. 10

11 (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/funzionalità 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; -- questa descrizione è strutturale (una specifica combinazione di porte logiche), non funzionale 11

12 Progettare un generico circuito logico Un generico circuito logico (FPGA, ASIC...) è una struttura sequenziale o macchina logica, composta cioè di un insieme di flip-flop e di parti puramente combinatorie (combinazioni di NOT, AND ecc.). I flip-flop memorizzano lo stato logico della macchina. Le parti combinatorie definiscono con la loro struttura la sequenza degli stati del circuito. Un circuito logico è in genere suddiviso per comodità pratica in un certo numero di blocchi logici o componenti organizzati in maniera gerarchica. Conviene definire la gerarchia in modo da poter ripetere più volte nel progetto lo stesso componente e, se possibile, far coincidere la funzionalità di un componente con quella di una macro. 12

13 Macrofunzioni ( macro ) I componenti più comuni possono in genere essere ottenuti senza codificarli a mano (in VHDL o disegno schematico), utilizzando un software generatore di macrofunzioni, accessibile tramite interfaccia grafica nel software di sviluppo (in Quartus: 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, clear ecc.) La macrofunzione viene inclusa nella struttura gerarchica del progetto come gli altri componenti. In genere la macrofunzione prodotta contiene una descrizione strutturale tale da garantire la funzionalità desiderata nel dispositivo reale. Prima di scrivere il codice per realizzare una data funzione logica, verificare sempre se è possibile utilizzare una o più macro! Risparmio di tempo notevole (servono pochi secondi per generare una macro). Un blocco di codice VHDL scritto a mano raramente potrà essere meglio ottimizzato della macro equivalente; in ogni caso occorrerebbe dare una specifica descrizione strutturale e ottimizzata. 13

14 (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 -- 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 del componente devono corrispondere a un entità decritta altrove) port (input1, input2: in std_logic; output: out std_logic ); end component; begin in1_and_in2 <= in1_pin AND in2_pin; logic_function_inst1: logic_function port map ( -- chiamata ( instance ) del componente con mappatura dei suoi segnali esterni sui segnali interni o esterni di main input1 => in1_and_in2, -- segnale interno di main input2 => in3_pin, -- segnale esterno di main output => out_pin ); end arch2; 14

15 (Es. 2) Descrizione del componente -- tipicamente il componente è descritto in un file separato, come blocco logico indipendente library IEEE; use IEEE.std_logic_1164.all; entity logic_function is port ( input1, input2: in std_logic; -- l interfaccia deve essere coerente con quanto dichiarato nella architettura 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; 15

16 Uso dei componenti Lo stesso componente (blocco logico) può essere inserito in N copie (cioè chiamato N volte) in uno stesso progetto VHDL. Ogni copia è identificata da una diversa etichetta (label): logic_function_inst1: logic_function port map ( ); logic_function_inst2: logic_function port map ( ); Nel caso di componente originale: per modificare tutte le copie è sufficiente cambiare una volta il codice che descrive l architettura del componente; è possibile definire tante diverse architetture per uno stesso componente e poi scegliere quella da utilizzare in compilazione: entity logic_function is port ( input1, input2: in std_logic; output: out std_logic ); end logic_function; for all: logic_function use entity work.logic_function(arch_chosen); 16

17 Come descrivere un architettura in VHDL Un architettura in VHDL può contenere 3 diverse tipologie descrittive (inserite per un numero a piacere di volte fra begin e end): architecture arch_simple of logic_function is begin... <<<<<<<<<< QUI end arch_simple; Prima tipologia: chiamata di un componente la cui architettura è indicata altrove (eventualmente una macro): example_instance: example port map ( ); Seconda tipologia: assegnazione (descrizione strutturale): architecture struct of example is begin output <= input1 OR NOT input2; end struct; 17

18 Come descrivere un architettura in VHDL Terza tipologia: processo (descrizione funzionale): architecture behav of example is -- funzionale -->> behavioural begin process (input1, input2) -- lista di sensibilità: contiene gli ingressi del componente che vengono valutati nelle condizioni if...end if e simili begin -- struttura interna del componente, descritta in maniera astratta: diversamente dall assegnzione precedente, non indica una specifica data combinazione di NOT e AND fra quelle equivalenti, ma piuttosto indica la funzione desiderata, cioè le combinazioni di valori di ingresso per cui l uscita deve essere 1 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 behav; NOTA: assegnazione e processo non fanno altro che descrivere componenti interni specificandoli immediatamente, invece di rimandare ad una descrizione del componente fatta altrove. 18

19 Concetto di concorrenza L'ordine, all interno dell architettura, in cui vengono elencati chiamate, assegnazioni e processi non ha effetto sulla struttura del circuito logico. Il codice VHDL è una rappresentazione unidimensionale (un elenco) dei componenti del circuito. Il disegno schematico è una rappresentazione bidimensionale. Il codice VHDL è analogo al codice C ecc., ma solo per certi aspetti. In particolare, l elenco di componenti nell architettura VHDL non ha nulla a che vedere con l elenco di istruzioni elencate in un programma C. Tutti i componenti dell elenco VHDL sono concorrenti simultaneamente a definire la funzionalità del circuito, in quanto fra loro interconnessi. 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 componente e quindi degli ingressi di altri componenti, indipendentemente da dove sono stati scritti nel codice! Dall altro lato, le istruzioni dell elenco C in una data routine sono necessariamente attive una alla volta nel tempo. 19

20 Progettazione digitale e VHDL compilazione e verifica del progetto 20

21 Il compilatore agisce in due fasi. Compilazione del progetto Per le FPGA: spesso due software distinti; unico software (Quartus) nel caso di Altera. 1) Sintesi. Il codice VHDL (o schematico) è tradotto in una specifica struttura di porte logiche elementari (AND, NOT e flip-flop): la netlist. Input: il codice VHDL (uno o più file di testo.vhd). Output: tipicamente un file.edf cioè con formato EDIF (Electronic Design Interchange Format, altro standard industriale). La netlist non fa riferimento ad alcun dispositivo specifico (FPGA o ASIC). 2) Fit ( adattamento ) o place and route ( posizionamento e interconnessione ). La netlist è tradotta in un codice di configurazione per un determinato dispositivo, e salvato in uno o più file di configurazione, in modo da realizzare una determinata struttura reale che svolga la funzionalità desiderata. Per le FPGA: il fitter (software) e il codice di configurazione cambiano a seconda del modello di FPGA e della modalità di configurazione (dispositivo programmatore, memoria flash sul circuito stampato ecc.). 21

22 Sintesi e ottimizzazioni Con la sintesi la struttura logica viene automaticamente ottimizzata (sia che sia stata descritta in maniera funzionale o strutturale). Un esempio: sono eliminate le parti logiche ridondanti (duplicate nel codice originale) in modo da ridurre il numero di celle logiche necessarie. Si riduce la potenza assorbita (consumo). In ogni caso, il numero di celle in un dato dispositivo è limitato. Inoltre, il codice può così essere scritto in maniera non necessariamente sintetica, quindi più naturale e meglio leggibile. 22

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

24 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. NOTA: le temporizzazioni variano con i parametri operativi (V alim, T). NOTA: possibile anche una simulazione funzionale (più rapida), assumendo che le temporizzazioni nel circuito non influiscano sul comportamento del circuito (ipotesi realistica solo in pochi 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 (V alim, T); tutte le possibili casistiche di utilizzo (sequenze di segnali in ingresso) in cui il circuito logico verrà ad operare. 24

25 Temporizzazioni dei segnali e macchine sincrone 25

26 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). Temporizzazione dei segnali: indicano genericamente il ritardo fra la transizione in un punto fisico di una linea facente parte del circuito logico e la successiva transizione in un altro punto. Esse variano (in maniera più o meno significativa) con: tecnologia del circuito integrato: caratteristiche delle celle logiche (transistor) e delle interconnessioni (piste metalliche); tolleranze di fabbricazione: ogni singolo dispositivo di una serie ha caratteristiche che fluttuano in un intorno delle specifiche nominali del modello; struttura reale: struttura logico/fisica realizzata nel dispositivo; condizioni ambientali: temperatura e tensione di alimentazione; invecchiamento (aging) del dispositivo: da semplice usura o da radiazione assorbita. 26

27 Temporizzazioni e compilazione Il compilatore (place and route) sceglie e ottimizza la struttura reale (tipo di celle, loro disposizione geometrica e interconnessioni), allo scopo di massimizzare i margini temporali su setup e hold time. Il compilatore si basa su un modello approssimato delle temporizzazioni nel dispositivo (tecnologia, tolleranze, condizioni ambientali ammesse) e sulla massima frequenza operativa richiesta dall'utente. Il compilatore, se l algoritmo di place and route non è in grado di trovare una configurazione del circuito soddisfacente per tutti i flip-flop alle condizioni richieste, indica i cammini di segnale che violano setup o hold time. Conviene usare un metodo di progettazione che permetta al compilatore di massimizzare nella maniera più efficace i margini temporali su ciascun flip-flop del circuito. Vediamo quale... 27

28 Macchina sincrona: introduzione Il seguente metodo di progettazione è impiegato normalmente, se la particolare applicazione lo permette: si struttura il circuito digitale in un dato dispositivo come una macchina sincrona (o circuito sincrono), cioè un circuito logico caratterizzato dall avere un unico segnale come clock per tutti gli ingressi sincroni dei suoi flip-flop); il clock è tipicamente generato a partire da un oscillatore periodico ad alta stabilità (circuito integrato esterno). Più in generale, il circuito è diviso in blocchi gerarchici, ciascuno costituito da una macchina sincrona, e tutti sincroni fra loro (stesso clock). Ancora più in generale, può essere necessario suddividere il circuito in diverse macchine sincrone, ma asincrone fra loro (usano clock diversi). Il corretto metodo di progettazione per realizzare le interfacce asincrone verrà descritto in seguito. 28

29 Flip-flop: ingressi sincroni e asincroni Ingressi sincroni Internamente: hanno effetto sull uscita solo in corrispondenza del segnale di clock. Esternamente: possono essere pilotati da linee sincrone (che variano cioè con lo stesso segnale di clock del flip-flop) o asincrone. Ingressi asincroni Internamente: hanno effetto sull uscita immediatamente, indipendentemente dal clock. Esternamente: possono essere pilotati da linee sincrone o asincrone. 29

30 Macchina sincrona e setup time (1) Per un circuito sincrono, la relazione che garantisce la non violazione di setup time è: T CTO max + T comb max + T skew max + T setup max < T clock (ST) T CTO(i) (clock-to-out) è il ritardo di propagazione interno al flip-flop i-esimo. T comb(i) (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 stadi combinatori attraversati (tipicamente ogni stadio dà un ritardo inferiore a 0.1 ns); lunghezza delle piste metalliche che connettono due flip-flop attraverso vari stadi combinatori. 30

31 Macchina sincrona e setup time (2) Per un circuito sincrono, la relazione che garantisce la non violazione di setup time è: T CTO max + T comb max + T skew max + T setup max < T clock (ST) T skew(i-j) = t leading(i) -t leading(j) rappresenta lo sfasamento (skewness) fra i fronti di salita più vicini dei clock su flip-flop diversi. Deriva dalla diversa lunghezza del cammino del segnale di clock dall oscillatore ai due flip-flop. Può essere positivo o negativo: -T max skew < T skew(i-j) < T max skew T max skew > 0 Tipicamente T max skew << T clock Il margine a disposizione del compilatore per non violare il setup time si riduce per frequenze operative (frequenze di clock) maggiori. T setup_margin = T clock -(T CTO max + T comb max + T skew max + T setup max ) 31

32 Circuito asincrono e setup time Nel caso di circuito asincrono, consideriamo come riferimento il clock del secondo flipflop clock_2. T skew(1-2) = t leading(1) -t leading(2) può assumere, durante il funzionamento del circuito, qualsiasi valore fra - T clock_2 /2 e +T clock_2 /2. La relazione (ST) è quindi impossibile da soddisfare. 32

33 Macchina sincrona e hold time Per un circuito sincrono, la relazione che garantisce la non violazione di hold time è: T CTO min + T comb min -T skew max > T hold (HT) In questo caso la relazione non dipende dalla frequenza operativa (clock) e quindi può essere soddisfatta in maniera più agevole da parte del compilatore. 33

34 Tempo di salita/discesa I tempi di transizione (salita/discesa) sono stati fin qui trascurati (fronti verticali). Essi dipendono dal numero di porte pilotate da una singola linea (fan-out). La capacità di carico e quindi la costante di tempo sulla linea aumenta linearmente col numero di porte pilotate. Il compilatore si occupa di ottimizzare il circuito in modo che i tempi di transizione siano trascurabili rispetto alle altre temporizzazioni. In pratica durante la sintesi il fan-out viene limitato tramite la ridondanza (duplicazione) della parte logica in questione. 34

35 Struttura della macchina sincrona e realizzazione in VHDL. 35

36 Macchina sincrona: struttura La macchina sincrona può essere scomposta in due blocchi logici: un registro di stato ( status register ) a N bit (l insieme di tutti gli N flip-flop della macchina, con il clock comune); 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 fra due successivi impulsi di clock. La macchina sincrona è, per questo, anche chiamata macchina a stati. Ogni possibile configurazione di valori nei flip-flop costituisce uno stato. Gli stati possibili sono 2 N. Lo stato all impulso di clock successivo dipende da: stato presente ( (present) status ); LUT; valori degli ingressi sincroni di controllo. Uno stato può durare N impulsi di clock. 36

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

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

39 Macchina sincrona: esempio Conviene scegliere la struttura gerarchica della macchina sincrona in modo opportuno: una macchina principale Main che coordina e attiva varie macchine secondarie (componenti) quando necessario; una macchina secondaria Sec ADC dedicata a leggere l ADC e immagazzinare il dato in un registro temporaneo (registro: macro); 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. Ogni macchina secondaria è dedicata (specializzata) per 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 verso la RAM. 39

40 (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); una LUT (blocco puramente combinatorio). 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 funzionale (astratta) il bus di stato viene rappresentato in maniera ben leggibile nop, adc_read, ram_write1, ram_write2 -- la macchina che definisco in questo esempio ha 4 diversi stati (equivalenti ai possibili valori di 2 linee digitali: 00,01,10,11); ); -- descrizione funzionale (astratta) signal st_pres, st_next -- definisco 2 bus di stato di tipo st_value: stato presente e stato successivo : st_value; 40

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

42 (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 sottoinsieme dei possibili valori di un bus (gli altri valori non hanno nessun effetto); 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). case st_pres is when nop => -- No OPeration case synchro_trigg is -- case innestato (sottocaso) 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'; when '1' => -- c è un trigger!! st_next <= adc_read; -- passa allo stato successivo adc_read_start <= '1'; -- avvia la Sec ADC ram_write_start <= '0'; ram_data_select <= '0'; end case;... 42

43 (Es. 3) Macchina sincrona in VHDL... when adc_read => case adc_read_end is when '0' => st_next <= adc_read; -- resta nello stato presente (adc_read) adc_read_start <= '0'; ram_write_start <= '0'; ram_data_select <= '0'; when '1' => -- è terminata la lettura dell'adc (comunicazione da Sec ADC ) -- NOTA: il numero di cicli di clock in cui la macchina Main resta in un generico stato dipende dal segnale di controllo (flessibilità) st_next <= ram_write1; -- passa allo stato successivo adc_read_start <= '0'; ram_write_start <= '1'; -- avvia Sec RAM ram_data_select <= '0'; -- 0 seleziona il dato ADC ***** end case; Domanda: è consentito omettere un assegnazione, ad esempio la riga indicata con *****? -- Risposta: sì, ma 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 1, 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 clock precedente. 43

44 (Es. 3) Macchina sincrona in VHDL when ram_write1 => case ram_write_end is when '0' => st_next <= ram_write1; -- resta nello stato presente (ram_write1) adc_read_start <= '0'; ram_write_start <= '0'; ram_data_select <= '0'; when '1' => -- Sec 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 Sec RAM ram_data_select <= '1'; -- 1 seleziona il dato del contatore end case; 44

45 (Es. 3) Macchina sincrona in VHDL... when ram_write2 => case ram_write_end is 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 (davvero necessario? dipende dal funzionamento di Sec RAM ) when '1' => -- Sec 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'; end case; end case; end process; -- NOTA: non sono mai stati usati gli operatori AND, NOT ossia non è mai stata data una specifica descrizione strutturale altra logica: macchine secondarie ecc. (non descritti in queste dispense...) end arch; 45

46 Upset ed errori logici 46

47 Upset Cosa succederebbe se il setup o hold time di un generico flip-flop fosse violato per un certo fronte di salita del clock? 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) nello stato 0 o nello stato 1 (stati stabili), in maniera sostanzialmente imprevedibile: può quindi decadere nello stato logicamente sbagliato, può cioè avvenire l inversione (upset) del valore effettivo rispetto al valore logicamente atteso. Quindi: se setup o hold time sono violati può verificarsi un upset. Esempio: frequenza clock troppo elevata in una macchina sincrona; Altro esempio: due clock di frequenza diversa in un circuito asincrono. Un upset può essere prodotto anche da perturbazioni esterne, ad esempio le correnti parassite indotte nel flip-flop da una particella altamente ionizzante (ad es. un raggio cosmico). 47

48 Errori logici Qual è la conseguenza pratica dell upset? In generale (vedremo in seguito un caso particolare in cui ciò non avviene) 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). L errore logico può essere evitato in un sistema con tripla ridondanza per cui un segnale logico è realizzato da 3 segnali fisici; il valore associato è dato da quello presente in maggioranza. Come si rivela l'errore logico? Meccanismi per verificare la risposta del circuito in un tempo massimo prefissato: watchdog ( cane da guardia ): un contatore sempre attivo deve essere azzerato dal circuito prima che venga raggiunto un determinato contaggio, che farebbe partire un segnale di allarme; time-out sull esecuzione di un comando: la risposta a un comando deve avvenire entro un tempo massimo prefissato. Controllo delle sequenze di bit in uscita dalla macchina: controllo di parità: controllo del numero di 1 o controlli più sofisticati (ad es. Cyclic Redundancy Check); controlli sul formato dei dati: presenza di sequenze prefissate (pattern). 48

49 Errori logici Come si riporta il circuito in una configurazione corretta dopo aver rivelato la presenza di errore logico? Tipicamente con un impulso di reset asincrono inviato a tutti i flip-flop attraverso i loro ingressi asincroni (clear o preset), che riportano i 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. 49

50 Circuito asincrono e risincronizzazione 50

51 Circuito asincrono Abbiamo visto come si realizza un circuito sincrono immune da errori logici legati alle violazioni di setup e hold time. In un circuito sincrono si può fare in modo di evitare che avvengano tali violazioni. Resta da capire come fare a realizzare un circuito asincrono immune da errori logici legati alle medesime violazioni. In un circuito asincrono, non è in genere possibile evitare che avvengano tali violazioni e quindi degli upset (es.: due clock di frequenza diversa). 51

52 Campionamento asincrono combinatorio Vediamo un caso pratico di circuito asincrono. Una parte del circuito lavora con clock_a, l altra parte con clock_b. 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. L uscita del flip-flop A è quindi un segnale asincrono rispetto a clock_b, anche se viene inviato ad un ingresso che dovrebbe essere sincrono. 52

53 Campionamento asincrono combinatorio Sta avvenendo il campionamento asincrono (o risincronizzazione) sul segnale ready_a che è uscita di un elemento combinatorio (porta logica, non flip-flop). 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. NOTA: se il campionamento fosse sincrono (con setup e hold time soddisfatti), il glitch non avrebbe alcun effetto! 53

54 Come risincronizzare? Per evitare che gli inevitabili upset nel campionamento asincrono (o risincronizzazione) diano errori logici, conviene evitare di avere risincronizzazione di tipo combinatorio (cioè sull uscita di un elemento combinatorio), facendo solo campionamenti asincroni di tipo sequenziale (cioè direttamente sull uscita di un flip-flop). Infatti il campionamento asincrono di tipo sequenziale introduce upset in maniera inevitabilmente casuale ma prevedibile e controllabile, e soprattutto non comporta errori logici. 54

55 Campionamento asincrono sequenziale Inserendo un flip-flop si ha un segnale ready_a per definizione privo di glitch. ready_b può ancora avere un upset ma ciò non comporta un errore logico nella macchina B, che parte quando desiderato, cioè solo dopo che la macchina A ha comunicato di essere pronta con ready_a. ready_b replica tutti e soli i cambiamenti di stato di ready_a (non le transizioni!) 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. 55

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

Подробнее

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

Подробнее

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

Подробнее

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.

Подробнее

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

Подробнее

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

Подробнее

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

Подробнее

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

Подробнее

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.

Подробнее

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

Подробнее

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à

Подробнее

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

Подробнее

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

Подробнее

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

Подробнее

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

Подробнее

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

Подробнее

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

Подробнее

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:

Подробнее

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

Подробнее

Automazione Industriale (scheduling+mms) scheduling+mms. [email protected]

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

Подробнее

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,

Подробнее

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

Подробнее

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

Подробнее

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

Подробнее

Registri. «a2» 2013.11.11 --- Copyright Daniele Giacomini -- [email protected] http://informaticalibera.net

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

Подробнее

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

Подробнее

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

Подробнее

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

Подробнее

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche Software di sistema e software applicativo I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche Software soft ware soffice componente è la parte logica

Подробнее

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

Подробнее

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

Подробнее

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

Подробнее

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.

Подробнее

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

Подробнее

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

Подробнее

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,

Подробнее

Dispensa di database Access

Dispensa di database Access Dispensa di database Access Indice: Database come tabelle; fogli di lavoro e tabelle...2 Database con più tabelle; relazioni tra tabelle...2 Motore di database, complessità di un database; concetto di

Подробнее

Excel. A cura di Luigi Labonia. e-mail: [email protected]

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

Подробнее

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

Подробнее

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

Подробнее

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

Подробнее

Registratori di Cassa

Registratori di Cassa modulo Registratori di Cassa Interfacciamento con Registratore di Cassa RCH Nucleo@light GDO BREVE GUIDA ( su logiche di funzionamento e modalità d uso ) www.impresa24.ilsole24ore.com 1 Sommario Introduzione...

Подробнее

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

Подробнее

CAPACITÀ DI PROCESSO (PROCESS CAPABILITY)

CAPACITÀ DI PROCESSO (PROCESS CAPABILITY) CICLO DI LEZIONI per Progetto e Gestione della Qualità Facoltà di Ingegneria CAPACITÀ DI PROCESSO (PROCESS CAPABILITY) Carlo Noè Università Carlo Cattaneo e-mail: [email protected] 1 CAPACITÀ DI PROCESSO Il

Подробнее

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

Подробнее

Il Sistema Operativo. C. Marrocco. Università degli Studi di Cassino

Il Sistema Operativo. C. Marrocco. Università degli Studi di Cassino Il Sistema Operativo Il Sistema Operativo è uno strato software che: opera direttamente sull hardware; isola dai dettagli dell architettura hardware; fornisce un insieme di funzionalità di alto livello.

Подробнее

GUIDA RAPIDA PER LA COMPILAZIONE DELLA SCHEDA CCNL GUIDA RAPIDA PER LA COMPILAZIONE DELLA SCHEDA CCNL

GUIDA RAPIDA PER LA COMPILAZIONE DELLA SCHEDA CCNL GUIDA RAPIDA PER LA COMPILAZIONE DELLA SCHEDA CCNL GUIDA RAPIDA BOZZA 23/07/2008 INDICE 1. PERCHÉ UNA NUOVA VERSIONE DEI MODULI DI RACCOLTA DATI... 3 2. INDICAZIONI GENERALI... 4 2.1. Non modificare la struttura dei fogli di lavoro... 4 2.2. Cosa significano

Подробнее

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:

Подробнее

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

Подробнее

IL RISPARMIO ENERGETICO E GLI AZIONAMENTI A VELOCITA VARIABILE L utilizzo dell inverter negli impianti frigoriferi.

IL RISPARMIO ENERGETICO E GLI AZIONAMENTI A VELOCITA VARIABILE L utilizzo dell inverter negli impianti frigoriferi. IL RISPARMIO ENERGETICO E GLI AZIONAMENTI A VELOCITA VARIABILE L utilizzo dell inverter negli impianti frigoriferi. Negli ultimi anni, il concetto di risparmio energetico sta diventando di fondamentale

Подробнее

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

Подробнее

Progettazione di Basi di Dati

Progettazione di Basi di Dati Progettazione di Basi di Dati Prof. Nicoletta D Alpaos & Prof. Andrea Borghesan Entità-Relazione Progettazione Logica 2 E il modo attraverso il quale i dati sono rappresentati : fa riferimento al modello

Подробнее

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

Подробнее

INFORMATICA 1 L. Mezzalira

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

Подробнее

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

Подробнее

Come visto precedentemente l equazione integro differenziale rappresentativa dell equilibrio elettrico di un circuito RLC è la seguente: 1 = (1)

Come visto precedentemente l equazione integro differenziale rappresentativa dell equilibrio elettrico di un circuito RLC è la seguente: 1 = (1) Transitori Analisi nel dominio del tempo Ricordiamo che si definisce transitorio il periodo di tempo che intercorre nel passaggio, di un sistema, da uno stato energetico ad un altro, non è comunque sempre

Подробнее

SymCAD/C.A.T.S. modulo Canali Schema

SymCAD/C.A.T.S. modulo Canali Schema SymCAD/C.A.T.S. modulo Canali Schema Il modulo Ventilazione Standard permette di effettuare la progettazione integrata (disegno e calcoli) in AutoCAD di reti di canali aria (mandata e ripresa). Il disegno

Подробнее

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

Подробнее

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

Подробнее

Metodologie di programmazione in Fortran 90

Metodologie di programmazione in Fortran 90 Metodologie di programmazione in Fortran 90 Ing. Luca De Santis DIS - Dipartimento di informatica e sistemistica Anno accademico 2007/2008 Fortran 90: Metodologie di programmazione DIS - Dipartimento di

Подробнее

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

Подробнее

GHPPEditor è un software realizzato per produrre in modo rapido e guidato un part program per controlli numerici Heidenhain.

GHPPEditor è un software realizzato per produrre in modo rapido e guidato un part program per controlli numerici Heidenhain. *+33(GLWRU GHPPEditor è un software realizzato per produrre in modo rapido e guidato un part program per controlli numerici Heidenhain. Il programma si basa su un architettura di tasti funzionali presenti

Подробнее

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

Подробнее

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

Подробнее

Esempi di algoritmi. Lezione III

Esempi di algoritmi. Lezione III Esempi di algoritmi Lezione III Scopo della lezione Implementare da zero algoritmi di media complessità. Verificare la correttezza di un algoritmo eseguendolo a mano. Imparare a valutare le prestazioni

Подробнее

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

Подробнее

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

Подробнее

STRUTTURE DEI SISTEMI DI CALCOLO

STRUTTURE DEI SISTEMI DI CALCOLO STRUTTURE DEI SISTEMI DI CALCOLO 2.1 Strutture dei sistemi di calcolo Funzionamento Struttura dell I/O Struttura della memoria Gerarchia delle memorie Protezione Hardware Architettura di un generico sistema

Подробнее

Architettura di un calcolatore

Architettura di un calcolatore 2009-2010 Ingegneria Aerospaziale Prof. A. Palomba - Elementi di Informatica (E-Z) 7 Architettura di un calcolatore Lez. 7 1 Modello di Von Neumann Il termine modello di Von Neumann (o macchina di Von

Подробнее

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

Подробнее

Macchine sequenziali sincrone. Macchine sincrone

Macchine sequenziali sincrone. Macchine sincrone Corso di Calcolatori Elettronici I A.A. 2010-2011 Macchine sequenziali sincrone Lezione 27 Prof. Roberto Canonico Università degli Studi di Napoli Federico II Facoltà di Ingegneria Corso di Laurea in Ingegneria

Подробнее

Progettaz. e sviluppo Data Base

Progettaz. e sviluppo Data Base Progettaz. e sviluppo Data Base! Progettazione Basi Dati: Metodologie e modelli!modello Entita -Relazione Progettazione Base Dati Introduzione alla Progettazione: Il ciclo di vita di un Sist. Informativo

Подробнее

Ciclo di Istruzione. Ciclo di Istruzione. Controllo. Ciclo di Istruzione (diagramma di flusso) Lezione 5 e 6

Ciclo di Istruzione. Ciclo di Istruzione. Controllo. Ciclo di Istruzione (diagramma di flusso) Lezione 5 e 6 Ciclo di Istruzione Può essere suddiviso in 4 tipi di sequenze di microoperazioni (cioè attività di calcolo aritmetico/logico, trasferimento e memorizzazione dei dati), non tutte necessariamente da realizzare

Подробнее

Il Sistema Operativo

Il Sistema Operativo Il Sistema Operativo Il Sistema Operativo Il Sistema Operativo (S.O.) è un insieme di programmi interagenti che consente agli utenti e ai programmi applicativi di utilizzare al meglio le risorse del Sistema

Подробнее

Misure di frequenza e di tempo

Misure di frequenza e di tempo Misure di frequenza e di tempo - 1 Misure di frequenza e di tempo 1 - Contatori universali Schemi e circuiti di riferimento Per la misura di frequenza e di intervalli di tempo vengono diffusamente impiegati

Подробнее

ISTRUZIONI PER LA GESTIONE BUDGET

ISTRUZIONI PER LA GESTIONE BUDGET ISTRUZIONI PER LA GESTIONE BUDGET 1) OPERAZIONI PRELIMINARI PER LA GESTIONE BUDGET...1 2) INSERIMENTO E GESTIONE BUDGET PER LA PREVISIONE...4 3) STAMPA DIFFERENZE CAPITOLI/BUDGET.10 4) ANNULLAMENTO BUDGET

Подробнее

A intervalli regolari ogni router manda la sua tabella a tutti i vicini, e riceve quelle dei vicini.

A intervalli regolari ogni router manda la sua tabella a tutti i vicini, e riceve quelle dei vicini. Algoritmi di routing dinamici (pag.89) UdA2_L5 Nelle moderne reti si usano algoritmi dinamici, che si adattano automaticamente ai cambiamenti della rete. Questi algoritmi non sono eseguiti solo all'avvio

Подробнее

Architettura dei computer

Architettura dei computer Architettura dei computer In un computer possiamo distinguere quattro unità funzionali: il processore (CPU) la memoria principale (RAM) la memoria secondaria i dispositivi di input/output Il processore

Подробнее

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

Подробнее

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

Подробнее

Manuale Terminal Manager 2.0

Manuale Terminal Manager 2.0 Manuale Terminal Manager 2.0 CREAZIONE / MODIFICA / CANCELLAZIONE TERMINALI Tramite il pulsante NUOVO possiamo aggiungere un terminale alla lista del nostro impianto. Comparirà una finestra che permette

Подробнее

4 3 4 = 4 x 10 2 + 3 x 10 1 + 4 x 10 0 aaa 10 2 10 1 10 0

4 3 4 = 4 x 10 2 + 3 x 10 1 + 4 x 10 0 aaa 10 2 10 1 10 0 Rappresentazione dei numeri I numeri che siamo abituati ad utilizzare sono espressi utilizzando il sistema di numerazione decimale, che si chiama così perché utilizza 0 cifre (0,,2,3,4,5,6,7,8,9). Si dice

Подробнее

Introduzione all analisi dei segnali digitali.

Introduzione all analisi dei segnali digitali. Introduzione all analisi dei segnali digitali. Lezioni per il corso di Laboratorio di Fisica IV Isidoro Ferrante A.A. 2001/2002 1 Segnali analogici Si dice segnale la variazione di una qualsiasi grandezza

Подробнее

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

Подробнее

Amplificatori Audio di Potenza

Amplificatori Audio di Potenza Amplificatori Audio di Potenza Un amplificatore, semplificando al massimo, può essere visto come un oggetto in grado di aumentare il livello di un segnale. Ha quindi, generalmente, due porte: un ingresso

Подробнее

Gestione Turni. Introduzione

Gestione Turni. Introduzione Gestione Turni Introduzione La gestione dei turni di lavoro si rende necessaria quando, per garantire la continuità del servizio di una determinata struttura, è necessario che tutto il personale afferente

Подробнее

Luigi Piroddi [email protected]

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

Подробнее

Sistema Operativo. Fondamenti di Informatica 1. Il Sistema Operativo

Sistema Operativo. Fondamenti di Informatica 1. Il Sistema Operativo Sistema Operativo Fondamenti di Informatica 1 Il Sistema Operativo Il Sistema Operativo (S.O.) è un insieme di programmi interagenti che consente agli utenti e ai programmi applicativi di utilizzare al

Подробнее

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T2 3-Compilatori e interpreti 1 Prerequisiti Principi di programmazione Utilizzo di un compilatore 2 1 Introduzione Una volta progettato un algoritmo codificato in un linguaggio

Подробнее

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,

Подробнее

Statistica 4038 (ver. 1.2)

Statistica 4038 (ver. 1.2) Statistica 4038 (ver. 1.2) Software didattico per l insegnamento della Statistica SERGIO VENTURINI, MAURIZIO POLI i Il presente software è utilizzato come supporto alla didattica nel corso di Statistica

Подробнее

Cap. 3 Reti combinatorie: analisi e sintesi operatori logici e porte logiche

Cap. 3 Reti combinatorie: analisi e sintesi operatori logici e porte logiche Cap. 3 Reti combinatorie: analisi e sintesi operatori logici e porte logiche 3.1 LE PORTE LOGICHE E GLI OPERATORI ELEMENTARI 3.2 COMPORTAMENTO A REGIME E IN TRANSITORIO DEI CIRCUITI COMBINATORI I nuovi

Подробнее

Prof. Giuseppe Chiumeo. Avete già studiato che qualsiasi algoritmo appropriato può essere scritto utilizzando soltanto tre strutture di base:

Prof. Giuseppe Chiumeo. Avete già studiato che qualsiasi algoritmo appropriato può essere scritto utilizzando soltanto tre strutture di base: LA STRUTTURA DI RIPETIZIONE La ripetizione POST-condizionale La ripetizione PRE-condizionale INTRODUZIONE (1/3) Avete già studiato che qualsiasi algoritmo appropriato può essere scritto utilizzando soltanto

Подробнее

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

Подробнее

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. D. Talia - UNICAL. Sistemi Operativi 9.1

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. D. Talia - UNICAL. Sistemi Operativi 9.1 IMPLEMENTAZIONE DEL FILE SYSTEM 9.1 Implementazione del File System Struttura del File System Implementazione Implementazione delle Directory Metodi di Allocazione Gestione dello spazio libero Efficienza

Подробнее

2 Gli elementi del sistema di Gestione dei Flussi di Utenza

2 Gli elementi del sistema di Gestione dei Flussi di Utenza SISTEMA INFORMATIVO page 4 2 Gli elementi del sistema di Gestione dei Flussi di Utenza Il sistema è composto da vari elementi, software e hardware, quali la Gestione delle Code di attesa, la Gestione di

Подробнее