SlideShare una empresa de Scribd logo
1 de 123
Subsecretaría de Educación Superior
Dirección General de Educación Superior Tecnológica
Instituto Tecnológico de Lázaro Cárdenas
Av. Melchor Ocampo # 2555, Col. Cuarto Sector, C.P. 60950, Cd. Lázaro Cárdenas, Michoacán,
Teléfono (753) 53 7 19 77, 53 2 10 40, 53 7 53 91, 53 7 53 92 Dirección Ext. 109 , Fax. 108
e-mail: direccion@itlac.mx Internet: www.itlazarocardenas.edu.mx.
DISEÑO DIGITAL CON
VHDL
MANUAL DE PRÁCTICAS
NOMBRE DEL ALUMNO:
HECTOR ARNULFO BLANCO NAMBO
ASESOR:
M.C. JOSÉ ARMANDO LARA GONZÁLEZ
GRUPO: 52S
PERIODO: AGOSTO – DICIEMBRE 2016
H. ARNULFO BLANCO NAMBO ITLAC
AGRADECIMIENTOS
A ti, JANETH, por amarme tanto tiempo; y por las mil y una maneras de iluminar las vidas de
todos los que tocas.
A mi familia: Arnulfo, María, Mariela y Jazmín.
Héctor A. Blanco
MANUAL DE PRACTICAS INDICE
H. ARNULFO BLANCO NAMBO ITLAC
CONTENIDO
Introducción ..............................................................................................………. I
Marco Teórico ..............................................................................................………. II
Práctica 1 ............................................................................................………... 1
Práctica 2 ..................................................................................………………. 11
Práctica 3 ............................................................................................………... 15
Práctica 4 ..................................................................................………………. 19
Práctica 5 ............................................................................................………... 23
Práctica 6 ..................................................................................………………. 27
Práctica 7 ............................................................................................………... 31
Práctica 8 ..................................................................................………………. 35
Práctica 9 ............................................................................................………... 39
Práctica 10 ..................................................................................………………. 43
Práctica 11 ............................................................................................………... 49
Práctica 12 ..................................................................................………………. 55
Práctica 13 ............................................................................................………... 61
Práctica 14 ..................................................................................………………. 67
Práctica 15 ............................................................................................………... 74
Práctica 16 ..................................................................................………………. 82
Práctica 17 ............................................................................................………... 89
Práctica 18 ..................................................................................………………. 96
Práctica 19 ............................................................................................………... 104
Conclusión ............................................................................................………… 113
Bibliografía ............................................................................................………... 114
INTRODUCCIÓN
ITLAC I
INTRODUCCIÓN.
En el presente manual de prácticas mostrará, ayudará y guiará al usuario a implementar,
sintetizar, depurar y simular programas en lenguaje VHDL, así como cargar dichos programas
a la tarjeta de entrenamiento.
El software utilizado para el desarrollo de los programas es Xilinx Design Tools.
Cada práctica seguirá las pautas y pasos que se especifican en el guion de la práctica en cuestión.
En todos los guiones de prácticas existen las mismas secciones:
• Introducción. Se realiza una breve introducción al tema que es eje central de la práctica.
• Objetivos. Se definen los objetivos que queremos alcanzar con la realización de la práctica.
Es importante saber a dónde queremos llegar para saber si hemos llegado o no.
• Desarrollo de la práctica. Se explican de forma somera los fundamentos teóricos necesarios
para la realización de la práctica, se especifica concretamente qué hay que hacer en la
práctica y cuáles son los pasos que hay que seguir para realizarla.
MARCO TEORICO
Página II
MARCO TEORICO
Antecedentes
el lenguaje VHDL (Lenguaje De Descripción De Hardware Para Circuitos Integrados De Alta
Velocidad) ha sido el corazón de la productividad del diseño electrónico de hardware desde su
ratificación inicial por la IEEE en 1987. Por casi 15 años la industria del diseño automatizado
ha expandido el uso de VHDL del concepto inicial de documentación del diseño hasta su
implementación y verificación funcional.
El uso de VHDL ha evolucionado y su importancia se ha incrementado al ritmo de que la
dimensionad de los nuevos dispositivos semiconductores se ha reducido. Hace no más de 10
años era común mezclar diseños descritos con diagramas esquemáticos y VHDL, pero debido a
que la complejidad del diseño creció la industria del diseño abandono los diagramas
esquemáticos y opto por solamente el lenguaje descripción de hardware.
Como todos los estándares de IEEE. El estándar VHDL está sujeto a revisiones cada 5 años.
Comentarios y sugerencias de los usuarios del estándar de 1987 fueron analizados por el grupo
de trabajo responsable de IEEE para VHDL. Y en 1992 una versión revisada fue propuesta la
cual fue adoptada en 1993. Dando a conocer VHDL-93. Sucesivamente en 1998 fue puesta en
marcha una segunda vuelta de revisión. Este proceso dio como resultado: VHDL-2001.
Otro cambio significativo en el lenguaje VHDL sucedió en el 2008, que supone un cambio
radical respecto a pasadas modificaciones que ha venido sufriendo el lenguaje.
Introducción a VHDL
Se ha visto con anterioridad, que la forma más común de describir un circuito era mediante la
utilización de esquemas, que son una representación gráfica de lo que se pretende realizar. Con
la aparición de herramientas de EDA (Electronic Design Automation) cada vez más complejas,
que integran en el mismo marco de trabajo tanto las herramientas de descripción, síntesis y
realización. Aparición también la necesidad de disponer una descripción del circuito que
MARCO TEORICO
Página III
permitiera el intercambio de información entre las diferentes herramientas que componen la
herramienta de trabajo.
En principio se utilizó un lenguaje de descripción que permitía, mediante sentencias simples,
describir completamente un circuito. A estos lenguajes se les llamo Netlist puesto que eran
simplemente eso, un conjunto de instrucciones que indicaban el interconexionado entre los
componentes de un diseño, es decir, se trata de una lista de conexiones.
A partir de estos lenguajes simples, que ya eran auténticos lenguajes de descripción de hardware.
Se descubrió el interés que podría tener el describir los circuitos directamente utilizando un
lenguaje en vez de usar esquemas. Sin embargo, se siguieron utilizando esquemas puestos que
desde el punto de vista del ser humano son mucho más sencillos de entender, aunque un lenguaje
simple permite una edición más sencilla y rápida.
Existen dos formas de describir un circuito. Por un lado, se puede describir un circuito indicando
los diferentes componentes que lo forman y su interconexión, de esta manera tenemos
especificado un circuito y sabemos cómo funciona; esta es la forma habitual en que se han
venido describiendo circuitos y las herramientas utilizadas para ello han sido las de captura de
esquemas y las descripciones Netlist.
La segunda forma consiste en describir un circuito indicando lo que hace o como funciona, es
decir, describiendo su comportamiento. Naturalmente esta forma de describir un circuito es
mucho mejor para un diseñador puesto que lo que realmente interesa es el funcionamiento del
circuito más que sus componentes. Por otro lado, al encontrarse lejos de lo que un circuito es
realmente plantear algunos problemas a la hora de realizar un circuito a partir de la descripción
de su comportamiento.
Arreglos De Compuertas De Campo Programables (FPGA)
Los tipos de chips antes descritos, la serie 7400, los SPLD y los CPLD son útiles para
implementar una amplia variedad de circuitos lógico. Excepto por el CPLD, estos dispositivos
son más bien pequeños y adecuados solo para aplicaciones hasta cierto punto simples. Incluso
MARCO TEORICO
Página IV
para los CPLD, nada más pueden acomodarse circuitos lógicos moderadamente grandes en un
solo chip. Por razones de costo y rendimiento, es prudente implementar el circuito lógico
deseado empleando cuantos menos chips sea posible, de modo que tanto la cantidad de circuitos
en un chip como su capacidad funcional son significativos.
Una forma de cuantificar el tamaño de un circuito es suponer que se construirá usando solo
compuertas lógicas simples y luego estimar cuantas de ellas se necesitan. Una medida que suele
usarse es el número total de compuertas NAND de dos entradas que se necesitarían para
construir el circuito; esta medida se llama número de compuertas equivalentes. Si utilizamos la
métrica de compuertas equivalentes es fácil medir el tamaño de un chip de la serie 7400 porque
Cada uno contiene únicamente compuertas simples.
En el caso de los SPLD y los CPLD la medida típica usada es que cada macrocelda represente
aproximadamente 20 compuertas equivalentes. Por ende, una PAL típica que tenga ocho
macroceldas puede acomodar el circuito que requiera hasta alrededor de 160 compuertas y un
gran CPLD que tenga 500 macroceldas puede implementar circuitos de hasta más 0 menos
10000 compuertas equivalentes.
Según los estándares modernos, un circuito lógico con 10,000 compuertas no es grande. Para
implementar circuitos mayores conviene usar un tipo diferente de chip con una capacidad lógica
mayor. Un arreglo de compuertas de campos programables (FPGA. field-programmable gate
array) es un dispositivo lógico programable que soporta la implementación de circuitos lógicos
hasta cierto punto grandes. Los FPGA son muy diferentes de los SPLD y de los CPLD, ya que
no contienen planos AND y OR. En vez de ello, los FPGA ofrecen bloques lógicos para la
implementación de las funciones requeridas. La estructura general de una FPGA se ilustra en la
Figura I.
Contiene tres tipos principales de recursos: bloques lógicos, bloques de I/O para conectar a los
pines del paquete, y cables de interconexión e interruptores. Los bloques lógicos están
dispuestos en un arreglo bidimensional, en tanto que los cables de interconexión están
organizados como canales de enrutamiento horizontales y verticales entre filas y columnas de
MARCO TEORICO
Página V
bloques lógicos. Los canales de enrutamiento horizontales contienen cables e interruptores
programables que permiten que los bloques lógicos se interconecten de muchas maneras.
En la Figura I. se muestran dos ubicaciones de los interruptores programables; los recuadros
oscuros adyacentes a los bloques lógicos sostienen interruptores que conectan las terminales de
entrada y salida del bloque lógico a los cables de interconexión, y los recuadros oscuros que
están diagonalmente entre bloques lógicos conectan un cable de interconexión con otro
(digamos, un cable vertical con uno horizontal). También hay conexiones programables entre
los bloques de I/O y los cables de interconexión.
I/O Cell
Interconnection
resourcesLogic
Bloc
Figura I. Estructura general de una FPGA.
El verdadero número de interruptores programables y cables que hay en una FPGA varía en los
chips disponibles en el comercio. Las FPGA sirven para implementar circuitos lógicos con un
tamaño de más de un millón de compuertas equivalentes. Algunos ejemplos de fabricantes de
productos FPGA comerciales son Altera y Xilinx.
Los chips FPGA están disponibles en una variedad de paquetes, incluidos los paquetes PLCC y
QFP ya descritos.
Cada bloque lógico en una FPGA tiene un pequeño número de entradas y salidas.
Practica 1
ITLAC pág.1
SEP ITNM
INSTITUTO TECNOLÓGICO
DE
LÁZARO CÁRDENAS
PRACTICA 1
DISEÑO, SIMULACION Y PRUEBA DE UNA COMPUERTA AND
DE DOS ENTRADAS
OBJETIVO.
El objetivo de esta práctica es implementar, sintetizar, depurar y
simular, una compuerta AND de dos entradas, en VHDL.
Practica 1
ITLAC pág.2
MATERIAL Y EQUIPO
Para elaborar una práctica es necesario contar con ciertos elementos ya que son nuestras
herramientas de trabajo. Dicho esto, aquí están los que utilizaremos en este caso.
 Tarjeta FPGA Basys 2.
 Computadora Portátil.
 Software Ise Design Suite 14.7.
 Cable De Alimentación USB.
Practica 1
ITLAC pág.3
DESARROLLO.
Creación del programa.
En este reporte se explicará cómo se diseña una compuerta AND de dos entradas con VHDL,
usando el programa “xilinx 14.7” en el cual se comenzará por abrir dicho programa, una vez
abierto dicho programa se dirigirá en la parte superior del programa en la cual presionara la
opción que dice “file” una vez presionado se abrirá un menú, como se muestra en la Figura 1.1
Figura 1.1 Ubicación del menú para crear un nuevo proyecto.
Una vez desplegado dicho menú se seleccionará la opción que dice “New Project.” esta opción
nos abrirá una ventana donde se le dará la ubicación donde se guarda el nuevo proyecto y el
nombre de dicho proyecto como se muestra en la Figura 1.2.
Practica 1
ITLAC pág.4
Figura 1.2. Nombre y ubicación del nuevo proyecto
A continuación, nos mostrara un menú de datos especificaciones que nuestro nuevo proyecto
deberá tener para que se pueda emplear en la FPGA que utilizaremos que este caso será Sparta3E
para no tener problemas de compatibilidad con la FPGA se le asignara los siguientes datos como
se muestra en la Figura 1.3.
Figura 1.3. Especificaciones de propiedades para diseñar un programa de VHDL.
Una vez completado la tabla de especificaciones se dará clic en “Next” enviando la siguiente
ventana que nos mostrará la propiedad que definimos en la Figura 1.3 dicho esto se mostrará en
la Figura 1.4.
Practica 1
ITLAC pág.5
Figura 1.4. Ventana de propiedades seleccionadas.
Después se le dará clic en el botón que dice “Finish” enviando la siguiente ventana del nuevo
proyecto donde se dará clic derecho mostrando un menú de opciones en la cual se elegirá la
opción que dice “New Source.” como se muestra en la Figura 1.5.
Figura 1.5. Creación de un nuevo proyecto en VHDL module.
Desplegando el siguiente menú en el que se elegirá la opción que se encuentra en el menú del
costado izquierdo que tiene el nombre de “VHDL module” una vez elegido se le dará un nombre
Practica 1
ITLAC pág.6
y una ubicación que ya fue definida al inicio cuando se creó un nuevo proyecto el nombre no
necesariamente tiene que ser el mismo que el anterior proyecto es recomendable darle el mismo
nombre como se muestra en la Figura 1.6.
Figura 1.6. Nombre y ubicación del nuevo proyecto en VHDL module.
Una vez realizado todo lo que se mencionó, mostrara una ventana donde se elegirá el número
de entradas y de salidas, así como el nombre que se le asignara a cada una, en este caso será una
compuerta AND de dos entradas como se muestra en la Figura 1.7.
Figura 1.7. Menú de entradas y salidas.
Practica 1
ITLAC pág.7
Después se dará clic en el botón que dice “Next”, mostrando una ventana donde que dice las
entradas y salidas que se eligió, así como el nombre que se le asigno como se muestra en la
Figura 1.8.
Figura 1.8. Especificacion de entradas y salidas.
Realizando todo lo anterior se desplegara la siguiente ventana en la cual ya se intruse el codigo
del programa en este caso sera el codigo para una compuerta AND el cual sera el siguente
“s <= (a and b);” los que se encuentran en color verde son los comentarios se pueden poner
comentarios en el programa agregando antes de lo que se desea escribir (--) doble guion sin
parentesis y despues lo que se desea escribir, al inicio se puede escribir el nombre de la persona
que esta haciendo el progrema en la parte que dice ingeniero en ingles, una vez escrito el codigo
del programa del cual se desea crear se sintetizara el programa dandole clic el parte izquierda
del programa en la cual nos mostrara si tiene error el programa en dado caso que tenga error
marcara una “x” y en caso de que no haya ningun error mostrara una palomita como se muestra
en la Figura 1.9.
Practica 1
ITLAC pág.8
Figura 1.9. Escritura de código y sintetizacion.
Simulación en Isim.
Para simular el programa en “Isim” se seleccionara en la parte de arriba que dice “simulación”
en el archivo que tiene el nombre del programa con “.vhd “una vez seleccionado el archivo en
la parte de inferior muestra “Isim Simulator” se le da clic en el signo de más y despliega un
menú en el cual se le dará clic a la última opción con el nombre de “Simulate Behavioral Model”
mostrando una ventana en la cual se comprobara la tabla de verdad de la compuerta AND, en
cada entrada darle clic derecho el cual despliega un menú seleccionando la opción “Force
Constant..” la cual muestra una ventana en la que se elige si se quiere un cero 0 o un 1 en la
opción que dice “Forcé to value” una vez colocado el dato se hace clic en el botón “OK” y por
último se le da un salto y nos muestra en forma de grafica lo que tiene las dos entradas y las
salidas como se muestra en la Figura 1.10.
Practica 1
ITLAC pág.9
Figura 1.10. Comprobación de la tabla de verdad de la compuerta AND en Isim.
Creación del archivo “.bit”
La creación del archivo “. bit” es con el fin de implementarlo a la tarjeta Spartan3E y simule en
la vida real una compuerta AND de dos entradas los pasos a seguir primero dar clic derecho en
el costado izquierdo parte superior donde se encuentran el archivo “.vhd” en la parte en blanco
mostrara un menú en cual se dará clic en New Source mostrando un menú en el cual se elegirá
la opción que se muestra en Figura 1.11.
Figura 1.11 creación de archivo “.bit”
Practica 1
ITLAC pág.10
Una vez creado mostrará la siguiente ventana en la cual se elegirá entradas y salidas usando la
tarjeta Spartan3E como se muestra en la Figura 1.12.
Figura 1.12 selección de entradas y salidas de la tarjeta Spartan3E.
Practica 2
ITLAC pág. 11
SEP ITNM
INSTITUTO TECNOLÓGICO
DE
LÁZARO CÁRDENAS
PRACTICA 2
DISEÑO, SIMULACION Y PRUEBA DE UNA COMPUERTA OR
DE DOS ENTRADAS
OBJETIVO.
El objetivo de esta práctica es implementar, sintetizar, depurar y
simular, una compuerta OR de dos entradas, en VHDL.
Practica 2
ITLAC pág. 12
MATERIAL Y EQUIPO
Para elaborar una práctica es necesario contar con ciertos elementos ya que son nuestras
herramientas de trabajo. Dicho esto, aquí están los que utilizaremos en este caso.
 Tarjeta FPGA Basys 2.
 Computadora Portátil.
 Software Ise Design Suite 14.7.
 Cable De Alimentación USB.
Practica 2
ITLAC pág. 13
DESARROLLO
La siguiente ventana en la cual ya se intruse el codigo del programa en este caso sera el codigo
para una compuerta OR el cual sera el siguente “s <= (a OR b);” los que se encuentran en
color verde son los comentarios se pueden poner comentarios en el programa agregando antes
de lo que se desea escribir (--) doble guion sin parentesis y despues lo que se desea escribir, al
inicio se puede escribir el nombre de la persona que esta haciendo el progrema en la parte que
dice ingeniero en ingles, una vez escrito el codigo del programa del cual se desea crear se
sintetizara el programa dandole clic el parte izquierda del programa en la cual nos mostrara si
tiene error el programa en dado caso que tenga error marcara una “x” y en caso de que no haya
ningun error mostrara una palomita como se muestra en la Figura 2.1.
Figura 2.1. Escritura de código y sintetizacion.
Simulación en Isim.
Para simular el programa en “Isim” se seleccionara en la parte de arriba que dice “simulación”
en el archivo que tiene el nombre del programa con “.vhd “una vez seleccionado el archivo en
la parte de inferior muestra “Isim Simulator” se le da clic en el signo de más y despliega un
Practica 2
ITLAC pág. 14
menú en el cual se le dará clic a la última opción con el nombre de “Simulate Behavioral Model”
mostrando una ventana en la cual se comprobara la tabla de verdad de la compuerta OR, en cada
entrada darle clic derecho el cual despliega un menú seleccionando la opción “Force Constant..”
la cual muestra una ventana en la que se elige si se quiere un cero 0 o un 1 en la opción que dice
“Forcé to value” una vez colocado el dato se hace clic en el botón “OK” y por último se le da
un salto y nos muestra en forma de grafica lo que tiene las dos entradas y las salidas como se
muestra en la Figura 2.2.
Figura 2.2. Comprobación de la tabla de verdad de la compuerta OR en Isim.
Practica 3
ITLAC pág. 15
SEP ITNM
INSTITUTO TECNOLÓGICO
DE
LÁZARO CÁRDENAS
PRACTICA 3
DISEÑO, SIMULACION Y PRUEBA DE UNA COMPUERTA
EXOR DE DOS ENTRADAS.
OBJETIVO.
El objetivo de esta práctica es implementar, sintetizar, depurar y
simular, una compuerta EXOR de dos entradas, en VHDL.
Practica 3
ITLAC pág. 16
MATERIAL Y EQUIPO
Para elaborar una práctica es necesario contar con ciertos elementos ya que son nuestras
herramientas de trabajo. Dicho esto, aquí están los que utilizaremos en este caso.
 Tarjeta FPGA Basys 2.
 Computadora Portátil.
 Software Ise Design Suite 14.7.
 Cable De Alimentación USB.
Practica 3
ITLAC pág. 17
DESARROLLO.
La siguiente ventana en la cual ya se intruse el codigo del programa en este caso sera el codigo
para una compuerta EXOR el cual sera el siguente “s <= (a XOR b);” los que se encuentran en
color verde son los comentarios se pueden poner comentarios en el programa agregando antes
de lo que se desea escribir (--) doble guion sin parentesis y despues lo que se desea escribir, al
inicio se puede escribir el nombre de la persona que esta haciendo el progrema en la parte que
dice ingeniero en ingles, una vez escrito el codigo del programa del cual se desea crear se
sintetizara el programa dandole clic el parte izquierda del programa en la cual nos mostrara si
tiene error el programa en dado caso que tenga error marcara una “x” y en caso de que no haya
ningun error mostrara una palomita como se muestra en la Figura 3.1.
Figura 3.1. Escritura de código y sintetizacion.
Simulación en Isim.
Para simular el programa en “Isim” se seleccionara en la parte de arriba que dice “simulación”
en el archivo que tiene el nombre del programa con “.vhd “una vez seleccionado el archivo en
la parte de inferior muestra “Isim Simulator” se le da clic en el signo de más y despliega un
Practica 3
ITLAC pág. 18
menú en el cual se le dará clic a la última opción con el nombre de “Simulate Behavioral Model”
mostrando una ventana en la cual se comprobara la tabla de verdad de la compuerta EXOR, en
cada entrada darle clic derecho el cual despliega un menú seleccionando la opción “Force
Constant..” la cual muestra una ventana en la que se elige si se quiere un cero 0 o un 1 en la
opción que dice “Forcé to value” una vez colocado el dato se hace clic en el botón “OK” y por
último se le da un salto y nos muestra en forma de grafica lo que tiene las dos entradas y las
salidas como se muestra en la Figura 3.2.
Figura 3.2. Comprobación de la tabla de verdad de la compuerta EXOR en Isim.
Practica 4
ITLAC pág. 19
SEP ITNM
INSTITUTO TECNOLÓGICO
DE
LÁZARO CÁRDENAS
PRACTICA 4
DISEÑO, SIMULACION Y PRUEBA DE UN MULTIPLEXOR DE
2 A 1.
OBJETIVO
El objetivo de esta práctica es implementar, sintetizar, depurar y
simular, un MULTIPLEXOR de 2 a 1, en VHDL.
Practica 4
ITLAC pág. 20
MATERIAL Y EQUIPO
Para elaborar una práctica es necesario contar con ciertos elementos ya que son nuestras
herramientas de trabajo. Dicho esto, aquí están los que utilizaremos en este caso.
 Tarjeta FPGA Basys 2.
 Computadora Portátil.
 Software Ise Design Suite 14.7.
 Cable De Alimentación USB.
Practica 4
ITLAC pág. 21
DESARROLLO
En la siguiente ventana en la cual ya se intruse el codigo del programa en este caso sera el codigo
para multiplexor de 2 a 1 los que se encuentran en color verde son los comentarios se pueden
poner comentarios en el programa agregando antes de lo que se desea escribir (--) doble guion
sin parentesis y despues lo que se desea escribir, al inicio se puede escribir el nombre de la
persona que esta haciendo el progrema en la parte que dice ingeniero en ingles, una vez escrito
el codigo del programa del cual se desea crear se sintetizara el programa dandole clic el parte
izquierda del programa en la cual nos mostrara si tiene error el programa en dado caso que tenga
error marcara una “x” y en caso de que no haya ningun error mostrara una palomita como se
muestra en la Figura 4.1.
Figura 4.1. Escritura de código y sintetizacion.
Practica 4
ITLAC pág. 22
Simulación en Isim.
Para simular el programa en “Isim” se seleccionara en la parte de arriba que dice “simulación”
en el archivo que tiene el nombre del programa con “.vhd “una vez seleccionado el archivo en
la parte de inferior muestra “Isim Simulator” se le da clic en el signo de más y despliega un
menú en el cual se le dará clic a la última opción con el nombre de “Simulate Behavioral Model”
mostrando una ventana en la cual se comprobara la tabla de verdad de un multiplexor de 2 a 1,
en cada entrada darle clic derecho el cual despliega un menú seleccionando la opción “Force
Constant..” la cual muestra una ventana en la que se elige si se quiere un cero 0 o un 1 en la
opción que dice “Forcé to value” una vez colocado el dato se hace clic en el botón “OK” y por
último se le da un salto y nos muestra en forma de grafica lo que tiene las dos entradas y las
salidas como se muestra en la Figura 4.2.
Figura 4.14. Comprobación de la tabla de verdad del multiplexor en Isim.
Practica 5
ITLAC pág. 23
SEP ITNM
INSTITUTO TECNOLÓGICO
DE
LÁZARO CÁRDENAS
PRACTICA 5
DISEÑO, SIMULACION Y PRUEBA DE UN MULTIPLEXOR DE
4 A 1 (WITH SELECT).
OBJETIVO
El objetivo de esta práctica es implementar, sintetizar, depurar y
simular, un MULTIPLEXOR de 4 a 1(with select), en VHDL.
Practica 5
ITLAC pág. 24
MATERIAL Y EQUIPO
Para elaborar una práctica es necesario contar con ciertos elementos ya que son nuestras
herramientas de trabajo. Dicho esto, aquí están los que utilizaremos en este caso.
 Tarjeta FPGA Basys 2.
 Computadora Portátil.
 Software Ise Design Suite 14.7.
 Cable De Alimentación USB.
Practica 5
ITLAC pág. 25
DESARROLLO.
desplegar la siguiente ventana en la cual ya se intruse el codigo del programa en este caso sera
el codigo para multiplexor de 4 a 1(with select) los que se encuentran en color verde son los
comentarios se pueden poner comentarios en el programa agregando antes de lo que se desea
escribir (--) doble guion sin parentesis y despues lo que se desea escribir, al inicio se puede
escribir el nombre de la persona que esta haciendo el progrema en la parte que dice ingeniero
en ingles, una vez escrito el codigo del programa del cual se desea crear se sintetizara el
programa dandole clic el parte izquierda del programa en la cual nos mostrara si tiene error el
programa en dado caso que tenga error marcara una “x” y en caso de que no haya ningun error
mostrara una palomita como se muestra en la Figura 5.1.
Figura 5.1. Escritura de código y sintetizacion.
Practica 5
ITLAC pág. 26
Simulación en Isim.
Para simular el programa en “Isim” se seleccionara en la parte de arriba que dice “simulación”
en el archivo que tiene el nombre del programa con “.vhd “una vez seleccionado el archivo en
la parte de inferior muestra “Isim Simulator” se le da clic en el signo de más y despliega un
menú en el cual se le dará clic a la última opción con el nombre de “Simulate Behavioral Model”
mostrando una ventana en la cual se comprobara la tabla de verdad de un multiplexor de 4 a
1(with select), en cada entrada darle clic derecho el cual despliega un menú seleccionando la
opción “Force Constant..” la cual muestra una ventana en la que se elige si se quiere un cero 0
o un 1 en la opción que dice “Forcé to value” una vez colocado el dato se hace clic en el botón
“OK” y por último se le da un salto y nos muestra en forma de grafica lo que tiene las dos
entradas y las salidas como se muestra en la Figura 5.2.
Figura 5.2. Comprobación de la tabla de verdad del multiplexor en Isim.
Practica 6
ITLAC pág. 27
SEP ITNM
INSTITUTO TECNOLÓGICO
DE
LÁZARO CÁRDENAS
PRACTICA 6
DISEÑO, SIMULACION Y PRUEBA DE UN MULTIPLEXOR DE
4 A 1 (IF ELSE).
OBJETIVO
El objetivo de esta práctica es implementar, sintetizar, depurar y
simular, un MULTIPLEXOR de 4 a 1 (if-else), en VHDL.
Practica 6
ITLAC pág. 28
MATERIAL Y EQUIPO
Para elaborar una práctica es necesario contar con ciertos elementos ya que son nuestras
herramientas de trabajo. Dicho esto, aquí están los que utilizaremos en este caso.
 Tarjeta FPGA Basys 2.
 Computadora Portátil.
 Software Ise Design Suite 14.7.
 Cable De Alimentación USB.
Practica 6
ITLAC pág. 29
DESARROLLO
se desplegara la siguiente ventana en la cual ya se intruse el codigo del programa en este caso
sera el codigo para multiplexor de 4 a 1(if-else) los que se encuentran en color verde son los
comentarios se pueden poner comentarios en el programa agregando antes de lo que se desea
escribir (--) doble guion sin parentesis y despues lo que se desea escribir, al inicio se puede
escribir el nombre de la persona que esta haciendo el progrema en la parte que dice ingeniero
en ingles, una vez escrito el codigo del programa del cual se desea crear se sintetizara el
programa dandole clic el parte izquierda del programa en la cual nos mostrara si tiene error el
programa en dado caso que tenga error marcara una “x” y en caso de que no haya ningun error
mostrara una palomita como se muestra en la Figura 6.1.
Figura 6.1. Escritura de código y sintetizacion.
Practica 6
ITLAC pág. 30
Simulación en Isim
Para simular el programa en “Isim” se seleccionara en la parte de arriba que dice “simulación”
en el archivo que tiene el nombre del programa con “.vhd “una vez seleccionado el archivo en
la parte de inferior muestra “Isim Simulator” se le da clic en el signo de más y despliega un
menú en el cual se le dará clic a la última opción con el nombre de “Simulate Behavioral Model”
mostrando una ventana en la cual se comprobara la tabla de verdad de un multiplexor de 4 a
1(if-else), en cada entrada darle clic derecho el cual despliega un menú seleccionando la opción
“Force Constant..” la cual muestra una ventana en la que se elige si se quiere un cero 0 o un 1
en la opción que dice “Forcé to value” una vez colocado el dato se hace clic en el botón “OK”
y por último se le da un salto y nos muestra en forma de grafica lo que tiene las dos entradas y
las salidas como se muestra en la Figura 6.2.
Figura 6.2. Comprobación de la tabla de verdad del multiplexor en Isim.
Practica 7
ITLAC pág. 31
SEP ITNM
INSTITUTO TECNOLÓGICO
DE
LÁZARO CÁRDENAS
PRACTICA 7
DISEÑO, SIMULACION Y PRUEBA DE UN MULTIPLEXOR DE
4 A 1 (CASE).
OBJETIVO
El objetivo de esta práctica es implementar, sintetizar, depurar y
simular, un MULTIPLEXOR de 4 a 1(case), en VHDL.
Practica 7
ITLAC pág. 32
MATERIAL Y EQUIPO
Para elaborar una práctica es necesario contar con ciertos elementos ya que son nuestras
herramientas de trabajo. Dicho esto, aquí están los que utilizaremos en este caso.
 Tarjeta FPGA Basys 2.
 Computadora Portátil.
 Software Ise Design Suite 14.7.
 Cable De Alimentación USB.
Practica 7
ITLAC pág. 33
DESARROLLO.
Desplegara la siguiente ventana en la cual ya se intruse el codigo del programa en este caso sera
el codigo para multiplexor de 4 a 1(case) los que se encuentran en color verde son los
comentarios se pueden poner comentarios en el programa agregando antes de lo que se desea
escribir (--) doble guion sin parentesis y despues lo que se desea escribir, al inicio se puede
escribir el nombre de la persona que esta haciendo el progrema en la parte que dice ingeniero
en ingles, una vez escrito el codigo del programa del cual se desea crear se sintetizara el
programa dandole clic el parte izquierda del programa en la cual nos mostrara si tiene error el
programa en dado caso que tenga error marcara una “x” y en caso de que no haya ningun error
mostrara una palomita como se muestra en la Figura 7.1.
Figura 7.1. Escritura de código y sintetizacion.
Practica 7
ITLAC pág. 34
Simulación en Isim.
Para simular el programa en “Isim” se seleccionara en la parte de arriba que dice “simulación”
en el archivo que tiene el nombre del programa con “.vhd “una vez seleccionado el archivo en
la parte de inferior muestra “Isim Simulator” se le da clic en el signo de más y despliega un
menú en el cual se le dará clic a la última opción con el nombre de “Simulate Behavioral Model”
mostrando una ventana en la cual se comprobara la tabla de verdad de un multiplexor de 4 a
1(case), en cada entrada darle clic derecho el cual despliega un menú seleccionando la opción
“Force Constant..” la cual muestra una ventana en la que se elige si se quiere un cero 0 o un 1
en la opción que dice “Forcé to value” una vez colocado el dato se hace clic en el botón “OK”
y por último se le da un salto y nos muestra en forma de grafica lo que tiene las dos entradas y
las salidas como se muestra en la Figura 7.1.
Figura 7.1. Comprobación de la tabla de verdad del multiplexor en Isim.
Practica 8
ITLAC pág. 35
SEP ITNM
INSTITUTO TECNOLÓGICO
DE
LÁZARO CÁRDENAS
PRACTICA 8
DISEÑO, SIMULACION Y PRUEBA DE UN COMPARADOR DE
DOS ENTRADAS TIPO VECTOR DE TRES BIT.
OBJETIVO
El objetivo de esta práctica es implementar, sintetizar, depurar y
simular, un comparador de dos entradas tipo vector de tres bits en
VHDL.
Practica 8
ITLAC pág. 36
MATERIAL Y EQUIPO
Para elaborar una práctica es necesario contar con ciertos elementos ya que son nuestras
herramientas de trabajo. Dicho esto, aquí están los que utilizaremos en este caso.
 Tarjeta FPGA Basys 2.
 Computadora Portátil.
 Software Ise Design Suite 14.7.
 Cable De Alimentación USB.
Practica 8
ITLAC pág. 37
DESARROLLO.
Desplegara la siguiente ventana en la cual ya se intruse el codigo del programa en este caso sera
el codigo para un comparador de dos entradas tipo vector de tres bit los que se encuentran en
color verde son los comentarios se pueden poner comentarios en el programa agregando antes
de lo que se desea escribir (--) doble guion sin parentesis y despues lo que se desea escribir, al
inicio se puede escribir el nombre de la persona que esta haciendo el progrema en la parte que
dice ingeniero en ingles, una vez escrito el codigo del programa del cual se desea crear se
sintetizara el programa dandole clic el parte izquierda del programa en la cual nos mostrara si
tiene error el programa en dado caso que tenga error marcara una “x” y en caso de que no haya
ningun error mostrara una palomita como se muestra en la Figura 8.1.
Figura 8.1. Escritura de código y sintetizacion.
Practica 8
ITLAC pág. 38
Simulación en Isim.
Para simular el programa en “Isim” se seleccionara en la parte de arriba que dice “simulación”
en el archivo que tiene el nombre del programa con “.vhd “una vez seleccionado el archivo en
la parte de inferior muestra “Isim Simulator” se le da clic en el signo de más y despliega un
menú en el cual se le dará clic a la última opción con el nombre de “Simulate Behavioral Model”
mostrando una ventana en la cual se comprobara la tabla de verdad de un comparador de dos
entradas tipo vector de tres bit, en cada entrada darle clic derecho el cual despliega un menú
seleccionando la opción “Force Constant..” la cual muestra una ventana en la que se elige si se
quiere un cero 0 o un 1 en la opción que dice “Forcé to value” una vez colocado el dato se hace
clic en el botón “OK” y por último se le da un salto y nos muestra en forma de grafica lo que
tiene las dos entradas y las salidas como se muestra en la Figura 8.2.
Figura 8.2. Comprobación de la tabla de verdad del comparador en Isim.
Practica 9
ITLAC pág. 39
SEP ITNM
INSTITUTO TECNOLÓGICO
DE
LÁZARO CÁRDENAS
PRACTICA 9
DISEÑO, SIMULACION Y PRUEBA DE UN COMPARADOR DE
DOS ENTRADAS TIPO VECTOR DE CUATRO BIT
OBJETIVO
El objetivo de esta práctica es implementar, sintetizar, depurar y
simular, un comparador de dos entradas tipo vector de cuatro bits en
VHDL.
Practica 9
ITLAC pág. 40
MATERIAL Y EQUIPO
Para elaborar una práctica es necesario contar con ciertos elementos ya que son nuestras
herramientas de trabajo. Dicho esto, aquí están los que utilizaremos en este caso.
 Tarjeta FPGA Basys 2.
 Computadora Portátil.
 Software Ise Design Suite 14.7.
 Cable De Alimentación USB.
Practica 9
ITLAC pág. 41
DESARROLLO.
Desplegar la siguiente ventana en la cual ya se intruse el codigo del programa en este caso sera
el codigo para un comparador de dos entradas tipo vector de cuatro bit los que se encuentran en
color verde son los comentarios se pueden poner comentarios en el programa agregando antes
de lo que se desea escribir (--) doble guion sin parentesis y despues lo que se desea escribir, al
inicio se puede escribir el nombre de la persona que esta haciendo el progrema en la parte que
dice ingeniero en ingles, una vez escrito el codigo del programa del cual se desea crear se
sintetizara el programa dandole clic el parte izquierda del programa en la cual nos mostrara si
tiene error el programa en dado caso que tenga error marcara una “x” y en caso de que no haya
ningun error mostrara una palomita como se muestra en la Figura 11.9.
Figura 11.9. Escritura de código y sintetizacion.
Practica 9
ITLAC pág. 42
Simulación en Isim.
Para simular el programa en “Isim” se seleccionara en la parte de arriba que dice “simulación”
en el archivo que tiene el nombre del programa con “.vhd “una vez seleccionado el archivo en
la parte de inferior muestra “Isim Simulator” se le da clic en el signo de más y despliega un
menú en el cual se le dará clic a la última opción con el nombre de “Simulate Behavioral Model”
mostrando una ventana en la cual se comprobara la tabla de verdad de un comparador de dos
entradas tipo vector de cuatro bit, en cada entrada darle clic derecho el cual despliega un menú
seleccionando la opción “Force Constant..” la cual muestra una ventana en la que se elige si se
quiere un cero 0 o un 1 en la opción que dice “Forcé to value” una vez colocado el dato se hace
clic en el botón “OK” y por último se le da un salto y nos muestra en forma de grafica lo que
tiene las dos entradas y las salidas como se muestra en la Figura 11.14.
Figura 11.14. Comprobación de la tabla de verdad del comparador en Isim.
Practica 10
ITLAC pág. 43
SEP ITNM
INSTITUTO TECNOLÓGICO
DE
LÁZARO CÁRDENAS
PRACTICA 10
DISEÑO, SIMULACION Y PRUEBA DE UN DECODIFICADOR
DE BCD A 7 SEGMENTOS.
OBJETIVO
El objetivo de esta práctica es implementar, sintetizar, depurar y
simular, un decodificador de BCD a 7 segmentos en VHDL.
Practica 10
ITLAC pág. 44
MATERIAL Y EQUIPO
Para elaborar una práctica es necesario contar con ciertos elementos ya que son nuestras
herramientas de trabajo. Dicho esto, aquí están los que utilizaremos en este caso.
 Tarjeta FPGA Basys 2.
 Computadora Portátil.
 Software Ise Design Suite 14.7.
 Cable De Alimentación USB.
Practica 10
ITLAC pág. 45
DESARROLLO.
Creación del programa.
En esta práctica se llevara a cabo la creación de un circuito decodificador de BCD a 7 segmentos
utilizando el lenguaje de programación VHDL, también se utilizaran los display de la tarjeta
Spartan3E. Para llevar a cabo tal programa primero se definirán las entradas y salidas del
programa tanto como el nombre como se muestra en la Figura 12.1
Figura 12.1 RTL del decodificador de BCD a 7 segmentos.
Como se muestra en la Figura 12.1 se asignaran variables con el nombre de código y dato a las
entradas donde código será una variable vector de 4 bits y dato una de 2 bits, en la cual código
se utilizara como el código BCD y la variable dato como el selector del display que se desea
utilizar como se muestra en la Tabla 12.1
Practica 10
ITLAC pág. 46
DATO 1 DATO 0 Display a
encender
0 0 Unidades
0 1 Decenas
1 0 Centenas
1 1 Millares
Tabla 12.1 Tabla de verdad de la variable dato.
En la Figura 12.1 se muestran también las entradas con sus respectivas salidas, la variable “dato”
con su salida la variable “control” y la variable “código” con su salida la variable “salidas” en
este programa se utilizara el más significativo del lado izquierdo que esquívale al punto decimal,
recordando que el display enciende con 0.
En la Figura 12.2 se muestran el código del programa usando el case process en este caso no fue
uno sino dos case process.
Figura 12.2 Case process de la variable “código”;
Practica 10
ITLAC pág. 47
En la Figura 12.2 se muestra el case process de la variable “código” que da la apertura del
programa y dando como clausura del programa se utilizara un case process para la variable
“dato” como se muestra en la Figura 12.3.
Figura 12.3 Case process de la variable “dato”.
Simulación en Isim.
En este caso son dos entradas con sus respectivas salidas todas las variables son vectores tipo
bit, en la variable “salidas” el cero muestra cual número de está desplegando y en la variable
“control” que display se está utilizando en este caso en display de las unidades está del lado
izquierdo y en el lado derecho se encuentra el display de los millares como se muestra en la
Figura 12.4.
Practica 10
ITLAC pág. 48
Figura 12.4 Simulación en Isim.
Practica 11
ITLAC pág. 49
SEP ITNM
INSTITUTO TECNOLÓGICO
DE
LÁZARO CÁRDENAS
PRACTICA 11
COMPARADOR DE NUMEROS MAYORES A 126 Y DESPLEGAR
EL CARÁCTER “L” O “H” EN LOS DISPLAYS DE 7 SEGMENTOS.
OBJETIVO
El objetivo de esta práctica es implementar, sintetizar, depurar y
simular, un comparador de números mayores a 126 y desplegar “L” o
H” en los displays de 7 segmentos en VHDL.
Practica 11
ITLAC pág. 50
MATERIAL Y EQUIPO
Para elaborar una práctica es necesario contar con ciertos elementos ya que son nuestras
herramientas de trabajo. Dicho esto, aquí están los que utilizaremos en este caso.
 Tarjeta FPGA Basys 2.
 Computadora Portátil.
 Software Ise Design Suite 14.7.
 Cable De Alimentación USB.
DESARROLLO.
Practica 11
ITLAC pág. 51
Creación del programa.
En esta práctica se llevará a cabo la creación de un circuito decodificador de BCD a 7 segmentos
utilizando el lenguaje de programación VHDL, también se utilizarán los display de la tarjeta
Spartan3E. Para llevar a cabo tal programa primero se definirán las entradas y salidas del
programa tanto como el nombre como se muestra en la Figura 11.1.
Figura 11.1. RTL del decodificador de BCD a 7 segmentos.
Como se muestra en la Figura 11.1, se asignará la variable con el nombre sw en la entrada donde
sw será una variable vector de 8 bits. La variable vector seg de 8 bits que serán los segmentos
del display y la variable trn de 4 bits que controlarán a los transistores de la FPGA.
En la Figura 11.2 se muestra el código del programa usando el case process para la variable
“sw” en el cual se escribe la sentencia If para preguntar si los datos ingresados en la variable sw
Practica 11
ITLAC pág. 52
son mayores al número 126, de ser así, se desplegará la letra “H” en los display de la tarjeta. De
lo contrario, si el número es menor a 126 se desplegará la letra “L”.
Figura 11.2. Código del programa usando un process.
Simulación en Isim.
En este caso es una entrada con sus respectivas salidas. La variable “sw” será forzada con el
valor 126 en el primer paso de simulación y con el valor 127 en el segundo paso.
Como se puede notar en la Figura 11.3, cuando la variable “sw” vale 126, en la salida seg sale
el dato "11100011" que equivale a mostrar la letra “L” en los display. En el segundo paso de
Practica 11
ITLAC pág. 53
sumulación cuando la variable “sw” tiene el valor 127, en la salida “seg” da el valor "10010001"
que equivale a mistrar la letra “H” en los display de la tarjeta. Demostrando así el objetivo de la
práctica.
Figura 11.3. Simulación en Isim del programa 11.
Creación del User contraints file.
Para este programa se usarán los 8 switches de la FPGA para ingresar valores a la variable “sw”.
En la Figura 11.4 se muestra la variable vector sw que es asignada a los 8 switches de la tarjeta.
La variable vector trn se asigna a los transistores de control de los displays y para finalizar la
variable vector seg es asiganda a los segmentos de los display.
Practica 11
ITLAC pág. 54
Figura 11.4. User Contraints File del programa 11.
Practica 12
ITLAC pág. 55
SEP ITNM
INSTITUTO TECNOLÓGICO
DE
LÁZARO CÁRDENAS
PRACTICA 12
DISEÑO, SIMULACION Y PRUEBA DE UN MULTIPLEXOR DE 2
ENTRADAS USANDO PROGRAMACION ESTRUCTURADA
OBJETIVO
El objetivo de esta práctica es implementar, sintetizar, depurar y simular,
un multiplexor de 4 a 1 entradas utilizando programación estructurada
en VHDL.
Practica 12
ITLAC pág. 56
MATERIAL Y EQUIPO
Para elaborar una práctica es necesario contar con ciertos elementos ya que son nuestras
herramientas de trabajo. Dicho esto, aquí están los que utilizaremos en este caso.
 Tarjeta FPGA Basys 2.
 Computadora Portátil.
 Software Ise Design Suite 14.7.
 Cable De Alimentación USB.
Practica 12
ITLAC pág. 57
DESARROLLO.
Creación del programa.
En esta práctica se llevara a cabo la creación de un multiplexor de 4 a 1 entradas utilizando
programación estructurada utilizando el lenguaje de programación VHDL. Para llevar a cabo tal
programa primero se definirán las entradas y salidas del programa tanto como el nombre como
se muestra en la Figura 12.1
Figura 12.1 RTL de un multiplexor de 4 a 1.
En la Figura 12.1 se muestra el RTL de un multiplexor de 4 a 1 pero la pregunta que tiene de
diferente la programación estructurada con la comportamental esa diferencia se muestra en la
Figura 12.2 a continuación.
Practica 12
ITLAC pág. 58
Figura 12.2 RTL con programación estructurada.
En la Figura 12.2 se muestra la unión de 3 multiplexores de 2 a 1 usando programación estructura
para crear programas de mayor magnitud ya que utilizando la comportamental con un programa
más grande sería más difícil que con la estructurada para este caso se utilizara un multiplexor de
2 a 1 que es la practica 4 solo se unirá 3 veces para crear un multiplexor de 4 a 1 en la Figura
12.3 a la Figura 12.5 se muestra el código del programa.
Figura 12.3 Código de un mux4a1 parte 1.
Practica 12
ITLAC pág. 59
Figura 12.4 Código de un mux4a1 parte 2.
Figura 12.5 Código de un mux4a1 parte 3.
En las Figuras 12.3 – 12.5 se muestra el código de programación para una arquitectura estructural
con la cual se realiza un multiplexor de 4 a 1 algo que no debe olvidarse que debe de tener un
programa de un multiplexor de 2 a 1 ya hecho para poder realizar esto y que debe llevar el
nombre de tu programa en la parte que dice “component” y también en las “Z0 - Z1”
Practica 12
ITLAC pág. 60
Simulación Isim.
A continuación, se realizará la simulación en Isim para un multiplexor de 4 a 1 creado con
programación estructurada que el multiplexor de 4 a 1 comportamental y estructurada no tiene
diferencia su simulación ya que ambos tienen la misma función y las mismas salidas en la Figura
12.6 se muestra la simulación de un multiplexor de 4 a 1 utilizando programación estructurada.
Figura 12.6 Simulación en Isim.
Practica 13
ITLAC pág. 61
SEP ITNM
INSTITUTO TECNOLÓGICO
DE
LÁZARO CÁRDENAS
PRACTICA 13
DISEÑO, SIMULACION Y PRUEBA DE UN CONTADOR
ASCENDENTE.
OBJETIVO
El objetivo de esta práctica es implementar, sintetizar, depurar y
simular, de un contador ascendente utilizando programación
comportamental en VHDL.
Practica 13
ITLAC pág. 62
MATERIAL Y EQUIPO
Para elaborar una práctica es necesario contar con ciertos elementos ya que son nuestras
herramientas de trabajo. Dicho esto, aquí están los que utilizaremos en este caso.
 Tarjeta FPGA Basys 2.
 Computadora Portátil.
 Software Ise Design Suite 14.7.
 Cable De Alimentación USB.
Practica 13
ITLAC pág. 63
DESARROLLO.
Creación del programa.
En esta práctica se llevará a cabo la creación de un contador ascendente utilizando programación
comportamental utilizando el lenguaje de programación VHDL. Para llevar a cabo tal programa
primero se definirán las entradas y salidas del programa tanto como el nombre como se muestra
en la Figura 13.1
Figura 13.1 RTL de un contador ascendente.
En la Figura 13.1 se muestra el RTL de un contador ascendente diferente con programación
comportamental en la siguiente figura se muestra más a detalle la estructura de un contador
ascendente Figura 13.2 a continuación.
Practica 13
ITLAC pág. 64
Figura 13.2 RTL de un contador ascendente.
En la Figura 13.2 se muestra la estructura interna de un contador ascendente el cual tiene el
propósito de contar de 0 a 255 de forma ascendente por el uso por que en la parte de inferior de
la Figura 13.2 se muestra un contador, en la Figura 13.3 a la Figura 13.4 se muestra el código
del contador ascendente.
Figura 13.3 Código de un contador ascendente parte 1.
Practica 13
ITLAC pág. 65
Figura 13.4 Código de un contador ascendente parte 2.
En la Figura 13.5 se muestra la utilización de una nueva entidad no utilizada en las practicas
anteriores esta entidad será usada con el propósito de integrar un complemento más al programa
que con anterioridad nunca se había utilizado en las practicas posteriores.
Simulación Isim.
A continuación, se realizará la simulación en Isim para un divisor de frecuencia creado con
programación comportamental que la comportamental y estructurada no tiene diferencia su
simulación ya que ambos tienen la misma función y las mismas salidas en la Figura 13.6 se
muestra la simulación de una función booleana utilizando programación estructurada.
Practica 13
ITLAC pág. 66
Figura 13.6 Simulación en Isim.
Creación del “. bit”.
La creación de punto bit no es muy diferente de los demás programas en este caso se utilizarán
los switch slader del 0 al 1 como entradas y como salidas el LED 0 para la salida pulso. Para las
entradas el SW0 se le asignara ldCnt, para el SW1 se le asignara ce. Como se muestra en la
Figura 13.7
Figura 13.7 Código del “. bit” de un contador ascendente.
Practica 14
ITLAC pág. 67
SEP ITNM
INSTITUTO TECNOLÓGICO
DE
LÁZARO CÁRDENAS
PRACTICA 14
DISEÑO, SIMULACION Y PRUEBA DE UN DIVISOR DE
FRECUENCIA.
OBJETIVO
El objetivo de esta práctica es implementar, sintetizar, depurar y
simular, de un divisor de frecuencia utilizando programación
comportamental en VHDL.
Practica 14
ITLAC pág. 68
MATERIAL Y EQUIPO
Para elaborar una práctica es necesario contar con ciertos elementos ya que son nuestras
herramientas de trabajo. Dicho esto, aquí están los que utilizaremos en este caso.
 Tarjeta FPGA Basys 2.
 Computadora Portátil.
 Software Ise Design Suite 14.7.
 Cable De Alimentación USB.
Practica 14
ITLAC pág. 69
DESARROLLO.
Creación del programa.
En esta práctica se llevará a cabo la creación de divisor de frecuencia utilizando programación
comportamental utilizando el lenguaje de programación VHDL. Para llevar a cabo tal programa
primero se definirán las entradas y salidas del programa tanto como el nombre como se muestra
en la Figura 14.1
Figura 14.1 RTL de un divisor de frecuencia.
En la Figura 14.1 se muestra el RTL de un divisor de frecuencia diferente con programación
comportamental en la siguiente figura se muestra más a detalle la estructura de un divisor de
frecuencia Figura 14.2 a continuación.
Practica 14
ITLAC pág. 70
Figura 14.2 RTL de un divisor de frecuencia.
En la Figura 14.2 se muestra la estructura interna de un divisor de frecuencia el cual tiene el
propósito de dividir la frecuencia la estructura del divisor de frecuencia es algo compleja por el
uso por que en la parte de inferior de la Figura 19.2 se muestra un contador, en la Figura 14.3 a
la Figura 14.4 se muestra el código del divisor de frecuencia.
Practica 14
ITLAC pág. 71
Figura 14.3 Código de un divisor de frecuencia parte 1.
Figura 14.4 Código de un divisor de frecuencia parte 2.
Practica 14
ITLAC pág. 72
En la Figura 14.5 se muestra la utilización de una nueva entidad no utilizada en las practicas
anteriores esta entidad será usada con el propósito de integrar un complemento más al programa
que con anterioridad nunca se había utilizado en las practicas posteriores.
Figura 14.5 Entidad nueva.
Simulación Isim.
A continuación, se realizará la simulación en Isim para un divisor de frecuencia creado con
programación comportamental que la comportamental y estructurada no tiene diferencia su
simulación ya que ambos tienen la misma función y las mismas salidas en la Figura 14.6 se
muestra la simulación de una función booleana utilizando programación estructurada.
Practica 14
ITLAC pág. 73
Figura 14.6 Simulación en Isim.
Creación del “.bit”.
La creación de punto bit no es muy diferente de los demás programas en este caso se utilizarán
los switch slader del 0 al 1 como entradas y como salidas el LED 0 para la salida pulso. Para las
entradas el SW0 se le asignara ldCnt, para el SW1 se le asignara ce. Como se muestra en la
Figura 14.7
Figura 14.7 Código del “.bit” de un divisor de frecuencia.
Practica 15
ITLAC pág. 74
SEP ITNM
INSTITUTO TECNOLÓGICO
DE
LÁZARO CÁRDENAS
PRACTICA 15
DISEÑO, SIMULACION Y PRUEBA DE UN CONTADOR DE 0 A
255.
OBJETIVO
El objetivo de esta práctica es implementar, sintetizar, depurar y
simular, de un contador de 0 a 255 utilizando programación estructurada
en VHDL.
Practica 15
ITLAC pág. 75
MATERIAL Y EQUIPO
Para elaborar una práctica es necesario contar con ciertos elementos ya que son nuestras
herramientas de trabajo. Dicho esto, aquí están los que utilizaremos en este caso.
 Tarjeta FPGA Basys 2.
 Computadora Portátil.
 Software Ise Design Suite 14.7.
 Cable De Alimentación USB.
Practica 15
ITLAC pág. 76
DESARROLLO.
Creación del programa.
En esta práctica se llevara a cabo la creación de un contador de 0 a 255 utilizando programación
estructurada utilizando el lenguaje de programación VHDL. Para llevar a cabo tal programa
primero se definirán las entradas y salidas del programa tanto como el nombre como se muestra
en la Figura 15.1
Figura 15.1 RTL de un contador de 0 a 255.
En la Figura 15.1 se muestra el RTL de un contador de 0 a 255 pero la pregunta que tiene de
diferente la programación estructurada con la comportamental esa diferencia se muestra en la
Figura 15.2 a continuación.
Practica 15
ITLAC pág. 77
Figura 15.2 RTL con programación estructurada.
En la Figura 15.2 se muestra la utilización de la programación estructurada utilizando las
practicas que son el divisor de frecuencia y un contador de 0 a 255 tales prácticas para dar
creación a un contador de 0 a 255 en la Figura 20.3 – 20.4 se muestra el código de programación
estructurada de un contador de 0 a 255.
Practica 15
ITLAC pág. 78
Figura 15.3 Código de un contador de 0 a 255 parte 1.
Figura 15.4 Código de un contador de 0 a 255 parte 2.
En las Figuras 15.3 – 15.4 se muestra la estructura de la programación estructurada de un
contador de 0 a 255 y la pregunta que muchos se hacen es ¿Por qué utilizar programación
estructurada para un contador de 0 a 255?
Y la respuesta es porque al utilizar el pulso del reloj que proporciona la tarjeta es muy rápido y
no se logra apreciar el conteo de 0 a 255 por los tanto se tiene que utilizar un divisor de
Practica 15
ITLAC pág. 79
frecuencia junto con un contador de 0 a 255 y la combinación de estos dos programas da
nacimiento a un contador de 0 a 255 en el cual logre apreciar el conteo de 0 a 255.
una vez terminado dicho proceso se reseteará el conteo comenzando de nuevo la cuenta lleva el
constante ciclo de conteo mientras la variable “ce” tenga un ‘1’ si no lo llegase a tener el
contador estará en modo de stand by y hasta que tenga un ‘1’ la variable “ce” seguirá contando
en donde se quedó, este contador también incluye un switch de reset para resetear el conteo en
número que se encuentre contando se puede resetear en cualquier momento. En la Figura 15.5
se muestra el código del contador de 0 a 255 con programación comportamental.
Figura 15.5 contador con programación comportamental
Practica 15
ITLAC pág. 80
En la Figura 15.5 se muestra uno de los programas que se utilizara para la creación del contador
de 0 a 255 con programación estructurada este programa tiene un defecto la frecuencia del pulso
del reloj es muy rápida.
Simulación Isim.
A continuación, se realizará la simulación en Isim para un contador de 0 a 255 creado con
programación estructurada que el contador de 0 a 255 comportamental y estructurada no tiene
diferencia su simulación ya que ambos tienen la misma función y las mismas salidas en la Figura
15.6 se muestra la simulación de un contador de 0 a 255 utilizando programación estructurada.
Figura 15.6 Simulación en Isim.
Creación del “.bit”.
La creación de punto bit no es muy diferente de los demás programas en este caso se utilizarán
los switch slader del 0 al 1 como entradas, como pulso de reloj la variable “clk” y como salidas
el LED 0 – LED 7 para la salida “sal”. Para las entradas el SW0 se le asignara “rst” y para el
SW1 se le asignara “ce”. Como se muestra en la Figura 15.7
Practica 15
ITLAC pág. 81
Figura 15.7 Código del “.bit” de un contador de 0 a 255.
Practica 16
ITLAC pág. 82
SEP ITNM
INSTITUTO TECNOLÓGICO
DE
LÁZARO CÁRDENAS
PRACTICA 16
DISEÑO, SIMULACION Y PRUEBA DE UN SUMADOR
COMPLETO PROGRAMACION ESTRUCTURADA
OBJETIVO
El objetivo de esta práctica es implementar, sintetizar, depurar y
simular, de un sumador completo utilizando programación estructurada
en VHDL.
Practica 16
ITLAC pág. 83
MATERIAL Y EQUIPO
Para elaborar una práctica es necesario contar con ciertos elementos ya que son nuestras
herramientas de trabajo. Dicho esto, aquí están los que utilizaremos en este caso.
 Tarjeta FPGA Basys 2.
 Computadora Portátil.
 Software Ise Design Suite 14.7.
 Cable De Alimentación USB.
Practica 16
ITLAC pág. 84
DESARROLLO.
Creación del programa.
En esta práctica se llevara a cabo la creación de un sumador completo utilizando programación
estructurada utilizando el lenguaje de programación VHDL. Para llevar a cabo tal programa
primero se definirán las entradas y salidas del programa tanto como el nombre como se muestra
en la Figura 16.1
Figura 16.1 RTL de un sumador completo.
En la Figura 15.1 se muestra el RTL de un sumador completo pero la pregunta que tiene de
diferente la programación estructurada con la comportamental esa diferencia se muestra en la
Figura 16.2 a continuación.
Practica 16
ITLAC pág. 85
Figura 16.2 RTL con programación estructurada.
En la Figura 16.2 se muestra la utilización de la programación estructurada utilizando las
practicas 1,2,3 que son la compuerta AND de dos entradas, la compuerta XOR de dos entradas
y la compuerta OR de tres entradas uniendo tales prácticas para dar creación a un sumador
completo en la Figura 16.3 – 16.6 se muestra el código de programación estructurada de un
sumador completo.
Figura 16.3 Código de un sumador completo parte 1.
Practica 16
ITLAC pág. 86
Figura 16.4 Código de un sumador completo parte 2.
Figura 16.5 Código de un sumador completo parte 3.
Figura 16.6 Código de un sumador completo parte 4.
Practica 16
ITLAC pág. 87
En las Figuras 16.3 – 16.6 se muestra el código de programación para una arquitectura
estructural con la cual se realiza un sumador completo algo que no debe olvidarse que debe de
tener las prácticas 1 al 3 ya hecho para poder realizar esto y que debe llevar el nombre de tu
programa en la parte que dice “component” y también en las “M0 - M1”
Simulación Isim.
En la simulación se probará la tabla de verdad de un sumador completo como se muestra en la
Tabla 16.1 como se muestra a continuación.
A B Cin S Cout
0 0 0 0 0
0 0 1 1 0
0 1 0 1 0
0 1 1 0 1
1 0 0 1 0
1 0 1 0 1
1 1 0 0 1
1 1 1 1 1
Tabla 16.1 Tabla de un sumador completo
A continuación se realizara la simulación en Isim para un sumador completo creado con
programación estructurada que el sumador completo comportamental y estructurada no tiene
diferencia su simulación ya que ambos tienen la misma función y las mismas salidas en la Figura
16.7 se muestra la simulación de un sumador completo utilizando programación estructurada.
Practica 16
ITLAC pág. 88
Figura 16.7 Simulación en Isim.
Creación del “.bit”.
La creación de punto bit no es muy diferente de los demás programas en este caso se utilizaran
los switch slader del 0 al 3 como entradas y como salidas el LED 0 para la salida S y el LED 1
para la salida Cout. Para las entradas el SW0 se le asignara A, para el SW1 se le asignara B y
para el SW3 se le asignara el Cin. Como se muestra en la Figura 16.8
Figura 16.8 Código del “.bit” de un sumador completo.
Practica 17
ITLAC pág. 89
SEP ITNM
INSTITUTO TECNOLÓGICO
DE
LÁZARO CÁRDENAS
PRACTICA 17
DISEÑO, SIMULACION Y PRUEBA DE UNA MAQUINA DE ESTADOS
MOORE
OBJETIVO
El objetivo de esta práctica es implementar, sintetizar, depurar y
simular, de una máquina de estados Moore utilizando programación
comportamental en VHDL.
Practica 17
ITLAC pág. 90
MATERIAL Y EQUIPO
Para elaborar una práctica es necesario contar con ciertos elementos ya que son nuestras
herramientas de trabajo. Dicho esto, aquí están los que utilizaremos en este caso.
 Tarjeta FPGA Basys 2.
 Computadora Portátil.
 Software Ise Design Suite 14.7.
 Cable De Alimentación USB.
Practica 17
ITLAC pág. 91
DESARROLLO.
Creación del programa.
En esta práctica se llevará a cabo la creación de una máquina de estados Moore utilizando
programación comportamental utilizando el lenguaje de programación VHDL. Para llevar a
cabo tal programa primero se definirán las entradas y salidas del programa tanto como el nombre
como se muestra en la Figura 17.1
Figura 17.1 RTL de una máquina de estados Moore.
En la Figura 17.1 se muestra el RTL de una máquina de estados Moore diferente con
programación comportamental en la siguiente figura se muestra más a detalle la estructura de
un contador ascendente Figura 17.2 a continuación.
Practica 17
ITLAC pág. 92
Figura 17.2 RTL de una máquina de estados Moore.
En la Figura 17.2 se muestra la estructura interna de una máquina de estados Moore el cual tiene
el propósito de tener un numero de estados eso lo define cada persona a su gusto en el caso que
ocupe más estados pero en esta práctica solo son 3 estados A,B,C el estado A se le asigna Home
o común mente el punto inicial de la máquina de estados, el estado B será otro punto de la
máquina de estado y C es el estado en donde Z tomara el valor de 1 en la Figuras 17.3 - 17.5 se
muestra el código de una máquina de estados Moore en VHDL.
Figura 17.3 Código de una máquina de estados parte 1.
Practica 17
ITLAC pág. 93
Figura 17.4 Código de una máquina de estados parte 2.
Figura 17.5 Código de una máquina de estados parte 3.
En las Figuras 17.3 - 17.5 se muestra el código de programa en leguaje VHDL para una máquina
de estados Moore. Las máquinas de estados son usadas en casos comunes como un ascensor ese
es un ejemplo el cual está conformada por tres estados subiendo, bajando y home y el programa
de esta ocasión es muy parecido a este caso.
Practica 17
ITLAC pág. 94
Simulación Isim.
A continuación se muestra la simulación de una máquina de estados Moore en lenguaje de
programación VHD para este caso la máquina de estados partirá de un estado base o home como
se quiera nombre este estado que en este caso será A con una Z igual a 0 cuando en W tenga un
0 permanecerá en el estado A y Z será 0, en el caso de que W sea 1 cambiara del estado A al
estado B y Z será igual a 0.
Cuando W sea un 0 cambiara del estado B al estado A y Z será 0 pero si W es 1 cambiara del
estado B al estado C y Z tendrá un 1, en el caso de que W sea 0 permanecerá en el estado C y Z
será 1 pero si W es 1 cambiara del estado C al estado A y Z será 0.
Cuando se dé un reset (reinicio) independiente de en qué estado se encuentre se regresará al
estado A y Z será 0 n la Tabla 17.1 se muestra la tabla de verdad de la máquina de estados de
esta práctica.
ESTADO ACTUAL ESTADO PRÓXIMO SALIDA
Z
W =0 W= 1
A A B 0
B A C 0
C C A 1
Tabal 17.1 Tabla de verdad para FSM.
Con la Tabla 17.1 se comprobara la máquina de estado para apreciar los cambios y como se
simula una máquina de estado Moore la simulacion de este programa no es muy diferente con
los demas programas solo por que es una máquina de estados Moore no significa que sea dificil
solo tienes que asignarle un valor al pulso de reloj clk, forzar constante en rst al inicio ponerlo
en 1 y despues quitarlo y ponerle 0 y intercalar W poniendo un 0 o un 1 y Z solo sera 1 en el
estado C y la tabla de verdad te guiara durante la simulacion en la Figura 17.6 se muestra la
simulacion.
Practica 17
ITLAC pág. 95
Figura 17.6 Simulación en Isim.
Practica 18
ITLAC pág. 96
SEP ITNM
INSTITUTO TECNOLÓGICO
DE
LÁZARO CÁRDENAS
PRACTICA 18
DISEÑO, SIMULACION Y PRUEBA DE UN CONTADOR DE 0 A
255.
OBJETIVO
El objetivo de esta práctica es implementar, sintetizar, depurar y
simular, de un contador de 0 a 255 utilizando programación estructurada
en VHDL.
Practica 18
ITLAC pág. 97
MATERIAL Y EQUIPO
Para elaborar una práctica es necesario contar con ciertos elementos ya que son nuestras
herramientas de trabajo. Dicho esto, aquí están los que utilizaremos en este caso.
 Tarjeta FPGA Basys 2.
 Computadora Portátil.
 Software Ise Design Suite 14.7.
 Cable De Alimentación USB.
Practica 18
ITLAC pág. 98
DESARROLLO.
Creación del programa.
En esta práctica se llevará a cabo la creación de un contador de 0 a 255 utilizando programación
estructurada utilizando el lenguaje de programación VHDL. Para llevar a cabo tal programa
primero se definirán las entradas y salidas del programa tanto como el nombre como se muestra
en la Figura 18.1
Figura 18.1 RTL de un contador.
En la Figura 18.1 se muestra el RTL de un contador de 0 a 255 con programación estructural en
la siguiente figura se muestra más a detalle la estructura de un termómetro Figura 18.2 a
continuación.
Practica 18
ITLAC pág. 99
Figura 18.2 RTL de contador de 0 a 255.
En la Figura 18.2 se muestra la estructura interna de un contador de 0 a 255 utilizando
programación estructurada el cual cuenta de 0 a 255 desplegando en los display de 7 segmentos
con el SW1 se resetea el conteo, SW2 es switch de CE el cual sirve para habilitar o deshabilitar
el conteo.
Para la creación de este programa se utilizarán los siguientes programas que se muestran a
continuación:
 ROM
 Divisor de frecuencia
 Contador
 Un selector de segmentos
 Codificador
 Memoria RAM 2 X 4
 Segmentos
 Salida pulso
Practica 18
ITLAC pág. 100
----------------------------------------------------------------------------------
-- Company: INSTITUTO TECNOLOGICO DE LAZARO CARDENAS
-- Engineer: HECTOR ARNULFO BLANCO NAMBO
----------------------------------------------------------------------------------
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entity CONTADOR_255 is
Port ( clk, ceg, rest : in STD_LOGIC;
segq : out STD_LOGIC_VECTOR (3 downto 0);
seg : out STD_LOGIC_VECTOR (6 downto 0));
end CONTADOR_255;
architecture Behavioral of CONTADOR_255 is
----------------------------------------------1
component Divisor_de_frecuencia
generic (n: integer range 1 to 50000000:=25000000); --tiempo
Port ( clk, ce, ldCnt : in STD_LOGIC;
pulso : out STD_LOGIC);
end component;
----------------------------------------------2
component Contador
generic (n:integer range 1 to 10 := 2;
inferior : integer range 0 to 100:= 0;
superior : integer range 1 to 100:= 3;
inicial : integer range 0 to 100:= 0);
Port ( clk, ce, rst, up_dn : in STD_LOGIC;
qcont : out STD_LOGIC_VECTOR (n-1 downto 0));
end component;
----------------------------------------------3
component Salida_pulso
Port ( ce : in STD_LOGIC;
pulso2 : out STD_LOGIC);
end component;
----------------------------------------------4
component Memoria_Ram is
generic(n: integer range 2 to 16 := 4; ---numero de bits
m: integer range 2 to 10 := 2); --lineas de direccion
Practica 18
ITLAC pág. 101
Port ( clk, we : in STD_LOGIC;
din : in STD_LOGIC_VECTOR (n-1 downto 0);
address : in STD_LOGIC_VECTOR (m-1 downto 0);
dout : out STD_LOGIC_VECTOR (n-1 downto 0));
end component;
----------------------------------------------5
component Qseg
Port ( Dato : in STD_LOGIC_VECTOR (1 downto 0);
qseg : out STD_LOGIC_VECTOR (3 downto 0));
end component;
----------------------------------------------6
component Segmentos
Port (Dato: in STD_LOGIC_VECTOR (3 downto 0);
Segmentos: out STD_LOGIC_VECTOR (6 downto 0));
end component;
----------------------------------------------7 aqui es donde se determinan los numeros
component ROM_255
Port (clk: in STD_LOGIC;
address: in STD_LOGIC_VECTOR (7 downto 0);
dato: out STD_LOGIC_VECTOR (11 downto 0));
end component;
----------------------------------------------8
component Codificador
Port (Address: in STD_LOGIC_VECTOR (3 downto 0);
Inseg: in STD_LOGIC_VECTOR (11 downto 0);
Scod: out STD_LOGIC_VECTOR (3 downto 0));
end component;
----------------------------------------------9
component REGULAF
generic (n: integer range 1 to 50000000: = 25000000);
Port (clk, ce, rst: in STD_LOGIC;
pulso: out STD_LOGIC);
end component;
----------------------------------------------10
component GENDATO is
Port (clk, ce, rst: in STD_LOGIC;
sal: out STD_LOGIC_VECTOR (7 downto 0));
end component;
Practica 18
ITLAC pág. 102
--------------------DECLARACION DE VARIABLES--------------------------
signal DATO1: std_logic_vector (7 downto 0);
signal pulso,pulso_aux,pulsox: STD_LOGIC;
signal salida_cont: STD_LOGIC_VECTOR (1 downto 0);
Signal salida_qimp, segq_aux, din_2: STD_LOGIC_VECTOR (3 downto 0);
signal ROM_aux: STD_LOGIC_VECTOR (11 downto 0);
------------------------------INICIO---------------------------------
begin
U0: Divisor_de_frecuencia
generic map (100000)
port map (clk => clk,
ce => '1',
ldCnt => '0',
pulso => pulso);
U1: CONTADOR
generic map (2,0,3,0)
port map (clk => clk,
ce => pulso,
rst => '0',
up_dn => '0',
qcont => salida_cont);
U2: Salida_pulso
port map (ce => pulso,
pulso2 => pulso_aux);
U3: MEMORIA_RAM
generic map (4,2)
port map (clk => clk,
we => pulso_aux,
din => din_2,
address => salida_cont,
dout => salida_qimp);
Practica 18
ITLAC pág. 103
U4: Qseg
port map (Dato => salida_cont,
Qseg => segq_aux);
segq <= segq_aux;
U5: SEGMENTOS
port map (Dato => salida_qimp,
segmentos => seg);
U6: REGULAF
port map (clk => clk,
rst => rest,
ce => ceg,
pulso => pulsox);
U7: GENDATO
port map (clk => clk,
rst => rest,
ce => pulsox,
sal => DATO1);
U8: ROM_255
port map (clk => clk,
address => DATO1,
dato => ROM_aux);
U9: CODIFICADOR
port map (address => segq_aux,
Inseg => ROM_aux,
Scod => din_2);
end Behavioral;
Practica 19
ITLAC pág. 104
SEP ITNM
INSTITUTO TECNOLÓGICO
DE
LÁZARO CÁRDENAS
PRACTICA 19
DISEÑO, SIMULACION Y PRUEBA DE UN TERMÓMETRO.
OBJETIVO
El objetivo de esta práctica es implementar, sintetizar, depurar y
simular, de un termómetro utilizando programación estructurada en
VHDL.
Practica 19
ITLAC pág. 105
MATERIAL Y EQUIPO
Para elaborar una práctica es necesario contar con ciertos elementos ya que son nuestras
herramientas de trabajo. Dicho esto, aquí están los que utilizaremos en este caso.
 Tarjeta FPGA Basys 2.
 Computadora Portátil.
 Software Ise Design Suite 14.7.
 Cable De Alimentación USB.
 2 Potenciómetro de 5KΩ.
 LM35.
 Multímetro.
 Protoboard
 Cables Jumper.
Practica 19
ITLAC pág. 106
DESARROLLO.
Creación del programa.
En esta práctica se llevará a cabo la creación de un termómetro utilizando programación
estructurada utilizando el lenguaje de programación VHDL. Para llevar a cabo tal programa
primero se definirán las entradas y salidas del programa tanto como el nombre como se muestra
en la Figura 19.1
Figura 19.1 RTL de un Termómetro.
Practica 19
ITLAC pág. 107
En la Figura 23.1 se muestra el RTL de un termómetro con programación estructural en la
siguiente figura se muestra más a detalle la estructura de un termómetro Figura 19.2 a
continuación.
Figura 19.2 RTL de un termómetro.
En la Figura 19.2 se muestra la estructura interna de un termómetro utilizando con un transductor
el circuito LM35 que tiene la función de convertir la temperatura en voltaje.
La temperatura se mostrada en los 4 display de 7 segmentos en los cuales el display de los
millares y centenas serán utilizados para desplegar la temperatura de 0 a 99, el de las decenas
mostrara el signo de grados “ ° “ y el de las unidades mostrara una “C” de Celsius.
Para la creación de este programa se utilizarán los siguientes programas que se muestran a
continuación:
Practica 19
ITLAC pág. 108
 ROM LM35
 Divisor de frecuencia
 Contador
 Un selector de segmentos
 Codificador
 Memoria RAM 2 X 4
 Convertidor de ADC
 Segmentos
 Salida pulso
Con esta lista de programas se crea el programa del termómetro a continuación se muestra el
código para la creación del termómetro utilizando programación estructurada.
----------------------------------------------------------------------------------
-- Company: INSTITUTO TECNOLOGICO DE LAZARO CARDENAS
-- Engineer: HECTOR ARNULFO BLANCO NAMBO
----------------------------------------------------------------------------------
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
-- DESCRIPCION DE LA ENTIDAD
entity TERMOME is
Port (CLK : in STD_LOGIC;
LM35: IN STD_LOGIC;
CS : OUT STD_LOGIC;
SCLK : OUT STD_LOGIC;
SEGQ : out STD_LOGIC_VECTOR (3 downto 0);
SEG : out STD_LOGIC_VECTOR (6 downto 0));
end TERMOME;
-- DESCRIPCION COMPORTAMENTAL
architecture ESTRUCTURAL of TERMOME is
Practica 19
ITLAC pág. 109
-----------------------------------------------------------------------------
COMPONENT ROM_LM35
Port ( CLK : in STD_LOGIC;
address : in STD_LOGIC_VECTOR (11 downto 0);
dato : out STD_LOGIC_VECTOR (7 downto 0));
END COMPONENT ;
-----------------------------------------------------------------------------
COMPONENT CODIFICADOR
Port ( ADDRESS : in STD_LOGIC_VECTOR (3 downto 0);
INSEG : in STD_LOGIC_VECTOR (7 downto 0);
SCOD : out STD_LOGIC_VECTOR (3 downto 0));
END COMPONENT;
-----------------------------------------------------------------------------
COMPONENT DIVISOR_DE_FRECUENCIA is
generic (n : integer range 1 to 50000000 := 1000000);
Port ( CE, CLK, ldCnt : in STD_LOGIC;
PULSO : out STD_LOGIC);
end COMPONENT;
-----------------------------------------------------------------------------
COMPONENT CONTADOR
GENERIC(N : INTEGER RANGE 0 TO 10 := 2;
INFERIOR : INTEGER RANGE 0 TO 100 := 0;
SUPERIOR : INTEGER RANGE 1 TO 100 := 3;
INICIAL : INTEGER RANGE 0 TO 100 := 0);
Port ( CLK , CE , RST , UP_DN : in STD_LOGIC;
QCONT : out STD_LOGIC_VECTOR (N-1 DOWNTO 0));
end COMPONENT;
-----------------------------------------------------------------------------
COMPONENT QSEG
Port ( DATO : in STD_LOGIC_VECTOR (1 downto 0);
QSEG : out STD_LOGIC_VECTOR (3 downto 0));
end COMPONENT;
-----------------------------------------------------------------------------
COMPONENT SALIDA_PULSO
Port ( CE : in STD_LOGIC;
PULSO2 : out STD_LOGIC);
end COMPONENT;
-----------------------------------------------------------------------------
Practica 19
ITLAC pág. 110
COMPONENT MEMORIA_RAM
GENERIC(N : INTEGER RANGE 2 TO 16 := 4;
M : INTEGER RANGE 2 TO 10 := 2)
Port ( clk,we : in STD_LOGIC;
din : in STD_LOGIC_VECTOR (n-1 downto 0);
address : in STD_LOGIC_VECTOR (m-1 downto 0);
dout : out STD_LOGIC_VECTOR (n-1 downto 0));
end COMPONENT;
-----------------------------------------------------------------------------
COMPONENT SEGMENTOS
Port (DATO: in STD_LOGIC_VECTOR (3 downto 0);
SEGMENTOS: out STD_LOGIC_VECTOR (6 downto 0));
end COMPONENT;
-----------------------------------------------------------------------------
COMPONENT Convertidor_AD
Port (
--General usage
CLK : in std_logic; -- System Clock (50MHz)
RST: in std_logic;
--Pmod interface signals
SDATA1 : in std_logic;
SDATA2 : in std_logic;
SCLK : out std_logic;
CS : out std_logic;
--User interface signals
DATA1 : out std_logic_vector(11 downto 0);
DATA2 : out std_logic_vector(11 downto 0);
START : in std_logic;
DONE : out std_logic );
end component;
-----------------------------------------------------------------------------
SIGNAL W0 : STD_LOGIC_VECTOR (7 DOWNTO 0);
SIGNAL W1 : STD_LOGIC;
SIGNAL W2 : STD_LOGIC_VECTOR (1 DOWNTO 0);
SIGNAL W3 : STD_LOGIC_VECTOR (3 DOWNTO 0);
SIGNAL W4 : STD_LOGIC_VECTOR (3 DOWNTO 0);
SIGNAL W5 : STD_LOGIC_VECTOR (3 DOWNTO 0);
SIGNAL W6 : STD_LOGIC_VECTOR (6 DOWNTO 0);
Practica 19
ITLAC pág. 111
SIGNAL W7 : STD_LOGIC;
SIGNAL W8 : STD_LOGIC_VECTOR (11 DOWNTO 0);
-----------------------------------------------------------------------------
begin
U0 : ROM_LM35
PORT MAP (CLK =>CLK,
DATO => W0,
ADDRESS => W8);
U1 : DIVISOR_DE_FRECUENCIA
PORT MAP (CLK => CLK,
PULSO => W1);
U2 : CONTADOR
PORT MAP (CE => W1,
CLK => CLK,
QCONT => W2,
up_dn => '0');
U3 : QSEG
PORT MAP (DATO => W2,
QSEG => W3);
U4: CODIFICADOR
PORT MAP (ADDRESS => W3,
INSEG => W0,
SCOD => W4);
U5 : MEMORIA_RAM
PORT MAP (ADDRESS => W2,
DIN => W4,
CLK => CLK,
WE => W7,
DOUT => W5);
Practica 19
ITLAC pág. 112
U6: SEGMENTOS
PORT MAP (DATO => W5,
SEGMENTOS => W6);
U7: SALIDA_PULSO
PORT MAP (CE => W1,
PULSO2 => w7);
U8: Convertidor_AD
PORT MAP (DATA1 => W8,
CLK => CLK,
SDATA1 => LM35,
CS => CS,
SCLK => SCLK,
RST => '0',
SDATA2 => '0',
START => '0');
SEGQ <= W3;
SEG <= W6;
end ESTRUCTURAL;
CONCLUSIÓN Y BIBLIOGRAFIA
ITLAC pág. 113
CONCLUSIÓN
VHDL se muestra especialmente útil en las primeras etapas del diseño, a la hora de elegir
arquitecturas, particiones del circuito, tipos de lógica, etc. y para la realización de simulaciones
a nivel funcional. Aunque es de hacer notar que las descripciones apropiadas para simulación
no siempre son aptas para la síntesis. También permite la documentación del proyecto a un nivel
que es independiente de la tecnología e incluso del tipo de lógica, lo cual permite su re
utilización en otros diseños. El trabajo trata de resaltar la importancia del método, que en
proyectos pequeños no se aprecia, pero a medida que se incrementa la complejidad del diseño
va adquiriendo más importancia.
Permite al programador una lógica digital en un lenguaje de descripción de hardware utiliza
fundamentos teóricos de sistemas digitales. La modificación en el diseño es flexible, es decir no
necesitan un esfuerzo adicional notable con respecto a los desarrollos de hardware
convencionales.
FPGA son dispositivos lógicos de propósitos general programables por los usuarios.
CONCLUSIÓN Y BIBLIOGRAFIA
ITLAC pág. 114
BIBLIOGRAFÍA.
1. Tocci Ronald.
Sistemas Digitales.
Octava Edición, Prentice – Hall, México 2006.
2. Floyd Thomas L.
Fundamentos De Sistemas Digitales.
Novena Edición, Pearson, México 2006.
3. John F. Wakerly.
Diseño Digital Principios y Prácticas.
Tercera Edición, Pearson, México 2001.
4. Morris Mano, M.
Diseño Digital, Tercera Edición.
Pearson Educación, México 2003.
5. Fernando Pardo y José A. Boluda.
VHDL: Lenguaje par síntesis, Tercera Edición.
Alfaomega Grupo Editor, México, agosto 2011.
6. Peter J. Ashenden.
VHDL 2008: Just the New Stuff.
Morgan Kaufmann, 2007.
7. Peter J. Ashenden y Jim Lewis.
The Designer’s Guide to VHDL.
Morgan Kaufmann, 2008.
CONCLUSIÓN Y BIBLIOGRAFIA
ITLAC pág. 115
8. Douglas L. Perry.
VHDL: Programming by Example.
McGraw-Hill, 2002.
9. J.I. Artigas, L.A. Barragán, C. Orrite e I. Urriza.
Electronica Digital: Aplicaciones y Problemas con VHDL.
Thomson-Paraninfo, 2002.
10. Kevin Skahill.
Digital Design: Principles and Practices.
Prentice Hall, 2002.

Más contenido relacionado

La actualidad más candente

Jfet prueba
Jfet pruebaJfet prueba
Jfet pruebaAlexis U
 
Antena reflector parabolico
Antena reflector parabolicoAntena reflector parabolico
Antena reflector parabolicoluis40rey
 
02.Arquitectura de los microcontroladores pic
02.Arquitectura de los microcontroladores pic02.Arquitectura de los microcontroladores pic
02.Arquitectura de los microcontroladores picJonathan Ruiz de Garibay
 
GENERADOR DE SEÑALES CON LM741 - SIGNAL GENERATOR
GENERADOR DE SEÑALES CON LM741 - SIGNAL GENERATORGENERADOR DE SEÑALES CON LM741 - SIGNAL GENERATOR
GENERADOR DE SEÑALES CON LM741 - SIGNAL GENERATORFernando Marcos Marcos
 
151953932 laboratorio-de-codificador-y-decodificador
151953932 laboratorio-de-codificador-y-decodificador151953932 laboratorio-de-codificador-y-decodificador
151953932 laboratorio-de-codificador-y-decodificadorEver Omar Nolasco
 
Práctica de flip flops
Práctica de flip flopsPráctica de flip flops
Práctica de flip flopskartorrealba
 
David salazar flip flops
David salazar flip flopsDavid salazar flip flops
David salazar flip flopsDavidSalaazar
 
Circuitos secuenciales sincronos y asincronos
Circuitos secuenciales sincronos y asincronosCircuitos secuenciales sincronos y asincronos
Circuitos secuenciales sincronos y asincronosAlexa Ramirez
 
RESPUESTA EN FRECUENCIA (Métodos del Diagrama de Bode y del Diagrama Polar)
RESPUESTA EN FRECUENCIA (Métodos del Diagrama de Bode y del Diagrama Polar)RESPUESTA EN FRECUENCIA (Métodos del Diagrama de Bode y del Diagrama Polar)
RESPUESTA EN FRECUENCIA (Métodos del Diagrama de Bode y del Diagrama Polar)Elias1306
 
Contador de 4 bytes con flip flop d (7474)
Contador de 4 bytes con flip flop  d (7474)Contador de 4 bytes con flip flop  d (7474)
Contador de 4 bytes con flip flop d (7474)alexis_meca
 
Diseño de un contador sincrónico con flip-Flop JK, haciendo uso de mapas de k...
Diseño de un contador sincrónico con flip-Flop JK, haciendo uso de mapas de k...Diseño de un contador sincrónico con flip-Flop JK, haciendo uso de mapas de k...
Diseño de un contador sincrónico con flip-Flop JK, haciendo uso de mapas de k...ffloresluna
 
Proyecto 7 Flip Flops
Proyecto 7 Flip FlopsProyecto 7 Flip Flops
Proyecto 7 Flip FlopsBlackjacks21
 

La actualidad más candente (20)

Conversión de flip flops
Conversión de flip flopsConversión de flip flops
Conversión de flip flops
 
Aplicaciones con el pic 16f84
Aplicaciones con el pic 16f84Aplicaciones con el pic 16f84
Aplicaciones con el pic 16f84
 
Jfet prueba
Jfet pruebaJfet prueba
Jfet prueba
 
Multiplexores y Demultiplexores
Multiplexores y Demultiplexores Multiplexores y Demultiplexores
Multiplexores y Demultiplexores
 
Antena reflector parabolico
Antena reflector parabolicoAntena reflector parabolico
Antena reflector parabolico
 
02.Arquitectura de los microcontroladores pic
02.Arquitectura de los microcontroladores pic02.Arquitectura de los microcontroladores pic
02.Arquitectura de los microcontroladores pic
 
Antenas
AntenasAntenas
Antenas
 
GENERADOR DE SEÑALES CON LM741 - SIGNAL GENERATOR
GENERADOR DE SEÑALES CON LM741 - SIGNAL GENERATORGENERADOR DE SEÑALES CON LM741 - SIGNAL GENERATOR
GENERADOR DE SEÑALES CON LM741 - SIGNAL GENERATOR
 
151953932 laboratorio-de-codificador-y-decodificador
151953932 laboratorio-de-codificador-y-decodificador151953932 laboratorio-de-codificador-y-decodificador
151953932 laboratorio-de-codificador-y-decodificador
 
Preguntas capitulo 4
Preguntas capitulo 4Preguntas capitulo 4
Preguntas capitulo 4
 
Práctica de flip flops
Práctica de flip flopsPráctica de flip flops
Práctica de flip flops
 
David salazar flip flops
David salazar flip flopsDavid salazar flip flops
David salazar flip flops
 
Circuitos secuenciales sincronos y asincronos
Circuitos secuenciales sincronos y asincronosCircuitos secuenciales sincronos y asincronos
Circuitos secuenciales sincronos y asincronos
 
RESPUESTA EN FRECUENCIA (Métodos del Diagrama de Bode y del Diagrama Polar)
RESPUESTA EN FRECUENCIA (Métodos del Diagrama de Bode y del Diagrama Polar)RESPUESTA EN FRECUENCIA (Métodos del Diagrama de Bode y del Diagrama Polar)
RESPUESTA EN FRECUENCIA (Métodos del Diagrama de Bode y del Diagrama Polar)
 
Multivibradores
MultivibradoresMultivibradores
Multivibradores
 
Contador de 4 bytes con flip flop d (7474)
Contador de 4 bytes con flip flop  d (7474)Contador de 4 bytes con flip flop  d (7474)
Contador de 4 bytes con flip flop d (7474)
 
Registro de desplazamiento
Registro de desplazamientoRegistro de desplazamiento
Registro de desplazamiento
 
Diseño de un contador sincrónico con flip-Flop JK, haciendo uso de mapas de k...
Diseño de un contador sincrónico con flip-Flop JK, haciendo uso de mapas de k...Diseño de un contador sincrónico con flip-Flop JK, haciendo uso de mapas de k...
Diseño de un contador sincrónico con flip-Flop JK, haciendo uso de mapas de k...
 
Proyecto 7 Flip Flops
Proyecto 7 Flip FlopsProyecto 7 Flip Flops
Proyecto 7 Flip Flops
 
Convertidor boost
Convertidor boostConvertidor boost
Convertidor boost
 

Similar a Manual de prácticas de diseño digital con VHDL

Sistemas_Digitales_Principios_y_Aplicaci.pdf
Sistemas_Digitales_Principios_y_Aplicaci.pdfSistemas_Digitales_Principios_y_Aplicaci.pdf
Sistemas_Digitales_Principios_y_Aplicaci.pdfElvisVergara3
 
Sistemas_Digitales_Principios_y_Aplicaci.pdf
Sistemas_Digitales_Principios_y_Aplicaci.pdfSistemas_Digitales_Principios_y_Aplicaci.pdf
Sistemas_Digitales_Principios_y_Aplicaci.pdfXaviBermeo1
 
Unidad 4 lenguaje hdl ISC J3 - A JP
Unidad 4 lenguaje hdl ISC J3 - A JPUnidad 4 lenguaje hdl ISC J3 - A JP
Unidad 4 lenguaje hdl ISC J3 - A JPJhonatan Pat
 
Electrónica digital: Lenguaje descripción de hardware VHDL
Electrónica digital: Lenguaje descripción de hardware VHDLElectrónica digital: Lenguaje descripción de hardware VHDL
Electrónica digital: Lenguaje descripción de hardware VHDLSANTIAGO PABLO ALBERTO
 
Ti documento grupo_2
Ti documento grupo_2Ti documento grupo_2
Ti documento grupo_2ingrisiitha
 
HERRAMIENTAS BÀSICAS DEL INTERNET
HERRAMIENTAS BÀSICAS DEL INTERNETHERRAMIENTAS BÀSICAS DEL INTERNET
HERRAMIENTAS BÀSICAS DEL INTERNETsilvia0208
 
Herramientas básicas del internet
Herramientas básicas del internet Herramientas básicas del internet
Herramientas básicas del internet KrisJimCed
 
Ti documento grupo_2
Ti documento grupo_2Ti documento grupo_2
Ti documento grupo_2Joka211522
 
Ti documento grupo_2
Ti documento grupo_2Ti documento grupo_2
Ti documento grupo_2Lidia Mieles
 
Ti documento grupo_2
Ti documento grupo_2Ti documento grupo_2
Ti documento grupo_2KarinaMrtinez
 
Ti documento grupo_2
Ti documento grupo_2Ti documento grupo_2
Ti documento grupo_2hugoandres27
 
Guia Aprendizaje 7° Swith y router
Guia Aprendizaje 7° Swith y routerGuia Aprendizaje 7° Swith y router
Guia Aprendizaje 7° Swith y routercococoP
 
14. guia sistemas switch y router (1)
14. guia sistemas switch y router (1)14. guia sistemas switch y router (1)
14. guia sistemas switch y router (1)cococoP
 
Arquitecturas de computadores_avanzadas
Arquitecturas de computadores_avanzadasArquitecturas de computadores_avanzadas
Arquitecturas de computadores_avanzadasTensor
 

Similar a Manual de prácticas de diseño digital con VHDL (20)

Sistemas_Digitales_Principios_y_Aplicaci.pdf
Sistemas_Digitales_Principios_y_Aplicaci.pdfSistemas_Digitales_Principios_y_Aplicaci.pdf
Sistemas_Digitales_Principios_y_Aplicaci.pdf
 
Sistemas_Digitales_Principios_y_Aplicaci.pdf
Sistemas_Digitales_Principios_y_Aplicaci.pdfSistemas_Digitales_Principios_y_Aplicaci.pdf
Sistemas_Digitales_Principios_y_Aplicaci.pdf
 
Unidad3
Unidad3Unidad3
Unidad3
 
Unidad 4 lenguaje hdl ISC J3 - A JP
Unidad 4 lenguaje hdl ISC J3 - A JPUnidad 4 lenguaje hdl ISC J3 - A JP
Unidad 4 lenguaje hdl ISC J3 - A JP
 
Electrónica digital: Lenguaje descripción de hardware VHDL
Electrónica digital: Lenguaje descripción de hardware VHDLElectrónica digital: Lenguaje descripción de hardware VHDL
Electrónica digital: Lenguaje descripción de hardware VHDL
 
intro_VHDL.pdf
intro_VHDL.pdfintro_VHDL.pdf
intro_VHDL.pdf
 
Intro vhdl
Intro vhdlIntro vhdl
Intro vhdl
 
Ti documento grupo_2
Ti documento grupo_2Ti documento grupo_2
Ti documento grupo_2
 
HERRAMIENTAS BÀSICAS DEL INTERNET
HERRAMIENTAS BÀSICAS DEL INTERNETHERRAMIENTAS BÀSICAS DEL INTERNET
HERRAMIENTAS BÀSICAS DEL INTERNET
 
Herramientas básicas del internet
Herramientas básicas del internet Herramientas básicas del internet
Herramientas básicas del internet
 
Ti documento grupo_2
Ti documento grupo_2Ti documento grupo_2
Ti documento grupo_2
 
Ti documento grupo_2
Ti documento grupo_2Ti documento grupo_2
Ti documento grupo_2
 
Ti documento grupo_2
Ti documento grupo_2Ti documento grupo_2
Ti documento grupo_2
 
Ti documento grupo_2[1]
Ti documento grupo_2[1]Ti documento grupo_2[1]
Ti documento grupo_2[1]
 
Ti documento grupo_2
Ti documento grupo_2Ti documento grupo_2
Ti documento grupo_2
 
Guia Aprendizaje 7° Swith y router
Guia Aprendizaje 7° Swith y routerGuia Aprendizaje 7° Swith y router
Guia Aprendizaje 7° Swith y router
 
14. guia sistemas switch y router (1)
14. guia sistemas switch y router (1)14. guia sistemas switch y router (1)
14. guia sistemas switch y router (1)
 
Cuaderno profesional 05
Cuaderno profesional 05Cuaderno profesional 05
Cuaderno profesional 05
 
Modelo OSI
Modelo OSI Modelo OSI
Modelo OSI
 
Arquitecturas de computadores_avanzadas
Arquitecturas de computadores_avanzadasArquitecturas de computadores_avanzadas
Arquitecturas de computadores_avanzadas
 

Último

Diapositiva de Topografía Nivelación simple y compuesta
Diapositiva de Topografía Nivelación simple y compuestaDiapositiva de Topografía Nivelación simple y compuesta
Diapositiva de Topografía Nivelación simple y compuestajeffsalazarpuente
 
clases de dinamica ejercicios preuniversitarios.pdf
clases de dinamica ejercicios preuniversitarios.pdfclases de dinamica ejercicios preuniversitarios.pdf
clases de dinamica ejercicios preuniversitarios.pdfDanielaVelasquez553560
 
ECONOMIA APLICADA SEMANA 555555555555555555.pdf
ECONOMIA APLICADA SEMANA 555555555555555555.pdfECONOMIA APLICADA SEMANA 555555555555555555.pdf
ECONOMIA APLICADA SEMANA 555555555555555555.pdffredyflores58
 
Caldera Recuperadora de químicos en celulosa tipos y funcionamiento
Caldera Recuperadora de químicos en celulosa  tipos y funcionamientoCaldera Recuperadora de químicos en celulosa  tipos y funcionamiento
Caldera Recuperadora de químicos en celulosa tipos y funcionamientoRobertoAlejandroCast6
 
Sesion 02 Patentes REGISTRO EN INDECOPI PERU
Sesion 02 Patentes REGISTRO EN INDECOPI PERUSesion 02 Patentes REGISTRO EN INDECOPI PERU
Sesion 02 Patentes REGISTRO EN INDECOPI PERUMarcosAlvarezSalinas
 
4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptx
4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptx4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptx
4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptxGARCIARAMIREZCESAR
 
¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx
¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx
¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptxguillermosantana15
 
Polimeros.LAS REACCIONES DE POLIMERIZACION QUE ES COMO EN QUIMICA LLAMAMOS A ...
Polimeros.LAS REACCIONES DE POLIMERIZACION QUE ES COMO EN QUIMICA LLAMAMOS A ...Polimeros.LAS REACCIONES DE POLIMERIZACION QUE ES COMO EN QUIMICA LLAMAMOS A ...
Polimeros.LAS REACCIONES DE POLIMERIZACION QUE ES COMO EN QUIMICA LLAMAMOS A ...SuannNeyraChongShing
 
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptx
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptxPPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptx
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptxSergioGJimenezMorean
 
Tiempos Predeterminados MOST para Estudio del Trabajo II
Tiempos Predeterminados MOST para Estudio del Trabajo IITiempos Predeterminados MOST para Estudio del Trabajo II
Tiempos Predeterminados MOST para Estudio del Trabajo IILauraFernandaValdovi
 
Presentación N° 1 INTRODUCCIÓN Y CONCEPTOS DE GESTIÓN AMBIENTAL.pdf
Presentación N° 1 INTRODUCCIÓN Y CONCEPTOS DE GESTIÓN AMBIENTAL.pdfPresentación N° 1 INTRODUCCIÓN Y CONCEPTOS DE GESTIÓN AMBIENTAL.pdf
Presentación N° 1 INTRODUCCIÓN Y CONCEPTOS DE GESTIÓN AMBIENTAL.pdfMIGUELANGELCONDORIMA4
 
Introducción a los sistemas neumaticos.ppt
Introducción a los sistemas neumaticos.pptIntroducción a los sistemas neumaticos.ppt
Introducción a los sistemas neumaticos.pptEduardoCorado
 
MANIOBRA Y CONTROL INNOVATIVO LOGO PLC SIEMENS
MANIOBRA Y CONTROL INNOVATIVO LOGO PLC  SIEMENSMANIOBRA Y CONTROL INNOVATIVO LOGO PLC  SIEMENS
MANIOBRA Y CONTROL INNOVATIVO LOGO PLC SIEMENSLuisLobatoingaruca
 
Proyecto de iluminación "guia" para proyectos de ingeniería eléctrica
Proyecto de iluminación "guia" para proyectos de ingeniería eléctricaProyecto de iluminación "guia" para proyectos de ingeniería eléctrica
Proyecto de iluminación "guia" para proyectos de ingeniería eléctricaXjoseantonio01jossed
 
sistema de construcción Drywall semana 7
sistema de construcción Drywall semana 7sistema de construcción Drywall semana 7
sistema de construcción Drywall semana 7luisanthonycarrascos
 
183045401-Terminal-Terrestre-de-Trujillo.pdf
183045401-Terminal-Terrestre-de-Trujillo.pdf183045401-Terminal-Terrestre-de-Trujillo.pdf
183045401-Terminal-Terrestre-de-Trujillo.pdfEdwinAlexanderSnchez2
 
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kV
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kVEl proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kV
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kVSebastianPaez47
 
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...Francisco Javier Mora Serrano
 
Manual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdfManual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdfedsonzav8
 
TALLER PAEC preparatoria directamente de la secretaria de educación pública
TALLER PAEC preparatoria directamente de la secretaria de educación públicaTALLER PAEC preparatoria directamente de la secretaria de educación pública
TALLER PAEC preparatoria directamente de la secretaria de educación públicaSantiagoSanchez353883
 

Último (20)

Diapositiva de Topografía Nivelación simple y compuesta
Diapositiva de Topografía Nivelación simple y compuestaDiapositiva de Topografía Nivelación simple y compuesta
Diapositiva de Topografía Nivelación simple y compuesta
 
clases de dinamica ejercicios preuniversitarios.pdf
clases de dinamica ejercicios preuniversitarios.pdfclases de dinamica ejercicios preuniversitarios.pdf
clases de dinamica ejercicios preuniversitarios.pdf
 
ECONOMIA APLICADA SEMANA 555555555555555555.pdf
ECONOMIA APLICADA SEMANA 555555555555555555.pdfECONOMIA APLICADA SEMANA 555555555555555555.pdf
ECONOMIA APLICADA SEMANA 555555555555555555.pdf
 
Caldera Recuperadora de químicos en celulosa tipos y funcionamiento
Caldera Recuperadora de químicos en celulosa  tipos y funcionamientoCaldera Recuperadora de químicos en celulosa  tipos y funcionamiento
Caldera Recuperadora de químicos en celulosa tipos y funcionamiento
 
Sesion 02 Patentes REGISTRO EN INDECOPI PERU
Sesion 02 Patentes REGISTRO EN INDECOPI PERUSesion 02 Patentes REGISTRO EN INDECOPI PERU
Sesion 02 Patentes REGISTRO EN INDECOPI PERU
 
4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptx
4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptx4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptx
4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptx
 
¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx
¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx
¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx
 
Polimeros.LAS REACCIONES DE POLIMERIZACION QUE ES COMO EN QUIMICA LLAMAMOS A ...
Polimeros.LAS REACCIONES DE POLIMERIZACION QUE ES COMO EN QUIMICA LLAMAMOS A ...Polimeros.LAS REACCIONES DE POLIMERIZACION QUE ES COMO EN QUIMICA LLAMAMOS A ...
Polimeros.LAS REACCIONES DE POLIMERIZACION QUE ES COMO EN QUIMICA LLAMAMOS A ...
 
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptx
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptxPPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptx
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptx
 
Tiempos Predeterminados MOST para Estudio del Trabajo II
Tiempos Predeterminados MOST para Estudio del Trabajo IITiempos Predeterminados MOST para Estudio del Trabajo II
Tiempos Predeterminados MOST para Estudio del Trabajo II
 
Presentación N° 1 INTRODUCCIÓN Y CONCEPTOS DE GESTIÓN AMBIENTAL.pdf
Presentación N° 1 INTRODUCCIÓN Y CONCEPTOS DE GESTIÓN AMBIENTAL.pdfPresentación N° 1 INTRODUCCIÓN Y CONCEPTOS DE GESTIÓN AMBIENTAL.pdf
Presentación N° 1 INTRODUCCIÓN Y CONCEPTOS DE GESTIÓN AMBIENTAL.pdf
 
Introducción a los sistemas neumaticos.ppt
Introducción a los sistemas neumaticos.pptIntroducción a los sistemas neumaticos.ppt
Introducción a los sistemas neumaticos.ppt
 
MANIOBRA Y CONTROL INNOVATIVO LOGO PLC SIEMENS
MANIOBRA Y CONTROL INNOVATIVO LOGO PLC  SIEMENSMANIOBRA Y CONTROL INNOVATIVO LOGO PLC  SIEMENS
MANIOBRA Y CONTROL INNOVATIVO LOGO PLC SIEMENS
 
Proyecto de iluminación "guia" para proyectos de ingeniería eléctrica
Proyecto de iluminación "guia" para proyectos de ingeniería eléctricaProyecto de iluminación "guia" para proyectos de ingeniería eléctrica
Proyecto de iluminación "guia" para proyectos de ingeniería eléctrica
 
sistema de construcción Drywall semana 7
sistema de construcción Drywall semana 7sistema de construcción Drywall semana 7
sistema de construcción Drywall semana 7
 
183045401-Terminal-Terrestre-de-Trujillo.pdf
183045401-Terminal-Terrestre-de-Trujillo.pdf183045401-Terminal-Terrestre-de-Trujillo.pdf
183045401-Terminal-Terrestre-de-Trujillo.pdf
 
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kV
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kVEl proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kV
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kV
 
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
 
Manual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdfManual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdf
 
TALLER PAEC preparatoria directamente de la secretaria de educación pública
TALLER PAEC preparatoria directamente de la secretaria de educación públicaTALLER PAEC preparatoria directamente de la secretaria de educación pública
TALLER PAEC preparatoria directamente de la secretaria de educación pública
 

Manual de prácticas de diseño digital con VHDL

  • 1. Subsecretaría de Educación Superior Dirección General de Educación Superior Tecnológica Instituto Tecnológico de Lázaro Cárdenas Av. Melchor Ocampo # 2555, Col. Cuarto Sector, C.P. 60950, Cd. Lázaro Cárdenas, Michoacán, Teléfono (753) 53 7 19 77, 53 2 10 40, 53 7 53 91, 53 7 53 92 Dirección Ext. 109 , Fax. 108 e-mail: direccion@itlac.mx Internet: www.itlazarocardenas.edu.mx. DISEÑO DIGITAL CON VHDL MANUAL DE PRÁCTICAS NOMBRE DEL ALUMNO: HECTOR ARNULFO BLANCO NAMBO ASESOR: M.C. JOSÉ ARMANDO LARA GONZÁLEZ GRUPO: 52S PERIODO: AGOSTO – DICIEMBRE 2016
  • 2. H. ARNULFO BLANCO NAMBO ITLAC AGRADECIMIENTOS A ti, JANETH, por amarme tanto tiempo; y por las mil y una maneras de iluminar las vidas de todos los que tocas. A mi familia: Arnulfo, María, Mariela y Jazmín. Héctor A. Blanco
  • 3. MANUAL DE PRACTICAS INDICE H. ARNULFO BLANCO NAMBO ITLAC CONTENIDO Introducción ..............................................................................................………. I Marco Teórico ..............................................................................................………. II Práctica 1 ............................................................................................………... 1 Práctica 2 ..................................................................................………………. 11 Práctica 3 ............................................................................................………... 15 Práctica 4 ..................................................................................………………. 19 Práctica 5 ............................................................................................………... 23 Práctica 6 ..................................................................................………………. 27 Práctica 7 ............................................................................................………... 31 Práctica 8 ..................................................................................………………. 35 Práctica 9 ............................................................................................………... 39 Práctica 10 ..................................................................................………………. 43 Práctica 11 ............................................................................................………... 49 Práctica 12 ..................................................................................………………. 55 Práctica 13 ............................................................................................………... 61 Práctica 14 ..................................................................................………………. 67 Práctica 15 ............................................................................................………... 74 Práctica 16 ..................................................................................………………. 82 Práctica 17 ............................................................................................………... 89 Práctica 18 ..................................................................................………………. 96 Práctica 19 ............................................................................................………... 104 Conclusión ............................................................................................………… 113 Bibliografía ............................................................................................………... 114
  • 4. INTRODUCCIÓN ITLAC I INTRODUCCIÓN. En el presente manual de prácticas mostrará, ayudará y guiará al usuario a implementar, sintetizar, depurar y simular programas en lenguaje VHDL, así como cargar dichos programas a la tarjeta de entrenamiento. El software utilizado para el desarrollo de los programas es Xilinx Design Tools. Cada práctica seguirá las pautas y pasos que se especifican en el guion de la práctica en cuestión. En todos los guiones de prácticas existen las mismas secciones: • Introducción. Se realiza una breve introducción al tema que es eje central de la práctica. • Objetivos. Se definen los objetivos que queremos alcanzar con la realización de la práctica. Es importante saber a dónde queremos llegar para saber si hemos llegado o no. • Desarrollo de la práctica. Se explican de forma somera los fundamentos teóricos necesarios para la realización de la práctica, se especifica concretamente qué hay que hacer en la práctica y cuáles son los pasos que hay que seguir para realizarla.
  • 5. MARCO TEORICO Página II MARCO TEORICO Antecedentes el lenguaje VHDL (Lenguaje De Descripción De Hardware Para Circuitos Integrados De Alta Velocidad) ha sido el corazón de la productividad del diseño electrónico de hardware desde su ratificación inicial por la IEEE en 1987. Por casi 15 años la industria del diseño automatizado ha expandido el uso de VHDL del concepto inicial de documentación del diseño hasta su implementación y verificación funcional. El uso de VHDL ha evolucionado y su importancia se ha incrementado al ritmo de que la dimensionad de los nuevos dispositivos semiconductores se ha reducido. Hace no más de 10 años era común mezclar diseños descritos con diagramas esquemáticos y VHDL, pero debido a que la complejidad del diseño creció la industria del diseño abandono los diagramas esquemáticos y opto por solamente el lenguaje descripción de hardware. Como todos los estándares de IEEE. El estándar VHDL está sujeto a revisiones cada 5 años. Comentarios y sugerencias de los usuarios del estándar de 1987 fueron analizados por el grupo de trabajo responsable de IEEE para VHDL. Y en 1992 una versión revisada fue propuesta la cual fue adoptada en 1993. Dando a conocer VHDL-93. Sucesivamente en 1998 fue puesta en marcha una segunda vuelta de revisión. Este proceso dio como resultado: VHDL-2001. Otro cambio significativo en el lenguaje VHDL sucedió en el 2008, que supone un cambio radical respecto a pasadas modificaciones que ha venido sufriendo el lenguaje. Introducción a VHDL Se ha visto con anterioridad, que la forma más común de describir un circuito era mediante la utilización de esquemas, que son una representación gráfica de lo que se pretende realizar. Con la aparición de herramientas de EDA (Electronic Design Automation) cada vez más complejas, que integran en el mismo marco de trabajo tanto las herramientas de descripción, síntesis y realización. Aparición también la necesidad de disponer una descripción del circuito que
  • 6. MARCO TEORICO Página III permitiera el intercambio de información entre las diferentes herramientas que componen la herramienta de trabajo. En principio se utilizó un lenguaje de descripción que permitía, mediante sentencias simples, describir completamente un circuito. A estos lenguajes se les llamo Netlist puesto que eran simplemente eso, un conjunto de instrucciones que indicaban el interconexionado entre los componentes de un diseño, es decir, se trata de una lista de conexiones. A partir de estos lenguajes simples, que ya eran auténticos lenguajes de descripción de hardware. Se descubrió el interés que podría tener el describir los circuitos directamente utilizando un lenguaje en vez de usar esquemas. Sin embargo, se siguieron utilizando esquemas puestos que desde el punto de vista del ser humano son mucho más sencillos de entender, aunque un lenguaje simple permite una edición más sencilla y rápida. Existen dos formas de describir un circuito. Por un lado, se puede describir un circuito indicando los diferentes componentes que lo forman y su interconexión, de esta manera tenemos especificado un circuito y sabemos cómo funciona; esta es la forma habitual en que se han venido describiendo circuitos y las herramientas utilizadas para ello han sido las de captura de esquemas y las descripciones Netlist. La segunda forma consiste en describir un circuito indicando lo que hace o como funciona, es decir, describiendo su comportamiento. Naturalmente esta forma de describir un circuito es mucho mejor para un diseñador puesto que lo que realmente interesa es el funcionamiento del circuito más que sus componentes. Por otro lado, al encontrarse lejos de lo que un circuito es realmente plantear algunos problemas a la hora de realizar un circuito a partir de la descripción de su comportamiento. Arreglos De Compuertas De Campo Programables (FPGA) Los tipos de chips antes descritos, la serie 7400, los SPLD y los CPLD son útiles para implementar una amplia variedad de circuitos lógico. Excepto por el CPLD, estos dispositivos son más bien pequeños y adecuados solo para aplicaciones hasta cierto punto simples. Incluso
  • 7. MARCO TEORICO Página IV para los CPLD, nada más pueden acomodarse circuitos lógicos moderadamente grandes en un solo chip. Por razones de costo y rendimiento, es prudente implementar el circuito lógico deseado empleando cuantos menos chips sea posible, de modo que tanto la cantidad de circuitos en un chip como su capacidad funcional son significativos. Una forma de cuantificar el tamaño de un circuito es suponer que se construirá usando solo compuertas lógicas simples y luego estimar cuantas de ellas se necesitan. Una medida que suele usarse es el número total de compuertas NAND de dos entradas que se necesitarían para construir el circuito; esta medida se llama número de compuertas equivalentes. Si utilizamos la métrica de compuertas equivalentes es fácil medir el tamaño de un chip de la serie 7400 porque Cada uno contiene únicamente compuertas simples. En el caso de los SPLD y los CPLD la medida típica usada es que cada macrocelda represente aproximadamente 20 compuertas equivalentes. Por ende, una PAL típica que tenga ocho macroceldas puede acomodar el circuito que requiera hasta alrededor de 160 compuertas y un gran CPLD que tenga 500 macroceldas puede implementar circuitos de hasta más 0 menos 10000 compuertas equivalentes. Según los estándares modernos, un circuito lógico con 10,000 compuertas no es grande. Para implementar circuitos mayores conviene usar un tipo diferente de chip con una capacidad lógica mayor. Un arreglo de compuertas de campos programables (FPGA. field-programmable gate array) es un dispositivo lógico programable que soporta la implementación de circuitos lógicos hasta cierto punto grandes. Los FPGA son muy diferentes de los SPLD y de los CPLD, ya que no contienen planos AND y OR. En vez de ello, los FPGA ofrecen bloques lógicos para la implementación de las funciones requeridas. La estructura general de una FPGA se ilustra en la Figura I. Contiene tres tipos principales de recursos: bloques lógicos, bloques de I/O para conectar a los pines del paquete, y cables de interconexión e interruptores. Los bloques lógicos están dispuestos en un arreglo bidimensional, en tanto que los cables de interconexión están organizados como canales de enrutamiento horizontales y verticales entre filas y columnas de
  • 8. MARCO TEORICO Página V bloques lógicos. Los canales de enrutamiento horizontales contienen cables e interruptores programables que permiten que los bloques lógicos se interconecten de muchas maneras. En la Figura I. se muestran dos ubicaciones de los interruptores programables; los recuadros oscuros adyacentes a los bloques lógicos sostienen interruptores que conectan las terminales de entrada y salida del bloque lógico a los cables de interconexión, y los recuadros oscuros que están diagonalmente entre bloques lógicos conectan un cable de interconexión con otro (digamos, un cable vertical con uno horizontal). También hay conexiones programables entre los bloques de I/O y los cables de interconexión. I/O Cell Interconnection resourcesLogic Bloc Figura I. Estructura general de una FPGA. El verdadero número de interruptores programables y cables que hay en una FPGA varía en los chips disponibles en el comercio. Las FPGA sirven para implementar circuitos lógicos con un tamaño de más de un millón de compuertas equivalentes. Algunos ejemplos de fabricantes de productos FPGA comerciales son Altera y Xilinx. Los chips FPGA están disponibles en una variedad de paquetes, incluidos los paquetes PLCC y QFP ya descritos. Cada bloque lógico en una FPGA tiene un pequeño número de entradas y salidas.
  • 9. Practica 1 ITLAC pág.1 SEP ITNM INSTITUTO TECNOLÓGICO DE LÁZARO CÁRDENAS PRACTICA 1 DISEÑO, SIMULACION Y PRUEBA DE UNA COMPUERTA AND DE DOS ENTRADAS OBJETIVO. El objetivo de esta práctica es implementar, sintetizar, depurar y simular, una compuerta AND de dos entradas, en VHDL.
  • 10. Practica 1 ITLAC pág.2 MATERIAL Y EQUIPO Para elaborar una práctica es necesario contar con ciertos elementos ya que son nuestras herramientas de trabajo. Dicho esto, aquí están los que utilizaremos en este caso.  Tarjeta FPGA Basys 2.  Computadora Portátil.  Software Ise Design Suite 14.7.  Cable De Alimentación USB.
  • 11. Practica 1 ITLAC pág.3 DESARROLLO. Creación del programa. En este reporte se explicará cómo se diseña una compuerta AND de dos entradas con VHDL, usando el programa “xilinx 14.7” en el cual se comenzará por abrir dicho programa, una vez abierto dicho programa se dirigirá en la parte superior del programa en la cual presionara la opción que dice “file” una vez presionado se abrirá un menú, como se muestra en la Figura 1.1 Figura 1.1 Ubicación del menú para crear un nuevo proyecto. Una vez desplegado dicho menú se seleccionará la opción que dice “New Project.” esta opción nos abrirá una ventana donde se le dará la ubicación donde se guarda el nuevo proyecto y el nombre de dicho proyecto como se muestra en la Figura 1.2.
  • 12. Practica 1 ITLAC pág.4 Figura 1.2. Nombre y ubicación del nuevo proyecto A continuación, nos mostrara un menú de datos especificaciones que nuestro nuevo proyecto deberá tener para que se pueda emplear en la FPGA que utilizaremos que este caso será Sparta3E para no tener problemas de compatibilidad con la FPGA se le asignara los siguientes datos como se muestra en la Figura 1.3. Figura 1.3. Especificaciones de propiedades para diseñar un programa de VHDL. Una vez completado la tabla de especificaciones se dará clic en “Next” enviando la siguiente ventana que nos mostrará la propiedad que definimos en la Figura 1.3 dicho esto se mostrará en la Figura 1.4.
  • 13. Practica 1 ITLAC pág.5 Figura 1.4. Ventana de propiedades seleccionadas. Después se le dará clic en el botón que dice “Finish” enviando la siguiente ventana del nuevo proyecto donde se dará clic derecho mostrando un menú de opciones en la cual se elegirá la opción que dice “New Source.” como se muestra en la Figura 1.5. Figura 1.5. Creación de un nuevo proyecto en VHDL module. Desplegando el siguiente menú en el que se elegirá la opción que se encuentra en el menú del costado izquierdo que tiene el nombre de “VHDL module” una vez elegido se le dará un nombre
  • 14. Practica 1 ITLAC pág.6 y una ubicación que ya fue definida al inicio cuando se creó un nuevo proyecto el nombre no necesariamente tiene que ser el mismo que el anterior proyecto es recomendable darle el mismo nombre como se muestra en la Figura 1.6. Figura 1.6. Nombre y ubicación del nuevo proyecto en VHDL module. Una vez realizado todo lo que se mencionó, mostrara una ventana donde se elegirá el número de entradas y de salidas, así como el nombre que se le asignara a cada una, en este caso será una compuerta AND de dos entradas como se muestra en la Figura 1.7. Figura 1.7. Menú de entradas y salidas.
  • 15. Practica 1 ITLAC pág.7 Después se dará clic en el botón que dice “Next”, mostrando una ventana donde que dice las entradas y salidas que se eligió, así como el nombre que se le asigno como se muestra en la Figura 1.8. Figura 1.8. Especificacion de entradas y salidas. Realizando todo lo anterior se desplegara la siguiente ventana en la cual ya se intruse el codigo del programa en este caso sera el codigo para una compuerta AND el cual sera el siguente “s <= (a and b);” los que se encuentran en color verde son los comentarios se pueden poner comentarios en el programa agregando antes de lo que se desea escribir (--) doble guion sin parentesis y despues lo que se desea escribir, al inicio se puede escribir el nombre de la persona que esta haciendo el progrema en la parte que dice ingeniero en ingles, una vez escrito el codigo del programa del cual se desea crear se sintetizara el programa dandole clic el parte izquierda del programa en la cual nos mostrara si tiene error el programa en dado caso que tenga error marcara una “x” y en caso de que no haya ningun error mostrara una palomita como se muestra en la Figura 1.9.
  • 16. Practica 1 ITLAC pág.8 Figura 1.9. Escritura de código y sintetizacion. Simulación en Isim. Para simular el programa en “Isim” se seleccionara en la parte de arriba que dice “simulación” en el archivo que tiene el nombre del programa con “.vhd “una vez seleccionado el archivo en la parte de inferior muestra “Isim Simulator” se le da clic en el signo de más y despliega un menú en el cual se le dará clic a la última opción con el nombre de “Simulate Behavioral Model” mostrando una ventana en la cual se comprobara la tabla de verdad de la compuerta AND, en cada entrada darle clic derecho el cual despliega un menú seleccionando la opción “Force Constant..” la cual muestra una ventana en la que se elige si se quiere un cero 0 o un 1 en la opción que dice “Forcé to value” una vez colocado el dato se hace clic en el botón “OK” y por último se le da un salto y nos muestra en forma de grafica lo que tiene las dos entradas y las salidas como se muestra en la Figura 1.10.
  • 17. Practica 1 ITLAC pág.9 Figura 1.10. Comprobación de la tabla de verdad de la compuerta AND en Isim. Creación del archivo “.bit” La creación del archivo “. bit” es con el fin de implementarlo a la tarjeta Spartan3E y simule en la vida real una compuerta AND de dos entradas los pasos a seguir primero dar clic derecho en el costado izquierdo parte superior donde se encuentran el archivo “.vhd” en la parte en blanco mostrara un menú en cual se dará clic en New Source mostrando un menú en el cual se elegirá la opción que se muestra en Figura 1.11. Figura 1.11 creación de archivo “.bit”
  • 18. Practica 1 ITLAC pág.10 Una vez creado mostrará la siguiente ventana en la cual se elegirá entradas y salidas usando la tarjeta Spartan3E como se muestra en la Figura 1.12. Figura 1.12 selección de entradas y salidas de la tarjeta Spartan3E.
  • 19. Practica 2 ITLAC pág. 11 SEP ITNM INSTITUTO TECNOLÓGICO DE LÁZARO CÁRDENAS PRACTICA 2 DISEÑO, SIMULACION Y PRUEBA DE UNA COMPUERTA OR DE DOS ENTRADAS OBJETIVO. El objetivo de esta práctica es implementar, sintetizar, depurar y simular, una compuerta OR de dos entradas, en VHDL.
  • 20. Practica 2 ITLAC pág. 12 MATERIAL Y EQUIPO Para elaborar una práctica es necesario contar con ciertos elementos ya que son nuestras herramientas de trabajo. Dicho esto, aquí están los que utilizaremos en este caso.  Tarjeta FPGA Basys 2.  Computadora Portátil.  Software Ise Design Suite 14.7.  Cable De Alimentación USB.
  • 21. Practica 2 ITLAC pág. 13 DESARROLLO La siguiente ventana en la cual ya se intruse el codigo del programa en este caso sera el codigo para una compuerta OR el cual sera el siguente “s <= (a OR b);” los que se encuentran en color verde son los comentarios se pueden poner comentarios en el programa agregando antes de lo que se desea escribir (--) doble guion sin parentesis y despues lo que se desea escribir, al inicio se puede escribir el nombre de la persona que esta haciendo el progrema en la parte que dice ingeniero en ingles, una vez escrito el codigo del programa del cual se desea crear se sintetizara el programa dandole clic el parte izquierda del programa en la cual nos mostrara si tiene error el programa en dado caso que tenga error marcara una “x” y en caso de que no haya ningun error mostrara una palomita como se muestra en la Figura 2.1. Figura 2.1. Escritura de código y sintetizacion. Simulación en Isim. Para simular el programa en “Isim” se seleccionara en la parte de arriba que dice “simulación” en el archivo que tiene el nombre del programa con “.vhd “una vez seleccionado el archivo en la parte de inferior muestra “Isim Simulator” se le da clic en el signo de más y despliega un
  • 22. Practica 2 ITLAC pág. 14 menú en el cual se le dará clic a la última opción con el nombre de “Simulate Behavioral Model” mostrando una ventana en la cual se comprobara la tabla de verdad de la compuerta OR, en cada entrada darle clic derecho el cual despliega un menú seleccionando la opción “Force Constant..” la cual muestra una ventana en la que se elige si se quiere un cero 0 o un 1 en la opción que dice “Forcé to value” una vez colocado el dato se hace clic en el botón “OK” y por último se le da un salto y nos muestra en forma de grafica lo que tiene las dos entradas y las salidas como se muestra en la Figura 2.2. Figura 2.2. Comprobación de la tabla de verdad de la compuerta OR en Isim.
  • 23. Practica 3 ITLAC pág. 15 SEP ITNM INSTITUTO TECNOLÓGICO DE LÁZARO CÁRDENAS PRACTICA 3 DISEÑO, SIMULACION Y PRUEBA DE UNA COMPUERTA EXOR DE DOS ENTRADAS. OBJETIVO. El objetivo de esta práctica es implementar, sintetizar, depurar y simular, una compuerta EXOR de dos entradas, en VHDL.
  • 24. Practica 3 ITLAC pág. 16 MATERIAL Y EQUIPO Para elaborar una práctica es necesario contar con ciertos elementos ya que son nuestras herramientas de trabajo. Dicho esto, aquí están los que utilizaremos en este caso.  Tarjeta FPGA Basys 2.  Computadora Portátil.  Software Ise Design Suite 14.7.  Cable De Alimentación USB.
  • 25. Practica 3 ITLAC pág. 17 DESARROLLO. La siguiente ventana en la cual ya se intruse el codigo del programa en este caso sera el codigo para una compuerta EXOR el cual sera el siguente “s <= (a XOR b);” los que se encuentran en color verde son los comentarios se pueden poner comentarios en el programa agregando antes de lo que se desea escribir (--) doble guion sin parentesis y despues lo que se desea escribir, al inicio se puede escribir el nombre de la persona que esta haciendo el progrema en la parte que dice ingeniero en ingles, una vez escrito el codigo del programa del cual se desea crear se sintetizara el programa dandole clic el parte izquierda del programa en la cual nos mostrara si tiene error el programa en dado caso que tenga error marcara una “x” y en caso de que no haya ningun error mostrara una palomita como se muestra en la Figura 3.1. Figura 3.1. Escritura de código y sintetizacion. Simulación en Isim. Para simular el programa en “Isim” se seleccionara en la parte de arriba que dice “simulación” en el archivo que tiene el nombre del programa con “.vhd “una vez seleccionado el archivo en la parte de inferior muestra “Isim Simulator” se le da clic en el signo de más y despliega un
  • 26. Practica 3 ITLAC pág. 18 menú en el cual se le dará clic a la última opción con el nombre de “Simulate Behavioral Model” mostrando una ventana en la cual se comprobara la tabla de verdad de la compuerta EXOR, en cada entrada darle clic derecho el cual despliega un menú seleccionando la opción “Force Constant..” la cual muestra una ventana en la que se elige si se quiere un cero 0 o un 1 en la opción que dice “Forcé to value” una vez colocado el dato se hace clic en el botón “OK” y por último se le da un salto y nos muestra en forma de grafica lo que tiene las dos entradas y las salidas como se muestra en la Figura 3.2. Figura 3.2. Comprobación de la tabla de verdad de la compuerta EXOR en Isim.
  • 27. Practica 4 ITLAC pág. 19 SEP ITNM INSTITUTO TECNOLÓGICO DE LÁZARO CÁRDENAS PRACTICA 4 DISEÑO, SIMULACION Y PRUEBA DE UN MULTIPLEXOR DE 2 A 1. OBJETIVO El objetivo de esta práctica es implementar, sintetizar, depurar y simular, un MULTIPLEXOR de 2 a 1, en VHDL.
  • 28. Practica 4 ITLAC pág. 20 MATERIAL Y EQUIPO Para elaborar una práctica es necesario contar con ciertos elementos ya que son nuestras herramientas de trabajo. Dicho esto, aquí están los que utilizaremos en este caso.  Tarjeta FPGA Basys 2.  Computadora Portátil.  Software Ise Design Suite 14.7.  Cable De Alimentación USB.
  • 29. Practica 4 ITLAC pág. 21 DESARROLLO En la siguiente ventana en la cual ya se intruse el codigo del programa en este caso sera el codigo para multiplexor de 2 a 1 los que se encuentran en color verde son los comentarios se pueden poner comentarios en el programa agregando antes de lo que se desea escribir (--) doble guion sin parentesis y despues lo que se desea escribir, al inicio se puede escribir el nombre de la persona que esta haciendo el progrema en la parte que dice ingeniero en ingles, una vez escrito el codigo del programa del cual se desea crear se sintetizara el programa dandole clic el parte izquierda del programa en la cual nos mostrara si tiene error el programa en dado caso que tenga error marcara una “x” y en caso de que no haya ningun error mostrara una palomita como se muestra en la Figura 4.1. Figura 4.1. Escritura de código y sintetizacion.
  • 30. Practica 4 ITLAC pág. 22 Simulación en Isim. Para simular el programa en “Isim” se seleccionara en la parte de arriba que dice “simulación” en el archivo que tiene el nombre del programa con “.vhd “una vez seleccionado el archivo en la parte de inferior muestra “Isim Simulator” se le da clic en el signo de más y despliega un menú en el cual se le dará clic a la última opción con el nombre de “Simulate Behavioral Model” mostrando una ventana en la cual se comprobara la tabla de verdad de un multiplexor de 2 a 1, en cada entrada darle clic derecho el cual despliega un menú seleccionando la opción “Force Constant..” la cual muestra una ventana en la que se elige si se quiere un cero 0 o un 1 en la opción que dice “Forcé to value” una vez colocado el dato se hace clic en el botón “OK” y por último se le da un salto y nos muestra en forma de grafica lo que tiene las dos entradas y las salidas como se muestra en la Figura 4.2. Figura 4.14. Comprobación de la tabla de verdad del multiplexor en Isim.
  • 31. Practica 5 ITLAC pág. 23 SEP ITNM INSTITUTO TECNOLÓGICO DE LÁZARO CÁRDENAS PRACTICA 5 DISEÑO, SIMULACION Y PRUEBA DE UN MULTIPLEXOR DE 4 A 1 (WITH SELECT). OBJETIVO El objetivo de esta práctica es implementar, sintetizar, depurar y simular, un MULTIPLEXOR de 4 a 1(with select), en VHDL.
  • 32. Practica 5 ITLAC pág. 24 MATERIAL Y EQUIPO Para elaborar una práctica es necesario contar con ciertos elementos ya que son nuestras herramientas de trabajo. Dicho esto, aquí están los que utilizaremos en este caso.  Tarjeta FPGA Basys 2.  Computadora Portátil.  Software Ise Design Suite 14.7.  Cable De Alimentación USB.
  • 33. Practica 5 ITLAC pág. 25 DESARROLLO. desplegar la siguiente ventana en la cual ya se intruse el codigo del programa en este caso sera el codigo para multiplexor de 4 a 1(with select) los que se encuentran en color verde son los comentarios se pueden poner comentarios en el programa agregando antes de lo que se desea escribir (--) doble guion sin parentesis y despues lo que se desea escribir, al inicio se puede escribir el nombre de la persona que esta haciendo el progrema en la parte que dice ingeniero en ingles, una vez escrito el codigo del programa del cual se desea crear se sintetizara el programa dandole clic el parte izquierda del programa en la cual nos mostrara si tiene error el programa en dado caso que tenga error marcara una “x” y en caso de que no haya ningun error mostrara una palomita como se muestra en la Figura 5.1. Figura 5.1. Escritura de código y sintetizacion.
  • 34. Practica 5 ITLAC pág. 26 Simulación en Isim. Para simular el programa en “Isim” se seleccionara en la parte de arriba que dice “simulación” en el archivo que tiene el nombre del programa con “.vhd “una vez seleccionado el archivo en la parte de inferior muestra “Isim Simulator” se le da clic en el signo de más y despliega un menú en el cual se le dará clic a la última opción con el nombre de “Simulate Behavioral Model” mostrando una ventana en la cual se comprobara la tabla de verdad de un multiplexor de 4 a 1(with select), en cada entrada darle clic derecho el cual despliega un menú seleccionando la opción “Force Constant..” la cual muestra una ventana en la que se elige si se quiere un cero 0 o un 1 en la opción que dice “Forcé to value” una vez colocado el dato se hace clic en el botón “OK” y por último se le da un salto y nos muestra en forma de grafica lo que tiene las dos entradas y las salidas como se muestra en la Figura 5.2. Figura 5.2. Comprobación de la tabla de verdad del multiplexor en Isim.
  • 35. Practica 6 ITLAC pág. 27 SEP ITNM INSTITUTO TECNOLÓGICO DE LÁZARO CÁRDENAS PRACTICA 6 DISEÑO, SIMULACION Y PRUEBA DE UN MULTIPLEXOR DE 4 A 1 (IF ELSE). OBJETIVO El objetivo de esta práctica es implementar, sintetizar, depurar y simular, un MULTIPLEXOR de 4 a 1 (if-else), en VHDL.
  • 36. Practica 6 ITLAC pág. 28 MATERIAL Y EQUIPO Para elaborar una práctica es necesario contar con ciertos elementos ya que son nuestras herramientas de trabajo. Dicho esto, aquí están los que utilizaremos en este caso.  Tarjeta FPGA Basys 2.  Computadora Portátil.  Software Ise Design Suite 14.7.  Cable De Alimentación USB.
  • 37. Practica 6 ITLAC pág. 29 DESARROLLO se desplegara la siguiente ventana en la cual ya se intruse el codigo del programa en este caso sera el codigo para multiplexor de 4 a 1(if-else) los que se encuentran en color verde son los comentarios se pueden poner comentarios en el programa agregando antes de lo que se desea escribir (--) doble guion sin parentesis y despues lo que se desea escribir, al inicio se puede escribir el nombre de la persona que esta haciendo el progrema en la parte que dice ingeniero en ingles, una vez escrito el codigo del programa del cual se desea crear se sintetizara el programa dandole clic el parte izquierda del programa en la cual nos mostrara si tiene error el programa en dado caso que tenga error marcara una “x” y en caso de que no haya ningun error mostrara una palomita como se muestra en la Figura 6.1. Figura 6.1. Escritura de código y sintetizacion.
  • 38. Practica 6 ITLAC pág. 30 Simulación en Isim Para simular el programa en “Isim” se seleccionara en la parte de arriba que dice “simulación” en el archivo que tiene el nombre del programa con “.vhd “una vez seleccionado el archivo en la parte de inferior muestra “Isim Simulator” se le da clic en el signo de más y despliega un menú en el cual se le dará clic a la última opción con el nombre de “Simulate Behavioral Model” mostrando una ventana en la cual se comprobara la tabla de verdad de un multiplexor de 4 a 1(if-else), en cada entrada darle clic derecho el cual despliega un menú seleccionando la opción “Force Constant..” la cual muestra una ventana en la que se elige si se quiere un cero 0 o un 1 en la opción que dice “Forcé to value” una vez colocado el dato se hace clic en el botón “OK” y por último se le da un salto y nos muestra en forma de grafica lo que tiene las dos entradas y las salidas como se muestra en la Figura 6.2. Figura 6.2. Comprobación de la tabla de verdad del multiplexor en Isim.
  • 39. Practica 7 ITLAC pág. 31 SEP ITNM INSTITUTO TECNOLÓGICO DE LÁZARO CÁRDENAS PRACTICA 7 DISEÑO, SIMULACION Y PRUEBA DE UN MULTIPLEXOR DE 4 A 1 (CASE). OBJETIVO El objetivo de esta práctica es implementar, sintetizar, depurar y simular, un MULTIPLEXOR de 4 a 1(case), en VHDL.
  • 40. Practica 7 ITLAC pág. 32 MATERIAL Y EQUIPO Para elaborar una práctica es necesario contar con ciertos elementos ya que son nuestras herramientas de trabajo. Dicho esto, aquí están los que utilizaremos en este caso.  Tarjeta FPGA Basys 2.  Computadora Portátil.  Software Ise Design Suite 14.7.  Cable De Alimentación USB.
  • 41. Practica 7 ITLAC pág. 33 DESARROLLO. Desplegara la siguiente ventana en la cual ya se intruse el codigo del programa en este caso sera el codigo para multiplexor de 4 a 1(case) los que se encuentran en color verde son los comentarios se pueden poner comentarios en el programa agregando antes de lo que se desea escribir (--) doble guion sin parentesis y despues lo que se desea escribir, al inicio se puede escribir el nombre de la persona que esta haciendo el progrema en la parte que dice ingeniero en ingles, una vez escrito el codigo del programa del cual se desea crear se sintetizara el programa dandole clic el parte izquierda del programa en la cual nos mostrara si tiene error el programa en dado caso que tenga error marcara una “x” y en caso de que no haya ningun error mostrara una palomita como se muestra en la Figura 7.1. Figura 7.1. Escritura de código y sintetizacion.
  • 42. Practica 7 ITLAC pág. 34 Simulación en Isim. Para simular el programa en “Isim” se seleccionara en la parte de arriba que dice “simulación” en el archivo que tiene el nombre del programa con “.vhd “una vez seleccionado el archivo en la parte de inferior muestra “Isim Simulator” se le da clic en el signo de más y despliega un menú en el cual se le dará clic a la última opción con el nombre de “Simulate Behavioral Model” mostrando una ventana en la cual se comprobara la tabla de verdad de un multiplexor de 4 a 1(case), en cada entrada darle clic derecho el cual despliega un menú seleccionando la opción “Force Constant..” la cual muestra una ventana en la que se elige si se quiere un cero 0 o un 1 en la opción que dice “Forcé to value” una vez colocado el dato se hace clic en el botón “OK” y por último se le da un salto y nos muestra en forma de grafica lo que tiene las dos entradas y las salidas como se muestra en la Figura 7.1. Figura 7.1. Comprobación de la tabla de verdad del multiplexor en Isim.
  • 43. Practica 8 ITLAC pág. 35 SEP ITNM INSTITUTO TECNOLÓGICO DE LÁZARO CÁRDENAS PRACTICA 8 DISEÑO, SIMULACION Y PRUEBA DE UN COMPARADOR DE DOS ENTRADAS TIPO VECTOR DE TRES BIT. OBJETIVO El objetivo de esta práctica es implementar, sintetizar, depurar y simular, un comparador de dos entradas tipo vector de tres bits en VHDL.
  • 44. Practica 8 ITLAC pág. 36 MATERIAL Y EQUIPO Para elaborar una práctica es necesario contar con ciertos elementos ya que son nuestras herramientas de trabajo. Dicho esto, aquí están los que utilizaremos en este caso.  Tarjeta FPGA Basys 2.  Computadora Portátil.  Software Ise Design Suite 14.7.  Cable De Alimentación USB.
  • 45. Practica 8 ITLAC pág. 37 DESARROLLO. Desplegara la siguiente ventana en la cual ya se intruse el codigo del programa en este caso sera el codigo para un comparador de dos entradas tipo vector de tres bit los que se encuentran en color verde son los comentarios se pueden poner comentarios en el programa agregando antes de lo que se desea escribir (--) doble guion sin parentesis y despues lo que se desea escribir, al inicio se puede escribir el nombre de la persona que esta haciendo el progrema en la parte que dice ingeniero en ingles, una vez escrito el codigo del programa del cual se desea crear se sintetizara el programa dandole clic el parte izquierda del programa en la cual nos mostrara si tiene error el programa en dado caso que tenga error marcara una “x” y en caso de que no haya ningun error mostrara una palomita como se muestra en la Figura 8.1. Figura 8.1. Escritura de código y sintetizacion.
  • 46. Practica 8 ITLAC pág. 38 Simulación en Isim. Para simular el programa en “Isim” se seleccionara en la parte de arriba que dice “simulación” en el archivo que tiene el nombre del programa con “.vhd “una vez seleccionado el archivo en la parte de inferior muestra “Isim Simulator” se le da clic en el signo de más y despliega un menú en el cual se le dará clic a la última opción con el nombre de “Simulate Behavioral Model” mostrando una ventana en la cual se comprobara la tabla de verdad de un comparador de dos entradas tipo vector de tres bit, en cada entrada darle clic derecho el cual despliega un menú seleccionando la opción “Force Constant..” la cual muestra una ventana en la que se elige si se quiere un cero 0 o un 1 en la opción que dice “Forcé to value” una vez colocado el dato se hace clic en el botón “OK” y por último se le da un salto y nos muestra en forma de grafica lo que tiene las dos entradas y las salidas como se muestra en la Figura 8.2. Figura 8.2. Comprobación de la tabla de verdad del comparador en Isim.
  • 47. Practica 9 ITLAC pág. 39 SEP ITNM INSTITUTO TECNOLÓGICO DE LÁZARO CÁRDENAS PRACTICA 9 DISEÑO, SIMULACION Y PRUEBA DE UN COMPARADOR DE DOS ENTRADAS TIPO VECTOR DE CUATRO BIT OBJETIVO El objetivo de esta práctica es implementar, sintetizar, depurar y simular, un comparador de dos entradas tipo vector de cuatro bits en VHDL.
  • 48. Practica 9 ITLAC pág. 40 MATERIAL Y EQUIPO Para elaborar una práctica es necesario contar con ciertos elementos ya que son nuestras herramientas de trabajo. Dicho esto, aquí están los que utilizaremos en este caso.  Tarjeta FPGA Basys 2.  Computadora Portátil.  Software Ise Design Suite 14.7.  Cable De Alimentación USB.
  • 49. Practica 9 ITLAC pág. 41 DESARROLLO. Desplegar la siguiente ventana en la cual ya se intruse el codigo del programa en este caso sera el codigo para un comparador de dos entradas tipo vector de cuatro bit los que se encuentran en color verde son los comentarios se pueden poner comentarios en el programa agregando antes de lo que se desea escribir (--) doble guion sin parentesis y despues lo que se desea escribir, al inicio se puede escribir el nombre de la persona que esta haciendo el progrema en la parte que dice ingeniero en ingles, una vez escrito el codigo del programa del cual se desea crear se sintetizara el programa dandole clic el parte izquierda del programa en la cual nos mostrara si tiene error el programa en dado caso que tenga error marcara una “x” y en caso de que no haya ningun error mostrara una palomita como se muestra en la Figura 11.9. Figura 11.9. Escritura de código y sintetizacion.
  • 50. Practica 9 ITLAC pág. 42 Simulación en Isim. Para simular el programa en “Isim” se seleccionara en la parte de arriba que dice “simulación” en el archivo que tiene el nombre del programa con “.vhd “una vez seleccionado el archivo en la parte de inferior muestra “Isim Simulator” se le da clic en el signo de más y despliega un menú en el cual se le dará clic a la última opción con el nombre de “Simulate Behavioral Model” mostrando una ventana en la cual se comprobara la tabla de verdad de un comparador de dos entradas tipo vector de cuatro bit, en cada entrada darle clic derecho el cual despliega un menú seleccionando la opción “Force Constant..” la cual muestra una ventana en la que se elige si se quiere un cero 0 o un 1 en la opción que dice “Forcé to value” una vez colocado el dato se hace clic en el botón “OK” y por último se le da un salto y nos muestra en forma de grafica lo que tiene las dos entradas y las salidas como se muestra en la Figura 11.14. Figura 11.14. Comprobación de la tabla de verdad del comparador en Isim.
  • 51. Practica 10 ITLAC pág. 43 SEP ITNM INSTITUTO TECNOLÓGICO DE LÁZARO CÁRDENAS PRACTICA 10 DISEÑO, SIMULACION Y PRUEBA DE UN DECODIFICADOR DE BCD A 7 SEGMENTOS. OBJETIVO El objetivo de esta práctica es implementar, sintetizar, depurar y simular, un decodificador de BCD a 7 segmentos en VHDL.
  • 52. Practica 10 ITLAC pág. 44 MATERIAL Y EQUIPO Para elaborar una práctica es necesario contar con ciertos elementos ya que son nuestras herramientas de trabajo. Dicho esto, aquí están los que utilizaremos en este caso.  Tarjeta FPGA Basys 2.  Computadora Portátil.  Software Ise Design Suite 14.7.  Cable De Alimentación USB.
  • 53. Practica 10 ITLAC pág. 45 DESARROLLO. Creación del programa. En esta práctica se llevara a cabo la creación de un circuito decodificador de BCD a 7 segmentos utilizando el lenguaje de programación VHDL, también se utilizaran los display de la tarjeta Spartan3E. Para llevar a cabo tal programa primero se definirán las entradas y salidas del programa tanto como el nombre como se muestra en la Figura 12.1 Figura 12.1 RTL del decodificador de BCD a 7 segmentos. Como se muestra en la Figura 12.1 se asignaran variables con el nombre de código y dato a las entradas donde código será una variable vector de 4 bits y dato una de 2 bits, en la cual código se utilizara como el código BCD y la variable dato como el selector del display que se desea utilizar como se muestra en la Tabla 12.1
  • 54. Practica 10 ITLAC pág. 46 DATO 1 DATO 0 Display a encender 0 0 Unidades 0 1 Decenas 1 0 Centenas 1 1 Millares Tabla 12.1 Tabla de verdad de la variable dato. En la Figura 12.1 se muestran también las entradas con sus respectivas salidas, la variable “dato” con su salida la variable “control” y la variable “código” con su salida la variable “salidas” en este programa se utilizara el más significativo del lado izquierdo que esquívale al punto decimal, recordando que el display enciende con 0. En la Figura 12.2 se muestran el código del programa usando el case process en este caso no fue uno sino dos case process. Figura 12.2 Case process de la variable “código”;
  • 55. Practica 10 ITLAC pág. 47 En la Figura 12.2 se muestra el case process de la variable “código” que da la apertura del programa y dando como clausura del programa se utilizara un case process para la variable “dato” como se muestra en la Figura 12.3. Figura 12.3 Case process de la variable “dato”. Simulación en Isim. En este caso son dos entradas con sus respectivas salidas todas las variables son vectores tipo bit, en la variable “salidas” el cero muestra cual número de está desplegando y en la variable “control” que display se está utilizando en este caso en display de las unidades está del lado izquierdo y en el lado derecho se encuentra el display de los millares como se muestra en la Figura 12.4.
  • 56. Practica 10 ITLAC pág. 48 Figura 12.4 Simulación en Isim.
  • 57. Practica 11 ITLAC pág. 49 SEP ITNM INSTITUTO TECNOLÓGICO DE LÁZARO CÁRDENAS PRACTICA 11 COMPARADOR DE NUMEROS MAYORES A 126 Y DESPLEGAR EL CARÁCTER “L” O “H” EN LOS DISPLAYS DE 7 SEGMENTOS. OBJETIVO El objetivo de esta práctica es implementar, sintetizar, depurar y simular, un comparador de números mayores a 126 y desplegar “L” o H” en los displays de 7 segmentos en VHDL.
  • 58. Practica 11 ITLAC pág. 50 MATERIAL Y EQUIPO Para elaborar una práctica es necesario contar con ciertos elementos ya que son nuestras herramientas de trabajo. Dicho esto, aquí están los que utilizaremos en este caso.  Tarjeta FPGA Basys 2.  Computadora Portátil.  Software Ise Design Suite 14.7.  Cable De Alimentación USB. DESARROLLO.
  • 59. Practica 11 ITLAC pág. 51 Creación del programa. En esta práctica se llevará a cabo la creación de un circuito decodificador de BCD a 7 segmentos utilizando el lenguaje de programación VHDL, también se utilizarán los display de la tarjeta Spartan3E. Para llevar a cabo tal programa primero se definirán las entradas y salidas del programa tanto como el nombre como se muestra en la Figura 11.1. Figura 11.1. RTL del decodificador de BCD a 7 segmentos. Como se muestra en la Figura 11.1, se asignará la variable con el nombre sw en la entrada donde sw será una variable vector de 8 bits. La variable vector seg de 8 bits que serán los segmentos del display y la variable trn de 4 bits que controlarán a los transistores de la FPGA. En la Figura 11.2 se muestra el código del programa usando el case process para la variable “sw” en el cual se escribe la sentencia If para preguntar si los datos ingresados en la variable sw
  • 60. Practica 11 ITLAC pág. 52 son mayores al número 126, de ser así, se desplegará la letra “H” en los display de la tarjeta. De lo contrario, si el número es menor a 126 se desplegará la letra “L”. Figura 11.2. Código del programa usando un process. Simulación en Isim. En este caso es una entrada con sus respectivas salidas. La variable “sw” será forzada con el valor 126 en el primer paso de simulación y con el valor 127 en el segundo paso. Como se puede notar en la Figura 11.3, cuando la variable “sw” vale 126, en la salida seg sale el dato "11100011" que equivale a mostrar la letra “L” en los display. En el segundo paso de
  • 61. Practica 11 ITLAC pág. 53 sumulación cuando la variable “sw” tiene el valor 127, en la salida “seg” da el valor "10010001" que equivale a mistrar la letra “H” en los display de la tarjeta. Demostrando así el objetivo de la práctica. Figura 11.3. Simulación en Isim del programa 11. Creación del User contraints file. Para este programa se usarán los 8 switches de la FPGA para ingresar valores a la variable “sw”. En la Figura 11.4 se muestra la variable vector sw que es asignada a los 8 switches de la tarjeta. La variable vector trn se asigna a los transistores de control de los displays y para finalizar la variable vector seg es asiganda a los segmentos de los display.
  • 62. Practica 11 ITLAC pág. 54 Figura 11.4. User Contraints File del programa 11.
  • 63. Practica 12 ITLAC pág. 55 SEP ITNM INSTITUTO TECNOLÓGICO DE LÁZARO CÁRDENAS PRACTICA 12 DISEÑO, SIMULACION Y PRUEBA DE UN MULTIPLEXOR DE 2 ENTRADAS USANDO PROGRAMACION ESTRUCTURADA OBJETIVO El objetivo de esta práctica es implementar, sintetizar, depurar y simular, un multiplexor de 4 a 1 entradas utilizando programación estructurada en VHDL.
  • 64. Practica 12 ITLAC pág. 56 MATERIAL Y EQUIPO Para elaborar una práctica es necesario contar con ciertos elementos ya que son nuestras herramientas de trabajo. Dicho esto, aquí están los que utilizaremos en este caso.  Tarjeta FPGA Basys 2.  Computadora Portátil.  Software Ise Design Suite 14.7.  Cable De Alimentación USB.
  • 65. Practica 12 ITLAC pág. 57 DESARROLLO. Creación del programa. En esta práctica se llevara a cabo la creación de un multiplexor de 4 a 1 entradas utilizando programación estructurada utilizando el lenguaje de programación VHDL. Para llevar a cabo tal programa primero se definirán las entradas y salidas del programa tanto como el nombre como se muestra en la Figura 12.1 Figura 12.1 RTL de un multiplexor de 4 a 1. En la Figura 12.1 se muestra el RTL de un multiplexor de 4 a 1 pero la pregunta que tiene de diferente la programación estructurada con la comportamental esa diferencia se muestra en la Figura 12.2 a continuación.
  • 66. Practica 12 ITLAC pág. 58 Figura 12.2 RTL con programación estructurada. En la Figura 12.2 se muestra la unión de 3 multiplexores de 2 a 1 usando programación estructura para crear programas de mayor magnitud ya que utilizando la comportamental con un programa más grande sería más difícil que con la estructurada para este caso se utilizara un multiplexor de 2 a 1 que es la practica 4 solo se unirá 3 veces para crear un multiplexor de 4 a 1 en la Figura 12.3 a la Figura 12.5 se muestra el código del programa. Figura 12.3 Código de un mux4a1 parte 1.
  • 67. Practica 12 ITLAC pág. 59 Figura 12.4 Código de un mux4a1 parte 2. Figura 12.5 Código de un mux4a1 parte 3. En las Figuras 12.3 – 12.5 se muestra el código de programación para una arquitectura estructural con la cual se realiza un multiplexor de 4 a 1 algo que no debe olvidarse que debe de tener un programa de un multiplexor de 2 a 1 ya hecho para poder realizar esto y que debe llevar el nombre de tu programa en la parte que dice “component” y también en las “Z0 - Z1”
  • 68. Practica 12 ITLAC pág. 60 Simulación Isim. A continuación, se realizará la simulación en Isim para un multiplexor de 4 a 1 creado con programación estructurada que el multiplexor de 4 a 1 comportamental y estructurada no tiene diferencia su simulación ya que ambos tienen la misma función y las mismas salidas en la Figura 12.6 se muestra la simulación de un multiplexor de 4 a 1 utilizando programación estructurada. Figura 12.6 Simulación en Isim.
  • 69. Practica 13 ITLAC pág. 61 SEP ITNM INSTITUTO TECNOLÓGICO DE LÁZARO CÁRDENAS PRACTICA 13 DISEÑO, SIMULACION Y PRUEBA DE UN CONTADOR ASCENDENTE. OBJETIVO El objetivo de esta práctica es implementar, sintetizar, depurar y simular, de un contador ascendente utilizando programación comportamental en VHDL.
  • 70. Practica 13 ITLAC pág. 62 MATERIAL Y EQUIPO Para elaborar una práctica es necesario contar con ciertos elementos ya que son nuestras herramientas de trabajo. Dicho esto, aquí están los que utilizaremos en este caso.  Tarjeta FPGA Basys 2.  Computadora Portátil.  Software Ise Design Suite 14.7.  Cable De Alimentación USB.
  • 71. Practica 13 ITLAC pág. 63 DESARROLLO. Creación del programa. En esta práctica se llevará a cabo la creación de un contador ascendente utilizando programación comportamental utilizando el lenguaje de programación VHDL. Para llevar a cabo tal programa primero se definirán las entradas y salidas del programa tanto como el nombre como se muestra en la Figura 13.1 Figura 13.1 RTL de un contador ascendente. En la Figura 13.1 se muestra el RTL de un contador ascendente diferente con programación comportamental en la siguiente figura se muestra más a detalle la estructura de un contador ascendente Figura 13.2 a continuación.
  • 72. Practica 13 ITLAC pág. 64 Figura 13.2 RTL de un contador ascendente. En la Figura 13.2 se muestra la estructura interna de un contador ascendente el cual tiene el propósito de contar de 0 a 255 de forma ascendente por el uso por que en la parte de inferior de la Figura 13.2 se muestra un contador, en la Figura 13.3 a la Figura 13.4 se muestra el código del contador ascendente. Figura 13.3 Código de un contador ascendente parte 1.
  • 73. Practica 13 ITLAC pág. 65 Figura 13.4 Código de un contador ascendente parte 2. En la Figura 13.5 se muestra la utilización de una nueva entidad no utilizada en las practicas anteriores esta entidad será usada con el propósito de integrar un complemento más al programa que con anterioridad nunca se había utilizado en las practicas posteriores. Simulación Isim. A continuación, se realizará la simulación en Isim para un divisor de frecuencia creado con programación comportamental que la comportamental y estructurada no tiene diferencia su simulación ya que ambos tienen la misma función y las mismas salidas en la Figura 13.6 se muestra la simulación de una función booleana utilizando programación estructurada.
  • 74. Practica 13 ITLAC pág. 66 Figura 13.6 Simulación en Isim. Creación del “. bit”. La creación de punto bit no es muy diferente de los demás programas en este caso se utilizarán los switch slader del 0 al 1 como entradas y como salidas el LED 0 para la salida pulso. Para las entradas el SW0 se le asignara ldCnt, para el SW1 se le asignara ce. Como se muestra en la Figura 13.7 Figura 13.7 Código del “. bit” de un contador ascendente.
  • 75. Practica 14 ITLAC pág. 67 SEP ITNM INSTITUTO TECNOLÓGICO DE LÁZARO CÁRDENAS PRACTICA 14 DISEÑO, SIMULACION Y PRUEBA DE UN DIVISOR DE FRECUENCIA. OBJETIVO El objetivo de esta práctica es implementar, sintetizar, depurar y simular, de un divisor de frecuencia utilizando programación comportamental en VHDL.
  • 76. Practica 14 ITLAC pág. 68 MATERIAL Y EQUIPO Para elaborar una práctica es necesario contar con ciertos elementos ya que son nuestras herramientas de trabajo. Dicho esto, aquí están los que utilizaremos en este caso.  Tarjeta FPGA Basys 2.  Computadora Portátil.  Software Ise Design Suite 14.7.  Cable De Alimentación USB.
  • 77. Practica 14 ITLAC pág. 69 DESARROLLO. Creación del programa. En esta práctica se llevará a cabo la creación de divisor de frecuencia utilizando programación comportamental utilizando el lenguaje de programación VHDL. Para llevar a cabo tal programa primero se definirán las entradas y salidas del programa tanto como el nombre como se muestra en la Figura 14.1 Figura 14.1 RTL de un divisor de frecuencia. En la Figura 14.1 se muestra el RTL de un divisor de frecuencia diferente con programación comportamental en la siguiente figura se muestra más a detalle la estructura de un divisor de frecuencia Figura 14.2 a continuación.
  • 78. Practica 14 ITLAC pág. 70 Figura 14.2 RTL de un divisor de frecuencia. En la Figura 14.2 se muestra la estructura interna de un divisor de frecuencia el cual tiene el propósito de dividir la frecuencia la estructura del divisor de frecuencia es algo compleja por el uso por que en la parte de inferior de la Figura 19.2 se muestra un contador, en la Figura 14.3 a la Figura 14.4 se muestra el código del divisor de frecuencia.
  • 79. Practica 14 ITLAC pág. 71 Figura 14.3 Código de un divisor de frecuencia parte 1. Figura 14.4 Código de un divisor de frecuencia parte 2.
  • 80. Practica 14 ITLAC pág. 72 En la Figura 14.5 se muestra la utilización de una nueva entidad no utilizada en las practicas anteriores esta entidad será usada con el propósito de integrar un complemento más al programa que con anterioridad nunca se había utilizado en las practicas posteriores. Figura 14.5 Entidad nueva. Simulación Isim. A continuación, se realizará la simulación en Isim para un divisor de frecuencia creado con programación comportamental que la comportamental y estructurada no tiene diferencia su simulación ya que ambos tienen la misma función y las mismas salidas en la Figura 14.6 se muestra la simulación de una función booleana utilizando programación estructurada.
  • 81. Practica 14 ITLAC pág. 73 Figura 14.6 Simulación en Isim. Creación del “.bit”. La creación de punto bit no es muy diferente de los demás programas en este caso se utilizarán los switch slader del 0 al 1 como entradas y como salidas el LED 0 para la salida pulso. Para las entradas el SW0 se le asignara ldCnt, para el SW1 se le asignara ce. Como se muestra en la Figura 14.7 Figura 14.7 Código del “.bit” de un divisor de frecuencia.
  • 82. Practica 15 ITLAC pág. 74 SEP ITNM INSTITUTO TECNOLÓGICO DE LÁZARO CÁRDENAS PRACTICA 15 DISEÑO, SIMULACION Y PRUEBA DE UN CONTADOR DE 0 A 255. OBJETIVO El objetivo de esta práctica es implementar, sintetizar, depurar y simular, de un contador de 0 a 255 utilizando programación estructurada en VHDL.
  • 83. Practica 15 ITLAC pág. 75 MATERIAL Y EQUIPO Para elaborar una práctica es necesario contar con ciertos elementos ya que son nuestras herramientas de trabajo. Dicho esto, aquí están los que utilizaremos en este caso.  Tarjeta FPGA Basys 2.  Computadora Portátil.  Software Ise Design Suite 14.7.  Cable De Alimentación USB.
  • 84. Practica 15 ITLAC pág. 76 DESARROLLO. Creación del programa. En esta práctica se llevara a cabo la creación de un contador de 0 a 255 utilizando programación estructurada utilizando el lenguaje de programación VHDL. Para llevar a cabo tal programa primero se definirán las entradas y salidas del programa tanto como el nombre como se muestra en la Figura 15.1 Figura 15.1 RTL de un contador de 0 a 255. En la Figura 15.1 se muestra el RTL de un contador de 0 a 255 pero la pregunta que tiene de diferente la programación estructurada con la comportamental esa diferencia se muestra en la Figura 15.2 a continuación.
  • 85. Practica 15 ITLAC pág. 77 Figura 15.2 RTL con programación estructurada. En la Figura 15.2 se muestra la utilización de la programación estructurada utilizando las practicas que son el divisor de frecuencia y un contador de 0 a 255 tales prácticas para dar creación a un contador de 0 a 255 en la Figura 20.3 – 20.4 se muestra el código de programación estructurada de un contador de 0 a 255.
  • 86. Practica 15 ITLAC pág. 78 Figura 15.3 Código de un contador de 0 a 255 parte 1. Figura 15.4 Código de un contador de 0 a 255 parte 2. En las Figuras 15.3 – 15.4 se muestra la estructura de la programación estructurada de un contador de 0 a 255 y la pregunta que muchos se hacen es ¿Por qué utilizar programación estructurada para un contador de 0 a 255? Y la respuesta es porque al utilizar el pulso del reloj que proporciona la tarjeta es muy rápido y no se logra apreciar el conteo de 0 a 255 por los tanto se tiene que utilizar un divisor de
  • 87. Practica 15 ITLAC pág. 79 frecuencia junto con un contador de 0 a 255 y la combinación de estos dos programas da nacimiento a un contador de 0 a 255 en el cual logre apreciar el conteo de 0 a 255. una vez terminado dicho proceso se reseteará el conteo comenzando de nuevo la cuenta lleva el constante ciclo de conteo mientras la variable “ce” tenga un ‘1’ si no lo llegase a tener el contador estará en modo de stand by y hasta que tenga un ‘1’ la variable “ce” seguirá contando en donde se quedó, este contador también incluye un switch de reset para resetear el conteo en número que se encuentre contando se puede resetear en cualquier momento. En la Figura 15.5 se muestra el código del contador de 0 a 255 con programación comportamental. Figura 15.5 contador con programación comportamental
  • 88. Practica 15 ITLAC pág. 80 En la Figura 15.5 se muestra uno de los programas que se utilizara para la creación del contador de 0 a 255 con programación estructurada este programa tiene un defecto la frecuencia del pulso del reloj es muy rápida. Simulación Isim. A continuación, se realizará la simulación en Isim para un contador de 0 a 255 creado con programación estructurada que el contador de 0 a 255 comportamental y estructurada no tiene diferencia su simulación ya que ambos tienen la misma función y las mismas salidas en la Figura 15.6 se muestra la simulación de un contador de 0 a 255 utilizando programación estructurada. Figura 15.6 Simulación en Isim. Creación del “.bit”. La creación de punto bit no es muy diferente de los demás programas en este caso se utilizarán los switch slader del 0 al 1 como entradas, como pulso de reloj la variable “clk” y como salidas el LED 0 – LED 7 para la salida “sal”. Para las entradas el SW0 se le asignara “rst” y para el SW1 se le asignara “ce”. Como se muestra en la Figura 15.7
  • 89. Practica 15 ITLAC pág. 81 Figura 15.7 Código del “.bit” de un contador de 0 a 255.
  • 90. Practica 16 ITLAC pág. 82 SEP ITNM INSTITUTO TECNOLÓGICO DE LÁZARO CÁRDENAS PRACTICA 16 DISEÑO, SIMULACION Y PRUEBA DE UN SUMADOR COMPLETO PROGRAMACION ESTRUCTURADA OBJETIVO El objetivo de esta práctica es implementar, sintetizar, depurar y simular, de un sumador completo utilizando programación estructurada en VHDL.
  • 91. Practica 16 ITLAC pág. 83 MATERIAL Y EQUIPO Para elaborar una práctica es necesario contar con ciertos elementos ya que son nuestras herramientas de trabajo. Dicho esto, aquí están los que utilizaremos en este caso.  Tarjeta FPGA Basys 2.  Computadora Portátil.  Software Ise Design Suite 14.7.  Cable De Alimentación USB.
  • 92. Practica 16 ITLAC pág. 84 DESARROLLO. Creación del programa. En esta práctica se llevara a cabo la creación de un sumador completo utilizando programación estructurada utilizando el lenguaje de programación VHDL. Para llevar a cabo tal programa primero se definirán las entradas y salidas del programa tanto como el nombre como se muestra en la Figura 16.1 Figura 16.1 RTL de un sumador completo. En la Figura 15.1 se muestra el RTL de un sumador completo pero la pregunta que tiene de diferente la programación estructurada con la comportamental esa diferencia se muestra en la Figura 16.2 a continuación.
  • 93. Practica 16 ITLAC pág. 85 Figura 16.2 RTL con programación estructurada. En la Figura 16.2 se muestra la utilización de la programación estructurada utilizando las practicas 1,2,3 que son la compuerta AND de dos entradas, la compuerta XOR de dos entradas y la compuerta OR de tres entradas uniendo tales prácticas para dar creación a un sumador completo en la Figura 16.3 – 16.6 se muestra el código de programación estructurada de un sumador completo. Figura 16.3 Código de un sumador completo parte 1.
  • 94. Practica 16 ITLAC pág. 86 Figura 16.4 Código de un sumador completo parte 2. Figura 16.5 Código de un sumador completo parte 3. Figura 16.6 Código de un sumador completo parte 4.
  • 95. Practica 16 ITLAC pág. 87 En las Figuras 16.3 – 16.6 se muestra el código de programación para una arquitectura estructural con la cual se realiza un sumador completo algo que no debe olvidarse que debe de tener las prácticas 1 al 3 ya hecho para poder realizar esto y que debe llevar el nombre de tu programa en la parte que dice “component” y también en las “M0 - M1” Simulación Isim. En la simulación se probará la tabla de verdad de un sumador completo como se muestra en la Tabla 16.1 como se muestra a continuación. A B Cin S Cout 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1 Tabla 16.1 Tabla de un sumador completo A continuación se realizara la simulación en Isim para un sumador completo creado con programación estructurada que el sumador completo comportamental y estructurada no tiene diferencia su simulación ya que ambos tienen la misma función y las mismas salidas en la Figura 16.7 se muestra la simulación de un sumador completo utilizando programación estructurada.
  • 96. Practica 16 ITLAC pág. 88 Figura 16.7 Simulación en Isim. Creación del “.bit”. La creación de punto bit no es muy diferente de los demás programas en este caso se utilizaran los switch slader del 0 al 3 como entradas y como salidas el LED 0 para la salida S y el LED 1 para la salida Cout. Para las entradas el SW0 se le asignara A, para el SW1 se le asignara B y para el SW3 se le asignara el Cin. Como se muestra en la Figura 16.8 Figura 16.8 Código del “.bit” de un sumador completo.
  • 97. Practica 17 ITLAC pág. 89 SEP ITNM INSTITUTO TECNOLÓGICO DE LÁZARO CÁRDENAS PRACTICA 17 DISEÑO, SIMULACION Y PRUEBA DE UNA MAQUINA DE ESTADOS MOORE OBJETIVO El objetivo de esta práctica es implementar, sintetizar, depurar y simular, de una máquina de estados Moore utilizando programación comportamental en VHDL.
  • 98. Practica 17 ITLAC pág. 90 MATERIAL Y EQUIPO Para elaborar una práctica es necesario contar con ciertos elementos ya que son nuestras herramientas de trabajo. Dicho esto, aquí están los que utilizaremos en este caso.  Tarjeta FPGA Basys 2.  Computadora Portátil.  Software Ise Design Suite 14.7.  Cable De Alimentación USB.
  • 99. Practica 17 ITLAC pág. 91 DESARROLLO. Creación del programa. En esta práctica se llevará a cabo la creación de una máquina de estados Moore utilizando programación comportamental utilizando el lenguaje de programación VHDL. Para llevar a cabo tal programa primero se definirán las entradas y salidas del programa tanto como el nombre como se muestra en la Figura 17.1 Figura 17.1 RTL de una máquina de estados Moore. En la Figura 17.1 se muestra el RTL de una máquina de estados Moore diferente con programación comportamental en la siguiente figura se muestra más a detalle la estructura de un contador ascendente Figura 17.2 a continuación.
  • 100. Practica 17 ITLAC pág. 92 Figura 17.2 RTL de una máquina de estados Moore. En la Figura 17.2 se muestra la estructura interna de una máquina de estados Moore el cual tiene el propósito de tener un numero de estados eso lo define cada persona a su gusto en el caso que ocupe más estados pero en esta práctica solo son 3 estados A,B,C el estado A se le asigna Home o común mente el punto inicial de la máquina de estados, el estado B será otro punto de la máquina de estado y C es el estado en donde Z tomara el valor de 1 en la Figuras 17.3 - 17.5 se muestra el código de una máquina de estados Moore en VHDL. Figura 17.3 Código de una máquina de estados parte 1.
  • 101. Practica 17 ITLAC pág. 93 Figura 17.4 Código de una máquina de estados parte 2. Figura 17.5 Código de una máquina de estados parte 3. En las Figuras 17.3 - 17.5 se muestra el código de programa en leguaje VHDL para una máquina de estados Moore. Las máquinas de estados son usadas en casos comunes como un ascensor ese es un ejemplo el cual está conformada por tres estados subiendo, bajando y home y el programa de esta ocasión es muy parecido a este caso.
  • 102. Practica 17 ITLAC pág. 94 Simulación Isim. A continuación se muestra la simulación de una máquina de estados Moore en lenguaje de programación VHD para este caso la máquina de estados partirá de un estado base o home como se quiera nombre este estado que en este caso será A con una Z igual a 0 cuando en W tenga un 0 permanecerá en el estado A y Z será 0, en el caso de que W sea 1 cambiara del estado A al estado B y Z será igual a 0. Cuando W sea un 0 cambiara del estado B al estado A y Z será 0 pero si W es 1 cambiara del estado B al estado C y Z tendrá un 1, en el caso de que W sea 0 permanecerá en el estado C y Z será 1 pero si W es 1 cambiara del estado C al estado A y Z será 0. Cuando se dé un reset (reinicio) independiente de en qué estado se encuentre se regresará al estado A y Z será 0 n la Tabla 17.1 se muestra la tabla de verdad de la máquina de estados de esta práctica. ESTADO ACTUAL ESTADO PRÓXIMO SALIDA Z W =0 W= 1 A A B 0 B A C 0 C C A 1 Tabal 17.1 Tabla de verdad para FSM. Con la Tabla 17.1 se comprobara la máquina de estado para apreciar los cambios y como se simula una máquina de estado Moore la simulacion de este programa no es muy diferente con los demas programas solo por que es una máquina de estados Moore no significa que sea dificil solo tienes que asignarle un valor al pulso de reloj clk, forzar constante en rst al inicio ponerlo en 1 y despues quitarlo y ponerle 0 y intercalar W poniendo un 0 o un 1 y Z solo sera 1 en el estado C y la tabla de verdad te guiara durante la simulacion en la Figura 17.6 se muestra la simulacion.
  • 103. Practica 17 ITLAC pág. 95 Figura 17.6 Simulación en Isim.
  • 104. Practica 18 ITLAC pág. 96 SEP ITNM INSTITUTO TECNOLÓGICO DE LÁZARO CÁRDENAS PRACTICA 18 DISEÑO, SIMULACION Y PRUEBA DE UN CONTADOR DE 0 A 255. OBJETIVO El objetivo de esta práctica es implementar, sintetizar, depurar y simular, de un contador de 0 a 255 utilizando programación estructurada en VHDL.
  • 105. Practica 18 ITLAC pág. 97 MATERIAL Y EQUIPO Para elaborar una práctica es necesario contar con ciertos elementos ya que son nuestras herramientas de trabajo. Dicho esto, aquí están los que utilizaremos en este caso.  Tarjeta FPGA Basys 2.  Computadora Portátil.  Software Ise Design Suite 14.7.  Cable De Alimentación USB.
  • 106. Practica 18 ITLAC pág. 98 DESARROLLO. Creación del programa. En esta práctica se llevará a cabo la creación de un contador de 0 a 255 utilizando programación estructurada utilizando el lenguaje de programación VHDL. Para llevar a cabo tal programa primero se definirán las entradas y salidas del programa tanto como el nombre como se muestra en la Figura 18.1 Figura 18.1 RTL de un contador. En la Figura 18.1 se muestra el RTL de un contador de 0 a 255 con programación estructural en la siguiente figura se muestra más a detalle la estructura de un termómetro Figura 18.2 a continuación.
  • 107. Practica 18 ITLAC pág. 99 Figura 18.2 RTL de contador de 0 a 255. En la Figura 18.2 se muestra la estructura interna de un contador de 0 a 255 utilizando programación estructurada el cual cuenta de 0 a 255 desplegando en los display de 7 segmentos con el SW1 se resetea el conteo, SW2 es switch de CE el cual sirve para habilitar o deshabilitar el conteo. Para la creación de este programa se utilizarán los siguientes programas que se muestran a continuación:  ROM  Divisor de frecuencia  Contador  Un selector de segmentos  Codificador  Memoria RAM 2 X 4  Segmentos  Salida pulso
  • 108. Practica 18 ITLAC pág. 100 ---------------------------------------------------------------------------------- -- Company: INSTITUTO TECNOLOGICO DE LAZARO CARDENAS -- Engineer: HECTOR ARNULFO BLANCO NAMBO ---------------------------------------------------------------------------------- library IEEE; use IEEE.STD_LOGIC_1164.ALL; entity CONTADOR_255 is Port ( clk, ceg, rest : in STD_LOGIC; segq : out STD_LOGIC_VECTOR (3 downto 0); seg : out STD_LOGIC_VECTOR (6 downto 0)); end CONTADOR_255; architecture Behavioral of CONTADOR_255 is ----------------------------------------------1 component Divisor_de_frecuencia generic (n: integer range 1 to 50000000:=25000000); --tiempo Port ( clk, ce, ldCnt : in STD_LOGIC; pulso : out STD_LOGIC); end component; ----------------------------------------------2 component Contador generic (n:integer range 1 to 10 := 2; inferior : integer range 0 to 100:= 0; superior : integer range 1 to 100:= 3; inicial : integer range 0 to 100:= 0); Port ( clk, ce, rst, up_dn : in STD_LOGIC; qcont : out STD_LOGIC_VECTOR (n-1 downto 0)); end component; ----------------------------------------------3 component Salida_pulso Port ( ce : in STD_LOGIC; pulso2 : out STD_LOGIC); end component; ----------------------------------------------4 component Memoria_Ram is generic(n: integer range 2 to 16 := 4; ---numero de bits m: integer range 2 to 10 := 2); --lineas de direccion
  • 109. Practica 18 ITLAC pág. 101 Port ( clk, we : in STD_LOGIC; din : in STD_LOGIC_VECTOR (n-1 downto 0); address : in STD_LOGIC_VECTOR (m-1 downto 0); dout : out STD_LOGIC_VECTOR (n-1 downto 0)); end component; ----------------------------------------------5 component Qseg Port ( Dato : in STD_LOGIC_VECTOR (1 downto 0); qseg : out STD_LOGIC_VECTOR (3 downto 0)); end component; ----------------------------------------------6 component Segmentos Port (Dato: in STD_LOGIC_VECTOR (3 downto 0); Segmentos: out STD_LOGIC_VECTOR (6 downto 0)); end component; ----------------------------------------------7 aqui es donde se determinan los numeros component ROM_255 Port (clk: in STD_LOGIC; address: in STD_LOGIC_VECTOR (7 downto 0); dato: out STD_LOGIC_VECTOR (11 downto 0)); end component; ----------------------------------------------8 component Codificador Port (Address: in STD_LOGIC_VECTOR (3 downto 0); Inseg: in STD_LOGIC_VECTOR (11 downto 0); Scod: out STD_LOGIC_VECTOR (3 downto 0)); end component; ----------------------------------------------9 component REGULAF generic (n: integer range 1 to 50000000: = 25000000); Port (clk, ce, rst: in STD_LOGIC; pulso: out STD_LOGIC); end component; ----------------------------------------------10 component GENDATO is Port (clk, ce, rst: in STD_LOGIC; sal: out STD_LOGIC_VECTOR (7 downto 0)); end component;
  • 110. Practica 18 ITLAC pág. 102 --------------------DECLARACION DE VARIABLES-------------------------- signal DATO1: std_logic_vector (7 downto 0); signal pulso,pulso_aux,pulsox: STD_LOGIC; signal salida_cont: STD_LOGIC_VECTOR (1 downto 0); Signal salida_qimp, segq_aux, din_2: STD_LOGIC_VECTOR (3 downto 0); signal ROM_aux: STD_LOGIC_VECTOR (11 downto 0); ------------------------------INICIO--------------------------------- begin U0: Divisor_de_frecuencia generic map (100000) port map (clk => clk, ce => '1', ldCnt => '0', pulso => pulso); U1: CONTADOR generic map (2,0,3,0) port map (clk => clk, ce => pulso, rst => '0', up_dn => '0', qcont => salida_cont); U2: Salida_pulso port map (ce => pulso, pulso2 => pulso_aux); U3: MEMORIA_RAM generic map (4,2) port map (clk => clk, we => pulso_aux, din => din_2, address => salida_cont, dout => salida_qimp);
  • 111. Practica 18 ITLAC pág. 103 U4: Qseg port map (Dato => salida_cont, Qseg => segq_aux); segq <= segq_aux; U5: SEGMENTOS port map (Dato => salida_qimp, segmentos => seg); U6: REGULAF port map (clk => clk, rst => rest, ce => ceg, pulso => pulsox); U7: GENDATO port map (clk => clk, rst => rest, ce => pulsox, sal => DATO1); U8: ROM_255 port map (clk => clk, address => DATO1, dato => ROM_aux); U9: CODIFICADOR port map (address => segq_aux, Inseg => ROM_aux, Scod => din_2); end Behavioral;
  • 112. Practica 19 ITLAC pág. 104 SEP ITNM INSTITUTO TECNOLÓGICO DE LÁZARO CÁRDENAS PRACTICA 19 DISEÑO, SIMULACION Y PRUEBA DE UN TERMÓMETRO. OBJETIVO El objetivo de esta práctica es implementar, sintetizar, depurar y simular, de un termómetro utilizando programación estructurada en VHDL.
  • 113. Practica 19 ITLAC pág. 105 MATERIAL Y EQUIPO Para elaborar una práctica es necesario contar con ciertos elementos ya que son nuestras herramientas de trabajo. Dicho esto, aquí están los que utilizaremos en este caso.  Tarjeta FPGA Basys 2.  Computadora Portátil.  Software Ise Design Suite 14.7.  Cable De Alimentación USB.  2 Potenciómetro de 5KΩ.  LM35.  Multímetro.  Protoboard  Cables Jumper.
  • 114. Practica 19 ITLAC pág. 106 DESARROLLO. Creación del programa. En esta práctica se llevará a cabo la creación de un termómetro utilizando programación estructurada utilizando el lenguaje de programación VHDL. Para llevar a cabo tal programa primero se definirán las entradas y salidas del programa tanto como el nombre como se muestra en la Figura 19.1 Figura 19.1 RTL de un Termómetro.
  • 115. Practica 19 ITLAC pág. 107 En la Figura 23.1 se muestra el RTL de un termómetro con programación estructural en la siguiente figura se muestra más a detalle la estructura de un termómetro Figura 19.2 a continuación. Figura 19.2 RTL de un termómetro. En la Figura 19.2 se muestra la estructura interna de un termómetro utilizando con un transductor el circuito LM35 que tiene la función de convertir la temperatura en voltaje. La temperatura se mostrada en los 4 display de 7 segmentos en los cuales el display de los millares y centenas serán utilizados para desplegar la temperatura de 0 a 99, el de las decenas mostrara el signo de grados “ ° “ y el de las unidades mostrara una “C” de Celsius. Para la creación de este programa se utilizarán los siguientes programas que se muestran a continuación:
  • 116. Practica 19 ITLAC pág. 108  ROM LM35  Divisor de frecuencia  Contador  Un selector de segmentos  Codificador  Memoria RAM 2 X 4  Convertidor de ADC  Segmentos  Salida pulso Con esta lista de programas se crea el programa del termómetro a continuación se muestra el código para la creación del termómetro utilizando programación estructurada. ---------------------------------------------------------------------------------- -- Company: INSTITUTO TECNOLOGICO DE LAZARO CARDENAS -- Engineer: HECTOR ARNULFO BLANCO NAMBO ---------------------------------------------------------------------------------- library IEEE; use IEEE.STD_LOGIC_1164.ALL; -- DESCRIPCION DE LA ENTIDAD entity TERMOME is Port (CLK : in STD_LOGIC; LM35: IN STD_LOGIC; CS : OUT STD_LOGIC; SCLK : OUT STD_LOGIC; SEGQ : out STD_LOGIC_VECTOR (3 downto 0); SEG : out STD_LOGIC_VECTOR (6 downto 0)); end TERMOME; -- DESCRIPCION COMPORTAMENTAL architecture ESTRUCTURAL of TERMOME is
  • 117. Practica 19 ITLAC pág. 109 ----------------------------------------------------------------------------- COMPONENT ROM_LM35 Port ( CLK : in STD_LOGIC; address : in STD_LOGIC_VECTOR (11 downto 0); dato : out STD_LOGIC_VECTOR (7 downto 0)); END COMPONENT ; ----------------------------------------------------------------------------- COMPONENT CODIFICADOR Port ( ADDRESS : in STD_LOGIC_VECTOR (3 downto 0); INSEG : in STD_LOGIC_VECTOR (7 downto 0); SCOD : out STD_LOGIC_VECTOR (3 downto 0)); END COMPONENT; ----------------------------------------------------------------------------- COMPONENT DIVISOR_DE_FRECUENCIA is generic (n : integer range 1 to 50000000 := 1000000); Port ( CE, CLK, ldCnt : in STD_LOGIC; PULSO : out STD_LOGIC); end COMPONENT; ----------------------------------------------------------------------------- COMPONENT CONTADOR GENERIC(N : INTEGER RANGE 0 TO 10 := 2; INFERIOR : INTEGER RANGE 0 TO 100 := 0; SUPERIOR : INTEGER RANGE 1 TO 100 := 3; INICIAL : INTEGER RANGE 0 TO 100 := 0); Port ( CLK , CE , RST , UP_DN : in STD_LOGIC; QCONT : out STD_LOGIC_VECTOR (N-1 DOWNTO 0)); end COMPONENT; ----------------------------------------------------------------------------- COMPONENT QSEG Port ( DATO : in STD_LOGIC_VECTOR (1 downto 0); QSEG : out STD_LOGIC_VECTOR (3 downto 0)); end COMPONENT; ----------------------------------------------------------------------------- COMPONENT SALIDA_PULSO Port ( CE : in STD_LOGIC; PULSO2 : out STD_LOGIC); end COMPONENT; -----------------------------------------------------------------------------
  • 118. Practica 19 ITLAC pág. 110 COMPONENT MEMORIA_RAM GENERIC(N : INTEGER RANGE 2 TO 16 := 4; M : INTEGER RANGE 2 TO 10 := 2) Port ( clk,we : in STD_LOGIC; din : in STD_LOGIC_VECTOR (n-1 downto 0); address : in STD_LOGIC_VECTOR (m-1 downto 0); dout : out STD_LOGIC_VECTOR (n-1 downto 0)); end COMPONENT; ----------------------------------------------------------------------------- COMPONENT SEGMENTOS Port (DATO: in STD_LOGIC_VECTOR (3 downto 0); SEGMENTOS: out STD_LOGIC_VECTOR (6 downto 0)); end COMPONENT; ----------------------------------------------------------------------------- COMPONENT Convertidor_AD Port ( --General usage CLK : in std_logic; -- System Clock (50MHz) RST: in std_logic; --Pmod interface signals SDATA1 : in std_logic; SDATA2 : in std_logic; SCLK : out std_logic; CS : out std_logic; --User interface signals DATA1 : out std_logic_vector(11 downto 0); DATA2 : out std_logic_vector(11 downto 0); START : in std_logic; DONE : out std_logic ); end component; ----------------------------------------------------------------------------- SIGNAL W0 : STD_LOGIC_VECTOR (7 DOWNTO 0); SIGNAL W1 : STD_LOGIC; SIGNAL W2 : STD_LOGIC_VECTOR (1 DOWNTO 0); SIGNAL W3 : STD_LOGIC_VECTOR (3 DOWNTO 0); SIGNAL W4 : STD_LOGIC_VECTOR (3 DOWNTO 0); SIGNAL W5 : STD_LOGIC_VECTOR (3 DOWNTO 0); SIGNAL W6 : STD_LOGIC_VECTOR (6 DOWNTO 0);
  • 119. Practica 19 ITLAC pág. 111 SIGNAL W7 : STD_LOGIC; SIGNAL W8 : STD_LOGIC_VECTOR (11 DOWNTO 0); ----------------------------------------------------------------------------- begin U0 : ROM_LM35 PORT MAP (CLK =>CLK, DATO => W0, ADDRESS => W8); U1 : DIVISOR_DE_FRECUENCIA PORT MAP (CLK => CLK, PULSO => W1); U2 : CONTADOR PORT MAP (CE => W1, CLK => CLK, QCONT => W2, up_dn => '0'); U3 : QSEG PORT MAP (DATO => W2, QSEG => W3); U4: CODIFICADOR PORT MAP (ADDRESS => W3, INSEG => W0, SCOD => W4); U5 : MEMORIA_RAM PORT MAP (ADDRESS => W2, DIN => W4, CLK => CLK, WE => W7, DOUT => W5);
  • 120. Practica 19 ITLAC pág. 112 U6: SEGMENTOS PORT MAP (DATO => W5, SEGMENTOS => W6); U7: SALIDA_PULSO PORT MAP (CE => W1, PULSO2 => w7); U8: Convertidor_AD PORT MAP (DATA1 => W8, CLK => CLK, SDATA1 => LM35, CS => CS, SCLK => SCLK, RST => '0', SDATA2 => '0', START => '0'); SEGQ <= W3; SEG <= W6; end ESTRUCTURAL;
  • 121. CONCLUSIÓN Y BIBLIOGRAFIA ITLAC pág. 113 CONCLUSIÓN VHDL se muestra especialmente útil en las primeras etapas del diseño, a la hora de elegir arquitecturas, particiones del circuito, tipos de lógica, etc. y para la realización de simulaciones a nivel funcional. Aunque es de hacer notar que las descripciones apropiadas para simulación no siempre son aptas para la síntesis. También permite la documentación del proyecto a un nivel que es independiente de la tecnología e incluso del tipo de lógica, lo cual permite su re utilización en otros diseños. El trabajo trata de resaltar la importancia del método, que en proyectos pequeños no se aprecia, pero a medida que se incrementa la complejidad del diseño va adquiriendo más importancia. Permite al programador una lógica digital en un lenguaje de descripción de hardware utiliza fundamentos teóricos de sistemas digitales. La modificación en el diseño es flexible, es decir no necesitan un esfuerzo adicional notable con respecto a los desarrollos de hardware convencionales. FPGA son dispositivos lógicos de propósitos general programables por los usuarios.
  • 122. CONCLUSIÓN Y BIBLIOGRAFIA ITLAC pág. 114 BIBLIOGRAFÍA. 1. Tocci Ronald. Sistemas Digitales. Octava Edición, Prentice – Hall, México 2006. 2. Floyd Thomas L. Fundamentos De Sistemas Digitales. Novena Edición, Pearson, México 2006. 3. John F. Wakerly. Diseño Digital Principios y Prácticas. Tercera Edición, Pearson, México 2001. 4. Morris Mano, M. Diseño Digital, Tercera Edición. Pearson Educación, México 2003. 5. Fernando Pardo y José A. Boluda. VHDL: Lenguaje par síntesis, Tercera Edición. Alfaomega Grupo Editor, México, agosto 2011. 6. Peter J. Ashenden. VHDL 2008: Just the New Stuff. Morgan Kaufmann, 2007. 7. Peter J. Ashenden y Jim Lewis. The Designer’s Guide to VHDL. Morgan Kaufmann, 2008.
  • 123. CONCLUSIÓN Y BIBLIOGRAFIA ITLAC pág. 115 8. Douglas L. Perry. VHDL: Programming by Example. McGraw-Hill, 2002. 9. J.I. Artigas, L.A. Barragán, C. Orrite e I. Urriza. Electronica Digital: Aplicaciones y Problemas con VHDL. Thomson-Paraninfo, 2002. 10. Kevin Skahill. Digital Design: Principles and Practices. Prentice Hall, 2002.