Exercicis d'electrònica digital seqüencial — Tecnologia i Enginyeria 2n Batxillerat
Aquests exercicis treballen l'electrònica digital seqüencial, el bloc de circuits que tenen memòria. Començaràs distingint els circuits combinacionals dels seqüencials i estudiant els biestables SR, D, T i JK: la taula de transicions, l'equació característica i els cronogrames. Després passaràs als registres de desplaçament i als comptadors asíncrons i síncrons, amb els retards de propagació i la freqüència màxima de treball. Acabaràs amb màquines d'estats senzilles: detectors de seqüència, comptadors amunt/avall, generadors pseudoaleatoris i el control d'un portal, passant del diagrama d'estats a les equacions dels biestables. Les solucions mostren cada pas del disseny. Errors típics: confondre el flanc de rellotge amb el nivell, oblidar què passa amb els estats no utilitzats d'un comptador i no tenir en compte l'estat inicial en un cronograma.
Nivell bàsic
Exercici 1
Classifica cada sistema com a combinacional o seqüencial i justifica-ho en una frase:
a) un descodificador de 3 a 8;
b) un comptador que porta el compte de les voltes d'un corredor en una pista;
c) un sumador de 4 bits;
d) un pany electrònic que només s'obre si s'han introduït, seguits i en l'ordre correcte, quatre dígits;
e) un multiplexor de 4 a 1;
f) un comandament de televisió que passa al canal següent cada vegada que es prem una tecla;
g) un registre de desplaçament de 8 bits.
Digues també quin component bàsic permet «recordar» un bit.
Mostra la solució
El criteri és la memòria: en un circuit combinacional la sortida depèn només de les entrades que hi ha en aquell moment; en un de seqüencial depèn també de l'estat anterior, de la «història» del circuit.
a) Combinacional: cada combinació d'entrada dona sempre la mateixa sortida.
b) Seqüencial: el valor del compte depèn de les voltes anteriors.
c) Combinacional: la suma només depèn dels dos nombres presents a l'entrada.
d) Seqüencial: ha de recordar quins dígits s'han introduït fins ara.
e) Combinacional: la sortida és una de les entrades triada per les línies de selecció.
f) Seqüencial: el canal següent depèn del canal actual, que s'ha de recordar.
g) Seqüencial: cada bit guarda el valor que tenia el bit veí en el flanc anterior.
El component que emmagatzema un bit és el biestable (flip-flop). Un circuit seqüencial és, en general, un conjunt de biestables més una lògica combinacional que calcula l'estat següent i les sortides.
Exercici 2
Un latch SR es construeix amb dues portes NOR connectades en creu: i . Inicialment Q = 0.
a) Aplica, una darrere l'altra, aquestes combinacions de les entrades (S, R) i escriu Q després de cada una: (0, 0), (1, 0), (0, 0), (0, 1), (0, 0), (1, 0), (1, 0), (0, 0).
b) Quina funció fa l'entrada S? I la R? Què vol dir (0, 0)?
c) Què passa amb les sortides si S = R = 1? Per què aquesta combinació s'evita?
Mostra la solució
a) Cada porta NOR dona 1 només quan les seves dues entrades valen 0. Resultat:
1) (S, R) = (0, 0) → Q = 0,
2) (S, R) = (1, 0) → Q = 1,
3) (S, R) = (0, 0) → Q = 1,
4) (S, R) = (0, 1) → Q = 0,
5) (S, R) = (0, 0) → Q = 0,
6) (S, R) = (1, 0) → Q = 1,
7) (S, R) = (1, 0) → Q = 1,
8) (S, R) = (0, 0) → Q = 1,
b) S (set) posa Q a 1; R (reset) posa Q a 0. Amb (0, 0) el latch manté l'estat anterior: aquesta és la seva memòria.
c) Si S = R = 1, les dues portes NOR donen 0: Q = 0 i , dues sortides que haurien de ser complementàries. A més, si les dues entrades passen alhora a 0, l'estat final és imprevisible (depèn de quina porta sigui una mica més ràpida). Per això la combinació S = R = 1 és prohibida.
Exercici 3
Un biestable SR síncron canvia d'estat només en els flancs de pujada del rellotge, segons els valors de S i R en aquell instant. Q val 0 abans del primer flanc. Els valors de (S, R) en cada flanc de pujada són: (1, 0), (0, 0), (0, 1), (1, 0), (0, 0), (0, 1).
a) Escriu el valor de Q després de cada flanc.
b) Entre el flanc 2 i el flanc 3, l'entrada S fa un pols a 1 (puja i baixa) sense que hi hagi cap flanc de rellotge. Canvia Q? Per què?
c) Quina combinació de (S, R) no es pot aplicar en un flanc?
Mostra la solució
a) Amb S = 1, R = 0 el biestable es posa a 1; amb S = 0, R = 1 es posa a 0; amb (0, 0) manté l'estat.
Flanc 1: S = 1, R = 0 → Q = 1
Flanc 2: S = 0, R = 0 → Q = 1
Flanc 3: S = 0, R = 1 → Q = 0
Flanc 4: S = 1, R = 0 → Q = 1
Flanc 5: S = 0, R = 0 → Q = 1
Flanc 6: S = 0, R = 1 → Q = 0
b) No. Un biestable síncron només «mira» les entrades en el flanc de rellotge; tot el que passi a S o R entre dos flancs és ignorat. Aquesta és la diferència amb el latch asíncron de l'exercici anterior, que reacciona en qualsevol moment.
c) S = R = 1, perquè no defineix un estat (Q i haurien de valer alhora 1 i 0).
Exercici 4
Un biestable T canvia d'estat (bascula) en cada flanc de pujada del rellotge si T = 1, i es manté si T = 0. Q val 0 abans del primer flanc.
a) Els valors de T en els 8 primers flancs són 1, 1, 0, 1, 0, 0, 1, 1. Escriu Q després de cada flanc.
b) Si T = 1 sempre i el rellotge és de 12 kHz, quina és la freqüència de Q? Quin percentatge del període està Q a 1?
c) Si connectem tres biestables T (amb T = 1), cada un rellotjat per la sortida de l'anterior, i el primer rep 12 kHz, quina freqüència té la sortida del tercer?
Mostra la solució
a) Flanc 1: T = 1 → Q = 1
Flanc 2: T = 1 → Q = 0
Flanc 3: T = 0 → Q = 0
Flanc 4: T = 1 → Q = 1
Flanc 5: T = 0 → Q = 1
Flanc 6: T = 0 → Q = 1
Flanc 7: T = 1 → Q = 0
Flanc 8: T = 1 → Q = 1
b) Amb T = 1, Q canvia a cada flanc de pujada, de manera que fa un cicle complet (0 → 1 → 0) cada dos períodes de rellotge: = 12 kHz / 2 = 6 kHz. Q està 1 durant un període del rellotge i 0 durant el següent, és a dir, el 50 % del temps.
c) Cada biestable divideix la freqüència per 2: 12 kHz / = 1,5 kHz.
Exercici 5
En un biestable JK, el valor de l'estat següent depèn de J, K i de l'estat actual Q.
a) Omple una taula amb per a les quatre combinacions de (J, K) i per a Q = 0 i Q = 1. Quin nom reben les accions (0, 0), (0, 1), (1, 0) i (1, 1)?
b) Escriu, per a cada transició possible (0 → 0, 0 → 1, 1 → 0, 1 → 1), els valors de J i K que la produeixen. Fes servir X per a «indiferent» (pot valer 0 o 1).
Mostra la solució
a) Q+ per (J, K):
(0, 0): Q+ = Q → manté (0 → 0, 1 → 1).
(0, 1): Q+ = 0 → reset (0 → 0, 1 → 0).
(1, 0): Q+ = 1 → set (0 → 1, 1 → 1).
(1, 1): Q+ = → bascula (0 → 1, 1 → 0).
b) Mirant a quines files es produeix cada transició:
0 → 0: (J, K) = (0, 0) o (0, 1) ⇒ J = 0, K = X.
0 → 1: (1, 0) o (1, 1) ⇒ J = 1, K = X.
1 → 0: (0, 1) o (1, 1) ⇒ J = X, K = 1.
1 → 1: (0, 0) o (1, 0) ⇒ J = X, K = 0.
Aquesta taula d'excitació és l'eina que s'usa per dissenyar comptadors i màquines d'estats amb biestables JK.
Exercici 6
Es comparen dos elements de memòria d'un bit amb l'entrada D i el mateix senyal de rellotge (CLK): un latch D (transparent mentre CLK = 1: Q segueix D; quan CLK = 0, Q es manté) i un biestable D que copia D només en el flanc de pujada del rellotge.
El rellotge val 1 de 0 a 4 ms, 0 de 4 a 8 ms i 1 de 8 a 12 ms (flancs de pujada a 0 i 8 ms). L'entrada D val 0 fins a 1 ms, 1 de 1 a 2,5 ms, 0 de 2,5 a 5 ms, 1 de 5 a 9,5 ms i 0 de 9,5 a 12 ms. Tots dos comencen amb Q = 0.
a) Quant val Q de cada element als instants 0,5, 1,5, 3, 6, 8,5 i 10 ms?
b) Quin dels dos elements és més robust davant d'un pols breu i no desitjat (glitch) a D? Raona-ho.
Mostra la solució
a) Latch D: mentre CLK = 1 (0–4 ms i 8–12 ms), Q = D; durant 4–8 ms manté el valor que tenia a 4 ms (D = 0 en aquest instant).
Biestable D: només mostreja D en els flancs de pujada (0 ms i 8 ms): a 0 ms, D = 0 → Q = 0 fins a 8 ms; a 8 ms, D = 1 → Q = 1 fins al flanc següent.
t = 0,5 ms: latch Q = 0, biestable Q = 0
t = 1,5 ms: latch Q = 1, biestable Q = 0
t = 3,0 ms: latch Q = 0, biestable Q = 0
t = 6,0 ms: latch Q = 0, biestable Q = 0
t = 8,5 ms: latch Q = 1, biestable Q = 1
t = 10,0 ms: latch Q = 0, biestable Q = 1
b) El biestable D, perquè només «mira» D en un instant concret (el flanc) i ignora tot el que passi entre dos flancs. El latch, mentre és transparent, deixa passar qualsevol canvi (com el pols d'1 a 2,5 ms) cap a la sortida.
Exercici 7
Un conjunt de n biestables pot emmagatzemar estats diferents.
a) Quants estats pot tenir un registre de 5 biestables? I un de 12?
b) Quants biestables calen, com a mínim, per fer un comptador binari que vagi de 0 a 99?
c) I per a un comptador que vagi de 0 a 59 (minuts d'un rellotge)?
d) I per comptar els 1000 valors de 0 a 999?
e) Un comptador de 4 biestables que només compta de 0 a 9 (mòdul 10): quants dels seus estats no s'utilitzen?
Mostra la solució
a) = 32 estats; = 4096 estats.
b) Calen 100 estats: = 64 és insuficient i = 128 ≥ 100, de manera que calen 7 biestables.
c) Calen 60 estats: = 32 < 60 ≤ = 64, de manera que calen 6 biestables.
d) 1000 estats: = 512 < 1000 ≤ = 1024, de manera que calen 10 biestables.
e) Amb 4 biestables hi ha 16 estats i se'n fan servir 10, de manera que 6 estats no s'utilitzen (de 1010 a 1111). En el disseny d'un comptador cal decidir què fa el circuit si, per un soroll, entra en un d'aquests estats.
Exercici 8
Un registre de desplaçament de 4 bits està format per quatre biestables D en cadena: la sortida de cada un és l'entrada del següent, i l'entrada de dades en sèrie va a . En cada flanc de pujada del rellotge, cada bit passa a la posició següent i carrega el bit d'entrada. El registre comença a 13 = 0000.
a) Escriu l'estat del registre després de cada flanc si, en aquests flancs, l'entrada val 1, 0, 1, 1, 0, 0, 1.
b) Després del quart flanc, quin nombre binari té el registre si el llegim de a ? Què té a veure amb els bits d'entrada?
c) Quants flancs de rellotge calen perquè un bit present a l'entrada arribi a ? Si el rellotge és de 2 kHz, quant de temps representen aquests flancs?
Mostra la solució
a) A cada flanc, , , , :
Flanc 1: entrada = 1 → Q0Q1Q2Q3 = 1000
Flanc 2: entrada = 0 → Q0Q1Q2Q3 = 0100
Flanc 3: entrada = 1 → Q0Q1Q2Q3 = 1010
Flanc 4: entrada = 1 → Q0Q1Q2Q3 = 1101
Flanc 5: entrada = 0 → Q0Q1Q2Q3 = 0110
Flanc 6: entrada = 0 → Q0Q1Q2Q3 = 0011
Flanc 7: entrada = 1 → Q0Q1Q2Q3 = 1001
b) Després del quart flanc, Q0Q1Q2Q3 = 1101; llegit de Q3 a Q0 és 1011, que són els quatre primers bits d'entrada en l'ordre en què van arribar (1, 0, 1, 1) (el primer bit rebut és ara a Q3). El registre ha convertit quatre bits que arribaven en sèrie en una paraula de quatre bits disponible en paral·lel.
c) Un bit present a l'entrada necessita 4 flancs per arribar a Q3 (un per biestable): t = 4 · T = 4 / 2000 Hz = 2 ms.
Exercici 9
Un comptador síncron descendent de 3 bits (1) disminueix en una unitat el seu valor binari a cada flanc de rellotge, i quan arriba a 000 passa a 111. Comença a l'estat 101.
a) Escriu els estats després dels 8 primers flancs.
b) Quants estats diferents té el comptador? Quin és el seu mòdul?
c) Quin estat tindrà després de 100 flancs? Raona-ho sense escriure tota la seqüència.
Mostra la solució
a) Restant 1 a cada flanc, en binari: 100, 011, 010, 001, 000, 111, 110, 101 (de 101 a 100, 011, 010, 001, 000, 111, 110 i de nou 101).
b) Té = 8 estats; és un comptador de mòdul 8 i després de 8 flancs torna a l'estat inicial.
c) Com que la seqüència es repeteix cada 8 flancs, només importa el residu de 100 entre 8: 100 = 12 · 8 + 4. Després de 100 flancs és com després de 4: 101 − 4 = 001. (Comprovació: (5 − 100) mod 8 = 1, és a dir, 001.)
Exercici 10
Un biestable JK que canvia amb el flanc de baixada del rellotge té dues entrades asíncrones: PRESET (actiu a nivell baix) posa Q a 1 i CLEAR (actiu a nivell baix) posa Q a 0 immediatament, sense esperar el rellotge i amb prioritat sobre J, K i el rellotge. Quan no estan actives (nivell alt) el biestable funciona amb normalitat.
Es produeix aquesta seqüència d'esdeveniments, en ordre. Digues quin valor té Q després de cada un:
1) Es dona un pols a CLEAR (a nivell baix).
2) Amb PRESET i CLEAR inactius i J = K = 1, arriba un flanc de baixada del rellotge.
3) Arriba un segon flanc de baixada.
4) Es posa PRESET a nivell baix.
5) Mentre PRESET continua a nivell baix, arriba un tercer flanc de baixada.
6) Es torna a posar PRESET a nivell alt i arriba un quart flanc (J = K = 1).
7) Es posa J = K = 0 i arriba un cinquè flanc.
8) Es posa J = 1, K = 0 i arriba un sisè flanc.
Per a què serveixen aquestes entrades en un circuit real?
Mostra la solució
1) CLEAR = 0 (actiu): Q = 0 sense esperar cap flanc
2) Flanc de baixada 1 (J = K = 1): bascula → Q = 1
3) Flanc de baixada 2: bascula → Q = 0
4) PRESET = 0 (actiu): Q = 1 immediatament
5) Flanc de baixada 3 amb PRESET encara actiu: Q = 1 (les entrades asíncrones manen)
6) PRESET = 1 de nou; flanc de baixada 4 (J = K = 1): bascula → Q = 0
7) J = K = 0; flanc de baixada 5: manté → Q = 0
8) J = 1, K = 0; flanc de baixada 6: set → Q = 1
Serveixen per portar el circuit a un estat inicial conegut quan s'engega (per exemple, posar tot un comptador a zero amb un únic senyal de reset), perquè en connectar l'alimentació els biestables arrenquen en estats aleatoris.
Nivell intermedi
Exercici 11
Un biestable JK canvia en el flanc de pujada del rellotge (període de 10 µs). Q val 0 abans del primer flanc. En els 8 primers flancs, J i K valen:
J: 1, 0, 1, 0, 0, 1, 1, 0
K: 0, 0, 1, 1, 0, 1, 1, 1
a) Escriu Q després de cada flanc i indica l'acció (manté, reset, set o bascula) que fa el biestable en cada cas.
b) Quantes vegades canvia Q en aquests 8 flancs?
c) Considera que Q es manté entre dos flancs consecutius. Durant els 8 períodes que comencen amb cada un dels 8 flancs, quant de temps està Q a 1?
Mostra la solució
a) Flanc 1: J = 1, K = 0 → Q = 1
Flanc 2: J = 0, K = 0 → Q = 1
Flanc 3: J = 1, K = 1 → Q = 0
Flanc 4: J = 0, K = 1 → Q = 0
Flanc 5: J = 0, K = 0 → Q = 0
Flanc 6: J = 1, K = 1 → Q = 1
Flanc 7: J = 1, K = 1 → Q = 0
Flanc 8: J = 0, K = 1 → Q = 0
Accions: flanc 1, set; 2, manté; 3, bascula; 4, reset; 5, manté; 6, bascula; 7, bascula; 8, reset.
b) Q canvia als flancs 1 (0 → 1), 3 (1 → 0), 6 (0 → 1) i 7 (1 → 0): 4 vegades.
c) Q val 1 després dels flancs 1, 2 i 6, és a dir, durant 3 dels 8 períodes: 3 · 10 µs = 30 µs d'un total de 80 µs (37,5 %).
Exercici 12
Es vol dissenyar un comptador síncron ascendent de 2 bits (0: 00 → 01 → 10 → 11 → 00 …) amb dos biestables JK que comparteixen el mateix senyal de rellotge.
a) Escriu, per a cada transició d'estat, els valors que han de tenir , , i (utilitza la taula d'excitació del JK; X = indiferent).
b) Obtén les funcions , , i en funció de i aprofitant les X.
c) Comprova el disseny: partint de 00, escriu els estats dels 6 primers flancs.
d) Quina diferència hi ha amb un comptador asíncron (ripple) del mateix mòdul pel que fa a quan canvia cada sortida?
Mostra la solució
a) Per a cada bit, la transició Q → Q+ demana, segons la taula d'excitació (0→0: J=0,K=X; 0→1: J=1,K=X; 1→0: J=X,K=1; 1→1: J=X,K=0):
Q1Q0 = 00 → 01: J1 = 0, K1 = X; J0 = 1, K0 = X
Q1Q0 = 01 → 10: J1 = 1, K1 = X; J0 = X, K0 = 1
Q1Q0 = 10 → 11: J1 = X, K1 = 0; J0 = 1, K0 = X
Q1Q0 = 11 → 00: J1 = X, K1 = 1; J0 = X, K0 = 1
b) J0: 1, X, 1, X → J0 = 1. K0: X, 1, X, 1 → K0 = 1. Per al bit de més pes, J1: 0, 1, X, X → . K1: X, X, 0, 1 → . Així, Q0 bascula a cada flanc i Q1 bascula només quan Q0 = 1.
c) Partint de 00: 01, 10, 11, 00, 01, 10. És la seqüència binària ascendent, i després de 11 torna a 00.
d) En el comptador síncron tots els biestables reben el flanc alhora i totes les sortides canvien simultàniament (amb un petit retard comú). En l'asíncron, la sortida d'un biestable fa de rellotge del següent: els canvis es propaguen un darrere l'altre, i durant un instant el comptador pot passar per estats intermedis incorrectes.
Exercici 13
Es connecten quatre biestables D en forma de registre de desplaçament (Q0 → D1, Q1 → D2, Q2 → D3) i es realimenta la sortida de l'últim a l'entrada del primer. El rellotge és de 2 Hz.
a) Comptador en anell: D0 = Q3. Partint de Q0Q1Q2Q3 = 1000, escriu la seqüència d'estats. Quants estats diferents té? Durant quant de temps està Q0 a 1 en cada volta, i quin és el període de Q0?
b) Comptador Johnson: D0 = . Partint de 0000, escriu la seqüència d'estats. Quants estats té? Quina durada té un període de Q0?
c) Quin avantatge té el Johnson respecte de l'anell amb el mateix nombre de biestables? I quin inconvenient té l'anell si per soroll entra a l'estat 0000?
Mostra la solució
a) Seqüència: 1000 → 0100 → 0010 → 0001 → 1000. Té 4 estats (un per biestable): l'únic 1 «viatja» pel registre. val 1 durant un únic flanc de cada quatre: 0,5 s. El seu període és 4 flancs = 2 s. Aquest tipus de comptador s'utilitza per activar quatre dispositius de manera seqüencial (per exemple, quatre llums que s'encenen una darrere l'altra).
b) Seqüència: 0000 → 1000 → 1100 → 1110 → 1111 → 0111 → 0011 → 0001 → 0000. Té 8 estats. val 1 durant 4 flancs seguits i 0 durant 4 flancs: període de 8 flancs = 4 s.
c) Amb n biestables, el Johnson té 2n estats (8 amb 4 biestables) i l'anell, només n (4). Així s'obté un comptador de més mòdul amb els mateixos biestables. Pel que fa a l'anell, si entra a 0000 hi queda atrapat per sempre (cada biestable recull un 0 i no hi ha cap 1 per «viatjar»): cal inicialitzar-lo amb una entrada de preset o amb una lògica de correcció.
Exercici 14
Les equacions característiques dels biestables són: D: ; T: ; JK: .
a) Dissenya, comparant equacions, un biestable T a partir d'un biestable D i una porta. Comprova el resultat per als 4 casos de (T, Q).
b) Dedueix com s'ha de connectar un biestable JK per fer-lo funcionar com un biestable D. Comprova-ho per a D = 0 i D = 1.
c) I com un biestable T?
d) Un comptador asíncron de 4 bits es construeix amb quatre biestables T amb T = 1. Si es volguessin fer amb biestables D en comptes de T, quantes portes caldrien i de quin tipus: (i) si els biestables D només tenen la sortida Q, i (ii) si també tenen la sortida ?
Mostra la solució
a) Volem , i un biestable D dona . Per tant, : una porta XOR amb entrades T i Q i sortida a D.
Comprovació: (T, Q) = (0, 0) → D = 0 (manté 0); (0, 1) → D = 1 (manté 1); (1, 0) → D = 1 (bascula a 1); (1, 1) → D = 0 (bascula a 0).
b) Igualant amb J = D i : . Cal posar J = D i K = D negada (amb un inversor).
Comprovació: D = 1 → (J, K) = (1, 0): set, Q+ = 1. D = 0 → (J, K) = (0, 1): reset, Q+ = 0.
c) Si J = K = T: : amb T = 0 manté i amb T = 1 bascula. Només cal unir J i K i portar-hi T.
d) Cada biestable T es transforma en un D amb una porta XOR (D = T ⊕ Q); com que T = 1, . Si el biestable D només té la sortida Q, cal un inversor per biestable (4 en total). Si també té la sortida , n'hi ha prou amb connectar-la a la seva pròpia entrada D: no cal cap porta. En tots dos casos, cada biestable rep com a rellotge la sortida de l'anterior.
Exercici 15
Un interruptor mecànic de dues posicions (comú a massa i dos contactes A i B, cada contacte unit a +5 V amb una resistència) rebota unes quantes vegades en arribar a cada contacte. Per netejar el senyal, s'uneix el contacte A a l'entrada i el contacte B a l'entrada d'un latch format per dues portes NAND (, ). Les entrades són actives a nivell baix.
a) Inicialment l'interruptor és al contacte B. Quin és l'estat del latch (Q)?
b) L'interruptor es mou cap al contacte A i rebota. Els valors successius de són: (1, 0), (1, 1) [en l'aire], (0, 1), (1, 1) [rebot], (0, 1), (1, 1), (0, 1) [contacte definitiu]. Escriu Q en cada pas.
c) Torna al contacte B amb rebots: (1, 1), (1, 0), (1, 1), (1, 0), (1, 1), (1, 0). Escriu Q en cada pas.
d) Quants flancs de baixada té el senyal brut del contacte A en la fase b)? Quants flancs de pujada té Q? Què li passaria a un comptador connectat directament al contacte?
Mostra la solució
a) Amb el latch es posa a 0: Q = 0.
b) Pas a pas, (1, 0) → Q = 0
(1, 1) → Q = 0
(0, 1) → Q = 1
(1, 1) → Q = 1
(0, 1) → Q = 1
(1, 1) → Q = 1
(0, 1) → Q = 1
En arribar la primera vegada a A (0, 1), Q passa a 1 i els rebots posteriors, que només fan (1, 1) i (0, 1) de manera alterna, no el canvien: (1, 1) manté i (0, 1) torna a posar a 1.
c) (1, 1) → Q = 1
(1, 0) → Q = 0
(1, 1) → Q = 0
(1, 0) → Q = 0
(1, 1) → Q = 0
(1, 0) → Q = 0
Amb el primer contacte amb B, (1, 0), Q passa a 0 i es queda a 0 malgrat els rebots.
d) El senyal brut de A baixa a 0 3 vegades, però Q només té un flanc de pujada. Un comptador connectat directament al contacte comptaria 3 polsos per una sola pulsació; amb el latch compta 1. Per això es fa servir aquest circuit com a antirebot.
Exercici 16
Un registre de 4 bits està format per quatre biestables D amb rellotge comú. L'entrada de cada biestable és , on Ii són les dades d'entrada i LD és el senyal de càrrega. Abans del primer flanc, Q3Q2Q1Q0 = 0101.
a) Quina funció fa el circuit quan LD = 1? I quan LD = 0?
b) Escriu el contingut del registre després de cada flanc de pujada si (LD, I3I2I1I0) val: (1, 1100), (0, 0011), (1, 1010), (0, 1111), (1, 0001).
c) Quin component combinacional s'ha afegit davant de cada biestable per construir Di?
d) Per què no es «desconnecta» el rellotge del registre amb una porta AND quan es vol que mantingui el valor, en lloc de realimentar Q?
Mostra la solució
a) Amb LD = 1: , i el registre carrega les dades d'entrada en el flanc. Amb LD = 0: , i cada biestable recarrega el seu propi valor, de manera que el registre manté el contingut.
b) Flanc 1: LD = 1, I = 1100 → Q = 1100
Flanc 2: LD = 0, I = 0011 → Q = 1100
Flanc 3: LD = 1, I = 1010 → Q = 1010
Flanc 4: LD = 0, I = 1111 → Q = 1010
Flanc 5: LD = 1, I = 0001 → Q = 0001
c) Un multiplexor de 2 a 1 per bit (LD fa de selecció: tria Ii o Qi).
d) Retardar o tallar el rellotge amb portes crea petits desfasaments i possibles pulsos paràsits (glitches) que poden provocar canvis d'estat no desitjats; és preferible que tots els biestables rebin el mateix rellotge i que sigui l'entrada D la que decideixi si l'estat canvia (disseny síncron).
Exercici 17
Una màquina d'estats de Moore té dos estats, PARELL i IMPARELL, i una entrada X en sèrie (un bit per flanc de rellotge). Si X = 0 l'estat no canvia; si X = 1, canvia a l'altre. L'estat inicial és PARELL. La sortida Z només depèn de l'estat: Z = 0 en PARELL i Z = 1 en IMPARELL.
a) Dibuixa mentalment el diagrama d'estats i escriu la taula d'estats (estat actual, X → estat següent, Z).
b) Per a l'entrada 1, 0, 1, 1, 0, 1, 1, 1 escriu l'estat i la sortida després de cada flanc.
c) Què calcula la sortida Z? Comprova-ho amb el nombre total de 1 de l'entrada.
d) Amb quants biestables es pot implementar? Quina és l'equació de l'entrada del biestable i de la sortida?
Mostra la solució
a) Taula: PARELL, X = 0 → PARELL; PARELL, X = 1 → IMPARELL; IMPARELL, X = 0 → IMPARELL; IMPARELL, X = 1 → PARELL. Sortida: Z = 0 en PARELL, Z = 1 en IMPARELL.
b) Flanc 1: X = 1 → estat IMPARELL, Z = 1
Flanc 2: X = 0 → estat IMPARELL, Z = 1
Flanc 3: X = 1 → estat PARELL, Z = 0
Flanc 4: X = 1 → estat IMPARELL, Z = 1
Flanc 5: X = 0 → estat IMPARELL, Z = 1
Flanc 6: X = 1 → estat PARELL, Z = 0
Flanc 7: X = 1 → estat IMPARELL, Z = 1
Flanc 8: X = 1 → estat PARELL, Z = 0
c) Z val 1 quan el nombre d'uns rebuts fins ara és senar. L'entrada té 6 uns (1, 1, 1, 1, 1, 1): nombre parell, i efectivament l'estat final és PARELL (Z = 0). Aquesta màquina és la base per calcular el bit de paritat d'una transmissió.
d) Amb un biestable (dos estats). Assignant PARELL = 0 i IMPARELL = 1, l'estat següent és , de manera que serveix un biestable D amb (o un biestable T amb T = X), i la sortida és .
Exercici 18
Una màquina de Mealy té tres estats (S0, S1 i S2) i una entrada X en sèrie. La taula d'estats (estat actual, X → estat següent / sortida Z) és:
S0, 0 → S0 / 0; S0, 1 → S1 / 0
S1, 0 → S0 / 0; S1, 1 → S2 / 0
S2, 0 → S0 / 1; S2, 1 → S2 / 0
Parteix de S0.
a) Aplica l'entrada 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 0 i escriu l'estat i la sortida després de cada flanc.
b) Quina seqüència d'entrada detecta la màquina (Z = 1)? Quantes vegades l'ha detectada en l'entrada?
c) Quants biestables calen com a mínim per a tres estats? Quina diferència hi ha entre una màquina de Mealy i una de Moore pel que fa a la sortida?
Mostra la solució
a) Flanc 1: X = 0 → S0, Z = 0
Flanc 2: X = 1 → S1, Z = 0
Flanc 3: X = 1 → S2, Z = 0
Flanc 4: X = 0 → S0, Z = 1
Flanc 5: X = 1 → S1, Z = 0
Flanc 6: X = 1 → S2, Z = 0
Flanc 7: X = 1 → S2, Z = 0
Flanc 8: X = 0 → S0, Z = 1
Flanc 9: X = 1 → S1, Z = 0
Flanc 10: X = 1 → S2, Z = 0
Flanc 11: X = 0 → S0, Z = 1
Flanc 12: X = 0 → S0, Z = 0
b) Z = 1 només es produeix des de S2 amb X = 0, és a dir, quan s'han rebut dos uns seguits i després un zero: la màquina detecta la seqüència 110. Ho fa 3 vegades (flancs 4, 8 i 11).
c) Amb 2 biestables ( = 4 ≥ 3 estats). En una màquina de Mealy la sortida depèn de l'estat i de l'entrada actual, de manera que pot canviar tan bon punt canvia X, sense esperar el flanc; en una de Moore la sortida depèn només de l'estat i canvia només amb el rellotge.
Exercici 19
Un circuit seqüencial té dos biestables D, amb entrades i , on X és una entrada externa. Els biestables parteixen de Q1Q0 = 00.
a) Escriu la taula d'estats completa (estat actual Q1Q0 i X → estat següent).
b) Descriu què fa el circuit quan X = 1 i quan X = 0. Quin tipus de codi segueix la seqüència quan X = 1?
c) Per a X = 1, 1, 0, 1, 1, 1, 0, 1 en els 8 flancs, escriu els estats successius.
d) Quin avantatge té aquest codi respecte del binari natural quan s'ha de convertir en una posició mecànica?
Mostra la solució
a) Substituint a les equacions:
X = 0: i , de manera que l'estat es manté en els 4 casos (00, 01, 11 i 10).
X = 1: , : 00 → 01; 01 → 11; 11 → 10; 10 → 00.
b) Amb X = 0 el circuit manté l'estat (X fa de senyal d'habilitació); amb X = 1 recorre la seqüència 00 → 01 → 11 → 10 → 00 …, que és el codi Gray de 2 bits (canvia un sol bit a cada pas). És un comptador Gray de mòdul 4 amb habilitació.
c) 01, 11, 11, 10, 00, 01, 01, 11.
d) En el codi Gray només canvia un bit entre dos valors consecutius; amb el binari natural, en passar de 01 a 10 canvien dos bits alhora i, si un sensor els llegeix amb un petit decalatge, es pot llegir un valor intermedi erroni (00 o 11). Per això s'utilitza en codificadors de posició.
Exercici 20
Cada biestable d'un comptador té un retard de propagació = 15 ns entre el flanc de rellotge i el canvi de la seva sortida. Una porta AND té un retard de 10 ns.
a) Comptador asíncron (ripple) de 4 bits amb biestables que canvien amb el flanc de baixada del seu rellotge (el primer rep el rellotge extern; cada un dels altres, la sortida del biestable anterior). Quan passa de 0111 a 1000, escriu els estats pels quals passa 20 i en quin instant (després del flanc) canvia cada bit.
b) Quant triga, en el pitjor cas, a estabilitzar-se el comptador de 4 bits? Quina és la freqüència màxima del rellotge perquè el valor pugui ser llegit correctament abans del flanc següent? I per a un comptador asíncron de 8 bits?
c) En un comptador síncron de 4 bits, tots els biestables reben el rellotge alhora, però el biestable de més pes necessita una porta AND de 3 entrades ( = = 1). Quin és el període mínim i la freqüència màxima?
d) Compara els resultats de b) i c).
Mostra la solució
a) Cada biestable canvia 15 ns després que el seu rellotge (la sortida de l'anterior) baixi:
t = 0: flanc extern. t = 15 ns: Q0 passa de 1 a 0 → 0110. t = 30 ns: Q1 passa de 1 a 0 (Q0 ha baixat) → 0100. t = 45 ns: Q2 passa de 1 a 0 → 0000. t = 60 ns: Q3 passa de 0 a 1 (Q2 ha baixat) → 1000.
Es produeixen tres estats intermedis incorrectes (0110, 0100 i 0000) de 15 ns cadascun.
b) El pitjor cas és la transició amb canvi en tots els bits (de 0111 a 1000 o de 1111 a 0000): 4 · 15 ns = 60 ns. El període del rellotge ha de ser almenys 60 ns, de manera que fmàx = 1/(60·10-9 s) = 16,7 MHz. Per a 8 bits: 8 · 15 = 120 ns i fmàx = 8,3 MHz.
c) El camí crític és el rellotge → biestable → AND → entrada del biestable següent: Tmín = 15 + 10 = 25 ns, fmàx = 40 MHz.
d) El síncron és 2,4 vegades més ràpid amb 4 bits, i la diferència creix quan augmenta el nombre de bits perquè el retard del comptador asíncron és proporcional al nombre de biestables, mentre que el del síncron gairebé no depèn de n (només augmenta lleugerament amb la mida de la porta AND). A canvi, el síncron necessita més portes. A més, en el síncron no hi ha estats intermedis falsos.
Nivell avançat
Exercici 21
Es vol dissenyar un comptador síncron de mòdul 5 (1: 000 → 001 → 010 → 011 → 100 → 000 …) amb tres biestables D.
a) Escriu la taula de transicions per als cinc estats que s'utilitzen. Els estats 101, 110 i 111 no s'utilitzen (indiferents).
b) Obtén , i en funció de , i aprofitant els estats indiferents (pots fer-ho amb mapes de Karnaugh).
c) Comprova on porta el circuit si, per un soroll, entra en un dels estats no utilitzats (101, 110 o 111). El comptador és autocorrector?
d) Si el rellotge és d'1 kHz, quina freqüència té ? Quin percentatge del període està a 1?
Mostra la solució
a) Les transicions són 000 → 001, 001 → 010, 010 → 011, 011 → 100 i 100 → 000. Per tant, el valor que ha de tenir cada entrada D és el del bit corresponent de l'estat següent.
b) D2 val 1 només quan l'estat següent és 100, és a dir, en 011 (Q1Q0 = 11): .
D1 val 1 quan l'estat següent és 010 o 011, o sigui des de 001 i 010: (val 0 en 000, 011 i 100, com cal).
D0 val 1 quan l'estat següent és 001 o 011, o sigui des de 000 i 010: s'observa que passa quan Q0 = 0 i Q2 = 0, de manera que .
c) Amb les equacions: 101 → D2 = 0, D1 = 1, D0 = 0 → 010; 110 → D2 = 0, D1 = 1, D0 = 0 → 010; 111 → D2 = 1, D1 = 0, D0 = 0 → 100. Tots tornen a la seqüència en un sol flanc: el comptador és autocorrector.
d) Q2 val 1 només en un dels cinc estats, de manera que té una freqüència de 1 kHz / 5 = 200 Hz i un cicle de treball del 20 % (un flanc de cada cinc).
Exercici 22
Es vol dissenyar un detector de la seqüència 101 en una entrada X en sèrie, amb detecció de seqüències solapades (per exemple, 10101 conté dues vegades 101). La sortida Z ha de valer 1 en el flanc en què arriba l'últim 1 de la seqüència (màquina de Mealy). Els estats són: S0 = 00 (no s'ha rebut res útil), S1 = 01 (últim bit rebut: 1) i S2 = 10 (últims bits rebuts: 10).
a) Dibuixa el diagrama o escriu la taula d'estats (estat actual, X → estat següent / Z).
b) Pren com a indiferent l'estat 11 i obté, amb biestables D, les equacions de , i Z.
c) Aplica l'entrada 1, 0, 1, 0, 1, 1, 0, 1 i escriu l'estat i la sortida després de cada flanc. Quantes vegades es detecta 101?
Mostra la solució
a) Taula (estat, X → següent / Z):
S0, 0 → S0 / 0; S0, 1 → S1 / 0.
S1, 0 → S2 / 0; S1, 1 → S1 / 0 (el nou 1 pot ser l'inici d'una nova seqüència).
S2, 0 → S0 / 0; S2, 1 → S1 / 1 (seqüència 101 detectada; l'últim 1 pot ser l'inici d'una altra seqüència).
b) Codificació Q1Q0. L'estat següent és S1 (01) sempre que X = 1: . L'estat següent és S2 (10) només des de S1 (Q0 = 1) amb X = 0: . La sortida val 1 en S2 amb X = 1: .
Comprovació de totes les files amb aquestes equacions: S0,0: D1 = 0, D0 = 0 → 00; S0,1: 01; S1,0: D1 = 1, D0 = 0 → 10; S1,1: D1 = 0, D0 = 1 → 01; S2,0: 00; S2,1: 01 i Z = 1. Coincideixen amb la taula.
c) Flanc 1: X = 1 → Q1Q0 = 01, Z = 0
Flanc 2: X = 0 → Q1Q0 = 10, Z = 0
Flanc 3: X = 1 → Q1Q0 = 01, Z = 1
Flanc 4: X = 0 → Q1Q0 = 10, Z = 0
Flanc 5: X = 1 → Q1Q0 = 01, Z = 1
Flanc 6: X = 1 → Q1Q0 = 01, Z = 0
Flanc 7: X = 0 → Q1Q0 = 10, Z = 0
Flanc 8: X = 1 → Q1Q0 = 01, Z = 1
Es detecta 3 vegades (flancs 3, 5 i 8): els dos primers casos comparteixen l'1 central (10101).
Exercici 23
Es vol un comptador síncron de 2 bits que compti cap amunt quan l'entrada X val 1 (00 → 01 → 10 → 11 → 00) i cap avall quan X val 0 (00 → 11 → 10 → 01 → 00), amb biestables JK.
a) Escriu la taula de transicions (estat actual 0 i X → estat següent).
b) Obtén , , i en funció de , i X. (Pista: bascula quan = 1 si X = 1, i quan = 0 si X = 0.)
c) Partint de 00, escriu els estats que s'obtenen amb X = 1, 1, 1, 0, 0, 1 en els sis flancs següents.
Mostra la solució
a) Per a X = 1: 00 → 01, 01 → 10, 10 → 11, 11 → 00. Per a X = 0: 00 → 11, 01 → 00, 10 → 01, 11 → 10.
b) Q0 sempre bascula: . Q1 bascula en els casos següents: (X = 1 i Q0 = 1) o (X = 0 i Q0 = 0), és a dir, quan X i Q0 són iguals: . (En els altres casos, J1 = K1 = 0 i Q1 es manté.)
Comprovació: de 10 amb X = 0: Q0 = X = 0 → J1 = K1 = 1 (Q1 bascula a 0) i Q0 bascula a 1 → 01. Correcte.
c) Amb aquestes equacions: 01, 10, 11, 10, 01, 10. Hi ha tres ascensos (00 → 01 → 10 → 11), dos descensos (11 → 10 → 01) i un ascens final (01 → 10).
Exercici 24
Un registre de desplaçament amb realimentació lineal (LFSR) de 4 biestables D desplaça els bits cap a la dreta: , , , i la primera entrada és la suma mòdul 2 (XOR) de les dues últimes sortides: . L'estat inicial és Q0Q1Q2Q3 = 1000.
a) Escriu la seqüència d'estats fins que es repeteix. Quants estats diferents recorre?
b) Quants estats té en total un registre de 4 bits? Quin no apareix a la seqüència i què passaria si el registre hi entrés?
c) Escriu la seqüència de bits que surt per Q3 durant un període. Quants uns i quants zeros té?
d) Si el rellotge és d'1 kHz, quina és la durada del període de la seqüència? Per a què serveix un circuit així?
Mostra la solució
a) 1000 → 0100 → 0010 → 1001 → 1100 → 0110 → 1011 → 0101 → 1010 → 1101 → 1110 → 1111 → 0111 → 0011 → 0001 → 1000 (torna a l'inici). Recorre 15 estats diferents abans de repetir-se.
b) = 16 estats en total. No apareix 0000: si el registre hi entrés, la XOR de dues entrades 0 dona 0 i el registre quedaria bloquejat a 0000 per sempre.
c) Seqüència per en un període: 000100110101111. Té 8 uns i 7 zeros: una seqüència pseudoaleatòria de longitud màxima, − 1 = 15.
d) El període és de 15 flancs = 15 ms. Aquests circuits generen seqüències pseudoaleatòries de manera molt econòmica (només 4 biestables i una porta XOR): s'usen per a proves de comunicacions, codis de detecció d'errors (CRC), xifratge i generació de soroll.
Exercici 25
Un receptor de dades en sèrie fa servir un registre de desplaçament de 8 biestables D ( rep el bit d'entrada nou i cada bit passa de a en cada flanc de pujada del rellotge). Les dades arriben a 9600 bits per segon i el rellotge del registre s'activa un cop per bit. L'emissor envia el byte 10110010 (B2 en hexadecimal) amb el bit de menys pes primer.
a) Quina seqüència de bits arriba a l'entrada, en ordre?
b) Quin és el contingut del registre després de 8 flancs? Llegit com a 6…, quin nombre hexadecimal sembla? Com cal llegir les sortides per obtenir el byte correcte (B2)?
c) Quant de temps triga a rebre's el byte? Quant de temps hi ha per llegir-lo abans que un novè flanc en destrueixi el bit de més pes?
d) Si les dades arribessin amb el bit de més pes primer, com haurien d'estar connectades les sortides?
Mostra la solució
a) El bit de menys pes (b0) arriba primer: del byte 10110010 = b7…b0 s'obté 0, 1, 0, 0, 1, 1, 0, 1.
b) Cada bit nou entra a Q0 i empeny els anteriors, de manera que, després de 8 flancs, el primer bit rebut (b0) és a Q7 i l'últim (b7) és a Q0. Llegit com a Q7…Q0: 01001101, que és 4D en hexadecimal (el byte amb els bits en ordre invers). Llegit en l'ordre Q0…Q7, és a dir, amb Q0 com a bit de més pes: 10110010 = B2. Cal doncs connectar Q0 al bit de més pes del bus de sortida i Q7 al de menys pes.
c) tbyte = 8 / 9600 = 0,833 ms. Després del vuitè flanc, el novè flanc arriba al cap d'un període de bit: 1/9600 = 104 µs; en aquest interval s'ha de llegir (o copiar a un registre de sortida) el contingut, perquè si no el bit b0 sortiria per Q7.
d) Si arribés primer el bit de més pes, després de 8 flancs el bit de més pes seria a Q7, de manera que les sortides es llegirien directament com a Q7…Q0 sense inversió.
Exercici 26
En un circuit seqüencial síncron, la sortida d'un biestable passa per una lògica combinacional abans d'arribar a l'entrada D del següent. Les especificacions són: retard rellotge → sortida entre 4 i 12 ns; temps de preparació (setup) = 5 ns (la dada ha d'estar estable abans del flanc); temps de manteniment (hold) = 2 ns (la dada ha de continuar estable després del flanc). La lògica combinacional té un retard entre 3 i 18 ns.
a) Calcula el període mínim del rellotge i la freqüència màxima.
b) Comprova que es compleix el temps de manteniment.
c) Es substitueix la lògica per una de més ràpida, amb retard màxim de 8 ns i mínim d'1 ns. Quina és la nova freqüència màxima? Es compleix encara el temps de manteniment?
d) Quina freqüència màxima té un registre de desplaçament (sense lògica entre biestables)? Per què augmentar la freqüència per sobre del límit del circuit original pot provocar errors?
Mostra la solució
a) El camí més lent és tcq,màx + tlògica,màx + tsu = 12 + 18 + 5 = 35 ns. Tmín = 35 ns ⇒ fmàx = 1/35 ns = 28,6 MHz.
b) El camí més ràpid és tcq,mín + tlògica,mín = 4 + 3 = 7 ns, que ha de ser major que th = 2 ns: es compleix amb un marge de 5 ns. (El temps de manteniment no depèn de la freqüència: només depèn dels camins ràpids.)
c) Tmín = 12 + 8 + 5 = 25 ns ⇒ fmàx = 40 MHz. Hold: 4 + 1 = 5 ns > 2 ns: es compleix.
d) Sense lògica: Tmín = tcq + tsu = 12 + 5 = 17 ns ⇒ fmàx = 58,8 MHz. Si el rellotge va més de pressa que 1/Tmín, el flanc arriba abans que la dada s'hagi estabilitzat a l'entrada del biestable; aquest pot capturar un valor incorrecte o entrar en un estat inestable (metaestabilitat). Per això la freqüència màxima ve donada pel camí més lent.
Exercici 27
Un comptador binari de 4 bits (Q3Q2Q1Q0) té una entrada de càrrega paral·lela síncrona LD: quan LD = 1 en un flanc de rellotge, carrega el valor present a les entrades de dades (P3P2P1P0) en lloc de comptar. Si LD = 0, compta cap amunt (després de 1111 passa a 0000).
a) Es connecten P3P2P1P0 = 0110 i (LD val 1 només a l'estat 1111). Escriu la seqüència d'estats (en decimal) i digues el mòdul. Si el rellotge és de 10 kHz, quina freqüència té la sortida Q3 aproximadament, i quina fracció del període passa a 1?
b) Es vol un comptador de 0 a 11 (mòdul 12): P = 0000 i LD activat quan l'estat és 1011. Demostra que n'hi ha prou amb (sense Q2) mirant els estats per on passa el comptador.
c) Quina diferència té aquesta solució amb posar el comptador a zero amb una entrada de reset asíncron quan arriba a 1100? Quins avantatges té la càrrega síncrona?
Mostra la solució
a) Seqüència: 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 6, 7, … (després de 15 carrega 6). Té 10 estats: mòdul 10. La freqüència a l'entrada és 10 kHz i el cicle complet té 10 flancs: 1 kHz. val 1 en els estats 8 a 15, o sigui en 8 dels 10 estats (80 % del període).
b) Dins del cicle 0, 1, …, 11 els estats amb 1 = 111 són només aquells amb = 1 (8 a 11) i 0 = 11: l'únic és el 1011 (11 en decimal). Per tant, LD = 1 val 1 només en 1011 i no cal (1111 no és al cicle). Seqüència: 0, 1, …, 11, 0, 1, …: mòdul 12.
c) Amb un reset asíncron a 1100, el comptador arriba realment a 1100 durant un instant breu i després es reinicia: aquest estat intermedi no hauria d'existir, i pot generar pulsos paràsits a les sortides. Amb la càrrega síncrona, els estats són sempre els de la seqüència (11 passa directament a 0 en el flanc), no hi ha estats transitoris i es pot carregar qualsevol valor inicial, no només zero, per aconseguir comptadors de qualsevol interval.
Exercici 28
Un sumador en sèrie suma dos nombres binaris bit a bit, començant pel de menys pes, amb un sol sumador complet (FA) i un biestable D que emmagatzema el transport (C). En cada flanc: S = A ⊕ B ⊕ C (bit de suma) i el transport següent és , carregat al biestable. Al principi C = 0.
a) Es vol sumar A = 1011 (11) i B = 0110 (6). Escriu, per a cada cicle, els bits que entren (de menys pes a més pes; al cinquè cicle entren A = B = 0), el transport C, el bit S i el transport següent.
b) Quin nombre binari s'obté a S (el primer bit de sortida és el de menys pes)? Comprova que és 11 + 6.
c) Per què cal un cinquè cicle? Què hauries de fer si els nombres fossin A = B = 15?
d) Si el rellotge és d'1 MHz, quant triga aquesta suma? Compara amb un sumador paral·lel de 4 bits pel que fa a temps i a nombre de sumadors complets.
Mostra la solució
a) Bits de A (de menys pes a més pes): 1, 1, 0, 1; de B: 0, 1, 1, 0.
Cicle 1: A = 1, B = 0, C = 0 → S = 1, C+ = 0
Cicle 2: A = 1, B = 1, C = 0 → S = 0, C+ = 1
Cicle 3: A = 0, B = 1, C = 1 → S = 0, C+ = 1
Cicle 4: A = 1, B = 0, C = 1 → S = 0, C+ = 1
Cicle 5: A = 0, B = 0, C = 1 → S = 1, C+ = 0
b) Els bits de S, de menys pes a més pes, són 1, 0, 0, 0, 1, o sigui, 10001 = 17 = 11 + 6. Comprovat.
c) El cinquè cicle serveix per afegir el transport final que queda al biestable després del quart bit (aquí C = 1, que dona el bit de més pes del resultat). Amb A = B = 15 (1111), el resultat (30 = 11110) també necessita 5 bits, de manera que cal el mateix cinquè cicle; i, en general, per sumar dos nombres de n bits calen n + 1 cicles. A més, el biestable de transport s'ha de posar a zero abans de cada suma; si es comencés amb C = 1, el resultat tindria una unitat de més.
d) 5 cicles a 1 MHz = 5 µs. Un sumador paral·lel de 4 bits fa la suma en un sol cicle (després de la propagació del transport) però necessita 4 sumadors complets; el sumador en sèrie n'usa només 1 més un biestable, a costa d'un temps n + 1 vegades més llarg. És un exemple típic de compromís entre velocitat i maquinari.
Exercici 29
Es vol dissenyar el comptatge d'un rellotge digital de 24 hores a partir d'un oscil·lador de quars de 32 768 Hz.
a) Quants biestables en cadena calen per dividir la freqüència fins a 1 Hz? Quina freqüència hi ha a la sortida del desè?
b) Els segons (00–59), els minuts (00–59) i les hores (00–23) es compten amb comptadors en BCD: una xifra de les unitats (0–9, 4 biestables) i una de les desenes (de 0 a 5 per als segons i minuts, de 0 a 2 per a les hores). Quants biestables calen per a cada part i en total?
c) Quants n'haurien calgut si cada part es comptés en binari natural (6 bits per als segons, 6 per als minuts, 5 per a les hores)? Per què és preferible el BCD a pesar del cost?
d) El comptador de les desenes de segons passa de 5 (101) a 0 quan arriba a 6 (110). Quina condició lògica de , i detecta el 6 aprofitant que els estats 7 no es presenten?
e) Cada quan torna el rellotge a l'estat 00:00:00? Quants flancs d'1 Hz són?
Mostra la solució
a) 32 768 = 215, de manera que calen 15 biestables T (o divisors per 2) en cadena. A la sortida del desè: 32 768 / 210 = 32 Hz.
b) Segons: unitats (4) + desenes de 0 a 5 (3 biestables, perquè 5 = 101) = 7. Minuts: igual, 7. Hores: unitats (4) + desenes de 0 a 2 (2 biestables) = 6. Total dels comptadors: 7 + 7 + 6 = 20 biestables; amb el divisor de freqüència: 35 biestables.
c) En binari natural: 6 + 6 + 5 = 17 biestables, 3 menys. Tot i així, el BCD és preferible perquè cada xifra es pot convertir directament en un visualitzador de 7 segments amb un descodificador BCD; amb el binari natural caldria una conversió binari-decimal complexa per mostrar les hores, els minuts i els segons.
d) El 6 és 110. Els únics estats de la seqüència (0–5) amb Q2Q1 = 11 serien el 6 i el 7; com que el 7 no es dona mai, n'hi ha prou amb detectar : quan val 1, s'activa el reset (síncron o asíncron) del comptador de desenes.
e) Cada 24 h = 86 400 s = 86 400 flancs d'1 Hz.
Exercici 30
El motor d'un portal de garatge es controla amb una màquina de Moore de 4 estats codificats amb dos biestables D (0): 00 = TANCAT, 01 = OBRINT, 10 = OBERT, 11 = TANCANT. Les entrades són el polsador P (1 = premut) i els finals de cursa FCO (1 = portal totalment obert) i FCT (1 = portal totalment tancat). Les transicions són:
TANCAT: si P = 1 passa a OBRINT, si no, es queda. OBRINT: si FCO = 1 passa a OBERT, si no, es queda. OBERT: si P = 1 passa a TANCANT, si no, es queda. TANCANT: si FCT = 1 passa a TANCAT, si no, es queda (P s'ignora mentre es tanca).
Les sortides són MO (motor d'obrir) = 1 en OBRINT, i MT (motor de tancar) = 1 en TANCANT.
a) Escriu les expressions de MO i MT en funció de i .
b) Escriu les equacions de i a partir de la taula de transicions.
c) Partint de TANCAT, aplica les entrades (P, FCO, FCT) següents, una per flanc: (1, 0, 1), (0, 0, 0), (0, 0, 0), (0, 1, 0), (0, 0, 0), (1, 0, 0), (1, 0, 0), (0, 0, 1). Escriu l'estat després de cada flanc.
d) Quina limitació de seguretat té aquest disseny? Com es podria millorar?
Mostra la solució
a) OBRINT és 01 i TANCANT és 11: i .
b) D1 val 1 quan l'estat següent és 10 o 11, és a dir: des d'OBRINT (01) amb FCO = 1 (→ 10); des d'OBERT (10), tant si P = 0 (→ 10) com si P = 1 (→ 11); i des de TANCANT (11) amb FCT = 0 (→ 11):
.
D0 val 1 quan l'estat següent és 01 o 11: des de TANCAT (00) amb P = 1 (→ 01); des d'OBRINT (01) amb FCO = 0 (→ 01); des d'OBERT (10) amb P = 1 (→ 11); i des de TANCANT (11) amb FCT = 0 (→ 11):
.
(S'ha comprovat amb les 32 combinacions d'estat i entrades que aquestes equacions reprodueixen la taula de transicions.)
c) Flanc 1: P = 1, FCO = 0, FCT = 1 → 01 (OBRINT)
Flanc 2: P = 0, FCO = 0, FCT = 0 → 01 (OBRINT)
Flanc 3: P = 0, FCO = 0, FCT = 0 → 01 (OBRINT)
Flanc 4: P = 0, FCO = 1, FCT = 0 → 10 (OBERT)
Flanc 5: P = 0, FCO = 0, FCT = 0 → 10 (OBERT)
Flanc 6: P = 1, FCO = 0, FCT = 0 → 11 (TANCANT)
Flanc 7: P = 1, FCO = 0, FCT = 0 → 11 (TANCANT)
Flanc 8: P = 0, FCO = 0, FCT = 1 → 00 (TANCAT)
El portal s'obre (flancs 1–3), arriba a obert (4), espera (5), es tanca quan es prem P (6–7; la segona pulsació s'ignora) i queda tancat quan FCT = 1 (8).
d) Mentre es tanca, el sistema ignora el polsador i no té cap sensor d'obstacles: si algú es posa al mig, el portal no s'aturaria ni tornaria a obrir-se. S'hauria d'afegir una entrada de fotocèl·lula (OBS) que, si val 1 en l'estat TANCANT, enviï la màquina a OBRINT. També es podria afegir un temporitzador de seguretat perquè el motor s'aturi si no arriba cap final de cursa.
Preparat per a la universitat
Els exercicis més exigents: nivell PAU alt i primer curs de grau. Veure totes les matèries
Exercici 31
Es vol dissenyar un detector de la seqüència en una entrada en sèrie (un bit per flanc de pujada del rellotge). Cal permetre solapament: a , la seqüència apareix dues vegades.
a) Dissenya el diagrama d'estats d'una màquina de Mealy amb una sortida que valgui 1 quan l'últim bit de la seqüència arribi a l'entrada. Dona la taula d'estats (estat actual i → estat següent / ) i justifica què recorda cada estat.
b) Dissenya ara la màquina de Moore equivalent. Quants estats necessita? Per què en necessita un més que la de Mealy?
c) Aplica a les dues màquines (estat inicial: res detectat) la seqüència d'entrada i escriu, per a cada flanc, l'estat i la sortida. Comprova en quin flanc es veu el pols de a cada màquina.
d) Quants biestables calen per implementar cada màquina? Raona dos avantatges i dos inconvenients de Mealy davant de Moore en un sistema real. Què canviaria si no es permetés el solapament?
Pista 1
Pensa què ha de «recordar» la màquina en cada moment: quin és el prefix més llarg de que coincideix amb els últims bits rebuts.
Pista 2
Quan arriba un bit que no continua el prefix actual, no tornes necessàriament a l'estat inicial: busca el prefix més llarg que encara coincideixi amb el final del que has rebut.
Pista 3
A Moore la sortida només depèn de l'estat. Pregunta't en quin estat quedes després de rebre l'últim de i què passa a continuació.
Mostra la solució
a) Mealy. Els estats són el prefix de ja rebut: = res (o un prefix inútil), = «1», = «11», = «110». La taula és:
| Estat | ||
|---|---|---|
| S0 | S0 / 0 | S1 / 0 |
| S1 | S0 / 0 | S2 / 0 |
| S2 | S3 / 0 | S2 / 0 |
| S3 | S0 / 0 | S1 / 1 |
Justificació: des de («1») un dona «10», que no és prefix, i es torna a . Des de («11»), un altre dona «111», el final del qual («11») segueix sent prefix: es queda a . Des de («110»), un completa la seqüència () i el seu últim bit, «1», és ja un prefix: es passa a (així s'admet el solapament); un dona «1100», que no té cap prefix com a final: .
b) Moore. Cal un estat més, = «1101 acabat de detectar», amb :
| Estat (Z) | ||
|---|---|---|
| E0 (0) | E0 | E1 |
| E1 (0) | E0 | E2 |
| E2 (0) | E3 | E2 |
| E3 (0) | E0 | E4 |
| E4 (1) | E0 | E2 |
Necessita 5 estats perquè la sortida és una propietat de l'estat: la informació «acabo de detectar» no es pot guardar a la transició de a (com fa Mealy), de manera que s'ha de reflectir en un estat propi. Quant a transicions, es comporta com (el seu últim bit és un i no hi ha cap altre prefix): amb i amb .
c) Entrada . és l'estat de Mealy abans del flanc (la sortida de Mealy es veu durant el cicle , amb a l'entrada); és l'estat de Moore després del flanc (la seva sortida es veu durant el cicle ).
| Flanc | Estat Mealy abans | Mealy | Estat Moore després | Moore (després) | |
|---|---|---|---|---|---|
| 1 | 0 | S0 | 0 | E0 | 0 |
| 2 | 1 | S0 | 0 | E1 | 0 |
| 3 | 1 | S1 | 0 | E2 | 0 |
| 4 | 0 | S2 | 0 | E3 | 0 |
| 5 | 1 | S3 | 1 | E4 | 1 |
| 6 | 1 | S1 | 0 | E2 | 0 |
| 7 | 0 | S2 | 0 | E3 | 0 |
| 8 | 1 | S3 | 1 | E4 | 1 |
| 9 | 0 | S1 | 0 | E0 | 0 |
| 10 | 1 | S0 | 0 | E1 | 0 |
| 11 | 1 | S1 | 0 | E2 | 0 |
| 12 | 0 | S2 | 0 | E3 | 0 |
| 13 | 1 | S3 | 1 | E4 | 1 |
Es detecta la seqüència en els flancs 5, 8, 13. Mealy dona el pols en el mateix cicle en què arriba l'últim bit; Moore, un cicle més tard (després del flanc).
d) Mealy: 4 estats → biestables. Moore: 5 estats → biestables. Avantatges de Mealy: menys estats i resposta immediata (el mateix cicle). Inconvenients: la sortida depèn de l'entrada, i si l'entrada té soroll o és asíncrona, la sortida pot tenir pics (glitches); a més, el camí combinacional entre l'entrada i la sortida limita la velocitat màxima. Avantatges de Moore: sortida estable durant tot el cicle (només canvia amb el rellotge) i fàcil de sincronitzar; inconvenients: més estats i una sortida endarrerida un cicle. Sense solapament, un cop detectada la seqüència cal «començar de nou»: a Mealy amb , i a Moore es comporta com . A la seqüència de l'apartat c) hi ha 3 deteccions amb solapament i 2 sense; a n'hi ha 2 amb solapament i 1 sense.
Errors típics
- Tornar a des de quan arriba un en lloc de passar a : es perd el solapament.
- Posar (o ) en lloc de quedar-se a : «111» acaba en «11», que segueix sent prefix.
- Llegir la sortida de Moore en el mateix cicle que arriba l'últim bit: apareix un cicle més tard.
- Comptar els biestables com el nombre d'estats i no com .
Conceptes treballats: diagrama d'estats, màquines de Mealy i de Moore, detecció de seqüències amb solapament, codificació d'estats, comparació de models, temporització de la sortida.
Exercici 32
Una màquina de Moore té sis estats –, una entrada i una sortida que depèn només de l'estat. La taula és:
| Estat | |||
|---|---|---|---|
| A | 0 | B | C |
| B | 0 | A | D |
| C | 1 | E | A |
| D | 0 | A | B |
| E | 1 | F | A |
| F | 1 | C | A |
a) Quants biestables calen per implementar-la tal com està? Agrupa els estats per la seva sortida i refina les particions fins que no canviïn, per trobar els estats equivalents.
b) Dibuixa la màquina reduïda i indica quants biestables necessita.
c) Comprova la teva conclusió amb un argument directe: comprova que, per a qualsevol seqüència d'entrada, els estats que has declarat equivalents donen les mateixes sortides, i troba la seqüència d'entrada més curta que permet distingir de observant la sortida.
d) Aplica a la màquina original (des de ) i a la reduïda la seqüència i compara les sortides. Raona per què és important reduir les màquines abans de dissenyar-les, i què passaria si per error féssim equivalents dos estats que no ho són.
Pista 1
Dos estats són equivalents si no es poden distingir per cap seqüència d'entrada: han de tenir la mateixa sortida i, per a cada valor de , anar a estats equivalents.
Pista 2
Primera partició: els estats amb a un grup i els de a l'altre. Després, mira a quin grup va cada estat amb i amb i separa els que no coincideixen.
Pista 3
Si dues files tenen la mateixa «signatura» (grup propi, grup de destí amb , grup de destí amb ) es queden junts; torna a repetir fins que cap grup es parteixi.
Mostra la solució
a) 6 estats → biestables. Particions. Partició inicial per la sortida: () i (). Refinament 1: els grups dels estats següents (amb i amb ) són: , , ; , , . Per tant, es separa de i : queden , , . Refinament 2: amb les tres classes, i (iguals); , i (iguals): la partició ja no canvia. Estats equivalents: i .
b) Reduïda (, , ):
| Estat | |||
|---|---|---|---|
| P | 0 | Q | R |
| Q | 0 | P | Q |
| R | 1 | R | P |
Té 3 estats i necessita biestables: s'estalvia un biestable i la lògica combinacional és més senzilla.
c) Argument per inducció: i tenen la mateixa sortida () i, amb cada valor de , van a estats de la mateixa classe (amb , tots dos a ; amb , i ). Igualment, , i tenen , amb van a i amb van a . Per tant, després de cada bit d'entrada, dos estats de la mateixa classe continuen en una mateixa classe i donen la mateixa sortida: no es poden distingir amb cap seqüència, de cap longitud. Seqüència distingidora mínima per a i : 1 (longitud 1): des de amb es va a () i des de a (). i ja es distingeixen sense cap entrada, perquè tenen sortides diferents.
d) Sortides (després de cada flanc) des de / amb : original 11011100; reduïda 11011100: idèntiques. Reduir abans de dissenyar estalvia biestables i portes, redueix el consum i el risc d'error i facilita la verificació. Si féssim equivalents dos estats que no ho són (per exemple i ), la màquina resultant donaria sortides incorrectes per a la seqüència que els distingeix (1).
Errors típics
- Considerar equivalents dos estats només perquè tenen la mateixa sortida, sense mirar els estats següents.
- Parar el refinament després d'una sola passada: cal repetir fins que cap grup es parteixi.
- Mirar només els estats següents amb i oblidar .
- Pensar que l'estat inicial es pot perdre en la fusió: la màquina reduïda ha de contenir la classe de l'estat inicial.
Conceptes treballats: minimització d'estats, equivalència d'estats, particions successives, màquina de Moore, nombre de biestables, verificació per seqüències.
Exercici 33
Un circuit seqüencial té una entrada , un biestable D amb sortida i una sortida . Les equacions són (suma lògica, OR) i (XOR). Abans de cada paraula, es posa a 0 amb un reinici asíncron. Per l'entrada arriben els bits d'un nombre binari de 8 bits començant pel de menys pes (un bit per flanc de pujada del rellotge), i s'observa durant cada cicle.
a) Escriu la taula d'estats (estat actual , → estat següent / ) i dibuixa el diagrama de dos estats. Descriu amb paraules què representa cada estat.
b) Aplica al circuit els nombres (), () i (), escrits en binari natural, i expressa la seqüència de sortida com a nombre binari de 8 bits (el primer bit de és el de menys pes). Els nombres s'escriuen amb el bit de menys pes a la dreta i entren al circuit de dreta a esquerra. Quina operació aritmètica fa el circuit? Demostra que és correcta.
c) Què passaria si es processés una segona paraula (, ) just després de la primera () sense reiniciar ? Calcula la sortida i identifica l'operació que s'obté ara.
d) Compara aquest circuit amb un de combinacional de 8 bits que fes la mateixa operació (invertir tots els bits i sumar 1): quin cost té cadascun en maquinari i en temps?
Pista 1
Fes una taula amb les quatre combinacions de i : calcula per a cada una i . Observa què passa un cop val 1.
Pista 2
Compara cada sortida amb el nombre d'entrada: quina relació aritmètica hi ha entre tots dos (suma, resta, canvi de signe...)?
Pista 3
A c), no comença a 0 a la segona paraula. Quina operació fa el circuit quan des del primer bit?
Mostra la solució
a)
| 0 | 0 | 0 | 0 |
| 0 | 1 | 1 | 1 |
| 1 | 0 | 1 | 1 |
| 1 | 1 | 0 | 1 |
Dos estats: = «encara no s'ha rebut cap 1» (no s'ha trobat el primer 1); = «ja s'ha trobat un 1». Diagrama (entrada/sortida): , , , . Una vegada a , el circuit no en surt (fins al reinici).
b) Mentre , (es copien els bits, i el primer 1 també, perquè ); un cop , (s'inverteixen). Resultats (escrits amb el bit de menys pes a la dreta): 108 = 01101100 → 10010100 = 148 = 256 − 108; 1 = 00000001 → 11111111 = 255 = 256 − 1; 128 = 10000000 → 10000000 (cas límit: és −128 en complement a 2 de 8 bits i el seu oposat, +128, no es pot representar; el resultat torna a ser el mateix: desbordament). Per al zero: 00000000. El circuit calcula el complement a 2, és a dir, el nombre oposat: . Demostració: , i la suma de 1 propaga un transport des dels bits de menys pes: els zeros finals de es converteixen en uns i passen a zero amb el transport, fins al primer 1, que passa a 0 i atura el transport. Per tant, els bits fins al primer 1 (inclòs) es mantenen i la resta s'inverteix, exactament el que fa el circuit.
c) Sense reiniciar, la primera paraula (108) deixa , de manera que la segona (20) s'inicia amb i s'inverteix tota: la sortida és 11101011 = 235, el complement a 1 de 20 (), no el seu complement a 2 (que seria 11101100). El reinici és, per tant, imprescindible entre paraules.
d) El circuit seqüencial usa un biestable i dues portes (OR i XOR), però necessita 8 cicles de rellotge per paraula (una sola entrada en sèrie). La versió combinacional necessita 8 inversors i un incrementador de 8 bits (una cadena de 8 semisumadors, és a dir, uns 8 XOR i 8 AND), però dona el resultat en un sol cicle, amb un retard igual al del transport. Amb moltes paraules o amb amplades grans (per exemple, 64 bits), el seqüencial manté el cost constant i només creix en temps ( cicles); el combinacional creix en maquinari. Es tria segons si prima l'àrea o la velocitat.
Errors típics
- Posar quan o invertir ja el primer bit : el primer 1 es copia, no s'inverteix.
- No reiniciar el biestable entre paraules: s'obté el complement a 1 en lloc del complement a 2.
- Introduir els bits començant pel de més pes: el circuit només funciona amb el bit de menys pes primer.
- Pensar que el circuit pot canviar el signe de −128 a +128: en 8 bits +128 no és representable.
Conceptes treballats: màquines de Mealy d'un biestable, aritmètica de complement a 2, càlcul en sèrie, funcions XOR/OR, reinici asíncron, compromís àrea–temps.
Exercici 34
Un seqüenciador de quatre llums d'una màquina industrial fa servir un comptador en anell de quatre biestables D (). Cada flanc de rellotge desplaça els bits cap a la dreta: , , . Només ha de lluir una llum cada cop: l'estat correcte és una sola unitat que circula ().
a) Primera versió: (anell lliure). Dibuixa tots els cicles en què es reparteixen els 16 estats possibles (indica'n la longitud) i digues quants són «correctes» i quants no. Què passa si en connectar l'alimentació els biestables arrenquen a ?
b) Per què això és perillós en un sistema real (per exemple, dues llums enceses alhora)? Indica una manera de solucionar-ho sense afegir portes, i els seus inconvenients.
c) Segona versió, autocorrectora: (NOR de les tres primeres sortides). Comprova que la seqüència correcta no es modifica i que des de i des de s'arriba a l'anell correcte. Calcula quants cicles de rellotge triga com a màxim a recuperar-se des de qualsevol estat.
d) Raona si l'estat o poden aparèixer en funcionament normal per una pertorbació elèctrica, i com es corregirien. Com canviaria la solució per a un anell de 8 llums? Quants biestables desperdicia un anell comparat amb un comptador binari que dona 4 estats?
Pista 1
Segueix cada estat pas a pas amb : l'estat següent és l'estat actual girat un lloc. Agrupa els estats que són rotacions un de l'altre.
Pista 2
Per a la versió corregida, calcula per als estats que tenen els tres primers bits a 0, i per a la resta. Quins estats donen ?
Pista 3
Per al temps màxim de recuperació, busca l'estat que més triga a arribar a l'anell correcte (en general, els que tenen moltes unitats seguides).
Mostra la solució
a) Amb , el circuit només gira els bits i el nombre d'uns no canvia. Els 16 estats formen 6 cicles: (1), (1), (2), i tres cicles de longitud 4: (el correcte), i . Només un cicle és correcte. Si arrenca a , cicla indefinidament i mai no arriba al correcte: tindrem dues llums enceses.
b) Perquè l'error és permanent: un soroll o un arrencament en un estat incorrecte deixa el sistema bloquejat en un cicle invàlid. Una solució sense portes seria posar un preset/reset asíncron al connectar l'alimentació (força ); però només corregeix l'arrencament, no pertorbacions posteriors, i necessita un circuit de reinici fiable.
c) Amb : quan hi ha una unitat en , o , i el bit es limita a desplaçar-se; només quan els tres primers són 0, . Seqüència correcta: 1000 → 0100 → 0010 → 0001 → 1000 (no canvia: a , i torna a ). Des de : . Des de : 1111 → 0111 → 0011 → 0001. Altres exemples: 0101 → 0010; 1100 → 0110 → 0011 → 0001; 0111 → 0011 → 0001. L'anell té ara un sol cicle (de longitud 4) i els altres 12 estats són transitoris: el pitjor cas (estats 1100, 1101, 1110, 1111) triga 3 cicles de rellotge.
d) Sí: una pertorbació (un bit que commuta per un pic de tensió, radiació, etc.) pot dur el sistema a qualsevol dels 16 estats, també a o . Amb l'anell lliure quedaria bloquejat; amb la versió autocorrectora, torna a la seqüència correcta en com a màxim 3 cicles. Per a 8 llums: 8 biestables (256 estats, 8 de correctes); la mateixa idea, (NOR de 7 entrades), els corregeix en com a màxim 7 cicles. Un anell de 4 llums gasta 4 biestables per a 4 estats; un comptador binari de 2 bits en té prou amb 2 (més un descodificador de 2 a 4). L'anell no necessita descodificador i les seves sortides no tenen glitches, però gasta més biestables.
Errors típics
- Creure que un anell lliure sempre arrenca bé: segons l'estat inicial pot quedar bloquejat en un cicle invàlid.
- Fer el NOR dels quatre bits en lloc dels tres primers: l'estat passa a formar part de la seqüència i l'anell tindria 5 estats.
- Comptar només un estat «incorrecte»: n'hi ha 12 (16 − 4), repartits en cicles invàlids o en transitoris.
- Oblidar que l'autocorrecció no impedeix que durant uns cicles hi hagi encesa de més d'una llum.
Conceptes treballats: comptadors en anell, cicles d'estats, estats invàlids i autocorrecció, robustesa davant de pertorbacions, realimentació, comparació amb comptador binari.
Exercici 35
Un polsador mecànic es llegeix amb un microcontrolador. El senyal del polsador és asíncron respecte del rellotge (1 kHz) i té rebots de fins a 3 ms en prémer i en deixar de prémer. El circuit d'entrada té tres biestables D amb el mateix rellotge: captura l'entrada , captura i captura . El senyal de sortida és un pols .
a) Explica per què calen dos biestables en cadena (, ) abans d'usar el senyal i què hi ha de metaestabilitat. Què fa el parell , amb ?
b) Els valors de mostrejats en 26 flancs consecutius són: 00101101111111010000000000. Escriu , , i després de cada flanc (inicialment tots a 0). Quants polsos es produeixen en aquesta única pulsació (en prémer i en deixar de prémer)? Per què?
c) Es vol netejar el senyal amb un filtre digital: es manté una sortida estabilitzada (inicialment 0) i un comptador que compta els flancs consecutius en què difereix de ; quan arriba a , copia i el comptador es posa a 0; si torna a coincidir amb , el comptador es reinicia. Aplica-ho a la mateixa seqüència i digues quants polsos de flanc de pujada dona . Per què s'ha escollit ?
d) Quin retard té la resposta a una pulsació? Què passaria si el polsador rebotés durant 8 ms? Quants biestables (a més del comptador) necessita el filtre de c)?
Pista 1
Un biestable pot entrar en metaestabilitat si l'entrada canvia just al voltant del flanc. Pensa què passa si el segon biestable captura el senyal un cicle més tard.
Pista 2
El pols val 1 mentre i : el segon biestable ja ha vist el canvi, però el tercer encara no. Busca-ho flanc a flanc a la taula.
Pista 3
Per al filtre, el comptador només arriba a 4 si en 4 flancs seguits és diferent de . Mira quins trams de tenen quatre valors seguits iguals.
Mostra la solució
a) Si l'entrada canvia just al voltant del flanc, el primer biestable pot quedar en un estat intermedi (metaestable) durant un temps aleatori, i la sortida pot arribar a la lògica següent en un nivell indeterminat. El segon biestable dona un cicle sencer perquè es resolgui abans de ser capturat: així la probabilitat d'error baixa de manera exponencial amb el temps disponible. Amb i es forma un detector de flanc de pujada: durant un cicle quan acaba de passar a 1 i encara és 0.
b) Entrada 00101101111111010000000000:
| Flanc | (c) | Pols de | |||||
|---|---|---|---|---|---|---|---|
| 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| 2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| 3 | 1 | 1 | 0 | 0 | 0 | 0 | 0 |
| 4 | 0 | 0 | 1 | 0 | 1 | 0 | 0 |
| 5 | 1 | 1 | 0 | 1 | 0 | 0 | 0 |
| 6 | 1 | 1 | 1 | 0 | 1 | 0 | 0 |
| 7 | 0 | 0 | 1 | 1 | 0 | 0 | 0 |
| 8 | 1 | 1 | 0 | 1 | 0 | 0 | 0 |
| 9 | 1 | 1 | 1 | 0 | 1 | 0 | 0 |
| 10 | 1 | 1 | 1 | 1 | 0 | 0 | 0 |
| 11 | 1 | 1 | 1 | 1 | 0 | 1 | 1 |
| 12 | 1 | 1 | 1 | 1 | 0 | 1 | 0 |
| 13 | 1 | 1 | 1 | 1 | 0 | 1 | 0 |
| 14 | 1 | 1 | 1 | 1 | 0 | 1 | 0 |
| 15 | 0 | 0 | 1 | 1 | 0 | 1 | 0 |
| 16 | 1 | 1 | 0 | 1 | 0 | 1 | 0 |
| 17 | 0 | 0 | 1 | 0 | 1 | 1 | 0 |
| 18 | 0 | 0 | 0 | 1 | 0 | 1 | 0 |
| 19 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |
| 20 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| 21 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| 22 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| 23 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| 24 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| 25 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| 26 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
El pols es produeix 4 vegades. Hi ha tres polsos en prémer (flancs 4, 6 i 9) i un en deixar de prémer (flanc 17), tot i que només hi ha hagut una pulsació: el sincronitzador copia fidelment els rebots, i cada pujada de la seqüència mostrejada (0→1) genera un pols. Mostrejar a 1 kHz no n'elimina cap, perquè el rebot dura 3 períodes.
c) El filtre només dona quan han passat 4 flancs seguits amb (flancs 8–11); passa a al flanc 11 i no es modifica pels rebots curts (fins a 3 flancs de duració). Es posa a 0 al flanc 20, després de 4 zeros seguits al final. Resultat: un sol pols a (columna final). S'ha escollit perquè el rebot de 3 ms ocupa com a màxim 3 mostres: amb el filtre exigeix més temps que la durada del rebot.
d) Retard: dos flancs del sincronitzador (2 ms) més 4 flancs del filtre = uns 6 ms (més fins a 1 ms perquè la pulsació no és síncrona amb el rellotge), que un usuari no nota. Si el rebot durés 8 ms, el filtre amb podria donar-se per acabat abans d'hora i generar polsos falsos: caldria (9 ms). Pel que fa a biestables: el comptador ha de comptar de 0 a 4 (5 valors → 3 biestables) i cal un biestable més per a : 4 en total.
Errors típics
- Connectar el polsador directament a la lògica síncrona sense sincronitzador: risc de metaestabilitat.
- Pensar que el sincronitzador elimina el rebot: només alinea el senyal amb el rellotge.
- Triar més petit que la durada del rebot expressada en períodes de mostreig.
- Generar el pols amb i en lloc de i : el senyal encara pot ser metaestable.
Conceptes treballats: metaestabilitat i sincronització, detector de flanc, rebots, filtre digital amb comptador, freqüència de mostreig, compromís entre robustesa i latència.
Exercici 36
Un codificador d'un eix gira i dona la posició com a nombre de 3 bits. Es vol un comptador síncron de 3 bits () amb biestables D que segueixi la seqüència del codi Gray:
a) Escriu la taula de transicions (estat actual → estat següent) i dedueix les equacions de , i simplificades. Hi ha estats no utilitzats?
b) Comprova les equacions amb els vuit estats. Quantes portes de dues entrades calen aproximadament?
c) Compta el nombre total de bits que canvien en un cicle complet de 8 estats, tant en el comptador Gray com en un comptador binari natural. Si el consum dinàmic és proporcional al nombre de commutacions, quin estalvi relatiu dona el Gray?
d) Un sensor llegeix l'estat del comptador de manera asíncrona (en un instant qualsevol). Explica quin error pot cometre durant el pas de a en binari, quin en el pas equivalent en Gray, i per què es tria el Gray per a codificadors de posició.
Pista 1
Per a cada estat actual, escriu el bit corresponent de l'estat següent a la columna de , i construeix un mapa de Karnaugh de 3 variables per a cada biestable.
Pista 2
Per a : mira quins estats donen i fixa't que depèn només de i .
Pista 3
En c), compta quants bits canvien a cada transició (la «distància de Hamming» entre dos estats consecutius), i suma les vuit transicions.
Mostra la solució
a) Taula (la seqüència té 8 estats: no hi ha estats no utilitzats, tots els codis binaris de 3 bits apareixen):
| següent | bits que canvien | |
|---|---|---|
| 000 | 001 | 1 |
| 001 | 011 | 1 |
| 011 | 010 | 1 |
| 010 | 110 | 1 |
| 110 | 111 | 1 |
| 111 | 101 | 1 |
| 101 | 100 | 1 |
| 100 | 000 | 1 |
Mapes de Karnaugh: , i (és a dir, val 1 quan i són iguals).
b) Comprovació: de → , , → ✓; de → , , → ✓; de → , , → ✓. (S'han comprovat els vuit estats per ordinador.) Cost aproximat: : 2 AND + 1 OR + 1 inversor; : igual; : 1 XNOR. Unes 8–9 portes de dues entrades i uns 3 inversors en total.
c) En Gray cada transició canvia exactament 1 bit: 8 commutacions per cicle. En binari natural: 1 + 2 + 1 + 3 + 1 + 2 + 1 + 3 = 14 commutacions. Si el consum dinàmic és proporcional a les commutacions, el Gray fa servir 8/14 = 0,57 del consum, és a dir, un estalvi del 43 % (pel que fa a les sortides del comptador; la lògica de realimentació també commuta).
d) En binari, de a canvien els tres bits; si els biestables o els cables no són perfectament simultanis, durant un instant el sensor pot veure combinacions intermèdies com , o , que són posicions molt diferents (error de fins a mig recorregut). En Gray, de a (per exemple) només canvia un bit: en el pitjor cas el sensor llegeix l'estat anterior o el posterior, és a dir, un error d'un sol pas. Per això els codificadors de posició absoluta fan servir el codi Gray.
Errors típics
- Dissenyar un comptador binari i convertir-lo a Gray a la sortida: dona la mateixa seqüència, però els biestables continuen commutant com en binari i no s'estalvia consum.
- Obtenir amb una funció de : en aquest codi depèn de i .
- Considerar que el Gray elimina del tot l'error: l'error es redueix a un pas, no desapareix.
- Comptar en binari les commutacions del pas 111 → 000 com a una sola: en realitat canvien tres bits.
Conceptes treballats: comptadors síncrons, codi Gray, taula de transicions, simplificació amb mapes de Karnaugh, consum dinàmic per commutacions, errors de lectura asíncrona.
Exercici 37
Una màquina expenedora d'aigua val 30 cèntims. Accepta monedes de 10 cèntims (entrada ) i de 20 cèntims (entrada ); el selector mecànic de monedes assegura que a cada cicle de rellotge arriba, com a màxim, una moneda ( i mai valen 1 alhora). Quan l'import arriba a 30 cèntims o més, la màquina lliura el producte (sortida ) i, si ha cobrat 40 cèntims, torna 10 cèntims (sortida ). Després torna a l'estat inicial. Les sortides han de ser actives en el mateix cicle en què entra la moneda que completa l'import.
a) Dibuixa el diagrama d'estats de Mealy i justifica per què els estats són «import acumulat» (0, 10 i 20 cèntims). Escriu la taula d'estats.
b) Codifica els estats , , (), aprofita les situacions impossibles com a condicions indiferents i obtén les equacions mínimes de , , i .
c) Comprova la màquina amb la seqüència de monedes 10, 20, cap, 20, 20, 10, 10, 10, 20, 10 i escriu a cada cicle l'estat, i . Comprova que el total cobrat quadra amb els productes lliurats, les devolucions i l'import pendent.
d) Què fan les teves equacions si, per una avaria, arriba , o si el circuit arrenca a l'estat no utilitzat ? Es pot defensar l'ús de les condicions indiferents? Quina alternativa de disseny seria més robusta?
Pista 1
Només cal recordar l'import acumulat, no l'ordre amb què han entrat les monedes: i donen el mateix.
Pista 2
Per a les equacions, escriu la taula de veritat amb les variables . Les files amb i les amb són indiferents. Mapes de Karnaugh de 4 variables.
Pista 3
Per comprovar l'apartat c), anota el diner acumulat: cada producte representa 30 cèntims, i cada devolució, 10.
Mostra la solució
a) Estats: (0 ct), (10 ct), (20 ct); els imports de 30 o 40 ct no necessiten estat perquè en aquest moment s'emet (i ) i es torna a . Taula (entrada → estat següent / ):
| Estat | (10 ct) | (20 ct) | |
|---|---|---|---|
| S0 | S0 / 00 | S1 / 00 | S2 / 00 |
| S1 | S1 / 00 | S2 / 00 | S0 / 10 |
| S2 | S2 / 00 | S0 / 10 | S0 / 11 |
Observa que (va a ), (producte), (producte) i (producte i devolució).
b) Mapes de Karnaugh amb indiferents ( i ):
(Comprovades per ordinador per a les 3 × 3 = 9 situacions vàlides.)
c)
| Moneda | Estat abans | Estat després | ||
|---|---|---|---|---|
| 10c | S0 | S1 | 0 | 0 |
| 20c | S1 | S0 | 1 | 0 |
| — | S0 | S0 | 0 | 0 |
| 20c | S0 | S2 | 0 | 0 |
| 20c | S2 | S0 | 1 | 1 |
| 10c | S0 | S1 | 0 | 0 |
| 10c | S1 | S2 | 0 | 0 |
| 10c | S2 | S0 | 1 | 0 |
| 20c | S0 | S2 | 0 | 0 |
| 10c | S2 | S0 | 1 | 0 |
Total cobrat: 130 ct; productes: 4 (120 ct), devolucions: 1 (10 ct) i import pendent: 0 ct → 130 = 130 ✓.
d) Amb les equacions donen, per exemple: des de : , , ; des de : , , ; des de : , , . Són comportaments no especificats: des de amb la màquina va a l'estat no utilitzat , i des de o lliura producte (i fins i tot devolució) amb un import que potser no s'ha pagat. Des de l'estat : amb es queda a (, , ), és a dir, queda bloquejada mentre no arribi cap moneda; amb : , , ; amb : , , . En aquests dos casos lliura producte sense cobrar-lo. Les indiferents només són defensables si les situacions són físicament impossibles (així s'estalvien portes), però aquest disseny no és autocorrector: cal un reinici en connectar l'alimentació, o bé especificar totes les transicions de cap a amb (unes portes més). Una alternativa més robusta és la codificació one-hot (3 biestables, un per estat) amb totes les combinacions no vàlides dirigides a sense lliurar res.
Errors típics
- Fer un estat per a cada seqüència de monedes (10+20 i 20+10 com a estats diferents) en lloc de recordar només l'import.
- Oblidar la devolució quan s'arriba a 40 ct, o activar-la també a 30 ct.
- Oblidar que les sortides de Mealy depenen de l'entrada : val 1 només amb i import 20.
- Utilitzar els indiferents sense revisar què fa la màquina en aquestes situacions.
Conceptes treballats: màquina de Mealy, estats com a memòria de l'import acumulat, assignació d'estats, simplificació amb indiferents, verificació amb seqüències, robustesa del disseny.
Exercici 38
El motor d'un ventilador de 12 V es regula amb un senyal PWM generat per un comptador binari de bits que compta cíclicament de 0 a amb un rellotge MHz. La sortida és mentre el valor del comptador és menor que un valor guardat en un registre (comparador ).
a) Per a : calcula la freqüència del PWM, la resolució del cicle de treball i el valor mitjà de la tensió al motor per a (amb la sortida commutant entre 0 i 12 V). Quants flancs de rellotge duu la part alta del senyal?
b) El PWM s'ha de situar per sobre dels 20 kHz perquè el motor no xiuli (l'oïda humana arriba a uns 20 kHz). Calcula la freqüència per a i i digues quin és el nombre de bits més gran que es pot fer servir i quina resolució de duty en dona. Com es podria augmentar la resolució sense baixar la freqüència?
c) Un servomotor de model necessita un pols cada 20 ms de durada entre 1 ms i 2 ms (que correspon a 0° i 180°). Amb el mateix rellotge de 16 MHz i un prescaler que el divideix per 8, calcula el nombre de bits que necessita el comptador per comptar 20 ms i el nombre de passos entre 1 ms i 2 ms. Quina és la resolució angular?
d) Si el registre es modifica a mig període, el PWM pot produir un pols anormal. Simula (amb ) un canvi de a quan el comptador val 100, i un canvi de a en el mateix instant. Quin és el temps en alt durant aquest període en cada cas, i quants polsos es produeixen? Proposa una solució de maquinari.
Pista 1
El comptador recorre valors abans de repetir-se: el període és .
Pista 2
Per a la freqüència mínima de 20 kHz, calcula el valor màxim de que compleix kHz. Si la freqüència mínima és fixa, pensa què pots canviar del rellotge perquè pugui créixer.
Pista 3
En d), dibuixa l'ona: la sortida és 1 mentre el comptador és menor que el valor vigent de en aquest instant. Mira què passa just en el moment del canvi.
Mostra la solució
a) Període = 256/16 MHz = 16 µs → f = 62,5 kHz. Resolució: 1/256 = 0,39 % per pas. Per a : cicle de treball = 96/256 = 37,5 %; tensió mitjana = 12 V · 0,375 = 4,5 V. La part alta dura 96 flancs de rellotge (96 · 62,5 ns = 6,0 µs).
b) : f = 16 MHz/512 = 31,25 kHz (≥ 20 kHz: vàlid); : f = 16 MHz/1024 = 15,62 kHz (< 20 kHz: audible). El màxim és , amb resolució 1/512 = 0,195 %. Per augmentar la resolució: un rellotge més ràpid (), o fer modulació amb dithering (alternar entre dos valors de en períodes successius, de manera que la mitjana tingui més resolució, a costa d'una lleugera ondulació a baixa freqüència).
c) Rellotge efectiu = 16 MHz/8 = 2 MHz → tic de 0,5 µs. 20 ms = 40000 tics → calen = 16 bits (). Entre 1 ms i 2 ms hi ha 2000 passos de 0,5 µs → resolució angular = 180°/2000 = 0,09° (més que suficient: el servo mecànic no és tan precís).
d) Cas quan CNT = 100: abans del canvi la sortida és 1 per a CNT = 0…49 (50 tics) i 0 de 50 a 99; en el canvi () la sortida torna a 1 i es manté fins a 199: dos polsos en un període, amb un temps en alt de 50 + 100 = 150 tics (58,6 %) en lloc de 50 o 200. Cas : fins a CNT = 99 la sortida és 1 (100 tics); en el canvi (CNT = 100, ) passa a 0: un sol pols, d'una durada de 100 tics (39,1 %), valor que no correspon ni al vell ni al nou . Solució: doble buffer (registre d'«ombra»): el valor nou es guarda en un registre intermedi i només es copia al registre del comparador quan el comptador torna a 0 (o s'activa en el final del període).
Errors típics
- Dividir per en lloc de : el comptador té valors diferents.
- Pensar que més bits sempre és millor: a un rellotge fix, més bits redueix la freqüència del PWM.
- Oblidar el prescaler en l'apartat dels servos i calcular el nombre de passos amb el rellotge de 16 MHz.
- Canviar el valor de comparació en qualsevol instant sense doble buffer.
Conceptes treballats: comptadors binaris, freqüència i resolució d'un PWM, comparador, prescaler, servomotors, valor mitjà d'una tensió PWM, sincronització de canvis de registre (doble buffer).
Exercici 39
Un sistema de 12 MHz necessita un senyal de 4 MHz amb un cicle de treball del 50 % (és a dir, el senyal ha de ser alt la meitat del temps), obtingut amb una divisió per 3 del rellotge. Es disposa de biestables D que canvien en el flanc de pujada i d'altres que canvien en el flanc de baixada.
a) Dissenya un comptador de mòdul 3 amb dos biestables (: ). Dona les equacions i i comprova què passa si arrenca a l'estat no utilitzat . Quin cicle de treball té la sortida i quina freqüència? Per què no es pot obtenir el 50 % usant només biestables de flanc de pujada?
b) Afegeix un biestable que capturi en el flanc de baixada del rellotge () i defineix la sortida (OR). Dibuixa, en semiperíodes de rellotge, , i durant dos períodes de la sortida i comprova que el cicle de treball és del 50 %.
c) Generalitza: per dividir per amb un cicle del 50 %, quants biestables necessita el comptador? Quina funció (generada en flanc de pujada) has d'usar perquè, amb la mateixa tècnica, surti el 50 %? Comprova-ho amb una simulació en semiperíodes.
d) Raona per què l'OR dels dos senyals no produeix glitches (pics espuris) si els dos biestables són perfectes, i quin problema pràctic pot aparèixer si el rellotge no té exactament el 50 % de cicle de treball.
Pista 1
Un comptador de mòdul 3 té tres estats: cada estat dura un període de rellotge. Una sortida que val 1 només en un d'ells és alta 1 de cada 3 períodes.
Pista 2
Si desplaces el senyal mig període i el combines amb l'original amb un OR, l'amplada de l'alt creix mig període. Quina amplada necessites per tenir 50 % d'un període de 3?
Pista 3
Per , el senyal original ha de ser alt un nombre sencer de períodes i el desplaçat n'hi afegeix mig. Quin nombre de períodes cal perquè el total sigui la meitat de 5?
Mostra la solució
a) Transicions: , , . i . Des de : , → , i després : s'autocorregeix en un cicle. només a l'estat : és alt 1 període de rellotge de cada 3, és a dir, cicle de treball 33,3 %, amb MHz. Amb només flancs de pujada, tots els canvis de la sortida són múltiples d'un període sencer: en un període de sortida de 3 períodes de rellotge, l'alt només pot durar 1 o 2 períodes (33 % o 67 %), mai 1,5.
b) copia en el flanc de baixada, mig període més tard. Seqüència en semiperíodes (estat després de cada flanc de pujada; U = flanc de pujada, B = baixada):
| Semiperíode | Esdeveniment | Estat | |||
|---|---|---|---|---|---|
| 1 | U | 01 | 0 | 0 | 0 |
| 2 | B | 01 | 0 | 0 | 0 |
| 3 | U | 10 | 1 | 0 | 1 |
| 4 | B | 10 | 1 | 1 | 1 |
| 5 | U | 00 | 0 | 1 | 1 |
| 6 | B | 00 | 0 | 0 | 0 |
| 7 | U | 01 | 0 | 0 | 0 |
| 8 | B | 01 | 0 | 0 | 0 |
| 9 | U | 10 | 1 | 0 | 1 |
| 10 | B | 10 | 1 | 1 | 1 |
| 11 | U | 00 | 0 | 1 | 1 |
| 12 | B | 00 | 0 | 0 | 0 |
En els 12 semiperíodes (2 períodes de sortida) val 001110001110: 3 semiperíodes alts i 3 baixos per període de sortida → 50 % (alt durant 1,5 períodes de rellotge de 3), a 4 MHz. és alt 1 període (de 2 semiperíodes) i mig període més tard: la unió dona 1,5 períodes.
c) Per a calen biestables al comptador (0 a 4). Cal que sigui alt 2 períodes de cada 5, perquè : per exemple, val 1 quan l'estat és 3 o 4 (obtingut d'un biestable amb quan l'estat següent és 3 o 4, és a dir, quan l'estat actual és 2 o 3). Simulació de 10 semiperíodes: = 0000111110, que té 5 semiperíodes alts de 10 → 50 %. En general, per a senar, ha de ser alt períodes consecutius.
d) Els flancs de (pujada del rellotge) i els de (baixada) estan separats mig període: quan un dels dos senyals puja, l'altre ja és estable, de manera que no té transicions simultànies i no hi ha risc de glitch. En la pràctica, si el rellotge no és exactament 50 %, els dos flancs no estan a mig període i l'amplada de l'alt de canvia: el cicle de treball obtingut deixa de ser exacte (per exemple, si el rellotge té 40 % d'alt, el flanc de baixada s'avança), i a més, si per variacions de retard l'«alt» de i el de deixen d'encavalcar-se, podria aparèixer un forat curt a . També cal vigilar que el rellotge arribi als dos biestables amb la mateixa fase (distorsió de rellotge).
Errors típics
- Intentar corregir el 33 % només ajustant les equacions del comptador: amb flancs de pujada, l'amplada és sempre un nombre enter de períodes.
- Fer servir un AND en lloc d'un OR dels dos senyals: l'AND donaria només 0,5 període d'alt.
- Oblidar que per a senar la sortida original ha de ser alta períodes, no .
- Deixar sense definir l'estat no utilitzat : el comptador podria quedar bloquejat.
Conceptes treballats: comptador de mòdul N, divisió de freqüència, cicle de treball, biestables de flanc de baixada, combinació de dues fases, autocorrecció d'estats no utilitzats, glitches.
Exercici 40
Un transmissor sèrie asíncron (UART) envia cada byte en una trama 8N1: un bit d'start (0), els 8 bits de dades començant pel de menys pes (LSB primer), i un bit de stop (1). Entre trames la línia reposa a 1. El sistema funciona amb un rellotge de i la velocitat és de baud (bits/s). L'arquitectura és: un registre de desplaçament de 10 biestables D amb càrrega paral·lela (a cada pols de baud desplaça cap a la dreta i hi entra un 1 per l'esquerra; la línia és la sortida ), un comptador de baud, un comptador de bits (de 0 a 9) i un biestable «ocupat».
a) Quants cicles de rellotge dura un bit? Quants biestables ha de tenir el comptador de baud? Quin és el baud real i l'error relatiu respecte de ?
b) Quant dura una trama i quina és la taxa de dades útils (bits de dades per segon)?
c) Per al byte escriu la seqüència de bits a la línia i el valor de 10 bits que cal carregar al registre (). Quants biestables té en total el transmissor? Per què, després de la trama, la línia queda a 1 automàticament?
d) El receptor té el seu propi oscil·lador i, en detectar el flanc de baixada del start, mostreja cada bit en el seu centre. Quin és el cicle (comptat des del flanc) de mostreig del bit de dades ? Quin és l'error màxim relatiu de freqüència entre els dos rellotges perquè es llegeixi bé el bit de stop? Per què a la pràctica se'n demana menys?
e) S'afegeix un bit de paritat parella (trama 8E1). Quin valor té el bit per a i com es calcula amb portes? Quina és la nova durada de trama i la taxa útil? Detecta tots els errors de transmissió? Raona-ho.
Pista 1
Cicles per bit = dividit entre el baud (arrodonit a l'enter). El comptador de baud ha de comptar fins a aquest valor menys 1: calcula el mínim tal que arribi a aquest valor.
Pista 2
El bit que surt primer és , de manera que el bit d'start ha d'anar a , després a , etc., i el stop a . Escriu en binari i inverteix l'ordre per a la línia.
Pista 3
El receptor mostreja al centre de cada bit; el bit de stop es mostreja períodes de bit després del flanc. Durant aquest temps els rellotges s'han desfasat períodes de bit, i no pot passar de mig bit.
Mostra la solució
a) → 434 cicles per bit. El comptador compta de 0 a 433: com que , calen 9 biestables. Baud real → error , totalment negligible.
b) Una trama són cicles, és a dir . Taxa útil (80 % del baud, perquè 2 dels 10 bits són de control).
c) . LSB primer: . Línia: 0 1 1 0 1 0 0 1 0 1 (start, , stop). Al registre, = start i = stop: . Biestables: . Com que a cada desplaçament entra un 1 per l'esquerra, després de 10 desplaçaments el registre és tot 1 i la línia queda a 1 (repòs) fins a la càrrega següent.
d) El centre del start és al cicle i el de un bit més tard: cicle (i després cada 434 cicles). El stop es mostreja a períodes de bit; es llegeix bé mentre la deriva sigui inferior a bits: . A la pràctica es demana menys (≈ 2–3 %) perquè hi ha la incertesa de ±1 cicle en detectar el flanc, el soroll, els flancs amb pendent finit i l'error del propi emissor, que se sumen a la deriva.
e) Els bits de dades de tenen quatre uns (nombre parell) → el bit de paritat parella és 0 (el nombre total d'uns, dades + paritat, ha de ser parell). Es calcula amb la XOR dels 8 bits: 7 portes XOR de 2 entrades (en arbre de 3 nivells). Trama de 11 bits: ; taxa útil (72,7 % del baud). La paritat només detecta un nombre senar d'errors: si canvien dos bits (p. ex. i ) la paritat segueix sent correcta i l'error passa desapercebut; a més, no els pot corregir.
Errors típics
- Calcular el nombre de biestables del comptador amb sense arrodonir cap amunt, o comptar fins a 434 en lloc de 433 (de 0 a 433 hi ha 434 estats).
- Posar els bits de dades en l'ordre del número (MSB primer) en lloc de LSB primer.
- Oblidar els bits de start i stop en la durada de la trama o en la taxa útil.
- Confondre la paritat parella amb «posar el bit a 0»: s'ha de fer que el nombre total d'uns sigui parell.
- Creure que la paritat detecta qualsevol error: només els que canvien un nombre senar de bits.
Conceptes treballats: divisió de freqüència amb comptadors, registres de desplaçament amb càrrega paral·lela, protocol sèrie asíncron (start/stop/baud), tolerància de rellotge, mostreig al centre del bit, paritat amb portes XOR, taxa útil i eficiència.
T'encalles amb aquest tema?
A L'Acadèmia de Vic t'ajudem amb classes individuals. Escriu-nos per WhatsApp.
Escriu-nos per WhatsApp (604 95 79 95)Més informació: Preparació de la PAU a Vic · Classes particulars
Preguntes freqüents
Quina diferència hi ha entre un circuit combinacional i un de seqüencial?
En un circuit combinacional la sortida depèn només de les entrades actuals. En un de seqüencial també depèn de l'estat anterior, perquè té memòria: es construeix amb biestables i una lògica combinacional que calcula l'estat següent.
Com es dissenya un comptador síncron amb biestables?
Es dibuixa el diagrama d'estats, s'escriu la taula de transicions, s'obtenen les entrades dels biestables amb la seva taula d'excitació, es simplifiquen les funcions amb mapes de Karnaugh (aprofitant els estats no utilitzats com a indiferents) i es comprova què passa si el comptador entra en un d'aquests estats.
Quina diferència hi ha entre una màquina de Moore i una de Mealy?
En una màquina de Moore la sortida depèn només de l'estat, i canvia només amb el rellotge. En una de Mealy depèn de l'estat i de les entrades, de manera que pot canviar tan bon punt canvia una entrada.
Per què un comptador asíncron és més lent que un de síncron?
Perquè en l'asíncron la sortida de cada biestable fa de rellotge del següent i els retards de propagació se sumen: el valor no és correcte fins que s'ha estabilitzat l'últim bit. En el síncron tots els biestables reben el rellotge alhora i només compta el retard d'un biestable més el de la lògica.
Altres temes de Tecnologia i Enginyeria 2n Batxillerat
- Materials: estructura, propietats i assaigs
- Recursos i materials
- Processos de fabricació i CAD/CAM
- Sistemes mecànics: màquines i transmissions
- Pneumàtica i hidràulica
- Circuits elèctrics de corrent altern
- Circuits
- Electrònica digital: portes i sistemes combinacionals
- Sistemes automàtics de control
- Projectes: desenvolupament, fabricació i simulació
- Impacte ambiental i sostenibilitat tecnològica