vhdl ja süntees. süsteemitasemesüntees.enos.itcollege.ee/~lrv/i207/vhdl-synt.pdf · tlc synth...
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](https://reader034.vdocuments.pub/reader034/viewer/2022050807/5af6f5807f8b9a9546916f8c/html5/thumbnails/1.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022050807/5af6f5807f8b9a9546916f8c/html5/thumbnails/2.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022050807/5af6f5807f8b9a9546916f8c/html5/thumbnails/3.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022050807/5af6f5807f8b9a9546916f8c/html5/thumbnails/4.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022050807/5af6f5807f8b9a9546916f8c/html5/thumbnails/5.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022050807/5af6f5807f8b9a9546916f8c/html5/thumbnails/6.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022050807/5af6f5807f8b9a9546916f8c/html5/thumbnails/7.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022050807/5af6f5807f8b9a9546916f8c/html5/thumbnails/8.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022050807/5af6f5807f8b9a9546916f8c/html5/thumbnails/9.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022050807/5af6f5807f8b9a9546916f8c/html5/thumbnails/10.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022050807/5af6f5807f8b9a9546916f8c/html5/thumbnails/11.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022050807/5af6f5807f8b9a9546916f8c/html5/thumbnails/12.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022050807/5af6f5807f8b9a9546916f8c/html5/thumbnails/13.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022050807/5af6f5807f8b9a9546916f8c/html5/thumbnails/14.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022050807/5af6f5807f8b9a9546916f8c/html5/thumbnails/15.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022050807/5af6f5807f8b9a9546916f8c/html5/thumbnails/16.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022050807/5af6f5807f8b9a9546916f8c/html5/thumbnails/17.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022050807/5af6f5807f8b9a9546916f8c/html5/thumbnails/18.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022050807/5af6f5807f8b9a9546916f8c/html5/thumbnails/19.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022050807/5af6f5807f8b9a9546916f8c/html5/thumbnails/20.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022050807/5af6f5807f8b9a9546916f8c/html5/thumbnails/21.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022050807/5af6f5807f8b9a9546916f8c/html5/thumbnails/22.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022050807/5af6f5807f8b9a9546916f8c/html5/thumbnails/23.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022050807/5af6f5807f8b9a9546916f8c/html5/thumbnails/24.jpg)
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