Upload
others
View
4
Download
0
Embed Size (px)
Citation preview
1
1I207 - Digitaalloogika ja -süsteemid - L17© Peeter Ellervee
Digitaalsüsteemideautomaatprojekteerimine
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 - L17© Peeter Ellervee
Digitaalsüsteemi loomine
Tootlikkuse puudujääk (productivity gap) tehnoloogia võimaluste kasv – 58% aastas
projekteerija jõudluse kasv – 21% aastas
Kuidas sellega hakkama saada?
Vaadelda süsteemi kui tervikut ülesande püstitamine
riist- ja tarkvara koosdisain
Olemasolevate lahenduste kasutamine olemasolevad algoritmid (tarkvara teegid)
olemasolevad moodulid (riistvara “teegid”) IP-plokid [ IP = Intellectual Property ]
Projekteerimine on jagatud sammudeks
2
3I207 - Digitaalloogika ja -süsteemid - L17© Peeter Ellervee
Abstraktsioonitasemed
Süsteemi tase moodulid & infokanalid
Algoritmi tase alam-moodulid & protokollid
Register-siirete (RT) tase ALS-d, registrid & siinid
Loogikatase skeem loogikaelementidest
Füüsikatase skeem transistoridest kristalli pinnalaotus
4I207 - Digitaalloogika ja -süsteemid - L17© Peeter Ellervee
Sünteesi tasemed
Käitumuslik mõõde
Füüsikaline mõõde
algoritm
süsteemi spetsifikatsioon
register-siirete kirjeldus
loogika-avaldised
diferentsiaalvõrrandid
Struktuurne mõõde
CPU, mälu
protsessor, alamsüsteem
ALU, register, MUX
loogikalüli, triger
transistor
ristkülik / polügon
std.element / alam-element
makro-element
plokk / kiip
kiip / trükkplaat
Skeemi tase
Süsteemi tase
Algoritmi tase
Register-siirete tase
Loogika tase
süntees
analüüstäpsustamine
optimeerimine
genereerimine
ekstraheerimine
abstraheerimine
3
5I207 - Digitaalloogika ja -süsteemid - L17© Peeter Ellervee
Sünteesi tasemed
Tase Abstraktsioon Vahendid
Süsteem Käitumine ruumis ja ajas,väljaviigud, ajalised piirangud
Plokk-skeemid, diagrammid,kõrgtaseme keeled
Arhitektuur Funktsionaalsete üksusteüldine jaotus
HDL-d, pinnaplaneeringuvahendid ennustamiseks
Registersiire Andmevoo sidumine sõlmedeja mikrokäskudega
Süntees, simuleerimine,resursside kasutamine
Funktsionaalsedmoodulid
Primitiivsed operatsioonid jajuhtimisvahendid
Teegid, moodulitegeneraatorid, skeemisisestus
Loogika Loogikafunktsioonid, skeemidloogikaelementidest
Skeemisisestus, süntees jasimuleerimine, test
Lülitus Transistorskeemideelektrilised omadused
RC ekstraheerimine, ajastusekontroll ja analüüs
Pinnalaotus Geomeetrilised parameetrid Pinnalaotuse redaktor, DRC,laotus ja trasseerimine
6I207 - Digitaalloogika ja -süsteemid - L17© Peeter Ellervee
Sünteesi-süsteemid
Süsteemi süntees
Liideste süntees
Kõrgtaseme süntees
Formaalne süntees
Registersiirete taseme süntees
Loogika süntees
Testi süntees
Füüsikaline süntees
4
7I207 - Digitaalloogika ja -süsteemid - L17© Peeter Ellervee
Sünteesi võlud
Automatiseerimine võimaldab vähendada projekteerimiskulusid
kiirendada projekteerimist
uusimate tehnoloogiate kasutamist
formaliseeritus
rohkem võimalikke lahendusvariante
vähem vigu projekteerimisel
8I207 - Digitaalloogika ja -süsteemid - L17© Peeter Ellervee
Otsustused sünteesil
Loogikatase tuhanded sõlmed mõni realiseerimisviis
Register-siirete tase sajad sõlmed kümned realiseerimisviisid
Käitumuslik ja süsteemi tase kümned sõlmed sajad realiseerimisviisid
5
9I207 - Digitaalloogika ja -süsteemid - L17© Peeter Ellervee
Sünteesi valud
Loogikatase teisendus mõjutab ainult lähinaabreid
lihtsad teisendusalgoritmid on ka efektiivsed
Register-siirete tase teisenduse mõjutab suurem
Käitumuslik ja süsteemi tase teisendus mõjutab praktiliselt kogu süsteemi puuduvad universaalsed (ja efektiivsed)
teisendus-algoritmid
10I207 - Digitaalloogika ja -süsteemid - L17© Peeter Ellervee
“Ränikompileerimine”
Kõrgtaseme süntees sisendiks riistvara kirjelduskeel
väljundiks operatsioonide järjestus (mikro)programm
Tarkvara süntees (kompileerimine)
sisendiks kõrgtaseme keel
väljundiks operatsioonide järjestus (assembler) programm
väljundiks mooduli arhitektuur
6
11I207 - Digitaalloogika ja -süsteemid - L17© Peeter Ellervee
Disaini / sünteesi etapid
Ideest realisatsioonini / töötava mudelini
Simuleeritava spetsifikatsioon loomine idee korrektsuse kontroll
Spetsifikatsiooni tükeldamine hallatavus ja korduvkasutatavus
Algoritmide täpsustamine arhitektuursete lahenduste valimine
Spetsifikatsiooni teisendamine skeemiks süntees kitsamas tähenduses
Realiseerimine / Prototüüpimine
12I207 - Digitaalloogika ja -süsteemid - L17© Peeter Ellervee
Süntees ~~ Tükeldamine
Digitaalsüsteem = juhtosa + andmeosa + liides + mälusüsteem
control
PE C M
control
PE C M
control
PE C M
control
PE C M
control
PE C M
7
13I207 - Digitaalloogika ja -süsteemid - L17© Peeter Ellervee
Esitusviisid
Algoritmid programmeerimiskeeled funktsionaalne tükeldamine
algoritmi ja andmete täpsustamine
riistvara kirjelduskeeled struktuursed, käitumuslikud ja
sünteesitavad keeled
plokk-diagrammid… ja nende sarnased
StateChart, Behavioral FSM, jne.
14I207 - Digitaalloogika ja -süsteemid - L17© Peeter Ellervee
Abstraktsed mudelid
Struktuurid naabrusmaatriks ahelaloend (netlist) lihtne esitada
hierarhiat
Loogikavõrkgraafid struktuur + käitumine kombinatoorne sünkroonne
m1
m2
m3
p1
p6p4
n3
n2
n1
p7p5
p3p2
1 1 11 1 00 1 1
m1
m2
m3
n1
n2
n3
m1
m3m2
abc
p
q
xy
a
b
c
p=ac
q=p+c
x
y
8
15I207 - Digitaalloogika ja -süsteemid - L17© Peeter Ellervee
Abstraktsed mudelid
Automaadid
Andmevoograafid otsene sõltuvus
operatsioonide(ülesannete) vahel
kontrollsõltuvused?
x1=a+b;x2=x1*c;x3=d+e;x4=x3*f;x=x2+x4;
+
a
+
+
* *
b
c
d e
f
x
16I207 - Digitaalloogika ja -süsteemid - L17© Peeter Ellervee
Abstraktsed mudelid
DFG - Data-Flow Graph CFG - Control-Flow Graph CDFG - Control-and-Data-Flow Graph
Hierarhia
Kontrollsõltuvused call / return hargnemised tsüklid
+
+
*
*
br
*
nop
nop
nop
nop
nop
nop
nop
9
17I207 - Digitaalloogika ja -süsteemid - L17© Peeter Ellervee
Näiteülesanne
Valgusfoori kontroller vt. ka http://mini.pld.ttu.ee/~lrv/tlc_xsa/
sidestreet_car
highway_car
highway_light
sidestreet_light
18I207 - Digitaalloogika ja -süsteemid - L17© Peeter Ellervee
Vahendid
Xilinx ISE (Xilinx, Inc., www.xilinx.com) simulaator + süntesaator
XSA-3S1000 (XESS Corp., www.xess.com)
10
19I207 - Digitaalloogika ja -süsteemid - L17© Peeter Ellervee
VHDL-st skeemini
Ideest mudelini modelleeritav spetsifikatsioon käitumuslik VHDL
Mudelist struktuurini struktuur register-siirete tasemel sünteesitav VHDL
Struktuurist skeemini loogikaelemendid + ühendused sünteesi juhtimine
Iteratsioonid!
20I207 - Digitaalloogika ja -süsteemid - L17© Peeter Ellervee
Valgusfoori kontroller
Kiirtee ja kõrvaltee auto sensorid – highway_car & sidestreet_car valusfoorid – highway_light & sidestreet_light
Tulede kombinatsioonid & lülitumiste järjekorradkiirtee kõrvaltee kestus
1 roheline punane piiramata2 vilkuv roheline punane 3 sek.3 kollane kollane 2 sek.4 punane roheline maksimaalselt 10 sek.5 punane vilkuv roheline 3 sek.6 kollane kollane 2 sek.
Ooteajad: autole kõrvalteel – mitte üle 30 sekundi, kui kiirteel on autosid roheline kõrvalteele – 10 sekundit (pluss 3” vilkuvat rohelist)
11
21I207 - Digitaalloogika ja -süsteemid - L17© Peeter Ellervee
Ideest mudelini
Modelleeritav spetsifikatsioon käitumuslik VHDL
Liidese ja andmetüüpide deklareerimine abstraktsed andmetüübid
Käitumusliku spetsifikatsiooni loomine kontrollvoog & keerukad ajakontrolli käsud
Testkeskkonna loomine, simuleerimine lihtne testimine – kiire, kuid ebapiisav... põhjalik testimine – keerukas ja aeglane...
22I207 - Digitaalloogika ja -süsteemid - L17© Peeter Ellervee
Ideest mudelini
Andmetüübid (pkg-enum.vhd)package TLC_data_types is
-- Sensorstype Sensor is (NoCar, Car);-- Lightstype Light is (Red, Yellow, Green, GreenBlink);
end TLC_data_types;
Olem (tlc-entity.vhd)use work.TLC_data_types.all;entity TLC is
port ( highway_car : in Sensor;sidestreet_car : in Sensor;highway_light : out Light := Red;sidestreet_light : out Light := Red );
end TLC;
12
23I207 - Digitaalloogika ja -süsteemid - L17© Peeter Ellervee
Ideest mudelini
Kontrollvoog & ajakontrolli käsud-- ...-- Waiting for no more than 25 seconds ...if highway_car = Car thenwait until highway_car = NoCar for 25 sec;
end if;-- ...
vt. tlc-bhv.vhd
Testimine kiire – vali olem ja forsseeri signaalid [signals] sidestreet_car -> Edit -> Force…
raske kontrollida kriitilisi olukordi
24I207 - Digitaalloogika ja -süsteemid - L17© Peeter Ellervee
Ideest mudelini
Testimine põhjalikum – testkeskkond fikseeritud
autode saabumisjadaga (vt. tlc-qtst.vhd)
universaalne – testkeskkond muudetavaautode liikumisjadaga (vt. tlc-tst.vhd)
Failid pkg-enum.vhd (1) – pakett “TLC_data_types” cfg-[q]bhv.vhd (5) – konfiguratsioon tlc-[q]tst.vhd (4) – testkeskkond tlc-entity.vhd (2) – olem “TLC” tlc-bhv.vhd (3) – arhitektuur “BEHAVIOR”
13
25I207 - Digitaalloogika ja -süsteemid - L17© Peeter Ellervee
Simuleerimine (Modelsim)
Andmed – loendustüüp
26I207 - Digitaalloogika ja -süsteemid - L17© Peeter Ellervee
Mudelist struktuurini
Struktuur register-siirete tasemel sünteesitav VHDL
(1) Riistvaralised andmetüübid loendusandmetüübid –> bititüübid
(2) Käitumise täpsustamine #1 vilkuv roheline
(3) Käitumise täpsustamine #2 taimer (2 Hz) ja loogika vilgutamiseks ajakontrollikäsud –> sünk.käsud+taimer
(4) Sünteesitav VHDL (& struktuur)
14
27I207 - Digitaalloogika ja -süsteemid - L17© Peeter Ellervee
Riistvaralised andmetüübid
Andmetüübid (pkg-bitv.vhd)package TLC_data_types is
-- Sensorssubtype Sensor is bit;constant NoCar : Sensor := '0';constant Car : Sensor := '1';-- Lights-- "red" - bit 0, i.e., the uppermost light-- "yellow" - bit 1, i.e., the middle light-- "green" - bit 2, i.e., the lowermost lightsubtype Light is BIT_VECTOR (0 to 2);constant Red : Light := "100";constant Yellow : Light := "010";constant Green : Light := "001";constant GreenBlink : Light := "000";
end TLC_data_types;
28I207 - Digitaalloogika ja -süsteemid - L17© Peeter Ellervee
Riistvaralised andmetüübid
Testimine identne esialgsega
Failid pkg-bitv.vhd (1) – pakett “TLC_data_types” cfg-[q]bhv.vhd (5) – konfiguratsioonid tlc-[q]tst.vhd (4) – testkeskkonnad tlc-entity.vhd (2) – olem “TLC” tlc-bhv.vhd (3) – arhitektuur “BEHAVIOR”
Kõik uuesti kompileerida!
15
29I207 - Digitaalloogika ja -süsteemid - L17© Peeter Ellervee
Simuleerimine (Modelsim)
Andmed – bit ja bit_vector
30I207 - Digitaalloogika ja -süsteemid - L17© Peeter Ellervee
Käitumise täpsustamine #1
Rohelise tule vilkumine täpsustatudhighway_light<=GreenBlink; wait for 3 sec;
on asendatud tsükligafor i in 1 to 6 loop
highway_light <= GreenBlink; wait for 0.25 sec;
highway_light <= Green; wait for 0.25 sec;
end loop;
Uued failid cfg-bhv2.vhd – konfiguratsioon (pikk test) tlc-bhv2.vhd – arhitektuur “bhv_refined”
16
31I207 - Digitaalloogika ja -süsteemid - L17© Peeter Ellervee
Simuleerimine (Modelsim)
Täpsustatud rohelise tule vilkumine
32I207 - Digitaalloogika ja -süsteemid - L17© Peeter Ellervee
Käitumise täpsustamine #2
Esmane tükeldamine neljaks alamosaks: (1) Taimeri taktsignaal sagedusega 2 Hz (määratud
rohelise tule vilkumissagedusega), kasutatav kasüsteemse taktina
(2) ja (3) Sama-aegne protseduur vilkuvat rohelisettekitava kombinatoorse loogika jaoks
(4) Kontrollvoog, kuhu on sisse toodud taktsignaal(timer) ja ajakontrolli käsud on asendatudsünkroniseerimiskäskude ja loendurikombinatsiooniga
Protseduur “WaitFor” asendamaks “wait for…” käske
17
33I207 - Digitaalloogika ja -süsteemid - L17© Peeter Ellervee
Käitumise täpsustamine #2
Teisendusi-- Waiting for no more than 25 seconds ...
if highway_car = Car then
wait until highway_car = NoCar for 25 sec;
end if;
on asendatud-- Waiting for no more than 25 seconds ...
if highway_car = Car then
for counter in 0 to 49 loop -- 25 seconds
exit when highway_car = NoCar;
wait on timer until timer='1';
end loop;
end if;
34I207 - Digitaalloogika ja -süsteemid - L17© Peeter Ellervee
Käitumise täpsustamine #2
Uued failid cfg-bhv-rtl.vhd – konfiguratsioon (pikk test) tlc-bhv-rtl.vhd – arhitektuur “bhv_rtl”
Simuleerimine on oluliselt aeglasem
Aeg vaja paikka panna – run 400 sec Kontrollvoole vastav protsess on põhimõtteliselt
sünteesitav kõrgtasemesüntesaatori poolt
Vajalikud võivad olla konkreetsesünteesivahendi iseärasustest tingitudmuudatused
18
35I207 - Digitaalloogika ja -süsteemid - L17© Peeter Ellervee
Simuleerimine (Modelsim)
Esmane struktuur + taktsignaalid
36I207 - Digitaalloogika ja -süsteemid - L17© Peeter Ellervee
Sünteesitav VHDL
Registersiirete tasemele vastav kirjeldus
Sünteesitav enamike sünteesivahendite poolt(võib vajada pisitäpsustusi) nt. teisendus “integer range 0 to 63” ->
“unsigned(5 downto 0)” (IEEE 1164)
Struktuur esialgse tükeldamise täpsustus
Täiendavad signaalid (nt. reset)
Kontrollvoog on asendatud automaadi jaloenduriga
19
37I207 - Digitaalloogika ja -süsteemid - L17© Peeter Ellervee
Sünteesitav VHDL
Komponendid (1) Arhitektuur “RTL”, mis seob komponendid (fail
“tlc-rtl.vhd”). Sünteesitav (RTL mõistes). (2) Taktgeneraator (olem “clock(bhv)” failis
“tlc-rtl.vhd”). Genereerib taimeri 2 Hz signaali,süsteemse taktsignaali (100 Hz) ja algnullimis-signaali.
(3) Vilkuvat rohelist tekitav kombinatoorne loogika(olem “BlinkLights(bhv)” failis “tlc-rtl-blnk.vhd”).Sünteesitav.
(4) Kontroller automaadi ja loendurina (olem“Controller(RTL)” failis “tlc-rtl-ctrl.vhd”). Sünteesitav.
38I207 - Digitaalloogika ja -süsteemid - L17© Peeter Ellervee
Sünteesitav VHDL
statehighway_light_sgnsidestreet_light_sgn
f-nreg
cnt
highway_light_newsidestreet_light_newnext_state
reset_counter
highway_carsidestreet_carreset
counter_out
highway_lightsidestreet_light
clk
timer
Controller(RTL)
Controller
BlinkLights
BlinkLights
Clock
TLC
highway
sidestreet
20
39I207 - Digitaalloogika ja -süsteemid - L17© Peeter Ellervee
Sünteesitav VHDL
VHDL konstruktsioone automaadi olek-- FSM state
type state_type is (highway_green,
highway_wait_25sec, highway_wait_25sec_loop, ...
sidestreet_yellow, sidestreet_yellow_loop);
signal state, next_state: state_type;
abisignaalid register->komb.loogika: “highway_light_sgn”
komb.loogika-> register: “highway_light_new”
taimeri väärtus & nullimine
40I207 - Digitaalloogika ja -süsteemid - L17© Peeter Ellervee
Sünteesitav VHDL
VHDL konstruktsioonenext_state <= state;-- ...case state is-- ...-- Waiting for no more than 25 seconds ...when highway_wait_25sec =>
if highway_car=NoCar then next_state <= highway_blink;end if;reset_counter <= '1';next_state <= highway_wait_25sec_loop;
when highway_wait_25sec_loop =>if highway_car=NoCar or counter_out >= 50 thennext_state <= highway_blink;
end if;-- ...
21
41I207 - Digitaalloogika ja -süsteemid - L17© Peeter Ellervee
Sünteesitav VHDL
Uued failid cfg-[q]rtl.vhd – konfiguratsioonid tlc-rtl.vhd – arhitektuur “RTL” tlc-rtl-blnk.vhd – vilkuv roheline [BinkLights(bhv)] tlc-rtl-ctrl.vhd – kontroller+taimer [Controller(RTL)]
Simuleerimine on oluliselt aeglasem
Aeg vaja paikka panna run 50 sec [konfiguratsioon “tlc-qrtl”]
run 400 sec [konfiguratsioon “tlc-rtl”]
42I207 - Digitaalloogika ja -süsteemid - L17© Peeter Ellervee
Simuleerimine (Modelsim)
Sünteesitav VHDL + kiire testpink
22
43I207 - Digitaalloogika ja -süsteemid - L17© Peeter Ellervee
Süntees & prototüüpimine
Taktsignaal & taimer XSA plaadi taktigeneraator - 10 MHz
2 Hz genereerimine taktsignaalist 22-bitine loendur --> 4*220 --> 2,38 Hz
architecture behave of timer issignal count: std_logic_vector (21 downto 0);
beginprocess beginwait on clk until clk='1';count <= count + '1';
end process;blink <= To_Bit ( count (count'high) );
end behave;
44I207 - Digitaalloogika ja -süsteemid - L17© Peeter Ellervee
Süntees & prototüüpimine
Väljaviikude määramine XSA plaadi piirangud
Uued failid tlc-rtl-fpga.vhd – arhitektuur “RTL_fpga” tlc-rtl-timer.vhd – 2 Hz taimer [Timer(behave)]
Etapid süntees (RTL kirjeldus --> CLB) paigaldus & trasseerimine FPGA konfiguratsiooni genereerimine
45 moodulit 768-st (5%) & 112 Mhz
23
45I207 - Digitaalloogika ja -süsteemid - L17© Peeter Ellervee
WebPACK / ISE
46I207 - Digitaalloogika ja -süsteemid - L17© Peeter Ellervee
FPGA sisu
24
47I207 - Digitaalloogika ja -süsteemid - L17© Peeter Ellervee
FPGA detailsem sisu
48I207 - Digitaalloogika ja -süsteemid - L17© Peeter Ellervee
Hilisemad muudatused
Täiustatud taimer 10 MHz / 5000000 ja 0,5-ne täitetegur
(fail "tlc-rtl-timer2.vhd")
Muudetud pakett "TLC_data_types“ kollase ja rohelise tule korraga põlemine
(fail "pkg-bitv2.vhd")
Muudetud kontroller 2 sek. vilkuv roheline, 3 sek. põlev kollane ja
kollane põleb koos punasega enne rohelist(fail "tlc-rtl-ctrl2.vhd")