digitaalsüsteemide automaatprojekteerimine

48
1 I207 - Digitaalloogika ja - süsteemid - L17 © Peeter Ellervee Digitaalsüsteemide Digitaalsüsteemide automaatprojekteerimine automaatprojekteerimine 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.

Upload: irish

Post on 10-Jan-2016

70 views

Category:

Documents


1 download

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 Presentation

TRANSCRIPT

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

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

WebPACK / ISEWebPACK / ISE

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

FPGA sisuFPGA sisu

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")