VHDL jezik za opis hardvera Test bench) PEK EMT...آ  Saglasno definiciji entiteta, opis TB entiteta

  • View
    0

  • Download
    0

Embed Size (px)

Text of VHDL jezik za opis hardvera Test bench) PEK EMT...آ  Saglasno definiciji entiteta, opis TB...

  • 26.05.2011. 1

    9. Verifikacija projekta (Test Bench)

    a. Vremenska funkcija (after) b. Konstanta (constant) c. Čekanje (wait) d. Promenljive (variable);

    VHDL jezik za opis hardvera

    LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/

    26.05.2011. 2

    9. Verifikacija projekta – (Test bench)

    LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/

    26.05.2011. 3

    Test bench (TB) mora da sadrzi tri celine:

    � - komponentu koja se ispituje (UUT, Unit Under Test)

    � - pobudu (generatori test sekvence)

    � - monitor („instrument“ na kome se prati odziv).

    9. Verifikacija projekta – (Test bench)

    LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/

    26.05.2011. 4

    Generatori pobude i monitor sastavni su deo TB, tako da se radi o jedinstvenom entitetu koji ne komunicira sa okolnim svetom preko portova.

    Saglasno definiciji entiteta, opis TB entiteta ne zahteva definisanje ni portova ni opštih konstanti - generika.

    UUT je posebna celina – komponenta opisana entitetom i arhitekturom.

    Sa pobudnim signalima i monitorom UUT je vezana preko sopstvenih portova koji u odnosu na TB predstavljaju interne signale.

    Arhitektura TB opisuje se na strukturnom nivou.

    9. Verifikacija projekta – (Test bench)

    LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/

  • 26.05.2011. 5

    9. Verifikacija projekta – (Test bench)

    LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/

    26.05.2011. 6

    Definisanje pobude i željenog odziva

    Testni vektor predstavlja sve kombinacije promene ulaznih signala koje su neophodne da bi se kolo testiralo.

    Redosled ulaznih signala može da se zadaje konkurentno, direktnim dodeljivanjem vrednosti pojedinim signalima ili sekvencijalno, u okviru procesa (pogodno je kod manjih projekata, kada je dužina testnog vektora mala).

    Za veća kola, meñutim, mnogo je zgodnije zapisati povorku testnih impulsa u fajl, pa je odatle iščitati.

    9. Verifikacija projekta – (Test bench)

    LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/

    26.05.2011. 7

    Definisanje pobude i željenog odziva

    Verifikacija => modeli sa vremenskim parametrima.

    Podrazumevaju definisanje talasnih oblika ulaznih signala, a takoñe, mogu da obuhvataju i sva kašnjenja signala na putu od ulaza do izlaza.

    O definisanju kašnjenja kroz pojedine komponente biće reči nešto kasnije; sada ćemo se posvetiti samo definisanju talasnih oblika ulaznog vektora.

    9. Verifikacija projekta – (Test bench)

    LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/

    26.05.2011. 8

    Definisanje pobude i željenog odziva Što se odziva tiče, ukoliko povorka izlaznih signala nije

    velika, najbrži način provere jeste posmatranje talasnih oblika signala.

    Meñutim, u slučajevima testiranja složenijih kola, kada su povorke izlaznih signala duge, mnogo je povoljnije da se informacija o odzivu upisuje u izlazni fajl.

    Poreñenjem željenog i dobijenog talasnog oblika utvrñuje se ispravnost kola, pri čemu je moguće generisati i odgovarajuće poruke koje projektantu mogu pomoći prilikom otkrivanja i otklanjanja eventualnih nepravilnosti.

    9. Verifikacija projekta – (Test bench)

    LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/

  • 26.05.2011. 9

    Definisanje pobude i željenog odziva Da bi se ispitao odziv kola Prvi_projekat za sve

    moguće kombinacije ulaznih signala potrebno je da se kolo pobudi sa tačno osam kombinacija:

    9. Verifikacija projekta – (Test bench)

    LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/

    26.05.2011. 10

    Definisanje pobude Da bi se ispitao odziv kola Prvi_projekat za sve moguće

    kombinacije ulaznih signala potrebno je da se kolo pobudi sa tačno osam kombinacija:

    Definisanje željenog odziva

    9. Verifikacija projekta – (Test bench)

    LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/

    26.05.2011. 11

    Definisanje pobude i željenog odziva (1)

    9. Verifikacija projekta – (Test bench)

    LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/

    26.05.2011. 12

    Definisanje pobude i željenog odziva

    9. Verifikacija projekta – (Test bench)

    LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/

  • 26.05.2011. 13

    Definisanje pobude i željenog odziva (2) npr: constant PropDelay: time := 40ns; Definiše konstantnu vrednost nekog parametra koji se prosleñuje celoj

    arhitekturi (kada se definiše u deklaracionom delu arhitekture). 1. constant

    : -- naziv, ime -- tipovi iz uputstva za VHDL (bit, Bulean, integer, real -

    -- floating point, std_logic,...) ili

    -- novododati tipovi (korisnički) ili

    -- podtipovi (time, podtip od floating point,...) := -- znak za dodelu vrednosti

    -- vrednost

    ; -- (kraj naredbe)

    9. Verifikacija projekta – (Test bench)

    LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/

    26.05.2011. 14

    Definisanje pobude i željenog odziva (2) 1. constant

    Konstante se najčešće koriste za definisanje

    � dimenzija složenih objekata (nizova),

    � brojača u petljama i

    � vremenskih parametara (kao što je slučaj u ovom primeru).

    Naglasimo da se one NE koriste za definisanje dimenzija portova, jer za to služe konstante opšteg tipa (generic) koje se deklarišu u okviru entiteta, a ne arhitekture.

    9. Verifikacija projekta – (Test bench)

    LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/

    26.05.2011. 15

    Definisanje pobude i željenog odziva (2)

    2. Pristup elementu vektora pristup pojedinim bitovima std_logic_vector-a

    (pravilo važi i za ostale vektore).

    ulaz(k)- k-ti član vektora ulaz

    npr:a=> ulaz(2);

    b=> ulaz(1);

    c=> ulaz(0);

    9. Verifikacija projekta – (Test bench)

    LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/

    26.05.2011. 16

    Definisanje pobude i željenog odziva (2)

    3. Dodeljivanje vrednosti vektoru

    Zahteva da se umesto jednostrukih (koji se koriste za

    dodeljivanje vrednosti bitu), koriste dvostruki navodnici. npr: ulaz

  • 26.05.2011. 17

    Definisanje pobude i željenog odziva (2) 4. wait

    Zaustavlja proces koji bi trajao neprekidno:

    � bezuslovno (trajna)

    � uslovno – čeka: � for - za neki period (u našem primeru)

    � on - na promenu nekog signala

    � until - dok se ne ispuni neki logički uslov

    9. Verifikacija projekta – (Test bench)

    LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/

    26.05.2011. 18

    Definisanje pobude i željenog odziva (2) 4. wait

    npr: ulaz

  • 26.05.2011. 21

    Definisanje pobude i željenog odziva (4)

    Ime_Procesa: process

    (Lista signala na koje je proces osetljiv) variable ime_promenljive: tip ;

    begin .

    .

    .

    end process Ime_Procesa;

    9. Verifikacija projekta – (Test bench)

    LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/

    26.05.2011. 22

    Definisanje pobude i željenog odziva (4) variable

    dodeljivanje kod signala i promenljive signal

  • 26.05.2011. 25

    10. Tipovi kašnjenja

    LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/

    10. Tipovi kašnjenja

    � Transportno (kroz veze)

    Uvek se pojave na drugom kraju veze, ali sa zakašnjenjem

    Specifični i mora da se naglasi u kôdu

    ključna reč transport

    26.05.2011. 26

    InertniA

  • 26.05.2011. 29

    Sve vrednosti mogu da se promene pri pozivu (instanciranju) entiteta.

    U1: test

    generic map ( k1=>2,

    tlh => 7ns, thl=> 4ns, tlz => 2ns, thz => 3ns, default=>‘1‘, t_vect =>“1111“, kontrola => true) –- nema ‘;‘ ni ‘,‘

    port map (i=> ulaz, o=>izlaz);

    11. Modeli za verifikaciju

    LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/

    26.05.2011. 30

    VHDL jezik za opis hardvera

    LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/

    Šta treba da znamo? Elementarno (za potpis)

    Šta mora da sadrži test-bench?

    Osnovna (za 6)

    1. Kojim tipom opisa se definiše arhitektura testbench-a?

    2. Tipovi kašnjenja u VHDLu.

    19.05.2011.

    26.05.2011. 31

    VHDL jezik za opis hardvera

    LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/

    Šta treba da znamo?

    Ispitna pitanja a) Šta sadrži opis entiteta TestBench-a? b) Šta su i kako se definišu konstante

    constant? c) Šta su i kako se definišu promenljive

    variable? d) Šta je i kako se definiše naredba wait? e) Koje je razlika izmeñu propagacionog i

    transportnog kašnjenja? f) Čemu služe i kako se koriste opšte konstante

    (generic). 19.05.2011. 26.05.2011. 32