Sei sulla pagina 1di 8

ESCUELA SUPERIOR DE CMPUTO

DISEO DIGITAL

PRACTICA 5 CONTADOR CANICAS

PROFESOR: RUBEN GALICIA MEJIA EQUIPO: Los Compas INTEGRANTES: FLORES ALTAMIRANO JORDY BRAYAM GARCIA VICTORIA EDDIE ANTONIO TOVAR MUOZ JOSE CARLOS JIMENEZ ASTUDILLO EDUARDO

FECHA: 30 de octubre de 2013

Introduccin CPLD Un CPLD (del acrnimo ingls Complex Programmable Logic Device) es un dispositivo electrnico. Los CPLD extienden el concepto de un PLD (del acrnimo ingls Programmable Logic Device) a un mayor nivel de integracin ya que permite implementar sistemas ms eficaces, ya que utilizan menor espacio, mejoran la fiabilidad del diseo, y reducen costos. Un CPLD se forma con mltiples bloques lgicos, cada uno similar a un PLD. Los bloques lgicos se comunican entre s utilizando una matriz programable de interconexiones, lo cual hace ms eficiente el uso del silicio, conduciendo a una mejor eficiencia a menor costo. A continuacin se explican brevemente las principales caractersticas de la arquitectura de un CPLD. VHDL VHDL es el acrnimo que representa la combinacin de VHSIC y HDL, donde VHSIC es el acrnimo de Very High Speed Integrated Circuit y HDL es a su vez el acrnimo de Hardware Description Language. Es un lenguaje definido por el IEEE (Institute of Electrical and Electronics Engineers) (ANSI/IEEE 1076-1993) usado por ingenieros para describir circuitos digitales. Otros mtodos para disear circuitos son la captura de esquemas (con herramientas CAD) y los diagramas de bloques, pero stos no son prcticos en diseos complejos. Otros lenguajes para el mismo propsito sonVerilog y ABEL. Aunque puede ser usado de forma general para describir cualquier circuito se usa principalmente para programar PLD (Programable Logic Device - Dispositivo Lgico Programable), FPGA (Field Programmable Gate Array), ASIC y similares. Flip-Flop J-K El "flip-flop" J-K, es el ms verstil de los flip-flops bsicos. Tiene el carcter de seguimiento de entrada del flip-flop D sincronizado, pero tiene dos entradas, denominadas tradicionalmente J y K. Si J y K son diferentes, la salida Q toma el valor de J durante la subida del siguiente pulso de sincronismo. Si J y K son ambos low (bajo), entonces no se produce cambio alguno. Si J y K son ambos high (alto), entonces en la siguiente subida de clock la salida cambiar de estado. Puede realizar las funciones del flip-flop set/reset y tiene la ventaja de que no hay estados ambiguos. Puede actuar tambien como un flip-flop T para conseguir la accin de permutacin en la salida, si se conectan entre s las entradas J y K. Esta aplicacin de permutar el estado, encuentra un uso extensivo en los contadores binarios.

El contador Johnson El contador en anillo es elegantemente simple, pero utiliza los flip-flops antieconmicamente - recurdese que con n biestables es posible codificar hasta 2n estados -. El contador Johnson o contador conmutado en cola es una variacin del contador en anillo que duplica el nmero de estados codificados, sin sacrificar su velocidad. Lo que si complica algo es la decodificacin del estado. Figure 3.9: Esquema de un contador en Johnson de 4 bits.

La figura 3.9 presenta un contador Johnson de 4 bits. Como puede apreciarse, la diferencia con un contador en anillo es que ahora, en lugar de conectar Q3 a J0, y a K0 conectamos a J0 y Q3 a K0. Esto provoca que el biestable 3 cambie los ceros que le llegan por unos y viceversa. La tabla 3.3 presenta los estados alcanzados. BCD a 7 Segmentos Un dispositivo de salida muy utilizado para visualizar nmeros decimales es el visualizado de 7 segmentos. Los 7 segmentos se marcan con las letras de la a a la g . Existes varios tipos de visualizadores dentro de los cuales encontramos, el denominado incandescente, que es similar a una lmpara comn, el de tubo de descarga de gas, que opera a tensiones altas y produce una iluminacin anaranjada, el de tubo fluorescente, que da una iluminacin verdosa cuando luce y opera con tensiones bajas, el mas moderno que es el de cristal liquido (LCD), este crea nmeros negros sobre fondos plateados, y por ltimo el visualizador comn de diodos emisores de luz (LED) que produce un brillo rojo cuando luce. MATERIAL Y EQUIPO CPLD Computadora con Software IspLever Classic Fuente de alimentacin LEDs Canicas Microswitch Cable USB Protoboard Resistencias 330 cable

Desarrollo CONTADOR CANICAS 1. library ieee; 2. use ieee.std_logic_1164.all; 3. use ieee.std_logic_arith.all; 4. use ieee.std_logic_unsigned.all; 5. 6. entity Cont is 7. port( clk: in std_logic; 8. reset: in std_logic; 9. salida: inout std_logic_vector(3 downto 0); 10. LED : out std_logic_vector(6 downto 0); 11. boton: in std_logic ); 12. 13. 14. attribute loc: string; 15. attribute loc of clk: signal is "p56"; 16. attribute loc of reset: signal is "p125"; 17. attribute loc of boton: signal is "p124"; 18. attribute loc of salida: signal is "p4,p5,p6,p7"; 19. attribute loc of LED: signal is "p16,p21,p22,p23,p24,p25,p26"; 20. 21. end; 22. 23. architecture Cont01 of Cont is 24. 25. begin 26. co: process(clk,reset,boton) 27. begin 28. --if reset = '0' then 29. --salida <= "0000"; 30. --else 31. 32. 33. if(clk'event and clk ='1') then 34. 35. if(boton ='1') then 36. salida<=salida + 1; 37. 38. if (salida = "1001") then 39. salida <= "0000";

40. end if; 41. elsif(boton ='0') then 42. salida <= salida; 43. 44. 45. end if; 46. end if; 47. end process co; 48. 49. cont: process (salida) 50. begin 51. case salida is 52. when "0000" => LED <= "1111110"; 53. when "0001" => LED <= "1100000"; 54. when "0010" => LED <= "1011011"; 55. when "0011" => LED <= "1110011"; 56. when "0100" => LED <= "1100101"; 57. when "0101" => LED <= "0110111"; 58. when "0110" => LED <= "0111111"; 59. when "0111" => LED <= "1100010"; 60. when "1000" => LED <= "1111111"; 61. when "1001" => LED <= "1110111"; 62. when others => LED <= "0000000"; 63. end case; 64. end process cont; 65. 66. 67. end Cont01; Una vez realizado el cdigo en VHDL, programaremos el CPLD con el cable USB Despus, procedemos a armar el circuito en la protoboard y usaremos un microswitch para generar los cambios en el contador y por ende el display cambiara el numero. Armamos el Circuito del display, basndonos en el diagrama que buscamos con anterioridad. Probamos que el decodificador bcd funcionar correctamente en base a los cambios en el contador realizados apretando el microswitch. Una vez probado todo lo anterior, procedimos a realizar el conteo de las canicas usando una regla como camino en la que se le haca a la canica pasar para que al final de esta presionar el botn. CONCLUSIONES

Flores Altamirano Jordy Brayam: En esta prctica usamos un cdigo , en el cual se poda realizar el conteo de 0 a 9 (con capacidad de contar hasta 15 si se deseaba), y otro en el cual se decodificaban las salidas del contador para que se mostrarn en el display de 7 segmentos, se tuvo que agregar el tipo de conexiones que se iban a realizar a travs de un nuevo cdigo llamado cont0. Una vez realizados los cdigos y compilados en el CPLD se procedi a probar si realizaba el conteo de 0 a 9, realizando las conexiones necesarias usando los puertos asignados en cont0, el display de leds de 7 segmentos y un switch button para realizar las transiciones de bajo a alto y que el contador cambiar de estado. Se realiz una canaleta para realizar el conteo de las canicas, al final de esta canaleta se puso un Switch button y cada presin del botn cuando pasaba la canica generaba un cambio de +uno en el contador, lo que ocasionaba un cambio en las salidas y se poda observar en los leds como iba contando del 0 al 9. Se observo tambin la similitud que haba entre este contador, el anterior (Johnson) y el de anillo, en el cual despus de terminar todos los estados regresa al primero. Garcia Victoria Eddie Antonio En esta prctica se realiz un contador de cuatro bits que ira del nmero cero al nueve ( ya que es de cuatro bits se puede llegar a contar hasta quince aunque solo se realiz hasta el 9), esta practica es casi idntica a la anterior solo que en vez de que el cdigo empezara a contar a partir de la seal de reloj, lo que hara ser a partir de un micro Switch empezara por cada pulsacin un cambio en el display ya que sera por cada vez que una de las canicas pasara y tocara (pulsara) el microswitch lo que hara sera como dije anteriormente cambiar el numero ingresado en el display contando uno ms. La compilacin del cdigo dentro del CPLD se procedi a armar el circuito, aunque esto no tuvo un grado alto de dificultad ya que solo era conectar correctamente las entradas y salidas con los LEDs y el microswitch ya que esta era con la que se iba a basar para realizar las transiciones ya que cada vez que se pulsara este iba a cambiar de estado, cada vez que la canica pasara y pulsara el microswitch este iba a contar hasta el nmero nueve y despus de esto se reiniciara. Por ltimo esta prctica fue interesante por lo que confirmamos lo que vimos en clases y en prcticas pasadas con lo del contador con el display de leds de 7 segmentos como lo utilizamos el semestre pasado. Jimnez Astudillo Eduardo Esta prctica se puede decir que fue una continuacin y complemento de la anterior, puesto que ya teniendo armado el circuito de la pasada prctica, se tuvo que acoplar las

entradas de la seal de reloj a un limit switch para poder contar los pulsos que emita. Lo siguiente fue armar el camino por el que correran las canicas para llegar al limit switch. Este paso fue un poco complicado puesto que el resorte del limit switch no ceda al poco peso de las canicas, por lo que se tuvo que modificar el recorrido de las canicas para que cayeran con ms fuerza y poder vencer al limit switch y mandar el pulso para que se aumentara en uno el contador. Otra dificultad es que algunas veces la canica tocaba 2 veces el switch y mandaba dos pulsos y contaba 2 canicas en lugar de una. Tovar Muoz Jose Carlos Esta practica me resulto fascinante ya que podemos realizar muchsimas aplicaciones y contar cualquier cosa que tenga una utilidad en la vida diaria en esta ocasin realizamos un contador de canicas, pero bien pudo ser de cualquier otra cosa, esta aplicacin es muy importante de los flip flip J-K que funcionen como contadores y se pueden usar en la industria como por ejemplo en sistemas automatizados, por ejemplo para contar botellas de vino y en la lnea de la produccin contar cuantas botellas se producen por dia, esto seria muy tedioso y poco practico realizar la cuenta ya que la produccin por dia es muy grande, esto se soluciona con estos contadores y siempre llevaran la cuenta correcta, en este caso nuestra implementacin de los flip flop J-K se llevo a cabo mediante el contador Johnson el cual tiene 4 Flips flops. En esta practica adems de llevar la cuenta mediante unos LEDs implementamos un display de 7 segmentos de anodo comn el cual debimos progamar para decodificar nuestra salida con leds, esto hace mas practico leer con un numero mostrado en el display la cuenta que solamente leer los leds y llevar la cuenta en binario ya que esto seria muy difcil de entender para alguien que no tiene conocimiento de los nmeros binarios, en cambio es mas simple para cualquier usuario leer la cuenta en decimal como todos conocemos esto se lleva a cabo gracias a la ayuda de un process en lenguaje VHDL y las palabras reservadas case y when, esto es algo similar a un swith en lenguaje c, cuando llegue algo a la entrada, entonces mandara otra seal a la salida esto lo usamos para decodificar la cuenta en binario y mostrarla en el display. Para llevar a cabo la cuenta se realizo un if para que siempre que se encuentre un flanco de subida en la seal de reloj y adems que cuando se apriete un Microswitch y reciba una entrada de uno, hara la cuenta en caso que el microswitch no este activado, entonces recibir una entrada de cero, y esto mantendr la cuenta como esta y no incrementara a menos que este microswitch mande una seal de uno y esto se cumple cuando se oprime, de esta forma lanzamos canicas al microswitch y cuando se activa entonces ira contando de uno en uno, de forma regular aunque esto fue algo complejo cuando rebotaba y se tuvo que idear un mtodo anti rebote para que contara regularmente por que en

ocasiones realizaba la cuenta de una canica pero contaba dos veces y esto debe ser preciso, ya que en una lnea de produccin como ya haba mencionado esto seria un problema muy serio. Esta practica nos tomo varias horas pero fueron de mucha diversin y aprendizaje el cual nos ayuda en nuestra formacin profesional y tenemos una herramienta mas para afrontar problemticas en nuestra vida como futuros ingenieros.

Potrebbero piacerti anche