CUADERNILLO DE EJERCICIOS PARA EL TERCER TRIMESTRE, SEXTO GRADO
Reporte vhdl8
1. SEP
DGEST
INSTITUTO
TECNOLÓGICO
SNEST
DE
MATAMOROS
DEPARTAMENTO DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA
Diseño Digital con VHDL
Equipo:
Alumno(s):
Núm. de control:
Mario Arturo Cruz Colunga
11260077
Miguel Angel Fierros Peña
11260081
Hermenegildo Martínez de la Cruz
11260095
Jorge Alejandro Reyes Torres
11260108
H. MATAMOROS, TAM.
28 de Octubre del 2013
2. Practica 8
Objetivo:
Esta práctica implementará el funcionamiento de una maquina despachadora de
bebidas.
Marco teórico:
Máquina de estados
Se denomina máquina de estados finitos (FSM por finitestate machine) si el
conjunto de estados de la máquina es finito, este es el único tipo de máquinas de
estados que podemos modelar en un computador en la actualidad; debido a esto
se suelen utilizar los términos máquina de estados y máquina de estados finitos de
forma intercambiable. Sin embargo un ejemplo de una máquina de estados
infinitos sería un computador cuántico esto es debido a que los Qubit que utilizaría
este tipo de computadores toma valores continuos, en contraposición los bits
toman valores discretos (0 ó 1). Otro buen ejemplo de una máquina de estados
infinitos es una Máquina universal de Turing la cual se puede definir teóricamente
con una "cinta" o memoria infinita.
La representación de una máquina de estados se realiza mediante un Diagrama
de estados, sin embargo también es posible utilizar un Diagrama de flujo.
Material:
Laptop
Kit spartan3e
Software aldec HDL, xilinx ISE, adept.
Procedimiento:
Se crea nuevo proyecto en aldec HDL
Se crea un diagrama de estados
3. Diagrama de estados maquina despachadora
EM
Entity : maq
Architecture: maq_arch
RM
R
A
SM
S5
m clk
SR
SA
J
M 15
SJ
A='1'
R='1'
Sreg0
J='1'
mclk
ce
M5
M 10
SM <='0';S5<='0';SR<='0';SA<='0';
SJ<='0';M 5<='0';M 10<='0';M 15<='0'
nom onedas
/000/
No clock enable
SM <='0';S5<='0';SR<='0';SA<='0';
SJ<='0';M 5<='1';M 10<='0';M 15<='0'
RM='1'
SM <='1'
EM='1'
A='1'
pesos5
/001/
RM='1'
RM='1'
SM <='1'
J='1'
SJ<='1'
SA<='1'
A='0' and J='0' and R='0'
and EM='0' and RM='0'
R='1'
SM <='1'
EM='1'
pesos10
/010/
J='1'
A='1'
SA<='1'
SR<='1'
SM <='0';S5<='0';SR<='0';SA<='0';
SJ<='0';M 5<='0';M 10<='1';M 15<='0'
SJ<='1'
A='0' and J='0' and R='0'
and EM='0' and RM='0'
EM='1'
pesos15
/100/
EM='1'
S5<='1'
SM <='0';S5<='0';SR<='0';SA<='0';
SJ<='0';M 5<='0';M 10<='0';M 15<='1'
A='0' and J='0' and R='0' and EM='0' and RM='0'
4. Reloj del sistema
libraryieee;
use ieee.std_logic_1164.all;
useieee.std_logic_unsigned.all;
entityclkdivis
port(
mclk: in std_logic;
clr: in std_logic;
clk48: outstd_logic
);
endclkdiv;
architectureclkdiv of clkdivis
signal q: std_logic_vector(23 downto 0);
begin
process(mclk, clr)
begin
ifclr='1' then
q <= x"000000";
elsifmclk'event and mclk ='1' then
q <= q + 1;
endif;
endprocess;
clk48 <= q(23);
endclkdiv;
5. Unión del circuito
U2
mclk
m c lk
U1
c lk 4 8
c lr
GND
clkdiv
A
EM
J
A
M10
EM
M15
M5
m c lk
R
RM
J
S5
R
SA
RM
SJ
SM
SR
M10
M15
M5
S5
SA
SJ
SM
SR
maq
Observaciones y conclusiones:
La máquina despachadora aceptaba las entradas y salidas de acuerdo a las operaciones que se le
programaron, realizando correctamente la función especificada en el diagrama de estados.
Aunque como el reloj era un poco lento algunas veces se llegaba a ignorar algún pulso de los
interruptores utilizados para la simulación, pero ese problema se corregía aumentando un poco
más la velocidad de reloj sin exceder el tiempo de duración de los pulsos en los interruptores.