Linguaggi di Descrizione del Hardware: VERILOG. Livelli di astrazione. Livelli di astrazione. Livelli di astrazione. Introduzione

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Linguaggi di Descrizione del Hardware: VERILOG. Livelli di astrazione. Livelli di astrazione. Livelli di astrazione. Introduzione"

Transcript

1 Linguaggi di Descrizione del Hardware: VERILOG Lucidi del Corso di Elettronica Digitale Modulo 7 Livelli di astrazione Introduzione Università di Cagliari Dipartimento di Ingegneria Elettrica ed Elettronica Laboratorio di Elettronica (EOL) Università di Cagliari Dipartimento di Ingegneria Elettrica ed Elettronica Laboratorio di Elettronica (EOL) Livelli di astrazione bbiamo visto che esistono molte diverse implementazioni di una stessa funzione logica (che può essere descritta in termini di porte logiche, di tabelle di verità, di espressioni algebriche) d ogni funzione logica che si voglia implementare corrisponderà poi un circuito elettronico composto di transistor d ogni circuito corrispondono un insieme di maschere (layout) che descrivono i passi di processo (maschera di gate, di diffusione, di metallizzazione, etc.) Livelli di astrazione Qualsiasi sistema digitale può dunque essere descritto a diversi differenti livelli di dettaglio + SISTEM/SPECIFICHE MODULO/RTL PORTE LOGICHE/LGERICO CIRCUITO LYOUT Novembre 26 ED - Verilog Massimo arbaro 3 Novembre 26 ED - Verilog Massimo arbaro 4

2 Esempio: sommatore Proviamo a seguire tutto il processo di progettazione in un caso molto semplice, dalla concezione al layout Esempio: un sommatore di due numeri a 4 bit espressi in complemento a 2 Sommatore: Specifiche Quale è la prima descrizione del sistema? Un sommatore di numeri a 4 bit in complemento a 2 (Una descrizione informale del sistema che si vuole realizzare) Novembre 26 ED - Verilog Massimo arbaro 5 Novembre 26 ED - Verilog Massimo arbaro 6 Sommatore: Modulo/RTL Sommatore: Modulo/RTL Una descrizione più dettagliata darà una rappresentazione in termini di moduli funzionali. Nel caso del sommatore possiamo usare un simbolo che ne rappresenti gli ingressi, le uscite e la funzionalità (il modulo funzionale è uno solo) [3:] [3:] + S[4:] L uscita è a 5 bit, perché c è il riporto (carry) ncora al livello di descrizione in termini di moduli funzionali, l addizionatore di numeri a 4 bit è composto da 4 addizionatori di numeri a singolo bit. Il modulo H (Half dder) somma due bit ed ha in uscita la somma ed il riporto (carry). Il modulo F (Full dder) somma 3 bit (la coppia i-esima più il riporto dalla (i-)-esima) H F F F S C S C S 2 C 2 S 3 C 3 =S 4 Novembre 26 ED - Verilog Massimo arbaro 7 Novembre 26 ED - Verilog Massimo arbaro 8

3 Half dder: Porte Logiche/lgebrico Ogni singolo modulo funzionale deve poi essere implementato in termini di porte logiche. Per prima cosa si individuano le funzioni logiche che legano ingressi ad uscite (tramite tabelle di verità) e poi si implementano queste funzioni con porte logiche. Half dder: Porte Logiche/lgebrico Ottenuta l espressione algebrica è possibile disegnare lo schematico con porte logiche. Esistono molte soluzioni a seconda delle porte che è possibile implementare S S= + C C= S C Novembre 26 ED - Verilog Massimo arbaro 9 Novembre 26 ED - Verilog Massimo arbaro Half dder: Circuito Half dder: Circuito Per implementare in logica CMOS in modo compatto si può manipolare S: C= S =( + ) =( ) ( ) = =(+ )( +)= = ++ + = =+ = =C+ =(C ) + NND seguita da un inverter DeMorgan DeMorgan Distributiva = = C C C S C S C Si può implementare con un pull-up Novembre 26 ED - Verilog Massimo arbaro Novembre 26 ED - Verilog Massimo arbaro 2

4 Half dder: Layout Sommatore 4 bit Il layout del circuito del Half-dder è complesso e di difficile comprensione nonostante contenga solo un numero limitato delle porte totali del sommatore bbiamo condotto la progettazione del halfadder contenuto nel sommatore fino al livello di layout. desso bisognerebbe fare altrettanto per il fulladder e poi mettere insieme i 4 sottomoduli ( H e 3 F) con le opportune connessioni E evidente che ciascuna delle descrizioni possibili (modulare, porte logiche, circuitale, layout) aggiunge informazioni ma contemporaneamente rende rapidamente ingestibile il problema nella sua interezza Novembre 26 ED - Verilog Massimo arbaro 3 Novembre 26 ED - Verilog Massimo arbaro 4 Livelli di astrazione Si rende necessario uno strumento alternativo per la gestione del progetto al livello di sistema/specifiche o modulo/rtl Ci serve uno strumento che sia contemporaneamente semplice da usare ed abbastanza sofisticato da rendere la complessità del sistema Lo strumento sono gli Hardware Description Languages (HDL) o Linguaggi di Descrizione del Hardware Hardware Description Language Un linguaggio di descrizione del hardware è un linguaggio usato per descrivere sistemi digitali Sebbene possa a prima vista essere confuso con un linguaggio di programmazione le differenze sono enormi: un HDL descrive comunque un sistema fisico e non un algoritmo Esistono due principali HDL (Verilog e VHDL) che hanno caratteristiche simili ma non identiche. Noi useremo il Verilog (per la sua semplicità d uso e la sua rapida curva di apprendimento), ma non è complicato partire dalla conoscenza del Verilog per imparare anche il VHDL Novembre 26 ED - Verilog Massimo arbaro 5 Novembre 26 ED - Verilog Massimo arbaro 6

5 VERILOG: Concetto di modulo VERILOG Fondamenti L elemento base per la descrizione di un blocco logico in verilogèil modulo. Il modulo rappresenta un blocco logico preso in uno dei suoi possibili livelli di astrazione. Le informazioni base contenute nel modulo sono INTERFCCI (interface): segnali di ingresso e uscita CORPO (body): la concreta descrizione funzionale del modulo stesso Ogni modulo può contenere al suo interno l istanziazione di altri moduli ad un livello più basso di gerarchia Università di Cagliari Dipartimento di Ingegneria Elettrica ed Elettronica Laboratorio di Elettronica (EOL) Novembre 26 ED - Verilog Massimo arbaro 8 Modulo In linguaggio verilog un modulo inizia con la parolachiave module e termina con endmodule module nomemodulo( lista_io ); endmodule INTERFCE ODY Interfaccia Esempio della definizione di interfaccia per il sommatore: Inizio modulo Corpo modulo Fine modulo Nome del modulo module sommatore(,,s); input [3:],; output [4:] S; endmodule Elenco terminali IO Definizione direzione terminali Dimensione segnali IO Novembre 26 ED - Verilog Massimo arbaro 9 Novembre 26 ED - Verilog Massimo arbaro 2

6 Interfaccia La dichiarazione dell interfaccia di un modulo è divisa in 2 parti: Lista delle porte: le porte sono i terminali di ingresso e uscita del modulo, l elenco delle porte compare fra parentesi subito dopo il nome del modulo. Dopo la parentesi, come dopo ogni riga di un file verilog, c è un punto e virgola. Nella lista le porte di I/O (input/output) possono comparire in qualsiasi ordine Dichiarazione delle porte: subito dopo la prima riga devono essere definite tutte le porte che compaiono nella lista. Per ogni porta si definisce la direzione (input, output, inout) e la dimensione (numero di bit associati a quella porta) lcuni elementi di sintassi Ogni riga (tranne quella contenente endmodule) deve essere terminata da un punto e virgola (come in C) I commenti si scrivono come in C: Commenti su singola riga sono preceduti da // Commenti su più righe sono contenuti fra il simbolo /* ed il simbolo */ Gli identificatori (nomi di moduli, nomi di porte, nomi di istanze o variabili) devono contenere solo lettere, numeri, segni $ e underscore _ e devono iniziare per lettera o underscore Il verilog è case-sensitive quindi lettere minuscole e maiuscole vengono considerate diverse (SIG_$ e sig_a$ sono due identificatori differenti validi) Novembre 26 ED - Verilog Massimo arbaro 2 Novembre 26 ED - Verilog Massimo arbaro 22 Segnali in Verilog Qualsiasi segnale in verilog può assumere uno fra i 4 possibili simboli: : logico : logico o x: indeterminato Z o z: alta impedenza Un segnale può essere indeterminato per vari motivi. d esempio: Non è stato mai inizializzato E in conflitto con un altro segnale lta impedenza Il segnale in alta impedenza (Z) è utilizzato per gestire bus bidirezionali: Unità Unità 2 US Se l Unità (ad esempio il processore) deve potere inviare/ricevere dati a/da l Unità 2 (ad esempio la memoria) è necessario che entrambe siano in grado di pilotare lo stesso bus. Novembre 26 ED - Verilog Massimo arbaro 23 Novembre 26 ED - Verilog Massimo arbaro 24

7 Logica a 4 valori: tabelle di verità Visto che ogni segnale può valere anche x o z bisogna ridefinire le tabelle di verità delle primitive tenendo conto di questi valori ND Z OR Z Z Z NND Z Z NOR Novembre 26 ED - Verilog Massimo arbaro 25 Z Z NET e VRILE I segnali di un sistema descritto in verilog possono essere di due tipi: NET e VRILE. NET: corrisponde ad una qualsiasi connessione elettrica (filo). Deve quindi essere pilotato da qualcosa (una primitiva logica, un modulo, una espressione algebrica) o va in alta impedenza VRILE: è simile ad una variabile di un linguaggio di programmazione. Gli si assegna un valore esplicitamente e tale valore è mantenuto fino a che non si ha un altra assegnazione esplicita Novembre 26 ED - Verilog Massimo arbaro 26 Definizione di un NET Per definire un segnale di tipo NET si usano le seguenti parole-chiave: wire: indica un semplice filo di interconnessione (è quella che utilizzeremo quasi sempre noi) tri: indica un filo di interconnessione pilotato da dispositivi tristate (la useremo di rado, ma è utile in corsi avanzati) supply: indica un filo connesso direttamente a massa (quindi valore logico sempre ) supply: indica un filo connesso sempre a VDD (quindi valore logico sempre ) wand, wor, tri, tri, etc.: fili di interconnessione con caratteristiche particolari che NON utilizzeremo in questo corso Novembre 26 ED - Verilog Massimo arbaro 27 Definizione di un NET: esempio Per definire lo half-adder: module ha(,,s,c); input,; output S,C; wire,,s,c,n,n; wire n, n; endmodule n n Novembre 26 ED - Verilog Massimo arbaro 28 n n Tutti i segnali sono fili di interconnessione quindi sono NET, utilizziamo per definirli la parola chiave wire S C

8 NET: assegnamento Esempio: half-adder Ci sono due opzioni per assegnare un valore ad un net: Strutturale: il valore al net è imposto dal fatto che il net stesso è l uscita di una porta logica lgebrico: al net viene assegnato il risultato di una espressione algebrica (booleana) le cui variabili sono segnali di ingresso o altri segnali interni del modulo. Tale assegnamento avviene per mezzo della parola chiave assign (l assegnamento è detto continuous assignment perché il net avrà sempre il risultato di quell espressione algebrica, ed al variare degli ingressi varia anche il valore del net) module ha(,,c,s); input,; output C,S; wire,,c,s; assign S=^; and a(c,,); endmodule ssegnamento del valore di C in modo strutturale (è l uscita di una primitiva logica, vedi modulo 7) Nel caso del half-adder si può utilizzare una decrizione mista strutturale/dataflow Continuous assignment: S è il risultato di un espressione algebrica degli ingressi In entrambi i casi ogni volta che cambiano gli ingressi cambiano le uscite senza dover rifare l assegnamento Novembre 26 ED - Verilog Massimo arbaro 29 Novembre 26 ED - Verilog Massimo arbaro 3 Definizione di un VRILE Per definire un segnale di tipo VRILE si usano le seguenti parole-chiave: reg: indica un semplice variabile logica espressa su un numero di bit a piacimento. Contiene un valore logico non necessariamente associato ad un numero. Useremo quasi sempre questo tipo. integer: una variabile che rappresenta un numero intero espresso tipicamente su 32 bit. Lo utilizzeremo raramente. real, time, realtime: variabili con caratteristiche particolari che NON utilizzeremo in questo corso Reg: assegnamento Come si assegna un valore ad un reg che è l equivalente di una variabile? Il verilog mette a disposizione due costrutti procedurali, ossia due modi per descrivere operazioni che vengono eseguite in sequenza su delle variabili: locco locco always Novembre 26 ED - Verilog Massimo arbaro 3 Novembre 26 ED - Verilog Massimo arbaro 32

9 locco Un blocco procedurale è una sequenza di operazioni che vengono eseguite una volta sola nel modulo (l esecuzione inizia all istante e termina con l ultima istruzione del blocco) E possibile inserire in un modulo diversi blocchi che verranno eseguiti in parallelo (tutti i blocchi vengono eseguiti contemporaneamente a partire dall istante, non conta l ordine con cui compaiono nel file) La parola chiave indica l inizio del blocco. Se il blocco contiene più istruzioni queste vengono racchiuse fra begin end module testreg; reg,; begin =; =; #5 =; #5 =; =; #5 =; #5 $stop; end endmodule Esempio Questa sequenza assegna alla coppia, tutte le possibili combinazioni di ingresso. Tutti gli assegnamenti sono considerati contemporanei a meno che non vengano inseriti dei ritardi. Per inserire un ritardo si usa la sintassi #delay (#5 significa: attendi 5 unità di tempo, che di default sono nanosecondi) Novembre 26 ED - Verilog Massimo arbaro 33 Novembre 26 ED - Verilog Massimo arbaro 34 Esempio Initial t = =; =; =; =; =; =; begin =; =; #5 =; #5 =; =; #5 =; #5 $stop; end t begin Sa; #dela S2a; #del2a S3a; end begin Sb; #delb S2b; end In generale: Ci possono essere più blocchi Non conta l ordine con cui vengono messi i blocchi ma conta l ordine in cui compaiono le istruzioni nei singoli blocchi L esecuzione è parallela e viene fatta una sola volta Novembre 26 ED - Verilog Massimo arbaro 35 Novembre 26 ED - Verilog Massimo arbaro 36

10 Esecuzione di Sa nel primo Esecuzione di Sb nel secondo Esempio Esecuzione di S2a nel primo Esecuzione di S2b nel secondo Esecuzione di S3a nel primo dela delb dela+del2a t Esempio Per il primo, quindi, valgono le seguenti temporizzazioni: Sa: subito t= S2a: dopo dela secondi t=dela S3a: dopo altri del2a secondi t=dela+del2a Per il secondo, invece, valgono le seguenti: Sb: subito t= S2b: dopo delb t=delb Novembre 26 ED - Verilog Massimo arbaro 37 Novembre 26 ED - Verilog Massimo arbaro 38 locco always Esempio Un blocco always è un blocco procedurale che viene continuamente eseguito L esecuzione di un blocco always inizia nell istante e prosegue seguendo le temporizzazioni all interno del blocco Subito dopo l esecuzione dell ultima istruzione si rincomincia ad eseguire la prima istruzione Possono esserci più blocchi always e vengono eseguiti tutti in parallelo Non conta l ordine con cui i blocchi compaiono nel file module testclock; reg clk; always begin clk=; #5 clk=; #5 clk=; end #4 $finish; endmodule Questa sequenza genera un segnale di clock con periodo unità di tempo (5 alto, 5 basso) L esecuzione inizia all istante (in cui si esegue clk=), dopo 5 unità si esegue clk=, dopo altre 5 nuovamente clk= ed il controllo ripassa subito (senza ritardo) alla prima istruzione (sempre clk=) Novembre 26 ED - Verilog Massimo arbaro 39 Novembre 26 ED - Verilog Massimo arbaro 4

11 always begin clk=; #5 clk=; #5 clk=; end clk clk=; clk=; Dopo l ultima istruzione l esecuzione riparte istantaneamente dalla prima Esempio clk=; clk=; clk=; t clk=; lways Un blocco always inizia con la parola chiave always. Se contiene più istruzioni queste sono racchiuse fra begin..end Possono esserci più blocchi always, in questo caso vengono eseguiti in parallelo e sono completamente indipendenti l uno dall altro (se un blocco termina rincomincia l esecuzione dall inizio anche se gli altri blocchi non hanno terminato) L ordine con cui compaiono i blocchi always non ha alcuna importanza ma ovviamente conta l ordine delle istruzioni dentro il singolo blocco Novembre 26 ED - Verilog Massimo arbaro 4 Novembre 26 ED - Verilog Massimo arbaro 42 Segnali interni ed esterni I segnali interni sono quei segnali che esistono solo all interno del modulo. Possono essere indifferentemente net o variable a seconda delle esigenze I segnali esterni sono le porte di interconnessione (definite nell interfaccia). Esistono regole precise sulla loro natura (net o variable), a seconda che siano input (ingressi), output (uscite) o inout (bidirezionali) Input Le porte di ingresso (input) rappresentano segnali che arrivano dall esterno e vengono quindi generati all esterno del modulo stesso Per questo motivo all interno del modulo non possono che essere di tipo net (se fossero variable il loro valore dovrebbe essere assegnato dentro il modulo, cosa non possibile per un ingresso) Dentro il modulo non possono essere fatti assegnamenti ad un ingresso Novembre 26 ED - Verilog Massimo arbaro 43 Novembre 26 ED - Verilog Massimo arbaro 44

12 Output Le porte di uscita (output) rappresentano segnali che vengono generati all interno del modulo stesso Per questo motivo all interno del modulo possono essere sia di tipo net (in tal caso verranno assegnati per mezzo di primitive o interconnessioni con sottomoduli) che di tipo variable Una porta di uscita non può essere letta all interno di un modulo ma solo assegnata (questa ultima regola non è rispettata in tutti i simulatori e software, quindi è più una regola di buona scrittura che un obbligo, in pratica non la utilizzeremo mai) Inout Le porte di inout rappresentano segnali bidirezionali Per questo motivo all interno del modulo non possono che essere di tipo net (se fossero variable il loro valore dovrebbe essere assegnato dentro il modulo, ma se la porta è bidirezionale bisogna che possa essere assegnata anche dall esterno) Dentro il modulo possono essere assegnati o letti indifferentemente Novembre 26 ED - Verilog Massimo arbaro 45 Novembre 26 ED - Verilog Massimo arbaro 46 Vettori Un vettore (bus) non è altro che un unico nome per un segnale rappresentato su più bit wire [7:] bus; wire [:7] bus; reg [3:] var; Vettori Si può accedere a porzioni di un vettore o a singoli bit del vettore usando sempre le parentesi quadre: wire [7:] bus; wire [:7] bus; indici Il primo numero fra parentesi è sempre il bit più significativo, l ultimo il meno significativo. bus [7:5] bus [3] bus [:2] bus [4] Novembre 26 ED - Verilog Massimo arbaro 47 Novembre 26 ED - Verilog Massimo arbaro 48

13 Rappresentazione dei numeri I numeri in verilog possono essere espressi in formato decimale, binario, ottale ed esadecimale d un numero decimale, ottale o esadecimale corrisponderà sempre una rappresentazione binaria interna che viene fatta in complemento a 2 Nel rappresentare un numero è possibile (in genere indispensabile) indicare il numero di bit su cui va rappresentato Novembre 26 ED - Verilog Massimo arbaro 49 Rappresentazione dei numeri Numero di bit su cui viene rappresentato ase della rappresentazione (decimale) 8 d2 Se il numero di bit non è specificato viene usato il numero massimo possibile (in genere 32) Numero Se la base non è indicata si intende decimale Novembre 26 ED - Verilog Massimo arbaro 5 Rappresentazione dei numeri Rappresentazione dei numeri Le possibili basi sono 4: d decimale b binaria o ottale h esadecimale Nel caso di numeri negativi il segno meno va indicato prima non solo del numero ma anche della dimensione (-8 d2 -> numero 2 decimale espresso su 8 bit) Esempi: 8 d2 (2 decimale su 8 bit) -8 d2 (-2 decimale su 8 bit) 4 b ( b =9 d su 4 bit) 8 ha6 (a6 h =66 d su 8 bit) ll interno del numero si può usare il simbolo _ per migliorare la leggibilità (separare gruppi di cifre) 8 b_ -> Nella rappresentazione binaria (ed ottale e esadecimale che corrispondono a bit) si possono assegnare anche il valore e Z 4 bxx -> xx 8 hza -> zzzz Se il numero di cifre specificate è inferiore al numero richiesto i bit rimanenti vengono posti a, a meno che la cifra più significativa indicata esplicitamente sia o Z nel qual caso i bit rimanenti sono messi appunto a o Z 8 b -> 8 bz ->zzzzzz 8 hza -> zzzz Novembre 26 ED - Verilog Massimo arbaro 5 Novembre 26 ED - Verilog Massimo arbaro 52

Linguaggi di Descrizione del Hardware: VERILOG

Linguaggi di Descrizione del Hardware: VERILOG Linguaggi di Descrizione del Hardware: VERILOG Lucidi del Corso di Elettronica Digitale Modulo 6 Università di Cagliari Dipartimento di Ingegneria Elettrica ed Elettronica Laboratorio di Elettronica (EOLAB)

Dettagli

Simulazione. Simulazione verilog. Testbench. Testbench

Simulazione. Simulazione verilog. Testbench. Testbench Simulazione Simulazione verilog Lucidi del Corso di Elettronica Digitale Modulo 8 Università di Cagliari Dipartimento di Ingegneria Elettrica ed Elettronica Laboratorio di Elettronica (EOLAB) Il verilog

Dettagli

Simulazione verilog. Lucidi del Corso di Elettronica Digitale. Università di Cagliari Dipartimento di Ingegneria Elettrica ed Elettronica

Simulazione verilog. Lucidi del Corso di Elettronica Digitale. Università di Cagliari Dipartimento di Ingegneria Elettrica ed Elettronica Simulazione verilog Lucidi del Corso di Elettronica Digitale Modulo 8 Università di Cagliari Dipartimento di Ingegneria Elettrica ed Elettronica Laboratorio di Elettronica (EOLAB) Simulazione Il verilog

Dettagli

Reti Logiche Combinatorie

Reti Logiche Combinatorie Reti Logiche Combinatorie Modulo 4 Università di Cagliari Dipartimento di Ingegneria Elettrica ed Elettronica Laboratorio di Microelettronica e Bioingegneria (EOLAB) Logica combinatoria Un blocco di logica

Dettagli

Logica sequenziale: implementazione verilog

Logica sequenziale: implementazione verilog Logica sequenziale: implementazione verilog Lucidi del Corso di Elettronica Digitale Modulo 10 Università di Cagliari Dipartimento di Ingegneria Elettrica ed Elettronica Laboratorio di Elettronica (EOLAB)

Dettagli

senza stato una ed una sola

senza stato una ed una sola Reti Combinatorie Un calcolatore è costituito da circuiti digitali (hardware) che provvedono a realizzare fisicamente il calcolo. Tali circuiti digitali possono essere classificati in due classi dette

Dettagli

Dalla tabella alla funzione canonica

Dalla tabella alla funzione canonica Dalla tabella alla funzione canonica La funzione canonica è la funzione logica associata alla tabella di verità del circuito che si vuole progettare. Essa è costituita da una somma di MinTerm con variabili

Dettagli

Reti combinatorie. Reti combinatorie (segue)

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

Dettagli

Algoritmi, Strutture Dati e Programmi. UD 2.b: Programmazione in Pascal

Algoritmi, Strutture Dati e Programmi. UD 2.b: Programmazione in Pascal Algoritmi, Strutture Dati e Programmi : Programmazione in Pascal Prof. Alberto Postiglione AA 2007-2008 Università degli Studi di Salerno Il Linguaggio di Programmazione Pascal Esistono molti linguaggi

Dettagli

Esercitazioni di Reti Logiche. Lezione 4

Esercitazioni di Reti Logiche. Lezione 4 Esercitazioni di Reti Logiche Lezione 4 Progettazione dei circuiti logici combinatori Zeynep KIZILTAN zkiziltan@deis.unibo.it Argomenti Procedura di analisi dei circuiti combinatori. Procedura di sintesi

Dettagli

Introduzione al VHDL Lezione 1

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

Dettagli

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

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

Dettagli

HSA HSA HARDWARE SYSTEM ARCHITECTURE. Livelli. Livello assemblativo. Livello di. Sistema Operativo. Livello di. linguaggio macchina.

HSA HSA HARDWARE SYSTEM ARCHITECTURE. Livelli. Livello assemblativo. Livello di. Sistema Operativo. Livello di. linguaggio macchina. HS HRDWRE SYSTEM RHITETURE a.a. 22-3 L. orrelli 1 Livelli I 4: MOV L,TOTLE XOR X,X XOR X,X MOV L,STRING[X] IN X LOOP I 4 Livello assemblativo Livello di Sistema Operativo 11111 1111 11 111 111 111 Livello

Dettagli

Fondamenti di Informatica

Fondamenti di Informatica Fondamenti di Informatica Algebra di Boole e Circuiti Logici Prof. Christian Esposito Corso di Laurea in Ingegneria Meccanica e Gestionale (Classe I) A.A. 2016/17 Algebra di Boole e Circuiti Logici L Algebra

Dettagli

Circuiti digitali. Operazioni Logiche: Algebra di Boole. Esempio di circuito. Porte Logiche. Fondamenti di Informatica A Ingegneria Gestionale

Circuiti digitali. Operazioni Logiche: Algebra di Boole. Esempio di circuito. Porte Logiche. Fondamenti di Informatica A Ingegneria Gestionale Operazioni Logiche: lgebra di oole Fondamenti di Informatica Ingegneria Gestionale Università degli Studi di rescia Docente: Prof. lfonso Gerevini Circuiti digitali Il calcolatore può essere visto come

Dettagli

Introduzione alla programmazione

Introduzione alla programmazione Introduzione alla programmazione Risolvere un problema Per risolvere un problema si procede innanzitutto all individuazione Delle informazioni, dei dati noti Dei risultati desiderati Il secondo passo consiste

Dettagli

I tipi di dato del Fortran

I tipi di dato del Fortran I tipi di dato del Fortran In Fortran sono disponibili 5 tipi di dato (tipi primitivi o predefiniti): INTEGER REAL COMPLEX CHARACTER LOGICAL tipi numerici tipi non numerici Non considereremo il tipo COMPLEX

Dettagli

Algebra di Boole. Fondamenti di Informatica per Meccanici Energetici - Biomedici 1. Politecnico di Torino Ottobre Mr. Boole. Variabile booleana

Algebra di Boole. Fondamenti di Informatica per Meccanici Energetici - Biomedici 1. Politecnico di Torino Ottobre Mr. Boole. Variabile booleana Fondamenti di Informatica per Meccanici Energetici - iomedici 1 Mr. oole lgebra di oole George oole: Matematico inglese del XIX secolo lgebra che descrive le leggi del pensiero Logica da cui è possibile

Dettagli

Lezione 7 Sommatori e Moltiplicatori

Lezione 7 Sommatori e Moltiplicatori Architettura degli Elaboratori e delle Reti Lezione 7 Sommatori e Moltiplicatori Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano L 7 /36 Sommario

Dettagli

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

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

Dettagli

6 - Blocchi e cicli. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

6 - Blocchi e cicli. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo 6 - Blocchi e cicli Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://pages.di.unipi.it/milazzo milazzo di.unipi.it

Dettagli

Algebra di Boole. Modulo 2. Università di Cagliari Dipartimento di Ingegneria Elettrica ed Elettronica Laboratorio di Elettronica (EOLAB)

Algebra di Boole. Modulo 2. Università di Cagliari Dipartimento di Ingegneria Elettrica ed Elettronica Laboratorio di Elettronica (EOLAB) Algebra di Boole Modulo 2 Università di Cagliari Dipartimento di Ingegneria Elettrica ed Elettronica Laboratorio di Elettronica (EOLAB) Algebra di Boole L algebra di Boole o della commutazione è lo strumento

Dettagli

ESERCIZI DEL CORSO DI INFORMATICA

ESERCIZI DEL CORSO DI INFORMATICA ESERCIZI DEL CORSO DI INFORMTIC Questa breve raccolta di esercizi vuole mettere in luce alcuni aspetti della prima parte del corso e fornire qualche spunto di riflessione. Il contenuto del materiale seguente

Dettagli

I.3 Porte Logiche. Elisabetta Ronchieri. Ottobre 13, Università di Ferrara Dipartimento di Economia e Management. Insegnamento di Informatica

I.3 Porte Logiche. Elisabetta Ronchieri. Ottobre 13, Università di Ferrara Dipartimento di Economia e Management. Insegnamento di Informatica I.3 Università di Ferrara Dipartimento di Economia e Management Insegnamento di Informatica Ottobre 13, 2015 Argomenti 1 2 3 Elaboratore Hardware È il mezzo con il quale l informazione è elaborata. Software

Dettagli

Variabili. Unità 2. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER

Variabili. Unità 2. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER Domenico Daniele Bloisi Docenti Metodi Numerici prof. Vittoria Bruni vittoria.bruni@sbai.uniroma1.it Programmazione prof. Domenico

Dettagli

Unità F1. Obiettivi. Il linguaggio C. Il linguaggio C++ Linguaggio C. Pseudolinguaggio. Primi programmi

Unità F1. Obiettivi. Il linguaggio C. Il linguaggio C++ Linguaggio C. Pseudolinguaggio. Primi programmi Obiettivi Unità F1 Primi programmi Conoscere il significato di dichiarazione e definizione di variabili Conoscere i tipi di dato numerici Essere in grado di realizzare semplici algoritmi in pseudolinguaggio

Dettagli

Esercitazioni di Reti Logiche

Esercitazioni di Reti Logiche Esercitazioni di Reti Logiche Sintesi di Reti Combinatorie & Complementi sulle Reti Combinatorie Zeynep KIZILTAN Dipartimento di Scienze dell Informazione Universita degli Studi di Bologna Anno Academico

Dettagli

Tecniche di Progettazione Digitale Richiami all algebra di Boole; domini di rappresentazione p. 2

Tecniche di Progettazione Digitale Richiami all algebra di Boole; domini di rappresentazione p. 2 Tecniche di Progettazione Digitale Richiami all algebra di Boole; domini di rappresentazione Valentino Liberali Dipartimento di Tecnologie dell Informazione Università di Milano, 26013 Crema e-mail: liberali@dti.unimi.it

Dettagli

ESECUZIONE DI PROGRAMMI C SU MACCHINE REALI. Docente: Giorgio Giacinto AA 2008/2009. formalizzazione degli algoritmi in linguaggio C

ESECUZIONE DI PROGRAMMI C SU MACCHINE REALI. Docente: Giorgio Giacinto AA 2008/2009. formalizzazione degli algoritmi in linguaggio C Università degli Studi di Cagliari Corso di Laurea Specialistica in Ingegneria per l Ambiente ed il Territorio Corso di Laurea Specialistica in Ingegneria Civile - Strutture FONDAMENTI DI INFORMATICA 2

Dettagli

Caratteristiche di un linguaggio ad alto livello

Caratteristiche di un linguaggio ad alto livello Caratteristiche di un linguaggio ad alto livello Un linguaggio ad alto livello deve offrire degli strumenti per: rappresentare le informazioni di interesse dell algoritmo definire le istruzioni che costituiscono

Dettagli

Informatica/ Ing. Meccanica/ Prof. Verdicchio/ 13/09/2013/ Foglio delle domande/versione 1

Informatica/ Ing. Meccanica/ Prof. Verdicchio/ 13/09/2013/ Foglio delle domande/versione 1 Informatica/ Ing. Meccanica/ Prof. Verdicchio/ 13/09/2013/ Foglio delle domande/versione 1 1) Dato un diagramma di flusso quali sono le condizioni necessarie perché si possa costruire un programma corrispondente?

Dettagli

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

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

Dettagli

Esercizi svolti Y Z. 1. Date le seguenti funzioni logiche ricavare le corrispondenti reti logiche realizzate con porte elementari AND, OR, NOT.

Esercizi svolti Y Z. 1. Date le seguenti funzioni logiche ricavare le corrispondenti reti logiche realizzate con porte elementari AND, OR, NOT. Esercizi svolti 1. Date le seguenti funzioni logiche ricavare le corrispondenti reti logiche realizzate con porte elementari ND, OR, NOT. a) F= b) F= F= 2. Date le seguenti funzioni logiche ricavare le

Dettagli

LA CODIFICA DELL INFORMAZIONE. Introduzione ai sistemi informatici D. Sciuto, G. Buonanno, L. Mari, McGraw-Hill Cap.2

LA CODIFICA DELL INFORMAZIONE. Introduzione ai sistemi informatici D. Sciuto, G. Buonanno, L. Mari, McGraw-Hill Cap.2 LA CODIFICA DELL INFORMAZIONE Introduzione ai sistemi informatici D. Sciuto, G. Buonanno, L. Mari, McGraw-Hill Cap.2 Codifica dati e istruzioni Per scrivere un programma è necessario rappresentare istruzioni

Dettagli

Lezione 3. I numeri relativi

Lezione 3. I numeri relativi Lezione 3 L artimetcia binaria: i numeri relativi i numeri frazionari I numeri relativi Si possono rappresentare i numeri negativi in due modi con modulo e segno in complemento a 2 1 Modulo e segno Si

Dettagli

Funzioni, Stack e Visibilità delle Variabili in C

Funzioni, Stack e Visibilità delle Variabili in C Funzioni, Stack e Visibilità delle Variabili in C Programmazione I e Laboratorio Corso di Laurea in Informatica A.A. 2016/2017 Calendario delle lezioni Lez. 1 Lez. 2 Lez. 3 Lez. 4 Lez. 5 Lez. 6 Lez. 7

Dettagli

Componenti e connessioni. Capitolo 3

Componenti e connessioni. Capitolo 3 Componenti e connessioni Capitolo 3 Componenti principali CPU (Unità Centrale di Elaborazione) Memoria Sistemi di I/O Connessioni tra loro Architettura di Von Neumann Dati e instruzioni in memoria (lettura

Dettagli

Costanti e Variabili

Costanti e Variabili Parte 3 Costanti e Variabili Identificatori Un identificatore è un nome che viene associato a diverse entità (costanti, tipi, variabili, funzioni, ecc.) e serve ad identificare la particolare entità Gli

Dettagli

Codice binario. Codice. Codifica - numeri naturali. Codifica - numeri naturali. Alfabeto binario: costituito da due simboli

Codice binario. Codice. Codifica - numeri naturali. Codifica - numeri naturali. Alfabeto binario: costituito da due simboli Codice La relazione che associa ad ogni successione ben formata di simboli di un alfabeto il dato corrispondente è detta codice. Un codice mette quindi in relazione le successioni di simboli con il significato

Dettagli

I circuiti dei calcolatori, le memorie, i bus. I fondamenti della rappresentazione dell informazione e della sua trasmissione ed elaborazione.

I circuiti dei calcolatori, le memorie, i bus. I fondamenti della rappresentazione dell informazione e della sua trasmissione ed elaborazione. I circuiti dei calcolatori, le memorie, i bus. I fondamenti della rappresentazione dell informazione e della sua trasmissione ed elaborazione. Dispensina per gli studenti di Ingegneria Gestionale. A.A.

Dettagli

Progettazione di circuiti integrati

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

Dettagli

Modulo 2: Strutture fondamentali della programmazione Java

Modulo 2: Strutture fondamentali della programmazione Java Modulo 2: Strutture fondamentali della programmazione Java Argomenti Trattati: Un semplice programma Java: Presentazione di un primo Esempio; Introduzione alla struttura; Compilazione ed esecuzione. Argomenti

Dettagli

Sistemi di Numerazione

Sistemi di Numerazione Sistemi di Numerazione Corso Università Numeri e Numerali Il numero cinque 5 V _ Π Arabo Romano Maya Greco Cinese Il sistema decimale Sistemi Posizionali 1 10 3 + 4 10 2 + 9 10 1 + 2 10 0 Sistemi Posizionali

Dettagli

Progettazione di circuiti integrati

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

Dettagli

Rappresentazione dei numeri interi in un calcolatore

Rappresentazione dei numeri interi in un calcolatore Corso di Calcolatori Elettronici I Rappresentazione dei numeri interi in un calcolatore Prof. Roberto Canonico Università degli Studi di Napoli Federico II Dipartimento di Ingegneria Elettrica e delle

Dettagli

Programmazione in Java (I modulo)

Programmazione in Java (I modulo) Programmazione in Java (I modulo) Lezione 4 Variabili di tipo primitivo. Dichiarazione di costanti Conversioni di tipo: operatore cast Altri operatori di assegnamento Operazioni aritmetiche e di confronto

Dettagli

Programmazione Orientata agli Oggetti. Emilio Di Giacomo e Walter Didimo

Programmazione Orientata agli Oggetti. Emilio Di Giacomo e Walter Didimo Programmazione Orientata agli Oggetti Emilio Di Giacomo e Walter Didimo Una metafora dal mondo reale la fabbrica di giocattoli progettisti Un semplice giocattolo Impara i suoni Dall idea al progetto Toy

Dettagli

La codifica binaria. Informatica B. Daniele Loiacono

La codifica binaria. Informatica B. Daniele Loiacono La codifica binaria Informatica B Introduzione Il calcolatore usa internamente una codifica binaria ( e ) per rappresentare: i dati da elaborare le istruzioni dei programmi eseguibili Fondamenti di codifica

Dettagli

Codifica binaria. Rappresentazioni medianti basi diverse

Codifica binaria. Rappresentazioni medianti basi diverse Codifica binaria Rappresentazione di numeri Notazione di tipo posizionale (come la notazione decimale). Ogni numero è rappresentato da una sequenza di simboli Il valore del numero dipende non solo dalla

Dettagli

Reti logiche: analisi, sintesi e minimizzazione Esercitazione. Venerdì 9 ottobre 2015

Reti logiche: analisi, sintesi e minimizzazione Esercitazione. Venerdì 9 ottobre 2015 Reti logiche: analisi, sintesi e minimizzazione Esercitazione Venerdì 9 ottobre 05 Punto della situazione Stiamo studiando le reti logiche costruite a partire dalle porte logiche AND, OR, NOT per progettare

Dettagli

Tipi di dati scalari (casting e puntatori) Alessandra Giordani Lunedì 10 maggio 2010

Tipi di dati scalari (casting e puntatori) Alessandra Giordani Lunedì 10 maggio 2010 Tipi di dati scalari (casting e puntatori) Alessandra Giordani agiordani@disi.unitn.it Lunedì 10 maggio 2010 http://disi.unitn.it/~agiordani/ I tipi di dati scalari I tipi aritmetici, i tipi enumerativi

Dettagli

Tecnologie per il web e lo sviluppo multimediale. Rappresentazione delle informazioni

Tecnologie per il web e lo sviluppo multimediale. Rappresentazione delle informazioni Tecnologie per il web e lo sviluppo multimediale Rappresentazione delle informazioni Luca Pulina Corso di Laurea in Scienze della Comunicazione Università degli Studi di Sassari A.A. 2015/2016 Luca Pulina

Dettagli

Introduzione al Flusso di Progetto di Circuiti e Sistemi Digitali

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

Dettagli

Reti logiche: introduzione

Reti logiche: introduzione Corso di Calcolatori Elettronici I Reti logiche: introduzione ing. Alessandro Cilardo Corso di Laurea in Ingegneria Biomedica Circuiti e porte logiche Esempio di rete di commutazione: Circuiti e porte

Dettagli

Circuiti Combinatori

Circuiti Combinatori Circuiti Combinatori circuiti combinatori sono circuiti nei quali le uscite dipendono solo dalla combinazione delle variabili logiche presenti nello stesso istante all ingresso Essi realizzano: Operazioni

Dettagli

Esercizi svolti e da svolgere sugli argomenti trattati nella lezione 25

Esercizi svolti e da svolgere sugli argomenti trattati nella lezione 25 Esercizi svolti e da svolgere sugli argomenti trattati nella lezione 25 Esercizi svolti Es.. Si progetti in dettaglio il circuito che, dati quattro registri sorgente Si e quattro registri destinazione

Dettagli

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

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

Dettagli

Modulo e segno Complemento a 1 (CA1) Complemento a 2 (CA2)

Modulo e segno Complemento a 1 (CA1) Complemento a 2 (CA2) Codifica dei numeri interi con segno in base 2: Ci siamo occupati fino ad adesso di come il computer (base 2) rappresenta i numeri interi Occupiamoci ora di rappresentare i numeri interi col segno: Per

Dettagli

Appunti di informatica. Lezione 3 anno accademico Mario Verdicchio

Appunti di informatica. Lezione 3 anno accademico Mario Verdicchio Appunti di informatica Lezione 3 anno accademico 2015-2016 Mario Verdicchio Numeri binari in memoria In un calcolatore, i numeri binari sono tipicamente memorizzati in sequenze di caselle (note anche come

Dettagli

Componenti principali. Programma cablato. Architettura di Von Neumann. Programma cablato. Cos e un programma? Componenti e connessioni

Componenti principali. Programma cablato. Architettura di Von Neumann. Programma cablato. Cos e un programma? Componenti e connessioni Componenti principali Componenti e connessioni Capitolo 3 CPU (Unita Centrale di Elaborazione) Memoria Sistemi di I/O Connessioni tra loro 1 2 Architettura di Von Neumann Dati e instruzioni in memoria

Dettagli

Il livello logico digitale

Il livello logico digitale Il livello logico digitale porte logiche e moduli combinatori Algebra di commutazione Algebra booleana per un insieme di due valori Insieme di elementi A={,} Operazioni NOT (operatore unario) => = e =

Dettagli

Lezione 6 Introduzione al C++ Mauro Piccolo

Lezione 6 Introduzione al C++ Mauro Piccolo Lezione 6 Introduzione al C++ Mauro Piccolo piccolo@di.unito.it Linguaggi di programmazione Un linguaggio formale disegnato per descrivere la computazione Linguaggi ad alto livello C, C++, Pascal, Java,

Dettagli

VARIABILI E COSTANTI

VARIABILI E COSTANTI VARIABILI E COSTANTI - Variabili e costanti - 1 PROBLEMA: Calcolo dell area di un triangolo di base b e altezza h. area = b ------------ h 2 ESEMPIO: b = 2,4 h = 1,5 area = 2,4 -------------------- 1,5

Dettagli

Cap. 2 - Rappresentazione in base 2 dei numeri interi

Cap. 2 - Rappresentazione in base 2 dei numeri interi Cap. 2 - Rappresentazione in base 2 dei numeri interi 2.1 I NUMERI INTERI RELATIVI I numeri relativi sono numeri con il segno: essi possono essere quindi positivi e negativi. Si dividono in due categorie:

Dettagli

Architettura degli Elaboratori. Classe 3 Prof.ssa Anselmo. Appello del 19 Febbraio Attenzione:

Architettura degli Elaboratori. Classe 3 Prof.ssa Anselmo. Appello del 19 Febbraio Attenzione: Cognome.. Nome.... Architettura degli Elaboratori Classe 3 Prof.ssa Anselmo Appello del 19 Febbraio 2016 Attenzione: Inserire i propri dati nell apposito spazio sottostante e in testa a questa pagina.

Dettagli

Calcolatori Elettronici

Calcolatori Elettronici Calcolatori Elettronici RETI SEQUENZIALI : ESERCIZI Massimiliano Giacomin 1 Implementazione di contatori Un contatore è un dispositivo sequenziale che aggiorna periodicamente il suo stato secondo una regola

Dettagli

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

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

Dettagli

Corso di Sistemi di Elaborazione delle informazioni

Corso di Sistemi di Elaborazione delle informazioni Corso di Sistemi di Elaborazione delle informazioni I sistemi di numerazione Francesco Fontanella La Rappresentazione dell'informazione La prima necessità che si ha quando si vuole elaborare dell informazione

Dettagli

Dispense di Informatica Anno Scolastico 2008/2009 Classe 3APS. Dall'Algoritmo al Programma

Dispense di Informatica Anno Scolastico 2008/2009 Classe 3APS. Dall'Algoritmo al Programma Istituto Tecnico Statale Commerciale Dante Alighieri Cerignola (FG) Dispense di Informatica Anno Scolastico 2008/2009 Classe 3APS Dall'Algoritmo al Programma Pr.: 002 Ver.:1.0 Autore: prof. Michele Salvemini

Dettagli

Macchine combinatorie: encoder/decoder e multiplexer/demultiplexer

Macchine combinatorie: encoder/decoder e multiplexer/demultiplexer Corso di Calcolatori Elettronici I A.A. 2011-2012 Macchine combinatorie: encoder/decoder e multiplexer/demultiplexer Lezione 12 Prof. Antonio Pescapè Università degli Studi di Napoli Federico II Facoltà

Dettagli

Algebra di Boole e circuiti logici

Algebra di Boole e circuiti logici lgebra di oole e circuiti logici Progetto Lauree Scientiiche 29 Dipartimento di Fisica Università di Genova Laboratorio di Fisica in collaborazione con il Liceo Scientiico Leonardo da Vinci Genova - 23

Dettagli

Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore

Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore Programma del corso Introduzione agli algoritmi Rappresentazione delle Informazioni Architettura del calcolatore Reti di Calcolatori Elementi di Programmazione Algoritmi e programmi Algoritmo Sequenza

Dettagli

INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica

INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica Fondamenti di Informatica INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA Fondamenti di Informatica - D. Talia - UNICAL 1 Fondamenti di Informatica - Programma Un programma è una formulazione

Dettagli

Linguaggio C Struttura dei programmi

Linguaggio C Struttura dei programmi FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Ing. DAVIDE PIERATTONI Facoltà di Ingegneria Università degli Studi di Udine Linguaggio C Struttura dei programmi 2001 Pier Luca Montessoro - Davide

Dettagli

PORTE LOGICHE. Si effettua su due o più variabili, l uscita assume lo stato logico 1 se almeno una variabile di ingresso è allo stato logico 1.

PORTE LOGICHE. Si effettua su due o più variabili, l uscita assume lo stato logico 1 se almeno una variabile di ingresso è allo stato logico 1. PORTE LOGICHE Premessa Le principali parti elettroniche dei computer sono costituite da circuiti digitali che, come è noto, elaborano segnali logici basati sullo 0 e sull 1. I mattoni fondamentali dei

Dettagli

Fondamenti di Programmazione. Sistemi di rappresentazione

Fondamenti di Programmazione. Sistemi di rappresentazione Fondamenti di Programmazione Sistemi di rappresentazione Numeri e numerali Il numero cinque 5 V _ Π 五 Arabo Romano Maya Greco Cinese Il sistema decimale Sistemi posizionali 1 10 3 + 4 10 2 + 9 10 1 + 2

Dettagli

Rappresentazione dell informazione

Rappresentazione dell informazione Rappresentazione dell informazione Problema che coinvolge aspetti filosofici Interessa soprattutto distinguere informazioni diverse Con un solo simbolo è impossibile Pertanto l insieme minimo è costituito

Dettagli

Componenti principali

Componenti principali Componenti e connessioni Capitolo 3 Componenti principali n CPU (Unità Centrale di Elaborazione) n Memoria n Sistemi di I/O n Connessioni tra loro Architettura di Von Neumann n Dati e instruzioni in memoria

Dettagli

Introduzione a Matlab

Introduzione a Matlab INFORMATICA B Ingegneria Elettrica Introduzione a Matlab Introduzione a Matlab Matlab (MATrix LABoratory) è uno strumento per il calcolo scientifico ed ingegneristico Matlab facilita lo sviluppo di programmi

Dettagli

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

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

Dettagli

Fondamenti di Informatica B. Fondamenti di Informatica B. Fondamenti di Informatica B. Fondamenti di Informatica B.

Fondamenti di Informatica B. Fondamenti di Informatica B. Fondamenti di Informatica B. Fondamenti di Informatica B. Fondamenti di Informatica Lezione n. n. lgebra booleana Circuiti logici Elementi primitivi Esercizi con elementi logici Fondamenti di Informatica Lezione n. In questa lezione vengono ripresi i concetti

Dettagli

Lezione 4. Sommario. L artimetica binaria: I numeri relativi e frazionari. I numeri relativi I numeri frazionari

Lezione 4. Sommario. L artimetica binaria: I numeri relativi e frazionari. I numeri relativi I numeri frazionari Lezione 4 L artimetica binaria: I numeri relativi e frazionari Sommario I numeri relativi I numeri frazionari I numeri in virgola fissa I numeri in virgola mobile 1 Cosa sono inumeri relativi? I numeri

Dettagli

Architetture degli Elaboratori I I Compito di Esonero (A) - 14/11/1996

Architetture degli Elaboratori I I Compito di Esonero (A) - 14/11/1996 1 Architetture degli Elaboratori I I Compito di Esonero (A) - 14/11/1996 Riportare le soluzioni su questi fogli utilizzando eventualmente il retro come brutta. Non è ammessa la consultazione di nessun

Dettagli

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale Algebra di Boole Stefano Cagnoni Algebra di Boole L algebra

Dettagli

Rapida Nota sulla Rappresentazione dei Caratteri

Rapida Nota sulla Rappresentazione dei Caratteri TECNOLOGIA DIGITALE TECNOLOGIA DIGITALE (segue) CPU, memoria centrale e dispositivi sono realizzati con tecnologia elettronica digitale Dati ed operazioni vengono codificati tramite sequenze di bit 8 bit

Dettagli

Il livello logico digitale

Il livello logico digitale Il livello logico digitale prima parte Introduzione Circuiti combinatori (o reti combinatorie) Il valore dell uscita in un determinato istante dipende unicamente dal valore degli ingressi in quello stesso

Dettagli

Contatore avanti-indietro Modulo 4

Contatore avanti-indietro Modulo 4 Contatore avanti-indietro Modulo 4 Un contatore avanti-indietro modulo 4 è un dispositivo a due uscite, che genera su queste la sequenza dei numeri binari da 0 a 4 cioè: 00->01->10->11 Il sistema dispone

Dettagli

Mappe di Karnaugh G. MARSELLA UNIVERSITÀ DEL SALENTO

Mappe di Karnaugh G. MARSELLA UNIVERSITÀ DEL SALENTO Mappe di Karnaugh 1 G. MARSELLA UNIVERSITÀ DEL SALENTO Introduzione Le semplificazioni di una funzione logica possono essere effettuate mediante i teoremi dell'algebra di Boole. Esiste però un metodo molto

Dettagli

Input/output da file I/O ANSI e I/O UNIX FLUSSI E FILE FLUSSI FLUSSI di TESTO FLUSSI BINARI FILE

Input/output da file I/O ANSI e I/O UNIX FLUSSI E FILE FLUSSI FLUSSI di TESTO FLUSSI BINARI FILE Input/output da file Il linguaggio C non contiene istruzioni di I/O, in quanto tali operazioni vengono eseguite tramite funzioni di libreria standard. Questo approccio rende estremamente flessibile e potente

Dettagli

Architettura degli Elaboratori

Architettura degli Elaboratori Architettura degli Elaboratori Università degli Studi di Padova Scuola di Scienze Corso di Laurea in Informatica docente: Alessandro Sperduti Informazioni Generali Lucidi ed esercizi disponibili in formato

Dettagli

Progettazione di algoritmi: componenti di base e metodologie di sviluppo. Variabili e costanti. Variabili e costanti A = 2. Algoritmo PASCAL-LIKE

Progettazione di algoritmi: componenti di base e metodologie di sviluppo. Variabili e costanti. Variabili e costanti A = 2. Algoritmo PASCAL-LIKE Progettazione di algoritmi: componenti di base e metodologie di sviluppo Variabili e costanti Variabili e costanti PROBLEMA: calcolo dell area A di un triangolo di base b ed altezza h b h A =.4.5 b =.4,

Dettagli

UD 3.2b: Programmazione in Pascal (1)

UD 3.2b: Programmazione in Pascal (1) UD 3.2b: Programmazione in Pascal (1) Il Linguaggio di Programmazione Pascal Esistono molti linguaggi di programmazione. Per motivi didattici utilizzeremo una versione ridotta di un linguaggio di programmazione

Dettagli

Aritmetica binaria e circuiti aritmetici

Aritmetica binaria e circuiti aritmetici Aritmetica binaria e circuiti aritmetici Architetture dei Calcolatori (lettere A-I) Addizioni binarie Le addizioni fra numerali si effettuano cifra a cifra (come in decimale) portando il riporto alla cifra

Dettagli

Lezione 7 ALU: Moltiplicazione e divisione

Lezione 7 ALU: Moltiplicazione e divisione Architettura degli Elaboratori e delle Reti Lezione 7 ALU: Moltiplicazione e divisione F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano L 7 1/34 Sommario! Sommatori

Dettagli

Calcolo numerico e programmazione Rappresentazione dei numeri

Calcolo numerico e programmazione Rappresentazione dei numeri Calcolo numerico e programmazione Rappresentazione dei numeri Tullio Facchinetti 16 marzo 2012 10:54 http://robot.unipv.it/toolleeo Rappresentazione dei numeri nei calcolatori

Dettagli

Architettura degli Elaboratori

Architettura degli Elaboratori Architettura degli Elaboratori Università degli Studi di Padova Scuola di Scienze Corso di Laurea in Informatica docenti: Silvia Crafa, Nicolò Navarin (lab), Alessandro Sperduti Docenti Silvia Crafa Nicolò

Dettagli

STRUTTURE DI CONTROLLO DEL C++

STRUTTURE DI CONTROLLO DEL C++ STRUTTURE DI CONTROLLO DEL C++ Le istruzioni if e else Le istruzioni condizionali ci consentono di far eseguire in modo selettivo una singola riga di codice o una serie di righe di codice (che viene detto

Dettagli

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

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

Dettagli

INTRODUZIONE ALLA PROGRAMMAZIONE

INTRODUZIONE ALLA PROGRAMMAZIONE INTRODUZIONE ALLA PROGRAMMAZIONE Prof. Enrico Terrone A. S: 2008/09 Definizioni Programmare significa risolvere problemi col computer, cioè far risolvere problemi al computer attraverso un insieme di informazioni

Dettagli

Logica Digitale. Fondamenti di Informatica - Prof. Gregorio Cosentino

Logica Digitale. Fondamenti di Informatica - Prof. Gregorio Cosentino Logica Digitale 1 Ma in fondo quali sono i mattoncini che compongono un calcolatore elettronico? Porte Circuiti Aritmetica Memorie Bus I/O And, Or, Nand, Nor, Not Multiplexer, Codif, Shifter, ALU Sommatori

Dettagli