Digitaalskeemide projekteerimine ja test vhdl ja digitaalskeemide modelleerimine
This presentation is the property of its rightful owner.
Sponsored Links
1 / 24

Digitaalskeemide projekteerimine ja test VHDL ja digitaalskeemide modelleerimine PowerPoint PPT Presentation


  • 77 Views
  • Uploaded on
  • Presentation posted in: General

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

Download Presentation

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.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 [email protected]

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

    kiirteekõrvalteekestus

    1 rohelinepunanepiiramata

    2 vilkuv rohelinepunane3 sek.

    3 kollanekollane2 sek.

    4 punanerohelinemaksimaalselt 10 sek.

    5 punanevilkuv roheline3 sek.

    6 kollanekollane2 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


  • Login