Francesco Redaelli - Davide Sacchi Francesco Redaelli - Davide Sacchi Politecnico di Milano Politecnico di Milano STUDIO DI METODOLOGIE DI STUDIO DI METODOLOGIE DI SINTESI DI ALTO LIVELLO PER LA SINTESI DI ALTO LIVELLO PER LA REALIZZAZIONE DI UN REALIZZAZIONE DI UN SINTETIZZATORE AUTOMATICO DA SINTETIZZATORE AUTOMATICO DA INTEGRARE NEL PROGETTO P INTEGRARE NEL PROGETTO P AND AND A A Relatore: Prof. Fabrizio FERRANDI Correlatore: Ing. Marco Domenico SANTAMBROGIO Francesco Redaelli MATRICOLA 656188 Davide Sacchi MATRICOLA 656975
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
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)