Upload
g-daniella-rodriguez-silva
View
156
Download
9
Embed Size (px)
DESCRIPTION
El siguiente documento muestra el reporte de uso del IDE Active-HDL, intentando resolver el siguiente problema: máquina expendedora que vende un producto en 15 centavos, únicamente recibe dimes y nickels y se deberá evaluar los estados en los que esta debe otorgar cambio al usuario. El diagrama expuesto no se asegura que se pueda ejecutar, ya que fue un proyecto hecho en la teoría de la materia de diseño digital y su único objetivo era darnos una pequeña introducción al uso del IDE.
Citation preview
Simulación
Máquina Expendedora
Génesis Daniella Rodríguez Silva
144753
Diseño Digital
Dr. Gibrán Etcheverry Doger
San Andrés Cholula a 8 de mayo de 2015
INTRODUCCIÓN
En el presente documento se reportará la simulación de una máquina expendedora, la cual
está basada en sistemas digitales secuenciales , los cuales son aquellos que su salida
depende de sus entradas y de estados previos, es por eso que son necesarios elementos que
guarden la información, es decir, elementos de memoria. Para el desarrollo de esta
simulación ocupamos el IDE Active-HDL.
PLANTEAMIENTO DEL PROBLEMA
El problema a resolver trata de una máquina que despacha un único producto, el cual es una
goma de mascar con un valor de 15¢. Esta recibe nickels (5¢) y dimes (10¢) y tiene la
capacidad de devolver cambio cuando sus estados posibles lo requieran. Sus estados
posibles son: 0¢, 5¢, 10¢ y 15¢ y en cada combinación debemos evaluar cuándo se
devolvería cambio y para facilitar la explicación adjuntaré la tabla de estados.
TABLA DE ESTADOS
Present State In Next State Out
D N
0¢ = 00 0 0 0 0
0 1 5¢ 0
1 0 10¢ 0
1 1 15¢ Producto
5¢ = 01 0 0 5¢ 0
0 1 10¢ 0
1 0 15¢ Producto
1 1 20¢ Cambio
10¢ = 10 0 0 10¢ 0
0 1 15¢ Producto
1 0 20¢ Cambio
1 1 25¢ Cambio
15¢ = 11 0 0 15¢ Producto
0 1 20¢ Cambio
1 0 25¢ Cambio
1 1 30¢ Cambio
En la tabla de estados podemos observar todas las posibles combinaciones con las monedas
permitidas y marcado en verde vemos que es cuando la máquina se activa y despacha el
producto. En color rojo observamos el estado cuando se entrega el producto al cliente y
además les otorga cambio.
MATERIAL Y EQUIPO
1. Laptop
2. Software Active-HDL
DISEÑO EN ACTIVE-HDL
El diseño de la máquina expendedora contiene cuatro estados posibles con sus respectivas
combinaciones, en las cuales se simula cuando la máquina es autorizada para entregar el
producto o para entregar el producto y el cambio correspondiente. A continuación
procederé a explicar cada uno de sus casos con sus diferentes combinaciones.
Caso 1
En este caso nuestra máquina está en un estado inicial de 00, esto quiere decir que no tiene
saldo a favor. En este caso únicamente existe una combinación que hace que la máquina
despache el producto al cliente y esta es 11, ya que al insertar una moneda de 10¢ + 5¢ nos
da un total de 15¢, el cual es el valor requerido para que se entregue el producto.
Caso 2
Luego tenemos el caso 01, en el cual tenemos un saldo a favor de 5¢, esto quiere decir que
nuestra máquina entregará el producto cuando nuestros valores de entrada estén en 10 y 11,
ya que así tenemos dos combinaciones que favorecen al saldo requerido, estas son:
5¢ + 10¢ (10), Entrega producto
5¢ + 5¢ + 10¢ (11), Entrega producto y devuelve cambio
En los valores restantes (00 y 01) no se obtiene el saldo suficiente para entregar un
producto al usuario.
Caso 3
Posteriormente tenemos este tercer caso, el cual no activará la máquina en únicamente una
de sus combinaciones, la cual es 00 ya que al tener un saldo inicial de 10¢ y al no tener
alguna otra moneda en los bits de entrada, esta no alcanza el saldo suficiente.
Las otras tres combinaciones permiten la entrega del producto y devuelven cambio. La
única combinación que te da producto sin necesidad de cambio es 01, ya que si nuestro
saldo inicial es 10¢ y nuestro bit en alto es el de 5¢, este nos da el precio justo para adquirir
la goma de mascar. En el caso de 10, nos da un saldo total de 20¢, así que la máquina
debería volver un cambio de 5¢. Lo mismo sucede cuando los bits de entrada están en 11,
ya que el saldo total en este caso sería de 25¢, la cual rebasa aún más el saldo requerido y
se tendría que devolver el saldo de más.
Caso 4
Por último, tenemos un caso en el que la máquina está lista para entregar el producto desde
sus inicios, ya que tiene un saldo a favor de 15¢ y al ingresar cualquier otra moneda en
cualquier de sus combinaciones estaría sobrepasando el valor del producto. La única
combinación en los valores de entrada que solo daría el producto sería en 00, ya que tendría
el saldo exacto para la obtención del producto.
CONCLUSIONES
Desde mi punto de vista me fue grata la pequeña y rápida experiencia en el uso de Active-
HDL, ya que me fue más fácil comprender el uso de circuitos secuenciales con un ejemplo
más tangible como lo es la máquina expendedora, puesto que es algo que usamos casi todos
los días y muy pocas personas sabemos cómo funciona internamente. Mi experiencia en
este reporte me ha llevado a interesarme en aprender la programación, ya que se me hizo
muy útil lo poco que he podido ir entendiendo. He estado viendo videos que me ayuden a
comprender la estructura de la programación y poder así llevar a cabo este mismo proyecto
en código, pues creo que al tener bases en c++ y algunos otros lenguajes de programación
no debería tener tanto problema.
Sería muy grato que en nuestra universidad se implementará más el trabajo VHDL, pues
creo que hace más dinámico el aprendizaje y en mi caso, me resulta más fácil comprender
viendo el funcionamiento que aprendiendo de manera un tanto abstracta los temas del
curso.
REFERENCIAS
Katz, R. H., (1993), Contemporary Logic Design, California, EU.
Addison Wesley Publishing Company
Perry, D. L, VHDL: Programming by example, EU. McGraw-Hill
Mano, M., (1987), Diseño Digital, Los Angeles, EU. Pearson Educación
Tutorial 1 Introduction to Active-HDL
Tutorial 2 Introduction to Active-HDL