You are on page 1of 23

Electrónica Digital II Problemas de Diseño de Circuitos Secuenciales # 1

Profesor: Víctor Escartín

PROBLEMAS DE DISEÑO DE CIRCUITOS SECUENCIALES


Ejemplo # 1.
Diseñe utilizando un CI contador, una maquina de estados sincrónica tipo Moore para controlar las luces de un semáforo con un
régimen de trabajo diurno y otro nocturno. El régimen nocturno se determina mediante una señal de control, F = C ⊕ M = 0, donde
C es la salida de una foto celda y M es la entrada de un interruptor. El régimen diurno ocurre cuando F = 1. La señal M posibilita
que en una noche de mucho trafico el semáforo funcione como si fuera de día y por el contrario que pase al régimen nocturno
durante el día si hay poco trafico.

Régimen diurno: Luz roja, amarilla, verde y amarilla. Al llegar aquí si F = 1 se repite el ciclo anterior, de lo contrario se pasa a la
operación nocturna. La luz roja y la verde deben tener la misma duración, lo que será de tres periodos de reloj. La luz amarilla
durara un periodo de la señal de reloj.

Solución:
Tabla de estados / salidas.

EP EF Salidas
F=0 F=1 R A V
R1 R2 R2 1 0 0
R2 R3 R3 1 0 0
R3 A1 A1 1 0 0
A1 V1 V1 0 1 0
V1 V2 V2 0 0 1
V2 V3 V3 0 0 1
V3 A2 A2 0 0 1
A2 N R1 0 1 0
N A2 A2 0 0 0

Dado que hay 9 estados se necesita un código de 4 bits. Para lograr esto utilizaremos el contador binario ascendente 74x163. la
asignación de estados es la mostrada en la próxima tabla.

EP EF Salidas
Qd Qc Qb Qa F=0 F=1 R A V
R1 0000 0001 0001 1 0 0
R2 0001 0010 0010 1 0 0
R3 0010 0011 0011 1 0 0
A1 0011 0100 0100 0 1 0
V1 0100 0101 0101 0 0 1
V2 0101 0110 0110 0 0 1
V3 0110 0111 0111 0 0 1
A2 0111 1000 0000 0 1 0
N 1000 0111 0111 0 0 0

1
Electrónica Digital II Problemas de Diseño de Circuitos Secuenciales # 1
Profesor: Víctor Escartín
Qb Qa Qb Qa Qb Qa

00 01 11 10 00 01 11 10 00 01 11 10
Qd Qc Qd Qc Qd Qc
00 1 1 1 00 1 00

01 01 1 01 1 1 1

11 x x x x 11 x x x x 11 x x x x

10 x x x 10 x x x 10 x x x

R = /Qd . /Qc . /Qb + /Qd . /Qc ./Qa A = Qb . Qa V = Qc /Qb + Qc /Qa

U7
2
U2 3 1
4 U8
2 1 2
1 R
3
U6
U3 2
VCC 3 1
U15 2 1 4
3 14
4 A QA 13 U12
5 B QB 12 2
6 C QC 11 1
D QD A
15 3
7 RCO
10 ENP
U9
2 ENT 2
CLK CLK
U4
9 1
1 LOAD 2 1 3
CLR
U11
74HCT163 2
1 V
U10 3
2
U5 1
3
2 1
U18
F 2 M
1
3 C
2 U16
3
1
4
5

2
Electrónica Digital II Problemas de Diseño de Circuitos Secuenciales # 1
Profesor: Víctor Escartín
Ejemplo # 2.
Diseñe en un PLD, una maquina de estados sincrónica tipo Moore para controlar las luces de un semáforo con un régimen de
trabajo diurno y otro nocturno. El régimen nocturno se determina mediante una señal de control, F = C ⊕ M = 0, donde C es la
salida de una foto celda y M es la entrada de un interruptor. El régimen diurno ocurre cuando F = 1. La señal M posibilita que en
una noche de mucho trafico el semáforo funcione como si fuera de día y por el contrario que pase al régimen nocturno durante el
día si hay poco trafico.

Régimen diurno: Luz roja, amarilla, verde y amarilla. Al llegar aquí si F = 1 se repite el ciclo anterior, de lo contrario se pasa a la
operación nocturna. La luz roja y la verde deben tener la misma duración, lo que será de tres periodos de reloj. La luz amarilla
durara un periodo de la señal de reloj.

--Proyecto : FSM_1
--Fichero : EJ_1
--Dispositivo : 16V8

LIBRARY IEEE;
USE IEEE.Std_Logic_1164.ALL;

ENTITY EJ_2 IS PORT(


CLK,M,C: IN Std_Logic;
R, A, V: OUT Std_Logic);
END EJ_2;

ARCHITECTURE A_EJ2 OF EJ_2 IS


TYPE Semaforo IS (R1, R2, R3, A1, V1, V2, V3, A2, N);
SIGNAL Estado: Semaforo;
SIGNAL F: Std_Logic;
BEGIN
F <= M XOR C;
PROCESS(CLK)
BEGIN
IF Rising_Edge(CLK) THEN
CASE Estado IS
WHEN R1 => estado <= R2;
WHEN R2 => estado <= R3;
WHEN R3 => estado <= A1;
WHEN A1 => estado <= V1;
WHEN V1 => estado <= V2;
WHEN V2 => estado <= V3;
WHEN V3 => estado <= A2;
WHEN A2 => IF F = '1' THEN estado <= R1;
ELSE estado <= N;
END IF;
WHEN Others => estado <= A2;
END CASE;
END IF;
END PROCESS;
R <= '1' WHEN Estado = R1 OR estado = R2 OR estado = R3 ELSE '0';
A '<= 1' WHEN Estado = A1 OR estado = A2 ELSE '0';
V <= '1' WHEN Estado = V1 OR estado = V2 OR estado = V3 ELSE '0';
END;

3
Electrónica Digital II Problemas de Diseño de Circuitos Secuenciales # 1
Profesor: Víctor Escartín
Ejemplo # 3.
Diseñe en un PLD, un semáforo de aviso de paso de tren en un cruce de vía única con doble sentido de circulación y un camino.

A B

Funcionamiento:
La vía posee a ambos lados del cruce y a una distancia de seguridad, sendos detectores de paso de tren (A) y (B). Los trenes
circulan por ella en ambas direcciones y se desea que el semáforo señale presencia de tren desde que este alcanza el primer sensor
en su dirección de marcha hasta que pasa por el segundo sensor tras abandonar el cruce.

EP EF Salida
AB
Observación 00 01 11 10
Espera Espera Espera DI - ID 0
Izquierda a derecha ID Espera ID ID ID 1
Derecha a izquierda DI Espera DI DI DI 1

LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;

ENTITY SEMAFORO IS
PORT (A,B,CLK,RESET: IN STD_LOGIC;
SEMAF: OUT STD_LOGIC);
END SEMAFORO;

ARCHITECTURE ARCHISEMAFORO OF SEMAFORO IS


TYPE ESTADOS IS (Espera,ID,DI);
SIGNAL EST, PROXEST:ESTADOS;
BEGIN
PROC1:PROCESS(A,B)
BEGIN
CASE EST IS
WHEN Espera => IF A='1' AND B='0' THEN PROXEST <= ID;
ELSIF A='0' AND B='1' THEN PROXEST <= DI;
ELSE PROXEST <= Espera;
END IF;
WHEN ID => IF A='0' AND B='0' THEN PROXEST <= Espera;
ELSE PROXEST <= ID;
END IF;
WHEN DI => IF A='0' AND B='0' THEN PROXEST <= Espera;
ELSE PROXEST <= DI;
END IF;
END CASE;
END PROCESS;
PROC2:PROCESS(CLK,RESET)
BEGIN
IF RESET='1' THEN EST<=Espera;
ELSIF(CLK='1' AND CLK'EVENT) THEN EST<=PROXEST;
END IF;
END PROCESS;
SEMAF<='1' WHEN (EST=EST1 OR EST=EST2)ELSE '0';
END ARCHISEMAFORO;

4
Electrónica Digital II Problemas de Diseño de Circuitos Secuenciales # 1
Profesor: Víctor Escartín

Ejemplo # 4.
Diseñe en un PLD, un sistema de molienda de café.

Funcionamiento:
El sistema está formado por dos motores trituradores (M1) y (M2) funcionando de la siguiente forma:
• Cuando el nivel de café dentro de la tolva se encuentre entre (S) e ( I ), sólo debe funcionar uno de los dos motores, de tal
forma, que cada vez que se ponga en marcha uno de ellos, lo haga aquel que estaba parado cuando el otro trabajaba.
• Si el nivel sobrepasa el detector (S), deben funcionar los dos motores simultáneamente, mientras que si no sobrepasa el
detector ( I ), se deben parar ambos.
• Se supone que inicialmente fue M2 el motor que primero funcionó.

EF Salida
SI
Observación EP 00 01 11 10 M1 M2
Anteriormente funciono M2 A A B C - 0 0
Anteriormente funciono M2 B F B D - 1 0
Anteriormente funciono M2 C A B C - 1 1
Anteriormente funciono M1 D F E D - 1 1
Anteriormente funciono M1 E A E D - 0 1
Anteriormente funciono M1 F F E D - 0 0

--Proyecto : FSM_1
--Fichero : FSM_4
--Dispositivo : 22V10

LIBRARY IEEE;
USE IEEE.Std_Logic_1164.ALL;

ENTITY EJ_4 IS PORT(


CLK,Reset: IN Std_Logic;
SI : IN Std_Logic_Vector (1 Downto 0);
M1,M2: OUT Std_Logic);
END EJ_4;

ARCHITECTURE A_EJ4 OF EJ_4 IS


TYPE State IS (A, B, C, D, E, F);
SIGNAL Estado, Nxt_Estado: State;
BEGIN
PROCESS(SI)
BEGIN
CASE Estado IS
WHEN A => IF SI = "00" THEN Nxt_Estado <= A;
ELSIF SI = "01" THEN Nxt_Estado <= B;
ELSE Nxt_Estado <= C;
END IF;
WHEN B => IF SI = "00" THEN Nxt_Estado <= F;
ELSIF SI = "01" THEN Nxt_Estado <= B;
ELSE Nxt_Estado <= D;
END IF;
WHEN C => IF SI = "00" THEN Nxt_Estado <= A;
ELSIF SI = "01" THEN Nxt_Estado <= B;
ELSE Nxt_Estado <= C;
END IF;
WHEN D => IF SI = "00" THEN Nxt_Estado <= F;
ELSIF SI = "01" THEN Nxt_Estado <= E;
ELSE Nxt_Estado <= D;
END IF;
5
Electrónica Digital II Problemas de Diseño de Circuitos Secuenciales # 1
Profesor: Víctor Escartín
WHEN E => IF SI = "00" THEN Nxt_Estado <= A;
ELSIF SI = "01" THEN Nxt_Estado <= E;
ELSE Nxt_Estado <= D;
END IF;
WHEN F => IF SI = "00" THEN Nxt_Estado <= F;
ELSIF SI = "01" THEN Nxt_Estado <= E;
ELSE Nxt_Estado <= D;
END IF;
END CASE;
END PROCESS;

PROCESS(Reset,CLK)
BEGIN
IF Reset = '0' THEN Estado <= A;
ELSIF Rising_Edge(CLK) THEN Estado <= Nxt_Estado;
END IF;
END PROCESS;

M1 <= '1' WHEN Estado = B OR Estado = C OR Estado = D ELSE '0';


M2 <= '1' WHEN Estado = C OR Estado = D OR Estado = E ELSE '0';
END;

6
Electrónica Digital II Problemas de Diseño de Circuitos Secuenciales # 1
Profesor: Víctor Escartín

Ejemplo # 5.
Diseñe en un PLD, un dispositivo de control electrónico para un juego de azar.

Funcionamiento:
El dispositivo de control tiene dos entradas (A) y (B) y una salidas (Z). La entrada (A) es la correspondiente al reloj, y marcará con
su flanco de subida los instantes en los que el control cambiará sus salidas.
La entrada (B) determinará la naturaleza exacta del cambio en las salidas:
• Si (B=0) , las salidas se incrementarán en uno su valor actual siguiendo una secuencia binaria natural en módulo 8.
• Si (B=1), las salidas se incrementarán en tres su valor actual, siempre que dicho valor sea par; en caso contrario las
salidas se decrementarán en uno.

EP EF
B Salidas
0 1 Z2 Z1 Z0
Inicio S0 S1 S3 0 0 0
S1 S2 S0 0 0 1
S2 S3 S5 0 1 0
S3 S4 S2 0 1 1
S4 S5 S7 1 0 0
S5 S6 S4 1 0 1
S6 S7 S2 1 1 0
S7 S0 S6 1 1 1

LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY JUEGO IS
PORT (B,CLK,RESET:IN STD_LOGIC;
Z2,Z1,Z0:OUT STD_LOGIC);
END JUEGO;

ARCHITECTURE ARCHIJUEGO OF JUEGO IS


TYPE ESTADOS IS(S0,S1,S2,S3,S4,S5,S6,S7);
SIGNAL EST,PROXEST:ESTADOS;
BEGIN
PROC1:PROCESS(B)
BEGIN
CASE EST IS
WHEN S =>IF B='0' THEN PROXEST <= S1;
ELSE PROXEST <= S3;
END IF;
WHEN S1 =>IF B='0' THEN PROXEST <= S2;
ELSE PROXEST <= S0;
END IF;
WHEN S2 => IF B='0' THEN PROXEST<=S3;
ELSE PROXEST <= S5;
END IF;
WHEN S3 => IF B='0' THEN PROXEST <= S4;
ELSE PROXEST <= S2;
END IF;
WHEN S4 => IF B='0' THEN PROXEST <= S5
ELSE PROXEST <= S7;
END IF;
WHEN S5 => IF B='0' THEN PROXEST <= S6;
ELSE PROXEST <= S4;
END IF;

7
Electrónica Digital II Problemas de Diseño de Circuitos Secuenciales # 1
Profesor: Víctor Escartín

WHEN S6 => IF B='0' THEN PROXEST <= S7;


ELSE PROXEST <= S1;
END IF;
WHEN S7 => IF B='0' THEN PROXEST <= S0;
ELSE PROXEST <= S6;
END IF;
END CASE;
END PROCESS;

PROC2:PROCESS(CLK,RESET)
BEGIN
IF RESET='1' THEN EST<=S0;
ELSIF (CLK='1' AND CLK'EVENT) THEN EST<=PROXEST;
END IF;
END PROCESS;

Z2 <= '1' WHEN (EST=S4 OR EST=S5 OR EST=S6 OR EST=S7) ELSE '0';


Z1 <= '1' WHEN (EST=S2 OR EST=S3 OR EST=S6 OR EST=S7) ELSE '0';
Z0 <= '1' WHEN (EST=S1 OR EST=S3 OR EST=S5 OR EST=S7) ELSE '0';

END ARCHIJUEGO;

8
Electrónica Digital II Problemas de Diseño de Circuitos Secuenciales # 1
Profesor: Víctor Escartín

Ejemplo # 6.
Diseñe en un PLD, el circuito lógico de control de un motor.

Funcionamiento:
El circuito de control consta de tres entradas (A, B, C) y dos salidas (MD, MI) funcionando de la siguiente manera:
• si el interruptor (A) está desactivado el circuito lógico impedirá el arranque del motor.
• Si el interruptor (A) está activado:
o al accionar el pulsador (B) el motor girará hacia la izquierda y lo seguirá haciendo aun cuando se suelte.
o al pulsar (C) el motor girará hacia la derecha y continuará así incluso cuando se deje de pulsar.
o Si (B) y (C) son pulsados simultáneamente el motor girará hacia la izquierda.
• En el estado inicial, el motor se encuentra parado y no hay ninguna entrada activada.

Observación EP EF
ABC Salidas
000 001 011 010 100 101 111 110 MD MI
S0 S0 S0 S0 S0 S0 S2 S1 S1 0 0
Gira a la Izq S1 S0 S0 S0 S0 S1 S2 S1 S1 0 1
Gira a la Der S2 S0 S0 S0 S0 S2 S2 S1 S1 1 0

--Proyecto : FSM_1
--Fichero : FSM_6
--Dispositivo : 22V10

LIBRARY IEEE;
USE IEEE.Std_Logic_1164.ALL;

ENTITY EJ_6 IS PORT(


CLK,Reset: IN Std_Logic;
A,B,C : IN Std_Logic;
MI,MD: OUT Std_Logic);
END EJ_6;

ARCHITECTURE A_EJ6 OF EJ_6 IS


TYPE State IS (S0, S1, S2);
SIGNAL Estado, Nxt_Estado: State;
BEGIN
PROCESS(A,B,C)
BEGIN
CASE Estado IS
WHEN S0 => IF A = '0' THEN Nxt_Estado <= S0;
ELSIF B = '1' THEN Nxt_Estado <= S1;
ELSIF C = '1' THEN Nxt_Estado <= S2;
ELSE Nxt_Estado <= S0;
END IF;
WHEN S1 => IF A = '0' THEN Nxt_Estado <= S0;
ELSIF B = '1' THEN Nxt_Estado <= S1;
ELSIF C = '1' THEN Nxt_Estado <= S2;
ELSE Nxt_Estado <= S1;
END IF;
WHEN S2 => IF A = '0' THEN Nxt_Estado <= S0;
ELSIF B = '1' THEN Nxt_Estado <= S1;
ELSIF C = '1' THEN Nxt_Estado <= S2;
ELSE Nxt_Estado <= S2;
END IF;
END CASE;
END PROCESS;
9
Electrónica Digital II Problemas de Diseño de Circuitos Secuenciales # 1
Profesor: Víctor Escartín

PROCESS(Reset,CLK)
BEGIN
IF Reset = '0' THEN Estado <= S0;
ELSIF Rising_Edge(CLK) THEN Estado <= Nxt_Estado;
END IF;
END PROCESS;

MD <= '1' WHEN Estado = S2 ELSE '0';


MI <= '1' WHEN Estado = S1 ELSE '0';
END;

10
Electrónica Digital II Problemas de Diseño de Circuitos Secuenciales # 1
Profesor: Víctor Escartín

Ejemplo # 7.
Diseñar en un PLD, un circuito de alarma con dos entradas SET e INTRUDER. Cuando SET = 1 e INTRUDER = 1, el circuito
debe activar una salida HORN para avisar de la ocurrencia de una violación en este sistema de seguridad. Cuando SET = 0 el
sistema no esta activo y la salida HORN = 0. Cuando SET = 1 y INTRUDER = 0, indica que no hay violación en el sistema de
seguridad aunque esta activo y la salida HORN = 0.
ENTRADAS SALIDA
SET Habilitación de la alarma
Si esta activa (1) indica violación en el
Señaliza la presencia de HORN
INTRUDER sistema de seguridad
un Intruso

Tabla de estado.
Observación Estado actual Estado futuro, salida
SET INTRUDER
00 01 11 10
Alarma NO activa AlarmaOFF AlarmaOFF, 0 AlarmaOFF, 0 AlarmaON, 0 AlarmaON, 0
Alarma activa AlarmaON AlarmaOFF, 0 AlarmaOFF, 0 Violación, 1 AlarmaON, 0
Detección de Intruso Violacion AlarmaOFF, 0 AlarmaOFF, 0 Violación, 1 Violación, 1

Esta maquina también puede ser del tipo Moore. La diferencia esta en que en el estado AlarmaON y con la entrada 11, si la
maquina es Mearly la salida se activa y si es Moore se activara cuando llegue el reloj y pase al estado de violación.
El periodo del reloj debe ser menor que el menor tiempo que puede estar activo la señal de INTRUDER.
-- File: Alarma_1
--This Mealy machine implements a security system with a state table.
--The machine has three states (AlarmaOFF, AlarmaON, and Violacion)
--and two inputs or sensors (set and intruder).
--The security system can be turned to the Off state by deasserting set.
--A horn(output) sounds if the system is On and intruder is asserted.
-- Dispositivo: 16V8
LIBRARY IEEE;
USE IEEE.Std_Logic_1164.ALL;

ENTITY Alarma_1 IS PORT (


set, intruder, clk: IN Std_Logic;
horn: OUT Std_Logic);
END Alarma_1;

ARCHITECTURE A_Alarma_1 OF Alarma_1 IS


TYPE states IS (AlarmaOFF, AlarmaON, Violacion);
SIGNAL state, nextState: states;

BEGIN
PROC1: PROCESS (set, intruder)
BEGIN
CASE state IS
WHEN AlarmaOFF => IF set = '1' THEN nextState <= AlarmaON;
ELSE nextState <= AlarmaOFF;
END IF;
WHEN AlarmaON => IF intruder = '1' THEN horn <= '1';
nextState <= Violacion;
ELSIF set = '0' THEN horn <= '0';
nextState <= AlarmaOFF;
ELSE nextState <= AlarmaON;
END IF;
WHEN Violacion => IF set = '0' THEN horn <= '0';
nextState <= AlarmaOFF;
ELSE nextState <= Violacion; -- Horrn ya esta en uno.
END IF;
11
Electrónica Digital II Problemas de Diseño de Circuitos Secuenciales # 1
Profesor: Víctor Escartín
WHEN others => nextState <= AlarmaOFF;
END CASE;
END PROCESS;

proc2: PROCESS(CLK)
BEGIN
IF CLK'Event AND CLK='1' THEN
state <= nextState;
END If;
END PROCESS;

END;

State encoding (sequential) for 'state' is:


alarmaoff := b"00";
alarmaon := b"01";
violacion := b"10";

DESIGN EQUATIONS
stateSBV_0.D = intruder * stateSBV_1.Q
+ set * stateSBV_0.Q

stateSBV_0.C = clk

stateSBV_1.D = set * /stateSBV_0.Q * /stateSBV_1.Q


+ set * /intruder * stateSBV_1.Q

stateSBV_1.C = clk

horn = horn * /stateSBV_0.Q * /stateSBV_1.Q


+ intruder * stateSBV_1.Q
+ set * horn

12
Electrónica Digital II Problemas de Diseño de Circuitos Secuenciales # 1
Profesor: Víctor Escartín

Ejemplo # 8.
Veamos otra variante de realización del ejemplo 1, utilizando un solo PROCESS
Tabla de estado.
Observación Estado actual Estado futuro, salida
SET INTRUDER
00 01 11 10
Alarma NO activa AlarmaOFF AlarmaOFF, 0 AlarmaOFF, 0 AlarmaON, 0 AlarmaON, 0
Alarma activa AlarmaON AlarmaOFF, 0 AlarmaOFF, 0 Violación, 1 AlarmaON, 0
Detección de Intruso Violacion AlarmaOFF, 0 AlarmaOFF, 0 Violación, 1 Violación, 1

-- File: Alarma_3
-- simple security system uses a mealy machine
--This Mealy machine implements a security system with a state table.
--The machine has three states (AlarmaOFF, AlarmaON, and Violacion)
--and two inputs or sensors (set and intruder).
--The security system can be turned to the Off state by deasserting
--set. A horn(output) sounds if the system is On and intruder is
--asserted.

LIBRARY IEEE;
USE IEEE.Std_Logic_1164.ALL;

ENTITY Alarma_2 IS PORT (


set, intruder, clk: IN Std_Logic;
horn: OUT Std_Logic);
END Alarma_2;

ARCHITECTURE A_Alarma_2 OF Alarma_2 IS


TYPE states IS (AlarmaOFF, AlarmaON, Violacion);
SIGNAL state: states;

BEGIN
PROC1: PROCESS (CLK)
BEGIN
IF CLK'Event AND CLK='1' THEN
CASE state IS
WHEN AlarmaOFF =>
IF set = '1' THEN State <= AlarmaON;
ELSE State <= AlarmaOFF;
END IF;
WHEN AlarmaON =>
IF intruder = '1' THEN State <= Violacion;
ELSIF set = '0' THEN State <= AlarmaOFF;
ELSE State <= AlarmaON;
END IF;
WHEN Violacion =>
IF set = '0' THEN State <= AlarmaOFF;
ELSE State <= Violacion;
END IF;
WHEN others => State <= AlarmaOFF;
END CASE;
END IF;
END PROCESS;
HORN <= '1' WHEN State = AlarmaON AND SET = '1' AND intruder = '1' ELSE
'1' WHEN State = Violacion AND SET = '1' ELSE
'0';

END;
13
Electrónica Digital II Problemas de Diseño de Circuitos Secuenciales # 1
Profesor: Víctor Escartín

State encoding (sequential) for 'state' is:


alarmaoff := b"00";
alarmaon := b"01";
violacion := b"10";

DESIGN EQUATIONS
horn = set * intruder * stateSBV_1.Q
+ set * stateSBV_0.Q

stateSBV_0.D = set * stateSBV_0.Q


+ intruder * stateSBV_1.Q
stateSBV_0.C = clk

stateSBV_1.D = set * /stateSBV_0.Q * /stateSBV_1.Q


+ set * /intruder * stateSBV_1.Q
stateSBV_1.C = clk

14
Electrónica Digital II Problemas de Diseño de Circuitos Secuenciales # 1
Profesor: Víctor Escartín

Ejemplo # 9.
Diseñe en un PLD, el circuito de control de un equipo para entregar latas de refrescos. El equipo admite monedas de 5 (nickel), 10
(dime) y 25 (quarter). El costo del refresco es de 30 centavos. Cuando se le entrega al equipo el costo de un refresco este activa
una salida (GiveDrink) para permitir la salida de la lata de refresco. Si hay que dar vuelto se activa una salida ( returnNickel) para
devolver 5 centavos, otra salida (ReturnDime) si hay que devolver 10 centavos.

ENTRADAS SALIDAS
Nickel 5 centavos GiveDrink Habilita la salida del refresco
Dime 10 centavos ReturnNickel Devuelve 5 centavos
Quarter 25 centavos ReturnDime Devuelve 10 centavos

En este sistema el reloj tiene que ser mas rápido que el tiempo en que la moneda pasa por el sensor que la detecta.
Las salidas cuando están en UNO dependen del estado y de la señal de entrada por lo que depende del tiempo en que la entrada esta
en uno. Si este tiempo es suficiente, perfecto de lo contrario la salida hay que utilizarla solo como una señal para que activen al
dispositivo que se encarga de la operación de las salidas.

Tabla de estado.
Estado
Observación Estado futuro, salida
actual
Nickel Dime Quarter
000 001 010 100
No hay moneda Zero Zero Quarter Dime Five
Cinco centavos Five Five Zero,100 Fifteen Dime
Diez centavos Ten Ten Zero,110 Twenty Fifteen
Quince centavos Fifteen Fifteen Zero,101 Twenrty Five Twenty
Veinte centavos Twenty Twenty Zero,111 Zero,100 Twenty Five
Veinte y cinco centavos TwentyFive TwentyFive OweDime,101 Zero,110 Zero,100
Vuelto de diez centavos OweDime Zero,001 Zero,001 Zero,001 Zero,001

SALIDA = GiveDrink, ReturnNickel, ReturnDime

-- Refresco
--Dispositivo: 16V8

LIBRARY IEEE;
USE IEEE.Std_Logic_1164.ALL;

ENTITY DRINK IS PORT(


nickel,dime,quarter,CLK : IN Std_Logic;
returnDime,returnNickel,giveDrink: OUT Std_Logic);
END DRINK;

ARCHITECTURE A_DRINK of DRINK IS


TYPE DrinkState is (zero,five,ten,fifteen,twenty,twentyfive,owedime);
SIGNAL DrinkStatus: DrinkState;
BEGIN
PROCESS (CLK)
BEGIN
IF CLK'Event AND CLK = '1' THEN
-- set up default values
giveDrink <= '0';
returnDime <= '0';
returnNickel <= '0';
CASE DrinkStatus IS
WHEN Zero => IF (nickel = '1') THEN drinkStatus <= Five;
ELSIF (dime = '1') THEN drinkStatus <= Ten;
ELSIF (quarter = '1') THEN drinkStatus <= TwentyFive;
15
Electrónica Digital II Problemas de Diseño de Circuitos Secuenciales # 1
Profesor: Víctor Escartín
END IF;
WHEN Five => IF (nickel = '1') THEN drinkStatus <= Ten;
ELSIF (dime = '1') THEN drinkStatus <= Fifteen;
ELSIF (quarter = '1') THEN giveDrink <= '1';
drinkStatus <= zero;
END IF;
WHEN Ten => IF (nickel = '1') THEN drinkStatus <= Fifteen;
ELSIF (dime = '1') THEN drinkStatus <= Twenty;
ELSIF (quarter = '1') THEN giveDrink <= '1';
returnNickel <= '1';
drinkStatus <= zero;
END IF;

WHEN Fifteen => IF (nickel = '1') THEN drinkStatus <= Twenty;


ELSIF (dime = '1') THEN drinkStatus <= TwentyFive;
ELSIF (quarter = '1') THEN giveDrink <= '1';
returnDime <= '1';
drinkStatus <= zero;
END IF;
WHEN Twenty => IF (nickel = '1') THEN drinkStatus <= TwentyFive;
ELSIF (dime = '1') THEN giveDrink <= '1';
drinkStatus <= zero;
ELSIF (quarter = '1') THEN giveDrink <= '1';
returnNickel <= '1';
returnDime <= '1';
drinkStatus <= zero;
END IF;
WHEN TwentyFive => IF (nickel = '1') THEN giveDrink <= '1';
drinkStatus <= zero;
ELSIF (dime = '1') THEN returnNickel <= '1';
giveDrink <= '1';
drinkStatus <= zero;
ELSIF (quarter = '1') THEN giveDrink <= '1';
returnDime <= '1';
drinkStatus <= oweDime;
END IF;
WHEN oweDime => returnDime <= '1';
drinkStatus <= zero;

-- The following WHEN makes sure that the state machine resets
-- itself if it somehow gets into an undefined state.
WHEN others => drinkStatus <= zero;
END CASE;
END IF;
END process;
END;

State encoding (sequential) for 'drinkstatus' is:


zero := b"000";
five := b"001";
ten := b"010";
fifteen := b"011";
twenty := b"100";
twentyfive := b"101";
owedime := b"110";

16
Electrónica Digital II Problemas de Diseño de Circuitos Secuenciales # 1
Profesor: Víctor Escartín
DESIGN EQUATIONS
returndime.D = /nickel * /dime * quarter * drinkstatusSBV_1.Q *
drinkstatusSBV_2.Q
+ /nickel * /dime * quarter * drinkstatusSBV_0.Q
+ drinkstatusSBV_0.Q * drinkstatusSBV_1.Q

returndime.C = clk

returnnickel.D = /nickel * /dime * quarter * /drinkstatusSBV_0.Q *


drinkstatusSBV_1.Q * /drinkstatusSBV_2.Q
+ /nickel * /dime * quarter * drinkstatusSBV_0.Q *
/drinkstatusSBV_1.Q * /drinkstatusSBV_2.Q
+ /nickel * dime * drinkstatusSBV_0.Q * drinkstatusSBV_2.Q

returnnickel.C = clk

givedrink.D = /nickel * /dime * quarter * /drinkstatusSBV_0.Q *


drinkstatusSBV_1.Q
+ /nickel * dime * drinkstatusSBV_0.Q * /drinkstatusSBV_1.Q
+ /nickel * /dime * quarter * drinkstatusSBV_2.Q
+ /nickel * quarter * drinkstatusSBV_0.Q * /drinkstatusSBV_1.Q
+ nickel * drinkstatusSBV_0.Q * drinkstatusSBV_2.Q

givedrink.C = clk

drinkstatusSBV_0.D = /nickel * /dime * quarter * /drinkstatusSBV_0.Q *


/drinkstatusSBV_1.Q * /drinkstatusSBV_2.Q
+ /dime * /quarter * drinkstatusSBV_0.Q * /drinkstatusSBV_1.Q *
/drinkstatusSBV_2.Q
+ /nickel * dime * /drinkstatusSBV_0.Q * drinkstatusSBV_1.Q
+ nickel * drinkstatusSBV_0.Q * /drinkstatusSBV_1.Q *
/drinkstatusSBV_2.Q
+ /nickel * /dime * drinkstatusSBV_0.Q * drinkstatusSBV_2.Q
+ nickel * drinkstatusSBV_1.Q * drinkstatusSBV_2.Q

drinkstatusSBV_0.C = clk

drinkstatusSBV_1.D = /nickel * /dime * quarter * drinkstatusSBV_0.Q *


drinkstatusSBV_2.Q
+ /nickel * /dime * /quarter * /drinkstatusSBV_0.Q *
drinkstatusSBV_1.Q
+ nickel * /drinkstatusSBV_0.Q * drinkstatusSBV_1.Q *
/drinkstatusSBV_2.Q
+ nickel * /drinkstatusSBV_0.Q * /drinkstatusSBV_1.Q *
drinkstatusSBV_2.Q
+ /nickel * dime * /drinkstatusSBV_0.Q * /drinkstatusSBV_1.Q

drinkstatusSBV_1.C = clk

drinkstatusSBV_2.D = /dime * quarter * /drinkstatusSBV_0.Q * /drinkstatusSBV_1.Q *


/drinkstatusSBV_2.Q
+ /nickel * /dime * /quarter * drinkstatusSBV_2.Q
+ /nickel * dime * /drinkstatusSBV_0.Q * drinkstatusSBV_2.Q
+ nickel * /drinkstatusSBV_1.Q * /drinkstatusSBV_2.Q
+ nickel * /drinkstatusSBV_0.Q * /drinkstatusSBV_2.Q

drinkstatusSBV_2.C = clk

17
Electrónica Digital II Problemas de Diseño de Circuitos Secuenciales # 1
Profesor: Víctor Escartín

Ejemplo # 10.
Diseñe utilizando un PLD, un semáforo con las siguientes características. La luz en la calle con dirección Norte – Sur es
usualmente verde y permanece así por un mínimo de 5 periodos del reloj antes de cambiar. Para que haya un cambio tiene que
haberse detectado la presencia de un carro por la calle con dirección Este – Oeste. El cambio de la luz verde para la roja siempre es
pasando por la amarilla. Si hay algún carro circulando por la dirección Este – Oeste, la luz en los semáforos de las calles este –
oeste se ponen verde por un ciclo del reloj.

ENTRADAS SALIDAS
Sensor que indica la Green,
CAR presencia de un carro en Yellow Norte Sur
la dirección E _ O Red
Green,
Yellow Este Oeste
Red

Tabla de estado.
Observación Estado
Estado futuro, salida
actual
CAR, Count_State
N-S E_O 00 01 11 10
Green Red Green_Red Green_Red,1 Green_Red Yellow_Red,0 Green_Red,1
Yellow Red Yellow_Red Red_Green Red_Green Red_Green Red_Green
Red Green Red_Green Red_Yellow Red_Yellow Red_Yellow Red_Yellow
Red Yellow Red_Yellow Green_Red Green_Red Green_Red Green_Red
Count_State = 0 si el contador es menor que 5, en caso contrario es 1.
En la tabla anterior se utilizo a Count_State como si fuese una salida digital para minimizar el número de columnas que se deben
analizar. En el programa se utiliza NSCount se utiliza como un contador de los ciclos del reloj.
SALIDA = Incrementar a NSCount
En este PLD se utilizan 9 terminales de salida, 6 para las luces y 3 para el contador (NSCount)
Solo se especifica lo que le sucede a NSCount en el estado Green-Red, en los otros no es necesario ya quwe estara todo el tiempo
en cero.

-- Semáforo
-- 22V10
LIBRARY IEEE;
USE IEEE.Std_Logic_1164.ALL;
USE Work.Std_Arith.ALL;

-- This state machine implements a simple traffic light. The N - S light is usually green, and remains green
-- for a minimum of five clocks after being red.
-- If a car is travelling E-W, the E-W light turns green for only one clock.

ENTITY traffic_light IS
PORT(clk, car: IN std_logic; --car is an E-W travelling car
lights: BUFFER std_logic_VECTOR(0 TO 5));
END traffic_light;

ARCHITECTURE moore1 OF traffic_light IS


-- The lights (outputs) are encoded in the following states. For example, the
-- state green_red indicates the N-S light is green and the E-W light is red.
-- "001" indicates green light, "010" yellow, "100" red; "&" concatenates
-- – Yellow – Green & Red – Yellow - Green
CONSTANT green_red : std_logic_VECTOR(0 TO 5) := "001" & "100";
CONSTANT yellow_red : std_logic_VECTOR(0 TO 5) := "010" & "100";
CONSTANT red_green : std_logic_VECTOR(0 TO 5) := "100" & "001";
CONSTANT red_yellow : std_logic_VECTOR(0 TO 5) := "100" & "010";

-- nscount to verify five consecutive N-S greens


18
Electrónica Digital II Problemas de Diseño de Circuitos Secuenciales # 1
Profesor: Víctor Escartín
SIGNAL nscount: INTEGER RANGE 0 TO 5;

BEGIN
PROCESS (CLK)
BEGIN
IF CLK'Event AND CLK = '1' THEN
CASE lights IS
WHEN green_red => IF nscount < 5 THEN lights <= green_red;
nscount <= nscount + 1;
ELSIF car = '1' THEN lights <= yellow_red;
nscount <= 0;
ELSE lights <= green_red;
END IF;
WHEN yellow_red => lights <= red_green;
WHEN red_green => lights <= red_yellow;
WHEN red_yellow => lights <= green_red;
WHEN others => lights <= green_red;
END CASE;
END IF;
END PROCESS;
END moore1;

DESIGN EQUATIONS
lights_4.D = lights_0.Q * /lights_1.Q * /lights_2.Q * /lights_3.Q *
/lights_4.Q * lights_5.Q
lights_4.AR = GND
lights_4.SP = GND
lights_4.C = clk
lights_5.D = /lights_0.Q * lights_1.Q * /lights_2.Q * lights_3.Q *
/lights_4.Q * /lights_5.Q
lights_5.AR = GND
lights_5.SP = GND
lights_5.C = clk
lights_0.D = lights_0.Q * /lights_1.Q * /lights_2.Q * /lights_3.Q *
/lights_4.Q * lights_5.Q
+ /lights_0.Q * lights_1.Q * /lights_2.Q * lights_3.Q *
/lights_4.Q * /lights_5.Q
lights_0.AR = GND
lights_0.SP = GND
lights_0.C = clk
lights_1.D = /lights_0.Q * /lights_1.Q * lights_2.Q * lights_3.Q *
/lights_4.Q * /lights_5.Q * car * nscount_IBV_2.Q *
nscount_IBV_0.Q
+ /lights_0.Q * /lights_1.Q * lights_2.Q * lights_3.Q *
/lights_4.Q * /lights_5.Q * car * nscount_IBV_2.Q *
nscount_IBV_1.Q
lights_1.AR = GND
lights_1.SP = GND
lights_1.C = clk
/lights_2.D = /lights_0.Q * /lights_1.Q * lights_2.Q * lights_3.Q *
/lights_4.Q * /lights_5.Q * car * nscount_IBV_2.Q *
nscount_IBV_0.Q
+ /lights_0.Q * /lights_1.Q * lights_2.Q * lights_3.Q *
/lights_4.Q * /lights_5.Q * car * nscount_IBV_2.Q *
nscount_IBV_1.Q
+ lights_0.Q * /lights_1.Q * /lights_2.Q * /lights_3.Q *
/lights_4.Q * lights_5.Q
+ /lights_0.Q * lights_1.Q * /lights_2.Q * lights_3.Q *
/lights_4.Q * /lights_5.Q
19
Electrónica Digital II Problemas de Diseño de Circuitos Secuenciales # 1
Profesor: Víctor Escartín
lights_2.AR = GND
lights_2.SP = GND
lights_2.C = clk
/lights_3.D = lights_0.Q * /lights_1.Q * /lights_2.Q * /lights_3.Q *
/lights_4.Q * lights_5.Q
+ /lights_0.Q * lights_1.Q * /lights_2.Q * lights_3.Q *
/lights_4.Q * /lights_5.Q

lights_3.AR = GND
lights_3.SP = GND
lights_3.C = clk

nscount_IBV_2.D = /lights_0.Q * /lights_1.Q * lights_2.Q * lights_3.Q *


/lights_4.Q * /lights_5.Q * /nscount_IBV_2.Q * nscount_IBV_1.Q *
nscount_IBV_0.Q
+ nscount_IBV_2.Q * /nscount_IBV_1.Q * /nscount_IBV_0.Q
+ /car * nscount_IBV_2.Q
+ lights_5.Q * nscount_IBV_2.Q
+ lights_4.Q * nscount_IBV_2.Q
+ /lights_3.Q * nscount_IBV_2.Q
+ /lights_2.Q * nscount_IBV_2.Q
+ lights_1.Q * nscount_IBV_2.Q
+ lights_0.Q * nscount_IBV_2.Q

nscount_IBV_2.AR = GND
nscount_IBV_2.SP = GND
nscount_IBV_2.C = clk

nscount_IBV_1.D = /lights_0.Q * /lights_1.Q * lights_2.Q * lights_3.Q *


/lights_4.Q * /lights_5.Q * /nscount_IBV_2.Q * /nscount_IBV_1.Q *
nscount_IBV_0.Q
+ /car * nscount_IBV_2.Q * nscount_IBV_1.Q
+ /nscount_IBV_2.Q * nscount_IBV_1.Q * /nscount_IBV_0.Q
+ lights_5.Q * nscount_IBV_1.Q
+ lights_4.Q * nscount_IBV_1.Q
+ /lights_3.Q * nscount_IBV_1.Q
+ /lights_2.Q * nscount_IBV_1.Q
+ lights_1.Q * nscount_IBV_1.Q
+ lights_0.Q * nscount_IBV_1.Q

nscount_IBV_1.AR = GND
nscount_IBV_1.SP = GND
nscount_IBV_1.C = clk

nscount_IBV_0.D = /lights_0.Q * /lights_1.Q * lights_2.Q * lights_3.Q *


/lights_4.Q * /lights_5.Q * /nscount_IBV_1.Q * /nscount_IBV_0.Q
+ /lights_0.Q * /lights_1.Q * lights_2.Q * lights_3.Q *
/lights_4.Q * /lights_5.Q * /nscount_IBV_2.Q * /nscount_IBV_0.Q
+ /car * nscount_IBV_2.Q * nscount_IBV_0.Q
+ lights_5.Q * nscount_IBV_0.Q
+ lights_4.Q * nscount_IBV_0.Q
+ /lights_3.Q * nscount_IBV_0.Q
+ /lights_2.Q * nscount_IBV_0.Q
+ lights_1.Q * nscount_IBV_0.Q
+ lights_0.Q * nscount_IBV_0.Q

nscount_IBV_0.AR = GND
nscount_IBV_0.SP = GND
nscount_IBV_0.C = clk
20
Electrónica Digital II Problemas de Diseño de Circuitos Secuenciales # 1
Profesor: Víctor Escartín

Ejemplo # 11.
Diseñar utilizando un PLD, una maquina secuencial sincrónica para realizar un juego para predecir que LEDs se encenderá. El
sistema dispone de cuatro entradas G1 a G4, que están conectadas a cuatro push buttons. La maquina tiene cuatros salidas L1 a L4,
conectadas a LEDs. El sistema también tiene una salida mas (ERR) conectada a otro LEDs para indicar que se ha cometido un
Error. El sistema funciona de la siguiente forma, solo hay un LEDs (L1 a L4) encendido y en cada Tick (periodo) del reloj el LED
en encendido cambia. La frecuencia del reloj es alrededor de 4 HZ. El juego consiste en lo siguiente, Ud debe apretar un push
button, si el LED de Error se enciende es porque ese push button no concuerda con el LED que se encenderá en el próximo Tick
del reloj. Cuando adivina y coincide el push button con el LED a encenderse el juego se detiene. y se comienza de nuevo. Si se
aprieta más de un push button el sistema ilumina el LED de error. El sistema debe tener una entrada de reset.

Tabla de estado.
Estado Actual Ecuaciones Estado Futuro Salida
L1 L2 L3 L4 ERR
S1 /G1 /G2 /G3 /G4 S2 1 0 0 0 0
S1 G1 /G2 /G3 /G4 SOK 1 0 0 0 0
S1 G2 + G3 + G4 SERR 1 0 0 0 0
S2 /G1 /G2 /G3 /G4 S3 0 1 0 0 0
S2 /G1 G2 /G3 /G4 SOK 0 1 0 0 0
S2 G2 + G3 + G4 SERR 0 1 0 0 0
S3 /G1 /G2 /G3 /G4 S4 0 0 1 0 0
S3 /G1 /G2 G3 /G4 SOK 0 0 1 0 0
S3 G2 + G3 + G4 SERR 0 0 1 0 0
S4 /G1 /G2 /G3 /G4 S1 0 0 0 1 0
S4 /G1 /G2 /G3 G4 SOK 0 0 0 1 0
S4 G2 + G3 + G4 SERR 0 0 0 1 0
SOK G1 + G2 + G3 + G4 SOK 0 0 0 0 0
SOK /G1 /G2 /G3 /G4 S1 0 0 0 0 0
SERR G1 + G2 + G3 + G4 SERR 0 0 0 0 1
SERR /G1 /G2 /G3 /G4 S1 0 0 0 0 1

-- THE GUESSING GAME


-- 22V10

LIBRARY IEEE;
USE IEEE.Std_Logic_1164.ALL;

ENTITY G_Game IS PORT(


Clk, Reset, G1, G2, G3, G4: IN std_logic;
L1, L2, L3, L4, Err: OUT std_logic);
END G_Game;

ARCHITECTURE A_G_Game OF G_Game IS


TYPE Estados IS (S1, S2, S3, S4, SOK, SERR);
SIGNAL Estado: Estados;

BEGIN
PROCESS (Reset,CLK)
BEGIN
IF Reset = '0' THEN Estado <= SOK;
ELSIF CLK'Event AND CLK = '1' THEN
CASE Estado IS
WHEN S1 => IF G2='1' OR G3='1' OR G4='1' THEN Estado <= SErr;
ELSIF G1 = '1' THEN Estado <= SOK;
ELSE Estado <= S2;
21
Electrónica Digital II Problemas de Diseño de Circuitos Secuenciales # 1
Profesor: Víctor Escartín
END IF;
WHEN S2 => IF G1='1' OR G3='1' OR G4='1' THEN Estado <= SErr;
ELSIF G2 = '1' THEN Estado <= SOK;
ELSE Estado <= S3;
END IF;
WHEN S3 => IF G2='1' OR G2='1' OR G4='1' THEN Estado <= SErr;
ELSIF G3 = '1' THEN Estado <= SOK;
ELSE Estado <= S4;
END IF;
WHEN S4 => IF G1='1' OR G2='1' OR G3='1' THEN Estado <= SErr;
ELSIF G4 = '1' THEN Estado <= SOK;
ELSE Estado <= S1;
END IF;
WHEN SOK |SERR => IF G1='0' OR G2='0' OR G3='0' OR G4='0'
THEN Estado <= S1;
END IF;
WHEN OTHERS => Estado <= S1;
END CASE;
END IF;
END PROCESS;
L1 <= '1' WHEN Estado = S1 ELSE '0';
L2 <= '1' WHEN Estado = S2 ELSE '0';
L3 <= '1' WHEN Estado = S3 ELSE '0';
L4 <= '1' WHEN Estado = S4 ELSE '0';
ERR <= '1' WHEN Estado = SERR ELSE '0';
END;

State encoding (sequential) for 'estado' is:


s1 := b"000";
s2 := b"001";
s3 := b"010";
s4 := b"011";
sok := b"100";
serr := b"101";

DESIGN EQUATIONS
err = estadoSBV_0.Q * estadoSBV_2.Q
l4 = estadoSBV_1.Q * estadoSBV_2.Q
l3 = estadoSBV_1.Q * /estadoSBV_2.Q
l2 = /estadoSBV_0.Q * /estadoSBV_1.Q * estadoSBV_2.Q
l1 = /estadoSBV_0.Q * /estadoSBV_1.Q * /estadoSBV_2.Q

estadoSBV_2.D = estadoSBV_2.Q * g1 * g2 * g3 * g4
+ /estadoSBV_0.Q * /estadoSBV_2.Q * /g1 * /g3
+ /estadoSBV_0.Q * g1 * g2
+ estadoSBV_1.Q * g3 * g4
+ estadoSBV_1.Q * /estadoSBV_2.Q * /g3
+ /estadoSBV_0.Q * /estadoSBV_1.Q * g4
+ estadoSBV_1.Q * estadoSBV_2.Q * g3
+ /estadoSBV_0.Q * /estadoSBV_1.Q * g3
+ /estadoSBV_0.Q * estadoSBV_2.Q * g1
+ estadoSBV_1.Q * g2

estadoSBV_2.AR = /reset
estadoSBV_2.SP = GND
estadoSBV_2.C = clk

estadoSBV_1.D = /estadoSBV_0.Q * /estadoSBV_1.Q * estadoSBV_2.Q * /g1 * /g2 *


/g3 * /g4
22
Electrónica Digital II Problemas de Diseño de Circuitos Secuenciales # 1
Profesor: Víctor Escartín
+ estadoSBV_1.Q * /estadoSBV_2.Q * /g2 * /g3 * /g4

estadoSBV_1.AR = /reset
estadoSBV_1.SP = GND
estadoSBV_1.C = clk

/estadoSBV_0.D = estadoSBV_1.Q * /estadoSBV_2.Q * /g2 * /g3 * /g4


+ /g1 * /g2 * /g3 * /g4
+ estadoSBV_0.Q * /estadoSBV_1.Q * /g4
+ estadoSBV_0.Q * /estadoSBV_1.Q * /g3
+ estadoSBV_0.Q * /estadoSBV_1.Q * /g2
+ estadoSBV_0.Q * /estadoSBV_2.Q * /g4
+ estadoSBV_0.Q * /estadoSBV_2.Q * /g3
+ estadoSBV_0.Q * /estadoSBV_2.Q * /g2
+ estadoSBV_0.Q * /g1

estadoSBV_0.AR = /reset
estadoSBV_0.SP = GND
estadoSBV_0.C = clk

23

You might also like