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

Digitaalsüsteemide automaatprojekteerimineenos.itcollege.ee/~lrv/I207/syst-cad.pdf · diferentsiaalvõrrandid Struktuurne mõõde CPU, mälu protsessor, alamsüsteem ALU, register,

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Digitaalsüsteemide automaatprojekteerimineenos.itcollege.ee/~lrv/I207/syst-cad.pdf · diferentsiaalvõrrandid Struktuurne mõõde CPU, mälu protsessor, alamsüsteem ALU, register,

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

Page 2: Digitaalsüsteemide automaatprojekteerimineenos.itcollege.ee/~lrv/I207/syst-cad.pdf · diferentsiaalvõrrandid Struktuurne mõõde CPU, mälu protsessor, alamsüsteem ALU, register,

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

Page 3: Digitaalsüsteemide automaatprojekteerimineenos.itcollege.ee/~lrv/I207/syst-cad.pdf · diferentsiaalvõrrandid Struktuurne mõõde CPU, mälu protsessor, alamsüsteem ALU, register,

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

Page 4: Digitaalsüsteemide automaatprojekteerimineenos.itcollege.ee/~lrv/I207/syst-cad.pdf · diferentsiaalvõrrandid Struktuurne mõõde CPU, mälu protsessor, alamsüsteem ALU, register,

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

Page 5: Digitaalsüsteemide automaatprojekteerimineenos.itcollege.ee/~lrv/I207/syst-cad.pdf · diferentsiaalvõrrandid Struktuurne mõõde CPU, mälu protsessor, alamsüsteem ALU, register,

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

Page 6: Digitaalsüsteemide automaatprojekteerimineenos.itcollege.ee/~lrv/I207/syst-cad.pdf · diferentsiaalvõrrandid Struktuurne mõõde CPU, mälu protsessor, alamsüsteem ALU, register,

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

Page 7: Digitaalsüsteemide automaatprojekteerimineenos.itcollege.ee/~lrv/I207/syst-cad.pdf · diferentsiaalvõrrandid Struktuurne mõõde CPU, mälu protsessor, alamsüsteem ALU, register,

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

Page 8: Digitaalsüsteemide automaatprojekteerimineenos.itcollege.ee/~lrv/I207/syst-cad.pdf · diferentsiaalvõrrandid Struktuurne mõõde CPU, mälu protsessor, alamsüsteem ALU, register,

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

Page 9: Digitaalsüsteemide automaatprojekteerimineenos.itcollege.ee/~lrv/I207/syst-cad.pdf · diferentsiaalvõrrandid Struktuurne mõõde CPU, mälu protsessor, alamsüsteem ALU, register,

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)

Page 10: Digitaalsüsteemide automaatprojekteerimineenos.itcollege.ee/~lrv/I207/syst-cad.pdf · diferentsiaalvõrrandid Struktuurne mõõde CPU, mälu protsessor, alamsüsteem ALU, register,

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)

Page 11: Digitaalsüsteemide automaatprojekteerimineenos.itcollege.ee/~lrv/I207/syst-cad.pdf · diferentsiaalvõrrandid Struktuurne mõõde CPU, mälu protsessor, alamsüsteem ALU, register,

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;

Page 12: Digitaalsüsteemide automaatprojekteerimineenos.itcollege.ee/~lrv/I207/syst-cad.pdf · diferentsiaalvõrrandid Struktuurne mõõde CPU, mälu protsessor, alamsüsteem ALU, register,

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”

Page 13: Digitaalsüsteemide automaatprojekteerimineenos.itcollege.ee/~lrv/I207/syst-cad.pdf · diferentsiaalvõrrandid Struktuurne mõõde CPU, mälu protsessor, alamsüsteem ALU, register,

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)

Page 14: Digitaalsüsteemide automaatprojekteerimineenos.itcollege.ee/~lrv/I207/syst-cad.pdf · diferentsiaalvõrrandid Struktuurne mõõde CPU, mälu protsessor, alamsüsteem ALU, register,

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!

Page 15: Digitaalsüsteemide automaatprojekteerimineenos.itcollege.ee/~lrv/I207/syst-cad.pdf · diferentsiaalvõrrandid Struktuurne mõõde CPU, mälu protsessor, alamsüsteem ALU, register,

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”

Page 16: Digitaalsüsteemide automaatprojekteerimineenos.itcollege.ee/~lrv/I207/syst-cad.pdf · diferentsiaalvõrrandid Struktuurne mõõde CPU, mälu protsessor, alamsüsteem ALU, register,

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

Page 17: Digitaalsüsteemide automaatprojekteerimineenos.itcollege.ee/~lrv/I207/syst-cad.pdf · diferentsiaalvõrrandid Struktuurne mõõde CPU, mälu protsessor, alamsüsteem ALU, register,

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

Page 18: Digitaalsüsteemide automaatprojekteerimineenos.itcollege.ee/~lrv/I207/syst-cad.pdf · diferentsiaalvõrrandid Struktuurne mõõde CPU, mälu protsessor, alamsüsteem ALU, register,

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

Page 19: Digitaalsüsteemide automaatprojekteerimineenos.itcollege.ee/~lrv/I207/syst-cad.pdf · diferentsiaalvõrrandid Struktuurne mõõde CPU, mälu protsessor, alamsüsteem ALU, register,

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

Page 20: Digitaalsüsteemide automaatprojekteerimineenos.itcollege.ee/~lrv/I207/syst-cad.pdf · diferentsiaalvõrrandid Struktuurne mõõde CPU, mälu protsessor, alamsüsteem ALU, register,

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;-- ...

Page 21: Digitaalsüsteemide automaatprojekteerimineenos.itcollege.ee/~lrv/I207/syst-cad.pdf · diferentsiaalvõrrandid Struktuurne mõõde CPU, mälu protsessor, alamsüsteem ALU, register,

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

Page 22: Digitaalsüsteemide automaatprojekteerimineenos.itcollege.ee/~lrv/I207/syst-cad.pdf · diferentsiaalvõrrandid Struktuurne mõõde CPU, mälu protsessor, alamsüsteem ALU, register,

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

Page 23: Digitaalsüsteemide automaatprojekteerimineenos.itcollege.ee/~lrv/I207/syst-cad.pdf · diferentsiaalvõrrandid Struktuurne mõõde CPU, mälu protsessor, alamsüsteem ALU, register,

23

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

WebPACK / ISE

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

FPGA sisu

Page 24: Digitaalsüsteemide automaatprojekteerimineenos.itcollege.ee/~lrv/I207/syst-cad.pdf · diferentsiaalvõrrandid Struktuurne mõõde CPU, mälu protsessor, alamsüsteem ALU, register,

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