Pregunta 4 · 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 4 (10 puntos). Análisis e implementación de una MEF descrita en VHDL

A partir del siguiente código VHDL que modela una máquina de estados finitos:

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, reset)

begin

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

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

cs <= ns;

end if; 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;

a)

Determina razonadamente si se trata de una máquina de tipo Moore o de tipo Mealy. En base a dicha clasificación, escoge el diagrama de bloques adecuado entre las dos opciones mostradas a continuación y complétalo asociando los nombres de los procesos VHDL a sus bloques correspondientes, especificando el nombre y el ancho en bits de cada una de las señales:

Moore

Mealy

Bloque / Señal del esquema

Nombre / Proceso asociado

Ancho (# bits / # FFs)

Entradas primarias

Circuito Comb. Estado Siguiente

—

Señal Estado Siguiente (hacia Memoria)

Bloque de Memoria (Proceso / FFs)

Señal Estado Actual (retroalimentación)

Circuito Comb. Salidas

—

Salida generada

b)

Diseña la implementación circuital directa del proceso combinacional NsProc empleando preferentemente multiplexores (MUX) y las puertas lógicas que resulten estrictamente necesarias.

c)

Dibuja el grafo de transición de estados formal correspondiente al autómata modelado por dicha descripción VHDL.

Enunciado: Pregunta 4 · Fonaments dels Computadors UAB 2018

Solución

Según los criterios oficiales de corrección

a) Determina si se trata de una máquina de tipo Moore o de tipo Mealy

Solución: Mealy

a) Justificación del tipo de máquina

Solución: En el proceso generador de salidas OutProc la salida z depende simultáneamente del estado actual cs y de las entradas primarias x, y.

a) Entradas primarias: Nombre

Solución: x, y

a) Entradas primarias: Ancho (# bits)

Solución: 2

a) Circuito Comb. Estado Siguiente: Proceso asociado

Solución: NsProc

a) Señal Estado Siguiente: Nombre

Solución: ns

a) Señal Estado Siguiente: Ancho (# bits)

Solución: 2

a) Bloque de Memoria: Proceso asociado

Solución: synchroProc

a) Bloque de Memoria: Número de Flip-Flops (# FFs)

Solución: 2

a) Señal Estado Actual: Nombre

Solución: cs

a) Señal Estado Actual: Ancho (# bits)

Solución: 2

a) Circuito Comb. Salidas: Proceso asociado

Solución: OutProc

a) Salida generada: Nombre

Solución: z

a) Salida generada: Ancho (# bits)

Solución: 1

b) Diseña la implementación circuital directa del proceso combinacional NsProc

Solución: Implementación mediante un multiplexor principal de 4 a 1 de buses de 2 bits controlado por el estado actual cs (cs1, cs0): - Canal 0 (cs = 0): Mediante un MUX 2:1 secundario controlado por not(x xor y), conmuta entre el estado siguiente 1 (binario 01) si se cumple la condición, o retiene cs (00). - Canal 1 (cs = 1): Se multiplexa con la entrada x: si x = 1 transita a 2 (10), y en caso contrario a 3 (11). - Canal 2 (cs = 2): Asignación incondicional a 3 (11), conectando directamente las entradas del canal a constantes binarias. - Canal 3 (cs = 3): Mediante un MUX 2:1 gobernado por x xor y, si la condición se cumple pasa al estado 0 (00) y si no, preserva cs (11).

c) Dibuja el grafo de transición de estados formal correspondiente al autómata modelado

Solución: Autómata con 4 nodos etiquetados 0, 1, 2 y 3: - Estado 0: Si X xor Y = 0 (XY in {00, 11}), transita a 1 con salida z = 1. Si X xor Y = 1 (XY in {01, 10}), permanece en 0 con z = 0. - Estado 1: Si X = 1 (XY = 1-), transita a 2 con salida z = 1. Si X = 0 (XY = 0-), transita a 3 con salida z = 0. - Estado 2: Para cualquier valor de las entradas (XY = --), transita incondicionalmente a 3 con salida z = Y. - Estado 3: Si X xor Y = 1 (XY in {01, 10}), transita a 0 con salida z = 1. Si X xor Y = 0 (XY in {00, 11}), permanece en 3 con salida 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 3 · 2022 · Pregunta 5 · 2018 ›

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