Előadást letölteni
Az előadás letöltése folymat van. Kérjük, várjon
KiadtaAndor Hegedűs Megváltozta több, mint 10 éve
1
Szintézis............... Keresztes Péter, 2005 A GAJSKI-KUHN DIAGRAM Alapelv: Rendezzük a digitális- rendszerek leírásait célok és szintek szerint
2
Szintézis............... Keresztes Péter, 2005 Szintézisek és verifikációk A szintézis adott szintről a tőle jobbra lévő tartomány eggyel alacsonyabb szintjére irányul A verifikáció adott szintről a tőle balra lévő tartomány eggyel magasabb szintjére irányul (A realizáció és az analízis „szinttartó”)
3
Szintézis............... Keresztes Péter, 2005 A TERVEZÉS ELEMEI ● SPECIFIKÁCIÓ ● STRUKTÚRA ● SZINTÉZIS ● VERIFIKÁCIÓ
4
Szintézis............... Keresztes Péter, 2005 A „JÓ TERVEZÉS” KÉT FOLYAMATA SPECIFIKÁCIÓ SPECIFIKÁCIÓ ÉS ÉS SZINTÉZIS SZINTÉZIS VAGY VAGY SPECIFIKÁCIÓ, TERVEZÉS(KÉZI) SPECIFIKÁCIÓ, TERVEZÉS(KÉZI) ÉS ÉS VERIFIKÁCIÓ VERIFIKÁCIÓ
5
Szintézis............... Keresztes Péter, 2005 A R-szint építőelemei 1. REGISZTEREK 2. MULTIPLEXEREK 3. FUNKCIÓS-EGYSÉGEK 4. FSM (szinkron véges állapotú gép)
6
Szintézis............... Keresztes Péter, 2005 A HLS FŐ LÉPÉSEI 1. ÜTEMEZÉS 2. FU-ALLOKÁCIÓ 3. R-ALLOKÁCIÓ
7
Szintézis............... Keresztes Péter, 2005 HLS-technikák 1. Gráfos-módszerek (CDFG) 2. Nyelvi transzformációk (VHDL) 3. Táblázatos módszerek ( target-állapot táblák) ( target-állapot táblák)
8
Szintézis............... Keresztes Péter, 2005 Data-flow elvek a HLS-ben - A HW esemény-hajtott DATAFLOW természetű - Az algoritmusok DF megfogalmazásai előnyben - Hasznos az értékkövető DF (VALUE-TRACE) (VALUE-TRACE)
9
Szintézis............... Keresztes Péter, 2005 Az FSM szokásos állapotgráfja
10
Szintézis............... Keresztes Péter, 2005 FSM struktúra
11
Szintézis............... Keresztes Péter, 2005 Egy egyszerű szekvencia értékkövető adatfolyam gráfja
12
Szintézis............... Keresztes Péter, 2005 Egy bonyolultabb VT-DFG Egy bonyolultabb VT-DFG
13
Szintézis............... Keresztes Péter, 2005 Egy absztrakt HW specifikáció library work; use work.funclib.all; entity syntex0 is port( R : in bit; S : in bit; ph1, ph2 : in bit; pa : in real := 0.0; paa : out real := 0.0); end syntex0; architecture MOD0 of syntex0 is begin process variable a : real := 0.0; begin wait until S = '1'; a := pa; for i in 1 to 4 loop a := a + 1.0; end loop; paa <= a; end process; end MOD0;
14
Szintézis............... Keresztes Péter, 2005 A VT-DFB DP : block begin a0 <= pa; a1 <= a0 + 1.0 when state = 1 else anyreal; a2 <= a1 + 1.0 when state = 1 else anyreal; a3 <= a2 + 1.0 when state = 1 else anyreal; a4 <= a3 + 1.0 when state = 1 else anyreal; paa <= a4;
15
Szintézis............... Keresztes Péter, 2005 HLS technikák
16
Szintézis............... Keresztes Péter, 2005 TARGET-ÁLLAPOT TÁBLÁZATOK SZEMANTIKÁJA, NEM-REGISZTER TÍPUSÚ TRANZAKCIÓK
17
Szintézis............... Keresztes Péter, 2005 REGISZTER-TÍPUSÚ TRANZAKCIÓK
18
Szintézis............... Keresztes Péter, 2005 A HLS FŐ LÉPÉSEI 1. ÜTEMEZÉS 2. FU-ALLOKÁCIÓ 3. R-ALLOKÁCIÓ
19
Szintézis............... Keresztes Péter, 2005 Ütemezés HW korlátokkal Az ütemezést a műveleti (funkciós) egységekre kimondott korlát alapján végezzük el. Ez azt jelenti, hogy az egységes VT-EDDFB-t annyi egymás után végrehajtandó részblokkra kell felbontani, amennyivel az bitosítható, hogy egy részblokkban az azonos funkciójú műveleti egységek száma nem haladja meg korlátot. Minden részblokk egy FSM állapot. Példánkban egyetlen funkciós egység az INCREMENTER (összeadó) Tegyük fel, hogy csak egyet használhatunk fel. Ez azt jelenti, hogy egy aktív állapot helyett 4-re van szükség, és mindegyik megnyit illetve lezár egy al-blokkot.
20
Szintézis............... Keresztes Péter, 2005 A HW korlátok szerinti ütemezés táblázata
21
Szintézis............... Keresztes Péter, 2005 FU-allokáció A funkciós egységeket hozzárendeljük az al-blokkokhoz. Ilyenkor a műveleti egységeket individualizáljuk, és szemantikájuknak megfelelően állapot-független tranzakciókként beültetjük azokat, új targetekkel, illetve bemeneti jelekkel. A funkciós egységek targetjeit minden olyan cellába beírjuk, ahol az adott művelet kifejezésként szerepelt. A bemenetek által kijelölt sorokba azokat a kifejezéseket kell a megfelelő állapot oszlopába beírni, amelyek az allokáció előtt a tranzakciók kifejezéseiben a megfelelő pozícióban voltak. Példánkban az egyetlen összeadó targetjét t1-vel, bemenetét t2-vel jelöltük. A t1 sorába be kerül az állapot-független kifejezés, majd a t2 sorába az 1-4 állapotokba bekerül az a0-a3jelek neve, hiszen azok állottak a kifejezések megfelelő pozíciójában.
22
Szintézis............... Keresztes Péter, 2005 Az FU allokáció utáni táblázat
23
Szintézis............... Keresztes Péter, 2005 R-allokáció A regiszter-allokáció során először megállapítjuk a minimálisan szükséges regiszterek számát. Ezt a csillaggal jelölt targetek életciklusának páronkénti egybevetésével végezzük el. Két regiszter-típusú target akkor ábrázolható egy regiszterben, ha életciklusaik között nincs átfedés. Példánkban az a1-a3 és az a2-a4 párok tagjai között nincs élet-ciklus átfedés, tehát két regiszter, az a1_a3 és az a2_a4 bevezetése allokálja a regisztereket. Az új regiszter típusú targetek soraiba azok bemeneteit írjuk, majd ezeknek az új targeteknek a soraival bővítjük a táblát. Ezek sorait pedig azok a kifejezések töltik meg, amelyek az összevonás előtti állapotban a megfelelő pozícióban szerepeltek.
24
Szintézis............... Keresztes Péter, 2005 Az R-allokáció utáni tábla
25
Szintézis............... Keresztes Péter, 2005 A tábla szerinti HW
26
Szintézis............... Keresztes Péter, 2005 Regiszter-szintű szintézis : Példa négyzetgyökvonást végző hw-egység specifikálására program SQRT(x, e, y); begin begin read (x, e); read (x, e); cy := Fi(x); cy := Fi(x); while d > e loop while d > e loop ny := 0.5*(cy + x/cy); ny := 0.5*(cy + x/cy); d := abs(ny – cy); d := abs(ny – cy); cy := ny; cy := ny; end loop; end loop; y <= cy; y <= cy; write y; write y; end SQRT;
27
Szintézis............... Keresztes Péter, 2005 Funkciós (műveleti) egységek és számbeli korlátaik - Négyzetgyök becslő LUT (1) - Komparátor (2) - Összevonó(2) - Osztó-szorzó(1) Megjegyzés: A szorzó-osztó egység foglalja el a legnagyobb szilícium-felületet
28
Szintézis............... Keresztes Péter, 2005 Négyzetgyök-becslő function Fi(x : real) return real is variable init : real := 0.0; begin if x < 0.00001 then init := 1.0; elsif x >= 0.00001 and x = 0.00001 and x < 0.0001 then init := 0.007; elsif x >= 0.0001 and x = 0.0001 and x < 0.001 then init := 0.022; elsif x >= 0.001 and x = 0.001 and x < 0.01 then init := 0.07; elsif x >= 0.01 and x = 0.01 and x < 0.1 then init := 0.22; elsif x >= 0.1 and x = 0.1 and x < 1.0 then init := 0.7; elsif x >= 1.0 and x = 1.0 and x < 10.0 then init := 2.2; elsif x >= 10.0 and x = 10.0 and x < 100.0 then init := 7.0; elsif x >= 100.0 and x = 100.0 and x < 1000.0 then init := 22.0; elsif x >= 1000.0 and x = 1000.0 and x < 10000.0 then init := 70.0; elsif x >= 10000.0 and x = 10000.0 and x < 100000.0 then init := 220.0; elsif x > 100000.0 then init := 220.0 ; end if; return init; end Fi; x1 y y <= Fi(x1) after 1 ns; Fi x return
29
Szintézis............... Keresztes Péter, 2005 Komparátor function Cm(a: real; b: real) return bit is variable v : bit; begin if a > b then v := '1' ; else v := '0'; end if; return v; end Cm; Cm a b return Y <= Cm(x1, x2) after 1 ns x1 x2 Y
30
Szintézis............... Keresztes Péter, 2005 Összevonó function AS(as_contr: as_cont_type; a : real; b : real)return real is variable v : real; begin if as_contr = add then v := a + b; elsif as_contr = sub then v := a - b; end if; return v; end AS; a b return as_contr c x1 x2 AS y <= AS(c, x1, x2) after 2 ns;
31
Szintézis............... Keresztes Péter, 2005 Szorzó-osztó function MD(md_contr: md_cont_type; a : real; b : real) return real is variable v : real; begin if md_contr = mult then v := a * b; elsif md_contr = div then v := a/b; end if; return v; end MD; a b md_contr return x1 x2 c y y <= MD(c, x1,x2) after 12 ns MD
32
Szintézis............... Keresztes Péter, 2005 Értékkövető DF blokkok - 1.példa SEQ2: begin for i in 1 to 4 loop for i in 1 to 4 loop a := a + 1; a := a + 1; end loop; end loop;end; ED-DFB2 : block begin begin a1 <= a0 + 1; a1 <= a0 + 1; a2 <= a1 + 1; a2 <= a1 + 1; a3 <= a2 + 1; a3 <= a2 + 1; a4 <= a3 + 1; a4 <= a3 + 1; end block;
33
Szintézis............... Keresztes Péter, 2005 Értékkövető DF blokkok-2.példa SEQ3 : begin if e < 0 then a := b * c; if e < 0 then a := b * c; d := a + b; d := a + b; elsif e = 0 then elsif e = 0 then a := b; a := b; else else d := a; d := a; end if; end if; end; end; ED-DFB3 : block begin a1 <= b0 * c0 when e0 < 0 else b0 when e0 = 0 else a1 <= b0 * c0 when e0 < 0 else b0 when e0 = 0 else a0; a0; d1 <= a1 + b0 when e0 < 0 else d0 when e0 = 0 else d1 <= a1 + b0 when e0 < 0 else d0 when e0 = 0 else a0; a0; end block; end block;
34
Szintézis............... Keresztes Péter, 2005 A GYÖKVONÓ EGYSÉG ENTITÁSA library work; use work.sqrtpack.all; entity SQRT_UNIT is port ( START : in bit; port ( START : in bit; READY : inout bit := '1'; READY : inout bit := '1'; RESET : in bit; RESET : in bit; pe : in real := 0.0; pe : in real := 0.0; px : in real:= 0.0; px : in real:= 0.0; py : inout real := 0.0; py : inout real := 0.0; ph1, ph2 : in bit); ph1, ph2 : in bit); end SQRT_UNIT;
35
Szintézis............... Keresztes Péter, 2005 Viselkedési architektúra architektúra (SPECIFIKÁCIÓ)
36
Szintézis............... Keresztes Péter, 2005 A szintézis első lépése: az algoritmus felbontása értékkövető DF blokkokra, azaz egy FSM állapotaihoz való rendelés FSM gráf
37
Szintézis............... Keresztes Péter, 2005 Szabályok az FSM állapotainak elkülönítésére 1.
38
Szintézis............... Keresztes Péter, 2005 Ütemezés (scheduling) FU korlátokkal
39
Szintézis............... Keresztes Péter, 2005 Az FU allokáció, R-allokáció, MP-allokáció eredménye
40
Szintézis............... Keresztes Péter, 2005 Rendszer szintű specifikációs nyelvek ● SDL ● SDL ● ECS ● ECS ● LOTOS ● LOTOS ● VHDL+VSPEC ● VHDL+VSPEC ● SystemC ● SystemC
Hasonló előadás
© 2024 SlidePlayer.hu Inc.
All rights reserved.