Sunteți pe pagina 1din 6

Universitatea Tehnica Gheorghe Asachi din Iasi

Facultatea de Electronica, Telecomunicatii si Tehnologia Informatiei


Master: Tehnici Moderne de Prelucrare a Semnalelor (TMPS)
Proiectarea circuitelor VLSI avansate (PCVA)

Proiect VERIF YAPP Router

Disciplina: Verificarea funcional a circuitelor integrate digitale


Titular: sef lucrari dr. ing. Victor Andrei Maiorescu
Anul universitar: 2014-2015, semestrul I
Prezentare general proiect
Pe parcursul acestui proiect se va dezvolta un mediu de verificare pentru un DUV(Device
Under Verification) YAPP Router (Yet Another Packet Protocol). Dezvoltarea mediului de
verificare se va face gradual adaptat funcionalitilor DUV. In mediul de verificare vor fi
componente pentru verificarea funcionrii interfeelor, componente pentru verificarea logicii
interne a DUV si se va colecta coverage.

Descrierea generala YAPP Router


DUV este un ruter de pachete (in realitate un comutator de pachete) avnd un port de
intrare (In I/F i trei porturi de ieire (Out0 I/F, Out1 I/F si Out2 I/F) denumite si canale. Interfaa
canalului de intrare respectiv cele ale canalelor de ieire sunt similare i permit conectarea
nlnuit a mai multor dispozitive. Operarea pe aceste interfee se face cu pachete avnd o
structur cu antet, date i suma de control.
YAPP Packet Router

Channel In In I/F Out0 I/F Channel Out 0

error DUT
reset
registers Out1 I/F Channel Out 1

clock
MAXPKTSIZE

ROUTER_EN

Host
Host I/F Out2 I/F Channel Out 2

Figura 0.1: DUV cu interfeele i fluxurile de date

Intern, DUV implementeaz un set de regitri ce controleaz funcionarea. Configurarea


se realizeaz prin valorile implicite dup reset sau prin operare pe interfea de configurare (Host
I/F). Protocolul pe aceasta interfaa accepta operaii de citire i scriere la un registru specificat.
Porturile DUV, sensul lor i dimensiunea sunt reprezentare n figura urmtoare. Intern,
pentru canalele de ieire sunt implementate zone de memorie de tip FIFO (16 locaii de un octet)
pentru memorarea temporar a unor pachete scurte sau a unor fragmente de pachete lungi.
Funcionarea este sincron, controlat de semnalul de clock, activ pe frontul pozitiv.
Resetul este sincron cu polaritate normal.
Semnalul de eroare indic recepionarea unui pachet cu eroare, are polaritate normal i
rmne asertat pentru o perioad de timp dup identificarea unei erori.
YAPP Packet Router

8 8
in_data data_0

in_data_vld data_vld_0
In I/F Out0 I/F
in_suspend suspend_0

reset
DUT 8
data_1

data_vld_1
clock registers Out1 I/F
suspend_1
MAXPKTSIZE

ROUTER_EN
8 8
hdata data_2
8
haddr data_vld_2
Out2 I/F
hen
Host I/F
suspend_2

hwr_rd
error

Figura 0.2: Porturile YAPP router

Pachetul de date
Un pachet este o secven de octei dintre care primul este un antet (header), urmtorii
sunt octei de date(payload) iar ultimul octet conine paritatea calculat pentru antet i date
(parity).
YAPP Packet Structure
7 6 5 4 3 2 1 0
length addr byte 0 HEADER
payload[0] byte 1
payload[1]
PAYLOAD

payload[n-1] byte N
parity byte N+1 PARITY

Figura 0.3: Structura pachetului: cmpurile Header, Payload i Parity

Antetul const dintr-un cmp de adres (addr.) pe 2 bii i un cmp de lungime (length) 6
bii. Cmpul de adres este utilizat pentru a se determina ctre ce canal de ieire ar trebui
comutat pachetul; adresa 3 este ilegal. Cmpul lungime specific numrul de octei de date
(payload) ce vor urma n pachet. Un pachet poate avea payload de dimensiune cuprins ntre un
octet(minim) i 63 octei(maxim). Cmpul de paritate este de un octet, paritate impar bit cu bit,
calculat pentru octeii de antet i de date ai pachetului.
Protocolul magistralei de date (referitor la canalul de intrare)
Toate semnalele de intrare sunt active n 1 logic i trebuiesc s fie conduse pe frontul
negativ al semnalului de clock. Semnalul in_data_vld trebuie s fie meninut n 1 logic pe acelai
clock atunci cnd primul octet din pachet (octetul de antet) este plasat pe in_data. Fiecare octet
ulterior de date trebuie s fie plasat pe intrarea de date la fiecare front negativ al semnalului de
clock.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
clock

delay
data_vld

data H D D D P H D D D P

suspend

sent_packet Packet 1 Packet 2

H = Header, D = Data, P = Parity

Figura 0.4: Secven pentru transmiterea a dou pachete de date: fr suspend (stnga) i cu suspend (dreapta)

Dup ce ultimul octet de date a fost transmis, la frontul negativ al semnalului de clock,
semnalul in_data_vld trebuie s mai fie trecut n 0 logic i trebuie plasat pe intrarea de date
octetul de paritate.
Datele de intrare nu se pot schimba cnd semnalul in_suspend este activ (indicnd FIFO
plin). Semnalul error este 1 logic atunci cnd a fost transmis un pachet cu o paritate greit i
este meninut asertat ntre 1 i 10 cicli.
Protocolul magistralei de date (referitor la un canal de ieire)
Toate porturile de ieire sunt active n 1 logic i trebuiesc urmrite pe frontul negativ al
semnalului de clock. Ruterul susine n 1 logic semnalul data_vld_x cnd sunt date valide pe
magistrala de ieire data_x. Semnalul de intrare suspend_x trebuie atunci s treac n 0 logic pe
frontul negativ al semnalului de clock, n care data este citit de la magistrala data_x. Att timp
ct semnalul suspend_x rmne inactiv, pe magistrala data_x este plasat un nou octet din pachet
la fiecare front pozitiv al semnalului de clock.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
clock

in_data_vld

in_data H D D D P H D D D P

data_vld_0
Response
delay
suspend_0

data_0 H D D D P

received_packet Packet 1 (addr = 0)

H = Header, D = Data, P = Parity

Figura 0.5: Secven pentru transmiterea unui pachet de date: legtura intrare-ieire

Setul de regitri
DUV conine doi regitri interni care memoreaz informaii despre configuraie:
MAXPKTSIZE 6 bii adresa 0 R/W reseteaz valoarea lui h3F
ROUTER_EN 1 bit adresa 1 R/W reseteaz valoarea lui 1
Registrii
7 6 5 4 3 2 1 0
MAXPKTSIZE 0
adresa
ROUTER_EN 1

Figura 0.6: Regitrii YAPP ruter

Dac lungimea pachetului de intrare este mai mare dect valoarea registrului
MAXPKTSIZE, YAPPRouter abandoneaz ntreg pachetul i semnalul de eroare este asertat.
Registrul ROUTER_EN permite dezactivarea funciei de comutare de pachete a ruterului.
Activarea sau dezactivarea funcionrii ruterul n timpul transmisiei de pachete va conduce la un
comportament imprevizibil.
Protocolul magistralei de configurare (Host I/F)
Toate semnalele sunt active n 1 logic i sunt conduse pe frontul negativ al clock-ului.
Interfaa ofer acces sincronic citire/scriere pentru a programa ruterul prin operaii de citire
respectiv scriere la registrul specificat.
O operaie de scriere este cu durata unui ciclu de clock astfel:
hwr_rd i hen trebuie s fie 1 i vor fi meninute cel puin un ciclu de clock;
valoarea dorit a fi scris n registru este plasat pe hdata iar adresa registrului pe
haddr la frontul negativ al semnalului de colck. Operaia se realizeaza pe frontul
front pozitiv al semnalului de clock;
hen este pus n 0 n urmtorul ciclu de clock.
O operaie de citire este cu durata a doi cicli de clock astfel:
hwr_rd trebuie s fie 0 i hen trebuie s fie 1 si vor fi meninute cel puin doi cicli
de clock.
n primul ciclu de clock, adresa registrului de la care se citete este plasat pe
haddr la frontul negativ al semnalului de colck i este eantionat la frontul pozitiv
al semnalului de clock.
n al 2-lea ciclu de clock, pe linia hdata este plasat valoarea din registru;
hen este apoi pus n 0 dup terminarea ciclului 2.
Linia hdata este de tip input-output n interfa, ea putnd fi controlat de ctre DUV(n
operaiile de citire), din exteriorul DUV(n operaiile de scriere) sau trecut ntr-o stare de nalt
impedan.
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

Figura 0.7: Secven de scriere i de citire pe interfaa Host I/F

Funcia de comutare de pachete


Comutarea de pachete este controlat de valoarea memorat n registrul ROUTER_EN.
Un pachet recepionat pe IN I/F este procesat dac lungimea sa este valid (mai mare ca
0) i dac este mai mic sau cel mult egal cu valoarea memorat n registrul MAXPKTSIZE.
Pachetele avnd erori de paritate vor fi semnalate ca atare i abandonate.
Direcionarea pachetelor ctre unui din porturile de ieire se face funcie de adresa
indicat n antetul pachetului. Pachetele avnd adrese invalide vor fi abandonate.

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