Paso 2: Descripción de los registros de estado registros: process(clk, rst) begin if rst = '1' then estado_actual <= A; elsif rising_edge(clk) then estado_actual <= estado_siguiente; end if; end process;
Diseño de una máquina de Mealy: Detector de “101” Máquinas de estado (FSM)
Paso 3: Descripción de los bloques combinacionales de próximo estado y de salida transiciones: process(estado_actual, secuencia) begin case estado_actual is when A => if secuencia = '1' then estado_siguiente <= B; det_flag <= '0'; else estado_siguiente <= A; det_flag <= '0'; end if; …
Diseño de una máquina de Mealy: Detector de “101” Máquinas de estado (FSM)
…
when B => if secuencia = '1' then estado_siguiente <= B; det_flag <= '0'; else estado_siguiente <= C; det_flag <= '0'; end if;
… Diseño de una máquina de Mealy: Detector de “101” Máquinas de estado (FSM)
Diseño de una máquina de Mealy: Detector de “101” …
when C => if secuencia = '1' then estado_siguiente <= B; det_flag <= '1'; else estado_siguiente <= A; det_flag <= ‘0'; end if; end case; end process; end; Máquinas de estado (FSM)
Reporte de síntesis (ISE)
Máquinas de estado (FSM)
Reporte de síntesis (ISE)
Máquinas de estado (FSM)
Esquemático (ISE – RTL Schematic)
Máquinas de estado (FSM)
Esquemático (ISE – RTL Schematic)
Máquinas de estado (FSM)
Esquemático (ISE – Technology Schematic)
Máquinas de estado (FSM)
Diseño de una máquina de Mealy: Simulación (ISim) Máquinas de estado (FSM)
Diseño de una máquina de Moore: Detector de “101”
Máquinas de estado (FSM)
Consiste en 3 pasos: Definición de los estados Descripción de los registros de estado Descripción de los bloques combinacionales de próximo estado y de salida
Diseño de una máquina de Moore: Detector de “101” Máquinas de estado (FSM)
Paso 1: Definición de los estados architecture det_arq of detector is type tipo_estado is (A, B1, B2, C); signal estado_actual, estado_siguiente: tipo_estado; begin … end;
Diseño de una máquina de Moore: Detector de “101” Máquinas de estado (FSM)
Paso 2: Descripción de los registros de estado registros: process(clk, rst) begin if rst = '1' then estado_actual <= A; elsif rising_edge(clk) then estado_actual <= estado_siguiente; end if; end process;
Diseño de una máquina de Moore: Detector de “101” Máquinas de estado (FSM)
Paso 3: Descripción de los bloques combinacionales de próximo estado y de salida
Diseño de una máquina de Moore: Detector de “101” transiciones: process(estado_actual, secuencia) begin case estado_actual is when A => if secuencia = '1' then estado_siguiente <= B1; else estado_siguiente <= A; end if; … Máquinas de estado (FSM)
Diseño de una máquina de Moore: Detector de “101” …
when B1 => if secuencia = '1' then estado_siguiente <= B1; else estado_siguiente <= C; end if; when B2 => if secuencia = '1' then estado_siguiente <= B1; else estado_siguiente <= C; end if; … Máquinas de estado (FSM)
Diseño de una máquina de Moore: Detector de “101” …
when C => if secuencia = '1' then estado_siguiente <= B2; else estado_siguiente <= A; end if; end case; end process;
det_flag <= '1' when estado_actual = B2 else '0';
end; — fin de la arquitectura Máquinas de estado (FSM)
Reporte de síntesis de la máquina de Moore (ISE)
Máquinas de estado (FSM)
Reporte de síntesis de la máquina de Moore (ISE)
Máquinas de estado (FSM)
Esquemático de la máquina de Moore (ISE – RTL Schem)
Máquinas de estado (FSM)
Esquemático de la máquina de Moore (ISE – Tech Schem)
Máquinas de estado (FSM)
Diseño de una máquina de Moore: Simulación (ISim) Máquinas de estado (FSM)
Página anterior | Volver al principio del trabajo | Página siguiente |