Sunteți pe pagina 1din 22

Hazardul logic

Jeler Radu - Victor Master CSI, an I 2009-2010

1.Introducere

1.1 Timp de propagare


Timpul de propagare este timpul necesar pentru propagarea unui schimbri a valorii semnalului ntre intrare i ieire. Timpul de propagare se msoar la 50% ntre nivelele de tensiune asociate strilor H i L. Timpii de propagare pot fi diferii tPHL > tPLH. Tranziiile HL i LH sunt definite n raport cu ieirea (nu cu intrarea). Timpul de tranzitie la crestere tPLH = perioada de timp necesara ca iesirea sa parcurga de la 10% la 90 % din valoarea ei stabila; Timpul de tranzitie la descrestere tPHL = perioada de timp necesara ca iesirea sa parcurga de la 90 % la 10 % din valoarea ei stabila;

Fig.1.1 Timpul de propagare

1.2 Hazardul logic


Unul dintre cele mai grele concepte de inteles in circuitele digitale este cel al hazardului. Dupa cum se stie hazardul se datoreaza timpilor de propagare prin dispozitivele digitale si prezenta lui poate afecta functionarea corecta a circuitelor. Cunoasterea buna a acestor fenomene, atat din punct de vedere teoretic cat si practic, este necesara pentru proiectarea corecta a sistemelor digitale. Literatura de specialitate cuprinde analize teoretice complexe care nu sunt intotdeauna usor de explicat sau de inteles. In logica digitala hazardul dintr-un sistem inseamna un efect nedorit cauzat de o deficeinta a sistemului sau de influente externe. Hazardele logice apar atunci cand schimbarea valorilor variabilelor de la intrare modifica eronat iesirea datorita unor forme de intarzieri cauzate de elemente logice (porti NU, SI, SAU, etc). Manifestarea acestor probleme se poate observa prin aparitia unor glich-uri la iesirea dispozitivelor, care poate trece din 0 logic in 1 logic sau invers, o data sau de mai multe ori, inainte de a se stabiliza la valoarea corecta. Cu toate ca in cele din urma se ajunge la raspunsul dorit este absolut necesar ca aceste anomalii sa fie indepartate altfel ele pot influenta negativ celelalte sisteme conectate la iesirile circuitului.

Consumul cat mai redus de energie este un aspect important in proiectarea actuala a sistemlor digitale. Puterea disipata intr-un circuit CMOS poate fi impartit in 4 componente: putere disipata de comutarile utile, de hazarde sau glitch-uri, de scurt circuit si de scurgeri. Hazardele consuma putere inainte ca o stare logica stabila sa fie atinsa. Datorita tehnicilor de proiectare ele nu afecteaza functionarea corecta a circuitelor. Totusi, puterea disipata de aceste fenomene este intre 20-40% din puterea totala necesara functionarii dispozitivelor. Astfel, si din punct de vedere energetic, este necesara inlaturarea problemei glitch-urilor. Hazardul logic reprezinta niste stri logice inexplicabile prin algebra Boolean. Pentru a explica apariia strilor de hazard, trebuie considerate aspectele reale ale porilor logice (ntrzieri datorate propagrii semnalelor). Hazardul combinaional este datorat propagrilor prin circuitele logice. Un circuit real rspunde cu ntrziere la orice modificare a tensiunilor de la intrarea sa datorit propagrii cu vitez finit a semnalului electric n interiorul lui1 i a prelucrrilor pe care acesta le sufer. O poart logic rspunde i ea cu ntrziere la orice variaie de la intrri. Acest timp de ntrziere este tot una cu timpul de propagare prin poarta logic. De regul un circuit combinaional are mai multe nivele de pori logice. Cu ct circuitul combinaional are mai multe nivele (are adncime mai mare) cu att ntrzierea rspunsului acestuia va fi mai mare. ntrzierea nu stric cu nimic Circuitele mai complexe pot avea ci diferite de prelucrare a aceluiai semnal, care s duc ctre o singur poart logic. Datorit timpilor de propagare diferii pe cele dou ci, la intrarea porii respective pot exista, pentru durate scurte de timp, combinaii logice nedorite. Acestea sunt combinaii tranzitorii (ele apar numai n timpul tranziiilor) care dac au o durat suficient de mare genereaz la ieirea porii impulsuri false. Pentru a genera hazard, combinaia tranzitorie de la intrare trebuie s dureze cel puin ct timpul de propagare al porii respective. Strile de hazard nu apar obligatoriu n circuite. Comportarea incorecta a circuitului de comutaie generata de cauzele menionate, produce o funcionare de tip hazard. La circuitele combinaionale hazardul se poate manifesta in doua moduri diferite: a) Hazard static: in urma modificrii intrrilor, se modifica ieirea, nefiind justificata din punct de vedere logic, dup care revine la valoarea iniial corecta. b) Hazard dinamic: ca urmare a modificrii intrrilor, ieirea trebuie sa-si modifice starea, dar se va realiza dup un numr de oscilaii intre noua si vechea stare.

1.2.1Hazard Static
Reprezinta modificarea unei variabile de intrare produce o modificare de scurta durata a valorii la iesire . Cauza: existena mai multor ci de propagare ntre intrare i ieire, cu timpi de propagare diferii Efect: apariia unor glitch-uri pe ieire (inexplicabile prin logica Booleean).

Fig.1.2.1 hazardul static Orice circuit cu hazard static-0 poate fi redus la circuitul din figura 1.2.2

Figura 1.2.2

1.2.2Hazard dinamic
Reprezinta o comutare multipla a iesirii datorita unei singure tranzitii a intrarii .

Cauza: Existena unor circuite logice cu mai multe nivele de pori

logice cascadate. Cand exista mai multe cai cu intarzieri diferite intre variabila care produce hazardul si iesire Efect: apariia unor glitch-uri pe ieire la comutarea acesteia din 0 n1 sau 1 n 0.

Fig. 1.2.2 Hazardul dinamic

Fig1.2.3 Circuit care genereaza hazard dinamic

Figura 1.2.3 presupune aparitia hazardului dinamic la variatia intrarii B din 0 in 1. S-a facut ipoteza ca poarta SAU (A+B) este mai lenta decat celelalte iar poarta SAU (B negat + C) este cea mai lenta dintre toate. Gasirea hazardului dinamic este o problema si ramane o problema doar academica deoarece in structurile combinationale cu 2 nivele care rezulta fie prin minimizarea functiilor binare fie prin implementarile FPGA, nu genereaza Hazard dinamic.

1.2.3Hazardul de functie
Hazardul de functie nu poatet fi rezolvat si apare cand cel putin doua variabile de intrare se schimba simultan. Acestea nu pot fi eliminate prin logica suplimentara, singura solutie adecvata fiind restrictionarea schimbarii intrarilor astfel incat in nici un moment sa nu se suprapuna tranzitii ale intrarilor. Aceste constrangeri nu sunt intotdeauna posibile, de exemplu sa ne imaginam un circuit cu doua intrari. Una este folosita ca semnal de ceas iar cealalta este o sursa de zgomot aleator care vrem sa-l masuram. Un alt exemplu in acest sens este functia SAU-EXCLUSIV:

Fig 1.2.3 In aceasta situatie, analizand diagrama Karnaugh, se poate observa ca atunci cand ambele intari se modifica circuitul nu poate trece de la un 1 la celalalt 1 stabil sau de la 0 la celalalt 0 stabil fara a trece prin 0 respectiv prin 1. Problema se rezolva prin introducerea unor elemente logice la iesirea circuitului ce actioneaza ca un buffer si transmit informatia doar atunci cand aceasta a ajuns la o stare stabila.

1.3 Disiparea de energie datorata hazardelor


Energia consumata intr-un circuit CMOS datorata hazardelor poate fi evidentiata prin analizarea inversorului de mai jos:

Figura 1.3 Un impuls de durata w este transmis prin inversor. In figura 1.3 b) este prezentata implementarea inversorului cu 2 tranzistoare. Unul este PMOS si scurtcircuiteaza Vdd la iesire cand intrarea este 0 iar celalalt este NMOS si scurtcircuiteaza masa la iesire cand intrarea este 1. In figurile 1.3 a) si b) s-a presupus ca este vorba de un inversor ideal. In figura 1.3 c) consideram rezistenta de scurtcircuit a tranzistoarelor R si capacitatea totala a nodului C. Inainte de frontul descrescator al impulsului tranzistorul N conduce iar P este blocat. In acest moment, deorece iesirea este legata la masa, capacitatea C este descarcata. La caderea intrarii in 0 (t=0) P va conduce iar prin circuitul RC serie va trece un current de incarcare i(t) de la sursa spre iesire.

Incarcarea lui C va creste tensiunea de iesire pana cand t=w cand intrarea va urca in 1. Energia absorbita de la sursa este:

Jumatate din aceasta energie este disipata in caldura pe rezistenta iar cealalta jumatate este incarcata in condensator. Astfel, energia consumata de o poarta logica este proportionala cu numarul de tranzitii ale iesirii. Daca durata impulsului e mult mai mare decat constanta RC, tensiunea de iesire va creste pana la vloarea Vdd ducand la consum maxim de energie.

Cand t=w tranzistorul P va conduce iar N se va bloca. Condensatorul se va descarca pe rezistenta R a tranzistorului N. Figura 1.3.1 arata cateva cazuri de disipare de energie cand constanta de timp RC creste fata de durata impulsului w.

Figura 1.3.1

2. Hazardul circuitelor combinaionale


ntrzierile introduse de firele de conexiune si componentele electronice ale circuitelor de comutaie, fac ca la un moment dat starea ieirii circuitelor sa nu fie in concordanta cu funcia de transfer si intrrile circuitelor la momentul considerat. Comportarea incorecta a circuitului de comutaie generata de cauzele menionate, produce o funcionare de tip hazard. La circuitele combinaionale hazardul se poate manifesta in doua moduri diferite: c) Hazard static: in urma modificrii intrrilor, se modifica ieirea, nefiind justificata din punct de vedere logic, dup care revine la valoarea iniial corecta. d) Hazard dinamic: ca urmare a modificrii intrrilor, ieirea trebuie sa-si modifice starea, dar se va realiza dup un numr de oscilaii intre noua si vechea stare. Vom evidenia apariia hazardului static si dinamic la doua circuite de comutaie, cu pori I-NU si pori I, SAU, fig. 11.1, fig. 11.2, utiliznd descrierea funcionarii circuitelor prin reprezentarea formelor de unda a funciei de ieire, raportata la anumite variaii ale valorilor binare de la intrrile circuitului. Se da schema logica din fig. 11.1
B A 3 A C 2 1 m F

Fig. 2. 1 Schema logica a unui circuit de comutaie care evideniaz apariia hazardului static. Consideram iniial ca variabilele de intrare au valorile: A=0, B=0, C=1, pentru care funcia F(A,B,C)= 1 si apoi valorile A=1, B=0, C=1, pentru care deasemenea, funcia F(A,B,C)= 1 Se considera t p1 , t p 2 si t p 3 timpi de propagare diferii ai porilor logice: 1, 2 si 3, cu relaia t p 2 > t p1 si t p 3 < t p 2 t p1 DIAGRAMA DE TIMP

A m P

,,0

,,1 t tp1

B=0 C=1

tp2
`

tp3

tp3

Dup ce variabila de intrare A, comuta din 0 in 1, ieirea circuitului datorita timpilor de propagare diferii ai porilor logice, devine pentru o scurta perioada de timp 0 (incorect din punct de vedere logic), genernd apariia hazardului static. Se da circuitul logic din figura 11.2
A D A E C B 4 Z 1 X 3 2 Y 5 F W

Fig. 2.2 Schema logica a unui circuit de comutaie care evideniaz apariia hazardului dinamic. Iniial se considera intrrile circuitului avnd valorile: A=0, B=1, C=1, D=0, E=1 iar la momentul urmtor A=1, B=0, C=1, D=0, E=1. Intre timpii de propagare diferii ai porilor logice se considera urmtoarele corelri: t p 2 > t p1 , t p 3 > t p 2 t p1 , t p 4 > t p 2 + t p 3

DIAGRAMA DE TIMP

A B

C=1, D=0, E=1 t

X tp1

t Y W t p3 Z tp4 F t p5 t t t p2 t

Comutarea variabilelor de intrare A, din 0 in 1 si a variabilei de intrare B din 1 in 0, precum si timpii de propagare diferii ai porilor logice cu corelrile menionate, au ca efect apariia hazardului dinamic respectiv a oscilaiilor generate la ieirea circuitului intre valoarea iniial si cea finala (cea corecta din punct de vedere logic). Un circuit de comutaie cruia ii corespunde o schema logica cu doua niveluri de pori logice I-NU, respectiv I, SAU, nu permit hazard daca fiecare pereche de combinaii de valori adiacente ale intrrilor pentru care funcia de comutaie realizata are valoarea logica 1, este acoperita de cel puin unul din termenii prezeni in expresia disjunctiva a funciei asociata schemei logice a circuitului dat. Cn 1 ) unde O combinaie a valorilor variabilelor X 0 , X1 ,..., X n 1 notata (C0C1 Ci = {0,1} pentru i=0,1,...,n-1 este acoperita de ctre un termen din forma disjunctiva a funciei

f ( X 0 , X1 ,..., X n 1 ) notat cu T daca termenul canonic Pj al funciei corespondent combinaiei (C0C1 Cn 1 ) este inclus in termenul T, Pj T
Exemplu: Pentru schema logica din fig. 11.1 avem F ( A, B, C ) = A B + A C si reprezentata pe diagrama V-K

B C 00 A 0 1
1

01

11

10

1 1

0 1

0 0

Fig. 2.3 Reprezentarea funciei F(A,B,C) pe o diagrama V-K Perechile de valori adiacente ale variabilelor de intrare A,B,C sunt: (000) si (001), (101)si(111), (001)si (101). Perechea (000) si (001) este acoperita de termenul AB deoarece AB ABC , perechea (101) si (111) este acoperita de termenul AC deoarece AC ABC , perechea (101)si(001) nu este acoperita de nici un termen, deci circuitul poate avea hazard. Pornind de la o schema logica cu pori I-NU, respectiv I-SAU, a unui circuit combinaional, se poate obine schema logica fr hazard, prin parcurgerea urmtoarelor etape: a) Se obine forma disjunctiva a funciei asociata schemei logice a circuitului b) Se reprezint funcia de comutaie pe o diagrama V-K si se minimizeaz c) Daca contururile corespunztoare formei minime sunt disjuncte (nu se intersecteaz), se adaug acele contururi (implicanii primi redundani) care elimina disjuncia contururilor, rezultnd astfel o funcie de comutaie care realizata cu pori I-NU, nu are hazard Pentru funcia F(A,B,C), fig. 11.3 se adaug implicantul prim B C corespunztor conturului punctat si rezulta funcia F ( A, B, C ) = A B + A C + B C cruia ii corespunde schema logica cu pori I-NU:
A B A C B C F(A,B,C)

Schema logica cu hazard din fig. 2.4 ii corespunde funcia F ( A, B, C , D, E ) = ADC + ADB + AEC + AEB si reprezentata in diagrama V-K:

C D A E B 000
00 01 11 10

001

011

010

100

101

111

110

1 1

1 1 1 1 1 1 1 1 1 1

Se include in expresia funciei de ieire si implicantul prim BDE si rezulta F ( A, B, C , D, E ) = ADC + ADB + AEC + AEB + BDE , creia ii corespunde circuitul
A D C A D B A E C A E B B D E F(A,B, C,D,E)

3. ELIMINAREA HAZARDULUI COMBINAIONAL


Circuitul din figur este implementarea unei funcii logice y. Ne propunem s determinm dac circuitul prezint hazard combinaional atunci cnd variaz o singur intrare, i dac da, s modificm schema astfel nct s eliminm complet acest tip de hazard.

nainte de toate trebuie s scriem expresia algebric corespunztoare acestei implementri. Atenie!, nu ne intereseaz funcia y ntr-o form algebric oarecare, ci exact acea expresie care este echivalent circuitului de mai sus, expresia n care fiecare operator booleean se regsete ntr-una din porile logice ale circuitului. ncepem de la intrri. Prima poart logic este un I care implementeaz produsul logic al intrrilor porii: abd. Variabila b este negat de ctre primul inversor din stnga circuitului. Continum cu celelalte pori logice:

Expresia obinut este un SAU ntre nite produse logice, deci o form disjunctiv. Nu ne intereseaz acum dac ea este minim sau nu. Scopul nostru este de a vedea dac aceasta prezint sau nu condiiile pentru apariia hazardului n circuitul care o implementeaz. Cele trei produse ale expresiei logice pe care tocmai am obinut-o pot fi reprezentate pe o diagram VK cu ajutorul suprafeelor produs. Reuniunea celor trei suprafee produs, echivalent SAU-lui din expresia logic, este chiar mulimea punctelor n care funcia y are valoarea 1. Subliniem din nou c reprezentarea de pe urmtoarea diagram VK, dei nu este singura acoperire posibil a funciei y, este singura reprezentare echivalent circuitului combinaional pe care l analizm.

Pe diagrama VK pot fi identificate imediat regiunile care corespund apariiei hazardului combinaional monovariabil. Aceste regiuni sunt la grania ntre suprafee adiacente. Mai precis, dac dou puncte vecine n care funcia are valoarea 1 nu fac parte din aceeai suprafa produs, exist posibilitatea producerii hazardului la tranziiile variabilei care difer n cele dou puncte. O pereche de puncte vecine care ndeplinesc aceast condiie este marcat pe diagrama de mai jos. Cele dou puncte au n comun urmtoarele valori logice la intrri: a = 1, c = 1 i d = 1. Cu aceste intrri fixate la valorile menionate, dac variabila b i modific valoarea, la ieirea circuitului se poate produce pulsul de hazard nedorit.

Analiznd schema circuitului observm dou rute distincte de la intrarea b pn la ieire. Modificarea variabilei b se propag pe dou ci distincte. Una dintre ele inverseaz tranziia de la intrare. Aadar n timp ce pe una dintre ci poarta logic I se deschide, poarta logic I de pe cealalt cale se nchide. Momentele diferite la care au loc aceste evenimente determin apariia pulsului de hazard.

O alt pereche de puncte vecine i aparinnd unor suprafee distincte sunt caracterizate de urmtoarele valori fixe la intrare: a = 0, b = 1, d = 1. Schimbrile logice ale variabilei c produc n acest caz hazard la ieirea circuitului. Pe schem sunt evideniate dou trasee distincte de la intrarea c pn la ieire, precum i inversarea logic care are loc doar pe unul dintre acestea.

O a treia posibilitate de apariie a hazardului este mai puin evident pe diagrama VK. Trebuie s facem apel la imaginea multidimensional a mulimii booleene reprezentat pe diagram. Latura de sus a diagramei (colorat cu rou) este identic cu cea de jos, prin urmare punctele de sus sunt vecine cu cele de jos, difereniate fiind numai de variabila a. Contextul de apariie a hazardului este aadar: b = 0, c = 0, d = 1 .

i n aceast ultim situaie putem vizualiza pe schem cele dou trasee diferite care stau la originea hazardului, graie inversorului care apare doar pe unul dintre ele. Soluia de eliminare a hazardului monovariabil const n acoperirea adiacenelor prezentate mai sus cu suprafee produs, astfel nct fiecare pereche de puncte vecine de pe diagram s aparin unei suprafee produs comune. n acest fel orice schimbare de variabil ntre dou puncte vecine n care funcia are valoarea 1 este mascat de o suprafa produs care menine ferm ieirea circuitului n 1. Cele trei perechi de puncte cu probleme ale funciei y vor fi acoperite cu suprafee produs corespunztoare.

Cu aceste noi suprafee forma disjunctiv cea mai simpl dar fr hazard este: y = (abd) + (bc) + (acd) + (acd) + (abd) + (bcd)

Schema de mai sus este implementarea formei disjunctive fr hazard. Porile colorate cu rou corespund produselor suplimentare care acoper pe diagrama VK regiunile critice ale implementrii iniiale. Cele dou pori SAU care apar n plus fa de schema original sunt necesare doar dac nu avem la ndemn o poart SAU cu 6 intrri. Interesant pentru aceast funcie este c forma conjunctiv minim, dei are o expresie mai complicat dect forma disjunctiv minim (corespunztoare schemei de la care a plecat analiza noastr), nu prezint hazard combinaional monovariabil fiind n acelai timp mai simpl dect expresia disjunctiv fr hazard obinut anterior: y = (a + b + c) (a + b + c) (c + d) (b + d) Dac nu credei acest lucru atunci privii diagrama funciei negate:

Expresia disjunctiv minim a acesteia ndeplinete cerinele pentru o implementare fr hazard: y = (abc) + (abc) + (cd) + (bd)

Cu un singur inversor la ieirea circuitului funciei negate se obine funcia y. Transformnd cu ajutorul relaiilor lui de Morgan ultima expresie logic, se obine forma conjunctiv minim, la rndul ei fr hazard la ieire.

4. Simulari

Timpul de propagare

U 2 3

A 1 7 4 A S 0 2
V

= = = = = = R

0 4 0 1 5 = V 1

= = = = = R

4 V 2 0 0 1 n 1 n = 2 5 n = 5 0 n

V 2 T D T R T F P W P E

V 2 T D 0 n T R n T F 1 5 n P W 5 0 n P E

Hazardul dinamic

D O O D S O F F N T E L T A P P T I A R V I M M E E C L =K Y = T V A L A L =

S =

T M

2 U 1
V

. 5 u S . 5 u S = 0 1 U 1 3 A 2 7 4 A S 0 4
V

4 A 3 7 4 A S 0
V

2 0

Circuit cu hazard static

O O D S O

F F N T E L T A P P

T I A R V

I M D E S =T M 1 1u S E C L =K 1 uA S Y = T V A L = 0 A L = 1

U 1 2

A 3 U 7 4 0 8 1 2 4 A 3 7 3 7 4 0 8 4 3 2

O O D S O

F F N T E L T A P P

T I A R V

I M

E C L =K Y = T V A L A L =

ED

S=

T . M5 Bu . 5 A 1 = 0

u2 S S

U 1 2

O O D S O

F F N T E L T A P P

T I A R V

I M D E S =T M . 2 3 5 u S E C L =K . 2 C5 u S Y = T V A L = 0 A L = 1

U 1

1 2 7 4

A 0 4

U A 1 2

A 3 U 7 4 0 8 1 2 3 7 4 0 8 7 4 3 9 A 3 2 U 1 2 7 4 3 1 0 A 3 2

U B 1 2 U C 1 7 4 5 2 0 4 1 2 U A

A 3 7 4 0 8

O O D S O D S
C LK

F F T N T I E L A T A R P P V D S
C LK

I M

E = 1 E = 1 u Y = T V A L = A L = 1 D 5 S T M
C LK

u S S 0 6

T M

T M

S
C LK

T M

O O D S O

F F N T E L T A P P

T I A R V

I M E = 1 . 2 5 u E = 1 . 2 5 u S Y = T V A L = 0 A L = 1 5 A 1

O O D S O

F F N T E L T A P P

T I A R V

I M

E = . 5 u S E = . 5 u S Y = T V A L = 0 A L = 1

O O D S O

F F N T E L T A P P

T I A R V

I M

E = . 2 5 E = . 2 5 u Y = T V A L = 0 A L = 1

u S S

U 2

U 7 4 0 4 1 7 U 1 7 9 2

8 2

A 4

4 0 A 4

4 0

13 2 1

13 2 1

13 2 1

U 7

1 4

13 2 1

1 1

U 7

1 1 4 0

A 8

U 7

A 1

2 7 4

0 1

A 1

U 7

A 1

13 2 1 U 7

1 9 4 1

A 1

4 1

4 1

12

12

12

8 2 1

U 7

2 1 4 H

A C 4 0 7 5

12

8 2 1

U 7

A C 4 0 7 5

4 H

U 7

7 4

A 3 2

Circuit cu hazard dinamic

12

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