Thesis Redaelli Sacchi Slide IT
Transcript of Thesis Redaelli Sacchi Slide IT
Francesco Redaelli - Davide SacchiFrancesco Redaelli - Davide Sacchi
Politecnico di MilanoPolitecnico di Milano
STUDIO DI METODOLOGIE DI SINTESI STUDIO DI METODOLOGIE DI SINTESI DI ALTO LIVELLO PER LA DI ALTO LIVELLO PER LA
REALIZZAZIONE DI UN REALIZZAZIONE DI UN SINTETIZZATORE AUTOMATICO DA SINTETIZZATORE AUTOMATICO DA INTEGRARE NEL PROGETTO PINTEGRARE NEL PROGETTO PANDANDAA
Relatore: Prof. Fabrizio FERRANDI
Correlatore: Ing. Marco Domenico SANTAMBROGIO
Francesco Redaelli MATRICOLA 656188
Davide Sacchi MATRICOLA 656975
Francesco Redaelli - Davide Sacchi2
SommarioSommario
Obiettivi
PANDA
Introduzione alla sintesi di alto livello
Tecnologie di sintesi:
Diagrammi ASM
Sintetizzatore SPARK
Grafi SDG
Caso di studio:
Algoritmo Kernighan-Lin
Risultati e Confronto
Conclusioni e sviluppi futuri
Francesco Redaelli - Davide Sacchi3
ObiettiviObiettivi
Analisi di due metodi di sintesi di alto livello Analisi di due metodi di sintesi di alto livello
esistenti: tramite ASM e tramite SPARKesistenti: tramite ASM e tramite SPARK
Introduzione di un nuovo metodo basato sugli Introduzione di un nuovo metodo basato sugli
SDG come rappresentazione formale SDG come rappresentazione formale
Confronto dei metodi di sintesi di alto livelloConfronto dei metodi di sintesi di alto livello
Francesco Redaelli - Davide Sacchi4
PPANDANDAA
DRESDHLS HW/SW Codesign CERBERO
Francesco Redaelli - Davide Sacchi5
while (TRUE) { switch (state) { case S0: x = a + b; state = S1; next; case S1:
... }} Sorg
ente
Sintesi di alto livelloSintesi di alto livello
“High-level synthesis is the process of mapping a behavioral description at the algorithmic level to a structural description in terms of functional units,
memory elements and interconnections”Sabih H. Gerez,
“Algorithms for VLSI Design Automation”
Assegnamento risorse
Allocazionerisorse
Schedulazione
sync: process begin wait until CLOCK’event and CLOCK=‘1’; state <= state_next;end process sync;ciclo: process begin case state is when S0 => out1 <= a + c; state_next <= S1; ...end process ciclo; Des
crizi
one
Struttu
rale
Francesco Redaelli - Davide Sacchi6
REALIZZAZIONE DEL DIAGRAMMA
ASM
Diagrammi ASM (1)Diagrammi ASM (1)
DESCRIZIONE IN LINGUAGGIO C
State BoxPosizioni possibili
per il nome
S1S1
S1S1
Uscite asseriteZxZx
Condition Box
CONDIZIONEFALSEFALSE TRUETRUE
Condizione di test
Output Box
Uscite asserite
ZxZx
Francesco Redaelli - Davide Sacchi7
Diagrammi ASM (2)Diagrammi ASM (2)
CASE stato_presente IS
WHEN "10" =>
if( j<ndiv2 ) then
Operazioni stato 10
if (B[j*2 + 1] = 0) then
stato_presente <= "11";
else
stato_presente <= "13";
end if;
else
stato_presente <= "14";
end if;
WHEN "11" =>
Operazioni stato 11
if( max < maxp ) then
stato_presente <= "12";
else
stato_presente <= "13";
end if;
WHEN "12" =>
Operazioni stato 12
stato_presente <= "13";
WHEN "13" =>
j <= j+1;
stato_presente <= "14“;
end case;
TRADUZIONE DEL DIAGRAMMA A BLOCCHI IN VHDL
INDIVIDUAZIONEDEGLI STATI
Francesco Redaelli - Davide Sacchi8
Sintetizzatore SparkSintetizzatore Spark
Francesco Redaelli - Davide Sacchi9
Grafi SDG (1)Grafi SDG (1)
CASE stato IS
…
WHEN A =>Operazioni stato A
WHEN B =>Operazioni stato B
WHEN C =>Operazioni stato C
…
end case;
Scheduling
Francesco Redaelli - Davide Sacchi10
if (clk'event AND clk = '1') then CASE stato_presente IS WHEN x"00" => i <= 0; k <= 0; stato_presente <= x"01"; WHEN x"01" => ind18 <= Dv(i) + Dv(k + ndiv2); iA <= i; iB <= k; Mk <= M(A(i * 2)*n + B(k * 2)) * 2; if(A((i * 2) + 1) > 0) then i <= i+1; end if; if (B((k * 2) + 1) > 0) then k <= k+1; end if; if ((A((i * 2) + 1) > 0) and (B((k * 2) + 1)>0)) then stato_presente <= x"01"; else stato_presente <= x“02"; end if; WHEN x“02" => max <= ind18 - Mk; stato_presente <= x"11"; end CASE;end if;
Grafi SDG (2)Grafi SDG (2)
Entry
S3
T
S4
T
S6S1 W1 S7S2S5 W2S6S1 W1 S7S2S5 W2
S3 S4
Francesco Redaelli - Davide Sacchi11
Algoritmo Kernighan-LinAlgoritmo Kernighan-Lin
a
b
c
d
e
f
2
3
2
5
A B
Av ava CI
Bv ava CE
aaa IED
xyyxxy CDDg 2
da xxxx CCDD 22'
Francesco Redaelli - Davide Sacchi12
Risultati e Confronto (1)Risultati e Confronto (1)
Metodo f(MHz) Cp(ns) LUT SLC Stati Transizioni
I OOccupazion
e Spazio (%)
ASM O 62.160 16.087 429 237 10 15 5 9 5ASM 61.949 16.142 734 407 10 15 5 9 8
SDG O 210.013 4.762 445 240 16 21 5 15 5SDG 99.856 10.014 757 419 11 16 5 20 8
SPARK 200.423 4.989 525 341 14 18 4 14 5
Risultati ottenuti attraverso ISE
Francesco Redaelli - Davide Sacchi13
Risultati e Confronto (2)Risultati e Confronto (2)
Metodo f(MHz) Cp(ns) LUT
ASM O 101.430 9.859 395
ASM 101.276 9.874 474
SDG O 266.667 3.750 250
SDG 235.516 4.246 554
SPARK 280.741 3.562 514
Risultati ottenuti attraverso Synplify Pro
Francesco Redaelli - Davide Sacchi14
Risultati e Confronto (3)Risultati e Confronto (3)
Metodo Cicli Tempo ISE(ms)
Tempo Synplify(ms)
ASM O 445 7.16 4.39
ASM 445 7.18 4.39
SDG O 865 4.12 3.24
SDG 545 5.46 2.31
SPARK 876 4.37 3.12
Confronto tempistiche di simulazione
Francesco Redaelli - Davide Sacchi15
Conclusioni e sviluppi futuriConclusioni e sviluppi futuri
HLS DRESDHW/SW Codesign CERBEROModulo di sintesi di alto livello
basato su SDG
Francesco Redaelli - Davide Sacchi16
Fine PresentazioneFine Presentazione
• Domande