VHDL come strumento di progetto di circuiti digitali Antonio Deledda Corso di Elettronica dei...

38
VHDL come strumento di VHDL come strumento di progetto di circuiti progetto di circuiti digitali digitali Antonio Deledda Antonio Deledda Corso di Elettronica dei Sistemi Corso di Elettronica dei Sistemi Digitali LS Digitali LS AA 2005-2006 AA 2005-2006

Transcript of VHDL come strumento di progetto di circuiti digitali Antonio Deledda Corso di Elettronica dei...

Page 1: VHDL come strumento di progetto di circuiti digitali Antonio Deledda Corso di Elettronica dei Sistemi Digitali LS AA 2005-2006.

VHDL come strumento di VHDL come strumento di progetto di circuiti digitali progetto di circuiti digitali

Antonio DeleddaAntonio DeleddaCorso di Elettronica dei Sistemi Digitali LSCorso di Elettronica dei Sistemi Digitali LS

AA 2005-2006AA 2005-2006

Page 2: VHDL come strumento di progetto di circuiti digitali Antonio Deledda Corso di Elettronica dei Sistemi Digitali LS AA 2005-2006.

[email protected]@deis.unibo.it Tel. Interno 0512093829Tel. Interno 0512093829 Centro ARCES, Viale Pepoli 3/2Centro ARCES, Viale Pepoli 3/2

http://www.micro.deis.unibo.it/cgi-http://www.micro.deis.unibo.it/cgi-bin/dida?~deledda/www/Dida01bin/dida?~deledda/www/Dida01

Page 3: VHDL come strumento di progetto di circuiti digitali Antonio Deledda Corso di Elettronica dei Sistemi Digitali LS AA 2005-2006.

Circuiti Integrati DigitaliCircuiti Integrati Digitali

ALGORITMOALGORITMOX(t) Y(t)

ASICASIC ArchitettureArchitetture

ProgrammabiliProgrammabili

(P, DSP)

FPGAFPGA

Page 4: VHDL come strumento di progetto di circuiti digitali Antonio Deledda Corso di Elettronica dei Sistemi Digitali LS AA 2005-2006.

Flusso di progetto circuiti Flusso di progetto circuiti digitali digitali (anni 80/90)(anni 80/90)

1) Definizione Algoritmica : y=-x;

2) Schematic Entry

3) Custom Layout (place & route)

4) Parasitic extraction & Backannotation

Page 5: VHDL come strumento di progetto di circuiti digitali Antonio Deledda Corso di Elettronica dei Sistemi Digitali LS AA 2005-2006.

Il Design Productivity GapIl Design Productivity Gap

Lo sviluppo della tecnologia offre una quantita’ di risorse di

Calcolo che supera la capacita’ del progettista di utilizzarle.

Page 6: VHDL come strumento di progetto di circuiti digitali Antonio Deledda Corso di Elettronica dei Sistemi Digitali LS AA 2005-2006.

Tecnologia Standard CellsTecnologia Standard Cells

Per velocizzare il tempo di progetto (time-to-market) di un prodotto

vengono realizzano librerie formate da celle logiche elementari

Page 7: VHDL come strumento di progetto di circuiti digitali Antonio Deledda Corso di Elettronica dei Sistemi Digitali LS AA 2005-2006.

Libreria Standard cellsLibreria Standard cells

Esempio: Esempio: LibreriaLibreria AMS 0.35 AMS 0.35 mm (Austria Micro (Austria Micro Systems)Systems)

IO PadsIO Pads 10 Inout 12 Inputs 10 10 Inout 12 Inputs 10 Outputs 6 PowerOutputs 6 Power

Celle Celle CombinatorieCombinatorie

5 Inverters 14 Buffers 8 5 Inverters 14 Buffers 8 3state buffers 21 and 21 or 3state buffers 21 and 21 or 12 xor 21 nand 21 nor 12 xor 21 nand 21 nor

6 mux 28 Blocchi misti 6 mux 28 Blocchi misti

Celle SequenzialiCelle Sequenziali 8 FF JK 32 FF D 10 Latches8 FF JK 32 FF D 10 Latches

270 Celle Elementari:270 Celle Elementari:

Page 8: VHDL come strumento di progetto di circuiti digitali Antonio Deledda Corso di Elettronica dei Sistemi Digitali LS AA 2005-2006.

Libreria Standard Cells: Libreria Standard Cells: Cella AND2Cella AND2

cell(AN2) { area : 0.64 cell_footprint : "AND2" pin (A B) { direction : input fanout_load : 5; capacitance : 0.05 } pin(Q) { direction : output max_fanout : 95; max_capacitance : 0.9494 function : "(A*B)“ } timing() { intrinsic_rise : 0.22 intrinsic_fall : 0.12 rise_resistance : 3.16 fall_resistance : 2.00 slope_rise : 0.00 slope_fall : 0.00 related_pin : "A B"}}

Page 9: VHDL come strumento di progetto di circuiti digitali Antonio Deledda Corso di Elettronica dei Sistemi Digitali LS AA 2005-2006.

• Linguaggi standard internazionale per la descrizione di circuiti integrati digitali

• Strumento convenzionale per il progetto e per la documentazione di blocchi digitali

• Permettono la rappresentazione di istanze hardware da system level fino a gate level

• Linguaggi HDL piu’ comuni: VHDL , Verilog (Standard IEEE)

HDLHDL

Hardware Description Languages

Page 10: VHDL come strumento di progetto di circuiti digitali Antonio Deledda Corso di Elettronica dei Sistemi Digitali LS AA 2005-2006.

• Nato nel 1985, presso il dipartimento di difesa degli USA

• Reso pubblico nel 1987

• Formalmente ridefinito e reso standard IEEE nel 1993

• Tuttora piu’ sviluppato in Europa, mentre Verilog e’ considerato standard di uso comune negli USA

VHDLVHDL

Very High speed circuits Hardware Description Language

Page 11: VHDL come strumento di progetto di circuiti digitali Antonio Deledda Corso di Elettronica dei Sistemi Digitali LS AA 2005-2006.

Stili di Descrizione Stili di Descrizione HardwareHardware

• BEHAVIORALBEHAVIORAL

• Register Transfer LevelRegister Transfer Level

• Gate Level Gate Level

Tech

nolo

gy D

ep

en

dan

ce

Page 12: VHDL come strumento di progetto di circuiti digitali Antonio Deledda Corso di Elettronica dei Sistemi Digitali LS AA 2005-2006.

VHDL: ApplicazioniVHDL: Applicazioni

1)1) SIMULAZIONE LOGICASIMULAZIONE LOGICA

2)2) SYSTEM LEVEL DESCRIPTIONSYSTEM LEVEL DESCRIPTION

3)3) SINTESI LOGICASINTESI LOGICA

Page 13: VHDL come strumento di progetto di circuiti digitali Antonio Deledda Corso di Elettronica dei Sistemi Digitali LS AA 2005-2006.

Sintesi LogicaSintesi Logica

“ SYNTHESIS => The process of deriving EFFICIENT results from CLEAR specifications “Il processo AUTOMATIZZATO di sintesi logica

trasforma una descrizione HDL (Behavioral) in una NETLIST di gates elementari che mantengono la

stessa funzionalita’ LA sintesi logica puo’ essere eseguita su un SOTTOINSIEME RTL del

linguaggio VHDL detto “VHDL Sintetizzabile”. Molti costrutti VHDL NON SONO SINTETIZZABILI.

Per avere sintesi efficiente, gli elementi sequenziali (Registri, F/Fs) devono essere descritti ESPLICITAMENTE.

Inoltre, i meccanismi di sintesi NON SONO STANDARDIZZATI, quindi diversi strumenti (software) di sintesi possono dare risultati anche

MOLTO diversi.Infine, I risultati della Sintesi dipendono FORTEMENTE dalla libreria di

GATES ELEMENTARI (Standard Cells) su cui e’ eseguita

Page 14: VHDL come strumento di progetto di circuiti digitali Antonio Deledda Corso di Elettronica dei Sistemi Digitali LS AA 2005-2006.

Sintesi logica: Da RTL ai Sintesi logica: Da RTL ai GatesGates

Codice RTL: rigorosa separazione tra logica Combinatoria (sintetizzabile) e logica sequenziale

SINTESI LOGICA:SINTESI LOGICA: Il software interpreta la funzionalita’ del circuito e la realizza

attraverso celle elementari (STD_CELLS)

-> Mappe di Karnaugh Gli elementi sequenziali (F/F) del circuito non vengono

interpretati ma instanziati esplicitamente!

Page 15: VHDL come strumento di progetto di circuiti digitali Antonio Deledda Corso di Elettronica dei Sistemi Digitali LS AA 2005-2006.

Sintesi logica: Timing DrivenSintesi logica: Timing Driven

Il processo di sintesi e’ dettato dalle temporizzazioni, si tenta di

minimizzare il piu’ lungo percorso combinatorio (critical path)

interno al design

Page 16: VHDL come strumento di progetto di circuiti digitali Antonio Deledda Corso di Elettronica dei Sistemi Digitali LS AA 2005-2006.

Flusso di Sviluppo di circuiti digitali Flusso di Sviluppo di circuiti digitali : FRONT END: FRONT END

1) Definizione Algoritmica (linguaggio C): q=a * b + c;

2) Descrizione VHDL del circuito: q <= a and b or c;

3) Simulazione Funzionale

4) Sintesi Logica

5) Simulazione Post-Sintesi

Page 17: VHDL come strumento di progetto di circuiti digitali Antonio Deledda Corso di Elettronica dei Sistemi Digitali LS AA 2005-2006.

Flusso di Sviluppo di circuiti Flusso di Sviluppo di circuiti digitali: BACK ENDdigitali: BACK END

6) Floorplanning

7) Place & Route

8) Parasitic extraction & backannotation

Page 18: VHDL come strumento di progetto di circuiti digitali Antonio Deledda Corso di Elettronica dei Sistemi Digitali LS AA 2005-2006.

Entity e ArchitectureEntity e Architecture

ENTITY

• ENTITY= BLACK BOX, “scatola vuotache descrive l’interfaccia I/O del circuito

• ARCHITECTURE = Descrizione funzionaledel comportamento del circuito. Puo’ essere a diversi livelli,e puo’ essere sintetizzabile o meno

IN OUT

INOUT

Ad ogni entity possono corrispondere molteplici architectures, a seconda del tipo e del livello di descrizione voluto: es, la sintesi trasforma una architecture RTL in una a gate-level, sempre

riferita alla stessa entity

Arch 1 (Beh)

Arch 3 (Gate L.)

Arch 2 (RTL)

Page 19: VHDL come strumento di progetto di circuiti digitali Antonio Deledda Corso di Elettronica dei Sistemi Digitali LS AA 2005-2006.

EsempioEsempio

entity NAND is Port ( a , b : in bit; z : out bit )

architecture behavioral of NAND issignal s : bit;begin s <= a and b; z <= not s;end NAND;

Page 20: VHDL come strumento di progetto di circuiti digitali Antonio Deledda Corso di Elettronica dei Sistemi Digitali LS AA 2005-2006.

Esempio (bis)Esempio (bis)

entity NAND is Port ( a , b : in bit; z : out bit

);end NAND

architecture behavioral of NAND issignal s : bit;begin s <= a and b; z <= not s;end behavioral;

Page 21: VHDL come strumento di progetto di circuiti digitali Antonio Deledda Corso di Elettronica dei Sistemi Digitali LS AA 2005-2006.

VHDL : CostruttiVHDL : Costrutti

• STATEMENTS: Costrutto che rappresenta un istanza circuitale.Benche’ vengano SIMULATI SEQUENZIALMENTE gli statements vengono ESEGUITI SIMULTANEAMENTE.

Es: s <= a and b;

Es: z <= out s;

Page 22: VHDL come strumento di progetto di circuiti digitali Antonio Deledda Corso di Elettronica dei Sistemi Digitali LS AA 2005-2006.

VHDL: CostruttiVHDL: Costrutti• PROCESSI: Un processo rappresenta uno “statement espanso” , ovvero una operazione non elementare composta da un insieme di operazioni elementari che si suppongono eseguite nello stesso istante.All’interno di un processo l’ esecuzione e’ SEQUENZIALE, e possono essere definite delle variabili.SOLO all’interno di processi possono essere inserite espressioni di controllo condizionali (IF, CASE, WAIT, etc.)

process(a,b)variable c,d: bit_vector(0 to 3);begin c := a + b; d := c and “011” z <= d;end process;

Page 23: VHDL come strumento di progetto di circuiti digitali Antonio Deledda Corso di Elettronica dei Sistemi Digitali LS AA 2005-2006.

Sensitivity ListSensitivity List

SENSITIVITY LIST : L’uscita di un processo viene ricalcolata ogni volta si ha un evento (cambiamento di valore) su uno dei segnali

appartenenti alla sensitivity list

In VHDL sintetizzabile, I processi sono puramente combinatori e tutti gli ingressi del processo devono

appartenere alla Sensitivity list.

Page 24: VHDL come strumento di progetto di circuiti digitali Antonio Deledda Corso di Elettronica dei Sistemi Digitali LS AA 2005-2006.

Esempio (Half_Adder Esempio (Half_Adder behavioralbehavioral))

entity Half_Adder is Port ( a , b , enable : in bit; out, carry : out bit

);end Half_Adder

architecture behavioral of Half_Adder isbegin process(a,b,enable) begin

if(enable = ‘1’) out <= a xor b; carry <= a and b;

else out <= ‘0’; carry <= ‘0’;end if;

end process;end behavioral;

Page 25: VHDL come strumento di progetto di circuiti digitali Antonio Deledda Corso di Elettronica dei Sistemi Digitali LS AA 2005-2006.

VHDL : CostruttiVHDL : Costrutti

• INSTANZIAZIONE GERARCHICA: E’ possibile istanziare in un dispositivo descritto in VHDL componenti circuitali di libreria descritti separatamente,purche’ la loro interfaccia di I/O sia descritta, come component, nella architecture

entity Half_Adder is Port ( a , b , enable : in bit; out, carry : out bit

);end Half_Adder

Page 26: VHDL come strumento di progetto di circuiti digitali Antonio Deledda Corso di Elettronica dei Sistemi Digitali LS AA 2005-2006.

Esempio (Half_Adder Esempio (Half_Adder strutturalestrutturale))

architecture structural of Half_Adder iscomponent lib_and3 port ( in1,in2,in3 : in bit; Z : out bit ); end componentcomponent lib_and2 port ( in1,in2 : in bit; Z : out bit ); end componentcomponent lib_xor2 port ( in1,in2 : in bit; Z : out bit ); end componentsignal s: bit;Begin My_and3 : lib_and3 port map

(in1 => a, in2 => b, in3 =>enable, Z => out); My_and2 : lib_and2 port map (in1 => enable, in2 => s, Z => carry); My_xor2 : lib_xor2 port map (in1 => a, in2 => b, Z => s);end structural;

Page 27: VHDL come strumento di progetto di circuiti digitali Antonio Deledda Corso di Elettronica dei Sistemi Digitali LS AA 2005-2006.

Tipi di datoTipi di dato

Nel VHDL le dichiarazioni di porte, segnali, e Nel VHDL le dichiarazioni di porte, segnali, e variabili devono specificare il loro tipo o variabili devono specificare il loro tipo o sottotiposottotipo

TypesTypes– ScalarScalar: : (*) = Sintetizzabile

Integer (*)Integer (*) RealReal CharacterCharacter BooleanBoolean Bit (*)Bit (*) Std_Ulogic & Std_Logic (std_logic_1164 library) (*)Std_Ulogic & Std_Logic (std_logic_1164 library) (*) PhysicalPhysical EnumeratedEnumerated

– CompositeComposite ArrayArray RecordRecord Std_Ulogic_vector & Std_Logic_vector (std_logic_1164 library) (*)Std_Ulogic_vector & Std_Logic_vector (std_logic_1164 library) (*)

– Access & File typesAccess & File types

Page 28: VHDL come strumento di progetto di circuiti digitali Antonio Deledda Corso di Elettronica dei Sistemi Digitali LS AA 2005-2006.

Tipi scalari (Integer)Tipi scalari (Integer)

Rappresentazione a 32 bitRappresentazione a 32 bitrange(standard): range(standard): -2^31+1 to 2^31-1-2^31+1 to 2^31-1

Esempio:Esempio:

architecture behavioral of int_type isBegin process(..) variable a : INTEGER; Begin a:= 1; a:=1.0; -- not legal end processend behavioral;

Page 29: VHDL come strumento di progetto di circuiti digitali Antonio Deledda Corso di Elettronica dei Sistemi Digitali LS AA 2005-2006.

Tipi scalari (Real)Tipi scalari (Real)

Single precision (32 bit)Single precision (32 bit) Double precision (64 bit)Double precision (64 bit) Esempio:Esempio:

architecture behavioral of Real_type isBegin process(..) variable a : REAL; Begin a:= 1.3; a:= -7.5; a:=1; -- not legal end processend behavioral;

Page 30: VHDL come strumento di progetto di circuiti digitali Antonio Deledda Corso di Elettronica dei Sistemi Digitali LS AA 2005-2006.

Tipi scalari (Enumerated)Tipi scalari (Enumerated)

Lista di possibili valori specificati Lista di possibili valori specificati dall’utentedall’utente

Esempio:Esempio:

architecture behavioral of enum_type isTYPE binary IS (ON, OFF);Begin process(..) variable a,b : binary; Begin a:= ON; b:= OFF; end processend behavioral;

Page 31: VHDL come strumento di progetto di circuiti digitali Antonio Deledda Corso di Elettronica dei Sistemi Digitali LS AA 2005-2006.

Tipi compositi (Array)Tipi compositi (Array) Utilizzato per ragruppare elementi dello stesso Utilizzato per ragruppare elementi dello stesso

tipo in un singolo oggetto VHDLtipo in un singolo oggetto VHDL EsempioEsempio

architecture test of array_type_example is…….TYPE shift_mem IS ARRAY(0 to 7) OF INTEGER;Begin process(DATA_IN, ……) variable my_shift_mem : shift_mem; Begin …… DATA_OUT <= my_shift_mem(7);

for I in 7 downto 1 loopmy_shift_mem(I) := my_shift_mem(I-1)end loop;

my_shift_mem(0) := DATA_IN; end processend test;

Page 32: VHDL come strumento di progetto di circuiti digitali Antonio Deledda Corso di Elettronica dei Sistemi Digitali LS AA 2005-2006.

Tipi compositi (Record)Tipi compositi (Record) Utilizzato per ragruppare elementi dello stesso Utilizzato per ragruppare elementi dello stesso

tipo in un singolo oggetto VHDLtipo in un singolo oggetto VHDL Gli elementi sono referenziati mediante I nomi dei Gli elementi sono referenziati mediante I nomi dei

gruppigruppi architecture test of rec_type_example is……TYPE binary IS (ON, OFF);TYPE switch_info IS RECORD status : BINARY; IDnumber : INTEGER; END RECORD;Begin process(DATA_IN, ……) variable switch: switch_info; Begin …… switch.status := ON; switch.IDnumber := 30; ….. end processend test;

Page 33: VHDL come strumento di progetto di circuiti digitali Antonio Deledda Corso di Elettronica dei Sistemi Digitali LS AA 2005-2006.

IEEE Std_logic_1164IEEE Std_logic_1164Si tratta di un package di libreria, SINTETIZZABILE, che permette di

definire segnali (o variabili, interne a processi) che descrivano il comportamento elettrico del segnale stesso

use ieee.std_logic_1164.all;

[…..]

entity adder isport ( a,b : in std_logic_vector(7 downto 0); z : out std_logic_vector(7 downto 0); ovf : out std_logic );

00 Logic 0Logic 0

11 Logic 1Logic 1

XX ConflictConflict

UU UnknownUnknown

ZZ Float Float (3state)(3state)

HH Weak 1Weak 1

LL Weak 0Weak 0

-- Don’t CareDon’t Care

Page 34: VHDL come strumento di progetto di circuiti digitali Antonio Deledda Corso di Elettronica dei Sistemi Digitali LS AA 2005-2006.

Operandi FondamentaliOperandi Fondamentali

In VHDL un operando fondamentale puo’ riferirsi un tipo predefinito,

a un tipo strutturato (Array o Struct), o ad una tipologia “custom” definita in una libreria, sia essa dell’utente o di

sistema.

Gli operandi possono appartenere a tre categorie fondamentali

PORTE : Ovvero, gli elementi di interfaccia verso l’esterno del circuitoSEGNALI : Elementi di comunicazione interni al circuito tra processi, statements e componentsVARIABILI : Rappresentano operatori temporanei, sono solo INTERNE A PROCESSI

Page 35: VHDL come strumento di progetto di circuiti digitali Antonio Deledda Corso di Elettronica dei Sistemi Digitali LS AA 2005-2006.

Operatori FondamentaliOperatori Fondamentali

<=<= AssegnamentoAssegnamento

---- CommentoCommento

and, or, xor, notand, or, xor, not Operatori LogiciOperatori Logici

+, -, *+, -, * Op. matematici Op. matematici sintetizzabilisintetizzabili

/, mod, rem, /, mod, rem, abs, **abs, **

Op. matematici non Op. matematici non sintetizzabilisintetizzabili

>, >=, <, <=,>, >=, <, <=, Operatori relazionaliOperatori relazionali

Page 36: VHDL come strumento di progetto di circuiti digitali Antonio Deledda Corso di Elettronica dei Sistemi Digitali LS AA 2005-2006.

Alcune RegoleAlcune Regole

Un Segnale non puo’ essere usato due volte come destinazione (corto circuito) a meno che cio’ non venga fatto all’interno di un processo

Una porta di uscita non puo’ essere usata come sorgente (ingresso) da statement / processo / blocco gerarchico

I costrutti IF/LOOP, intrinsecamente sequenziali, possono essere usati solo all’interno di processi

LA ESECUZIONE DI DIVERSI STATEMENT / PROCESSI / COMPONENTS E’ SEMPRE CONCORRENTE, l’ordine con cui sono scritti NON HA ALCUNA IMPORTANZA

Page 37: VHDL come strumento di progetto di circuiti digitali Antonio Deledda Corso di Elettronica dei Sistemi Digitali LS AA 2005-2006.

AttributesAttributesATTRIBUTES => Funzioni di simulazione che sono “collegate” al comportamento di segnali, tipi o array. Possono essere anche definiti dall’utente

S’eventS’event Vero in caso di eventi su Vero in caso di eventi su SS

S’activeS’active Vero in caso di Vero in caso di transactions su Stransactions su S

S’drivingS’driving Vero se il processo Vero se il processo corrente pilota Scorrente pilota S

S’stable(t)S’stable(t) Vero se non ci sono Vero se non ci sono eventi in S nel tempo teventi in S nel tempo t

T’low , T’highT’low , T’high Valore maggiore/minore Valore maggiore/minore ЄЄ T T

Page 38: VHDL come strumento di progetto di circuiti digitali Antonio Deledda Corso di Elettronica dei Sistemi Digitali LS AA 2005-2006.

Flip Flop con reset e enable Flip Flop con reset e enable Entity FF is port ( clk, enable, reset, D : in BIT; Q : out BIT );End FF;

Architecture behavioral of FF isbeginprocess(CLK, reset) Begin if reset = ‘1’ then Q <= ‘0’; elsif clk’event and clk = ‘1’ then if enable = ‘1’ then Q <= D; end if; end if; end process;end behavioral;