Donde ocurre el restablecimiento con el flip-flop SR

3

En una de mis clases estamos aprendiendo sobre circuitos. Para la tarea, tenemos que crear una máquina de estados finitos para una máquina expendedora usando un flip-flop SR. La máquina puede tomar un centavo, una moneda de diez centavos o nada hasta llegar a al menos 15 centavos, por lo que tiene 4 estados (0, 5, 10 y 15 centavos). Una vez que la máquina recibe 15 centavos, dispensa su producto. Una vez en este estado, si no se deposita nada, pasa al estado 0; si se deposita un níquel, pasa al estado de 5 centavos; Si se deposita una moneda de diez centavos, lo hace al estado de 10 centavos.

La tabla de verdad que se me ocurrió es:

Present|Inputs| Next  |        | SR Flip Flop
       |      |       | Output |
Q1  Q0 |D   N |P1   P0|        | S1 R1 S0 R0
_______|______|_______|________|_____________
0   0  | 0  0 | 0   0 |   0    | 0  X 0 X
0   0  | 0  1 | 0   1 |   0    | 0  X 1 0
0   0  | 1  0 | 1   0 |   0    | 1  0 0 X
0   0  | 1  1 | X   X |   X    | X  X X X
_______|______|_______|________|_____________
0   1  | 0  0 | 0   1 |   0    | 0  X X 0
0   1  | 0  1 | 1   0 |   0    | 1  0 0 1
0   1  | 1  0 | 1   1 |   0    | 1  0 X 0
0   1  | 1  1 | X   X |   X    | X  X X X
_______|______|_______|________|_____________
1   0  | 0  0 | 1   0 |   0    | X  0 0 X
1   0  | 0  1 | 1   1 |   0    | X  0 1 0
1   0  | 1  0 | 1   1 |   0    | X  0 1 0
1   0  | 1  1 | X   X |   X    | X  X X X
_______|______|_______|________|_____________
1   1  | 0  0 | 0   0 |   1    | 0  1 0 1
1   1  | 0  1 | 0   1 |   1    | 0  1 X 0
1   1  | 1  0 | 1   0 |   1    | X  0 0 1
1   1  | 1  1 | X   X |   X    | X  X X X

Basándome en esta tabla de verdad [y los mapas k que hice de ella], creé las siguientes puertas lógicas:

Mipreguntaes,¿dóndeocurreexactamenteel"restablecimiento"? Por ejemplo, si estoy en el estado de 15 centavos y deposito un centavo, ¿cómo va a la etapa de 5 centavos? ¿Tengo que hacer que la salida del bucle "abierto" alrededor? Perdón por una pregunta tan novicia, ¡espero que tenga sentido!

Editar: Las dos primeras columnas corresponden al estado actual de la máquina, es decir, cuánto ha depositado hasta ahora. Entonces, Q0 Q1 = 00 representa el primer estado (0 centavos), Q0 Q1 = 01 representa el segundo estado (5 centavos), etc. Las siguientes dos columnas representan agregar un níquel o moneda de diez centavos. Si se encuentra en el estado 00 y y 01, debe pasar al estado 01. Ya que no puede depositar una moneda de cinco centavos a la vez, no nos importa la entrada 11. Si está en el estado 10 y agrega 10, ve al estado 11 (¡y no vuelvas a cambiar!)

    
pregunta A D

2 respuestas

4

El restablecimiento, dada la tabla de verdad que proporcionó, sucede solo porque el estado 11 de la máquina de estado se asigna en el estado 00 ; de hecho, si observa las salidas, ambos estados tienen el mismo estado siguiente, por lo que si las entradas son 00 (búfer), desde el estado 11 irá a 00 .

Una optimización de la máquina usaría la topología Mealy, en la que asignas el estado 11 en 00 , simplemente cambiando la salida si proviene de una secuencia de activación.

Actualizar

Puedes entenderlo mejor usando los diagramas:

Moore:

Pequeñoerror:laflechaquevade(10)a(11)esparalasentradas01y10

Mealy:

    
respondido por el clabacchio
2

Dependiendo de cómo se implementen los sensores de monedas y la salida de la máquina, es posible que necesite algunos estados más para permitir el hecho de que una moneda podría estar presionando un interruptor durante un período de tiempo arbitrario; No veo nada en tu máquina para manejar eso. Tampoco está claro cuánto tiempo se supone que debe estar activa la salida del "producto dispensado". Una posibilidad lógica sería que el "producto de dispensación" permanezca activo hasta que se devuelva una señal del mecanismo que indica que se ha dispensado el producto, por lo que la máquina debería restablecer su estado de inicio.

Además, si va a utilizar latches RS, debe diseñar su máquina de modo que si se alternan varios latches simultáneamente para una transición de estado, no importa si uno cambia antes que el otro. Si la máquina estuviera en el estado "01" y llegara un níquel, intentaría pasar al estado "10". Si Q0 y Q1 son retenes RS, no hay razón para esperar que cambien simultáneamente.

Si desea minimizar el número de estados, el conjunto mínimo teórico, suponiendo que el ciclo del mecanismo de dispensación durará al menos todo lo que una entrada de moneda sería:

Nothing inserted
Switches active with $0.05
Switches idle with $0.05
Switches active with $0.10
Switches idle with $0.10
Total of $0.15 inserted (switch state irrelevant)

Seis estados, probablemente permitiendo una máquina de estados de tres bits. Sin embargo, supongo que le resultará más fácil utilizar diferentes estados para los escenarios "conmutador activo con segundo níquel" y "conmutador activo con primer dime". Además, puede reducir aún más los circuitos si utiliza cuatro pestillos en dos pares, donde los estados del primer par de pestañas se calculan utilizando las salidas del segundo, y el segundo par de pestañas copia el estado del primero siempre que No hay monedas presentes.

    
respondido por el supercat

Lea otras preguntas en las etiquetas