digitaalskeemide projekteerimine ja test vhdl ja digitaalskeemide modelleerimine n.
Download
Skip this Video
Download Presentation
Digitaalskeemide projekteerimine ja test VHDL ja digitaalskeemide modelleerimine

Loading in 2 Seconds...

play fullscreen
1 / 24

Digitaalskeemide projekteerimine ja test VHDL ja digitaalskeemide modelleerimine - PowerPoint PPT Presentation


  • 119 Views
  • Uploaded on

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

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Digitaalskeemide projekteerimine ja test VHDL ja digitaalskeemide modelleerimine' - keilah


Download Now 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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
digitaalskeemide projekteerimine ja test vhdl ja digitaalskeemide modelleerimine

Digitaalskeemide projekteerimine ja testVHDL ja digitaalskeemide modelleerimine

Peeter Ellerveewww.ttu.ee/users/lrv lrv@cc.ttu.ee

VHDL ja digitaalskeemide modelleerimine

vhdl st skeemini

Soovunelm

VHDL-st skeemini

Tegelikkus

VHDL ja digitaalskeemide modelleerimine

vhdl st skeemini1
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

modelsim
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

modelsim1
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

lesanne
Ülesanne
  • Valgusfoori kontroller

sidestreet_light

highway_car

highway_light

sidestreet_car

VHDL ja digitaalskeemide modelleerimine

valgusfoori kontroller
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

ideest mudelini
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

ideest mudelini1
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

ideest mudelini2
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

ideest mudelini3
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

mudelist struktuurini
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

riistvaralised andmet bid
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

riistvaralised andmet bid1
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

k itumise t psustamine 1
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

k itumise t psustamine 2
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

k itumise t psustamine 21
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

k itumise t psustamine 22
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

s nteesitav vhdl
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

s nteesitav vhdl1
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

s nteesitav vhdl2

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

s nteesitav vhdl3
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

s nteesitav vhdl4
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

s nteesitav vhdl5
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