VHDL come strumento CAD allinterno di flussi di

  • Slides: 23
Download presentation
VHDL come strumento CAD all’interno di flussi di progetto per dispositivi Digitali Fabio Campi

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

VHDL Very High speed circuits Hardware Description Language • Nato nel 1987, formalmente ridefinito

VHDL Very High speed circuits Hardware Description Language • 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 D. E. I. S. Universita’ di Bologna

VHDL vs C Linguaggio C: Linguaggio di programmazione software: genera una esecuzione SEQUENZIALE di

VHDL vs C Linguaggio C: Linguaggio di programmazione software: genera una esecuzione SEQUENZIALE di una serie di istruzioni. VHDL: Tool CAD di progettazione hardware: genera una instanziazione (mapping) di risorse di calcolo CONCORRENTI. D. E. I. S. Universita’ di Bologna

Stili di Descrizione Hardware • Register Transfer Level • Gate Level Technology Dependance •

Stili di Descrizione Hardware • Register Transfer Level • Gate Level Technology Dependance • BEHAVIORAL D. E. I. S. Universita’ di Bologna

VHDL: Applicazioni 1) SIMULAZIONE LOGICA 2) SYSTEM PROTOTYPING 3) SINTESI LOGICA D. E. I.

VHDL: Applicazioni 1) SIMULAZIONE LOGICA 2) SYSTEM PROTOTYPING 3) SINTESI LOGICA D. E. I. S. Universita’ di Bologna

Flusso di progetto circuiti digitali (anni 80/90) 0) Definizione Algoritmica (linguaggio C): y=-x; 1)

Flusso di progetto circuiti digitali (anni 80/90) 0) Definizione Algoritmica (linguaggio C): y=-x; 1) Schematic Entry 2) Custom Layout (place & route) 3) Parasitic extraction & Backannotation D. E. I. S. Universita’ di Bologna

Il Design Productivity Gap Lo sviluppo della tecnologia offre una quantita’ di risorse di

Il 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 D. E. I. S. Universita’ di Bologna

Tecnologia Standard Cells La Sintesi Logica esegue un “mapping” della funzionalita’ descritta da Un

Tecnologia 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 D. E. I. S. Universita’ di Bologna

Flusso di Sviluppo di circuiti digitali : FRONT END 0) Definizione Algoritmica (linguaggio C):

Flusso 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 D. E. I. S. Universita’ di Bologna

Flusso di Sviluppo di circuiti digitali: BACK END 5) Floorplanning 6) Place & Route

Flusso di Sviluppo di circuiti digitali: BACK END 5) Floorplanning 6) Place & Route 7) Parasitic extraction & backannotation D. E. I. S. Universita’ di Bologna

Dispositivi FPGA = Field Programmable Gate Array (Programmable Logic Device) La Sintesi Logica esegue

Dispositivi FPGA = Field Programmable Gate Array (Programmable Logic Device) 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 D. E. I. S. Universita’ di Bologna

Sviluppo di circuiti digitalisu FPGA : FRONT END 0) Definizione Algoritmica (linguaggio C): q=a

Sviluppo 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 D. E. I. S. Universita’ di Bologna

Sviluppo di circuiti digitali su FPGA: BACK END 6) Place & Route 6) Post-route

Sviluppo di circuiti digitali su FPGA: BACK END 6) Place & Route 6) Post-route simulation 7) FPGA device Programming D. E. I. S. Universita’ di Bologna

REGOLE di Scrittura di VHDL rivolto a sintesi logica 1) Codice RTL: rigorosa separazione

REGOLE di Scrittura di VHDL rivolto a sintesi 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; D. E. I. S. Universita’ di Bologna

REGOLE di Scrittura di VHDL rivolto a sintesi logica 2) Processi combinatori: Tutti I

REGOLE di Scrittura di VHDL rivolto a sintesi logica 2) Processi combinatori: Tutti I segnali utilizzati come ingressi devono apparire nella sensitivity list VHDL Errato: Process(a) Begin C <= f(a, b); VHDL corretto: Process(a) Begin C <= f(a, b); End process; D. E. I. S. Universita’ di Bologna

REGOLE di Scrittura di VHDL rivolto a sintesi logica 3) Scelte condizionate(Multiplexers): In ogni

REGOLE di Scrittura di VHDL rivolto a sintesi logica 3) 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=in 1; elsif sel=“ 01” then y=in 2; end if; VHDL corretto if sel=“ 00” then y=in 1; elsif sel=“ 01” then y=in 2; else y<= COSTANTE; end if; D. E. I. S. Universita’ di Bologna

REGOLE di Scrittura di VHDL rivolto a sintesi logica 4) Tipi di segnale e

REGOLE di Scrittura di VHDL rivolto a sintesi 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 VHDL ottimizzato signal a, b, c : integer; signal a, b, c : integer RANGE 0 to 255; C <=a+b; [meglio std_logic_vector(7 downto 0) ] C <=a+b; 32 -bit adder (108 l. c. ) 8 -bit adder (14 l. c. ) D. E. I. S. Universita’ di Bologna

REGOLE di Scrittura di VHDL rivolto a sintesi logica 5) Uso moderato di generic

REGOLE di Scrittura di VHDL rivolto a sintesi 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 10 adder a 32 bit For I in 0 to 9 generate (1080 l. c. ) Q(I)<=a(I)+b; End generate; D. E. I. S. Universita’ di Bologna

REGOLE di Scrittura di VHDL rivolto a sintesi logica 6) Non e’ possibile utilizzare

REGOLE di Scrittura di VHDL rivolto a sintesi 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) D. E. I. S. Universita’ di Bologna

REGOLE di Scrittura di VHDL rivolto a sintesi logica 7) Non e’ possibile avere

REGOLE di Scrittura di VHDL rivolto a sintesi 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; D. E. I. S. Universita’ di Bologna

REGOLE di Scrittura di VHDL rivolto a sintesi logica 8) Macchine a stati finiti:

REGOLE di Scrittura di VHDL rivolto a sintesi 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), x(i-1), …) Y(i) <=f(x(i), state(i)) State(i) <= f(x(i), state(i-1)) D. E. I. S. Universita’ di Bologna

REGOLE di Scrittura di VHDL rivolto a sintesi logica Process(clk) Begin if clk’event and

REGOLE di Scrittura di VHDL rivolto a sintesi logica Process(clk) Begin if clk’event and clk=‘ 1’ then cs<=ns; End process; Process(inputs, cs) Begin case state is when case 0=> out 1<= if in 1= then ns<= else ns<= end if; …. when others => …… D. E. I. S. Universita’ di Bologna

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

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