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

Documenti analoghi
Introduzione al VHDL Lezione 2

Addizione tra numeri binari

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

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

14/11/2012. Il VHDL 3 parte. Tipi. Tipi scalari INTEGER; REAL; Tipo Fisici; BOOLEAN; CHARCTER; BIT ENUMERATO; Tipo composto ARRAY RECORD FILE ACCESS

Christian Pilato

Un linguaggio per la descrizione dello hardware: il VHDL

Un linguaggio per la descrizione dello hardware: il VHDL

Introduzione alla sintesi comportamentale

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

Laboratorio di Elettronica Introduzione al VHDL

Introduzione al VHDL. Alcuni concetti introduttivi

Introduzione al Linguaggio C

Quarta esercitazione

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.

Introduzione al linguaggio VHDL

Il potere espressivo di un linguaggio è caratterizzato da: PROGRAMMA = DATI + CONTROLLO

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

LINGUAGGI DI PROGRAMMAZIONE!

Costanti e Variabili

Corso di Fondamenti di Informatica Il sistema dei tipi in C++

Il linguaggio C. Notate che...

Tipi di dato primitivi

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

Lezione E15. Sistemi embedded e real-time

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

I tipi di dato del Fortran

interfacciamento statico e dinamico analisi di interconnessioni, driver e receiver

La libreria STD La libreria MODELSIM_LIB Il package TEXTIO Struttura dei testbench. La libreria standard IEEE è composta 6 package

Corso di Calcolatori Elettronici 2 Università di Napoli, Federico II. Il VHDL come linguaggio (v1.0) Roadmap

ELETTRONICA dei SISTEMI DIGITALI Universita di Bologna, sede di Cesena

Elementi lessicali. Lezione 4. La parole chiave. Elementi lessicali. Elementi lessicali e espressioni logiche. Linguaggi di Programmazione I

Linguaggio C - sezione dichiarativa: costanti e variabili

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

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

Introduzione al VHDL Lezione 3

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

Introduzione al linguaggio VHDL

Tipi di dato, Alessandra Giordani Lunedì 7 maggio 2011

Reti Logiche A. Introduzione al VHDL

Informatica 1 Tipi e dichiarazioni in C++ C++ - Tipi e dichiarazioni 1

Structured Query Language

Tipi di dato. Il concetto di tipo di dato viene introdotto per raggiungere due obiettivi:

VHDL. Il linguaggio FOCUS

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

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

Facoltà di Ingegneria Corso di Studi in Ingegneria Informatica. Metodologie e strumenti per il reengineering del workflow management

Tipi di dato semplici

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

Introduzione alle stringhe e algoritmi collegati

Laboratorio di Informatica Ingegneria Clinica Lezione 9/11/2011. Prof. Raffaele Nicolussi

Tipi di dati fondamentali. Tipi di dati fondamentali. Utilità dei tipi di dati nelle dichiarazioni. Il tipo di dati char. Codice ASCII.

ELEMENTI DI INFORMATICA L-B. Ing. Claudia Chiusoli

Il Linguaggio C. Caratteristiche. Caratteristiche. Esempio di programma in C. Tipi di dato primitivi in C. Dati

Tecnologie e Progettazione dei sistemi Informatici e di Telecomunicazioni Scheda Recupero Estivo Obiettivo

Algoritmi e Strutture Dati

Introduzione a Matlab

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

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

Sintassi: Per la dichiarazione di variabili dei tipi fondamentali:

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

Università degli Studi di Milano

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

Reti Logiche A Appello del 24 febbraio 2010

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

senza stato una ed una sola

VARIABILI E COSTANTI

BASI LINGUAGGIO. Programmazione Web 1

Tipi di dati strutturati e Linguaggio C. Record o strutture Il costruttore struct in C

Strutture dati e loro organizzazione. Gabriella Trucco

Variabili. Tipi di dati di base. Variabili. Variabili

Calcolatori Elettronici M Modulo Linguaggio VHDL Parte 1/2

Utilizza i tipi di dati comuni a tutto il framework.net Accesso nativo ai tipi.net (C# è nato con.net) Concetti fondamentali:

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

IL LINGUAGGIO C TIPI DI DATO

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

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

Function Block Diagram

Introduzione a Java. Riferimenti

BASI LINGUAGGIO. Programmazione Web 1

Linguaggi di descrizione dell hardware Progetti a.a. 2016/17

Tipi e Valori. Moreno Marzolla Dipartimento di Informatica Scienza e Ingegneria (DISI) Università di Bologna

Fortran per Ingegneri

Il livello logico digitale

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

Indice. Ordine di valutazione. Espressioni in C++ Le espressioni in C++ (CAP 4) Alberto Garfagnini e Marco Mazzocco A.A. 2014/ * 20 / 2

Programmazione in Java (I modulo)

Reti Logiche A Esame del 19 febbraio 2007

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

Corso di Programmazione Record e Insiemi. Record. Record. Dott. Pasquale Lops.

Caratteristiche di un linguaggio ad alto livello

Sistemi di Numerazione

La sintassi del C APPENDICE H

Definizioni. Esempi di alfabeti

Laboratorio Progettazione Web Il linguaggio PHP Lezione 6. Andrea Marchetti IIT-CNR 2011/2012

MATLAB I/O. Informatica B - A.A. 2012/2013 ACQUISIZIONE DI INPUT DA TASTIERA

Laboratorio di Calcolatori Elettronici

Programmazione. 1 Introduzione. Tutto per la gloria di Dio.

Linguaggio C: Espressioni

Espressioni ed operatori in C

Transcript:

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 alla descrizione COMPORTAMENTALE (non sempre sintetizzabile) Nel package 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 Scalari character bit std_logic Vettori string bit_vector std_logic_vector boolean real integer time

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: 'U' uninitialized 'X' unknown 'W' weak unknown '0' 0 logic 'L' weak 0 '1' 1 logic 'H' weak 1 'Z' high impedence '-' don't care

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 una latra 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 TYPE mese IS (gennaio, febbraio, giugno); TYPE bit IS ( 0, 1 ); E dei sottoinsiemi di queste 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.neme 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 lassegnamento 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 operandi risiedono in appositi pakages Generalmente gli operandi devono essere dello stesso tipo Altrimenti si deve esplicitare la conversione ERRORE 1 + 1.0 CORRETTO1 + INTEGER (1.0)

Sintassi - Operandi Logici: and, or, nand, nor, xor Relazionali =, /=, <, <=, >, >= Concatenazione e aritnetici &, +, -, *, /, 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;