Maquina de estado finito 2da parte Vending machine PDF

Title Maquina de estado finito 2da parte Vending machine
Course Diseño Digital
Institution Universidad de las Américas Puebla
Pages 7
File Size 517 KB
File Type PDF
Total Downloads 61
Total Views 136

Summary

Resumen de la implementación de lo visto en la primera parte, el proceso para la elaboración de
una FSM, para poder elaborar el código de la maquina vendedora simple....


Description

Tercer examen parcial 2da parte:

“Vending machine”

Ingeniería Mecatrónica

Objetivos: El objetivo de esta segunda parte del tercer examen parcial del curso consta de la implementación de lo visto en la primera parte, el proceso para la elaboración de una FSM, para poder elaborar el código de la maquina vendedora simple. Metas: Mediante lo aprendido en el libro de Katz acerca de las maquinas de estado finitos y el previo proceso llevado a acabo en la primera parte, lograr hacer el código de la máquina de estado finito de una maquina vendedora simple en EDA Playground y comprobar su comportamiento con el EPWave Especificaciones técnicas: • • •

Se debe leer el documento FSM & Vending Machine Katz et al, el ejemplo 7.9 A Simple Vending Machine. Conocimiento de las posibles combinaciones de monedas. Conocimiento de programación.

Justificación del proyecto: Se realizó esta práctica para comprobar el entendimiento del proceso para la implementación de las FSM leídas en el documento de Katz y con eso saber como llevar a acabo el diseño del código de la maquina y el testbench en EDA Playground Desarrollo del proyecto: El desarrollo de esta segunda parte del examen parcial es básicamente la continuación de la previa. Ya que en esta parte se busca obtener la implantación del proceso llevado a cabo en la primera parte en EDA Playground y poder elaborar el diseño y el testbench de esta máquina de estado finito. Primero, se tomó de base un código de una maquina vendedora muy parecida a la que se elaboró en esta práctica, la diferente era que el producto que esta vendía no costaba 15 centavos, sino que, costaba 25, por lo que se tuvo que modificar el código para ajustarlo a lo que se buscaba. Para hacer la parte del diseño del código, las entradas que se usaron fueron cuatro (reset, reloj, nickel_in y dime_in) y en cuanto a las salidas (el dulce y nickel_out). Una vez que se agregan las entidades de entrada y salida, al ser una FSM se deben agregar los estados por los que puede pasar la FSM. Estos estados aparecen dependiendo de las monedas que se vayan insertando, depende de la denominación y el numero de monedas, es aquí donde empiezan a entrar las diferentes combinaciones de monedas que hay para juntar los 15 centavos que cuesta la goma de mascar, otros estados son “give_change” y “open”. El proceso empieza en el estado 0 y después el estado 5 que es cuando se insertó una de nickel, estado 10 cuando se inserta una de dime o dos nickels (en este

segundo caso sería el estado siguiente). Cuando a un estado le agregas otra moneda pasa al estado siguiente y así sucesivamente hasta tener el estado 20 que es lo máximo que podrías insertar con estas dos denominaciones de centavos, esto se implementa en el diseño en la parte del proceso donde inicia el case.

Imagen 1 y 2: Se muestra el diseño de una maquina vendedora simple en EDA Playground.

Otro aspecto por resaltar en la parte del diseño de la FSM es cómo se implementa el proceso para la liberación del producto que se compró y dar cambio si es necesario. En la parte donde se menciona el estado 15, que es lo que cuesta la goma de mascar, se indica que se va a activar la opción de “open”. La cual, si nos vamos a la ultima parte del case, se observa la opción “open” donde se indica que cuando esta se activa se libera el dulce y el estado siguiente va a reiniciarse y empezar de 0 otra vez. Cuando el estado es 20, que en otras palabras se refiere a que ya se pasó del costo de la goma de mascar, el estado siguiente marca que se va a activar la opción de “give_change” para dar el cambio necesario. Para que esto funcione se puede observar en el penúltimo “WHEN” está la opción de dar cambio “give_change”, la cual dice que, si el estado anterior es 20, entonces va a haber un nickel en la salida, o bien que, “nickel_out” va a estar en alto (activado) y una vez acabada esa acción, el estado siguiente será “open” para expulsar la goma de mascar. Una vez entendido esto e implementado correctamente seguimos con la elaboración del testbench donde básicamente se reciclo el de la maquina vendedora del producto de 25 centavos, lo que se tuvo que cambiar fueron las combinaciones de los centavos a implementar en nuestro diseño y ajustarlo.

Imagen 3: Primera parte de testbench de FSM

Imagen 4, 5 y 6: Proceso de DUT de la FSM. En esta parte del testbench se comprueba qu ela maquina de estados finitos funcione correctamente de acuerdo con las diferentes combinaciones posibles de monedas, aquí tambien es donde se ajusta el perdiodo que va a tener el reloj tanto en bajo como en alto. En la parte donde se insertan las combinaciones ara comprobar el funcioamiento y que haga lo que tiene que hacer (ya sea dar o no cambio, dar la goma de mascar, etc.). Primero se mostro la combinacion de dos dimes que serian dos moedasd e 10 centavos, lo que significa que marcaria en alto el “open/candy_out” para dar la goma de mascar al igual que el “nickel_out” para el cambio, esto se puede observar en el EPWave siguiente:

Imagen 7: Combinaion de dos Dimes y habilitado el “candy_out” y el “nickel_out” Despues se realizó la combinacion de dos nickels y un dime, que igual da como resultado 20 centavos. Por ende, se espera lo mismo que en la pasada combinacion con respecto a las señales de salida.

Imagen 8: Combinacion de dos nickels y un dime, habilitando el “candy_out” y el “nickel_out” Seguimos con la combinacion de tres nickels seguidos, en este caso nos da un total de 15 centavos qu es lo que cuesta la goma de mascar, por lo que solo activara el “open/candy_out”

Imagen 9: Combinacion de 3 nickels, habilitando “open/candy_out” Seguimos con las ultimas dos combinaciones que de cierta forma son la misma, lo que cambia es el oreden en que se insertan las monedas en la maquina. Esta cmbinacion es la de nickel y dime/dime y nickel. Al igual que en la combinacion pasada, aquí nos da un total de 15 centavos que es lo que cuesta la goma de mascar, por lo que solo se activara el “open/candy_out” y no va a dar cambio ni nada.

Imagen 10: Combinacion nickel y dime, habilitando unicamente “open/candy_out” La otra combinacion es lo mismo como ya se mencionó pero empieza con un dime y luego un nickel, provocando que se habiiite el “open/candy_out” nada mas. Finalmennte, cabe mencionar que se explicó individualmente pero originalmente la simulacion de EPWave nos arrojó todas las combinaciones en una sola, la cual se ve de la siguiente manera:

Imagen 11: Vista general del EPWave Resultados logrados: Se logró realizar el código de la máquina de estados finitos de una maquina vendedora simple con ayuda del proceso implementado en la primera parte de esta práctica, se pudo comprobar que las diferentes combinaciones obtenidas anteriormente si funcionaran y en general todo nuestro planteamiento de la FSM Conclusiones: Comprobamos el funcionamiento de una FSM con un ejemplo simple de una maquina vendedora simple, usando conocimientos adquiridos con anterioridad y con ayuda de otro código de una maquina vendedora parecida. Bibliografía y referencias: Báez-López David, G.-C. F. (2011). Circuit Analysis with Multisim. Synthesis Lectures on Digital Circuits. Morgan&Claypool Publishers. Floyd, T. L., Salas, R. N., González, L. M. O., & López, G. P. (2007). Principios de circuitos eléctricos. Pearson Educación. Katz, R. H. (1993). Contemporary logic design. Addision-Wesley. William H. Hayt, Jack E. Kemmerly. Analisis de Circuitos en Ingenieria. 8va. Ed. Mc Graw Hill. México, 2012....


Similar Free PDFs