digitaalsüsteemide automaatprojekteerimine
DESCRIPTION
Digitaalsüsteemide automaatprojekteerimine. J.F. Wakerly “Digital Design: Principles and Practices” - 1.5, 1.8-12 L18. Digitaalsüsteemide automaat- projekteerimine, sünteesi etapid. L19. Süsteemi- ja kõrgtasemesüntees. - PowerPoint PPT PresentationTRANSCRIPT
1I207 - Digitaalloogika ja -süsteemid - L17© Peeter Ellervee
Digitaalsüsteemide Digitaalsüsteemide automaatprojekteerimineautomaatprojekteerimine
J.F. Wakerly “Digital Design: Principles and Practices” - 1.5, 1.8-12
L17. Digitaalsüsteemide automaat-L17. Digitaalsüsteemide automaat- projekteerimine, sünteesi etapid. 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 loomineDigitaalsü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
3I207 - Digitaalloogika ja -süsteemid - L17© Peeter Ellervee
AbstraktsioonitasemedAbstraktsioonitasemed
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 tasemedSü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
5I207 - Digitaalloogika ja -süsteemid - L17© Peeter Ellervee
Sünteesi tasemedSü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üsteemidSü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
7I207 - Digitaalloogika ja -süsteemid - L17© Peeter Ellervee
Sünteesi võludSü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ünteesilOtsustused 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
9I207 - Digitaalloogika ja -süsteemid - L17© Peeter Ellervee
Sünteesi valudSü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”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 arhitektuurväljundiks mooduli arhitektuur
11I207 - Digitaalloogika ja -süsteemid - L17© Peeter Ellervee
Disaini / sünteesi etapidDisaini / sünteesi etapid
Ideest realisatsioonini / töötava mudeliniIdeest 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ükeldamineSü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
13I207 - Digitaalloogika ja -süsteemid - L17© Peeter Ellervee
EsitusviisidEsitusviisid
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 mudelidAbstraktsed 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
15I207 - Digitaalloogika ja -süsteemid - L17© Peeter Ellervee
Abstraktsed mudelidAbstraktsed 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 mudelidAbstraktsed 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
17I207 - Digitaalloogika ja -süsteemid - L17© Peeter Ellervee
NäiteülesanneNä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
VahendidVahendid
Xilinx ISE (Xilinx, Inc., www.xilinx.com) simulaator + süntesaator
XSA-3S1000 (XESS Corp., www.xess.com)
19I207 - Digitaalloogika ja -süsteemid - L17© Peeter Ellervee
VHDL-st skeeminiVHDL-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 kontrollerValgusfoori kontroller
Kiirtee ja kõrvaltee auto sensorid – highway_car & sidestreet_car valusfoorid – highway_light & sidestreet_light
Tulede kombinatsioonid & lülitumiste järjekorrad kiirtee kõrvaltee kestus1 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)
21I207 - Digitaalloogika ja -süsteemid - L17© Peeter Ellervee
Ideest mudeliniIdeest 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 mudeliniIdeest mudelini
Andmetüübid (pkg-enum.vhd) package TLC_data_types is -- Sensors type Sensor is (NoCar, Car); -- Lights type 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;
23I207 - Digitaalloogika ja -süsteemid - L17© Peeter Ellervee
Ideest mudeliniIdeest mudelini
Kontrollvoog & ajakontrolli käsud -- ... -- Waiting for no more than 25 seconds ... if highway_car = Car then wait 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 mudeliniIdeest mudelini
Testimine põhjalikum – testkeskkond fikseeritud
autode saabumisjadaga (vt. tlc-qtst.vhd) universaalne – testkeskkond muudetava
autode 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”
25I207 - Digitaalloogika ja -süsteemid - L17© Peeter Ellervee
Simuleerimine (Modelsim)Simuleerimine (Modelsim)
Andmed – loendustüüp
26I207 - Digitaalloogika ja -süsteemid - L17© Peeter Ellervee
Mudelist struktuuriniMudelist 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)
27I207 - Digitaalloogika ja -süsteemid - L17© Peeter Ellervee
Riistvaralised andmetüübidRiistvaralised andmetüübid
Andmetüübid (pkg-bitv.vhd) package TLC_data_types is -- Sensors subtype 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 light subtype 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üübidRiistvaralised 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!
29I207 - Digitaalloogika ja -süsteemid - L17© Peeter Ellervee
Simuleerimine (Modelsim)Simuleerimine (Modelsim)
Andmed – bitbit ja bit_vectorbit_vector
30I207 - Digitaalloogika ja -süsteemid - L17© Peeter Ellervee
Käitumise täpsustamine #1Kä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”
31I207 - Digitaalloogika ja -süsteemid - L17© Peeter Ellervee
Simuleerimine (Modelsim)Simuleerimine (Modelsim)
Täpsustatud rohelise tule vilkumine
32I207 - Digitaalloogika ja -süsteemid - L17© Peeter Ellervee
Käitumise täpsustamine #2Käitumise täpsustamine #2
Esmane tükeldamine neljaks alamosaks: (1) Taimeri taktsignaal sagedusega 2 Hz (määratud
rohelise tule vilkumissagedusega), kasutatav ka süsteemse taktina
(2) ja (3) Sama-aegne protseduur vilkuvat roheliset tekitava kombinatoorse loogika jaoks
(4) Kontrollvoog, kuhu on sisse toodud taktsignaal (timer) ja ajakontrolli käsud on asendatud sünkroniseerimiskäskude ja loenduri kombinatsiooniga
Protseduur “WaitFor” asendamaks “wait for…” käske
33I207 - Digitaalloogika ja -süsteemid - L17© Peeter Ellervee
Käitumise täpsustamine #2Kä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 #2Kä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 konkreetse
sünteesivahendi iseärasustest tingitud muudatused
35I207 - Digitaalloogika ja -süsteemid - L17© Peeter Ellervee
Simuleerimine (Modelsim)Simuleerimine (Modelsim)
Esmane struktuur + taktsignaalid
36I207 - Digitaalloogika ja -süsteemid - L17© Peeter Ellervee
Sünteesitav VHDLSü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 ja
loenduriga
37I207 - Digitaalloogika ja -süsteemid - L17© Peeter Ellervee
Sünteesitav VHDLSü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 VHDLSü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
39I207 - Digitaalloogika ja -süsteemid - L17© Peeter Ellervee
Sünteesitav VHDLSü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 VHDLSü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 then next_state <= highway_blink; end if;-- ...
41I207 - Digitaalloogika ja -süsteemid - L17© Peeter Ellervee
Sünteesitav VHDLSü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)Simuleerimine (Modelsim)
Sünteesitav VHDL + kiire testpink
43I207 - Digitaalloogika ja -süsteemid - L17© Peeter Ellervee
Süntees & prototüüpimineSü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 is signal count: std_logic_vector (21 downto 0);begin process begin wait 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üüpimineSü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
47I207 - Digitaalloogika ja -süsteemid - L17© Peeter Ellervee
FPGA detailsem sisuFPGA detailsem sisu
48I207 - Digitaalloogika ja -süsteemid - L17© Peeter Ellervee
Hilisemad muudatusedHilisemad 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")