Pregunta 2 · Fonaments dels Computadors UAB 2023

Tema: Descripción de máquinas de estados en VHDL · Del examen Examen Parcial de Fundamentos de Computadores - Bloque 2 (2023)

Enunciado

Pregunta 2. Análisis y diseño a partir de código VHDL

A partir de la siguiente descripción en VHDL y la tabla de asignación de estados proporcionada, responde a los apartados indicados:

library ieee;

use ieee.std_logic_1164.all;

ENTITY MISTERIO IS

Port(A1, A0, clk, reset: in std_logic;

D1, D0: out std_logic);

End entity;

Architecture DETALLADA OF MISTERIO is

type states is (S0, S1, S2, S3);

signal q, next_q: states;

Begin

StoreState: Process (reset, clk);

Begin

If reset='1' then q<=S1;

elsif (clk'event and clk = '1') then q<=next_q;

endif;

End process StoreState;

ComputingGraf: Process (q, A1, A0)

Begin

next_q <= q;

case q is

when S0 => case A1&A0 is

when "01" | "10" | "11" => next_q <= S1; end case;

D1 <= '0'; D0 <= '0';

when S1 => case A1&A0 is

when "00" => next_q <= S0;

when "01" | "10" | "11" => next_q <= S2; end case;

D1 <= '0'; D0 <= '1';

when S2 => case A1&A0 is

when "00" => next_q <= S1;

when "10" | "11" => next_q <= S3; end case;

D1 <= '1'; D0 <= '0';

when S3 => case A1&A0 is

when "00" | "01" => next_q <= S2; end case;

D1 <= '1'; D0 <= '1';

end case;

End process ComputingGraf;

End Architecture DETALLADA of MISTERIO;

Estados

Asignación de código

S0

00

S1

01

S2

10

S3

11

Nota: La expresión A1&A0 hace referencia a la concatenación de los bits de entrada.

a.

Indica y justifica si la máquina es de Moore o de Mealy. Detalla la estructura del esquema canónico indicando bloques combinacionales (CC1, CC2), memoria (# flip-flops), nombres de las señales y número de bits de cada conexión.

b.

Plantea una implementación directa del sistema basada en multiplexores y flip-flops D con entradas asíncronas, señalando la correspondencia con los bloques del esquema genérico.

c.

Justifica si sería admisible suprimir la sentencia de inicialización next_q <= q; ubicada al comienzo del proceso combinacional ComputingGraf.

d.

Representa el grafo de estados de la máquina finita e indica de forma razonada cuál es su estado inicial.

Enunciado: Pregunta 2 · Fonaments dels Computadors UAB 2023

Solución

Según los criterios oficiales de corrección

a. Indica y justifica si la máquina es de Moore o de Mealy. Detalla la estructura del esquema canónico indicando bloques combinacionales (CC1, CC2), memoria (# flip-flops), nombres de las señales y número de bits de cada conexión.

Solución: Máquina de Moore. - Entrada externa: A1, A0 (bus de 2 bits). - Circuito combinacional 1 (CC1 / ComputingGraf): recibe la entrada (2 bits) y la realimentación del estado actual q (2 bits). Genera el estado futuro next_q (bus de 2 bits). - Memoria de estado: constituida por 2 flip-flops tipo D sincronizados por reloj (clk) y con señal de reinicio (reset). Almacena el código binario del estado (2 bits). - Circuito combinacional 2 (CC2 / ComputingGraf2): recibe el estado actual q (bus de 2 bits) y decodifica las salidas D1, D0 (bus de 2 bits).

b. Plantea una implementación directa del sistema basada en multiplexores y flip-flops D con entradas asíncronas, señalando la correspondencia con los bloques del esquema genérico.

Solución: - Bloque CC1 (Cálculo de estado siguiente): Se estructura mediante 4 multiplexores de 4 a 1 (uno por cada estado de origen, controlados por las entradas A1, A0), cuyas salidas de 2 bits se conectan a un multiplexor de 4 a 1 de 2 bits de ancho gobernado por el estado actual q (q1, q0), produciendo las líneas next_q (2 bits). - Bloque de Memoria: 2 biestables D (D1, D0) que reciben next_q y la señal común de CK. Para cumplir con el reset activo a S1 (código binario 01), el biestable 1 conecta Reset a su entrada asíncrona R (y entrada S = 0), mientras que el biestable 0 conecta Reset a su entrada asíncrona S (y entrada R = 0). - Bloque CC2 (Salidas): Un multiplexor de 4 a 1 de 2 bits de salida direccionado por q. En sus entradas fijas se cablean los valores asignados: entrada 00 con 00, entrada 01 con 01, entrada 10 con 10 y entrada 11 con 11 (en este caso particular, la salida coincide directamente con el código de estado: D1 = q1 y D0 = q0).

c. Justifica si sería admisible suprimir la sentencia de inicialización next_q <= q; ubicada al comienzo del proceso combinacional ComputingGraf.

Solución: No se puede eliminar.

d. Estado inicial

Solución: S1

d. Representa el grafo de estados de la máquina finita

Solución: Grafo de 4 estados con las siguientes transiciones y salidas: - S0 (D1 D0 = 00): * si A1 A0 = 01, 10, 11 (A1 A0 != 00) transita a S1 * si A1 A0 = 00 se mantiene en S0 - S1 (D1 D0 = 01): * si A1 A0 = 00 transita a S0 * si A1 A0 = 01, 10, 11 (A1 A0 != 00) transita a S2 - S2 (D1 D0 = 10): * si A1 A0 = 00 transita a S1 * si A1 A0 = 01 permanece en S2 * si A1 A0 = 10 o 11 transita a S3 - S3 (D1 D0 = 11): * si A1 A0 = 00 o 01 transita a S2 * si A1 A0 = 10 o 11 (A1 = 1) permanece en S3

d. Justificación razonada de las transiciones del grafo de estados

Solución: - S0 (D1 D0 = 00): si A1 A0 != 00 transita a S1; si A1 A0 = 00 se mantiene en S0. - S1 (D1 D0 = 01): si A1 A0 = 00 transita a S0; si A1 A0 != 00 transita a S2. - S2 (D1 D0 = 10): si A1 A0 = 00 transita a S1; si A1 A0 = 01 permanece en S2; si A1 A0 es 10 o 11 transita a S3. - S3 (D1 D0 = 11): si A1 A0 es 00 o 01 transita a S2; si A1 = 1 (10, 11) permanece en S3.

La explicación paso a paso, hecha con IA, es Premium. Premium

Resuélvelo aquí mismo: corrección automática, pistas y solución paso a paso.

‹ Pregunta 2 · 2023 · Pregunta 3 · 2022 ›

Más ejercicios de Descripción de máquinas de estados en VHDL