Circuits seqüencials#

Pàgina en desenvolupament

Encara estem treballant en aquest document.
Esperem oferir-vos properament el seu contingut.
Disculpeu les molèsties.

La sortida dels circuits seqüencials no només depèn de la combinació de les entrades, també depèn de la història d’aquestes entrades.

Veiem un exemple:

Hide code cell source
%%html
 <iframe src="https://www.falstad.com/circuit/circuitjs.html?ctz=CQAgjCAMB0l3BWc0FwCwCY0HYEA4cEMElURTJyBTAWjDACgwEJiA2cNygZjb08qUMUckxYh2EvP178M0kcNIMA7iFkD1fcAE5hkVVv5g9EhB0kG1G+TO2XDN82Y4n9hyW5fhsHK98lA7HcAGW9uSDQfDgioyggAFwAnAFcqcigGMM80KLBfcFyRRNT0pAMAWSNNXOMuRRQGKpsFWql+IUaAD3AEHXAMeJ0kMAxuECisEABnKgSGHrRuY2WJ5zA0CEmogEUFwuwpVkhD+SjtkCSqWfnF1Yw2DjRnB-6LXYYgA" width="800" height="600"></iframe>

Biestable RS#

Com veieu la sortida \(Q\) (i el seu invers \(\overline{Q}\)) canvia si per un instant les entrades set o reset prenen el valor \(L\), i mantenen el canvi encara que les entrades tornen a estar a nivel \(H\). Com les entrades són actives a nivell baix, s’acostumen a simbolitzar com \(\overline{R}\) i \(\overline{S}\)

Aquest circuit es coneix com a biestable (o bàscula) RS, que té aquest símbol:

i aquesta és la seva taula de veritat:

R

S

Q

0

0

Q

0

1

1

1

0

0

1

1

no definit

Com veieu l’estat de la sortida no està definit per \(R = S = 1\) (recordeu que reset = \(\overline{R}\) i set = \(\overline{S}\))

Circuits síncrons#

El biestable que hem vist abans en realitat s’anomena biestable RS asíncron.

En els circuits seqüencials típicament s’utilitza un senyal de rellotge (CLK, de lànglès clock) que ens indica quan s’han de llegir les entrades. Aquest senyal potser per nivell alt (les entrades són vàlides i el circuit actúa en conseqüència quan CLK = 1), per nivell baix (entrades vàlides quan CLK = 0), per flanc de pujada (entrades vàlides quan CLK passa de 0 a 1) o per flanc de baixada (entrades vàlides quan CLK passa de 1 a 0).

Aquí veieu el nostre biestable RS síncron amb CLK per nivell alt:

Hide code cell source
%%html
 <iframe src="https://www.falstad.com/circuit/circuitjs.html?ctz=CQAgjCAMB0l3BWcMBMcUHYMGZIA4UA2ATmIxAUgoqoQFMBaMMAKDAQhQUJExRGyE8vDPypiKbDr27gALHIFD5i8dQQsA7kuFgFO8Bh6QtBsEZk8Ucqie2DhfA9dumHvG5cPHTXHuatZMEJXbT8PcVlwkwBZM30FXX1xaA049ydEkQkUVKkIMBRdIq9C4TUkDXYCkqLHKLxy3nVTMoFIRWIeXFVTLvbO-2S+ocU2vV6AGXAS5n5CMcKoZYAXACcAVzpqE2m2pwXs5ap1rZ2WACUQfp7r7oR+TmQUpFykWzyAe3AkQ6o5MCQMSweBGFDEbDEOQIbCFd4guBkQjcLjLR5IbAgADOdBWLG+wRAfxAAKBUARkDBEKhMLh5PgkCRKPezUJmLWdBxeO+wmJpP48IZTMIqKoEAAivjDETVCTAQL6fBhaLWeRMQBjAA2AGsWEA" width="800" height="600"></iframe>

Cronogrames#

La gràfica al peu del simulador és un cronograma: ens indica el valor de les entrades i sortides en el temps. Moltes vegades és més fàcil definir un dispositiu seqüencial amb un cronograma que no amb una taula de veritat. Aquest és el cronograma d’un comptador de 4 bits:

Moltes vegades aquests cronogrames inclouen informació sobre els tempes necessaris pel bon funcionament del dispositiu:

Biestable JK#

La combinació \(R = S = 1\) del biestable RS no és útil al no estar definida, i pot donar problemes. Amb unes quantes portes lògiques més podem tenir un biestable semblant al RS que inverteixi el valor de la sortida. És la bàscula JK. Aquí la podeu provar (CLK per nivell alt):

Hide code cell source
%%html
 <iframe src="https://www.falstad.com/circuit/circuitjs.html?ctz=CQAgjCAMB0l3BWcMBsBmALAJhQdgWgJwAcYKCFICkVVNCApgLRhgBQYCEGaW4GGKlmL9BNPvQ5cQPPlgQohI+YvG0EbAO4zeILFkGy9GGpC06+ZGkbC5V5hML0GlehVAdP9h3bfvbHETABVz8PAKcwo28PTgheGjAnGyc1JA04kAS9XD5o3Kg9Qo1tbODBbJVwrKxxd2y0NHtMsEJLEOEgkLVJFra3RU6Bwr508zKkvWIgybNtIdY5adFqoaq15bmp5WXKzfNWyxRE-rCtw+MTuRcttZc191vlmIuz8wW7bZWnoM+LmLMmWIiUip1SWXUbAAkiAUBUmjUaI1VFBoGMALKhEIIU7dPRotiYwLDHFyR74jQADyoYBmuCoCKS1mMIAAimxqY4kZB0mgRGhICJBoJ2aVLJNgeBZhystZ6Wh6dQZCyAFJsABKsPhil0yPARSZFKNpgJQPEBX+BSRkO0NmOFi11SMcJAkpdWzdgklSREZgAMjVhroAfqAGYAQwANgBnBi0MzUlytNBZQjgQiKQQuADS5hdepdVS2hfckqL5m9IRd5Wq1arWce4yW-LJ-kDQzL+1twZMDqavvMRn7rqRKAH2klw7LVrYAd8k10ksSIAjMbjSATIBYkAgmTTnEM4D4KuzAB0AI5wABcp+jADkAPa3gDCAAtwwA7ADmDBl293KBpkwCrgAUgiTCeF5gJAN7RgAygwAAuf7QbuxD0kwWApq0zIQWel5gLB6oMLGyHUv+eg8lutKUSI4HHvhrCwQAKg+X5fpGv4PjIQpiDI0GjKi8CQIQdgKPIIw8RCarcSB7r8ZAgkwMJonkCgElqCBKa5txOCOtYAnxrA8CqeJG76uysl8PJGCGRuxlwKZ6nmXwuogAAxpGADWbBAA" width="800" height="600"></iframe>

Típicament els circuits seqüencials s’activen amb rellogte de flanc, ja que permet una definició més exacte de quan són vàlides les entrades. Aquest és el símbol d’una bàscula JK activa per flanc de pujada:

Fixeu-vos en el símbol del mig de l’esquerra: aquest angle simbolitza el CLK per flanc de pujada. Si fos per flanc de baixada posariem una boleta de negació a l’entrada.

Biestable D#

Aquest biestable permet emmagatzemar un bit quan el CLK està actiu.

Com podeu veure al simulador, l’activació per flanc del rellotge és més complicada que per nivell:

Hide code cell source
%%html
 <iframe src="https://www.falstad.com/circuit/circuitjs.html?ctz=CQAgjCAMB0l3BWcMBMcUHYMGZIA4UA2ATmIxAUgoqoQFMBaMMAKDAQmzRExRABYuPDHyqiKbDiC5Uw-fgKFyFY6ghYB3RX2XbwGQlE16wB6dxT8qkY4L689l67aFPzssza0z9hn2EJnbwsrdx4EQxt2CADZeWEdeNVaSRjAgTwEjKgeNVTwdIcikRzsPOiCqmxCTIdqzOSJLViQQgUWvCDKkE6s5lFjFrAUTKHho2b0-qzerxmxEv4GwcK8UfTcFRWqyAU66oms7AO6msOW7AQdDYO5i5OSzcOHYcz-EeeSkbeLNc+dMwtNx3DY6D5CO4ffgBLLQyLbLLEQwOOZI7pDdIgqp4BRo7A4owAGRAeIJQnxKnAIAAZgBDAA2AGc6NQbAAlEnIx72EoQHRwHjQJAoIU5GDqACyJni-DRujEQpYUrssLRKMF6i0cvSapKWPChiBoTmL3iL08xlOtUWMMhmTh4HBAy0L3GLw+Jt5H1NWxdX399j+nsD1r4TxsAHtpFQ2jloZA+EgYPBIGRCBEUEncrhpCAACIsKNCWNUeOJqCweBpjNZiAARUL0ggJYEYATrMrcGrhEzOTDnBAAGN6QBrFhAA" width="800" height="600"></iframe>

El biestable D té aquest símbol:

Comptadors#

Podem comptar els cicles de rellotge amb un conjunt encadenat de bàscules JK:

Hide code cell source
%%html
 <iframe src="https://www.falstad.com/circuit/circuitjs.html?ctz=CQAgjCAMB0l3BWcMBMcUHYMGZIA4UA2ATmIxAUgoqoQFMBaMMAKDAUJDypRQBZwKPCF4CqkNhxH4R-EXx5zxkztmydRIdcM3L2nPoQGa+3WWKgsA7uAwa5YOyKkSbjjVLQ6X1rZGNyuMY+NkHOqurhljZ82CjmILHxKCGJcVGGwZyuiUYJfKYJOQU6ciUieMLFhULCmRVVvuW1iYVq2U1tkXFU7dFaaFrdgy05PQ1DGpX94y2zSr7zAn26vl4JYMTJC25bG3ujvpvJ0+uHuyfCx5P9133jfTlmmnmrNq9yr9M5X8LP375fiA8o9ActIndIhIAEpcHhSdIpTgQZJwETQJAoDFQKAYliwkHDG7iRK0HHiPE2DiKATU4FiJqIsrpYgdUL+BJhMBCW5OTTucCEZQAWQoQvpiWEr3RCBYoqSIFZksVGhlcr8Am5dSuPOSeNFArA4sKRp4ar4mwoezyRioeSofF8dLyCGtDJiLM4rviSrGHK1VviAZyhvF3sFygA9lokPbEmBIPEkDB4JAyIQOCkcaxo5E4xbE9QU-B05nk+AWLnyPmE0ncanS4Qs1Qc1opRYC3Xi3BG82K0A" width="800" height="600"></iframe>

Registres de desplaçament#

Quan volem transmetre la informació de vegades hem de fer una transformació sèrie / paral·lel o a l’inrevès. Un exemple és l’escriptura de l’estat d’una matriu de 8x8 leds amb només dues lìnies (CLK i DATA). En aquest cas fem servir registres de desplaçament:

Hide code cell source
%%html
 <iframe src="https://www.falstad.com/circuit/circuitjs.html?ctz=CQAgjCAMB0l3BWcMBMcUHYMGZIA4UA2ATmIxAUgoqoQFMBaMMAKDASQBZO8Q1fOxQn3xQobDhUJV+Iab1lVILAO4VuI3gmmbx7JIQwpdRmaKUSkGPJ115sxxeIBKIbIV7Z3btG+8RjMDg+aCQUULEYBFU3Dz9hbk9vZTVE+JA0lE4LNW0qL2E8vmzxABkMsGFZTkqK4SUQADMAQwAbAGc6ahS63UzzFgAPPypOFGNsYggxrmKQAEsAOwAHAFcAFyG5PAhmKgwdZmwMuYB7DbXNtUJtXUNHAdSedKKC8VydN-v0nu+vo2KORABwUomstkUMXBgOBNh+ULh-wmyRYAFl1BDRAgNGANDJQmi5LdZDdhLjbPjouiQSY4uSxOEqSA8HgzLwWVR6ZSWEA" width="800" height="600"></iframe>

Productes comercials#

Dispositiu

C.I. TTL

pin-out

C.I. CMOS

pin-out

Bàscula JK

74LS73

CD4027

Bàscula D

74LS74

CD4042

Comptador 4 bits

74LS93

CD4029

Registre de desplaçament 8 bits sèrie / paral·lel

74LS595

CD4094

Registre de desplaçament 8 bits paral·lel / sèrie

74LS597

CD4021