Вы находитесь на странице: 1из 133

Sadraj

Sadraj

1. UVOD .......................................................................................... 1
2. Pouzdani sistemi ......................................................................... 7
2.1. Trendovi u razvoju elektronskih proizvoda sa aspekta pouzdanosti ........................ 7
2.2. Defekti u integrisanim kolima ................................................................ ..............10
2.2.1. Defekt, greka, otkaz ................................ ..................................................... 11
2.2.2. Klasifikacija defekta................................................................ ...................... 11
2.2.3. Modeli defekata................................ ............................................................. 15
2.2.4. Modeli greaka ................................................................ .............................. 15
2.2.5. Manifestacija tranzijentnih defekata u digitalnim kolima ............................... 16
2.3. Tehnike projektovanja sistema tolerantnih na defekte...........................................18
2.3.1. Hardverska redundansa ................................ ................................................. 21
2.3.2. Informaciona redundansa ................................................................ ..............25
2.3.3. Vremenska redundansa................................................................ .................. 25
2.3.4. Softverska redundansa................................ ................................................... 26
2.4. Oblasti primene sistema otpornih na defekte ................................ ........................ 27

3. Konkurentna detekcija greke ................................................ 29


3.1. On-line testiranje................................................................ ..................................29
3.2. Principi konkurentne detekcije greke ................................ ..................................30
3.3. Principi samoprovere i kodovi za detekciju greke ...............................................31
3.3.1. Kd parnosti................................................................ ..................................33
3.3.2. Kodovi za detekciju viestrukih greaka ................................ ........................ 35
3.3.2.1. Neureeni kodovi za detekciju jednosmernih greaka ............................. 35
3.3.2.2. Kodovi za detekciju t jednosmernih greaka ...........................................37
3.3.3. Kodovi ostatka ................................................................ .............................. 38
3.3.4. AN kodovi ................................................................ ....................................39
3.3.5. Kodovi dupliciranja................................ ....................................................... 39
3.3.6. Kontrolna suma ................................ ............................................................. 39
3.4. Klasifikacija kola sa samoproverom................................................................ .....39
3.4.1. Kola sa potpunom samoproverom ................................................................ .41
3.4.2. Kola koja su potpuno sigurna u prisustvu defekta ................................ ..........42
3.4.3. Kola sa potpunim razdvajanjem kodova ................................ ........................ 43
3.5. Kola za proveru koja imaju osobinu potpune samoprovere................................ ...44

I
Projektovanje kombinacionih i sekvencijalnih mrea sa samoproverom na osnovu VHDL opisa

3.5.1. Strukture kola za proveru ................................................................ ..............44


3.5.1.1. Kolo za proveru jednakosti ................................................................ .....45
3.5.1.2. Kolo za proveru sa dva izlaza ................................................................ .45
3.5.1.3. Komparator sa potpunom samoproverom................................ ................ 48
3.5.1.4. Kolo za proveru izdvojivih kodova ......................................................... 48
3.6. Sekvencijalna kola sa samoproverom ................................................................ ...50
3.6.1. Defekti u sekvencijalnim kolima ................................................................ ...51
3.6.2. Principi samoprovere u sekvencijalnim kolima ................................ ..............52
3.7. Sistemi sa samoproverom................................ ..................................................... 53
3.8. Manifestacija greaka na nivou sistema ................................ ................................ 54

4. Projektovanje logikih mrea sa samoproverom.................. 57


4.1. Razlozi i znaaj projektovanja kola sa samoproverom................................ ..........57
4.2. Osnovne metode za projektovanje kola sa samoproverom ....................................57
4.3. Metoda projektovanja mrea sa samoproverom na osnovu VHDL-a..................... 60
4.4. Projektovanje kombinacionih mrea................................................................ .....64
4.4.1. Tehnike dupliciranja kola ................................................................ ..............66
4.4.2. Tehnike primene Berger-ovog koda............................................................... 69
4.4.3. Tehnike primene Bose-Lin-ovog koda........................................................... 73
4.4.4. Tehnike primene koda parnosti......................................................................75
4.5. Tehnike za projektovanje sekvencijalnih mrea................................ .................... 78
4.5.1. Model sekvencijalne mree ................................ ...........................................78
4.5.2. Sekvencijalne mree sa samoproverom................................ .......................... 79
4.5.2.1. Tehnike dupliciranja ................................ ...............................................80
4.5.2.2. Tehnike primene Berger-ovog, Bose-Lin-ovog i koda parnosti ...............80
4.6. Sinteza kombinacionih i sekvencijalnih mrea sa samoproverom ......................... 83
5. Implementacija mrea sa samoproverom.............................. 85
5.1. Digitalna integrisana kola................................ ..................................................... 85
5.1.1. Klasifikacija PLD kola ................................................................ .................. 86
5.1.1.1. CPLD arhitekture................................................................ .................... 87
5.1.1.2. FGPA arhitektura................................................................ .................... 89
5.2. Projektovaje pomou PLD-a ................................................................ ................ 91
5.3. Primena PLD kola kod projektovanja pouzdanih sistema ................................ .....93
5.4. Projektovaje kola sa samoproverom pomou PLD-a.............................................95
5.5. Merila kvaliteta kod PLD kola ................................ .............................................97

II
Sadraj

5.5.1. Povrina kao mera kvaliteta................................ ...........................................97


5.5.2. Procena performansi................................................................ ...................... 97
5.5.3. Mere kvaliteta kod CPLD kola ......................................................................98
5.5.4. Mere kvaliteta FPGA kola ................................ .............................................99
5.5.5. Merila kvaliteta koje mi koristimo............................................................... 101
5.6. Implementacija kola sa samoproverom na CPLD i FPGA tehnologije ................ 101
5.7. Poreenje dobijenih rezultata ................................ ............................................. 108
6. Zakljuak ................................................................................ 111
7. Literatura ................................................................................ 113
Dodatak A ................................................................................... 121
Dodatak B.................................................................................... 123
Dodatak C ................................................................................... 125

III
Projektovanje kombinacionih i sekvencijalnih mrea sa samoproverom na osnovu VHDL opisa

IV
Koriene skraenice

Skraenice koje se koriste u ovoj tezi

ASIC - Application Specific Integrated Circuits - integrisana kola specifine aplikacije


CAD - Computer Aided Design - projektovanje uz pomo raunara
CED - Concurrent Error Detection - konkurentna detekcija greke
CLB - Configuration Logic Blocks - konfiguracioni logiki blokovi
CPLD - Complex Programmable Logic Devices - sloena programabilna logika kola
CRF - Combinationally Redundant Faults - kombinaciono redundantni defekti
DFT - Design For Testability - projektovanje za testabilnost
EDIF - Electronic Design Interchange Format - format za razmenu elektronskog dizajna
ECC - Error Correcting Code - kd za korekciju greke
ES - Embedded System - sistem sa ugraenim raunarom
FIT - Failure-In-Time - broj otkaza koji se javljaju u jedinici vremena
FPGA - Field Programmable Gate Array - programabilna logika polja koja se
programiraju na licu mesta
FS - Fault-Secure - sigurnost u prisustvu defekta
FSM - Finite State Machine - konani automat
FT - Fault Tolerance - visoka pouzdanost
FTMP - Fault Tollerant Multiprocessor - visoko pouzdani multiprocesorski sistem
HDL - Hardware Description Language - jezik za opis hardvera
IC - Integrated Circuit - integrisano kolo
IOB - Input/Output Blocks - ulazno-izlazni blokovi
LSI IC - Large-Scale Integration Integrated Circuit - integrisana kola visokog stepena
inegracije
LUT - Look Up Table - tabela pretraivanja
ITRS - International Technology Roadmap for Semiconductors - ime neprofitne
meunarodne organizacije
MIS - Multiple-level logic optimization System - alat za vienivovsku logiku
optimizaciju kombinacionih kola
MPSoC - Multiprocessor System-on-a-Chip - vieprocesorski sistem na ipu
MSI IC - Medium-Scale Integration Integrated Circuit - integrisana kola srenjeg stepena
inegracije
NMR - N-Modular Redundancy - N-modularna redundansa
PAL - Programmable Array Logic - logiko AND-OR polje kod koga je AND matrica
programabilna, a OR matrica fiksna
PFS - Path Fault Secure - sigurnost u prisustvu defekta na putu
PLA - Programmable Logic Array - logiko AND-OR polje kod koga se obe matrice
mogu programirati
PLD - Programmable Logic Devices - programabilna logika kola
REDWC - REcomputing with Duplication With Comparasion - ponovno izraunavanje koje
koristi udvostruavanje sa poreenjem

V
Projektovanje kombinacionih i sekvencijalnih mrea sa samoproverom na osnovu VHDL opisa

RESO - REcomputing with Shifted Operands - ponovno izraunavanje sa pomerenim


operandima
RESWO - REcomputing with SWapped Operands - ponovno izraunavanje sa preokrenutim
operandima
ROM - Read Only Memory - samooitavajua memorija
RTL - Register Transfer Level - prenos na nivou registara
SER - Soft Error Rate - procenat soft greke
SC - Self-Checking - samoprovera
SCC - Self-Checking Checker - kolo za proveru sa mogunou samoprovere
SEU - Single-Event Upset - efekat strujnog impulsa, koji je posledica estice zraenja
SFS - Strongly Fault-Secure - sigurnost u prisustvu defekta pod strogim uslovima
SIC - Standard Integrated Circuits - standardna integrisana kola
SIFT - Software Implemented Fault Tollerant - softverski implementirana visoka
pouzdanost
SIS - System for Sequential Circuit SyntheSIS - alat za sintezu i optimizaciju
sekvencijalnih kola
SoC - System-on-a-Chip - sistem na ipu
SPLD - Simple Programmable Logic Devices - jednostavna programabilna logika kola
SRF - Sequentially Redundant Faults - sekvencijalno redundantni defekti
SSI IC - Small-Scale Integration Integrated Circuit - integrisana kola niskog stepena
inegracije
ST - Self-Testing - samotestiranje
STC - Self-Testing Checker - samotestirajue kolo za proveru
TAP - Test Access Port - port za testiranje
TMR - Triple Modular Redundancy - trostruka modularna redundansa
TRC - Two Rail Checker - kolo za proveru sa dva izlaza
TRGC - TRansceiver Generator/Checker - primopredajnik koji generie i proverava
dodatne bitove
TSC - Totally Self-Checking - potpuna samoprovera
TSCC - Totally Self-Checking Checker - kolo za proveru koje ima mogunost potpune
samoprovere
VHDL - (Very high speed integrated circuits) Hardware Description Language - jezik za
opis hardvera visokog nivoa
VLSI - Very Large Scale Integration - visok stepen integracije

VI
Reference autora koje se odnose na ovu tezu

Reference autora koje se odnose na ovu tezu

[Stan102] T. Stankovi, M. Stojev, "Parity Error Detection in Transceiver Circuit", IV


simpozijum Industrijska elektronika INDEL 2002, Zbornik radova, Banja Luka,
November 2002, pp. 67-73
[Stan202] M. Stojev, T. Stankovi, "Parity Error Detection in Embedded System", 28.
nauno struni skup, HIPNEF 2002, Zbornik radova, Vrnjaka Banja, October
2002, pp. 215-220
[Stan103] Tatjana R. Stankovi, Mile K. Stojev, "Implementation of Totally Self-checking
Combinational Logic on FPGA and CPLD Circuits Using VHDL Descriptions",
Cyprus Computer Society, Vol. 5, No. 5, June, 2003, pp. 40-44
[Stan203] T.R. Stankovi, M.K. Stojev, G.Lj. Djordjevi, "Design Of Self-Checking
Combinational Circuits", 6th International Conference on Telecommunications in
Modern Satellite, TELSIKS 2003, Ni, Serbia and Montenegro, October 1-3, 2003,
pp. 763-768
[Stan303] T.R. Stankovi, M.K. Stojev, G. Lj. Djordjevic, "On VHDL synthesis of self-
checking two-level combinational circuits", Third Triennial International
Conference on Applied Automatic Systems, Ohrid, Republic of Macedonia,
September 18-20, 2003, pp. 225-230
[Stan403] Tatjana R. Stankovi, Mile K. Stojcev, Goran Lj. Djordjevi, "Design of totally
self-checking combinational circuits based on VHDL description", Proc. XLVII
Conference ETRAN 2003, Herceg Novi, Serbia and Montenegro, June 2003, pp.
39-42
[Stan104] Tatjana R. Stankovi, Mile K. Stojev, Goran Lj. Djordjevi, "Design of Totally
Self-Checking Combinational Circuits Based on VHDL Description", ETF
Journal of Electrical Engineering, Vol. 12, No. 1, May 2004, pp. 153 161
[Stan204] T.R. Stankovi, M.K. Stojev, G.Lj. Djordjevi, "On VHDL Synthesis of Self-
Checking Two-Level Combinational Circuits", Facta Universitatis (Ni), Series:
Electronics and Energetics, Vol. 17, No. 1, April 2004, pp. 69-80
[Stoj201] M. Stojev, T. Stankovi, "Parity error detection in embedded system", Second
International Conference on Informatics and Information Technology, CiiT 2001,
Molika, December 20-23, 2001, pp. 293-307
[Stoj104] M.K. Stojev, G.Lj. Djordjevi, T.R. Stankovi, "Implementation of self-
checking two-level combinational logic on FPGA and CPLD circuits",
Microelectronics Reliability, Vol. 44, Issue 1, Elsevier, January 2004, pp. 173-178
[Stoj204] M.K. Stojev, G.Lj. Djordjevi, T.R. Stankovi, "VHDL-Based Design of FSM
with Concurrent Error Detection Capability", Proc. 24th International Conference
on Microelectronics, MIEL 2004, Vol. 2, Ni, Serbia and Montenegro, May, 2004,
pp. 759-762
[Djor04] G.Lj. Djordjevi, M.K. Stojev, T.R. Stankovi, "Approach to partially self-
checking combinational circuits design", Microelectronics Journal, Vol. 35,
Elsevier, December 2004, pp. 945-952

VII
Projektovanje kombinacionih i sekvencijalnih mrea sa samoproverom na osnovu VHDL opisa

VIII
1. Uvod

1. UVOD

Motivacija

Korienje digitalnih sistema protee se ka svim poljima dananjeg ivota. Embedded


sisteme (ES) sreemo, takorei u svim oblastima, poev od aparata za domainstvo kakve su
mikrotalasne pei i ve maine, pa sve do sloenih aplikacija kakve imamo kod automobila,
lokomotiva, satelita, medicinskih ureaja, itd. Prvenstveno zbog mesta na kome rade kao i
uloge koju imaju, ovakve sisteme karakterie dobra operativnost u radu (uvek su spremni za
rad), visoka produktivnost (malo troe i efikasni su), i jako izraena fleksibilnost (prilagodljivi
su). Ali i pored toga, injenica je da u toku rada ovih sistema moe doi do otkaza.
Projektovanje embedded sistema usmereno je danas ka jednom ipu, odnosno SoC
(System-on-a-Chip) dizajnu, koji obuhvata razliite funkcionalne blokove kao to su
mikroprocesori, memorije, interfejsi i drugo. Kompleksnost takvih sistema uzrokuje razne
probleme u projektovanju i eksploataciji. Kao i svaki ureaj, i ES-mi su podloni kvarovima i
otkazima. Neki od defekata nastaju jo u fazi projektovanja prvenstveno zbog nedoslednosti i
nesagledavanja svih injenica od strane projektanata, drugi mogu biti posledica uticaja
spoljnih efekata kakvi su defekti u proizvodnji, trei se javljaju kao posledica uticaja
ambijentalnih uslova (poveani ili smanjeni mreni napon, udari groma, smetnje od rada
velikih potroaa, i dr.), etvrti nastaju usled namernog/nenamernog nekorektnog
manipulisanja sa ureajem, itd.
Sa druge strane, napredak u tehnologiji integrisanih kola uslovio je znatno poveanje
kompleksnosti sistema koji se realizuju kao jedan VLSI ip. Prelazak sa standardnih ASIC
kola na SoC uslovio je razvoj novih metoda projektovanja, arhitektura sistema i kola, kao i
tehnika testiranja. Usled smanjenja dimenzija komponenti, poveanja broja tranzistora na
ipu, smanjenja nivoa napona napajanja i poveanja brzine rada dolazi do redukcije margina
uma. Zbog toga se, u toku normalnog rada ovih sistema, javljaju razni tipovi defekata, koji su
uzrokovani delovanjem neutrona i alfa estica, presluavanjem, glievima, poveanim
kanjenjem ili oscilacijama signala, a predstavljaju izvore tranzijentnih greaka [Zngh00].
Drugim reima, kako kompleksnost komponenata raste tako one postaju osetljivije na
tranzijentne defekte, a saglasno tome, njihova pouzdanost opada [Pfla00]. Zbog toga, visok
nivo pouzdanosti postaje zahtev svakog digitalnog sistema ija je korektna funkcionalnost u
direktnoj vezi sa ljudsom bezbednou i ekonomskim investicijama.
Pored toga to se mogunost pojave defekata nikada ne moe u potpunosti eliminisati,
ipak postoji jasna potreba da sistem bude pouzdan u irem smislu (dependable). Da bi sistem
bio pouzdan u irem smislu, on mora da bude dostupan za korienje uvek kada je to potrebno
(available), mora da odezbedi kontinuitet usluga za sve vreme korienja (reliable), otkaz
sistema ne sme da ima katastrofalne posledice na okolinu (safe), i mora da sauva poverljivost
informacija (secure) [Lapr92]. Iako se mogu razmatrati nezavisno, svi ovi aspekti pouzdanosti
su meusobno zavisni.
Pouzdanost sistema u irem smislu moe se ostvariti samo ako se uzmu u obzir sve faze
razvoja sistema. O pouzdanosti mora se voditi rauna kako u fazi projektovanja,
implementacije i funkcionisanja sistema tako i u fazi odravanja i poboljanja sistema. U fazi

1
Projektovanje kombinacionih i sekvencijalnih mrea sa samoproverom na osnovu VHDL opisa

projektovanja, primenom tehnika izbegavanja defekata (fault avoidance) moe se minimizirati


njihovo pojavljivanje i na taj nain poveati pouzdanost. U fazi implementacije za poveanje
pouzdanosti neophodna je primena tehnike odstranjivanja defekata (fault removal). U toku
samog rada sistema, za njegovu pouzdanost neophodna je tehnika tolerancije defekata (fault
tolerance). Sistem sa osobinom tolerancije defekata, (Fault Tolerant - FT), mora da ima
mogunost detekcije, lokalizacije i maskiranja defekata i povratka sistema u normalno stanje.
U cilju ouvanja zadovoljavajueg nivoa pouzdanosti, kao obavezan uslov namee se
projektovanje integrisanih kola koja mogu obavljati svoju funkciju i nakon pojave defekta. Za
ovakva kola se kae da imaju mogunost tolerancije defekata. Drugim reima, tolerancija
defekata je osobina sistema da nastave izvrenje svojih aktivnosti sa istim ili redukovanim
nivoom performansi, ali u svakom sluaju na nain koji e biti bezbedan za okolinu, uprkos
neoekivanoj pojavi hardverske ili softverske greke. U sutini, cilj tolerancije defekata je da
zatiti sistem od prostiranja defekata do njegovog izlaza, a samim tim i od otkaza.
FT osobina predstavlja zbog toga imperativ koji treba da ispuni svaki ES ija je korektna
funkcionalnost povezana sa bezbednou ljudskih ivota (sistemi koji rade u hazardnim
uslovima rada, kakvi su rudnici sa jamskom eksploatacijom uglja) ili velikim ekonomskim
investicijama (sateliti, lokomotive). Jednom reju, tolerancija defekata je neophodna osobina
onih aplikacija u kojima je greka u radu sistema neprihvatljiva [Entr101]. Iz tog razloga,
sistemi za kritine aplikacije, zasnovani na ipovima koji imaju veliku brzinu rada i
mogunost tolerancije defekata, zahtevaju ugradnju tehnike samoprovere (Self-Checking -
SC), zasnovane na FT tehnici [Lala01].
Osnovu FT tehnike predstavlja koncept redundanse. U zavisnosti od toga ta je potrebno
za ispravan rad sistema, redundansa moe biti dodavanje hardverskih resursa, vremena ili
informacije iznad nivoa koji neophodan za obavljanje zahtevanih funkcija. Veina FT sistema
zasniva se na izraunavanju iste funkcije u dva ili vie podsistema, tako da ako jedan otkae,
drugi nastavlja sa radom [John89]
FT tehnika se moe primeniti na tri razliita nivoa. Prvi nivo je hardverska tolerancija
defekata koja podrazumeva dodatne procesore, dodatnu memoriju, i druge komponente. Drugi
nivo je softverska tolerancija defekata koja se zasniva na mehanizmima kao to su take
provere, procedure za oporavak, i vie verzija programa. Trei nivo je sistemska tolerancija
defekata iji mehanizmi zavise od specifinosti aplikacije.
FT tehnika najee koristi hardversku redundansu, kao to je duplikacija sa poreenjem,
ali ova metoda je, zbog visoke cene, neprihvatljiva za veinu aplikacija. SC kola koriste
alternativnu FT tehniku koja kombinuje informacionu i hardversku redundansu i omoguava
toleranciju defekata uz mnogo manje poveanje hardvera. SC kola imaju mogunost da
verifikuju ispravnost rezultata u toku normalnog rada, bez naruavanja osnovne funkcije
sistema. Tolerancija defekata kod ovakvih kola podrazumeva konkurentnu (on-line) detekciju
defekta i ponavljanje izraunavanja nakon detektovanog defekta. Naime, standardnim
tehnikama off-line testiranja ne mogu se detektovati tranzijentni uzroci greaka, jer se
testiranje vri u toku startovanja sistema to omoguava detekciju efekata permanentnih
defekata. Efekti tranzijentnih defekata mogu se detektovati jedino on-line testiranjem koje se
vri u toku rada sistema. Na ovaj nain se moe garantovati pouzdanost u radu, pa zato on-
line detekcija greke postaje neophodna karakteristika mnogih integrisanih kola [Pfla00].
Kola sa samoproverom sastoje se od funkcionalne jedinice, iji su izlazi kodirani nekim
od kodova za detekciju greke, i kola za proveru (checker) koje verifikuje ispravnost podatka
na izlazu funkcionalne jedinice. Kolo za proveru ima mogunost da generie signal za
indikaciju greke u sluaju da se defekt javi u funkcionalnoj jedinici ili u samom kolu za

2
1. Uvod

proveru. Funkcionalna jedinica moe biti kombinaciono ili sekvencijalno kolo. Za kodiranje
izlaza funkcionalne jedinice najee se koriste izdvojivi kdovi kao to su: Berger-ov, Bose-
Lin-ov i kd parnosti. Primena ovih kdva odreuje tehniku za generisanje SC kola. Dananje
tehnike za projektovanje SC kola usmerene su ka vienivovskoj implementaciji logikih
funkcija pomou programabilnih logikih kola, uz ispunjenje uslova minimalne povrine
[JhaN93], [DeK94], [Toub94], [Sapo97].
U poetku su SC tehnike koriene samo u sistemima koji zahtevaju visok nivo
pouzdanosti. Zbog relativno malog broja takvih sistema korien je manuelni nain
projektovanja. Meutim, kako razni uzroci defekata imaju sve vei uticaj na sisteme razvijene
savremenom tehnologijom, postoji jasna potreba za integracijom FT tehnike i u okviru
aplikacija iroke potronje. Samim tim, potrebni su i alati za projektovanje kola sa veom
pouzdanou. Takvi alati moraju da budu kompatibilni sa postojeim nainom projektovanja.
Metode za projektovanje SC kola mogu se podeliti u dve kategorije: niskog i visokog
nivoa. Metode niskog nivoa odnose se na modifikaciju procesa sinteze kombinacionih i
sekvencijalnih kola, kako bi svaki interni defekt uzrokovao samo onu greku koja se moe
detektovati odreenim kodom. Na osnovu kodova za detekciju greke (kd dupliciranja,
parnosti, Berger-ov, Bose-Lin-ov i drugi) predloene su razliite tehnike za sintezu kola sa
samoproverom [DeK94], [Bolc98], [Moha103], [JhaN93], [DasD99], [Wake82]. S obzirom
da se ove tehnike primenjuju na niskom nivou, tj. nivou gejtova, generisana reenja su
efikasna i obino obezbeuju potpunu samoproveru. Meutim, iz istog tog razloga, integracija
tehnika niskog nivoa u standardni tok projektovanja podran komercijalnim CAD alatima je
oteana. Takoe, veina tehnika niskog nivoa podrazumeva da se kolo implementira u full- i
semi-custom tehnologijama i one nisu direktno primenljive za implementaciju u tehnologiji
programabilnih logikih kola.
Metode visokog nivoa zasnivaju se na modifikaciji VHDL opisa kola, pri emu se u
odreenim takama dodaje kd koji predstavlja hardversku ili informacionu redundansu. S
obzirom da se modifikacija obavlja pre sinteze, ove metode omoguavaju korienje
komercijalnih CAD (Computer Aided Design) alata za sintezu i olakavaju integraciju SC
tehnika u standardni tok projektovanja. Osnovna prednost ovakvog, u odnosu na prethodni
pristup, ogleda se u mogunosti insertovanja potrebnih SC mehanizama u poetnim fazama
projektovanja i ranog potvrivanja pouzdanosti kola. Sa druge strane, performanse
generisanih kola (u smislu brzine rada i povrine) neto su slabije u odnosu na prvi pristup.
Ovakve metode su koriene za modifikaciju VHDL opisa zadatog kola primenom razliitih
SC tehnika [Bolc00], [Entr101], [Leve02], [Lpe01]. U cilju utvrivanja cene postojeih
metoda projektovanja, vreni su eksperimenti nad razliitim bencmark kolima i pokazano je
da za veinu njih primena koda parnosti zahteva najmanje poveanje povrine. Postojee
metode projektovanje SC kola visokog nivoa tee automatizaciji insertovanja struktura za
konkurentnu detekciju greke, sa minimalnim direktnim ueem projektanta. Meutim,
pored ve navedenih prednosti, postoje i nedostaci tih metoda koji se ogledaju u limitiranom
izboru SC tehnika i nedovoljno ispitanim performansama generisanih reenja. Takoe,
nedostaje procena praktine primene raznih metoda u odnosu na poveanje povrine,
smanjenje radne frekvencije i pogodnosti za implementaciju na FPGA i CPLD tehnologije
korienjem dostupnih komercijalnih CAD alata. To je, upravo, cilj ove teze, koja je
fokusirana na drugi pristup.

3
Projektovanje kombinacionih i sekvencijalnih mrea sa samoproverom na osnovu VHDL opisa

Doprinos

U ovoj tezi predloena je metoda projektovanja kombinacionih i sekvencijalnih mrea sa


samoproverom koja se zasniva na poluautomatskom dodavanju razliitih struktura za
konkurentnu detekciju greke u postojei VHDL opis mree [Stoj104], [Stan104], [Stan403].
Za detekciju greke koriene su tehnike dupliciranja, primene Berger-ovog, Bose-Lin-ovog i
koda parnosti. Svaka od ovih tehnika, u odnosu na ostale, ima svoje prednosti i nedostatke.
Duplikacija je jedina koja moe garantovati 100% pokrivanje defekata, dok sve ostale tehnike
garantuju pokrivenost samo za usvojeni model defekata. S druge strane duplikacija unosi
veliko poveanje povrine. Tehnika parnosti je najjednostavnija i unosi najmanje dodatno
kanjenje, ali zato ispoljava nizak nivo pokrivenosti defekata. Bitom parnosti se moe
detektovati samo neparan broj pogrenih bitova na izlazu mree, tako da vrlo lako moe doi
do maskiranja uticaja defekta [Stoj101]. Tehnika primene Bergerov-og koda prua mogunost
detekcije jednosmernih viestrukih greaka, uzrokovanih defektima odreenog tipa. Zbog
naina generisanja ovog koda, SC kolo je dosta sloeno. Primena Bose-Lin-ovog koda
omoguava detekciju samo odreenog broja jednosmernih greaka, ali je zato SC kolo
jednostavnije u odnosu na kolo sa ugraenim Berger-ovim kodom. S obzirom da ne postoji
tehnika koja po svim kriterijumima daje najbolje reenje, optimalan izbor se moe izvriti tek
nakon implementacije i evaluacije svih raspoloivih tehnika [Stoj204]. U tom cilju izvrena je
modifikacija VHDL opisa, sinteza i implementacija 24 proizvoljno izabranih kombinacionih i
sekvencijalnih kola razliite sloenosti, meu kojima su koderi, dekoderi, sabirai, mnoai,
pomerai i druga [Stan103], [Stan204]. Povrina SC kola jednaka je zbiru povrine prvobitno
zadatog kola, povrine kola za detekciju greke i povrine kola za proveru. Poveanje
povrine i kanjenja zavisi od sloenosti strukture kola za detekciju greke i kola za proveru,
odnosno zavisi od primenjenog koda za detekciju greke. Na osnovu dobijenih rezultata
nakon implementacije prvobitno zadatih i SC kola na FPGA ili CPLD komponente odabrane
familije, odreen je procenat poveanja povrine i smanjenja brzine modifikovanog u odnosu
na zadato kolo [Stan203], [Stan303]. Na taj nain je, ustvari odreena cena za svaku od
primenjenih SC tehnika, koja predstavlja osnovni parametar pri izboru odgovarajue tehnike.

Struktura rada

Ova teza sadri pet poglavlja i tri dodatka u kojima se opisuju sve faze projektovanja
kombinacionih i sekvencijalnih kola sa samoproverom. Polazi se od definisanja svih
potrebnih uslova za generisanje SC kola. Zatim se odreuju funkcije svih neophodnih
elemenata, opisuju se u VHDL-u i smetaju u biblioteku. Na osnovu izabrane tehnike za
konkurentnu detekciju greke i VHDL opisa, odreena SC kola se implementiraju u
konkretnoj tehnologiji.
U drugom poglavlju definisani su osnovni pojmovi i predstavljen je koncept sistema
visoke pouzdanosti. Razmatra se tehnoloki razvoj elektronskih proizvoda i potreba
savremenih sistema za ugradnjom tehnika koje omoguavaju pouzdanost u radu. Takoe se
vri klasifikacija defekata na osnovu njihovih karakteristinih osobina kao to su priroda,
trajanje, rasprostranjenost, vrednost i uzroci defekata. Ilustruje se i uzrono posledina veza
izmeu defekta, greke i otkaza, kao i manifestacija defekata na primeru digitalnog kola. U
daljem tekstu obrauju se tehnike za spreavanje pojave otkaza sistema usled pojave defekta,

4
1. Uvod

kao to su: izbegavanje, meskiranje i tolerancija defekata. S obzirom da se tolerancija,


odnosno otpornost sistema na defekte zasniva na uvoenju redundanse u sistem, razmatraju se
i sledei tipovi redundanse: hardverska, informaciona, vremenska i softverska. Poseban osvrt
dat je na model aktivne hardverske redundanse, koja se zasniva na ugradnji dva identina
hardverska modula i poreenju njihovih rezultata, kao i na model informacione redundanse,
koja se zasniva na dodavanju redundantnih informacija podacima, odnosno kodiranju. Na
ovim modelima je zasnovana metoda projektovanja kola sa samoproverom. Na kraju ovog
poglavlja date su oblasti primene sistema otpornih na defekte.
U treem poglavlju definisani su principi on-line testiranja i konkurentne detekcije greke.
Zatim je predstavljen opti princip i struktura kola sa samoproverom, koje ima mogunost da
detektuje interni defekt odmah nakon njegovog pojavljivanja. SC kola su zasnovana na
kodiranju izlaza funkcionalnog bloka pomou kodova za detekciju greke. Za metodu
projektovanja SC kola, koja se predlae u ovoj tezi, od posebnog znaaja su izdvojivi kodovi
kao to su: Berger-ov, Bose-Lin-ov i kd parnosti. Pored optih definicija kodova izloena je i
analiza efikasnosti ovih kodova za standardne modele greaka. U daljem tekstu izvrena je
klasifikacija SC kola i date su definicije i potrebni uslovi za dobijanje sledeih tipova: kola sa
potpunom samoproverom (Totally Self-Checking - TSC), kola koja su sigurna u prisustvu
defekta pod stogim uslovima (Strongly Fault-Secure - SFS), kola sa strogim razdvajanjem
kodova (strongly code-disjoint). S obzirom da se kod svakog SC kola provera kodiranog
podatka na izlazu funkcionalnog bloka vri pomou kola za proveru (checker), u daljem
tekstu daje se poseban naglasak na tipove i osobine ovih kola. Svi principi samoprovere
definisani za kombinaciona kola mogu se proiriti i na sekvencijalna kola. Zato se u ovom
poglavlju predstavlja i model sekvencijalnog kola sa samoproverom. Na kraju je ilustrovana
struktura sistema sa samoproverom i objanjena manifestacija greke na primeru arhitekture
protonog i sloenog raunarskog sistema.
U etvrtom poglavlju opisane su osnovne metode za projektovanje logikih mrea sa
samoproverom. Detaljno je objanjena metoda projektovanja SC mrea koja se zasniva na
VHDL opisu. Data je globalna arhitektura kombinacione i sekvencijalne SC mree za svaku
od primenjenih tehnika meu kojima su: dupliciranje, primena Berger-ovog, Bose-Lin-ovog i
koda parnosti. Generator bitova za proveru i kolo za proveru su dva modula koja odlikuju
primenjenu tehniku. Zato su u ovom poglavlju predstavljene blok eme i algoritmi za
dobijanje generikih VHDL opisa svih ovih modula. Na kraju su data ogranienja koja treba
uvesti da bi se, na osnovu VHDL opisa, izvrila sinteza i implementacija SC kola.
U petom poglavlju data je klasifikacija PLD kola sa posebnim osvrtom na CPLD i FPGA
strukture. Zatim su opisane sve faze projektovanja SC kola pomou PLD-a, poev od VHDL
opisa kola, preko simulacije i sinteze, pa do implementacije na odabranu FPGA ili CPLD
komponentu. U ovom delu definisane su mere kvaliteta kod PLD kola, kao i mere koje se
koriste za odreivanje cene SC kola dobijenih primenom predloenih metoda. Na kraju je
izvrena implementacija 24 proizvoljno izabranih benchmark kola razliite sloenosti, i to
najpre na osnovu njihovog prvobitno zadatog a zatim i modifikovanog VHDL opisa kojim je
dobijeno SC kolo. Na osnovu dobijenih rezultata nakon implementacije kola na FPGA i
CPLD tehnologiju, izraunato je proseno poveanje povrine i smanjenje brzine za svaku od
primenjenih tehnika za detekciju greke.
Zakljuak ove teze predstavlja kratku rekapitulaciju onoga to je uraeno i daje neka
usmerenja za dalji rad na polju projektovanja mrea sa samoproverom.
Ova teza pored teoretskih i praktinih razmatranja datih u Poglavljima 1-5 sadri i tri
dodatka koji su namenjeni pruanju dodatnih objanjenja o realizaciji predloene metode.
Dodatak A sadri definicije i objanjenja osnovnih pojmova sistema visoke pouzdanosti, koje

5
Projektovanje kombinacionih i sekvencijalnih mrea sa samoproverom na osnovu VHDL opisa

slue itaocu za lake praenje teksta. U Dodatku B date su osnovne definicije kombinacionih
i sekvencijalnih mrea sa samoproverom. Dodatak C je, iz praktinih razloga, dat na CD-
ROM-u, a ukljuuje VHDL opise svih modula potrebnih za generisanje SC kola opisanih u
ovoj tezi. Sastavni delovi Dodatka C su dva ilustrativna primera sinteze kombinacionog kola
4-bitni mnoa i sekvencijalnog benchmark kola b01.

6
2. Pouzdani sistemi

2. Pouzdani sistemi

Raunarski sistemi imaju iroku primenu u svakodnevnom ivotu. Veina takvih sistema
koristi se u hazardnim uslovima i za daljinsku kontrolu, kao na primer u nuklearnim
reaktorima, avionima i svemirskim brodovima. U takvom okruenju raunarski sistemi su, pre
svega zbog uticaja zraenja, u velikoj meri podloni grekama. Odravanje i popravka takvih
sistema je vrlo skupa i zahteva dosta vremena. Zbog toga, pored performansi, otpornost na
defekte (fault tolerance), koja predstavlja mogunost sistema da korektno funkcionie uprkos
pojavi defekata, postaje vrlo vano pitanje [Siew92].
Sistemi zasnovani na ASIC (Application Specific Integrated Circuits) kolima mogu da se
optimizuju u skladu sa zahtevima aplikacije i obino imaju bolje performanse od raunarskih
sistema opte namene. Meutim, cena projektovanja ASIC kola je obino visoka, a i jedanput
proizvedena ASIC kola ne mogu se aurirati, poboljavati i korigovati. U kritinim
aplikacijama, bilo koji kvar u ASIC komponenti ne moe da se popravi bez kompletne
zamene postojee komponente novom. Aplikacije opte namene mogu da se auriraju i
poboljaju loadovanjem novog softverskog programa. Meutim, u sluaju fizikog defekta u
ipu javlja se isti problem kao kod kritinih aplikacija i jedino reenje za popravljanje je
potpuna zamena komponente. S obzirom na visoku cenu takvog reenja javlja se potreba za
novim ekonominim tehnikama koje e obezbediti visoku pouzdanost.

2.1. Trendovi u razvoju elektronskih proizvoda sa aspekta pouzdanosti

Napredak u VLSI tehnologiji i pojava velikog broja novih aplikacija uzrokovali su brojne
promene u specifikaciji, projektovanju i realizaciji integrisanih kola u toku prethodnih trideset
godina. Evolucija paradigme u projektovanju integrisanih kola prikazana je na slici 2.1.
[Mezh04].

Slika 2.1 Evolucija kriterijuma projektovanja kod CMOS IC-a

Kao to se vidi sa slike 2.1, tokom 60-ih i poetkom 70-ih godina prolog veka interesi
proizvoaa poluprovodnikih komponenti uglavnom su bili usmereni ka smanjenju povrine
ipa, tako da je kompaktnost kola predstavljala primarni kriterijum u procesu projektovanja

7
Projektovanje kombinacionih i sekvencijalnih mrea sa samoproverom na osnovu VHDL opisa

integrisanih kola. Usled ogranienog nivoa integracije tipini sistemi u to vreme, kakvi su
raunari, sastojali su se od nekoliko desetina pa do nekoliko hiljada integrisanih kola niskog
stepena inegracije (SSI IC) [Haye88]. Kao rezultat toga, komunikacija izmeu ipova, koja se
ostvarivala na nivou tampanih ploa, ili na nivou ploa, ograniavala je ukupne performanse
sistema. U poreenju sa vezama unutar ipa, veze na tampanoj ploi karakterie veliko
kanjenje i velika disipacija snage, a to je dovodilo do ogranienja brzine rada i redukcije
performansi sistema. Takoe, pouzdanost sistema, zbog velikog broja ploa, bila je jako niska
[Siew91].
Napredak tehnologije, sredinom 70-ih godina, omoguio je ugradnju veeg broja
funkcionalnih jedinica na monolitnoj ploici silicijuma to je obezbedilo realizaciju sloenijih
elektronskih sistema. U razvoju i proizvodnji IC-a izdiferencirala su se dva pravca. Prvi je
imao za cilj poveanje brzine rada uz smanjene povrine ipa, a drugi je bio orijentisan ka
smanjenju disipacije [Chan92]. Nivo integracije CMOS kola kretao se od srednjeg do visokog
(MSI/LSI IC), napon napajanja bio je obino 5 V, granina frekvencija rada do 20 MHz, a
pouzdanost u radu sistema relativno niska zbog velikog broja komponenti i tampanih ploa
od kojih su se projektovali i gradili elektronski sistemi [Prad72], [Prad86].
Sredinom 80-ih godina istraivanja i razvoj IC-a evoluirali su u tri smera. Kod prvog
imperativ je bila brzina (karakteristina za razvoj mikroprocesora), kod drugog kompromis
izmeu poveanja brzine rada i smanjenja potonje (baterijski napajani ureaji), a kod treeg
mikropotronja (biomedicinski ureaji) [Mezh04]. Za digitalna kola realizovana u periodu od
sredine 80-ih do sredine 90-ih godina, uglavnom napajana sa 5V, smatra se da su zbog visokih
logikih margina i imunosti na um relativno pouzdana.
Od sredine 90-ih godina pa do danas uglavnom egzistiraju dva pravca u razvoju IC-a. Prvi
pravac karakterie smanjenje potronje (mikropotronja) to se ostvaruje zahvaljujui
smanjenju napona napajanja kao i raznim tehnikama za dinamiko upravljanje potronjom
(mobilni telefoni) [Beni00]. Drugi pravac je bio orijentisan ka kompromisnom reenju
postizanja velike brzine uz malu potronju i visoku pouzdanost u radu [Shoo02]. Oba pravca
su usmerena ka agresivnom skaliranju dimenzija tranzistora, poveanoj kompleksnosti kola,
poveanim performansama, poveanoj brzini rada, i smanjenoj disipaciji. Kao rezultat toga, sa
take gledita pouzdanosti, javljaju se dva nepoeljna efekta: a) poveanje internih smetnji
zbog uticaja parazitnih impedansi (otpornih, induktivnih i kapacitivnih) na vezama unutar
ipa; i b) smanjenje logikih margina.

Slika 2.2. Evolucija prosene struje kod visoko performansnih mikroprocesora

8
2. Pouzdani sistemi

U daljem tekstu, ilustracije radi, ukazaemo kako smanjenje napona napajanja IC-a utie
na poveanje smetnji. Promene napona napajanja se manifestuju kao um-napajanja. um-
napajanja negativno utie na korektan rad IC-a sa take gledita sledeih mehanizama: a)
neodreenosti u kanjenju signala; b) on-chip ditera; c) degradacije margina; d) degradacije
pouzdanosti oksidnog sloja gejta [Mezh04]. Za digitalno kolo kaemo da korektno radi ako
generie ulazne i izlazne napone u okviru specificiranih naponskih nivoa, tj. definisanih
opsega naponskih vrednosti. Opseg naponskih vrednosti naziva se margina uma-napajanja.
Primarni cilj projektovanja je da obezbedi da um-napajanja ne premai margine.
Evolucija prosene struje kod visoko performansnih mikroprocesora prikazana je na slici
2.2. Kao to se vidi sa slike prosena struja, za procesor Itanium 2, trenutno dostie vrednost
od 100 A, a ima trend poveanja sa tehnologijom skaliranja. Predvianja od strane ITRS-a
[ITRS03] ukazuju da e se ona, saglasno Moore-ovom zakonu, duplirati sa svakom novom
generacijom mikroprocesora (18-24 meseca), vidi sliku 2.3.

Slika 2.3. Poveanje zahteva za strujom napajanja kod visoko performansnih mikroprocesora u
zavisnosti od tehnologije skaliranja/vremena u skladu sa predvianjima ITRS-a

Shodno slici 2.3, uoljiv je bri porast tranzijentne struje u odnosu na prosenu, to je
posledica poveanja interne taktne frekvencije ipa. Tranzijentna struja kod dananjih
savremenih visoko performansnih procesora iznosi aproksimativno 1 TA/s (1012 A/s), a
oekuje se da e 2016. godine premaiti vrednost od 100 TA/s. Tranzijentna struja ovako
velike vrednosti posledica je zahteva za komutacijom nekoliko stotina ampera u okviru dela
nanosekunde kod rada sinhronih digitalnih kola. Obezbeenje adekvatnog integriteta signala
(signal bez izoblienja) pri smanjenom naponu napajanja kola i poveanom strujom
predstavlja kljuni projektantski izazov za postizanje visokih performansi uz pouzdan rad
[Mezh04].
Na slici 2.4 prikazan je uzajamni odnos efekta redukcije margina uma kod CMOS kola za
dve tehnologije sa razliitim dimenzijama tranzistora. Kao to se vidi sa slike 2.4, skaliranjem
i smanjenjem napona napajanja smanjuju se i margine, a samim tim i pouzdanost kola. Ovaj
efekat namee potrebu za nalaenjem novih tehnika projektovnja IC-a koje e obezbediti
pouzdan rad. U ovoj tezi se upravo razmatra problematika koja je u uskoj vezi sa
projektovanjem visoko pouzdanih kola.
Sa smanjenjem dimenzija, kapacitivnosti MOS tranzistora (kako kapacitivnosti gejta tako
i parazitne, difuzione kapacitivnosti) se smanjuju. Sa jedne strane, to ima za posledicu

9
Projektovanje kombinacionih i sekvencijalnih mrea sa samoproverom na osnovu VHDL opisa

smanjenje propagacionog kanjenja i potronje. Meutim, sa druge strane, smanjenje


kapacitivnosti gejta uporedno sa smanjenjem radnog napona dovodi i do smanjenja koliine
naelektrisanja prisutne u kanalu MOS tranzostora (Q=CV). U dananjoj tehnologiji koliina
naelektrisanja u formiranom kanalu MOS tranzistora je reda femtokulona (fC). Prema tome,
ak i slabe elektrine smetnje prisutne na gejtu tranzistora mogu da dovedu do razelektrisanja
gejta, prekida kanala, i shodno tome naruavanja informacije koja se obrauje u datom kolu.

Slika 2.4. Redukcija margina uma kod CMOS kola u zavisnosti od tehnologije skaliranja
Napomena: NMH i NML su margine uma kod logikog visokog i logikog niskog nivoa, respektivno

U zakljuku, poluprovodnika elektronska industrija doivela je impresivan napredak od


trenutka izrade prvih monolitnih integrisanih kola, ranih 60-ih godina prolog veka, pa do
danas. Neprekidno uvoenje novih proizvoda poboljanih performansi, manjih dimenzija,
disipacije i cene, karakterie dananje trite koje je "preplavljeno" novim komercijalnim
proizvodima. Potroaka elektronika je dobar primer uvoenja proizvoda koji nude nove
mogunosti, uglavnom bazirane na tehnolokim poboljanjima u izradi integrisanih kola.
Personalni raunari, Internet i mobilne komunikacije samo su neki od najznaajnijih primera
novih masovnih tehnologija koje su vremenom napredovale od tehnikih mogunosti da se
neki proizvod projektuje do njegovog masovnog korienja. Impresivan napredak u izradi
integrisanih kola pre svega je bio zasnovan na smanjenju geometrije tranzistora, smanjenju
napona napajanja i poveanju taktne frekvencije. Meutim, sa druge strane treba istai da
zajedniko dejstvo ova tri faktora dovodi do poveanja verovatnoe pojave defekata.
Realizacija pouzdanih kola korienjem, u osnovi, neopouzdanih tehnologija, zahteva
primenu posebnih tehnika projektovanja. Cilj ovih tehnika je projektovanje kola i sistema
otpornih na defekte, tj. kola i sistema koji e biti u stanju da uprkos pojavi defekta nastave sa
normalnim izvravanjem svojih funkcija. Danas, zbog svih navedenih razloga, otpornost na
defekte se zahteva ne samo od visoko pouzdanih sistema, ve i od proizvoda iroke potronje.
Zbog toga razvoj tehnika za kompenzaciju negativnog uticaja defekta na pouzdanost kola
predstavlja aktivnu istraivaku oblast.

2.2. Defekti u integrisanim kolima

U nastavku izlaganja definisaemo neke pojmove i ukazati na neke od tehnika koje


standardno sreemo kod visoko pouzdanih sistema [John89].

10
2. Pouzdani sistemi

2.2.1. Defekt, greka, otkaz


U procesu projektovanja sistema otpornih na defekte koriste se tri osnovna termina, a to su
defekt, greka i otkaz. Izmeu njih postoji uzrono posledina veza. Konkretno, defekti su
uzrok greaka, a greke su uzrok otkaza.
Defekt (fault) je fizika neispravnost, nepotpunost, ili oteenje koje se javlja unutar neke
hardverske ili softverske komponente. Defekt je takoe mana, slabost ili zastarelost odreene
hardverske ili softverske komponente. Primeri defekata ukljuuju kratke spojeve izmeu
elektrinih provodnika, otvorene ili prekinute veze, fizika oteenja ili nedostatke u
poluprovodnikim komponentama, i drugo. Slino, za softver, primer defekta je programska
petlja iz koje se, kada se jednom ue, vie ne moe izai.
Greka (error) je manifestacija defekta. Konkretno, greka je odstupanje od tanosti ili
ispravnosti. Na primer, pretpostavimo da na vezi postoji spoj koji rezultuje time da je linija
uvek na nivou logike 1. Fiziki spoj je defekt u kolu. Ako se pojavi stanje koje zahteva da se
linija prebaci na nivo logike 0, vrednost na liniji e biti pogrena. Drugim reima, ispravna
vrednost na liniji bi bila logika 0, ali postojanje defekta e rezultovati pogrenom vrednou
na liniji. S druge strane, ako je stanje kola takvo da na konkretnoj liniji treba da bude nivo
logike 1, postojanje defekta ne uzrokuje greku. Dakle, ak i ako postoji defekt, greka ne
mora da se ispoljava u svim situacijama.
Konano, ako greka rezultira time da sistem neku svoju funkciju izvrava pogreno,
dolo je do otkaza (failure) sistema. Sutinski, otkaz je neizvravanje neke akcije na nain na
koji bi trebalo, ili kako se to oekuje. Otkaz takoe predstavlja i izvravanje neke funkcije u
neodgovarajuem kvalitetu ili kvantitetu.
Slika 2.5 ilustruje vezu izmeu defekata, greaka i otkaza. Otkazi su uzrokovani
grekama, koje su uzrokovane defektima.

Slika 2.5. Defekt dovodi do greke; greka uzrokuje otkaz sistema

2.2.2. Klasifikacija defekta


Defekti se mogu javiti zbog uticaja raznovrsnih pojava kako unutar samih elektronskih
komponenata, tako i u njihovom okruenju, ili mogu biti inicirani jo u fazi projektovanja ili
proizvodnje komponente ili sistema.
Takoe, defekti se razlikuju po trajanju, rasprostranjenosti i manifestaciji. Klasifikacija
defekta se moe obaviti prema razliitim kriterijuma, na nain koji je prikazan na slici 2.6
[John89], [Siew92].

Uzroci defekta
Mogui uzroci defekata mogu se povezati sa problemima u etiri osnovne oblasti:
specifikacija, realizacija, komponente i spoljanji faktori [John89].
Prvi mogui uzrok defekata su problemi u specifikaciji. Oni ukljuuju netane algoritme,
arhitekturu, ili pogrene specifikacije u projektovanju hardvera i softvera.

11
Projektovanje kombinacionih i sekvencijalnih mrea sa samoproverom na osnovu VHDL opisa

Slika 2.6. Karakteristike defekta

Sledei mogui uzrok defekata su problemi u realizaciji. Realizacija je proces


transformacije hardverske i softverske specifikacije u fiziki hardver i operativni softver. U
toku realizacije kvarovi se mogu javiti zbog loeg projekta, loeg izbora komponenti, loe
konstrukcije, ili greaka u kreiranju softvera.
Sledei uzrok defekata, odnosno kvarova su fiziki defekti komponenata. Nesavrenosti
u proizvodnji, sluajni otkazi ureaja, i istroenost komponenti su tipini primeri defekta
komponenti. Fiziki defekt moe biti rezultat prekida veza u kolu ili korozije metala.
Poslednji mogui uzrok defekata su spoljanji poremeaji, kao na primer, radijacija,
elektromagnetna interferencija, greke operatera, i ekstremne promene u radnoj sredini.
Naime, elektronski sistemi su veoma osetljivi na temperaturne promene, elektrostatike izvore
(udar groma), elektromagnetne izvore (indukovane smetnje od rada motora), radijacione
smetnje, i drugo. Takoe, greke operatera se smatraju spoljanjim poremeajima jer, gledano
sa fizike strane samog sistema, operater vri spoljanji uticaj.

Priroda defekta
Po prirodi, defekt moe biti hardverski ili softverski, takoe on moe biti u analognom ili
digitalnom kolu, i sl. Greka u programu je primer softverkog defekta.

Trajanje defekta
Trajanje defekta se odnosi na duinu vremenskog perioda u kome je defekt aktivan. Za
nas su od interesa defekti koji se javljaju kod VLSI integrisanih kola. Saglasno vremenu
trajanja definiu se sledea tri tipa defekata [Cons03]:
1) Stalni ili permanentni defekt (permanent fault) traje neogranieno dugo i manifestuje
se sve dok se ne preduzmu odgovarajue mere korekcije. Permanentni defekti posledica su
ireverzibilnih fizikih promena. Poboljanja u procesu projektovanja kao i tehnike izrade
poluprovodnika u znaajnoj meri smanjuju stopu pojave permanentnih defekata. Ako sistem
ne izvrava namenjenu funkciju na korektan nain, to znai da je pod uticajem defekta dolo
do otkaza. Za komponentu ili sistem definie se stopa otkaza (failure rate) koja predstavlja
broj otkaza koji se javljaju u jedinici vremena (Failure-In-Time - FIT) [Moha203]. Na slici
2.7 prikazana je evolucija pojavljivanja permanentnih otkaza kod CMOS mikroprocesora, kao
i statikih i dinamikih memorija u toku protekle decenije. Kao to se vidi sa slike pouzdanost
procesora i memorije je znaajno poboljana u toku prve polovine dekade. Znaajno

12
2. Pouzdani sistemi

smanjenje otkaza kod SRAM-ova velikog kapaciteta ostvareno je u drugoj polovini dekade.
Poluprovodnika industrija je u zadnjoj deceniji poela da koristi bakar za realizaciju
meuveza unutar integrisanog kola. Ovaj trend je imao pozitivan uticaj na smanjenje stope
permanentnih defekata iz razloga to bakar ima bolje osobine sa aspekta elektromigracije u
odnosu na aluminijum.

300
Mikroprocesori
SRAM 256 kB
SRAM 4MB
DRAM 1 MB
STOPA OTKAZA

DRAM 32 MB
200

100

0
1990 1992 1995 1997 2001
Godina
Slika 2.7. Evolucija pojavljivanja permanentnih otkaza kod CMOS mikroprocesora
Napomena: Veliina FIT predstavlja broj otkaza u vremenu od 10 asova [Cons03]
9

2) Povremeni defekt (intermittent fault) se pojavljuje, nestaje, i zatim se ponovo


pojavljuje u toku nekog vremenskog perioda. Teko ih je predvideti, ali su njihovi efekti u
velikoj meri korelisani. Povremeni defekti se javljaju zbog nestabilnosti u radu hardvera, a
mogu biti uzrokovani poveanjem temperature ili promenom napona napajanja. Kod najveeg
broja sluajeva ovi tipovi defekata prethode pojavi permanentnih defekata. Veoma je teko da
se napravi razlika izmeu povremenih i tranzijentnih defekata zbog njihove slinosti u
manifestacijama. Zato se koriste tri glavna kriterijuma na osnovu kojih se odreuje uzrok
otkaza, odnosno koji je tip defekta uzrokovao greku, a samim tim i otkaz. Kao prvo,
povremeni defekti se javljaju repetitivno na istoj lokaciji. Kao drugo, greke koje se javljaju
od strane trenutnih defekata po prirodi su paketne (burst tipa). Kao tree, zamenom dotrajalog
kola eliminiu se povremeni defekti, nasuprot tranzijentnim defektima koji sa zamenom kola i
dalje ostaju.
3) Prolazni ili tranzijentni defekt (transient fault) se moe pojaviti i zatim nestati u
veoma kratkom vremenskom periodu. Tranzijentni defekti deavaju se zbog privremene
promene ambijentnih uslova. Nekoliko fenomena uzrokuje pojavu tranzijentnih defekata: alfa
i neutronske estice, um usled napona napajanja i meuveza, elektromagnetna interferencija i
elektrostatika pranjenja. Tranzijentni defekt se ne manifestuje trajnim oteenjem strukture
poluprovodikog materijala, ve kratkotrajnim poremeajem u radu kola (pojava strujnih
impusa u vorovima prekidake mree ili gubitak naelektrisanja u memorijskim elijama), to
uzrokuje promenu ili gubitak informacije koja se obrauje u kolu. S obzirom da unitavaju
jedino podatak, ali ne i samo kolo, za tranzijente defekte se esto koristi termin soft defekti.
Uestalost tranzijentih defekata u konkretnom kolu karakterie se stopom soft greaka (Soft
Error Rate - SER).
Kod savremenih poluprovodnikih tehnologija, sa radnim naponom ispod 1.8 V i
veliinom SRAM elija ispod 10 m2, radijacija, u obliku kosmikog i jonizacionog alfa
zraenja, ak i u normalnim dozama, postaje dominantan izvor soft defekata. Ova pojava je
ilustrovana na slici 2.8 [Osad04]. Kosmiko zraenje je prisutno u vidu neutrona velike

13
Projektovanje kombinacionih i sekvencijalnih mrea sa samoproverom na osnovu VHDL opisa

energije, dok alfa estice potiu od neistoa u materijalima za pakovanje integrisanih kola.
Udarom ovih estica u osetljivu oblast poluprovodnikog materijala dolazi do njihove
interakcije sa jonima i atomima silicijuma to ima za posledicu izbijanje elektrona. Energija
koja se predaje elektronu u ovom procesu dovoljna je da ga iz valentne prebaci u provodnu
oblast ime nastaje par elektron-upljina. ta vie, energija koja ostaje izbijenom elektronu je
dovoljana da on pri udaru u drugi atom kreira novi par elektron-upljina, ime dolazi do
pojave svojevrsne lanane reakcije. Slobodni nosioci naelektrisanja nastali u ovom procesu
ire se kroz poluprovodnik, a nastala jonizaciona traka uzrokuje tranzijentni impuls struje. S
obzirom da je za pojavu ovakvog strujnog impulsa dovoljna samo jedna estica zraenja,
efekat koji takav impuls ima na rad kola zove se single-event upset (SEU) [Dupo02].

Slika 2.8. Generisanje naelektrisanja od strane kosmikog zraenja

SEU moe uzrokovati da neki le ili memorijski element u sloenom kolu promeni svoje
stanje. Pored toga, SEU moe da se pojavi u internom voru kombinacione mree, promeni
logiki nivo tog vora, koji se zatim prostire kroz mreu do lea gde greka biva zapamena
[Moha103]. Na slici 2.9 prikazan je uticaj bombardovanja neutronskih i alfa estica na SER
kod CMOS SRAM-ova razliitog memorijskog kapaciteta. Kao to se vidi sa slike
bombardovanje alfa estica poveava SER 30 puta ako se tehnoloki proces promeni sa
0.25 m na 0.18 m, a napon smanji od 2 V na 0.6 V.

Slika 2.9. SER za dve CMOS SRAM tehnoloke generacije [Cons03]

14
2. Pouzdani sistemi

Rasprostranjenost defekta
Rasprostranjenost defekta odreuje da li je uticaj kvara lokalizovan na konkretni
hardverski ili softverski modul, ili on globalno utie na rad sistema. Na primer, bilo koji
defekt vezan za napon napajanja je primer globalnog uticaja na sistem, dok defekt u memoriji
ima lokalizovan uticaj na sistem.

Vrednost defekta
Vrednost defekta moe da bude odreena ili neodreena. Odreenu vrednost ima defekt
koji se ne menja tokom vremena bez spoljanjeg uticaja. Neodreenu vrednost ima defekt iji
je status razliit u razliitim vremenskim trenucima.

2.2.3. Modeli defekata

Defekti u kolima opisuju se modelima [Lala01], [Moha103]. Pri ovome treba istai da je
veoma teko analizirati rad digitalnih sistema u prisustvu svih tipova defekata, kao na primer,
istovremena pojava tranzijentnih i neodreenih defekata. Da bi se korektno opisao rad sistema
u prisustvu defekta neophodno je poznavati statistiku defekata. Tako na primer, shodno slici
2.5, do otkaza neke komponente dolazi ako su se prethodno manifestovale greke u toj
komponenti, a greke su, u principu, bile uzrokovane nekim defektima, u materijalu, u
programu itd. Najvei broj modela kojima se opisuju sistemi otporni na otkaze polazi od
injenice da se u datom trenutku, kod realnih sistema, moe javiti najvie jedna greka
[DeK94], [Toub97], [DasD99]. Ako se usvoji ovakva strategija tada je procedure za
simulaciju rada i testiranje relativno lake kreirati i one veoma pouzdano mogu da opiu i
simuliraju rad sistema u prisustvu defekata. U ovoj tezi upravo je usvojen ovakav pristup.
Modeli defekata nam omoguavaju da definiemo specifine tipove defekata koji e se
razmatrati, kao i njihovo ponaanje. I pored toga to nisu 100% tani, projektanti koriste
modele zato to oni olakavaju reavanje problema u cilju postizanja visoke pouzdanosti u
radu. Najee se koriste dva osnovna modela defekata:
i) logiki model defekta postavljanja (stuck-fault) - koristi se na nivou logikih kola, i
ii) tranzistorski model defekta postavljanja - koristi se na nivou tranzistora.
Logiki model defekta postavljanja moe se predstaviti kao model defekta postavljanja na
0 (stuck-at-0) ili postavljanja na 1 (stuck-at-1). Tri osnovne karakteristike ovog modela su
sledee:
- kao rezultat defekta u modulu jedan od njegovih ulaza ili izlaza je fiziki postavljen na
1 ili 0
- defekt ne menja osnovnu funkciju kola
- defekt je permanentan.
Logiki modul je jedan gejt ili skup gejtova koji izvravaju neku logiku funkciju.
Tranzistorski model defekta postavljanja moe se predstaviti kao model zasienog
tranzistora (stuck on) ili model zakoenog tranzistora (stuck off).

2.2.4. Modeli greaka


Pored modelovanja defekata koriste se i tehnike za modelovanje posledica defekata,
odnosno radije se modeliraju greke, a ree defekti. Osnovni razlog ovakvog pristupa je da
bilo koji defekt izaziva promenu logike vrednosti na izlazu sistema. Za kombinaciona

15
Projektovanje kombinacionih i sekvencijalnih mrea sa samoproverom na osnovu VHDL opisa

logika kola ova promena predstavlja modifikaciju tabele istinitosti. Poreenjem tabele
istinitosti formirane na osnovu ispravnog odziva i tabele istinitosti formirane na osnovu
dobijenog odziva, dobija se informacija o ispravnosti rezultata.
Modeli greaka koriste se za projektovanje i verifikaciju mnogih kola koja imaju
mogunost samotestiranja, ali se ne koriste kao sredstvo za generisanje test signala. Takoe,
model greke podrazumeva da mora da proe neko vreme pre nego to se utvrdi postojanje
defekta.

2.2.5. Manifestacija tranzijentnih defekata u digitalnim kolima


Razvoj CMOS tehnologije poveava osetljivost kola na okruenje a samim tim i
verovatnou pojave tranzijentnih defekata. S obzirom da postoji veliki uticaj stalno prisutnih
pojava u okolini, kao to su promene vrednosti signala usled uticaja estica (ili SEU), naroito
neutrona iz atmosfere, jasno je da tranzijentni defekti predstavljaju glavne izvore greaka kod
VLSI kola. Takoe, istraivanja na ovom polju pokazala su da su tranzijentne greke najei
uzrok otkaza u VLSI kolima/sistemima (82-98%) [Cast82] u kojima se sve vie smanjuju
nivoi napona i margine uma, a poveava se osetljivost na tranzijentne defekte [Leve02],
[Dupo02].
Smanjenje stope otkaza kao posledice tranzijentnih greaka, odnosno defekata u VLSI
kolima, moe se ostvariti detekcijom greke. Nain detekcije tranzijentnih ili soft greaka
zavisi od zahteva odreene aplikacije za stopom otkaza. Naime, u kritinim aplikacijama
(kontrola saobraaja, bankarstvo, medicina) primarni cilj je postii vrlo visoku pouzdanost
bez obzira na cenu, dok u standardnim aplikacijama primarni ciljevi su cena i performanse.
Zato su tehnike za detekciju greke u poetku bile razvijene samo za kritine aplikacije.
Meutim, kako tehnoloki proces uslovljava poveanje gustine dolazi do sve vee osetljivosti
logikih kola u standardnim aplikacijama na tranzijentne defekte. Primena detekcije greke u
standardnim aplikacijama ograniena je iz dva razloga [Moha103], [Moha203]:
1) Veliko poveanje potronje, povrine i kanjenja - Logika kola nemaju regularnu
strukturu pa je primena detekcije greke jo kompleksnija, a i konvencionalne tehnike
razvijene su samo za kritine aplikacije da bi obezbedile visok nivo pouzdanosti.
2) Smanjenje osetljivosti na tranzijentne defekte - Logika kola imaju prirodnu barijeru na
propagaciju SEU-a ka svom izlazu. Verovatnoa da SEU bude leovan zavisi od toga koji
vor u kolu je bombardovan. Kada se bombardovanje estice javi na internom voru logikog
kola postoje tri maskirajua faktora - logiki, elektrini i prozor-leovanja - koji mogu da
spree leovanje SEU-a a samim tim i rezultujuu soft greku.
Na slici 2.10 prikazan je mehanizam generisanja greke na izlazu kombinacione mree.
Naime, udarom estice u MOS tranzistor logikog kola, koje je deo sloenije kombinacione
mree, nastaje lanac dogaaja koji uzrokuje greku na izlazu mree.
Kolo sa slike 2.10 sastoji se od kombinacione mree i izlaznih leeva u koje se pod
dejstvom taktnog signala upisuje rezultat. Da bi SEU koji se desi u kombinacionoj mrei
uzrokovao pogrean podatak i da bi taj podatak bio upisan u izlazne leeve, moraju da budu
zadovoljeni sledei uslovi [Dupo02]:

16
2. Pouzdani sistemi

Slika 2.10. Dijagram kola koji pokazuje kako od tranzijentnog defekta nastaje soft greka

Smetnja uzrokovana udarom estice mora da bude dovoljno jaka da generie signal na
nekom od vorova u kombinacionoj mrei. To moe da se desi bilo gde u mrei i u bilo koje
vreme. Pojava smetnje dovoljog intenziteta zavisi od energije estica i intenziteta zraenja, ali
i od osetljivosti kola na ovakve poremeaje.
Tako generisani signali najee su u obliku impulsa kratkog trajanja (do nekoliko
stotina pikosekundi). Meutim, kratkotrajni impuls na ulazu logikog kola moe da izazove
promenu logikog nivoa na njegovom izlazu samo ako je trajanje imulsa due od
propagacionog kanjenja kroz kolo. Logika kola realizovana savremenim poluprovodnikim
tehnologijama poseduju propagaciono kanjenje od oko 100 ps, to je dovoljno brzo za
prenoenje signala nastalih udarom estica. Takoe, SEU mora da bude impuls znaajnijeg
trajanja i amplitude kako bi proao kroz svaki stepen logike jedinice na putu do lea. Impuls
e biti oslabljen zbog elektrinih osobina svakog gejta kroz koji prolazi, pa zato mora da se
obezbedi da se SEU, u svakom sluaju, prenese do lea. Ako je impuls toliko oslabljen pre
nego to doe do lea onda e SEU biti elektrino maskiran.
Da bi se promena logikog nivoa na izlazu logikog kola pogoenog esticom,
manifestovala kao greka i na izlazu kombinacione mree, neophodno je da kroz mreu, od
take koja predstavlja izlaz logikog kola do nekog od izlaza mree postoji aktivna logika
putanja. Drugim reima, neophodno je da postoji funkcionalno osetljiv put od mesta pojave
SEU-a do lea, to zavisi od primenjenog vektora na ulazu. Na primer, neka je u mrei sa
slike 2.10 na izlazu AND kola U5 nastao poremeaj tako da je umesto logike 1-ce na izlazu
ovog kola prisutna logika 0. Meutim, da bi se ova pogrena vrednost prenela na izlaz
mree, neophodno je da na izlaz AND kola U4 bude na logikoj 1, jer samo pod tim uslovom
izmeu izlaza kola U5 i izlaza mree postoji aktivna logika putanja. Ako ne postoji takav
put, onda e SEU biti logiki maskiran.
Na kraju, da bi pogrean podatak na izlazu kombinacione mree prouzrokovao
pogrean rad sistema, on, kao takav, mora da bude upisan u izlazne leeve. Prema tome,
vremenski interval u kome na izlazu mree postoji pogrean podatak mora da obuhvati i
trenutak dejstva rastue ivice takta. Dodatno, moraju biti zadovoljeni i zahtevi u pogledu
vremena postavljanja (set-up-time) i vremena dranja (hold-time) le kola. Poveanje irine
impulsa i taktne frekvencije utiu na poveanje verovatnoe leovanja tranzijentnog defekta,
to je ilustrovano na slici 2.11. Sa slike 2.11a) vidi se da vrednost tranzijentnog defekta nee
biti leovana ako se ne poklopi sa ivicom takta, dok se sa slike 2.11b) vidi da je sa
poveanjem taktne frekvencije vea i verovatnoa leovanja. Znai, tajming SEU-a mora da

17
Projektovanje kombinacionih i sekvencijalnih mrea sa samoproverom na osnovu VHDL opisa

bude takav da impuls stigne do lea u trenutku pojave ivice takta kako bi le "uhvatio"
njegovu vrednost. Ako se SEU pojavi van "prozora leovanja" onda e biti maskiran.

Slika 2.11. Efekat poveanja irine impulsa i taktne frekvencije

Ako su ispunjena sva etiri prethodno navedena uslova onda poremeaj usled
tranzijentnog defekta generie greku u podatku VLSI ipa. Drugi, trei i etvrti uslov
predstavljaju "prirodnu" prepreku irenju SEU defekta, to je, uz veu otpornost MOS
tranzistora na udare estica, inilo da su kod starijih tehnologija opisani efekti bili tretirani
kao minorni uzronici nepouzdanosti u radu VLSI kola. Meutim, kod savremenih
tehnologija, uporedno sa smanjenjem radnog napona i dimenzija MOS tranzistora smanjuje se
i naelektrisanje vora to omoguava da estice manje energije uzrokuju SEU, pa je zato
verovatnoa pojavljivanja SEU defekta (prvi uslov) daleko vea. Iako postojanje aktivnog
puta (trei uslov) zavisi iskljuivo od trenutne vrednosti ulaznog podatka i nije uslovljeno
tehnologijom, smanjenje propagacionog kanjenja kroz logika kola (drugi uslov) i trend
poveanja radne frekvencije (etvrti uslov) dovode do smanjenja sposobnosti "filtriranja"
SEU defekta. Zbog toga, kod savremenih VLSI kola, imlementacija posebnih tehnika za
detekciju tranzijentnih greaka postaje neminovnost [Moha203].
Od velikog interesa su i tranzijentne greke u memorijama zato to memorije sadre
daleko vei broj i veu gustinu bitova osetljivih na udare estica, u odnosu na ligika kola
[Zieg96].

2.3. Tehnike projektovanja sistema tolerantnih na defekte

Integritet podataka je glavni izazov u procesu projektovanja sistema. Zbog sve veeg
uticaja defekata poluprovodnika industrija preusmerila je razvoj i proizvodnju na VLSI kola
kod kojih e ti uticaji biti manji. Uglavnom poboljani tehnoloki procesi dovode do
smanjenja svih tipova defekata. No, nezavisno od toga ini se da se uticaj defekata ne moe u
potpunosti eliminisati i sve je izraeniji sa poveanjem stepena integracije [Cons03].
Sa aspekta projektovanja, za poboljavanje ili zadravanje nominalnih performansi,
odnosno za postizanje visoke pouzdanosti u radu sistema, u okruenju u kome su defekti
mogui, koriste se tri osnovna pristupa: izbegavanje defekata, maskiranje defekata, i
tolerancija na defekte [Cons03], [John89].
Izbegavanje defekta (fault avoidance) je bilo koja tehnika iskoriena za spreavanje
pojave hardverskih defekata ili softverskih greaka. Ovakve tehnike se pre svega baziraju na
korienju boljih materijala i poboljanju tehnolokih procesa i metoda projektovanja kola. Na
primer, veze unutar kola koje karakterie nii nivo emisije alfa zraenja karakterie manji
SER. Silicijum na izolatoru je reenje koje se standardno koristi kao proces za smanjenje
osetljivosti kola na pojavu tranzijentnih otkaza [Cons03]. Izbegavanje defekata ukljuuje
procese kao to su preispitivanje projekta, zatita komponenti, testiranje, i druge metode

18
2. Pouzdani sistemi

kontrole kvaliteta. Naime, ako se pregled projekta izvri korektno mnoge greke nastale u
specifikaciji mogu se otkloniti. Takoe, ako se sistem oklopi mogu se spreiti spoljanji
uticaji. Isto tako, ako se sistem paljivo testira, mnogi kvarovi se na vreme mogu otkriti i
ukloniti pre nego to se sistem startuje.
Maskiranje defekta (fault masking) je bilo koja tehnika koja spreava da defekti u
sistemu proizvedu greke unutar strukture sistema. Primeri maskiranja defekata su: memorije
sa mogunou korekcije greaka, ili veinsko izglasavanje u sistemima gde postoje tri
istovetna modula, i gde dva, na osnovu veine mogu maskirati trei neispravan modul
[Stoj201]. Sistemi koji koriste maskiranje defekata ostvaruju osobinu otpornosti
"sakrivanjem" defekata koji se javljaju. Cilj je da uticaj svih defekata bude lokalnog
karaktera. Tehnike zadravanja defekta, koje se zasnivaju na maskiranju, spreavaju irenje
njihovih efekata kroz sistem.
Tolerancija defekata (fault tolerant) je sposobnost sistema da nastavi sa izvravanjem
svojih zadataka i posle pojave defekta. Tehnoloki razvoj je prirodno nametnuo pitanje: Zato
je tolerancija na defekte u elektronskim komponentama toliko vana i zato je predmet
interesovanja mnogih projektanata? Naime, tolerantnost na defekte je atribut koji omoguava
sistemu da bude otporan na defekte. Takav sistem moe da nastavi korektno izvravanje
specificiranih zadataka i u prisustvu hardverskog defekta. Detekcija i korekcija internih
defekata u toku normalnog rada omoguava korienje ovih kola u kritinim aplikacijama
[Entr201].
Vremenski dijagram sa slike 2.12 prikazuje sve faze koje postoje od pojave defekta do
otkaza sistema. Sa slike se vidi da se detekcijom defekta, odnosno njegovog efekta, odmah
nakon pojavljivanja, moe izbei otkaz sistema. Drugim reima, sistem nee otkazati ako
postoji dovoljno vremena za primenu mehanizama tolerancije defekata.

Slika 2.12. Faze koje postoje od trenutka pojave defekta do otkaza sistema

Osnovni cilj tolerancije, odnosno otpornosti na defekte je spreavanje pojave otkaza


sistema usled pojave defekta. Tolerancija na defekte moe se implementirati na nivou kola ili
na nivou sistema. Ona je u vezi sa konkurentnom detekcijom greaka, oporavljanjem od
greaka, kodovima za korekciju greaka (Error Correcting Code - ECC), kao i prostornom i
vremenskom redundansom. Projektanti podjednako uspeno koriste kako hardverske tako i
softverske implementacije. FPGA kola sa samoproverom i ASIC kola standardno koriste
interne resurse za on-line detekciju greaka i otkaza. Hardverska reenja zasnovana na Berger-
ovim kodovima esto se koriste za detekciju greaka kod RISC procesora. Hardverska
detekcija greaka koja se obino izvodi kao ECC ili parnost, kao i firmversko oporavljanje od
greaka su standardne tehnike koje se koriste kod Intel Itanium procesora i drugih [Lala01],
[JhaN93], [DeK94], [DasD99] .

19
Projektovanje kombinacionih i sekvencijalnih mrea sa samoproverom na osnovu VHDL opisa

Cilj sistema koji su tolerantni na defekte je da, pored funkcionalnosti, ispune i zahtev
pouzdanosti u irem smislu, odnosno uslunosti (dependability). Ovo je kompleksna
karakteristika koja objedinjuje vei broj aspekata pouzdanosti koji se odnose na pouzdanost u
uem smislu, dostupnost, bezbednost, performabilnost, odrivost i testabilnost. Svi ovi
pojmovi definisani su u Dodatku A ove teze. Ostvarivanje pouzdanosti u irem smislu
podrazumeva primenu osnovnih, prethodno pomenutih pristupa, u cilju otklanjanja uticaja
defekata, odnosno greaka ili otkaza sistema. Koncept pouzdanosti u irem smislu koji
obuhvata karakteristike pouzdanih sistema, naine za njihovo ostvarivanje i uticaje negativnih
efekata ilustrovan je na slici 2.13.

Slika 2.13. Koncept pouzdanosti u irem smislu

Tolerancija na defekte moe se postii mnogim tehnikama. Jedna od njih se sastoji u tome
da se defekt detektuje i locira, a da se zatim, sistem rekonfigurie kako bi se eliminisao uticaj
pokvarene komponente ili modula. Uopteno govorei, rekonfiguracija je proces
eliminisanja iz sistema entiteta sa kvarom i vraanja sistema u operativno stanje.
Rekonfiguracija obuhvata sledee aktivnosti [John89]:
1. Detekcija defekta je proces otkrivanja defekta koji se pojavio.
2. Lokalizacija defekta je proces odreivanja lokacije na kojoj se defekat pojavio i
utvrivanja komponente koja je neispravna, tako da se sistem, nakon toga, moe vratiti
u normalan rad.
3. Izolacija defekta je proces izolovanja defekta i spreavanja da se njegovi efekti
proire kroz sistem.
4. Sanacija defekta je proces koji obezbeuje da se i u prisustvu defekta, a uz pomo
rekonfiguracije, zadri ili ponovo uspostavi operativni status sistema; rekonfiguracija
se obino ostvaruje fizikim ili logikim odstranjivanjem i zamenom komponente koja
je u kvaru.
Tolerancija defekata, koja je do skoro bila korienja kao pristup samo kod profesionalnih
ureaja koji su bili namenjeni za rad u hazardnim uslovima i kritinim misijama, postala je
danas neminovnost koja se uvodi i kod komercijalnih proizvoda [Cons03], [Moha103],
[Mezh04]. Projektanti su danas primorani da ugrade koncepte tolerantnosti na defekte u VLSI
kola, posebno kod mikroprocesora, sa ciljem da se na jedan adekvatniji nain manipulie sa
defektima i grekama, a takoe i izbegnu posledice koje se javljaju zbog naruavanja
verodostojnosti podatka [Good85], [Hals85]. U savremena VLSI kola danas se ugrauju
znatno sofisticiranije tehnike kakve su one koje se odnose na poboljanu sposobnosti za

20
2. Pouzdani sistemi

konkurentnu detekciju i korekciju greaka, samoproveru, vremensku i prostornu redundansu,


pa ta vie i tripliciranje u glasanju [Lala01], [DasD99], [DeK94]. Prikupljanje podataka o
defektima i grekama, analiza otkaza, i uzroci pojavljivanja defekata imae najznaajnu ulogu
kod razumevanja mehanizama propagacije greaka i rada kola u reimu kada se javi defekt.
Predikcija otkaza bie centralna tema istraivanja narednih godina imajui u vidu da se broj
trenutnih greaka sve vie poveava. Poboljanje pouzdanosti rada VLSI kola zahteva nova
sredstva za pouzdano modeliranje trenutnih ili tranzijentnih defekata kao i greaka
generisanih od strane ovih defekata [Cons03]. Ova teza ima za cilj da ukae na tehnike koje se
koriste za konkuretnu detekciju svih tipova greaka.
Sve pomenute tehnike, koje se koriste za postizanje visoke pouzdanosti, zahtevaju
korienje nekog oblika redundanse. Poveanje gustine, smanjenje potronje snage i
smanjenje cene IC-a kao dela VLSI kola, omoguilo je implementaciju redundantnih pristupa.
Dananji mikrokompjuteri i drugi digitalni sistemi su dovoljno kompaktni tako da se mogu
primeniti redundantne tehnike.
Redundansa predstavlja dodavanje informacija, resursa, ili vremena pored onoga koje je
potrebno za normalan rad sistema. Redundansa moe imati vie oblika, a to su: hardverska,
informaciona, vremenska i softverska redundansa.
Procena sistema razmatra se kao sastavni deo procesa projektovanja. Da bi projekat bio
uspean paralelno sa procesom projektovanja vri se i procena. Na ovaj nain se dovoljno
rano otkrivaju problemi u projektovanju i omoguava se korekcija. Na primer, problem u
hardveru se moe lako korigovati ako se otkrije pre nego to se projekat zavri. Za analizu
sistema dostupne su mnoge metode procene. Tu spadaju Markovi modeli pouzdanosti, modeli
obnove sistema, kombinatorni modeli pouzdanosti, modeli dostupnosti, modeli odrivosti.

2.3.1. Hardverska redundansa


Hardverska redundansa predstavlja dodavanje hardvera, obino u cilju detekcije ili
tolerancije defekata. U svom osnovnom obliku ovaj metod obuhvata dupliciranje funkcije i
poreenje rezultata dve kopije specificiranog kola pomou kola za proveru. Prednost ovakvog
postupka je u tome to se moe primeniti na bilo koju funkciju.
Fiziko umnoavanje hardvera je najei oblik redundanse koji se danas koristi u cilju
postizanja otpornosti na otkaze. Kako poluprovodnike komponente postaju sve manje i
jeftinije hardverska redundansa postaje praktinija. Postoje tri osnovna oblika hardverske
redundanse: pasivna, aktivna i hibridna.
Pasivne tehnike koriste princip maskiranja defekta kako bi sakrile pojavu defekta i
spreile da defekt prouzrokuje pojavu greke. Ovakvim tehnikama postie se otpornost na
defekte bez zahteva za odreenim akcijama na delovima sistema, odnosno bez potrebe za
detekcijom defekata ili rekonfiguracijom sistema. Pasivna hardverska redundansa oslanja se
na mehanizam glasanja kako bi maskirala pojavu defekata. Veina pasivnih tehnika
zasnovana je na principu veinskog glasanja.
Osnovni princip trostruke modularne redundanse (Triple Modular Redundancy -
TMR), kao i to se vidi sa slike 2.14, je utrostruavanje hardvera i primena veinskog glasanja
pri odreivanju izlaza sistema. Ako se jedan modul pokvari, dva preostala ispravna modula,
pri veinskom glasanju, maskiraju rezultate neispravnog modula.
Osnovni problem sa TMR-om je glasa; ako glasa otkae, ceo sistem e otkazati. Drugim
reima, pouzdanost najjednostavnijeg oblika TMR-a nije bolja od pouzdanosti glasaa. Bilo

21
Projektovanje kombinacionih i sekvencijalnih mrea sa samoproverom na osnovu VHDL opisa

koja pojedinana komponenta unutar sistema iji otkaz dovodi do otkaza sistema zove se
jedinstvena taka otkaza, ili singularitet.

Slika 2.14. Model pasivne hardverske redundanse sa tri istovetna modula i jednim glasa em

Nekoliko tehnika se moe upotrebiti za prevazilaenje efekta otkaza glasaa. Jedna od


njih, prikazana na slici 2.15, je utrostruavanje samog glasaa i obezbeivanje tri nezavisna
izlaza. (Pretpostavka je da se tri izlaza vode na tri ulaza podsistema koji takoe koristi
trostruku modularnu redundansu.)

Slika 2.15. Model prevazilaenja jedinstvene take otkaza korienjem


tri nezavisna glasaa i tri izlaza

N-Modularna redundansa (N-Modular Redundancy - NMR) predstavlja generalizaciju


TMR-a. NMR koristi iste principe kao i TMR, ali koristi N modula. U veini sluajeva, N je
izabrano kao neki neparan broj tako da se mogu primeniti principi veinskog glasanja.
Prednost korienja N modula umesto samo tri je da se moe tolerisati kvar vie od jednog
modula.
Sam proces glasanja ukljuuje nekoliko proceduralnih problema. Prvi je odluivanje da li
e biti iskorien hardverski glasa, ili e proces glasanja biti realizovan u softveru. Drugi
problem sa praktinom realizacijom glasanja je taj da se, na primer, tri rezultata u TMR
sistemu ne slau u potpunosti, ak i u sluaju kada ne postoji kvar. Drugim reima, veinski
glasa moe utvrditi da ne postoje dva rezultata koja se slau u TMR sistemu, iako sistem radi
ispravno.
Jedan od pristupa koji ublaava problem neslaganja rezultata je tehnika selekcije srednje
vrednosti. U osnovi, tehnika selekcije srednje vrednosti, od tri ponuene vrednosti u TMR
sistemu bira onu koja se nalazi izmeu preostale dve.
Sledei pristup koji se obino koristi kada se binarne vrednosti ne slau u potpunosti je da
se ignoriu bitovi najmanje teine. Drugim reima, veinsko glasanje se izvodi sa k bitova

22
2. Pouzdani sistemi

najvee teine. Broj bitova koji se ignoriu zavisi od aplikacije i funkcija je tanosti
upotrebljenih komponenti [John89].
Aktivne ili dinamike tehnike postiu osobinu otpornosti na defekte detektovanjem
postojanja defekta i izvoenjem akcija uklanjanja (ili izolovanja) pokvarenog hardvera iz
sistema, odnosno rekonfiguracijom sistema. Aktivna hardverska redundansa koristi detekciju
defekta, lokaciju defekta, i sanaciju defekta u cilju postizanja tolerancije na defekte. Aktivna
hardverska redundansa ne poseduje osobinu maskiranja defekta i primenjuje se kod sistema
koji mogu tolerisati privremene, pogrene rezultate, pod uslovom da se sistem rekonfigurie i
povrati svoj operativni status u zadovoljavajuem vremenu.
Osnovni princip udvostruavanja sa poreenjem, prikazan na slici 2.16, je ugraditi dva
identina hardverska modula, pustiti ih da u paraleli rade ista izraunavanja, i zatim uporediti
njihove rezultate. U sluaju neslaganja, generie se signal greke. U svom najosnovnijem
obliku, princip udvostruavanja moe samo detektovati postojanje kvara, a ne i tolerisati ga,
jer ne postoji nain za odreivanje koji od dva modula je u kvaru.

Slika 2.16. Model aktivne hardverske redundanse, gde se posle paralelne obrade rezultati
uporeuju

Opisani metod aktivne redundanse poseduje nekoliko potencijalnih problema. Naime,


otkaz ulaznog ureaja ili linija preko kojih ulazni signali moraju biti preneseni do modula
rezultovae time da oba modula proizvedu isti, pogrean rezultat. Konano, kvarovi u
komparatoru mogu prouzrokovati signal greke iako greka ne postoji, ili, jo gore,
komparator se moe pokvariti tako da eventualni kvar u modulima ne bude detektovan.
Za prevazilaenje pomenutih problema mogu se primeniti mnoge metode. Po jednoj od
njih, neophodna poreenja mogu se realizovati softverski, pomou dva procesora. Po drugoj
metodi, jedan modul je operativan, a jedan ili vie modula slue kao rezerva. Ako je defekt
detektovan i lociran, pokvareni modul se uklanja iz sistema i zamenjuje se rezervnim. Ova
metoda moe vratiti sistemu punu operativnu sposobnost posle pojave kvara, ali izaziva
trenutno naruavanje performansi dok se izvodi rekonfiguracija. Ako ovo naruavanje rada
mora biti minimizirano, primenjuje se vrua spremna rezerva. Naime, kod ove tehnike,
rezervni moduli rade sinhrono sa aktivnim modulima, i spremni su da preuzmu sistem bilo
kada. Nasuprot ovome, imamo hladnu spremnu rezervu kod koje su rezervni moduli
neaktivni, sve dok se ne javi potreba da zamene pokvareni modul. Nedostatak hladne
spremne rezerve je vreme koje je potrebno da se modul prikljui na napajanje i da se uvede u
aktivan rad. Prednost je da rezervni moduli nisu prikljueni na napajanje, a time i ne troe
energiju, sve dok se ne javi potreba za zamenom pokvarenog modula.
Kljuna komponenta opisanog pristupa je nain na koji se detektuje greka i locira
neispravni modul. Dve tehnike koje se mogu koristiti za ovu namenu bie opisane u nastavku.

23
Projektovanje kombinacionih i sekvencijalnih mrea sa samoproverom na osnovu VHDL opisa

Par i rezerva tehnika koristi prednosti i spremne rezerve i udvostruavanja sa


poreenjem. U osnovi, par i rezerva tehnika koristi spremnu rezervu, ali tako da uvek dva
modula rade u paraleli sve vreme, i njihovi rezultati se uporeuju u cilju detekcije greke.
Signal greke iz komparatora je upotrebljen da inicira proces rekonfiguracije koji uklanja
pokvarene module i zamenjuje ih rezervnim. Treba napomenuti da se, iako je pokvaren jedan
modul, iz sistema odstranjuje i njegov par, prvenstveno zbog nemogunosti detekcije koji je
od njih u kvaru.
Oblik aktivne hardverske redundanse koji je veoma koristan za detekciju kvarova u
sistemu je watchdog tajmer. Princip watchdog tajmera je da je izostanak neke akcije
indikator kvara. Watchdog tajmer je tajmer koji se mora periodino resetovati. Osnovna je
pretpostavka da je sistem ispravan ako je sposoban da periodino izvrava ovu jednostavnu
funkciju. Watchdog tajmer se moe primeniti za detekciju kvarova i u hardveru i u softveru
sistema [Mahm88].
Hibridna tehnika koristi dobre osobine pasivnog i aktivnog prilaza. Maskiranje kvara se
koristi u hibridnim sistemima da sprei generisanje pogrenih rezultata. Onda kada maskiranje
nije vie u stanju da obezbedi ispravan rad sistema, primenjuje se neka aktivna tehnika kako
bi se kvar locirao i sanirao zamenom pokvarenog hardvera rezervnim.
U osnovi, hibridna hardverska redundansa koristi dobre osobine i pasivne i aktivne
hardverske redundanse. Maskiranje kvara se koristi da sprei sistem da proizvede pogrene
rezultate, a detekcija, lokacija i sanacija kvara koriste se za rekonfiguraciju sistema u sluaju
pojave kvara.
Princip NMR sa rezervama je obezbediti konfiguraciju od N modula ukljuenih u
glasanje, ili neku drugu vrstu glasanja. Glasanje obezbeuje maskiranje pokvarenog modula
za vreme dok se pokvareni modul ne zameni rezervnim. U poreenju sa pasivnom NMR
tehnikom, NMR tehnika u kombinaciji sa rezervama zahteva manji broj modula za
ostvarivanje istog nivoa pouzdanosti.
Osnovni princip redundanse sa samoizbacivanjem slian je principu koji imamo kod
NMR-a sa rezervama. Razlika je u tome to kod tehnike samoizbacivanja sve jedinice aktivno
uestvuju u radu sistema, dok kod NMR-a rezervne jedinice nisu aktivne sve dok se ne pojavi
kvar. Svaki od N identinih modula je napravljen sa sposobnou da ukloni sebe iz sistema u
sluaju da se njegov izlaz razlikuje od izglasanog izlaza sistema.
Redundansa sa prosejavanjem modula je tehnika koja takoe koristi N identinih
modula koji su povezani u sistem korienjem specijalnih blokova: komparator, detektor i
kolektor. Uloga komparatora je da uporeuje izlaz svakog od modula sa izlazima preostalih
modula, i pri tome proizvodi po jedan signal za svako poreenje koje je izvrio. Signal koji
generie komparator je 1 ako se dve poreene jedinice ne slau, a 0 u suprutnom sluaju.
Uloga detektora je da odredi koja neslaganja je komparator prijavio, i da onesposobi jedinicu
koja se ne slae sa veinom preostalih modula. Detektor proizvodi po jedan signal za svaki
modul, i vrednost tog signala je 1 ako se dati modul ne slae sa veinom preostalih modula, i
0 u suprutnom. Uloga kolektora je da proizvede izlaz sistema, koristei pri tome izlaze
pojedinanih modula i signale iz detektora koji indiciraju koji je od modula pokvaren. Modulu
koji je identifikovan kao pokvaren nije dozvoljeno da utie na izlaz sistema.
Tehnika utrostrueno-dvostruka arhitektura kombinuje udvostruavanje sa poreenjem
i trostruku modularnu redundansu. Po dva modula rade u tandemu. Komparator pridruen
paru modula poredi njihove rezultate i iskljuuje tandem iz sistema ukoliko ustanovi

24
2. Pouzdani sistemi

neslaganje. Upotreba TMR-a dozvoljava maskiranje kvara, i neprekidan, pravilan rad sa


jednim neispravnim modulom [John89].

2.3.2. Informaciona redundansa


Poznato je da digitalni sistemi koriste podatke predstavljene u obliku grupe bitova, koji se
nazivaju informacioni bitovi. Poto u toku obrade i memorisanja informacije moe doi do
greke u sistemu, neophodna je neka mera za detekciju pogrenih bitova. Takoe, moe se
javiti potreba za korekcijom greaka u cilju uspostavljanja normalnog rada sistema. Da bi se
ostvarili ovi zahtevi, odnosno da bi se obezbedila pouzdanost i integritet podataka,
informacionim bitovima pridruuju se redundantni bitovi za detekciju i/ili korekciju greke.
Informaciona redundansa predstavlja dodavanje redundantnih informacija podacima sa
ciljem da se omogui detekcija kvara, maskiranje kvara, ili ak tolerancija kvara. Dobri
primeri informacione redundanse su kodovi za detekciju, kao i kodovi za korekciju greaka,
koji se formiraju dodavanjem redudantnih informacija reima, ili prevoenjem rei u neki
novi oblik koji sadri redundante informacije. Detaljan pregled kodova za detekciju greaka
dat je u Poglavlju 3.

2.3.3. Vremenska redundansa


Vremenska redundansa koristi dodatno vreme za izvravanje funkcija sistema tako da se
moe postii detekcija defekta, a esto i tolerancija defekta. Metodi vremenske redundanse
nastoje da smanje koliinu dodatnog hardvera po cenu korienja dodatnog vremena. U
mnogim aplikacijama vreme je od znatno manje vanosti od hardvera, zato to je hardver
fiziki entitet koji znaajno utie na teinu, veliinu, potronju snage, i cenu.
Osnovni princip vremenske redundanse je, korienjem istog hardvera i istih ulaza,
izvravati ista izraunavanja u dva ili vie vremenskih trenutaka i uporeivati rezultate u cilju
odrejivanja eventualnog neslaganja, kao to je prikazano na slici 2.17. Ako se detektuje
greka, izraunavanje se moe ponoviti kako bi se videlo da li neslaganje ostaje, ili nestaje.
Ovakav pristup je dobar za detekciju greaka nastalih usled nekog prolaznog, tzv.
tranzijentnog defekta, ali se ne moe iskoristiti za detekciju greaka nastalih usled nekog
stalnog defekta.
Vremenska redundansa ima mogunost da, pored tranzijentnih, detekcije i permanentne,
nepromenljive defekte, uz korienje minimuma dodatnog hardvera. Znaajna su etiri
pristupa [John89]:
- naizmenina logika,
- ponovno izraunavanje sa pomerenim operandima (REcomputing with Shifted
Operands RESO),
- ponovno izraunavanje sa preokrenutim operandima (REcomputing with SWapped
Operands - RESWO), i
- ponovno izraunavanje koje koristi udvostruavanje sa poreenjem (REcomputing
with Duplication With Comparasion REDWC).

25
Projektovanje kombinacionih i sekvencijalnih mrea sa samoproverom na osnovu VHDL opisa

Slika 2.17. Osnovni princip vremenske redundanse

Osnovni princip svih ovih prilaza je isti, a jedina razlika je u izvoenju drugog
izraunavanja. Za vreme prvog izraunavanja ili prenosa podataka, operandi se koriste onakvi
kakvi oni stvarno jesu, a rezultati se smetaju u neki registar. Neposredno pre drugog
izraunavanja ili prenosa, operandi se kodiraju korienjem funkcije kodiranja, e. Nakon sto
su izvrene operacije sa kodiranim podacima, rezultati se dekodiraju, i onda porede sa
rezultatima dobijenim tokom prvog izraunavanja. Izbor kodirajue funkcije je uraen tako da
omogui detekciju defekata u hardveru. Metod naizmenine logike kao funkciju kodiranja
koristi komplement operatora. RESO kao funkciju kodiranja koristi aritmetiko pomeranje,
RESWO koristi funkciju rotiranja za kodiranje operanada, a REDWC je varijacija RESWO-a.
U nastavku e biti opisana tehnika naizmenine logike.
Princip naizmenine logike se primenjuje u prenosu digitalnih podataka preko ianih
medija i u detekciji kvarova u digitalnim kolima. Pretpostavimo da elimo da detektujemo
greke u podacima koji se prenose putem paralelne magistrale pomou vremenske
redundanse. U trenutku t 0 poslali smo originalni podatak, a u trenutku t 0 + aljemo
komplement podatka. Ako je, recimo, neka linija magistrale permanentno postavljena bilo na
1 ili na 0, dve verzije podataka koje smo primili nee biti komplementi jedna druge, tako da se
detektuje kvar. U sutini, ako korienjem ovog prilaza aljemo neku sekvencu informacija,
svaka bitska linija, u sluaju da je prenos bez greaka, naizmenino e menjati svoju vrednost
izmeu logike 1 i logike 0. Otuda i potie naziv naizmenina logika.

2.3.4. Softverska redundansa


Softverska redundansa predstavlja dodavanje softvera, pored onog neophodnog za
obavljanje zadatih funkcija, a u cilju detekcije i tolerancije defekata. U aplikacijama koje
koriste raunare, mnoge tehnike za detekciju i toleranciju defekata mogu biti implementirane
u softveru. Redundantni softver se moe realizovati u vie oblika, i nije potrebno replicirati
celokupne programe da bi dobili redudantni softver. Softverska redundansa se moe
realizovati kao nekoliko dodatnih linija naredbi koje se koriste za proveru amplitude signala,
ili kao mala programska procedura koja se koristi za periodino testiranje memorije
upisivanjem i itanjem sa odreenih lokacija.
Postoje tri glavne tehnike softverske redundanse: kontrola doslednosti, kontrola
sposobnosti, i metoda replikacije softvera.

26
2. Pouzdani sistemi

Kontrola doslednosti koristi a priori znanje o karakteristikama neke informacije da bi


verifikovala ispravnost date informacije. Na primer, u nekim aplikacijama unapred je poznato
da digitalna veliina nikad ne bi smela dostii odreenu vrednost. Ako signal ipak dostigne tu
vrednost, prisutna je neka vrsta greke.
Kontrola sposobnosti se primenjuje da bi potvrdili da sistem poseduje oekivane
performanse. Postoji nekoliko formi provere sposobnosti. Prva je prosto testiranje memorije.
Sledei oblik provere sposobnosti odnosi se na testiranje ALU jedinice. I trei oblik kontrole
sposobnosti sastoji se od verifikacije sposobnosti svih procesora u sistemu da meusobno
komuniciraju.
N-verziono programiranje je razvijeno u cilju omoguavanja detekcije odreenih
projektantskih propusta u softveru. Osnovni princip N-verzionog programiranja je
projektovati i programirati softverski modul N puta i onda uporediti N rezultata dobijenih sa
ovih softverskih modula. Svaki od N modula projektuje i programira posebna grupa
programera. Svaka grupa projektuje softver na osnovu istih specifikacija tako da svaki od N
modula izvrava iste funkcije. Ovo je uraeno sa nadom da N nezavisnih projektantskih grupa
nee nainiti iste greke.

2.4. Oblasti primene sistema otpornih na defekte

Postojee primene sistema otpornih na defekte mogu se kategorizovati u etiri primarne


oblasti: aplikacije sa dugim vremenom ivota, aplikacije sa kritinim izraunavanjima,
aplikacije sa odloenim odravanjem, i aplikacije visoke dostupnosti.
Primeri aplikacija sa dugim vremenom ivota su svemirske letelice i sateliti bez ljudske
posade. Osnovni zahtev koji se postavlja za ovakve aplikacije je da verovatnoa njihove
operativnosti bude 0.95 i nakon perioda od deset godina. Ovoj kategoriji pripadaju sistemi
koji dui vremenski period moraju raditi samostalno, bez mogunosti direktne intervencije
radi popravke eventualnog kvara, odnosno defekta, te stoga treba da postoje ugraeni
mehanizmi koji e omoguiti da u sluaju pojave kvara, sistem samostalno preuzme
odgovarajue aktivnosti kako bi se spreio otkaz.
Najira primena sistema otpornih na defekte su izraunavanja kritina za ljudsku
bezbednost, ouvanje okoline, ili zatitu opreme. Primeri ukljuuju sisteme za kontrolu leta
aviona, vojne sisteme, i odreene tipove industrijskih kontrolera. U aplikacijama sa
kritinim izraunavanjima neispravan rad sistema bi skoro sigurno doveo do katastrofalnih
posledica. Tipian zahtev koji se postavlja pred ovakve sisteme je da imaju pouzdanost od
0.9 7 na kraju troasovnog perioda. Glavni cilj u skoro svim aplikacijama sa kritinim
izraunavanjima je spreiti da elektronika bude "slaba taka" u sistemu.
Aplikacije sa odloenim odravanjem najee se javljaju u sluajevima kada su
operacije odravanja (servisiranja) ekstremno skupe, neprikladne, ili teke za izvoenje.
Osnovni cilj je koristiti toleranciju otkaza da bi se omoguilo odlaganje servisiranja do
prikladnijeg i ekonominijeg vremena. Osoblje odravanja moe obilaziti lokaciju meseno i
vriti neophodne popravke. Izmeu ovih servisnih obilazaka, sistem koristi toleranciju otkaza
za neprekidno izvravanje svojih zadataka.
Primeri aplikacija sa visokom dostupnou su bankarski i drugi sistemi zasnovani na on-
line opsluivanju korisnika. Korisnici ovakvih sistema, nakon to su zatraili uslugu oekuju
veliku verovatnou da budu opslueni.

27
Projektovanje kombinacionih i sekvencijalnih mrea sa samoproverom na osnovu VHDL opisa

28
3. Konkurentna detekcija greke

3. Konkurentna detekcija greke

Kao to je reeno u prethodnom poglavlju, tehnolokim napretkom drastino je poveana


kompleksnost integrisanih sistema u toku poslednje dve dekade, i ovaj trend e se verovatno
nastaviti. Posledica toga je sve vea osetljivost sistema na permanentne i tranzijentne defekte,
odnosno negativan uticaj na pouzdanost sistema. Zbog sve vee potrebe za odravanjem i
obnavljanjem nedovoljno pouzdanih sistema neophodno je projektovati ih tako da imaju
mogunost otkrivanja permanentnih i tranzijentnih defekata.
Detekcija greke, koja nastaje kao posledica defekta, neophodan je prvi korak u cilju
dobijanja visoko pouzdanih sistemima. Testiranje kola je klasian nain detekcije greke.
Meutim, testiranje nije dovoljan uslov za veinu VLSI kola od kojih se zahteva visoka
pouzdanost i lako odravanje. Malo je verovatno da se testiranjem detektuje prisustvo
tranzijentnih defekata koji su, kao to je poznato, najei uzrok otkaza.
Za detekciju defekta u toku rada sistema, koji ine kritine ili standardne aplikacije,
najee se koristi on-line testiranje. Cilj on-line testiranja je da detektuje efekte defekta, ili
greke, i da preduzme odgovarajue postupke korekcije. Na primer, u nekim kritinim
aplikacijama sistem se iskljuuje nakon detektovanja greke. U drugim aplikacijama,
detekcija greke aktivira mehanizam rekonfiguracije koji omoguava da sistem nastavi sa
radom, uz moguu degradaciju performansi.

3.1. On-line testiranje

Testiranje predstavlja obavezan, zavrni korak u procesu fabrikacije integrisanih kola i


obavlja se u cilju razdvajanja ispravnih od neispravnih jedinica. Ovakav nain testiranja, tzv.
off-line testiranje, zahteva specifinu opremu koja se koristi za generisanje stimulusa, u obliku
testnih vektora, i analizu odziva kola koje se testira. Meutim, tradicionalna strategija off-line
testiranja ne moe da detektuje permanente defekte koji se javljaju u toku eksploatacije kola,
kao ni tranzijentne defekte. Iz tog razloga, u novije vreme, VLSI kola se projektuju tako da
poseduju ugraene mehanizme za on-line detekciju greke [Lala01].
On-line testiranje moe da se predstavi kao oblik eksternog ili internog praenja i
proveravanja kola korienjem hardvera ili softvera. Interno praenje drugaije se naziva
samotestiranje (self-testing), a potreban hardver ili softver nalazi se na istom ipu (IC-u) kao i
kolo koje se testira.
U cilju projektovanja razliitih ema on-line testiranja neophodno je razmotriti sledee
primarne parametre [AlAs98]:
- pokrivanje greke (error coverage) predstavlja deo modelovanih greaka koje su
detektovane, a izraava se u procentima,
- latencija greke (error latency) vremenska razlika izmeu trenutka kada greka postaje
aktivna i trenutka detekcije te greke,
- redundansa (redundancy) hardverska i vremenska (poveanje povrine i kanjenja).
Za otkrivanje svih ranije opisanih tipova defekata projektanti koriste dva razliita naina
on-line testiranja: konkurentno i nekonkurentno. Kokurentno testiranje vri se u toku

29
Projektovanje kombinacionih i sekvencijalnih mrea sa samoproverom na osnovu VHDL opisa

normalnog rada sistema, dok se za nekonkurentno testiranja rad sistema privremeno


zaustavlja. Oba naina testiranja imaju za cilj da omogue sveobuhvatno on-line testiranje uz
prihvatljivu cenu. Na slici 3.1 prikazana je podela tehnika on-line testiranja [AlAs98].

Slika 3.1. Taksonomija metoda on-line testiranja

Nekonkurentno testiranje aktivira se periodino u unapred odreenim vremenskim


trenucima, ili se javlja kao posledica nekog dogaaja. Ovaj nain testiranja karakterie mala
prostorna i vremenska redundansa. Cilj nekonkurentnog testiranja je detekcija permanentnih
defekata. S obzirom da hardver ine razliite komponente, na svaku od njih se primenjuje
karakteristian test. Nekonkurentnim testiranjem ne mogu se detektovati povremeni i
tranzijentni defekti zato to njihovi efekti vrlo brzo nestaju. Alternativa periodinom testiranju
(kao to su, na primer, scan metode [Blee93]) je konkurentna detekcija greke u toku rada
kola ili sistema.
Konkurentno testiranje kontinualno proverava da li u kolu postoji greka nastala usled
povremenih i tranzijentnih defekata. Osnovni nain konkurentnog testiranja, posebno za
detekciju greaka u upravljakim kolima, je watchdog tajmer ("pas-uvar" tajmer). To je
broja koga sistem resetuje u odreenim intervalima da bi se utvrdila njegova ispravnost.
Kljuni element konkurentnog testiranja za greke u podacima je redundansa. Ovaj nain
testiranja obuhvata sva tri oblika redundanse, hardversku, informacionu i vremensku
[AlAs98].

3.2. Principi konkurentne detekcije greke

Konkurentna detekcija greke namenjena je detekciji greke odmah nakon njenog


pojavljivanja, odnosno nakon otkaza sistema, pa prema tome, ima mogunost detekcije
permanentnih i tranzijentnih defekata.
Tehnike za konkurentnu detekciju greke koje se koriste u digitalnim sistemima mogu se
podeliti u sledee dve klase: a) tehnike na nivou kola; i b) tehnike na nivou sistema
[Mahm88].
Korienje kodova za detekciju dvostrukih i korekciju jednostrukih greaka u
memorijama, korienje kodova parnosti na magistralama podataka, zatim kodova ostatka,
Bergerovih kodova, Bose-Lin-ovih kodova i m-od-n kodova u aritmetikim i sekvencijalnim
kolima, primeri su tehnike za detekciju greke na nivou kola.
Adresiranje zasnovano na pripadnosti adrese nekom skupu, watchdog tajmeri, struktura
podataka koja je otporna na defekte, korienje repliciranja, kao to je FTMP (Fault Tollerant

30
3. Konkurentna detekcija greke

Multiprocessor) i SIFT (Software Implemented Fault Tollerant), i N-verziono programiranje


(N-version programming) su neki od primera tehnike za detekciju greke na nivou sistema.
Alternativno, konkurentna detekcija greke naziva se on-line ili implicitna detekcija
greke.

3.3. Principi samoprovere i kodovi za detekciju greke

Digitalno kolo (interna jedinica u ipu, ip, ploa, sistem) ima mogunost samoprovere
(self-checking), ako je u stanju da autonomno (bez korienja spoljanjih test signala)
detektuje interni defekt, odmah nakon njegovog pojavljivanja. Opti princip samoprovere
ilustrovan je modelom sa slike 3.2. Funkcionalni modul realizuje glavnu funkciju kola tako
to transformie ulaznu re X u izlazu re Y=f(X). Pri tome, funkcionalni modul je tako
projektovan da sve rei, koje se mogu pojaviti na njegovom izlazu, zadovoljaju neku
specifinu osobinu. Modul za proveru, neprekidno nadgleda izlaz funkcionalnog modula i
signalizira pojavu rei koja ne poseduje traenu osobinu. Odsustvo traene osobine moe biti
posledica jedino poremeene funkcije funkcionalnog modula usled pojave internog defekta.
Osobina koju poseduju izrazne rei ispravnog funkcionalnog modula zove se kd. Indikacija
greke na izlazu modula za proveru, usled pojave defekta, moe da se iskoristi za iniciranje
automatskog obnavljanja ili rekonfiguracije, ili za jednostavno zaustavljanje sistema.

Slika 3.2. Opta struktura kola sa samoproverom

S obizirom da izlazi funkcionalnog modula moraju zadovoljiti specifinu osobinu,


neminovno je uvoenje informacione redundanse, odnosno upotreba veeg broja izlaznih
linija od minimalnog koji je potreban za predstavljanje rezultata funkcije f(X). Informaciona
redundansa podrazumeva dodavanje informacija podatku, ili prevoenje podatka u neki novi
oblik koji sadri redundante informacije. Generalno, svaki podatak moe se predstaviti nizom
bitova koji mogu, ili ne moraju, imati odreenu osobinu. Zato emo u daljem tekstu definisati
neke bitne pojmove, vezane za predstavljanje podataka.
Kd (code) je nain predstavljanja informacija, ili podataka, korienjem unapred
definisanog skupa pravila.
Kodna re (code word) je skup simbola koji su iskorieni za predstavljanje odreenog
dela podatka na osnovu definisanog koda. Na primer, binarni kd je onaj u kome se simboli
za formiranje kodnih rei sastoje samo od bitova 0 i 1. Svaki n-bitni kd moe da se posmatra
kao podskup svih moguih n-bitnih nizova. Nizovi koji pripadaju ovom podskupu
predstavljaju kodne rei, dok ostali nizovi predstavljaju nekodne rei.
Kodiranje (encoding) je proces odreivanja odgovarajue kodne rei za zadati podatak.
Drugim reima, proces kodiranja uzima originalni podatak i konvertuje ga u kodnu re
koristei pravila koda.

31
Projektovanje kombinacionih i sekvencijalnih mrea sa samoproverom na osnovu VHDL opisa

Dekodiranje (decoding) je proces ekstrahovanja originalnog podatka iz kodne rei.


Drugim reima, proces dekodiranja, na osnovu kodne rei, odreuje podatak koji ona
predstavlja.
Kd za detekciju greke je specifina prezentacija simbola koja omoguava detekciju
greaka unutar kodne rei. Ovakav kd ima osobinu da neki tipovi greaka menjaju kodnu re
u nekodnu re.
Kd za korekciju greaka predstavlja kd koji ima sposobnost da ispravlja greke.
Ovakvi kodovi se obino opisuju brojem bitskih greaka koje mogu ispraviti.
Stopa koda (code rate) predstavlja odnos broja informacionih bitova (simbola) i ukupnog
broja bitova u kodnoj rei. Tako e na primer binarni kd od n bitova, dobijen kodovanjem
( )
informacionih bitova duine k , imati 2 k validnih kodnih rei, 2 n - 2 k nevalidnih, tj.
k
nekodnih rei, i stopu koda k n . Skup od 2 validnih kodnih rei naziva se blokovski kd
(block code).
Primarni zahtevi koda su sledei [Lala01]:
1. Detekcija svih moguih greaka uzroci greaka su povremeni i stalni defekti unutar
sistema, a mogu se definisati kao razlika izmeu podatka koji se prenosi kroz sistem i
podatka koji se dobija na njegovom izlazu.
2. Mogunost postizanja eljenog stepena detekcije greke uz korienje minimalne
redundanse.
3. Jednostavan i brz proces kodiranja i dekodiranja, tj. odgovarajui hardver nije
kompleksan.
Kodovi se mogu podeliti na izdvojive i neizdvojive. Kod izdvojivog kda, u cilju
formiranja kodne rei, originalnom podatku je pridruena nova informacija, omoguavajui
pri tome da se proces dekodiranja sastoji od jednostavnog uklanjanja dodatne informacije i
zadravanja originalnog podatka. S druge strane, neizdvojivi kodovi ne poseduju mogunost
razdvajanja, i samim tim zahtevaju sloenije procedure dekodiranja. Zbog toga izdvojivi
kodovi nalaze iru primenu [Lala01].
Izdvojiv kd koji ima k informacionih bitova naziva se sistematski kd ako se u kodnim
reima pojavljuju svih 2 k kombinacija informacionih bitova. Ako pretpostavimo da
informacioni simbol ima k bitova, broj dodatnih bitova za proveru r , i da kodna re ima
n = k + r bitova, onda se razlika izmeu sistematskog i izdvojivog koda moe definisati na
sledei nain [JhaN93]:
Definicija 1: Skup binarnih n-torki, C, naziva se sistematski kd ako: 1) sadri 2 k n-torki,
1 k n ; i 2) C = { x x = IS x CS x , gde je IS x = k i CS x = r , i svaka od 2 k kombinacija
informacionih simbola predstavlja deo neke kodne rei }.
Definicija 2: Skup binarnih n-torki, C, naziva se izdvojiv kd ako 1) sadri s < 2 k n-torki,
1 k n , i 2) C = { x x = IS x CS x , gde je IS x = k i CS x = r , i svakai od s kombinacija
informacionih simbola predstavlja deo neke kodne rei }.
Kodovi za detekciju i korekciju greaka su dobri primeri informacione redundanse koja
zahteva i ugradnju dodatnog hardvera. Na funkcije prenosa i memorisanja podataka mogu se
primeniti odreeni naini kodiranja, dok se na funkcije manipulisanja sa podacima kao to su
sabiranje, pomeranje i logike operacije mora primeniti drugaije kodiranje. Meutim, nije
pogodno imati razliite tipove kodiranja podataka unutar istog raunarskog sistema. Zato su

32
3. Konkurentna detekcija greke

za funkcije kao to su aritmetike operacije predloene metode za predvianje parnosti koje


dozvoljavaju da se isti kodovi parnosti koriste u toku memorijskih i aritmetikih operacija.
Tehnike za projektovanje kola sa mogunou samoprovere nisu univerzalne jer zavise od
specifinosti primenjenog tipa kodiranja podataka. U daljem tekstu bie obraeni neki od
najee korienih kodova.

3.3.1. Kd parnosti
Najjednostavniji oblik izdvojivog koda je kd parnosti. Osnovni princip parnosti je
veoma jednostavan, ali su mogue i brojne varijacije osnovne ideje. Jednobitni kd parnosti
nastaje tako to se binarnom podatku dodaje jedan bit, koji ima vrednost 0 ili 1 u zavisnosti od
toga da li je broj jedinica meu informacionim bitovima paran ili neparan, odnosno da li se
eli parna ili neparna parnost. Ako se binarni oblik kodne rei predstavi kao
a = (an1an2 ...a0 ac ) , gde an1 , an2 , ..., a0 predstavljaju informacione bitove, a ac bit provere
(check bit), onda je:
1) ac = an1 an2 ... a0 , za sluaj da se koristi parna parnost i da je ukupan broj
jedinica u kodnoj rei paran (neparan),
2) ac = an 1 a n2 ... a0 1 , ako se koristi neparna parnost i ako je ukupan broj
jedinica u kodnoj rei paran (neparan).
Iako su matematiki ekvivalentne, preferira se neparna parnost zato to obezbeuje
najmanje jednu jedinicu u kodnoj rei. Kodiranje ovakvim kodom je brzo i jednostavno jer
zahteva jedino stablo EXOR gejtova. Nedostatak ovog koda ogleda se u tome to se bitom
parnosti moe detektovati samo neparan broj greaka.
Najea primena kodova parnosti je u memorijama raunarskih sistema. Pre nego to se
upie u memoriju, podatak se kodira. Kodiranje se sastoji u dodavanju jednog bita sa ciljem
da rezultujua re ima, na primer, paran broj jedinica. Kada se potom podatak ita iz
memorije, parnost se mora proveriti da bi se verifikovalo da li se, kao posledica neke greke,
promenila ili nije.
ema za konkurentnu detekciju greke, u najveem broju sluajeva, zasniva se na
generisanju bita parnosti za dati izlaz. Na osnovu jednog bita parnosti, dobijenog na osnovu
kombinacije bitova na izlazu, ne mogu se detektovati sve greke u vienivovskom kolu.
Razlog za to je injenica da meu razliitim izlazima postoji podela zajednikih lanova, tj.
razliiti izlazi koriste iste gejtove. U tom sluaju, u bitu parnosti moe da bude maskiran
uticaj defekta. Na slici 3.3 prikazan je uticaj jednog defekta na vie izlaza to moe dovesti do
njegovog maskiranja [DeK94].

Slika 3.3. Defekt koji se ne moe detektovati jednim bitom parnosti

Mogunost detekcije greke na osnovu bita parnosti moe se proiriti uvoenjem bita
parnosti za odreene grupe informacionih bitova (na primer za svaki bajt). Pri tome se

33
Projektovanje kombinacionih i sekvencijalnih mrea sa samoproverom na osnovu VHDL opisa

odreenoj grupi izlaznih bitova dodaje po jedan bit za proveru, koji predstavlja njihovu
parnost. Svaka grupa izlaznih bitova, koja se proverava jednim bitom, naziva se grupa
parnosti (parity group). Ako dva izlaza pripadaju istoj grupi parnosti onda ne bi trebali da
dele istu logiku. Na osnovu pripadnosti izlaznih bitova jednoj ili veem broju grupa parnosti
mogu se izdvojiti dve tehnike [Zeng99]:
1) Tehnika sa jednom grupom parnosti (single parity group) - svi izlazi pripadaju istoj
grupi parnosti i svaki izlaz se sintetie nezavisno, tako da razliiti izlazi nee deliti istu logiku
(slika 3.4a)).
2) Tehnika viestruke grupe parnosti (multiple parity group) - izlazi su podeljeni u
nekoliko razliitih grupa parnosti, a korienje iste logike dozvoljeno je samo meu izlazima
koji pripadaju razliitim grupama parnosti (slika 3.4b)).

a) b)
Slika 3.4. Tehnike grupe parnosti: a) jednostruka i b) viestruka

Ilustracije radi, moemo rei da kod tehnike sa jednim bitom za proveru postoji samo
jedna grupa parnosti koja sadri sve izlaze, dok u sluaju dupliciranja kola sa n izlaza postoji
n grupa parnosti i svaka sadri samo jedan od izlaza [Toub97], [Prad80].
U radu [DeK94] predloena je ema za konkurentnu detekciju greke zasnovana na
korienju koda parnosti, ali i na podeli izlaznih bitova u logike blokove pri emu nije
dozvoljeno da razliiti blokovi koriste ista logika kola. Ako je k broj izlaza logikog bloka
koji ima najvie izlaza onda je iskoriena k-grupa parnosti, odnosno grupa parnosti koja
proverava k izlaznih bitova jednim bitom parnosti. Sekvenca izlaznih signala podeljena je u
razliite grupe na takav nain da svaka grupa parnosti sadri ne vie od jednog izlaza iz
svakog logikog bloka. Zatim su, za svaku od k grupa parnosti, na osnovu bita parnosti,
izraunate funkcije za proveru koje zatim formiraju drugi logiki blok. Izlazi jednog bloka
mogu meusobno da dele istu logiku, ali nije dozvoljena podela logike izmeu dva izlaza koji
pripadaju razliitim blokovima. S obzirom da nema logike podele izmeu blokova, greka
nastala postavljanjem unutranje veze na odreenu vrednost moe da utie samo na izlaze
jednog logikog bloka. Poto svaki od izlaza jednog logikog bloka pripada razliitim
grupama parnosti i, prema tome, proverava se od strane razliitih bitova parnosti, greka ne
moe da bude maskirana, to znai da e biti detektovana. S druge strane, implementacija ove
tehnike zahteva relativno kompleksan hardver i utie na smanjenje brzine sistema.
Kombinacija parne i neparne parnosti za grupe bitova moe pojednostaviti detekciju stanja
sve nule ili sve jedinice. Primena ovakve eme zasniva se na deljenju informacionih bitova na
nekoliko blokova pri emu se svaki bit pojavljuje u okviru nekoliko blokova, a bit parnosti se
izraunava za svaki od blokova, pojedinano. Ovakav nain preklapanja bitova parnosti ne
samo da detektuje greke na veem broju bitova, ve omoguava da se greka na jednom bitu
detektuje i locira [YenM87], [Lala01].

34
3. Konkurentna detekcija greke

3.3.2. Kodovi za detekciju viestrukih greaka


Razne vrste defekata u VLSI kolima mogu prouzrokovati razliite tipove graaka. Kodovi
za detekciju greke klasifikuju se na osnovu tipova greaka koje mogu detektovati. Na primer,
kodovi koji detektuju greku na jednom bitu mogu se koristiti samo kod sluajnih
jednostrukih greaka. Meutim, najee greke u logikim kolima su viestruke prirode.
Viestruke greke pripadaju jednoj od sledeih klasa [Lala01]:
- Simetrine (symmetric) - greke tipa 01 i 10 pojavljuju se istovremeno i sa istom
verovatnoom u jednoj kodnoj rei.
- Nesimetrine (unsymmetric) - samo jedan tip greke, 01 ili 10, moe se pojaviti u
jednoj kodnoj rei, dok se drugi tip nikada nee javiti.
- Jednosmerne (unidirectional) - greke tipa 01 i 10 mogu se pojaviti, ali ne
istovremeno, u jednoj kodnoj rei.
Statistiki podaci o razvijenim VLSI kolima pokazuju da veina nastalih defekata u kolu
dovodi do pojave jednosmernih greaka, to znai da su sve greke istog tipa, 01 ili 10.
To je dovelo do razvoja nekoliko kodova za detekciju ovakvih greaka. Iz istog razloga,
izlazni vektori kola koje obavlja neku funkciju predstavljaju se pomou kodova za detekciju
jednosmernih greaka. Pre pregleda ovakvih kodova neophodno je definisati neke pojmove
koji e se kasnije koristiti.
Neka su X i Y dva binarna skupa od k elemenata. Neka je N(X,Y) broj prelaza 10 iz
skupa X u skup Y. Na primer, ako je X = 101010 i Y = 110101 , onda je N(X,Y) = 2 a
N(Y,X) = 3 . Re X(x1 , x 2 , ..., xk ) pokriva (cover) drugu re Y(y1 , y 2 , ..., yk ) , simboliki
predstavljeno kao X Y , ako za y i = 1 sledi da je xi = 1 pri emu i = 1, 2 , ..., k . Drugim
reima, pozicije 1-ca u skupu Y su podskup pozicija 1-ca u skupu X. Na primer, ako je
X = 101010 i Y = 101000 , onda X Y . Moe se jo i rei da ako skup X pokriva skup Y,
onda je N(Y,X) = 0 . Ako skup X ne pokriva skup Y i skup Y ne pokriva skup X, onda su X i Y
neureeni (unordered) skupovi. Kd u kome nema kodne rei koja je pokrivena nekom
drugom kodnom rei naziva se neureeni kd [Lala01].

3.3.2.1. Neureeni kodovi za detekciju jednosmernih greaka


Neureeni kd ima mogunost detektovanja svih jednosmernih greaka, zato to u takvom
kodu, jednosmerna greka ne moe da promeni jednu kodnu re u drugu. Neureeni kodovi
mogu biti izdvojivi (Bergerov kd) ili neizdvojivi (m-out-of-n kodovi). Ovi kodovi mogu
detektovati greke na jednom bitu, kao i jednosmerne viestruke greke [Lala01].

m-od-n kod
Kodna re m-od-n (m-out-of-n) koda sadri tano m jedinica i (n-m) nula. Ukupan broj
validnih kodnih rei je n! (n-m)!m! . Osnovna prednost m-od-n koda je u tome to vrlo lako
vizuelizuje proces detekcije greke. Meutim, glevni nedostatak je u tome to je m-od-n
neizdvojiv kd pa je teko izvriti proces kodiranja, dekodiranja i detekcije, a samim tim
poveava se kanjenje i broj modula u sistemu [Moha77].
Specifian podskup m-od-n koda je 1-od-n kd u kome je samo jedan bit 1 a svi ostali su
0. Ako je u m-od-n kodu m = n/ 2 , onda je kd optimalan. Drugim reima, ne postoji drugi
neureen kd, sem koda n/2-od-n, koji ima vie kodnih rei duine n. Ovakav kd je najlake
generisati jer kodna re od n bitova sadri tano n/2 jedinica, a generie se dodavanjem n/2
bitova informaciji koja takoe sadri n/2 bitova. Nedostatak n/2-od-n koda je to ima dva puta

35
Projektovanje kombinacionih i sekvencijalnih mrea sa samoproverom na osnovu VHDL opisa

vie bitova od onih koji su potrebni za predstavljanje informacije, to znai da je redundansa


koda 100%. Prednost je u tome to su procesi kodiranja i dekodiranja jednostavni zbog toga
to je ovo izdvojiv kd. Dekodiranje se vri jednostavnim odstranjivanjem dodatnih bitova iz
kodne rei.

Berger-ov kd
Berger-ov kd je najmanje redundantan neureeni kd. Ako ovaj kd ima duinu od n
bitova, pri emu je k informacionih i c bitova za proveru, onda je c = log 2 (k + 1 ) i n = k + c .
Kodna re se formira tako to se informacionim bitovima dodaje komplement binarne
prezentacije broja jedinica u informacionim bitovima. Ovi dodatni bitovi ine bitove za
proveru (check bits). Na primer, ako je k = 0101000 , c = log 2 ( 7 + 1 ) = 3 , a poto Berger-ov
kd mora da ima duinu 10 (= 7 + 3) , c bitova za proveru generiu se na sledei nain: Neka
je broj jedinica u informacionim bitovima k = 2 , onda je binarni ekvivalent 2 = 010 ,
komplement binarnog broja 010 je 101, to predstavlja c bitova za proveru, pa je
n = 0101000 101
k c
Na osnovu prethodnog moe se rei da su c bitova za proveru, ustvari, binarna
prezentacija broja 0 u okviru k informacionih bitova. ema koja, kao bitove za proveru, koristi
komplement binarne prezentacije broja 1-ca u informacionim bitovima naziva se B1 ema
kodiranja. Druga ema koja koristi komplement binarne prezentacije broja 0-a u
informacionim bitovima naziva se B0 ema kodiranja.
Ako je broj informacionih bitova u Berger-ovom kodu I = 2 c -1 , c 1 , onda je to Berger-
ov kd maksimalne duine. Na primer, Berger-ov kd 0101000 101 je maksimalne duine
poto je c = 3 i k = 7 = ( 2 c -1 ) , dok kd 110100 011 nije maksimalne duine zato to je c = 3
i k = 6 [Lala01].
Motivacija za izbor Berger-ovog koda dolazi od injenice da defekti u kolima najee
uzrokuju jednosmerne greke, a Berger-ov kd je optimalan izdvojiv kd kojim se mogu
detektovati sve jednosmerne greke [Moha77]. Berger-ovim kodom mogu se detektovati
greke na jednom bitu i jednosmerne viestruke greke u kodnoj rei zbog sledeih injenica:
1) Ako postoje jednosmerne greke u informacionom delu, onda e broj nula u
informacionim simbolima pogrene rei biti vei od vrednosti provere u sluaju greke 10,
a manji u sluaju greaka 01.
2) Ako postoje jednosmerne greke u delu za proveru, onda e broj nula u informacionim
simbolima pogrene rei biti manji od vrednosti provere u sluaju greke 01, a vei u
sluaju greaka 10.
3) Ako postoje jednosmerne greke u informacionom delu i u delu za proveru, onda e se
broj nula u informacionim simbolima pogrene rei poveati u sluaju greaka 10 i smanjiti
u sluaju greaka 01. Sa druge strane, vrednost za proveru pogrene rei smanjie se u
sluaju greaka 10, a poveati u sluaju greaka 01. U svim navedenim sluajevima
mogu se detektovati viestruke jednosmerne greke.
ema zasnovana na Berger-ovom kodu predloena je u radu [DeK94]. Zbog podele
zajednikih lanova u vienivovskim kolima, jedan defekt u logikom gejtu takvog kola moe
potencijalno da utie na vie izlaza. Ako defekt uzrokuje da jedan izlaz generie pogrenu
vrednost 1 umesto korektne vrednosti 0, a drugi izlaz generie pogrenu vrednost 0 umesto
korektne vrednosti 1, onda se korienjem Bergerovog koda defekt ne moe detektovati. Kao

36
3. Konkurentna detekcija greke

to se vidi sa slike 3.5, usled defekta unutar kola moe se javiti bidirekciona greka na
primarnim izlazima Q p i Q q ako na putu od mesta defekta do izlaza Q p ne postoji invertor, a
na putu do izlaza Q q postoji jedan invertor. Zato se vienivovska kola moraju projektovati uz
neka ogranienja, na taj nain da defekt rezultuje jednosmerne greke na izlazima [DeK94].

Slika 3.5. Defekt u vienivovskom kolu moe da uzrokuje bidirekcionu greku na izlazima

Jasno je da za detektovanje svih jednosmernih greaka u kodnoj rei treba izabrati Berger-
ov kd, ali ako treba detektovati samo odreen broj, t, jednosmernih greaka onda ovo nije
najoptimalnije reenje.

3.3.2.2. Kodovi za detekciju t jednosmernih greaka


Konstrukcija koda za detekciju jednosmernih greaka radije se bazira na detekciji
odreenog broja, t, jednosmernih greaka nego na detekciji svih moguih jednosmernih
greaka. Jedna od karakteristika kodova za detekciju t jednosmernih greaka je simetrinost,
jer su bitovi za proveru izdvojeni od informacionih bitova. Za ove kodove se moe
implementirati paralelno kodiranje/dekodiranje, pa su zato pogodni za brze raunarske
sisteme. Pored toga, ovakvi kodovi imaju tano odreen broj bitova za proveru koji ne zavisi
od broja informacionih bitova. Jedan od kodova za detekciju t jednosmernih greaka je Bose-
Lin-ov kd [Bose85].

Bose-Lin-ov kd
Bose i Lin su predloili sistematski kd za detekciju t jednosmernih greaka (t-
unidirectional error detecting codes, t-UED). Oni su definisali optimalan kd za detekciju
jednosmernih greaka viestrukosti 2, 3, i 6 uz korienje 2, 3, i 4 bita za proveru,
respektivno. Ako je k0 - broj 0-a u informacionim bitovima, a c - broj bitova za proveru, onda
se bitovi za proveru (check symbol - CS) generiu se na sledei nain [Jha191]:
i) CS = k 0 mod 4 , sa c = 2 detektuju se 2 jednosmerne greke
ii) CS = k0 mod 8 , sa c = 3 detektuju se 3 jednosmerne greke
iii) CS = (k 0 mod 8) + 4 , sa c = 4 detektuje se 6 jednosmernih greaka.
Primera radi, bitovi za proveru koji su potrebni da bi se detektovale 2-, 3- i 6-bitne
jednosmerne greke u informacionom vektoru
1011010111000111
su 10(=2), 110(=6), i 1010(=10), respektivno.
Bose i Lin su, takoe, pokazali da viestrukost greaka koje se mogu detektovati
korienjem kodova za detekciju jednosmernih greaka zavisi od naina formiranja bitova za
proveru. Oni su predloili dve metode za konstrukciju koda. Prvi metod se koristi u sluaju da
je za kodiranje potrebno maksimalno etiri bita, a drugi metod vai za sluaj da je za
kodiranje potrebno etiri ili vie bitova.

37
Projektovanje kombinacionih i sekvencijalnih mrea sa samoproverom na osnovu VHDL opisa

Detaljno emo opisati prvi metod koji se sastoji od sledea dva koraka:
1. Broj bitova za proveru, c, koji su potrebni da bi se detektovale 2- i 3-jednosmerne
greke iznosi k 0 mod 2 2 i k 0 mod 2 3 , respektivno, gde je k 0 broj 0-a u informacionim
bitovima.
2. Ako je za proveru potrebno etiri ili vie bitova oni se dele u dva bloka pri emu
prvom bloku pripadaju dva bita najvee teine, a drugom bloku ostalih (c 2) bitova. Prvo se
odreuje k 0 mod 2 c-1 = (q c- 2 , ..., q1 , q 0 ) , a onda bitovi za proveru p c-1 , ..., p1 , p 0 gde je
pc-1 = qc- 2 , pc- 2 = qc- 2 , i p j = q j za bilo koje j.
Maksimalan broj jednosmernih greaka koje se mogu detektovati ovim nainom kodiranja
je 2 c- 2 + c-2 .
Na primer, za sledeu grupu informacionih bitova
1011111110000011
najpre odreujemo k 0 mod 2 c-1 = 6 mod 2 4 -1 = 110 = q 2 q1 q 0 , a zatim dobijamo bitove za
proveru p3 p 2 p1 p 0 = 1010 [Lala01].

3.3.3. Kodovi ostatka


Kodovi ostatka su izdvojivi kodovi koji se najee koriste za detekciju greaka u
rezultatu aritmetikih i aritmetiko logikih operacija u digitalnim sistemima [Moha77].
Ostatak, r, pri deljenju celog broja, N, osnovom provere, A, predstavlja se kao r = N mod A .
Broj bitova za proveru odreuje se kao [log 2 A] . Konkatenacijom binarnih prezentacija broja
N i ostatka r dobija se kodna re, Nr, za kd ostatka.
Na primer, ako su bitovi podatka 1110 i osnova provere A = 3 , onda je broj bitova za
proveru [log 2 3] = 2 , a u binarnom obliku: 14 mod 3 = 2 , tj. 10.
Primenom koda ostatka mogu se proveriti aritmetike operacije sabiranja i oduzimanja na
taj nain to se poredi ostatak rezultata operacije nad brojevima N1 i N2 sa rezultatom
operacije po modulu A nad njihovim ostacima r1 i r2, a moe se predstaviti na sledei nain:
(N1 N 2 )mod A = (r1 r2 )mod A
(N1 N 2 )mod A = (r1r2 )mod A
Kompleksnost u realnoj implementaciji kodova ostatka moe da se smanji pogodnim
izborom osnove provere. Za tu svrhu predstaviemo ceo broj X u obliku X = ( X n1 X n2 ...X 0 ) ,
gde Xi za i = 0, 1, ..., n 1 predstavlja bajt irine b-bitova. Izraunavanje ostatka znatno je
pojednostavljeno izborom osnove provere A = 2 b 1 , jer se u tom sluaju bitovi provere
izraunavaju na sledei nain [Tohm86]:

X c = X mod (2 b 1) = X i mod(2 b 1)
n 1

i =0
Kodovi ostatka sa osnovom provere 2 b 1 nazivaju se kodovi ostatka sa niskom cenom
(low-cost residue codes). Korienjem ovog koda mogu se detektovati greke na jednom bitu.

38
3. Konkurentna detekcija greke

3.3.4. AN kodovi
AN kd je primer neizdvojivog koda. Za ceo broj N kodna re se formira kao proizvod
broja N i celobrojne osnove provere A. Korienjem ovog koda zbir dva broja N1 i N2 moe se
predstaviti u obliku AN 1 + AN 2 = A(N 1 + N 2 ) koji je jednak kodovanom obliku njihovog
zbira [Tohm86].

3.3.5. Kodovi dupliciranja


Kodovi dupliciranja formiraju kodnu re tako to se originalna informacija kompletno
duplicira. Varijanta ovog osnovnog pristupa je komplementirano dupliciranje (Dual-Rail
Code).
Prednost ovog koda je jednostavnost jer se bitovi informacije dodaju sami sebi, a
nedostatak koda je veliki broj dodatnih bitova. Najoptiji izdvojiv kd je kd dupliciranja kod
koga je deo za proveru jednak delu koji predstavlja podatak. Kodovi dupliciranja su nali
veliku primenu u memorijskim i komunikacionim sistemima [John89].

3.3.6. Kontrolna suma


Kontrolna suma predstavlja vrstu izdvojivog koda koji se koristi kada se blokovi podataka
(poruke) prenose iz jedne take u drugu. Kontrolna suma predstavlja odreenu koliinu
informacija koja se na predajnoj strani dodaje bloku podataka radi lake detekcije greaka na
prijemnoj strani. Mogu se koristiti etiri osnovna tipa kontrolnih suma: kontrolna suma
jednostruke tanosti, kontrolna suma dvostruke tanosti, kontrolna suma tipa Honeywell, i
kontrolna suma ostatka [John89].

3.4. Klasifikacija kola sa samoproverom

Jedan od naina za projektovanje kola sa samoproverom je korienje kodova za detekciju


greke. Ovaj princip se moe objasniti na osnovu preslikavanja ulazno/izlaznih signala kola.
Neka kolo ima n primarnih ulaznih i m izlaznih linija. Onda 2 n binarnih vektora duine n
formiraju ulazni prostor, X , a skup od 2 m binarnih vektora odreuje izlazni prostor, Z . Kd
deli izlazni prostor na dva razdvojena skupa. Prvi je skup kodnih rei, tj. vektori koji
zadovoljavaju traenu osobinu a drugi je skup nekodnih rei, tj. vektori koji ne zadovoljaju
traenu osobinu.
Detekcija defekata zavisi od mogunosti primenjenog koda. Pojavljivanje nekodne rei na
izlazu predstavlja prisustvo defekta u kolu. Drugim reima, pomou kola sa samoproverom
detektuje se svaki defekti koji generie izlaznu konfiguraciju koja ne pripada skupu kodnih
rei. Meutim, defekt koji generie kodnu re na izlazu ne moe da bude detektovan. Takav
defekt ili ne uzrokuje greku (sistem je redundantan na defekte) ili generie kodnu ali
nekorektnu re (kritina situacija). Prema tome, kodiranje podataka je operacija koja garantuje
detekciju greke, ali ne i detekciju defekata. Zato je neophodno da se pri projektovanju kola
ima u vidu i potrebna strategija sinteze za dobijanje mree u kojoj svi defekti uzrokuju jedino
greke koje se mogu detektovati. Ukaimo sada na ovakve i jo neke probleme koji prate
projektovanje kola sa samoproverom.

39
Projektovanje kombinacionih i sekvencijalnih mrea sa samoproverom na osnovu VHDL opisa

Na osnovu prethodno reenog, jasno je da pojava nekodne izlazne rei nepobitno ukazuje
na pristutvo defekta u funkcionalnom modulu, ali da obrnuto tvrenje u optem sluaju ne
mora biti tano. Naime, prisutvo kodne rei na izlazu nije 100%-na garancija da kolo
funkcionie ispravno. Moe se desiti da je manifestacija defekta takva da se na izlazu generie
pogrena, ali ipak kodna re. U tom sluaju, greka prolazi nedetektovana. Na primer, ako je
funkcionalni modul kola sa samoproverom koje koristi kd parnosti otkazao na takav nain da
su svi njegovi izlazi fiksirani na 0, kolo za proveru nee detektovati greku. S tim u vezi, o
samoproveri se uvek govori u kontekstu pretpostavljenog skupa defekata. Na primer, najee
korieni model defekta je stuck-at model koji podrazumeva da u kolu ne postoje defekti ili
postoji samo jedan defekt stuck-at tipa, to znai da su neki od ulaza ili izlaza komponente u
kolu stalno postavljeni (povezani) na logiku 1 ili 0. Osnovni razlog za ovu standardnu
pretpostavku da sistem moe imati najvie jedan defekt, je taj to je sistem testiran pre nego
to je poeo da radi i da tada nije bilo defekata. Takoe, verovatnije je da e se u jednom
trenutku javiti jedan defekt, a ne svi odjednom. Da bi vaila prethodna pretpostavka
neophodno je pretpostaviti i to da je vreme izmeu pojave i detekcije defekta dovoljno malo
tako da se taj defekt moe detektovati pre nego to se drugi pojavi. Ovo vreme izmeu pojave
i detekcije defekta je period latencije greke [Sand90].
U kolima sa samoproverom izlazi su kodirani odreenim kodom za detekciju greke, a
pojava defekta unutar kola utie na promenu izlaza kola. Meutim, jedan defekt moe da utie
na jedan, ali i na vie izlaza, pa konstrukcija koda postaje tea. U cilju reavanja ovog
problema uvodi se jo jedno ogranienje po kome jedan defekt moe uticati na vie izlaza, ali
su promene svih izlaza u istom smeru, odnosno dozvoljene su samo jednosmerne greke (0
prelazi u 1, ili 1 prelazi u 0). Takve greke mogu da detektiju kodovi za detekciju
jednosmernih greaka, kao na primer Berger-ov i m-od-n kd [Sand90].
Osim u funkcionalnom modulu, defekt se moe javiti i u kolu za proveru. Kao posledica
takvog defekta, izlaz kola za proveru moe ostati neaktivan. Iz tog razloga, posebna panja se
posveuje projektovanju kola za proveru, koja moraju biti u stanju ne samo da detektuju
nekodne rei funkcioalnog modula, ve i prisustvo defekta u sopstvenoj strukturi.
Na osnovu prethodnog, zakljuak je da projektovano kolo moe imati mogunost
samoprovere samo za pretpostavljeni skup defekata. Takav skup ukljuuje defekte na jednom
bitu (single stuck-at faults) i jednosmerne viestruke defekte (unidirectional multiple faults).
Kod defekata na jednom bitu pretpostavlja se da je fiziki defekt u kolu doveo do postavljanja
(stuck-at) jedne od linija signala na logiku 0 ili na logiku 1. Ako je u isto vreme vie od
jedne linije u kolu postavljeno na 1 ili na 0, onda kolo ima viestruku greku. Moemo rei da
je jednosmerna greka varijanta viestruke greke kod koje su svi elementi, odnosno sve linije
postavljene na 1 ili na 0, ali ne istovremeno na obadve vrednosti. Ako je neka ulazna
promenljiva prisutna u izrazima za dobijanje izlaza kola u svom normalnom ili
komplementarnom obliku, ali ne u oba, onda e bilo koji defekt na putu od ulaza koji
odgovara toj ulaznoj promenljivoj do primanih izlaza uzrokovati ili greku na jednom bitu ili
jednosmerne viestruke greke na izlazima. Prema tome, ne postoji defekt koji e generisati
bidirekcione greke [Lala01].
Kola sa samoproverom moraju da imaju sledee osobine:
- samotestiranje (Self-Testing - ST)
- sigurnost na defekat (Fault-Secure - FS).
Kolo ima mogunost samotestiranja ako, za svaki defekt iz pretpostavljenog skupa,
generie nekodnu re na izlazu za najmanje jednu kodnu re na ulazu. Da bi ovo ilustrovali
neka F bude pretpostavljen skup defekata, a I i Y1 skup ulaznih i izlaznih kodnih rei. Kao to

40
3. Konkurentna detekcija greke

je prikazano na slici 3.6, ako je Z izlazni prostor a Y2 skup nekodnih rei, onda je Z = Y1 Y2 .
Ako je za ulaz i I korektan izlaz kola y1 Y1 , onda je, u prisustvu defekta f F , za isti
ulaz i nekorektan izlaz kola y1' Y2 [Lala01].

Slika 3.6. Osobina samotestiranja

Osobina samotestiranja omoguava da za svaki defekt u pretpostavljenom skupu postoji


najmanje jedna ulazna kodna re za koju se kao rezultat dobija nekodna re na izlazu. Drugim
reima, bilo koji defekt iz predloenog skupa detektovae se pomou najmanje jedne kodne
rei na ulazu [Lala01], [Moha77], [Maro78].
Za pretpostavljeni skup defekata kolo je sigurno u prisustvu defekta (fault-secure) ako, za
bilo koji defekt u skupu, izlaz kola je ili korektna kodna re ili nekodna re. Drugim reima,
za kodnu re na ulazu kolo nikad ne daje nekorektnu kodnu re na svom izlazu. Preslikavanje
kodne rei na ulazu u kodnu re na izlazu u prisustvu defekta f F prikazano je punom
linijom na slici 3.7. Primetimo da, u prisustvu defekta, izlaz ne moe da bude kodna re i da
se u isto vreme razlikuje od korektne kodne rei na izlazu, y1. Prema tome, sve dok je na
izlazu kodna re moramo pretpostaviti da e biti korektna [Lala01], [Moha77], [Maro78].

Slika 3.7. Osobina sigurnosti na defekte

3.4.1. Kola sa potpunom samoproverom


Cilj koji postiu kola sa samoproverom esto se naziva cilj potpune samoprovere (Totally
Self-Checking - TSC). To znai da e svaka greka na izlazu kola koje obavlja neku funkciju
uzrokovati indikaciju greke na izlazu kola za proveru.
Kolo ima sposobnost potpune samoprovere ako zadovoljava uslove samotestiranja i
sigurnosti u prisustvu defekta. Ovakva kola su vrlo pogodna za projektovanje digitalnih
sistema zato to, u toku normalnog rada kola, bilo koji defekt iz datog skupa uzrokuje greku
na izlazu koja se moe detektovati. Prednosti kola sa potpunom samoproverom su sledee:
- Povremeni defekti se mogu detektovati na isti nain kao i stalni.
- Defekti se detektuju odmah nakon pojavljivanja, to je preventivna mera u ouvanju
podataka.

41
Projektovanje kombinacionih i sekvencijalnih mrea sa samoproverom na osnovu VHDL opisa

- Softverski dijagnostiki programi se eliminiu ili znatno pojednostavljaju.


Na slici 3.8 prikazan je model kola sa potpunom samoproverom. Sastoji se od
funkcionalnog kola i kola za proveru (checker). U toku normalnog rada funkcionalno kolo ne
generie sve mogue izlazne kombinacije bitova, tj. generie podskup izlaznog kodnog
prostora koji se sastoji od kodnih rei [Sand90]. Na prisustvo defekta u kolu ukazuje
pojavljivanje nekodnog izlaza. Funkcija kola za proveru je da proveri validnost izlazne kodne
rei. Na osnovu izlaza kola za proveru mogue je detektovati bilo koji defekt u
funkcionalnom kolu ili u samom kolu za proveru. Meutim, na osnovu informacije dobijene
na izlazu kola za proveru nije mogue locirati defekt [Lala01].

Slika 3.8. Model kola sa potpunom samoproverom

Osobina sigurnosti na defekte namenjena je garanciji da su bilo koji prethodni rezultati u


indikaciji greke korektni, a osobina samotestiranja namenjena je otkrivanju svih defekata to
znai da oni ne mogu formirati nemodelovane defekte [Smit83].

3.4.2. Kola koja su potpuno sigurna u prisustvu defekta


Sposobnost kola sa potpunom samoproverom zasniva se na pretpostavkama da svaki
defekt pripada pretpostavljenom skupu defekata i da se oni pojavljuju sekvencijalno sa
dovoljno dugim vremenskim intervalom izmeu dva defekta kako bi se omoguilo da svi
kodirani ulazi budu primenjeni na kolo za testiranje. Prema tome, kolo sa potpunom
samoproverom, u prisustvu defekta, daje nekodnu re kao pogrean izlaz [Lala01].
Ako je kolo sigurno u prisustvu defekta a nije samotestirajue za skup defekata, F, onda,
za primenjeno kodiranje na ulazu, moe da postoji defekt f 1 F koji nee generisati
nekodnu re na izlazu, i javie se nekorektan izlaz. Drugim reima, defekt f1 moe da ostane
nedetektovan i da se, eventualno javi drugi defekt. Kada se javi drugi defekt f 2 F kolo ima
kombinovani defekt f1 f 2 , koji ne pripada skupu F. Prema tome, ne moe se garantovati da
e kolo biti sigurno i u prisustvu defekta f1 f 2 , i nekorektna kodna re se moe javiti na
izlazu [Smit78].
Za defekt f 1 F , a u odnosu na skup defekata F, moemo rei da je kolo, pod strogim
uslovima, sigurno u prisustvu defekta (strongly fault-secure - SFS) ako je:
1. samotestirajue i sigurno u prisustvu defekta
2. sigurno u prisustvu defekta f1, a ako se javi drugi defekt f 2 F , onda za sekvencu
f 1 f 2 vai jedna od osobina 1 ili 2.
Kolo je sigurno u prisustvu svih defekata iz skupa defekata F, pod strogim uslovima, ako
je sigurno i u prisustvu svih sekvenci defekata iji lanovi pripadaju skupu F. Moe se lako
videti da pod ovom pretpostavkom svako kolo postie cilj potpune samoprovere ako je, pod

42
3. Konkurentna detekcija greke

strogim uslovima, sigurno u prisustvu defekata. Kolo koje je sigurno u prisustvu defekata, ali
nije pod strogim uslovima, na izlazu e pre generisati nekorektnu kodnu re nego nekodnu
re.
Definicije mrea koje su pod strogim uslovima sigurne na prisustvo defekata i mrea koje
imaju osobinu potpune samoprovere, sastoje se od funkcionalnog opisa kola i njegovog
ponaanja u prisustvu defekata. Meutim, u cilju konstrukcije takvih mrea neophodno je
razmotriti karakteristike koje se odnose na strukturu povezivanja gejtova i na kodiranje izlaza.
U tom smislu definie se osobina sigurnosti u prisustvu defekata na putu (path fault secure
PFS). Kolo je sigurno u prisustvu defekata na putu (PFS) ako za svaki defekt u specificiranoj
klasi defekata, propagacija greke kroz bilo koji skup strukturnih puteva od strane defekta ka
izlazima nee nikad generisati nekorektnu kodnu re na izlazu [Toub97]. Ova osobina
implicira osobinu stroge sigurnosti u prisustvu defekata i ima prednost nad njom jer se lako
verifikuje.
Na slici 3.9 [Smit78] prikazana je veza koja postoji izmeu mrea koje su sigurne na
defekte, pod strogim uslovima sigurne na defekte, sigurne na defekte na putu i mrea sa
potpunom samoproverom.

Slika 3.9. Veza izmeu mrea koje su FS, SFS, PFS i TSC

3.4.3. Kola sa potpunim razdvajanjem kodova


Kolo je kodno-razdvojeno (code-disjoint) ako se ulazne kodne rei preslikavaju u izlazne
kodne rei, a ulazne nekodne u izlazne nekodne rei. Pojam osobine kodnog-razdvajanja
ilustrovan je na slici 3.10 pri emu pune linije predstavljaju preslikavanje ulaznih kodnih u
izlazne kodne rei, a isprekidane linije predstavljaju preslikavanje ulaznih nekodnih u izlazne
nekodne rei [Lala01].

Slika 3.10. Osobina razdvajanja kodova

Kolo je potpuno kodno-razdvojeno (strongly code-disjoint) za pretpostavljen skup


defekata ako je, za svaki defekt u skupu, kodno razdvojeno i samotestirajue, ili, u sluaju da
nije samotestirajue onda, ako je i dalje kodno razdvojeno za kombinaciju nedetektovanih i
drugih defekata iz skupa defekata. Drugim reima, kolo ostaje kodno razdvojeno za bilo koju

43
Projektovanje kombinacionih i sekvencijalnih mrea sa samoproverom na osnovu VHDL opisa

sekvencu greaka iz skupa greaka. U nekim sluajevima nekodna re na ulazu preslikava se u


kodnu re na izlazu; ova osobina je poznata kao slabo kodno-razdvajanje (weakly code-
disjoint). Pre diskusije o ovoj osobini neophodno je koristiti neke ranije pomenute definicije o
osobinama pokrivenosti i neureenosti skupova.
Ako najmanje jedna kodna re pokriva nekodnu re, onda se ona naziva pokrivena
nekodna re. Alternativno, ako nekodna re pokriva najmanje jednu kodnu re onda se ona
zove pokrivajua nekodna re. Nekodna re e biti neureena nakodna re ako je neureena u
odnosu na sve kodne rei [Lala01].
Smatra se da je kolo slabo kodno-razdvojeno ako i samo ako zadovoljava sledee osobine:
1. Na izlazu daje nekodnu re za neureenu nekodnu re na ulazu.
2. Na izlazu daje nekodnu re ili korektnu kodnu re za pokrivajuu kodnu re na ulazu i.
Drugim reima, izlaz je isti kao da je dobijen pomou ulaznih kodnih rei pokrivenih sa i.
3. Na izlazu daje nekodnu re ili korektnu kodnu re za pokrivenu nekodnu re na ulazu
j; tako je kodna re na izlazu ista kao da je dobijena pomou ulaznih kodnih rei koje
pokrivaju j [Lala01].
Ako kolo ispunjava uslove samotestiranja i razdvajanja kodova onda se naziva kolo za
proveru koje ima mogunost samoprovere (Self-Checking Checker - SCC) [Moha77],
[Maro78].

3.5. Kola za proveru koja imaju osobinu potpune samoprovere

Mnoga digitalna kola sadre detektore greaka, odnosno kola za proveru, koja detektuju i
signalizuju pojavu greaka. Osnovni razlozi uvoenja ovakvih kola su lociranje mesta na
kome postoji defekt i spreavanje prostiranja greaka kroz sistem. Jedan od naina da se, pri
prenosu podataka, ovi zahtevi ostvare, jeste da se primljeni podatak proveri i da se, u sluaju
detektovanja greke, zahteva ponovni prenos ili korekcija primljenih podataka. Drugi nain se
koristi kod aritmetikih izraunavanja pri emu se, u sluaju detektovanja pogrenog
rezultata, izraunavanje ponavlja [McCl90].

3.5.1. Strukture kola za proveru


Struktura kola za proveru uglavnom je odreena na osnovu koda za detekciju greke.
Ovim kodom se kodira podatak koji e se proveravati. Najvanija karakteristika koda je ta da
li je izdvojiv ili ne, odnosno da li se svaka re moe se podeliti na dva dela: deo koji
predstavlja podatak i deo za proveru datog podatka. Opta struktura kola za proveru za bilo
koji izdvojiv kd data je na slici 3.11 [McCl90].

Slika 3.11. Opta struktura kola za proveru za izdvojiv kd

44
3. Konkurentna detekcija greke

Kolo za proveru odreuje da li kodirana informacija, koja se sastoji od bitova podatka i


bitova za proveru, a generie je funkcionalna jedinica, pripada skupu kodnih rei ili ne. To
zavisi od prisustva defekta unutar funkcionalne jedinice. Na primer, za podatak veliine
jednog bajta koji je kodiran kodom parnosti, kolo za proveru ima devet bitova na svom ulazu i
odreuje njihovu parnost [McCl90].
Kolo za proveru koje ima mogunost potpune samoprovere (Totally Self-Checking
Checker - TSCC) je svako kolo koje ima sledee osobine [Moha77], [JhaN93]:
a) sigurnost u prisustvu defekta - ako se defekt koji pripada odreenom skupu defekata
pojavi u kolu za proveru, onda e na njegovom izlazu biti ili korektna kodna re ili
nekodna re
b) samotestiranje - postoji bar jedna kodna re na ulazu koja se koristi za testiranje kola
za proveru, koje generie nekodnu re na svom izlazu u sluaju da u kolu postoji
defekt iz odreenog skupa defekata
c) razdvajanje kodova - pod uslovom da u kolu za proveru nema defekata, na njegovom
izlazu javie se kodna re samo u sluaju da je i na ulazu kodna re, dok u suprotnom
sluaju, na izlazu je nekodna re ako je i na ulazu nekodna re.
Kolo za proveru ima osobinu potpune samoprovere za sledei skup defekata [Lala01]:
postavljanje fiksne vrednosti 0 ili 1 na ulaznim ili izlaznim vezama
premoavanje ulaznih veza
prekid na ulaznim vezama
premoavanja izmeu sorsa i drejna, gejta i sorsa, i gejta i drejna bilo kog tranzistora
tranzistori u stanju zakoenja ili zasienja.

3.5.1.1. Kolo za proveru jednakosti


Kolo za proveru jednakosti uporeuje dve ulazne rei i utvruje da li odgovarajui bitovi
tih rei imaju istu vrednost. Ovo kolo je kljuna komponenta za poreenje izlaza originalnog i
dupliciranog kola. Takoe se koristi u kolima za proveru izdvojivih kodova. Na slici 3.12
prikazana je struktura jednostavnog kola za proveru jednakosti dve 4-bitne rei X i Y. Svaki
par bitova ovih rei dovodi se na XOR gejt iji izlaz ima vrednost 0 sve dok sistem korektno
radi. Nedostatak ovog kola je nemogunost samotestiranja [McCl90].

Slika 3.12. Struktura jednostavnog kola za proveru jednakosti

Komplementiranjem svih bitova jedne rei dobija se kolo za proveru jednakosti koje
ima mogunost samotestiranja [McCl90].

3.5.1.2. Kolo za proveru sa dva izlaza


S obzirom da je ve uvedena pretpostavka da u funkcionalnoj jedinici postoji samo jedan
defekt, interesantna situacija se javlja kada postoji defekt u samom kolu za proveru. Na isti

45
Projektovanje kombinacionih i sekvencijalnih mrea sa samoproverom na osnovu VHDL opisa

nain, moe se pretpostaviti da i u kolu za proveru postoji jedan defekt, a da pri tome u
funkcionalnoj jedinici nema defekta. Zato se i izlazi kola za proveru kodiraju pomou koda za
detekciju jednosmernih greaka. Jedan bit na izlazu kola za proveru nije dovoljan za detekciju
defekta zato to se na tom izlaznom bitu moe javiti defekt postavljanja na odreenu vrednost
0 ili 1, koji se ne moe detektovati ako se u toku normalnog rada dobija vrednost 1 na izlazu
kola [Hugh84]. Da bi kolo za proveru generisalo to manji broj izlaza koristi se kd 1-od-2
(two-rail), a skup kodnih rei je {01, 10}. Jednosmerna greka transformie ovaj kd u skup
nekodnih rei {00, 11} i takvi izlazi signaliziraju pojavu greke, odnosno detekciju defekta
(slika 3.13).

Slika 3.13. Izlazi kola za proveru sa dva izlaza

Kolo za proveru sa kodom 1-od-2 ima dve grupe ulaza, (x1 , x2 ,..., xn ) i ( y1 , y 2 ,..., y n ) , i dva
izlaza, f i g. Trebalo bi da ovi izlazni signali budu komplementarni uvek kada su svi parovi
ulaznih signala xj i yj, za sve vrednosti j ( 1 j n ), takoe komplementarni. Ovakvo kolo za
proveru, ustvari, proverava da li svaki par ulaza ima komplementarnu vrednost tako to
konvertuje n parova signala u jedan par signala koji su komplementarni jedan drugom ako i
samo ako svaki od n ulaznih parova ima komplementarne vrednosti [McCl90]. Za detekciju
defekta u samom kolu za proveru neophodno je odrediti ulaze koji se nazivaju test ulazi
[Sand90].
Na slici 3.14 prikazano je kolo za proveru koje koristi 1-od-2 kd i koje konvertuje dva
para ulaznih signala u jedan par izlaznih signala. U sluaju da nema greke, na ulazu ovog
kola su vrednosti x0 x1 = 11 , y0 y1 = 00 (jer vai uslov yi = xi, ), a izlazi kola su f = 0 , g = 1 .
Ako se zbog pojave defekta promeni vrednost ulaznih bitova i dovede se y0 y1 = 10 , onda
nekodna re na izlazu, f = g = 1 , predstavlja indikaciju greke. injenica je da ovakvo kolo
ima osobinu potpune samoprovere za sve jednostruke i jednosmerne viestruke defekte.

A' A B + A' B'

A' B + A B'
B'

Slika 3.14. Kolo za proveru sa dva izlaza za dva para ulaznih signala

Kolo za proveru moe se testirati pomou 2 n ulaznih kombinacija, gde je n broj parova
ulaznih signala [Ande73]. Prema tome, kolo sa slike 3.9 ima mogunost samotestiranja ako se
u toku normalnog rada na njegovom ulazu pojavljuju sve etiri validne kodne rei, {0101,
1010, 0110, 1001}.

46
3. Konkurentna detekcija greke

Kolo za proveru sa dva izlaza i proizvoljnim brojem ulaznih parova moe se


projektovati korienjem dvonivovske AND-OR logike. Kao primer ovakve logike strukture
na slici 3.15 prikazano je kolo za proveru sa etiri para ulaza i jednim parom izlaza.

Slika 3.15. Kolo za proveru sa etiri para ulaza i jednim parom izlaza

Mnogo efikasnije reenje u odnosu na prethodno je da se meusobnim povezivanjem


modula za proveru dva para ulaznih signala (slika 3.14) napravi struktura stabla kojom se m
parova ulaznih signala konvertuje u jedan par izlaznih signala. Za realizaciju vienivovske
strukture stabla za proveru m parova ulaznih signala pomou modula koji proveravaju n
parova ulaznih signala potrebno je [(m 1) (n 1)] modula i [log 2 m] nivoa. Na slici 3.16
prikazana je struktura stabla kola za proveru sa 6 parova ulaznih signala. Mogunost
samotestiranja ovakve strukture zavisi od toga da li su dovedeni ulazni signali dovoljni za
testiranje ispravnosti rada tog stabla [McCl90].

Slika 3.16. Kolo za proveru sa dva izlaza i est parova ulaznih signala

Postoji vie naina za primenu kola za proveru na polju konkurentne detekcije greke, a to
su: 1) samotestirajui komparator za duplicirane sisteme; 2) redukciono kolo koje smanjuje

47
Projektovanje kombinacionih i sekvencijalnih mrea sa samoproverom na osnovu VHDL opisa

broj izlaza kola za proveru na dva bita za indikaciju greke; 3) sastavni deo samotestirajueg
kola za proveru sistematskog koda kao to je Bergerov kd [Mour89].

3.5.1.3. Komparator sa potpunom samoproverom


Komparator sa potpunom samoproverom verifikuje da se za sve ulazne vektore koji imaju
istu vrednost (istu kodnu re na ulazu) na izlazu dobija specificirana vrednost (kodna re na
izlazu). Izlaz kola sa potpunom samoproverom kodira se pomou koda 1-od-2 (two-rail) to
odgovara pretpostavljenom skupu defekata postavljanja jedne od veza na fiksnu vrednost 0 ili
1. Na slici 3.17 prikazan je komparator sa potpunom samoproverom sa dva k-bitna ulaza
[Hugh84].

Slika 3.17. 2-ulazni k-bitni komparator

3.5.1.4. Kolo za proveru izdvojivih kodova


Nain provere rada kola na osnovu bita parnosti je najjednostavniji i najee se koristi u
raunarskim sistemima. Kola za proveru parnosti primenjuju se kod memorija, registara,
magistrala, konvertora kodova, komparatora i dekodera [Mour89].
Kola za proveru parnosti imaju najjednostavniju strukturu zato to kodiranje podatka
pomou koda parnosti omoguava da se deo za proveru sastoji od samo jednog bita. Na slici
3.18 prikazano je kolo za proveru parnosti 9-bitne kodne rei, a sastoji se od stabla XOR
gejtova. U sluaju korienja koda neparne parnosti, za sve validne kodne rei, izlaz z imae
vrednost 1 [McCl90].

Slika 3.18. Kolo za proveru parnosti za 9-bitnu kodnu re

U kolu sa slike 3.18 moe se detektovati bilo koja greka nastala usled defekta
postavljanja jednog od bitova na odreenu vrednost 0 ili 1 u podmreama H i J, koje imaju
osobinu samotestiranja. Ove podmree imaju osobinu samotestiranja ako bilo koji defekt
postavljanja jednog od bitova na odreenu vrednost uzrokuje indikaciju greke na izlazu kola
za proveru za bar jednu validnu kodnu re na njegovom ulazu. Bez obzira to podmree H i J,
posmatrane zajedno, imaju osobinu samotestiranja, kolo za proveru koje se sastoji od tri

48
3. Konkurentna detekcija greke

podmree H, J i Z, nema ovu osobinu. Prema tome, kolo za proveru koje ima mogunost
potpunog samotestiranja mora da ima bar dva izlaza pri emu svaki predstavlja parnost jednog
od dva izdvojena ulazna podskupa [McCl90]. Razlog za ovo je ve pomenut. Naime, ako
postoji samo jedan izlaz i ako se na njemu javi defekt postavljanja na odreenu logiku
vrednost 0 ili 1, i ako se u toku normalnog rada kola upravo ta vrednost oekuje na izlazu,
onda se takav defekt ne moe detektovati u prisustvu kodne rei na ulazu [Stan102],
[Stan202].
Kolo koje kombinuje etiri para izlaznih signala samotestirajuih kola za proveru (Self-
Testing Checker - STC) u jedan par signala prikazano je na slici 3.19. Pogodno je za detekciju
greke u 32-bitnim kompjuterskim sistemima. Kolo za proveru sa dva izlaza (Two Rail
Checker - TRC) je kombinaciono kolo koje proverava da li sva etiri para ulaznih signala
imaju komplementarne vrednosti i, ako je uslov ispunjen, na izlazu se dobijaju takoe
komplementarne vrednosti signala [Tohm86].

Slika 3.19. Samotestirajue kolo za proveru za 32-bitni podatak i 4 bita parnosti, nazvan 4STC

Projektovanje kola za proveru za Bergerov kd zasniva se na kolu za proveru sa


potpunom samoproverom za izdvojiv kd koje je dato je na slici 3.20. Generator bitova za
proveru je kombinaciona mrea koja na osnovu ulaznih informacionih bitova generie k
bitova za proveru koji ine vektor PX . U toku normalnog rada bitovi provere PX jednaki su
bitovima PX . Kolo za proveru sa dva izlaza (TRC) proverava da li su dva ulaza k-torki ( PX ,
PX ) komplementarni jedan drugom [Moha77]. Ako je na ulazu validna kodna re i ako nema
defekata u generatoru i kolu za proveru onda su njegovi izlazi komplementarni, tj. 01 ili 10.

Slika 3.20. Kolo za proveru sa potpunom samoproverom za izdvojiv kd

49
Projektovanje kombinacionih i sekvencijalnih mrea sa samoproverom na osnovu VHDL opisa

Procedura za projektovanje kola za proveru sa potpunom samoproverom za Bergerov kd


maksimalne duine predstavljena je u [Maro78]. Generator bitova za proveru na svom izlazu
generie binarni broj koji odgovara broju jedinica u informacionim bitovima. Projektuje se
(
pomou skupa potpunih sabiraa koji paralelno sabiraju informacione bitove x1 , x2 , ..., x k
2 1
)
i generiu binarni broj g1 , g 2 , ..., g k koji odgovara broju jedinica u informacionim bitovima.
Broj potrebnih modula sabiraa je
k 1
2
a 1
(k a ) , gde je k broj bitova provere.
a =1

Prema tome, ako se kodna re sastoji od tri informaciona bita i dva bita za proveru, onda
se generator sastoji od jednog potpunog sabiraa kod koga je izlaz za sumu s = g1 a izlaz za
prenos c = g 2 [Lala01].

3.6. Sekvencijalna kola sa samoproverom

U VLSI IC kolima koja implementiraju funkcije na nivou sistema, kao to su ASIC i ASIP
kola, korektnost njihovog rada zavisi od korektnosti kontrolne logike. Poto kontroleri
kontinualno generiu signale za druge staze podataka i komponente, bilo koji defekt moe da
uzrokuje masovno prostiranje greaka. Kontroleri su sekvencijalna kola koja, za razliku od
kombinacionih, sadre memorijske elemente. Drugim reima, izlazi sekvencijalnog kola
zavise ne samo od trenutnih vrednosti ulaznih signala ve i od prethodnih vrednosti.
Ponaanje kontrolera opisuje se apstraktnim modelom, poznat kao konani automat (Finite
State Machine - FSM) [Lala01]. Konani automati se mogu opisati na nekoliko razliitih
naina [Ambl03]:
1) Opis FSM pomou liste ulaza ( ), stanja ( Q ) i izlaza ( ) koja se dopunjuje
funkcijama prelaza ( ) i izlaza ( ) naziva se specifikacija FSM. Funkcija prelaza, , obino
se opisuje pomou tabele u kojoj se novo stanje dobija kao funkcija ulaza i prethodnog stanja.
Pored toga koristi se i predstavljanje funkcije prelaza pomou krugova i strelica. Ovakav opis
nije jedinstven jer dve FSM mogu biti ekvivalentne.
Funkcija prelaza, , definie se kao preslikavanje Q Q . Drugim reima, funkcija
svakom paru stanja i ulaznog simbola pridruuje simbol stanja. Model FSM-a
podrazumeva da je vreme podeljeno na intervale fiksnog trajanja, a da se prelaz iz jednog u
drugo stanje deava na poetku svakog vremenskog intervala. Znai, za dato stanje i ulazne
vrednosti u tekuem vremenskom intervalu, funkcija definie u kom e stanju FSM biti u
toku sledeeg vremenskog intervala.
Funkcija izlaza, , odreuje izlazne vrednosti u tekuem stanju automata. Postoje dva
tipa FSM-a, Murov i Milijev. Kod Murovog tipa, funkcija je difinisana kao preslikavanje:
Q , to znai da je svakom stanju pridruen izlazni simbol, tj. izlaz zavisi samo od
tekueg stanja. Kod Milijevog tipa, funkcija je preslikavanje: Q . U ovom
sluaju, u svakom stanju, izlazni simbol je odreen parom stanje - ulazni simbol, tj. izlaz
zavisi od tekueg stanja i ulaza.
Shodno definiciji FSM-a, skupovi , Q i mogu imati proizvoljan broj simbola.
Meutim, kod praktinih problema, radi se samo sa binarnim promenljivima, binarnim

50
3. Konkurentna detekcija greke

operatorima i binarinim memorijskim elementima. Iz tog razloga, funkcije i se definiu


kao Bulove funkcije koje se realizuju uz pomo logikih kola.
2) Opis FSM pomou liste gejtova i flip-flopova i veza izmeu njih predstavlja detaljan
opis implementacije na logikom nivou i naziva se logika implementacija FSM. Ovaj opis se
odnosi samo na sinhronu implementaciju pretpostavljajui postojanje CLOCK i RESET
signala. Na ovaj nain se ne dobija jedinstven opis jer projektant (ili CAD alat) mogu izabrati
razliite binarne kodove za predstavljanje informacija (ulazi, stanja, izlazi) to e dati razliite
implementacije.
3) FSM moe da se opie kao kombinacija nekoliko kola. Pri tome postoje razliite
kombinacije: serijska (ulazi jednog automata su izlazi drugog) i paralelna (neki od ulaza
jednog automata su deo izlaza drugog i neki od ulaza drugog su izlazi prvog automata).
4) U najveem broju sluajeva kola se opisuju kao skup registara, multipleksera,
aritmetikih operatora i magistrala. Ovaj tip opisa je Register Transfer Level - RTL koji
omoguava da se kompleksni automati opiu na jednostavan nain.
Svaki konani automat moe se realizovati pomou flip-flopova i logikih kola.
Hardversku implementaciju konanog automata ine dve glavne komponente: kombinacioni
deo i memorijski element. Kombinacioni deo se sastoji od funkcije prelaza, , i funkcije
izlaza, . U memorijskom elementu zadrava se trenutno stanje koje se predstavlja binarnom
vrednou. Konani automat je kolo koje se projektuje tako da prolazi kroz posebna stanja po
unapred odreenom redosledu. Model konanog automata predstavljen je na slici 3.21.

Slika 3.21. Model sinhronog konanog automata (FSM)

3.6.1. Defekti u sekvencijalnim kolima


Defekti se u konanom automatu mogu pojaviti na primarnim ulazima ili izlazima, ili
unutar kombinacione logike narednog stanja i izlaza. Usvojen model defekata je stuck-at tipa i
moe se pojaviti na ulazu ili izlazu svakog gejta. Na osnovu prethodno izvedenih zakljuaka
za projektovanje kombinaciona kola, moemo rei da i konani automat moe imati
mogunost samoprovere samo za pretpostavljeni skup defekata. Takav skup ukljuuje defekte
na jednom bitu i jednosmerne viestruke defekte.
Za defekt se kae da je redundantan ako su izlazi automata sa i bez defekta identini.
Redundantni defekti u sekvencijalnim kolima mogu se svrstati u dve kategorije: a)
kombinaciono redundantni defekti (Combinationally Redundant Faults CRF); i b)
sekvencijalno redundantni defekti (Sequentially Redundant Faults SRF) [Lala01].
Defekt je kombinaciono redundantan ako se njegov efekat ne moe uoiti na primarnim
izlazima ili ako ne utie na sledee stanje za svaku vrednost na ulazu i svako trenutno stanje.
Sekvencijalno redundantni defekti dele se u tri grupe:

51
Projektovanje kombinacionih i sekvencijalnih mrea sa samoproverom na osnovu VHDL opisa

1) Ekvivalentan SRF pod uticajem ovog defekta automat prelazi u sledee stanje ili u
stanje koje je ekvivalentno sledeem oekivanom stanju.
2) Nevalidan SRF ovaj defekt nije uzrok pogrenog prelaza iz validnog u neko drugo
validno stanje, ali moe da uzrokuje prelaz iz nevalidnog u validno stanje.
3) Izomorfan SRF ovaj defekt menja jedan ili vie kodova stanja, ali je kolo izomorfno
originalnom kolu.

3.6.2. Principi samoprovere u sekvencijalnim kolima


Princip samoprovere je, pored kombinacionih, pogodan i za projektovanje sekvencijalnih
mrea koje se zasnivaju na strukturi konanih automata. Ovaj pristup omoguava detekciju
permanentnih i tranzijentnih defekata, kao i brzu identifikaciju pogrenog ponaanja. Primena
principa samoprovere na kombinaciona kola podrazumeva kodiranje izlaza, a kod
sekvencijalnih kola kodiranje se primenjuje na izlaze i na stanja.
Koncepti samoprovere i sigurnosti na defekte najpre su definisani za kombinaciona kola.
U cilju formalnijeg definisanja, ovi pojmovi su proireni na sekvencijelna kola [Smit83]. Sve
potrebne definicije date su u Dodatku B.
Model sekvencijalnog kola sa potpunom samoproverom odgovara modelu sa slike 3.4.
Funkcionlno kolo ine logika narednog stanja i logika izlaza. Prema tome, za izlazne bitove i
bitove stanja mogu se primeniti isti ili razliiti naini kodiranja. U prvom sluaju, primena
istog koda za obadve logike omoguava korienje samo jednog generatora bitova za proveru.
Ali u sluaju primene razliitih kodova za logike izlaza i narednog stanja uslovljava
korienje dva razliita generatora bitova za proveru, a samim tim i dva dvoizlazna kola za
proveru. Izlazi ova dva kola za proveru dovode se na jo jedno kolo za proveru i na kraju se,
kao indikacija greke, generiu dva signala, k i j. Ovakva struktura sekvencijalnog kola sa
samoproverom prikazana je na slici 3.22. Kao to se vidi, kolo za proveru je primenjeno na
bitove trenutnog stanja i nalazi se iza memorijskih elemenata, mada moe da se primeni i na
bitove narednog stanja.

Slika 3.22. Model sekvencijalnog kola sa samoproverom

U visoko pouzdanim sistemima neophodno je detektovati greke i na stazi podataka i u


samoj kontrolnoj jedinici. Za takve sisteme projektanti su predloili dva osnovna pristupa za

52
3. Konkurentna detekcija greke

on-line detekciju greke. Prvi pristup je da se primenom iste tehnike proveravaju i izlazi
kontrolera i staza podataka. Drugi pristup je da se specijalne tehnike primene za posmatranje
prelaza stanja, odnosno toka kontrole. Drugi pristup moe da se ostvari ili kodiranjem stanja
nekim od kodova za detekciju greke ili praenjem toka kontrole specijalnim monitoring
automatima. Pratei automat nadgleda rad glavnog automata, tako da se defekt u svakom
automatu detektuje neposredno nakon pojavljivanja. Pratei i glavni automat rade u
sinhronizmu (pobuuju se istim taktnim signalom) i reaguju na iste ulaze. Ispravan rad
glavnog automata se verifikuje poreenjem njegovog tekueg stanja sa tekuim stanjem
prateeg automata. Trivijalno reenje je ono kod koga je pratei automat identina kopija
glavnog automata. Pojava defekta u bilo kojem od dva automata uslovie da se njihova stanja
razlikuju. Meutim, ako se razmatranje ogranii na neki restriktivni model defekta, tada je
mogue pojednostaviti pratei automat. Pratei automat (slika 3.23) obezbeuje uniforman
mehanizam za detekciju defekata kanjenja i stack-at tipa [Pare95]. Za modele defekta, kao
sto su defekti kanjenja, ova tehnika omoguava znaajno pojednostavljenje prateeg
automata. Meutim, za modele defekta kao to je stuck-at model, pojednostavljenje prateeg
automata obino je relativno malo. Ove tehnike dovode do poveanja povrine, degradacije
performansi i kanjenja u detekciji greke. Njihov uticaj na brzinu sistema ne moe da se
tolerie za visoko performansne aplikacije [Hell98].

Slika 3.23. Kontrola sekvencijalnog kola

U cilju dobijanja brzih kontrolera sa samoproverom mogu se kombinovati eme za


detekciju greke i tehnike dekompozicije. Ako se, pri tome, na svaki podautomat primeni
detekcija greke, dolazi do velikog poveanja povrine. Zato je bolje reenje da se u
potpunosti primeni tehnika dekompozicije kontrolera na podautomate, ali da svi dobijeni
automati, preko multipleksera, koriste isto kolo za proveru [Hell98].

3.7. Sistemi sa samoproverom

Svi koncepti samoprovere koji su prethodno definisani za kombinacione i sekvencijalne


mree vae i za ceo digitalni sistem. Sistem sa potpunom samoproverom prikazan je na slici
3.24 [JhaN93]. Funkcionalna kola 1 i 2 su kombinaciona, a funkcionalno kolo 3 je
sekvencijalno. Izlazi kola za poveru 1, 2, 3 i 4 redukovani su korienjem dodatna tri kola za
proveru sa dva izlaza, i na kraju su dobijena samo dva izlaza, z1 i z 2 .

53
Projektovanje kombinacionih i sekvencijalnih mrea sa samoproverom na osnovu VHDL opisa

Slika 3.24. Sistem sa potpunom samoproverom

3.8. Manifestacija greaka na nivou sistema

U cilju postizanja pouzdanosti prvi i osnovni korak je detekcija greke. U ovom poglavlju
ve su razmotreni naini detekcije i dobijanja signala o postojanju greke. Sada se postavlja
pitanje: Kako se detektovana greka manifestuje na sistem? Pored mehanizma za detekciju
greke sistem mora da poseduje i mehanizam za oporavak (recovery) koji manipulie sa
signalom greke.

Slika 3.25. Algoritam oporavljanja sistema od greke

54
3. Konkurentna detekcija greke

Slika 3.25 ilustruje opti algoritam oporavljanja sistema. Greka se najpre detektuje
pomou nekog od metoda za konkurentnu detekciju greke. U prvom trenutku pojavljivanja
greka se tretira kao tranzijentna, a ako se i dalje javlja onda se tretira kao permanentna
greka. U sluaju pojave tranzijentnog defekta koji uzrokuje greku, sistem se oporavlja iz
pogrenog stanja i nastavlja sa normalnim radom. Kada se javi permanentni defekt najpre se
utvruje njegova lokacija a onda se bira pogodna konfiguracija u skladu sa dostupnom
povrinom i na kraju se sistem vraa u normalno stanje i nastavlja sa radom.
Na primeru protonog sistema razmotriemo jednu od moguih tehnika za automatski
oporavak od greke uzrokovane tranzijentnim defektom (slika 3.26). Na slici 3.26 prikazana
je struktura jednog tipinog petostepenog protonog mikroprocesora. Svaki stepen sadri
kombinacionu logiku, koja obavlja neku specificnu obradu (kao to je pribavljanje instrukcije
(IF), dekodiranje instrukcije (ID), izvrenje (EX), pristup memoriji (MEM) i upis rezultata u
registar (WB)), i registar u koji se upisuje rezultat obrade i prosleuje sledeem stepenu na
dalju obradu. Kombinaciona logika u svakom stepenu poseduje sposobnost samoprovere, koja
je ostvarena primenom neke od ranije razmatranih tehnika (dupliciranje, parnost, Berger-ov ili
Bose-Lin-ov kd). Pojava tranzijentnog defekta u bilo kom stepenu uslovie generisanje
globalnog signala greke, koji se koristi za upravljanje globalnim taktom. Sve dok je signal
greke postavljen na 0 (nema greke), sistem radi normalno na kraju svakog ciklusa, tj. u
trenutku aktivne ivice takta, rezultat obrade svakog stepena upisuje se u registar i tako
prosleuje na dalju obradu sledeem stepenu. Meutim, ako je u trenutku aktivne ivice takta,
signal greke postavljen na 1, upis u registre bie onemoguen, a svi stepeni ponovie obradu
nad istim podacima. Sistem nastavlja sa normalnim radom u sledeem ciklusu, pod uslom da
je u meuvremenu prestalo dejstvo tranzijentnog defekta.

Slika 3.26. Automatiski oporovak protonog sistema od greke

Manifestaciju tranzijentne greke i mogunosti za povratak sistema u ispravno stanje


moemo, takoe razmotriti na primeru reprezentativnog raunarskog sistema. Sistem se
sastoji od veeg broja modula meu kojima su centralna procesorska jedinica (CPU),
generator taktnog signala, ROM i RAM memorija, i periferijski ili ulazno/izlazni ureaji.
Komunikacija izmeu modula ostvaruje se preko magistrale. Do greke u prenosu signala
najee dolazi na magistrali, usled uticaja mnogih efekata kao to su presluavanje,
oscilovanje, refleksija, slabljenje, izoblienje i drugi. Pored toga, usled pojave defekata u
svakom od modula moe doi do generisanja pogrenog izlaznog signala. Zato je, u cilju
ouvanja integriteta podataka, neophodno primeniti tehnike za detekciju greke i na sve
module i na magistralu.
Svi moduli raunarskog sistema mogu se nezavisno proveravati korienjem neke od
predloenih tehnika za detekciju greke. U svakom sluaju, modul koji ima mogunost
samoprovere, pored standardnih izlaza generisae jo dva dodatna signala za indikaciju
greke, kao to je prikazano na slici 3.27. Ovako dobijeni signali greke na izlazu svakog od
postojeih modula dovode se na ulaz kodera kome se dodeljuje specifina funkcija. Ako je

55
Projektovanje kombinacionih i sekvencijalnih mrea sa samoproverom na osnovu VHDL opisa

svakom modulu unapred dodeljena adresa, onda je funkcija kodera, upravo generisanje
objedinjenog signala greke i adrese modula kod koga je detoktovana greka. Svi signali koje
generie koder dovode se do posebnog procesora koji e zatim preduzeti odgovarajuu
proceduru za automatski oporavak sistema. Jedna od moguih procedura podrazumeva
ponitavanje skoranjih rezultata izraunavanja i povratak sistema u poslednje poznato
korektno stanje. Drugi nain, koji se koristi u sluaju da se greka ponavlja, predstavlja
iskljuivanje iz sistema onog modula kod koga se javila greka. Primenom neke od ranije
pomenutih metoda za korekciju greke ovaj modul moe da se vrati u ispravno stanje i da
nastavi svoj rad.
Za proveru prnosa podataka preko magistrale neophodno je da se svi moduli poveu na
magistralu preko dodatnog kola koje ima ulogu predajnika ili prijemnika. U sluaju da predaje
podatak ka magistrali, ovo kolo treba da generie dodatne bitove i ima ulogu generatora
bitova za proveru. Ako prima kodiran podatak sa magistrale, onda ima ulogu kola za proveru i
tada generie dva dodatna signala za indikaciju greke. Ova dodatna kola prikazana su na slici
3.27, a oznaena su sa TRGC (TRansceiver Generator/Checker). Signali greke svakog
TRGC-a dovode se na ulaz kodera ija je funkcija generisanje jedinstvenog signala greke na
magistrali. Zato se ovaj signal dovodi do posebnog procesora koji vraa sistem u poslednje
poznato korektno stanje.

Slika 3.27. Opta arhitektura raunara sa automatskim oporavkom

56
4. Projektovanje logikih mrea sa samoproverom

4. Projektovanje logikih mrea sa samoproverom

Projektovanje mrea sa samoproverom podrazumeva proirenje osnovnog kola i obino se


svodi na dodavanje hardverske strukture za konkurentnu detekciju greke u prethodno
projektovano kolo. U zavisnosti od naina detekcije greke, odnosno primenjenog koda,
razvijene su razliite tehnike projektovanja mrea sa samoproverom. Najpre su razvijene
metode projektovanja koje su se bazirale na manuelnom dodavanju strukture za konkurentnu
detekciju greke od strane projektanta. Vreme projektovanja primenom takvih metoda
negativno je uticalo na produktivnost projekta. Zato se javila potreba za automatskim
metodama projektovanja kola sa samoproverom, uz korienje alata za logiku sintezu.

4.1. Razlozi i znaaj projektovanja kola sa samoproverom

Razvoj VLSI tehnologije doveo je do toga da se vei sistemi, koji su do tada


implementirani kao tampane ploe, smetaju na jedan ip i da dimenzije ureaja postaju sve
manje. Zbog ove nove tehnologije projektovanja i poveanja kompleksnosti, kola postaju
sklona grekama, a pouzdanost dobija vanu ulogu u projektovanju VLSI kola [DeK94].
Naime, aplikacije u kojima je sigurnost sistema od kritine vanosti moraju da zadovolje
zahteve pouzdanosti i visokih performansi. Projektanti obino postiu visoke performanse
implementiranjem protonih ili paralelnih puteva podataka i dekompozicijom konanih
automata u manje jedinice. Da bi bili sigurni da sistemi zadovoljavaju standarde kvaliteta,
proizvoai moraju da koriste tehnike testiranja, tolerancije defekata i samoprovere.
Na osnovu prethodnog moe se rei da je konkurentna detekcija greke vaan zahtev pri
projektovanju sistema u kojima je neophodno obezbediti pouzdanost i integritet podatka.
Integritet podatka podrazumeva da sistem generie korektan izlaz, a jedino u sluaju pojave
defekta izlaz postaje nekorektan. Ova osobina je predstavljena kao osobina sigurnosti u
prisustvu defekata [Siew92]. Kolo sa konkurentnom detekcijom greke moe da detektuje
permanentne i tranzijentne defekte, odnosno greke koje su stalno prisutne i greke koje se
povremeno pojavljuju [Toub94].

4.2. Osnovne metode za projektovanje kola sa samoproverom

Pouzdanost VLSI kola moe se postii hardverskom, informacionom ili vremenskom


redundansom [DeK94], [John90]. Osnovni principi tih metoda predstavljeni su u Poglavlju 2.
Informaciona redundansa obuhvata korienje mnogih kodova. Pri tome se kodovi
parnosti, Berger-ovi, Bose-Lin-ovi i drugi, koriste za funkcije prenosa i memorisanja
podataka, dok se za funkcije manipulisanja sa podacima, kao to su aritmetike i logike
operacije, koriste AN i kodovi ostatka. Osnovni oblik hardverske redundanse podrazumeva
dupliciranje funkcije i poreenje rezultata dve kopije funkcionalnog kola. Hardverska i
informaciona redundansa najee se koriste za projektovanje pouzdanih kola. Ova dva
pristupa garantuju detekciju greke deljenjem skupa izlaznih kombinacija, u zavisnosti od
postojanja defekta, na kodne i nekodne rei. Kolo za proveru prati konfiguracije na izlazu i,
kada detektuje nekodnu re, signalizira pojavu defekta [Bolc98]. U nekim sluajevima gde

57
Projektovanje kombinacionih i sekvencijalnih mrea sa samoproverom na osnovu VHDL opisa

performanse nisu od posebne vanosti, u cilju poveanja pouzdanosti, moe da se primeni


vremenska redundansa.
S obzirom da se metodologija VLSI projektovanja kree ka viim nivoima automatizacije,
uslovila je da se kola projektuju pomou alata za logiku sintezu. Pri tome, stalno se teilo da
uloga projektanta bude u tome da specificira ciljeve na visokom nivou, koji se odnose na
minimizaciju prostora, optimizaciju kanjenja, poboljanje pouzdanosti i testabilnosti, a da
alat za sintezu generie kolo automatski, zadovoljavajui zadata ogranienja.
Dananja kompleksna VLSI kola obino se projektuju na vie nivoa apstrakcije u koje
spadaju layout, nivo tranzistora, nivo gejta, registarski nivo (Register Transfel Level - RTL), i
nivo ponaanja (behavioral). Projektanti opisuju kola hijerarhijski, odnosno top-down
metodom, uz korienje CAD (Computer-Aided Design) alata.
Konvencionalni sistemi za sintezu logikih kola zasnivaju se na funkcionalnom opisu i
usmereni su ka sledeim zahtevima: 1) smanjenju povrine koju zahteva logiki blok, to se
meri brojem literala ili brojem gejtova; 2) poboljanju performansi izraenih u obliku
kanjenja kroz gejtove [Wein89]; ili 3) poboljanju testabilnosti sintetizovanog kola, to se
meri redundansom rezultantnog kola [DeK91].
Jedan od sistema za optimizaciju vienivovskih logikih kola je MIS [Bray87] iji se
algoritam za sintezu zasniva na algebarskoj faktorizaciji. Pri tome se za date Boolean-ove
izraze ekstrahuju zajedniki faktori, a u kolu se svaki faktor sintetie kao vor u Boolean-ovoj
mrei. Onda izrazi kojima je potreban taj zajedniki faktor koriste novi vor umesto da vie
puta implementiraju taj opti faktor. U MIS sistemu opti faktor moe da se koristi i u
normalnom i u komplementarnom obliku. Alat SIS, razvijen na Univerzitetu Berkeley, koristi
se kod sekvencijalnih kola za minimizaciju stanja, dodelu stanja, i optimizaciju izraza za
logiku narednog stanja i logiku izlaza.
Teorija projektovanja sistema sa potpunom samoproverom prezentovana je u radu
[Smit83]. Definicije metodologija za projektovanje kola sa samoproverom takoe su uslovile
realizaciju alata za automatsku sintezu pouzdanih vienivovskih kola. RSYN [DeK94] je
sistem namenjen automatskoj sintezi pouzdanih vienivovskih kombinacionih kola na osnovu
algoritama koji su integrisani u sam sistem. Ogranien je u odnosu na MIS jer koristi faktor
samo u normalnom ili samo u komplementarnom obliku. Takav sistem zahteva od korisnika
da specificira logiku funkciju kombinacionog modula u Boolean-ovom obliku, a
vienivovska logika prezentacija kola, sa ugraenim dodatkom za detekciju greke, generie
se automatski. Na osnovu kodova za detekciju greke (kodovi dupliciranja, parnosti, Berger-
ovi i Bose-Lin-ovi) predloene su tri eme za dobijanje kola sa samoproverom kojima se
mogu detektovati svi defekti u kolu koji su nastali fiksiranjem jedne od internih veza na
vrednost 1 ili 0 (single stuck at fault), izuzev onih na primarnim ulazima. Korisnik moe da
izabere bilo koju od pomenutih ema, integrisanih u sistem, a on e automatski generisati
pouzdano kolo sa svim kolima za proveru koja su neophodna za datu emu i na kraju e dati
layout kola [DeK94].
Procedura duplikacije dvonivovskog ili vienivovskog kola predloena u radu [DeK94]
podrazumeva automatsko dupliciranje kola od strane sistema. Sistem takoe automatski
generie komparator sa potpunom samoproverom iji je broj ulaza parametrizovan, a izlazni
signali greke su kodirani kodom 1-od-2 (dual-rail).
Jedna od varijanti dupliciranja kola, koja obuhvata korienje originalne funkcije i
komplementa te funkcije, data je u radu [Sedm80]. U sluaju direktnog dupliciranja,
verovatnoa da oba kola otkau na identian nain (opti nain otkaza) vrlo je visoka, zato to

58
4. Projektovanje logikih mrea sa samoproverom

su ona implementirana korienjem istih tipova kola sa identinim fizikim izgledom. Ako se
isti defekt pojavi u oba kola, on e biti maskiran. Sa novom predloenom emom
funkcionalnost komplementa originalne funkcije implementirana je na VLSI ip sa razliitim
fizikim layout-om. Zato je malo verovatno da e se efekti identinih defekata desiti u oba
kola.
U radu [Bolc98] predloena je jo jedna varijanta dupliciranja. Karakteristika ovog
pristupa je implementacija dve kopije istog kola pri emu druga kopija generie izlazne
vrednosti koje su komplementarne vrednostima prve kopije, a pomou stabla kola za proveru
sa dva izlaza ove vrednosti se porede.
U radu [Moha02] opisan je novi metod za projektovanje logikih kola sa konkurentnom
detekcijom greke. Kljuna ideja je iskoristiti osetljivost vorova u logikom kolu na
asimetrine soft greke. Ovaj pristup se zasniva na parcijalnom dupliciranju i pokazuje da je
mogue znaajno smanjiti stopu otkaza soft greke i sa deliminim poveanjem povrine i
kanjenja u odnosu na poveanje kod potpunog dupliciranja.
U radu [JhaN93] predloen je metod za sintezu kola sa samoproverom koji se zasniva na
kodu za detekciju jednosmernih defekata (Berger-ov kd). Po ovom metodu funkcionalno
kolo je optimizovano korienjem MIS skripta sa algebarskim operacijama pri emu se
transformie u kolo bez invertora (inverter free), odnosno invertori su samo na primarnim
ulazima. Primarni izlazi su onda kodirani pomou koda za detekciju jednosmernih greaka.
Poto su invertori samo na ulazima, bilo koji defekt nastao postavljanjem neke od unutranjih
veza na odreenu vrednost, generie jednosmernu greku na primarnim izlazima, to znai da
e sigurno biti detektovana Berger-ovim kodom.
ema zasnovana na Berger-ovom kodu, koji moe da detektuje greke na jednom bitu i
viestruke jednosmerne greke, predloena je u radu [DeK94]. Cilj je da se ideja konkurentne
detekcije greke proiri na vienivovska kola.
U radu [DasD99] predstavljen je metod za sintezu vienivovskih kola sa konkurentnom
detekcijom greke na osnovu Bose-Lin-ovog koda. S obzirom da se jednostavniji Bose-Lin-ov
kd koristi umesto Berger-ovog koda, dobija se znaajno smanjenje hardvera bez smanjenja
mogunosti za detekciju greke.
U radu [DeK94] predloen je motod za konkurentnu detekciju greke zasnovan na
korienju koda parnosti za razliite grupe izlaznih bitova. Za konkurentnu detekciju greke u
logikim kolima takoe je predloeno korienje predvianja parnosti (parity prediction). Ove
eme, na osnovu ulaza, generiu bit parnosti izlaza tako da se mogu detektovati greke na
jednom bitu [Prad72]. Specifine eme su predloene da bi se generisala parnost aritmetikih
funkcija kao to su sabiranje, mnoenje itd. [Wake82].
Princip samoprovere je, pored kombinacionih, pogodan i za projektovanje sekvencijalnih
mrea koje se zasnivaju na strukturi konanih automata. Ovaj pristup omoguava detekciju
permanentnih i tranzijentnih defekata, kao i brzu identifikaciju pogrenog ponaanja. Primena
principa samoprovere na kombinaciona kola podrazumeva kodiranje izlaza, a kod
sekvencijalnih kola kodiranje se primenjuje na izlaze i na stanja.
Sekvencijalna kola sa konkurentnom detekcijom greke predloena su u [JhaN93]. Bitovi
stanja su kodirani m-od-n kodom, a izlazi Berger-ovim kodom, pa su za proveru stanja i izlaza
potrebna razliita kola za proveru.
U radu [DasD99] predloeno je kodiranje bitova stanja i izlaznih bitova Bose-Lin-ovim
kodom. U tom sluaju moe da se koristi jedno kolo za proveru pa se i poveanje povrine
smanjuje. Sinteza kola mora da se uradi tako da svi interni defekti mogu da uzrokuju samo

59
Projektovanje kombinacionih i sekvencijalnih mrea sa samoproverom na osnovu VHDL opisa

one greke koje se mogu detektovati Bose-Lin-ovim kodom. Da bi se ispunio ovaj uslov
moraju da budu zadovoljena dva ogranienja. Prvo ogranienje je da kolo mora da bude bez
invertora (inverter free) kako bi se javile samo jednosmerne greke (ovo ogranenje je isto
kao i za Berger-ov kd). Drugo ogranienje je da jedan primarni ulaz ne moe da bude
povezan sa vie od t primarnih izlaza, u sluaju da se Bose-Lin-ovim kodom moe detektovati
t jednosmernih greaka.
Vienivovska logika optimizacija koristi operatore koji ponovo generiu strukturu kola i
minimiziraju logiku. Prema tome, ako je sinteza ograniena algebarskim transformacijama
onda je uslov inverter free ispunjen. Operacije vienivovske logike optimizacije koje
restruktuiraju kolo moraju da budu ograniene tako da ne uvode fanout koji kreira put od
jednog vora do vie od t primarnih izlaza. Dve operacije restrukturiranja, koje uvode fanout,
su supstitucija i ekstrakcija [DasD99].
Koncepti konkurentne detekcije greke primenjeni su i na PLA kola, uz minimalno
poveanje cene hardvera [Khak82]. U radu [Fuch87] predloene su dve eme za PLA kola.
Kod prve eme ulazi i izlazi kola kodiraju se Bergerovim kodom, a kod druge eme generiu
se posebna tri izlaza kao bitovi za proveru.

4.3. Metoda projektovanja mrea sa samoproverom na osnovu VHDL-a

Mehanizmi koji omoguavaju on-line detekciju ili toleranciju defekata godinama su


integrisani u kola koja su namenjena kritinim aplikacijama kao to su kosmiki brodovi,
avioni i automobili, u kojima je greka u peformansama sistema neprihvatljiva a tolerancija
defekata obavezna. U takvim aplikacijama negativan uticaj on-line testiranja na povrinu i
performanse bio je prihvatljiv jedino iz razloga potrebe za visokom pouzdanou.
Implementacija tih mehanizama uglavnom se vrila manuelno, jer relativno mali broj
aplikativnih oblasti nije bio primamljiv za razvoj CAD alata koji bi bili namenjeni
specifinom projektovanju on-line testabilnih kola. Meutim, znaajno vreme potrebno za
runo insertovanje (umetanje) strukture za detekcije defekata negativno utie na
produktivnost i vreme projektovanja pa nije u saglasnosti sa zahtevima trita na tom polju.
Zato se poveala potreba za fleksibilnim alatima koji bi omoguili poveanje pouzdanosti
kola [Leve02], [Entr201].
Da bi se poveala produktivnost i smanjilo vreme razvoja kola koja su otporna na defekte
neophodno je korienje automatskih CAD alata. Takav alat mora da bude u potpunosti
kompatibilan sa industrijskim tokom projekta koji se zasniva na komercijalnim alatima za
sintezu i simulaciju. Takoe, alat mora da omogui razliite kompromise izmeu
karakteristika pouzdanosti i poveanja povrine (indukovanog poveanja cene), tako da
projektant moe podeavati mehanizme implementirane u razliite blokove kola u saglasnosti
sa ogranienjima svakog bloka [Leve90], [Entr201].
Rasprostranjeno korienje HDL-a (Hardware Description Languages) i alata za sintezu
uslovilo je projektovanje na registarskom nivou (Register Transfer Level - RTL). Postoji
nekoliko razloga zbog kojih projektanti, u cilju postizanja pouzdanosti, preferiraju
modifikaciju kola opisanog u HDL-u na registarskom nivou.
Kao prvo, to je prirodan izbor, zato to danas veina projektanata uglavnom radi na ovom
nivou. Ovaj izbor takoe omoguava korienje funkcionalne (behavioral) simulacije u cilju
verifikovanja modifikovanog kola. Na ovaj nain se skrauje vreme simulacije zato to je
simulacija na nivou ponaanja efikasnija od simulacije na nivou gejta.

60
4. Projektovanje logikih mrea sa samoproverom

Modifikacija na RT nivou prua mogunost korisniku da prepozna izvrene izmene u


kodu i na taj nain dobije vee samopouzdanje u procesu modifikacije, jer ako je potrebno,
korisnik moe i sam da menja dobijeni opis. Takoe, korisnik moe da uporedi rezultate
dobijene automatskom i manuelnom modifikacijom opisa prvobitno zadatog kola.
Sa druge strane, vano je istai da, i pored toga to svaki VHDL opis kola prua
mogunost simulacije, ne moe u potpunosti da garantuje sintezu opisanog kola. Neke VHDL
konstrukcije nemaju validnu prezentaciju u digitalnoj logici, dok druge ne mogu da garantuju
odreenu tanost. Algoritmi za sintezu mogu da izvre optimizaciju RTL opisa kola i pri tome
su usmereni ka odreenoj tehnologiji. Algoritmi planiranja i dodeljivanja, koji vre
optimizaciju na vrlo visokom nivou apstrakcije, nisu dovoljno jasni za opte aplikacije kola.
Prema tome, rezultat sinteze VHDL opisa zavisi od stila (naina) koji se koristi. U cilju
postizanja eljne implementacije kola koja zadovoljava vremenska i prostorna ogranienja,
korisnici alata za sintezu bi trebalo da razumeju neke od principa sinteze koji su odreeni
nainom VHDL kodiranja na registarskom nivou. Alati za sintezu su pogodni za reavanje
glomaznih problema logike optimizacije na registarskom nivou, koji se javljaju u toku top-
down procesa projektovanja [HDL98].
U ovoj tezi je predloen pristup automatskog dodavanja strukture za samoproveru koji je
kompatibilan sa svakim okruenjem koje podrava VHDL ulaz. Na taj nain je omogueno
potpuno korienje komercijalnih alata za sintezu. Njihovim korienjem, mnoge strukture sa
osobinom samoprovere mogu se korektno sintetizovati, uz neznatno poveanje vremena
projektovanja. Uvek kada je to neophodno, projekat se moe modifikovati na niim nivoima
apstrakcije [Entr101]. S druge strane, primena mnogih tehnika u cilju dobijanja pouzdanih
kola zahteva korak sinteze koji ne moe da se izvri jednostavnom zamenom neke logike
elije njenim testabilnim ekvivalentom (kao to je to sluaj kod strukturne DFT (Design For
Testability) tehnike) sem u nekim trivijalnim sluajevima.
Osnovna prednost ovakvog pristupa, tj. modifikacije kola na registarskom nivou u odnosu
na modifikaciju izvrenu na nivou gejta sastoji u tome to omoguava rano insertovanje
potrebnih mehanizama i rano potvrivanje pouzdanosti kola ili sistema. Nedostatak ovakvog
pristupa ogleda se u tekoi da se precizno prati struktura implementiranih mehanizama kao i
potencijalno poveanje povrine i kanjenja [Leve02].
Nakon svega to je do sada reeno, moemo zakljuiti da se projektovanje kola sa
samoproverom obino vri uvoenjem strukture za konkurentnu detekciju greke u prethodno
projektovano kolo. Metodologija koja se zasniva na HDL-u podrazumeva modifikaciju HDL
koda u cilju insertovanja hardverske, informacione ili vremenske redundanse u kritinim
takama kola. Predloeni su mnogi alati za automatsko dodavanje strukture za konkurentnu
detekciju greke u postojei HDL opis kola u cilju dobijanja HDL opisa kola koje je
tolerantno na defekte. Pomou ovakvog alata u proces projektovanja moe da se ukljui
eljena struktura, uz malo poveanje cene i vremena razvoja, i pri tome se automatski, u sladu
sa korisnikim specifikacijama, dobija HDL opis kola koje ima osobinu samoprovere. Ovako
dobijen projekat moe da se simulira i sintetie pomou komercijalnih CAD alata [Entr201].
Pored svih koraka koji su neophodni za projektovanje kombinacionih kola sa
samoproverom na viem nivou apstrakcije, u toku projektovanja sekvencijalnih kola
neophodno je razmotriti i problem kodiranja stanja. Berger-ov i m-hot kd najee se koriste
za kodiranje stanja. Prednost tehnike kodiranja stanja na funkcionalnom nivou, anlizom
dijagrama stanja automata, ogleda se u tome to ne zahteva poznavanje fizike strukture kola.
Muutim, upravo iz tog razloga tehnika ne garantuje totalnu samoproveru, s obzirom da ne
obezbeuje zatitu od sluajeva kada usled defekta automat prelazi u pogreno sledee stanje.
Takoe, funkcionalna definicija TSC osobina nije u potpunoj vezi sa implementacijom

61
Projektovanje kombinacionih i sekvencijalnih mrea sa samoproverom na osnovu VHDL opisa

logike mree na nivou gejta. Naime, metodologija definisana na funkcionalnom nivou ne


omoguava detekciju svih defekata stuck-at tipa, koji se mogu detektovati na nivou gejta.
Zbog nedostatka kompletne veze defekt-greka koja sigurno postoji na strukturnom nivou i
garantuje da svaki defekt generie samo one greke koje se mogu detektovati, neophodno je
definisati strategiju sinteze koja je u mogunosti da iskoristi osobine koda koje ine defekt
opservabilnim na taj nain to generie nekodnu re. Drugim reima, metodom projektovanja
sekvencijalnih kola sa samoproverom moe se postii potpuno pokrivanje defekata
delovanjem na opservabilnost defekata, tj. na njihovu mogunost da generiu greku koja se
moe detektovati [Bolc00].
U radu [Bolc00] predloena je jedna sveobuhvatna metodologija za projektovanje TSC
sekvencijalnih arhitektura na osnovu VHDL specifikacije. Metodologija podrazumeva da se
sistem moe razloiti na upravljaku jedinicu i stazu podataka, to je najee sluaj kod
sistema koji se opisuju u VHDL-u. Upravljaka jedinica se modelira kao konani automat,
dok se staza podataka sastoji od registara i kombinacionih blokova za obradu i
preusmeravanje podataka, kao to su ALU i multiplekseri. Sposobnost samoprovere na nivou
upravljake jedinice postie se specifinim kodiranjem stanja FSM-a koje obezbeuje
konstantno Hamming-ovo rastojanje izmeu binarnih kodova bilo kog para tekue-sledee
stanje. U toku rada, kolo za proveru, u svakom taktnom ciklusu, odreuje Hamming-ovo
rastojanje izmeu tekueg i sledeeg stanja i, ako se ono razlikuje od usvojenog, signalizira
greku. Da bi se ostvarila totalna samoprovera, predloena metodologija predvia naknadnu
analizu strukture sintetizovane FSM i duplikaciju onih logikih kola iji otkaz moe da
dovede do greake, koja se inae ne moe detektovati kodom. Za projektovanje staze
podataka, metodologija koristi klasine tehnike za samoproveru (npr. parnost ili Berger-ov
kd) ili ad-hoc tehnike za blokove regularne strukture, kao to su aritmetika kola.
Metodologija predstavljena u radu [Bolc00] integrisana je u proces projektovanja VLSI
sistema koji je opisan u VHDL-u. Na ovaj nain omoguena je integracija predloenog
pristupa u standardni industrijski tok projekta (design flow). Prednost predloenog metoda
ogleda se u kompletnosti pristupa za realizaciju kompleksnih sistema sa potpunom
samoproverom koji se zasniva na VHDL-u. Drugi pristupi uglavnom rade sa podskupom
sistema (tipino su to kontroleri), a cilj je ostvariti to manje poveanje povrine. Poveanje
povrine predloenog metoda najee potie od injenice da su sve komponente
projektovane tako da budu sa potpunom samoproverom (TSC) i da su ukljuena sva potrebna
kola za proveru kako bi se dobio sistem sa potpunom samoproverom.
U radu [Entr201] predloene su tehnike za automatsko insertovanje strukture za
konkurentnu detekciju greke u VHDL opis kola na RT nivou. Predloene tehnike
omoguavaju da se manuelni nain insertovanja hardverske i informacione redundanse, u cilju
projektovanja kola otpornih na defekte, zameni automatskim nainom, da se poveava
produktivnost projekta i da se smanje anse za greku.
U radu [Leve02] predloen je novi alat za automatsko insertovanje strukture otporne na
defekte u HDL opis kola. Sa ovim alatom verzija kola otpornog na defekte moe se generisati
automatski, u saglasnosti sa specifikacijama korisnika. Cilj rada [Leve02] je da proceni
praktinost i interes pristupa koji se zasniva na automatskoj modifikaciji specifikacija visokog
nivoa.
Svi prethodno navedeni razlozi uticali su na to da se, u ovoj tezi, projektovanje mrea
(digitalnih integrisanih kola) sa samoproverom zasniva na VHDL opisu kola i korienju
komercijalnih CAD alata. Koristi se metod poluautomatskog dodavanja strukture za
konkurentnu detekciju greke u postojei VHDL opis prvobitno zadatog kola. Na osnovu

62
4. Projektovanje logikih mrea sa samoproverom

ovako dobijenog modifikovanog VHDL opisa kola i korienjem CAD alata moe da se uradi
sinteza i implementacija kola sa samoproverom.
Metoda projektovanja zasnovana na VHDL-u, predstavljena u ovoj tezi, omoguava
implementaciju kombinacionih i sekvencijalnih kola sa samoproverom na registarskom (RT)
nivou apstrakcije. Ova metoda definie ablone (templejte) koji su u obliku VHDL kda.
Komponente koje ine strukturu za konkurentnu detekciju greke, odnosno moduli koje bi
trebalo ukljuiti u VHDL opis prvobitno zadatog kola, unapred su opisani i sauvani u
specificiranoj biblioteci. Svi potrebni moduli opisani su u posebnom VHDL paketu kao
generike komponente pri emu je broj ulaza i broj izlaza predstavljen parametarski. Opis tih
modula zasniva se na prethodnim istraivanjima na polju tolerancije defekata. Projektant bi
trebao samo da koristi elemente postojee biblioteke, a ne da ih ponovo generie. Na ovaj
nain, korisnik ne treba da bude ekspert u razvoju tehnika za postizanje pouzdanosti, va treba
samo da ukljui postojee komponente u svoj VHDL opis. Primeri takvih komponenti su
koderi, dekoderi i kola za proveru.
Predstavljena metoda nudi razliite opcije projektovanja koje projektantima pruaju
mogunost lakog kreiranja VHDL opisa kola sa samoproverom. Takoe, projektanti mogu
veoma rano, jo u fazi projektovanja, da procene poveanje povrine i kanjenja za svaku od
postojeih opcija. Naime, predstavljenom metodom vri se modifikacija prethodno razvijenog
inicijalnog VHDL opisa pomou dodatnih modula za konkurentnu detekciju greke koji su
definisani tako da je dobijeni opis kola sa samoproverom nezavisan od alata za sintezu.
Struktura predloene metode za generisanje kola sa samoproverom prikazana je na slici
4.1. Po ovoj emi najpre se analizira poetni VHDL opis prvobitno zadatog kola. Korisniki
interfejs omoguava korisniku da izabere odreenu tehniku za modifikaciju prvobitno zadatog
kola u cilju generisanja kola sa samoproverom. Opisi komponenata, koji su neophodni za
svaku od dostupnih tehnika, nalaze se u biblioteci komponenata za konkurentnu detekciju
greke (CED library). Deklaracije komponenti su primeri konstrukcija koje se obino
smetaju u pakete (package). Uopteno govorei, VHDL paket omoguava da se pojedine
VHDL konstrukcije deiniu u jednom, a koriste u drugim izvornim fajlovima. Biblioteka
predstavlja lokaciju, ili direktorijum, u fajl-sistemu raunara, gde je smeten paket. Biblioteka
work predstavlja radni direktorijum gde je smeten VHDL kd koji definie paket. Na osnovu
postojeih opisa svih neophodnih komponenti, ovom metodom se, na kraju, generie izlaz u
obliku VHDL fajla, koji predstavlja modifikovanu verziju opisa prvobitno zadatog kola. Ovaj
fajl moe da se koristi kao ulaz svakog drugog standardnog alata za simulaciju i sintezu, koji
podrava VHDL opis.

Slika 4.1. Struktura alata za konkurentnu detekciju greke

63
Projektovanje kombinacionih i sekvencijalnih mrea sa samoproverom na osnovu VHDL opisa

Ve je pomenuto da, s obzirom na primenu razliitih kodova za detekciju greke, postoji


veliki broj metoda za dobijanje kombinacionih i sekvencijalnih mrea sa samoproverom.
Kako bi se utvrdila cena postojeih metoda projektovanja nad razliitim bencmark kolima
vreni su eksperimenti i pokazano je da za veinu njih ema sa kodom parnosti zahteva
najmanje poveanje povrine. Meutim, nije uraena procena praktine primene raznih
metoda projektovanja na polju poveanja povrine, smanjenja radne frekvencije i pogodnosti
za implementaciju na FPGA i CPLD tehnologije, korienjem dostupnih alata. To, upravo,
predstavlja cilj ove teze.

4.4. Projektovanje kombinacionih mrea

Osnovna struktura kola sa samoproverom data je na slici 4.2. Ovakva struktura je


predstavljena i na slici 3.4 i detaljno je opisana u Poglavlju 3.

Slika 4.2. Model kola sa potpunom samoproverom

Generator simbola za proveru zavisi od tehnike koja se koristi, pa prema tome, moe da
bude kopija prvobitno zadatog kola, logika za predvianje parnosti, generator kodne rei za
dobijanje Berger-ovog i Bose-Lin-ovog kda i drugo. Struktura kola za proveru takoe zavisi
od primenjene tehnike za detekciju greke. Funkcionalno kolo moe da bude bilo koja
kombinaciona ili sekvencijalna mrea. Opti model kombinacione mree sa n ulaza i m izlaza
prikazan je na slici 4.3. Ova mrea moe da se opie u VHDL-u korienjem modela
ponaanja kao to je prikazano na slici 4.4, a nakon toga funkcionalnom simulacijom moe da
se verifikuje ponaanje kombinacione mree. To je, ujedno i prvi korak u predloenoj metodi
za generisanje mree sa samoproverom [Stan204].
Opta struktura kombinacione mree sa slike 4.3 moe da se modifikuje dodavanjem
strukture za konkurentnu detekciju greke na nain prikazan na slici 4.5. Struktura generatora
simbola za proveru izlaza zavisi od primenjenog koda za detekciju greke. Na osnovu m
izlaznih bitova i c bitova provere, kolo za proveru sa dva izlaza daje indikaciju o pojavi
greke.

Slika 4.3. Opti model kombinacione mree

64
4. Projektovanje logikih mrea sa samoproverom

library ieee;
use ieee.std_logic_1164.all;
entity komb_log is
port (
signal ulaz: in std_logic_vector (n-1 downto 0);
signal izlaz: out std_logic_vector(m-1 downto 0));
end komb_log;
architecture behavior of adder4 is
begin
process (ulaz)
begin
......
end process;
end behavior;
Slika 4.4. Funkcionalni opis kombinacione mree u VHDL-u

Slika 4.5. Struktura kombinacione mree sa samoproverom

U toku drugog koraka predloene metode za generisanje mree sa samoproverom, na


osnovu inicijalnog VHDL opisa kombinacione mree i kodnih ablona ija je struktura
prikazana na slici 4.6, kreira se VHDL opis mree sa samoproverom. abloni u obliku VHDL
koda definiu nekoliko podblokova (ili komponenti) ijim se povezivanjem dobija opis mree
sa samoproverom. abloni su definisani u skladu sa modelom mree sa samoproverom koji je
predstavljen na slici 4.5.

Slika 4.6. Struktura VHDL kodnog ablona za kombinacionu mreu sa samoproverom

Oseneni blokovi na slici 4.6 oznaavaju module za konkurentnu detekciju greke koji se
kao komponente nezavisne od strukture mree unapred projektuju i smetaju u poseban
VHDL paket (package). Modul kombinaciona mrea predstavlja VHDL modul kojim se
opisuje arhitektura mree sa slike 4.4. VHDL proces kojim je opisana arhitektura ovog bloka,

65
Projektovanje kombinacionih i sekvencijalnih mrea sa samoproverom na osnovu VHDL opisa

bez ikakve modifikacije kopira se iz inicijalnog opisa mree u odgovarajui opis arhitekture
mree sa samoproverom. Modul generator simbola za proveru izlaza kombinacione mree
koristi se za generisanje bitova za proveru. Ovaj modul se sastoji iz dva dela i to kodera i
duplicirane kombinacione mree. Na ulaz kodera dovode se izlazi procesa koji opisuje
odgovarajuu kombinacionu mreu a na izlazu se dobijaju bitovi za proveru. I pored toga to
je, unutar generatora simbola za proveru, modul kombinacione mree jednostavno dupliciran,
u toku procesa sinteze vri se optimizacija ovog modula zajedno sa modulom kodera. Prema
tome, nakon sinteze kompleksnost generatora simbola za proveru bie znatno manja od
kompleksnosti nezavisno sintetizovanog modula kombinacione mree [Stoj104].
Nakon izbora eme za konkurentnu detekciju greke i insertovanja odgovarajuih modula
i inicijalnog opisa mree u kodni ablon, dobija se VHDL opis kombinacione mree sa
samoproverom. Kodni abloni pruaju mogunost projektantu da, na osnovu naina kodiranja,
izabere jednu od sledeih tehnika za konkurentnu detekciju greke: 1) dupliciranje, 2) kd
parnosti, 3) Berger-ov kd, 4) Bose-Lin-ov kd. Svi potrebni moduli navedenih tehnika
opisani su u posebnom paketu kao generike komponente sa parametrizovanim brojem ulaza i
izlaza. Na osnovu specificirane opcije od strane projektanta iz definisanog paketa bira se
odgovarajui tip modula za kolo kodera i kolo za proveru. Jedino u sluaju dupliciranja nisu
potrebni moduli za konkurentnu detekciju greke sem kola za proveru jednakosti.

4.4.1. Tehnike dupliciranja kola


Najjednostavniji pristup za konkurentnu detekciju greke u vienivovskim kolima
obuhvata dupliciranje kola i poreenje izlaza dva bloka pomou komparatora jednakosti. Ova
tehnika obezbeuje 100%-tnu detekciju jenostrukih defekta, ali je zato poveanje povrine
kola veliko. Naime, ova tehnika uvodi u kolo vie od 100% redundanse (100% usled
dupliciranog kola i neto vie zbog kola za proveru). To je vrlo visoka cena za generisanje
kola koja imaju mogunost samoprovere i otkrivanja defekata.
Na slici 4.7 prikazana je ema opteg naina dupliciranja kola po kome jedna od kopija
generie izlazne vrednosti koje su komplementarne vrednostima druge kopije. Primarni i
komplemenitirani izlazi se porede, bit-po-bit pomou kola za proveru koje je realizovano u
vidu stabla dvo-izlaznih kola sa potpunom samoproverom (TRC). Uvek kada se vrednosti
primarnih i komplementarnih izlaza razlikuju, zbog pojave defekta u nekom od dva
funkcionalna bloka, ili kada se javi defekt u nekom od kola za proveru, signal greke daje
izvetaj o prisustvu defekta [Stan104], [Stan203], [Stan303], [Stan403].

Slika 4.7. ema dupliciranja kola sa prvobitno zadatim i komplementarnim izlazima

66
4. Projektovanje logikih mrea sa samoproverom

Kao to se vidi sa slike 4.7, za dobijanje kombinacione mree sa samoproverom metodom


dupliciranja potrebne su tri osnovne komponente, koje se sastoje od jednog ili vie modula
opisanih u VHDL-u. Prvu komponentu predstavlja inicijalni opis osnovne kombinacione
mree. Drugu komponentu ini kopija prvobitno zadatog kola sa invertovanim primarnim
izlazima. Zato se u poseban paket ili CED biblioteku smeta VHDL opis modula koji na ulazu
ima m bitova, svaki od njih invertuje i na izlazu daje isti broj bitova. Blok ema i arhitektura
VHDL koda za opis ovog modula prikazane su na slici 4.8.

library IEEE; use IEEE.STD_LOGIC_1164.ALL;


entity INVERTOR is
generic (m : in integer);
Port (In2 : in std_logic_vector(m-1 downto 0);
Out2 : out std_logic_vector(m-1 downto 0));
end INVERTOR;
architecture INV_arch of INVERTOR is
begin
inv: for i in 0 to m-1 generate
Out2(i) <= not In2(i);
end generate;
end INV_arch;

Slika 4.8. Blok ema i VHDL opis modula za invertovanje m bitova

Trea komponenta je kolo za proveru sa dva izlaza i parametrizovanim brojem ulaza.


Generiki VHDL opis ovog modula potrebno je, takoe smestiti u odreeni paket, zajedno sa
opisima ostalih potrebnih modula. Ovaj modul za proveru sastoji se, ustvari, od strukture
stabla koju ine kola za proveru sa jednim parom izlaza i dva para ulaza (two-rail checker -
TRC). Blok ema i VHDL opis arhitekture svakog od elemenata strukture stabla, odnosno
TRC-a, predstavljen je na slici 4.9.

library IEEE; use IEEE.STD_LOGIC_1164.ALL;


entity TRC is
generic (M : in integer);
Port (i1 : in std_logic_vector(1 downto 0);
i2 : in std_logic_vector(1 downto 0);
K : out std_logic;
J : out std_logic);
end TRC;
architecture TRC_arch of TRC is
begin
K <= ((i1(1) and i2(1)) or (i1(0) and i2(0)));
J <= ((i1(0) and i2(1)) or (i1(1) and i2(0)));
end TRC_arch;

Slika 4.9. Blok ema i VHDL opis TRC-a sa 2 para ulaza i jednim parom izlaza

U zavisnosti od broja ulaza, paralelnim povezivanjem TRC-a u vie nivoa, generie se


struktura modula za proveru, kao to je prikazano na slici 4.10. Pomou ovakvog modula za
proveru svaki izlaz prvobitno zadatog kola poredi se sa odgovarajuim komplementiranim
izlazom kopije istog kola. To znai da svaki par ulaza kola za proveru ine pravi i
komplementarni izlaz dveju kopija istog kola. Jasno je da e ovaj modul imati ukupno 2 m
ulaza, ili m parova ulaza. Sa poveanjem broja ulaza poveava se i sloenost strukture stabla,
odnosno raste broj nivoa i broj TRC kola u nivou.

67
Projektovanje kombinacionih i sekvencijalnih mrea sa samoproverom na osnovu VHDL opisa

entity CHECK_DUPL is
generic (m : integer);
Port (
In1 : in std_logic_vector(m-1 downto 0);
In2 : in std_logic_vector(m-1 downto 0);
K : out std_logic;
J : out std_logic);
end CHECK_DUPL;
architecture RTL of CHECK_DUPL is
begin
..............
end RTL;

Slika 4.10. Blok ema i VHDL opis entiteta modula za proveru koga ini struktura stabla TRC-a

Algoritam, na osnovu koga se generie vienivovska struktura stabla modula za proveru,


sastoji se od sledeih koraka:
Algoritam 1
1. odrediti broj nivoa, L
L = log 2 m
2. for i = 1 to L
2.1. odrediti broj ulaza, n, u i-ti nivo strukture na sledei nain:
if i = 1 then
n=m
n
else n =
2
2.2. generisati nivo od n ulaza i odrediti broj izlaza, p
n
p=
2
2.3. if i = 1 then
povezati ulaze svih TRC-a i-tog nivoa sa primarnim ulazima
else
povezati ulaze svih TRC-a i-tog nivoa sa izlazima svih TRC-a nivoa i-1

68
4. Projektovanje logikih mrea sa samoproverom

3. povezati izlaze TRC-a L-tog nivoa sa primarnim izlazima

Na osnovu Algoritma 1 dobija se generiki VHDL opis modula za proveru koji je, zbog
sloenosti, dat u Dodatku C.
Trebalo bi rei i to da ema dupliciranja nije nita novo, ali je uvedena kao osnovna
referenca za poreenje poveanja povrine i kanjenja drugih ema.
Za projektovanje vienivovskih kombinacionih mrea sa konkurentnom detekcijom greke
mogu da se koriste i druge tehnike koje imaju manje poveanje povrine od dupliciranja kola,
ali i mogunost detekcije samo odreenih tipova internih defekata.

4.4.2. Tehnike primene Berger-ovog koda


Tehnika koja za detekciju greke koristi Berger-ov kd zasniva se na osnovnoj emi kola
sa samoproverom koja je ve data za izdvojiv kd (slika 4.2). Struktura VHDL kodnog
ablona za Berger-ov kd prikazana je na slici 4.11. Jasno je da se generator bitova za proveru
sastoji od dve komponente, kopije osnovne kombinacione mree i Berger-ovog kodera od m
ulaza i c izlaza. Druga komponenta, Berger-ov koder, koristi se i u okviru kola za proveru kao
generator bitova za proveru. Na ulaz ovog generatora dovodi se m izlaznih bitova
kombinacione mree, a na izlazu se generie c bitova. Svaki od ovih bitova treba invertovati
da bi moglo da se koristi kolo za proveru sa dva izlaza. Generiki VHDL opisi modula
invertora i modula za proveru sa parametrizovanim brojem ulaza i dva izlaza ve su dati na
slikama 4.8 i 4.10, respektivno. Zato emo se usredsrediti samo na VHDL opis Berger-ovog
kodera [Stan104], [Stan403].

Slika 4.11. Struktura VHDL kodnog ablona za Berger-ov kd

Kao to je reeno u Poglavlju 3, generator bitova za proveru Berger-ovim kodom treba da


generie c bitova ija binarna prezentacija odgovara komplementu binarne prezentacije broja
jedinica u okviru m izlaznih bitova. Komponenta Berger-ov koder projektuje se pomou
skupa potpunih sabiraa. Za realizaciju Berger-ovog kodera sa proizvoljnim brojem ulaza
neophodno je, na specifian nain, povezati potpune sabirae zato to svaki od njih ima
standardno tri ulaza i dva izlaza.
Ako ulaz generatora bitova za proveru ini m informacionih bitova, a izlaz ini c bitova za
proveru, onda se generator projektuje pomou skupa modula potpunih sabiraa, koji paralelno
(
sabiraju informacione bitove x1 , x2 , ..., x c
2 1
)
i generiu binarni broj g1 , g 2 , ..., g c koji
odgovara broju jedinica u informacionim bitovima. Za generisanje c bitova za proveru
neophodna je vienivovska struktura stabla koju ini odreen broj potpunih sabiraa.

69
Projektovanje kombinacionih i sekvencijalnih mrea sa samoproverom na osnovu VHDL opisa

Strukturu osnovnog modula Berger-ovog kodera sa m = 3 ulaza i c = 2 izlaza ini jedan


potpun sabira. Blok ema i VHDL opis arhitekture potpunog sabiraa prikazani su na slici
4.12.
library IEEE; use IEEE.std_logic_1164.all;
entity fulladd is
port(
a,b,ci : in std_logic;
s,co : out std_logic);
end fulladd;
architecture fulladd_arch of fulladd is
begin
s <= a xor b xor ci;
co <= (a and b) or (a and ci) or (b and ci);
end architecture fulladd_arch;

Slika 4.12. Blok ema i VHDL opis arhitekture potpunog sabiraa

Struktura modula Berger-ovog kodera sa proizvoljnim brojem ulaza postaje sve sloenija
sa poveanjem broja ulaza. Zato emo sada razmotriti algoritam za projektovanje kodera na
osnovu koga se dobija i generiki VHDL opis Berger-ovog kodera. Parametar ovog modula je
broj informacionih bitova.
Algoritam za projektovanje Berger-ovog kodera (generatora) iji ulaz predstavlja skup od
m informacionih bitova, X = (x1 , x2 , ..., xm ) , a izlaz ini c = log 2 (m + 1) bitova za proveru,
sastoji se iz sledeih koraka [Lala01]:

Algoritam 2
1. Postaviti vrednosti n = c = log 2 (m + 1) i J = 1 .

2. Neka je z = 2 (n 1) 1 .
3. Podeliti skup informacionih bitova, X , na tri podskupa AJ , BJ i E J . Podskup AJ
sadri z bitova koji su na krajnjoj levoj strani informacionih bitova, BJ sadri sledeih z
bitova, i E J sadri bit koji je poslednji na desnoj strani informacionih bitova.

4. Neka vektori a J (= a J ,n1 , a J ,n2 , ..., a J ,1 ) , b J (= bJ ,n1 , bJ ,n2 , ..., bJ ,1 ) i e J predstavljaju


binarne prezentacije broja jedinica u podskupovima AJ , BJ i E J , respektivno.
5. Neka vektor g J (= g J ,n , g J ,n1 , ..., g J ,1 ) predstavlja binarnu prezentaciju broja jedinica u
skupu X . Ovaj vektor se dobija na osnovu sledeeg sabiranja:
g J = a J + bJ + eJ

ili drugim reima,


a J ,n1 a J ,n2 ... ... a J ,1
+ bJ ,n1 bJ ,n2 ... ... bJ ,1
+ e J ,1
g J ,n g J ,n1 g J ,n 2 ... ... g J ,1

70
4. Projektovanje logikih mrea sa samoproverom

gde je g J ,n bit prenosa. Za generisaje g J koriste se ripple carry sabirai koji se povezuju
u (n 1) nivoa.
6. if n = 2 go to korak 8
else
postavi vrednosti n = n 1 , L = J .
7. for I = {AJ }, J = J + 1
generisati vektor a L = g J ponavljajui korake 2-6, i na isti nain

for I = {BJ }, J = J + 1
generisati skup b L = g J .

8. End

Na osnovu Algoritma 2 generie se struktura oblika stabla. Svaki vor u stablu predstavlja
ripple carry sabira. vor na i-tom nivou stabla, 1 i n 1 , predstavlja ripple carry sabira
koji se sastoji od n 1 stepena (modula potpunih sabiraa). Ukupan broj potrebnih potpunih
n 1
sabiraa je 2 a 1 (n a ) .
a =1

Treba imati u vidu da se datim algoritmom generie binarna prezentacija broja jedinica u
izlaznim bitovima, pa je u sluaju primene Berger-ove B1 eme kodiranja potrebno
invertovati dobijene bitove. U naem sluaju koriena je B0 ema kodiranja (komplement
binarne prezentacije broja 0-a) pa invertovanje bitova nije potrebno.
Primera radi, moemo prikazati nain projektovanja Berger-ovog kodera koji na osnovu
m = 7 izlaznih bitova kombinacione mree generie c = 3 bita za proveru. U tom cilju,
potrebno je najpre generisati g 1 korienjem ripple carry sabiraa sa 2(= 3 1) stepena, kao
to je prikazano na slici 4.13. Sledei korak je generisanje skupova a1 i b1 na osnovu
potpunih sabiraa koji su prikazani na slici 4.14.

Slika 4.13. Kolo za generisanje skupa g1

Slika 4.14. Kola za generisanje skupova a1 i b1

71
Projektovanje kombinacionih i sekvencijalnih mrea sa samoproverom na osnovu VHDL opisa

Potpuna struktura modula Berger-ovog kodera za m = 7 i c = 3 prikazana je na slici 4.15,


a dobija se kombinovanjem kola sa slika 4.13 i 4.14.

Slika 4.15. Struktura modula Berger-ovog kodera sa m = 7 ulaza i c = 3 izlaza

Primenom istog algoritma dobija se struktura i generiki VHDL opis Berger-ovog kodera
sa parametrizovanim brojem ulaza. Struktura i opis entiteta ovog modula prikazani su na slici
4.16. Generisani VHDL opis modula smeta se u poseban paket ili CED biblioteku.

entity BERGER is
generic (m,c : integer);
Port (
Input : in std_logic_vector(m-1 downto 0);
Output : in std_logic_vector(c-1 downto 0));
end BERGER;
architecture RTL of BERGER is
begin
..............
end RTL;

Slika 4.16. Struktura i generiki VHDL opis entiteta Berger-ovog kodera

72
4. Projektovanje logikih mrea sa samoproverom

Vano je istai da se na osnovu Algoritma 2 generie VHDL opis koji se zasniva na


paralelnom izraunavanju, to se i vidi sa slike 4.16. Na taj nain se dobija minimalno
kanjenje signala. Shodno strukturi stabla i broju potrebnih modula sabiraa, maksimalno
kanjenje odgovara kanjenju (2n 3) modula.

4.4.3. Tehnike primene Bose-Lin-ovog koda


Bose-Lin-ovi kodovi su efikasno reenje za projektovanje kola sa samoproverom zato to
imaju tano odreen broj bitova za proveru, nezavisno od broja informacionih bitova. U
odnosu na Berger-ove kodove zahtevaju manji broj bitova za proveru i, po strukturi,
jednostavniji generator bitova za proveru (kodera). Struktura VHDL kodnog ablona za Bose-
Lin-ov kd u potpunosti odgovara strukturi za Berger-ov kd i predstavljena je na slici 4.17.

Slika 4.17. Struktura VHDL kodnog ablona za Bose-Lin-ov kd

Iz Poglavlja 2 je poznato da je za detekciju 2 (ili 3) jednosmerne greke Bose-Lin-ovim


kodom potrebno 2 (ili 3) bita za proveru, a simbol za proveru (check symbol - CS) generie se
kao CS = k 0 mod 4 (ili CS = k 0 mod 8 ), gde je k 0 broj nula u informacionim bitovima. Prema
tome, generator (koder) bitova za proveru Bose-Lin-ovim kodom najpre izraunava broj nula,
a zatim moduo dobijenog broja. Za odreivanje broja nula moe da se iskoristi algoritam za
izraunavanje broja jedinica, koji je prethodno dat kod primene Berger-ovog koda, pri emu
je neophodno invertovati generisane bitove [Stoj104].
Algoritam za konstrukciju Bose-Lin-ovog kodera (generatora) koji se zasniva na
odreivanju funkcije modula (mod 4, ili mod 8) broja nula u skupu od m informacionih bitova,
X = (x1 , x2 , ..., xm ) , moe se predstaviti na sledei nain [Jha291]:

Algoritam 3
{
1. Neka je q = log 2 (m + 1) i neka je skup celih brojeva I = i i = 2 q j 1, 1 j q 2 . }
Podeliti skup informacionih bitova na n grupa A1 , A2 , ..., An , n q 1 , pri emu je A0 = 0 .
Broj bitova u grupi Ai , 1 i n 1 , je najvei ceo broj iz skupa I koji je manji ili jednak
i 1
vrednosti m A j . Poslednja grupa, An moe da ima 0, 1, ili 2 bita to odgovara vrednosti
j =0
n 1
m Aj .
j =1

2. Neka N ( Ai ) bude kolo koje generie broj jedinica za skup Ai , i = 1, 2, ..., n 1


korienjem Algoritma 2 za generisanje binarne prezentacije broja jedinica u skupu
informacionih bitova. Neka izlazi kola N ( Ai ) budu g i , p , ..., g i , 2 , g i ,1 , gde je p = log 2 ( Ai + 1 ) .

73
Projektovanje kombinacionih i sekvencijalnih mrea sa samoproverom na osnovu VHDL opisa

3. Formirati odgovarajuu strukturu stabla sabiraa za izlaze kola N ( Ai ), 1 i n 1 i


bitove skupa An . Rezultat sabiranja je Yq , Yq 1 , ..., Y1 . Ako se rauna moduo 2 c broja jedinica
potrebno je odbaciti bitove Yq , Yq 1 , ..., Yc+1

4. Korienjem potpunih i polu-sabiraa generisati kolo N na ijem izlazu su bitovi


Yc , Yc1 , ..., Y1 . Pri tome treba odbaciti sve sabirae koji nisu potrebni.

U ovoj tezi razmatra se projektovanje generatora bitova za proveru izlaza Bose-Lin-ovim


kodom korienjem funkcije mod 4 . Pokazaemo primenu datog algoritma za kodiranje
m = 11 izlaznih bitova kombinacione mree, X = ( x1 , x2 , ..., x11 ) , Bose-Lin-ovim kodom.
Na osnovu broja bitova ( m = 11 ) dobija se q = log 2 (11 + 1) = 4 i I = { 7, 3 }. Skup X
treba podeliti u n 3 grupa, A1 , A2 i A3 . Skup A1 = { x1 , x2 , ..., x7 } ima 7 bitova poto
najvei ceo broj skupa I koji je manji ili jednak m iznosi 7. Najvei ceo broj skupa I koji je
manji ili jednak vrednosti m A1 = 11 7 = 4 iznosi 3, pa tako A2 = { x8 , x9 , x10 } sadri 3
bita. Skup A3 = { x11 } sadri jedan preostali bit. Kola N ( A1 ) i N ( A2 ) formiraju se pomou
potpunih sabiraa, na osnovu Algoritma 2 koji se koristi za odreivanje broja jedinica u
skupovima A1 i A2 . Izlazi kola N ( A1 ) bie (g1, 4 , g1,3 , g1, 2 , g1,1 ) , a izlazi kola N ( A2 ) bie
(g 2, 2 , g 2,1 ) . Sabiranjem ovih izlaznih bitova i bita u skupu A3 dobija se binarna prezentacija
broja jedinica (Y4 , Y3 , Y2 , Y1 ) . Sabiranje se vri formiranjem strukture stabla pomou tri modula
potpunih sabiraa i polu-sabiraa. Ako za svaki modul, M i , izlazne bitove za sumu i prenos
oznaimo sa S i i Ci , onda je Y4 = C3 , Y3 = S 3 , Y2 = S 2 , Y1 = S1 . Ako se generie broj
jedinica po modulu 2 2 , onda se zanemaruju bitovi Y4 i Y3 i iz strukture stabla se odbacije
polu-sabira koji generie ove bitove, odnosno ignoriu se bitovi prenosa koje bi trebalo
dovesti na ulaz tog polu-sabiraa. Prema tome, ovim algoritmom generiu se dva bita za
proveru, Y1 i Y2 . Struktura modula Bose-Lin-ovog kodera za ovaj konkretan primer prikazana
je na slici 4.18.

Slika 4.18. Struktura modula Bose-Lin-ovog kodera sa m = 11 ulaza i c = 2 izlaza

74
4. Projektovanje logikih mrea sa samoproverom

Generiki opis Bose-Lin-ovog kodera sa parametrizovanim brojem ulaza i c = 2 izlaza


prikazan je na slici 4.19. Ve je napomenuto da se primenjuje funkcija moduo 4, pa se zato, u
svakom sluaju, generie dva bita za proveru, bez obzira na broj izlaznih bitova kombinacione
mree.
entity BOSE_LIN is
generic (m : integer);
Port (
Input : in std_logic_vector(m-1 downto 0);
Output : out std_logic_vector(1 downto 0));
end BOSE_LIN;
architecture RTL of BOSE_LIN is
begin
..............
end RTL;

Slika 4.19. Generiki VHDL opis entiteta Bose-Lin-ovog kodera

4.4.4. Tehnike primene koda parnosti


U najveem broju sluajeva ema za konkurentnu detekciju greke zasniva se na
generisanju bita parnosti za dati izlaz. Prednost ovakve eme ogleda se u njenoj
jednostavnosti, dok je nedostatak to to se na osnovu jednog bita parnosti, dobijenog na
osnovu izlaza, ne mogu detektovati sve greke u vienivovskom kolu.
Kao i sve prethodno pomenute tehnike koje koriste izdvojiv kd tako se i tehnika koja za
detekciju greke koristi kd parnosti zasniva na osnovnoj emi kola sa samoproverom (slika
4.2). Struktura VHDL kodnog ablona za kd parnosti prikazana je na slici 4.20. Kao kod
prethodnih, i kod ove eme generator bitova za proveru sastoji se od kopije osnovne
kombinacione mree i kodera parnosti od m ulaza i jednog izlaza. Koder parnosti iste
strukture koristi se i u okviru kola za proveru kao generator bita parnosti za m izlaznih bitova
kombinacione mree. Ovako dobijeni bit parnosti zatim treba invertovati. Taj invertovani bit i
bit dobijen na izlazu generatora bita za proveru predstavljaju konane komplementarne izlaze
kola za proveru, tako da je ova ema jednostavnija od prethodnih jer ne zahteva dodatno kolo
za proveru sa dva izlaza. S obzirom da se i u ovom sluaju moe iskoristiti VHDL opis
modula invertora koji je dat na slici 4.8, predstaviemo samo VHDL opis kodera parnosti. I
on se, takoe smeta u poseban paket ili biblioteku [Stan104], [Stan403].

Slika 4.20. Struktura VHDL kodnog ablona za kd parnosti

Poto je uloga kodera da na osnovu m izlaznih bitova kombinacione mree generie bit
parnosti, onda se modul koder parnosti (generator bita za proveru) projektuje jednostavno

75
Projektovanje kombinacionih i sekvencijalnih mrea sa samoproverom na osnovu VHDL opisa

pomou EXOR kola. Osnovni element, EXOR kolo, kao i njegov VHDL opis predstavljeni su
na slici 4.21.
library IEEE; use IEEE.STD_LOGIC_1164.ALL;
entity EXOR is
Port (a : in std_logic;
b : in std_logic;
c : out std_logic);
end EXOR;
architecture EXOR_arch of EXOR is
begin
c <= a xor b;
end EXOR_arch;

Slika 4.21. Blok ema i VHDL opis EXOR kola sa dva ulaza i jednim izlazom

Modul kodera parnosti generie se paralelnim povezivanjem odreenog broja EXOR kola,
u vie nivoa, to zavisi od broja ulaza, m. Na izlazu modula generie se jedan bit parne ili
neparne parnosti. Struktura i VHDL opis entiteta modula kodera parnosti prikazani na slici
4.22.

entity PARITY is
generic (m : integer);
Port (
In1 : in std_logic_vector(m-1 downto 0);
P : out std_logic);
end PARITY;
architecture PARITY_arch of PARITY is
begin
..............
end PARITY_arch;

Slika 4.22. Blok ema i VHDL opis entiteta modula za proveru parnosti

Kao to se vidi sa slike 4.22, struktura modula kodera (generatora) parnosti zasniva se na
paralelnom izraunavanju EXOR funkcija, zbog kraeg vremena prostiranja signala. Sa
poveanjem broja ulaza poveava se i sloenost strukture ovog modula, odnosno raste broj

76
4. Projektovanje logikih mrea sa samoproverom

nivoa i broj EXOR kola u nivou. Algoritam za generisanje vienivovske strukture modula za
proveru parnosti, za proizvoljan broj ulaza m , sastoji se od sledeih koraka:

Algoritam 4
1. odrediti broj nivoa, L
L = log 2 m
2. for i = 1 to L
2.1. odrediti broj ulaza, n, u i-ti nivo strukture na sledei nain:
if i = 1 then
n=m
n
else n =
2
2.2. generisati nivo od n ulaza i odrediti broj izlaza, p
n
p=
2
2.3. if i = 1 then
povezati ulaze svih EXOR kola i-tog nivoa sa primarnim ulazima
else
povezati ulaze svih EXOR kola i-tog nivoa i izlaze svih EXOR kola nivoa i-1
3. povezati izlaz EXOR kola L-tog nivoa sa primarnim izlazom.

Algoritam 4 iskorien je za dobijanje generikog VHDL opisa modula za proveru


parnosti koji je, zbog sloenosti, dat u Dodatku C.

Slika 4.23. ema zasnovana na parnosti etiri grupe bitova

Pored osnovne eme, za konkurentnu detekciju greke moe se koristiti i ema zasnovana
na izraunavanju koda parnosti, ali za odreenu grupu izlaznih bitova kola. Sekvenca izlaznih

77
Projektovanje kombinacionih i sekvencijalnih mrea sa samoproverom na osnovu VHDL opisa

bitova podeljena je u grupe, a skup bitova parnosti generisan je na takav nain da svaki signal
parnosti zavisi od najvie jednog izlaznog bita iz svake particije. Izlazi jedne particije mogu
meusobno da dele istu logiku, ali nije dozvoljena podela logike izmeu dva izlaza koji
pripadaju razliitim particijama. Na slici 4.23 prikazana je ema za konkurentnu detekciju
greke zasnovana na parnosti etiri grupe bitova.

4.5. Tehnike za projektovanje sekvencijalnih mrea

Za razliku od kombinacionih, sekvencijalne mree sadre memorijske elemente, kao to


su le kola i flip-flopovi. Kao posledica toga, izlazne vrednosti sekvencijalnih komponenti
zavise ne samo od tekuih ve i od prethodnih ulaznih vrednosti. Spektar sekvencijalnih
komponenti protee se od bazinih memorijskih elemenata, kao to su le kola i flip-flopovi,
preko generikih (standardnih) registarskih komponti, kao to su prihvatni, pomeraki i
brojaki registri, i sloenijih memorijskih struktura, kao to su RAM, FIFO, stek, do staza
podataka i upravljakih jednica koje su u mogunosti da izvravaju sloene algoritme.
Za nas su od interesa sekvencijalne mree koje se mogu modelirati u vidu konanog
automata to se, pre svega, odnosi na upravljake jedinice digitalnih sistema.

4.5.1. Model sekvencijalne mree


Postojanje memorijskih elemenata u sekvencijalnim mreama namee detaljnije
razmatranje problema modeliranja, odnosno opisa u VHDL-u. Generika arhitektura
proizvoljne sekvencijalne mree prikazana je na slici 4.24.

Slika 4.24. Osnovna struktura sekvencijalne mree

Postoji vie naina za modeliranje iste sekvencijalne mree korienjem VHDL-a. Kod
korektno opisanih modela sekvencijalna logika tekueg stanja obino je odvojena od
kombinacione logike narednog stanja i izlazne logike. Najee se VHDL opis sekvencijalne
mree sastoji od tri nezavisna procesa, koji opisuju tri odvojena dela (logika izlaza, logika
narednog stanja i registar stanja) prikazana na slici 4.24. Pored toga, u cilju dobijanja
korektnog VHDL opisa neophodno je detaljnije razmotriti jo jedan problem, a to je kodiranje
stanja, odnosno dodela stanja.
Dodela stanja (state assignement) predstavlja nain dodele binarnih brojeva simbolikim
stanjima automata. Povrina i kanjenje izlazne i logike narednog stanja automata znaajno
zavise od naina na koji su odreenim stanjima pridruene binarne vrednosti. Na primer,
automat sa etiri stanja s0, s1, s2 i s3 moe se ralizovati sa dva flip-flopa, koji bi sadrali

78
4. Projektovanje logikih mrea sa samoproverom

vrednosti 00, 01, 10 ili 11. U ovom sluaju, postoji bar 4!=24 moguih naina kodiranja za
etiri stanja. U optem sluaju, broj razliitih naina kodiranja za n stanja moe biti vei od
n!. Iz tog razloga, eksplicitno ispitivanje i procena povrine i kanjenja za svako pojedinano
kodiranje moe biti naporan posao, ak i za mali broj stanja. U cilju prevazilaenja ovog
problema, projektanti koriste razliite strategije za kodiranje stanja. Neki od formata kodiranja
stanja su: sekvencijalni, Gray-ov, Johnson-ov, one-hot, format definisan po izboru
projektanta, i definisan od strane alata za sintezu.
Za sekvencijalni nain generisanja koda karakteristino je da se svakom stanju dodeljuju
binarne vrednosti prirodnih brojeva. Kod Gray-ovog i Johnson-ovog naina kodiranja
sukcesivnim stanjima se dodeljuju binarne vrednosti koje se razlikuju samo u jednom bitu.
Osnovni razlog ovakvog naina kodiranja je smanjenje mogunosti javljanja greke pri
prelazu stanja, koje su prouzrokovane promenom asinhronih ulaza u toku vremena
postavljanja flip-flopa. U sluaju Gray-ovog naina kodiranja mogu se iskoristiti svih 2n
binarnih brojeva, dok je kod Johnson-ovog naina kodiranja potrebno vie flip-flopova, pa
uvek postoje neiskorieni binarni brojevi, to utie na poveanje povrine kola.
One-hot nainom kodiranja svakom stanju se dodeljuje jedan flip-flop, tako da je za n
stanja potrebno n flip-flopova. Drugim reima, svako stanje se prepoznaje po 1 u flip-flopu
koji je pridruen tom stanju, dok pri tome svi ostali flip-flopovi imaju vrednost 0. To
praktino znai da e pri prelazu iz jednog u neko drugo stanje, flip-flop koji odgovara prvom
stanju biti resetovan, dok e flip-flop pridruen drugom stanju biti setovan. Ovako veliki broj
flip-flopova obino znatno utie na poveanje povrine kola.
Nain kodiranja stanja moe da se definie i po vlastitom izboru, u zavisnosti od zahteva
projekta. Alat za sintezu bira format kodiranja tako da minimizira logiku narednog stanja.
Problem optimizacije kola koji se odnosi na kodiranje stanja veoma je kompleksan. I
pored toga to povrina koja je implicirana logikom funkcije narednog stanja ne moe da bude
u direktnoj vezi sa brojem bitova u stanju, povrina koja se odnosi na memorijske elemente
moe znaajno da utie na poveanje povrine sintetizovanog sekvencijalnog kola. U optem
sluaju, najbolja strategija za kodiranje stanja jeste odrediti nekoliko alternativnih naina
kodiranja, za svako kodiranje proceniti povrinu i kanjenje, i onda izabrati najbolje.

4.5.2. Sekvencijalne mree sa samoproverom


Ispunjavanjem svih prethodno navedenih uslova moe se dobiti korektan VHDL opis
sekvencijalne mree. Nad ovakvim VHDL modelom prvobitno zadate arhitekture, sa
nezavisnim opisima triju osnovnih delova mree, vri se odreena modifikacija u cilju
dobijanja sekvencijalne mree sa samoproverom. Poto se logika izlaza i logika narednog
stanja mogu razmatrati kao dve nezavisne kombinacione mree, onda se mogu i nezavisno
proveravati. Znai, m izlaznih bitova moe da se proiri odreenim brojem bitova za proveru,
u zavisnosti od primenjenog koda za detekciju greke. Takoe, k bitova, koji predstavljaju
odreeno stanje, moe da se proiri bitovima za proveru.
Kodiranje izlaza odreenim kodom za detekciju greke u potpunosti odgovara prethodno
opisanom nainu kodiranja izlaza kombinacionih mrea. Kodiranje stanja je neto sloeniji
problem koji je ve razmatran. Naime, bitovi koji su dodeljeni stanju mogu se proiriti
dodatnim bitovima za proveru, na isti nain kao i svaki drugi skup informacionih bitova. S
druge strane, bitovi dodeljeni stanju mogu, i bez proirenja, da zadovoljavaju neki unapred
odreen uslov, kao to je, na primer, one-hot ema kodiranja stanja.

79
Projektovanje kombinacionih i sekvencijalnih mrea sa samoproverom na osnovu VHDL opisa

U cilju postizanja samoprovere, osnovna struktura sekvencijalne mree (slika 4.20) moe
da se modifikuje na vie razliitih naina, pri emu se na odreenim mestima dodaje struktura
za konkurentnu detekciju greke. Arhitektura osnovne mree i arhitektura kola za
konkurentnu detekciju greke mogu da se opiu u VHDL-u i da budu poznati pre odreene
modifikacije. Prema tome, predloena metoda za generisanje sekvencijalnih mrea sa
samoproverom podrazumeva da se prvobitno zadatom VHDL opisu sekvencijalne mree
dodaju VHDL opisi struktura za konkurentnu detekciju greke. Predloena metoda podrava
vei broj tehnika za generisanje sekvencijalnih mrea sa samoproverom, a u daljem tekstu
bie detaljnije objanjene samo neke od njih.

4.5.2.1. Tehnike dupliciranja


Duplikacija kola i poreenje izlaza je najjednostavnija tehnika za konkurentnu detekciju
greke u sekvencijalnim kolima, to je bio sluaj i za kombinaciona kola. S obzirom da logika
izlaza i logika narednog stanja predstavljaju dva razliita kombinaciona kola, mogu se
nezavisno duplicirati i porediti na osnovu izlaznih bitova i bitova stanja. U oba sluaja
neophodno je prisustvo kola za proveru primarnih i invertovanih bitova. Na slici 4.25
prikazana je opta ema dupliciranja sekvencijalne mree.

Slika 4.25. ema dupliciranja sekvencijalne mree

Na osnovu slike 4.25 moemo videti da su za primenu tehnike dupliciranja sekvencijalne


mree, pored prvobitno zadatog VHDL opisa mree, potrebna jo dva modula. To su invertor
i kolo za proveru sa dva izlaza. Nain opisivanja ovih modula u VHDL-u ve je definisan u
prethodnom tekstu koji je u vezi sa tehnikom dupliciranja kombinacionih mrea. S obzirom
da su generiki VHDL opisi ovih modula ve smeteni u biblioteci, kao takvi se mogu
koristiti i u toku primene tehnike dupliciranja na sekvencijalne mree.

4.5.2.2. Tehnike primene Berger-ovog, Bose-Lin-ovog i koda parnosti


Primenom metode koja je ranije detaljno opisana za kombinaciona kola, dobija se opta
arhitektura sekvencijalnog kola sa samoproverom. Na slici 4.26 prikazana je ema dodavanja
strukture za konkurentnu detekciju greke u prvobitno zadatu sekvencijalnu mreu. Za

80
4. Projektovanje logikih mrea sa samoproverom

kodiranje m izlaznih bitova i k bitova stanja mogu da se koriste iste ili razliite eme. U
prvom sluaju potrebno je jedno, a u drugom sluaju potrebna su dva razliita kola za
proveru. Njihovi izlazi se onda dovode na jo jedno kolo za proveru sa dva izlaza koje daje
indikaciju o pojavi greke.

Slika 4.26. Arhitektura sekvencijalne mree sa samoproverom

Generisanje sekvencijalne mree sa samoproverom sastoji se od dva koraka. U toku prvog


koraka, sekvencijalna mrea ili konani automat opisuje se u VHDL-u modelom ponaanja.
Prilikom opisa kola projektant je ogranien na korienje izdvojenih procesa za opisivanje
logike narednog stanja i izlazne logike. Jedino se na taj nain mogu ispuniti prethodno
pomenuti uslovi za generisanje korektnog VHDL opisa sekvencijalne mree nad kojim se
mogu izvriti potrebne modifikacije. Funkcionalnom simulacijom moe da se verifikuje
ponaanje automata.
U toku drugog koraka, kreira se modifikovani VHDL opis konanog automata na osnovu
kodnih ablona ija je struktura prikazana na slici 4.27. Ovi abloni definiu nekoliko
podblokova (ili VHDL komponenti) ijim se povezivanjem dobija opis kola sa
samoproverom. abloni su definisani u skladu sa strukturom sekvencijalne mree sa
samoproverom koja je predstavljena na slici 4.26. Oseneni blokovi na slici 4.27 predstavljaju
dodatne module za konkurentnu detekciju greke. U cilju primene predloene metode
potrebno je da svi ovi moduli budu dostupni u izdvojenom VHDL paketu ili biblioteci kao
unapred projektovane komponente.
Blokovi koji se odnose na logiku izlaza, logiku narednog stanja i registar stanja (slika
4.27) predstavljaju VHDL module kojima se opisuje arhitektura konanog automata,
prikazana na slici 4.24. VHDL procesi kojima su opisani ovi moduli, kopiraju se bez ikakve
modifikacije iz inicijalnog opisa automata u odgovarajui opis arhitekture automata sa
samoproverom. Modul generator simbola za proveru izlaza (stanja) koristi se za generisanje
bitova za proveru izlaza (stanja). Svaki od ova dva modula sastoji se iz dva dela i to kodera i
duplicirane logike izlaza (narednog stanja), pa se zato mogu razmatrati kao prethodno opisani
generatori simbola za proveru kombinacione mree. Na ulaz kodera dovode se izlazi procesa
koji opisuje odgovarajuu logiku a na izlazu se dobijaju bitovi za proveru. I u ovom sluaju, u

81
Projektovanje kombinacionih i sekvencijalnih mrea sa samoproverom na osnovu VHDL opisa

toku procesa sinteze vri se optimizacija modula logike izlaza (narednog stanja) zajedno sa
modulom kodera, pa e zato, nakon sinteze, kompleksnost generatora simbola za proveru biti
znatno manja od kompleksnosti nezavisno sintetizovanog modula logike izlaza (narednog
stanja).

Slika 4.27. Struktura VHDL kodnog ablona za konani automat sa samoproverom

Na osnovu ovakvog kodni ablona projektant moe da izabere jednu od tehnika za


konkurentnu detekciju greke, koje se zasnivaju na nainu kodiranja izlaza i stanja. Tehnike
koje razmatramo zasnivaju se na primeni Berger-ovog koda, Bose-Lin-ovog koda, koda
parnosti, ili kombinacija ovih kodova. Struktura osenenih modula sa slike 4.27 zavisi od
primenje tehnike. Primena Berger-ovog ili Bose-Lin-ovog koda podrazumeva realizaciju
kodera pomou potpunih sabiraa, i struktura kodera odgovara strukturi koja je ranije opisana
za kombinacione mree. Takoe je opisana i struktura kodera koji se realizuje EXOR kolima,
a potreban je u sluaju primene koda parnosti. Zato se mogu iskoristiti generiki VHDL opisi
svih tipova kodera, koji su ve smeteni u poseban paket ili biblioteku. Jasno je da se i kola za
proveru realizuju na nain koji je opisan za kombinacione mree. S obzirom da su generiki
opisi i ovih modula smeteni u biblioteci, mogu se kao takvi iskoristiti i u ovom sluaju, za
generisanje sekvencijalnih mrea sa samoproverom.
Na osnovu specificirane opcije, od strane projektanta bira se odgovarajui VHDL opis
modula za koder i kolo za proveru iz unapred definisanog paketa. S obzirom da su potrebni
moduli opisani kao generike komponente sa parametrzovanim brojem ulaza i izlaza,
projektant treba samo da ih ukljui u postojei VHDL opis kola. Pri tome treba imati u vidu
da se za proveru izlaza i proveru stanja mogu primeniti razliite tehnike, to zavisi od izbora
projektanta.
Znai, nakon selektovanja odreene eme za konkurentnu detekciju greke i insertovanja
odgovarajuih modula iz inicijalnog opisa sekvencijalne mree u kodni ablon, dobija se
VHDL opis mree sa samoproverom.

82
4. Projektovanje logikih mrea sa samoproverom

4.6. Sinteza kombinacionih i sekvencijalnih mrea sa samoproverom

Na osnovu generisanog VHDL opisa, a pomou komercijalnih alata za logiku sintezu


moe da se uradi sinteza kombinacionih i sekvencijalnih mrea sa samoproverom. Predloeni
ablon je definisan tako da je nezavisan od alata za sintezu pa se moe garantovati njena
korektnost. Kod veine alata sinteza se obavlja postupno, u vie koraka, pri emu se u prvom
koraku, na osnovu analize datog VHDL opisa, kreira sistem logikih jednaina u kome svaka
jednaina opisuje zavisnost jednog primarnog izlaza od svih primarnih ulaza. U drugom
koraku, sistem logikih jednaina se optimizuje primenom neke od metoda za minimizaciju
vieizlaznih logikih mrea. Pri tome se pojedinane logike jednaine ne realizuju kao
nezavisne logike mree ve se tei njihovom objedinjavanju u jedinstvenu, kompaktnu
vieulaznu-vieizlaznu mreu kod koje se ista logika kola koriste za formiranje vie
primarnih izlaza. S obzirom na to, nezavisni funkcionalni moduli iz polaznog VHDL opisa ne
preslikavaju se na nezavisne podmree, ve se odgovarajue podmree najee meusobno
preklapaju. Prilikom projektovanja kola sa samoproverom, pojava "preklapanja" funckonalnih
modula je nepoeljna, jer defekt u delu mree koji je zajedniki za vie funkcionalnih modula
moe da uslovi greku na izlazu svakog od njih. Iz tog razloga, u toku sinteze, neophodno je
obezbediti da struktura kola, sastavljena od izdvojenih modula (na primer, slika 4.27) bude
ouvana i na fizikom nivou. To se moe postii na dva naina. Prvi nain podrazumeva da se
moduli nezavisno sintetiu, a da se dobijene mree naknadno spoje u jedinstvenu celinu.
Drugi nain izbegavanja neeljene logike podele uzima u obzir hijerarhiju u toku procesa
sinteze. To znai da se optimizacija i sinteza rade odvojeno za svaki blok. Da bi se izbegla
logika podela izmeu modula prvobitno zadate mree i modula za konkurentnu detekciju
greke selektivno se primenjuje opcija sinteze keep_hierarchy. Direktive se umeu u
VHDL kd u vidu komentara, a u toku sinteze slue kao instrukcije alatu za sinezu.
Konkretno, direktiva keep_hierarchy primenjena na odreen funkcionalni modul nalae
alatu za sintezu da taj modul tretira kao izdvojenu celinu. Takoe, razliiti blokovi mogu da se
sintetiu sa razliitim opcijama, u zavisnosti od ciljeva projektanta, a proces moe da se
ponavlja sa razliitim tehnikama za konkurentnu detekciju greke. Na primer, neki od blokova
se optimizira za brzinu, a drugi za povrinu. Ako su kriterijumi projekta zadovoljeni, onda je
proces zavren. Meutim, ako cena i performanse nisu zadovoljene, onda se proces ponavlja
sa razliitim tehnikama za konkurentnu detekciju greke.

83
Projektovanje kombinacionih i sekvencijalnih mrea sa samoproverom na osnovu VHDL opisa

84
5. Implementacija mrea sa samoproverom

5. Implementacija mrea sa samoproverom

Put od ideje i poetne specifikacije do fizike realizacije kola je dug i sastoji se od vie
koraka ili faza. Na tom putu, projektantu su na raspolaganju razliite tehnike i alati, koji mu
pomau da opie svoju zamisao (VHDL, ematski dijagram, tabela istinitosti), proveri njenu
funkcionalnu ispravnost (funkcionalna simulacija) i transformie je u oblik pogodan za
direktnu fiziku realizaciju (sinteza).
Projektanti sve vie prihvataju top-down metodologiju projektovanja koja im prua
mogunost da preu sa nieg, tranzistorskog nivoa na vie, apstraktnije nivoe. Primenu ove
nove metode omoguili su jezici za opis hardvera i komercijalni alati za sintezu. Top-down
metodologija projektovanja polazi od HDL modela hardvera, na visokom nivou apstrakcije
(sistemski ili algoritamski), i preko arhitekturnog ili RTL modela dolazi do nivoa gejta ili
tranzistora. Ovakav nain projektovanja sistema podrazumeva i korienje automatskih alata
pomou kojih se vri sinteza i implementacija opisanog kola na CPLD ili FPGA tehnologiju
[Smit96].
Za projektovanje visoko pouzdanih sistema takoe se koristi prethodno pomenuta metoda.
Ovakvi sistemi zahtevaju dodatne resurse kao to su poveanje povrine i vei broj pinova, to
zavisi od primenjene tehnike za detekciju greke. Alati za sintezu i implementaciju
omoguavaju procenu poveanja resursa i, na osnovu toga, izbor tehnike sa najniom cenom.

5.1. Digitalna integrisana kola

Integrisano kolo, ili ip, je mala elekteronska komponenta napravljena od


poluprovodnikog materijala. Koristi se u mikroprocesorima, audio i video opremi,
automobilima i drugo. Sloenost integrisanog kola meri se stepenom integracije, koji
predstavlja broj osnovnih elemenata (tranzistora, gejtova) realizovanih (integrisanih) u
jednom kolu.
Prema metodlogiji projektovanja, integrisana kola se mogu podeliti na standardna
(Standard Integrated Circuits - SIC) i kola specifine namene (Application Specific
Integrated Circuits - ASIC). Standardne komponente se, u tehnolokom smislu, proizvode
nezavisno od krajnjeg korisnika i funkcionalni rad ovih komponenti unapred je tano odreen
od strane proizvoaa ipa. Nasuprot tome, funkcije ASIC kola ne odreuje proizvoa ve su
one definisane od strane projektanta. ASIC kola se projektuju tako da odgovaraju konkretnoj
specifinoj nameni. ASIC kola obino imaju bolje performanse od kola opte namene zato to
se mogu optimizirati u skladu sa zahtevima aplikacije. Meutim, cena projektovanja ASIC
kola je visoka. Pored toga, jedanput projektovana ASIC komponenta ne moe da se aurira ili
koriguje. U kritinim aplikacijama ovakve komponente ne mogu da se poprave u sluaju
otkaza, jedino mogu da se zamene novim [YuSh01].
Razlikuju se sledee vrste ASIC kola:
1. Full-custom - kolo se u potpunosti (do nivoa osnovnih elemenata) projektuje po
naurudbi, za tano definisanu primenu; ostvaruju se najbolje karakterisike, ali je
pojedinana cena visoka.

85
Projektovanje kombinacionih i sekvencijalnih mrea sa samoproverom na osnovu VHDL opisa

2. Semi-custom - za fabrikaciju naruenog kola proizvoa koristi pretprojektovane ili


prefabrikovane (nedovrene) strukture koje doradom prilagoava korisnikim
zahtevima; na taj nain se skrauje vreme pripreme proizvodnje, krajnja pojedinana
cena je nia, ali su performanse loije u poreenju sa full custom projektovanjem.
- Standard cells (standardne elije) - proizvoa nudi vei broj standardnih elija
(logika kola, flip-flopovi, ali i strukture SSI, MSI sloenosti); korisnik isporuuje
proizvoau emu sainjenu od standardnih elija, na osnovu koje proizvoa
izrauje ip, i pri tome ne startuje od poetka ve samo uklapa i povezuje
pretprojektovane standardne elije.
- Gate arrays (gejtovske matrice) - kolo se izrauje na podlozi sainjenoj od velikog
broja prefabrikovanih jednostavnih logikih elemenata ili MOS tranzistora koji nisu
meusobno povezani; korisnik isporuuje proizvoau emu do nivoa osnovnih
elemenata na bazi koje proizvoa obavlja doradu, tj. metalizaciju, polaznog ipa.
3. Programabilna logika kola, (Programmable Logic Devices - PLD) - to su integrisana
kola koja se mogu konfigurisati (tj. programirati) od strane krajnjeg korisnika da bi
ispunili zahteve koji su vezani za konkretnu aplikaciju. Strukturu PLD kola ini fiksan
skup komponenata kakvi su logiki gejtovi, ili sloeniji logiki blokovi, meusobno
spojeni programabilnim vezama. Programiranjem ovih veza, krajnji korisnik definie
funkciju kola, a jednom programirana funkcija se moe menjati u potpunosti ili
delimino. Sutinska razlika u odnosu na ostale tipove ASIC kola je u tome da PLD
kolo programira sam korisnik, ime je on u potpunosti nezavisan od proizvoaa.

5.1.1. Klasifikacija PLD kola


Danas je na tristu dostupan veliki broj tipova PLD kola, koji se razlikuju po nainu
programiranja, sloenosti (tj. logikom kapacitetu, ili implementacionoj moi), unutranjoj
strukturi, brzni rada, broju pinova. Raspoloiv logiki kapacitet se kree od nekoliko stotina
do nekoliko stotina hiljada ekvivalentnih gejtova, a taktna uestanost od nekoliko desetina
MHz do 200 MHz. PLD kola se pakuju u kuita sa nekoliko desetina do nekoliko stotina
pinova, to znai da su u stanju da implementiraju irok dijapazon kombinacionih i
sekvencijalnih logikih funkcija.
Prema sloenosti i organizaciji unutranje strukture, savremena PLD se mogu klasifikovati
u sledee tri kategorije:
1. SPLD (Simple PLD). PLD kola srednjeg stepena integracije zasnovana na
programabilnim AND-OR poljima, koja se koriste za implementaciju logikih funkcija
izraenih u formi suma proizvoda (slika 5.1). Glavni deo ove arhitekture ine dve
programabilne logike matrice: (a) AND matrica za formiranje logikih proizvoda i (b)
OR matrica za sumiranje logikih proizvoda. Pored AND-OR polja pojedine PLD
arhitekture ovog tipa poseduju izlazni stepen koji obezbeuje: (1) povratne veze sa
izlaza na ulaz, (2) mogunost promene polariteta izlaznog signala, (3) mogunost da se
pojedini eksterni prikljuci koriste bilo kao ulazi bilo kao izlazi i (4) memorijske
elemente za memorisanje stanja izlazih signala, to omoguuje sintezu sekvencijalnih
digitalnih kola.
Uobiajeni naziv za SPLD kolo kod koga se obe logike matrice mogu programirati je
PLA (Programmable Logic Array). Pored PLA strukture u upotrebi su i AND-OR polja
kod kojih je jedna od logikih matrica fiksna, a druga programabilna. Konfiguracija
fiksne matrice je permanentna, izvedena u toku fabrikacije kola i ne moe se menjati od

86
5. Implementacija mrea sa samoproverom

strane krajnjeg korisnika. AND-OR polje kod koga je AND matrica programabilna, a
OR matrica fiksna se zove PAL (Programmable Array Logic). AND-OR polje sa
fiksnom AND matricom i programabilnom OR matricom se zove ROM (Read Only
Memory).
U poreenju sa ostalim tipovima PLD kola (CPLD i FPGA), SPLD kola se odlikuju
relativno niskim logikim kapacitetom (do nekoliko stotina ekvivalentnih gejtova).
Glavna namena SPLD kola je zamena standardnih digitalnih kola niskog i srednjeg
stepena integracije ime se postie uteda prostora na tampanoj ploi, pojeftinjuje
proizvodnja i poveava pouzdanost u radu. Brzina rada SPLD kola je velika.
Propagaciono kanjenje od pina do pina je fiksno (ne zavisi od implementirane
funkcije i iznosi do nekoliko nanosekundi.
2. CPLD (Complex PLD). Sastoji se od veeg broja programabilnih funkcionalnih
blokova povezanih preko centralizovane programabilne sprene mree (slika 5.2). Po
unutranjoj strukturi, funkcionalni blokovi su slini tipinom SPLD kolu.
3. FPGA (Field Programmable Gate Array). PLD kola visokog stepena integracije koje
se izvodi kao polje velikog broja programabilnih logikih blokova (elija) jednostavne
strukture rasporeenih na infrastrukturi koja ih meusobno povezuje (slika 5.3).

Slika 5.1. SPLD arhitektura

5.1.1.1. CPLD arhitekture


Kao to je ve reeno, CPLD kola se sastoje od vie funkcionalnih blokova SPLD
strukture povezanih globalnom programabilnom sprenom mreom, odnosno prekidakom
matricom (slika 5.2). Meutim, ak i na nivou funkcionalnih blokova, CPLD kola su znatno
sloenija od SPLD kola. Naime, funkcionalni blok CPLD kola ini vei broj makroelija. U
veini sluajeva, funkcionalni blokovi se mogu smatrati nekom formom proirenog PAL-a, tj.
PAL sa elementima PLA arhitekture. Kod klasinih PAL-ova, raspodela logikih proizvoda je
fiksna u smislu da je svaki logiki proizvod privatan za jedno izlazno AND kolo (tj.
makroeliju). Privatni logiki proizvodi koji ostaju neiskorieni ne mogu se pridruiti nekoj
drugoj makroeliji. Takoe, makroelije ne mogu da imaju zajednike logike proizvode, pa u
sluajevima kada se isti proizvod koristi za formiranje logikih funkcija u vie makroelija,
taj proizvod mora da se formira u svakoj makroelji u kojoj se koristi.

87
Projektovanje kombinacionih i sekvencijalnih mrea sa samoproverom na osnovu VHDL opisa

(a)

(b) (c)
Slika 5.2. (a) CPLD arhitektura; (b) funkcionalni blok; (c) makroelija

S obzirom da prekidaka matrica kod CPLD kola ne mora da bude u potpunosti povezana,
tj. neke od teoretski moguih veza izmau izlaza i ulaza logikog bloka ne moraju stvarno da
postoje, teko se moe postii 100% iskorienost makroelija. Da bi se ublaili ovi nedostaci,
kod savremenih CPLD kola koristi se jedna ili neka kombinacija sledeih tehnika za
optimizaciju:
1) Preusmeravanje logikih proizvoda - podrazumeva da se svakoj makroeliji pridruuje
dodatna logika koja omoguava da se logika funkcija dobijena sumiranjem privatnih logikih
proizvoda preusmeri ka susednoj makroeliji gde se sumira sa privatnim logikim
proizvodima te makroelije. Na ovakav nain, objedinjavanjem logikih proizvoda susednih
makroelija, mogue je formirati sloenije logike funkcije. Meutim, ostali resursi
makroelije (tipino flip-flop) iji su logiki proizvodi preusmereni, ostaju neiskorieni.
2) Logiki ekspanderi - to su nerasporeeni logiki proizvodi programabilne AND matrice
koji se po potrebi mogu povezati sa bilo kojom, ili svim, makroelijama. Ekspanderski
proizvodi se invertuju i vraaju u programabilnu matricu, gde se mogu koristiti za formiranje

88
5. Implementacija mrea sa samoproverom

sloenijih logikih funkcija. Naravno, korienje ekspandera poveava propagaciono


kanjenje.
3) Logiki alokatori - to su prekidake mree ugraene izmeu AND matrice i izlaznih
OR kola, koje omoguavaju da se svaki logiki proizvod, generisan u programabilnoj AND
matrici, moe povezati sa bilo kojom izlaznim OR kolom. Drugim reima, omoguavaju
najekonominije korienje logikih proizvoda. S obzirom da potpuna povezanost zahteva
prekidaku matricu velikih dimenzija, obino postoji ogranienje u smislu da se jedan logiki
proizvod moe povezati sa nekim podskupom OR kola.
Zahvaljujui relativno velikoj brzini rada, CPLD kola nalaze iroku primenu, od
implementacije jednostavne sprene logike, do realizacije prototipova jednostavnijih ASIC
kola. Vaan razlog za sve veu primenu CPLD kola je redizajn postojeih sistema baziranih
na SPLD kolima, gde se vei broj SPLD kola zamenjuje manjim brojem CPLD kola. Sistemi
koji se sastoje od vie meusobno povezanih funkcionalnih modula mogu se efikasno
realizovati pomou CPLD kola, tako to se svaki modul realizuje jednim funkcionalnim
blokom. Opte pravilo je da su za realizaciju u CPLD tehnologiji pogodni sistemi koji
zahtevaju sloenu logiku sa malim brojem flip-flopova. Dobar primer takve klase kola su
konani automati. Sva komercijalna CPLD kola su reprogramabilna, to omoguava
jednostavnu i brzu izmenu dizajna. CPLD kola koja su reprogramabilna u sistemu
omoguavaju rekonfiguraciju hardvera (npr. izmena protokola kod kola za komunikaciju) bez
iskljuenja napajanja [Trim93].

5.1.1.2. FGPA arhitektura


Arhitekturu FPGA kola ine tri osnovna tipa gradivnih elementata: (1) konfiguracioni
logiki blokovi (Configuration Logic Blocks - CLB); (2) ulazno-izlazni blokovi (Input/Output
Blocks - IOB) i (3) sprena mrea. CLB blokovi obezbeuju funkcionalne elemente za
realizaciju korisnikih funkcija, IOB blokovi ostvaruju interfejs izmeu pinova ipa i sprene
mree, dok sprena mrea obezbeuje programabilnu vezu izmeu CLB i IOB blokova.
Logiki blokovi imaju jednostavnu strukturu i zasnivaju se na multiplekserima ili tabelama
pretraivanja (Look Up Table - LUT) sa malim brojem ulaza, koji kao takvi mogu da realizuju
samo relativno jednostavne logike funkcije, dok se sloenije funkcije realizuju povezivanjem
vie logikih blokova (slika 5.3). Logiki blok se programira upisom konfiguracionih
podataka (niza bitova). Najvei broj logikih blokova sadri i registre.

Slika 5.3. FPGA arhitektura

89
Projektovanje kombinacionih i sekvencijalnih mrea sa samoproverom na osnovu VHDL opisa

FPGA se moe programirati na tri razliita nivoa: (1) na nivou funkcije logikih elija; (2)
na nivou sprege izmeu elija; i (3) na nivou ulaza i izlaza. Sva tri nivoa se konfiguriu preko
niza bitova koji se preko eksternog izvora pune u kolo.
U zavisnosti od naina konfiguracije, razlikujemo etiri tipa FPGA kola. Konfigurabilna
kola (prvi tip) se mogu konfigurisati od strane korisnika samo jedanput nakon ega dodatne
promene konfiguracije nisu izvodljive. (Iz ovog razloga ova kola se nazivaju One-Time
Programmable, ili OTP). Rekonfigurabilna kola se mogu konfigurisati nekoliko puta i dele se
na dve klase: statika i dinamika. Kod statikih kola (drugi tip) konfiguracioni niz se puni
jedanput, na poetku rada, i dok je kolo operativno ne menja se. Nakon reseta sistema u
FPGA je mogue napuniti novi niz. Kod dinamiki rekonfigurabilnih kola mogue je vriti
promene u konfiguraciji u bilo kom trenutku rada kola. Dinamiki rekonfigurabilna kola se
dalje mogu podeliti na potpuno rekonfigurabilna (trei tip), pri svakom novom punjenju
rekonfigurie se celo kolo, i parcijalno rekonfigurabilna (etvrti tip) kod kojih je mogua
rekonfiguracija samo jednog dela kola.

Logiki blokovi FPGA kola


Logiki blokovi savremenih, komercijalnih FPGA kola znaajno se razlikuju po veliini i
implementacionoj moi. Da bi se istakle razlike u veliini i sloenosti logikih blokova, uvodi
se pojam granularnost logikog bloka, a sve savremene FPGA arhitekture neformalno se
klasifikuju samo u dve iroke grupe: logiki blokovi fine granularnosti i logiki blokovi grube
granularnosti.
Logiki blokovi fine granularnosti veoma su slini elijama gejtovskih matrica i uglavnom
se sastoje od nekoliko tranzistora ili jednostavnih logikih elemenata. Takvi blokovi poseduju
malo interno propagaciono kanjenje i s obzirom da zauzimaju malu povrinu njihov broj na
jednom ipu moe biti veoma veliki. Jednostavna struktura logikih blokova obezbeuje
fleksibilnost prilikom implementacije logikih funkcija. Obino se data logika funkcija moe
realizovati na vie razliitih naina, to omoguava ostvarivanje eljenog kompromisa izmeu
ukupne zauzete povrine (tj. broja upotrebljenih logikih blokova) i brzine rada. Meutim, to
su logiki blokovi jednostavniji to je neophodno obezbediti vei broj programabilnih veza u
sprenoj mrei. Prenos signala preko programabilnih veza je sporiji u poreenju sa prenosom
unutar logikog bloka.
Logiki blokovi grube granularnosti najee su zasnovani na LUT tabelama i tipino
sadre dodatne logike elemente, kao to su multiplekseri i flipflopovi. Takvi logiki blokovi
mogu da realizuju sloenije kombinacione i sekvencijalne logike funkcije, pa su potrebe za
povezivanjem logikih blokova programabilnim vezama manje. Sloeni logiki blokovi esto,
pored programabilnih struktura za realizaciju logike opte namene (npr. LUT tabele), sadre i
logike elemente za posebne namene, kao to su flipflopovi, generatori prenosa, SRAM
blokovi. Kod nekih serija FPGA kola postoji mogunost da se svaki logiki blok nezavisno,
po potrebi, postavi u jedan od nekoliko raspoloivih reima rada. U svakom od reima rada
resursi logikog bloka koriste se na drugaiji nain. Kombinacija logikih elemenata posebne
namene i reima rada omoguava kompaktnu realizaciju logikih struktura kao to su sabirai,
komparatori, brojai. Meutim, sloeni logiki blokovi esto su nepotpuno iskorieni, a
ekonominost implementacije zavisi od nivoa usklaenosti strukture sistema koji se
projektuje i FPGA arhitekture. To ima za posledicu da je logika gustina sistema realizovanih
u FPGA arhitekturi grube granularnosti obino manja od one koja je deklarisana za konkretno
FPGA kolo.

90
5. Implementacija mrea sa samoproverom

Sprena mrea FPGA kola


Sprena mrea je bitna komponenta FPGA arhitekture. Na slici 5.4 prikazan je opti
model sprene mree jedne tipine FPGA arhitekture. Bazini elementi sprene mree su:
iani segmenti i programabilni prekidai. Programabilni prekidai su grupisani u blokove za
povezivanje (Connection Blocks - C) i prekidake blokove (Switching Blocks - S). Logiki
blok (oznaen na slici 5.4 sa L) ima odreeni broj prikljuaka sa svake strane i povezuje se sa
sprenom mreom pomou C bloka. iani segmenti prolaze neprekinuti kroz C blok, a svaki
pin L bloka moe se povezati sa fiksnim brojem ianih segmenata koji prolaze kroz C blok.
S blokovi omoguavaju spajanje horizonalnih i vertikalnih ianih segmenata. Svaki iani
segment koji utie u S blok moe se povezati sa ogranienim brojem drugih ianih
segmenata koji sa drugih strana utiu u isti S blok.

Slika 5.4. Opti model sprene mree FPGA arhitekture

Veze izmeu logikih blokova obino se formiraju pomou vie ianih segmenata
spojenih programabilnim prekidaima. Za razliku od sprene mree kod CPLD kola, koja
omoguava proizvoljno povezivanje prikljuaka logikih blokova, sprene mree FPGA
arhitekture imaju ograniene resurse. Zbog toga, u nekim sluajevima nije mogue
konfigurisati kolo ak i ako je logiki kapacitet kola dovoljno veliki da ostvari sve zahtevane
logike funkcije. Vei broj ianih segmenata i programabilnih prekidaa poveava
fleksibilnost prilikom konfigurisanja FPGA kola, ali takve sprene mree zauzimaju veu
povrinu na ipu i poseduju vee propagaciono kanjenje [Rose93], [Trim93].
Arhitektura FPGA kola je fleksibilnija od CPLD kola zbog dodatnih flip-flopova. To je i
razlog njihovog korienja u protonim aplikacijama i u brzom procesiranju podataka. Pored
toga, FPGA kola imaju veu koncentraciju gejtova po datoj povrini (gua su) od CPLD
kola, pa je opravdano koristiti ih za vee projekte.
Prednost FPGA komponenti je funkcionalno prilagoenje, odnosno mogunost brzog i
lakog programiranja. Naime, komponenta moe da se testira i reprogramira. Funkcija koja je
verifikovana na FPGA kolu moe, zatim, da se generie kao ASIC komponenta [Smit96].
FPGA komponente su kompletno proizvedene, ali su ostale nezavisne od projekta. Svaki
proizvoa FPGA komponenti proizvodi ih sa svojom vlastitom arhitekturom. Arhitektura
obuhvata brojne programabilne logike blokove koji su povezani prekidakim matricama. Da
bi se konfigurisala komponenta za odreenu funkciju ove prekidake matrice se programiraju
tako da usmeravaju signale izmeu pojedinih logikih blokova [Smit96].

5.2. Projektovaje pomou PLD-a

CPLD i FPGA komponente mogu se koristiti za projektovanje svakog digitalnog logikog


sistema. U odnosu na strukture na nivou gejta, programabilne logike komponente pruaju
bolje mogunosti jer ne zahtevaju izradu prototipova pa se mogu brzo projektovati i

91
Projektovanje kombinacionih i sekvencijalnih mrea sa samoproverom na osnovu VHDL opisa

verifikovati. Poto su komponente softverski konfigurisane i programirane od strane korisnika


modifikacije se mogu napraviti vrlo brzo i u bilo kom trenutku. Za projektovanje sa
programabilnim logikim kolima potrebno je malo vremena to je vrlo bitan faktor dananjeg
trita.
Na dananjem nivou tehnologije, PLD kola su u stanju da implementiraju veoma sloene
logike funkcije. U fazi projektovanja sloenih digitalnih kola i sistema koriste se brojne
tehnike i sredstva za automatsko projektovanje. CAD alati, jezici za opis hardvera (HDL), kao
i specijalizovani softveri za logiku sintezu, logiku simulaciju, strukturnu analizu i
projektovanje od kljune su vanosti za efikasno projektovanje digitalnih sistema. Bez obzira
na tip, obim i specifinosti problema koji se reava, tok projektovanja je u sutini, uvek isti.
Cilj je da se projektantske ideje, predstavljene u tekstualnom ili ematskom obliku, konvertuju
u fajl koji sadri podatke o konfiguraciji za CPLD ili FPGA strukture. Osnovne faze
projektovanja pomou PLD kola prikazane su na slici 5.5.
Poetna faza (design entry) podrazumeva unos projekta korinjenjem neke od standardnih
metoda, kao to su VHDL opis hardverske strukture i ponaanja, ili ematski opis. Pri
projektovanju hardvera treba imati u vidu da se svi ulazni signali paralelno procesiraju,
prolazei od ulaza do izlaza kroz makroelije i meuveze.
Nakon izvrenog unosa projekta, a u cilju verifikacije logike ispravnosti obavlja se
funkcionalna (ili logika) simulacija. Za dati skup test signala na ulazu, a na osnovu tajminga
koji je definisan HDL modelom, simulator treba da potvrdi korektnost izlaznih signala. Iako
problemi sa povrinom i tajmingom hardvera mogu da se pojave i kasnije, projektant moe da
bude siguran da je logika funkcionalno korektna.
U sledeim fazama sinteze i translacije vri se implementacija projekta, tako to se opis na
visokom nivou preslikava na strukturu ciljnog CPLD ili FPGA kola. Ovo preslikavanje
obuhvata:
(1) logiku sintezu - procesom kompajliranja konvertuje se opis projekta u logike
jednaine i vri se njihova minimizacija,
(2) prilagoenje ciljnoj PLD arhitekturi (tehnology mapping) - realizacija logikih
jednaina pomou raspoloivih makroelija (programabilnih struktura kao to su look-up
tabele, multiplekseri, CPLD logiki blokovi);
(3) razmetaj (placement) - dodela makroelija fizikim logikim blokovima PLD kola;
(4) povezivanje (routing) - povezivanje logikih blokova.
U toku ovih aktivnosti najpre se kao rezultat sinteze generie prelazna prezentacija
projektovanog hardvera koja se naziva net lista. Net lista je obino u standarnom EDIF
(Electronic Design Interchange Format) formatu i nezavisna je od strukture CPLD i FPGA
komponenata. Pored HDL modela projekta, ulazi u alat za sintezu su i izvesna ogranienja
koja projektant moe da postavi kako bi naloio alatu na koji nain da tretira hijerarhiju
sadranu u HDL opisu. Takoe, projektant moe da postavi maksimalna dozvoljena kanjenja
kroz pojedine module projekta i slino. Iako u ovoj fazi implementacioni detalji nisu poznati,
alat za sintezu, na osnovu modela gradivnih elija za odreenu tehnologiju, moe da obavi
grubu procenu i analizu tajmiga i iskoristi ove rezultate kako bi dodatno optimizovao net listu.
Nakon sinteze, vri se mapiranje logike strukture, opisane u formi net liste, na
makroelije, meuveze i ulazne i izlazne pinove, a kao rezultat dobija se konfiguracioni fajl
koji sadri niz bitova, gde svaki bit definie stanje jednog internog prekidaa PLD kola.
Drugim reima, rezultat svih ovih aktivnosti je implemenatcioni opis projekta koji sadri sve
detalje vezane za internu konfiguraciju PLD kola koje realizuje dati projekat.

92
5. Implementacija mrea sa samoproverom

Korienjem implementacionog opisa, mogue je izvriti veoma preciznu simulaciju kako


u pogledu funkcionalnosti tako i u pogledu tajminga. Najpre treba dokazati da strukturna net
lista i VHDL opis kola obavljaju istu funkciju. Naime, zbog dvoznanosti VHDL koda moe
doi do generisanja nekorektne net liste. Nakon toga potrebno je izvriti tajming analizu. Na
nivou VHDL opisa taktni period ima apstraktnu vrednost, dok na strukturnom nivou ova
vrednost odgovara kanjenju kroz gejtove i veze odreene familije. Ukoliko se ustanovi da je
funkcionalnost naruena ili da zahtevi u pogledu tajminga nisu ostvareni, projektant
redizajnira projekat ili uvodi nova ogranienja, a zatim ponavlja postupak implementacije i
simulacije.
U poslednjoj fazi projektovanja, na bazi implementacionog opisa projekta, generisani
konfiguracioni fajl se programira u PLD kolo.

Slika 5.5. Proces projektovanja programabilnih kola

5.3. Primena PLD kola kod projektovanja pouzdanih sistema

Pojava rekonfigurabilnog hardvera prua mogunost za reavanje problema pouzdanosti u


sistemima kritinih aplikacija. Rekonfigurabilni hardver, kao to su na primer PLA ili FPGA
kola, mogu da se reprogramiraju u razliite komponente download-ovanjem razliitih
konfiguracija podataka u ip. Prema tome, rekonfiguracijom mogu da se koriguju greke u
projektu i nakon implementacije. Naime, delovi ipa koji su fiziki otkazali mogu da se
izbegnu uitavanjem nove konfiguracije koja ne koristi takve delove. Kljuna komponenta u
rekonfigurabilnoj komponenti je memorijska elija, jer je u njoj sauvana konfiguracija kola.
Uitavanjem nove konfiguracije u memorijsku eliju, funkcija sistema moe da se promeni
[Mitr04], [YuSh01].
Za rekonfigurabilna kola su razvijene mnoge tehnike koje koriste njihovu mogunost
rekonfiguracije kako bi ih uinile pogodnijim za pouzdane sisteme. FPGA proizvoai
ugrauju nove karakteristike u ova kola, koje ih ine imunim na tranzijentne greke, ili SEU, i
ujedno smanjuju vreme potrebno za rekonfiguraciju. Istraivai su razvili razliite tehnike za
oporavak sistema, zasnovanih na FPGA kolima, od permanentnih greaka. Meutim,
tehnologije izrade i nove arhitekture u velikoj meri su poboljale performanse i mogunosti
FPGA-ova. Ova poboljanja bie detaljnije opisana.

93
Projektovanje kombinacionih i sekvencijalnih mrea sa samoproverom na osnovu VHDL opisa

FPGA kola zasnovana na SRAM-ovima osetljivija su na SEU zato to SEU moe da


promeni logiku funkciju implementiranu na FPGA. Meutim, nova osobina konfiguracije
uitava podatke u FPGA i pomae u reavanju ovakvih problema. Na primer, kontroler
automatski ita FPGA konfiguraciju i poredi je sa originalnom konfiguracijom koja je u flash
memoriji. U sluaju detekcije greke, originalna informacija se uitava u FPGA. Drugi primer
je da se FPGA konfiguracija proita iz tri FPGA-a, a konfiguracija, koja se dobija kao rezultat
glasanja, upisuje se u FPGA. Da bi se smanjilo vreme rekonfiguracije, tehnika parcijalne
rekonfiguracije omoguava rekonfiguraciju samo jednog dela FPGA umesto celog ipa.
Meutim, novi tipovi FPGA mogu da budu rekonfigurisani bez uticaja na rad sistema na ipu.
Kada se SEU pojavi i greka detektuje u FPGA konfiguraciji, nije neophodno zaustaviti rad
sistema jer se korektna konfiguracija vrlo brzo download-uje u defektni (oteen) deo FPGA-
a [YuSh01], [Trim93].
Mnogi istraivai su koristili dostupne tehnike rekonfiguracije da bi obezbedili pouzdan
rad u FPGA baziranim sistemima. Jedan od pristupa je generisanje nove konfiguracije nakon
detekcije permanentnih defekata u sistemu.
Postojanje CAD alata i algoritama za brzo re-routing i re-mapping FPGA uslovilo je
pojavu drugog pristupa. Osobina ovog pristupa je da se generie i unapred kompajlira
alternativna FPGA konfiguracija koja se mapira (bit maps) i uva u nepromenljivoj memoriji.
U sluaju pojave permanentnog defekta u postojeoj FPGA konfiguraciji, usled re-routing i
re-mapping, nova konfiguracija moe da se izabere bez kanjenja.
Korienjem prethodno pomenutih ema za oporavak, nakon detekcije permanentnih
defekata, FPGA se moe vraati u korektan nain rada sve dok, za rutiranje na ipu, postoji
dovoljno elemenata bez defekata koji omoguavaju da se izbegnu elementi sa defektima.
eme za oporavak od permanentnih defekata mogu da se kombinuju sa tehnikama za
obnavljanje od tranzijrntnih greaka kako bi se uspeno obnovio projekat zasnovan na FPGA.
Ovakve eme za oporavak (vraanje sistema u ispravno stanje) koriene su u razliitim
raunarskim arhitekturama da bi se obezbedila pouzdanost. Kao primer ovakvih arhitektura
moemo pomenuti Dual-FPGA arhitekturu koja koristi samo rekonfigurabilni hardver i
memorijske komponente. Kontroleri za oporavak su ugraeni u svaki FPGA kako bi izvrili
zadatke rekonfiguracije. Zbog korienja rekonfigurabilnog hardvera, u cilju vraanja ovakvih
arhitektura u ispravno stanje ne postoji potreba za zamenom komponenti sa defektom
[YuSh01].
U skorije vreme, zbog brzog razvoja tehnolokog procesa, postaje sve znaajnije
izraunavanje potronje u rekonfigurabilnim sistemima. Na tritu postoje FPGA kola koja
sadre do 10 miliona gejtova po ipu i ija je brzina rada nekoliko stotina MHz. Zbog velikih
mogunosti, dobrih performansi i niih cena za implementaciju, FPGA kola se sve vie
koriste u komercijalnim aplikacijama, kao to su procesi emulacije, komunikacije, optike
mree, obrada slike. Mnoge kompanije su projektovale procesorska jezgra opte namene za
FPGA implementaciju. Takoe se FPGA kola koriste i u kritinim aplikacijama kao to su
elektronske komponente u kamerama u svemiru [YuSh01].
Zakljuak je da su FPGA komercijalno dostupna kola, i da mogu obezbediti valiku
kapacitivnost, dobre performanse i brzo vraanje sistema u normalan rad nakon detektovanja
permanentnih defekata. Prema tome, FPGA kola se mogu koristiti kao alternativno reenje u
visoko pouzdanim sistemima.
Na cilj je, upravo projektovanje sistema na FPGA ili CPLD strukturi, uz obezbeivanje
visoke pouzdanosti (fault tolerance) i ouvanje potrebnih performansi sistema. Jasno je da se
veina pomenutih tehnika oslanja na mogunost detekcije greke i podrazumeva postojanje

94
5. Implementacija mrea sa samoproverom

ugraenih kola za konkurentu detekciju greaka. Za razliku od drugih, rekonfigurabilni


sistemi mogu da imaju greku u konfiguracionom kolu, odnosno u memorijskim elijama.
Poto je konfiguracija promenjena, greke koje se javljaju su permanentne i mogu se
detektovati CED emama.

5.4. Projektovaje kola sa samoproverom pomou PLD-a

U Poglavlju 4 detaljno je opisana metoda za generisanje mrea sa samoproverom koja se


zasniva na dodavanju kola za konkurentnu detekciju greke u VHDL kd prvobitno zadate
mree. Ovakav pristup modifikacije mree na nivou VHDL koda, pre procesa sinteze, ima niz
prednosti u odnosu na modifikaciju mree na nivou gejta. Pre svega prua mogunost da kolo
za detekciju greke bude optimizovano zajedno sa prvobitno zadatom funkcionalnom
mreom. Takoe, alat za sintezu uzima u obzir i kolo za detekciju greke u sluaju kada treba
da zadovolji vremenska i druga ogranienja. Na ovaj nain se reava i problem ponavljanja
procesa sinteze, jer se tako zadata ogranienja ne mogu naruiti.
Pristup dodavanja strukture za konkurentnu detekciju greke na nivou VHDL koda moe
lako i jednostavno da se inkorporira u standardni tok projekta pomou PLD kola. To znai da
se mora modifikovati algoritam sa slike 5.5, koji predstavlja tok projektovanja prvobitno
zadate mree. Najpre se, pre procesa sinteze, u VHDL opis, dodaje kolo za konkurentnu
detekciju greke. Struktura ovog kola zavisi od tehnike koja e se koristiti za konkurentnu
detekciju greke. Projektant moe izabrati bilo koju od prethodno opisanih tehnika kao to su:
dupliciranje, primena Berger-ovog, Bose-Lin-ovog ili koda parnosti.
Izbor odreene tehnike za konkurentnu detekciju greke zavisi od toga kolika je cena
primene izabrane tehnike. Drugim reima, opravdanost primene odreene tehnike zavisi od
toga u kojoj meri su zadovoljeni postavljeni zahtevi. Najei kriterijumi za odreivanje cene
izabrane tehnike su [Moha02]:
1) Napor koji treba uloiti da se u postojei projekat doda kolo za konkurentnu detekciju
greke i da se verifikuje da li je ispunjen uslov pokrivanja defekata (fault coverage).
2) Iznos poveanja povrine, kanjenja i potronje kola sa dodatnom strukturom za
konkurentnu detekciju greke.
Prvi uslov zavisi od automatizovanosti predloene metode, koja je opisana u Poglavlju 4.
Takoe zavisi i od primenjene tehnike zato to jedino duplikacija garantuje 100% pokrivanje
defekata, dok sve ostale tehnike garantuju pokrivenost samo za usvojeni model defekata. Sa
druge strane, tehnika parnosti je najjednostavnija i unosi najmanje kanjenje, ali zato esto
ispoljava nizak nivo pokrivenosti defekata. Meutim, ne postoji tehnika koja u svim
sluajevima daje najbolje reenje, tako da se optimalan izbor moe izvriti tek nakon
implementacije i evaluacije svih raspoloivih tehnika.
Metoda koja je predloena u ovoj tezi ocenjuje se na osnovu prosenog poveanja
povrine i kanjenja kola sa samoproverom u odnosu na prvobitno zadato kolo. To znai da
se, nakon izbora tehnike za konkurentnu detekciju greke, vri sinteza dobijenog kola sa
samoproverom. Na osnovu rezultata sinteze moe se odrediti poveanje povrine i kanjenja,
odnosno smanjenje brzine rada.
Povrina sintetizovanog kola jednaka je zbiru povrine prvobitno zadatog kola, povrine
kola za detekciju greke i povrine kola za proveru. Poveanje povrine zavisi od strukture
kola za detekciju greke i kola za proveru, odnosno zavisi od primenjenog kda za detekciju
greke. Ako postoji neki unapred zadat uslov koji mora da se zadovolji, onda se dobijena

95
Projektovanje kombinacionih i sekvencijalnih mrea sa samoproverom na osnovu VHDL opisa

vrednost poredi sa zadatom vrednou za poveanje povrine i kanjenja. U sluaju da uslov


nije ispunjen i da odreena cena nije zadovoljena, neophodno je izabrati novu tehniku za
konkurentnu detekciju greke i ponoviti ceo postupak. Tek kada je uslov ispunjen vri se
implementacija i vremenska simulcija kola sa samoproverom. Sve opisane faze za
projektovanje kola sa samoproverom mogu se predstaviti algoritmom sa slike 5.6. S obzirom
da se ovaj algoritam dobija modifikacijom algoritma sa slike 5.5, moemo rei da je
predloena metodologija inkorporirana u standardni tok projektovanja.

Slika 5.6. Proces projektovanja kola sa samoproverom

Kao to se vidi sa slike 5.6, cilj predloene procedure je izabor one tehnike za
konkurentnu detekciju greke koja bi omoguila da se generie kolo sa samoproverom koje
zadovoljava zadata ogranienja u smislu poveanja povrine i kanjenja. Drugim reima, cena
generisanog kola mora da zadovolji zadata ogranienja. Ova cena, sa kojom bi se vrilo
poreenje, moe da se odredi tako to se na vei skup digitalnih kola primeni svaka od
predloenih tehnika i onda se na osnovu dobijenih cena odredi njena srednja vrednost.
Tek nakon izbora metode koja zadovoljava datu cenu moe da se vri implementacija kola
sa samoproverom na CPLD ili FPGA strukturu.

96
5. Implementacija mrea sa samoproverom

5.5. Merila kvaliteta kod PLD kola

Sinteza visokog nivoa generie strukturni dizajn koji implementira dati opis kola
zadovoljavajui pri tome projektantska ogranienja koja se odnose na povrinu, performanse,
potronju energije, pakovanje, testiranje i drugo. U procesu sinteze merila o kvalitetu su
neohodna iz dva razloga. Kao prvo, neophodne su tane mere na osnovu kojih se odreuje
kvalitet konanog sintetizovanog kola. Merilo o kvalitetu konanog dizajna omoguava
komparaciju sa aspekta postavljenih ogranienja, a zatim i identifikaciju kritinih taaka u
metodologiji projektovanja, CAD sredstvima ili strukturi upravaljanja. Sa druge strane, dobre
procene kvaliteta dizajna su neophodne da bi se izabrala odgovarajua sredstva za sintezu kao
i odgovarajui stil projektovanja, kako ciljne arhitekture tako i drugih arhitekturnih osobina.
Obino postoje tri glavne mere koje se koriste za donoenje odluka o kavlitetu dizajna:
povrina, performanse, i potronja. Povrina se odnosi na fiziki obim dizajna. Performansne
mere se odnose na vreme propagacije signala kroz dizajn kao i ukupno vreme izvrenja. Mere
u potronji se odnose na disipaciju snage dizajna i ukazuju na vrue take implementacije.
Pored navedenih, postoje i druge mere koje se koriste za procenu kvaliteta dizajna, a one se
odnose na sposobnosti za verifikaciju, testiranje, pouzdanost, i izvodljivost fabrikacije. S
obzirom da projektantske odluke zavise od ovih mera, njihova tanost i pouzdanost su kljune
za generisanje kvalitetnih reenja [Gajs92].

5.5.1. Povrina kao mera kvaliteta


Korienje povrine kao mere za procenu kvaliteta podrazumeva podelu fizikog dizajna
na povrinu koju zauzimaju aktivne jedinice i povrinu koja je neophodna za spregu aktivnih
jedinica. Aktivne jedinice ine funkcionalne jedinice kao to su ALU, sabirai i mnoai, i
memorijske jedinice, kakvi su registri, registarska polja, ROM, RAM i td. Za spregu aktivnih
jedinica koriste se magistrale, veze i multiplekseri.
Za merenje povrine aktivne jedinice do sada su koriene razliite metode. Jedna od njih
koristi broj AND, OR, NOT operatora u Boolean-ovim izrazima pomou kojih se opisuje
funkcionalna jedinica. Druga mera aproksimira povrinu aktivne jedinice kao zbir povrina
elija pri emu svaka elija implementira po jedan simbol u ematskom dijagramu. Povrina
elije se dobija na osnovu bibliotekog kataloga koga daje proizvodja. Povrina se takoe
moe aproksimirati pomou vrednosti koja se dobija mnoenjem broja tranzistora i
koeficijenta gustine tranzistora (izraen u m2/tranzistoru, a dobijen usrednjavanjem layout
povrine po tranzitoru za sve dostupne elije u biblioteci, ili usrednjavanjem u odnosu na neki
jednostavan dizajn).
U odnosu na povrinu sprege, najvei broj metrika pretpostavlja da je veliina layout-a
ove povrine direktno proporcionalna broju i veliini sprenih jednica. Saglasno tome, broj
multipleksera ili broj ekvivalentnih multipleksera tipa 2-u-1 je standardna mera za procenu
povrine za spregu koja se koristi kod algoritama za alokaciju staze podataka (datapath-a). Na
slian nain broj multiplekserskih ulaza i broj veza se standardno koristi za odreivanje mere
o povrini neophodnoj za razvoenje veza i magistrala [Gajs92].

5.5.2. Procena performansi


Performanse digitalnog sistema najee se karakteriu merama kakve su taktna
frekvencija, broj instrukcija ili broj operacija tipa sabiranje/mnoenje koje sistem moe da
izvri u jedinici vremena tj. sekundi. Nabrojane individualne mere ne karakteriu u potpunosti

97
Projektovanje kombinacionih i sekvencijalnih mrea sa samoproverom na osnovu VHDL opisa

stvarne performanse sistema koje se odnose na sveukupan zadatak koji sistem treba da obavi.
Umesto toga, performanse sistema uobiajeno se mere ukupnim vremenom koje je potrebno
za izvrenje svih zahtevanih aktivnosti. S obzirom da algoritam rada sistema moe da sadri
petlje (loop) koje nemaju fiksne granice, kao i "if" iskaze kod kojih "then" i "else" grane
zahtevaju razliita vremena za izvrenje, ukupno vreme izvrenja zavisie od konkretnih
vrednosti ulaznih podataka. Zbog toga je vreme izvrenja jednako proizvodu broja
upravaljakih koraka koji je potreban da se izvri algoritam i trajanju upravljakog koraka
(obino izraeno u taktnim periodama). Pored minimizacije taktnog perioda, performanse se
mogu poboljati i minimiziranjem broja upravljakih koraka na kritinom putu izraunavanja,
kao i korienjem veeg broja resursa i paralelnog izvrenja uvek kada je to mogue [Gajs92].
Za dobijanje modela kanjenja kombinacionih i sekvencijalnih kola najee se koristi
elektrini model kanjenja. Za izraunavanje kanjenja obino se koristi RC model sa
raspodeljenim parametrima, nazvan Elmore-ov model kanjenja. Kod RC modela sa
raspodeljenim parametrima, propagaciono kanjenje na putu od poetne do krajnje take,
(tp(start,end)), izraunava se kao proizvod svih raspodeljenih otportnosti, Rj, i kapacitivnosti,
Ck, na putu, tj. kao
t p (start , end ) = R j C k
j k

Prethodnu jednainu moemo koristiti za dobijanje kanjenja veze izmeu dve


komponente, kao to je prikazano na slici 5.7(a). U CMOS tehnologiji, komponenta se
modelira pomou njene ulazne kapacitivnosti (Cin) i njene izlazne otpornosti (Rout), kako je to
prikazano na slici 7(b). Za veze koje, u obliku tanke ice metala fiksne debljine, ostvaruju
povezivanje komponenata, koristimo dobro poznati -model kod koga je ulazna kapacitivnost
(CV/2), otpornost veze (RV), i izlazna kapacitivnost (CV/2).

(a)

(b)
Slika 5.7. Oiavanje: (a) RT model; (b) ekvivalentni RC model kanjenja

5.5.3. Mere kvaliteta kod CPLD kola


Kao merila za procenu kvaliteta implementiranog dizajna kod CPLD struktura najee se
koriste povrina i performanse. Zahvaljujui strukturi sprene mree, koja obezbeuje
potpunu povezanost makroelija, tajming se moe precizno predvideti pre nego to je sistem
realizovan, to predstavlja veoma bitnu prednost CPLD kola u odnosu na FPGA kola. Na slici
5.8, primera radi, prikazan je model kanjenja CPLD kola XC7318 familije koji se koristi u
razvojnim softverima za kreiranje izvetaja o tajmingu.

98
5. Implementacija mrea sa samoproverom

Slika 5.8. Model kanjenja CPLD kola XC7318 familije

Model sa slike 5.8 definie kanjenje svakog internog hardverskog elementa u makroeliji,
sprenoj mrei i U/I baferima CPLD kola. U zavisnosti od naina na koji je CPLD kolo
programirano, ulazni signal prolazi kroz razliite hardverske elamente, a sabiranjem njihovih
kanjenja dobija se ukupno propagaciono kanjenje signala kroz CPLD kolo. Softverski alati
kreiraju izvetaj o tajmingu nakon mapiranja projekta na specificirano CPLD kolo. Detaljne
definicije svih vremenskih parametara, prikazanih na slici 5.8, kao i njihove tane vrednosti
mogu se nai u odgovarajuim katalozima [XiliDS], [AlteDS].

5.5.4. Mere kvaliteta FPGA kola


Kod FPGA struktura, kao i kod CPLD, kao merila za procenu kvaliteta implementiranog
dizajna najee se koriste povrina i performanse.
Povrina i performanse dizajna implementiranog u FPGA tehnologiji u najveoj meri
zavise od strukture i karakteristika logikih blokova raspoloivih u konkretnom FPGA kolu.
Logiki blokovi savremenih, komercijalnih FPGA kola znaajno se meusobno razlikuju po
veliini i implementacionoj moi. Naime, postoje dvo-tranzistorski logiki blokovi veoma
malih dimenzija koji mogu da realizuje samo jedan invertor, ali takoe postoje i znatno
sloeniji logiki blokovi koji sadre tri LUT tabele i mogu da realizuje bilo koju funkciju od
pet promeljivih. Ve je pomenuto da, na osnovu strukture logikih blokova, sve savremene
FPGA arhitekture mogu imati finu ili grubu granularnost.
Gustina pakovanja logikih blokova i performanse FPGA kola u najveoj meri zavise od
granularnosti logikih blokova. Sa poveanjem granularnosti smanjuje se broj potrebnih
blokova za implementaciju projektovanog kola. Sa druge strane, viefunkcionalni logiki
blokovi (grublje granularnosti) zahtevaju vie kola za implementaciju pa, prema tome,
zauzimaju i veu povrinu. Drugim reima, sa poveanjem finoe FPGA arhitekture,
logiki blokovi postaju jednostavniji a sprena mrea zauzima proporcijalno sve vei deo
ukupne povrine ipa, pa zbog toga, rad kola postaje sporiji. Osnovni problem predstavlja
nalaenje "optimalne" granularnosti logikog bloka. Optimalna granularnost se standardno
procenjuje kada se izvri FPGA imlementacija skupa benchmark kola. Dobijeni rezultati
odnose se na broj logikih elija, tj. aktivnu povrinu, ali i na veze koje postoje izmeu
logikih blokova.
Na osnovu prethodnog moe se zakljuiti da je ukupna povrina FPGA ipa jednaka zbiru
povrine logikih blokova i povrine sprene mree. Linije za povezivanje zauzimaju ak 70
do 90% ukupne povrine ipa. Kao mera za procenu FPGA povrine moe da se koristi broj
memorijskih bitova potrebnih za implementaciju logike funkcije korienjem LUT tabela sa

99
Projektovanje kombinacionih i sekvencijalnih mrea sa samoproverom na osnovu VHDL opisa

razliitim brojem ulaza, k. Eksperimentalni rezultati su pokazali da se sa poveanjem broja


ulaza u LUT poveava i povrina logikog bloka, a smanjuje se broj logikih blokova
potrebnih za implementaciju. Sa druge strane, sa poveanjem broja ulaza u LUT poveava se i
povrina koju zauzimaju linije za povezivanje. Eksperimentalni rezultati su, takoe, pokazali
da e se dobiti minimalna povrina logikog bloka ako se koriste LUT tabele sa k = 4 ulaza.
Ovi rezultati su iskorieni u alatima za logiku sintezu [Rose93].
Granularnost logikih blokova i tehnologija programiranja su u bliskoj vezi. Sprene
mree realizovane na bazi antifuse tehnologije poseduju veu gustinu (broj programabilnih
veza po jednici povrine) i manje propagaciono kanjenje od sprenih mrea kod kojih se
koristi EPROM ili SRAM tehnologija programiranja. Zbog toga kod FPGA arhitektura fine
granularnosti, po pravilu se koristi antifuse tehnologija programiranja. Meutim,
rekonfigurabilnost kao veoma poeljna karakteristika FPGA arhitekture, ne moe se ostvariti
pomou antifuse tehnogije. Da bi smanjena gustina i poveano propagaciono kanjenje
sprenih mrea realizovnih na bazi EPROM ili SRAM tehnologije programiranja mogli da se
toleriu, logiki blokovi trebaju biti sloeniji. Zbog toga rekonfigurabilne FPGA arhitekture
koriste logike blokove grube granularnosti [Rose93].
Kao to je ve pomenuto, granularnost logikog bloka ima veliki uticaj i na performanse
FPGA kola. Eksperimentalni rezultati, zasnovani na implementaciji odreene funkcije
pomou NAND gejtova sa dva ulaza ili LUT tabela sa tri i vie ulaza, pokazali su da se sa
poveanjem granularnosti smanjuje ukupno kanjenje implementiranog kola. Takoe je
pokazano da se sa poveanjem broja ulaza u LUT tabelu smanjuje broj logikih nivoa, ali se
poveava kanjenje kroz logiki blok i kroz sprenu mreu. Uz odreeni kompromis koji se
ogleda u smanjenju broja logikih nivoa i poveanju kanjenja kroz logiki blok i sprenu
mreu (to se obino izvodi poveanjem broja ulaza u LUT), dobija se granularnost koja
odgovara "optimalnim" FPGA performansama [Rose93].
S obzirom na sloenu arhitekturu, precizna procena performansi dizajna koji se realizuje u
FPGA predstavlja daleko tei zadatak nego kod CPLD kola. Performanse su odreene zbirom
kanjenja kroz logike blokove i veze na kritinoj putanji. Logiki blokovi se mogu opisati
jednostavnim modelom kanjenja, meutim, pre izvrenog mapiranja, teko je proceniti broj
logikih blokova na kritinoj putanji dizajna. Kod savremenih FPGA kola, kanjenje na
vezama ini vie od 50% ukupnog propagacionog kanjanja. Kanjenje signala kroz FPGA
sprenu mreu odreeno je ne samo duinom veze ve i fizikom lokacijom veze i brojem
programabilnih prekidaa pomou kojih je veza formirana (nalaze se na putu prostiranja
signala). Programabilni prekida poseduje znaajnu otpornost i parazitnu kapacitivnost i u
elektrinom smislu ponaa se kao RC elemenat. Za fiksno R i C, kanjenje signala je
srazmerno kvadratu broja serijski vezanih RC elemenata. Ako je srednji broj programabilnih
prekidaa po ostvarenoj vezi veliki, tada e rezultujue kolo biti sporo. S obzirom da se
razliite veze formiraju od razliitog broja ianih segmenata, varijacije u kaenjenju signala
mogu biti znaajane. Da bi se ostvario zadati tajming kola, neophodo je imati precizne
informacije o oekivanom internom kanjenju signala jo u fazi projektovanja sistema. Ova
informacija je zasnovana na procenjenom prosenom kanjenju kroz sprenu mreu. Ukoliko
su varijacije u kanjenju ostvarenih veza znaajne, predikcija e biti neprecizna. Da bi se
smanjila prosena duina ostvarenih veza, kod veeg broja sprenih mrea komercijlnih
arhitektura postoje iani segmenti razliitih duina. Nemogunost precizne procene
kanjenja je jedan od najvanijih problema prilikom projektovanja pomou FPGA [Rose93].
Alati za projektovanje ([XiliFou], [XiliWP], [MAX+P]) obino omoguavaju da projektanti
sami zadaju ove parametre, kao ogranienja, jo u poetnoj fazi projektovanja.

100
5. Implementacija mrea sa samoproverom

5.5.5. Merila kvaliteta koje mi koristimo


Predloena metoda za projektovanje kola sa samoproverom podrazumeva izbor najbolje
tehnike za konkurentnu detekciju greke. Za takav izbor neophodno je, na osnovu nekog
kriterijuma, uporediti primenjene tehnike. Kao merila kvaliteta primenjene tehnike
koristiemo povrinu i performanse. S obzirom da implementaciju kola sa samoproverom
vrimo na odreenu CPLD ili FPGA familiju neophodno je odrediti povrinu i performanse
pri svakoj implementaciji. Kod CPLD tehnologije povrina se odreuje na osnovu broja
zauzetih makroelija, a kod FPGA tehnologije odreuje se na osnovu broja zauzetih logikih
blokova (ili slajsova (slice), u terminologiji firme Xilinx). Performanse se odnose na:
(a) Maksimalno kanjenje od pina-do-pina (pad-to-pad - tPD) - vremenu prostiranja signala
kroz kolo koje ukljuuje kanjenje od ulaznog pina, preko unutranje kombinacione logike
do izlaznog pina. Ova mera se koristi za karakterizaciju performansi kombinacionih kola.
(b) Maksimalno kanjenje od registra-do-registra (registar-to-register - tC) - vreme prostiranja
signala izmeu unutranjih filip-flopova, tj. od ulaza za takt flip-flopa, preko flip-flopa,
dalje kroz kombinacionu logiku do ulaza za podatak narednog flip-flopa. Ovo kanjenje
odreuje maksimalnu taktnu frekvenciju kola i koristi se za karakterizaciju performansi
sekvencijalnih kola.

5.6. Implementacija kola sa samoproverom na CPLD i FPGA


tehnologije

Za projektovanje kola sa samoproverom na osnovu algoritma sa slike 5.6, nezavisno od


primenjene tehnike za detekciju greke, moemo koristiti mnoge komercijalne alate. Na
izbor su alati Active HDL V. 3.5 (za unos dizajna i simulaciju) i Xilinx ISE 4.2 (za sintezu,
translaciju i programiranje PLD kola). Za implementaciju emo koristiti CPLD i FPGA
tehnologije, i to XCR3384XL komponentu iz CoolRunner XPLA3CPLD familije i XC2S100
komponentu iz FPGA Spartan2 familije.
Modifikacija VHDL opisa, sinteza i implementacija vrena je nad sledeim skupom od 24
proizvoljno izabranih kola razliite sloenosti:
1) C1: 4-bitni komparator amplitude zasnovan na SN7485;
2) C2: 8-bitni komparator amplitude zasnovan na SN7485;
3) C3: dekoder ASCII-u-sedmosegmentni;
4) C4: dekoder ASCII-u-BCD;
5) C5: 4-bitni mnoa;
6) C6: 8-bitni mnoa;
7) C7: 18 segmentni alfanumeriki displej HDSP-6300;
8) C8: 8-bitni sabira sa rednim prenosom (ripple-carry adder);
9) C9: 16-bitni sabira sa rednim prenosom (ripple-carry adder);
10) C10: 8-bitni sabira sa ubrzanim prenosom (carry look-ahead adder);
11) C11: 16-bitni sabira sa ubrzanim prenosom (carry look-ahead adder);
12) C12: 32-bitni funnel pomera;
13) C13: 6-bitni binarni-u-BCD konvertor;
14) C14: 8-bitni binarni-u-BCD konvertor;
15) C15: 12-bitni binarni-u-BCD konvertor;
16) C16: prioritetni koder osam-u-tri;
17) C17: prioritetni koder esnaest-u-etiri;

101
Projektovanje kombinacionih i sekvencijalnih mrea sa samoproverom na osnovu VHDL opisa

18) C18: 3-linijski-u-8-linijski dekoder/demultiplekser;


19) C19: benchmark b01 automat;
20) C20: benchmark b02 automat;
21) C21: BlackJack automat;
22) C22: CPU kontroler;
23) C23: Test Access Port - TAP kontroler;
24) C24: upravljaka jedinica protonog procesora.
Postojei VHDL opisi prethodno navedenih kola modifikuju se tako to se, u zavisnosti od
tehnike koja se primenjuje, dodaju opisi svih elemenata potrebnih za generisanje kola sa
samoproverom. VHDL opisi svih potrebnih elemenata, kao to su generatori kodova i kola za
proveru, nalaze se u posebnom paketu koji je dat u Dodatku C. Pored toga, u Dodatku C se
nalazi i kompletan VHDL kd za generisanje kola sa samoproverom primenom tehnike
parnosti na prvoditno zadat opis kombinacionog kola - 4-bitni mnoa i sekvencijalnog kola -
b01 FSM.
Usled primene razliitih tehnika za detekciju greke, modifikovana kola e zauzimati
razliite povrine i imati razliite brzine.
Procenat poveanja povrine kola izraunava se na osnovu sledee formule
povr. kola sa samoproverom povr. zadatog kola
% pove. povr. = 100
povr. zadatog kola
gde se povrine prvobitno zadatog i kola sa samoproverom, u zavisnosti od primene
CPLD ili FPGA tehnologije, odreuju na sledei nain
number of macrocells
povrina kola =
number of slices
Procenat smanjenja brzine rada kola izraunava se na osnovu formule
brz. zadatog kola brz. kola sa samoproverom
% smanj. brzine = 100
brz. kola sa samoproverom
gde se brzine rada prvobitno zadatog i kola sa samoproverom izraunavaju na sledei
nain
1
brz. zadatog kola =
kanjenje zadatog kola
1
brz. kola sa samoproverom =
kanjenje kola sa samoproverom
Na osnovu prethodnih formula vidimo da je za odreivanje cene izabrane metode
neophodno znati broj zauzetih makroelija (za CPLD), broj zauzetih slices-ova (za FPGA
tehnologiju), i kanjenje koje odgovara maksimalnom pad-to-pad (tPD) vremenu prostiranja
signala kroz kolo. Ove vrednosti su sadrane u tekstualnim izvetajima (reports) alata koji
koristimo za sintezu i implementaciju. Pored tekstualnih postoje i grafiki izvetaji kao to je
osnovni izgled kola (Floor Planer). Na slikama 5.9 - 5.14 prikazani su reprezentativni primeri
tekstualnih i grfikih izvetaja korienih alata za sintezu i implementaciju za CPLD i FPGA
tehnologiju, respektivno.

102
5. Implementacija mrea sa samoproverom

Slika 5.9. Primer tekstualnog izvetaja o broju zauzetih makroelija za CPLD tehnologiju Xilinx
ISE 4.2 alata za sintezu

a1)

a2)
Slika 5.10. Primer tekstualnog izvetaja o vremenu prostiranja signala za: a1) kombinaciono i
a2) sekvencijalno kolo za CPLD tehnologiju Xilinx ISE 4.2 alata za sintezu

103
Projektovanje kombinacionih i sekvencijalnih mrea sa samoproverom na osnovu VHDL opisa

Slika 5.11. Primer grfikog izvetaja o osnovnom izgledu kola za CPLD tehnologiju Xilinx ISE
4.2 alata za sintezu

Slika 5.12. Primer tekstualnog izvetaja o broju zauzetih slices-ova za FPGA tehnologiju Xilinx
ISE 4.2 alata za sintezu

Slika 5.13. Primer tekstualnog izvetaja o vremenu prostiranja signala za: a1) kombinaciono i
a2) sekvencijalno kolo za FPGA tehnologiju Xilinx ISE 4.2 alata za sintezu

104
5. Implementacija mrea sa samoproverom

Slika 5.14. Primer grfikog izvetaja o osnovnom izgledu kola za FPGA tehnologiju Xilinx ISE
4.2 alata za sintezu

U Tabelama I i II prikazani su rezultati dobijeni nakon implementacije svakog od


izabranih kola na FPGA i CPLD tehnologiju, respektivno. U posebnim kolonama date su
vrednosti za povrinu i kanjenje svih prvobitno zadatih kao i modifikovanih kola, koja se
dobijaju primenom izabrane tehnike za konkurentnu detekciju greke na zadato kolo. Za
FPGA tehnologiju povrina kola je data u obliku broja zauzetih slajsova (#slices), a za CPLD
tehnologiju u obliku broja zauzetih makroelija (#macrocell). Brzina rada kola data je u
obliku maksimalnog kanjenja signala od ulaznih do izlaznih pinova (max.dly (ns)).

105
Projektovanje kombinacionih i sekvencijalnih mrea sa samoproverom na osnovu VHDL opisa

Tabela I Implementacija kola na FPGA XC2S100 komponentu iz Spartan2 familije


Kolo zadato duplik. Berger Bose-Lin parnost par.gr. 2 par.gr. 4
C #slices 3 9 6 6 4 6 4
1 max.dly (ns) 11.3 14.7 13.5 13.5 11.4 12.5 11.4
C #slices 3 8 9 9 7 9 7
2 max.dly (ns) 11.6 15.4 15.6 15.6 13.1 16 13.1
C #slices 9 23 24 19 12 18 14
3 max.dly (ns) 15.4 22.1 22.8 20.1 16.8 19.9 18.4
C #slices 6 18 21 14 7 16 11
4 max.dly (ns) 11.7 20.2 20.3 17.6 14.6 17.2 15.7
C #slices 14 38 78 53 32 33 40
5 max.dly (ns) 16.7 21.8 28.2 25.3 20.4 22.2 20.5
C #slices 64 144 201 201 143 146 144
6 max.dly (ns) 32.3 42.1 47 48.8 39.7 42.6 38.3
C #slices 66 179 137 136 165 124 107
7 max.dly (ns) 22.2 43.7 44.4 41.9 27.8 34.6 31.3
C #slices 12 26 55 49 21 25 23
8 max.dly (ns) 19.2 28.5 31.5 31.1 23.4 24 26.1
C #slices 24 52 103 104 40 55 47
9 max.dly (ns) 34.1 55.8 48.9 50.7 41.3 39.5 42.3
C #slices 21 47 76 67 42 42 43
10 max.dly (ns) 19.2 27.9 33.4 33.8 23.6 22.9 28.5
C #slices 44 95 142 137 83 90 86
11 max.dly (ns) 22.4 44 39.2 42.3 29.9 34.6 34.9
C #slices 80 198 224 222 94 121 102
12 max.dly (ns) 22.5 58.0 42.9 43.2 26.3 49.2 33.3
C #slices 6 19 27 17 9 18 13
13 max.dly (ns) 11.5 18.3 21.6 18.3 13.3 16 14.5
C #slices 14 37 72 57 30 35 32
14 max.dly (ns) 15.5 25.9 32.6 31.6 17.8 22.6 20.1
C #slices 40 96 143 128 87 93 88
15 max.dly (ns) 22.3 38.5 45.3 40.5 28.1 33.3 31.1
C #slices 5 12 12 11 6 8 6
16 max.dly (ns) 11.4 16.9 17.2 15.5 13.3 13.7 13.3
C #slices 13 28 30 22 16 18 17
17 max.dly (ns) 14.6 23.5 20.8 18.9 16.5 17.7 17.5
C #slices 5 17 24 21 10 13 7
18 max.dly (ns) 12.1 19.1 26.2 22.7 14.9 17 15.3
C #slices 7 22 17 17 19 10 19
19 max.dly (ns) 13.5 20.4 19.2 19.2 19.5 18.3 19.5
C #slices 4 12 8 8 11 11 11
20 max.dly (ns) 7.6 18.6 17.4 17.4 17.0 17.0 17.0
C #slices 16 52 69 60 50 46 41
21 max.dly (ns) 15.2 25.3 30.5 29.1 25.5 25.0 22.8
C #slices 8 26 38 36 20 27 28
22 max.dly (ns) 17.3 24.8 25.0 23.0 20.1 20.2 22.4
C #slices 9 30 64 55 16 37 9
23 max.dly (ns) 15.1 24.8 32.1 29.0 22.4 28.5 14.9
C #slices 43 118 70 60 109 49 49
24 max.dly (ns) 12.0 18.5 17.8 15.2 18.3 16.2 17.6
P poveanje povrine (%) 0 170.8 255.9 209.6 97.1 129.4 96.5
R smanjenje brzine (%) 0 64.1 71.9 62.7 29.0 43.8 33.9
Napomena: #slices - broj slajsova; max.dly (ns) - maksimalno kanjenje u ns; zadato - prvobitno
zadato kolo; duplik. - primena tehnike dupliciranja; Berger - primena Berger-ovog koda; Bose-Lin -
primena Bose-Lin-ovog koda; parnost - primena koda parnosti na sve bitove; par.gr.2 - primena koda
parnosti na grupu od dva bita; par.gr.4 - primena koda parnosti na etiri bita; PR - prosena vrednost;

106
5. Implementacija mrea sa samoproverom

Tabela II Implementacija kola na CPLD XCR3384XL komponentu iz CoolRunner


XPLA3CPLD familije
Kolo zadato duplik. Berger Bose-Lin parnost par.gr. 2 par.gr. 4
C #macrocell 3 7 8 8 5 5 5
1 max.dly (ns) 7.5 19.2 24.8 24.8 13.6 13.6 13.6
C #macrocell 3 7 5 5 5 6 5
2 max.dly (ns) 7.5 13.1 13.6 13.6 13.6 13.6 13.6
C #macrocell 9 15 17 14 10 12 10
3 max.dly (ns) 13.6 31.9 55.3 38.0 19.7 19.7 19.7
C #macrocell 7 10 18 15 11 14 11
4 max.dly (ns) 7.5 19.7 55.3 44.1 25.3 25.8 25.8
C #macrocell 10 29 56 45 33 37 33
5 max.dly (ns) 19.7 38.0 80.2 68.5 56.3 62.4 44.1
C #macrocell 79 163 242 237 182 182 175
6 max.dly (ns) 86.8 147.8 169.7 169.2 117.3 110.7 123.4
C #macrocell 26 57 161 160 94 99 92
7 max.dly (ns) 18.7 62.4 103.1 98.0 49.7 50.2 37.5
C #macrocell 16 34 55 46 35 34 33
8 max.dly (ns) 44.1 92.9 122.9 98.5 86.3 68.5 80.7
C #macrocell 36 73 120 123 71 71 69
9 max.dly (ns) 99.0 166.1 202.2 172.2 117.3 105.1 135.1
C #macrocell 18 32 55 48 37 33 35
10 max.dly (ns) 25.8 67.5 86.3 80.2 68.5 55.8 55.8
C #macrocell 41 70 117 123 68 69 68
11 max.dly (ns) 50.2 68.5 129.0 145.3 68.0 74.6 80.7
C #macrocell 64 129 193 191 94 99 86
12 max.dly (ns) 19.7 50.2 109.7 104.1 74.1 74.6 38.0
C #macrocell 8 19 47 43 12 18 39
13 max.dly (ns) 13.6 38.0 50.2 38.0 25.3 31.9 19.7
C #macrocell 15 33 63 54 33 37 36
14 max.dly (ns) 31.9 74.6 134.6 110.7 80.7 68.5 68.5
C #macrocell 48 90 167 145 100 88 101
15 max.dly (ns) 68.5 141.7 171.7 165.6 141.7 123.4 141.7
C #macrocell 4 6 11 7 6 7 6
16 max.dly (ns) 7.5 13.6 19.2 19.7 13.6 19.7 13.6
C #macrocell 5 11 21 16 8 17 8
17 max.dly (ns) 7.5 25.8 55.8 25.8 19.7 19.2 19.7
C #macrocell 8 10 18 14 12 13 12
18 max.dly (ns) 7.0 13.1 49.7 31.4 25.3 19.2 19.2
C #macrocell 6 14 13 13 10 8 10
19 max.dly (ns) 12.6 24.2 29.4 29.4 18.2 16.2 18.2
C #macrocell 4 10 6 6 6 6 6
20 max.dly (ns) 9.6 17.2 10.6 10.6 10.1 10.1 10.1
C #macrocell 12 33 32 33 25 14 20
21 max.dly (ns) 10.6 26.6 41.6 41.1 31.8 10.6 22.8
C #macrocell 6 17 16 19 12 11 10
22 max.dly (ns) 10.6 23.1 41.1 41.1 28.9 19.2 22.8
C #macrocell 13 38 35 29 19 14 14
23 max.dly (ns) 15.7 25.3 58.4 64.5 40.1 15.7 15.7
C #macrocell 38 115 76 65 123 59 59
24 max.dly (ns) 18.6 32.8 27.4 22.7 68.8 26.9 26.9
P poveanje povrine (%) 0 118.1 215.8 186.9 95.4 91.5 96.3
R smanjenje brzine (%) 0 119.4 268.2 214.5 130.1 98.2 88.2

Napomena: #macrocell - broj makroelija; vae napomene iz Tabele I.

107
Projektovanje kombinacionih i sekvencijalnih mrea sa samoproverom na osnovu VHDL opisa

5.7. Poreenje dobijenih rezultata

Primenom razliitih tehnika za konkurentnu detekciju greke na skup od 24


reprezentativnih kombinacionih i sekvencijalnih kola dolazi do poveanja povrine i
poveanja kanjenja kola. Ove vrednosti su generisane nakon implementacije kola na FPGA i
CPLD tehnologiju i date su u Tabelama I i II. Izraunavanjem srednjih vrednosti dobijenih
rezultata za ceo skup kola, mogu se odrediti proseno poveanje povrine i proseno
poveanje kanjenja, odnosno smanjenje brzine rada. Vrednosti izraunate na ovaj nain,
prikazane su, takoe, u Tabelama I i II, i ukazuju na cenu koja je neophodna za primenu
algoritma za projektovanje kola sa samoproverom prikazanog na slici 5.6.
U skladu sa dobijenim rezultatima predstavljenim u Tabelama I i II moemo izvesti
sledee zakljuke:

Duplikacija: Primenom ove tehnike dobija se proseno poveanje ukupne povrine od


170.8% za FPGA, i 118.1% za CPLD kola. Pored toga, dobijeno smanjenje brzine za FPGA
kola je 64.1%, a za CPLD kola je 119.4%.

Berger-ov kd. Proseno poveanje povrine iznosi 255.9.1% za FPGA i 215.8% za


CPLD kola, dok smanjenje brzine iznosi 71.9% i 268.2% za FPGA i CPLD kola, respektivno.

Bose-Lin-ov kd. U proseku, poveanje povrine iznosi 209.6% for FPGA, i 186.9% za
CPLD kola. Odgovarajue smanjenje brzine iznosi 62.7% i 214.5% za FPGA i CPLD kola,
respektivno.

Kd parnosti. Razmatrane su dve eme parnosti: tehnika sa jednim bitom parnosti


(parnost) i tehnika sa vie bitova parnosti (par.gr. 2 i par.gr. 4) za skup bitova podataka. U
oba sluaja se generie jedan bit parnosti po grupi. Dobija se da je proseno poveanje
povrine za FPGA kola 97.1%, 129.4%, i 96.5%, za parnost, par.gr. 2 i par.gr. 4,
respektivno, dok je za CPLD kola 95.4%, 91.5%, i 96.3%. Smanjenje brzine rada iznosi
29.0%, 43.8%, i 33.9%, za parnost, par.gr. 2 i par.gr. 4, respektivno, kada se koristi FPGA
tehnologija. Odgovarajue smanjenje brzine za CPLD tehnologiju je 130.1%, 98.2%, i 88.2%.

Na osnovu prethodno iznetih rezultata moemo rei da sve etiri eme za konkurentnu
detekciju greke dovode do znatnog poveanja povrine i smanjenja brzine rada. Iz Tabela I i
II takoe se moe videti da za svako od korienih kola, primena razliitih CED tehnika
dovodi do razlike u procentu poveanja cene. Pored toga, primenom iste tehnike na
specificirano kolo dobie se razliita poveanja cene ako se implementacija kola izvri na
razliite komponente (familije). Takoe, poveanje cene zavisi i od sloenosti prvobitno
zadatog kola na koje se primenjuje odreena CED tehnika. Naime, struktura i sloenost
kodera i kola za proveru zavisi od broja bitova na izlazu zadatog kola. Na primer, primena
CED tehnike na veoma kompleksno kolo sa malim brojem izlaznih bitova uzrokovae mnogo
maje poveanje povrine i kanjenja u odnosu na kolo manje sloenosti, ali sa veim brojem
izlaznih bitova. Na osnovu svih ovih zakljuaka jasno je da ne moemo sa sigurnou rei da
je, u svakom sluaju, jedna od ema superiorna u odnosu na sve ostale. Zato je najbolje
izraunati cenu primene odreene tehnike za svaki konkretan sluaj, odnosno za svako zadato
kolo. Automatizovanost predloene metode prua mogunost da se vrlo brzo i lako doe do
takvih rezultata. Poreenjem dobijenih rezultata, koji ukazuju na procenat poveanja povrine
i kanjenja, moe se odabrati SC kolo sa najniom cenom i nakon toga se moe pristupiti
realizaciji odabranog kola.

108
5. Implementacija mrea sa samoproverom

Ipak, u skladu sa dobijenim prosenim vrednostima za poveanje povrine i smanjenje


brzine rada moemo zakljuiti da je u najveem broju sluajeva, i za FPGA i za CPLD
tehnologiju, najbolje primeniti tehniku za konkurentnu detekciju greke koja se zasniva na
kodu parnosti.

109
Projektovanje kombinacionih i sekvencijalnih mrea sa samoproverom na osnovu VHDL opisa

110
6. Zakljuak

6. Zakljuak

Prezentovana magistarska teza inspirisana je sve veom potrebom za sistemima visoke


pouzdanosti. Savremena VLSI kola imaju niz pozitivnih karakteristika meu kojima su male
dimenzije, velika gustina pakovanja, rad na visokim frekvencijama i nizak napon napajanja.
Sa druge strane, svi ovi faktori uslovili su smanjenje margine uma, to je dovelo do
poveanja osetljivosti standardnih aplikacija na pojavu tranzijentnih defekata, koji se
manifestuju kratkotrajnim poremeajem u radu kola i najei su uzrok otkaza u VLSI
kolima/sistemima. Smanjenje stope otkaza moe se ostvariti detekcijom greke, uzrokovane
tranzijentnim defektom, odmah nakon njenog pojavljivanja.
U ovoj tezi predloena je metoda za projektovanje kombinacionih i sekvencijalnih mrea
sa samoproverom korienjem razliitih tehnika za konkuretnu detekciju greke. U zavisnosti
od naina kodiranja podatka koji se proverava koriene su tehnike dupliciranja, primene
Berger-ovog, Bose-Lin-ovog ili koda parnosti. Predloena metoda projektovanja zasnovana je
na VHDL opisu kola, a izvrena je dodavanjem strukture za konkurentnu detekciju greke u
prethodno projektovano kolo. Svi moduli koji ine strukturu za konkurentnu detekciju greke
(koderi, dekoderi i kola za proveru) i koje bi trebalo ukljuiti u VHDL opis prvobitno zadatog
kola, generisani su i sauvani u posednoj biblioteci. Generiki opisi arhitektura tih modula, sa
parametarskim brojem ulaza i izlaza, raspoloivi su u posebnom VHDL paketu. Postojeem
VHDL opisu kola dodavani su samo oni moduli koji su neophodni za generisanje SC kola
korienjem odabrane CED tehnike. S obzirom da je ovakav pristup generisanja SC kola
poluautomatskim dodavanjem CED strukture potpuno kompatibilan sa svakim okruenjem
koje podrava VHDL ulaz, omogueno je korienje raspoloivih komercijalnih alata za
sintezu.
Za svaku od predstavljenih CED tehnika, korienjem komercijalnih alata, izvrena je
najpre sinteza 24 proizvoljno izabranih benchmark kola, a zatim i sinteza, njihovom
modifikacijom generisanih SC kola. Povrinu sintetizovanog SC kola predstavlja zbir
povrina prvobitno zadatog kola, kola za detekciju greke i kola za proveru. Poveanje
povrine zavisi od strukture kola za detekciju greke i kola za proveru, odnosno od
primenjenog koda za detekciju greke.
Nakon sinteze, sva kola su implementirana na CPLD i FPGA komponente. Shodno
izvetaju korienog alata, dobijene su vrednosti koje predstavljaju broj zauzetih
makroelija/slice-ova i vreme kanjenja signala. Na osnovu dobijenih vrednosti odreeno je
proseno poveanje povrine i smanjenje brzine rada za svaku od primenjenih tehnika za
detekciju greke. Rezultati su pokazali da primena svake od predloenih CED tehnika dovodi
do razliitog, ali u veini sluajeva znatnog poveanja povrine i smanjenja brzine rada to je
u saglasnosti sa rezultatima prezentiranim u [Bolc98], [DeK94]. Takoe je pokazano da, u
sluaju primene odreene CED tehnike, razlike u procentu poveanja povrine i smanjenja
brzine zavise od sloenosti zadatog kola, ali zavise i od komponente na koju se kolo
implementira to se slae sa zakljucima datim u [Bolc00], [JhaN93].
Izbor odreene CED tehnike zavisi od toga kolika je cena njene primene. Odreene
prosene vrednosti primenjenih CED tehnika mogu se iskoristiti kao kriterijum za izbor.
Naravno, treba odabrati onu tehniku koja ima najmanje poveanje povrine i najmanje
poveanje kanjenja, odnosno najmanje smanjenje brzine rada. Na osnovu dobijenih rezultata

111
Projektovanje kombinacionih i sekvencijalnih mrea sa samoproverom na osnovu VHDL opisa

zakljueno je da, za najvei broj sluajeva, CED tehnika zasnovana na kodu parnosti
predstavlja najbolji izbor, to je u saglasnosti sa rezultatima predstavljenim u [McCl90],
[Toub94]. Meutim, ne moe se sa sigurnou izdvojiti tehnika koja e u svim sluajevima
dati najbolje reenje. Zato se optimalan izbor moe izvriti tek nakon implementacije i
evaluacije svih raspoloivih tehnika [Stoj104], [Stan204].
Osnovna prednost pristupa predloenog u ovoj tezi i u [Stojev042], tj. modifikacije
VHDL opisa kola na registarskom nivou, sastoji se u lakom i jednostavnom inkorporiranju u
standardni tok projektovanja zasnovan na PLD kolima. Ovaj pristup takoe omoguava da,
pomou alata za sintezu, kolo za detekciju greke bude optimizovano zajedno sa prvobitno
zadatom funkcionalnom mreom. Zato se jo u fazi projektovanja moe proceniti poveanje
povrine i kanjenja za svaku od korienih CAD tehnika. Nedostatak ovakvog pristupa, u
odnosu na modifikaciju kola na nivou gejta, ogleda se u tekoi da se precizno prati struktura
implementiranih mehanizama kao i potencijalno poveanje povrine i kanjenja, to je
posledica naina sinteze softverskih alata za projektovanje.
Eksperimentalna analiza sprovedena u ovoj tezi pokazala je da implementacija CED
tehnika, zasnovanih na kodiranju podatka nekim kodom za detekciju greke, unosi relativno
veliko poveanje povrine i kanjenja, ali znatno manje u odnosu na implementaciju TMR
tehnike [Stoj00], [Stoj101]. Na alost, u nekim aplikacijama kakvi su SoC embedded sistemi,
i pored zahteva za samoproverom, ovako visoka cena je ipak neprihvatljiva [Vahi02]. Iz tog
razloga, jedan od pravaca daljeg rada u oblasti projektovanja SoC i MPSoC embedded sistema
usmeren je ka projektovanju kola sa parcijalnom samoproverom. Za raziliku od
tradicionalnog pristupa, koji se sree kod satelitskih sistema, nuklearnih elektrana,
bezbednosno kritinih sistema po ljudski ivot i okolinu, gde potpuna samoprovera
predstavlja imperativ, parcijalna samoprovera, koja egzistira kod proizvoda iroke potronje,
instrumentacije, komunikacionih sistema, omoguava nalaenje kompromisa izmeu
poveanja cene i smanjenja mogunosti detekcije greke. Opta je tendencija da e u bliskoj
budunosti, do 2007. godine, svaka individua biti okruena u proseku sa pet, a da e u kui
biti instalirano oko 50 inteligentnih ureaja tipa embedded sistema. Svi ovi sistemi bie
zasnovani na visokim tehnologijama, a osnovni zahtevi koje bi trebalo da ispune su mala
potronja, visoke performanse, fleksibilnost i pouzdanost u radu. U cilju smanjenja cene i
potronje ovakvih ureaja, pouzdanost bi se implementirala na nivou parcijalne samoprovere,
pa je dalje istraivanje u ovoj oblasti od izuzetne vanosti.

112
7. Literatura

7. Literatura

[AlteDS] Altera Data Sheets, [Online], Dostupno: http://www.altera.com/literature/lit-ds.jsp


[Ambl03] P. Amblard, F. Lagnier, Michel Levy, "Finite State Machines: Composition,
Verification, Minimization: A Case Study", 10th International Conference,
MIXDES 2003, 26-28 June, pp. 214-219
[Ande73] Anderson D.A., Metze G., "Design of Totally Self-Checking Circuits for m-out-of-
n Codes", IEEE Trans. on Computers, Vol. C-22, No. 3, March 1973, pp. 263-269
[AlAs98] Hussain Al-Asaad, Brian T. Murray, John P. Hayes, "Online BIST for Embedded
Systems", IEEE Design & Test of Computers, October-December 1998, pp. 17-24
[Beni00] Luca Benini, Alessandro Bogliolo, and Giovanni De Micheli, "A Survey of Design
Techniques for System-Level Dynamic Power Management", IEEE Trans. on
VLSI Systems, Vol. 8, No. 3, June, 2000, pp. 299-316
[Blee93] Bleeker H., et al, "Boundary-Scan Test: A Practical Approach", Kluwer Academic
Publishers, Dordecht, 1993
[Bolc98] Bolchini Cristiana, Salice Fabio, and Sciuto Donatella, "Fault Analysis for
Networks with Concurrent Error Detection", IEEE Design & Test of Computers,
Vol. 15, No 4, 1998, October-December, pp. 66-74
[Bolc00] C. Bolchini, R. Mantandan, F. Solice, D. Scito, "Design of VHDL-Based Totally
Self-Checking Finite-State Machine and Data-Path Description", IEEE Trans. on
Very Large Scale Integration (VLSI) Systems, Vol. 8, No. 1, February 2000, pp.
186-195
[Bose85] Bella Bose, and Der Jei Lin, "Systematic Unidirectional Error-Detecting Codes",
IEEE Transaction on Computers, Vol. C-34, No. 11, November, 1985, pp 1026-
1032
[Bray87] R. Brayton, R. Rudell, A. Sangiovanni-Vincentelli, and A. Wang, MIS: A
Multiple-level Logic Optimization System, IEEE Trans. Computer-Aided Design,
Nov. 1987, pp. 1062-1081
[Cast82] Castillo X., et al., "Derivation and Calibration of a Transient Error Reliability
Model", IEEE Trans. on Computers, Vol. C-31, No. 7, July 1982, pp. 658-671
[Chan92] Anantha P. Chandrakasan, Samuel Sheng, and Robert W. Brodersen, "Low-Power
CMOS Digital Design", IEEE Journal of Solid State Circuits, Vol. 27, No. 4, April
1992, pp. 473-483
[Cons03] Cristian Constantinescu, "Trends and Challenges in VLSI Circuit Reliability",
IEEE Micro, July-August 2003, pp. 14-19
[DasD99] Debaleena Das and Nur A. Touba, "Synthesis of Circuits with Low-Cost
Concurrent Error Detection Based on Bose-Lin Codes", Journal on Electronic
Testing: Theory and Applications (JETTA), Vol. 15, Issue 1/2, Aug. 1999, pp. 145-
155

113
Projektovanje kombinacionih i sekvencijalnih mrea sa samoproverom na osnovu VHDL opisa

[DeK91] K. De and P. Banerjee, "Can Test Length Be Reduced During Synthesis Process",
4th CSI/IEEE Int. Symp. on VLSI Design, Jan. 1991, pp. 57-62
[DeK94] K. De, C. Natarajan, D. Nair, P. Banerjee, "RSYN: A System for Automated
Synthesis of Reliable Multilevel Circuits", IEEE Trans. on VLSI Systems, Vol. 2,
No. 2, June 1994, pp. 184-195
[Djor04] G.Lj. Djordjevi, M.K. Stojev, T.R. Stankovi, "Approach to partially self-
checking combinational circuits design", Microelectronics Journal, Vol. 35,
Elsevier, December 2004, pp. 945-952
[Dupo02] Eric Dupont, Michael Nicolaidis, and Peter Rohr, "Embedded Robustness IPs for
Transient-Error-Free ICs", IEEE Design & Test of Computers, May-June 2002, pp.
56-70
[Entr101] Luis Entrena Arrontes, Celia Lpez Ongil, Emilio Olas Ruiz, "Automatic
Insertion of Fault-Tolerant Structures at the RT Level", IOLTW - International On-
Line Test Workshop, 2001, Taormina/Italia
[Entr201] Luis Entrena, Celia Lpez, Emilio Olas, "Automatic Generation of Fault Tolerant
VHDL Designs in RTL", Forum on Design Languages, FDL, Lyon, Francia,
Septembre 2001
[Fuch87] W.K. Fuchs, C.Y. Chien, and J.A. Abraham, "Concurrent error detection in highly
structured logic arrays", IEEE J. Solid-State Circ., August 1987, pp. 583-594
[Gajs92] Gajski, D.D., Dutt, N.D., Wu, A.C.-H., Lin, S.Y.-L., "High-Level Synthesis An
Introduction to Chip and System Design", New York, Kluwer-Academic, 1992
[Good85] A.J. Goode, "Design considerations for a single-chip fault tolerant VLSI
microprocessor", Software & Microsystems, Vol. 4, No. 3, June 1985, pp. 53-58
[Hals85] R.G. Halse and C. Preece, "Errenous execution and recovery in microprocessor
systems", Software & Microsystems, Vol. 4, No. 3, June 1985, pp. 63-70
[Haye88] John P. Hayes, "Computer Architecture and Organization", 2/e, McGraw-Hill
Book Company, New York, 1988
[HDL98] HDL Synthesis Guide, Release 4.2, Copyright 1991-1998 Exemplar Logic, Inc.
All Rights Reserved, Exemplar Logic, Inc. 6503 Dumbarton Circle, Fremont, CA
94555, [Online], Dostupno: http://www.xilinx.com/support/library.htm
[Hell98] Hellebrand Sybille, Wunderlich Hans-Joachim, and Hertwig Andre, "Synthesizing
Fast, Online-Testable Control Units", IEEE Design & Test of Computers, Vol. 15,
No. 4, October-December 1998, pp. 36-41
[Hugh84] Hughes L.A. Joseph, McCluskey J. Edward, and Lu J. David, "Design of Totally
Self-Checking Comparators with an Arbitrary Number of Inputs", IEEE
Transactions on Computers, Vol. C-33, No. 6, June 1984, pp. 546-550
[ITRS03] The 2003 International Technology Roadmap for Semiconductors, [Online],
Dostupno: http://public.itrs.net
[Jha191] Jha K. Niraj, "Totally Self-Checking Checker Design for Bose-Lin, Bose, and
Blaum Codes", IEEE Transactions on Computer-Aided Design, Vol. 10, No. 1,
January 1991, pp. 136-143

114
7. Literatura

[Jha291] Niraj K. Jha, and Sying-Jyan Wang, "Design and Synthesis of Self-Checking VLSI
Circuits and Systems", Int. Conf. on Computer Design, 1991, pp. 578-581
[JhaN93] Niraj K. Jha, and Sying-Jyan Wang, "Design and Synthesis of Self-Checking VLSI
Circuits", IEEE Transaction on Computer-aided design of integrated circuit and
system, Vol. 12, No. 6, June, 1993, pp. 878-887
[John89] Barry W. Johnson, "Design and Analysis of Fault-Tollerant Digital Systems",
Addison-Wesley Publishing Company, 1989
[John90] B.W. Johnson, "Design and Analysis of Fault Tolerant Systems", Reading, MA,
USA: AddisonWesley, 1990
[Khak82] J. Khakbaz and E. J. McCluskey, "Concurrent error detection and testing for large
PLAs", IEEE Journal of Solid-State Circuits, Vol. SC-17, No. 2, April 1982, pp.
386-394
[Lala01] Lala P.K., "Self-checking and fault-tolerant digital system design", Morgan
Kaufman Publishers, San Francisco, 2001
[Lapr92] J.C. Laprie (ed.), "Dependability: Basic Concepts and Terminology in English,
French, German, Italian, and Japanese" Volume 5 of Dependable Computing and
Fault-Tolerant Systems, Springer-Verlag, 1992
[Leve90] Leveugle R., Saucier G., "Optimized Synthesis of Concurrent Checked
Controllers", IEEE Transaction on Computers, Vol. 39, No. 4, April 1990, pp.
419-425
[Leve02] R. Leveugle, "Automatic Modifications of High Level VHDL Descriptions for
Fault Detection or Tolerance", Proceedings of the Conference on Design,
Automation and Test in Europe, March 04-08, 2002, p. 837-841
[Lpe01] Celia Lpez Ongil, Luis Entrena Arrontes, Emilio Olas Ruiz, "Automatic
Generation of Fault Tolerant VHDL Designs in RTL", Forum on Design
Languages, Septembre 2001, Lyon/France
[Mahm88] Aamer Mahmood, E. J. McCluskey, "Concurrent Error Detection Using Watchdog
Processors - A Survey", IEEE Transaction on Computer, Vol. 37, No. 2, February
1988, pp. 160-174
[Maro78] Marouf M.A., Friedman A.D., "Efficient Design of Self-Checking Checker for any
m-Out-of-n Code", IEEE Transaction on Computers, Vol. C-27, No. 6, June 1978,
pp. 482-490
[MAX+P] Softverski paket, [Online], Dostupan: https://www.altera.com/support/software/
download/altera_design/ mp2_student/dnl-student.jsp
[McCl90] McCluskey E.J., "Design Techniques for Testable Embedded Error Checkers",
IEEE Computer, July 1990, pp. 84-88
[Mezh04] Andrey V. Mezhiba, Eby G. Friedman, "Power Distribution Networks in High
Speed Integrated Circuits", Kluwer Academic Publishers, Boston, 2004
[Mitr04] Mitra Subhasish, Huang Wei-Je, Saxena R. Nirmal, Yu Shu-Yi, and McCluskey J.
Edward, "Reconfigurable Architecture for Autonnomous Self-Repair", IEEE
Design & Test of Computers, May-June 2004, pp. 228-240

115
Projektovanje kombinacionih i sekvencijalnih mrea sa samoproverom na osnovu VHDL opisa

[Moha77] Ashjaee Javad Mohammad, and Reddy M. Sudhakar, "On Totally Self-Checking
Checkers for Separable Codes", IEEE Transaction on Computer, Vol C-26, No. 8,
August 1977, pp. 737-744
[Moha02] K. Mohanram, C.V. Krishna, N.A. Touba, "A Methodology for Automated
Insertion of Concurrent Error Detection Hardware in Synthesizable Verilog RTL",
Proc. International Symposium on Circuits and Systems (ISCAS), Vol. 1,2002, pp.
577-580
[Moha103] K. Mohanram, and N.A. Touba, "Cost-Effective Approach for Reducing Soft
Error Failure Rate in Logic Circuits", Proc. International Test Conference (ITC),
2003, pp. 893-901
[Moha203] K. Mohanram, E. S. Sogomonyan, M. Gssel, and N. A. Touba, "Synthesis of
Low-Cost Parity-Based Partially Self-Checking Circuits", Proc. International On-
Line Testing Symposium (IOLTS), 2003, pp. 35-40
[Mour89] Mourad Samiha and McCluskey Edward, "Testability of Parity Checkers", IEEE
Transactions on Industrial Electronics, Vol. 36, No. 2, May 1989, pp. 254-262
[Osad04] Kenichi Osada, Ken Yamaguchi, Yoshikazu Saitoh, and Takayuki Kawahara,
"SRAM Immunity to Cosmic-Ray-Induced Multierrors Based on Analysis of an
Induced Parasitic Bipolar Effect", IEEE Journal of Solid-State Circuits, Vol. 39,
No. 5, May 2004, pp. 827-833
[Pare95] Parekhji R., et all, "Concurrent Error Detection Using Monitoring Machines",
IEEE Design & Test of Computers, Vol. 12, No. 4, Fall, 1995, pp. 24-31
[Pfla00] Matthias Pflanz, "On-line Error Detection and Fast Recover Techniques for
Dependable Embedded Processors", Dissertation, Technical University Cottbus,
June 2000
[Prad72] D.K. Pradhan, and S. M. Reddy, "Error-control techniques for logic processors",
IEEE Trans. Comput., Dec. 1972, pp. 1331-1336
[Prad80] Pradhan D.K., Stiffer J.J., "Error Correcting Codes and Self-Checking Circuits in
Fault Tolerant Computers", IEEE Computer, Vol. 13, No. 3, March 1980, pp. 27-
37
[Prad86] Dhiraj K. Pradhan, Ed., "Fault-Tolerant Computing: Theory and Techniques", Vol.
I and II, Prentice-Hall, New Jersey, 1986
[Rose93] Rose Jonathan, Gamal El Abbas, and Sangiovanni-Vincentelli, "Architecture of
Field-Programmable Gate Arrays", Proceedings of the IEEE, Vol. 81, No. 7, July
1993
[Sand90] Kundu Sandip, and Reddy M. Sudhakar, "Embedded Totally Self-Checking
Checkers: A Practical Design", IEEE Design & Test of Computers, August 1990,
pp. 5-12
[Sapo97] V.V. Saposhnikov, VI.V. Saposhnikov, A. Morosov, M. Gossel, "Design of self-
checking unidirectional combinational circuits", Proceedings 7th Fault Tolerant
Computing Symposium, June 1997
[Sedm80] R.M. Sedmak and H.L. Liebergot, "Fault Tolerance of a General Purpose
Computer Implemented by Very Large Scale Integration", IEEE Transaction
Computer, Vol. C-29, No. 6, June 1980, pp. 492-500

116
7. Literatura

[Shoo02] Martin L. Shooman, "Reliability of Computer Systems and Networks: Fault


Tolerance, Analysis and Design", John Wiley and Sons Inc., New York, 2002
[Siew91] Daniel P. Siewiorek, "Architecture of Fault-Tolerant Computers: An Historical
Perspective", Proceedings of the IEEE, Vol. 79, No. 12, December, 1991, pp.
1710-1734
[Siew92] Daniel P. Siewiorek and Robert S. Swartz, "Reliable Computer Systems: Design
and Evaluation", Bedford, MA: Digital Press, 1992
[Smit78] James E. Smith, and Gernot Metze, "Strongly Fault Secure Logic Networks",
IEEE Trans. on Computers, Vol. C-27, No. 6, June 1978, pp. 491-499
[Smit83] Smith J.E., Lam P., "A Theory of Totally Self-Checking System Design", IEEE
Trans. on Computers, Vol. C-32, No. 9, September 1983, pp. 831-844
[Smit96] Douglas J. Smith, "Hdl Chip Design: A Practical Guide for Designing,
Synthesizing & Simulating Asics & Fpgas Using Vhdl or Verilog", Madison,
USA: Doone Publications, 1996
[Stan102] T. Stankovi, M. Stojev, "Parity Error Detection in Transceiver Circuit", Proc. IV
simpozijum Industrijska elektronika INDEL 2002, Banja Luka, November 2002,
pp. 67-73
[Stan202] M. Stojev, T. Stankovi, "Parity Error Detection in Embedded System", 28.
nauno struni skup, HIPNEF 2002, Zbornik radova, Vrnjaka Banja, October
2002, pp. 215-220
[Stan103] Tatjana R. Stankovi, Mile K. Stojev, "Implementation of Totally Self-checking
Combinational Logic on FPGA and CPLD Circuits Using VHDL Descriptions",
Cyprus Computer Society, Vol. 5, No. 5, June, 2003, pp. 40-44
[Stan203] T.R. Stankovi, M.K. Stojev, G.Lj. Djordjevi, "Design Of Self-Checking
Combinational Circuits", 6th International Conference on Telecommunications in
Modern Satellite, TELSIKS 2003, Ni, Serbia and Montenegro, October 1-3, 2003,
pp. 763-768
[Stan303] T.R. Stankovi, M.K. Stojev, G.Lj. Djordjevi, "On VHDL Synthesis of Self-
Checking Two-Level Combinational Circuits", Third Triennial International
Conference on Applied Automatic Systems, Ohrid, Republic of Macedonia,
September 18-20, 2003, pp. 225-230
[Stan403] Tatjana R. Stankovi, Mile K. Stojev, Goran Lj. Djordjevi, "Design of Totally
Self-Checking Combinational Circuits Based on VHDL Description", Proc. XLVII
Conference ETRAN 2003, Herceg Novi, Serbia and Montenegro, June 2003, pp.
39-42
[Stan104] Tatjana R. Stankovi, Mile K. Stojev, Goran Lj. Djordjevi, "Design of Totally
Self-Checking Combinational Circuits Based on VHDL Description", ETF
Journal of Electrical Engineering, Vol. 12, No. 1, May 2004, pp. 153 161
[Stan204] T.R. Stankovi, M.K. Stojev, G.Lj. Djordjevi, "On VHDL Synthesis of Self-
Checking Two-Level Combinational Circuits", Facta Universitatis (Nis), Series:
Electronics and Energetics, Vol. 17, No. 1, April 2004, pp. 69-80

117
Projektovanje kombinacionih i sekvencijalnih mrea sa samoproverom na osnovu VHDL opisa

[Stoj00] M. Stojev, G. Djordjevi, M. Krsti, I. Andreji, "HMVSA A Hardware Mid-


Value Select Voter Architecture", in Proc. of ETAI 2000, Ohrid, Macedonia, 2000,
pp. 54-59
[Stoj101] M.K. Stojev, G.Lj. Djordjevi, M.D. Krsti, "A hardware Mid-Value Select Voter
Architecture", Microelectronics Journal, Vol. 32, No. 2, February 2001, pp. 149-
162
[Stoj201] M. Stojev, T. Stankovi, "Parity Error Detection in Embedded System", Second
International Conference on Informatics and Information Technology, CiiT 2001,
Molika, December 20-23, 2001, pp. 293-307
[Stoj104] M.K. Stojev, G.Lj. Djordjevi, T.R. Stankovi, "Implementation of Self-
Checking Two-Level Combinational Logic on FPGA and CPLD Circuits",
Microelectronics Reliability, Vol. 44, Issue 1, Elsevier, January 2004, pp. 173-178
[Stoj204] M.K. Stojev, G.Lj. Djordjevi, T.R. Stankovi, "VHDL-Based Design of FSM
with Concurrent Error Detection Capability", Proc. 24th International Conference
on Microelectronics, MIEL 2004, Vol. 2, Ni, Serbia and Montenegro, May, 2004,
pp. 759-762
[Tohm86] Tohma Yoshihiro, "Coding Techniques in Fault-Tolerant, Self-Checking, and Fail-
Safe Circuits", in Fault-Tolerant Computing: Theory and Techniques, Vol. I ed. by
Pradham D., Prentice Hall, New Jersey, 1986
[Toub94] Touba, N.A. and E.J. McCluskey, "Logic Synthesis Techniques for Reduced Area
Implementation of Multilevel Circuits with Concurrent Error Detection," Proc. of
ACM/IEEE Int. Conference on Computer-Aided Design (ICCAD), San Jose, CA,
USA, Nov. 6-10, 1994, pp. 651-654
[Toub97] Touba, N.A. and E.J. McCluskey, "Logic Synthesis of Multilevel Circuits with
Concurrent Error Detection", IEEE Trans. CAD, Vol. 16, July 1997, pp. 783-789
[Trim93] Trimberger Stephen, "A Reprogrammable Gate Arrays and Applications",
Proceedings of the IEEE, Vol. 81, No. 7, July 1993, pp. 1030-1041
[Vahi02] Frank Vahid and Tony Givargis, "Embedded System Design: A Unified
Hardware/Software Introduction", John Wiley & Sons, 2002
[Wake82] J. Wakerly, "Error Detecting Codes, Self-Checking Circuits and Aplications",
Amsterdam: North-Holland, 1982.
[Wein89] N. Weiner and A. Sangiovanni-Vincentelli, "Timing Analysis in Logic Synthesis",
26th Design Automation Conf., 1989, pp. 655-661
[XiliDS1] Xilinx Data Books, Information about various Xilinx products, [Online],
Dostupno: http://www.mhl.tuc.gr/OTHERSUBJECTS/data_books/Xilinx/7318.pdf
[XiliDS2] Xilinx Data Sheets, [Online], Dostupno:http://www.xilinx.com/support/library.htm
[XiliFou] Softverski paket, [Online], Dostupan: http://www.xilinx.com/ise_eval/index.htm
[XiliWP] Softverski paket, [Online], Dostupan: http://www.xilinx.com/webpack/index.htm
[YenM87] Yen M.K. et all, "Designing for Concurrent Error Detection in VLSI and
Application to a Microprogram Control Unit" IEEE Journal of Solid State
Circuits, Vol. SC-22, August 1987, pp. 595-605

118
7. Literatura

[YuSh01] Yu Shu-Yi, "Fault Tolerance in Adaptive Real-Time Computing Systems", A


Dissertation submitted to the Department of Electrical Engineering and the
Committee on graduate studies of Stanford University, December 2001.
[Zeng99] Chaohuang Zeng, Nirmal R. Saxena, Edward J. McCluskey, "Finite State Machine
Synthesis with Concurrent Error Detection", Proceedings IEEE International Test
Conference 1999, USA, 27-30 September 1999, pp. 672-679
[Zieg96] J.F. Ziegler, et al., "IBM Experiments in Soft Fails in Computer Electronics (1978-
1994)" IBM Journal of Research and Development, Vol. 40, 1996, pp. 3-18
[Zngh00] L. Znghel, M. Nicolaidis, I. Alzaher-Noufal, "Self-checking circuits versus
realistic faults in very deep submicron" VLSI Test Symposium, 2000, pp. 55-63

119
Projektovanje kombinacionih i sekvencijalnih mrea sa samoproverom na osnovu VHDL opisa

120
Dodatak A

Dodatak A

Definicije i objanjenja osnovnih pojmova sistema visoke pouzdanosti koji su


korieni u ovoj tezi:

Pouzdanost
Pouzdanost (Reliability) - R(t) sistema je vremenska funkcija koja se definie kao uslovna
verovatnoa da e sistem raditi korektno u intervalu [ t 0 , t ], uz pretpostavku da je sistem radio
korektno u trenutku t 0 . Drugim reima, pouzdanost je verovatnoa da e sistem biti ispravan
u celokupnom posmatranom intervalu, pod pretpostavkom da je bio ispravan na poetku tog
intervala.
Nepouzdanost Q(t) sistema je vremenska funkcija, definisana kao uslovna verovatnoa da
e sistem raditi pogreno u intervalu [ t 0 , t ], uz pretpostavku da je sistem radio ispravno u
trenutku t 0 . Za nepouzdanost se esto koristi termin verovatnoa otkaza.
Pouzdanost najesce karakterie sisteme kod kojih su ak i trenutni periodi neispravnog
rada neprihvatljivi, ili koje je nemogue popraviti. Vremenski intervali pri razmatranju
pouzdanosti su ponekad veoma dugi, recimo deset godina, a u nekim drugim sluajevima
svega nekoliko sati. Uobiajeno je da se pri predstavljanju pouzdanosti koristi notacja 0.9 i
koja oznaava vrednost koja ima i devetki desno od decimalne take. Na primer, 0.9999999 se
pie kao 0.9 7 .
Bitno je razumeti razliku izmeu otpornosti na defekte i pouzdanosti. Otpornost na
defekte je tehnika koja moe poboljati pouzdanost sistema odravajui sistem operativnim
uprkos pojavi hardverskih defekata i softverskih greaka. (Na primer, raunar koji poseduje
rezervni procesor, moe biti projektovan tako da nastavi sa radom nakon otkaza glavnog
procesora). Meutim, sistem otporan na defekte ne mora uvek da ima visoku pouzdanost.
Naime, sistem moe biti projektovan da tolerie bilo koji pojedinani hardverski kvar ili
softversku greku, ali bez obzira na to, ako je verovatnoa pojavljivanja ovakvih problema
velika, pouzdanost sistema bie mala. Slino, visoko pouzdani sistem ne mora obavezno biti i
otporan na defekte. Na primer, visoka pouzdanost se moe postii ugradnjom kvalitetnih
komponenti u sistem. Meutim, bez obzira na veoma malu verovatnou pojave hardverskog
defekta, ako nakon pojave defekta sistem ne moe da nastavi sa radom, takav sistem ipak nije
otporan na defekte.

Dostupnost
Dostupnost (Availability) - A(t), ili raspoloivost, je vremenska funkcija, definisana kao
verovatnoa da sistem radi korektno i da je na raspolaganju da izvri svoje funkcije u
vremenskom trenutku t. Za razliku od pouzdanosti koja zavisi od vremenskog intervala,
dostupnost zavisi od jednog vremenskog trenutka. Mnogi sistemi se u toku svog ivotnog
veka vie puta kvare i popravljaju. Sistem moe biti visoko dostupan, a da u isto vreme nije
pouzdan, sve dok su intervali u kojim je sistem u kvaru kratki. Dostupnost sistema zavisi ne
samo od toga koliko esto sistem postaje neispravan ve i od toga koliko brzo moe biti

121
Projektovanje kombinacionih i sekvencijalnih mrea sa samoproverom na osnovu VHDL opisa

popravljen. Najee koriena mera dostupnosti je oekivani vremenski period u kome je


sistem na raspolaganju da korektno izvri svoje funkcije, tj. kolinik vremena u kome je
sistem bio ispravan i ukupnog vremena njegovog ivota. Dostupnost se koristi kao cilj
projektovanja kada je osnovna uloga sistema obezbediti njegove usluge sto je ee mogue.

Bezbednost
Bezbednost (Safety) - S(t) je verovatnoa da e sistem ili obavljati svoje funkcije korektno
ili e, zbog nastalog kvara, prekinuti svoj rad na nain koji ne ometa rad drugih sistema ili
ugroava bezbednost ljudi koji su u kontaktu sa sistemom. Bezbednost predstavlja meru
sposobnosti sistema za tzv. bezbedni otkaz. Naime, ako sistem ne radi korektno, elimo da
makar otkae na bezbedan nain. Na primer, poeljno je da u sluaju otkaza ventil koji
kontrolie dotok neke hemikalije u reaktor ostane u zatvorenom poloaju. Bezbednost sistema
je verovatnoa da se to i desi.

Performabilnost
Performabilnost (Performability) - P(L,t) sistema je vremenska funkcija, definisana kao
verovatnoa da e performanse sistema biti na, ili iznad, nekog nivoa L u vremenskom
trenutku t. Performabilnost se razlikuje od pouzdanosti po tome to je pouzdanost mera
verovatnoe da se sve funkcije izvravaju korektno, dok je performabilnost verovatnoa da se
neki podskup funkcija izvrava korektno. Na primer, kod multiprocesorskih sistema, trenutni
broj operativnih procesora ukazuje na performabilnost.
Postepeno otkazivanje je vana osobina koja je usko povezana sa performabilnou.
Postepeno otkazivanje je sposobnost sistema da automatski snizi svoj nivo performansi da bi
kompenzovao hardverski kvar ili softversku greku.

Odrivost
Odrivost (Maintainability) - M(t) je mera lakoe sa kojom sistem moe biti popravljen,
kad je ve otkazao. Drugim reima, odrivost je verovatnoa da pokvareni sistem moe biti
doveden u operativno stanje unutar odreenog vremenskog perioda, t. Proces odrivosti
obuhvata lociranje problema, fiziku popravku sistema, i vraanje sistema u njegovo
operativno stanje. Odrivost je kritina kod svih sistema, ali je posebno vana kad su ljudski
ivoti, oprema ili sredina ugroeni dok se sistem popravlja.

Testabilnost
Testabilnost (Testability) je sposobnost ispitivanja odreenih karakteristika sistema. Test
je sredstvo kojim se utvruje postojanje i kvalitet odreenih karakteristika sistema.
Testabilnost je jasno povezana sa opravljivou jer je vano minimizirati vreme potrebno za
identifikaciju i lociranje specifinih problema.

Pouzdanost u irem smislu


Pouzdanost u irem smislu (Dependability), ili uslunost, objedinjuje pojmove
pouzdanosti, dostupnosti, sigurnosti, odrljivosti, performabilnosti, i testabilnosti. Uslunost
je kvalitet usluge koju odreeni sistem obezbeuje. Pouzdanost, dostupnost, sigurnost,
odrljivost, performabilnost i testabilnost su mere koje karakteriu uslunost sistema.

122
Dodatak B

Dodatak B

Definicije kombinacionih i sekvencijalnih mrea sa samoproverom

Definicija 1: Kombinaciona (sekvencijalna) mrea je samotestirajua (self-testing) za


skup defekata F, ako i samo ako, za svaki defekt iz F, u toku normalnog rada mrea generie
nekodnu re na izlazu za najmanje jednu kodnu re na ulazu.
Definicija 2: Kombinaciona (sekvencijalna) mrea je sigurna u prisustvu defekta (fault-
secure) za skup defekata F, ako i samo ako, za svaki defekt iz F, mrea nikada ne generie
nekorektnu kodnu re na izlazu.
Definicija 3: Kombinaciona (sekvencijalna) mrea je sa potpunom samoproverom (totally
self-checking) za skup defekata F, ako i samo ako, za svaki defekt iz F, mrea je
samotestirajua i sa potpunom samoproverom.
Definicija 4: Kombinaciona (sekvencijalna) mrea je kodno razdvojena (code-disjoint) za
skup defekata F, ako i samo ako se ulazne kodne rei preslikavaju u izlazne kodne rei, a
ulazne nekodne rei se preslikavaju u izlazne nekodne rei.
Definicija 5: Kombinaciona mrea je kolo za proveru sa potpunom samoproverom (totally
self-checking checker) za skup defekata F, ako i samo ako, za svaki defekt iz F, mrea je
samotestirajua, sa potpunom samoproverom i sa razdvojenim kodovima.

123
Projektovanje kombinacionih i sekvencijalnih mrea sa samoproverom na osnovu VHDL opisa

124
Dodatak C

Dodatak C

Dodatak C sadri VHDL opise svih modula potrebnih za generisanje kombinacionih i


sekvencijalnih kola sa samoproverom, opisanih u ovoj tezi. VHDL opisi modula nalaze se u
posebnom paketu. Dodatka C ukljuuje i VHDL opise dva ilustrativna primera sinteze
kombinacionog kola 4-bitni mnoa i sekvencijalnog benchmark kola b01. Iz praktinih
razloga, Dodatak C se nalazi na CD-ROM-u.

125

Вам также может понравиться