Sunteți pe pagina 1din 2

Examen VERIF / 2013-2014 / feb 2014

Partea I: Notiuni de verificare

1. Diferentiati notiunile de Testare Hardware si Verificare Functionala pentru circuite digitale


explicind locul in flow de dezvoltare de circuite digitale, obiectivele specifice, instrumente de
lucru, si modul in care se iau decizii privind proiectul;
2. Explicati notiunea de “coverage” (acoperire) in contextul executiei codului si in contextual
verificarii functionale;
3. Se considera un DUT “ruter YAPP” descris pe larg in laborator. Acest DUT este un comutator
de pachete configurabil si implementeaza intern 2 registri de 8 biti si o interfata de
configurare. Analizind descrierea pentru registri si pentru interfata de configurare din
specificatii sa se intocmeasca specificatiile de verificare pentru functiunile descrise. Se
poate considera o abordare black-box sau gray-box si se vor enumera:
a. numele functiunii urmarite;
b. starea initiala a DUT;
c. semnalele de intrare si valorile acestora;
d. semnalel de iesire si valorile acestora;
e. comportamentul DUT si modul in care se verifica faptul ca functionalitatea este
implementata correct.

Pachetul regiştrilor ruter-ului DUT (Design Under Test)

Router-ul de pachete conţine doi regiştri interni care conţin informaţii despre configuraţie. Aceşti
regiştri sunt accesaţi cu ajutorul portului interfeţei host astfel:
MAXPKTSIZE – 8 biţi – adresa 0, R/W – dupa reset valoarea 0x3F;
ROUTER_EN – 1 bit – adresa 1, R/W – dupa reset valoarea 1;

Registers
7 6 5 4 3 2 1 0
MAXPKTSIZE 0
address
ROUTER_ENABLE 1

Dacă lungimea pachetului de intrare este mai mare decât valoarea registrului MAXPKTSIZE, ruterul
lasă întregul pachet şi flag-ul de eroare apare.
Registrul ROUTER_EN oferă controlul dezactivării ruterului. Activând sau dezactivând ruterul în
timpul transmisiei de pachete va duce la un comportament imprevizibil.

Protocolul portului interfeţei host (HBUS)

Toate semnalele de intrare sunt active în 1 logic şi sunt conduse pe frontul negativ al clock-ului.
Portul host oferă acces sincronic citire/scriere pentru a programa ruterul.
O operaţie de scriere durează un ciclu de clock astfel:
hwr_rd şi hen trebuie să fie 1. Data de pe hdata este apoi sincronizată pe următorul front
pozitiv al clock-ului în registrul bazat pe decodificarea haddr.
hen este pus în 0 în următorul ciclu
O operaţie de citire durează doi cicli de clock astfel:
hwr_rd trebuie să fie 0 şi hen trebuie să fie 1. În primul ciclu de clock, haddr este eşantionat şi
hdata conduce prin DUT în al 2-lea ciclu de clock.
hen este apoi pus în 0 după terminarea ciclului 2. Acest lucru face ca DUT să împartă în 3 stări
magistrala hdata.
1 2 3 4 5 6 7 8
clock

hen

hwr_rd

hdata D D

haddr A A

transaction write read

A = Address, D = Data

Partea II: Notiuni de limbaj System Verilog si organizare a verificarii


1. Se considera doua device-uri unul INITIATOR celalalt TERGET care comunica intre ele prin
doua semnale Req si Grant. Reprezentati graphic interconectarea dispozitivelor. Scrieti o
interfata care permite interconectarea acestora. Srieti prototipul pentru module si
interconectarea lor.
2. Pentru circuitul descries anterior mecanismul Request-Grant este cu timeout. Cererea de
Req se face prin plasarea liniei in 1 de catre INITIATOR. Se asteapta raspunsul TARGET-ului
semnalat pe linia Grant prin plasarea ei in 1. Daca acest raspuns nu soseste intr-un timp
maxim precizat se abandoneaza cererea. Utilizind structura fork … join/join_any/join_none
si disable sa se implementeze mecanismul descries.
3. Descrieti structura unui agent pentru o interfata de bus. Explicati modul cum sunt
transferate datele intre GEN->DRV si cum se poate realiza sincronizarea intre cele doua.

S-ar putea să vă placă și