Algoritmická syntéza. Rychlý návrh DSP systémů. Ing. Jakub Št astný, Ph.D.

Podobné dokumenty
SYSTÉMY NAČIPU MI-SOC

Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

Pohled do nitra mikroprocesoru Josef Horálek

Návrh. číslicových obvodů

MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 TECHNICKÉ VYBAVENÍ POČÍTAČŮ

základní vlastnosti, používané struktury návrhové prostředky MATLAB problém kvantování koeficientů

Direct Digital Synthesis (DDS)

VÝVOJ ŘÍDICÍCH ALGORITMŮ HYDRAULICKÝCH POHONŮ S VYUŽITÍM SIGNÁLOVÉHO PROCESORU DSPACE

9. Praktická verifikace

Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

7. Pracovní postupy. Fakulta informačních technologií MI-NFA, zimní semestr 2011/2012 Jan Schmidt

Zpracování obrazu v FPGA. Leoš Maršálek ATEsystem s.r.o.

2.8 Procesory. Střední průmyslová škola strojnická Vsetín. Ing. Martin Baričák. Název šablony Název DUMu. Předmět Druh učebního materiálu


NSWI /2011 ZS. Principy cpypočítačůčů aoperačních systémů ARCHITEKTURA

Činnost CPU. IMTEE Přednáška č. 2. Několik úrovní abstrakce od obvodů CPU: Hodinový cyklus fáze strojový cyklus instrukční cyklus

Architektura počítače

Vývoj a testování elektronických řídicích jednotek pro automobily

Hardware - komponenty počítačů Von Neumannova koncepce počítače. Von Neumannova koncepce počítače

ZÁKLADY PROGRAMOVÁNÍ. Mgr. Vladislav BEDNÁŘ /14

Kubatova Y36SAP procesor - control unit obvodový a mikroprogramový řadič RISC Y36SAP-control unit 1

Vrstvy periferních rozhraní

Workshop. Vývoj embedded aplikací v systému MATLAB a Simulink. Jiří Sehnal sehnal@humusoft.cz. info@humusoft.cz.

Počítačová simulace logistických procesů II 12. přednáška - Rozhraní (Process Designer, MALAGA, TriCAD)

Princip funkce počítače

Základy logického řízení

LOGICKÉ OBVODY X36LOB

Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

Řízení IO přenosů DMA řadičem

Sběrnicová struktura PC Procesory PC funkce, vlastnosti Interní počítačové paměti PC

Přednášky o výpočetní technice. Hardware teoreticky. Adam Dominec 2010

FPGA + mikroprocesorové jádro:

C2115 Praktický úvod do superpočítání

Střední odborná škola a Střední odborné učiliště, Dubno Ing. Miroslav Krýdl Tematická oblast ELEKTRONIKA

Semestrální práce z předmětu Speciální číslicové systémy X31SCS

Architektura počítačů

Analýza a Návrh. Analýza

Profilová část maturitní zkoušky 2013/2014

Roman Výtisk, VYT027

Základy informatiky. 2. Přednáška HW. Lenka Carr Motyčková. February 22, 2011 Základy informatiky 2

Návrh čítače jako automatu

Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

Architektura počítačů Logické obvody

Číslicová filtrace. FIR filtry IIR filtry. ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE Fakulta elektrotechnická

Profilová část maturitní zkoušky 2015/2016

Organizace předmětu, podmínky pro získání klasifikovaného zápočtu

MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ

4. Úvod do paralelismu, metody paralelizace

Koncept pokročilého návrhu ve VHDL. INP - cvičení 2

10. Techniky formální verifikace a validace

Návrh ovládání zdroje ATX

Architektura Intel Atom

Optika v počítačovém vidění MPOV

Přehled paralelních architektur. Dělení paralelních architektur Flynnova taxonomie Komunikační modely paralelních architektur

Paměti Rambus DRAM (RDRAM) Paměti Flash Paměti SGRAM

Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

Metody návrhu systémů na bázi FPGA

Paralelní výpočty ve finančnictví

Základní pojmy. Program: Algoritmus zapsaný v programovacím jazyce, který řeší nějaký konkrétní úkol. Jedná se o posloupnost instrukcí.

GRAFICKÉ ROZHRANÍ V MATLABU PRO ŘÍZENÍ DIGITÁLNÍHO DETEKTORU PROSTŘEDNICTVÍM RS232 LINKY

MSP 430F1611. Jiří Kašpar. Charakteristika

Provádění instrukcí. procesorem. Základní model

Architektura počítačů Logické obvody

Profilová část maturitní zkoušky 2017/2018

Simulace číslicových obvodů (MI-SIM) zimní semestr 2010/2011

SEKVENČNÍ LOGICKÉ OBVODY

Architektury počítačů

Digitální návrh. Postup návrhu digitálních IO. Co to jsou HDL jazyky? Příklad Verilog kódu pro D klopný obvod

Architektura procesoru ARM

Struktura a architektura počítačů (BI-SAP) 3

Profilová část maturitní zkoušky 2014/2015

Cíle. Teoretický úvod. BDIO - Digitální obvody Ústav mikroelektroniky Sekvenční logika - debouncer, čítače, měření doby stisknutí tlačítka Student

SPECIFICKÝCH MIKROPROGRAMOVÝCH ARCHITEKTUR

Disková pole (RAID) 1

Obsah. Kapitola 1 Hardware, procesory a vlákna Prohlídka útrob počítače...20 Motivace pro vícejádrové procesory...21

polyfázové filtry (multirate filters) cascaded integrator comb filter (CIC) A0M38SPP - Signálové procesory v praxi - přednáška 8 2

MODERNÍ TRENDY V PROGRAMOVATELNÉ LOGICE, APLIKACE V AUTOMATIZAČNÍ A MĚŘICÍ TECHNICE

PROCESOR. Typy procesorů

Historie výpočetní techniky. Autor: Ing. Jan Nožička SOŠ a SOU Česká Lípa VY_32_INOVACE_1121_Histrorie výpočetní techniky_pwp

BDIO - Digitální obvody

Moderní nástroje pro vývoj elektronických řídicích jednotek

Disková pole (RAID) 1

Rozvrhování výroby. František Koblasa Technická univerzita v Liberci. TU v Liberci

Měřič krevního tlaku. 1 Měření krevního tlaku. 1.1 Princip oscilometrické metody 2007/

Kritéria hodnocení praktické maturitní zkoušky z databázových systémů

Paměti EEPROM (1) Paměti EEPROM (2) Paměti Flash (1) Paměti EEPROM (3) Paměti Flash (2) Paměti Flash (3)

Číslicové filtry. Honza Černocký, ÚPGM

Real Time programování v LabView. Ing. Martin Bušek, Ph.D.

Počítač jako prostředek řízení. Struktura a organizace počítače

Referát (pokročilé architektury počítačů)

Projekt: Přístupový terminál

Digitální obvody. Doc. Ing. Lukáš Fujcik, Ph.D.

Paměti Rambus DRAM (RDRAM) Paměti Flash Paměti SGRAM

LOGICKÉ SYSTÉMY PRO ŘÍZENÍ

Obecné výpočty na GPU v jazyce CUDA. Jiří Filipovič

Inovace výuky prostřednictvím ICT v SPŠ Zlín, CZ.1.07/1.5.00/ Vzdělávání v informačních a komunikačních technologií

Procesy a vlákna (Processes and Threads)

Identifikátor materiálu: ICT-1-08

Transkript:

Algoritmická syntéza Rychlý návrh DSP systémů Ing. Jakub Št astný, Ph.D.

http://amber.feld.cvut.cz/fpga/prednasky/hll_synteza/hlls.html

Osnova přednášky 1 Motivace Vývoj polovodičů Konverze DSP algoritmu na křemík 2 Syntéza Typy syntézy Syntéza na vyšší úrovni Příklad

Osnova přednášky 1 Motivace Vývoj polovodičů Konverze DSP algoritmu na křemík 2 Syntéza Typy syntézy Syntéza na vyšší úrovni Příklad

Motivace

1970 prudký nárůst výroby polovodičů, začátek digitální generace". Katalyzátor: příchod prvních CAD nástrojů pro návrh IC. 1980 dekáda dynamických pamětí. Vyladění technologie prudký vzrůst kapacit a pokles cen. Katalyzátor: nástroje na simulace na tranzistorové úrovni umožnily konečně přesně modelovat základní pamět ovou buňku. 1990 éra složitých mikroprocesorů. Katalyzátor: návrháři zahodili nástroje pro kreslení schématu a začali používat logickou syntézu a VHDL či Verilog. 2000 úsvit složitých DSP systémů. Konvenční techniky návrhu začínají ztrácet dech co pomůže dnes?

Proč DSP... řečové technologie (VoIP,...) multimediální a herní systémy bezdrátové sítě naváděcí a navigační systémy biometrie, autentizace další aplikace

Ještě včera nám stačily DSP procesory... Obrázek převzat z literatury citované na WWW stránce.

Alternativy dříve DSP procesory dnes FPGA a ASIC obvody použití procesoru přizpůsobím algoritmus CPU, jeho architektuře návrh zákaznického obvodu přizpůsobím architekturu algoritmu, jeho potřebám ALE: návrh hardware je pomalejší, než návrh software...

Důvody pro specifické řešení Mám DSP algoritmus zpracování jednoho vzorku = N operací dosažitelná f s? velice zjednodušený model DSP procesor f clk dané výrobcem M hypotet. univerz. výpočetních jednotek odhad f smax = f clk M N ALE: M a f clk nejsou nezávislé ALE: vytížení jednotek plánování instrukcí ALE: spotřeba i to co nepoužívám žere"

Důvody pro specifické řešení Mám DSP algoritmus zpracování jednoho vzorku = N operací dosažitelná f s? velice zjednodušený model DSP procesor f clk dané výrobcem M hypotet. univerz. výpočetních jednotek odhad f smax = f clk M N ALE: M a f clk nejsou nezávislé ALE: vytížení jednotek plánování instrukcí ALE: spotřeba i to co nepoužívám žere"

Důvody pro specifické řešení 2 Mám ten samý DSP algoritmus zpracování jednoho vzorku = N operací dosažitelná f s? Zákaznická implementace f clk je omezené mojí implementací moje implementace je omezená pouze vlastní paralelizovatelností problému více volných parametrů návrhu volím nezávislé f clk a počet funkčních jednotek optimalizuji architekturu na míru algoritmu menší spotřeba/velikost/cena/vyšší výkon/vyšší spolehlivost/další specielní vlastnost (DPA/SPA), atd. ALE: extrémní cena zákaznického návrhu

Důvody pro specifické řešení 3 příklad: filtrace ve spektru. Požadovaná šířka slova DSP systému minimálně 17 bitů, další bity se utopí v šumu v analogové části systému. out = IFFT(filtrace(FFT(in))) DSP CPU 16b CPU dvojnásobná přesnost, 32b skutečná šířka slova 32b CPU jednoduchá přesnost, 32b skutečná šířka realizace třemi funkcemi, sekvenční provádění FFT, filtrace, IFFT aplikačně-specifické řešení 17b široké sběrnice (17b + je rychlejší, než 32b), možno dosáhnout menší spotřeby, plochy čipu, výrobní ceny

Návrh SW vs. návrh HW

Pořadí kroků Standardní proces návrhu křemíku implementace modelu v Matlabu, ověření funkce modelu HW-SW partitioning konverze modelu na RTL úroveň RTL = Register Transfer Level logická syntéza do technologie Obrázek převzat z literatury citované na WWW stránce

Standardní proces návrhu křemíku 2 Pořadí kroků ruční náročná konverze Matlabového modelu DSP systému do RTL kódu velká koncepční mezera mezi Matlabem a VHDL kódem zanesení změny specifikace do projektu je časově náročné návrhář volí architekturu a implementuje detaily problém alternativní implementace

Pořadí kroků Standardní proces návrhu křemíku 3 RTL kód je platformově závislý FPGA vs. ASIC implementace změna v architektuře všechno předělat!! dlouhý a náročný proces riziko chyb ale proč? nejde to jednodušeji?

Vývoj HW vs. vývoj SW Návrh software výstupem spustitelný soubor jedno prostředí pro všechny kroky, pushbutton flow" optimalizujeme na rychlost běhu programu (někdy velikost) velké pomocné paměti nejsou problém Návrh hardware výstupem kus křemíku hromada software (design capture, syntéza, place&route, extrakce parametrů, a+d simulace, atd.). dlouhý postup. optimalizujeme na propustnost, latenci, velikost, rychlost, spotřebu, routovatelnost velké pomocné paměti? Jen to ne!

Vývoj HW vs. vývoj SW Návrh software výstupem spustitelný soubor jedno prostředí pro všechny kroky, pushbutton flow" optimalizujeme na rychlost běhu programu (někdy velikost) velké pomocné paměti nejsou problém Návrh hardware výstupem kus křemíku hromada software (design capture, syntéza, place&route, extrakce parametrů, a+d simulace, atd.). dlouhý postup. optimalizujeme na propustnost, latenci, velikost, rychlost, spotřebu, routovatelnost velké pomocné paměti? Jen to ne!

Vývoj HW vs. vývoj SW Návrh software výstupem spustitelný soubor jedno prostředí pro všechny kroky, pushbutton flow" optimalizujeme na rychlost běhu programu (někdy velikost) velké pomocné paměti nejsou problém Návrh hardware výstupem kus křemíku hromada software (design capture, syntéza, place&route, extrakce parametrů, a+d simulace, atd.). dlouhý postup. optimalizujeme na propustnost, latenci, velikost, rychlost, spotřebu, routovatelnost velké pomocné paměti? Jen to ne!

Vývoj HW vs. vývoj SW Návrh software výstupem spustitelný soubor jedno prostředí pro všechny kroky, pushbutton flow" optimalizujeme na rychlost běhu programu (někdy velikost) velké pomocné paměti nejsou problém Návrh hardware výstupem kus křemíku hromada software (design capture, syntéza, place&route, extrakce parametrů, a+d simulace, atd.). dlouhý postup. optimalizujeme na propustnost, latenci, velikost, rychlost, spotřebu, routovatelnost velké pomocné paměti? Jen to ne!

Vývoj HW vs. vývoj SW 2 Návrh hardware Návrh software bezčasový návrh, implicitní FSM, možnost rozvinutí smyček, není problém, behaviorální úroveň explicitní hodiny i automaty, clock skew, resynchronizace mezi doménami, vyvážení hodinového stromu, parazitní kapacity..., EMI, setup + hold violations, technologické záležitosti, RTL úroveň

Proč je ten návrh hardware tak složitý? Nedá se to alespoň někdy zjednodušit?

Syntéza

Osnova přednášky 1 Motivace Vývoj polovodičů Konverze DSP algoritmu na křemík 2 Syntéza Typy syntézy Syntéza na vyšší úrovni Příklad

Definice problému úzké hrdlo konverze algoritmu do RTL co to zautomatizovat? už něco takového máme... syntéza z RTL hradla syntéza = přechod na nižší úroveň abstrakce

Logická syntéza konverze RTL do hradel pro digitální obvody celkem dobře zvládnutá široce přijatá nejjednodušší, ale už NP-těžká!

Algoritmická syntéza tzv. syntéza na vyšší úrovni, High Level Synthesis, HL Synth. to je to ono! algoritmický popis naprogramovaný v Matlabu (i Simulink i obyčejný m-file), v derivátu C (ANSI C, Handel C, System C) či v System Verilogu je zkompilován do RTL popisu existuje mnoho softwarových nástrojů

Systémová syntéza generování celého systému se všemi algoritmy obtížná úloha mizivá SW podpora součástí je HW-SW partitioning komerčně není široce využívaná

Kdy je to výhodné? Kdy si to zjednodušíme 1 mlátička" na data 2 synchronní výpočet 3 dobře paralelizovatelný algoritmus 4 nestandardní šířky dat 5 zpracování dat trvá déle než jejich přenos Př: DSP výpočty, kryptografie, poč. grafika, sít ové protokoly IP6; VoIP, obecně numericky náročné úkoly Nové pořadí kroků High Level Synthesis

Syntéza na vyšší úrovni Výhody odladěný model abstraktní algoritmus zůstává zdrojovým kódem pro celý návrh. Změny v algoritmu se mohou rychle šířit do křemíku není třeba ručně přepisovat RTL. rychlost vlastního procesu vyšší produktivita (složitější obvod za kratší dobu) spolehlivý a definovaný proces konverze bez náhodných 1 chyb omezí vliv lidského faktoru, možnost průzkumu architektonických variant (trade-off analýza, limitace na zdroje), lepší přehled o HW zdrojích použitých algoritmem, automatická dokumentace celého procesu návrhu, dostupnost IC technologie většímu okruhu lidí. 1 Už jste někdy viděli software úplně bez chyb? :-)

Syntéza na vyšší úrovni Nevýhody pečlivá analýza a kvalitní ruční práce je lepší, na rozdíl od software zde neexistuje řešení na stisk jednoho tlačítka, použitelné pouze pro omezenou třídu problémů (velké DSP systémy apod.), spíše na návrh akcelerátorů pro pomalé operace nelze vysyntetizovat cokoliv (je třeba se naučit nový jazyk) návrháři stále musí rozumět hardware můj osobní názor: tak jako chytré SW kompilátory 100% neodstranily nutnost psát kritické věci v asembleru, ani syntéza na vyšší úrovni nikdy 100% neodstraní ruční práci Všechny nevýhody dnes může rychle přebít magická zkratka TTM" Time To Market...

Výstup syntézního algoritmu obvykle to bývá RTL kód, ne netlist následuje normální syntéza z RTL kódu generování RTL je výhodné, protože možnost ručního zásahu do výsledku návrháři jsou konzervativní znovupoužití existujících maker znovupoužití existujícího flow" existující nástroje na DFT a příkonovou analýzu

Jak to funguje?

Zadání, kompilace do vnitřní formy Popis FIR filtru y[n] = 0; for (i=0; i<5; i++) y[n] += x[n i]*b[i];

Zadání, kompilace do vnitřní formy Popis FIR filtru y[n] = 0; for (i=0; i<5; i++) y[n] += x[n i]*b[i]; Graf řízení Start = Graf toku dat y b x 5 I 1 > control I y f > t Konec

Optimalizace eliminace mrtvého kódu propagace konstant eliminace společných podvýrazů rozbalení procedur rozbalení smyček HW specifické optimalizace ( /+ konst., / 2 n ) Původní DFG 5 I 1 > control I y y b x

Optimalizace 2 eliminace mrtvého kódu propagace konstant eliminace společných podvýrazů rozbalení procedur rozbalení smyček HW specifické optimalizace Optimalizovaný DFG b0 x0b1 x1b2 x2b3 x3b4 x4 y

Plánování operací Plánování = přiřazení operací ke skutečným časovým okamžikům (hodinovým cyklům) běhu algoritmu za podmínek daných omezeními dostupných zdrojů. Máme k dispozici 2 násobičky 1 sčítačku Plánování FIRu b0 x0b1 x1b2 x2b3 x3b4 x4 y

Plánování operací 2 Plánování = přiřazení operací ke skutečným časovým okamžikům (hodinovým cyklům) běhu algoritmu za podmínek daných omezeními dostupných zdrojů. Máme k dispozici Plánování FIRu ck1 ck2 ck3 ck4 b0 x0b1 x1b2 x2b3 x3b4 x4 2 násobičky 1 sčítačku ck5 y

Alokace zdrojů Alokace = přiřazení operací ke skutečným hardwarovým prostředkům v už daných časových okamžicích; současně se snažíme o minimalizaci množství zdrojů. Nealokujeme jenom funkční jednotky, ale i registry (pro mezivýsledky) a sběrnice (přenos dat). Alokace jednotek FIRu b0 x0b1 x1b2 x2b3 x3b4 x4 ck1 ck2 ck3 ck4 ck5 y

Alokace zdrojů 2 Alokace = přiřazení operací ke skutečným hardwarovým prostředkům v už daných časových okamžicích; současně se snažíme o minimalizaci množství zdrojů. Nealokujeme jenom funkční jednotky, ale i registry (pro mezivýsledky) a sběrnice (přenos dat). Alokace jednotek FIRu b0 x0b1 x1b2 x2b3 x3b4 x4 M1 M2 ck1 x y x y z z y M1 M2 ck2 x x y x y A z z z y ck3 x A z y M1 ck4 x x y A z z y ck5 x A z y

Vygenerovaná datová cesta vsechny vstupni signaly maji sirku N bitu b0 b2 b4 x0 x2 x4 b1 b3 x1 x3 selbm2 x y x y z M1 M2 z 0 1 0 1 00 01 11 00 01 11 0 1 0 1 selbm1 a_r po nasobeni sirka 2N bitu selax selay x wrena reseta A z y sirka 2N+1 bitu z

Syntéza řadiče Syntéza řadiče = na základě vygenerované datové cesty je vytvořen řadič, který bude spouštět odpovídající sekvenci operací. Fáze řízení FIRu b0 x0b1 x1b2 x2b3 x3b4 x4 M1 M2 ck1 x y x y z z y M1 M2 ck2 x x y x y A z z z y ck3 x A z y M1 ck4 x x y A z z y ck5 x A z y

Syntéza řadiče 2 Syntéza řadiče = na základě vygenerované datové cesty je vytvořen řadič, který bude spouštět odpovídající sekvenci operací. Fáze řízení FIRu reset b0 x0b1 x1b2 x2b3 x3b4 x4 M1 M2 ck1 x y x y z z y M1 x y ck2 x A z z y ck3 x A z ck4 ck5 done M2 x y x A z y M1 x y z z y x A z y FSM reset_a=1 selbm1=00 selbm2=0 selbm1=01 selbm2=1 wrena=1 selax=0 selay=0 selbm2=11 wrena=1 selax=1 selay=0 wrena=1 selax=0 selay=1 wrena=1 selax=0 selay=0 donef=1

Stavový diagram řadiče

Statistika celého procesu Srovnejte Popis FIR filtru y[n] = 0; for (i=0; i<5; i++) y[n] += x[n i]*b[i]; Generované VHDL FIRu datapath.vhd 92 řádek kódu fsm.vhd 100 řádek kódu dig_top_fir.vhd 125 řádek kódu Technologické schema nepromítám, nevešlo se mi na slajd (vysoká složitost!).

Schema celého systému

Výsledné HW parametry Lepší číslo je červeně. Parametr Já SPARK fclk 51MHz 66MHz (ALE!) clk/vzorek 7 56 fsmax 7.3MHz 1.2MHz DFFs 33 193 LUTs 250 328 eq. gates 2686 4742 čas návrhu 2 hod. 5 min. Ale pozor: SPARK je akademický nástroj a není dokončen.