23
D.E.I.S. Universita’ di Bologna VHDL come strumento CAD VHDL come strumento CAD all’interno di flussi di all’interno di flussi di progetto per dispositivi progetto per dispositivi Digitali Digitali Fabio Campi Corsi di Architettura dei Sistemi Integrati/ Progetto di Sistemi Elettronici

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

Embed Size (px)

Citation preview

Page 1: 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

D.E.I.S.Universita’ di Bologna

VHDL come strumento CAD all’interno di VHDL come strumento CAD all’interno di flussi di progetto per dispositivi Digitaliflussi di progetto per dispositivi Digitali

Fabio CampiCorsi di Architettura dei Sistemi

Integrati/ Progetto di Sistemi Elettronici

Page 2: 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

D.E.I.S.Universita’ di Bologna

• Nato nel 1987, formalmente ridefinito nel 1993

• Linguaggio standard internazionale per la descrizione di circuiti integrati digitali

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

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

VHDLVHDL

Very High speed circuits Hardware Description Language

Page 3: 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

D.E.I.S.Universita’ di Bologna

VHDL vs CVHDL vs C

Linguaggio C:Linguaggio C:Linguaggio di programmazione software: genera

una esecuzione SEQUENZIALE di una serie di istruzioni.

VHDL:VHDL:Tool CAD di progettazione hardware: genera una

instanziazione (mapping) di risorse di calcolo CONCORRENTI.

Page 4: 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

D.E.I.S.Universita’ di Bologna

Stili di Descrizione HardwareStili di Descrizione Hardware

• BEHAVIORALBEHAVIORAL

• Register Transfer LevelRegister Transfer Level

• Gate Level Gate Level

Tech

nolo

gy D

ep

en

dan

ce

Page 5: 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

D.E.I.S.Universita’ di Bologna

VHDL: ApplicazioniVHDL: Applicazioni

1)1) SIMULAZIONE LOGICASIMULAZIONE LOGICA

2)2) SYSTEM PROTOTYPINGSYSTEM PROTOTYPING

3)3) SINTESI LOGICASINTESI LOGICA

Page 6: 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

D.E.I.S.Universita’ di Bologna

Flusso di progetto circuiti digitali Flusso di progetto circuiti digitali (anni (anni

80/90)80/90) 0) Definizione Algoritmica (linguaggio C): y=-x;

1) Schematic Entry

2) Custom Layout (place & route)

3) Parasitic extraction & Backannotation

Page 7: 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

D.E.I.S.Universita’ di Bologna

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:

Nasce il System-on-chip

Page 8: 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

D.E.I.S.Universita’ di Bologna

Tecnologia Standard CellsTecnologia Standard Cells

La Sintesi Logica esegue un “mapping” della funzionalita’ descritta da

Un modello VHDL Behavioral o Register Transfer Level in un modello

Gate level basato su una libreria di celle elementari predefinite

Page 9: 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

D.E.I.S.Universita’ di Bologna

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

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

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

2) Simulazione Funzionale

3) Sintesi Logica

4) Simulazione Post-Sintesi

Page 10: 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

D.E.I.S.Universita’ di Bologna

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

5) Floorplanning

6) Place & Route

7) Parasitic extraction & backannotation

Page 11: 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

D.E.I.S.Universita’ di Bologna

Dispositivi FPGADispositivi FPGA

La Sintesi Logica esegue un “mapping” della funzionalita’ descritta da

Un modello VHDL Behavioral o Register Transfer Level in un modello

Gate level basato sui blocchi di calcolo elementari offerti dalla FPGA

FPGA = FPGA = FField ield PProgrammable rogrammable GGate ate AArrayrray

(Programmable Logic Device)

Page 12: 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

D.E.I.S.Universita’ di Bologna

Sviluppo di circuiti digitalisu FPGA : FRONT ENDSviluppo di circuiti digitalisu FPGA : FRONT END

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

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

2) Simulazione Funzionale

3) Sintesi Logica

Page 13: 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

D.E.I.S.Universita’ di Bologna

Sviluppo di circuiti digitali su FPGA: BACK ENDSviluppo di circuiti digitali su FPGA: BACK END

6) Place & Route

7) FPGA device Programming

6) Post-route simulation

Page 14: 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

D.E.I.S.Universita’ di Bologna

REGOLE di ScritturaREGOLE di Scrittura di VHDL rivolto a di VHDL rivolto a sintesi logicasintesi logica

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

Processo Sequenziale:

Process(clk,reset)

Begin

if reset=‘1’ then q<=‘0’;

else if clk’event and clk=‘1’ then q<=d;

End process;

Page 15: 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

D.E.I.S.Universita’ di Bologna

REGOLE di Scrittura REGOLE di Scrittura di VHDL rivolto a di VHDL rivolto a sintesi logicasintesi logica

2) Processi combinatori: Tutti I segnali utilizzati come ingressi devono apparire nella sensitivity list

VHDL Errato:Process(a)Begin C <= f(a,b);

End process;

VHDL corretto:Process(a)Begin C <= f(a,b);

End process;

Page 16: 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

D.E.I.S.Universita’ di Bologna

REGOLE di Scrittura REGOLE di Scrittura di VHDL rivolto a di VHDL rivolto a sintesi logicasintesi logica3) Scelte condizionate(Multiplexers): In ogni caso in cui (esplicitamente o implicitamente) l’assegnamento di un segnale e’ condizionato ad un selettore, e’ necessario coprire con valori legali del segnali d’uscita tutti i casi della condizione possibili

VHDL Errato:if sel=“00” then y=in1; elsif sel=“01” then y=in2; end if;

VHDL correttoif sel=“00” then y=in1; elsif sel=“01” then y=in2; else y<= COSTANTE; end if;

Page 17: 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

D.E.I.S.Universita’ di Bologna

REGOLE di Scrittura REGOLE di Scrittura di VHDL rivolto a di VHDL rivolto a sintesi logicasintesi logica

4) Tipi di segnale e Bus Width PESATE: Un intero e’ inteso come numero aritmetico a 32 bit, il che puo’ portare a ridondanza nella mappatura hardware:E’ conveniente usare data types di natura “FISICA” (std_logic_vector, signed/unsigned) per avere controllo dell’hw instanziato

VHDL non ottimizzato

signal a,b,c :integer;

C <=a+b;

VHDL ottimizzato

signal a,b,c :integer RANGE 0 to 255;

[meglio std_logic_vector(7 downto 0) ]

C <=a+b; 32-bit adder (108 l.c.) 8-bit adder (14 l.c.)

Page 18: 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

D.E.I.S.Universita’ di Bologna

REGOLE di Scrittura REGOLE di Scrittura di VHDL rivolto a di VHDL rivolto a sintesi logicasintesi logica

5) Uso moderato di generic FOR:Un loop software comporta la esecuzione ripetuta della stessa Routine. La elaborazione hardware e’Concorrente, quindi un ciclo causa la istanziazione ripetuta di logica,Portando ad un forte utilizzo di risorse

Signal b :integer;

Signal a :array(o to 9) of integer

For I in 0 to 9 generate

Q(I)<=a(I)+b;

End generate;

10 adder a 32 bit

(1080 l.c.)

Page 19: 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

D.E.I.S.Universita’ di Bologna

REGOLE di Scrittura REGOLE di Scrittura di VHDL rivolto a di VHDL rivolto a sintesi logicasintesi logica

6) Non e’ possibile utilizzare costrutti per lo scheduling della simulazione. Il controllo “temporale” della simulazione e’ determinata dalla analisi dei ritardi (Timing analysis) estratti dalla sintesi, dal layout o dal routing su FPGA)

Page 20: 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

D.E.I.S.Universita’ di Bologna

REGOLE di Scrittura REGOLE di Scrittura di VHDL rivolto a di VHDL rivolto a sintesi logicasintesi logica

7) Non e’ possibile avere diversi processi che insistano sullo stesso segnale o autoassegnamenti di segnale: cio’ porterebbe a corto circuito elettrico.

a<=x;……a<=y;

Cont <= cont +1;

Page 21: 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

D.E.I.S.Universita’ di Bologna

REGOLE di Scrittura REGOLE di Scrittura di VHDL rivolto a di VHDL rivolto a sintesi logicasintesi logica

8) Macchine a stati finiti: Si definisce FSM un processo non combinatorio in cui l’uscita dipende dalla evoluzione temporale dei segnali di ingresso.

Y(i) <=f(x(i),state(i))

State(i) <= f(x(i),state(i-1))Y(i)=f(x(i),x(i-1),…)

Page 22: 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

D.E.I.S.Universita’ di Bologna

REGOLE di Scrittura REGOLE di Scrittura di VHDL rivolto a di VHDL rivolto a sintesi logicasintesi logica

Process(clk)Begin if clk’event and clk=‘1’ then cs<=ns;End process;Process(inputs,cs)Begin case state is when case0=> out1<= if in1= then ns<= else ns<= end if; …. when others =>……

Page 23: 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

D.E.I.S.Universita’ di Bologna