esercitazioni Corso di Laurea in Ing. elettronica Esercitazioni

Documenti analoghi
Prima esercitazione. a.a

Introduzione al linguaggio VHDL e al programma di simulazione e sintesi logica su FPGA utilizzato nelle esercitazioni. a.a.

architecture tipo_architettura of nome_del_modulo is begin architecture tipo_architettura of nome_del_modulo is

Quarta esercitazione

Seconda esercitazione

Productivity Trends. Livelli di astrazione di un sistema digitale. Complexity outpaces design productivity. q=a*b+c. a.a.

Elettronica dei Sistemi Digitali L-A

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

Architetture dei Dispositivi Programmabili Avanzati Altera

BREVE GUIDA ALL' UTILIZZO DI QUARTUS II PER LO SVILUPPO DI PROGETTI VHDL a.a

METODOLOGIE PROGETTUALI CMOS

Un linguaggio per la descrizione dello hardware: il VHDL

VHDL come strumento di progetto di circuiti digitali

Un linguaggio per la descrizione dello hardware: il VHDL

Introduzione alla sintesi comportamentale

Flusso di progetto circuiti digitali. Circuiti Integrati Digitali. Il Design Productivity Gap. Tecnologia Standard Cells

ELETTRONICA dei SISTEMI DIGITALI Universita di Bologna, sede di Cesena

interfacciamento statico e dinamico analisi di interconnessioni, driver e receiver

Computer Aided Design. Matteo Montani

Flusso di Progetto Mixed Signal in ambiente CADENCE. Approccio Analog Centric. Corso di Progettazione Mixed Signal 19/12/2013 Prof.

VHDL: Simulazione & Sintesi

Metodologie di progetto HW Livelli d astrazione

BREVE GUIDA ALL' UTILIZZO DI QUARTUS II PER LO SVILUPPO DI PROGETTI VHDL

Elettronica per le telecomunicazioni 21/05/2004

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

Productivity Trends. Livelli di astrazione di un sistema digitale. Complexity outpaces design productivity. q=a*b+c

$ % 16 dicembre Giovanni Beltrame 2

Introduzione al VHDL Lezione 1

Introduzione al Flusso di Progetto di Circuiti e Sistemi Digitali

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

Corso di Reti Logiche A

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

Parte 2.c. Elaborazione: Hardware dedicato

Lezione E15. Sistemi embedded e real-time

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

Addizione tra numeri binari

---- registro con reset e enable library IEEE; use IEEE.std_logic_1164.all; use IEEE.std_logic_arith.all; use IEEE.std_logic_unsigned.

Esercitazione di laboratorio n. 2

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.

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

Progettazione di circuiti integrati

BREVE GUIDA ALL' UTILIZZO DI QUARTUS II PER LO SVILUPPO DI PROGETTI VHDL

Terza esercitazione. Progetto di una rete di controllo. Obiettivi Progetto e analisi di macchine a stati finiti. a.a

Layout Cyclone II Development Board

Lezione M1 - DDM

Introduzione al VHDL. Alcuni concetti introduttivi

LAB2. Realizzare un sommatore ripple carry ad 8 bit con un design entry di tipo schematic

Introduzione al VHDL. Alcuni concetti introduttivi

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

Reti logiche A All. Informatici (M-Z)

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

ELETTRONICA GENERALE, FONDAMENTI DI ELETTRONICA DIGITALE Appello d esame del 18/1/2016

Laboratorio di Elettronica Introduzione al VHDL

Introduzione a Electronic Design Automation. Tecnologie. Circuiti integrati digitali. Sommario. M. Favalli. Tecnologia planare del silicio

SisElnF4 10/01/ /01/ SisElnF DDC/GP/MGG. 10/01/ SisElnF DDC/GP/MGG. Kilby 1958 Texas Instrument (1 Flip-Flop)

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

Progetto finale di reti logiche

Jan M. Rabaey Anantha Chandrakasan Borivoje Nikolic. Design Methodologies. December 10, 2002

VHDL. Il linguaggio FOCUS

Introduzione al VHDL Lezione 2

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

Si apra il tool quartus o tramite icona sul desktop o dall elenco dei programmi istallati

CORSO DI ELETTRONICA DEI SISTEMI DIGITALI

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

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

Capitolo 1 Circuiti integrati digitali. Capitolo 2 L invertitore CMOS. Introduzione

Tecniche Analogiche e tecniche Digitali

Riassunto tecnica digitale

Architetture e reti logiche Esercitazioni VHDL a.a. 2006/07. UsodelVHDL. Stefano Ferrari

3.5 Esercizi con strumenti automatici

ETLC2 - A1 04/05/ /05/ ETLC2 - A DDC 04/05/ ETLC2 - A DDC. Full Custom 04/05/ ETLC2 - A DDC.

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

REALIZZAZIONE DI SISTEMI DI ELABORAZIONE NUMERICA DEI SEGNALI. E. Del Re - Fondamenti di Elaborazione Numerica dei Segnali 1

(b) LOGIC SYNTHESIS DESIGN FLOW

La descrizione ai terminali dell unità di controllo è la seguente:

ELETTRONICA GENERALE, FONDAMENTI DI ELETTRONICA DIGITALE Appello d esame del 11/7/2016

Embedded and Reconfigurable Systems M 03 Field Programmable Gate Array (FPGA)

Tecniche di Progettazione Digitale Logiche programmabili; standard cells; generazione automatica del layout: algoritmi di partitioning p.

Introduzione al linguaggio VHDL

Università degli Studi del Sannio. Facoltà di Ingegneria

Circuiti integrati semi-custom

ELETTRONICA GENERALE, FONDAMENTI DI ELETTRONICA DIGITALE Appello d esame del 8/9/2015

ARCHITETTURA DEI DISPOSITIVI FPGA ALTERA MAX300

MATERIA: SISTEMI AUTOMATICI ELETTRONICI

Ciclocomputer. Soluzione Dettagliata.

A Generic Digital Processor

Christian Pilato

Università degli Studi di Cassino

Progettazione di circuiti integrati

Laboratorio di Sistemi Digitali M A.A. 2010/11

Circuiti combinatori notevoli

Sequential Processing

Architetture e Reti logiche. Esercitazioni VHDL. a.a. 2003/04 VHDL. Stefano Ferrari

Reti Logiche Appello del 1 marzo 2011

Calcolatori Elettronici

Esercitazione di Elettronica Per la Telematica

Progettazione e sintesi di circuiti digitali Lezione 1

Reti Logiche A II Prova - 2 marzo 2009

Il Livello Logico-Digitale. Blocchi funzionali combinatori

Transcript:

Progetto di sistemi elettronici LA - esercitazioni Corso di Laurea in Ing. elettronica Esercitazioni copie dei lucidi presentati a lezione breve guida all utilizzo di QUARTUS codici VHDL sommatore a 4 bit FF con ingresso di reset sincrono o asincrono e enable contatore Soluzione guidata di prove d esame 1 Grazie a Prof.ssa Eleonora Franchi, Fabio Campi e Antonello Deledda Esercitazioni con QUARTUS 2 Breve guida all utilizzo di QUARTUS Software scaricabile gratuitamente dalla rete nella versione web edition www.altera.com -> downloads and licensing -> Quartus II Web Edition (Free) Registrazione obbligatoria Dal menù di installazione scegliere installazione personalizzata e deselezionare tutte le voci tranne le prime 3 (obbligatorie) e tutti i supporti di libreria Stratix.

3 Contatti Sito di riferimento: www-micro.deis.unibo.it -> Staff -> Tommaso DE MARCO Materiale utilizzato durante le esercitazioni Esercizi svolti e archivio temi d esame Informazioni utili Ricevimento: tdemarco@arces.unibo.it Esame si possono utilizzare supporti di memoria abilitati solo in lettura (CD ROM) non sarà visibile la propria area utente (il progetto sarà svolto nell area tmp locale) si può consultare tutto il materiale cartaceo è accessibile la rete del DEIS http://www.deis.unibo.it/ http://www-micro.deis.unibo.it 4

Livelli di astrazione di un sistema digitale q=a*b+c SYSTEM 5 RTL (Register Transfer Level) + GATE CIRCUIT S n+ G DEVICE n+ D Integrated Circuits Implementation Choices 6 Digital Circuit Implementation Approaches Full-Custom Semicustom Cell-based Array-based Standard Cells (with compiled cells and macro cells) Mask programmable (Gate Arrays) Pre-wired (FPGA's) ASIC FPGA

Semi-custom 7 Il progettista può intervenire solo ai livelli più alti di astrazione (algoritmico e architetturale) Deve esistere una libreria di celle progettate e caratterizzate fornita dal costruttore Caratterizzate: a ciascuna cella deve essere associato il valore dei parametri che permettono di calcolare Tp lungo il cammino critico, P e area di sistemi complessi Le celle sono ovviamente state progettate a livello di transistor e il valore dei parametri per valutare le prestazioni è stato ricavato da simulazioni circuitali. Full-custom Il progettista può ottimizzare a tutti i livelli di astrazione Mai attuabile per un intero sistema digitale, ma solo per moduli (macrocelle): Riutilizzabili in differenti progetti (es: celle standard) Con prestazioni particolarmente critiche per il sistema complessivo (es: ALU di un µp, MAC in DSP) Regolari (es: memorie) In questo caso il progettista ha bisogno di modelli che permettano di scegliere fra differenti soluzioni. Deve poi disegnare lo schematico, simulare e caratterizzare la macrocella alle porte di IN/OUT affinché possa essere utilizzata in un flusso semicustom. 8

ASIC Design Flow 9 System specification Design Iteration Pre-Layout Simulation Post-Layout Simulation RTL RTL (HDL (HDL es: es: VHDL) VHDL) Logic Logic Synthesis Floorplanning Placement Libreria di celle Circuit Circuit Extraction Routing Tape-out 10

11 9) Simulazione post-layout FPGA Design Flow 12 System specification RTL RTL (HDL (HDL es: es: VHDL) VHDL) Logic Logic Synthesis Programming -file Libreria di celle

FPGA Blocco Logico programmabile Canale di interconnessione programmabile I/O block (pad) 13 Programming Interconnect Technique based on SRAM or Flash 14 wire 1 wire 2 Memory M stores the gate voltage of the MOS transistor M wire 1 wire 2

Programmable Logic Block based on Look-up Table (LUT) 15 RAM Memory DECODER In Out 00 0 01 1 10 1 11 0 Out ln1 ln2 (from Altera) 16 LUT Registro mux la cui configurazione è fissata in fase di programmazione

Flusso di progetto in laboratorio 17 boot Windows Creare un direttorio di lavoro QuartusII9.sp2 Descrizione vhdl del sistema Verifica funzionale Sintesi del sistema su fpga Verifica timing Flusso di progetto in laboratorio 18 Descrizione RTL del circuito utilizzando il linguaggio VHDL (.vhd) Verifica codice: start analysis and elaboration Analisi dello schematico associato al file: RTL viewer Simulazione funzionale Creazione netlist: generate functional simulation netlist Creazione file con forme d onda (.vwf) Specificare: simulation mode = functional Simulazione: start simulation

Sintesi logica su FPGA Sintesi: start compilation Nel summary compaiono i dati relativi all utilizzo delle risorse Nel project navigator la lista degli elementi utilizzati (Logic Cell, Logic Cell Register,Pin,..) Nella finestra di log compare già l informazione della massima frequenza a cui il circuito può funzionare Info: Clock "CLOCK" has Internal fmax of 174.86 MHz between source register "cicli[7]" and destination register "cicli[13]" (period= 5.719 ns) Simulazione post-sintesi (timing) Specificare: simulation mode = timing Simulazione: start simulation Analisi delle prestazioni: start timing analyzer 19 Menu Assignments ->Settings: Files: permette di selezionare fra differenti file.vhd all interno dello stesso progetto l unico attivo (eseguire remove e lasciare un solo file.vhd) General: permette di definire la top-level entity (solo dopo che sia stato eseguito il comando start analysis and elaboration il sistema riconosce automaticamente tutte le entità). Di default il nome della top-level entity che il sistema si aspetta coincide con il nome del project Simulator: permette di definire il tipo di simulazione (functional o timing) e di specificare il file con gli stimoli (.vwf) 20

Suggerimenti per la simulazione 21 Mantenere stabili le configurazioni degli ingressi per un tempo sufficientemente lungo da assicurarsi che nelle simulazioni timing i transitori siano esauriti prima della nuova commutazione degli ingressi Il periodo di un segnale di tipo clock ha di default assegnato un periodo di 10 ns (per simulazioni timing NON è in generale sufficiente) Controllare la durata della simulazione assegnando un valore ragionevole a end time Attenzione: di default è 1 us Il valore ragionevole è definito dal numero di configurazioni distinte in ingresso che fornite Controllare grid time (a metà del Tck) Struttura file.vhd library IEEE; use IEEE.std_logic_1164.all; use IEEE.std_logic_arith.all; link a librerie e package 22 entity nome_del_modulo is port ( term1,term2 : in std_logic; term3,term4 : out std_logic) ; end nome_del_modulo; entity interfaccia I/O del modulo architecture tipo_architettura of nome_del_modulo is begin. end tipo_archiettura; architecture descrizione del circuito (comportamentale o strutturale)

Esempio library IEEE; use IEEE.std_logic_1164.all; 23 entity HA is port ( I1,I2 : in std_logic; SUM, CO : out std_logic); end HA; architecture BEHAVIOR of HA is begin SUM <= (I1 xor I2); assegnamenti eseguiti simultaneamente CO <= (I1 and I2); end BEHAVIOR; Tipi di dato 24 std_logic e std_logic_vector richiedono il link al package use IEEE.std_logic_1164.all; unsigned/signed richiedono il link ai package use IEEE.std_logic_unsigned.all; use IEEE.std_logic_signed.all; use IEEE.std_logic_arith.all;

Operazioni logiche not, and, or, nand, nor, xor operandi std_logic Operatori relazionali 25 = /= uguale diverso > maggiore >= maggiore o uguale < minore <= minore o uguale operandi signed, unsigned OPERAZIONI ARITMETICHE + - * (e.. pagina 39 manuale) somme: Quartus richiede che gli operandi e il risultato siano espressi dallo stesso numero n di bit moltiplicazioni: operandi a n bit, risultato a 2*n bit su operandi di tipo signed o unsigned 26

Example: 4 bit adder 27 The Ripple-Carry Adder 28

Full-Adder Sum i = A i + B i + Cin i = P i + Cin i Cout i =A i B i +Cin i (A i + B i ) = G i + Cin i P i 29 Progetto gerarchico 30

VHDL description of an Half - Adder 31 library IEEE; use IEEE.std_logic_1164.all; entity HA is port ( I1,I2 : in std_logic; SUM, CO : out std_logic); end HA; architecture BEHAVIOR of HA is begin SUM <= (I1 xor I2); CO <= (I1 and I2); end BEHAVIOR; RTL viewer 32 I1 I2 CO~0 CO SUM~0 SUM

Simulazione funzionale 33 Simulazione dopo la sintesi 34 Tp

library IEEE; use IEEE.std_logic_1164.all; Structural description of a Full-Adder entity FA is port ( A,B,CIN : in std_logic; S, COUT : out std_logic); end FA; 35 architecture STRUCTURAL of FA is component HA port ( I1,I2 : in std_logic; SUM, CO : out std_logic); end component; signal S1, C1, C2 : std_logic; dichiarazione del componente HA definzione di segnali interni begin ha1 : HA port map( I1 => B, I2 => CIN, SUM => S1, CO =>C1); istanzia i moduli ha2 : HA port map( I1 => A, I2 => S1, SUM => S, CO => C2); COUT <= C2 xor C1; end STRUCTURAL; Att: nel file.vhd deve esserci la descrizione di tutti I moduli della gerarchia RTL viewer 36 B CIN HA:ha1 I1 CO I2 SUM C1 S1 HA:ha2 I1 CO I2 SUM C2 COUT~0 COUT S A

Simulazione funzionale 37 Simulazione dopo la sintesi 38

Behavioral description of a Full-Adder library IEEE; use IEEE.std_logic_1164.all; 39 entity FA is port ( A,B,CIN : in std_logic; S, COUT : out std_logic); end FA; architecture BEHAVIOR of FA is begin S <= (A xor B) xor CIN; COUT <= (A and B) or (B and CIN) or (A and CIN); end BEHAVIOR; RTL Viewer 40 CIN A COUT~3 COUT~4 COUT COUT~0 B S~1 COUT~1 S

library IEEE; use IEEE.std_logic_1164.all; Structural description of the Adder 41 entity ADDER4 is port ( A, B : in std_logic_vector(3 downto 0); CIN : in std_logic; COUT : out std_logic; S : out std_logic_vector(3 downto 0) ); end ADDER4; architecture STRUCTURAL of ADDER4 is component FA port ( A,B,CIN : in std_logic; S, COUT : out std_logic); end component; signal K : std_logic_vector(4 downto 0); begin adder_loop : for I in 0 to 3 generate fa_i : FA port map ( A => A(I), B => B(I), CIN => K(I), COUT => K(I+1), S => S(I) ); end generate; K(0) <= CIN; COUT <= K(4); end STRUCTURAL; Att: nel file.vhd deve esserci la descrizione di tutti I moduli della gerarchia RTL Viewer 42 FA:\adder_loop:3:fa_I A[3..0] B[3..0] CIN FA:\adder_loop:0:fa_I A COUT B S CIN FA:\adder_loop:1:fa_I A COUT B S CIN FA:\adder_loop:2:fa_I A COUT B S CIN A B CIN COUT S COUT S[3..0]

Simulazione funzionale 43 Simulazione dopo la sintesi 44

library IEEE; use IEEE.std_logic_1164.all; use IEEE.std_logic_arith.all; Behavioral description of the Adder: 1 45 entity ADDER4 is port ( A, B : in unsigned (3 downto 0); CIN : in std_logic; COUT : out std_logic; S : out unsigned(3 downto 0) ); end ADDER4; architecture BEHAVIORAL of ADDER4 is signal K : unsigned (4 downto 0); signal Aint, Bint, Cint : unsigned(4 downto 0); begin Aint <=conv_unsigned(a,5); somme: Quartus richiede che gli operandi e il risultato Bint <=conv_unsigned(b,5); siano rappresentati con lo stesso numero di bit Cint <= conv_unsigned(cin,5); K <= Aint+Bint+Cint; S <= K(3 downto 0); COUT <= K(4); end BEHAVIORAL; RTL Viewer 46 add~0 add~1 A[3..0] B[3..0] 1' h0 -- 1' h0 -- A[4..0] B[4..0] OUT[4..0] 4' h0 -- A[4..0] B[4..0] OUT[4..0] COUT S[3..0] CIN ADDER ADDER

library IEEE; use IEEE.std_logic_1164.all; use IEEE.std_logic_arith.all; entity ADDER4bis is port ( A, B : in unsigned (4 downto 0); CIN : in std_logic; COUT : out std_logic; S : out unsigned(3 downto 0) ); end ADDER4bis; architecture BEHAVIORAL of ADDER4bis is signal K : unsigned (4 downto 0); signal Cint : unsigned(4 downto 0); begin Cint <= conv_unsigned(cin,5); K <= A+B+Cint; S <= K(3 downto 0); COUT <= K(4); Behavioral description of the Adder: 2 end BEHAVIORAL; 47 48 RTL Viewer add~0 add~1 A[4..0] B[4..0] A[4..0] OUT[4..0] B[4..0] ADDER 4' h0 -- A[4..0] B[4..0] OUT[4..0] COUT S[3..0] CIN ADDER