SlideShare una empresa de Scribd logo
1 de 10
M�quinas de estado finito en VHDL
Las m�quinasde estadofinito,m�sconocidasporsuacr�nimoeningl�sFSM(FiniteState Machine),
se utilizan ampliamente en el dise�o de circuitos digitales (adem�s de en otros �mbitos de la
ingenier�a,comola programaci�n),para describirel comportamientode unsistemaseg�nel valor
de sus entradasyde c�mo vancambiandoenel tiempo. �staesunadefinici�nparcial peroque nos
permite hacernos una primera idea intuitiva. Desde el punto de vista de las FSM, un sistema est�
compuestode estados porlosque vapasandoel sistema,de se�alesdeentrada que modificanesos
estadosyde se�alesde salida que puedenutilizarse paraconocerel estadodel sistemayactuaren
consecuencia. Un ejemplo muy visual podr�a ser un sem�foro, el cu�l dispone de tres estados
diferentes, uno para cada color. Las entradas del sistema las podr�a generar un temporizador que
activa una se�al cada cierto tiempo, indicando que hay que pasar al siguiente estado.Por �ltimo,
las salidas del sistema podr�an ser tres se�ales que indiquenqu� l�mpara, de las tres disponibles,
tiene que encenderse.Para representar una m�quina de estados se utilizan diagramasde estados
como el siguiente.
Cada c�rculo representaunestado.En este caso tenemoscuatroestadosque se llamanS1, S2, S3 y
S4. El estadoS1 tiene unaflechaque indicaque esel estadoel inicial,al que se entra tras un reset
del sistema.El S4tiene undoble c�rculo,que indicaque esunestadofinal.Losestadosest�nunidos
por unasflechasllamadastransiciones,queindicanc�moevolucionael sistemade unestadoaotro
seg�nse activanlas se�alesde entrada.Eneste casoconcretohay tresse�alesde entrada(a,b,c y
d). Si estandoenel estadoS1 se activa la se�al a, el sistemaevolucionar�al estadoS2. Del mismo
modo,si estandoenel estadoS2se activalase�al b,el sistemaevolucionar�de nuevoal estadoS1.
En este caso no hay se�ales de salida. Si las hay pueden ponerse dentro del c�rculo o, para no
sobrecargar el diagrama,se puedendefinir fuerade �ste,porejemploenunatabla.Vamosa crear
una FSM muy b�sica y a implementarla en VHDL, para poder llevarla a una FPGA. La m�quina que
vamos a implementar es la mostrada en el siguiente diagrama de estados.
Tenemos cuatro estados (S0, S1, S2 y S3) y dos se�ales de entrada (A y B). No hemos puesto en el
diagrama las se�ales de salida, pero las definimos en la siguiente tabla:
S0 -> Y0
S1 -> Y1
S2 -> Y2
S3 -> Y3
Por lo tanto, tenemos cuatro se�ales de salida. La se�al Y0 se activa cuando el sistema est� en el
estado S0, La Y1 cuando el sistema est� en el estado S1 y as� sucesivamente. Como se puede
observar,lasalidadel sistemadependeexclusivamentedelestadoenelquese encuentraelsistema.
Cuando ocurre esto decimos que se trata de una m�quina de estados de tipo Moore. Si la salida
depende del estadoy adem�s de las entradasactuales del sistema, se tratar�a de una m�quina de
estados de tipo Mealy. Se puede demostrar que ambos modelos son equivalentes, as� que aqu�
vamos a quedarnos con el primer tipo que es m�s sencillo.
A nivel f�sico, una de las formas m�s efectivas de implementar una FSM es seg�n el siguiente
esquema.
Obviamente necesitamosalg�nelementode memoriaparaalmacenarel estadoactual del sistema.
Nosotros usaremos un registro de biestablesde tipo D (es por lo tanto un bloque secuencial). Los
otros dos bloques son puramente combinacionales. El primero se encarga de generar el estado
siguienteapartirdel estadoactual yde lasentradasdel sistema.Adem�s,necesitamosotrocircuito
para generar las se�ales de salida a partir del estado actual (recordemos que es una m�quina de
tipo Moore).
Voy a llevar a la pr�ctica el circuito usando una FPGA. En concreto usar� la placa BASYS 3 con una
FPGA Artix 7 de Xilinx.Voyautilizarel bot�n0comose�al de resetylosbotones4y 2 comose�ales
A y B respectivamente. Las salidas Y0 a Y3 las voy a asociar a los LEDs 0 a 3. Para evitar utilizar
circuitos antirebote para los pulsadores,he dise�ado el diagrama de forma que dos pulsaciones
seguidas del mismo bot�n no hagan evolucionar el sistema a otro estado.
Como tenemoscuatroestados,podr�amosusar dos bitpara codificarlosestados.Por ejemplo:S0-
>00, S1->01, S2->10 y S3->11. Sinembargo,lo m�s habitual esdejarque el sintetizadorlohagapor
nosotros definiendo un tipo para los estados tal y como se ve en la siguiente definici�n. As�, si
a�adimos nuevos estados, no tenemos que andar redimensionando el registro de estados.
-- declaraciones modelo FSM
type STATES is (S0, S1, S2, S3);
signal state_reg, state_next: STATES;
Veamosc�mose implementaenVHDL cada uno de estostres bloques.Empecemosporel registro
de estados.
-- registro de estados
process(CLK)
begin
if CLK'event and CLK='1' then
if RST='1' then
state_reg <= s0;
else
state_reg <= state_next;
end if;
end if;
end process;
El registrode estadostiene unase�al de resets�ncronaque llevaal sistemaal estadoS0.Si la l�gica
de codificaci�n del estado siguiente genera un nuevo estado, este se almacenar� en el registro,si
no,la salidadel registrose mantiene.Veamosc�moesel circuito que genera el estado siguiente.
-- L�gica de estado siguiente (circuito combinacional)
process (state_reg, A, B)
begin
state_next <= state_reg;
case state_reg is
when S0 =>
if A='1' then
state_next <= S1;
end if;
when S1 =>
if B='1' then
state_next <= S2;
end if;
when S2 =>
if A='1' then
state_next <= S3;
end if;
when S3 =>
state_next <= S3;
end case;
end process;
El estadosiguientese generaapartir del estadoactual y de las entradasA y B, por lo que ponemos
estastresse�alesenlalistade sensibilidaddelproceso.Paraevitarque el sintetizadorgenere alg�n
latchoelementode memoria,asignamospordefectoel estadoactual alase�al de estadosiguiente.
El c�digoVHDLdescribe losestadosy lastransicionesasociadasalasentradasseg�nel diagramade
estados que definimos m�s arriba, de forma que, de ser necesario, asigna el valor del estado
siguiente ala variable state_nextcuandohayun cambio en lasentradas o en el estado.Por �ltimo
echamos un vistazo al circuito de decodificaci�n para las salidas.
-- salida tipo Moore
process (state_reg)
begin
-- estableciendo la salida por defecto
-- nos aseguramos de crear un circuito
-- combinacional sin latches.
Y0 <= '0';
Y1 <= '0';
Y2 <= '0';
Y3 <= '0';
case state_reg is
when S0 => Y0 <= '1';
when S1 => Y1 <= '1';
when S2 => Y2 <= '1';
when S3 => Y3 <= '1';
end case;
end process;
De nuevo, para evitar que el sintetizador cree elementos de memoria, asignamos un valor por
defecto a las salidas (en este caso 0), y seg�n el estado actual, se activa la salida correspondiente
seg�n definimos en la tabla de arriba.
El c�digo VHDL completo de nuestra FSM es el siguiente.
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entity FSM is
Port ( CLK : in STD_LOGIC;
BTN : in STD_LOGIC_VECTOR (4 downto 0);
LED : out STD_LOGIC_VECTOR (15 downto 0));
end FSM;
architecture Behavioral of FSM is
-- alias
alias RST : STD_LOGIC is BTN(0);
alias A : STD_LOGIC is BTN(4);
alias B : STD_LOGIC is BTN(2);
alias Y0 : STD_LOGIC is LED(0);
alias Y1 : STD_LOGIC is LED(1);
alias Y2 : STD_LOGIC is LED(2);
alias Y3 : STD_LOGIC is LED(3);
-- declaraciones modelo FSM
type STATES is (S0, S1, S2, S3);
signal state_reg, state_next: STATES;
begin
-- registro de estados
process(CLK)
begin
if CLK'event and CLK='1' then
if RST='1' then
state_reg <= s0;
else
state_reg <= state_next;
end if;
end if;
end process;
-- L�gica de estado siguiente (circuito combinacional)
process (state_reg, A, B)
begin
state_next <= state_reg;
case state_reg is
when S0 =>
if A='1' then
state_next <= S1;
end if;
when S1 =>
if B='1' then
state_next <= S2;
end if;
when S2 =>
if A='1' then
state_next <= S3;
end if;
when S3 =>
state_next <= S3;
end case;
end process;
-- salida tipo Moore
process (state_reg)
begin
-- estableciendo la salida por defecto
-- nos aseguramos de crear un circuito
-- combinacional sin latches.
Y0 <= '0';
Y1 <= '0';
Y2 <= '0';
Y3 <= '0';
case state_reg is
when S0 => Y0 <= '1';
when S1 => Y1 <= '1';
when S2 => Y2 <= '1';
when S3 => Y3 <= '1';
end case;
end process;
end Behavioral;
Os dejoel archivode restriccionesparalaplacaBASYS 3 que he usadopara este ejemplo,dondese
definenlospuertosde lospulsadores,losLEDsy el reloj del sistema.
## LEDs
set_property PACKAGE_PIN U16 [get_ports {LED[0]}]
set_property IOSTANDARD LVCMOS33 [get_ports {LED[0]}]
set_property PACKAGE_PIN E19 [get_ports {LED[1]}]
set_property IOSTANDARD LVCMOS33 [get_ports {LED[1]}]
set_property PACKAGE_PIN U19 [get_ports {LED[2]}]
set_property IOSTANDARD LVCMOS33 [get_ports {LED[2]}]
set_property PACKAGE_PIN V19 [get_ports {LED[3]}]
set_property IOSTANDARD LVCMOS33 [get_ports {LED[3]}]
set_property PACKAGE_PIN W18 [get_ports {LED[4]}]
set_property IOSTANDARD LVCMOS33 [get_ports {LED[4]}]
set_property PACKAGE_PIN U15 [get_ports {LED[5]}]
set_property IOSTANDARD LVCMOS33 [get_ports {LED[5]}]
set_property PACKAGE_PIN U14 [get_ports {LED[6]}]
set_property IOSTANDARD LVCMOS33 [get_ports {LED[6]}]
set_property PACKAGE_PIN V14 [get_ports {LED[7]}]
set_property IOSTANDARD LVCMOS33 [get_ports {LED[7]}]
set_property PACKAGE_PIN V13 [get_ports {LED[8]}]
set_property IOSTANDARD LVCMOS33 [get_ports {LED[8]}]
set_property PACKAGE_PIN V3 [get_ports {LED[9]}]
set_property IOSTANDARD LVCMOS33 [get_ports {LED[9]}]
set_property PACKAGE_PIN W3 [get_ports {LED[10]}]
set_property IOSTANDARD LVCMOS33 [get_ports {LED[10]}]
set_property PACKAGE_PIN U3 [get_ports {LED[11]}]
set_property IOSTANDARD LVCMOS33 [get_ports {LED[11]}]
set_property PACKAGE_PIN P3 [get_ports {LED[12]}]
set_property IOSTANDARD LVCMOS33 [get_ports {LED[12]}]
set_property PACKAGE_PIN N3 [get_ports {LED[13]}]
set_property IOSTANDARD LVCMOS33 [get_ports {LED[13]}]
set_property PACKAGE_PIN P1 [get_ports {LED[14]}]
set_property IOSTANDARD LVCMOS33 [get_ports {LED[14]}]
set_property PACKAGE_PIN L1 [get_ports {LED[15]}]
set_property IOSTANDARD LVCMOS33 [get_ports {LED[15]}]
## Botones
set_property IOSTANDARD LVCMOS33 [get_ports {BTN[4]}]
set_property IOSTANDARD LVCMOS33 [get_ports {BTN[3]}]
set_property IOSTANDARD LVCMOS33 [get_ports {BTN[2]}]
set_property IOSTANDARD LVCMOS33 [get_ports {BTN[1]}]
set_property IOSTANDARD LVCMOS33 [get_ports {BTN[0]}]
## BTNL -> W19
set_property PACKAGE_PIN W19 [get_ports {BTN[4]}]
## BTND -> U17
set_property PACKAGE_PIN U17 [get_ports {BTN[3]}]
## BTNR -> T17
set_property PACKAGE_PIN T17 [get_ports {BTN[2]}]
## BTNU -> T18
set_property PACKAGE_PIN T18 [get_ports {BTN[1]}]
## BTNC -> U18
set_property PACKAGE_PIN U18 [get_ports {BTN[0]}]
## Reloj CLK conectado a W5
set_property IOSTANDARD LVCMOS33 [get_ports {CLK}]
set_property PACKAGE_PIN W5 [get_ports {CLK}]
create_clock -add -name sys_clk_pin -period 10.00 -waveform {0 5}
[get_ports CLK]
En la simulaci�nde laFSMvemoscomo evolucionael circuitodesde S0a S3 seg�nvan cambiando
lasentradasA y B. Tambi�npodemosobservarc�mose activanlasentradasY0 a Y3.

Más contenido relacionado

La actualidad más candente

Practica compuertas
Practica compuertasPractica compuertas
Practica compuertas140497
 
Máquinas de estado finito
Máquinas de estado finitoMáquinas de estado finito
Máquinas de estado finitoFabiola Dubraska
 
Maquinas de estado Finito
Maquinas de estado FinitoMaquinas de estado Finito
Maquinas de estado FinitoRosangela Perez
 
Presentacion 2 - Maquinas de Estado Finito
Presentacion 2 - Maquinas de Estado FinitoPresentacion 2 - Maquinas de Estado Finito
Presentacion 2 - Maquinas de Estado Finitojunito86
 
Electrónica digital: tema IV maquinas de estado finito
Electrónica digital: tema IV maquinas de estado finitoElectrónica digital: tema IV maquinas de estado finito
Electrónica digital: tema IV maquinas de estado finitoSANTIAGO PABLO ALBERTO
 
Electrónica digital: Tema 6 Teoría de autómatas síncronos
Electrónica digital: Tema 6 Teoría de autómatas síncronosElectrónica digital: Tema 6 Teoría de autómatas síncronos
Electrónica digital: Tema 6 Teoría de autómatas síncronosSANTIAGO PABLO ALBERTO
 
Diferencias entre circuitos combinacionales y secuenciales
Diferencias entre circuitos combinacionales y secuencialesDiferencias entre circuitos combinacionales y secuenciales
Diferencias entre circuitos combinacionales y secuencialesWilfred Garcia Diomeda
 
Maquinas de estado finito
Maquinas de estado finitoMaquinas de estado finito
Maquinas de estado finitoErick Bello
 
Apuntes automatas
Apuntes automatasApuntes automatas
Apuntes automatasasdfa11789
 
Apuntes circuitos secuenciales
Apuntes circuitos secuencialesApuntes circuitos secuenciales
Apuntes circuitos secuencialeskgconchis
 
06 error en estado estable o estacionario
06   error en estado estable o estacionario06   error en estado estable o estacionario
06 error en estado estable o estacionarioJohan Rabelly
 
cascada electroneumatica
cascada electroneumaticacascada electroneumatica
cascada electroneumaticaDimas Rumay
 

La actualidad más candente (19)

Práctica 5
Práctica 5Práctica 5
Práctica 5
 
Maquinas de estado
Maquinas de estadoMaquinas de estado
Maquinas de estado
 
Practica compuertas
Practica compuertasPractica compuertas
Practica compuertas
 
Máquinas de estado finito
Máquinas de estado finitoMáquinas de estado finito
Máquinas de estado finito
 
Maquinas de estado Finito
Maquinas de estado FinitoMaquinas de estado Finito
Maquinas de estado Finito
 
Presentacion 2 - Maquinas de Estado Finito
Presentacion 2 - Maquinas de Estado FinitoPresentacion 2 - Maquinas de Estado Finito
Presentacion 2 - Maquinas de Estado Finito
 
Maquinas de estado finito mapa mental
Maquinas de estado finito mapa mentalMaquinas de estado finito mapa mental
Maquinas de estado finito mapa mental
 
Exposicion matematica
Exposicion matematicaExposicion matematica
Exposicion matematica
 
Electrónica digital: tema IV maquinas de estado finito
Electrónica digital: tema IV maquinas de estado finitoElectrónica digital: tema IV maquinas de estado finito
Electrónica digital: tema IV maquinas de estado finito
 
Electrónica digital: Tema 6 Teoría de autómatas síncronos
Electrónica digital: Tema 6 Teoría de autómatas síncronosElectrónica digital: Tema 6 Teoría de autómatas síncronos
Electrónica digital: Tema 6 Teoría de autómatas síncronos
 
Circuitos secuenciales
Circuitos secuencialesCircuitos secuenciales
Circuitos secuenciales
 
Diferencias entre circuitos combinacionales y secuenciales
Diferencias entre circuitos combinacionales y secuencialesDiferencias entre circuitos combinacionales y secuenciales
Diferencias entre circuitos combinacionales y secuenciales
 
Semaforo
SemaforoSemaforo
Semaforo
 
Maquinas de estado finito
Maquinas de estado finitoMaquinas de estado finito
Maquinas de estado finito
 
Apuntes automatas
Apuntes automatasApuntes automatas
Apuntes automatas
 
Apuntes circuitos secuenciales
Apuntes circuitos secuencialesApuntes circuitos secuenciales
Apuntes circuitos secuenciales
 
06 error en estado estable o estacionario
06   error en estado estable o estacionario06   error en estado estable o estacionario
06 error en estado estable o estacionario
 
cascada electroneumatica
cascada electroneumaticacascada electroneumatica
cascada electroneumatica
 
Sistemas secuenciales
Sistemas secuencialesSistemas secuenciales
Sistemas secuenciales
 

Similar a Implementación de una máquina de estados finitos en VHDL

Electrónica digital: Maquina de estado finitas (FSM´s)
Electrónica digital: Maquina de estado finitas (FSM´s)Electrónica digital: Maquina de estado finitas (FSM´s)
Electrónica digital: Maquina de estado finitas (FSM´s)SANTIAGO PABLO ALBERTO
 
Electrónica digital: capitulo 7 Autómatas finitos parte 1
Electrónica digital: capitulo 7 Autómatas finitos parte 1Electrónica digital: capitulo 7 Autómatas finitos parte 1
Electrónica digital: capitulo 7 Autómatas finitos parte 1SANTIAGO 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
 
Electrónica digital: Tema 7 Sistemas secuenciales síncronos
Electrónica digital: Tema 7 Sistemas secuenciales síncronosElectrónica digital: Tema 7 Sistemas secuenciales síncronos
Electrónica digital: Tema 7 Sistemas secuenciales síncronosSANTIAGO PABLO ALBERTO
 
Maquinas de estado con VHDL - electronica digital - circuitos secuenciales
Maquinas de estado con VHDL - electronica digital  - circuitos secuencialesMaquinas de estado con VHDL - electronica digital  - circuitos secuenciales
Maquinas de estado con VHDL - electronica digital - circuitos secuencialesJulioCesar858585
 
Taller 4 josue stanley lazo rivera
Taller 4 josue stanley lazo riveraTaller 4 josue stanley lazo rivera
Taller 4 josue stanley lazo rivera1000028858888
 
Matematica discreta informe
Matematica discreta informeMatematica discreta informe
Matematica discreta informeJhojan Mendoza
 
Matematica discreta informe
Matematica discreta informeMatematica discreta informe
Matematica discreta informeJhojan Mendoza
 
Electrónica digital: Análisis de diseño de circuitos secuenciales
Electrónica digital: Análisis de diseño de circuitos secuenciales Electrónica digital: Análisis de diseño de circuitos secuenciales
Electrónica digital: Análisis de diseño de circuitos secuenciales SANTIAGO PABLO ALBERTO
 
Electrónica digital: Diseño de circuitos con VHDL
Electrónica digital: Diseño de circuitos con VHDLElectrónica digital: Diseño de circuitos con VHDL
Electrónica digital: Diseño de circuitos con VHDLSANTIAGO PABLO ALBERTO
 
Electrónica digital: maquinas de estado con VHDL
Electrónica digital: maquinas de estado con VHDLElectrónica digital: maquinas de estado con VHDL
Electrónica digital: maquinas de estado con VHDLSANTIAGO PABLO ALBERTO
 
⭐⭐⭐⭐⭐ Lecciones Simuladas Sistemas Digitales MSS (1er Parcial)
⭐⭐⭐⭐⭐ Lecciones Simuladas Sistemas Digitales MSS (1er Parcial)⭐⭐⭐⭐⭐ Lecciones Simuladas Sistemas Digitales MSS (1er Parcial)
⭐⭐⭐⭐⭐ Lecciones Simuladas Sistemas Digitales MSS (1er Parcial)Victor Asanza
 
004 Electroneumática y Neumática: Método de cascada
004 Electroneumática y Neumática: Método de cascada 004 Electroneumática y Neumática: Método de cascada
004 Electroneumática y Neumática: Método de cascada SANTIAGO PABLO ALBERTO
 

Similar a Implementación de una máquina de estados finitos en VHDL (20)

Electrónica digital: Maquina de estado finitas (FSM´s)
Electrónica digital: Maquina de estado finitas (FSM´s)Electrónica digital: Maquina de estado finitas (FSM´s)
Electrónica digital: Maquina de estado finitas (FSM´s)
 
Electrónica digital: capitulo 7 Autómatas finitos parte 1
Electrónica digital: capitulo 7 Autómatas finitos parte 1Electrónica digital: capitulo 7 Autómatas finitos parte 1
Electrónica digital: capitulo 7 Autómatas finitos parte 1
 
Problema resuelto de Maquinas de estado
Problema resuelto de Maquinas de estadoProblema resuelto de Maquinas de estado
Problema resuelto de Maquinas de estado
 
Electrónica digital: Tema 7 Sistemas secuenciales síncronos
Electrónica digital: Tema 7 Sistemas secuenciales síncronosElectrónica digital: Tema 7 Sistemas secuenciales síncronos
Electrónica digital: Tema 7 Sistemas secuenciales síncronos
 
Tema4 lógica secuencial
Tema4 lógica secuencialTema4 lógica secuencial
Tema4 lógica secuencial
 
Maquinas de estado con VHDL - electronica digital - circuitos secuenciales
Maquinas de estado con VHDL - electronica digital  - circuitos secuencialesMaquinas de estado con VHDL - electronica digital  - circuitos secuenciales
Maquinas de estado con VHDL - electronica digital - circuitos secuenciales
 
Taller 4 josue stanley lazo rivera
Taller 4 josue stanley lazo riveraTaller 4 josue stanley lazo rivera
Taller 4 josue stanley lazo rivera
 
Contadores (electronica)
Contadores (electronica)Contadores (electronica)
Contadores (electronica)
 
Programación Basada en Autómatas
Programación Basada en AutómatasProgramación Basada en Autómatas
Programación Basada en Autómatas
 
Matematica discreta informe
Matematica discreta informeMatematica discreta informe
Matematica discreta informe
 
Matematica discreta informe
Matematica discreta informeMatematica discreta informe
Matematica discreta informe
 
Electrónica digital: Análisis de diseño de circuitos secuenciales
Electrónica digital: Análisis de diseño de circuitos secuenciales Electrónica digital: Análisis de diseño de circuitos secuenciales
Electrónica digital: Análisis de diseño de circuitos secuenciales
 
Circuitos secuenciales=u.o
Circuitos secuenciales=u.oCircuitos secuenciales=u.o
Circuitos secuenciales=u.o
 
Informe practico
Informe practicoInforme practico
Informe practico
 
Electrónica digital: Diseño de circuitos con VHDL
Electrónica digital: Diseño de circuitos con VHDLElectrónica digital: Diseño de circuitos con VHDL
Electrónica digital: Diseño de circuitos con VHDL
 
Expo flip flop
Expo flip flopExpo flip flop
Expo flip flop
 
cir_digitales
 cir_digitales cir_digitales
cir_digitales
 
Electrónica digital: maquinas de estado con VHDL
Electrónica digital: maquinas de estado con VHDLElectrónica digital: maquinas de estado con VHDL
Electrónica digital: maquinas de estado con VHDL
 
⭐⭐⭐⭐⭐ Lecciones Simuladas Sistemas Digitales MSS (1er Parcial)
⭐⭐⭐⭐⭐ Lecciones Simuladas Sistemas Digitales MSS (1er Parcial)⭐⭐⭐⭐⭐ Lecciones Simuladas Sistemas Digitales MSS (1er Parcial)
⭐⭐⭐⭐⭐ Lecciones Simuladas Sistemas Digitales MSS (1er Parcial)
 
004 Electroneumática y Neumática: Método de cascada
004 Electroneumática y Neumática: Método de cascada 004 Electroneumática y Neumática: Método de cascada
004 Electroneumática y Neumática: Método de cascada
 

Más 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
 

Más 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

Comite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptxComite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptxClaudiaPerez86192
 
Falla de san andres y el gran cañon : enfoque integral
Falla de san andres y el gran cañon : enfoque integralFalla de san andres y el gran cañon : enfoque integral
Falla de san andres y el gran cañon : enfoque integralsantirangelcor
 
Obras paralizadas en el sector construcción
Obras paralizadas en el sector construcciónObras paralizadas en el sector construcción
Obras paralizadas en el sector construcciónXimenaFallaLecca1
 
DOCUMENTO PLAN DE RESPUESTA A EMERGENCIAS MINERAS
DOCUMENTO PLAN DE RESPUESTA A EMERGENCIAS MINERASDOCUMENTO PLAN DE RESPUESTA A EMERGENCIAS MINERAS
DOCUMENTO PLAN DE RESPUESTA A EMERGENCIAS MINERASPersonalJesusGranPod
 
Elaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdfElaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdfKEVINYOICIAQUINOSORI
 
nomenclatura de equipo electrico en subestaciones
nomenclatura de equipo electrico en subestacionesnomenclatura de equipo electrico en subestaciones
nomenclatura de equipo electrico en subestacionesCarlosMeraz16
 
Controladores Lógicos Programables Usos y Ventajas
Controladores Lógicos Programables Usos y VentajasControladores Lógicos Programables Usos y Ventajas
Controladores Lógicos Programables Usos y Ventajasjuanprv
 
PostgreSQL on Kubernetes Using GitOps and ArgoCD
PostgreSQL on Kubernetes Using GitOps and ArgoCDPostgreSQL on Kubernetes Using GitOps and ArgoCD
PostgreSQL on Kubernetes Using GitOps and ArgoCDEdith Puclla
 
Tinciones simples en el laboratorio de microbiología
Tinciones simples en el laboratorio de microbiologíaTinciones simples en el laboratorio de microbiología
Tinciones simples en el laboratorio de microbiologíaAlexanderimanolLencr
 
Procesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptx
Procesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptxProcesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptx
Procesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptxJuanPablo452634
 
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)ssuser563c56
 
ARBOL DE CAUSAS ANA INVESTIGACION DE ACC.ppt
ARBOL DE CAUSAS ANA INVESTIGACION DE ACC.pptARBOL DE CAUSAS ANA INVESTIGACION DE ACC.ppt
ARBOL DE CAUSAS ANA INVESTIGACION DE ACC.pptMarianoSanchez70
 
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICA
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICAINTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICA
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICAJOSLUISCALLATAENRIQU
 
hitos del desarrollo psicomotor en niños.docx
hitos del desarrollo psicomotor en niños.docxhitos del desarrollo psicomotor en niños.docx
hitos del desarrollo psicomotor en niños.docxMarcelaArancibiaRojo
 
Principales aportes de la carrera de William Edwards Deming
Principales aportes de la carrera de William Edwards DemingPrincipales aportes de la carrera de William Edwards Deming
Principales aportes de la carrera de William Edwards DemingKevinCabrera96
 
CAPITULO 4 ANODIZADO DE ALUMINIO ,OBTENCION Y PROCESO
CAPITULO 4 ANODIZADO DE ALUMINIO ,OBTENCION Y PROCESOCAPITULO 4 ANODIZADO DE ALUMINIO ,OBTENCION Y PROCESO
CAPITULO 4 ANODIZADO DE ALUMINIO ,OBTENCION Y PROCESOLUISDAVIDVIZARRETARA
 
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZgustavoiashalom
 
tema05 estabilidad en barras mecanicas.pdf
tema05 estabilidad en barras mecanicas.pdftema05 estabilidad en barras mecanicas.pdf
tema05 estabilidad en barras mecanicas.pdfvictoralejandroayala2
 
aCARGA y FUERZA UNI 19 marzo 2024-22.ppt
aCARGA y FUERZA UNI 19 marzo 2024-22.pptaCARGA y FUERZA UNI 19 marzo 2024-22.ppt
aCARGA y FUERZA UNI 19 marzo 2024-22.pptCRISTOFERSERGIOCANAL
 
Sesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO CersaSesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO CersaXimenaFallaLecca1
 

Último (20)

Comite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptxComite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptx
 
Falla de san andres y el gran cañon : enfoque integral
Falla de san andres y el gran cañon : enfoque integralFalla de san andres y el gran cañon : enfoque integral
Falla de san andres y el gran cañon : enfoque integral
 
Obras paralizadas en el sector construcción
Obras paralizadas en el sector construcciónObras paralizadas en el sector construcción
Obras paralizadas en el sector construcción
 
DOCUMENTO PLAN DE RESPUESTA A EMERGENCIAS MINERAS
DOCUMENTO PLAN DE RESPUESTA A EMERGENCIAS MINERASDOCUMENTO PLAN DE RESPUESTA A EMERGENCIAS MINERAS
DOCUMENTO PLAN DE RESPUESTA A EMERGENCIAS MINERAS
 
Elaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdfElaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdf
 
nomenclatura de equipo electrico en subestaciones
nomenclatura de equipo electrico en subestacionesnomenclatura de equipo electrico en subestaciones
nomenclatura de equipo electrico en subestaciones
 
Controladores Lógicos Programables Usos y Ventajas
Controladores Lógicos Programables Usos y VentajasControladores Lógicos Programables Usos y Ventajas
Controladores Lógicos Programables Usos y Ventajas
 
PostgreSQL on Kubernetes Using GitOps and ArgoCD
PostgreSQL on Kubernetes Using GitOps and ArgoCDPostgreSQL on Kubernetes Using GitOps and ArgoCD
PostgreSQL on Kubernetes Using GitOps and ArgoCD
 
Tinciones simples en el laboratorio de microbiología
Tinciones simples en el laboratorio de microbiologíaTinciones simples en el laboratorio de microbiología
Tinciones simples en el laboratorio de microbiología
 
Procesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptx
Procesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptxProcesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptx
Procesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptx
 
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)
 
ARBOL DE CAUSAS ANA INVESTIGACION DE ACC.ppt
ARBOL DE CAUSAS ANA INVESTIGACION DE ACC.pptARBOL DE CAUSAS ANA INVESTIGACION DE ACC.ppt
ARBOL DE CAUSAS ANA INVESTIGACION DE ACC.ppt
 
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICA
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICAINTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICA
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICA
 
hitos del desarrollo psicomotor en niños.docx
hitos del desarrollo psicomotor en niños.docxhitos del desarrollo psicomotor en niños.docx
hitos del desarrollo psicomotor en niños.docx
 
Principales aportes de la carrera de William Edwards Deming
Principales aportes de la carrera de William Edwards DemingPrincipales aportes de la carrera de William Edwards Deming
Principales aportes de la carrera de William Edwards Deming
 
CAPITULO 4 ANODIZADO DE ALUMINIO ,OBTENCION Y PROCESO
CAPITULO 4 ANODIZADO DE ALUMINIO ,OBTENCION Y PROCESOCAPITULO 4 ANODIZADO DE ALUMINIO ,OBTENCION Y PROCESO
CAPITULO 4 ANODIZADO DE ALUMINIO ,OBTENCION Y PROCESO
 
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
 
tema05 estabilidad en barras mecanicas.pdf
tema05 estabilidad en barras mecanicas.pdftema05 estabilidad en barras mecanicas.pdf
tema05 estabilidad en barras mecanicas.pdf
 
aCARGA y FUERZA UNI 19 marzo 2024-22.ppt
aCARGA y FUERZA UNI 19 marzo 2024-22.pptaCARGA y FUERZA UNI 19 marzo 2024-22.ppt
aCARGA y FUERZA UNI 19 marzo 2024-22.ppt
 
Sesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO CersaSesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
 

Implementación de una máquina de estados finitos en VHDL

  • 1. M�quinas de estado finito en VHDL Las m�quinasde estadofinito,m�sconocidasporsuacr�nimoeningl�sFSM(FiniteState Machine), se utilizan ampliamente en el dise�o de circuitos digitales (adem�s de en otros �mbitos de la ingenier�a,comola programaci�n),para describirel comportamientode unsistemaseg�nel valor de sus entradasyde c�mo vancambiandoenel tiempo. �staesunadefinici�nparcial peroque nos permite hacernos una primera idea intuitiva. Desde el punto de vista de las FSM, un sistema est� compuestode estados porlosque vapasandoel sistema,de se�alesdeentrada que modificanesos estadosyde se�alesde salida que puedenutilizarse paraconocerel estadodel sistemayactuaren consecuencia. Un ejemplo muy visual podr�a ser un sem�foro, el cu�l dispone de tres estados diferentes, uno para cada color. Las entradas del sistema las podr�a generar un temporizador que activa una se�al cada cierto tiempo, indicando que hay que pasar al siguiente estado.Por �ltimo, las salidas del sistema podr�an ser tres se�ales que indiquenqu� l�mpara, de las tres disponibles, tiene que encenderse.Para representar una m�quina de estados se utilizan diagramasde estados como el siguiente.
  • 2. Cada c�rculo representaunestado.En este caso tenemoscuatroestadosque se llamanS1, S2, S3 y S4. El estadoS1 tiene unaflechaque indicaque esel estadoel inicial,al que se entra tras un reset del sistema.El S4tiene undoble c�rculo,que indicaque esunestadofinal.Losestadosest�nunidos por unasflechasllamadastransiciones,queindicanc�moevolucionael sistemade unestadoaotro seg�nse activanlas se�alesde entrada.Eneste casoconcretohay tresse�alesde entrada(a,b,c y d). Si estandoenel estadoS1 se activa la se�al a, el sistemaevolucionar�al estadoS2. Del mismo modo,si estandoenel estadoS2se activalase�al b,el sistemaevolucionar�de nuevoal estadoS1. En este caso no hay se�ales de salida. Si las hay pueden ponerse dentro del c�rculo o, para no sobrecargar el diagrama,se puedendefinir fuerade �ste,porejemploenunatabla.Vamosa crear una FSM muy b�sica y a implementarla en VHDL, para poder llevarla a una FPGA. La m�quina que vamos a implementar es la mostrada en el siguiente diagrama de estados. Tenemos cuatro estados (S0, S1, S2 y S3) y dos se�ales de entrada (A y B). No hemos puesto en el diagrama las se�ales de salida, pero las definimos en la siguiente tabla: S0 -> Y0 S1 -> Y1
  • 3. S2 -> Y2 S3 -> Y3 Por lo tanto, tenemos cuatro se�ales de salida. La se�al Y0 se activa cuando el sistema est� en el estado S0, La Y1 cuando el sistema est� en el estado S1 y as� sucesivamente. Como se puede observar,lasalidadel sistemadependeexclusivamentedelestadoenelquese encuentraelsistema. Cuando ocurre esto decimos que se trata de una m�quina de estados de tipo Moore. Si la salida depende del estadoy adem�s de las entradasactuales del sistema, se tratar�a de una m�quina de estados de tipo Mealy. Se puede demostrar que ambos modelos son equivalentes, as� que aqu� vamos a quedarnos con el primer tipo que es m�s sencillo. A nivel f�sico, una de las formas m�s efectivas de implementar una FSM es seg�n el siguiente esquema. Obviamente necesitamosalg�nelementode memoriaparaalmacenarel estadoactual del sistema. Nosotros usaremos un registro de biestablesde tipo D (es por lo tanto un bloque secuencial). Los otros dos bloques son puramente combinacionales. El primero se encarga de generar el estado siguienteapartirdel estadoactual yde lasentradasdel sistema.Adem�s,necesitamosotrocircuito para generar las se�ales de salida a partir del estado actual (recordemos que es una m�quina de tipo Moore). Voy a llevar a la pr�ctica el circuito usando una FPGA. En concreto usar� la placa BASYS 3 con una FPGA Artix 7 de Xilinx.Voyautilizarel bot�n0comose�al de resetylosbotones4y 2 comose�ales A y B respectivamente. Las salidas Y0 a Y3 las voy a asociar a los LEDs 0 a 3. Para evitar utilizar circuitos antirebote para los pulsadores,he dise�ado el diagrama de forma que dos pulsaciones seguidas del mismo bot�n no hagan evolucionar el sistema a otro estado. Como tenemoscuatroestados,podr�amosusar dos bitpara codificarlosestados.Por ejemplo:S0- >00, S1->01, S2->10 y S3->11. Sinembargo,lo m�s habitual esdejarque el sintetizadorlohagapor nosotros definiendo un tipo para los estados tal y como se ve en la siguiente definici�n. As�, si a�adimos nuevos estados, no tenemos que andar redimensionando el registro de estados. -- declaraciones modelo FSM type STATES is (S0, S1, S2, S3); signal state_reg, state_next: STATES;
  • 4. Veamosc�mose implementaenVHDL cada uno de estostres bloques.Empecemosporel registro de estados. -- registro de estados process(CLK) begin if CLK'event and CLK='1' then if RST='1' then state_reg <= s0; else state_reg <= state_next; end if; end if; end process; El registrode estadostiene unase�al de resets�ncronaque llevaal sistemaal estadoS0.Si la l�gica de codificaci�n del estado siguiente genera un nuevo estado, este se almacenar� en el registro,si no,la salidadel registrose mantiene.Veamosc�moesel circuito que genera el estado siguiente. -- L�gica de estado siguiente (circuito combinacional) process (state_reg, A, B) begin state_next <= state_reg; case state_reg is when S0 => if A='1' then state_next <= S1; end if; when S1 => if B='1' then state_next <= S2; end if; when S2 =>
  • 5. if A='1' then state_next <= S3; end if; when S3 => state_next <= S3; end case; end process; El estadosiguientese generaapartir del estadoactual y de las entradasA y B, por lo que ponemos estastresse�alesenlalistade sensibilidaddelproceso.Paraevitarque el sintetizadorgenere alg�n latchoelementode memoria,asignamospordefectoel estadoactual alase�al de estadosiguiente. El c�digoVHDLdescribe losestadosy lastransicionesasociadasalasentradasseg�nel diagramade estados que definimos m�s arriba, de forma que, de ser necesario, asigna el valor del estado siguiente ala variable state_nextcuandohayun cambio en lasentradas o en el estado.Por �ltimo echamos un vistazo al circuito de decodificaci�n para las salidas. -- salida tipo Moore process (state_reg) begin -- estableciendo la salida por defecto -- nos aseguramos de crear un circuito -- combinacional sin latches. Y0 <= '0'; Y1 <= '0'; Y2 <= '0'; Y3 <= '0'; case state_reg is when S0 => Y0 <= '1'; when S1 => Y1 <= '1'; when S2 => Y2 <= '1'; when S3 => Y3 <= '1'; end case; end process;
  • 6. De nuevo, para evitar que el sintetizador cree elementos de memoria, asignamos un valor por defecto a las salidas (en este caso 0), y seg�n el estado actual, se activa la salida correspondiente seg�n definimos en la tabla de arriba. El c�digo VHDL completo de nuestra FSM es el siguiente. library IEEE; use IEEE.STD_LOGIC_1164.ALL; entity FSM is Port ( CLK : in STD_LOGIC; BTN : in STD_LOGIC_VECTOR (4 downto 0); LED : out STD_LOGIC_VECTOR (15 downto 0)); end FSM; architecture Behavioral of FSM is -- alias alias RST : STD_LOGIC is BTN(0); alias A : STD_LOGIC is BTN(4); alias B : STD_LOGIC is BTN(2); alias Y0 : STD_LOGIC is LED(0); alias Y1 : STD_LOGIC is LED(1); alias Y2 : STD_LOGIC is LED(2); alias Y3 : STD_LOGIC is LED(3); -- declaraciones modelo FSM type STATES is (S0, S1, S2, S3); signal state_reg, state_next: STATES; begin -- registro de estados process(CLK) begin if CLK'event and CLK='1' then if RST='1' then state_reg <= s0;
  • 7. else state_reg <= state_next; end if; end if; end process; -- L�gica de estado siguiente (circuito combinacional) process (state_reg, A, B) begin state_next <= state_reg; case state_reg is when S0 => if A='1' then state_next <= S1; end if; when S1 => if B='1' then state_next <= S2; end if; when S2 => if A='1' then state_next <= S3; end if; when S3 => state_next <= S3; end case; end process; -- salida tipo Moore process (state_reg) begin -- estableciendo la salida por defecto
  • 8. -- nos aseguramos de crear un circuito -- combinacional sin latches. Y0 <= '0'; Y1 <= '0'; Y2 <= '0'; Y3 <= '0'; case state_reg is when S0 => Y0 <= '1'; when S1 => Y1 <= '1'; when S2 => Y2 <= '1'; when S3 => Y3 <= '1'; end case; end process; end Behavioral; Os dejoel archivode restriccionesparalaplacaBASYS 3 que he usadopara este ejemplo,dondese definenlospuertosde lospulsadores,losLEDsy el reloj del sistema. ## LEDs set_property PACKAGE_PIN U16 [get_ports {LED[0]}] set_property IOSTANDARD LVCMOS33 [get_ports {LED[0]}] set_property PACKAGE_PIN E19 [get_ports {LED[1]}] set_property IOSTANDARD LVCMOS33 [get_ports {LED[1]}] set_property PACKAGE_PIN U19 [get_ports {LED[2]}] set_property IOSTANDARD LVCMOS33 [get_ports {LED[2]}] set_property PACKAGE_PIN V19 [get_ports {LED[3]}] set_property IOSTANDARD LVCMOS33 [get_ports {LED[3]}] set_property PACKAGE_PIN W18 [get_ports {LED[4]}] set_property IOSTANDARD LVCMOS33 [get_ports {LED[4]}] set_property PACKAGE_PIN U15 [get_ports {LED[5]}] set_property IOSTANDARD LVCMOS33 [get_ports {LED[5]}] set_property PACKAGE_PIN U14 [get_ports {LED[6]}]
  • 9. set_property IOSTANDARD LVCMOS33 [get_ports {LED[6]}] set_property PACKAGE_PIN V14 [get_ports {LED[7]}] set_property IOSTANDARD LVCMOS33 [get_ports {LED[7]}] set_property PACKAGE_PIN V13 [get_ports {LED[8]}] set_property IOSTANDARD LVCMOS33 [get_ports {LED[8]}] set_property PACKAGE_PIN V3 [get_ports {LED[9]}] set_property IOSTANDARD LVCMOS33 [get_ports {LED[9]}] set_property PACKAGE_PIN W3 [get_ports {LED[10]}] set_property IOSTANDARD LVCMOS33 [get_ports {LED[10]}] set_property PACKAGE_PIN U3 [get_ports {LED[11]}] set_property IOSTANDARD LVCMOS33 [get_ports {LED[11]}] set_property PACKAGE_PIN P3 [get_ports {LED[12]}] set_property IOSTANDARD LVCMOS33 [get_ports {LED[12]}] set_property PACKAGE_PIN N3 [get_ports {LED[13]}] set_property IOSTANDARD LVCMOS33 [get_ports {LED[13]}] set_property PACKAGE_PIN P1 [get_ports {LED[14]}] set_property IOSTANDARD LVCMOS33 [get_ports {LED[14]}] set_property PACKAGE_PIN L1 [get_ports {LED[15]}] set_property IOSTANDARD LVCMOS33 [get_ports {LED[15]}] ## Botones set_property IOSTANDARD LVCMOS33 [get_ports {BTN[4]}] set_property IOSTANDARD LVCMOS33 [get_ports {BTN[3]}] set_property IOSTANDARD LVCMOS33 [get_ports {BTN[2]}] set_property IOSTANDARD LVCMOS33 [get_ports {BTN[1]}] set_property IOSTANDARD LVCMOS33 [get_ports {BTN[0]}] ## BTNL -> W19 set_property PACKAGE_PIN W19 [get_ports {BTN[4]}] ## BTND -> U17 set_property PACKAGE_PIN U17 [get_ports {BTN[3]}] ## BTNR -> T17
  • 10. set_property PACKAGE_PIN T17 [get_ports {BTN[2]}] ## BTNU -> T18 set_property PACKAGE_PIN T18 [get_ports {BTN[1]}] ## BTNC -> U18 set_property PACKAGE_PIN U18 [get_ports {BTN[0]}] ## Reloj CLK conectado a W5 set_property IOSTANDARD LVCMOS33 [get_ports {CLK}] set_property PACKAGE_PIN W5 [get_ports {CLK}] create_clock -add -name sys_clk_pin -period 10.00 -waveform {0 5} [get_ports CLK] En la simulaci�nde laFSMvemoscomo evolucionael circuitodesde S0a S3 seg�nvan cambiando lasentradasA y B. Tambi�npodemosobservarc�mose activanlasentradasY0 a Y3.