Il Linguaggio VERILOG

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Il Linguaggio VERILOG"

Transcript

1 Il Linguaggio VERILOG Introduzione Concetti di base Sintassi del linguaggio Modellazione di librerie Modelli comportamentali (behavioral) orientati alla sintesi logica Verifica (simulazione) Sintesi logica di FPGA Implementazione di una semplice interfaccia VME Paolo Musico INFN Genova 1

2 INTRODUZIONE (1) Verilog e un linguaggio di programmazione orientato alla descrizione di strutture hardware (HDL) digitali. Viene usato per descrivere sistemi digitali a differenti livelli: switch level: transistor level gate level: porte logiche elementari Register Transfer Level (RTL): scambio dati tra registri Verilog e stato introdotto nel 1985 da Gateway Design System Corporation e poi commercializzato da Cadence come Verilog-XL. Dal 1990 esiste la Open Verilog International che ha permesso la standardizzazione IEEE del linguaggio nel 1995 e la realizzazione di altri simulatori (VeriWell, VCS, VeriBest, ). Questo corso e orientato all introduzione della modellazione RTL. Paolo Musico INFN Genova 2

3 INTRODUZIONE (2) Esistono altri HDL: il piu importante e VHDL che e standard IEEE dal Il mercato e suddiviso abbastanza equamente tra Verilog e VHDL. Verilog ha la sintassi C-like ed e meno formale di VHDL che ha una sintassi ADA-like ed e molto formale. Perche si usa un HDL? La complessita odierna dei circuiti non permette piu la semplice rappresentazione schematica. E piu efficace descrivere il comportamento del circuito tramite un HDL, verificarne la correttezza tramite un simulatore e geneare la netlist gate level con strumenti automatici (sintetizzatori logici). In tal modo e possibile anche verificare la funzionalita di possibili implementazioni alternative dello stesso circuito e scegliere la piu performante. Paolo Musico INFN Genova 3

4 CONCETTI BASE (1) Metodologia Bottom-Up: usando componenti esistenti si sviluppa il progetto e si sale nella gerarchia (realizzo un registro con DFF, poi un banco di registri, poi la decodifica, ecc.) Metodologia Top-Down: il problema viene decomposto in blocchi e ogni blocco viene decomposto a sua volta fino ad limite (un banco di registri ha bisogno oltre che dei registri stessi di una decodifica, il singolo registro sara poi implementato con dei DFF, ecc.) Metodologia mista: si decompone il problema top-down fino ad un certo limite; i livelli piu bassi della gerarchia si implementano bottom-up (descrivo i sottoblocchi con HDL e uso la sintesi per implementarli, utilizzando librerie di gates). Paolo Musico INFN Genova 4

5 CONCETTI BASE (2) Un intero progetto viene contenuto in piu files HDL: ogni file puo contenere uno o piu moduli. Per poter simulare il progetto c e bisogno di un modulo di test che permetta di applicare gli stimoli al circuito e che ne verifichi il comportamento (con stampe, salvando segnali grafici, ). Dopo la sintesi e possibile utilizzare la netlist gate level, applicare gli stimoli e verificare che il risultato della sintesi soddisfi i requisiti del problema (limiti di velocita, ). Strumenti necessari e disponibili su piattaforma Sun-Solaris: editor di testo (VI, GVIM, EMACS, TEXTEDIT, ), simulatore (Verilog-XL, VCS), visualizzatore di seganli (Signalscan, Virsim), sintetizzatore (Synopsys design_compiler o fpga_compiler, XILINX XST). Paolo Musico INFN Genova 5

6 SINTASSI (1) Esempio completo di modulo: mux 2 1. Definizione del modulo con i segnali di I/O. Definizione del tipo reg Blocco procedurale always Uso di begin- Statement decisionale if-else Assegnazione: <= Commenti: // e /* */ Statement di chiusura del modulo module MUX2_1(out, a, b, sel); output out; input a, b, sel; reg out; // Commento or a or b) begin if( sel == 0 ) out <= a; else out <= b; /* Altro commento */ module Paolo Musico INFN Genova 6

7 SINTASSI (2) Spazi bianchi: utilizzare blanks, tab e linee vuote per migliorare la leggibilita del codice. Vengono ignorati dal parser. Commenti: usarli per descrivere cio che il codice deve fare. Vengono ignorati dal parser del simulatore. E possibile usare commenti particolari come direttive per il sintetizzatore (esempio: // synthesis attribute ). Numeri: interi e reali (non usati per la sintesi). Formato generico di un intero: <size> <base><value> Esempi: 12 // decimale (base 10) 8 h5f // esadecimale a 8 bit 6 b11_0010 // binario a 6 bit o576 // ottale senza dimensione 32 bz // binario a 32 bit Hi-Z Il carattere _ viene ignorato e puo essere usato come separatore Paolo Musico INFN Genova 7

8 SINTASSI (3) Identificatori: iniziano con un carattere alfabetico (a-z, A-Z), possono contenere numeri (0-9), _ e $. Devono essere diversi dalle parole riservate. Possono essere lunghi fino a 1023 caratteri. Sono identificatori i nomi dei moduli, le porte di I/O, le istanze, le variabili. Usare identificatori che abbiano significato per la funzione in cui sono usati. Crearsi una convenzione sugli identificatori; per esempio: i moduli iniziano con una maiuscola le porte sono sempre tutte maiuscole i segnali interni al modulo sono sempre tutti minuscoli i segnali attivi bassi terminano con b oppure con _ Verilog e case sensitive (per default) quindi pippo e diverso da Pippo. Paolo Musico INFN Genova 8

9 SINTASSI (4) Variabili di tipo fisico. Tipo reg : memorizza il valore dell ultimo assegnamento in un blocco procedurale Tipo wire: rappresenta la connessione tra porte di varie entita. Puo venire assegnato tramite continuous assignment. Esistono altri tipi di wires: wand (wired and), wor (wired or), tri (tristate). Le variabili possono essere scalari e vettoriali. Esempi: reg out; reg [7:0] data_bus; wire [1:0] select; wire enabled; // scalare // 8 bit bus // 2 bit bus // scalare E possibile avere variabili vettoriali con segno: reg signed [7:0] s1data_bus; // range -128 <-> +127 wire signed [3:0] s2data_bus; // range -8 <-> +7 Le variabili con segno vengono rappresentate in complemento a 2. Paolo Musico INFN Genova 9

10 SINTASSI (5) E possibile dichiarare una memoria come: reg [7:0] data_mem[1023:0] Notare che la dimensione dei vettori e [<start bit>:< bit>]. Il fatto che si metta prima MSB e poi LSB e solo una convenzione. Possibili valori: Verilog ammette 4 valori possibili: 0 (logic zero, false), 1 (logic one, true), x (unknown), z (Hi-Z). Altri tipi di variabili (usate di solito nei moduli di test). Tipo integer: intero a 32 bit con segno. Solitamente usato come contatore nei loop. Tipo time: intero a 64 bit senza segno. Paolo Musico INFN Genova 10

11 SINTASSI (6) Operatori aritmetici. + addizione - sottrazione e negazione unaria * moltiplicazione / divisione % modulo Operatori logici.! negazione logica && AND logico OR logico Paolo Musico INFN Genova 11

12 SINTASSI (7) Operatori logici relazionari. > maggiore >= maggiore o uguale < minore <= minore o uguale == uguaglianza logica (NON assegnazione)!= diseguaglianza logica Operatori bitwise (operano sui singoli bit di un vettore). ~ negazione & AND OR ^ XOR ~& NAND ~ NOR ~^ XNOR Paolo Musico INFN Genova 12

13 SINTASSI (8) Altri operatori. >> Shift a destra. A = A >> 2; // Shifta A di 2 bit a destra << Shift a sinistra.? : Condizionale. A = (B == 0)? 1 : 0; // Se B=0 A=1 else A=0 {,} Concatenazione. A = {4 b0011, 2 b01}; // A = 6 b Continuous assignment: usato per modellare semplice logica combinatoria e per cambiare nome ai segnali. Spesso usato per modellare i 3-state. assign A = in1 & in2; assign B = enable? out : 1 bz; // A e di tipo wire // B e di tipo wire Paolo Musico INFN Genova 13

14 SINTASSI (9) Assegnamento blocking A = 3; L espressione viene valutata nel flusso di esecuzione e la variablile viene assegnata immediatamente. A = 3; #1 A = A+1; B = A+1; Assegnamento NON blocking A <= A + 1; L espressione viene valutata nel flusso di esecuzione, viene assegnato il risultato ad una variabile temporanea e la variablile viene assegnata prima di passare all istante di simulazione successivo. // A = 4, B = 5 #1 A <= A+1; B <= A+1; // A = 5, B = 5 Paolo Musico INFN Genova 14

15 SINTASSI (10) Strutture di controllo (1). if-else e case (casex e casez): esecuzione condizionata semplice e multipla if( A == B ) begin C = 0; else begin C = 1; case (sel) 2 b00: out = 0; 2 b01: out = 1; default: out = x; case Paolo Musico INFN Genova 15

16 SINTASSI (11) Strutture di controllo (2). for, while, repeat e forever: ripetizione multipla for(i=0; i<10; i=i+1) begin $display( i = %0d, i); repeat( 5 ) begin i = i + 1; $display( i = %0d, i); while(i < 10) begin i = i + 1; forever #10 CK = ~CK; Paolo Musico INFN Genova 16

17 SINTASSI (12) Controllo temporale. Ritardo # : l esecuzione e ritardata delle unita temporali indicate. L unita temporale e identificata dalla direttiva `timescale <unit>/<precision>. : l esecuzione e sospesa fino a che non si verifica l evento indicato. `timescale 1ns/10ps // unita di 1 nsec, con precisione di 10 psec initial begin #10 A = 0; // dopo 10 nsec A = CK); // aspetta il fornte di salita di CK A = B ); // aspetta una variazione di B A = 0; Paolo Musico INFN Genova 17

18 SINTASSI (13) Altre parole chiave. parameter x = 2; // definisce il parametro x con valore 2 Direttive. `include <nomefile> // include il file indicato `define <macro> <valore> // definisce una macro: richiamata con `<macro> parameter e locale al modulo, define e locale al file (preprocessore) System tasks. $finish // termina la simulazione $time // ritorna l istante corrente di simulazione (per stampe) $display $monitor $shm_open $shm_probe $shm_close // interfaccia verso signalscan $vcdpluson // interfaccia verso virsim Paolo Musico INFN Genova 18

19 SINTASSI (14) Task. Equivalente (circa) ad una procedura in un comune linguaggio di programmazione. Puo avere argomenti, non ritorna valori. Puo impiegare statement di controllo temporale. Funzioni. Puo avere argomenti e deve ritornare un valore. Non puo impiegare statement di controllo temporale. function [3:0] add1; input [3:0] a; begin add1 = a + 1; function task sleep; input [31:0] period; begin repeat( period ) #10; task sleep(10); // aspetta 10 * 10 unita temporali c = add1(b); // c = b + 1 Paolo Musico INFN Genova 19

20 MODELLAZIONE DI MEMORIE Abbiamo visto la dichiarazione di una memoria: reg [7:0] data_mem[1023:0] // 1024 word x 8 bit memory array L accesso alla locazione i-esima si fara con: data_mem[i] E possibile caricare una memoria da file esterno: $readmemb( mem_file.txt, data_mem); $readmemh( mem_file.txt, data_mem); Il file testo avra il formato riportato nel riquadro. Uso di _ per migliorare la leggibilita Uso per accedere ad un indirizzo specifico Verilog non riporta errori di indirizzamento // binary file format // hexadecimal file format 0000_ _ _0101 // one line // at address 100 (hex) 1111_1100 /* multi line comment */ 0000_0000 Paolo Musico INFN Genova 20

21 Primitive di Verilog Verilog ha definite delle funzioni logiche primitive: and, or, not, buf, xor, nand, nor, xnor. Esse implementano la funzione logica indicata. Eccetto not e buf possono avere un numero variabile di ingressi. and a1 (out, in1, in2); or o1 (out2, in3, in4, in5); Il primo parametro e sempre l uscita. I not e i buf possono avere multple uscite, ma sempre 1 solo ingresso. Primitive condizionali: bufif1, bufif0, notif1, notif0. Servono per modellare segnali 3-state: bufif1 b1 (out3, in, enable); // out3 = in se enable = 1 bufif0 b2 (out4, in, enable); // out4 = in se enable = 0 Il nome dell istanza e opzionale. Si puo indicare un ritardo: and #2 (o, i1, i2); Paolo Musico INFN Genova 21

22 User Defined Primitives (UDP) E possibile definire delle funzioni logiche primitive aggiuntive, combinatorie e sequenziali. Vengono definite tramite tabelle di verita : hanno una sola uscita e da 1 a 10 ingressi. Tutti i segnali sono scalari e la z non e supportata (viene mappata come x ). Ogni combinazione non indicata produce una x in uscita. Il? rappresenta qualunque valore. E possibile definire UDP sequenziali sia level sensitive (latch) che edge sensitive (flip-flop). primitive mux_21(o, a, b, s); output o; input a, b, s; table // a b s : o 0? 1 : 0; 1? 1 : 1;? 0 0 : 0;? 1 0 : 1; 0 0 x : 0; 1 1 x : 1; table primitive Paolo Musico INFN Genova 22

23 MODELLAZIONE DI LIBRERIE (1) Un elemento (cella) di libreria e un modulo, composto di 2 parti: descrizione funzionale e temporizzazioni relative. Le celle cosi descritte vengono usate per il calcolo dei ritardi in funzione del carico. La descrizione funzionale puo essere implementata con primitive e/o UDP oppure con statement behavioral: evitare la descrizione mista. `celldefine `timescale 1ns/10ps module mux_21(o, a, b, s); output o; input a, b, s; // Functional description // Timing module `celldefine Paolo Musico INFN Genova 23

24 MODELLAZIONE DI LIBRERIE (2) Le temporizzazioni identificano il ritardo di propagazione dei segnali all interno della cella e permettono di effettuare controlli (tipo setup/hold). Di solito si definiscono i ritardi pin to pin (path delay) che possono dipere dallo stato logico dei segnali. Se uno stato non e definito il ritardo e nullo. $setup $hold $width sono usati per controllare le temporizzazioni. Esempio: $setup(data, posedge ck, 10, flag); flag cambia stato se il controllo fallisce, e verra usato per notificare il fallimento a qualche modo. `celldefine `timescale 1ns/10ps module XOR2(y, a, b); output y; input a, b; // Functional description xor i1 (y, a, b); // Timing specify if( b ) (a => y)= (20, 20); if(~b ) (a => y)= (10, 20); if( a ) (b => y)= (20, 10); if(~a ) (b => y)= (15, 10); specify module `celldefine Paolo Musico INFN Genova 24

25 MODELLI BEHAVIORAL (1) Seguire il metodo top-down. Separare il problema in blocchi elementari, implementarli e collegarli gerarchicamente, istanziandoli. Collegamento dei moduli: per posizione per nome module MUX2_1(out, a, b, sel); module module top_level; MUX2_1 first_mux(out1, a1, b1, sel1); MUX2_1 second_mux(.out(out2),.sel(sel2),.b(b1),.a(a1)); module Paolo Musico INFN Genova 25

26 MODELLI BEHAVIORAL (2) Blocchi procedurali initial e always. I blocchi initial vengono eseguiti una volta sola. I blocchi always vengono eseguiti per sempre (finche dura la simulazione). Ogni modulo puo contenere piu blocchi initial e piu blocchi always. I blocchi initial vengono usati di solito nei moduli di test. I blocchi always modellano il comportamento di reti logiche e sequenziali. L esecuzione di tutti i blocchi procedurali inizia in parallelo al tempo zero. initial begin a = 0; b = 0; #10 b = 1; a = 1; #50 b = 0; #10 a = 0; CK) begin A_reg <= A_reg; if( RSTb == 0 ) A_reg <= 7 b0; else if( LD == 1 ) A_reg <= data_in; Paolo Musico INFN Genova 26

27 MODELLI BEHAVIORAL (3) Le variabili assegnate in un blocco procedurale devono essere di tipo reg altrimenti si ha il messaggio illegal left-hand-side assignment. Ogni variabile puo essere assegnata in un solo blocco procedurale (sintesi). Fare attenzione all uso corretto degli operatori logici e/o bit wised. Le operazioni comprese tre begin e vengono eseguite sequenzialmente. L esecuzione concorrente e gestita da fork e join (non la trattiamo). Gli statements casex e casez vengono usati per gestire le condizioni don t care casex sia per x che per z e casez solo per z. Si usa il? per specificarlo. casex( data_in ) 4 b???1: prienc <= 1; 4 b??10: prienc <= 2; 4 b?100: prienc <= 3; 4 b1000: prienc <= 4; case Paolo Musico INFN Genova 27

28 MODELLI BEHAVIORAL (4) Modellazione del reset sincrono e asincrono. Tutte le logiche sequenziali devono avere uno stato iniziale, di solito imposto con un segnale di reset esterno, che puo essere sincrono (reset sul prossimo fronte del clock) o asincrono (immediato). module SyncRstReg(OUT,D,CK,RSb); output [3:0] OUT; input [3:0] D; input CK, RSb; begin CK) if( RSb == 0 ) OUT <= 0; else OUT <= D; module module ASyncRstReg(OUT,D,CK,RSb); output [3:0] OUT; input [3:0] D; input CK, RSb; begin CK or negedge RSb) if( RSb == 0 ) OUT <= 0; else OUT <= D; module Paolo Musico INFN Genova 28

29 MODELLI BEHAVIORAL (5) Continuous assignments: usati per modellare logica combinatoria. Occorre aver dichiarato la variabile di tipo wire. Vengono usati al di fuori dei blocchi procedurali. Ogni cambiamento nel valore dell espressione assegnata corrisponde ad un cambiamento della variabile. wire out; wire eq; wire [7:0] data_out; assign out = a & b; assign eq = (a == b); assign data_out = (enable == 1)? data_in : 8 bz; Paolo Musico INFN Genova 29

30 MODELLI BEHAVIORAL (6) La logica combinatoria puo anche essere modellata con blocchi procedurali (vedi l esempio del MUX2_1). or addr or reg0 or reg1 or reg2 or reg3) begin if( enable == 1 ) case( addr ) 2 b00: data_out <= reg0; 2 b01: data_out <= reg1; 2 b10: data_out <= reg2; 2 b11: data_out <= reg3; case else data_out <= 0; Paolo Musico INFN Genova 30

31 MODELLI BEHAVIORAL (7) NON CONDIZIONARE MAI IL SEGNALE DI CLOCK!!! Condizionare il dato d ingresso invece Contatori. Usare operatori + e - per implementare contatori in avanti o indietro. La generazione dei segnali d uscita puo essere fatta con logica combinatoria tipo continuous assignments oppure registrata (1 periodo di clock prima). module cnt4(data_out, RSTb, CK); output [3:0] DATA_OUT; input RSTb, CK; reg [3:0] DATA_OUT; always@(posedge CK) if( RSTb == 0 ) DATA_OUT <= 4 b0; else DATA_OUT <= DATA_OUT + 1; module Paolo Musico INFN Genova 31

32 MODELLI BEHAVIORAL (8) Macchine a stati implicite. La variabile di stato non e dichiarata. Il sintetizzatore se ne accorge e ne mette quante ne servono. module implicit; Codifica elegante. CK) Sintesi poco controllabile. begin Usare sempre lo stesso out_pulse <= 0; if( inp_signal == 1 ) fronte di clock per controllare begin l avanzamento dello stato. out_pulse <= 1; Attenzione al RESET CK); variabile di stato. while( inp_signal == 1 CK); Occorre imporre valori di reset e di default per le variabili di uscita. module Tutte le variabili di ingresso devono essere sincrone: eventualmente sincronizzarle. Paolo Musico INFN Genova 32

33 MODELLI BEHAVIORAL (9) Macchine a stati esplicite. La variabile di stato dischiarata esplicitamente. Maggior controllo sulla sintesi, sullo stato iniziale e di RESET. Separazione della parte registrata dalla logica di generazione dello stato successivo e delle variabili d uscita. module explicit; reg [1:0] state_var, new_state; parameter S0 = 0, S1 = 1, S2 = 2, S3 = 3; CK) state_var <= new_state; or state_var) begin out_var <= out_var; case( state_var ) S0: begin out_var <= 0; if( input_var == 1 ) new_state <= S1; else new_state <= S0; S1: begin out_var <= 1; new_state <= S2; S2: begin out_var <= 1; if( input_var == 1 ) new_state <= S2; else new_state <= S0; S3: new_state <= S0; case module Paolo Musico INFN Genova 33

34 MODELLI BEHAVIORAL (10) Macchine a stati esplicite con un solo blocco always. Come la sintassi precedente con il vantaggio di avere tutte le variabili di uscita registrate. I sintetizzatori riconoscono bene le macchine esplicite con le 2 implementazioni descritte, mentre fanno fatica a riconoscere quelle implicite. CK) begin case( state_var ) S0: begin out_var <= 0; if( input_var == 1 ) new_state <= S1; else new_state <= S0; S1: begin out_var <= 1; new_state <= S2; S2: begin out_var <= 1; if( input_var == 1 ) new_state <= S2; else new_state <= S0; S3: new_state <= S0; case Paolo Musico INFN Genova 34

35 SIMULAZIONE (1) Una volta creato il modello comportamentale del circuito occorre simularlo. Creare un modulo di test in un file separato dal modello in cui istanziarlo e generare gli stimoli che ne permettano una verifica esaustiva. Nel modulo di test di solito vengono chiamate le system task per salvare il database di simulazione che puo essere visualizzato in forma grafica. Di solito si mette un blocco initial per inizializzare tutte le variabili al tempo 0 e per abilitare il salvataggio del database. Si mette poi un blocco always per la generazione dei segnali di clock (periodici). Possono venire utilizzate delle user task per la generazione degli stimoli che semplificano la scrittura dei vettori di test e rono piu leggibile il codice. I vettori di test vengono posti in un blocco initial e alla fine di questo si chiude il database di simulazione e utilizza la system task $finish per terminare il processo. Paolo Musico INFN Genova 35

36 SIMULAZIONE (2) `timescale 1ns/10ps module test; reg A, B, selector; wire sig_out; MUX2_1 mux_instance(sig_out, A, B, selector); initial // inizializzazione al tempo 0 begin A = 0; B = 0; selector = 0; $shm_open( waves.shm ); $shm_probe( AS ); initial // vettori di test begin #50 A = 1; #50 selector = 1; #50 B = 1; #50 $shm_close; $finish; // termina module Paolo Musico INFN Genova 36

37 SIMULAZIONE (3) Far girare la simulazione e aprire il database con il visualizzatore di forme d onda. Se si utilizza Verilog-XL (Cadence) verilog test_mux.v mux.v signalscan Se si utilizza VCS (Synopsys) vcs Mupdate I -line test_mux.v mux.v./simv virsim Manuali utente principali: /cds_2002/psd142/doc/vlogref/vlogref.pdf /cds_2002/psd142/doc/vloguser/vloguser.pdf Paolo Musico INFN Genova 37

38 CALCOLO E ANALISI DEI RITARDI Occorre poter calcolare il ritardo di propagazione dei segnali in funzione del carico, della forza di pilotaggio di ogni nodo e di altri parametri (V, T, ). Il calcolo viene fatto pro informazioni di connettivita dalla netlist e di parassiti dai tools di place and route: viene generato una informazione di ritardi in formato SDF, che puo essere utilizzata nella simulazione. Occorre mettere una chiamata $sdf_annotate nel codice Verilog in modo che le informazioni dei ritardi possano essere usate. Paolo Musico INFN Genova 38

39 SINTESI DI FPGA (1) Struttura interna di una XILINX della famiglia XC3000: IOB, CLB, matrice di interconnessione. Paolo Musico INFN Genova 39

40 SINTESI DI FPGA (2) Struttura interna di una XILINX della famiglia Spartan IIE Paolo Musico INFN Genova 40

41 SINTESI DI FPGA (3) Il modello verilog viene sintetizzato usando il pogramma fpga_compiler di Synopsys. Si presenta con 2 interfacce: una grafica (fpga_analyzer) e una testuale (fpga_shell). Di solito si usa la prima in una fase di debug del processo e poi si prepara un file di script che viene interpretato dalla seconda con piu efficenza nelle fasi successive. Il sintetizzatore deve venire inizializzato identificando sia la famiglia di FPGA da utilizzare che il modello specifico. Questo si fa di solito utilizzando un file di startup (.synopsys_dc.setup) nella directory corrente che viene letto ogni volta che lo si invoca. Noi abbiamo tools per sviluppare FPGA della famiglia XILINX. Paolo Musico INFN Genova 41

42 SINTESI DI FPGA (4) Le operazioni elementari che occorre far eseguire al sintetizzatore possono essere riassunte: lettura del file sorgente definizione del (o dei) segnale di clock applicazione di vincoli temporali sugli ingressi e sulle uscite applicazione di vincoli sull ottimizzazione (area o velocita ) inserimento dei pads e vincoli relativi (slew rate, pullup, ) compilazione e ottimizzazione opzionalmente si puo inserire la posizione dei pads e il tipo di componente generazione della netlist in formato opportuno (XNF) generazione di report post sintesi generazione di vincoli per il processo di place & route Paolo Musico INFN Genova 42

43 SINTESI DI FPGA (5) Successivamente occorre utilizzare i progammi proprietari di XILINX per effettuare il place & route della netlist XNF generata ed ottenere il risultato finale. La sequenza (script) puo essere cosi riassunta: Generazione del database iniziale parto dal file XNF (anche piu di 1) Mappatura dei gate della netlist nei blocchi elementari del dispositivo Place & Route vero e proprio Generazione del bitstream necessario alla programmazione del componente Generazione del file esadecimale con cui programmare la PROM seriale Estrazione delle informazioni temporali (ritardi) reali del componente Generazione del modello verilog gate level con ritardi reali Vengono generati reports ad ogni passo con i quali si puo verificare l andamento del processo. E poi possibile simulare il risultato finale con gli stimoli di progetto Paolo Musico INFN Genova 43

44 INTERFACCIA VME (1) Il bus VME e un tipico bus asincrono da microprocessore (tipo MC68000), con 32 linee dati, 32 linee indirizzi, interrupts, possibilita di gestione multimaster, trasferimento a blocchi, Non verra trattato estesamente il bus VME in se stesso. Implementazione di una piccola struttura (registro) accessibile da bus VME. Operazioni da compiere: Riconoscimento ciclo di indirizzamento. Riconoscimento ciclo dati. Operazione di lettura oppure scrittura nel registro. Chiusura del ciclo. Per semplicita di gestione SW da parte della CPU master cerchiamo di implementare una struttura il piu generale possibile. Gestiamo semplici cicli dati, senza interrupts. Paolo Musico INFN Genova 44

45 INTERFACCIA VME (2) Diagrammi temporali dei cicli di bus che ci interessano Ciclo di lettura Ciclo di scrittura Paolo Musico INFN Genova 45

46 INTERFACCIA VME (3) Ciclo di indirizzamento. Dobbiamo decidere a quale indirizzo (o range di indirizzi) risponde la nostra unita. Il VME permette indirizzamenti a 16 (short), 24 (standard) e a 32 bit (exted), e separa lo spazio utente dallo spazio supervisore, sia programma che dati. Questo viene indicato tramite le linee AM[5:0] (Address Modifiers). Gli AM identificano anche se il trasferimento dati e singolo oppure a blocchi. Sia le linee di indirizzo A[31:1] che gli AM[5:0] vengono convalidati dal segnale di Address Strobe AS, attivo basso. Decidiamo di rispondere a cicli di indirizzamento a 32 bit, sia in spazio utente che supervisore (programma e dati), senza trasferimento a blocchi. Implementando un solo registro decidiamo di rispondere ad un singolo indirizzo di longword (allineato a 4 byte) per generalita. Usando l estensione V430 (CERN) e possibile avere un informazione geografica sulla posizione dell unita all interno del crate: non la usiamo per generalita. Paolo Musico INFN Genova 46

47 INTERFACCIA VME (4) Ciclo dati. Il VME permette trasferimenti dati a 8, 16 e 32 bit: i segnali DSA, DSB e LWORD (attivi bassi) vengono usati per convalidare la sezione di bus interessata. Per semplicita implementiamo un registro a 8 bit che risponda sulle linee D[7:0] e accetti i tre tipi di ciclo: le scritture su D[31:8] verranno ignorate, le letture restituiscono 0. Il verso del trasferimento viene identificato tramite la linea WRITE: alto = lettura, basso = scrittura. In un ciclo di lettura occorre mettere sulle linee D[7:0] il contenuto del registro, mentre in un ciclo di scrittura occorre copiare nel registro il valore delle linee D[7:0]. Paolo Musico INFN Genova 47

48 INTERFACCIA VME (5) Chiusura del ciclo. Dopo aver effettuato l operazione richiesta occorre segnalarne la fine al master. Bisogna generare il segnale DTACK in caso di esito positivo e BERR in caso di errore. Entrambi sono attivi bassi e Open Collector. Essi verranno generati attivi alti dalla logica che pilotera un transistor NPN (es. 2N2222, 2N2369, ) per implementare il tipo di segnale richiesto. Possiamo decidere di generare BERR in caso di ciclo di indirizzamento errato, oppure, per semplicita, di non generarlo mai (ignoriamo i tipi di ciclo non gestiti). Implementiamo sia la logica di gestione VME che il nostro registro in una FPGA XILINX tipo XC5204-6PC68C, a parte i buffer dati (74ACT245) e i comparatori sulle linee A[31:8] (74ACT521). Implementiamo il circuito di controllo con logica SINCRONA: serve un segnale di clock abbastanza veloce (F CK 20 MHz). Paolo Musico INFN Genova 48

49 INTERFACCIA VME (6) Schema a blocchi del circuito: FPGA, buffer dati, comparatori di indirizzi. Paolo Musico INFN Genova 49

50 INTERFACCIA VME (7) Segue il listato del codice dell interfaccia e del modulo di test. Provare un implementazione indipente. Simulazione del modello realizzato. Caricamento di Synopsys e familiarizzazione con l interfaccia utente. Prova di sintesi e place & route utilizzando scripts. Simulazione post processamento e analisi delle differenze. Paolo Musico INFN Genova 50

VERILOG HDL Training PROGRAMMA DEL CORSO

VERILOG HDL Training PROGRAMMA DEL CORSO VERILOG HDL Training PROGRAMMA DEL CORSO Introduzione Concetti di base Sintassi del linguaggio Modelli comportamentali (behavioral) orientati alla sintesi logica Verifica (simulazione) Sintesi logica di

Dettagli

VERILOG HDL Training

VERILOG HDL Training VERILOG HDL Training PROGRAMMA DEL CORSO Introduzione Concetti di base Sintassi del linguaggio gg Modelli comportamentali (behavioral) orientati alla sintesi logica Verifica (simulazione) Sintesi logica

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

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

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

Un circuito integrato è una piastrina di silicio (o chip), quadrata o rettangolare, sulla cui superficie vengono realizzati e collegati

Un circuito integrato è una piastrina di silicio (o chip), quadrata o rettangolare, sulla cui superficie vengono realizzati e collegati Il Livello LogicoDigitale i Blocchi funzionali combinatori Circuiti integrati Un circuito integrato è una piastrina di silicio (o chip), quadrata o rettangolare, sulla cui superficie vengono realizzati

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

Capitolo Quarto...2 Le direttive di assemblaggio di ASM 68000...2 Premessa...2 1. Program Location Counter e direttiva ORG...2 2.

Capitolo Quarto...2 Le direttive di assemblaggio di ASM 68000...2 Premessa...2 1. Program Location Counter e direttiva ORG...2 2. Capitolo Quarto...2 Le direttive di assemblaggio di ASM 68000...2 Premessa...2 1. Program Location Counter e direttiva ORG...2 2. Dichiarazione di dati: le direttive DS e DC...3 2.1 Direttiva DS...3 2.2

Dettagli

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

Dettagli

Descrizione di un algoritmo

Descrizione di un algoritmo Descrizione di un algoritmo Un algoritmo descrive due tipi fondamentali di oper: calcoli ottenibili tramite le oper primitive su tipi di dato (valutazione di espressioni) che consistono nella modifica

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

Xilinx ISE Tutorial File -> New Project...

Xilinx ISE Tutorial File -> New Project... Xilinx ISE Tutorial L obiettivo di questo tutorial è il mappaggio di una semplice porta logica AND su una particolare FPGA, la Xilinx Spartan 3E, integrata nella board Digilent Nexys 2 500K, che utilizzeremo

Dettagli

Richiesta pagina PHP (es: index.php)

Richiesta pagina PHP (es: index.php) PHP PHP = personal home page SERVER Richiesta pagina PHP (es: index.php) Server Web (Apache) in ascolto sulla porta 80, si accorge che la pagina richiesta è una pagina PHP in base all'estensione o con

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

Codifica: dal diagramma a blocchi al linguaggio C++

Codifica: dal diagramma a blocchi al linguaggio C++ Codifica: dal diagramma a blocchi al linguaggio C++ E necessario chiarire inizialmente alcuni concetti. La compilazione Il dispositivo del computer addetto all esecuzione dei programmi è la CPU La CPU

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

Lezione 1: L architettura LC-3 Laboratorio di Elementi di Architettura e Sistemi Operativi 10 Marzo 2014

Lezione 1: L architettura LC-3 Laboratorio di Elementi di Architettura e Sistemi Operativi 10 Marzo 2014 Lezione 1: L architettura LC-3 Laboratorio di Elementi di Architettura e Sistemi Operativi 10 Marzo 2014 Ricorda... Il ciclo di esecuzione di un istruzione è composto da sei fasi: FETCH DECODE ADDRESS

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

Informatica B a.a 2005/06 (Meccanici 4 squadra) PhD. Ing. Michele Folgheraiter

Informatica B a.a 2005/06 (Meccanici 4 squadra) PhD. Ing. Michele Folgheraiter Informatica B a.a 2005/06 (Meccanici 4 squadra) Scaglione: da PO a ZZZZ PhD. Ing. Michele Folgheraiter Architettura del Calcolatore Macchina di von Neumann Il calcolatore moderno è basato su un architettura

Dettagli

Lezione 2 OPERAZIONI ARITMETICHE E LOGICHE ARCHITETTURA DI UN ELABORATORE. Lez2 Informatica Sc. Giuridiche Op. aritmetiche/logiche arch.

Lezione 2 OPERAZIONI ARITMETICHE E LOGICHE ARCHITETTURA DI UN ELABORATORE. Lez2 Informatica Sc. Giuridiche Op. aritmetiche/logiche arch. Lezione 2 OPERAZIONI ARITMETICHE E LOGICHE ARCHITETTURA DI UN ELABORATORE Comunicazione importante dalla prossima settimana, la lezione del venerdì si terrà: dalle 15:00 alle 17.15 in aula 311 l orario

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

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

Linguaggio del calcolatore. Algebra di Boole AND, OR, NOT. Notazione. And e or. Circuiti e reti combinatorie. Appendice A + dispense

Linguaggio del calcolatore. Algebra di Boole AND, OR, NOT. Notazione. And e or. Circuiti e reti combinatorie. Appendice A + dispense Linguaggio del calcolatore Circuiti e reti combinatorie ppendice + dispense Solo assenza o presenza di tensione: o Tante componenti interconnesse che si basano su e nche per esprimere concetti complessi

Dettagli

ISTITUTO TECNICO INDUSTRIALE STATALE LA GESTIONE DEI FILE DI TESTO IN C++

ISTITUTO TECNICO INDUSTRIALE STATALE LA GESTIONE DEI FILE DI TESTO IN C++ ISTITUTO TECNICO INDUSTRIALE STATALE G A L I L E O F E R R A R I S DIISPENSA DII IINFORMATIICA E SIISTEMII AUTOMATIICII LA GESTIONE DEI FILE DI TESTO IN C++ Le classi per la gestione dei file. Il C++ è

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

Aritmetica dei Calcolatori 2

Aritmetica dei Calcolatori 2 Laboratorio di Architettura 13 aprile 2012 1 Operazioni bit a bit 2 Rappresentazione binaria con segno 3 Esercitazione Operazioni logiche bit a bit AND OR XOR NOT IN OUT A B A AND B 0 0 0 0 1 0 1 0 0 1

Dettagli

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

Dettagli

GESTIONE INFORMATICA DEI DATI AZIENDALI

GESTIONE INFORMATICA DEI DATI AZIENDALI GESTIONE INFORMATICA DEI DATI AZIENDALI Alberto ZANONI Centro Vito Volterra Università Tor Vergata Via Columbia 2, 00133 Roma, Italy zanoni@volterra.uniroma2.it Rudimenti di programmazione Programming

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

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

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

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2015-16. Pietro Frasca. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2015-16 Pietro Frasca Lezione 15 Martedì 24-11-2015 Struttura logica del sottosistema di I/O Processi

Dettagli

Introduzione allo Scilab Parte 1: numeri, variabili ed operatori elementari

Introduzione allo Scilab Parte 1: numeri, variabili ed operatori elementari Introduzione allo Scilab Parte 1: numeri, variabili ed operatori elementari Felice Iavernaro Dipartimento di Matematica Università di Bari http://dm.uniba.it/ iavernaro 6 Giugno 2007 Felice Iavernaro (Univ.

Dettagli

Realizzazione di Politiche di Gestione delle Risorse: i Semafori Privati

Realizzazione di Politiche di Gestione delle Risorse: i Semafori Privati Realizzazione di Politiche di Gestione delle Risorse: i Semafori Privati Condizione di sincronizzazione Qualora si voglia realizzare una determinata politica di gestione delle risorse,la decisione se ad

Dettagli

Esercizi per il recupero del debito formativo:

Esercizi per il recupero del debito formativo: ANNO SCOLASTICO 2005/2006 CLASSE 3 ISC Esercizi per il recupero del debito formativo: Disegnare il diagramma e scrivere la matrice delle transizioni di stato degli automi a stati finiti che rappresentano

Dettagli

MATLAB. Caratteristiche. Dati. Esempio di programma MATLAB. a = [1 2 3; 4 5 6; 7 8 9]; b = [1 2 3] ; c = a*b; c

MATLAB. Caratteristiche. Dati. Esempio di programma MATLAB. a = [1 2 3; 4 5 6; 7 8 9]; b = [1 2 3] ; c = a*b; c Caratteristiche MATLAB Linguaggio di programmazione orientato all elaborazione di matrici (MATLAB=MATrix LABoratory) Le variabili sono matrici (una variabile scalare equivale ad una matrice di dimensione

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

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

NOZIONI ELEMENTARI DI HARDWARE E SOFTWARE

NOZIONI ELEMENTARI DI HARDWARE E SOFTWARE CORSO INTRODUTTIVO DI INFORMATICA NOZIONI ELEMENTARI DI HARDWARE E SOFTWARE Dott. Paolo Righetto 1 CORSO INTRODUTTIVO DI INFORMATICA Percorso dell incontro: 1) Alcuni elementi della configurazione hardware

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

Aritmetica binaria sui numeri relativi (somme e sottrazioni) e Unità aritmetiche

Aritmetica binaria sui numeri relativi (somme e sottrazioni) e Unità aritmetiche Aritmetica binaria sui numeri relativi (somme e sottrazioni) e Unità aritmetiche Esercizi da laboratorio ed esercizi per l esame 30 ottobre 20 Reti Logiche Numeri relativi: rappresentazione in complemento

Dettagli

Variabili e tipi di dato

Variabili e tipi di dato Variabili e tipi di dato Tutte le variabili devono essere dichiarate, specificandone il tipo La dichiarazione deve precedere l uso Il tipo è un concetto astratto che esprime: L allocazione di spazio per

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

Architettura (10/9/2003) Pag. 1/6. Cognome e Nome (in stampatello):

Architettura (10/9/2003) Pag. 1/6. Cognome e Nome (in stampatello): Architettura (10/9003) Pag. 1/6 Esame di Architettura (matr.0-1) del 10/9003 Per Fondamenti di Architettura NON rispondere Per le domande a risposta multipla cerchiare la risposta scelta. Non alle domande

Dettagli

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

Dettagli

3 - Variabili. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

3 - Variabili. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo 3 - Variabili Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it Corso di

Dettagli

Informazione analogica e digitale

Informazione analogica e digitale L informazione L informazione si può: rappresentare elaborare gestire trasmettere reperire L informatica offre la possibilità di effettuare queste operazioni in modo automatico. Informazione analogica

Dettagli

L unità di controllo. Il processore: unità di controllo. Le macchine a stati finiti. Struttura della macchina a stati finiti

L unità di controllo. Il processore: unità di controllo. Le macchine a stati finiti. Struttura della macchina a stati finiti Il processore: unità di lo Architetture dei Calcolatori (lettere A-I) L unità di lo L unità di lo è responsabile della generazione dei segnali di lo che vengono inviati all unità di elaborazione Alcune

Dettagli

Macchine combinatorie

Macchine combinatorie Corso di Calcolatori Elettronici I A.A. 2010-2011 Macchine combinatorie Lezione 10 Università degli Studi di Napoli Federico II Facoltà di Ingegneria Analisi e Sintesi di un sistema 1/2 Per analisi di

Dettagli

Linguaggi di programmazione

Linguaggi di programmazione Linguaggi di programmazione Un calcolatore basato sul modello di von Neumann permette l esecuzione di un programma, cioè di una sequenza di istruzioni descritte nel linguaggio interpretabile dal calcolatore

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

E-mail: infobusiness@zucchetti.it. Gestione Filtri. InfoBusiness 2.8 Gestione Filtri Pag. 1/ 11

E-mail: infobusiness@zucchetti.it. Gestione Filtri. InfoBusiness 2.8 Gestione Filtri Pag. 1/ 11 Gestione Filtri InfoBusiness 2.8 Gestione Filtri Pag. 1/ 11 INDICE Indice...2 1. GESTIONE DEI FILTRI...3 1.1. Filtri fissi...3 1.2. Filtro parametrico...5 1.3. Funzione di ricerca...6 2. CONTESTI IN CUI

Dettagli

Sistemi Operativi. Interfaccia del File System FILE SYSTEM : INTERFACCIA. Concetto di File. Metodi di Accesso. Struttura delle Directory

Sistemi Operativi. Interfaccia del File System FILE SYSTEM : INTERFACCIA. Concetto di File. Metodi di Accesso. Struttura delle Directory FILE SYSTEM : INTERFACCIA 8.1 Interfaccia del File System Concetto di File Metodi di Accesso Struttura delle Directory Montaggio del File System Condivisione di File Protezione 8.2 Concetto di File File

Dettagli

Nascita di Java. Che cos e Java? Caratteristiche di Java. Java: linguaggio a oggetti

Nascita di Java. Che cos e Java? Caratteristiche di Java. Java: linguaggio a oggetti Nascita di Java L uscita di Java, verso la metà degli anni novanta, fu accolta con molto entusiasmo dalla comunità dei programmatori e dei provider di servizi internet perché permetteva agli utenti del

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

Automatizzare i compiti ripetitivi. I file batch. File batch (1) File batch (2) Visualizzazione (2) Visualizzazione

Automatizzare i compiti ripetitivi. I file batch. File batch (1) File batch (2) Visualizzazione (2) Visualizzazione Automatizzare i compiti ripetitivi I file batch Anno accademico 2000-01 1 Spesso capita di dover eseguire ripetutatmente una data sequenza di comandi Introdurli uno a uno da tastiera è un processo lento

Dettagli

Informatica. Rappresentazione dei numeri Numerazione binaria

Informatica. Rappresentazione dei numeri Numerazione binaria Informatica Rappresentazione dei numeri Numerazione binaria Sistemi di numerazione Non posizionali: numerazione romana Posizionali: viene associato un peso a ciascuna posizione all interno della rappresentazione

Dettagli

GERARCHIE RICORSIVE - SQL SERVER 2008

GERARCHIE RICORSIVE - SQL SERVER 2008 GERARCHIE RICORSIVE - SQL SERVER 2008 DISPENSE http://dbgroup.unimo.it/sia/gerarchiericorsive/ L obiettivo è quello di realizzare la tabella di navigazione tramite una query ricorsiva utilizzando SQL SERVER

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

Corso di Laurea in Informatica Architetture degli Elaboratori

Corso di Laurea in Informatica Architetture degli Elaboratori Corso di Laurea in Informatica Architetture degli Elaboratori Corsi A e B Esonero del 25 maggio 2005 Esercizio 1 (punti 3) Una scheda di memoria di un telefono cellulare mette a disposizione 8Mbyte di

Dettagli

Flip-flop, registri, la macchina a stati finiti

Flip-flop, registri, la macchina a stati finiti Architettura degli Elaboratori e delle Reti Lezione 9 Flip-flop, registri, la macchina a stati finiti Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell nformazione Università degli Studi di

Dettagli

Logica e codifica binaria dell informazione

Logica e codifica binaria dell informazione Politecnico di Milano Corsi di Laurea in Ingegneria Matematica e Ingegneria Fisica Dipartimento di Elettronica ed Informazione Logica e codifica binaria dell informazione Anno Accademico 2002 2003 L. Muttoni

Dettagli

Linguaggio C. Fondamenti. Struttura di un programma.

Linguaggio C. Fondamenti. Struttura di un programma. Linguaggio C Fondamenti. Struttura di un programma. 1 La storia del Linguaggio C La nascita del linguaggio C fu dovuta all esigenza di disporre di un Linguaggio ad alto livello adatto alla realizzazione

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

Architettura del computer (C.Busso)

Architettura del computer (C.Busso) Architettura del computer (C.Busso) Il computer nacque quando fu possibile costruire circuiti abbastanza complessi in logica programmata da una parte e, dall altra, pensare, ( questo è dovuto a Von Neumann)

Dettagli

SISTEMI DI NUMERAZIONE E CODICI

SISTEMI DI NUMERAZIONE E CODICI SISTEMI DI NUMERAZIONE E CODICI Il Sistema di Numerazione Decimale Il sistema decimale o sistema di numerazione a base dieci usa dieci cifre, dette cifre decimali, da O a 9. Il sistema decimale è un sistema

Dettagli

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

Dettagli

Introduzione. Informatica B. Daniele Loiacono

Introduzione. Informatica B. Daniele Loiacono Introduzione Informatica B Perchè studiare l informatica? Perchè ha a che fare con quasi tutto quello con cui abbiamo a che fare ogni giorno Perché è uno strumento fondamentale per progettare l innovazione

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

Programmare in Java. Olga Scotti

Programmare in Java. Olga Scotti Programmare in Java Olga Scotti Linguaggi di programmazione linguaggio macchina assembler linguaggi ad alto livello Linguaggi ad alto livello istruzioni comprensibili linguaggio simile a quello naturale

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

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

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

Sistema operativo: Gestione della memoria

Sistema operativo: Gestione della memoria Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Sistema operativo: Gestione della memoria La presente dispensa e

Dettagli

Flip-flop Macchine sequenziali

Flip-flop Macchine sequenziali Flip-flop Macchine sequenziali Introduzione I circuiti digitali possono essere così classificati Circuiti combinatori Il valore delle uscite ad un determinato istante dipende unicamente dal valore degli

Dettagli

Elementi di Informatica

Elementi di Informatica Università degli Studi di Udine Facoltà di Ingegneria CORSO DI LAUREA IN SCIENZE dell ARCHITETTURA Elementi di Informatica Algoritmi, e Programmi D. Gubiani 29 marzo 2010 D. Gubiani Algoritmi, e Programmi

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

Elementi di Architettura e Sistemi Operativi

Elementi di Architettura e Sistemi Operativi Elementi di Architettura e Sistemi Operativi Bioinformatica - Tiziano Villa 15 Giugno 2015 Nome e Cognome: Matricola: Posta elettronica: problema punti massimi i tuoi punti problema 1 4 problema 2 6 problema

Dettagli

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

Dettagli

Gestione del workflow

Gestione del workflow Gestione del workflow Stefania Marrara Corso di Tecnologie dei Sistemi Informativi 2004/2005 Progettazione di un Sistema Informativo Analisi dei processi Per progettare un sistema informativo è necessario

Dettagli

I file di dati. Unità didattica D1 1

I file di dati. Unità didattica D1 1 I file di dati Unità didattica D1 1 1) I file sequenziali Utili per la memorizzazione di informazioni testuali Si tratta di strutture organizzate per righe e non per record Non sono adatte per grandi quantità

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

Artifact Centric Business Processes (I)

Artifact Centric Business Processes (I) Introduzione Autore: Docente: Prof. Giuseppe De Giacomo Dipartimento di Informatica e Sistemistica SAPIENZA - Universitá di Roma 16 Novembre 2008 Una visione assiomatica La modellazione dei processi di

Dettagli

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

Dettagli

I Thread. I Thread. I due processi dovrebbero lavorare sullo stesso testo

I Thread. I Thread. I due processi dovrebbero lavorare sullo stesso testo I Thread 1 Consideriamo due processi che devono lavorare sugli stessi dati. Come possono fare, se ogni processo ha la propria area dati (ossia, gli spazi di indirizzamento dei due processi sono separati)?

Dettagli

Algebra Booleana 1 ALGEBRA BOOLEANA: VARIABILI E FUNZIONI LOGICHE

Algebra Booleana 1 ALGEBRA BOOLEANA: VARIABILI E FUNZIONI LOGICHE Algebra Booleana 1 ALGEBRA BOOLEANA: VARIABILI E FUNZIONI LOGICHE Andrea Bobbio Anno Accademico 2000-2001 Algebra Booleana 2 Calcolatore come rete logica Il calcolatore può essere visto come una rete logica

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

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

Linguaggi e Paradigmi di Programmazione

Linguaggi e Paradigmi di Programmazione Linguaggi e Paradigmi di Programmazione Cos è un linguaggio Definizione 1 Un linguaggio è un insieme di parole e di metodi di combinazione delle parole usati e compresi da una comunità di persone. È una

Dettagli

Sistemi Operativi MECCANISMI E POLITICHE DI PROTEZIONE. D. Talia - UNICAL. Sistemi Operativi 13.1

Sistemi Operativi MECCANISMI E POLITICHE DI PROTEZIONE. D. Talia - UNICAL. Sistemi Operativi 13.1 MECCANISMI E POLITICHE DI PROTEZIONE 13.1 Protezione Obiettivi della Protezione Dominio di Protezione Matrice di Accesso Implementazione della Matrice di Accesso Revoca dei Diritti di Accesso Sistemi basati

Dettagli

MECCANISMI E POLITICHE DI PROTEZIONE 13.1

MECCANISMI E POLITICHE DI PROTEZIONE 13.1 MECCANISMI E POLITICHE DI PROTEZIONE 13.1 Protezione Obiettivi della Protezione Dominio di Protezione Matrice di Accesso Implementazione della Matrice di Accesso Revoca dei Diritti di Accesso Sistemi basati

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

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

ISTITUTO TECNICO ECONOMICO MOSSOTTI

ISTITUTO TECNICO ECONOMICO MOSSOTTI CLASSE III INDIRIZZO S.I.A. UdA n. 1 Titolo: conoscenze di base Conoscenza delle caratteristiche dell informatica e degli strumenti utilizzati Informatica e sistemi di elaborazione Conoscenza delle caratteristiche

Dettagli

Laboratorio di Architettura degli Elaboratori A.A. 2015/16 Circuiti Logici

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

Dettagli

Matlab: Strutture di Controllo. Informatica B

Matlab: Strutture di Controllo. Informatica B Matlab: Strutture di Controllo Informatica B Tipo di dato logico È un tipo di dato che può avere solo due valori true (vero) 1 false (falso) 0 I valori di questo tipo possono essere generati direttamente

Dettagli

Java:Struttura di Programma. Fabio Scanu a.s. 2014/2015

Java:Struttura di Programma. Fabio Scanu a.s. 2014/2015 Java:Struttura di Programma Fabio Scanu a.s. 2014/2015 Altre Attenzioni da riservare Java è Case Sensitive: La variabile «a» e la variabile «A» sono diverse Java ha alcune regole di scrittura: I nomi delle

Dettagli

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

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

Alessandro Pellegrini

Alessandro Pellegrini Esercitazione sulle Rappresentazioni Numeriche Esistono 1 tipi di persone al mondo: quelli che conoscono il codice binario e quelli che non lo conoscono Alessandro Pellegrini Cosa studiare prima Conversione

Dettagli

Calcolatori: Algebra Booleana e Reti Logiche

Calcolatori: Algebra Booleana e Reti Logiche Calcolatori: Algebra Booleana e Reti Logiche 1 Algebra Booleana e Variabili Logiche I fondamenti dell Algebra Booleana (o Algebra di Boole) furono delineati dal matematico George Boole, in un lavoro pubblicato

Dettagli