vhdl ja süntees. süsteemitasemesüntees.enos.itcollege.ee/~lrv/i207/vhdl-synt.pdf · tlc synth...

24
1 1 I207 - Digitaalloogika ja -süsteemid - L18 © Peeter Ellervee VHDL ja süntees. Süsteemitasemesüntees. J.F. Wakerly “Digital Design: Principles and Practices” - 1.5, 1.8-12 L17. Digitaalsüsteemide automaat- projekteerimine, sünteesi etapid. L18. VHDL ja süntees. Süsteemitasemesüntees. L19. Füüsikalise taseme projekteerimine. Keerukate süsteemide iseärasused. 2 I207 - Digitaalloogika ja -süsteemid - L18 © Peeter Ellervee Sünteesitav VHDL Eesmärgid üheselt tõlgendatav kirjeldus asendatavus struktuurse kirjeldusega asendatavus loogikaelementidega VHDL-i alamhulk ainult osa konstruktsioone on sünteesitavad aeg viitena pole toetatud võimalused erinevateks tõlgendusteks taktsignaali sagedus – “wait for …;” andmeformaadid – ujukomaarvud

Upload: truongdat

Post on 12-May-2018

232 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: VHDL ja süntees. Süsteemitasemesüntees.enos.itcollege.ee/~lrv/I207/vhdl-synt.pdf · TLC synth pisierinevused ... VHDL semantika peab alles jääma on võimalikud erinevad interpretatsioonid

1

1I207 - Digitaalloogika ja -süsteemid - L18© Peeter Ellervee

VHDL ja süntees. Süsteemitasemesüntees.

J.F. Wakerly “Digital Design: Principles and Practices” - 1.5, 1.8-12

L17. Digitaalsüsteemide automaat-projekteerimine, sünteesi etapid.

L18. VHDL ja süntees. Süsteemitasemesüntees.

L19. Füüsikalise taseme projekteerimine.Keerukate süsteemide iseärasused.

2I207 - Digitaalloogika ja -süsteemid - L18© Peeter Ellervee

Sünteesitav VHDL

Eesmärgid üheselt tõlgendatav kirjeldus asendatavus struktuurse kirjeldusega asendatavus loogikaelementidega

VHDL-i alamhulk ainult osa konstruktsioone on sünteesitavad aeg viitena pole toetatud võimalused erinevateks tõlgendusteks taktsignaali sagedus – “wait for …;” andmeformaadid – ujukomaarvud

Page 2: VHDL ja süntees. Süsteemitasemesüntees.enos.itcollege.ee/~lrv/I207/vhdl-synt.pdf · TLC synth pisierinevused ... VHDL semantika peab alles jääma on võimalikud erinevad interpretatsioonid

2

3I207 - Digitaalloogika ja -süsteemid - L18© Peeter Ellervee

Kombinatoorne loogika

Protsess on interpreteeritav kombinatoorseloogika plokina siis ja ainult siis, kui: protsessil on tundlikkuse nimistu või

sisaldab ainult ühte ajakontrolli käsku• stiilis “wait on a, b, c;”

lokaalsed muutujad puuduvad või neileomistatakse väärtus ainult enne lugemist

kõik signaalid, mille väärtust kasutatakse,kuuluvad ka tundlikkuse nimistusse

kõik väljundsignaalid saavad väärtuse protsessikõikides tingimuslikes harudes• s.t., pole vaja väärtust eelmisest tsüklist

4I207 - Digitaalloogika ja -süsteemid - L18© Peeter Ellervee

if-käsu süntees

if-käsk = multiplekser

signal A,B,C,P1,P2,Z: BIT;

. . .

if (P1 = ’1’) then

Z <= A;

elsif (P2 = ’0’) then

Z <= B;

else

Z <= C;

end if;

Page 3: VHDL ja süntees. Süsteemitasemesüntees.enos.itcollege.ee/~lrv/I207/vhdl-synt.pdf · TLC synth pisierinevused ... VHDL semantika peab alles jääma on võimalikud erinevad interpretatsioonid

3

5I207 - Digitaalloogika ja -süsteemid - L18© Peeter Ellervee

Keerukamad omistamised (I)

MälutaS <= A when X=’1’

else B when Y=’1’

else C;

process begin

wait on A, B, C, X, Y;

if X=’1’ then S <= A;

elsif Y=’1’ then S <= B;

else S <= C;

end if;

end process;

6I207 - Digitaalloogika ja -süsteemid - L18© Peeter Ellervee

Keerukamad omistamised (II)

MälugaS <= A when X=’1’

else B when Y=’1’

else S;

process begin

wait on A, B, X, Y;

if X=’1’ then S <= A;

elsif Y=’1’ then S <= B;

end if;

end process;

Page 4: VHDL ja süntees. Süsteemitasemesüntees.enos.itcollege.ee/~lrv/I207/vhdl-synt.pdf · TLC synth pisierinevused ... VHDL semantika peab alles jääma on võimalikud erinevad interpretatsioonid

4

7I207 - Digitaalloogika ja -süsteemid - L5-6© Peeter Ellervee

Mäluelemendid

process (a) begin

if a’event and a=’1’ then x <= c;

end if;

end process;

Kokkuleppeline interpretatsioon et sünteesi tulemus oleks üheselt mõistetav…

c

a

xD

C

flip-flop

8I207 - Digitaalloogika ja -süsteemid - L5-6© Peeter Ellervee

Mäluelemendid

process begin –- ”behavioral” D-flip-flopwait on CLK until CLK=’1’;Q<=D;

end process;

process (CLK) begin -- ”classical” D-flip-flopif CLK=’1’ and CLK’event then

Q<=D;end if;

end process;

process (CLK, D) begin -- ”classical” D-latchif CLK=’1’ then Q<=D; end if;

end process;

D

CLK

Q

D

CLK

Q

Page 5: VHDL ja süntees. Süsteemitasemesüntees.enos.itcollege.ee/~lrv/I207/vhdl-synt.pdf · TLC synth pisierinevused ... VHDL semantika peab alles jääma on võimalikud erinevad interpretatsioonid

5

9I207 - Digitaalloogika ja -süsteemid - L5-6© Peeter Ellervee

flip-flop – reset & enable

process (CLK) begin -- synchronous reset

if CLK=’1’ and CLK’event then

if RES=’1’ then Q<=(others=>’0’);

elsif ENA=’1’ then Q<=D;

end if;

end if;

end process;

process (RESET,CLK) begin -- asynchronous reset

if RESET=’1’ then Q<=(others=>’0’);

elsif CLK=’1’ and CLK’EVENT then

if ENA=’1’ then Q<=D; end if;

end if;

end process;

10I207 - Digitaalloogika ja -süsteemid - L18© Peeter Ellervee

Sünteesi reeglid

Tähtsuse järjekorras: omistatav signaal on flip-flop, kui omistamist

kontrollib frondi avaldis nt. CLK’event and CLK=’1’

üldjuhul on lubatud ainult üks frondi avaldis eri protsessidel võivad olla erinevad taktsignaalid

omistatav signaal toob sisse kolme-olekulisepuhvri, kui talle võib omistada väärtuse ‘Z’ nt. Q <= D when SEL = ’1’ else ’Z’;

Page 6: VHDL ja süntees. Süsteemitasemesüntees.enos.itcollege.ee/~lrv/I207/vhdl-synt.pdf · TLC synth pisierinevused ... VHDL semantika peab alles jääma on võimalikud erinevad interpretatsioonid

6

11I207 - Digitaalloogika ja -süsteemid - L18© Peeter Ellervee

Sünteesi reeglid

Tähtsuse järjekorras (jätkub): omistatav signaal on latch, kui omistamist ei

toimu kõigis tingimuslikes harudes japuudub frondi avaldis

vastasel juhul sünteesitaksekombinatoorskeem

Kasulik on eraldada mäluelemendid japuhvrid kombinatoorsest osast, et ollakindel tulemuse korrektsuses

12I207 - Digitaalloogika ja -süsteemid - L18© Peeter Ellervee

Sünteesi reeglid

+ / - < / >

RG RG

process (a, b, c)beginx <= f (a, b);y <= g (b, c);

end process;

process (clk)beginif clk’event and

clk=’1’ thenq <= d;

end if;end process;

Funktsionaalsed sõlmed

Mäluelemendid

Page 7: VHDL ja süntees. Süsteemitasemesüntees.enos.itcollege.ee/~lrv/I207/vhdl-synt.pdf · TLC synth pisierinevused ... VHDL semantika peab alles jääma on võimalikud erinevad interpretatsioonid

7

13I207 - Digitaalloogika ja -süsteemid - L18© Peeter Ellervee

Signaal või muutuja?

signal A1, A2: BIT;process (CLOCK)

variable A3 : BIT;begin

if CLOCK=’1’ and CLOCK’event thenA3 := A1 and A2;Z <= A3;

end if;end process;

signal A1,A2,A3 : BIT;process (CLOCK) begin

if CLOCK=’1’ and CLOCK’event thenA3 <= A1 and A2;Z <= A3;

end if;end process;

14I207 - Digitaalloogika ja -süsteemid - L18© Peeter Ellervee

Aritmeetika

Üledefineeritud aritmeetikaoperatsioonid:library IEEE;

use IEEE.std_logic_1164.all;

use IEEE.std_logic_arith.all;

Ettevaatust operatsioonidega ‘*’, ‘/’, ‘**’ –äärmiselt palju loogikaelemente

Ohutu mõningatel juhtudel – kahe astmegakorrutamine / jagamine

Sulgude kasutamine grupeerib elemente

Page 8: VHDL ja süntees. Süsteemitasemesüntees.enos.itcollege.ee/~lrv/I207/vhdl-synt.pdf · TLC synth pisierinevused ... VHDL semantika peab alles jääma on võimalikud erinevad interpretatsioonid

8

15I207 - Digitaalloogika ja -süsteemid - L18© Peeter Ellervee

Algväärtustamine

Algväärtused tuletatakse (alam)tüübideklaratsioonist (nt. “mytype’left”)

Otsene algväärtustamine objektideklareerimisel

Algväärtustamine toimub omistamisegaprotsessi alguses

Ainult viimane variant on sünteesitav osa koodist kulub algväärtustamistele

16I207 - Digitaalloogika ja -süsteemid - L18© Peeter Ellervee

Tsüklite sünteesimine

for-tsükkel paralleelne

realisatsioon

tsükli keha ei tohisisaldada ajakontrollikäske (wait)

for i in 0 to 7 loop

x(i) :=

a(i) and b(i);

end loop;

Sõltub üldjuhul sünteesivahendist Design Compiler (Synopsys) – paralleelne

ISE (Xilinx) – paralleelne

Leonardo (Mentor Graphics) –sõltub ajalistest piirangutest (takt jms.)

Page 9: VHDL ja süntees. Süsteemitasemesüntees.enos.itcollege.ee/~lrv/I207/vhdl-synt.pdf · TLC synth pisierinevused ... VHDL semantika peab alles jääma on võimalikud erinevad interpretatsioonid

9

17I207 - Digitaalloogika ja -süsteemid - L18© Peeter Ellervee

Tsüklite sünteesimine

while-tsükkel järjestikuline

realisatsioon

tsükli keha peabsisaldama ajakontrollikäsku (wait)

i := 0;

while i<7 loop

data(i) := in_port;

wait on clk

until clk=’1’;

i := i + 1;

end loop;

Sõltub üldjuhul sünteesivahendist Design Compiler (Synopsys) – järjestikuline

ISE (Xilinx) – paralleelne (ilma wait käsuta!)

Leonardo (Mentor Graphics) –sõltub ajalistest piirangutest (takt jms.)

18I207 - Digitaalloogika ja -süsteemid - L18© Peeter Ellervee

Juht-automaat VHDL-s

Kolm protsessi

Siirdefunktsioon () kombinatoorne skeem

Väljundfunktsioon () kombinatoorne skeem

Olekuregister (S) mäluelemendid

Page 10: VHDL ja süntees. Süsteemitasemesüntees.enos.itcollege.ee/~lrv/I207/vhdl-synt.pdf · TLC synth pisierinevused ... VHDL semantika peab alles jääma on võimalikud erinevad interpretatsioonid

10

19I207 - Digitaalloogika ja -süsteemid - L18© Peeter Ellervee

Automaat ühe protsessina

-- RESET is the asynchronous reset, CLK is the clock

-- STATE is a signal memorizing the current state

process(RESET,CLK)

begin

if RESET=’1’ then -- asynchronous reset

STATE <= S_INIT;

elsif CLK=’1’ and CLK’EVENT then

case STATE is

when S_INIT => if I0=’1’ then STATE <= S5; end if;

when ... => ...

end case;

end if;

end process;

20I207 - Digitaalloogika ja -süsteemid - L18© Peeter Ellervee

Automaat kolme protsessina

Siirde- ja väljundfunktsioon ning olekuregister

Olekud loendus-andmetüübina

architecture B of FSM istype STATE_TYPE is (S_INIT,S1,...Sn);signal CURRENT_STATE, NEXT_STATE : STATE_TYPE;

beginP_STATE: process begin -- sequential processwait until CLK’EVENT and CLK=’1’;if RESET =’1’ then CURRENT_STATE <= S_INIT;else CURRENT_STATE <= NEXT_STATE; end if;

end process P_STATE;

Page 11: VHDL ja süntees. Süsteemitasemesüntees.enos.itcollege.ee/~lrv/I207/vhdl-synt.pdf · TLC synth pisierinevused ... VHDL semantika peab alles jääma on võimalikud erinevad interpretatsioonid

11

21I207 - Digitaalloogika ja -süsteemid - L18© Peeter Ellervee

Automaat kolme protsessina

P_NEXT_STATE: process (I0, ..., CURRENT_STATE) beginNEXT_STATE <= CURRENT_STATE;case CURRENT_STATE iswhen S_INIT =>

if I0=’1’ then NEXT_STATE <= S5; end if;when ... => ...

end case;end process P_NEXT_STATE;

P_OUTPUTS: process (CURRENT_STATE) begincase CURRENT_STATE iswhen S_INIT => O <= ’0’;when ... => ...

end case;end process P_OUTPUTS;

end B;

22I207 - Digitaalloogika ja -süsteemid - L18© Peeter Ellervee

Loendur & süntees

Kaks protsessi

library IEEE; use IEEE.std_logic_1164.all;entity counter03 isport ( clk: in bit;

resetn: in std_logic;three: out std_logic );

end entity counter03;

library IEEE; use IEEE.std_logic_1164.all;

architecture fsm2 of counter03 is

subtype state_type is integer range 0 to 3;

signal pres_state, next_state: state_type:=0;

begin

process (clk) begin -- State memory

if clk'event and clk = '1' then

pres_state <= next_state;

end if;

end process;

-- Next state & output functions

process (resetn, pres_state) begin

three <= '0';

if resetn='0' then next_state <= 0;

else

case pres_state is

when 0 to 2 =>

next_state <= pres_state + 1;

when 3 =>

next_state <= 0; three <= '1';

end case;

end if;

end process;

end architecture fsm2;22 ekv.l.elem. / 3,70 ns

Page 12: VHDL ja süntees. Süsteemitasemesüntees.enos.itcollege.ee/~lrv/I207/vhdl-synt.pdf · TLC synth pisierinevused ... VHDL semantika peab alles jääma on võimalikud erinevad interpretatsioonid

12

23I207 - Digitaalloogika ja -süsteemid - L18© Peeter Ellervee

Loendur & süntees

Kolm protsessi

library IEEE; use IEEE.std_logic_1164.all;entity counter03 isport ( clk: in bit;

resetn: in std_logic;three: out std_logic );

end entity counter03;

library IEEE; use IEEE.std_logic_1164.all;architecture fsm3 of counter03 issubtype state_type is integer range 0 to 3;signal pres_state, next_state: state_type:=0;

beginprocess (clk) begin -- State memoryif clk'event and clk = '1' thenpres_state <= next_state;

end if;end process;-- Next state functionprocess (resetn, pres_state) beginif resetn='0' then next_state <= 0;elseif pres_state=3 then next_state <= 0;else next_state <= pres_state + 1;end if;

end if;end process;-- Output functionprocess (resetn, pres_state) beginif pres_state=3 then three <= '1';else three <= '0';end if;

end process;end architecture fsm3;23 ekv.l.elem. / 4,36 ns

24I207 - Digitaalloogika ja -süsteemid - L18© Peeter Ellervee

Loendur & süntees

Üks protsess

library IEEE; use IEEE.std_logic_1164.all;entity counter03 isport ( clk: in bit;

resetn: in std_logic;three: out std_logic );

end entity counter03;

library IEEE; use IEEE.std_logic_1164.all;

architecture fsm1 of counter03 is

subtype state_type is integer range 0 to 3;

signal state: state_type := 0;

begin

process (clk) begin

if clk'event and clk = '1' then

three <= '0';

if resetn='0' then state <= 0;

else

case state is

when 0 | 1 =>

state <= state + 1;

when 2 =>

state <= state + 1; three <= '1';

when 3 =>

state <= 0;

end case;

end if;

end if;

end process;

end architecture fsm1;

38 ekv.l.elem. / 5,68 ns

Page 13: VHDL ja süntees. Süsteemitasemesüntees.enos.itcollege.ee/~lrv/I207/vhdl-synt.pdf · TLC synth pisierinevused ... VHDL semantika peab alles jääma on võimalikud erinevad interpretatsioonid

13

25I207 - Digitaalloogika ja -süsteemid - L18© Peeter Ellervee

Süntees & valgusfoor???

Eraldi loendur ja automaat

architecture synth of TLC2 istype state_type is (S1, S2, S3, S4);signal state: state_type := S1;signal road1, road2: bit_vector (1 to 3);signal counter: integer range 0 to 15 := 0;

Begin

process begin -- counterwait on timer until timer='1';if counter = 14 then counter <= 0;else counter <= counter + 1; end if;

end process;

process begin -- next statewait on timer until timer='1';case state iswhen S1 => if counter>=12 then state <= S2;

else state <= S1; end if;when S2 => if counter>=12 then state <= S2;

else state <= S3; end if;when S3 => if counter>=12 then state <= S4;

else state <= S3; end if;when S4 => if counter>=12 then state <= S4;

else state <= S1; end if;end case;

end process;

process (state) begin -- outputcase state iswhen S1 =>

R1 <= '0'; Y1 <= '0'; G1 <= '1';R2 <= '1'; Y2 <= '0'; G2 <= '0';

when S2 =>R1 <= '0'; Y1 <= '1'; G1 <= '0';R2 <= '1'; Y2 <= '1'; G2 <= '0';

when S3 =>R1 <= '1'; Y1 <= '0'; G1 <= '0';R2 <= '0'; Y2 <= '0'; G2 <= '1';

when S4 =>R1 <= '1'; Y1 <= '1'; G1 <= '0';R2 <= '0'; Y2 <= '1'; G2 <= '0';

end case;end architecture synth;

26I207 - Digitaalloogika ja -süsteemid - L18© Peeter Ellervee

VHDL & valgusfoor

Simulatsioonide tulemused

TLC

synth

pisierinevusedaegades polepraegu oluline…

Page 14: VHDL ja süntees. Süsteemitasemesüntees.enos.itcollege.ee/~lrv/I207/vhdl-synt.pdf · TLC synth pisierinevused ... VHDL semantika peab alles jääma on võimalikud erinevad interpretatsioonid

14

27I207 - Digitaalloogika ja -süsteemid - L18© Peeter Ellervee

Valgusfoor skeemina?

http://www.itcollege.ee/~lrv/I207/tlc-applet.txt

28I207 - Digitaalloogika ja -süsteemid - L18© Peeter Ellervee

Sünteesi metodoloogia

Defineeri disaini tase automaat, RTL, struktuurne

Defineeri kasutatavad paketid tarnija, kasutaja poolt määratud

Tükelda disain komponendid, ühendused, testikava, testkeskkond

Sünteesi disain komponentide süntees, viidete analüüs

Verifitseeri/valideeri disain loogikalülid võrreldes RTL-ga

Page 15: VHDL ja süntees. Süsteemitasemesüntees.enos.itcollege.ee/~lrv/I207/vhdl-synt.pdf · TLC synth pisierinevused ... VHDL semantika peab alles jääma on võimalikud erinevad interpretatsioonid

15

29I207 - Digitaalloogika ja -süsteemid - L18© Peeter Ellervee

Mitu “wait” käsku?

VHDL semantika peab alles jääma on võimalikud erinevad interpretatsioonid

Operatsioonide hajutamine mitme takti vahel

Algoritm sisendid: a, b, c, d

väljund: x

kordajad: c1, c2

x = a + b*c1 + c*c2 + d

ajaline piirang - 3 takti

process

variable av, bv, cv, dv: ...;

begin

av:=a; bv:=b; cv:=c; dv:=d;

wait on clk until clk=’1’;

wait on clk until clk=’1’;

x <= av + bv*c1 + cv*c2 + dv;

wait on clk until clk=’1’;

end process;

30I207 - Digitaalloogika ja -süsteemid - L18© Peeter Ellervee

Mitu “wait” käsku?

Käitumuslik interpretatsioon pole alati parim

process

variable av, bv, cv, dv: ...;

begin

av:=a; bv:=b; cv:=c; dv:=d;

wait on clk until clk=’1’;

wait on clk until clk=’1’;

x <= av + bv*c1 + cv*c2 + dv;

wait on clk until clk=’1’;

end process;

process

variable av, bv, cv, dv: ...;

variable r1, r2: ...;

begin

av:=a; bv:=b; cv:=c; dv:=d;

r1 := av + dv; r2 := bv * c1;

wait on clk until clk=’1’;

r1 := r1 + r2; r2 := cv * c2;

wait on clk until clk=’1’;

x <= r1 + r2;

wait on clk until clk=’1’;

end process;

2 korrutit, 3 summaatorit

1 korruti, 1 summaator

Page 16: VHDL ja süntees. Süsteemitasemesüntees.enos.itcollege.ee/~lrv/I207/vhdl-synt.pdf · TLC synth pisierinevused ... VHDL semantika peab alles jääma on võimalikud erinevad interpretatsioonid

16

31I207 - Digitaalloogika ja -süsteemid - L18© Peeter Ellervee

“wait” käskude lisamine?

VHDLi semantika s/v suhtes paigas

16-järguline filter lugem - sys_clk

täiendava takti lisamine võimalik

Tsüklid? 1. paralleelselt

2. järjestikuliselt

process

variable sum: ...;

variable buff: ...; -- array (0 to 15)

begin

for i in 15 downto 1 loop

buff(i):=buff(i-1);

end loop;

buff(0):=data_in; sum:=0;

for i in 0 to 15 loop

sum := sum + buff(i) * coeff(i);

end loop;

x <= sum;

wait on sys_clk until sys_clk=’1’;

end process;

32I207 - Digitaalloogika ja -süsteemid - L18© Peeter Ellervee

Sünteesi ülesanded

Süsteemitasemesüntees klasterdamine/tükeldamine; liideste süntees

Kõrgtasemesüntees resursside hõivamine

resurss- või aegpiiratud planeerimine

resursside sidumine

Registersiirete taseme süntees andmeosa süntees; juhtosa süntees

Loogikatasemesüntees loogika minimeerimine; optimeerimine; liiasuste eemaldamine

Füüsikalise taseme süntees sidumine tehnoloogiaga; paigaldamine; trasseerimine

Page 17: VHDL ja süntees. Süsteemitasemesüntees.enos.itcollege.ee/~lrv/I207/vhdl-synt.pdf · TLC synth pisierinevused ... VHDL semantika peab alles jääma on võimalikud erinevad interpretatsioonid

17

33I207 - Digitaalloogika ja -süsteemid - L18© Peeter Ellervee

Süsteemitasemesüntees

Süsteem: kommunikeeruvad moodulid

Sünteesi ülesanded tükeldamine kommunikatsiooni täpsustamine meetodite täpsustamine

Erinevate lahenduste otsimine ennustamine

Funktsionaalne konveier paralleelsed ja ajas osaliselt kattuvad meetodid

34I207 - Digitaalloogika ja -süsteemid - L18© Peeter Ellervee

Süsteemisünteesi ülesanded

Funktsionaalsedobjektid

Hõivamine Tükeldamine Täpsustamine

Muutujad mälud muutujad mäludesse

aadressitegenereerimine

Käitumine protsessorid funktsioonid protsessoritesse

liidesed

Kanalid siinid kanalid siinidesse

protokollid

Page 18: VHDL ja süntees. Süsteemitasemesüntees.enos.itcollege.ee/~lrv/I207/vhdl-synt.pdf · TLC synth pisierinevused ... VHDL semantika peab alles jääma on võimalikud erinevad interpretatsioonid

18

35I207 - Digitaalloogika ja -süsteemid - L18© Peeter Ellervee

Mälutasemete kasutamine

Massiivide ülekattumine ruumis ja ajas lähteandmete massiiv asendatakse arvutuste käigus

tulemustega

Lokaalsed koopiad vähendavad pöördumisipõhimälu poole lisanduva lokaalse mälu kaal peab olema väiksem kokku

hoitud pöördumiste kaaludest

Õige baasaadressi valik vähendab vahemäluebasobivat kasutamist vale aadress võib viia ühe ja sama vahemälu ploki

kasutamisele ühes tsüklis eri massiivide poolt

36I207 - Digitaalloogika ja -süsteemid - L18© Peeter Ellervee

Mälupesade eluead

B = f(A);C = g(B);

A

B

C

tüüpiline:a[i]=mem[i]b[i]=mem[b_b+i]c[i]=mem[b_c+i]

A

B

C

A

B

C

raisatud

tüüpiline:a[i]=mem[i]b[i]=mem[b_b+i]c[i]=mem[i]

Parendatudvariandid

tüüpiline:a[i]=mem[i]b[i]=mem[max-i]c[i]=mem[i]

A

B

C

Page 19: VHDL ja süntees. Süsteemitasemesüntees.enos.itcollege.ee/~lrv/I207/vhdl-synt.pdf · TLC synth pisierinevused ... VHDL semantika peab alles jääma on võimalikud erinevad interpretatsioonid

19

37I207 - Digitaalloogika ja -süsteemid - L18© Peeter Ellervee

High-Level Synthesis Achitectural Synthesis

Kõrgtasemesüntees

Sisend digitaalsüsteemi funktsionaalsuse kirjeldus kitsenduste hulk

Väljund süsteemi struktuur andmeosa + juhtautomaat

Algoritmi objektid - operatsioonid

Behavioral Synthesis Silicon Compilation

38I207 - Digitaalloogika ja -süsteemid - L18© Peeter Ellervee

Kõrgtasemesüntees

Põhisammud (järjekord võib erineda) hõivamine funktsionaalsete moodulite arv ja tüübid mäluelementide arv ja tüübid siinide arv ja tüübid

planeerimine operatsioonide sidumine kontrollsammudega

sidumine operatsioonide sidumine moodulitega muutujate sidumine registritega andmeülekandete sidumine siinidega

Page 20: VHDL ja süntees. Süsteemitasemesüntees.enos.itcollege.ee/~lrv/I207/vhdl-synt.pdf · TLC synth pisierinevused ... VHDL semantika peab alles jääma on võimalikud erinevad interpretatsioonid

20

39I207 - Digitaalloogika ja -süsteemid - L18© Peeter Ellervee

Näiteülesanne

Diferentsiaalvõrrand

variable a,dx,x,u,y,x1,y1: integer;begin

cycles(sysclock,1); a:=inport;cycles(sysclock,1); dx:=inport;cycles(sysclock,1); y:=inport;cycles(sysclock,1); x:=inport;cycles(sysclock,1); u:=inport;loopcycles(sysclock,7);x1 := x + dx; y1 := y + (u * dx);u := u-5 * x * (u * dx) - 3 * y * dx;x := x1; y := y1;exit when not (x1 < a);

end loop;

+5 x+3y = 0d2ydx2

dydx

40I207 - Digitaalloogika ja -süsteemid - L18© Peeter Ellervee

Tarkvaraline realisatsioon

{sc_fixed<6,10> a,dx,y,x,u,x1,x2,y1;

while ( true ) {wait(); a=inport.read();wait(); dx=inport.read();wait(); y=inport.read();wait(); x=inport.read();wait(); u=inport.read();while ( true ) {for (int i=0;i<7;i++) wait();x1 = x + dx; y1 = y + (u*dx);u = u - 5*x*(u*dx) - 3*y*dx;x = x1; y = y1;if (!(x1<a)) break;

}outport.write(y);

};}

# R1:a, R2:dx, R3:y, R4:x, R5:u,

# R6:x1, R7:x2, R8:y1, R9:tmp

...

_loop_$32:

ADD.fx R6, R4, R2 # x1=x+dx

MUL.fx R9, R5, R2 # tmp=u*dx

ADD.fx R8, R3, R9 # y1=y+tmp

MUL.fx R9, R4, R9 # tmp=x*tmp

MUL.fx R9, R9, $5 # tmp=5*tmp

SUB.fx R5, R5, R9 # u=u-tmp

MUL.fx R9, R3, R2 # tmp=y*dx

MUL.fx R9, R9, $3 # tmp=3*tmp

SUB.fx R5, R5, R9 # u=u-tmp

ADD.fx R4, R6, $0 # x=x1

ADD.fx R3, R8, $0 # y=y1

SUB.fx R9, R6, R1 # tmp=x1-a

JMP.neg _loop_$32 # ...break

...

Page 21: VHDL ja süntees. Süsteemitasemesüntees.enos.itcollege.ee/~lrv/I207/vhdl-synt.pdf · TLC synth pisierinevused ... VHDL semantika peab alles jääma on võimalikud erinevad interpretatsioonid

21

41I207 - Digitaalloogika ja -süsteemid - L18© Peeter Ellervee

Planeerimine

Minimaalne riistvara piiramatult aega...

FU1 [*] ; FU2 [+/-/<]

Minimaalne aeg piiramatult resursse...

x1 = x + dx; y1 = y + (u*dx);u = u - 5*x*(u*dx) - 3*y*dx;x = x1; y = y1;

42I207 - Digitaalloogika ja -süsteemid - L18© Peeter Ellervee

Hõivamine ja sidumine

Muutuja eluiga registrid eluiga – omistamisest viimase tarbimiseni

Täitursõlmed (FU)

Registrid

Page 22: VHDL ja süntees. Süsteemitasemesüntees.enos.itcollege.ee/~lrv/I207/vhdl-synt.pdf · TLC synth pisierinevused ... VHDL semantika peab alles jääma on võimalikud erinevad interpretatsioonid

22

43I207 - Digitaalloogika ja -süsteemid - L18© Peeter Ellervee

Hõivamine ja sidumine

Funktsionaalsed sõlmed ja registridM1: h1.[u,dx], h3.[h1,h2], h6.[dx,h4]; M2: h2.[5,x], h4.[3,y]

ALU: h5.[u,h3], x1.[x,dx], u1.[h5,h6], cc.[x1,a], y1.[h1,y]

Ra; Rdx; R1 (u,u1,h5); R2 (x,y1); Ry; Rx1; R5 (h1,h3,h6); R6 (h2,h4)

Multiplekserid

M1.L - 3, M1.R - 2, M2.L - 2, M2.R - 2, ALU.L - 4, ALU.R - 3

M1-l on üks ja sama allikas mõlemas sisendis, st. multipleksoril (Rdx) Lahendus: vahetada sisendid esimesel sammul (taktid 1 ja 2)

Tulemus: M1.L - 2, M1.R - 2, M2.L - 2, M2.R - 2, ALU.L - 4, ALU.R - 3

44I207 - Digitaalloogika ja -süsteemid - L18© Peeter Ellervee

Registersiirete taseme süntees

RTL - Register Transfer Level register funktsioon register

Moodulite struktuuri valik nt. summaatori sisestruktuur

Automaadi süntees kodeerimine, loogikafunktsioonide süntees

Andmevoo optimeerimine multiplekserite optimeerimine

Ajastuse optimeerimine – retiming

Page 23: VHDL ja süntees. Süsteemitasemesüntees.enos.itcollege.ee/~lrv/I207/vhdl-synt.pdf · TLC synth pisierinevused ... VHDL semantika peab alles jääma on võimalikud erinevad interpretatsioonid

23

45I207 - Digitaalloogika ja -süsteemid - L18© Peeter Ellervee

Andmevoo optimeerimine

samm #1: r1 c1(vi,...)

samm #2: r2 c2(r1,vj,...)

r1,r2 - registrid; c1,c2 - loogika; vi,vj - muutujad

fmax = 1 / max( delay(c1), delay(c2) )

kui delay(c1) > delay(c2) :siis c1

new = g( f1(vi,...), f2(vi,...) )

Pärast ümbersünteesi

delay(g)+delay(c2) < delay(c1) :

samm #1: r1 f1(vi,...); rx f2(vi,...)

samm #2: r2 c2(g(r1,rx),vj,...)

46I207 - Digitaalloogika ja -süsteemid - L18© Peeter Ellervee

Ümberajastamine (retiming)

Registrite asukoha muutmine “musta kasti” funktsionaalsus säilib

Enne Pärast

skeem

loogika-võrkgraaf

Page 24: VHDL ja süntees. Süsteemitasemesüntees.enos.itcollege.ee/~lrv/I207/vhdl-synt.pdf · TLC synth pisierinevused ... VHDL semantika peab alles jääma on võimalikud erinevad interpretatsioonid

24

47I207 - Digitaalloogika ja -süsteemid - L18© Peeter Ellervee

Ümberajastamine (retiming)

Leitakse kriitiline tee

Registrid nihutatakse tagant ettepoole

1. samm=15tf=19

2. samm=15ta=20

3. samm=15td=18te=16tg=19

Lõpp=15

Loogikatasemesüntees

Kodeerimine võib teostada ka varem

Boole’i funktsioonideminimeerimine peamiselt heuristiline

Funktsioonideteisendamineloogikaelementideks tehnoloogiast sõltuv samuti sõltub

etteantud piirangutest

Testitavuse parendamine

Loogikalülid transistorid / traadid

Transistorid / traadid polügonid (maskid)

48I207 - Digitaalloogika ja -süsteemid - L18© Peeter Ellervee