o He intentado abordar este problema, pero parece que no puedo llegar a ninguna parte. No sé si estoy haciendo las cosas demasiado complejas. Se me ocurrió este diagrama de estado y tabla de estado. Pero no sé si esto es demasiado complejo. Ni siquiera sé cómo implementarlo desde mi tabla de estado. Describí mi problema a continuación.
-
Cuando el disco gira a la velocidad máxima, se habilita ENABLE (1). Mientras está habilitado, la frecuencia de reloj será lo suficientemente alta como para garantizar que el disco se muestree 8 veces por rotación. De lo contrario (cuando el disco se detiene o cambia de dirección), el sistema externo mantiene ENABLE low (0).
-
El valor de la DIRECCIÓN debe ser bajo (0) si la dirección del giro es a la izquierda. El valor de DIRECCIÓN debe ser alto (1) si la dirección de giro es hacia la derecha. El valor de la salida de DIRECCIÓN se ignora (y, por lo tanto, se puede tratar como si no importara) hasta que se valide.
-
Cuando ENABLE es bajo o cuando ENABLE es alto y la DIRECCIÓN aún no es válida, la salida VALID se mantiene baja (0). Una vez que se determina la dirección del giro (y el valor de la dirección se establece en consecuencia), debe validarse VALID.
-
Una vez que se valida el VALID, las salidas deben mantenerse estables hasta que ENABLE baje.