Francesco Redaelli - Davide Sacchi STUDIO DI METODOLOGIE DI SINTESI DI ALTO LIVELLO PER LA REALIZZAZIONE DI UN SINTETIZZATORE AUTOMATICO DA INTEGRARE NEL PROGETTO PANDA Relatore: Prof. Fabrizio FERRANDI Correlatore: Ing. Marco Domenico SANTAMBROGIO Francesco Redaelli MATRICOLA 656188 Davide Sacchi MATRICOLA 656975 Francesco Redaelli - Davide Sacchi
Francesco Redaelli - Davide Sacchi Sommario 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 Sacchi
Obiettivi Analisi di due metodi di sintesi di alto livello esistenti: tramite ASM e tramite SPARK Introduzione di un nuovo metodo basato sugli SDG come rappresentazione formale Confronto dei metodi di sintesi di alto livello Francesco Redaelli - Davide Sacchi
Francesco Redaelli - Davide Sacchi PANDA HLS HW/SW Codesign DRESD CERBERO Francesco Redaelli - Davide Sacchi
Sintesi 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” while (TRUE) { switch (state) { case S0: x = a + b; state = S1; next; case S1: ... } 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; Descrizione Strutturale Allocazione risorse Assegnamento risorse Schedulazione Sorgente Francesco Redaelli - Davide Sacchi
DESCRIZIONE IN LINGUAGGIO C Diagrammi ASM (1) DESCRIZIONE IN LINGUAGGIO C State Box Posizioni possibili per il nome S1 Uscite asserite Zx REALIZZAZIONE DEL DIAGRAMMA ASM Condition Box CONDIZIONE FALSE TRUE Condizione di test Output Box Uscite asserite Zx Francesco Redaelli - Davide Sacchi
Francesco Redaelli - Davide Sacchi Diagrammi ASM (2) INDIVIDUAZIONE DEGLI STATI TRADUZIONE DEL DIAGRAMMA A BLOCCHI IN VHDL 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; stato_presente <= "14"; WHEN "11" => Operazioni stato 11 if( max < maxp ) then stato_presente <= "12"; WHEN "12" => Operazioni stato 12 WHEN "13" => j <= j+1; stato_presente <= "14“; end case; Francesco Redaelli - Davide Sacchi
Francesco Redaelli - Davide Sacchi Sintetizzatore Spark Francesco Redaelli - Davide Sacchi
Francesco Redaelli - Davide Sacchi Grafi SDG (1) Scheduling CASE stato IS … WHEN A => Operazioni stato A WHEN B => Operazioni stato B WHEN C => Operazioni stato C end case; Francesco Redaelli - Davide Sacchi
Francesco Redaelli - Davide Sacchi Grafi SDG (2) 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; if ((A((i * 2) + 1) > 0) and (B((k * 2) + 1)>0)) then else stato_presente <= x“02"; WHEN x“02" => max <= ind18 - Mk; stato_presente <= x"11"; end CASE; Entry S1 W1 S6 S5 S2 S2 W2 W2 S7 S1 W1 S6 S5 S7 T T S3 S4 S3 S4 Francesco Redaelli - Davide Sacchi
Algoritmo Kernighan-Lin B a 2 d 2 b 5 e 3 c f Francesco Redaelli - Davide Sacchi
Risultati e Confronto (1) Metodo f(MHz) Cp(ns) LUT SLC Stati Transizioni I O Occupazione Spazio (%) ASM O 62.160 16.087 429 237 10 15 5 9 ASM 61.949 16.142 734 407 8 SDG O 210.013 4.762 445 240 16 21 SDG 99.856 10.014 757 419 11 20 SPARK 200.423 4.989 525 341 14 18 4 Risultati ottenuti attraverso ISE Francesco Redaelli - Davide Sacchi
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 Sacchi
Risultati e Confronto (3) Metodo Cicli Tempo ISE(ms) Tempo Synplify(ms) ASM O 445 7.16 4.39 ASM 7.18 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 Sacchi
Conclusioni e sviluppi futuri Modulo di sintesi di alto livello basato su SDG HLS DRESD HW/SW Codesign CERBERO Francesco Redaelli - Davide Sacchi
Francesco Redaelli - Davide Sacchi Fine Presentazione Domande Francesco Redaelli - Davide Sacchi