SlideShare uma empresa Scribd logo
1 de 15
Baixar para ler offline
LABORATORIO DE CIRCUITOS
DIGITALES
(2005-II)
QUINTA CLASE DE VHDL
MÁQUINAS DE ESTADO FINITAS (FSMs)
 Máquinas de Moore
 Máquinas de Mealy
Instructor: Daniel Llamocca
 MÁQUINAS DE ESTADOS FINITAS (FSMs)
 Tipos:
 Máquina de Moore: Las salidas dependen solamente del
estado en el que se encuentra el circuito.
 Máquina de Mealy: La salida depende tanto del estado
presente así como de las entradas del circuito.
 Para colocar al circuito en un estado inicial, siempre debe existir una
entrada asíncrona ‘resetn’, la que no se considera para decidir si una
máquina es de Moore o de Mealy. Se muestra la forma genérica de una
máquina de estados:
Circuito
Combinacional
Flip Flops
Circuito
Combinacional
Entradas Q (Estados) Salidas
clock
resetn
Sólo para Máquina de Mealy
Instructor: Daniel Llamocca
 MÁQUINAS DE ESTADOS FINITAS (FSMs)
 Codificación en VHDL: Hay varias formas de codificar máquinas
de estados en VHDL. Se explicará sólo una forma muy utilizada
debido a su simplicidad:
 El código se realiza directamente a partir del diagrama de
estados, por lo que sólo es necesario disponer del diagrama
de estados.
 Se debe definir un nuevo tipo de dato (p.e. ‘estado’) para
representar los estados:
type estado is (S1, S2, ... S10) -– se tienen 10 estados
signal y: estado;
La señal ‘y’ es ahora del tipo ‘estado’, y sólo puede tomar
valores de S1 a S10, esta señal también puede apreciarse
en la simulación.
 Deberán hacerse dos procesos: uno en donde se definan los
cambios de estados que ocurren en el flanco de reloj, y
otro en donde se definan cómo es que las salidas cambian
en base a los estados presentes. Instructor: Daniel Llamocca
 MÁQUINA DE MOORE
 Ejemplo:
Contador BCD con señal de parada:
Un contador BCD también puede definirse en base al método de la
máquina de estados. Si se activa la señal de parada (´p´), la cuenta se
detiene. Note que la señal ‘p’ es la que permite el cambio de estados:
Q = 0
S1
Q = 1 Q = 2 Q = 3
Q = 4
Q = 5
Q = 6
Q = 9
Q = 7
Q = 8
S2 S3 S4
S5
S6
S7
S8
S9
S10
1
0
1 1
0 0 1
0
1
0
0
0
0
0
1
1
1
1
1
resetn = '0'
Contador
BCD
resetn
clock
Q
4
p
Instructor: Daniel Llamocca
library ieee;
use ieee.std_logic_1164.all;
entity contbcd is
port (clock, resetn: in std_logic;
p: in std_logic;
Q : out integer range 0 to 9);
end contbcd;
architecture behaviour of contbcd is
type estado is (S1, S2, S3, S4, S5, S6, S7, S8, S9, S10);
signal y: estado;
begin
Cambios_de_Estado: process (resetn, clock)
begin
if resetn = '0' then -- señal asíncrona
y <= S1; -- Si resetn = '0' ==> estado inicial: S1
...
 MÁQUINA DE MOORE
 Contador BCD con señal de parada:
 Código VHDL:
Contador
BCD
resetn
clock
Q
4
p
Definición de nuevo
tipo de dato ‘estado’
que tiene 10 posibles
estados: S1  S10
Definición de la señal ‘y’ de tipo
‘estado’. A la señal ‘y’ puede
asignarséle valores de S1 a S10
Proceso que define
los cambios de
estado
Instructor: Daniel Llamocca
Proceso que define
los cambios de
estado
Note que los
cambios de estados
ocurren sólo en el
flanco de subida
Note que los
cambios de estados
dependen de la
entrada ‘p’
elsif (clock'event and clock = '1') then
case y is
when S1 =>
if p = '0' then y <= S2; else y <= S1; end if;
when S2 =>
if p = '0' then y <= S3; else y <= S2; end if;
when S3 =>
if p = '0' then y <= S4; else y <= S3; end if;
when S4 =>
if p = '0' then y <= S5; else y <= S4; end if;
when S5 =>
if p = '0' then y <= S6; else y <= S5; end if;
when S6 =>
if p = '0' then y <= S7; else y <= S6; end if;
when S7 =>
if p = '0' then y <= S8; else y <= S7; end if;
when S8 =>
if p = '0' then y <= S9; else y <= S8; end if;
when S9 =>
if p = '0' then y <= S10; else y <= S9; end if;
when S10 =>
if p = '0' then y <= S1; else y <= S10; end if;
end case;
end if;
end process;
... Instructor: Daniel Llamocca
 MÁQUINA DE MOORE
 Contador BCD con señal de parada:
 Código VHDL:
Contador
BCD
resetn
clock
Q
4
p
...
Salidas: process (y)
begin
case y is
when S1 => Q <= 0;
when S2 => Q <= 1;
when S3 => Q <= 2;
when S4 => Q <= 3;
when S5 => Q <= 4;
when S6 => Q <= 5;
when S7 => Q <= 6;
when S8 => Q <= 7;
when S9 => Q <= 8;
when S10 => Q <= 9;
end case;
end process;
end behaviour;
Proceso que define
las salidas
Note que la salida no está controlada
por el flanco de subida, sólo por el
estado presente
Note que las salidas sólo dependen
del estado presente, lo que
concuerda con la definición de la
máquina de Moore
Código fuente: contbcd.vhd
Simulación: contbcd.scf
Instructor: Daniel Llamocca
 MÁQUINA DE MEALY
 Ejemplo:
Detector de secuencia ‘11010’ con traslape
Detector
'11010'
resetn
clock
z
x
Se muestra el diagrama de estados. Sólo son necesarios cinco estados,
la entrada es ‘x’ y la salida es ‘z’.
S1 S2
S3
S5 S4
resetn = '0'
0/0 1/0
0/0
1/0
1/0
0/0
0/0
1/0
0/1 1/0
Instructor: Daniel Llamocca
 MÁQUINA DE MEALY
 Detector de secuencia ‘11010’ con traslape
 Código VHDL: Detector
'11010'
resetn
clock
z
x
library ieee;
use ieee.std_logic_1164.all;
entity detector is
port (clock, resetn: in std_logic;
x: in std_logic;
z : out std_logic);
end detector;
architecture behaviour of detector is
type estado is (S1, S2, S3, S4, S5);
signal y: estado;
begin
Cambios_de_Estado: process (resetn, clock)
begin
if resetn = '0' then -- señal asíncrona
y <= S1; -- Si resetn = '0' ==> estado inicial: S1
...
Definición de nuevo
tipo de dato ‘estado’
que tiene 5 posibles
estados: S1  S5
Definición de la señal ‘y’ de tipo
‘estado’. A la señal ‘y’ puede
asignarséle valores de S1 a S5
Proceso que define
los cambios de
estado
Instructor: Daniel Llamocca
 MÁQUINA DE MEALY
 Detector de secuencia ‘11010’ con traslape
 Código VHDL: Detector
'11010'
resetn
clock
z
x
...
elsif (clock'event and clock = '1') then
case y is
when S1 =>
if x = '1' then y <= S2; else y <= S1; end if;
when S2 =>
if x = '1' then y <= S3; else y <= S1; end if;
when S3 =>
if x = '1' then y <= S3; else y <= S4; end if;
when S4 =>
if x = '1' then y <= S5; else y <= S1; end if;
when S5 =>
y <= S1;
end case;
end if;
end process;
...
Proceso que define
los cambios de
estado
Note que los
cambios de estados
ocurren sólo en el
flanco de subida
Note que los
cambios de estados
dependen de la
entrada ‘x’
Instructor: Daniel Llamocca
 MÁQUINA DE MEALY
 Detector de secuencia ‘11010’ con traslape
 Código VHDL: Detector
'11010'
resetn
clock
z
x
Proceso que define
las salidas
Note que la salida
dependen del estado
presente y de la entrada
‘x’
Código fuente: detectpr.vhd
Simulación: detector.scf
...
Salidas: process (y)
begin
z <= '0'; -- SIEMPRE debe dársele un valor
-- por defecto a 'z', por si ninguna de
-- las condiciones siguientes se cumple.
case y is
when S1 =>
-- se puede dejar vacío, como 'z' ya se
-- inicializó en '0' en S1 valdrá '0'.
when S2 =>
when S3 =>
when S4 =>
when S5 =>
if x = '0' then z <= '1'; end if;
-- Si x = '1' y aquí no se indica, 'z'
-- toma su valor por defecto (z <='0')
end case;
end process;
end behaviour; Instructor: Daniel Llamocca
 MÁQUINAS DE ESTADOS FINITAS (FSMs)
 La mayoría de máquinas de estados en circuitos reales son de Mealy,
pues este tipo ofrece mayor control para describir las salidas.
 Observación: En los ejemplos anteriores se ha visto que la máquina de
estados era todo el circuito necesario para implementar un problema
dado. Sin embargo, rara vez este es el caso. En un sistema real, la
máquina de estados es sólo un circuito de control que maneja varios
componentes (síncronos o asíncronos). Las entradas de la FSM pueden
venir de estos componentes o del exterior, así como las salidas de la
FSM pueden ir hacia estos componentes o al exterior.
FSM
resetn
Entradas
Componente
Componente
Componente
Componente
Componente
Componente
Salidas
Instructor: Daniel Llamocca
 MÁQUINAS DE ESTADOS FINITAS (FSMs)
 Ejemplo: Contador de número de carros en un estacionamiento.
 El estacionamiento tiene una puerta por la que sólo puede entrar o pasar un carro a
la vez. Existen 2 señales A y B que provienen de fotodetectores alineados con LEDs.
Cada detector produce un ‘1’ cuando el carro obstruye el camino entre el LED y el
respectivo fotodetector.
 Consideraciones:
 Si el carro ingresa , primero deberá obstruir el LED A, luego los dos LEDs (A y B) y
seguidamente el LED B. Por último ningún LED deberá estar obstruido. Si se cumple
esta secuencia se aumenta la cuenta del número de carros. Para los carros que salen
el proceso es inverso. Notar que la secuencia debe cumplirse, porque un carro puede
ingresar o salir sólo parcialmente y luego regresar; en este caso no se debe
aumentar ni disminuir la cuenta.
 También se debe notar que el carro puede quedarse en un estado por varios ciclos,
ya que la velocidad del carro es muy grande comparada con la frecuencia del reloj
que controla el cambio de estados.
B
A
foto-
detectores
Instructor: Daniel Llamocca
 MÁQUINAS DE ESTADOS FINITAS (FSMs)
 Consideraciones de Diseño:
 Primero debe hacerse el Diagrama de Bloques:
Control
FSM
resetn
A
B conversor
up
down
Contador
0 a 999
E
u/d
E
ud
Q
10
 El bloque de Control es la FSM, la que pondrá la señal ‘up’ en ‘1’ cuando se necesite aumentar
la cuenta, y pondrá la señal ‘down’ en ‘1’ cuando se necesita disminuir la cuenta
 El conversor se encarga de transformar las señales ‘up’ y ‘down’ en señales ‘E’ (habilitador) y
‘ud’ (control de ascendente/descendente), mediante la siguiente tabla de verdad:
 El contador 0 a 999 es un contador de 10 bits con habilitador y control
ascendente/descendente.
up down E ud
0 0
0 1
1 0
1 1
0 X
1 0
1 1
0 X
Instructor: Daniel Llamocca
 MÁQUINAS DE ESTADOS FINITAS (FSMs)
 Para que up = ‘1’ debe ocurrir la siguiente secuencia:
 AB = “10”, “11”, “01”, “00”
 Para que down = ‘1’ debe ocurrir la siguiente secuencia:
 AB = “01”, “11”, “10”, “00”
 Diagrama de Estados: Entradas: A, B Salidas: up, down
Código fuente:
carros.vhd (principal)
control_carros.vhd (FSM)
cont0_999.vhd (contador)
Simulación: carros.scf
S1 S2
S3
S5
S4
resetn = '0'
S6
S7
00,11/00 10/00 10,01/00
11,00/00
00/00
11/00
10/00
11/00
01/00
01,10/00
00/10
01/00
00/00
01,10/00
11/00
01/00
11,00/00
10/00
11/00
10,01/00
00/01
Instructor: Daniel Llamocca

Mais conteúdo relacionado

Mais procurados

problemas amplificador multietapa
problemas amplificador multietapaproblemas amplificador multietapa
problemas amplificador multietapaAndres Echeverry
 
Contador Con Sensor Infrarrojo
Contador Con Sensor InfrarrojoContador Con Sensor Infrarrojo
Contador Con Sensor InfrarrojoCCAB666
 
Laboratorio de Microcomputadoras - Práctica 04
 Laboratorio de Microcomputadoras - Práctica 04 Laboratorio de Microcomputadoras - Práctica 04
Laboratorio de Microcomputadoras - Práctica 04Cristian Ortiz Gómez
 
Manual de Telecomunicaciones Ingenieria Electronica
Manual de Telecomunicaciones Ingenieria ElectronicaManual de Telecomunicaciones Ingenieria Electronica
Manual de Telecomunicaciones Ingenieria ElectronicaErick BiíBoó Mart
 
Laboratorio de Microcomputadoras - Práctica 03
 Laboratorio de Microcomputadoras - Práctica 03 Laboratorio de Microcomputadoras - Práctica 03
Laboratorio de Microcomputadoras - Práctica 03Cristian Ortiz Gómez
 
Rectificador de onda completo tipo puente ok
Rectificador de onda completo tipo puente okRectificador de onda completo tipo puente ok
Rectificador de onda completo tipo puente okTensor
 
Circuitos combinacionales
Circuitos combinacionalesCircuitos combinacionales
Circuitos combinacionalesJonathan P C
 
Contadores de múltiples etapas y corrimiento
Contadores de múltiples etapas y corrimientoContadores de múltiples etapas y corrimiento
Contadores de múltiples etapas y corrimientoleivaster2
 
54599266 ejercicios-flip-flops
54599266 ejercicios-flip-flops54599266 ejercicios-flip-flops
54599266 ejercicios-flip-flopsSENA-CIMI-GIRON
 

Mais procurados (20)

Los Flip Flops
Los Flip FlopsLos Flip Flops
Los Flip Flops
 
problemas amplificador multietapa
problemas amplificador multietapaproblemas amplificador multietapa
problemas amplificador multietapa
 
Amplificación transistor
Amplificación transistorAmplificación transistor
Amplificación transistor
 
Contador Con Sensor Infrarrojo
Contador Con Sensor InfrarrojoContador Con Sensor Infrarrojo
Contador Con Sensor Infrarrojo
 
Filtros activos en general
Filtros activos en generalFiltros activos en general
Filtros activos en general
 
Flip flop
Flip flopFlip flop
Flip flop
 
Conversión NAND y NOR
Conversión NAND y NORConversión NAND y NOR
Conversión NAND y NOR
 
Laboratorio de Microcomputadoras - Práctica 04
 Laboratorio de Microcomputadoras - Práctica 04 Laboratorio de Microcomputadoras - Práctica 04
Laboratorio de Microcomputadoras - Práctica 04
 
Practica0,1,2,3,4
Practica0,1,2,3,4Practica0,1,2,3,4
Practica0,1,2,3,4
 
Manual de Telecomunicaciones Ingenieria Electronica
Manual de Telecomunicaciones Ingenieria ElectronicaManual de Telecomunicaciones Ingenieria Electronica
Manual de Telecomunicaciones Ingenieria Electronica
 
Laboratorio de Microcomputadoras - Práctica 03
 Laboratorio de Microcomputadoras - Práctica 03 Laboratorio de Microcomputadoras - Práctica 03
Laboratorio de Microcomputadoras - Práctica 03
 
Rectificador de onda completo tipo puente ok
Rectificador de onda completo tipo puente okRectificador de onda completo tipo puente ok
Rectificador de onda completo tipo puente ok
 
ModulacióN De Amplitud
ModulacióN De AmplitudModulacióN De Amplitud
ModulacióN De Amplitud
 
Circuitos combinacionales
Circuitos combinacionalesCircuitos combinacionales
Circuitos combinacionales
 
Contadores de múltiples etapas y corrimiento
Contadores de múltiples etapas y corrimientoContadores de múltiples etapas y corrimiento
Contadores de múltiples etapas y corrimiento
 
54599266 ejercicios-flip-flops
54599266 ejercicios-flip-flops54599266 ejercicios-flip-flops
54599266 ejercicios-flip-flops
 
Máquinas de Estado
Máquinas de EstadoMáquinas de Estado
Máquinas de Estado
 
Flip flop
Flip flopFlip flop
Flip flop
 
Amplificadores Multietapa
Amplificadores MultietapaAmplificadores Multietapa
Amplificadores Multietapa
 
Tipos de Osciladores
 Tipos de Osciladores Tipos de Osciladores
Tipos de Osciladores
 

Semelhante a Electrónica digital: Maquina de estado finitas (FSM´s)

Lógica Secuencial FF-Contad-Reg
Lógica Secuencial  FF-Contad-RegLógica Secuencial  FF-Contad-Reg
Lógica Secuencial FF-Contad-RegEdgar Rivera
 
Lógica Secuencial - FF-Contad-Reg
Lógica Secuencial - FF-Contad-RegLógica Secuencial - FF-Contad-Reg
Lógica Secuencial - FF-Contad-RegEdgar Rivera
 
Electrónica digital: Maquinas de estado finito en VHDL
Electrónica digital: Maquinas de estado finito en VHDLElectrónica digital: Maquinas de estado finito en VHDL
Electrónica digital: Maquinas de estado finito en VHDLSANTIAGO PABLO ALBERTO
 
Taller 4 josue stanley lazo rivera
Taller 4 josue stanley lazo riveraTaller 4 josue stanley lazo rivera
Taller 4 josue stanley lazo rivera1000028858888
 
Compuertas logicas flip flop
Compuertas logicas flip flopCompuertas logicas flip flop
Compuertas logicas flip flopJorge Andres
 
Compuertas logicas flip flop
Compuertas logicas flip flopCompuertas logicas flip flop
Compuertas logicas flip flopKarloos Garcia
 
Compuertas logicas flip flop
Compuertas logicas flip flopCompuertas logicas flip flop
Compuertas logicas flip flopjhojan48
 
Electrónica digital: sistemas secuenciales maquina de estado
Electrónica digital: sistemas secuenciales maquina de estadoElectrónica digital: sistemas secuenciales maquina de estado
Electrónica digital: sistemas secuenciales maquina de estadoSANTIAGO PABLO ALBERTO
 
Principios de Diseño Lógico Secuencial
Principios de Diseño Lógico Secuencial Principios de Diseño Lógico Secuencial
Principios de Diseño Lógico Secuencial Luoren Centeno
 
temporizadores.pdf/explicación completa.
temporizadores.pdf/explicación completa.temporizadores.pdf/explicación completa.
temporizadores.pdf/explicación completa.giovanigaol
 
Contador de 0 a 7 flip flop tipo D
Contador de 0 a 7 flip flop tipo DContador de 0 a 7 flip flop tipo D
Contador de 0 a 7 flip flop tipo DCristian Rodriguez
 
Arduino: Reporte de diseño controlador acuario con Arduino
Arduino: Reporte de diseño controlador acuario con ArduinoArduino: Reporte de diseño controlador acuario con Arduino
Arduino: Reporte de diseño controlador acuario con ArduinoSANTIAGO PABLO ALBERTO
 
Problema resuelto de Maquinas de estado
Problema resuelto de Maquinas de estadoProblema resuelto de Maquinas de estado
Problema resuelto de Maquinas de estadoHugoDanteGarciaMunoz
 
Proyecto no7
Proyecto no7Proyecto no7
Proyecto no7andrevmd
 
Trabajo digitales flip flop
Trabajo digitales flip flopTrabajo digitales flip flop
Trabajo digitales flip flopJeisson Saavedra
 

Semelhante a Electrónica digital: Maquina de estado finitas (FSM´s) (20)

cir_digitales
 cir_digitales cir_digitales
cir_digitales
 
Lógica Secuencial FF-Contad-Reg
Lógica Secuencial  FF-Contad-RegLógica Secuencial  FF-Contad-Reg
Lógica Secuencial FF-Contad-Reg
 
Lógica Secuencial - FF-Contad-Reg
Lógica Secuencial - FF-Contad-RegLógica Secuencial - FF-Contad-Reg
Lógica Secuencial - FF-Contad-Reg
 
Electrónica digital: Maquinas de estado finito en VHDL
Electrónica digital: Maquinas de estado finito en VHDLElectrónica digital: Maquinas de estado finito en VHDL
Electrónica digital: Maquinas de estado finito en VHDL
 
Taller 4 josue stanley lazo rivera
Taller 4 josue stanley lazo riveraTaller 4 josue stanley lazo rivera
Taller 4 josue stanley lazo rivera
 
Compuertas logicas flip flop
Compuertas logicas flip flopCompuertas logicas flip flop
Compuertas logicas flip flop
 
Compuertas logicas flip flop
Compuertas logicas flip flopCompuertas logicas flip flop
Compuertas logicas flip flop
 
Compuertas logicas flip flop
Compuertas logicas flip flopCompuertas logicas flip flop
Compuertas logicas flip flop
 
Electrónica digital: sistemas secuenciales maquina de estado
Electrónica digital: sistemas secuenciales maquina de estadoElectrónica digital: sistemas secuenciales maquina de estado
Electrónica digital: sistemas secuenciales maquina de estado
 
Flip flops
Flip flopsFlip flops
Flip flops
 
Contadores (electronica)
Contadores (electronica)Contadores (electronica)
Contadores (electronica)
 
Principios de Diseño Lógico Secuencial
Principios de Diseño Lógico Secuencial Principios de Diseño Lógico Secuencial
Principios de Diseño Lógico Secuencial
 
temporizadores.pdf/explicación completa.
temporizadores.pdf/explicación completa.temporizadores.pdf/explicación completa.
temporizadores.pdf/explicación completa.
 
Electrónica digital
Electrónica digitalElectrónica digital
Electrónica digital
 
Contador de 0 a 7 flip flop tipo D
Contador de 0 a 7 flip flop tipo DContador de 0 a 7 flip flop tipo D
Contador de 0 a 7 flip flop tipo D
 
Informe practico
Informe practicoInforme practico
Informe practico
 
Arduino: Reporte de diseño controlador acuario con Arduino
Arduino: Reporte de diseño controlador acuario con ArduinoArduino: Reporte de diseño controlador acuario con Arduino
Arduino: Reporte de diseño controlador acuario con Arduino
 
Problema resuelto de Maquinas de estado
Problema resuelto de Maquinas de estadoProblema resuelto de Maquinas de estado
Problema resuelto de Maquinas de estado
 
Proyecto no7
Proyecto no7Proyecto no7
Proyecto no7
 
Trabajo digitales flip flop
Trabajo digitales flip flopTrabajo digitales flip flop
Trabajo digitales flip flop
 

Mais de SANTIAGO PABLO ALBERTO

Manual de teoría y practica electroneumática avanzada
Manual de teoría y practica electroneumática avanzadaManual de teoría y practica electroneumática avanzada
Manual de teoría y practica electroneumática avanzadaSANTIAGO PABLO ALBERTO
 
Programacion de PLC basado en Rslogix 500 por Roni Domínguez
Programacion de PLC basado en Rslogix 500 por Roni Domínguez Programacion de PLC basado en Rslogix 500 por Roni Domínguez
Programacion de PLC basado en Rslogix 500 por Roni Domínguez SANTIAGO PABLO ALBERTO
 
Programación de microcontroladores PIC en C con Fabio Pereira
Programación de microcontroladores PIC en  C con Fabio PereiraProgramación de microcontroladores PIC en  C con Fabio Pereira
Programación de microcontroladores PIC en C con Fabio PereiraSANTIAGO PABLO ALBERTO
 
Análisis y Diseño de Sistemas de Control Digital por Ricardo Fernandez del Bu...
Análisis y Diseño de Sistemas de Control Digital por Ricardo Fernandez del Bu...Análisis y Diseño de Sistemas de Control Digital por Ricardo Fernandez del Bu...
Análisis y Diseño de Sistemas de Control Digital por Ricardo Fernandez del Bu...SANTIAGO PABLO ALBERTO
 
Programación de autómatas PLC OMRON CJ/CP1
Programación de  autómatas PLC OMRON CJ/CP1Programación de  autómatas PLC OMRON CJ/CP1
Programación de autómatas PLC OMRON CJ/CP1SANTIAGO PABLO ALBERTO
 
Manual del sistema del controlador programable S7-200 SMART
Manual del sistema del controlador programable S7-200 SMARTManual del sistema del controlador programable S7-200 SMART
Manual del sistema del controlador programable S7-200 SMARTSANTIAGO PABLO ALBERTO
 
PLC: Buses industriales y de campo practicas de laboratorio por Jose Miguel R...
PLC: Buses industriales y de campo practicas de laboratorio por Jose Miguel R...PLC: Buses industriales y de campo practicas de laboratorio por Jose Miguel R...
PLC: Buses industriales y de campo practicas de laboratorio por Jose Miguel R...SANTIAGO PABLO ALBERTO
 
PLC y Electroneumática: Electricidad y Automatismo eléctrico por Luis Miguel...
PLC y Electroneumática: Electricidad y Automatismo eléctrico por  Luis Miguel...PLC y Electroneumática: Electricidad y Automatismo eléctrico por  Luis Miguel...
PLC y Electroneumática: Electricidad y Automatismo eléctrico por Luis Miguel...SANTIAGO PABLO ALBERTO
 
Electrónica: Diseño y desarrollo de circuitos impresos con Kicad por Miguel P...
Electrónica: Diseño y desarrollo de circuitos impresos con Kicad por Miguel P...Electrónica: Diseño y desarrollo de circuitos impresos con Kicad por Miguel P...
Electrónica: Diseño y desarrollo de circuitos impresos con Kicad por Miguel P...SANTIAGO PABLO ALBERTO
 
PLC: Diseño, construcción y control de un motor doble Dahlander(cuatro veloci...
PLC: Diseño, construcción y control de un motor doble Dahlander(cuatro veloci...PLC: Diseño, construcción y control de un motor doble Dahlander(cuatro veloci...
PLC: Diseño, construcción y control de un motor doble Dahlander(cuatro veloci...SANTIAGO PABLO ALBERTO
 
Electrónica digital: Introducción a la Lógica Digital - Teoría, Problemas y ...
Electrónica digital:  Introducción a la Lógica Digital - Teoría, Problemas y ...Electrónica digital:  Introducción a la Lógica Digital - Teoría, Problemas y ...
Electrónica digital: Introducción a la Lógica Digital - Teoría, Problemas y ...SANTIAGO PABLO ALBERTO
 

Mais de SANTIAGO PABLO ALBERTO (20)

secuencia electroneumática parte 1
secuencia electroneumática parte 1secuencia electroneumática parte 1
secuencia electroneumática parte 1
 
secuencia electroneumática parte 2
secuencia electroneumática parte 2secuencia electroneumática parte 2
secuencia electroneumática parte 2
 
Manual de teoría y practica electroneumática avanzada
Manual de teoría y practica electroneumática avanzadaManual de teoría y practica electroneumática avanzada
Manual de teoría y practica electroneumática avanzada
 
Programacion de PLC basado en Rslogix 500 por Roni Domínguez
Programacion de PLC basado en Rslogix 500 por Roni Domínguez Programacion de PLC basado en Rslogix 500 por Roni Domínguez
Programacion de PLC basado en Rslogix 500 por Roni Domínguez
 
Programación de microcontroladores PIC en C con Fabio Pereira
Programación de microcontroladores PIC en  C con Fabio PereiraProgramación de microcontroladores PIC en  C con Fabio Pereira
Programación de microcontroladores PIC en C con Fabio Pereira
 
Análisis y Diseño de Sistemas de Control Digital por Ricardo Fernandez del Bu...
Análisis y Diseño de Sistemas de Control Digital por Ricardo Fernandez del Bu...Análisis y Diseño de Sistemas de Control Digital por Ricardo Fernandez del Bu...
Análisis y Diseño de Sistemas de Control Digital por Ricardo Fernandez del Bu...
 
Arduino: Arduino de cero a experto
Arduino: Arduino de cero a expertoArduino: Arduino de cero a experto
Arduino: Arduino de cero a experto
 
Fisica I
Fisica IFisica I
Fisica I
 
Quimica.pdf
Quimica.pdfQuimica.pdf
Quimica.pdf
 
Manual básico PLC OMRON
Manual básico PLC OMRON Manual básico PLC OMRON
Manual básico PLC OMRON
 
Programación de autómatas PLC OMRON CJ/CP1
Programación de  autómatas PLC OMRON CJ/CP1Programación de  autómatas PLC OMRON CJ/CP1
Programación de autómatas PLC OMRON CJ/CP1
 
Manual del sistema del controlador programable S7-200 SMART
Manual del sistema del controlador programable S7-200 SMARTManual del sistema del controlador programable S7-200 SMART
Manual del sistema del controlador programable S7-200 SMART
 
Catálogo de PLC S7-200 SMART
Catálogo de PLC S7-200 SMART Catálogo de PLC S7-200 SMART
Catálogo de PLC S7-200 SMART
 
PLC: Automatismos industriales
PLC: Automatismos industrialesPLC: Automatismos industriales
PLC: Automatismos industriales
 
PLC: Buses industriales y de campo practicas de laboratorio por Jose Miguel R...
PLC: Buses industriales y de campo practicas de laboratorio por Jose Miguel R...PLC: Buses industriales y de campo practicas de laboratorio por Jose Miguel R...
PLC: Buses industriales y de campo practicas de laboratorio por Jose Miguel R...
 
PLC y Electroneumática: Electricidad y Automatismo eléctrico por Luis Miguel...
PLC y Electroneumática: Electricidad y Automatismo eléctrico por  Luis Miguel...PLC y Electroneumática: Electricidad y Automatismo eléctrico por  Luis Miguel...
PLC y Electroneumática: Electricidad y Automatismo eléctrico por Luis Miguel...
 
Electrónica: Diseño y desarrollo de circuitos impresos con Kicad por Miguel P...
Electrónica: Diseño y desarrollo de circuitos impresos con Kicad por Miguel P...Electrónica: Diseño y desarrollo de circuitos impresos con Kicad por Miguel P...
Electrónica: Diseño y desarrollo de circuitos impresos con Kicad por Miguel P...
 
PLC: Diseño, construcción y control de un motor doble Dahlander(cuatro veloci...
PLC: Diseño, construcción y control de un motor doble Dahlander(cuatro veloci...PLC: Diseño, construcción y control de un motor doble Dahlander(cuatro veloci...
PLC: Diseño, construcción y control de un motor doble Dahlander(cuatro veloci...
 
PLC: Motor Dahlander
PLC: Motor DahlanderPLC: Motor Dahlander
PLC: Motor Dahlander
 
Electrónica digital: Introducción a la Lógica Digital - Teoría, Problemas y ...
Electrónica digital:  Introducción a la Lógica Digital - Teoría, Problemas y ...Electrónica digital:  Introducción a la Lógica Digital - Teoría, Problemas y ...
Electrónica digital: Introducción a la Lógica Digital - Teoría, Problemas y ...
 

Último

UC Fundamentos de tuberías en equipos de refrigeración m.pdf
UC Fundamentos de tuberías en equipos de refrigeración m.pdfUC Fundamentos de tuberías en equipos de refrigeración m.pdf
UC Fundamentos de tuberías en equipos de refrigeración m.pdfrefrielectriccarlyz
 
ATS-FORMATO cara.pdf PARA TRABAJO SEGURO
ATS-FORMATO cara.pdf  PARA TRABAJO SEGUROATS-FORMATO cara.pdf  PARA TRABAJO SEGURO
ATS-FORMATO cara.pdf PARA TRABAJO SEGUROalejandrocrisostomo2
 
Tipos de suelo y su clasificación y ejemplos
Tipos de suelo y su clasificación y ejemplosTipos de suelo y su clasificación y ejemplos
Tipos de suelo y su clasificación y ejemplosandersonsubero28
 
metodos de fitomejoramiento en la aolicacion de plantas
metodos de fitomejoramiento en la aolicacion de plantasmetodos de fitomejoramiento en la aolicacion de plantas
metodos de fitomejoramiento en la aolicacion de plantasGraciaMatute1
 
Presentacion de la ganaderia en la región
Presentacion de la ganaderia en la regiónPresentacion de la ganaderia en la región
Presentacion de la ganaderia en la regiónmaz12629
 
Análisis de Costos y Presupuestos CAPECO
Análisis de Costos y Presupuestos CAPECOAnálisis de Costos y Presupuestos CAPECO
Análisis de Costos y Presupuestos CAPECOFernando Bravo
 
semana-08-clase-transformadores-y-norma-eep.ppt
semana-08-clase-transformadores-y-norma-eep.pptsemana-08-clase-transformadores-y-norma-eep.ppt
semana-08-clase-transformadores-y-norma-eep.pptKelinnRiveraa
 
SESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONAL
SESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONALSESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONAL
SESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONALEdwinC23
 
2. Cristaloquimica. ingenieria geologica
2. Cristaloquimica. ingenieria geologica2. Cristaloquimica. ingenieria geologica
2. Cristaloquimica. ingenieria geologicaJUDITHYEMELINHUARIPA
 
Six Sigma Process and the dmaic metodo process
Six Sigma Process and the dmaic metodo processSix Sigma Process and the dmaic metodo process
Six Sigma Process and the dmaic metodo processbarom
 
“Análisis comparativo de viscosidad entre los fluidos de yogurt natural, acei...
“Análisis comparativo de viscosidad entre los fluidos de yogurt natural, acei...“Análisis comparativo de viscosidad entre los fluidos de yogurt natural, acei...
“Análisis comparativo de viscosidad entre los fluidos de yogurt natural, acei...WeslinDarguinHernand
 
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)Ricardo705519
 
PRESENTACION DE LAS PLAGAS Y ENFERMEDADES DEL PALTO
PRESENTACION DE LAS PLAGAS Y ENFERMEDADES DEL PALTOPRESENTACION DE LAS PLAGAS Y ENFERMEDADES DEL PALTO
PRESENTACION DE LAS PLAGAS Y ENFERMEDADES DEL PALTOwillanpedrazaperez
 
INFORME de pregrado ingenieria de vias.pdf
INFORME de pregrado ingenieria de vias.pdfINFORME de pregrado ingenieria de vias.pdf
INFORME de pregrado ingenieria de vias.pdfoctaviosalazar18
 
CONEXIONES SERIE, PERALELO EN MÓDULOS FOTOVOLTAICOS.pdf
CONEXIONES SERIE, PERALELO EN MÓDULOS FOTOVOLTAICOS.pdfCONEXIONES SERIE, PERALELO EN MÓDULOS FOTOVOLTAICOS.pdf
CONEXIONES SERIE, PERALELO EN MÓDULOS FOTOVOLTAICOS.pdfwduranteg
 
Tipos de Valvulas para uso industrial y comercial
Tipos de Valvulas para uso industrial y comercialTipos de Valvulas para uso industrial y comercial
Tipos de Valvulas para uso industrial y comercialmacsal12345
 
SESION 02-DENSIDAD DE POBLACION Y DEMANDA DE AGUA (19-03-2024).pdf
SESION 02-DENSIDAD DE POBLACION Y DEMANDA DE AGUA (19-03-2024).pdfSESION 02-DENSIDAD DE POBLACION Y DEMANDA DE AGUA (19-03-2024).pdf
SESION 02-DENSIDAD DE POBLACION Y DEMANDA DE AGUA (19-03-2024).pdfJorgeFuertes8
 
ESPECIFICACIONES TECNICAS COMPLEJO DEPORTIVO
ESPECIFICACIONES TECNICAS COMPLEJO DEPORTIVOESPECIFICACIONES TECNICAS COMPLEJO DEPORTIVO
ESPECIFICACIONES TECNICAS COMPLEJO DEPORTIVOeldermishti
 
2e38892c-fc5d-490e-b751-ce772cf4756f.pdf
2e38892c-fc5d-490e-b751-ce772cf4756f.pdf2e38892c-fc5d-490e-b751-ce772cf4756f.pdf
2e38892c-fc5d-490e-b751-ce772cf4756f.pdfLuisFernandoTQ
 
Matrices Matemáticos universitario pptx
Matrices  Matemáticos universitario pptxMatrices  Matemáticos universitario pptx
Matrices Matemáticos universitario pptxNancyJulcasumaran
 

Último (20)

UC Fundamentos de tuberías en equipos de refrigeración m.pdf
UC Fundamentos de tuberías en equipos de refrigeración m.pdfUC Fundamentos de tuberías en equipos de refrigeración m.pdf
UC Fundamentos de tuberías en equipos de refrigeración m.pdf
 
ATS-FORMATO cara.pdf PARA TRABAJO SEGURO
ATS-FORMATO cara.pdf  PARA TRABAJO SEGUROATS-FORMATO cara.pdf  PARA TRABAJO SEGURO
ATS-FORMATO cara.pdf PARA TRABAJO SEGURO
 
Tipos de suelo y su clasificación y ejemplos
Tipos de suelo y su clasificación y ejemplosTipos de suelo y su clasificación y ejemplos
Tipos de suelo y su clasificación y ejemplos
 
metodos de fitomejoramiento en la aolicacion de plantas
metodos de fitomejoramiento en la aolicacion de plantasmetodos de fitomejoramiento en la aolicacion de plantas
metodos de fitomejoramiento en la aolicacion de plantas
 
Presentacion de la ganaderia en la región
Presentacion de la ganaderia en la regiónPresentacion de la ganaderia en la región
Presentacion de la ganaderia en la región
 
Análisis de Costos y Presupuestos CAPECO
Análisis de Costos y Presupuestos CAPECOAnálisis de Costos y Presupuestos CAPECO
Análisis de Costos y Presupuestos CAPECO
 
semana-08-clase-transformadores-y-norma-eep.ppt
semana-08-clase-transformadores-y-norma-eep.pptsemana-08-clase-transformadores-y-norma-eep.ppt
semana-08-clase-transformadores-y-norma-eep.ppt
 
SESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONAL
SESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONALSESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONAL
SESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONAL
 
2. Cristaloquimica. ingenieria geologica
2. Cristaloquimica. ingenieria geologica2. Cristaloquimica. ingenieria geologica
2. Cristaloquimica. ingenieria geologica
 
Six Sigma Process and the dmaic metodo process
Six Sigma Process and the dmaic metodo processSix Sigma Process and the dmaic metodo process
Six Sigma Process and the dmaic metodo process
 
“Análisis comparativo de viscosidad entre los fluidos de yogurt natural, acei...
“Análisis comparativo de viscosidad entre los fluidos de yogurt natural, acei...“Análisis comparativo de viscosidad entre los fluidos de yogurt natural, acei...
“Análisis comparativo de viscosidad entre los fluidos de yogurt natural, acei...
 
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
 
PRESENTACION DE LAS PLAGAS Y ENFERMEDADES DEL PALTO
PRESENTACION DE LAS PLAGAS Y ENFERMEDADES DEL PALTOPRESENTACION DE LAS PLAGAS Y ENFERMEDADES DEL PALTO
PRESENTACION DE LAS PLAGAS Y ENFERMEDADES DEL PALTO
 
INFORME de pregrado ingenieria de vias.pdf
INFORME de pregrado ingenieria de vias.pdfINFORME de pregrado ingenieria de vias.pdf
INFORME de pregrado ingenieria de vias.pdf
 
CONEXIONES SERIE, PERALELO EN MÓDULOS FOTOVOLTAICOS.pdf
CONEXIONES SERIE, PERALELO EN MÓDULOS FOTOVOLTAICOS.pdfCONEXIONES SERIE, PERALELO EN MÓDULOS FOTOVOLTAICOS.pdf
CONEXIONES SERIE, PERALELO EN MÓDULOS FOTOVOLTAICOS.pdf
 
Tipos de Valvulas para uso industrial y comercial
Tipos de Valvulas para uso industrial y comercialTipos de Valvulas para uso industrial y comercial
Tipos de Valvulas para uso industrial y comercial
 
SESION 02-DENSIDAD DE POBLACION Y DEMANDA DE AGUA (19-03-2024).pdf
SESION 02-DENSIDAD DE POBLACION Y DEMANDA DE AGUA (19-03-2024).pdfSESION 02-DENSIDAD DE POBLACION Y DEMANDA DE AGUA (19-03-2024).pdf
SESION 02-DENSIDAD DE POBLACION Y DEMANDA DE AGUA (19-03-2024).pdf
 
ESPECIFICACIONES TECNICAS COMPLEJO DEPORTIVO
ESPECIFICACIONES TECNICAS COMPLEJO DEPORTIVOESPECIFICACIONES TECNICAS COMPLEJO DEPORTIVO
ESPECIFICACIONES TECNICAS COMPLEJO DEPORTIVO
 
2e38892c-fc5d-490e-b751-ce772cf4756f.pdf
2e38892c-fc5d-490e-b751-ce772cf4756f.pdf2e38892c-fc5d-490e-b751-ce772cf4756f.pdf
2e38892c-fc5d-490e-b751-ce772cf4756f.pdf
 
Matrices Matemáticos universitario pptx
Matrices  Matemáticos universitario pptxMatrices  Matemáticos universitario pptx
Matrices Matemáticos universitario pptx
 

Electrónica digital: Maquina de estado finitas (FSM´s)

  • 1. LABORATORIO DE CIRCUITOS DIGITALES (2005-II) QUINTA CLASE DE VHDL MÁQUINAS DE ESTADO FINITAS (FSMs)  Máquinas de Moore  Máquinas de Mealy Instructor: Daniel Llamocca
  • 2.  MÁQUINAS DE ESTADOS FINITAS (FSMs)  Tipos:  Máquina de Moore: Las salidas dependen solamente del estado en el que se encuentra el circuito.  Máquina de Mealy: La salida depende tanto del estado presente así como de las entradas del circuito.  Para colocar al circuito en un estado inicial, siempre debe existir una entrada asíncrona ‘resetn’, la que no se considera para decidir si una máquina es de Moore o de Mealy. Se muestra la forma genérica de una máquina de estados: Circuito Combinacional Flip Flops Circuito Combinacional Entradas Q (Estados) Salidas clock resetn Sólo para Máquina de Mealy Instructor: Daniel Llamocca
  • 3.  MÁQUINAS DE ESTADOS FINITAS (FSMs)  Codificación en VHDL: Hay varias formas de codificar máquinas de estados en VHDL. Se explicará sólo una forma muy utilizada debido a su simplicidad:  El código se realiza directamente a partir del diagrama de estados, por lo que sólo es necesario disponer del diagrama de estados.  Se debe definir un nuevo tipo de dato (p.e. ‘estado’) para representar los estados: type estado is (S1, S2, ... S10) -– se tienen 10 estados signal y: estado; La señal ‘y’ es ahora del tipo ‘estado’, y sólo puede tomar valores de S1 a S10, esta señal también puede apreciarse en la simulación.  Deberán hacerse dos procesos: uno en donde se definan los cambios de estados que ocurren en el flanco de reloj, y otro en donde se definan cómo es que las salidas cambian en base a los estados presentes. Instructor: Daniel Llamocca
  • 4.  MÁQUINA DE MOORE  Ejemplo: Contador BCD con señal de parada: Un contador BCD también puede definirse en base al método de la máquina de estados. Si se activa la señal de parada (´p´), la cuenta se detiene. Note que la señal ‘p’ es la que permite el cambio de estados: Q = 0 S1 Q = 1 Q = 2 Q = 3 Q = 4 Q = 5 Q = 6 Q = 9 Q = 7 Q = 8 S2 S3 S4 S5 S6 S7 S8 S9 S10 1 0 1 1 0 0 1 0 1 0 0 0 0 0 1 1 1 1 1 resetn = '0' Contador BCD resetn clock Q 4 p Instructor: Daniel Llamocca
  • 5. library ieee; use ieee.std_logic_1164.all; entity contbcd is port (clock, resetn: in std_logic; p: in std_logic; Q : out integer range 0 to 9); end contbcd; architecture behaviour of contbcd is type estado is (S1, S2, S3, S4, S5, S6, S7, S8, S9, S10); signal y: estado; begin Cambios_de_Estado: process (resetn, clock) begin if resetn = '0' then -- señal asíncrona y <= S1; -- Si resetn = '0' ==> estado inicial: S1 ...  MÁQUINA DE MOORE  Contador BCD con señal de parada:  Código VHDL: Contador BCD resetn clock Q 4 p Definición de nuevo tipo de dato ‘estado’ que tiene 10 posibles estados: S1  S10 Definición de la señal ‘y’ de tipo ‘estado’. A la señal ‘y’ puede asignarséle valores de S1 a S10 Proceso que define los cambios de estado Instructor: Daniel Llamocca
  • 6. Proceso que define los cambios de estado Note que los cambios de estados ocurren sólo en el flanco de subida Note que los cambios de estados dependen de la entrada ‘p’ elsif (clock'event and clock = '1') then case y is when S1 => if p = '0' then y <= S2; else y <= S1; end if; when S2 => if p = '0' then y <= S3; else y <= S2; end if; when S3 => if p = '0' then y <= S4; else y <= S3; end if; when S4 => if p = '0' then y <= S5; else y <= S4; end if; when S5 => if p = '0' then y <= S6; else y <= S5; end if; when S6 => if p = '0' then y <= S7; else y <= S6; end if; when S7 => if p = '0' then y <= S8; else y <= S7; end if; when S8 => if p = '0' then y <= S9; else y <= S8; end if; when S9 => if p = '0' then y <= S10; else y <= S9; end if; when S10 => if p = '0' then y <= S1; else y <= S10; end if; end case; end if; end process; ... Instructor: Daniel Llamocca
  • 7.  MÁQUINA DE MOORE  Contador BCD con señal de parada:  Código VHDL: Contador BCD resetn clock Q 4 p ... Salidas: process (y) begin case y is when S1 => Q <= 0; when S2 => Q <= 1; when S3 => Q <= 2; when S4 => Q <= 3; when S5 => Q <= 4; when S6 => Q <= 5; when S7 => Q <= 6; when S8 => Q <= 7; when S9 => Q <= 8; when S10 => Q <= 9; end case; end process; end behaviour; Proceso que define las salidas Note que la salida no está controlada por el flanco de subida, sólo por el estado presente Note que las salidas sólo dependen del estado presente, lo que concuerda con la definición de la máquina de Moore Código fuente: contbcd.vhd Simulación: contbcd.scf Instructor: Daniel Llamocca
  • 8.  MÁQUINA DE MEALY  Ejemplo: Detector de secuencia ‘11010’ con traslape Detector '11010' resetn clock z x Se muestra el diagrama de estados. Sólo son necesarios cinco estados, la entrada es ‘x’ y la salida es ‘z’. S1 S2 S3 S5 S4 resetn = '0' 0/0 1/0 0/0 1/0 1/0 0/0 0/0 1/0 0/1 1/0 Instructor: Daniel Llamocca
  • 9.  MÁQUINA DE MEALY  Detector de secuencia ‘11010’ con traslape  Código VHDL: Detector '11010' resetn clock z x library ieee; use ieee.std_logic_1164.all; entity detector is port (clock, resetn: in std_logic; x: in std_logic; z : out std_logic); end detector; architecture behaviour of detector is type estado is (S1, S2, S3, S4, S5); signal y: estado; begin Cambios_de_Estado: process (resetn, clock) begin if resetn = '0' then -- señal asíncrona y <= S1; -- Si resetn = '0' ==> estado inicial: S1 ... Definición de nuevo tipo de dato ‘estado’ que tiene 5 posibles estados: S1  S5 Definición de la señal ‘y’ de tipo ‘estado’. A la señal ‘y’ puede asignarséle valores de S1 a S5 Proceso que define los cambios de estado Instructor: Daniel Llamocca
  • 10.  MÁQUINA DE MEALY  Detector de secuencia ‘11010’ con traslape  Código VHDL: Detector '11010' resetn clock z x ... elsif (clock'event and clock = '1') then case y is when S1 => if x = '1' then y <= S2; else y <= S1; end if; when S2 => if x = '1' then y <= S3; else y <= S1; end if; when S3 => if x = '1' then y <= S3; else y <= S4; end if; when S4 => if x = '1' then y <= S5; else y <= S1; end if; when S5 => y <= S1; end case; end if; end process; ... Proceso que define los cambios de estado Note que los cambios de estados ocurren sólo en el flanco de subida Note que los cambios de estados dependen de la entrada ‘x’ Instructor: Daniel Llamocca
  • 11.  MÁQUINA DE MEALY  Detector de secuencia ‘11010’ con traslape  Código VHDL: Detector '11010' resetn clock z x Proceso que define las salidas Note que la salida dependen del estado presente y de la entrada ‘x’ Código fuente: detectpr.vhd Simulación: detector.scf ... Salidas: process (y) begin z <= '0'; -- SIEMPRE debe dársele un valor -- por defecto a 'z', por si ninguna de -- las condiciones siguientes se cumple. case y is when S1 => -- se puede dejar vacío, como 'z' ya se -- inicializó en '0' en S1 valdrá '0'. when S2 => when S3 => when S4 => when S5 => if x = '0' then z <= '1'; end if; -- Si x = '1' y aquí no se indica, 'z' -- toma su valor por defecto (z <='0') end case; end process; end behaviour; Instructor: Daniel Llamocca
  • 12.  MÁQUINAS DE ESTADOS FINITAS (FSMs)  La mayoría de máquinas de estados en circuitos reales son de Mealy, pues este tipo ofrece mayor control para describir las salidas.  Observación: En los ejemplos anteriores se ha visto que la máquina de estados era todo el circuito necesario para implementar un problema dado. Sin embargo, rara vez este es el caso. En un sistema real, la máquina de estados es sólo un circuito de control que maneja varios componentes (síncronos o asíncronos). Las entradas de la FSM pueden venir de estos componentes o del exterior, así como las salidas de la FSM pueden ir hacia estos componentes o al exterior. FSM resetn Entradas Componente Componente Componente Componente Componente Componente Salidas Instructor: Daniel Llamocca
  • 13.  MÁQUINAS DE ESTADOS FINITAS (FSMs)  Ejemplo: Contador de número de carros en un estacionamiento.  El estacionamiento tiene una puerta por la que sólo puede entrar o pasar un carro a la vez. Existen 2 señales A y B que provienen de fotodetectores alineados con LEDs. Cada detector produce un ‘1’ cuando el carro obstruye el camino entre el LED y el respectivo fotodetector.  Consideraciones:  Si el carro ingresa , primero deberá obstruir el LED A, luego los dos LEDs (A y B) y seguidamente el LED B. Por último ningún LED deberá estar obstruido. Si se cumple esta secuencia se aumenta la cuenta del número de carros. Para los carros que salen el proceso es inverso. Notar que la secuencia debe cumplirse, porque un carro puede ingresar o salir sólo parcialmente y luego regresar; en este caso no se debe aumentar ni disminuir la cuenta.  También se debe notar que el carro puede quedarse en un estado por varios ciclos, ya que la velocidad del carro es muy grande comparada con la frecuencia del reloj que controla el cambio de estados. B A foto- detectores Instructor: Daniel Llamocca
  • 14.  MÁQUINAS DE ESTADOS FINITAS (FSMs)  Consideraciones de Diseño:  Primero debe hacerse el Diagrama de Bloques: Control FSM resetn A B conversor up down Contador 0 a 999 E u/d E ud Q 10  El bloque de Control es la FSM, la que pondrá la señal ‘up’ en ‘1’ cuando se necesite aumentar la cuenta, y pondrá la señal ‘down’ en ‘1’ cuando se necesita disminuir la cuenta  El conversor se encarga de transformar las señales ‘up’ y ‘down’ en señales ‘E’ (habilitador) y ‘ud’ (control de ascendente/descendente), mediante la siguiente tabla de verdad:  El contador 0 a 999 es un contador de 10 bits con habilitador y control ascendente/descendente. up down E ud 0 0 0 1 1 0 1 1 0 X 1 0 1 1 0 X Instructor: Daniel Llamocca
  • 15.  MÁQUINAS DE ESTADOS FINITAS (FSMs)  Para que up = ‘1’ debe ocurrir la siguiente secuencia:  AB = “10”, “11”, “01”, “00”  Para que down = ‘1’ debe ocurrir la siguiente secuencia:  AB = “01”, “11”, “10”, “00”  Diagrama de Estados: Entradas: A, B Salidas: up, down Código fuente: carros.vhd (principal) control_carros.vhd (FSM) cont0_999.vhd (contador) Simulación: carros.scf S1 S2 S3 S5 S4 resetn = '0' S6 S7 00,11/00 10/00 10,01/00 11,00/00 00/00 11/00 10/00 11/00 01/00 01,10/00 00/10 01/00 00/00 01,10/00 11/00 01/00 11,00/00 10/00 11/00 10,01/00 00/01 Instructor: Daniel Llamocca