1 / 24

Digitaalskeemide projekteerimine ja test VHDL ja digitaalskeemide modelleerimine

Digitaalskeemide projekteerimine ja test VHDL ja digitaalskeemide modelleerimine. Peeter Ellervee www.ttu.ee/users/lrv lrv@cc.ttu.ee. Soovunelm. VHDL-st skeemini. Tegelikkus. VHDL-st skeemini. Ideest mudelini modelleeritav spetsifikatsioon käitumuslik VHDL. Mudelist struktuurini

keilah
Télécharger la présentation

Digitaalskeemide projekteerimine ja test VHDL ja digitaalskeemide modelleerimine

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Digitaalskeemide projekteerimine ja testVHDL ja digitaalskeemide modelleerimine Peeter Ellerveewww.ttu.ee/users/lrv lrv@cc.ttu.ee VHDL ja digitaalskeemide modelleerimine

  2. Soovunelm VHDL-st skeemini Tegelikkus VHDL ja digitaalskeemide modelleerimine

  3. VHDL-st skeemini • Ideest mudelini • modelleeritav spetsifikatsioon • käitumuslik VHDL • Mudelist struktuurini • struktuur register-siirete tasemel • sünteesitav VHDL • Struktuurist skeemini (Jüri Põldre) • loogikaelemendid + ühendused • sünteesi juhtimine • Iteratsioonid! VHDL ja digitaalskeemide modelleerimine

  4. ModelSim • Käivita programm • Siirdu töökataloogi • File -> Change Directory … -> C:\seminar • Loo VHDLi tööteek (kui pole veel tehtud) • File -> New Library … -> new & work • Kompileeri failid • Compile -> Compile … • võimalus redigeerida VHDL ja digitaalskeemide modelleerimine

  5. ModelSim • Lae disain • Simulate -> Simulate … • sisene teeki work • vali konfiguratsioon (C) või olem (E) • Aktiveeri signaalide jälgimine • View -> Signals & Add -> Wave -> ... • Simuleeri • Simulate -> Run VHDL ja digitaalskeemide modelleerimine

  6. Ülesanne • Valgusfoori kontroller sidestreet_light highway_car highway_light sidestreet_car VHDL ja digitaalskeemide modelleerimine

  7. Valgusfoori 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 kestus 1 roheline punane piiramata 2 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) VHDL ja digitaalskeemide modelleerimine

  8. Ideest mudelini • Modelleeritav spetsifikatsioon • käitumuslik VHDL • Liidese ja andmetüüpide deklareerimine • abstraktsed andmetüübid • Käitumusliku spetsifikatsiooni loomine • kontrollvoog & kompleksed ajakontrolli käsud • Testkeskkonna loomine, simuleerimine • lihtne testimine -- kiire, kuid ebapiisav... • põhjalik testimine -- keerukas ja aeglane... VHDL ja digitaalskeemide modelleerimine

  9. Ideest 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; VHDL ja digitaalskeemide modelleerimine

  10. Ideest 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; -- ... • proovi… (või vt. tlc-bhv.vhd) • Testimine • kiire -- vali olem ja forsseeri signaalid • [signals] sidestreet_car -> Edit -> Force… • raske kontrollida kriitilisi olukordi VHDL ja digitaalskeemide modelleerimine

  11. Ideest 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” VHDL ja digitaalskeemide modelleerimine

  12. 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 sec) ja loogika vilgutamiseks • ajakontrollikäsud -> sünk.käasud+taimer • (4) Sünteesitav VHDL (& struktuur) VHDL ja digitaalskeemide modelleerimine

  13. Riistvaralised andmetüübid • Andmetüübid (pkg-enum.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; VHDL ja digitaalskeemide modelleerimine

  14. 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! VHDL ja digitaalskeemide modelleerimine

  15. Käitumise täpsustamine #1 • Rohelise tule vilkumine täpsustatud highway_light<=GreenBlink; wait for 3 sec; • on asendatud tsükliga for 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” VHDL ja digitaalskeemide modelleerimine

  16. Kä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 VHDL ja digitaalskeemide modelleerimine

  17. 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; VHDL ja digitaalskeemide modelleerimine

  18. 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ünteesi vahendite poolt • Vajalikud võivad olla konkreetse sünteesivahendi iseärasustest tingitud muudatused VHDL ja digitaalskeemide modelleerimine

  19. 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 ja loenduriga VHDL ja digitaalskeemide modelleerimine

  20. 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. VHDL ja digitaalskeemide modelleerimine

  21. state highway_light_sgn sidestreet_light_sgn highway_light_new sidestreet_light_new next_state BlinkLights highway Clock Controller BlinkLights sidestreet highway_car sidestreet_car reset cnt reg f-n TLC highway_light sidestreet_light timer reset_counter counter_out clk Controller(RTL) Sünteesitav VHDL VHDL ja digitaalskeemide modelleerimine

  22. 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 VHDL ja digitaalskeemide modelleerimine

  23. Sünteesitav VHDL • VHDL konstruktsioone next_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; -- ... VHDL ja digitaalskeemide modelleerimine

  24. Sünteesitav VHDL • Uued failid • cfg-[q]rtl.vhd -- konfiguratsioonid • tlc-rtl.vhd -- arhitektuur “RTL” • tlc-rtl-blnk.vhd -- vilkuv roheline [BinkLights(bhv)] • tlc-bhv-rtl.vhd -- kontroller+taimer [Controller(RTL)] • Simuleerimine on väga aeglane • Aeg vaja paikka panna • run 50 sec [konfiguratsioon “tlc-qrtl”] • run 400 sec [konfiguratsioon “tlc-rtl”] • Lõplik kontroll lõuna ajal... VHDL ja digitaalskeemide modelleerimine

More Related