Pregunta 5 · Fonaments dels Computadors UAB 2018

Tema: Descripción de máquinas de estados en VHDL · Del examen Examen Parcial Bloque 2 (Curso 2018-2019) (2018)

Enunciado

Pregunta 5 (10 puntos). MEF en VHDL: análisis e implementación

Dado el siguiente modelo VHDL que describe una máquina de estados finitos (MEF):

library ieee;

use ieee.std_logic_1164.all;

entity TriProces is

port ( clk, rst: in std_logic;

x, y: in std_logic;

z: out std_logic);

end TriProces;

architecture behavior of TriProces is

type estados is range 0 to 3;

signal cs, ns: estados;

begin

synchroProc: process (clk, rst)

begin

if rst = '1' then cs <= 0;

elsif (clk'event and clk = '1') then

cs <= ns;

end if;

end process synchroProc;

NsProc: process (cs, x, y)

begin

ns <= cs;

case cs is

when 0 => if (not(x xor y)='1') then ns <= 1; end if;

when 1 => if (x='1') then ns <= 2; else ns <= 3; end if;

when 2 => ns <= 3;

when 3 => if ((x xor y)='1') then ns <= 0; end if;

end case;

end process NsProc;

OutProc: process (cs, x, y)

begin

case cs is

when 0 => z <= not(x xor y);

when 1 => z <= x;

when 2 => z <= y;

when 3 => z <= x xor y;

end case;

end process OutProc;

end architecture behavior;

Se pide responder a los siguientes apartados:

a.

Justifica si el diseño modela una máquina de Moore o de Mealy. A la vista del diagrama de bloques propuesto, selecciona cuál es la opción correcta (Opción A u Opción B) y complétala asociando a cada bloque el nombre del proceso VHDL correspondiente, así como los nombres y anchos en bits de todas las señales.

b.

Realiza la implementación lógica directa del bloque combinacional de estado siguiente modelado por el proceso NsProc empleando prioritariamente multiplexores y puertas lógicas.

c.

Dibuja el grafo completo de transición de estados de la MEF.

Enunciado: Pregunta 5 · Fonaments dels Computadors UAB 2018

Solución

Según los criterios oficiales de corrección

a. Tipo de máquina (Moore o Mealy) y opción seleccionada:

Solución: Mealy / Opción A

a. Justificación y completado del diagrama de bloques de la opción correcta:

Solución: Bloque Circuito Comb. Salidas: OutProc, recibe x,y (2 bits) y cs (2 bits), genera z (1 bit). Bloque Circuito Comb. Estado Siguiente: NsProc, recibe x,y (2 bits) y realimenta cs (2 bits), produciendo ns (2 bits). Bloque Memoria: synchroProc, constituido por 2 biestables (2 FFs), recibe ns (2 bits) y genera cs (2 bits).

b. Realiza la implementación lógica directa del bloque combinacional de estado siguiente modelado por el proceso NsProc empleando prioritariamente multiplexores y puertas lógicas.

Solución: Multiplexor central 4 a 1 de 2 bits controlado por cs: - Canal 0 (cs = 0): MUX 2 a 1 controlado por NOT(x XOR y) seleccionando ns = 1 si se cumple o ns = cs (0) por defecto. - Canal 1 (cs = 1): MUX 2 a 1 controlado por x que selecciona entre ns = 2 (si x = 1) y ns = 3 (si x = 0). - Canal 2 (cs = 2): transición incondicional fija a ns = 3. - Canal 3 (cs = 3): MUX 2 a 1 controlado por (x XOR y) que conmuta entre ns = 0 y ns = cs (3).

c. Dibuja el grafo completo de transición de estados de la MEF.

Solución: El grafo consta de 4 estados etiquetados de 0 a 3, con transiciones anotadas en formato Condición de entrada / Salida z: - Estado 0: Si x ⊕ y = 0 (xy ∈ {00, 11}), transita a 1 con z = 1. Si x ⊕ y = 1 (xy ∈ {01, 10}), permanece en 0 con z = 0. - Estado 1: Si x = 1 (independiente de y), pasa a 2 con z = 1. Si x = 0, pasa a 3 con z = 0. - Estado 2: Transita incondicionalmente a 3 (x, y = -, -) con salida z = y. - Estado 3: Si x ⊕ y = 1 (xy ∈ {01, 10}), transita a 0 con z = 1. Si x ⊕ y = 0, permanece en 3 con z = 0.

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 4 · 2018

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