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 schimbări a valorii
semnalului între intrare şi ieşire. Timpul de propagare se măsoară la 50% între nivelele de
tensiune asociate stărilor H şi L.
Timpii de propagare pot fi diferiţi tPHL > tPLH. Tranziţiile HL şi LH sunt definite în raport cu
ieşirea (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 stări logice inexplicabile prin algebra Booleană.
Pentru a explica apariţia stărilor de hazard, trebuie considerate aspectele reale ale porţilor
logice (întârzieri datorate propagării semnalelor).
Hazardul combinaţional este datorat propagărilor prin circuitele logice. Un circuit real
răspunde cu întârziere la orice modificare a tensiunilor de la intrarea sa datorită propagării cu
viteză finită a semnalului electric în interiorul lui1 şi a prelucrărilor pe care acesta le suferă. O
poartă logică răspunde şi ea cu întârziere la orice variaţie de la intrări. Acest timp de întârziere
este tot una cu timpul de propagare prin poarta logică. De regulă un circuit combinaţional are
mai multe nivele de porţi logice. Cu cât circuitul combinaţional are mai multe nivele (are
“adâncime” mai mare) cu atât întârzierea răspunsului acestuia va fi mai mare. Întârzierea nu
strică cu nimic
Circuitele mai complexe pot avea căi diferite de prelucrare a aceluiaşi semnal, care să
ducă către o singură poartă logică. Datorită timpilor de propagare diferiţi pe cele două căi, la
intrarea porţii respective pot exista, pentru durate scurte de timp, combinaţii logice nedorite.
Acestea sunt combinaţii tranzitorii (ele apar numai în timpul tranziţiilor) care dacă au o durată
suficient de mare generează la ieşirea porţii impulsuri false. Pentru a genera hazard, combinaţia
tranzitorie de la intrare trebuie să dureze cel puţin cât timpul de propagare al porţii respective.
Stările de hazard nu apar obligatoriu în circuite.
Comportarea incorecta a circuitului de comutaţie generata de cauzele menţionate,
produce o funcţionare de tip hazard.
La circuitele combinaţionale hazardul se poate manifesta in doua moduri diferite:
a) Hazard static: in urma modificării intrărilor, se modifica ieşirea, nefiind justificata din
punct de vedere logic, după care revine la valoarea iniţial corecta.
b) Hazard dinamic: ca urmare a modificării intrărilor, ieşirea trebuie sa-si modifice starea,
dar se va realiza după un număr de oscilaţii 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: existenţa mai multor căi de propagare între intrare şi ieşire, cu timpi de propagare
diferiţi
• Efect: apariţia unor glitch-uri pe ieşire (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: Existenţa unor circuite logice cu mai multe nivele de porţi logice cascadate. Cand
exista mai multe cai cu intarzieri diferite intre variabila care produce hazardul si iesire
• Efect: apariţia unor glitch-uri pe ieşire 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 combinaţionale
Întârzierile introduse de firele de conexiune si componentele electronice ale circuitelor de
comutaţie, fac ca la un moment dat starea ieşirii circuitelor sa nu fie in concordanta cu funcţia de
transfer si intrările circuitelor la momentul considerat.
Comportarea incorecta a circuitului de comutaţie generata de cauzele menţionate,
produce o funcţionare de tip hazard.
La circuitele combinaţionale hazardul se poate manifesta in doua moduri diferite:
c) Hazard static: in urma modificării intrărilor, se modifica ieşirea, nefiind justificata din
punct de vedere logic, după care revine la valoarea iniţial corecta.
d) Hazard dinamic: ca urmare a modificării intrărilor, ieşirea trebuie sa-si modifice starea,
dar se va realiza după un număr de oscilaţii intre noua si vechea stare.
Vom evidenţia apariţia hazardului static si dinamic la doua circuite de comutaţie,
cu porţi ŞI-NU si porţi ŞI, SAU, fig. 11.1, fig. 11.2, utilizând descrierea funcţionarii
circuitelor prin reprezentarea formelor de unda a funcţiei de ieşire, raportata la anumite variaţii
ale valorilor binare de la intrările circuitului.
Se da schema logica din fig. 11.1
B
1 m
A
F
3
A
2
C P
Fig. 2. 1 Schema logica a unui circuit de comutaţie care evidenţiază
apariţia hazardului static.

Consideram iniţial ca variabilele de intrare au valorile: A=0, B=0, C=1,


pentru care funcţia F(A,B,C)= „1” si apoi valorile A=1, B=0, C=1, pentru care deasemenea,
funcţia F(A,B,C)= „1”
Se considera t p1 , t p 2 si t p 3 timpi de propagare diferiţi ai porţilor logice: 1, 2 si 3, cu
relaţia t p 2  t p1 si t p 3  t p 2  t p1

DIAGRAMA DE TIMP
B=0
,,1’’ C=1
A ,,0’’
t
m tp1

P
`
tp2

F
tp3 tp3

După ce variabila de intrare A, comuta din „0” in „1”, ieşirea circuitului datorita timpilor
de propagare diferiţi ai porţilor logice, devine pentru o scurta perioada de timp „0” (incorect din
punct de vedere logic), generând apariţia hazardului static.
Se da circuitul logic din figura 11.2
A
1 X
D
W
3
A Y
2
E F
5
C
Z
4
B
Fig. 2.2 Schema logica a unui circuit de comutaţie care evidenţiază apariţia hazardului dinamic.

Iniţial se considera intrările circuitului având valorile: A=0, B=1, C=1, D=0, E=1 iar la
momentul următor A=1, B=0, C=1, D=0, E=1.
Intre timpii de propagare diferiţi ai porţilor logice se considera următoarele corelări:
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
C=1, D=0, E=1
A
t
B

t
X
tp1

tp2
Y
t
W

tp3

t
Z

tp4
t
F

tp5

Comutarea variabilelor de intrare A, din „0” in „1” si a variabilei de intrare B din „1” in
„0”, precum si timpii de propagare diferiţi ai porţilor logice cu corelările menţionate, au ca efect
apariţia hazardului dinamic respectiv a oscilaţiilor generate la ieşirea circuitului intre valoarea
iniţială si cea finala (cea corecta din punct de vedere logic).
Un circuit de comutaţie căruia ii corespunde o schema logica cu doua niveluri de porţi
logice ŞI-NU, respectiv ŞI, SAU, nu permit hazard daca fiecare pereche de combinaţii de valori
adiacente ale intrărilor pentru care funcţia de comutaţie realizata are valoarea logica „1”, este
acoperita de cel puţin unul din termenii prezenţi in expresia disjunctiva a funcţiei asociata
schemei logice a circuitului dat.
O combinaţie a valorilor variabilelor X 0 , X 1 ,..., X n 1 notata (C0C1 Cn 1 ) unde
Ci  {0,1} pentru i=0,1,...,n-1 este acoperita de către un termen din forma disjunctiva a funcţiei
f ( X 0 , X 1 ,..., X n 1 ) notat cu T daca termenul canonic Pj al funcţiei corespondent combinaţiei
(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 01 11
A 10
0 1 1 0 0

1 0 1 1 0

Fig. 2.3 Reprezentarea funcţiei 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 porţi ŞI-NU, respectiv ŞI-SAU, a unui circuit
combinaţional, se poate obţine schema logica fără hazard, prin parcurgerea următoarelor etape:
a) Se obţine forma disjunctiva a funcţiei asociata schemei logice a circuitului
b) Se reprezintă funcţia de comutaţie pe o diagrama V-K si se minimizează
c) Daca contururile corespunzătoare formei minime sunt disjuncte (nu se intersectează),
se adaugă acele contururi (implicanţii primi redundanţi) care elimina disjuncţia contururilor,
rezultând astfel o funcţie de comutaţie care realizata cu porţi ŞI-NU, nu are hazard

Pentru funcţia F(A,B,C), fig. 11.3 se adaugă implicantul prim B  C corespunzător


conturului punctat si rezulta funcţia F ( A, B, C )  A  B  A  C  B  C căruia ii corespunde schema
logica cu porţi ŞI-NU:
A
B

A F(A,B,C)
C

B
C

Schema logica cu hazard din fig. 2.4 ii corespunde funcţia


F ( A, B, C , D, E )  ADC  ADB  AEC  AEB si reprezentata in diagrama V-K:
C
D
A E 001 011 101 111
B 000 010 100 110

00 1 1

01 1 1 1 1

11 1 1 1 1

10 1 1

Se include in expresia funcţiei de ieşire si implicantul prim BDE si rezulta


F ( A, B, C , D, E )  ADC  ADB  AEC  AEB  BDE , căreia ii corespunde circuitul
A
D
C

A
D
B

A F(A,B,C,D,E)
E
C

A
E
B

B
D
E

3. ELIMINAREA HAZARDULUI COMBINAŢIONAL


Circuitul din figură este implementarea unei funcţii logice y. Ne propunem să
determinăm dacă circuitul prezintă hazard combinaţional atunci când variază o singură intrare, şi
dacă da, să modificăm schema astfel încât să eliminăm complet acest tip de hazard.
Înainte de toate trebuie să scriem expresia algebrică corespunzătoare acestei implementări.
Atenţie!, nu ne interesează funcţia y într-o formă algebrică oarecare, ci exact acea expresie care
este echivalentă circuitului de mai sus, expresia în care fiecare operator booleean se regăseşte
într-una din porţile logice ale circuitului. Începem de la intrări. Prima poartă logică este un ŞI
care implementează produsul logic al intrărilor porţii: a·b’·d. Variabila b este negată de către
primul inversor din stânga circuitului. Continuăm cu celelalte porţi logice:

Expresia obţinută este un SAU între nişte 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 condiţiile pentru apariţia hazardului în circuitul care o implementează.
Cele trei produse ale expresiei logice pe care tocmai am obţinut-o pot fi reprezentate pe o
diagramă VK cu ajutorul suprafeţelor produs. Reuniunea celor trei suprafeţe produs, echivalentă
SAU-lui din expresia logică, este chiar mulţimea punctelor în care funcţia y are valoarea 1.
Subliniem din nou că reprezentarea de pe următoarea diagramă VK, deşi nu este singura
acoperire posibilă a funcţiei y, este singura reprezentare echivalentă circuitului combinaţional pe
care îl analizăm.
Pe diagrama VK pot fi identificate imediat regiunile care corespund apariţiei hazardului
combinaţional monovariabilă. Aceste regiuni sunt la graniţa între suprafeţe adiacente. Mai precis,
dacă două puncte vecine în care funcţia are valoarea 1 nu fac parte din aceeaşi suprafaţă produs,
există posibilitatea producerii hazardului la tranziţiile variabilei care diferă în cele două puncte.
O pereche de puncte vecine care îndeplinesc această condiţie este marcată pe diagrama de
mai jos. Cele două puncte au în comun următoarele valori logice la intrări: a = 1, c = 1 şi d = 1.
Cu aceste intrări fixate la valorile menţionate, dacă variabila b îşi modifică valoarea, la ieşirea
circuitului se poate produce pulsul de hazard nedorit.

Analizând schema circuitului observăm două rute distincte de la intrarea b până la ieşire.
Modificarea variabilei b se propagă pe două căi distincte. Una dintre ele inversează tranziţia de la
intrare. Aşadar în timp ce pe una dintre căi poarta logică ŞI se deschide, poarta logică ŞI de pe
cealaltă cale se închide. Momentele diferite la care au loc aceste evenimente determină apariţia
pulsului de hazard.
O altă pereche de puncte vecine şi aparţinând unor suprafeţe distincte sunt caracterizate de
următoarele valori fixe la intrare: a = 0, b = 1, d = 1. Schimbările logice ale variabilei c produc în
acest caz hazard la ieşirea circuitului. Pe schemă sunt evidenţiate două trasee distincte de la
intrarea c până la ieşire, precum şi inversarea logică care are loc doar pe unul dintre acestea.

O a treia posibilitate de apariţie a hazardului este mai puţin evidentă pe diagrama VK.
Trebuie să facem apel la imaginea multidimensională a mulţimii booleene reprezentată pe
diagramă. Latura de sus a diagramei (colorată cu roşu) este identică cu cea de jos, prin urmare
punctele de sus sunt vecine cu cele de jos, diferenţiate fiind numai de variabila a. Contextul de
apariţie a hazardului este aşadar: b = 0, c = 0, d = 1 .
Şi în această ultimă situaţie putem vizualiza pe schemă cele două trasee diferite care stau la
originea hazardului, graţie inversorului care apare doar pe unul dintre ele.
Soluţia de eliminare a hazardului monovariabilă constă în acoperirea adiacenţelor prezentate mai
sus cu suprafeţe produs, astfel încât fiecare pereche de puncte vecine de pe diagramă să aparţină
unei suprafeţe produs comune. În acest fel orice schimbare de variabilă între două puncte vecine
în care funcţia are valoarea 1 este “mascată” de o suprafaţă produs care menţine ferm ieşirea
circuitului în 1. Cele trei perechi de puncte cu probleme ale funcţiei y vor fi acoperite cu
suprafeţe produs corespunzătoare.

Cu aceste noi suprafeţe forma disjunctivă cea mai simplă dar fără hazard este:

y = (a·b’·d) + (b·c) + (a’·c’·d) + (a·c·d) + (a’·b·d) + (b’·c’·d)


Schema de mai sus este implementarea formei disjunctive fără hazard. Porţile colorate cu
roşu corespund produselor suplimentare care acoperă pe diagrama VK regiunile critice ale
implementării iniţiale. Cele două porţi SAU care apar în plus faţă de schema originală sunt
necesare doar dacă nu avem la îndemână o poartă SAU cu 6 intrări.
Interesant pentru această funcţie este că forma conjunctivă minimă, deşi are o expresie mai
complicată decât forma disjunctivă minimă (corespunzătoare schemei de la care a plecat analiza
noastră), nu prezintă hazard combinaţional monovariabilă fiind în acelaşi timp mai simplă decât
expresia disjunctivă fără hazard obţinută anterior:
y = (a’ + b’ + c) · (a + b + c’) · (c + d) · (b + d)
Dacă nu credeţi acest lucru atunci priviţi diagrama funcţiei negate:

Expresia disjunctivă minimă a acesteia îndeplineşte cerinţele pentru o implementare fără


hazard:
y’ = (a·b·c’) + (a’·b’·c) + (c’·d’) + (b’·d’)
Cu un singur inversor la ieşirea circuitului funcţiei negate se obţine funcţia y.
Transformând cu ajutorul relaţiilor lui de Morgan ultima expresie logică, se obţine forma
conjunctivă minimă, la rândul ei fără hazard la ieşire.

4. Simulari

Timpul de propagare

U 8A
2
1
3

74AS02
V1 = 0 V1 = 4
V1 V2 V
V2 = 4 V2 = 0
TD = 0 TD = 0
TR = 10n TR = 1n
TF = 5n TF = 1n
PW = 15n PW = 25n
PER = 50n PER = 50n
0 0
Hazardul dinamic

D STM 2

O F F TIM E = .5 u S
O N T IM E = .5 u S U 4A
C LK
D ELAY = 1
S TA R TV A L = 1 3
O PPVAL = 0 V
2
U 3A
V
74AS00
1 2
74AS04
V

Circuit cu hazard static


O F F T IM E = 1 u S D S TM 1 U 2A
O N T IM E = 1 u S C LK A 1
D ELAY = 3
S TA R TV A L = 0 2
O PPVAL = 1 U 4A
7408 1
3
2

O F F T IM E = .5 u S D S TM 2 U 3A 7432
O N T IM E = .5u S C LK
AB 1
D ELAY = 3
S TA R TV A L = 0 2
O PPVAL = 1
7408

O F F T I M E = . 2 5 u SD S T M 3 U 1A
O N T IM E = .2 5 u S C LK C 1 2
D ELAY =
7404
S TA R TV A L = 0
O PPVAL = 1

U 6A
A 1
3
2
U 9A
7408 1
3
2
U 7A
B 1 7432 U 10A
3 1
2 3
2
7408
U 5A 7432
C 1 2
7404 U 8A
1
3
2

7408
O F F T IM E = 1 u S
O N TIM E = 1 u S
D ELAY =
S TA R TVAL = 0
O PPVAL = 1
D STM 6
D S TM 4 D STM 5 D STM 7

C LK
C LK

C LK

C LK
O F F T IM E = .5 u S
O F F T IM E = 1 .2 5 u S O N T IM E = .5 u S O F F T IM E = .2 5 u S
O N T IM E = 1 .2 5 u S D ELAY = O N T IM E = .2 5 u S
D ELAY = S TA R TV A L = 0 D ELAY =
S TA R TV A L = 0 O PPVAL = 1 S TA R TV A L = 0
O PPVAL = 1 O PPVAL = 1
U 5A

2 1

U 8A
7404 1 2
7404

U 9A
1 2
7404
13

13

13

13
2
1

2
1

2
1

2
1
13

U 17A U 20A U 24A U 19A


2

2
1

U 11A U 18A
7411 7411 7411 7411
7408 7411
12

12

12

12
12
3
8
2
1

U 21A

8
2
1
U 22A
74H C 4075
74H C 4075
9

9
V
2

U 7A
7432
3

Circuit cu hazard dinamic

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