Introduzione al linguaggio VHDL per la descrizione di sistemi digitali

Slides:



Advertisements
Presentazioni simili
Traduzione ed Interpretazione
Advertisements

Elaborazione dei segnali mediante circuiti analogici o digitali.
1 Introduzione ai calcolatori Parte II Software di base.
Analisi e progettazione
Relatore: Prof. Fabrizio Ferrandi
Linguaggi di Programmazione e compilatori
Metodologie di Programmazione = decomposizione basata su astrazioni
DOCUMENTAZIONE DI SCHEMI E/R
Progetto di circuiti su FPGA
4 – Progettazione – Introduzione e Modello E-R
Luca Pizzamiglio Dipartimento di Elettronica ed Informazione Corso di Laurea in Ingegneria Informatica 17 Giugno 2003 Stimatori d'area per descrizioni.
Convegno CNIPA – Roma 23 novembre 2004 La biometria entra nelle-government –A.Alessandroni La biometria entra nelle-government: Le Linee guida per limpiego.
Gestione dei dati e della conoscenza (agenti intelligenti) M.T. PAZIENZA a.a
Sistemi basati su conoscenza (agenti intelligenti) Prof. M.T. PAZIENZA a.a
1 Introduzione Sistema di calcolo (1) Valutazione delle prestazioni (2) Metriche oggettive (3)
1 Introduzione Il concetto di prestazione si presta facilmente a valutazioni soggettive, spesso fuorvianti Metriche di analisi oggettive sono utili per.
Sintesi con circuiti LSI-MSI
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Funzioni e Procedure Marco D. Santambrogio – Ver. aggiornata al 18 Aprile 2012.
Autronica LEZIONE N° 4 AUTRONICA.
FONDAMENTI DI INFORMATICA III A3A1-1 Realtà e Modello MODELLI E METODOLOGIE PER LA PROGETTAZIONE LOGICA DI SISTEMI INFORMATIVI PER LUFFICIO Argomento 3.
Architetture e protocolli CCITTComunicazione: trasferimento di informazioni secondo convenzioni prestabilite La comunicazione richiede cooperazione.
Essendo le materie scientifiche e tecniche la linfa
Il miglioramento del processo produttivo con l’utilizzo di tecnologie digitali La riduzione del time to market nel processo di sviluppo della FIAT Bravo.
Sintesi con circuiti LSI-MSI. Realizzazione di reti combinatorie mediante Multiplexers Un multiplexer (MPX ) é una rete combinatoria con N ingressi, una.
Aspiranti ingegneri dell’informazione RETI LOGICHE insegna
Modello Relazionale Definisce tipi attraverso il costruttore relazione, che organizza i dati secondo record a struttura fissa, rappresentabili attraverso.
Modello E-R Generalizzazioni
Progettazione di una base di dati
Modello E-R Generalizzazioni
Univ. Studi di Roma FORO ITALICO Prof. Stefano Razzicchia 1 UNIVERSITA STUDI DI ROMA FORO ITALICO Corso di Laurea Triennale INFORMATICA Lez. 6.
Da Problema a Programmazione
D.E.I.S. Universita di Bologna VHDL come strumento CAD allinterno di flussi di progetto per dispositivi Digitali VHDL come strumento CAD allinterno di.
VHDL come strumento di progetto di circuiti digitali Antonio Deledda Corso di Elettronica dei Sistemi Digitali LS AA
VHDL come strumento di progetto di circuiti digitali
_ ___ _ ______ _ _ _________.
L’ingegneria del software
Introduzione alla programmazione Object Oriented
Docente: Roberto Basili Fond Inf (a.a ) Introduzione alla Progettazione Concettuale R. Basili.
STMicroelectronics Proposte di tesi
CONCETTI DI BASE 1.0 FONDAMENTI 1.1 HARDWARE 1.2 SOFTWARE 1.3 RETI
Corso di Web Services A A Domenico Rosaci 1. Introduzione
Programma di Informatica Classi Prime
ELETTRONICA DIGITALE (II PARTE) (1)
VHDL per FPGA Courtesy of S. Mattoccia.
Ingegneria del software Modulo 1 -Introduzione al processo software Unità didattica 3 -Modelli di fase d’analisi Ernesto Damiani Università degli Studi.
Finalità generale della scuola: sviluppo armonico e integrale della persona all’interno dei principi della Costituzione italiana e della tradizione culturale.
Ing. Maurizio Bassani LOGISTICA - Capitolo 3 - Modulo 1
Introduzione alle basi di dati
Ingegneria del software Modulo 1 -Introduzione al processo software Unità didattica 3 – Modelli di fase d’analisi Ernesto Damiani Università degli Studi.
SISTEMI DIDATTICI PER L’ E- LEARNING
Sistemi basati su conoscenza (agenti intelligenti) Prof. M.T. PAZIENZA a.a
Strategie di progetto Si possono utilizzare le strategie tipiche dello sviluppo di un processo di ingegnerizzazione (es. ingegneria del software). Strategie.
1 Linguaggi: guardando la semantica §esistono un insieme di concetti semantici e di strutture di implementazione in termini dei quali si descrivono in.
1 Metodologie di Programmazione §tecniche per la programmazione orientata ad oggetti §esemplificate utilizzando il linguaggio Java §testo di riferimento.
1 Metodologie di Programmazione = decomposizione basata su astrazioni.
1 Metodologie di Programmazione §tecniche per la programmazione orientata ad oggetti §esemplificate utilizzando il linguaggio Java §testo di riferimento.
Progettazione di basi di dati: metodologie e modelli
Il software Claudia Raibulet
Io ho voluto dimostrarlo attraverso una delle mie passioni:
PROGETTAZIONE DI BASE DI DATI Metodologie e modelli.
SINTESI E ANALISI DI CIRCUITI REALIZZATI IN LOGICA DIGITALE
NORMALIZZAZIONE ESERCIZI. INTRODUZIONE La modellazione E-R ci ha consentito di descrivere schemi relazionali Lo strumento base per la modellizzazione.
Motore passo-passo Motore brusheless.
8-12 June 2015 UNICAL, Rende (CS) Science and Instrumentation Technologies at UNICAL Testing of traditional and innovative building materials (Laboratorio.
Parsing ricorsivo discendente Il parsing ricorsivo discendente (recursive descent parsing) è un metodo di tipo top-down che può essere facilmente codificato.
Unità di apprendimento 6
Calliope-Louisa Sotiropoulou I NTRODUZIONE ALLA T ECNOLOGIA D ELL ’FPGA F IELD P ROGRAMMABLE G ATE A RRAYS PISA, 02/03/2016 Marie Curie IAPP Fellow - University.
Introduzione al corso di Impianti Chimici Prof. A. Lancia, F. Di Natale Assistenti; M. Balsamo, F. La Motta.
Didattica inclusiva della matematica IIS Federico Caffè maggio 2016 Vera Francioli & Claudio Marchesano Introduzione Insegnamento capovolto & Apprendimento.
Transcript della presentazione:

Introduzione al linguaggio VHDL per la descrizione di sistemi digitali Il linguaggio VHDL Introduzione al linguaggio VHDL per la descrizione di sistemi digitali

TESTI A GUIDE TO VHDL - Second Edition Stanley MAZOR and Patricia LANGSTRAAT Kluver Academic Publishers

Obiettivi NON e’ un corso completo sul VHDL NON imparerete nel dettaglio la sintassi del VHDL NON si approfondiranno gli aspetti semantici NON imparerete a sviluppare estensioni o integrazioni Capirete quali sono i motivi che spingono ad impiegare il VHDL Comprenderete i concetti base e sarete in grado di interpretare un sistema descritto tramite VHDL Sarete in grado di descrivere sistemi di “utilita’ pratica”in VHDL

Introduzione A chi e’ dedicato? Ai progettisti di circuiti e sistemi logigi che utilizzano sistemi CAE (Coputer Automated tools for Electronic design) Un po’ di storia: 1983: il dipartimento della difesa (DOD) all’interno del progetto VHSIC (Very High Speed Integrated Circuti) sviluppa un linguaggio di descrizione Hardware 1987:l’IEEE lo riconosce come STANDARD (1076) 1993:Il linguaggio viene migliorato con delle integrazioni “minori” Attualmente: A causa della attuale complessita’ dei circuiti ha surclassato altre metodologie (schematic capture)

Vantaggi Progetto di tipo “technology - independent” Impiegato da diversi fornitori / venditori (sia di HW che SW) Facilita gli “aggiornamenti” del sistema progettato Documentazione del progetto e’ “STANDARD” Miglioramento nella qualita’ del progetto Consente di analizzare varie alternative Consente piu’ livelli di astrazione Verifica ad un elevato livello di astrazione Paragone delle prestazioni tra vari livelli di astrazione Integrazione tra blocchi sviluppati a vari livelli Riutilizzo e condivisione di blocchi gia’ sviluppati

Considerazioni E’ meno “immediato” di uno schema digitale E’ sintatticamente … pesante Essendo uno “Standard Aperto” vi si possono definire strutture e/o tipologie di variabili non direttamente collegabili alla struttura del circuito Solo un sottoinsieme del VHDL e’ fisicamente “sintetizzabile” Esistono tools di sviluppo che consentono di ricavare descrizioni in VHDL partendo da Schemi, Macchine a Stati Finiti, Tabelle di verita’, ecc….

Introduzione

Introduzione Il Linguaggio VHDL viene utilizzato per: Documentare, Simulare, Sintetizzare circuiti e sistemi logici. Esso è costituito da più parti alcune delle quali fanno parte integrale del linguaggio stesso, mentre altre vengono integrate da opportuni “packages” realizzati all’interno di “libraries”

Un primo esempio + A <= B + C after 5.0 ns 8 B A C Aspetti introdotti: Descrizione / documentazione Top - Down design Simulazione Sintesi Logica Programmare in VHDL

Descrizione / Documentazione Una delle funzioni del VHDL e’ quella di descrivere / documentare il funzionamento di un sistema in modo chiaro ed inequivocabile Non e’ detto che questo sistema debba essere realizzato Alle volte e’ IMPOSSIBILE la realizzazione fisica del circuito Potrebbe essere la descrizione di un sistema gia’ in funzione Potrebbe essere un modo per descrivere gli stimoli da impiegare per testare un circuito

Top - Down Design (1) Tecnica di progetto che passa attraverso vari livelli di astrazione: Algoritmico RTL (register transfer level) Porte Logiche a ritardo unitario Porte logiche con ritardo effettivo Il passaggio da un livello a quello sottostante dipende da scelte progettuali, ed esempio Tipologia di sommatore usato (Ripple Carry, Carry Look Ahead, Carry Select) Tipologia di porte logiche a disposizione

Top - Down Design (2) I vari livelli di astrazione servono a “mascherare” il funzionamento al livello piu’ basso A livello di funzione (a livello algoritmico non interessa conoscere la tipologia del “sommatore”, ma solo la funzione “somma”) A livello di variabili ( il VHDL consente l’impiego di variabili (boolean, integer, floating, ecc.) utili solamente per una modellizzazione astratta del sistema o di parti di esso.

Simulazione Un sistema descritto in VHDL viene solitamente SIMULATO per analizzarne in comportamento (simulazione comportamentale) Bisogna fornire degli stimoli (INPUT) Ed avere un sistema capace di osservare l’evoluzione del modello durante la simulazione, registrarne le variazioni per un’eventuale ispezione di funzionamento Il simulatore deve aver la possibilita’ di rappresentare una variabile come “unknown”. Package STD_LOGIC_1164

Sintesi Logica Passaggio tra descrizione comportamentale e descrizione a porte logiche La sintesi avviene tramite appositi programmi che si appoggiano a librerie dove sono descritte le porte logiche da impiegare (fornite dal venditore) La sintesi e’ un processo delicato che deve essere opportunamente “guidato ed ottimizzato” Solo un ristretto sottoinsieme del VHDL si presta ad essere Sintetizzato automaticamente ovvero: Non tutto cio’ che e’ scritto in VHDL e’ sintetizzabile La restante parte e’ da impiegarsi per la descrizione e per la simulazione

Programmare in VHDL (1) Per certi versi e’ simile a programmare in “Fortran”, “C”, “Pascal”, ecc… Compilazione: controllo delle sintassi, generazione di un eseguibile Running: Link con strutture in libreria ed esecuzione dell’algoritmo VHDL Compiler Design unit VHDL Simulator Component Library

Programmare in VHDL (2) La fondamentale differenza e’ che un modello descritto in VHDL funziona sempre in “Tempo di simulazione” e tutti i vari eventi avvengono in successivi istanti di tempo Vi e’ la possibilita’ da parte di piu’ istruzioni di essere eseguite CONTEMPORANEAMENTE indipendentemente dall’ordine in cui sono state scritte (esecuzione concorrente) Altre differenze: Presenza del “delay” e dell’ambiente di simulazione Descrizione a piu’ livelli di astrazione Descrizione di componenti ed “Istanziazione” all’interno di una descrizione strutturale

VHDL Design

Progetto in VHDL Consta di piu’ unita’ compilate e salvate in opportune librerie Queste unita’ sono: Entity Architecture Configuration Pakage Entity ed Architecture descrivono i componenti come interfaccia e come struttura interna Configuration serve per descrivere una particolare versione del progetto Pakage: contiene funzioni e/o grandezze di uso comune

Esempio package my_defs is (Package) constant unit_delay: time := 1 ns -- ritardo end my_defs entity COMPARE is (Entity) port (a, b : in bit; c : out bit); end COMPARE architecture DATAFLOW of COMPARE is (Architecture) begin c <= not (a xor b) after work.my_defs.unit_delay; end DATAFLOW

Library Dopo la compliazione i risultati sono salvati in una LIBRARY tramite la quale possono essere successivamente condivisi la library di default e: WORK Vi sono diverse LIBRARY pre-compilate a cui fare riferimento STD, IEEE, … per la descrizione del software (VHDL) UNISIM, SIMPRIM, VALID… per la descrizione dell’ Hardware (celle logiche fornite da Xilinx, AMS, ES2, …) Esiste un file di configurazione che associa la libreria VHDL con un determinato file in un certo direttorio fisico su disco

Package Di solito e’ usato per: Per esempio: Constant declaration subprogram declaration type declaration Per esempio: Pakage STANDARD: contiene la definizione di types: bit, boolean, bit_vector, time. Pakage TEXTIO: contiene la definizione di types: line, text procedure: read, write, writeline files: Input, Output

Entity Descrive un componente solo come Interfaccia da e verso l’esterno Non fornisce alcun dettaglio sul funzionamento o sull’architettura b entity COMPARE is port (a, b : in bit; c : out bit); end COMPARE a ? c b

Architecture Descrive il funzionamento dell’”Entity” tramite: descrizione astratta (comportamentale) equazioni logico/ aritmetiche (dataflow) Interconnessione tra moduli (strutturale) Lo stesso componente puo’ essere descritto a piu’ livelli di astrazione Dello stesso componente possono esistere piu’ implementazioni diverse (Es. sommatore come CLA, RC, CSA) Per ogni Entity possono esistere piu’ Architectures

Architecture (behavioral) architecture BEHAVIORAL of COMPARE is begin process (A,B) if (A = B) then C <= '1' after 1 ns; else C <= '0' after 1 ns; end if; end process; end BEHAVIORAL

Architecture (behavioral) Descrizione comportamentale ad alto livello di astrazione (risulta molto simile ad un algoritmo espresso secondo il classici linguaggi sequenziali (C, Fortran, Pascal, ecc..) Utile per simulare parti di circuito senza dover scendere troppo nel dettaglio del funzionamento. Utilizzo di PROCESS (con lista dei segnali di attivazione) Piu’ operazioni agenti in parallelo risiedono in diversi “Process” Diversi processi comunicano tra loro mediante “SEGNALI” ma al loro interno lavorano mediante “VARIABILI” Al loro interno i “Processes” sono sequenziali ATTENZIONE: non tutto cio’ che viene descritto al livello comportamentale risulta sintetizzabile

Architecture (dataflow) architecture DATAFLOW of COMPARE is begin c <= not (a xor b) after 1 ns; end DATAFLOW Descrizione secondo equazioni logiche

Architecture (Structural) architecture STRUCTURAL of COMPARE is signal I: bit; component XR2 port (x,y: in BIT; z: out BIT); end component; component INV port (x: in BIT; y: out BIT); begin U0: XR2 port map (A,B,I); U1: INV port map (I,C); end STRUCTURAL; component instance

Architecture (Structural) Descrizione Strutturale ovvero mediante blocchi tra loro interconnessi (notare l’istanziazione dei componenti) I vari “components” devono essere gia’ presenti in una libreria di riferimento La dichiarazione dei “components” e’ spesso raccolta in un “pakage” La “port map” indica il collegamento fisico Vengono solitamente impiegati segnali interni Puo’ essere ben sfruttata in progetti gerarchici (istanziando un componente gia’ compilato). Spesso questa descrizione deriva da un processo di sintesi

Architecture Tutte queste tecniche costitutive per l’Architecture possono fondersi tra loro Una buona descrizione architetturale e’ il primo passo per una buona Sintesi Il tool di sitesi ha una “INTELLIGENZA” limitata Il successo di un progetto risiede al 75 % nella descrizione architetturale il rimanente 25% alle possibili ottimizzazioni Non tutto cio’ che e’ scritto in VHDL puo’ essere sintetizzato!!

Configuration Descrive per ogni Entity coinvolta in un progetto quale Architecture utilizzare Sfruttando i “default” molte indicazioni possono essere soppresse configuration PRIMA of COMPARE is for STRUCTURAL for U0: XR2 use entity work.XR2(dataflow); end for; for U1: INV use entity ES2.INV(structural) end for; end for; end;

Elementi e Primitive

Introduzione Il VHDL e’ costituito da vari formati (types)ed operatori (operators) per consentire simulazione e sintesi a vari livelli Nel pakage STANDARD si trovano descritti quegli oggetti destinati alla descrizione COMPORTAMENTALE (non sempre sintetizzabile) Nel pakage IEEE1164 vi si trovano gli oggetti destinati alla sintesi ed alla simulazione logica Il VHDL e’ un linguaggio fortemente basato sulla sintassi

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

Sintassi - Scalari e Vettori

Sintassi - Scalari e Vettori Characters Un “character” va dichiarato racchiuso tra virgolette singole Es: ‘a’ ‘A’ ‘#’ ‘@’ ‘ ’ ‘ ’ ’ a meno di caratteri ASCII particolari Es: CR DEL NUL ACK BEL LF

Sintassi - Scalari e Vettori Strings Una “string” e’ un array di caratteri e va dichiarata racchiusa tra virgolette doppie Es: “ciao a tutti” “x” In caso di equivoco si usi la dichiarazione esplicita Es: string’(“100100”)

Sintassi - Scalari e Vettori Bit Il BIT assume solo valori ‘0’ o ‘1’ e va dichiarato tra virgolette singole Es: ‘0’ ‘1’ In caso di equivoco si usi la dichiarazione esplicita Es: bit’(‘0’) bit’(‘1’)

Sintassi - Scalari e Vettori Bit_vector Il Bit_vector e’ un array di Bit che assumono solo valori ‘0’ o ‘1’ e va dichiarato tra virgolette doppie, e’ comunque consentito adottare una notaziono ottale o esagesimale. IL carattere ‘_’ puo’ essere adottato per comodita’, ma non viene interpretato Es: “0001_1001” x”00FF” In caso di equivoco si usi la dichiarazione esplicita Es: bit_vector’(“0110_0101_0011”)

Sintassi - Scalari e Vettori STD_logic E’ il “type” piu’ usato per la sintesi logica Assume i valori:

Sintassi - Scalari e Vettori STD_logic Viene dichiarato racchiuso tra virgolette singole Es: ‘U’ ‘X’ ‘1’ ‘0’ In caso di equivoco si usi la dichiarazione esplicita Es: std_logic’(‘1’)

Sintassi - Scalari e Vettori STD_logic_vector Viene dichiarato racchiuso tra virgolette doppie Es: “001XX” “UUUU” In caso si voglia esprimere un particolare valore espresso secondo una notazione di tipo “unsigned” o “signed” (complemento a 2) si deve impiegare il pakage STD_LOGIC_ARITH Es: signed’(“111001”) (ossia -7) unsigned(“111001”) (ossia 57) Library IEEE; Use IEEE.STD_LOGIC_1164.all; Use IEEE.STD_LOGIC_ARITH.all;

Sintassi - Scalari e Vettori Boolean Assume due soli valori in genere deriva da un operatore che esprime una “relazione” (= <= >= /=) ed e’ solitamente impiegato in un test. Valori consenti: True, False Es: true TRUE True false FALSE False

Sintassi - Scalari e Vettori Real Puo’ essere utile per simulazioni ad alto livello NON VIENE SINTETIZZATO DEVE contenere il punto decimale ed eventualmente il segno Es: 1.0 +2.23 - 4.56 -1.0E+38 Per impiegare un array di numeri reali deve essere opportunamente dichiarato

Sintassi - Scalari e Vettori Integer Puo’ essere utile per simulazioni ad alto livello NON SEMPRE VIENE SINTETIZZATO NON DEVE contenere il punto decimale ma puo’ eventualmente contenere il segno Es: 10 +223 - 456 Un intero puo’ eventualmente essere espresso in un’altra base Es: 16#00F0F# Nel pakage STANDARD sono descritti due subset degli Integer: positive e natural

Sintassi - Scalari e Vettori Time E’ la sola grandezza fisica predefinita in VHDL. E’ definita nel Pakage STANDARD E’ importante separare il valore dall’unita’ di grandezza Es: 10 ns 123 us 6.3 sec Unita’ di grandezza consentite: fs ps ns us ms sec min hr

Sintassi - Ulteriori tipi type, subtype In VHDL si possono “inventare” delle variabili “su misura E dei sottoinsiemi di queste” TYPE mese IS (gennaio, febbraio, giugno); TYPE bit IS (‘0’, ‘1’); SUBTYPE mesefreddo IS mese range gennaio to febbraio;

Sintassi - Nomi Ogni oggetto (entity, architerctures, segnali, …) ha un nome simbolico Il VHDL e’ un linguaggio “Case insentistive” (ossia abcd e’ analogo a AbCd) Vi sono “nomi riservati” quali: in, out, signal, port, library, map, entity, …. I nomi “relativi” vengono indicati con un “.” nella sintassi Es: libray_name.pakage_name.item_name WORK.my_defs.unit_delay

Sintassi - Dichiarazioni di oggetti In VHDL vi sono grandezze che mantengono il loro valore immutabile ed altre che possono cambiare valore constants: gandezze fisse signals: rappresentano collegamenti fisici (sono grandezze concorrenti) variables: rappresentano variabili all’interno di un processo (sono grandezze sequenziali) Inoltre si possono definire dei puntatori a files (ovviamente per blocchi puramente comportamentali) Ogni grandezza impiegata deve essere definita a priori variable x: integer; signal aBc: bit; constant Vdd: real := 12.3;

Sintassi - Range Si puo’ vincolare una grandezza a rimanere all’interno di un certo campo di variablita’ (“range”) Il range va specificato in fase di dichiarazione entity COMPARE_digit is port (a, b : in integer range 1 to 10; c : out boolean); end COMPARE_digit; variable ABC: real range 1.0 to 10.0;

Sintassi - Costants Risultano comode quando in piu’ parti del listato si fa riferimento alla stessa grandezza costante Le costanti possono essere dichiarate all’interno di un pakage, entity o architecture constant Vdd: Real := 4.5; constant CYCLE : Time := 100 ns; constant PI : Real := 3.14; constant FIVE : std_logic_vector (0 to 3) := "0101";

Sintassi - Signals Sono l’astrazione dei “collegamenti fisici” Fanno comunicare tra loro varie entity Un segnale puo’ essere inizializzato (ATTENZIONE in fase di SINTESI l’inizializzazione potrebbe essere disattesa!) In un’ entity un segnale viene dichiarato tramite la port signal count: integer range 1 to 10; signal GROUND: bit :=0 ; signal SYS_BUS : std_logic_vector (7 downto 0); port (A, B : in std_logic);

Sintassi - Variables Una variabile viene impiegata nei process l’assegnamento del valore ad una variabile avviene istantaneamente in simulazione (all’opposto di un segnale per cui l’assegnamento avviene in base al “tempo di simulazione”) deve essere dichiarata prima di essere usata variable INDEX : integer range 1 to 50; variable CYCLE : time range 10 ns to 50 ns := 10ns; varaible MEMORY : bit_vector (0 to 7); variable x,y,z : integer;

Sintassi - expressions Sono formule impiegate per calcolare un risultato L’operando dipende dalle grandezze usate come operatori Alcuni operatori risiedono in appositi pakages Generalmente gli operandi devono essere dello stesso tipo Altrimenti si deve esplicitare la conversione ERRORE 1 + 1.0 CORRETTO 1 + INTEGER (1.0)

Sintassi - Operandi Logici: and, or, nand, nor, xor Relazionali =, /=, <, <=, >, >= Concatenazione e aritmetici &, +, -, *, /, mod, rem, **, abs Logici: not NOTA: il precedente elenco e’ ordinato in base alla priotita’

Pakages STD_logic_arith Il pakage STANDARD non consente comparazioni o operazioni aritmetiche tra “bit_vector” Alcuni venditori provvedono un pakage per definire le operazioni tra std_logic_vector Servono per definire se le grandezze impiegate sono di tipo “signed” o “unsigned” ovvero ad esempio come interpretare la grandezza “1011” ossia 11 oppure -5 ?) use IEEE.std_logic_signed.all; use IEEE.std_logic_unsigned.all;