You are on page 1of 78

UNIVERZITET U BANJOJ LUCI

ELEKTROTEHNIČKI FAKULTET

REALIZACIJA PMAC JEDINICE NA FPGA


PLATFORMI

Diplomski rad

Mentor: Kandidat:
doc. dr Mladen Knežić Miloš Kovačević

Banja Luka, 2020.


Informacije o mentoru i diplomskom radu

Mentor: doc. dr Mladen Knežić, Elektrotehnički fakultet, Univerzitet u Banjoj Luci

Naslov diplomskog rada: Realizacija pMAC jedinice na FPGA platformi

Rezime:

Ključne riječi: FPGA

Naučna oblast: Inženjerstvo i tehnologija


Naučno polje: Elektrotehnika, elektronika, informaciono inženjerstvo i računarske i
informacione nauke
Klasifikaciona oznaka: T 170
Tip odabrane licence Kreativne zajednice: CC BY-NC
Komisija: doc. dr Mladen Knežić
prof. dr Zlatko Bundalo
master Velibor Škobić
Sadržaj

Sadržaj

Lista tabela i

Lista slika ii

1 Uvod 1

2 Vremenski kritične komunikacione mreže 4


2.1 Sinhronizacija . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.2 Rezervacija resursa mreže . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.2.1 Protokol za rezervaciju resursa mreže . . . . . . . . . . . . . . . . 5
2.2.2 Kontrola i rezervacija putanja . . . . . . . . . . . . . . . . . . . . 7
2.2.3 Replikacija i eliminisanje paketa zbog povećanja pouzdanosti . . . 7
2.3 Rasporedivanje i uobličavanje saobraćaja . . . . . . . . . . . . . . . . . . 7
2.3.1 Uobličavač zasnovan na kreditu tokova . . . . . . . . . . . . . . . 8
2.3.2 Uobličavač zasnovan na vremenu . . . . . . . . . . . . . . . . . . 9

3 Mehnizam za prekidanje okvira 13


3.1 MAC Merge sublayer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.1.1 MAC Merge uslužni interfejs . . . . . . . . . . . . . . . . . . . . . 17
3.1.2 MAC Merge Packet – mOkvir . . . . . . . . . . . . . . . . . . . . 17
3.1.2.1 Format mOkvira . . . . . . . . . . . . . . . . . . . . . . 18
3.1.2.2 Preambula . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.1.2.3 Start mPacket Delimiter . . . . . . . . . . . . . . . . . . 18
3.1.2.4 frag count . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.1.2.5 mPodaci . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.1.2.6 CRC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.1.3 MAC Merge princip rada . . . . . . . . . . . . . . . . . . . . . . . 20
3.1.3.1 Predajnik . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.1.3.2 Prijemnik . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.1.3.3 Verifikacija . . . . . . . . . . . . . . . . . . . . . . . . . 24

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

2.1 Prikaz kako su pojedine klase saobraćaja prioritetizovane . . . . . . . . . 8

3.1 Validne SMD vrijednosti . . . . . . . . . . . . . . . . . . . . . . . . . . . 19


3.2 Validne vrijednosti brojača fragmenata . . . . . . . . . . . . . . . . . . . 20

4.1 Resursi Cyclone IV E familije . . . . . . . . . . . . . . . . . . . . . . . . 30


4.2 Opis signala MAC Interfejsa . . . . . . . . . . . . . . . . . . . . . . . . . 37
4.3 Opi signala RS Interfejsa . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
4.4 Opis signala Management and Control Interfejsa . . . . . . . . . . . . . . 41

5.1 UVM faze . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

6.1 Atributi transakcije . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56


6.2 Testni zatjevi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
6.3 Dužina trajanja intervala nižeg prioriteta u zavisnosti od dužine perioda 59
6.4 Sumiran izvještaj testova . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
6.5 Testni zatjevi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

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

3.1 Ilustracija rada FP mehanizma kada se koristi TAS mehanizam . . . . . 14


3.2 Ilustracija rada FP mehanizma kada se ne koristi TAS mehanizam . . . . 15
3.3 Konceptualni blok diagram MAC Merge Sublayer -a . . . . . . . . . . . . 16
3.4 Veza Ethernet MAC-a (sa MMSL) i OSI referentnog modela . . . . . . . 17
3.5 Format mOkvira . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.6 Principijelna blok šema MAC Merge Sublayer -a . . . . . . . . . . . . . . 21
3.7 Prikaz mOkvira i intervala u kom je dozvoljen prekid . . . . . . . . . . . 22

4.1 Faze projektovanja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25


4.2 Stilovi projektovanja integrisanih kola . . . . . . . . . . . . . . . . . . . . 26
4.3 Procesi projektovanja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
4.4 Osnovna arhitektura FPGA integrisanog kola . . . . . . . . . . . . . . . 28
4.5 Arhitektura logičkog elementa Cyclone IV familije . . . . . . . . . . . . . 31
4.6 Arhitektura logičkog bloka (LAB) Cyclone IV familije . . . . . . . . . . . 32
4.7 Arhitektura množača Cyclone IV familije . . . . . . . . . . . . . . . . . . 32
4.8 Arhitektura I/O elementa Cyclone IV familije . . . . . . . . . . . . . . . 33

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

5.1 UVM hijerarhija klasa . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47


5.2 UVM faze . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
5.3 Tipična arhitektura UVM Testbench-a . . . . . . . . . . . . . . . . . . . 50

6.1 Arhitektura verifikacionog okruženja . . . . . . . . . . . . . . . . . . . . 54


6.2 Format periodičnog saobraćaja . . . . . . . . . . . . . . . . . . . . . . . 58
6.3 Ilustracija rada FP mehanizma kada se ne koristi TAS mehanizam . . . . 60
6.4 Ilustracija rada FP mehanizma kada se koristi TAS mehanizam . . . . . 61
6.5 mms-REQ-1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
6.6 odlaganje slanja mOkvira . . . . . . . . . . . . . . . . . . . . . . . . . . 66
6.7 Izvještaj o funkcionalnoj pokrivensti . . . . . . . . . . . . . . . . . . . . 67
1. Uvod

Kontrolne aplikacije u oblasti industrijske automatizacije su tipično vremenski-kritične,


kritične sa stanovišta pouzdanosti (odsustvo kontrolne poruke može da izazove ozbiljne po-
sljedice, kao što su oštećenje opreme ili da čak ugroze ljudski život) i zahtjevaju odreden nivo
determinizma za rad u realnom vremenu. Neophodno je obezbijediti da komunikacija izmedu
kontrolnih aplikacija zadovoljava zahtjeve komunikacije u realnom vremenu (determinizam,
maksimalno kašnjenje u prenosu i garancija isporuke paketa), jer su performanse i pouzdanost
kontrolnih aplikacija (procesa industrijske automatizacije) u velikoj mjeri uslovljeni perfor-
mansama/karakteristikama komunikacione mreže. Povećanje broja i kompleksnosti/složenosti
kontrolnih aplikacija (daljinsko upravljanje i nadzor preko interneta – IIoT, SCADA, ADA-
S/AD, itd) nerijetko rezultuje dodavanje novih kontrolnih jedinica ili krajnjih čvorova što čini
mrežu kompleksnijom/složenijom i težom za održavanje, čime se značajno povećava cijena
mreže. Analogno, dolazi do povećanja količine informacija koja se razmijenjuje kroz mrežu,
odnosno rastu zahtjevi za potrebnim propusnim opsegom. Novi, rastući, zahtjevi značajno
prevazilaze mogućnosti koje pružaju konvencionalni Fieldbus protokoli. Sa druge strane, iz
istih razloga, nameće se potreba za integracijom hijerarhijske mrežne strukture, tipične u
industrijskim komunikacionim mrežama, u jednu mrežu. Kao jedno od mogućih rješenja
nameće se Ethernet protokol koji se već dugo godina dominantno koristi u polju računarskih
mreža zahvaljujući svojoj jednostavnosti, niskoj cijeni, skalabilnosti, fleksibilnosti, te velikim
brzinama prenosa podataka. Uprkos svim navedenim osobinama, Ethernet u nedostatku
determinističkog ponašanja, u svom izvornom obliku nije pogodan za korišćenje u okruženjima
koja zahtjevaju komunikaciju u realnom vremenu. Naime, Ethernet je izvorno osmišljen za
upotrebu u mrežama u kojima vrijeme nije od primarnog značaja nego je glavni cilj dijeljenje
resursa (serveri, servisi, štampači, itd) i razmijena podataka (tekstualnog i multimedijalnog
sadržaja), danas poznatijim kao ,,računarskim mrežama”. Da bi se omogućilo determinističko

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.

Razni proizvodači industrijske opreme pristupili su prevazilaženju ovih problema uvodeći


različita poboljšanja u standardni Ethernet što je rezultovalo nekoliko verzija kao što su:
ModbusTCP, PROFINET, Ethernet PowerLink, EtherCAT, Sercos III (vendor-independent,
manufacturer-independent), time-triggered Ethernet (TTEthernet). Svaka verzija definiše:
paradigme komunikacije (master – slave, provider – consumer, client – server ), ograničenja
po broju čvorova u mreži, mrežnu topologiju (magistrala, prsten, linija), načine sinhronizacije,
dužine trajanja perioda jednog komunikacionog ciklusa, klasifikacije saobraćaja, itd, dok se
sve odlikuju brzinom prenosa do 100 [Mb/s]. Navedene razlike onemogućavaju komunikaciju
izmedu navedenih verzija protokola, pa je za koegzistenciju više njih unutar iste mreže potrebno
obezbijediti protokol-konvertore (eng. gateways) što smanjuje performanse i (dodatno) uvećava
cijenu mreže.

Sveobuhvatno rješenje za zahtjevanu potrebnu brzinu prenosa podataka i koegzistenciju


različitih tipova saobraćaja (vremenski-kritičan saobraćaj, kontrolni saobraćaj, best-effort
saobraćaj) unutar jedne mreže ponudila je IEEE organizacija (eng. Institute of Electrical and
Electronics Engineers) u obliku skupa standarda pod nazivom TSN (eng. Time Sensitive
Networking). Novi mehanizmi kao i značajna poboljšanja starih mehanizama koji bi obezbijedili
neophodan determinizam i adekvatan nivo pouzdanosti prenosa podataka unutar mreža
zasnovanih na komutiranom Ethernet-u, a pri tome ne narušavajući njegove inicijalne osobine,
predstavljeni su u obliku dodataka već ustaljenim Ethernet standardima IEEE 802.1 i IEEE
802.3 (drugi sloj OSI modela). Tako se kroz skup od ukupno 30 standarda definišu mehanizam
za sinhronizaciju, mehanizmi za rasporedivanje saobraćaja (unutar kojih su definisane klase
saobraćaja), mehanizme za rezervaciju resursa mreže, itd. Drugim riječima, definisani su
mehanizmi neophodni za funkcionisanje Ethernet-a 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.

Fokus završnog rada prvog ciklusa studija je izučavanje, implementacija i simulacija/veri-


fikacija TSN mehanizma za prekidanje okvira opisanog standardima IEEE Std 802.1Qbu-2016
(Amendment to IEEE Std 802.1Q-2014) i IEEE Std 802.3br-2016 (Amendment to IEEE
Std 802.3-2015). Uvodni dio daje obrazloženje uvodenja Ethernet protokola u sistemima za
rad u realnom vremenu, kao i probleme koji se trebaju prevazići. U drugom poglavlju su
opisani osnovni mehanizmi obuhvaćeni TSN skupom standarda. Treće poglavlje je posvećeno
mehnizmu za prekidanje okvira, principu rada, zahtjevima koje ovaj mehanizam postavlja i
korelaciji sa postojećim standardima IEEE Std 802.1 i IEEE Std 802.3. U četvrtom poglavlju
dat je opšti opis platforme za implementaciju te je opisana praktična realizacija mehanizma
za prekidanje okvira. Peto poglavlje je rezervisano za osnovne koncepate, mehanizme i ele-
mente korišćene verifikacione metodologije. U narednom, šestom, poglavlju je prikazano i
opisano verifikaciono okruženje, zatim su priloženi testni slučajevi popraćeni odgovarajućim
rezultatima. I u, posljednjem, sedmom poglavlju su sumirani zaključci, te navedeni prijedlozi
za dalja istraživanja i poboljšanja.

3
2. Vremenski kritične komunikacione mreže

Glavni zadatak komunikacionih mreža kritičnih sa stanovišta pouzdanosti i bezbjednosti


(eng. safety-critical ) je da obezbijede zagarantovanu isporuku svih paketa/okvira od jednog
ka drugom čvoru unutar odredenog vremenskog roka, tj. da obezbijede determinizam unutar
mreže. Prva inicijativa IEEE organizacije da uvede zagarantovano vrijeme isporuke okvira
u standardni Ethernet je pokrenuta kroz AVB (eng. Audio Video Bridging) skup tehničkih
standarda. AVB omogućava komunikaciju u realnom vremenu preko standardne Ethernet
infrastrukture proširivanjem IEEE 802 skupa standarda (IEEE 802.1 and IEEE 802.3).
Prvobitna namjera AVB radne grupe je bila da se omogući prenos multimedijalnog sadržaja
(audio i video) u realnom vremenu kroz mrežu baziranu na komutiranom Ethernet sistemu
(eng. Switched Ethernet). Kasnije se uvidjelo da se kroz ovakvu mrežu mogu prenositi poruke
sa striktnijim vremenskim zahtjevima koje se tipično razmjenjuju u industrijskim okruženjima
(automobilska, avionsko-svemirska industrija, procesna automatizacija itd). U tom smislu,
AVB radna grupa, 2012. godine, mijenja ime u TSN (eng. Time Sensitive Networking) i
nastavlja rad na poboljšanju fleksibilnosti, pouzdanosti prenosa, smanjenju kašnjnja (latencije)
prilikom prenosa podataka kroz mrežu baziranu na determinističkom komutiranom Ethernet-u.
Definisani mehanizmi opisani u više od 30 odvojenih documenata omogućavaju komunikaciju
u realnom vremenu kroz mrežu baziranu na komutiranom Ethernet-u sa determinističkim
kvalitetom usluge (eng. Quality of Service – QoS) za vezu izmedu dva čvora. Možemo da
identifikujemo tri osnovne kategorije:

• Sinhronizacija (eng. Time synchronization) – Svi uredaji koji učestvuju u komunikaciji


u realnom vremenu moraju dijeliti zajedničku vremensku bazu.

• Rasporedivanje i uobličavanje saobraćaja (eng. Scheduling and traffic shaping) – Svi


uredaji koji učestvuju u komunikaciji u realnom vremenu pridržavaju se istih pravila
obrade i prosljedivanja paketa.

• Rezervacija resursa mreže (eng. Selection of communication paths, paths reservation

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 ).

U nastavku ćemo detaljnije opisati karakteristike prethodno navedenih kategorija.

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.

2.2 Rezervacija resursa mreže

2.2.1 Protokol za rezervaciju resursa mreže

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),

• atribut se propagira kroz mrežu do svih uredaja u mreži,

• registruje se StreamID i računa najgore vrijeme kašnjenja u svakom komutatoru,

• ukoliko je neki od čvorova zainteresovan za prijem podataka od Talker -a, on šalje


odgovor u formi Listener atributa (slika 2.2b).

• Tokom propagacije Listener atributa, rezerviše se odgovarajući propusni opseg (ukoliko


je to moguće),

• 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]

2.2.2 Kontrola i rezervacija putanja

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 ).

2.2.3 Replikacija i eliminisanje paketa zbog povećanja pouzdanosti

Mehanizam za replikaciju i eliminisanje paketa FRER (eng. Frame Replicationand


Elimination for Reliability) šalje više kopija istog okvira preko disjunktnih putanja, pri
čemu prijemna strana identifikuje kopije i odbacuje ih. Svaki replicirani okvir posjeduje
identifikacioni broj koji služi za preuredivanje i spajanje validnih okvira kao i za odbacivanje
primljenih replika. Ovim se unosi redundansa za kontrolne aplikacije koje ne tolerišu gubljenje
okvira i na taj način se povećava vjerovatnoća ispravnog prijema okvira/paketa što direktno
utiče na povećanje pouzdanosti kompletnog sistema.

2.3 Rasporedivanje i uobličavanje saobraćaja


Rasporedivanje i uobličavanje saobraćaja omogućava koegzistenciju različitih klasa sao-
braćaja sa različitim prioritetima unutar iste mreže, obezbjedujući svakoj klasi odgovarajući
propusni opseg i zagarantovano vrijeme propagacije. IEEE 802.1Q standard koristi striktnu
prioritetnu šemu koja definiše osam različitih prioriteta (tabela 2.1) [8] umetnutih u PCP
(eng. Priority Code Point) polju 802.1Q VLAN oznake standardnog Ethernet okvira. Ovi
prioriteti, iako omogućavaju razlikovanje izmedu važnijeg i manje važnog saobraćaja, ne daju
zagarantovano vrijeme propagacije okvira čak ni najvišeg prioriteta. Razlog je baferovanje

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.

Tabela 2.1: Prikaz kako su pojedine klase saobraćaja prioritetizovane

Prioritet Akronim Vrsta saobraćaja


1 BK Background
0 (podrazumijevano) BE Best Effort
2 EE Excellent Effort
3 CA Critical Applications
4 VI “Video,” <100 ms latency and jitter
5 VO “Voice,” <10 ms latency and jitter
6 IC Internetwork Control
7 NC Network Control

2.3.1 Uobličavač zasnovan na kreditu tokova

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).

Slika 2.3: Ilustracija načina rada CBS uobličavača saobraćaja [3]

2.3.2 Uobličavač zasnovan na vremenu

Uobličavač zasnovan na vremenu TAS (eng. Time-Aware Shaper) organizuje komunikaciju


u mreži u periodične vremenske intervale fiksne dužine (slika 2.4). Unutar svakog vremenskog
intervala, različitim podintervalima se može dodijeliti jedan ili više Ethernet VLAN prioriteta.
Na ovaj način se garantuje pristup medijumu (kanalu), na ograničeno vrijeme za koje se ne smije
prekinuti slanje okvira koji pripada datoj klasi, što predstavlja osnovni koncept TDMA (eng.
Time-division Multiple Access) paradigme. Uspostavljanjem virtuelnih kanala komunikacije za
odredene vremenske intervale, vremenski-kritičan saobraćaj se može odvojiti od pozadinskog,
,,best effort”, saobraćaja. TAS zahtijeva da svi uredaji u mreži budu sinhronizovani, jer se

9
njegov rad oslanja na sinhrono vrijeme u mreži.

Slika 2.4: Periodični saobraćaj prema IEEE 802.1Qbv standardu [4]

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

Slika 2.6: Format standardnog Ethernet okvira [6]

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 djelimično ublažio negativan uticaj zaštitnog itervala (smanjenje propusnog


opsega), u IEEE802.1Qbv standardu je predviden mehanizam rasporedivanja zasnovan na
dužini (eng. Length-Aware Scheduling -’ LAS). Naime, nakon prijema Ethernet okvira koji je
potrebno poslati na port na kojem je počeo zaštitni interval, LAS rasporedivač provjerava
dužinu datog okvira. Ako se kompletan okvir može poslati unutar zaštitnog intervala (prije
početka novog vremenskog intervala), rasporedivač će da pošalje okvir bez obzira što traje
zaštitni interval, čime se smanjuje negativan uticaj koji zaštitni interval ima na propusni opseg.
Ovaj mehanizam se koristi kod ,,store-and-forward ” komutatora, dok se ne može koristiti ako
komutator radi u ,,cut-through” režimu.

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.

Periodični sabraćaj, opisan u prethodnom poglavlju, kojim se obezbjeduje deterministička


priroda mreža baziranih na komutiranom Ethernet-u ima jedan ozbiljan nedostatak, a to je
neefikasno iskorišćenje proupusnog opsega. Naime, kao što je već rečeno, za vrijeme trajanja
zaštitnog intervala nijedan čvor u mreži ne šalje pakete, što se direktno reflektuje na iskorišćenje
propusnog opsega rezervisanog za manje kritičan i nekritičan saobraćaj.

Uvodenjem FP mehanizma može se smanjiti trajanje zaštitnog intervala, jer je sada


njegova dužina odredena minimalnom dužinom prekidivog mOkvira. Na taj način se povećava
iskoristivost propusnog opsega koji je rezervisan za nekritičan saobraćaj (slika 3.1).

13
Slika 3.1: Ilustracija rada FP mehanizma kada se koristi TAS mehanizam

Minimalna dužina prekidivog mOkvira definisana je dužinom minimalnog Ethernet


okvira koja iznosi 64 okteta. Tako se veličina zaštitnog intervala može smanjiti do veličine
dva minimalna Ethernet okvira, tačnije 119 okteta (jedan dužine 60, a drugi 59 okteta ne
uključujući CRC polje). Prema tome, ukupna (minimalna) dužina zaštitnog intervala, u
slučaju kada se koristi FP mehanizam, iznosi 143 okteta (8 okteta preambule, 1 oktet SFD
polja, 119 okteta podataka, 4 okteta CRC polja i 12 okteta rezervisanih za pauzu izmedu
frejmova – IFG). Minimalna dužina trajanja zaštitnog intervala skazana u vremenu je data sa
3.1

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).

U slučaju kada se ne koristi periodični saobraćaj (TAS sa zaštitnim intervalom), dolazi


do povećanja kašnjenja dolaska (eng. latency) kritičnog okvira usljed odlaganja njegovog
slanja zbog slanja nekritičnog okvira. Naime, ako je neposredno nakon početka slanja okvira
niskog prioriteta potrebno poslati okvir visokog prioreta, tada slanje okvira visokog prioriteta
započinje tek nakon što se završi slanje okvira niskog prioriteta. To može da predstavlja
problem kod asinhrono kritičnih aplikacija kod kojih vrijeme kašnjenja mora biti što je moguće
kraće. FP mehanizam smanjuje kašnjenje pri prenosu okvira visokog prioriteta (HP) tako što
se u datom slučaju prekida slanje okvira niskog prioriteta (LP), šalje okvir visokog prioriteta,
a zatim nastavlja slanje prekinutog okvira (slika 3.2).

3.1 MAC Merge sublayer


MAC Merge sublayer (MMS) predstavlja proširenje Ethernet MAC arhitekture čija je
funkcionalnost opisana u članu 99 dopune standarda IEEE Std 802.3br-2016.

14
Slika 3.2: Ilustracija rada FP mehanizma kada se ne koristi TAS mehanizam

Uloga MMS-a je da omogući da dva nezavisna, potpuno dvosmjerna (eng. full-duplex )


MAC modula dijele jednu fizičku vezu (jedan fizički medijum) kroz generički sloj pod nazivom
Reconciliation Layer (RS) na bitskim brzinama od 100 [Mb/s] i iznad. Generički RS sloj,
pozicioniran izmedu MMS i fizičkog sloja (PHY-a), obezbjeduje generički interfejs prema
1
xMII (eng. Media Independent Interface) interfejsu koji povezuje Ethernet MAC sa fizičkim
slojem kao što je i prikazano na slici 3.3. Dva nezavisna MAC-a su:

• preemptable MAC (pMAC) – opslužuje prekidivi (preemptable) saobraćaj,

• express MAC (eMAC) – opslužuje neprekidivi (express) saobraćaj.

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.

Slanje okvira može se zadržati na dva načina:

• 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

• MMS može da spriječi/odloži slanje nekritičnog saobraćaja.

Kada je mehanizam za prekidanje okvira aktivan, MMS dopušta da:

• okviri koji (pri)stižu preko eMAC uslužnog interfejsa (eng. express MAC service inter-
face), tj. kritični saobraćaj ili

• iniciranje zahtjeva za prekid od strane MMSI

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

3.1.1 MAC Merge uslužni interfejs

MMS nudi četiri servisna (uslužna) interfejsa i to su:

• eMAC PLS (eng. Physical Signaling – PLS), pMAC PLS i RS PLS servisni interfejs –
čiji je detaljni opis dat u sekciji 6 dokumenta [6]

• MMSI servisni interfejs – U okviru ovog interfejsa definisan je zahtjev MM CTL.request


od MAC klijenta MMS podsloju/jedinici za prekid slanja prekidivog saobraćaja (sa
vrijednošću HOLD) ili za nastavak slanja prekidivog saobraćaja (sa vrijednošću RELE-
ASE).

3.1.2 MAC Merge Packet – mOkvir

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:

• kompletan neprekidivi (express) frejm,

17
• kompletan prekidivi (preemptable) frejm,

• inicijalni (početni) fragment/dio prekidivog frejma ili

• fragment/dio nastavka prekidivog frejma

3.1.2.1 Format mOkvira

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.

Slika 3.5: Format mOkvira

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).

3.1.2.3 Start mPacket Delimiter

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.

Tabela 3.1: Validne SMD vrijednosti

Tip mOkvira Oznaka Broj frejma Vrijednost


Verifikacioni mOkvir - V-mOkvir SMD-V — 0x07
Verifikacioni mOkvir odgovora - R-mOkvir SMD-R — 0x19
Neprekidivi mOkvir SMD-E — 0xD5
Inicijalni fraagment prekidivog mOkvira SMD-S0 0 0xE6
SMD-S1 1 0x4C
SMD-S2 2 0x7F
SMD-S3 3 0xB3
Fragment nastavka prekidivok mOkvira SMD-C0 0 0x61
SMD-C1 1 0x52
SMD-C2 2 0x9E
SMD-C3 3 0x2A

Vrijednosti SMD-S i SMD-C rezervisane za neprekidive frejmove (potpune ili nepotpune)


takode ukazuju na broj okvira (brojač modula 4). Informacija o broju okvira je bitna jer
spriječava sastavljanje nevažećeg okvira ukoliko se jedan od fragmenata izgubi pri slanju.
2
Ukazuje na bilo koju od četiri vrijednost SMD-S0, SMD-S1, SMD-S2 ili SMD-S3
3
Ukazuje na bilo koju od četiri vrijednost SMD-C0, SMD-C1, SMD-C2 ili SMD-C3

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.

Tabela 3.2: Validne vrijednosti brojača fragmenata

Broj fragmenta Vrijednost


0 0xE6
1 0x4C
2 0x7F
3 0xB3

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.

3.1.3 MAC Merge princip rada

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.

Kada je mehanizam za prekidanje okvira onemogućen, okviri koji dolaze od eMAC-a i


pMAC-a prolaze kroz MMS nepromijenjeni, tj. MMS radije šalje okvire nego mOkvire. Ako
oba MAC-a, eMAC i pMAC, imaju spremne okvire za slanje, a pri tome se nijedan okvir
trenutno ne šalje (MMS je u idle stanju), opsulžen će biti prvo eMAC. Drugim riječima prvo
će se poslati eMAC okvir nakon čega će se poslati pMAC okvir. Ali ako eMAC ima spreman
okvir za slanje, a trenutno se salje pMAC okvir, eMAC okvir će se poslati tek kada se završi
slanje pMAC okvira. Znači, kada je mehanizam za prekidanje okvira onemogućen, MMS
neće prekidati prekidive okvire koji dolaze od pMAC-a (ukoliko prekidivi okvir dode prije
neprekidivog okvira) ali će i dalje biti u mogućnosti da odloži slanje prekidivog okvira ukoliko
oni stignu istovremeno.

Kada je mehanizam za prekidanje okvira omogućen, predajni proces zamijenjuje vrijednost


polja SFD u pMAC okviru sa odgovarajućom SMD-S vrijednošću (2-bitni kružni brojač okvira).
Kako je vrijednost SMD-E jednaka vrijednosti SFD eMAC okvira, predajni proces nema
potrebe da mijenja vrijednost ovog polja. Prekid prekidivog okvira se dešava kada predajni

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.

Slika 3.7: Prikaz mOkvira i intervala u kom je dozvoljen prekid

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

Funkcionalnost prijemnika je razdvojena na dva dijela: prijemnik prekidivih okvira (eng.


Receive Processing) i prijemnik neprekidivih okvira (eng. Express Filter ) slika 3.6. Bez obzira

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:

• da li je prethondni okvir prekinut,

• da li dokodovana vrijednost SMD-C polja (brojač okvira) odgovara prethodno primljenoj


dekodovanoj vrijednosti SMD-S (inicijalnog fragmenta) ili SMD-C (jednog fragmenta
nastavka), i

• da li je primljen odgovarajući fragment.

Ako je bilo koja od prethodnih provjera neuspiješna, mOkvir se odbacuje i prijemni


proces obavještava pMAC modul da je došlo do greške prilikom prijema okvira. U suprotnom,
prijemni proces inkrementuje brojač fragmenata (frag count) i počne proslijedivati podatke
pMAC-u.

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

Nakon što se ustanovi da partneska stanica podržava mehanizam za prekidanje okvi-


ra, razmijenom Additional Ethernet Capabilities TLV poruka, moduo za verifikaciju (eng.
verification – slika 3.6) inicira proces aktivacije mehanizma. Proces aktivacije se sastoji od
slanja verifikacionog mOkvira (SMD polje ima vrijednost SMD-V) i primanja odgovora od
partnerske stanice (primljeni mOkvir u polju SMD sadrži SMD-R vrijednost). Oba mOkvira
su formatirana kao prvi format (slika 3.5b) sa odgovarajućim SMD vrijednostima (SMD-V za
verifikacioni ili SMD-R za odgovor) i poljem podataka (mPodaci) popunjen nulama dužine 60
okteta.

Ako je mehanizam za prekidanje okvira omogućen i ustanovi se da partner takode podržava


mehanizam (i isto je omogućen), tada moduo za verifikaciju inicira slanje verifikacionog
mOkvira (V – mOkvir). Kada partner primi V – mOkvir sa ispravnim mCRC-om on šalje
odgovor (R – mOkvir). Po primanju R – mOkvira od partnera sa ispravnom mCRC-om
proces verifikacije je završen.

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

Implementacija MMS opisanog u poglavlju 3.1.3 u suštini predstavljla preslikavanje datog


opisa iz funkcionalnog domena u strukturni domen. Ovaj postupak se naziva strukturno
projektovanje ili sinteza. Poslije svake sinteze potrebno je utvrditi da li su se narušile
funkcionalne osobine projekta - verifikacija. Verifikacija, kojoj je posvećeno naredno poglavlje,
se obavlja unutar pojedinih domena i nivoa apstrakcije. Izmedu sinteze i verifikacija se nalazi
i optimizacija. To je proces kojim se poboljšavaju performanse sistema samo po jednom
parametru a da se pri tome ne naruše performasne po ostalim parametrima (najčešće su ti
zahtijevi kontradiktorni te je neophodno traženje kompromisa). Tako dolazimo do tri osnovne
aktivnosti koje obuhvata proces projektovanja i koje se prožimaju kroz sve faze projektovanja,
a to su: sinteza, optimizacija i verifikacija (slika 4.1).

Slika 4.1: Faze projektovanja

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.

Slika 4.2: Stilovi projektovanja integrisanih kola

Proces projektovanja, tj prolazak kroz faze projektovanja je u velikoj mjeri automatizo-


van. Automatizaciju realizuju sofisticirani računarski programi (alati) za projektovanje koji
omogućavaju prevodenje opisa projekta sa višeg nivoa apstrakcija na neki od nižih nivoa
apstrakcija.

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

razvojnog okruženja DE2-115 koje je opremljeno FPGA integrisanim kolom Cyclone IV E


familije. Kao alat za projektovanje (sintezu), koji ujedno i automatizuje navedene procese
prijektovanja za datu familiju, korišćen je programski paket Quartus
R
II 18.1.0 dok je za
potrebe verifikacije korišćen je Questa Sim-64 vsim 10.5 simulator.

U nastavku ćemo se kratko upoznati sa FPGA tehnologijom, šta je to FPGA, koje su


prednosti i mane u odnosu na integrisana kola specifične namjene (eng. Application Specific
Integrated Circuits – ASIC) tehnologiju, zatim ćemo proći kroz strukturu Cyclone IV E
familije i DE2-115 razvojnog okruženja dok će posebna pažnja biti posvećena detaljima
implementacije.

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?”.

4.1 Platforma/tehnologija za implementaciju - FPGA


Najdominantniji predstavnik grupe integrisanih kola sa konfigurabilnom unutrašnjom
strukturom (eng. Programmable Logic Device – PLD) je nesumnjivo FPGA (eng. Field

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.

Slika 4.4: Osnovna arhitektura FPGA integrisanog kola

Najveća prednost FPGA u odnosu na ASIC kola je mogućnost rekonfiguracije. Ova


osobina čini FPGA kola fleksibilnim i pogodnim za izradu prototipa kao i testiranja sistema.
Proces projektovanja sistema za FPGA je kraći što, obezbijeduje kraće vrijeme lansiranja
proizvoda na tržište. ASIC kola, koja su po svojoj prirodi projektovana za specifične namijene,
su brža, energetski efikasnija i manja po površini u odnosu na isti sistem implementiran za

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

• Cyclone IV GX - FPGA sa 3.125 Gbps primopredajnikom.

Osnovne karakteristike Cyclone IV familije su:

• od 6K do 150K logičkih elemenata,

• do 6.3 Mb ugradene memorije,

• do 380 množaća 18x18,

• do 532 korisničkih ulazno/izlaznih (I/O) priključaka (pinova)

– LVDS (Low-Voltage Differential Signaling) interfejsi (do 840 Mbps za predajnik i


do 875 Mbps za prijemink)

– interfejs za DDR2 SDRAM do 200 MHz


1

29
– interfejs za QDRII SRAM i DDR SDRAM do 167 MHz

• do 8 fazno-zaključanih/zatvorenih petlji (PLL - Phase-Locked Loop)

U tabeli 4.1 je dat pregled količine resursa za različite čipove iz Cyclone IV E familije

Tabela 4.1: Resursi Cyclone IV E familije

Integrisano Logički Ugradena memorija Ugradeni množači


PLLs I/O
kolo elementi (LE) [Kbits] (18 x 18)
EP4CE6 6 272 270 15 2 179
EP4CE10 10 320 414 23 2 179
EP4CE15 15 408 504 56 4 343
EP4CE22 22 320 594 66 4 153
EP4CE30 28 848 594 66 4 532
EP4CE40 39 600 1 134 116 4 532
EP4CE55 55 856 2 340 154 4 374
EP4CE75 75 408 2 745 200 4 426
EP4CE115 114 480 3 888 266 4 528

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.

LE (slika 4.5) predstavlja najmanju logičku jedinicu Cylone IV E familije integrisanih


kola. Elementi koji sačinjavaju LE i osnovne karakteristike su:

• četvoro-ulazna LUT tabela (može da implementira bilo koju funkciju sa četiri promijen-
ljive)

• programabilni registar (može se konfigurisati da radi kao D, T, JK ili SR flip-flop)

• veza za lančani prenos bita prenosa (eng. Carry)

• veza za lančani prenos registarskog izlaza

• mogućnost povezivanja izlaza preko/na

– localnu meduvezu

– meduvezu redova

– meduvezu kolona

– registarski lanac

30
– direktne meduveze

• registarska povratna veza

• Register packing support

Slika 4.5: Arhitektura logičkog elementa Cyclone IV familije

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.

Ugradena memorijska struktura sastoji se od nizova memorijskih blokova. Svaki me-


morijski blok, M9K, obezbjeduje 9 Kb (9216 bita) ugradene SRAM memorije koji se može
konfigurisati da radi kao RAM (sa jednim portom ili sa dva porta i zajedničkim takt signalom,

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).

Dio Cyclone IV E familije integrisanih kola su i množači. Naravno, strukturirani su u


nizove gdje osnovni blok množača može da implementira dva 9x9 množača ili jedan 18x18
množač (9 i 18 predstavljaju širine operanada u bitima). U slučaju da je potrebno pomnožiti
dva operanda čije su širine veće od 18 bita, alat za sintezu će oformiti kaskadnu vezu sa više
množača da zadovolji potrebnu širinu operanada. Tako da ne postoji ograničenje po pitanju
širine operanada, ali to rezultuje sporijem procesu množenja. Osnovni blok sadrži ulazni i
izlazni interfejs, registarski ulaz, registarski izlaz i množački stepen (slika 4.7).

Slika 4.7: Arhitektura množača Cyclone IV familije

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).

Slika 4.8: Arhitektura I/O elementa Cyclone IV familije

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

4.1.2 Altera DE2-115 razvojno okruženje

Vodeća serija razvojnih okruženja namijenjih za edukativne svrhe je TERASIC-ova serija


DE2. DE2 seriju od ostalih izdvaja mnoštvo interfejsa raspoloživih korisniku za realizaciju
različitih sistema, od najjednostavnijih sistema pa do kompleksnih sistema za digitalnu obradu
signala (npr. audio/video obrada) ili mikroprocesorskih sistema. Jedno razvojno okruženje
DE2 serije je DE2-115 (slika ??) koje je opremljeno sa integrisanim kolom EP4CE115F29 iz
Cyclone IV E familije. Ostali periferni uredaji DE2-115 razvojnog okruženja su:

• EPCS64 - Altera-in čip za serijsku konfiguraciju

• USB Blaster programator; dva režima JTAG i Active Serial (AS)

• 2MB SRAM

• 2x64MB SDRAM

34
• 8MB Flash memorije

• SD čitač kartica

• 4 prekidačka dugmeta

• 18 kliznih prekidača

• 27 korisničkih LED-a (18 crvenih i 9 zelenih)

• oscilator od 50 MHz

• 24-bitni audio CODEC (CD-quality) sa audio ulazom, audio izlazom i ulazom za


mikrofon

• VGA DAC (8-bitni super-brzi trostruki DAC) sa VGA izlaznim konektorom

• TV dekoder (NTSC/PAL/SECAM) sa TV izlaznim konektorom

• 2 gigabitna Ethernet PHY-a sa RJ45 konektorima

• USB kontroler sa USB-A i USB-B konektorima

• RS-232 primopredajnik sa 9-pinskim konektorom

• PS2 konektor

• IR prijemnik

• 2 SMA konektora za externi takt signal (ulazni/izlazni)

• 40-pinsko proširenje (Expansion Header)

• High Speed Mezzanine Card (HSMC) konektor

• 16x2 LCD displej/ekran

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).

Glavni funkcionalni blokovi zajedno sa odgovarajućim interfejsima su prikazani na slici

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.

Slika 4.10: Funkcionalna blok šema MAC Merge Sublayer -a

Treba još napomenuti da priložena implementacija ne uključuje proces verifikacija, već je


fokusirana na implementaciji mehanizma za prekidanje paketa, tako da su sve promijenljive
koje su vezane za proces verifikacije postavljene tako da omoguće rad datog mehanizma.

4.2.1 MAC Interfejs

MAC interfejs omogućava konekciju sa odgovarajućim MAC modulom (eMAC i pMAC).


eMAC interfejs je mapiran na eMAC servisni interfejs dok je pMAC interfejs mapiran na
pMAC servisni interfejs. Detaljan opis funkcionalnosti servisnih interfejsa se nalazi u sekciji 6
dokumenta [6]. Opis pinova MAC interfejsa je prikazan u tabeli 4.2.

4.2.2 RS Interfejs

RS interfejs omogućava konekciju sa generičkim RS modulom imapiran je na RS servisni


interfejs čiji je detaljan opis funkcionalnosti dat, takode, u sekciji 6 dokumenta [6]. Opis
pinova RS interfejsa je prikazan u tabeli 4.3.

36
Tabela 4.2: Opis signala MAC Interfejsa

Naziv signala Smijer Opis


Kontrolni signal koji je jednak jedinici kada su podaci
i xMAC TX EN ulazni
i xMAC TX DATA validni
Handshaking signal. Jednak je jedinici kada je
o xMAC TX READY izlazni
MMS spreman da primi podatke od xMAC-a
i xMAC TX DATA [7 : 0] ulazni Korisni podaci koje se šalju
Kontrolni signal koji je jednak jedinici kada su podaci
o xMAC RX DV izlazni
o xMAC RX DATA validni
o xMAC RX DATA [7 : 0] izlazni Korisni primljeni podaci podaci
* x = e za eMAC ili x = p za pMAC

Tabela 4.3: Opi signala RS Interfejsa

Naziv signala Smijer Opis


Kontrolni signal koji je jednak jedinici kada su podaci
o RS TX EN izlazni
o RS TX DATA validni
o RS TX DATA [7 : 0] ulazni Korisni podaci koje se šalju
Kontrolni signal koji je jednak jedinici kada su podaci
i RS RX DV ulazni
i RS RX DATA validni
i RS RX DATA [7 : 0] izlazni Korisni primljeni podaci podaci

4.2.3 Management and Control Interfejs

Signal i MM CTL request Management and Control Interfejsa (MCI) je mapiran na


MMSI servisni. Zajedno sa ostalim signalima MCI omgućava MAC klijentu da konfiguriše,
kotroliše i prati rad MMS modula. Opis pinova MCI interfejsa je prikazan u tabeli 4.4.

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

Receive proces je odgovoran za primanje mOkvira, odnosno okvira namijenjenih pMAC


modulu. Iz neaktivnog (idle) stanja će izaći po prijemu signala od RS sloja da su podaci
validni (i rsRX DV = ’1’). Nakon čega se čeka da se primi SMD, dok se u meduvremenu
pMAC-u proslijeduju okteti preambule. Kada se primi SMD, Receive proces provjerava
vrijednost SMD polja. Ako je primljena vrijednost jednaka nekoj od SMD-Sx (x = 0, 1, 2
ili 3) vrijednosti, Receive proces dekoduje vrijednost brojača okvira iz SMD-Sx vrijednosti i
sačuva je u s rxFRAME cnt, zamijeni primljenu SMD vrijednost sa SFD vrijednošću koju
pošalje pMAC modulu i počne proslijedivati primljene podatke ka pMAC sloju. U protivnom
(ako polja SMD sadrži bilo koju drugu vrijednost iz tabele 3.1) Receive proces odbacuje
mOkvir i čeka početak novog mOkvira. Tokom primanja podataka od RS sloja, Receive
proces provjerava da li je došlo do prekidanja okvira ili ne. Ako je mOkvir prekinut, primljena

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.

U slučaju da primljena vrijednost SMD polja nije jednaka odgovarajućoj SMD-Cx


vrijednosti, (s rxFRAME cnt != s cFRAME cnt), ili ako je jednaka jednoj od SMD-Sx
vrijednosti, ili ako se brojevi fragmenata ne slažu (s rxFRAG cnt) != (s nxtFRAG cnt)
primljeni paket se ignoriše i Receive proces obaviještava pMAC modul da je došlo do greške
pri fragmentiranji. Ako je vrijednost SMD polja jednaka SMD-E vrijednosti, Receive proces
ignoriše dati okvir (jer nije namijenjen pMAC-u, nije mOkvir) i čeka početak novog okvira
(očekuje se fragment nastavka). Na slici 4.12 je prikazana implementirana mašina stanja
prijema mOkvira (okvira namijenjenih pMAC-u).

4.2.6 Express filter

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

Naziv signala Smijer Opis


Zahtijev za zadršku (HOLD) ili otpuštanje
i MM CTL request ulazni
(RELEASE) prekidivog saobraćaja
Ukazuje da je istekao Inter Packet Gap
o IPG OUT izlazni
interval
Preostali broj okteta prekidivog okvira koji
i pPACKET DATA LEN[15 : 0] ulazni
treba da se pošalje
kontrolni signal koji služi za omogućenje
i pENABLE ulazni
mehanizma za prekidanje okvira
Kontrolni signal vezan za proces
verifikacije mehinizma za prekid.
i DISABLE VERIFY ulazni
Ako je jednak jedinici onemogućen je
proces verifikacije partnera na mreži
Ukazuje na uspiješnost procesa
i VERIFIED ulazni verifikacije mehinizma za prekid
okvira a partnerom/ima na mreži
Kontrolni signal koji se odnosi na
minimalnu dužinu mOkvira.
“00” - 60 okteta
i ADD FRAG SIZE[1 : 0] ulazni
“01” - 124 okteta
“10” - 188 okteta
“11” - 252 okteta
Kontrolni signal koji ukazuje
na to da li je trenutna implementacija
i KEEP SAFTER D ulazni u mogućnosti da počne sa prijemom novog
mOkvira dok je proces odbacivanja prethodnog
mOkvira, usljed greške pri fragmentaciji, u toku
Jednak je jedinici kada MMS završi
o pPACKET COMPLETED izlazni
slanje prekidivog mOkvira
Statusni signal koji ukazuje MAC klijentu u
kom je trenutno stanju neprekidivi kanal.
“00” - eTX STATE = IDLE
o eTX STATE STS[1 : 0] izlazni
“01” - eTX STATE = BUSY
“10” - ,,rezervisano”
“11” - ,,rezervisano”
Statusni signal koji ukazuje MAC klijentu u
kom je trenutno stanju prekidivi kanal
“00” - pTX STATE = IDLE
o pTX STATE STS[1 : 0] izlazni
“01” - pTX STATE = BUSY
“10” - ,,rezervisano”
“11” - pTX STATE = PREEMPTED

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

Verifikacija (simulacija) je proces kojim se potrvduje rad integrisanih kola opisanih


nekim od HDL jezika. U zavisnosti od domena opisa projekta, odnosno od faze projektovanja
integrisanog kola, mogu se razlikovati i različiti nivoi simulacija: simulacija na nivou ponašanja
sistema, simulacija na RTL (eng. Register Transfer Level ) nivou, simulacija na tranzistorskom
nivou i simulacija na gejt (eng. gate) nivou. Uobičajni način provjere ispravnosti rada
opisanog dizajna jeste posmatranje odziva DUT-a (eng. Design Under Test) za datu pobudu.
Prethodni pristup je moguće uraditi na par načina: Jedan od najjednostavnijih metoda se
ogleda u ručnom mijenjanju ulaznih signala (pobude) tokom trajanja simulacije i praćenje
izlaznih signala (odziva) takozvanom metodom ,,gledanja” talasnih oblika na osnovu kojih se
donosi odluka o ispravnosti rada DUT-a. Ova metoda je podložna greškama zbog unošenja
ljudskog faktora u odluku i pogodna je kod jednostavnijih modula (sistema) koji se odlikuju
malim brojem funkcionalnosti kao i sa malim brojem signala čije je talasne oblike ,,moguće”
ispratiti. Drugi metod ide korak dalje ka automatizaciji procesa verifikacije. Verifikacioni
inženjer (ili više njih) definiše niz ulaznih vektora sa kojim će se pobudivati DUT tako
da se potencijalno odvede u sva moguća stanja i provjere svi granični slučajevi definisani
specifikacijom sistema. Takav niz vectora se tipično smiješta u fajl koji će se kasnije u
simulaciji učitati i koristit njegov sadržaj kao pobudu za DUT. Isti vektori se propuste kroz
referentni model, koji može biti stvarni uredaj ili matematički model, i tako dobijeni rezultati
se koriste kao referentni vektori sa kojima se poredi odziv DUT-a. Ovaj metod je pouzdaniji
od prethodnog ali povlači taj problem da u slučaju neke izmjene u dizajnu je potrebno
pisati potpuno novi set ulaznih vektora. Još jedan nedostatak ove verifikacione metode je
ponovno iskorišćenje testbench-a. Naime, testbench napisan za jedan dizajn se ne može ponovo
iskoristiti za verifikaciju drugog dizajna, iako oni mogu biti iste prirode (npr. mikroprocesori,
komunikacioni interfejsi, memorije, itd.). Povećanjem kompleksnosti dizajna postaje sve teže
definisanje ulaznih vektora (pobude) što ograničava primjenu ove metod. Naredna metoda
nudi rješenje navedenih problema apstrahujući ulazn vektor u transakciju, a pobudu u niz

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.

UVM (eng. Universal Verification Methodology) obezbjeduje framework za verifikaciju


zasnovanu na pokrivenosti (eng. Coverage Driven Verification – CDV) koja ne zahtijeva
kreiranje velikog broja testova, osigurava temeljnu verifikaciju na osnovu zadatih parametara
i olakšava proces pronalaženja problema. Iz navedenih razloga je za funkcionalnu verifikaciju
dizajna opisanog u prethodnom poglavlju korišćen UVM-framework.

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).

Slika 5.1: UVM hijerarhija klasa

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.

5.1.1 UVM Faze

Verifikaciono okruženje se odlikuje velikim brojem komponenata koje rade paralelno, te


je nepohodno obezbijediti da se odredene funkcionalnosti izvrše u jasno definisanim trenucima.
Faze predstavljaju sinhronizacioni mehanizam verifikacionog okruženja, drugim riječima sve
komponente su uvijek sinhronizovane u pogledu faza. UVM-ov mehanizam faza je jedna
od najbitnijih funkcionalnosti i novina koje dolaze ugradene u UVM biblioteci. Postoje tri
osnovne grupe UVM faza:
1
Proširiv u smislu proširivanja funkcionalnosti (toka) svake od faza kako bi se zadovoljile potrebe projekta.

47
• build faze - za kreiranje i konfiguraciju verifikacionog okruženja,

• run-time faze - faza simulacije (gdje zapravo teče simulaciono vrijeme) i

• clean up faze - sakupljanje i analiza rezultata.

Na slici 5.2 prikazane sve UVM faze grupisane u tri osnovne grupe.

Slika 5.2: UVM faze

Uvodenjen simulacionih faza omogućen je jasno definisan tok simulacije/verifikacije i


veoma visok stepen automatizacije. Takode, verifikacionom inženjeru je omogućeno predefini-
sanje (dodavanje nove funkcionalnosti u svaku fazu) svake faze unutar svake od komponenata
da bi se postigli verifikacioni ciljevi. Kratak opis svih faza je dat u tabeli 5.1.

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)

5.1.2 UVM Factory

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)

5.1.3 Transaction Level Model - TLM

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 Testbench se odlikuje hijerarhiskom strukturom koja je prikazana na slici 5.3.

Slika 5.3: Tipična arhitektura UVM Testbench-a

5.1.3.1 UVM Sequence Item

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).

5.1.3.2 UVM Sequences

UVM sekvence su objekti koji sadrže logiku za generisanje transakcija/stimulusa (pobu-


de) i nisu član hijerarhijske strukture komponenata. Mogu generisati jednu transakciju ili
proizvoljan broj transakcija dok god traje simulacija. Da bi se logika za generisanje stimulusa
aktivirala potrebno je ostvariti vezu sa UVM sekvencerom za svaku UVM sekvencu ponaosob,
s tim da više UVM sekvenci se može vezati za jedan UVM sekvencer.

5.1.3.3 UVM Driver

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.

5.1.3.4 UVM Monitor

UVM monitor je pasivna komponenta zadužena za nadgledanje i izvlačenje informacija


sa interfejsa DUT-a, prevodenje prikupljenih informacija u viši nivo apstrakcije bilo u vidu
transakcije, dogadaja ili nekih statusnih informacija i njihovo prosljedivanje ostatku testbench-
a. Slično UVM drajveru, UVM monitor vrši konverziju podataka/informacija, samo u drugom
smijeru, sa pin-nivoa na na viši nivo apstrakcije (npr. transakciju). Osim pristupa interfejsu
DUT-a, UVM monitor sadrži i TLM port preko kojeg emituje kreirane transakcije. UVM
monitor može interno da izvši neku obradu nad kreiranim transakcijama kao što je provjera
protokola, pikupljanje pokrivenosti, logging, textitrecording ili te obrade može povjeriti
namijenskim komponentama koje su konektovane na TLM port (subscriber -ima).

5.1.3.5 UVM Sequencer

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.

5.1.3.7 UVM Scoreboard

Glavna uloga UVM Scoreboard -a je provjera ispravne funkcionalnosti sistema koji se


verifikuje. UVM Scoreboard najčešće prima transakcije (stanja na ulaznim i izlaznim portovima
DUT-a) od UVM agenta, zatim ih analizira pomoću referentnog modela (prediktor)3 i poredi
očekivane vrijednosti sa stvarnim vrijednostima koje se nalaze u transakciji - odzivom DUT-a.
Postoje različite metode pristupa kako se implementira scoreboard, priroda referentnog modela,
i kako se ostvaruje komunikacija scoreboard -a sa ostatkom testbench-a.

5.1.3.8 UVM Environment

UVM verifikaciono okruženje je hijerarhijska komponenta koja grupiše druge verifikacione


komponente koje su medusobno povezane. Tipične komponente uobičajno instancirane unutar
UVM verifikacionog okruženja su UVM agenti (eng. UVM Agents), UVM Scoreboards, ili
čak druga UVM verifikaciona okruženja4 . U suštini, top-level UVM verifikaciono okruženje
enkapsulira sve verifikacione komponente relevantne za dati DUT.
3
Prediktor ili referentni model je komponenta koja modeluje funkcionalnost DUT-a
4
Na primjer, u tipičnom sistem na čipu (SoC) UVM verifikacionom okruženju, identifikovaće se jedno
UVM verifikaciono okruženje po IP (Intellectual Property) komp (npr. PCIe Environemnet, USB Environem-
net, Memory Controller Environemnet, itd), a ponekad se ta IP verifikaciona okruženja grušišu takozvane
klastere (cluster environment) (npr. IO Environemnet, Processor Environemnet, Communication Interfaces
Environemnet, itd.)

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).

5.1.3.10 UVM Testbench

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

Ispravnost rada komponente Mac Merge Sublayer je verifikovana korišćenjem prethodno


opisane UVM verifikacione metodologije. Arhitektura verifikacionog okruženja je prikaza-
na na slici 6.1. Testovi (opisani u daljem textu) će da konfigurišu verifikaciono okruženje

Slika 6.1: Arhitektura verifikacionog okruženja

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 je broj poslatih frejmova jednak je broju primljenih frejmova,

• da li su dužine primljenog i poslatog frejma su iste,

• da li je vrijednost CRC polja primljenog frejma jednaka izračunatoj CRC vrijednosti i

• 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:

• provjerava broj okteta (dužinu) preambule,

• provjerava dužinu polja za adrese,

• provjerava karakter TYPE/LENGTH polja,

• provjerava dužinu polja za podatke,

i prikuplja informacije o funkcionalnoj pokrivenosti, tako što ekstrahuje vrijednosti polja


SFD i frag count iz trenutnog okvira i šalje ih COVERAGE bloku. COVERAGE blok vodi
računa o funkcionalnoj pokrivenosti preko vrijednosti SFD i frag count koju preuzima od
RS MONITOR-a. Omogućava pokrivenost vrste saobraćaja, formata mOkvira, funkcionisanje
mehanizma za prekidanje okvira i broj prekidanja okvira - praćenjem brojača fragmenata
(frag count). Grupe pokrivenosti za SMD su:

• kritični saobraćaj (express traffic),

• nekritični saobraćaj (preemptable traffic),

• kompletan neprekidivi okvir (complete express packet),

55
• kompletan prekidivi okvir (complete preemptable packet),

• inicijalni fragment prekidivog frejma (initial fragment of preemptable packet),

• fragment nastavka prekidivog okvira (continuation fragment of preemptable packet),

dok za frag count postoji samo jedna grupa pokrivenosti:

• fragCounterOverflow - da se jedan mOkvir prekinuo više od četiri puta.

Atributi (polja) transakcije su prikazani u tabeli 6.1

Tabela 6.1: Atributi transakcije

TIP NAZIV OPIS


int id Predstavlja ID transakcije
Označava da li se trenutni paket, koji
eCommStatus t flag
je prisutan na interfejsu, šalje ili prima
Označava vrijeme početka
int trigger time
slanja neprekidivog okvira
Vrijednost SFD polja okvira
byte unsigned sfd
koji je poslat RS interfejsu.
Vrijednost frag count polja okvira
byte unsigned frag cnt
koji je poslat RS interfejsu.
static eth mm ctl sts eth ctl sts h Kontrolni i statusni signali (signali MCI)
eth frame eth frame h Predstavlja Ethernet frejm

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

2. random test non preemptive

3. periodic traffic test

4. periodic traffic test non preemptive

Pored predstavljenih scenarija komunikacije, MMS komponenta je konfigurisana u oba


testa, preko MCI-a, tako da:

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 onemogućen proces verifikacije (i DISABLE VERIFY = ’1’),

• se pretpostavlja da je proces verifikacije uspješno završen (i VERIFIED = ’1’),

• je minimalna veličina fragmenta 60 okteta (i ADD FRAG SIZE = “00”),

• je opcija keep safter na prijemnoj strani prekidivih okvira onemogućena (i KEEP SAFTER D
= ’0’),

dok je mehanizam omogućem (i pENABLE = ’1’) za testove random test i perio-


dic traffic test, a onemogućen (i pENABLE = ’0’) za testove random test non preemptive
i periodic traffic test non preemptive.

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).

6.1.1 random test/random test non preemptive

Random testovima se simulira slučaj asinhrone komunikacije. Polje podataka Ethernet


frejma je randomizovano u rasponu od 46-1500 okteta za oba tipa saobraćaja, prekidivi
(express) i neprekidivi (preemptable). Prekidivi saobraćaj se šalje čim prije, dok se za
neprekidivi saobraćaj randomizuje i vrijeme slanja. Generisano je i poslato 800 neprekidivih i
400 prekidivih frejmova.

6.1.2 periodic traffic test/periodic traffic test non preemptive

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.

Slika 6.2: Format periodičnog saobraćaja

Jedan ciklus se sastoji 3 vremenska intervala:

• 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].

Da bismo pokrili i hard i soft karakteristike/zahtjeve komunikacije u realnom vremenu,


pustili smo da se vrijeme trajanja perioda jednog ciklusa mijenja od 1000 [µs] do 31.25 [µs], u
slučaju kada je FP mehanizam omogućen. Vrijeme trajanja perioda jednog ciklusa se mijenja
od 1000 [µs] do 250 [µs], kada je FP mehanizam onemogućen. Dalje smanjivanje ispod 250
[µs] nema smisla, jer npr. za period dužine od 125 [µs] (i manje), vremensko trajanje zaštitnog
intervala je približno jednako dužini perioda (125 [µs] ≈ 123 [µs]) ili je manje (62.5 [µs] <
123 [µs]).

U tabeli ?? su date vrijednosti trajanja perioda praćene odgovarajućim vrijednostima


trajanja intervala nižeg prioriteta.

Tabela 6.3: Dužina trajanja intervala nižeg prioriteta u zavisnosti od


dužine perioda

TLP = T - THP - TGB


Period T [µs] 1000 500 250 125 62.5 31.25
TLP * [µs] 981.28 481.28 231.28 106.28 43.78 12.53
TLP ** [µs] 870.28 370.28 120.28 / / /
* Slučaj kada je FP mehanizam omogućen.
** Slučaj kada je FP mehanizam onemogućen.

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.

(a) FP mehanizam je onemogućen

(b) FP mehanizam je omogućen

Slika 6.3: Ilustracija rada FP mehanizma kada se ne koristi TAS mehanizam

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

(b) FP mehanizam je omogućen

Slika 6.4: Ilustracija rada FP mehanizma kada se koristi TAS mehanizam

zahtjev MMS-REQ-8

Analizirajući izvještaj o pokrivenosti, dolazimo do zaključka da su pokriveni svi slučajevi


vezani za FP mehanizam, bio on omogućen ili ne.

Ukupan broj okvira neprekidivog saobraćaja koje je pokupio RS MONITOR sa RS if


interfejsa poklapa se sa ukupnim brojem kompletnih neprekidivih okvira primljenih kroz
eMAC (crveni i plavi bar na slici 6.7 (a-i) (6.7a – 6.7i)), što znači da neprekidivi okviri nisu
prekidani kao što je i očekivano - zadovoljen zahtjev MMS-REQ-10. Dalje, u slučaju aktiv-
nog/omogućenog FP mehanizma, RS MONITOR je identifikovao veći broj okvira prekidivog
saobraćaja nego što ih je generisano i poslato kroz pMAC (žuti i ljubičasti bar na slici 6.7).
To znači da se desio prekid i to usljed zahtjeva za slanje neprekidivog okvira primljenog preko
eMAC servisnog interfejsa (slika 6.7a i slika ??) - zahtjev MMS-REQ-4 ili usljed zahtje-
va za prekid primljenog preko MCI servisnog interfejsa (MM CTL request = HOLD)

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.

a) Prikazan je posljednji fragment prekidivog okvira (slika 6.5a). U trenutku primanja


zahtjeva za prekidanje, Cursor 1, (eMAC ima spreman okvir za slanje) ostalo je još
28 okteta za poslati (p packet data len = 28 < 60 – tirkizna boja) te neće doći do
prekidanja okvira, nego će se sačekati da se prenos prekidivog okvira završi.

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.

c) Prikazan je kompletan prekidivi okvir (slika 6.5c). U trenutku primanja zahtjeva za


prekidanje, Cursor 1, (eMAC ima spreman okvir za slanje) nije ispunjen nijedan uslov
za prekid (p packet data len = 59 < 60 i frag size cnt = 16 < 60 – tirkizna boja).
Ni u ovom slučaju neće doći do prekidanja okvira.

Na osnovu prethodnog razmatranja možemo zaključiti da je zadovoljen i testni zahtjev


MMS-REQ-1.

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

ZAHTJEV OPIS STATUS


MMS-REQ-0 MMS radi na bitskoj brzini od 100 [Mb/s] X
MMS-REQ-10 MMS ne prekida prekidive okvire (okvire koje šalje eMAC) X
Kada je mehanizam za prekidanje okvira aktivan i kada
MMS-REQ-1 nije ispunjen uslov za prekidanje okvira, MMS neće da X
prekine prekidivi okvir koji se trenutno šalje.
Kada je mehanizam za prekidanje okvira aktivan,
MMS-REQ-2 X
MMS odlaže slanje prekidivog okvira.
Kada je mehanizam za prekidanje okvira aktivan,
prekid prekidivog okvira se desio usljed zahtjeva
MMS-REQ-3 X
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 X
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 X
eMAC-u, a sve primljene prekidive okvire
proslijediti pMAC-u.
Kada je mehanizam za prekidanje okvira neaktivan,
MMS-REQ-5 X
MMS ne prekida prekidivi okvir koji se trenutno šalje.
Kada je mehanizam za prekidanje okvira neaktivan,
MMS-REQ-6 X
MMS odlaže slanje prekidivog okvira.
Kada je mehanizam za prekidanje okvira neaktivan,
MMS-REQ-7 MMS neće mijenjati format okvira prilikom slanja X
(SMD polje sadrži SMD-E vrijednost).
Kada je mehanizam za prekidanje okvira neaktivan,
MMS-REQ-8 X
MMS će sve primljene okvire proslijediti eMAC-u.

64
(a)

(b)

(c) Nisu ispunjeni uslovi za prekidanje okvira

Slika 6.5: mms-REQ-1

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

Slika 6.6: odlaganje slanja mOkvira

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

Slika 6.7: Izvještaj o funkcionalnoj pokrivensti

67
7. Zaključak

Konvencionalni Fieldbus protokoli, koji su zadovoljavali sve industrijske komunikacione


zahtjeve, posljednjih godina se susreću sa problemom potrebnog propusnog opsega. Naime,
porast nivoa stepena automatizacije u industrijskim proizvodnim procesima rezultovao je
povećanjem kompleksnosti sistama za automatizaciju, tj. povećao se broj kontrolnih aplikacija
i broj elektronskih uredaja sistema. Ovo povećanje se direktno odražava na komunikaciju
unutar sistema za automatizaciju, jer povećanjem broja aplikacija, koje su tipično vremenski-
kritične, kritične sa stanovišta pouzdanosti i zahtjevaju rad u realnom vremenu, povećava
se i količina podataka koja se razmijenjuje unutar sistema, tj. unutar mreže. Rješenje se
potražilo u račuarskim mrežama gdje se kao dominantan predstavnik već godinama koristi
Ethernet protokol. Odlikovan jednostavnošću, fleksibilnošću, skalabilnošću, niskojm cijenom
kao i velikim brzinama prenosa podataka, Ethernet u nedostatku determinističkog ponašanja
se inicijalno nije činio kao idealno rješenje. Ali zbog svojih dobrih osobina, razni prozvodjači
industrijske opreme pristupili su procesu nadogradnje standardnog Ethernet-a sa krajnjim
ciljem uvodenja determinističkog ponašanja i povećanja pouzdanosti koji su neophodni za rad
u realnom vremenu. Tako je nastao niz različitih verzija industijskih protokola zasnovanih
na Ethernet-u. Svaka verzija se dobro pokazala u odredenim poljima primjene što je još više
inspirisalo proizvodače da nastave da rade na unaprijedivanju komunikacije u realnom vremenu
preko Ethernet-a. Organizacija za standarde IEEE nije izostala iz ovog procesa, te je oformila
ogranak pod nazivom TSN (prvobitni naziv je bio AVB) koji će se baviti unapredivanjem
standardnog Ethernet-a. TSN radna grupa ima za cilj da omogući prenos podataka u realnom
vremenu kroz mrežu baziranu na komutiranom Ethernet-u, tj. da obezbijedi neophodan
determinizam i adekvatan nivo pouzdanosti prenosa podatak unutar mreža zasnovanih na
komutiranom Ethernet-u a pri tome ne narušavajući njegove inicijalne osobine. Plod njihog
rada se ogleda u preko 30 standarda koji definišu neophodne mehanizme za funkcionisanje
Ethernet-a u realnom vremenu, medu kojima su i dva standarda koji se bave mehanizmom za
prekidanje Ethernet okvira.

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

[1] “IEEE 802.1AS Time Synchronization.” https://en.wikipedia.org/wiki/


Time-Sensitive_Networking#Time_Synchronization.

[2] “IEEE 802.1Qat Stream Reservation Protocol – SRP .” https://en.wikipedia.


org/wiki/Time-Sensitive_Networking#IEEE_802.1Qat_Stream_Reservation_
Protocol.

[3] “IEEE 802.1Qav Forwarding and Queuing Enhancements for Time-Sensitive


Streams.” https://en.wikipedia.org/wiki/Time-Sensitive_Networking#AVB_
credit-based_scheduler.

[4] “IEEE 802.1Qbv Enhancements to Traffic Scheduling: Time-Aware Shaper (TAS).”


https://en.wikipedia.org/wiki/Time-Sensitive_Networking#IEEE_802.1Qbv_
Enhancements_to_Traffic_Scheduling:_Time-Aware_Shaper_(TAS).

[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.

[6] “IEEE Standard for Ethernet,” IEEE Std. 802.3–2012, 2012.

[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

You might also like