Professional Documents
Culture Documents
Bachelor - Thesis 32 PDF
Bachelor - Thesis 32 PDF
ELEKTROTEHNIČKI FAKULTET
Diplomski rad
Mentor: Kandidat:
doc. dr Mladen Knežić Miloš Kovačević
Rezime:
Sadržaj
Lista tabela i
Lista slika ii
1 Uvod 1
4 Praktična implementacija/realizacija 25
4.1 Platforma/tehnologija za implementaciju - FPGA . . . . . . . . . . . . . 27
4.1.1 Cyclone IV E . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
4.1.2 Altera DE2-115 razvojno okruženje . . . . . . . . . . . . . . . . . 34
4.2 Arhitektura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
4.2.1 MAC Interfejs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
4.2.2 RS Interfejs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
4.2.3 Management and Control Interfejs . . . . . . . . . . . . . . . . . 37
4.2.4 Transmit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
4.2.5 Receive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
4.2.6 Express filter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
5 Verifikacija 45
5.1 UVM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
5.1.1 UVM Faze . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
5.1.2 UVM Factory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
5.1.3 Transaction Level Model - TLM . . . . . . . . . . . . . . . . . . . 49
5.1.3.1 UVM Sequence Item . . . . . . . . . . . . . . . . . . . . 50
5.1.3.2 UVM Sequences . . . . . . . . . . . . . . . . . . . . . . 51
5.1.3.3 UVM Driver . . . . . . . . . . . . . . . . . . . . . . . . 51
5.1.3.4 UVM Monitor . . . . . . . . . . . . . . . . . . . . . . . 51
5.1.3.5 UVM Sequencer . . . . . . . . . . . . . . . . . . . . . . 51
5.1.3.6 UVM Agent . . . . . . . . . . . . . . . . . . . . . . . . . 52
5.1.3.7 UVM Scoreboard . . . . . . . . . . . . . . . . . . . . . . 52
5.1.3.8 UVM Environment . . . . . . . . . . . . . . . . . . . . . 52
5.1.3.9 UVM Test . . . . . . . . . . . . . . . . . . . . . . . . . 53
5.1.3.10 UVM Testbench . . . . . . . . . . . . . . . . . . . . . . 53
6 Testiranje i rezultati 54
6.1 Testovi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
6.1.1 random test/random test non preemptive . . . . . . . . . . 58
6.1.2 periodic traffic test/periodic traffic test non preemptive . 58
6.2 Rezultati . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
7 Zaključak 68
Bibliografija 70
Spisak tabela
i
Spisak slika
2.1 Primjer sinhronizacije unutar TSN mreže koristeći gPTP protokol [1] . . 6
2.2 Primjer uspostavljanja toka unatar TSN mreže po SRP protokolu [2] . . 7
2.3 Ilustracija načina rada CBS uobličavača saobraćaja [3] . . . . . . . . . . 9
2.4 Periodični saobraćaj prema IEEE 802.1Qbv standardu [4] . . . . . . . . . 10
2.5 Primjer kada prenos frejma započne unutar jednog intervala a završi se
unutar drugog [5] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.6 Format standardnog Ethernet okvira [6] . . . . . . . . . . . . . . . . . . 11
2.7 Položaj zaštitnog intervala unutar jednog komunikacionog ciklusa [7] . . . 11
ii
4.9 Takt mreža Cyclone IV familije . . . . . . . . . . . . . . . . . . . . . . . 34
4.10 Funkcionalna blok šema MAC Merge Sublayer -a . . . . . . . . . . . . . . 36
4.11 Dijagram mašine stanja za Transmit proces . . . . . . . . . . . . . . . . 42
4.12 Dijagram mašine stanja Receive proces . . . . . . . . . . . . . . . . . . . 43
4.13 Dijagram mašine stanja Express filter proces . . . . . . . . . . . . . . . . 44
1
ponašanje standardnog Ethernet-a potrebno je proširiti skup mogućnosti koje omogućavaju
da se on koristi u komunikaciji u realnom vremenu.
TSN definiše dva standarda pod nazivom Frame Preemption (IEEE 802.1Qbu) i Specifi-
cation and Management Parameters for Interspersing Express Traffic (IEEE 802.3br) koji se
odnose na mehanizam za prekidanje Ethernet okvira. On dozvoljava, pod odredenim uslovima,
da okvir višeg prioriteta prekine ili odloži slanje okvira nižeg prioriteta, pošalje okvir višeg
prioriteta te nastavi sa slanjem (ostatka) okvira nižeg prioriteta. Na ovaj način je smanjeno
vrijeme kašnjenja pri prenosu vremenski-kritičnih okvira izmedu krajnjih čvorova. Dok je
korišćenjem datog mehanizma u koelaboraciji sa uobličavačem saobraćaja zasnovanog na
vremenu moguće smanjiti trajanje zaštitnog intervala čime se značajno smanjuje vrijeme
2
trajanja perioda jednog komunikacionog ciklusa, koji predstavlja uobičajni indikator prilikom
ocjene kvaliteta sistema koji rade u realnom vremenu.
3
2. Vremenski kritične komunikacione mreže
4
and fault-tolerance) – Svi uredaji koji učestvuju u komunikaciji u realnom vremenu
pridržavaju se istih pravila pri odabiru komunikacionih putanja, rezervisanja propusnog
opsega i vremenskih intervala, koristeći više disjunktnih putanja u cilju dobijanja sistema
otpornog na otkaze/greške.
Cilj TSN skupa standarda jeste ne samo postizanje konvergirane mreže u kojoj sve klase
saobraćaja mogu bez problema da koegzistiraju, nego i koegzistenciju sa mrežama koje ne
implementiraju TSN funkcionalnosti (standardne Ethernet mreže, računarske mreže), gdje je
determinističko ponašanje zagarantovano samo u TSN LAN-u (eng. Local Area Network ).
2.1 Sinhronizacija
Najbitniji mehanizam za rad u realnom vremenu je svakako sinhronizacija. Za komunikaci-
ju u realnom vremenu sa veoma strogim i fiksnim vremenskim zahtjevima (eng. hard real-time,
non-negotiable) unutar kojih se mora izvršiti transfer paketa od jednog do drugog čvora,
svi uredaju u mreži moraju imati isto referentno vrijeme na osnovu kojeg će se medusobno
sinhronizovati. Ovo se ne odnosi samo na krajnje čvorove u mreži, kao što su kontroleri i
proizvodni (upravljani) uredaji (eng. manufacturing robots), nego i na sve mrežne komponente
poput Ethernet komutatora (eng. Ethernet Switch). Vrijeme se kroz TSN mrežu distribuira
iz jednog centralnog ,,vremenskog izvora” do ostalih uredaja u mreži koristeći gPTP (eng.
Generic Precision Time Protocol ) protokol definisan IEEE 802.1AS standardom. gPTP koristi
BMCA (eng. Best Master Clock Algorithm) za izbor najpouzdanijeg ,,vremenskog izvora”
(eng. Master Clock, GrandMaster – GM) koji će se koristiti kao referentni za sve ostale uredaje
u mreži (slika 2.1). Tačnost sinhronizacije zavisi od preciznosti mjerenja kašnjenja na vezi
(link -u). U okviru IEEE 802.1AS koristi lokalnu sinhronizaciju, kod koje se odnos izmedu
frekvencija lokalnog i GM sata koristi za izračunavanje sinhronizacionog vremena, a odnos
izmedu frekvencija lokalnog i GM takta za izračunavanje propagacionog kašnjenja.
Protokol za rezervaciju resursa mreže IEEE 802.1Qat (eng. Stream Reservation Protocol
– SRP ) rezerviše resurse za pojedine tipove saobraćaja i upravlja (uspostavlja i raskida
5
Slika 2.1: Primjer sinhronizacije unutar TSN mreže koristeći gPTP protokol [1]
tokove, eng. streams) saobraćajem u mreži. Svaki tok se identifikuje i registruje sa 64-bitnim
identifikatorom (StreamID) kojeg čine 48-bitna MAC adresa (eng. Media Access Control –
MAC) i 16-bitno UniqueID polje. U osnovi, SRP protokol radi na sljedeći način:
• čvor odgovoran za slanje podataka (eng. Talker ) oglašava ostalim uredajima mreže da
ima podatke za slanje deklarisanjem atributa Talker Advertise (slika 2.2a),
• ako Talker primi bar jedan pozitivan odgovor, to znači da je uspostavljena putanja
Talker -> Listener, odn. resursi su rezervisani i može se započeti prenos. U suprotnom,
ako je primljen negativan odgovor, to znači da neki od komutatora nije u mogućnosti
da ispoštuje zahtjeve potrebne za dati tok/komunikaciju.
6
(a) (b)
Slika 2.2: Primjer uspostavljanja toka unatar TSN mreže po SRP protokolu [2]
Kontrola i rezervacija putanja PCR (eng. Path Control and Reservation) predstavlja
nadogradnju IS-IS (eng. Intermediate Station to Intermediate Station) protokola radi us-
postavljanja više putanja izmedu čvorova unutar komutiranog Ethernet-a, bez generisanja
zatvorenih logičkih petlji (loop-back ).
7
unutar Ethernet komutatora koje kod standardnog, nedeterminističkog Ethernet-a, ne može
biti izbjegnuto. Ovo ne predstavlja problem u okruženjima gdje aplikacije nemaju vremenska
ograničenja, dok u industrijskim i automobilskim okruženjima, u kojima su aplikacije vremen-
ski kritične, predstavlja ogroman problem. TSN poboljšava standardni Ethernet dodavanjem
mehanizma koji rezerviše izolovane vremenske intervale za različite klase saobraćaja i osigurava
pravovremenu isporuku okvira kontrolnih aplikacija zadovoljavajući i Hard i Soft zahtjeve
komunikacije u realnom vremenu. Mehanizam zadržava upotrebu VLAN prioritetne šeme
kako bi se osigurala potpuna kompatibilnost sa standardnim Ethernet-om.
TSN definše četiri različite klase saobraćaja: kontrolni (CLASS CDT) saobraćaj, koji ima
najviši prioritet, zatim slijede dvije klase multimedijalnog saobraćaja (po prioritetu) – klasa
A (Class A) i klasa B (Class B), i konačno tzv. klasični ,,best effort” saobraćaj, koji ne nudi
nikakve garancije u smislu determinizma. Navedene klase saobraćaja kontrolišu uobličavači
koji obezbjeduju da kašnjenja budu ograničena s gornje strane.
Uobličavač zasnovan na kreditu tokova CBS1 (engl. Credit Based Shaper ) definiše kredite
za dva različita reda čekanja namijenjena dvjema klasama: A i B. CBS je predviden za
kontrolu multimedijalnog saobraćaja (npr. video i audio sadržaja).
Način rada ovog uobličavača saobraćaja ilustrovan je na slici 2.3. Slanje okvira je
dozvoljeno samo kada kredit ima nenegativnu vrijednost. Tokom slanja, vrijednost kredita
se smanjuje, a slanje traje sve dok ima okvira u redu čekanja ili dok dati kredit ne dostigne
vrijednost sendSlope (negativna vrijednost odredena brzinom prenosa na datom portu)
propusnim opsegom rezervisanim za dati red čekanja). Nakon toga, slanje se prekida i
odgovarajući kredit počinje da raste sve dok ne dostigne nenegativnu vrijednost. Kada kredit
1
Originalno, CBS je dio AVB skupa standarda
8
dostigne nenegativnu vrijednost, ponovo je ispunjen uslov za slanje paketa iz reda čekanja.
Ukoliko je dati red čekanja prazan, a vrijednost kredita je negativna, kredit se uvećava sve dok
ne dostigne nultu vrijednost. Ako je ispunjen uslov za slanje okvira (kredit ima nenegativnu
vrijednost), ali je na datom portu aktivno slanje nekog drugog okvira (iz nekog drugog reda
čekanja, neke druge klase itd.), tada, dok se čeka, vrijednost kredita se uvećava i slanje počinje
odmah po završetku aktivnosti na datom portu.
CBS sprečava zagušivanje veze ,,best effort” saobraćajem koje bi uzrokovalo kašnjenje
slanja saobraćaja višeg prioriteta (klase A i B).
9
njegov rad oslanja na sinhrono vrijeme u mreži.
Kada se na Ethernet interfejsu započne slanje okvira, taj prenos mora u potpunosti da
se završi prije nego što se može započeti prenos novog okvira. Ovo svojstvo mreža baziranih
na Ethernet-u predstavlja izazov TDMA pristupu na kojem se bazira rad TAS rasporedivača.
Na slici 2.5, prikazan je scenario koji oslikava pomenuti izazov. Sa slike vidimo da, pred sam
kraj drugog intervala u ciklusu n, počinje slanje novog okvira. Nažalost, dužina ovog okvira
je prevelika da bi se prenos završio unutar intervala 2. Kako prenos ovog okvira ne može
biti prekinut, slanje datog okvira će se nastaviti u vremenskom intervalu 1 sljedećeg ciklusa
(n + 1) i eventualno odgoditi (blokirati) početak prenosa vremenski-kritičnog okvira iz ovog
intervala.
Slika 2.5: Primjer kada prenos frejma započne unutar jednog intervala a završi se unutar drugog [5]
TAS rasporedivač mora obezbijediti da Ethernet interfejs bude slobodan, tj. da nije u toku
prenos okvira, na prelazu iz jednog vremenskog intervala u drugi. Ovo se postiže uvodenjem
zaštitnog intervala (eng. Guard Band ) prije svakog vremenskog intervala rezervisanog za
vremenski-kritičan saobraćaj, kao što je ilustrovano na slici 2.7. Tokom trajanja zaštitnog
10
intervala nije dozvoljeno slanje novih okvira, već se samo mogu završiti prenosi koji su trenutno
u toku. Trajanje zaštitnog intervala mora da omogući završetak slanja okvira maksimalne
dužine u okviru zaštitnog ingervala. Standardni Ethernet okvir (uključujući preambulu, SFD
i IFG) po [6] ima dužinu od 1542 okteta (slika 2.6). Stoga imamo da dužina trajanja zaštitnog
intervala pri bitskoj brzini od 100 [Mb/s] treba da iznosi
1542[B]
tmaxf rame = = 123.36 · 10−6 [s]. (2.1)
12.5 · 106 [B/s]
U datom slučaju, dužina zaštitnog intervala mora da bude bar 123.36 [µs].
Slika 2.7: Položaj zaštitnog intervala unutar jednog komunikacionog ciklusa [7]
Upotreba zaštitnog intervala smanjuje ukupan koristan propusni opseg (protok) unutar
datog vremenskog intervala. Sa slike 2.7 može se primjetiti da je korisna dužina intervala 2
skraćena za dužinu zaštitnog intervala. Iako zaštitni intervali uspijevaju da zaštite vremen-
ske intervale visokog prioriteta (vremenski-kritičan saobraćaj), oni imaju i neke značajne
nedostatke:
• Vrijeme koje rezerviše zaštitni interval je izgubljeno, tj. ne može se koristiti za prenos
11
bilo kakvih podataka unutar mreže, jer za vrijeme trajanja zaštitnog intervala Ethernet
port mora biti pasivan. Stoga se izgubljeno vrijeme negativno oslikava na propusni
opseg pozadinskog (,,best effort”) saobraćaja na datom Ethernet portu.
• Pojedinačni vremenski interval ne smije biti kraći od dužine zaštitnog intervala. Ovo se
posebno negativno održava pri nižim brzinama prenosa i dužim zaštitnim intervalima,
tj. trajanje vremenskog intervala ograničeno je dužinom zaštitnog intervala.
Da bi se još više ublažio negativan efekat koji unosi zaštitni interval, TSN radna grupa je
predstavila novi koncept – mehanizam za prekidanje okvira ili FP (eng. Frame Preemption).
S obzirom da je osnovna tema ovog rada pomenuti mehanizam, on će detaljno biti opisan u
narednom poglavlju.
12
3. Mehnizam za prekidanje okvira
Mehanizam za prekidanje okvira (FP), opisan u [9] u [10], uvodi mogućnost da se pauzira
slanje okvira sa manje kritičnim sadržajem (pod odredenim uslovima), da bi se poslao okvir sa
kritičnim sadržajem, nakon čega se nastavlja slanje pauziranog okvira. Radne grupe IEEE802.1
i IEEE802.3 (s obzirom da mehanizam zahtijeva promjene servisa upravljanja i servisa na MAC
nivou) su, uvodenjem ovog mehanizma, napravile novi korak u komunikacionim tehnologijama
omogućavajući prekidanje slanja okvira na drugom sloju OSI modela. FP definiše servise
za dva MAC modula: preemptable MAC (pMAC) i express MAC (eMAC). eMAC okvir
može da prekine slanje pMAC okvira, dok pMAC okvir ne može da prekine slanje ni eMAC
okvira ni pMAC okvira (ne moze da prekine samog sebe). Na ovaj način je izvršena još jedna
prioritetizacija, tako što eMAC ima viši prioritet (eng. express traffic ili neprekidivi saobraćaj)
u odnosu na pMAC (eng. preemptable traffic ili prekidivi saobraćaj). FP mehanizam mapira
prethodno navedene klase saobraćaja označene odgovarajućim VLAN prioritetima tako što
se jedna klasa odgovarajućeg prioriteta proglasi kao express traffic (kritični saobraćaj), a
sve druge klase i prioriteti se proglase kao preemptable traffic (nekritični saobraćaj). Osim
dodavanja još jednog MAC modula, IEEE802.3br standard propisuje neznatno izmijenjenu
strukturu Ethernet okvira. Okvir prilagoden za potrebe FP mehanizma, naziva se mOkvir
(mPacket) i on je krucijalan za ispravanost rada mehanizma.
13
Slika 3.1: Ilustracija rada FP mehanizma kada se koristi TAS mehanizam
143[B]
tmin non preemptablef rame (f = 100M Hz) = = 11.44 · 10−6 [s]. (3.1)
12.5 · 106 [B/s]
Poredenjem vremena trajanja zaštitnog intervala sa (11.44 [µs]) i bez (123.36 [µs]) FP
mehanizma (dato u 2.1), može se uvidjeti poboljšanje od preko 10 puta (10.78).
14
Slika 3.2: Ilustracija rada FP mehanizma kada se ne koristi TAS mehanizam
Na ovaj način, MMS podržava umetanje ekspresnog saobraćaja unutar prekidivog sao-
braćaja, tj. omogućava koegzistenciju kritičnog i nekritičnog saobraćaja na istom fizičkom
medijumu.
Takode, u ovom članu je data specifikacija MAC Merge Service Interface-a (MMSI),
odnosno specificiran je interfejs usluga koje MMS pruža višem sloju. (slika 3.3). Osnovna
(a ujedno i jedina) usluga koju MMS pruža višem sloju jeste zaustavljanje ili nastavljanje
slanja prekidivog (preemptable) saobraćaja, čime se smanjuje vrijeme kašnjenja (eng. latency)
neprekidivog (express) saobraćaja.
• MMS može da prekine nekritični (manje kritični) saobraćaj čije je slanje u toku i
1
Skraćenica xMII predstavlja generički Media Independent Interface za implementacije koje podržavaju
bitske brzine od 100 [Mb/s] i više: Npr. za 100 [Mb/s] implementaciju ovaj interfejs se naziva MII; za 1 [Gb/s]
implementaciju se naziva GMII, za 10 [Gb/s] XGMII; itd.
15
Slika 3.3: Konceptualni blok diagram MAC Merge Sublayer -a
• okviri koji (pri)stižu preko eMAC uslužnog interfejsa (eng. express MAC service inter-
face), tj. kritični saobraćaj ili
prekinu slanje okvira pristiglog preko pMAC uslužnog interfejsa (eng. premptable MAC service
interface), tj. manje kritični saobraćaj. Sa druge strane, kada mehanizam za prekidanje okvira
nije aktivan, MMS ne dozvoljava prekidanje slanja okvira pristiglog preko pMAC uslužnog
interfejsa niti okvirima pristiglim preko eMAC uslužnog interfejsa niti pri iniciranju zahtjeva
od strane MMSI. Bez obzira da li je mehanizam za prekidanje okvira aktivan ili ne, MMS
16
dozvoljava kritičnom saobraćaju ili zahtjevu za prekid da spriječi, odnosno odloži slanje
nekritičnog ili manje kritičnog saobraćaja
Veza sa OSI (eng. Open System Interconnection) referntnim modelom i IEEE 802.3
Ethernet MAC modelom je prikazana na slici 3.4.
Slika 3.4: Veza Ethernet MAC-a (sa MMSL) i OSI referentnog modela
• eMAC PLS (eng. Physical Signaling – PLS), pMAC PLS i RS PLS servisni interfejs –
čiji je detaljni opis dat u sekciji 6 dokumenta [6]
MAC sloj enkapsulira MAC frejm u MAC okvir (standardni Ethernet okvir), dok MMS
taj okvir modifikuje na način koji je opisan u nastavku (3.1.2.1 Format mOkvira). Ovako
modifikovani MAC okvir se naziva mPacket – mOkvir i kada je mehanizam za prekidanje
okvira aktivan, MMS šalje mOkvire RS sloju. Jedan mOkvir može da sadrži jednu od četiri
navedene varijante:
17
• kompletan prekidivi (preemptable) frejm,
MMS prepoznaje dva formata mOkvira u zavisnosti od sadržaja koje će biti poslat. Prvi
format je rezervisan za okvire koje sadrže kompletan neprekidivi (express) frejm, kompletan
prekidivi (preemptable) frejm i inicijalni (početni) fragment prekidivog frejma (slika 3.5b), koji
se strukturalno ne razlikuje od standarnog Ethernet okvira (slika 3.5a). Drugi format mOkvira
je rezervisan za fragmente nastavka prekidivog frejma (slika 3.5c) čija je struktura (neznatno)
izmijenjena u odnosu standarni Ethernet okvir. Naime, u drugom formatu mOkvira je dodato
još jedno polje, frag_count, na uštrb broja okteta polja preambule.
3.1.2.2 Preambula
Kao i kod standardnog Ethernet okvira, mOkvir počinje preambulom čija je dužina 7
okteta, ako govorimo o prvom formatu (slika 3.5b). Kada je riječ o drugom formatu, polje
preambule ima dužinu od 6 okteta (slika 3.5c). Bez obzira koji format je u pitanju, prvi ili
drugi, vrijednost svakog okteta preambule je 0x55 (01010101).
Neposredno nakon preambule slijedi polje SMD (eng. Start mPacket Delimiter ) koje,
osim što označava početak MAC frejma, indentifikuje format i sadržaj mOkvira. Identifikacija
18
formata je usko vezana za preambulu. Naime, ako se nakon 7 primljenih okteta preambule
primi SMD prvi format je u pitanju (slika 3.5b), ali ako se SMD primi nakon 6 okteta
preambule tada je riječ o drugom formatu (slika 3.5c). Sama vrijednost polja SMD identifikuje
sadržaj okvira, tj. da li mOkvir sadrži kompletan neprekidivi frejm, inicijalni ili kompletan
prekidivi frejm ili bilo koji fragment/dio prekidivog frejma. Sve važeće SMD vrijednosti su
navedene u tabeli 3.1.
MMS po preuzimanju okvira bilo od eMAC modula bilo od pMAC modula zamijenjuje
SFD vrijednost sa odgovarajućom SMD vrijednošću. Ako okviri pristižu od eMAC-a, ne-
prekidivi frejmovi, SFD vrijednost se zamijenjuje sa SMD-E vrijednošću. Kako je SMD-E
vrijednost ista kao i SFD vrijednost, format mOkvira koji enkapsulira neprekidivi frejm je
isti kao i format standardnog Ethernet okvira. Situacija se malo komplikuje kada okviri
pristižu od pMAC-a (prekidivi frejmovi). Naime, ako je sadržaj mOkvira kompletan prekidivi
frejm ili inicijalni (početni) fragment/dio prekidivog frejma, SFD vrijednost se zamijenjuje sa
odgovarajućom SMD-S2 vrijednošću, a ako je sadržaj mOkvira bilo koji fragment prekidivog
frejma, tada se SFD vrijednost mijenja sa odgovarajućom SMD-C3 vrijednošću.
19
3.1.2.4 frag count
Frag count predstavlja polje koje ukazuje na broj fragmenta prekinutog okvira koji
je enkapsuliran u mOkvir i postoji samo u drugom formatu mOkvira (slika 3.5c)). Svaki
put kada se šalje inicijalni fragment nastavka prekidivog frejma (ukoliko je frejm prethodno
prekinut pa se slanje nastavlja ) polje frag count ima vrijednost nula. Sve važeće frag count
vrijednosti su navedene u tabeli 3.2.
3.1.2.5 mPodaci
Polje mPodaci (mData) ustvari predstavlja MAC frejm ne računajući polje kontrolnog
zbira (eng. Frame Check Sequence – FCS ili Cyclic Redundancy Check – CRC), tj. odredišnu
adresu – 6 okteta, izvorišnu adresu 6 – okteta, Q-tag prefiks (ako je riječ o Q-tagovanom
Ethernet frejmu) – 4 okteta, tip/dužinu – 2 okteta, podatke - (42/46 – 1500) okteta i dopunu
(ako je potrebno). Minimalna veličina ovog polja je 60 okteta i zadatak i eMAC sloja i pMAC
sloja je da obezbijede minimalnu dužinu frejma prije slanja istog.
3.1.2.6 CRC
Posljednje polje mOkvira sadrži kontrolni zbir ili cikličnu provjeru redundanse, CRC,
datog frejma. Osim što CRC služi za provjeru da li se desila greška prilikom prenosa CRC
služi da se identifikuje da li je u mOkviru sadržan potpun ili djelimičan MAC frejm ili pak
kontrolni MAC frejm. Naime, ako je riječ o potpunom MAC frejmu, polje kontrolnog zbira
sadrži FCS polje MAC frejma, dok za ostale varijante mOkvira polje kontrolnog zbira sadrži
mCRC vrijednost. mCRC se računa nad oktetima koji dolaze neposredno nakon SMD polja
pMAC frejma po algoritmu datom u sekciji 3.2.9 u [6], izvodeći korake od a) do d) nakon
čega se izračunata (32-bitna) vrijednost “XOR”-uje sa vrijednošću 0x0000FFFF.
Na slici 3.6 je prikazana principijelna blok šema MMS modula (MAC pod-modula).
20
Slika 3.6: Principijelna blok šema MAC Merge Sublayer -a
3.1.3.1 Predajnik
Predajni proces, ili predajnik (eng Transmit processing) - slika 3.6, prima okvire od
eMAC-a i od pMAC-a i prosljeduje ih RS sloju.
21
proces primi zahtijev za prekid (MM CTL.request ima vrijednost HOLD) ili kada eMAC ima
spreman okvir za slanje i ako je ispunjen uslov da je veličina polja mPodaci mOkvira veća
ili jednaka 60 okteta (ne uključujući CRC). Dakle, prekid nastaje samo kada ako je bar 60
okteta prekidivog frejma već poslato i ako je ostalo barem jos 60 okteta da se pošalje, tj.
prekidivi frejm se može prekinuti u bilo kom trentku nakon što je poslato 60 okteta sve dok
ima bar još 60 okteta za poslati nakon prekidanja (slika 3.7). Vrijednost koja definiše uslov
prekidanja je podešljiva putem Additional Ethernet Capabilities TLV paketa čiji je format
dat u sekciji 79.3.7 u [10] a sama minimalna vrijednost od 60 okteta je odredjena uslovom da
minimalan validan Ethernet okvir ima dužinu od 64 okteta.
Kada je okvir prekinut (ispunjeni su uslovi potrebni za prekid), predajni proces prikači
vrijednost mCRC na kraj prekinutog okvira, što predstavlja indikator prijemnoj strani da
je okvir prekinut i odmah nakon isteka IFG intervala predajni proces može da počne slanje
neprekidivog okvira, odn. može da počne slanje kritičnog saobraćaja.
Nakon što je slanje kritičnog saobraćaja završeno, predajni proces može da nastavi slanje
ostatka prekinutog okvira (nakon isteka IFG intervala). Fragment nastavka ima drugi format
(slika 3.5c), tj. nakon preambule slijedi odgovarajuća SMD-C vrijednost koja koduje isti broj
prekidivog okvira (SMD-S inicijalnog fragmenta) popraćena brojem fragmenta (frag count).
Ako je trenutni fragment koji se šalje ujedno i posljednji (nije došlo do ponovnog prekidanja)
tada polje CRC sadrži kontrolni zbir kompletnog prekidivog okvira (FCS).
3.1.3.2 Prijemnik
22
na to da li je mehanizam za prekidanje okvira omogućen ili ne, prijemnik MMS uvijek
funkcioniše na isti način. Na ovaj način se omogućava prijem okvira od uredaja koji ne
podržavaju prekidljivost okvira ili od uredaja kod kojih je mehanizam za prekidanje okvira
onemogućen. Prijem se obavlja kroz Express Filter jer je format neprekidivog okvira (eMAC
mOkvir) isti kao format standardnog Ethernet okvira.
Prijemnik prekidivih okvira, prijemni proces, provijerava vrijednost SMD polja za svaki
primljeni mOkvir. Ako je ta vrijednost jednaka SMD-E tada prijemni proces ignoriše taj
mOkvir. Vrijednost SMD polja, primljenog mOkvira, sa vrijednošću SMD-S nagoviještava da je
riječ o inicijalnom fragmentu prekidivog okvira (ili evntualno kompletnom prekidivom okviru).
Naime, kada se detektuje vrijednost SMD-S, prijemni proces dekoduje broj okvira i sačuva
ga, proslijedi pMAC-u SFD te počne proslijedivati primljene podatke (mPodaci). Primljeni
podaci se prosljeduju pMAC-u sve dok su podaci primljeni od RS sloja validni (rRxDV
je na visokom nivou). Ujedno se vrijednost posljednja četiri primljena okteta provjerava
sa trenutnom vrijednosti CRC-a. Ukoliko se vrijendost posljednja četiri primljena okteta
ne poklapa sa izračunatom vrijednošću mCRC-a i ako je primljena indikacija od RS-a da
podaci više nisu validni (rRxDV je na niskom nivou) to znači da je primljen kompletan
prekidivi okvir. Sa druge strane, ako se vrijendost posljednja četiri primljena okteta poklapa
sa izračunatom vrijednošću mCRC-a to znači da je mOkvir prekinut i ta posljednja četiri
okteta se ne proslijeduju pMAC modulu, čime je završena jedna transakcija. Prijemnik potom
čeka novi okvir. Ako je vrijednost SMD polja jednaka jednoj od SMD-C vrijednosti, to znači
da mOkvir sadrži jedan od fragmenata prekidivog okvira. Po prijemu SMD-C vrijednosti,
prijemi proces provjerava:
Prijemnik neprekidivih okvira provjerava vrijedost SMD polja svakog primljenog mOkvira.
23
Ako SMD polje sadrži SMD-E vrijednost prijemnik neprakidivih okvira taj mOkvir prosljeduje
eMAC-u, u suprotnom se primljeni mOkvir ignoriše.
3.1.3.3 Verifikacija
Proces verifikacije može biti onemogućen, ali je u tom slučaju potrebno osigurati da je na
svim stanicama, osim što moraju podržavati mehanizam za prekidanje okvira, isti mehanizam
omogućen.
Još treba napomenuti da se navedeni proces odnosi samo na predajnu stranu, jer kao što
je rečeno u prethodnom odjeljku 3.1.3.2 prijemna strana uvijek funkcioniše na isti način bez
obzira da li je mehanizam za prekidanje okvira omogućen (aktivan) ili ne.
24
4. Praktična implementacija/realizacija
25
Kada se priča o projektovanju ne može a da se ne spomenu stilovi projektovanja.
Stilovi projektovanja predstavljaju baznu tehnologiju izrade integrisanog/ih kola koja će se
koristiti prilikom fizičke realizacije datog sistema. Detaljna klasifikacija stilova projektovanja
je prikazana na slici 4.2.
Blok dijagram procesa projektovanja na RTL nivou apstrakcije, uz korišćeni stil projek-
tovanja baziran na primjeni FPGA (eng. Field Programmable Gate Array) je prikazan na
slici 4.3. Procesi sa slike 4.3 označeni sa 2, 3, 5, 6 i 7 su automatizovani i njih izvršava alat
za projektovanje dok procesi označeni sa 4, 8 i 9 predstavljaju verifikacione procese. Proces
označen sa 1 (slika 4.3) ustvari predstavlja opis ili u domenu ponašanja ili u strukturnom, (ali)
opisan jezikom koji alat za projektovanje razumije (umije da tumači). Rezultat sinteze koju
obavlja alat je objektni, odnosno binarni fajl kojim se konfiguriše FPGA kolo. Opis sistema
na RTL nivou apstrakcije obavlja projektant (jedan ili više njih) korišćenjem jezika za opis
hardvera (eng. Hardware Description Language – HDL) od kojih su najpoznatiji VHDL (Very
High Speed Integrated Circuit Hardware Description Language) i Verilog (Verification logic).
Za RTL opis sistema (MMS) korišćen je VHDL jezik za opis hardvera, a ciljna platforma
je FPGA, odnosno stil projektovanja je na bazi FPGA. U tu svrhu je zamišljeno korišćenje
26
Slika 4.3: Procesi projektovanja
Funkcionalni domen opisa projekta nam daje odgovor na pitanje ”Šta sistem radi?”, dok
nam strukturni domen daje odgovor na pitanje ”Od čega se sistem sastoji?”.
27
Programmable Gate Array). FPGA omogućava dodavanje novih i prilagodavanje postojećih
funkcionalnosti već ustaljenaih sistema kao i implementaciju potpuno novog sistema specifične
namjene, a da se pri tome ne vrše modifikacije hardverske strukture kompletnog sistema.
Drugim riječima, nakon što se sistem koji uključuje FPGA kolo implementira ili fabrikuje, jed-
nostavno rekonfigurišući FPGA kolo moguća je promjena ili nadogradnja funcionalnosti dijela
ili cijelog sistema – konfiguracija u polju primjene. Otuda i potiče naziv field-programmable
gate arrays – u polju konfigurabilna matrična struktura logičkih elemenata. Osnovnu FPGA
arhitekturu čine matrice konfigurabilnih logičkih blokova sa ugniježdenim konfigurabilnim
memorijskim blokovima oko kojih je razvučena mreža konfigurabilnih veza, koje se još nazivaju
i meduveze, dok su po periferiji rasporedeni konfigurabilni ulazno/izlazni blokovi. Tu su još
PLL (eng. Phase Locked Loop) i DLL (eng. Delay Locked Loop) moduli, takode konfigurabilni,
koji služe za uniformnu distribuciju takt signala kroz FPGA kolo. Na slici 4.4 je prikazana
osnovna arhitektura FPGA kola. Savremene FPGA arhitekure, osim navedenih osnovnih
blokova, mogu da sadrže DSP blokove, primopredajne blokove (koji rade na gigabitskim
brzinama) i integrisane (ugradene) mikroprocesore.
28
FPGA. Ali napretkom tehnologije izrade i unutrašnje arhitekture FPGA sustiže ASIC kola
po pitanju brzine rada i energetske efikasnosti i tako proširuje svoje polje primjene kao što su:
obrada zvuka/slike/videa, žič(a)ne/bežične komunikacije, itd. ako je riječ o aplikacijama. A
ako pričamo o oblasti primjne to su medicina, industrija, nauka, itd.
Dva najpoznatija proizvodača FPGA integrisanih kola su Xilinx i Altera1 koji drže preko
80% tržišta danjašnice [wiki]. Još neki proizvodači su: Actel, Atmel, Lattice Semiconductor i
dr. Oba proizvodača u svojoj punudi nude različite familije za istu seriju FPGA kola da bi se
što potpunije izašlo u susret zahtjevima koje nameću specifična polja primjene (specifične
aplikacije). Tako npr. Altera u svojoj ponudi ima tri familije integrisanih kola: Stratix, Arria
i Cyclone dok Xilinx nudi: Virtex, Kintex i Artix. Kola Stratix /Virtex familije imaju najviše
resursa i najveću brzinu rada (eng. Highest performance and low power ). Cyclone/Artix fami-
lija nudi kola koja su namijenjena za jeftine sisteme i sisteme koji zahtijevaju malu potrošnju
energije (eng. High performance, lowest power and cost). Dok se familija Arria/Kintex po
performansama nalazi izmedu navedene dvije familije.
4.1.1 Cyclone IV E
Altera-ina Cyclone
R
FPGA serija je generalno osmišljena da zadovolji potrebe sistema
koji zahtijevaju nisku cijenu i malu potrošnju. Jedna od njih je i Cyclone IV FPGA familija
čipova koja dolazi u dvije varijante:
• Cyclone IV E - FPGA i
29
– interfejs za QDRII SRAM i DDR SDRAM do 167 MHz
U tabeli 4.1 je dat pregled količine resursa za različite čipove iz Cyclone IV E familije
Arhitekutra čipova Cyclone IV familije je ista kao kod svih familija iz Cyclone serije
čipova (C III, C IV, C V, C 10) i sastoji se od logičkih elemenata (eng. Logic Element – LE)
sačinjenih od četvoro-ulaznih Look-up tabela (LUTs), memorijskih blokova i množača. Osim
navedenih blokova koji čine samo jezgro čipa tu su i fazno-zaključane petlje, ulazno/izlazni
blokovi, takt-mreže i meduveze.
• četvoro-ulazna LUT tabela (može da implementira bilo koju funkciju sa četiri promijen-
ljive)
– localnu meduvezu
– meduvezu redova
– meduvezu kolona
– registarski lanac
30
– direktne meduveze
Svaki LE posjeduje tri izlaza koji se pobuduju nezavisno ili izlazom LUT tabele ili preko
registra, a koji se dalje mogu vezati na jednu od 4 vrste meduveza (dva izlaza pobuduju redove,
kolone i direktnu meduvezu dok jedan izlaz pobuduje localnu meduvezu). Ovim se omogućava
da izlaz LUT tabele pobuduje jedan izlaz dok registar pobuduje drugi izlaz - ova karakteristika
LE se naziva register packing. Dodatno, pored ova tri izlaza, LE posjeduje još jedan izlaz -
registarski izlaz (register chain output) - preko kojeg je moguća kaskadna veza niza registara
u jednom bloku. Postojanje ovog izlaza omogućava još jednu karakteristiku, da se LUT tabele
koriste za kombinacionu logiku a da se registri koriste za implementaciju pomjeračkog registra.
Na ovaj način se ostvaruje značajna ušteda resursa integrisanog kola. LE može da radi u
dva režima: normalnom režimu i aritmetičkom režimu. Normalni režim je pogodan za logičke
aplikacije opšteg karaktera i za implementaciju kombinacionih funkcija, dok je aritmetički
režim idealan za implementaciju sabirača, brojača, akumulatora i komparatora. Grupa LE-a
čini logički niz ili logički blok (eng. Logic Array Block – LAB) slika 4.6. Svaki LAB sadrži 16
LE-a, kontrolne signale, lančane veze bita prenosa, veze za registarski lanac (register chains) i
lokalne meduveze. Lokalne meduveze povezuju signale LE-a unutar istog LAB-a dok veze za
registarski lanac povezuju izlaz registra prethodnog LE-a i ulaz sljedećeg registra LE-a.
31
Slika 4.6: Arhitektura logičkog bloka (LAB) Cyclone IV familije
sa dva porta i sa dva takt signala), ROM, FIFO bafer, itd. Takode, širina podataka (riječi) je
konfigurabilna sa jednom od datih vrijednosti (x1, x2, x4, x8/9, x16/18 i x32/36).
32
I/O blokovi (slika 4.8) predstavljaju vezu sa vanjskim svijetom. Sačinjeni su od osnovnh
I/O elemenata (IOE) koji sadrže dvosmjerni I/O bafer i pet registara za pamćenje ulaza,
izlaza, signala za omogućenje izlaza i kompletan dvosmjerni prenos podataka (single data
rate). IOE nudi niz konfigurabilnih funkcionalnosti za I/O pin. Ove funkcionalnosti, osim
što povećavaju fleksibilnost upotrebe I/O pina, smanjuju potrebu za korišćenjem eksternih
diskretnih komponenata kao što su pull-up otpornici i zaštitne diode. Neke od konfigurabilnih
funkcionalnosti su: strujni kapacitet izlaznog pina, vrijeme odziva, vrijeme kašnjenja prema
logičkim blokovima, tip izlaznog pina (da li je trostatički ili ne).
Takt mreža (slika 4.9) koja se prožima po čitavom integrisanom kolu, zajedno sa PLL
modulima omogućava da željeni takt signal (bilo da je generisan unutar integrisanog kola ili
je doveden s polja) stigne do svih resursa (I/O blokova, LAB-va, množača i M9K memorijskih
blokova) koji čine projektovani sistem.
33
Slika 4.9: Takt mreža Cyclone IV familije
• 2MB SRAM
• 2x64MB SDRAM
34
• 8MB Flash memorije
• SD čitač kartica
• 4 prekidačka dugmeta
• 18 kliznih prekidača
• oscilator od 50 MHz
• PS2 konektor
• IR prijemnik
4.2 Arhitektura
Realizacija MMS zasnovana je na specifikaciji datoj u članu 99 u dokumenta [10] Kao
što smo već naveli, MMS predstavlja proširenje standardne Ethernet MAC 802.3 arhitekture.
Proširenje se ogleda u dodavanju još jednog MAC modula i uvodenjem novog modula MMS
(eng. MAC Merge Sublayer ) preko kojeg su dva MAC modula spojeni na RS sloj koji
obezbijeduje interfejs ka PHY-u koji radi na brzinama većim od 100 [Mbit/s], dok oba MAC
modula rade u režimu potpune dvosmijerne komunikacije (slika 3.3).
35
4.10. Sa slike 4.10 se može vidjeti da MMS nudi četiri interfejsa: dva ka MAC modulima
– eMAC i pMAC, jedan ka RS sloju i jedan koji omogućava MAC klijentu da konfiguriše,
kontroliše i prati rad MMS modula – MCI (eng. Management and Control Interface). Takode,
sa slike vidimo da se MMS modul sastoji od tri podmodula: Transimt modul, Receive modul
i Express filter modul.
4.2.2 RS Interfejs
36
Tabela 4.2: Opis signala MAC Interfejsa
4.2.4 Transmit
Kada je Transmit proces u neaktivnom stanju nijedan okvir se trenutno ne šalje, i tada
Transmit proces čeka zahtijev za slanje okvira, bilo od eMAC-a bilo od pMAC-a. Ukoliko je
zahtijev stigao od eMAC-a (s eTx = ’1’), Transmit process proslijeduje okvir ka RS sloju bez
promijene strukture okvira (SFD vrijednost je jednaka SMD-E vrijednosti). Slično, ukoliko
Transmit modul primi oba zahtijeva istovremeno (s eTx = ’1’ i s pTx = ’1’), prvo će se
poslati okvir/i koji pristiže/u od eMAC-a, nakon čega će započeti slanje okvira koji pristiže
od pMAC-a (eMAC je višeg prioriteta nego pMAC). Transmit proces će započeti slanje
pMAC okvira i u slučaju kada je zahtijev stigao samo od pMAC-a (s eTx = ’0’ i s pTx
= ’1’). Kada Transmit proces detektuje SFD vrijednost pMAC okvira, tj. kada se završi
slanje preambule, Transmit proces mijenja SFD vrijednost sa odgovarajućom SMD-Sx (x
= 0, 1, 2 ili 3 ) vrijednošću, nakon čega počinje proslijedivanje ostatka pMAC okvira RS
37
sloju. Transmit proces će da prekine slanje pMAC okvira (mOkvira) ako primi zahtijev za
prekid (i MM CTL request = HOLD) ili ako eMAC ima spreman okvir za slanje (s eTx
= ’1’) ukoliko su ispunjeni uslovi za prekid mOkvira. Uslovi su odredeni minimalnom dužinom
standardnog Ethernet okvira od 60 okteta (ne računajući kontrolno polje FCS). Znači ako
je poslato bar 60 okteta mOkvira (frag size cnt > 60) i ako je ostalo još bar 60 okteta da
se pošalje (i pPKT DATA LEN > 60), desiće se prekid (slika 3.7) i Transmit proces će
da na kraj prekinutog okvira nakalemi kontrolno polje mCRC. Transmit proces će zadržati
slanje mOkvira sve dok eMAC ne pošalje sve okvire iz reda čekanja ili dok se ne primi
zahtijev za otpuštanje (i MM CTL request = RELEASE).Transmit proces potom šalje
nastavak prekinutog mOkvira tako što prvo šalje 6 okteta preambule, resetuje brojač okteta
podataka i šalje odgovarajuću vrijednost SMD-Cx (x = 0, 1, 2 ili 3), za kojom slijedi polje
frag count u koje se upisuje enkodovana vrijednost brojača fragmenata (tx frag cnt) koji
se nakon toga inkrementuje, i nastavlja se proslijedivanje ostatka mOkvira RS sloju. Po
završetku slanja mOkvira, Transmit proces u kontrolno polje FCS upisuje vrijednost CRC-a
izračunatu za kompletan mOkvir (CRC vrijednost u slučaju da nije bilo prekidanja), resetuje
brojače tx frag cnt i frag size cnt i inkrementuje tx frame cnt. Na slici 4.11 je prikazana
implementirana mašina stanja predajnika, tj Transmit procesa.
SMD-C i SMD-S enkoduju vrijednost na osnovu istog brojača okvira. Izmedu slanja
svakog sljedećeg okvira/mOkvira čeka se da prode IFG (IPG) (min. 96 bitskih vremena ili 12
okteta).
4.2.5 Receive
38
vrijednost mCRC-a (vrijednost FCS polja) odgovara lokalno izračunatoj vrijednosti mCRC-a,
u protivnom prijem se završava nakon što RS sloj obavijesti Receive proces da podaci više
nisu validni (i rsRX DV = ’0’) - primljen je kompletan mOkvir. Ako je mOkvir prekinut,
Receive proces čeka početak primanja novog mOkvira. Postavljanje signala (i rsRX DV
= ’1’) identifikuje početak novog okvira za kojim slijedi preambula, koja se u ovom slučaju
ignoriše. Nakon preambule slijedi SMD polje. Ako je vrijednost SMD polja jednaka odgo-
varajućoj vrijednosti SMD-Cx (x = 0, 1, 2 ili 3) i ako je dekodovana vrijednost SMD-Cx
polja (vrijednost brojača okvira s cFRAME cnt) odgovara prethodno sačuvanoj vrijednosti
brojača okvira (s rxFRAME cnt), tj. ako je s rxFRAME cnt = s cFRAME cnt to
znači da slijedi nastavak prekinutog okvira nakon čega se provjerava polje frag count. Ako
je i dekodovana vrijednost broja fragmenta (s rxFRAG cnt) jednaka očekivanom broju
fragmenta (s nxtFRAG cnt – lokalni brojač fragmenata), tj. ako je s rxFRAG cnt =
s nxtFRAG cnt. Inkrementuje se lokalni brojač fragmenata i Receive proces počinje sa
proslijedivanjem podataka primljenih od RS sloja ka pMAC-u. Prijem završava spuštanjem sig-
nala i rsRX DV na nulu, nakon čega Receive proces prelazi u nektivno stanje. Detektovanjem
mCRC vrijednosti znači da ja okvir ponovo prekinut.
Express filter proces je odgovoran za prijem okvira namijenjenih eMAC modulu. Nakon
što RS sloj ukaže da su podaci validni (i rsRX DV = ’1’) i nakon prijema preambule, Express
filter proces provjerava vrijednost primljenog SMD polja. Ako je ta vrijednost jednaka SMD-E
vrijednosti, Express filter proces nastavlja da proslijeduje primljene podatke ka eMAC-u sve
dok RS ne spusti signal i rsRX DV na nulu (ukazujući da je prijem okvira završen). U
slučaju da se u SMD polju nalazi bilo koja druga vrijednost SMD-Cx/SMD-Sx/SMD-V/SMD-
R, Express filter proces ignoriše dati okvir. Na slici 4.13 je prikazana implementirana mašina
39
stanja prijema okvira namijenjenih eMAC-u.
40
Tabela 4.4: Opis signala Management and Control Interfejsa
41
Slika 4.11: Dijagram mašine stanja za Transmit proces
42
Slika 4.12: Dijagram mašine stanja Receive proces
43
Slika 4.13: Dijagram mašine stanja Express filter proces
44
5. Verifikacija
45
transakcija. Generisanje pobude randomizacijom dijela transakcije ili čitave transakcije naziva
se Constraind-Random način generisanja pobude. Ovako apstraktan model pobude naziva
se TLM model ili TLM nivo apstrakcije (eng. Transaction Level Model ). Takode, uvodi se
pojam BFM-a (eng. Bus Functional Model ) čija je uloga prevodenje transakcije na pin-nivo
apstrakcije, čime se apstrahuju portovi DUT-a, protokol kontrolne signalizacije i slično. Drugim
riječima, BFM vrši konverziju podataka sa višeg nivao apstrakcije na pin-nivo apstrakcije. Kao
metrika praćenja progresa verifikacije u odnosu na funkcionalne zahtjeve dizajna koristi se
funkcionalna pokrivenost (eng. functional coverage), jer prilikom Constraind-Random pristupa
generisanja pobude se ne zna tačno koje funkcionalnosti dizajna su verifikovane. Funkcionalna
pokrivenost zajedno sa metrikom - strukturna pokrivenost, daje odgovore na dva pitanja: da
li su sve osobine dizajna verifikovane i, da li postoje dijelovi koda u dizajnu koji se nikad
nisu koristili? Na ovaj način je proces verifikacije automatizovan, a verifikaciono okruženje
(testbench) postaje fleksibilnije, robustnije i modularnije. Prethodno opisan proces verifikacije
se u literaturi često naziva Constraint-Randomized, Coverage-Driven Verification.
5.1 UVM
UVM je standardizovana metodologija za funkcionalnu verifikaciju integrisanih kola
koja predstavlja najnovije unapredenje procesa verifikacije i dizajnirana je da omogući
kreiranje robustnih, višekratnih, visoko kvalitetnih, interoperativnih verifikacionih komponenti
(eng. Verification Intellectual Property – VIP ili Universal Verification Component – UVC).
Organizacija za standarde Accellera Systems Initiative (Accellera) zajedno u saradnji sa još
par EDA (eng. Electronic Design Automation) proizvodača (Aldec, Cadence, Mentor Graphics
i Synopsys) su, 2011. godine, standardizovali UVM objedinjavajući dvije do tada najviše
korišćene metodologije, OVM (eng. Open Verification Methodology) i eRM (eng. e Reuse
Methodologz ) i dodajući par nadogradnji (kao što su end-of-test mehanizam, faze simulacije,
sekvence, TLM, callback mehanizam, itd.). Cilj je bio da se verifikacionom inženjeru olakša
upotreba i kreiranje verifikacionog okruženja, da se omogući ponovno korišćenje (djelimično ili
46
u potpunosti) verifikacionog okruženja, obezbijedi temeljna verifikacija kao i da se obezbijedi
veća funkcionalnost i kontrolu simulacije. UVM implementaciran u SystemVerlog jeziku u
vidu klasne hijerarhije prikazane na slici 5.1, upakovane u UVM paket (uvm pkg).
Postoje dva nacina korišćenja UVM paketa (uvm biblioteke): korišćenjem nekih od komer-
cijalnih simulatora (Questasim, Aldec Rivera pro, itd.) koji se isporucuju sa vec prekompajli-
ranom UVM bibliotekom ili preuzimanjem izvornog koda sa http://www.accellera.org/
downloads/standards/uvm i takorečeno ručnog kompajliranja za dati simulator. Objektno-
orijentisana paradigma SystemVerilog-a i generički (univerzalni) mehanizmi koje obezbijeduje
UVM biblioteka, kao što su hijerarhiska struktura komponenata, TLM interfejsi, proširiv1
skup faza simulacije, konfiguraicona baza podaka, itd. omogućavaju verifikacionom inženjeru
kreiranje, uslovno receno, bilo koje strukture testbench-a koji mu je potreban.
47
• build faze - za kreiranje i konfiguraciju verifikacionog okruženja,
Na slici 5.2 prikazane sve UVM faze grupisane u tri osnovne grupe.
48
Tabela 5.1: UVM faze
Faza Opis
Instanciranje (konstrukcija) komponenti
build
i podkomponenti, konfiguracija
Medusobno povezivanje komponenti,
connect
podešavanje interfejsa
Naknadne izmjene i konfiguracija testbench-a
end of elaboration prije početka simulacije (u ovoj fazi je
okruženje potpuno kreirano i povezano)
start of simulation Prikaz topologije i konfiguracionih informacija
2
Sama simulacija (generisanje stimulusa, pobudivanje,
run
nadgledanje i provjera)
extract Preuzimanje i obrada preostalih podataka iz komponenti
Provjera funkcionalnosti DUT-a i identifikacija grešaka
check
(bilo kakvih grešaka do kojih je moglo doći tokom simulacije)
report Prikaz rezultata simulacije ili upis rezultata u fajl(ove)
final Završetak svih preostali radnji (npr. zatvaranje fajlova)
UVM Factory predstavlja jedan od klasičnih softverskih dizajn šablona (eng. design
pattern). Prilikom funkcionalne verifikacije često je potrbno uvesti promjene u odredenim
komponentama ili objektima. Razlog može biti zbog uvodenja nove funkcionalnosti, speci-
fičnih zahtijeva nekog testa i slično. Na primjer, možda je potrebno transakciji dodati nove
informacije, ili modifikovati način generisanja signala, ili uvesti ograničenja pri randomizaciji.
UVM factory omogoćava da se na jednostavan način zamijene postojeće komponente/objekti
sa modifikovanim bez mijenjanja ostatka verifikacionog okruženja. Na ovaj način se omogućava
kreiranje fleksibilnije i dinamičke strukture verifikacionog okruženja. Ovaj mehanizam se
naziva factory override. A sve što je potrebno da verifikacioni inženjer registruje komponentu
ili objekat pri fabrici (eng. factory registration)
Jedan od ključnih aspekata koji direktno utiče na produktivnost verifikacije jeste ra-
zmišljanje o problemu na nivou apstrakcije koji ima smisla. Prilikom verifikacije DUT-a koji
rukuje paketima, obraduje instrukcije ili obavlja neku drugu vrstu funkcionalnosti, potrebno
je kreirati verifikaciono okruženje koje podržava odgovarajući nivo apstrakcije. Iako se naposli-
jetku DUT preko interfejsa stimulipše na pin-nivou (na nivou signala), u praksi se pokazalo da
2
Run faza ima veliki broj pod-faza (slika 5.2), medutim korišćenje ovih pod-faza nije čest slučaj i u praksi
se uglavnom koristi samo run faza.
49
se većinom verifikacionih zadataka, kao što su generisanje pobude i prikupljanje pokrivenosti,
treba upravljati na nivou transakcija, što je ustvari prirodan način razmišljanja verifikacionih
inžinjera [uvm guide.book]. UVM obezbjeduje skup TLM komunikacionih interfejsa i kanala
koji se mogu koristiti za povezivanje komponenti. Korišćenjem TLM interfejsa razdvajamo
componente jednu od druge i tako spriječavamo da eventualne promjene u jednoj komponenti
ne utiču na UVM Testbench, a isto tako da promijene u UVM Testbench-u ne utiču na
druge komponente. TLM ,,promoviše” ponovnu upotrebu, dozvoljavajući zamijenu bilo koje
komponente sa drugom dok god te dvije komponente imaju isti interfejs. Ovakav pristup
omogućava kreiranje UVM verifikacionog okruženja na osnovu TLM modela DUT-a koje će
se koristiti za verifikaciju kada se projektovanje čipa završi (kada se TLM model sintetizuje u
RTL model). Naravno, da bi ovo bilo moguće, potrebno je zamijeniti komponente koje su
komunicirale sa TLM modelom DUT-a sa komponentama koje vrše konverziju podataka, odn.
informacija sa nivoa transakcije na pin-nivo i obrnuto. Ukratko, TLM obezbjeduje osnovu za
jednostavnu enkaspulaciju komponenata u komponente za višekratnu upotrebu.
UVM Sequence Item je objekat koji predstavlja transakciju koja se koristi kao stimulus.
Sam princip generisanja stimulusa u constraind-random verifikaciji se zasniva na randomizaciji
transakcija (UVM Sequence Item objekata) u UVM sekvencama. Korišćenjem UVM Sequence
Item objekta se zapravo apstrahuju informacije. Prilikom razvoja verifikacionog okruženja,
jedan od prvih koraka je modelovanje transakcije. Najviše vremena i pažnje je potrebno uložiti
50
u modelovanje transakcije. Sama transakcija treba da sadrži sve potrebne informacije potrebne
drajveru da ispravno generiše signale na interfejsu, ali i pored tih informacija može sadržati
i neke dodatne informacije koje služe za kontrolu (tip transfera, veličina), konfiguraciju,
ponašanje usljed grešaka, analizu (vremensku analizu).
UVM drajver je aktivna komponenta koja od UVM sekvencera preuzima jednu transakciju,
prevodi je u pin-nivo apstrakcije i pobuduje signale interfejsa DUT-a. Dakle, UVM drajver
vrši konverziju podataka sa višeg nivao apstrakcije na niži nivo apstrakcije. Takode, sadrži i
TLM port preko kojeg je povezan sa UVM sekvencerom, i ima pristup interfejsu DUT-a da bi
mogao pobudivati signale.
UVM sekvencer služi kao ,,arbajter” za kontrolu protoka transakcija koje su generisane u
jednoj ili više UVM sekvenci (eng. UVM Sequences).
51
5.1.3.6 UVM Agent
UVM agent je hijerarhiska komponenta koja grupiše druge verifikacione komponente koje
imaju pristup odredenom interfejsu DUT-a. Tipični UVM agent uključuje UVM sekvencer
(eng. UVM Sequencer ) koji upravlja upravljanje protokom transakcija, UVM drajver (eng.
UVM Driver ) koji pobuduje interfejs DUT-a (implementira protokol DUT-a) i UVM monitor
(eng. UVM Monitor ) koji prati stanje na interfejsu DUT-a. UVM agent može uključivati
i druge komponente, kao što su komponenta za prikupljanje pokrivenosti, komponenta za
provjeru protokola, TLM portove, komponentu za konfiguraciju agenta i druge. Grupisanjem
ovih komponenti obezbjeduje se enkapuslacija i modularnost. UVM agent može da radi u
aktivnom režimu (instancirani su UVM sekvencer, UVM driver i UVM monitor) gdje UVM
agent generiše i nadgleda signale interfejsa DUT-a ili u pasivnom režimu (instanciran je samo
UVM monitor) gdje UVM agent samo nadgleda signale interfejsa DUT-a.
52
5.1.3.9 UVM Test
UVM komponenta koja se nalazi na najvišem nivou hijerarhije (eng. top-level UVM
Component) UVM Testbench-a je UVM Test. UVM Test tipično obavlja tri funkcije: instancira
verifikaciono okruženje, konfiguriše verifikaciono okruženje preko tvorničkog redefinisanja (eng.
factory overrides) ili preko konfiguracione baze podataka i primjenjuje stimulus na DUT
pozivanjem UVM sekvenci (eng. UVM Sequences).
Unutar UVM Testbench-a tipično se instancira dizajn koji se verifikuje (DUT), objekat
UVM Test klase i konfigurišu se veze izmedu njih. Takode, ako postoje popratne komponente i
oni se instanciraju unutar UVM Testbench-a. Objekat UVM Test klase se dinamički instancira
u toku vremena izvršavanja simulacije (eng. at run-time), omogućavjući da se UVM Testbench
kompajlira samo jednom i da se testovi puštaju koliko ih god ima bez ponovnog kompajliranja
testbench-a.
53
6. Testiranje i rezultati
shodno svojim potrebama i da pokrenu sekvence. Sekvencu čini niz transakcija (tabela 6.1)
koje se preko sequencer -a prosljeduju drajverima. Drajver potom apstahuje transakciju na
pin-nivo apstrakcije i pobuduje signale interfejsa. Sa slike 6.1 se može vidjeti da je svaki od
interfejsa DUT-a popraćen odgovarajućim agentom, eMAC if ↔ eMAC AGENT, pMAC if
↔ pMAC AGENT, MGMT CTL if ↔ CTL STS AGENT, RS if ↔ RS AGENT. Svi agenti
osim RS AGENT-a su aktivni, tj. samo je RS AGENT pasivan. To znači da RS AGENT
posjeduje samo monitor dok ostala tri agenta uz monitor posjeduju i drajver. Sekvence
54
namijenjene xMAC AGENT-ima predstavljaju niz Ethernet frejmova koji se šalju na odgova-
rajuće interfejse. Tako eMAC AGENT-u modeluje eMAC sloj dok pMAC AGENT-u modeluje
pMAC sloj. Prije početka slanja bilo kojeg tipa saobraćaja, test konfiguriše i DUT preko
CTL STS AGENT-a, postavljajući signale koji omogućavaju rad mehanizma za prekidanje
okvira bez prethodno uspješno završenog procesa verifikacije 3.1.3.3. eMAC MONITOR i
pMAC MONITOR nadlgledaju i izvlače informacije sa interfejsa eMAC if i pMAC if, respek-
tivno. Prevode ih u viši nivo apstrakcije - transakciju i šalju ih SCOREBOARD-u na provjeru.
U SCOREBOARD-u se izvodi sljedeći niz provjera nad transakcijama:
• da li su primljeni okteti podataka jednaki poslatim oktetima podataka (od SFD polja
do FCS polja).
Ako transakcija prode sve navedene provjere, smatra se da je transakcija uspješna, u suprotnom
se smatra da je transakcija neuspješna.
Sa druge strane, RS MONITOR nadgleda RS if, vrši provjere vezane za sam Ethernet
protokol:
55
• kompletan prekidivi okvir (complete preemptable packet),
6.1 Testovi
Na osnovu specifikacije sistema date u [10] i opisane u poglavlju 3.1.3 napisani su testni
zahtjevi koji su prikazani u tabeli 6.2.
Testovi su kreirani tako da se verifikuje rad MMS modula na osnovu datih testnih
zahtijeva kao i da se provjeri ponašanje MMS modula u oba prethodno opisana scenarija (3).
Tako imamo dva testa koja su napisana u dvije varijante: sa aktivnim i sa neaktivnim FP
mehaniznom (četiri testna slučaja). Dati testovi su:
1. random test
56
Tabela 6.2: Testni zatjevi
ZAHTJEV OPIS
MMS-REQ-0 MMS radi na bitskoj brzini od 100 [Mb/s]
MMS-REQ-10 MMS ne prekida prekidive okvire (okvire koje šalje eMAC)
Kada je mehanizam za prekidanje okvira aktivan i kada
MMS-REQ-1 nije ispunjen uslov za prekidanje okvira, MMS neće da
prekine prekidivi okvir koji se trenutno šalje.
Kada je mehanizam za prekidanje okvira aktivan,
MMS-REQ-2
MMS odlaže slanje prekidivog okvira.
Kada je mehanizam za prekidanje okvira aktivan,
prekid prekidivog okvira se desio usljed zahtjeva
MMS-REQ-3
za prekid primljenog preko MCI servisnog interfejsa
(MM CTL request = HOLD).
Kada je mehanizam za prekidanje okvira aktivan,
prekid okvira se desio usljed zahtjeva za slanje
MMS-REQ-4
neprekidivog okvira primljenog preko eMAC
servisnog interfejsa (eMAC ima spreman okvir za slanje).
Kada je mehanizam za prekidanje okvira aktivan,
MMS će sve primljene neprekidive okvire proslijediti
MMS-REQ-9
eMAC-u, a sve primljene prekidive okvire
proslijediti pMAC-u.
Kada je mehanizam za prekidanje okvira neaktivan,
MMS-REQ-5
MMS ne prekida prekidivi okvir koji se trenutno šalje.
Kada je mehanizam za prekidanje okvira neaktivan,
MMS-REQ-6
MMS odlaže slanje prekidivog okvira.
Kada je mehanizam za prekidanje okvira neaktivan,
MMS-REQ-7 MMS neće mijenjati format okvira prilikom slanja
(SMD polje sadrži SMD-E vrijednost).
Kada je mehanizam za prekidanje okvira neaktivan,
MMS-REQ-8
MMS će sve primljene okvire proslijediti eMAC-u.
• je opcija keep safter na prijemnoj strani prekidivih okvira onemogućena (i KEEP SAFTER D
= ’0’),
Verifikacija je uradena na/pri 100 [Mb/s] brizini prenosa, što odgovara frekvenciji si-
stemskog takt signala od 12.5 [MHz]. Prethodno navedeni testovi su sprovodeni/izvršeni
na dva nivoa apstrakcije: na nivou ponašanja sistema (nivo simulacije) i na nivou sinteze i
57
implementacije.
Još treba napomenuti da je MMS komponenta spojena u loop-back režimu (RS if.tx en
↔ RS if.rx dv i RS if.tx data ↔ RS if.rx data).
Ovaj test karakteriše sinhroni, periodični saobraćaj (opisan u IEEE 802.1Qbv) čiji je
format prikazan na slici 6.2. Generisano je i poslato 400 prekidivih frejmova, dok broj
neprekidivih frejmova varira u zavisnosti od broja ciklusa, perida T (tabela ??), potrebnih da
se pošalju svi generisani prekidivi frejmovi.
• High Prio - Interval rezervisan za slanje neprekidivog saobraćaja (express traffic) (za
saobraćaj višeg prioriteta). Šalje se jedan minimalan Ethernet frejm (64 okteta), koji
uz preambulu (7 okteta), SFD (1 oktet) i IFG (12 okteta) ima dužinu od 84 okteta.
Trajanje High Prio intervala je THP = 6.72 [µs].
• Low Prio - Interval rezervisan za slanje prekidivog saobraćaja (preemptable traffic) (za
saobraćaj nižeg prioriteta). Šalje se promijenljivi broj maksimalnih Ethernet frejmova
(1518 okteta). Trajanje Low Prio intervala (TLP ) se mijenja u zavisnosti od vremena
trajanja perioda i ta vremena su data u tabeli ??.
• Guard Band - Zaštitni interval. Za vrijeme trajanja ovog intervala ne šalju se okviri,
58
eventualno se završi slanje okvira koji je već u procesu prenosa, a koji nije moguće
prekinuti. Kada je omogućen FP mehanizam na osnovu 3.1 dužina zaštitnog intervala
je THP = 11.44 [µs] ≈ 12 [µs], dok u slučaju kada FP mehanizam nije omogućen na
osnovu 2.1 imamo da je dužina zaštitnog intervala THP = 123 [µs].
6.2 Rezultati
U ovom odjeljku će biti razmotreni rezultati izvršenih testova. Izvještaji testova dobijeni
iz SCOREBOARD komponente (rezultati testova) za pojedinačne testove objedinjeni su
u tabeli ??. Takode, izvještaji o pokrivenosti (COVERAGE komponenta) su objedinjeni
i ilustrovani na slici 6.7, i zajedno sa prethodnim izvještajem će nam dati odgovore na
većinu testnih zahtjeva postavljenih u tabeli 6.2, dok će se pojedini odgovori dobiti metodom
,,gledanja” talasnih/impulsnih oblika. Oba izveštaja i svi potrebni talasni/impulsni oblici su
priloženi u nastavku. No, prije samih rezultata testova, prvo će biti priloženi talasni/impulsni
oblici koji pokrepljuju/prate teoretsko razmatranje dato u 3, koje se odnosi na dva scenarija
(sinhroni i asinhroni saobraćaj) sa i bez prekidanja okvira. Sa slike 6.3 se može vidjeti da,
u slučaju asinhronog saobraćaja, FP mehanizam smanjuje vrijeme kašnjenja neprekidivog
okvira (ili okvira višeg prioriteta) (THb = 128.62[µs] < 215.16 = THa [µs]). Sa slike 6.4 se
59
može vidjeti da, u slučaju sinhronog saobraćaja, se za isti vremenski period (T = 500 [µs])
pod a) pošalju tačno tri okvira nižeg prioriteta dok se pod b) uspije poslati skoro četiri
okvira nižeg prioriteta. Očigledno je da se korišćenjem FP mehanizma povećao propusni opseg
rezervisan za saobraćaj nižeg prioriteta. Slike 6.3 i 6.4 potvrduju teoretsku osnovu koja je
bila motivacija za uvodenje FP mehanizma.
Na osnovu rezultata testova vidimo da su sve transakcije uspješno završene, tj. sve
transakcije su uspješno prošle sve provjere (definisane u/sa 6) u SCOREBOARD-u. U
slučaju kada je FP mehanizam omogućen (random test test i periodic traffic test te-
stovi) svi neprekidivi frejmovi su poslati i primljeni kroz eMAC, a svi prekidivi frejmovi
poslati i primljeni kroz pMAC - zadovoljen testni zahtjev MMS-REQ-9, dok su u slučaju
onemogućenog FP mehanizma svi poslati frejmovi (random test non preemptive test
i periodic traffic test non preemptive test) primljeni kroz eMAC - zadovoljen testni
60
(a) FP mehanizam je onemogućen
zahtjev MMS-REQ-8
61
(slika 6.7.d-i i slika ??) – zahtjev MMS-REQ-3. U slučaju neaktivnog/onemogućenog FP
mehanizma, broj okvira prekidivog saobraćaja jednak nuli (crveni i plavi bar na slici 6.7c).
Drugim riječima, na RS interfejsu je identifikovan samo neprekidivi saobraćaj, to znači da
MMS nije mijenjao format Ethernet okvira – zahtjev MMS-REQ-7
Slika 6.5 prikazuje slučajeve kada je primljen jedan od zahtjeva za prekid (ili eMAC
ima spreman frejm za slanje ili je MM CTL request = HOLD) a nisu ispunjeni uslovi za
prekid.
b) Prikazan je jedan fragment nastavka prekidivog okvira (slika 6.5b). U trenutku primanja
zahtjeva za prekidanje, Cursor 1, (eMAC ima spreman okvir za slanje) poslalo se tek 29
okteta (frag size cnt = 29 < 60 – tirkizna boja) te ponovo neće doći do prekidanja
okvira. Naime, kada se pošalje 60. oktet, uslov za prekid postaje ispunjen, jer je ostalo
još da se pošalje 601 oktet od kompletnog prekidivog okvira. Ovaj slučaj odgovara i
kada je u pitanju inicijalni fragment prekidivog frejma.
Slika 6.6 ilustruje situacije kada MMS odlaže slanje prekidivog okvira usljed prima-
nja zahtjeva za prekid, trenutak Cursor 1, (ili eMAC ima spreman frejm za slanje ili je
MM CTL request = HOLD) kada je FP mehanizam aktivan 6.6a i 6.6b odnosno kada
je FP mehanizam neaktivan 6.6c i 6.6d – čime su zadovoljeni zahtjevi MMS-REQ-2 i
MMS-REQ-6.
Nakon što je MMS modul verifikovan na nivou ponašanja sistema (nivo simulacije),
ponovljeni su isti testovi nad sintetizovanim modelom (engl. post-synthesis verification).
Dobijeni rezultati verifikacije na nivou sinteze odgovaraju/poklapaju se sa prethodno razmo-
trenim rezultatima na nivou ponašanja sistema (nivo simulacije). Na osnovu ovoga se može
62
zaključiti da je rad MMS komponente na brzini od 100 [Mb/s] (zadovoljen i testni zahtjev
MMS-REQ-0) uspješno verifikovan.
Na samom kraju, kao rezime, je prikazana modifikovana tabela 6.5 sa testnim zahtjevima
....
Tabela 6.4: Sumiran izvještaj testova
eMAC pMAC
TEST
Poslato Primljeno Poslato Primljeno
T = 1000 [us] 54 54 400 400
T = 500 [us] 110 110 400 400
T = 250 [us] 232 232 400 400
periodic traffic test
T = 125 [us] 524 524 400 400
T = 62.5 [us] 1400 1400 400 400
T = 1000 [us] 58 458 400 0
periodic traffic test non preemptive T = 500 [us] 134 534 400 0
63
Tabela 6.5: Testni zatjevi
64
(a)
(b)
65
(a) FP mehanizam omogućen – eMAC poslao zahtjev (b) FP mehanizam omogućen – MM CTL request =
za slanje okvira HOLD
(c) FP mehanizam onemogućen – eMAC poslao zahtjev (d) FP mehanizam onemogućen – MM CTL request
za slanje okvira = HOLD
66
(a) Asinhroni saobraćaj – FP me- (b) Asinhroni saobraćaj – FP me- (c) Sinhroni saobraćaj – FP me-
hanizam omogućen hanizam onemogućen hanizam onemogućen
(d) Sinhroni saobraćaj, T = 1000 [µs] – FP meha- (e) Sinhroni saobraćaj, T = 500 [µs] – FP meha-
nizam omogućen nizam omogućen
(f ) Sinhroni saobraćaj, T = 250 [µs] – FP meha- (g) Sinhroni saobraćaj, T = 125 [µs] – FP meha-
nizam omogućen nizam omogućen
(h) Sinhroni saobraćaj, T = 62.5 [µs] – FP meha- (i) Sinhroni saobraćaj, T = 31.25 [µs] – FP me-
nizam omogućen hanizam omogućen
67
7. Zaključak
68
Naime, kod vremenski rasporedjenog saobraćaja može se desiti da slanje kontrolnog
frejma zakasni zbog toga što se prenos frejma iz prethodnog vremenskog ciklusa propagirao u
naredni vremenski ciklus. Ili ako je riječ o asinhronom saobraćaju kod kojeg vrijeme kašnjenja
treba da bude što je moguće kraće, može se desiti da je neposredno nakon početka slanja
frejma niskog prioriteta potrebno poslati kontrolni frejm, tada je slanje kontrolnog frejma
blokirano i započinje tek nakon što se frejm niskog prioriteta pošalje kompletan. Oba scenarija,
osim što su nepoželjna, mogu da imaju ozbiljne posljedice kao što su oštećenje opreme ili
ukrožavanje ljudskog života. Mehanizam za prekidanje Ethernet okvira je rješenje navedenih
problema.
Akcenat ovog rada je bila implementacija modula MAC Merge Sublayer koji obavlja
funkcionalnost prekidanja Ethernet okvira na FPGA platformi. Modul je opisan VHDL
jezikom za opis hardvera, dok je za proces sinteze korišćen programski paket Quartus.
Implementacija se sastoji od osnovnih primopredajnih modula (Transmit, Receive i Express
filter ) i ne uključuje modul (Verification) koji služi za provjeru da li partnerski čvor podržava
funkcionalnost prekidanja Ethernet okvira ili ne (podrazumijevano je podržan). Predstavljen
je i opisan novi, izmjenjeni format Ethernet okvira (mOkvir) na osnovu kojeg se zasniva rad
FP mehanizma.
Verifikovanje rada datog modula je uradjena na nivou simulacije i na nivou sinteze, ko-
rišćenjem standardizovane UVM verifikacione metodologije. Kreirano je verifikaciono okruženje
pomoću kojeg je uradena temeljna funkcionalna verifikacija modula na visokom nivou apstrak-
cije. Osmišljene su dvije verzije testova koji oslikavaju prethodno navedena dva scenarija koja
su bila motivacija uvodjenja FP mehanizma. Procesom verifikacije (posmatranjem rezltata)
je pokazano je da FP mehanizam ispravno funkcioniše u oba scenarija, sinhrone i asinhrone
vrste saobraćaja.
Dalji razvoj na ovu temu bi išao u pravcu implementacije Verification modula koji služi
za provjeru da li partnerski čvor podržava funkcionalnost prekidanja Ethernet okvira, s tim bi
MAC Merge Sublayer modul bio kompletan, zatim integrisanja MAC Merge Sublayer modula
u jedinstveni MAC modul koji podržava FP mehanizam. Te na kraju uraditi integraciju sa
ostalim TSN mehanizmima.
69
Bibliografija
[5] “IEEE 802.1Qbv in more detail: Time slices and guard bands.” https:
//en.wikipedia.org/wiki/Time-Sensitive_Networking#IEEE_802.1Qbv_in_
more_detail:_Time_slices_and_guard_bands.
[7] “IEEE 802.3br and 802.1Qbu Interspersing Express Traffic (IET) and Frame Preemption.”
https://en.wikipedia.org/wiki/Time-Sensitive_Networking#IEEE_802.3br_
and_802.1Qbu_Interspersing_Express_Traffic_(IET)_and_Frame_Preemption.
[8] “IEEE Standard for Local and metropolitan area networks – Bridges and Bridged
Networks,” IEEE Std. 802.1Q–2014, vol. Annex I.4 Traffic types and priority values,
2014.
[9] “IEEE Standard for Local and metropolitan area networks – Bridges and Bridged
Networks – Amendment 26: Frame Preemption,” IEEE Std. 802.1Qbu–2016, 2016.
70
[10] “IEEE Standard for Ethernet – Amendment 5: Specification and Management Parameters
for Interspersing Express Traffic,” IEEE Std. 802.3br–2016, 2016.
71