PRACTICA 3 - mrpss1234/Treball-de-Final-de-Grau GitHub Wiki
Enunciat:
L’objectiu d’aquesta pràctica és dissenyar un circuit seqüencial amb entrades i sortides utilitzant flip-flops.
Es vol dissenyar un circuit seqüencial que controli els caràcters a visualitzar en un display de 7 segments
El circuit té un funcionament síncron amb una entrada de rellotge CLK i una entrada de control P que governa la seqüencia de caràcters a visualitzar en el display de 7 segments. • Quan l’entrada P val 0 es visualitzarà la seqüencia EPS-EPS-EPS-EPS-....... • Quan l’entrada P val 1 apareixerà al display la seqüència de caràcters UdL-UdLUdL-........
El sistema també disposa d’una entrada R (reset) asíncrona que permet aturar la seqüència en qualsevol instant.
Realització de la pràctica:
Aquesta pràctica té moltes maneres de dur-se a terme. En aquest cas la forma de generar les lletres en sequencia E-P-S o U-D-L es fa mitjançant 4 possibles estats, que es generaran de forma sequencial mitjançant dos flip-flops JK. Aquestos flip-flops generaran 4 possibles valors, que seran 00-01-10-11. Amb aquestos 4 posssibles estats mitjançant Karnaugh podrem activar els pins indicats per formar a cada estat la lletra que volem mitjançant portes logiques.
Les taules de la veritat seran:
P | Q1 | Q0 | a | b | c | d | e | f | g |
---|---|---|---|---|---|---|---|---|---|
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |
0 | 0 | 1 | 1 | 0 | 0 | 1 | 1 | 1 | 0 |
0 | 1 | 0 | 1 | 1 | 0 | 0 | 1 | 1 | 1 |
0 | 1 | 1 | 1 | 0 | 1 | 1 | 0 | 1 | 1 |
1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |
1 | 0 | 1 | 0 | 1 | 1 | 1 | 1 | 1 | 0 |
1 | 1 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 0 |
1 | 1 | 1 | 0 | 0 | 1 | 1 | 1 | 1 | 0 |
Fent Karnaugh i fican les entrades del display 7-segments en funcio de P, Q1, Q0 ens dona:
- A= (Q0'·P') + (P'·Q1')
- B=(Q1'·Q0) + (P·Q1')
- C= (Q1·Q0')·P' + (P·Q1')
- D=QO'+(P·Q1')
- E= (P·Q0') + Q1'
- F= Q0'+(P'·Q1')
- G= Q0 + P'
FLIP-FLOP PROBLEMES DE CARRERA:
Una versió simplificada del flip-flop jk seria la seguent:
Es pot observar com les sortides es retroalimenten a les portes NAND habilitades. Aixo es el que dona pas a la acció de conmutació quan J=K=1. Si bé aquesta configuració amb quatre portes NAND funciona en principi, ens donem conte de que sorgeixen problemes amb el temps (timing). Per aquesta versió del flip-flop jk, la conmutació s'activaria en qualsevol moment en que arribes un flanc de pujada del clock del sistema, es a dir, quan el clock valgues 1. La velocitat d'activació vindria donada per el retard de propagació al llarg del propi sistema. Per tant, el valor de sortida en qualsevol moment no seria predecible per el estat del clock. El puls de "timing" ha de ser molt curt perquè un cambi en el valor de Q abans de que s'acabi provocaria una oscilació en el circuit que es denomina "carrera". Per sort, aquesta conmutació no controlada es po suprimir mitjançant una configuracio del flip-flop que es denomina "Master-Slave"
En aquesta nova disposició es retarda la transmissió del valor J a la sortida amb un valor de mitj clock i no se'l retroalimenta inmediatament a la entrada, ocasionant que no es produeixi aquest efecte.
Realització al IceStudio:
Assignació de P i R:
Introduim mitjançant els Dip Switch els valors P i R D0 <-- 1A D1 <-- 1B
Esquema del flip-flop
La generació dels 4 estats la formarem mitjançant la unió dels dos flips-flops JK. El primer flip-flop tindra tant la J com la K conectades a un valor de 1 i el segon les tindra conectades al valor de Q0. Per controlar que quan s'apreti el boto R el sistema es quedi bloquejat, es controla la senyal del clock conectada mitjançant una porta AND a la senyal R negada, de forma que quan R estigui en estat actiu, el flip-flop deixi de rebre el clock i es quedi bloquejat a la lletra que tenia assignada en aquell moment.
Assignacio de les sortides (a-b-c-d-e-f-g) als pins del entrenador:
Mostrem caràcters a través del display 7-segments i estat dels Flip-Flops pels LEDS grocs i verds
D2 --> A
D3 --> B
D4 --> C
D5 --> D
D6 --> E
D7 --> F
D8 --> G
D9 --> YELLOW_B
D10 --> GREEN_B
D11 --> YELLOW_A
D12 --> YELLOW_A