VHDL. Il linguaggio FOCUS

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "VHDL. Il linguaggio FOCUS"

Transcript

1 ON Il linguaggio VHDL di Antonio Di Stefano Il linguaggio VHDL consente di descrivere ed implementare circuiti complessi utilizzando tecnologie quali FPGA, CPLD, ASIC e structured ASIC. In questo articolo verrà fornita un introduzione al linguaggio, ne verranno descritti gli elementi fondamentali e saranno presi in considerazione diversi esempi di codice sintetizzabile che potranno servire da base per la descrizione di circuiti più complessi. marzo 2007 FOCUS INTRODUZIONE Il linguaggio VHDL (Very high speed integrated circuit Hardware Description Language) è stato creato più di 20 anni fa come linguaggio di descrizione dell hardware, in particolare di circuiti digitali. Da allora ha assunto un importanza sempre maggiore in campo industriale tanto da essere standardizzato in diverse riprese dalla IEEE. La sua importanza deriva dal fatto che oltre alle applicazioni iniziali legate principalmente alla descrizione, modellizzazione e simulazione di circuiti digitali, esso è attualmente utilizzato soprattutto per la sintesi automatica dei circuiti. In pratica a partire da una descrizione VHDL del comportamento di un circuito è possibile ricavare automaticamente (utilizzando degli appositi programmi, chiamati sintetizzatori logici ) la sua implementazione in termini di porte logiche, o blocchi funzionali elementari. Questo approccio risulta molto vantaggioso da diversi punti di vista: in primo luogo permette di realizzare velocemente circuiti molto complessi ed ottimizzati a partire da una loro descrizione comportamentale. In secondo luogo il circuito descritto tramite VHDL piuttosto che con metodi tradizionali (schemi elettrici, funzioni logiche, etc.) risulta facilmente documentabile e verificabile. Inoltre la descrizione VHDL può essere del tutto indipendente dalla tecnologia che si utilizzerà per implementare il circuito, questo rende possibile ad esempio implementare su FPGA circuiti descritti per ASIC o viceversa. Data la sua versatilità e le sue caratteristiche il VHDL risulta un linguaggio piuttosto complesso. Esso infatti non è un linguaggio di programmazione, e non funziona ne va utilizzato come tale. Il codice VHDL non viene infatti eseguito sequenzialmente come ad esempio un programma scritto in C o Basic, ma piuttosto descrive qualcosa (tipicamente un circuito) che viene simulato o implementato. Per questo motivo il VHDL permette di gestire eventi o elaborazioni che avvengono anche in parallelo tra loro. È conveniente fare da subito una distinzione: come già detto il VHDL può servire per modellare e simulare dei sistemi, o per sintetizzare dei circuiti. Mentre qualsiasi descrizione VHDL formalmente corretta può essere simulata, non tutte le descrizione possono essere sintetizzate. Questo è dovuto al fatto che per potere sintetizzare un circuito, esso deve essere fisicamente realizzabile e coerente dal punto di vista logico e funzionale, e la descrizione deve essere sufficientemente chiara e univoca per il sintetizzatore. Per questo motivo il VHDL sintetizzabile è un sottoinsieme semplificato dell intero linguaggio, ma richiede uno stile più curato e preciso per ottenere buoni risultati. La possibilità di sintetizzare una certa descrizione dipende anche dal sintetizzatore utilizzato: non tutti i software infatti implementano 30

2 le stesse funzionalità (anche se recentemente si ha una maggiore omogeneità rispetto a qualche anno fa). Ovviamente anche il VHDL sintetizzabile è simulabile, e questo permette di testare i circuiti descritti, simulandoli appunto. In questo tutorial verranno forniti gli elementi di base per iniziare a scrivere delle semplici descrizioni VHDL sintetizzabili. Considerando la complessità e la vastità dell argomento, il linguaggio sarà introdotto principalmente utilizzando degli esempi pratici, tralasciando per brevità molti particolari che tuttavia risulta indispensabile conoscere per sfruttare il linguaggio a pieno. Per una trattazione più approfondita si rimanda ai testi riportati in bibliografia. Listato 1. Scaricalo da Porta AND a due ingressi entity Porta_AND is Port (A : in std_logic; B : in std_logic; Y : out std_logic); end Porta_AND; architecture Arch1 of Porta_AND is Y <= A and B; Figura 1 Entity della porta AND a due ingressi ELEMENTI DEL LINGUAGGIO Una descrizione VHDL è composta essenzialmente da due parti: una in cui si dichiarano gli ingressi e le uscite del circuito, e l altra in cui viene descritto il funzionamento del circuito. La prima sezione si chiama entity, la seconda architecture. Il fatto di potere dividere le due parti è utile sia per ragioni di chiarezza (l entity infatti fornisce una descrizione black-box del circuito, cioè la sua interfaccia verso l esterno), sia perché per una data entità possono esistere diverse architecture (ad esempio una per la sintesi e un altra per la simulazione). Spesso prima dell entity è presente una terza parte dichiarativa che ha la funzione di includere delle librerie esterne. L aspetto complessivo è quello mostrato nel Listato 1, in cui è visibile la descrizione VHDL di una porta AND. Come si può vedere all inizio del codice è stato incluso il package STD_LOGIC_1164 della libreria IEEE. Per fare questo sono state utilizzate le keyword library e use. Il package incluso contiene la definizione dei più comuni tipi di dati, cosanti e funzioni, e per questo la sua inclusione si trova all inizio della maggior parte delle entità. La sezione entity dichiara un unità chiamata Porta_AND che è dotata di due porte d ingresso (A e B) e di una d uscita (Y), tutte e tre del tipo std_logic, che può essere schematizzata come in Figura 1. Il tipo std_logic è utilizzato per descrivere segnali logici binari come spiegato meglio di seguito. La sezione architecture specifica il funzionamento dell entità Porta_AND. Ogni architecture ha un nome arbitrario, che in questo caso è Arch1, e che serve per distinguerla dalla altre eventualmente presenti per la stessa entità. Il funzionamento del circuito è specificato utilizzando l operatore and del VHDL. Si possono notare alcuni dettagli sulla sintassi del linguaggio: il VHDL non è case sensitive: possono essere usati indifferentemente caratteri maiuscoli e minuscoli ogni linea di codice termina con un punto e virgola ( ; ) le varie sezioni sono delimitate da un end i commenti si ottengono con un doppio meno ( ) I principali tipi di dati utilizzabili sono riportati in Tabella 1, mentre gli operatori sono elencati in Tabella 2. Come si può vedere oltre al tipo std_logic, esiste anche il tipo std_logic_vector, che può essere considerato come un array di std_logic, e che è adatto per rappresentare grandezze composte da più bit o bus. E interessante notare che per gli std_logic_vector è possibile specificare l intervallo di bit che si vuole selezionare, e la direzione in cui li si indica. Ad esempio, se BUS è stato dichiarato come un bus ad 8 bit, cioè come std_logic_vector(7 downto 0), è possibile selezionare i 4 bit meno significativi scrivendo BUS(3 downto 0), o solo il sesto bit scrivendo BUS(5). Questo meccanismo è molto versatile, e FOCUS ON L hardware per il riconoscimento vocale embedded 31

3 L hardware per il riconoscimento vocale embedded FOCUS ON Tabella 1 Principali tipi VHDL NUMERI INTERI Numeri reali Tipi enumerativi (quantità discrete) Fisici Tabella 2 Principali operatori VHDL LOGICI permette di assegnare elementi di uno std_logic_vector ad uno std_logic e viceversa, o di inizializzare in maniera flessibile una variabile, come mostrato negli esempi seguenti: BUS<= ; BUS (3 downto 0)<= 0000 ; BUS (5)<=A; A è uno std_logic BUS (2)<= 1 ; BUS <=(1=> 1, 2=> 1, others => 0 ); INTEGER Relazionali =, /=, <, <=, >, >= Da questi esempi si può notare come gli std_logic_vector si possono indicare numericamente ponendo il valore tra doppie apici, mentre gli std_logic usando le apici singole. Inoltre è possibile riempire automaticamente singoli valori elencandoli per posizione, o gruppi di valori usando la keyword others. real boolean, bit, bit_vector, std_logic, std_logic_vector, tipi definiti dall utente time, tipi definiti dall utente AND, OR, NAND, NOR, XOR, XNOR, NOT Aritmetici +, -, *, /, rem, mod, abs, ** Concatenazione & ISTRUZIONI E COSTRUTTI DI BASE Combinando i vari operatori mostrati in Tabella 2 è possibile realizzare dei semplici circuiti combinatori (va notato comunque che tra gli operatori aritmetici solo +, - ed in alcuni casi * sono sintetizzabili). Per realizzare dei circuiti più complessi comunque uno dei costrutti più utili è il when-else, che permette di effettuare delle assegnazioni condizionate. La sintassi più generale è la seguente: A <= B when condizione else C when condizione else D; Utilizzando questo costrutto è possibile implementare facilmente circuiti con funzione di selezione, come i multiplexer. L esempio seguente (Listato 2) riporta proprio la descrizione di un multiplexer 2 a 1 per bus ad 8 bit. Un costrutto simile al when-else è il with-select, che permette di elencare il valore delle uscite in corrispondenza di determinati ingressi. In questo caso l unica condizione possibile è quella di uguaglianza. La sintassi è la seguente: with X select A<=A0 when X0 A0 when X0 An when Xn; Questo costrutto è particolarmente adatto a descrivere tabelle di valori, ROM, o decoder. Nel Listato 3 è riportato proprio la descrizione di un decoder BCD-7 Segmenti. Si può notare che nell ultima riga è stato specificato un valore da utilizzare nei casi diversi da quelli specificati ( others ). Questa riga rappresenta una specie di condizione di default, e tiene conto dell immissione di codici non BCD. Più in generale comunque è necessario specificare l ultima condizione come others anche quando vengano elencate tutte le combinazioni di bit, poiché i tipi std_logic non comprendono solamente i valori 0 ed 1, ma anche alcuni valori speciali che rappresentano condizioni non logiche, ad esempio Z per indicare l alta impedenza, X il conflitto tra due valori, U la non definizione, etc. Anche se questi valori non si avranno nel normale funzionamento è bene tenerli in conto in questo modo. Va notato che tutte le istruzioni scritte all interno dell architecture non vengono eseguite sequenzialmente, ma contemporaneamente, per questo motivo scrivendo: A <= 0001 ; A <= 1101 ; Il segnale A non assumerà il secondo valore ( 1101 ), ma entrambi contemporaneamente, creando così una condizione di contesa (il valore assunto da A sarà XX01 ). Lo stesso vale quando si utilizzano più costrutti diversi all interno dell architecture. Per potere gestire delle istruzioni in qualche modo sequenziali occorre utilizzare i process, come discusso nel successivo paragrafo. 32

4 Listato 2. Scaricalo da Multiplexer 2 a 1 per bus ad 8 bit entity MUX is port(a : in std_logic_vector(7 downto 0); B : in std_logic_vector(7 downto 0); S : in std_logic; Y : out std_logic_vector(7 downto 0)); end MUX; architecture Arch1 of MUX is Y <= A when (S= 0 ) else B; COSTRUTTI ED ISTRUZIONI SEQUENZIALI Un process è un blocco funzionale che rappresenta una singola unità concorrente (rispetto ad altri elementi presenti nell architecture), ma che può contenere costrutti sequenziali. La sintassi dei process è la seguente: nome: process (a,b,c) istruzioni Ingresso bus A (8 bit) Ingresso bus B (8 bit) Ingresso di selezione Uscita (8 bit) La struttura del blocco process rispecchia quella dell architecture, ma più è presente un elenco di variabili chiamato sensitivity list. Il process verrà attivato solo quando si verificherà un cambiamento in una delle variabili contenute nella sensitivity list, che rappresentano in qualche modo i segnali di ingresso del process. Nella sintesi spesso la sensitivity list è del tutto ignorata, però essa rimane importante in simulazione, per potere fornire dei risultati coerenti col funzionamento effettivo del circuito. Scrivendo le due assegnazioni viste prima all interno del process, il valore assegnato ad A sarebbe stato effettivamente il secondo. Tuttavia non bisogna pensare che le istruzioni vengono eseguite sequenzialmente come accade nei linguaggi di programmazione, piuttosto vengono valutate tutte le espressioni e vengono effettuate le assegnazioni usando come precedenza l ordine in cui sono scritte le istruzioni. FOCUS ON L hardware per il riconoscimento vocale embedded Figura 2 Entity del multiplexer 2 a 1 a 8 bit All interdo di un blocco process possono essere utilizzate delle istruzioni dette appunto sequenziali, quali if e case. Il costrutto if-else ha la seguente sintassi: Figura 3 Entity del decoder BCD-7 Segmenti if condizione then elsif condizione then elsif else 33

5 L hardware per il riconoscimento vocale embedded FOCUS ON Listato 3. Scaricalo da Decoder BCD-7Seg (anodo comune) entity BCD7SEG is port(bcd : in std_logic_vector(3 downto 0); LED : out std_logic_vector(6 downto 0)); end BCD7SEG; architecture Arch1 of BCD7SEG is with BCD select LED<= when 0000, when 0001, when 0010, when 0011, when 0100, when 0101, when 0110, when 0111, when 1000, when 1001, when others;? Listato 4. Scaricalo da Encoder a 8 bit con priorita entity ENC7 is port(din : in std_logic_vector(6 downto 0); DOUT : out std_logic_vector(2 downto 0)); end ENC7; architecture Arch1 of ENC7 is process (DIN) DOUT <= 000 ; if DIN(0)= 1 then DOUT<= 001 ; if DIN(1)= 1 then DOUT<= 010 ; if DIN(2)= 1 then DOUT<= 011 ; if DIN(3)= 1 then DOUT<= 100 ; if DIN(4)= 1 then DOUT<= 101 ; if DIN(5)= 1 then DOUT<= 110 ; if DIN(6)= 1 then DOUT<= 111 ; Il costrutto if permette di eseguire determinate sezioni di codice al verificarsi di una o più condizioni. Le sezioni elsif ed else indicano delle condizioni alternative e di default rispettivamente, e possono non essere presenti. Un esempio di descrizione sequenziale è mostrato nel Listato 4, in cui è descritto un encoder 7 a 3 con priorità. In pratica l uscita rappresenta in binario la posizione dell ingresso che si trova ad 1. Se più ingressi sono portati ad 1 è necessario stabilire una priorità per decidere cosa dare in uscita. Si è scelto di presentare il valore più alto, e questo è ottenuto proprio sfruttando la sequenzialità delle istruzioni if. Se più di un ingresso è a livello 1, la condizione che sarà considerata valida tra quelle verificate sarà quella scritta per ultima. Questo implementa il meccanismo di priorità voluto. Il costrutto if è importante in quanto è utilizzato di solito per creare circuiti sincroni. E possibile infatti eseguire determinate sezioni di codice quando si verifica il fronte di clock. Questo è mostrato nell esempio seguente (Listato 5) in cui è riportata la descrizione di un registro a caricamento parallelo. Il codice descrive un registro ad 8 bit con ingresso di caricamento (LOAD) e reset asincrono. Il funzionamento è il seguente: se il RESET viene attivato, l uscita deve essere portata a 0, altrimenti, in caso di fronte di clock positivo (l attributo event viene utilizzato per rilevare la transizione, mentre = 1 specifica che si tratta del frotne positivo), se il segnale di caricamento vale 1, l uscita deve assumere il valore presente in ingresso. Se queste condizioni non sono verificate l uscita rimane immutata, e per 34

6 Listato 5. Scaricalo da Registro a 8 bit entity REG8 is port(din : in std_logic_vector(7 downto 0); Ingresso (8 bit) DOUT : out std_logic_vector(7 downto 0); Uscita (8 bit) LOAD : in std_logic; Caricamento CLOCK : in std_logic; Clock RESET : in std_logic); Reset end REG8; architecture Arch1 of REG8 is process (DIN, CLOCK, RESET, LOAD) if RESET= 1 then DOUT <= (others => 0 ); elsif (CLOCK event and CLOCK= 1 ) then if LOAD= 1 then DOUT <= DIN; Figura 4 Entity dell encoder 7 a 3 con priorità Figura 5 Entity del registro ad 8 bit questo viene inferito un registro dal sintetizzatore. Si può notare che la condizione di clock e quella di reset sono mutuamente esclusive ed indipendenti, questo descrive il funzionamento di un reset asincrono. Per ottenere un reset sincrono la condizione di reset doveva essere posta all interno di quella di clock. Con gli elementi visti è possibile descrivere anche un contatore. I contatori sono importanti quando si descrive un circuito da sintetizzare poiché possono svolgere la funzione dei cicli for dei linguaggi di programmazione. L istruzione for-loop presente nel VHDL non permette infatti di implementare cicli sintetizzabili (permette di farlo in simulazione). Nel Listato 6 è presente il codice che descrive un contatore a 16 bit sincrono, con reset, abilitazione e caricamento parallelo. Nel listato si possono notare alcuni dettagli interessanti. Innanzi tutto è stato dichiarato un segnale all inizio dell architecture. I segnali funzionano quasi come delle variabili, contengono dei valori del tipo specificato, e dal punto di vista della sintesi possono rappresentare o dei semplici col- FOCUS ON L hardware per il riconoscimento vocale embedded 35

7 legamenti interni (che non sono visibili dall esterno) o dei registri. Il segnale dichiarato è di tipo std_logic_vector a 16 bit, ed è utilizzato per contenere il valore del contatore. Non è possibile utilizzare direttamente il valore dell uscita DOUT perché questo è di modo out, e quindi non può essere letto (cosa necessaria per incrementare il valore). Anche in questo caso è stato utilizzato un reset asincrono, mentre il funzionamento vero e proprio del circuito è completamente sincrono e quindi descritto dentro la condizione di clock. In particolare si può notare l ordine in cui le istruzioni sono state scritte: la verifica del segnale di abilitazione è posta a monte delle altre, e quindi ha precedenza su queste: se l abilitazione non è attiva non sarà possibile compiere nessun altra operazione. Le operazioni di caricamento e di incremento invece sono state poste allo stesso livello, ma sono mutuamente esclusive: se avviene un caricamento il contatore non viene incrementato e viceversa. L incremento del contatore viene ottenuto sommando 1 al valore precedente del contatore. Va notato che la somma tra std_logic_vector e con interi non è Listato 6. Scaricalo da L hardware per il riconoscimento vocale embedded FOCUS ON Contatore caricabile a 16 bit use IEEE.STD_LOGIC_UNSIGNED.ALL; use IEEE.STD_LOGIC_ARITH.ALL; entity CONT16 is port(din : in std_logic_vector(15 downto 0); Ingresso (16 bit) DOUT : out std_logic_vector(15 downto 0); Uscita (16 bit) LOAD : in std_logic; Caricamento EN : in std_logic; Abilitazione CLK : in std_logic; Clock RESET : in std_logic); Reset end CONT16; architecture Arch1 of CONT16 is signal cnt : std_logic_vector(15 downto 0); process (DIN, CLOCK, RESET, LOAD, EN) if RESET= 1 then cnt <= (others => 0 ); elsif (CLK event and CLK= 1 ) then if EN= 1 then if LOAD= 1 then cnt <= DIN; else cnt <= cnt + 1; DOUT <= cnt; 36

8 Figura 6 Entity del contatore caricabile a 16 bit un operazione banale, perché occorre definirne il significato preciso e le regole da adottare. Queste non sono presenti nativamente nel linguaggio VHDL, per questo è stato necessario includere delle librerie apposite. L ultima istruzione contenuta nell architecture Listato 7. Scaricalo da Unità logica programmabile ad 8 bit entity ALU8 is port(opa : in std_logic_vector(7 downto 0); OPB : in std_logic_vector(7 downto 0); DOUT: out std_logic_vector(7 downto 0); SEL : in std_logic_vector(1 downto 0)); end ALU8; architecture Arch1 of ALU8 is process (OPA, OPB, SEL) case SEL is when 00 => DOUT <= OPA and OPB; when 01 => DOUT <= OPA or OPB; when 10 => DOUT <= OPA nand OPB; when others => DOUT <= OPA xor OPB; assegna semplicemente il valore del contatore all uscita. Un altro costrutto sequenziale utilizzabile all interno dei process è il case-when, che permette di selezionare un segmento di codice da eseguire quando una variabile di controllo assume un certo valore. Un esempio di utilizzo di questo costrutto è mostrato nel Listato 7, in cui viene descritta un unità che esegue un operazione logica a scelta tra AND, OR, NAND o XOR sui due operandi ad 8 bit in ingresso. L operazione eseguita è scelta in base al valore presente su un ingresso di controllo. DESCRIZIONI STRUTTURALI I tipi di descrizione utilizzati fino a qui vengono definiti comportamentali, dataflow o RTL (Registers Transfert Level) dal momento che descrivono il funzionamento del circuito, anche dal punto di vista delle operazioni compiute. Il VHDL permette anche di creare descrizioni strutturali, cioè di descrivere dei circuiti come connessioni di blocchi funzionali preesistenti. Questa modalità di FOCUS ON L hardware per il riconoscimento vocale embedded end case; 37

9 1 AIN SOUT 1 1 BIN COUT 1 Figura 7 Entity dell unità logica programmabile Figura 8 Entity e struttura dell half-adder L hardware per il riconoscimento vocale embedded FOCUS ON Listato 8. Scaricalo da Half-adder entity HALFADD is port(ain : in std_logic; BIN : in std_logic; SOUT: out std_logic; COUT: in std_logic); end HALFADD; architecture Struttura of HALFADD is component Porta_AND port (A : in std_logic; B : in std_logic; Y : out std_logic); end component; component Porta_XOR port (A : in std_logic; B : in std_logic; Y : out std_logic); end component; XOR1: Porta_XOR port map (A => AIN, B => BIN, Y => SOUT); AND1: Porta_AND port map (A => AIN, B => BIN, Y => COUT); end Struttura; descrizione è utilizzata di solito per collegare tutte le parti di un progetto complesso (realizzando il cosiddetto top level ), per rendere modulare un progetto, utilizzando un approccio topdown o per realizzarlo mettendo assieme componenti già disponibili (approccio bottom-up). I moduli che si intendono usare devono essere prima dichiarati, utilizzando l istruzione component, e quindi instanziati, specificandone i collegamento con i segnali presenti nell architettura o nell entità che li richiama. Di seguito (Listato 8) è mostrato un esempio di descrizione strutturale relativa ad un half-adder. Il circuito esegue la somma (aritmetica) di due bit, riportando in uscita il valore della somma e quello il riporto. Il circuito può essere realizzato collegando le porte logiche AND e XOR come mostrato in Figura 2. La porta AND è già stata descritta nel Listato 1, la XOR ha una struttura identica, ma utilizza il rispettivo operatore. Come si può vedere i moduli relativi alle due porte sono stati richiamati con l istruzione component, posta prima del dell architecture, dove di solito sono dichiarati i segnali. La sintassi è molto simile a quella di un entity. I due componenti sono poi stati instanziati, specificando il loro nome ed i collegamenti all interno della sezione port map. Gli identificativi a sinistra si riferiscono alle porte del componenti richiamato, quelli sulla destra possono essere segnali o porte dell entità che li richiama. BIBLIOGRAFIA [1] Peter J. Ashenden, The VHDL Cookbook, 1990, disponibile su Internet [2] Sudhakar Yalamanchili, VHDL Starter s Guide, Prentice Hall, 1997, ISBN X [3] Jayaram Bhasker, A VHDL Primer, Prentice Hall, 1998, [4] Douglas L. Perry, VHDL: Programming By Example, McGraw-Hill, 2002, ISBN Codice MIP

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

Esercizi VHDL nelle prove d esame di Architettura degli elaboratori (a.a. 2002/03)

Esercizi VHDL nelle prove d esame di Architettura degli elaboratori (a.a. 2002/03) Esercizi VHDL nelle prove d esame di Architettura degli elaboratori (a.a. 2002/03) 18 settembre 2003 Prova del 9 giugno 2003 Descrizione VHDL (a scelta, dataflow o comportamentale) di un decoder per il

Dettagli

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

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

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

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

library ieee; use ieee.std_logic_1164.all; library IEEE; use IEEE.std_logic_1164.all; use IEEE.numeric_std.all; library STD; use STD.textio.

library ieee; use ieee.std_logic_1164.all; library IEEE; use IEEE.std_logic_1164.all; use IEEE.numeric_std.all; library STD; use STD.textio. VHDL Linguaggio di descrizione dell'hardware VHSIC Hardware Description Language VHSIC: Very High Speed Integrated Circuits VHDL Processi Attivati da qualche segnale Assegnazioni concorrenti A

Dettagli

Sintassi. Le varie espressioni sintattiche scritte in VHDL si possono ricondurre ai seguenti oggetti: Scalari e Vettori Nomi Oggetti: Espressioni

Sintassi. Le varie espressioni sintattiche scritte in VHDL si possono ricondurre ai seguenti oggetti: Scalari e Vettori Nomi Oggetti: Espressioni Introduzione Il VHDL e costituito da vari formati (types)ed operatori (operators) per consentire simulazione e sintesi a vari livelli Nel package STANDARD si trovano descritti quegli oggetti destinati

Dettagli

Sommario. Modellizzazione Sintassi Classi di Oggetti Tipi di Dati e Operatori Package e Librerie Processi Esempi di codice VHDL VHDL Testbenches

Sommario. Modellizzazione Sintassi Classi di Oggetti Tipi di Dati e Operatori Package e Librerie Processi Esempi di codice VHDL VHDL Testbenches Fondamenti di VHDL Sommario VHDL: premessa e introduzione Modellizzazione Sintassi Classi di Oggetti Tipi di Dati e Operatori Package e Librerie Processi Esempi di codice VHDL VHDL Testbenches Premessa

Dettagli

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE. VHDL - Esempi. Martedì 13 Gennaio 2009

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE. VHDL - Esempi. Martedì 13 Gennaio 2009 VHDL - Esempi Martedì 13 Gennaio 2009 Processi Un process è un'istruzione concorrente che contiene un'area sequenziale. Un processo viene eseguito parallelamente alle altre istruzioni concorrenti. L'esecuzione

Dettagli

Quarta esercitazione

Quarta esercitazione 1 Quarta esercitazione Soluzione di una prova d esame Obiettivo Fornire una metodologia di progetto scomposizione in blocchi e definzione dei segnali interni diagramma degli stati della FSM scrittura del

Dettagli

interfacciamento statico e dinamico analisi di interconnessioni, driver e receiver

interfacciamento statico e dinamico analisi di interconnessioni, driver e receiver Elettronica per telecomunicazioni 1 Contenuto dell unità D Interconnessioni interfacciamento statico e dinamico Integrità di segnale analisi di interconnessioni, driver e receiver Diafonia accoppiamenti

Dettagli

Introduzione al VHDL Lezione 3

Introduzione al VHDL Lezione 3 Introduzione al VHDL Lezione 3 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

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

Un linguaggio per la descrizione dello hardware: il VHDL

Un linguaggio per la descrizione dello hardware: il VHDL Un linguaggio per la descrizione dello hardware: il VHDL Gli Hardware Description Languages Gli HDL consentono lo sviluppo di un modello del comportamento dei sistema digitali. Gli HDL permettono l eseguibilità

Dettagli

Descrizione VHDL di componenti combinatori

Descrizione VHDL di componenti combinatori Descrizione VHDL di componenti combinatori 5 giugno 2003 1 Decoder Il decoder è un componente dotato di N ingressi e 2 N uscite. Le uscite sono poste tutte a 0 tranne quella corrispondente al numero binario

Dettagli

Un linguaggio per la descrizione dello hardware: il VHDL

Un linguaggio per la descrizione dello hardware: il VHDL Un linguaggio per la descrizione dello hardware: il VHDL Gli Hardware Description Languages Gli HDL consentono lo sviluppo di un modello del comportamento dei sistema digitali. Gli HDL permettono l eseguibilità

Dettagli

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

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

Introduzione alla sintesi comportamentale

Introduzione alla sintesi comportamentale Introduzione alla sintesi comportamentale Valentino Liberali Università degli Studi di Milano Dipartimento di Tecnologie dell Informazione Via Bramante 65, 26013 Crema, Italy Tel.: +39-0373.898.247; Fax:

Dettagli

Introduzione al VHDL VHDL. La storia. Corso introduttivo al VHDL. l acronimo di VHSIC Hardware Description Language

Introduzione al VHDL VHDL. La storia. Corso introduttivo al VHDL. l acronimo di VHSIC Hardware Description Language Introduzione al VHDL Corso introduttivo al VHDL Giovanni De Luca VHDL VHDL è l acronimo di VHSIC Hardware Description Language VHSIC è l acronimo di Very High Speed Integrated Circuit La storia Il VHDL

Dettagli

Introduzione al linguaggio VHDL

Introduzione al linguaggio VHDL Introduzione al linguaggio VHDL Il VHDL è un linguaggio per la sintesi e la simulazione di circuiti digitali, uno standard per la descrizione dell hardware E stato introdotto negli anni 80 nell ambito

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

PSPICE simulazione codificatori e decodificatori, MUX - DEMUX

PSPICE simulazione codificatori e decodificatori, MUX - DEMUX PSPICE simulazione codificatori e decodificatori, MUX - DEMUX Davide Piccolo Elaboratori 1 Per le dispense delle lezioni: http://people.na.infn.it/~piccolo/lezionilaboratorio Elaboratori 2 Il circuito

Dettagli

RELAZIONE DEL PROGETTO DI UN CONTATORE BINARIO UP/DOWN MODULO 4 PER IL CORSO DI APPARATI ELETTRONICI 1. INTRODUZIONE

RELAZIONE DEL PROGETTO DI UN CONTATORE BINARIO UP/DOWN MODULO 4 PER IL CORSO DI APPARATI ELETTRONICI 1. INTRODUZIONE RELAZIONE DEL PROGETTO DI UN CONTATORE BINARIO UP/DOWN MODULO 4 PER IL CORSO DI APPARATI ELETTRONICI 1. INTRODUZIONE In generale un contatore è un dispositivo che memorizza (e a volte visualizza) il numero

Dettagli

VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole.

VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole. Excel VBA VBA Visual Basic for Application VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole. 2 Prima di iniziare. Che cos è una variabile?

Dettagli

Richiami di Algebra di Commutazione

Richiami di Algebra di Commutazione LABORATORIO DI ARCHITETTURA DEI CALCOLATORI lezione n Prof. Rosario Cerbone rosario.cerbone@libero.it http://digilander.libero.it/rosario.cerbone a.a. 6-7 Richiami di Algebra di Commutazione In questa

Dettagli

Logica binaria. Moreno Marzolla Dipartimento di Informatica Scienza e Ingegneria (DISI) Università di Bologna

Logica binaria. Moreno Marzolla Dipartimento di Informatica Scienza e Ingegneria (DISI) Università di Bologna Logica binaria Moreno Marzolla Dipartimento di Informatica Scienza e Ingegneria (DISI) Università di Bologna http://www.moreno.marzolla.name/ Logica binaria 2 Rappresentazione dell'informazione I calcolatori

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

Christian Pilato

Christian Pilato Politecnico di Milano Introduzione al VHDL Christian Pilato pilato@elet.polimi.it Sommario Introduzione Struttura di un modello Interfaccia Funzionalità Concetti base Livelli di astrazione Concorrenza

Dettagli

Descrizioni VHDL Behavioral

Descrizioni VHDL Behavioral 1 Descrizioni VHDL Behavioral In questo capitolo vedremo come la struttura di un sistema digitale è descritto in VHDL utilizzando descrizioni di tipo comportamentale. Outline: process wait statements,

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

Introduzione al VHDL Lezione 2

Introduzione al VHDL Lezione 2 Introduzione al VHDL Lezione 2 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

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

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

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

Tipi di segnali (logici) predefiniti. Rappresentazione dei segnali in VHDL. Tipo bit (definito nel package standard)

Tipi di segnali (logici) predefiniti. Rappresentazione dei segnali in VHDL. Tipo bit (definito nel package standard) Tipi di segnali (logici) predefiniti Tipo bit (definito nel package standard) Rappresentazione dei segnali in VHDL Approfondimento del corso di Linguaggi di descrizione dell hardware type Bit is ('0',

Dettagli

anno scolastico 2009 / 2010 ELETTRONICA per Elettrotecnica ed Automazione

anno scolastico 2009 / 2010 ELETTRONICA per Elettrotecnica ed Automazione CIRCUITI COMBINATORI Un circuito combinatorio (o rete combinatoria) è un insieme interconnesso di porte logiche il cui output, istante per istante dipende unicamente dallo stato che gli ingressi della

Dettagli

Indice. Prefazione. sommario.pdf 1 05/12/

Indice. Prefazione. sommario.pdf 1 05/12/ Prefazione xi 1 Introduzione 1 1.1 Evoluzione della progettazione dei sistemi digitali 1 1.2 Flusso di progettazione dei sistemi digitali 2 1.3 Obiettivi del libro 6 1.4 Struttura ragionata del libro 7

Dettagli

Reti Logiche A Appello del 24 febbraio 2010

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

Dettagli

Reti Logiche A. Introduzione al VHDL

Reti Logiche A. Introduzione al VHDL Reti Logiche Introduzione al VHDL Gianluca Palermo Politecnico di Milano Dipartimento di Elettronica e Informazione e-mail: gpalermo@fusberta.elet.polimi.it 1 Sommario Introduzione Struttura di un modello

Dettagli

INTRODUZIONE ALLE LOGICHE PROGRAMMABILI

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

Dettagli

1. Introduzione. Il VHDL è un linguaggio per la descrizione dell hardware (un Hardware Description Language), che può essere utilizzato per la

1. Introduzione. Il VHDL è un linguaggio per la descrizione dell hardware (un Hardware Description Language), che può essere utilizzato per la 1. Introduzione. Il VHDL è un linguaggio per la descrizione dell hardware (un Hardware Description Language), che può essere utilizzato per la documentazione, la simulazione e la sintesi di sistemi digitali.

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

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

Reti Logiche A Esame del 24 febbraio 2006

Reti Logiche A Esame del 24 febbraio 2006 Politecnico di Milano ipartimento di Elettronica e Informazione prof.ssa Anna Antola prof. Fabrizio Ferrandi prof.ssa Cristiana Bolchini Esercizio n. a) ata la seguente tabella di copertura: Reti Logiche

Dettagli

Esercitazione di laboratorio n. 2

Esercitazione di laboratorio n. 2 Esercitazione di laboratorio n. 2 Argomento dell esercitazione Progetto di circuiti combinatori. L esercitazione è composta di tre esercizi: progetto di un Full Adder da 1 bit (esercizio 1), e suo riutilizzo

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

Reti Logiche Appello del 1 marzo 2011

Reti Logiche Appello del 1 marzo 2011 Politecnico di Milano Dipartimento di Elettronica e Informazione prof.ssa Anna Antola prof. Fabrizio Ferrandi prof.ssa Cristiana Bolchini Esercizio n. 1 Si consideri la macchina sequenziale sincrona a

Dettagli

TUTORIAL 3. Realizzazione di un contatore su scheda XSA50. A cura di De Pin Alessandro

TUTORIAL 3. Realizzazione di un contatore su scheda XSA50. A cura di De Pin Alessandro TUTORIAL 3 Realizzazione di un contatore su scheda XSA50 A cura di De Pin Alessandro 1 Problema proposto In questo tutorial ci si propone di realizzare un contatore che, associato ad un display a sette

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

Università degli Studi di Milano

Università degli Studi di Milano Università degli Studi di Milano Laurea in Informatica e Sicurezza dei sistemi e delle reti informatiche Elementi di VHDL STEFANO FERRARI Architetture e reti logiche Elementi di VHDL Pagina 2 di 68 Indice

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

Arithmetic and Logic Unit e moltiplicatore

Arithmetic and Logic Unit e moltiplicatore Arithmetic and Logic Unit e moltiplicatore M. Favalli Engineering Department in Ferrara (ENDIF) ALU - multiplier Analisiesintesideicircuitidigitali 1 / 34 Sommario 1 Arithmetic and Logic Unit - ALU 2 Moltiplicatore

Dettagli

Reti Logiche A Esame del 19 febbraio 2007

Reti Logiche A Esame del 19 febbraio 2007 Politecnico di Milano Dipartimento di Elettronica e Informazione prof.ssa Anna Antola prof. Fabrizio Ferrandi Reti Logiche A Esame del 9 febbraio 007 Matricola prof.ssa ristiana Bolchini Esercizio n. Data

Dettagli

Lezione E15. Sistemi embedded e real-time

Lezione E15. Sistemi embedded e real-time Lezione E15 Logiche Sistemi embedded e real-time 24 gennaio 2013 Dipartimento di Ingegneria Civile e Ingegneria Informatica Università degli Studi di Roma Tor Vergata SERT 13 E15.1 Di cosa parliamo in

Dettagli

Livello logico digitale

Livello logico digitale Livello logico digitale circuiti combinatori di base e circuiti sequenziali Half Adder - Semisommatore Ingresso 2 bit, uscita 2 bit A+ B= ------ C S C=AB S=AB + AB=A B A B In Out HA A B C S S HA A C S

Dettagli

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

Esercitazione : REALIZZAZIONE IMPIANTO SEMAFORICO

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

Dettagli

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

Reti Logiche T. Esercizi reti sequenziali sincrone

Reti Logiche T. Esercizi reti sequenziali sincrone Reti Logiche T Esercizi reti sequenziali sincrone ESERCIZIO N. Si esegua la sintesi di una rete sequenziale sincrona caratterizzata da un unico segnale di ingresso (X) e da un unico segnale di uscita (Z),

Dettagli

FUNZIONI BOOLEANE. Vero Falso

FUNZIONI BOOLEANE. Vero Falso FUNZIONI BOOLEANE Le funzioni booleane prendono il nome da Boole, un matematico che introdusse un formalismo che opera su variabili (dette variabili booleane o variabili logiche o asserzioni) che possono

Dettagli

ELETTRONICA dei SISTEMI DIGITALI Universita di Bologna, sede di Cesena

ELETTRONICA dei SISTEMI DIGITALI Universita di Bologna, sede di Cesena ELETTRONICA dei SISTEMI DIGITALI Universita di Bologna, sede di Cesena Fabio Campi Aa 2003-2004 Elettronica dei Sistemi Digitali Fabio Campi, fcampi@deis.unibo.it (con parsimonia ) 051/2093834 http://www.micro.deis.unibo.it/~campi/esd_2004

Dettagli

Cos è il VHDL. Il VHDL è un linguaggio standard per la descrizione dell hardware

Cos è il VHDL. Il VHDL è un linguaggio standard per la descrizione dell hardware Cos è il VHDL Il VHDL è un linguaggio standard per la descrizione dell hardware E stato introdotto negli anni 80 nell ambito di un progetto del dipartimento della difesa statunitense denominato VHSIC (Very

Dettagli

Sistemi per la Progettazione Automatica. problema punti massimi i tuoi punti problema 1 14 problema 2 4 problema 3 6 problema 4 6 totale 30

Sistemi per la Progettazione Automatica. problema punti massimi i tuoi punti problema 1 14 problema 2 4 problema 3 6 problema 4 6 totale 30 Sistemi per la Progettazione Automatica Informatica - Tiziano Villa 17 Marzo 2008 Nome e Cognome: Matricola: Posta elettronica: problema punti massimi i tuoi punti problema 1 14 problema 2 4 problema 3

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

orologio e display cont 16

orologio e display cont 16 Tocci giovanni orologio e display obiettivo: costruzione di un orologio che sappia tenere in conto minuti e secondi. specifiche di progetto: Il nostro orologio, sarà costituito da : divisore di frequenza.

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

Note sull utilizzazione di componenti logici di tipo memoria

Note sull utilizzazione di componenti logici di tipo memoria Architettura degli Elaboratori, a.a. 2005-06 Note sull utilizzazione di componenti logici di tipo memoria Queste note precisano e completano il contenuto nel Cap. III, sez. 7 delle Dispense, in particolare

Dettagli

Il processore. Istituzionii di Informatica -- Rossano Gaeta

Il processore. Istituzionii di Informatica -- Rossano Gaeta Il processore Il processore (detto anche CPU, ovvero, Central Processing Unit) è la componente dell unità centrale che fornisce la capacità di elaborazione delle informazioni contenute nella memoria principale

Dettagli

Nonostante l avvento delle più moderne

Nonostante l avvento delle più moderne di terminati ad entrambe le estremità con un impedenza di questo valore. Come già detto se si vuole ottenere la massima luminosità di uno dei segnali di colore occorre fornire circa 0.7V. Per fare questo

Dettagli

Il Processore: l unità di controllo

Il Processore: l unità di controllo Il Processore: l unità di controllo La frequenza con cui vengono eseguiti i cicli di esecuzione è scandita da una componente detta clock Ad ogni impulso di clock la UC esegue un ciclo di esecuzione di

Dettagli

Elettronica digitale: cenni

Elettronica digitale: cenni Elettronica digitale: cenni VERSIONE 30.5.01 Non solo analogico La gestione di informazione prevede tipicamente fasi di elaborazione, in cui occorre calcolare funzioni ( qual è la somma di questi due valori?

Dettagli

Porte logiche. Porte logiche. Corso di Architettura degli Elaboratori. Algebra Booleana

Porte logiche. Porte logiche. Corso di Architettura degli Elaboratori. Algebra Booleana Corso di Architettura degli Elaboratori Il livello logico digitale: Algebra Booleana e Circuiti logici digitali di base Matteo Baldoni Dipartimento di Informatica Università degli Studi di Torino C.so

Dettagli

Architettura degli Elaboratori Lez. 8 CPU MIPS a 1 colpo di clock. Prof. Andrea Sterbini

Architettura degli Elaboratori Lez. 8 CPU MIPS a 1 colpo di clock. Prof. Andrea Sterbini Architettura degli Elaboratori Lez. 8 CPU MIPS a 1 colpo di clock Prof. Andrea Sterbini sterbini@di.uniroma1.it Argomenti Progetto della CPU MIPS a 1 colpo di clock - Istruzioni da implementare - Unità

Dettagli

Rappresentazione con i diagrammi di flusso (Flow - chart)

Rappresentazione con i diagrammi di flusso (Flow - chart) Rappresentazione con i diagrammi di flusso (Flow - chart) Questo tipo di rappresentazione grafica degli algoritmi, sviluppato negli anni 50, utilizza una serie di simboli grafici dal contenuto evocativo

Dettagli

Le etichette nei programmi. Istruzioni di branch: beq. Istruzioni di branch: bne. Istruzioni di jump: j

Le etichette nei programmi. Istruzioni di branch: beq. Istruzioni di branch: bne. Istruzioni di jump: j L insieme delle istruzioni (2) Architetture dei Calcolatori (lettere A-I) Istruzioni per operazioni logiche: shift Shift (traslazione) dei bit di una parola a destra o sinistra sll (shift left logical):

Dettagli

Corso di Matematica per la Chimica. Dott.ssa Maria Carmela De Bonis a.a

Corso di Matematica per la Chimica. Dott.ssa Maria Carmela De Bonis a.a Dott.ssa Maria Carmela De Bonis a.a. 2013-14 Programmi Un elaboratore riceve dei dati in ingresso, li elabora secondo una sequenza predefinita di operazioni e infine restituisce il risultato sotto forma

Dettagli

Calcolatori Elettronici M Modulo Introduzione all ambiente Xilinx ISE 12.3 e ISIM

Calcolatori Elettronici M Modulo Introduzione all ambiente Xilinx ISE 12.3 e ISIM Calcolatori Elettronici M Modulo 2 06 Introduzione all ambiente Xilinx ISE 12.3 e ISIM 1 Questi lucidi forniscono una sintetica introduzione all ambiente di sviluppo Xilinx ISE 12.3 utilizzando come riferimento

Dettagli

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

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

Strutture di controllo decisionali

Strutture di controllo decisionali Capitolo 3 Strutture di controllo decisionali ANDREA GINI Dopo aver introdotto il concetto di variabile e di array, è giunto il momento di analizzare a fondo i restanti costrutti del linguaggio Java. Come

Dettagli

I Indice. Prefazione. Capitolo 1 Introduzione 1

I Indice. Prefazione. Capitolo 1 Introduzione 1 I Indice Prefazione xi Capitolo 1 Introduzione 1 Capitolo 2 Algebra di Boole e di commutazione 7 2.1 Algebra di Boole.......................... 7 2.1.1 Proprietà dell algebra.................... 9 2.2

Dettagli

Architettura degli Elaboratori

Architettura degli Elaboratori circuiti combinatori: ALU slide a cura di Salvatore Orlando, Marta Simeoni, Andrea Torsello 1 ALU ALU (Arithmetic Logic Unit) circuito combinatorio all interno del processore per l esecuzione di istruzioni

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

IIS Via Silvestri ITIS Volta Programma svolto di Tecnologie Informatiche A.S. 2015/16 Classe 1 A

IIS Via Silvestri ITIS Volta Programma svolto di Tecnologie Informatiche A.S. 2015/16 Classe 1 A IIS Via Silvestri ITIS Volta Programma svolto di Tecnologie Informatiche A.S. 2015/16 Classe 1 A Modulo n 1 - Concetti informatici di base 1.1 Introduzione allo studio del computer 1.2 Rappresentazione

Dettagli

Riepilogo su FSM. Descrizione di macchine a stati tramite VHDL. Esempio di FSM (Moore) Esempio di FSM (Moore)

Riepilogo su FSM. Descrizione di macchine a stati tramite VHDL. Esempio di FSM (Moore) Esempio di FSM (Moore) Riepilogo su FSM Descrizione di macchine a stati tramite VHDL M. Favalli Engineering Department in Ferrara FSM: i) insieme finito di simboli di ingresso; ii) insieme finito di simboli di uscita; iii) un

Dettagli

Addizione tra numeri binari

Addizione tra numeri binari Addizione tra numeri binari A=a n-1 a n-2...a i...a 0 B=b n-1 b n-2...b i...b 0 s i =a i b i c in c out =a i b i + a i c in + b i c in a i b i FA c out c in S=s n s n-1 s n-2...s i...s 0 s i a n 1 b n

Dettagli

Per gli esercizi sulla algebra booleana, si consiglia di verificare tramite tabelle di verità le equivalenze logiche proposte sulle dispense.

Per gli esercizi sulla algebra booleana, si consiglia di verificare tramite tabelle di verità le equivalenze logiche proposte sulle dispense. Fondamenti di Informatica - A. Fantechi Raccolta di esercizi Per gli esercizi sulla algebra booleana, si consiglia di verificare tramite tabelle di verità le equivalenze logiche proposte sulle dispense.

Dettagli

MODULO 1. Prof. Onofrio Greco. Prof. Greco Onofrio

MODULO 1. Prof. Onofrio Greco. Prof. Greco Onofrio ECDL MODULO 1 Prof. Onofrio Greco Modulo 1 Concetti di base dell ICT Modulo 2 Uso del Computer e Gestione dei File Modulo 3 - Elaborazione testi Modulo 4 Foglio Elettronico Modulo 5 Uso delle Basi di Dati

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

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

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

Dettagli

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

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

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

Reti Logiche Combinatorie

Reti Logiche Combinatorie Testo di riferimento: [Congiu] - 2.4 (pagg. 37 57) Reti Logiche Combinatorie 00.b Analisi Minimizzazione booleana Sintesi Rete logica combinatoria: definizione 2 Una rete logica combinatoria èuna rete

Dettagli

Architettura degli Elaboratori I Esercitazione 5 - Progettazione di Reti di Interconnessione fra Registri Roberto Navigli

Architettura degli Elaboratori I Esercitazione 5 - Progettazione di Reti di Interconnessione fra Registri Roberto Navigli Architettura degli Elaboratori I Esercitazione 5 - Progettazione di Reti di Interconnessione fra Registri Roberto Navigli 1 Reti di Interconnessione fra Registri In questa esercitazione vedremo i quattro

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

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

Istruzioni, algoritmi, linguaggi

Istruzioni, algoritmi, linguaggi Istruzioni, algoritmi, linguaggi 1 Algoritmo per il calcolo delle radici reali di un equazione di 2 o grado Data l equazione ax 2 +bx+c=0, quali sono i valori di x per cui l equazione è soddisfatta? 2

Dettagli