Sei sulla pagina 1di 205

M.I BENJAMÍN O.

HERNÁNDEZ GARCIA
C.R.O.D.E CELAYA

Material Elaborado por: M.C Adolfo Rafael López Núñez

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 PRESENTACIÓN
 OBJETIVO DEL CURSO
 1.- INTRODUCCIÓN
 2.- TARJETA DE DESARROLLO NEXYS 2/BASYS 2
 3.- ORGANIZACIÓN DE VHDL
 4.- AMBIENTE DE TRABAJO XILINX ISE DESIGN
SUITE 12.1
 5.- DISEÑO LÓGICO COMBINACIONAL EN VHDL
 6.- DISEÑO LÓGICO SECUENCIAL EN VHDL
 7.- VHDL ESTRUCTURAL
 8.- SIMULACIÓN DE DISEÑOS
 9.- MÁQUINAS DE ESTADOS EN VHDL

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 El participante comprenderá y aplicará los
principios básicos del lenguaje VHDL
haciendo uso de una tarjeta de desarrollo
basado en un FPGA de manera adecuada.

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 OBJETIVO DE LA UNIDAD

El participante identificará las características


principales de los dispositivos lógicos
programables y del lenguaje VHDL mediante
la presentación de dichos temas de acuerdo
al plan de sesión.

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 El desarrollo del transistor de difusión planar,
construido durante 1947 y 1948, permitió en
1960 la fabricación del primer circuito
integrado monolítico. Este integra cientos de
transistores, resistencias, diodos y
capacitores, todos fabricados sobre una
pastilla de silicio.

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 En la actualidad el nivel de integración
alcanzado con el desarrollo de la
microelectrónica ha hecho posible desarrollar
sistemas completos dentro de un solo
circuito integrado SOC (System On Chip).

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
“Al Servicio del Sistema
Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 Los dispositivos PROM, PLA, PAL y GAL están
formados por arreglos o matrices que
pueden ser fijos o programables, mientras
que los CPLD y FPGA se encuentran
estructurados mediante bloques lógicos
configurables y celdas lógicas de alta
densidad, respectivamente.

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
1.1.1 Estructura interna de un PLD

 La arquitectura básica de un PLD está


formada por un arreglo de compuertas AND y
OR conectadas a las entradas y salidas del
dispositivo.

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
1.1.1 Estructura interna de un PLD

 a) Arreglo AND. Está


formado por varias
compuertas AND
interconectadas a través
de alambres, los cuales
cuentan con un fusible
en cada punto de
intersección

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
1.1.1 Estructura interna de un PLD

 b) Arreglo OR. Está


formado por un
conjunto de
compuertas OR
conectadas a un
arreglo
programable, el cual
contiene un fusible
en cada punto de
intersección.

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
“Al Servicio del Sistema
Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 La PROM no se utiliza como un dispositivo lógico, sino como
una memoria direccionable, debido a las limitaciones que
presenta con las compuertas AND fijas.

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 En esencia, el PLA se desarrolló para superar las limitaciones de
la memoria PROM. Este dispositivo se llama también FPLA
(arreglo lógico programable en campo), ya que es el usuario y
no el fabricante quien lo programa.

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 El PAL se desarrolló para superar algunas limitaciones del PLA,
como retardos provocados por la implementación de fusibles
adicionales, que resultan de la utilización de dos arreglos
programables y de la complejidad del circuito.

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 El Arreglo Lógico Genérico (GAL) es similar
al PAL, ya que se forma con arreglos AND
programable y OR fijo, con una salida
lógica programable. Las dos principales
diferencias entre los dispositivos GAL y PAL
radican en que el primero es
reprogramable y contiene configuraciones
de salida programables.

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 Los dispositivos GAL se pueden programar una y otra vez, ya
que usan la tecnología E2CMOS (Ellectrically Erasable CMOS:
CMOS borrable eléctricamente), en lugar de tecnología bipolar y
fusibles.

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 A diferencia de un PAL, el GAL está formado por celdas
programables, las cuales se pueden reprogramar las veces
que sea necesario.

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 Un circuito CPLD consiste en un arreglo de múltiples PLD
agrupados como bloques en un chip. Se califican como de alto
nivel de integración, ya que tienen una gran capacidad
equivalente a unos 50 PLD sencillos.

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 Los dispositivos FPGA se basan en lo que se
conoce como arreglos de compuertas, los
cuales consisten en la parte de la
arquitectura que contiene tres elementos
configurables: bloques lógicos configurables
(CLB), bloques de entrada y de salida (IOB) y
canales de comunicación.

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 A diferencia de los CPLD, la densidad de los
FPGA se establece en cantidades equivalentes
a cierto número de compuertas.

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 Cada FPGA contiene una matriz de bloques
lógicos idénticos, por lo general de forma
cuadrada, conectados por medio de líneas
metálicas que corren vertical y
horizontalmente entre cada bloque.

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
“Al Servicio del Sistema
Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 Los bloques lógicos (llamados también celdas
generadoras de funciones) están
configurados para procesar cualquier
aplicación lógica.

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 El diseño lógico se implementa mediante
bloques conocidos como generadores de
funciones o LUT (Look Up Table: tabla de
búsqueda), los cuales permiten almacenar la
lógica requerida, ya que cuentan con una
pequeña memoria interna, por lo general de
16 bits.

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 Cuando se aplica alguna combinación en las
entradas de la LUT, el circuito la traduce en
una dirección de memoria y envía fuera del
bloque el dato almacenado en esa dirección.

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
“Al Servicio del Sistema
Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 Se realiza una descripción del hardware
utilizando algún lenguaje de descripción de
hardware, como VHDL o Verilog Con esta
descripción se pueden realizar simulaciones
del circuito, para comprobar que lo diseñado
trabaja correctamente de lo contrario se
volverá a modificar la descripción (esquemas
ó programa) hasta que la simulación sea
satisfactoria.
 ¡NO ES UN LENGUAJE DE PROGRAMACIÓN!

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 En el caso del hardware hay que construir el
circuito. Y aquí es donde vienen las FPGA's
para hacerlo. A partir de la especificación
hardware y utilizando un compilador
especial, obtenemos un archivo binario,
llamado bitstream que contiene toda la
información necesaria para configurar la
FPGA.

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 El software de diseño programación y
simulación INTEGRATED SOFTWARE
ENVIROMENT (ISE) 12.1

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 VHDL es el Lenguaje de Descripción de
Hardware, que se desarrolló en la década de los
80s como un proyecto de investigación de
circuito integrado de gran velocidad el cual fue
consolidado por el Departamento Americano de
Defensa.
 Un equipo de ingenieros de tres compañías -
IBM, Texas Instruments e Intermetrics - fue
contratado por el Departamento de Defensa para
completar la especificación y aplicación de un
nuevo idioma basado en método de descripción
de diseños digitales ideado por ellos.

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 La primera versión públicamente disponible
de VHDL, versión 7.2, se liberó en 1985.En
1986, el Instituto de Ingenieros Eléctricos y
Electrónicos (IEEE) se presentó con una
propuesta para estandarizar el idioma que
hizo en 1987.

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 Poco después IEEE 1076-1987 fue adoptada,
las compañías de simuladores empezaron
reforzando VHDL con los nuevos tipos no
estandarizados y permitirles a sus clientes
simular los circuitos electrónicos complejos
con precisión.
 Las normas IEEE 1076-1987 e IEEE 1164
completan el estándar VHDL siendo el más
usado hoy.

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
Objetivo de la unidad

 El participante identificará las características


generales de la tarjeta de desarrollo Nexys 2
mediante la presentación de dicho tema de
acuerdo al plan de sesión.

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
“Al Servicio del Sistema
Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
“Al Servicio del Sistema
Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
“Al Servicio del Sistema
Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
“Al Servicio del Sistema
Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
Objetivo de la unidad
 El participante reconocerá la organización básica
de VHDL identificando las partes principales de
dicho lenguaje de acuerdo al plan de sesión.

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 La estructura general de un programa en
VHDL está formada por módulos o unidades
de diseño, cada uno de ellos compuesto por
un conjunto de declaraciones e instrucciones
que definen, describen, estructuran, analizan
y evalúan el comportamiento de un sistema
digital.

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
Existen cuatro tipos de unidades de diseño en
VHDL:

• Declaración de entidad (Entity declaration)


• Arquitectura (Architecture)
• Declaración del paquete (Package declaration)
• Cuerpo del paquete (Package body)

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
“Al Servicio del Sistema
Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
“Al Servicio del Sistema
Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 Un modo permite definir la dirección en la
cual el dato es transferido a través de un
puerto. Puede tener uno de cuatro valores: in
(entrada), out (salida), inout (entrada/salida)
y buffer.

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 Modo in. Se refiere a las señales de entrada a la
entidad. Este sólo es unidireccional y nada más
permite el flujo de datos hacia dentro de la
entidad.
 Modo out. Indica las señales de salida de la
entidad.

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 Modo inout. Permite declarar a un puerto de forma
bidireccional —es decir, de entrada/salida—; además
permite la retroalimentación de señales dentro o fuera de
la entidad.
 Modo buffer. Permite hacer retroalimentaciones internas
dentro de la entidad, pero a diferencia del modo inout, el
puerto declarado se comporta como una terminal de
salida.

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
Algunos de los tipos más utilizados en VHDL
son:
 Bit El cual tiene valores de 0 y 1 lógico.
 Boolean (Booleano) que define valores de
verdadero o falso en una expresión
 Bit_vector (Vectores de bits) que representa
un conjunto de bits para cada variable de
entrada o salida.

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 Integer (Entero) que representa un número
entero.
 • Std_logic Extensiones del tipo Bit, pueden
tomar 9 valores diferentes:
‘U’ --No inicializado
‘X’ --Forzando valor desconocido
‘0’ --Forzando un 0
‘1’ --Forzando un 1
‘Z’ --Alta impedancia
‘L’ -- 0 Debil
‘H’ -- 1 Debil
‘-’ -- Sin importancia (don’t care)
• Std_logic_vector Vectores del std_logic

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 La declaración de una entidad consiste en la
descripción de las entradas y salidas de un
circuito de diseño identificado como entity
(entidad); es decir, la declaración señala las
terminales o pines de entrada y salida con
que cuenta la entidad de diseño.

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
1 --Declaración de la entidad de un circuito
sumador
2 entity sumador is
3 port (A, B, Cin: in bit;
4 SUMA, Cout: out bit);
5 end sumador;

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 Los identificadores son simplemente los
nombres o etiquetas que se usan para referir
variables, constantes, señales, procesos, etc.

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 En la práctica se utilizan conjuntos (palabras)
de varios bits; los cuales se consideran un
grupo y no como bits individuales.

 vector_A = [A3, A2, A1, AO]


 vector_B = [B3, B2, B1, BO]
 vector_SUMA = [S3, S2, S1, SO]

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 En la siguiente figura se observa la entidad
del sumador incorporando vectores.

entity sumador is
port (A,B: in bit_vector (3 downto 0);
Cin: in bit;
Cout: out bit;
SUMA: out bit_vector(3 downto 0));
end sumador;

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 Una librería o biblioteca es un lugar al que se
tiene acceso para utilizar las unidades de
diseño predeterminadas por el fabricante de
la herramienta (paquete) y su función es
agilizar el diseño.

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 En VHDL se encuentran definidas dos
librerías llamadas ieee y work.

 Cuando en el diseño se utiliza algún paquete


es necesario llamar a la librería que lo
contiene. Para esto se utiliza la siguiente
declaración:

 library ieee;

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 Lo anterior permite el uso de todos los
componentes incluidos en la librería ieee. En
el caso de la librería de trabajo (work), su uso
no requiere la declaración library, dado que
la carpeta work siempre está presente al
desarrollar un diseño.

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 El paquete std_logic_1164 (estándar
lógico_1164) que se encuentra en la librería
ieee contiene todos los tipos de datos que
suelen emplearse en VHDL (std_logic_vector,
std_logic, entre otros).

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 El acceso a la información contenida en un
paquete es por medio de la sentencia use,
seguida del nombre de la librería y del
paquete, respectivamente:

 use nombre_librería.nombre_paquete.all;

 por ejemplo:

 use IEEE.STD_LOGIC_1164.ALL;

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 El paquete “use IEEE.STD_LOGIC_ARITH.ALL”;
define funciones y operadores aritméticos,
como igual (=), mayor que (>), menor que
(<), entre otros.

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 Se trata de una descripción funcional porque
expone la forma en que trabaja el sistema; es
decir, las descripciones consideran la relación
que hay entre las entradas y las salidas del
circuito, sin importar cómo esté organizado
en su interior.

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
“Al Servicio del Sistema
Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 Indica la forma en que los datos se pueden
transferir de una señal a otra sin necesidad
de declaraciones secuenciales (if-then-else).
 En este tipo de descripción se pueden utilizar
dos formatos: mediante instrucciones when
else (cuando-si no) o por medio de
ecuaciones booleanas.

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 a) Descripción por flujo de datos mediante
when-else.
 A continuación se muestra el código del
comparador de igualdad de dos bits descrito
antes. Nótese que la diferencia radica en la
eliminación del proceso y en la descripción
sin declaraciones secuenciales (if-then-else).

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
“Al Servicio del Sistema
Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 b) Descripción por flujo de datos mediante
ecuaciones booleanas

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
“Al Servicio del Sistema
Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
Objetivo de la unidad
 El participante identificará las características
principales del ambiente de trabajo del
software Xilinx ISE mediante una práctica
demostrativa de acuerdo al plan de sesión.

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 Arrancar el programa Xilinx Project
Navigator, que se encuentra en Inicio→Todos
los Programas→Xilinx ISE 12.1→Project
Navigator.

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
“Al Servicio del Sistema
Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 La ventana 1 llamada Sources muestra los diferentes
archivos fuente adicionados al proyecto.
 La ventana 2 llamada Processes muestra los diferentes
procesos que se pueden realizar al archivo fuente
seleccionado en la ventana 1.
“Al Servicio del Sistema
Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 La ventana 3 es el área de trabajo para mostrar y/o
editar los diferentes archivos fuente seleccionados
en la ventana 1.
 La ventana 4 llamada Transcript muestra mensajes
de estado de los diferentes procesos ejecutados
durante el diseño.
“Al Servicio del Sistema
Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 Para crear el nuevo proyecto procedemos de
la siguiente manera:
 A.- Seleccione File >New Project.

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
“Al Servicio del Sistema
Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 B.- Clic Next
para moverse a
la página de
propiedades del
dispositivo.

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
“Al Servicio del Sistema
Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 C. Haga clic en next
nuevamente, así se
muestra en pantalla
el resumen de las
propiedades del
nuevo proyecto
creado.

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
“Al Servicio del Sistema
Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 Haga clic en finish,
de esta manera el
proyecto esta
creado, En la
ventana sources se
observa el icono del
nuevo proyecto

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 A. Clic en New Source dentro de la ventana
New Project Wizard

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 B Seleccione un tipo de archivo fuente de la
lista dependiendo del dispositivo y diseño
especificado para su proyecto, para este caso
seleccione VHDL Module como tipo de
fuente.
 C. Digite en el campo file name el nombre
iniciando por una letra (A-Z, a-z) y debe
contener solamente caracteres alfanuméricos
(A-Z, a-z, 0-9) y underscores (_).

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 Location contiene
la ruta del
proyecto actual por
defecto.

 Verifique que la
casilla Add to
project este
seleccionada, para
adicionar el
archivo fuente al
proyecto

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 D. Clic en Next.
 E. Declare los puertos
para el diseño de la
compuerta con cuatro
entradas y una salida,
esta se define
seleccionando out,
llenando la
información como se
muestra en la figura
 F. Clic Next.

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 Se observa el
cuadro resumen
del nuevo archivo
fuente del
proyecto que se
está realizando.
Ahora damos clic
en Finish

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 El archivo
fuente contiene
el par entidad /
arquitectura
visualizados en
el espacio de
trabajo

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
“Al Servicio del Sistema
Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 En la parte de la arquitectura escriba lo
siguiente para generar una compuerta and:

 architecture Behavioral of New Source is
 C<= A and B;
 end Behavioral;

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 A continuación se
guarda el fichero
y se comprueba si
se ha tenido
algún error de
sintaxis haciendo
clic en Synthesize
- XST→Check
Syntax. Esto está
en la subventana
de Processes

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 Si se tiene algún error, se debe localizar y
corregir. Cuando no se tengan errores, se
puede hacer clic directamente en Synthesize
- XST para sintetizar.

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 Una vez que hayamos sintetizado tenemos
que indicar los pines de la FPGA que vamos a
utilizar y su correspondencia con los puertos
de la entidad, esto se logra por medio de un
archivo con terminación UCF (User
Constraints File)

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 Para lo cual se
selecciona
Project>New
Source y se
escoge
Implementation
Constraints
File, se le da un
nombre y se da
clic en Next.

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 Una vez realizado esto, se verifica en la
ventana sources que el archivo ha sido
creado y se da doble clic para abrir el archivo
que contiene la localización de los pines del
proyecto en cuestión.

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 En un principio, el archivo UCF aparecerá en
blanco, por lo que se debe escribir que
terminal del FPGA le corresponde a cada una
de las entradas y salidas del proyecto en el
que se esté trabajando.

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 Ahora hacemos doble clic en Generate
Programming File dentro de la ventana
Processes, y esperamos a que termine el
proceso de síntesis e implementación, viendo
si hay algún error o advertencia de
importancia (warning).

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 Se debe asegurar que
los jumpers de
POWER SELECT
(jumpers de selección
alimentación) se
encuentren en la
posición USB.
 Ejecutar el programa
Adept: Inicio→Todos
los
Programas→Digilent
→Adept.

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 Posteriormente se
conecta la tarjeta
Nexys2 a la
computadora
mediante el cable USB
y ponemos el
interruptor de
alimentación en la
posición ON.
Transcurrido un
tiempo, en la ventana
del Adept aparecerá
que se ha conectado
una tarjeta

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 A continuación se
da clic en el botón
browse
correspondiente a la
FPGA, y buscamos el
fichero con
extensión bit que
hemos generado en
nuestro proyecto.
Aparecerá una
advertencia
(warning).A este
mensaje
contestamos Sí.

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 Si todo ha salido bien, sólo tenemos que
hacer clic en Program y se programará la
FPGA. Ahora solo queda verificar el correcto
funcionamiento de nuestro diseño en la
tarjeta de desarrollo.

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 Crear e implementar en la tarjeta Nexys 2 el
diseño explicado del subtema 4.1 al 4.4.

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
Objetivo de la unidad
 El participante aplicará los principios del
diseño combinacional en VHDL mediante
diversos ejercicios prácticos utilizando la
tarjeta de desarrollo Nexys 2 de manera
adecuada.

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 Las declaraciones concurrentes suelen usarse
en las descripciones de flujo de datos. Esto
se debe a que en una declaración
concurrente no importa el orden en que se
escriban las señales, ya que el resultado para
determinada función sería el mismo.

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 En VHDL existen tres tipos de declaraciones
concurrentes:

 Declaraciones condicionales asignadas a una


señal (when-else)
 Declaraciones concurrentes asignadas a
señales
 Selección de una señal (with-select-when)

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 La declaración when-else se utiliza para
asignar valores a una señal, determinando así
la ejecución de una condición propia del
diseño.

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 1 -- Ejemplo combinacional básico
 2 library ieee;
 3 use ieee.std_logic_1164.all ;
 4 entity tabla is port(
 5 a,b,c: in std_logic;
 6 f: out std_logic);
 7 end tabla;
 8 architecture Behavioral of tabla is
 9 begin
 10 f<= '1' when (a= '0' and b= '0' and c= '0' )
else
 11 '1' when (a= '0' and b= '1' and c= '1' ) else
 12 '1' when (a= '1' and b= '1' and c= '0' ) else
 13 '1' when (a= '1' and b= '1' and c= '1' ) else
 14 '0';
 15 end Behavioral;

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 Ejercicio 5.1.- Primer ejercicio con
declaración When-Else.

 En base a lo visto en el capítulo 4, introducir


el diseño anterior en la tarjeta Nexys 2.
Utilizar SW0 como la entrada a, SW1 como la
entrada b y SW2 como la entrada c. La salida
f estará dada por el led LD0. Verificar el
correcto funcionamiento del diseño
realizado.

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 Ejercicio 5.2.- Segundo ejercicio con
declaración When-Else.

 Realizar haciendo uso de la declaración


When-Else un diseño lógico de 4 entradas
que van desde 0000 hasta 1111 y que
produzca una salida alta siempre que la
entrada decimal equivalente sea mayor que
10. Verificar el correcto funcionamiento del
diseño realizado.

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 Los operadores lógicos más utilizados en la
descripción de funciones booleanas, y
definidos en los diferentes tipos de datos bit,
son los operadores and, or, nand, xor, xnor y
not.

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 En el momento de ser compilados los operadores
lógicos presentan el siguiente orden y prioridad:

 1) Expresiones entre paréntesis


 2) Complementos
 3) Función AND
 4) Función OR
 Las operaciones xor y xnor son transparentes al
compilador y las interpreta mediante la suma de
productos correspondiente a su función.

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 En este tipo de declaración encontraremos
las funciones de salida mediante la ecuación
booleana que describe el comportamiento de
cada una de las compuertas.

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 library ieee;
 use ieee.std_logic_1164.all;

 entity logic is port (


 a,b,c,d,e,f: in std_logic;
 xl,x2,x3: out std_logic) ;
 end logic;

 architecture behavioral of logic is


 begin
 xl <= a xnor b;
 x2 <= ( ( (c and d)or(a xnor b) ) nand
 ( (e xor f)and(c and d) ) ) ;
 x3 <= (e xor f) and (c and d) ;
 end behavioral;

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 En base a lo visto en el capítulo 4, introducir
el diseño anterior en la tarjeta Nexys 2.
Utilizar de SW0 a SW5 como entradas. Las
salidas estarán dadas por los leds LD0, LD1 Y
LD2. Verificar el correcto funcionamiento del
diseño realizado obteniendo su tabla de la
verdad.

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 Realizar un diseño lógico por medio de
compuertas que tenga 4 entradas que van
desde 0000 hasta 1111 y que produzca una
salida alta siempre que la entrada decimal
equivalente sea mayor que 10. Verificar el
correcto funcionamiento del diseño
realizado.

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 Una función depende de 4 variables D,C,B,A,
que representan un número binario, donde A
es la variable menos significativa. La función
F adopta el valor de uno si el número
formado por las cuatro variables es inferior o
igual a 7 y superior a 3. En caso contrario la
función F es cero.
 Obtenga la tabla de la verdad de la función F
e implemente el diseño correspondiente en
VHDL, utilice estructuras del tipo when-else y
operadores lógicos.

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 La declaración with – select - when se utiliza
para asignar un valor a una señal con base en
el valor de otra señal previamente
seleccionada.

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 El valor de la
salida c depende
de las señales de
entrada
seleccionadas a(0)
y a(1), de acuerdo
con la tabla de
verdad
correspondiente.

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
library ieee;
use ieee.std_logic_l164.all;
entity circuito is port(
a: in std_logic_vector (1 downto 0) ;
c: out std_logic);
end circuito;
architecture behavioral of circuito is
begin
with a select
c <= '1' when "00",
'0' when "01",
'1' when "10",
'0' when others;
end behavioral;

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
En base a lo visto en el capítulo 4, introducir el
diseño anterior en la tarjeta Nexys 2. Utilizar
de SW0 a SW1 como la entrada a. La salida
estará dada por el led LD0. Verificar el correcto
funcionamiento del diseño.

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 Implementar tabla de verdad 5.1 en la tarjeta
de desarrollo Nexys 2 de la siguiente manera:
 Implementar la tabla de verdad mediante la
declaración When-Else.
 Implementar la tabla de verdad haciendo uso
de operadores lógicos (compuertas).
 Implementar la tabla de verdad mediante la
selección de una señal (With-Select-When).

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
ENTRADAS SALIDA
A B C X
0 0 0 1
0 0 1 0
0 1 0 1
0 1 1 0
1 0 0 1
1 0 1 0
1 1 0 1
1 1 1 1

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 A diferencia de una declaración concurrente,
una secuencial debe ejecutarse en el orden
en que aparece y formar parte de un proceso
(process).

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 Declaración if-then-else (si-entonces-si no).
Esta declaración sirve para seleccionar una
condición o condiciones basadas en el resultado
de evaluaciones lógicas (falso o verdadero). Por
ejemplo, observemos que en la instrucción:

 if la condición es cierta then


 realiza la operación 1;
 else
 realiza la operación 2;
 end if;

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
--Ejemplo de declaración de la entidad comparador
entity comp is
port (a,b: in bit_vector( 1 downto 0);
c: out bit);
end comp ;
architecture behavioral of comp is
begin
process (a,b)
begin
if a = b then
c <='1';
else
c <= ' 0 ' ;
end if;
end process;
end behavioral;

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 Cuando se requieren más condiciones de
control, se utiliza una nueva estructura
llamada elsif (si no-si).
if la condición 1 se cumple then
realiza operación 1;
elsif la condición 2 se cumple then
realiza operación 2:
else
realiza operación 3;
end if;

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 Introducir el diseño anterior del comparador
en la tarjeta Nexys 2. Utilizar de SW0 a SW1
como la entrada a y SW6 Y SW7 como entrada
b. La salida estará dada por el led LD0.
Verificar el correcto funcionamiento.

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
“Al Servicio del Sistema
Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 Los operadores relacionales se usan para
evaluar la igualdad, desigualdad o la
magnitud en una expresión.

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 Los registros de tres estados (buffers tri-
estado) tienen diversas aplicaciones, ya sea
como salidas de sistemas (modo buffer) o
como parte integral de un circuito. En VHDL
estos dispositivos son definidos a través de
los valores que manejan (0,1 y alta
impedancia 'Z').

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 library ieee;
 use ieee.std_logic_1164.all ;
 entity tri_est is port(
 enable, entrada: in std_logic;
 salida: out std_logic);
 end tri_est;
 architecture behavioral of tri_est is
 begin
 process (enable, entrada) begin
 if enable = '0' then
 salida <= 'Z';
 else
 salida <= entrada;
 end if;
 end process ;
 end behavioral;

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 El tipo std_logic soporta este valor —al igual
que 0 y 1—. A esto se debe que en el diseño
se prefiera utilizar el estándar std_logic_l164
y no el tipo bit, ya que el primero es más
versátil al proveer valores de alta impedancia
y condiciones de no importa, los cuales no
están considerados en el tipo bit.

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 Introducir el diseño anterior en la tarjeta
Nexys 2. Utilizar a SW0 para la entrada
“enable” y BTN0 como “entrada”. La salida
estará dada por el led LD0. Verificar el
correcto funcionamiento.

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 Los multiplexores se diseñan describiendo su
comportamiento mediante la declaración
with-select-when o ecuaciones booleanas.

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 Para observar en detalle el funcionamiento de
un circuito medio sumador, considere la
suma de los números A y B mostrados.

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 La ecuación lógica que
corresponde a la
expresión es la función
lógica or-exclusiva A
B, mientras que la
ecuación lógica del
acarreo de salida es
Cout = AB que
corresponde a la
compuerta lógica and.

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
library ieee;
use ieee.std_logic_1164.all ;
entity m_sum is port (
A,B: in std_logic;
SUMA, Cout: out std_logic) ;
end m_sum;
architecture behavioralof m_sum is
begin
SUMA <= A XOR B;
Cout <= A AND B;
end behavioral;

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 Introducir el diseño anterior en la tarjeta
Nexys 2. Utilizar a SW0 la entrada “A”, SW1
como la entrada “B”. LDO como la salida
“SUMA” y LD1 como la salida “Cout”. Verificar
el correcto funcionamiento.

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 Un sumador completo (SC) a diferencia del
circuito medio sumador considera un acarreo
de entrada (Cin).

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 library ieee;
 use ieee.std_logic_1164.all;
 entity sum is port (
 A,B,Cin: in std_logic;
 Suma, Cout: out std_logic);
 end sum;
 architecture behavioral of sum is
 begin
 Suma <= A xor B xor Cin;
 Cout <= (A and B) or ((A xor B) and Cin);
 end behavioral;

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 Introducir el diseño anterior en la tarjeta
Nexys 2. Utilizar a SW0 como la entrada A,
SW1 como la entrada B y SW2 como la
entrada Cin, LD0 como la salida Suma y LD1
como la salida Cout. Verificar el correcto
funcionamiento.

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
Dada la siguiente tabla, halle las ecuaciones de X,Y y Z
de la forma suma de productos e impleméntelas en la
FPGA.
A B C X Y Z
0 0 0 1 0 1
0 0 1 1 1 0
0 1 0 0 0 1
0 1 1 1 0 1
1 0 0 0 0 0
1 0 1 0 1 0
1 1 0 0 1 0
1 1 1 1 0 0

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 Realizar e implementar el diseño del
siguiente multiplexor. Revise su correcto
funcionamiento.

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
“Al Servicio del Sistema
Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 library ieee;
 use ieee.std_logic_1164.all ;
 entity deco is port (
 A: in std_logic_vector(3 downto 0);
 anodo: out std_logic_vector (3 downto 0);
 d: out std_logic_vector(6 downto 0));
 end deco;
 architecture behavioral of deco is
 begin
 anodo<=“1110”;
 process (A) begin
 case A is
 when "0000" => d <= "0000001";
 when "0001" => d <= "1001111";
 when "0010" => d <= "0010010";
 when "0011" => d <= "0000110";
 when "0100" => d <= "1001100";
 when "0101" => d <= "0100100";
 when "0110" => d <= "0100000";
 when "0111" => d <= "0001110";
 when "1000" => d <= "0000000";
 when "1001" => d <= "0000100";
 when others = > d < = "1111111";
 end case;
 end process;
 end behavioral;

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 Introducir el diseño anterior en la tarjeta
Nexys 2. Utilizar de SW0 a SW3 como
entradas y los valores del display de 7
segmentos como la salida d. Recuerde que
los valores de los displays de 7 segmentos
los puede localizar impresos en la tarjeta de
desarrollo o en el manual de usuario.
Verificar el correcto funcionamiento del
diseño.

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
Objetivo de la unidad
 El participante aplicará los principios del
diseño secuencial en VHDL mediante diversos
ejercicios prácticos utilizando la tarjeta de
desarrollo Nexys 2 de manera adecuada.

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 Un sistema secuencial está formado por un
circuito combinacional y un elemento de
memoria encargado de almacenar de forma
temporal la historia del sistema.

 En esencia, la salida de un sistema secuencial


no sólo depende del valor presente de las
entradas, sino también de la historia del
sistema

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
“Al Servicio del Sistema
Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 La característica principal de un flip-flop es
mantener o almacenar un bit de manera
indefinida hasta que a través de un pulso o
una señal cambie de estado.

 Los flip-flops más conocidos son los tipos


SR, JK, T y D.

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 Es importante
recordar el
significado de la
notación Q y Q(t+i);

 Q = estado presente
o actual
 Q(t+i) = estado futuro
o siguiente

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 En el diseño secuencial con VHDL las
declaraciones If-then-else son las más
utilizadas.
 La ejecución del proceso es sensible a los
cambios en clk (pulso de reloj); esto es,
cuando clk cambia de valor de una transición
de 0 a 1 (clk = 1), el valor de D se asigna a Q
y se conserva hasta que se genera un nuevo
pulso.

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 1 library ieee;
 2 use ieee.std_logic_1164.all ;
 3 entity Flip_Flop_D is
 4 Port ( D : in STD_LOGIC;
 5 CLK : in STD_LOGIC;
 6 Q : out STD_LOGIC;
 7 Qn: out STD_LOGIC);
 8 end Flip_Flop_D;
 9 architecture Behavioral of Flip_Flop_D is
 10 begin
 11 process (CLK)
 12 begin
 13 if clk'event and clk='1' then
 14 Q <= D;
 15 Qn<=not D;
 16 end if;
 17 end process;
 18 end Behavioral;

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 En el lenguaje VHDL los atributos sirven para
definir características que se pueden asociar
con cualquier tipo de datos, objeto o
entidades. El atributo event (evento) se utiliza
para describir un hecho u ocurrencia de una
señal en particular.

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 La condición if clk 'event es cierta sólo
cuando ocurre un cambio de valor; es decir,
un suceso (event) de la señal clk. Como se
puede apreciar, la declaración (if-then) no
maneja la condición else, debido a que el
compilador mantiene el valor de Q hasta que
no exista un cambio de valor en la señal clk.

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 Introducir el diseño anterior en la tarjeta
Nexys 2. Utilizar SW0 como entrada D y LD0
como la salida Q. Recuerde que la terminal
que corresponde al reloj interno de la tarjeta
es B8. Verificar el correcto funcionamiento
del diseño.

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 El programa en VHDL puede realizarse
utilizando instrucciones condicionales y un
nuevo tipo de datos: valores no importa ('-'),
los cuales permiten adoptar un valor de 0 o 1
lógico de manera indistinta.

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 library IEEE;  architecture Behavioral of
Flip_Flop_SR is
 use IEEE.STD_LOGIC_1164.ALL;  begin
 entity Flip_Flop_SR is  process (clk, S, R)
 Port ( S : in STD_LOGIC;  begin
 if (clk'event and clk = '1') then
 R : in STD_LOGIC;
 if S = '0' and R = '1' then
 clk : in STD_LOGIC;  Q <= '0';
 Q : out STD_LOGIC;  Qn <= '1';
 Qn : out STD_LOGIC);  elsif (S = '1' and R = '0') then
 Q <= '1';
 end Flip_Flop_SR;  Qn <= '0';
 elsif (S = '0' and R = '0') then
 else
 Q <= '-';
 Qn <= '-';
 end if;
 end if;
 end process;
 end Behavioral;

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 Introducir el diseño anterior en la tarjeta
Nexys 2. Utilizar SW0 como entrada S, SW1
como entrada R, LD0 como la salida Q y LD1
como salida Qn. Recuerde que la terminal
que corresponde al reloj interno de la tarjeta
es B8. Verificar el correcto funcionamiento
del diseño.

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 El diseño es muy similar al flip-flop anterior,
la diferencia radica en la utilización de
vectores de bits en lugar de un solo bit.

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 library ieee;
 use ieee.std_logic_1164.all;
 entity reg is port (
 D: in std_logic_vector(0 downto 7);
 clk: in std_logic;
 Q: out std_logic_vector(0 downto 7));
 end reg ;
 architecture behavioral of reg is
 begin
 process (clk) begin
 if (clk'event and clk='1') then
 Q <= D;
 end if;
 end process;
 end behavioral;

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 Introducir el diseño anterior en la tarjeta
Nexys 2. Utilizar SW0 a SW7 como entrada D
y LD0 A LD7 como la salida Q. Recuerde que
la terminal que corresponde al reloj interno
de la tarjeta es B8. Verificar el correcto
funcionamiento del diseño.

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 Los contadores son entidades muy utilizadas
en el diseño lógico. La forma usual para
describirlos en VHDL es mediante
operaciones de incremento, decremento de
datos o ambas.

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 library ieee;
 use ieee.std_logic_1164.all ;
 use ieee.std_logic_unsigned.all;
 entity cont4 is port (
 clk: in std_logic;
 Q: out std_logic_vector(3 downto 0));
 end cont4;
 architecture behavioral of cont4 is
 begin
 process (clk)
 variable Qaux: std_logic_vector (3 downto 0) := “0000”;
 begin
 If (clk'event and clk = '1') then
 Qaux := Qaux + 1;
 end if;
 Q <= Qaux;
 end process ;
 end behavioral;

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 Se necesita una señal auxiliar llamada Qaux
porque la salida Q no puede usarse dentro
del proceso, la salida no puede emplearse
para hacer lógica.

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 Introducir el diseño anterior en la tarjeta
Nexys 2. Utilizar SW0 como entrada D y LD0
como la salida Q. Recuerde que la terminal
que corresponde al reloj interno de la tarjeta
es B8. ¿Es correcto el comportamiento de la
tarjeta?

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 Ahora se describirá el funcionamiento de un
contador de 4 bits con una señal de control
(Up/Down) que determine el sentido del
conteo: ascendente o descendente.

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 library ieee;
 use ieee.std_logic_1164.all ;
 use ieee.std_logic_unsigned.all;
 entity contador is port (
 clk: in std_logic;
 UP:in std_logic;
 Q: out std_logic_vector(3 downto 0));
 end contador;
 architecture behavioral of contador is
 begin
 process (UP, clk)
 variable Qaux: std_logic_vector(3 downto 0) := “0000”;
 begin
 if (clk'event and clk = '1')then
 if (UP = '0') then
 Qaux := Qaux + 1;
 else
 Qaux := Qaux - 1;
 end if ;
 end if ;
 Q <= Qaux;
 end process ;
 end behavioral;

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
Objetivo de la unidad
 El participante aplicará el diseño estructural
en VHDL mediante ejercicios prácticos
utilizando la tarjeta de desarrollo Nexys 2 de
manera adecuada.

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 En un diseño grande puede haber varios
niveles de jerarquía, donde unas
arquitecturas estructurales contienen a otras.
Las ventajas de realizar el diseño de esta
manera son varias, entre ellas se cuentan las
siguientes:

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 Permite dividir el circuito en partes más
sencillas, haciendo que el diseño sea más
manejable y entendible. Esto además facilita el
trabajo en equipo.

 Es fácil modificar algún bloque del diseño,


mientras que se deja el resto igual.

 Permite la reutilización ya que puede que un


bloque de un diseño lo necesitemos para otro.

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 Para explicar cómo se describe una
arquitectura estructural en VHDL, en este
ejemplo se asume que se han implementado
en un nuevo proyecto el diseño de una
compuerta XNOR y en otro proyecto el
diseño de una compuerta AND.

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 Para iniciar el diseño de una entidad de
manera estructural, es necesario la
descomposición lógica del diseño en
pequeños submódulos.

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 1 library ieee;
 2 use ieee.std_logic_1164.all;
 3 entity comp is port (
 4 a,b: in std_logic;
 5 c: out std_logic);
 6 end comp;
 7 architecture estructural of comp is
 8 component xnor
 9 port (a0,b0: in std_logic;
 10 salida: out std_logic);
 11 end component;
 12 component and
 13 port (a1,b1: in std_logic;
 14 salida: out std_logic);
 15 end component;
 16 signal x0,x1: std_logic;
 17
 18 begin
 19 U0: xnor port map (a,b,x0);
 20 Ul: xnor port map (a,b,x1);
 21 U2: and port map (x0,x1, c);
 22 end estructural;

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 U0: xnor port map (a,b,x0);
 U1: xnor port map (a,b,x1);
 U2: and port map (x0,x1, c);

 U0: xnor port map (a0=>a,b0=>b, salida=>x0);


 U1 xnor port map (a1=>a,b1=>b, salida=>x1);
 U2: and port map (x0=>a1,x1=>a2,salida=>c);

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 Realice e implemente el diseño estructural
mostrado anteriormente. Verifique su
correcto funcionamiento.

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 Para realizar el divisor de frecuencia se debe
considerar primero la frecuencia a la que trabaja
la tarjeta Nexys 2, la cual es 50Mhz, cuyo
periodo es de 20 ns, es decir, si queremos que la
frecuencia sea de 1Hz su periodo debe de ser
cada 50 x106 nanosegundos o lo que es lo mismo,
cada 50 x106 pulsos a una frecuencia de 50MHz,
teniendo esto en mente se puede realizar un
divisor de frecuencia a 1 Hz manteniendo una
salida en ‘1’ durante 25 x106 pulsos de reloj y
posteriormente cambiar la salida a un ‘0’ lógico
los 25 x106 pulsos de reloj restantes.

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 Se pueden observar varios aspectos del
diseño anterior, uno de ellos es el uso de la
palabra reservada “constant” en lugar de usar
una variable, esto debido a que los valores
que se obtengan para max y half se
mantienen constantes a lo largo del tiempo.

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 Dentro del proceso Clk50Mhz se lleva a cabo
el conteo de los flancos de subida en la
variable count, la cual se resetea al llegar a
los 50,000,000 pulsos; por otra parte se lleva
a cabo el conteo de los pulsos para variar la
salida entre un ‘1’ y un ‘0’ lógico cada
25,000,000 pulsos de reloj, de esta manera
se obtiene como resultado una frecuencia de
salida de 1Hz.

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 library IEEE;
 use IEEE.STD_LOGIC_1164.ALL;
 use ieee.std_logic_unsigned.all;

 entity Div2 is
 PORT (Clk50Mhz: IN STD_LOGIC;
 Clk: OUT STD_LOGIC);
 end Div2;

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 architecture Behavioral of Div2 is

 constant max: INTEGER := 50000000;
 constant half: INTEGER := max/2;

 begin
 process (Clk50Mhz)
 variable count: integer;
 begin
 if Clk50Mhz'EVENT and Clk50Mhz = '1' then
 if
 count < max then count := count + 1;
 else count := 0;
 end if;

 if
 count < half then Clk <= '0';
 else Clk <= '1';
 end if;
 end if;
 end process;
 end Behavioral;

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 Implementar el divisor de frecuencia
previamente mostrado, en la tarjeta de
desarrollo Nexys 2 utilizando como salida el
led LD0 (terminal J14). Verificar el correcto
funcionamiento del diseño.

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 Ya que se cuentan con los diseños del divisor
de frecuencia a 1Hz y el contador binario de
4 bits, realizar un diseño estructural en el
cual la señal de reloj que entra al contador
provenga del divisor de frecuencia en lugar
de la tarjeta.

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
Objetivo de la unidad
 El participante comprenderá la manera de
realizar simulaciones de los diseños
realizados en VHDL mediante el uso
adecuado del software ModelSim.

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
library ieee;
use ieee.std_logic_1164.all;

entity Circuito is
port (a,b,c: in std_logic;
y: out std_logic);
end Circuito;

architecture str of Circuito is


signal net1,net2: std_logic; component c_and
port(a,b: in std_logic;
z: out std_logic);
begin end component;
u1: c_and port map
(a=>a, b=>b, z=>net1); component c_or
port(a,b: in std_logic;
u2: c_or port map (a=>c, z: out std_logic);
b=>a, z=> net2); end component;
u3: c_xor port map
component c_xor
(a=>net1, b=>net2, z=>y); port(a,b: in std_logic;
end str; z: out std_logic);
end component;

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 library IEEE;
 use IEEE.STD_LOGIC_1164.ALL;
 entity Circuito_test is
 end Circuito_test;

 architecture tst of Circuito_test is

 component Circuito
 Port (a : in std_logic;
 b : in std_logic;
 c : in std_logic;
 y : out std_logic);
 end component;

 signal a,b,c,y: std_logic;

 begin

 uut: Circuito port map (a=>a, b=>b, c=>c,
y=>y);
 a <='0', '1' after 200ns, '0' after 400ns;
 b <='1', '0' after 300ns, '1' after 600ns;
 c <='1', '0' after 350ns, '1' after 700ns;
 end tst;
“Al Servicio del Sistema
Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
“Al Servicio del Sistema
Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 Edit>Preferences

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 Cambio a Simulation

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
“Al Servicio del Sistema
Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
“Al Servicio del Sistema
Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
“Al Servicio del Sistema
Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
“Al Servicio del Sistema
Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
“Al Servicio del Sistema
Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 Realizar un archivo de prueba para el diseño
del Flip-Flop D del ejercicio 6.1 y simúlelo en
ModelSim. Corra la simulación con al menos
dos tipos diferentes de estímulos, los cuales
quedan a elección del participante.

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 Realizar un archivo de prueba para el diseño
del divisor de frecuencia del ejercicio 7.2 y
simúlelo en ModelSim.

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 Realizar un archivo e prueba para el diseño
del contador de 4 bits con divisor de
frecuencia del ejercicio 7.3 y simúlelo en
ModelSim.

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
Objetivo de la unidad
 El participante comprenderá el diseño e
implementación de una máquina de estados
en VHDL haciendo uso de una tarjeta basada
en FPGA de acuerdo al procedimiento
establecido.

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 Los diagramas de estados, tablas de estados
y otras descripciones de máquina de estados
finitos contienen básicamente la misma
información: describen el comportamiento
deseado del circuito en términos de
transiciones de estado y cambios de salida en
respuesta a todas las combinaciones posibles
de entradas y estados.

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 Máquina Mealy: Es la máquina de estado en la
cual la salida depende tanto del estado
presente como de las entradas externas.

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 Máquina de Moore: Es la máquina de estado
en la cual las salidas solo dependen del
estado presente

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 Donde:
 x=> Vector de entrada.
 Z=> Vector de salida.
 y=> Vector de estado actual.
 Y=> Vector de estado próximo.

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 library ieee;
 use
ieee.std_logic_1164.
all;

 entity maquina is

 port( x: in
std_logic_vector (1
downto 0);
 clk: in std_logic;
 reset: in
std_logic;
 z: out std_logic);
 end maquina;

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 architecture beh
of maquina is
 type estado is
(alfa,beta,gama,
delta,eta);
 signal actual,
proximo:
estado;

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 begin

 combinacional: process (x, actual)

 begin

 case actual is
 when alfa=> if x(1)=’0’
 then proximo <=
beta;
 else proximo <=
alfa;
 end if;
 when beta=> if x(0)=’0’
 then proximo <=
delta;
 else proximo <=
gama;
 end if;
 when gama=> proximo <=
eta;
 when delta=> próximo <=
eta;
 when eta=> próximo <=
alfa;
 end case;
 end process;

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 registro: process (clk)
 begin
 if clk’event and clk=’1’
 then if reset = ‘1’
 then actual <= alfa;
 else actual <= proximo;
 end if;
 end if;
 end process;

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 salida: process (actual)
 begin
 case actual is
 when alfa => z <=’0’;
 when beta => z <=’0’;
 when gama => z <=’1’;
 when delta => z <=’0’;
 when eta => z <=’1’;
 end case;
 end process;
 end beh;

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 Diseñe en Xilinx ISE y simule en ModelSim la
máquina de estados expuesta anteriormente,
simule las señales de entrada que crea
pertinentes para demostrar que el diseño se
comporta de acuerdo a lo esperado.

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05
 Diseñe en Xilinx ISE y simule en ModelSim un
contador binario de 3 bits modificando la
señal de salida por medio de una máquina de
estados, el cual debe de funcionar al
encontrarse en alto una señal de entrada con
una frecuencia de reloj de 1 Hz.

“Al Servicio del Sistema


Nacional de Educación Rev. 3
Superior Tecnológica” CR-PP-PO-05-05

Potrebbero piacerti anche