digitaalskeemide projekteerimine ja test vhdl ja digitaalskeemide modelleerimine
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


  • 118 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


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

ad