1. Aprende a usar la interfaz de Xilinx ISE para realización de lógica programable usando como entradas diagramas
esquemá cos y VHDL.
2. Aprende a simular circuitos lógicos a par r de una descripción textual de los es mulos.
3. Crear y u lizar componentes para mejorar la administración de proyectos.
Procedimiento:
En caso necesario Instale y ponga en marcha el programa ISE. El programa puede descargarlo del siguiente enlace
“h ps://www.xilinx.com/support/download/index.html/content/xilinx/en/downloadNav/design-tools.html”
Pesa cerca de 7G y es posible que requiera registrase. Aparece una ventana similar a la de la figura 1 (1era vez)
Figura 1
Seleccione “File New Project” o simplemente puye1 el botón “New Project…” para que aparezca el asistente que guía la
elaboración de un nuevo proyecto. Indique la ubicación del proyecto se sugiere“C:\Xilinx\ISEWork14.7” en la casilla
“Loca on”, en la casilla “Name” escriba el nombre del proyecto “Prac1LP” por ejemplo, luego escoja po esquemá co
“Schema c” para el “top level source type” figura 2(a).
1 Con el puntero ubicado sobre el icono especificado presione el botón izquierdo del ratón
El proyecto está en blanco, así que hay que añadirle un nuevo archivo fuente.
(a) (b)
Figura 2
Especifique un nuevo archivo fuente (New source file), haga clic derecho en el nombre del archivo que aparece en el
marco de “Design” vista de “Implementa on” y luego puye en la opción “New Source” y en la ventana que emerge
escriba el nombre del archivo fuente Prac1LPTop seleccione “Schema c” para el po de archivo. Asegúrese de que la
casilla “add to project” esté marcada y haga clic en “Next”. Vea la secuencia en la figura 3
Figura 3
Figura 4
En el panel de la izquierda se muestran las secciones donde se concentra la mayor parte de la ac vidad de desarrollo de
proyectos:
1. Las pestañas que marcan las fichas que con enen los comandos usados:
Al inicio queda en la ficha de “Op ons” donde se pueden ac var o desac var las diferentes opciones de selección
de los elementos en el marco de trabajo en forma conjunta o en forma individual.
También se dispone de la ficha de Design donde se seleccionan los procesos que están disponibles para el archivo
seleccionado. Esta ficha es importante y será u lizada para la implementación del esquemá co y su programación
en el hardware disponible. Si se desplaza a la derecha con ayuda de los botones de navegación verá que aparece
la ficha de símbolos que es la que con ene los “elementos lógicos que se u liza en la realización del projecto.
2. En la ficha “Symbols”: se clasifican los diferentes simbolos lógicos que puede
programar en el FPGA. para capturar y ubicar un elemento en la hoja central del
esquemá co solo hay que seleccionar su categoría (en la sección superior) y
luego escoger el elemento en la sección de Símbolos.
Por ejemplo:
Para ubicar en la hoja una compuerta NOT:
a. seleccionar la categoría Logic (use los botones de navegación hasta
ubicar la categoría) y el símbolo inv (idem) esto engancha al cursor el
símbolo
e. Puede alambrar su circuito usando la opción “Add wire” conectando diferentes puntos del circuito
en un procedimiento bastante intui vo. Si elije la opción inicial y final (clic en el terminal de inicio y clic en
el terminal des no) ISE hace el trazado automá co. Si elije la opción manual debe hacer clic en el
terminal inicial y luego en cada punto donde desee hacer una inflexión del trazo, hasta que llegue al pin
de des no.
f. Puede incluir puertos de conexión para entrada de es mulos (importante) o para salida de señales y
asignarle el nombre que mejor describa su función. Los puertos son necesarios ya que es a través de ellos
que podemos alimentar los circuitos con señales lógicas o verificar su comportamiento en los LEDs. Los
puertos señalan las terminales y como serán asignadas al FPGA. La inclusión de puertos se logra con el
botón (Add I/O Marker), debe tener al menos un elemento dispuesto en la hoja para poder añadir
puertos ya que estos no pueden ser ubicados en la hoja al menos que estén conectados a un terminal de
entrada o a un terminal de salida.
g. Asigne nombre significa vos a los puertos haciendo clic secundario en el puerto escogido y luego puye la
opción “Rename Port” en el menú “pop-up”. Un nombre significa vo tendría dos componentes: la
iden ficación simbólica de la señal y el número de la terminal del FPGA al cual será asignado. Algunas
asignaciones son fijas dependiendo del componente que controle la terminal por ejemplo hay terminales
del FPGA que están conectados a LEDs por lo que son ideales para asignar salidas, por otro lado hay
terminales que están conectados a interruptores lógicos por lo que deben ser asignados como entradas.
La información que concierne está en la data de la tarjeta u lizada.
Presente en el informe el detalle de los elementos de entrada y salida con que cuenta la tarjeta
u lizada y a que terminales del FPGA están conectados.
Pruebe los teoremas básicos de la lógica programable
(A and B)or(not(A) and C)or(B and C) = A.B + A’.C + B.C = (A or B)(not(A) or C)(B or C) = (A + B)(A’ + C)(B + C) =
P6
A and B or not(A) and C A.B + A’.C (A or B)(not(A) or C) (A + B)(A’ + C)
La figura 5 presenta la construcción necesaria para probar P4 (P4 debe ser igual a P4demo). Presente en
su reporte los diagramas que se requieren para probar el resto de los teoremas presentados en la tabla
conjuntamente con la demostración de los mismos.
Figura 5
Simulación:
El ISE 14.7 permite realizar la simulación de nuestra construcción antes de programarlo en el hardware. Esta
caracterís ca permite probar y depurar nuestro trabajo. Para realizar la simulación debemos seguir el siguiente
procedimiento
3. En el marco de Design cambiamos a la vista “Simula on”.
4. Clic derecho sobre el nombre del proyecto y seleccionamos “Add new
source”
5. En la ventana del asistente seleccionamos el po de archivo “VHDL Test Bench” asignamos un nombre al archivo
de simulación (Sug.: P4Test)2 y nos asguramos que la casilla “Add to project” esté cotejada. Puye “Next”.
6. Asociamos el archivo de simulación al módulo correcto. Puye “Next” y luego “Finish”.
Aparece en el marco central el archivo de trabajo donde asignaremos los es mulos a las entradas A y B, este archivo
está en lenguaje VHDL y hay que modificarlo tal como se indica a con nuación.
7. Declare una constante de empo para la sincronización de las entradas usando el siguiente enunciado:
constant Tp : me := 100ns;3
Este debe ubicarse en el renglón inmediatamente después del úl mo SIGNAL al inicio de la “ARCHITECTURE” del
módulo de simulación antes del “BEGIN”.
SIGNAL A : STD_LOGIC;
SIGNAL B : STD_LOGIC;
SIGNAL P4 : STD_LOGIC;
SIGNAL P4demo : STD_LOGIC;
constant Tp : time := 100ns;
BEGIN
8. Modifique el proceso llamado “tb :process” insertando en el mismo las asignaciones dinámicas de las entradas
según se indica a con nuación:
tb : PROCESS
BEGIN
A <= `0`;
B <= `0;
wait for Tp;
A <= `0`;
B <= `1`;
wait for Tp;
A <= `1`;
B <= `0`;
wait for Tp;
A <= `1`;
B <= `1`;
wait for Tp
–- WAIT; -- al comentar este WAIT el proceso se repite
END PROCESS;
2 Es posible asignar varios archivos de simulación al mismo proyecto uno por cada módulo por ejemplo este archivo de simulación es para la propiedad P4 pero
también podemos asignar otro archivo de simulación para probar otra propiedad o teorema.
3 Se declara una constante nombrada “Tp” la cual es de la clase “ me” y que por norma ene el valor de 100ns.
Figura 6
Note que las señales P4 y P4demo salen idén cas lo que verifica la propiedad.
10. En la ficha “Design” (De no poder ver la ficha, use los botones de navegación) volvemos a la vista
“Implementa on” y se aprecian dos marcos, uno con ene la estructura jerárquica de su construcción
(usualmente la de arriba) y la otra que con ene los procesos. Los procesos dependen de que miembro de la
estructura jerárquica haya seleccionado, si seleccionó el miembro en el tope (xc3s500e o similar...) aparece solo
un proceso disponible. Si selecciono el miembro Prac1LPtop entonces aparecen más procesos. Cabe mencionar
los siguientes:
a. Design U li es con ene varios subprocesos el que usaremos será “Create Schema c Symbol” el cual
toma el diseño y lo convierte en un elemento o componente que puede ser seleccionado en la ficha de
Symbols en la categoría que posee el nombre del archivo creado. Este proceso será examinado más
adelante.
b. User constraints con ene varios subprocesos, el subproceso que nos atañe es “Floorplan Area/IO/Logic-
(Plan Ahead) con el cual asignaremos a cada puerto de entrada y salida un terminal del FPGA. Ac ve este
proceso con un doble clic sobre el mismo. Acepte la sugerencia sobre la creación del archivo *.UCF (User
Constraints File) Descarte cualquier sugerencia de actualización. Después de un rato debe ac varse el
programa Plan Ahead el cual se encarga de asignar terminales de FPGA a nuestros puertos. En caso de
que el módulo Plan Ahead no funcione en su computadora no hay problema ya que su única función aquí
es crear un archivo de texto con extensión *.ucf que define que señal de entrada o de salida (NET) va que
que terminal del FPGA según la numeración dada por el fabricante (LOC) este archivo ene el formato que
La clave “NET” indica el nombre de la señal de acuerdo a su construcción , la clave LOC señala el terminal
según su “FPGA” y la “#” señala un comentario con fines de referencia que va hasta el fin de línea. En el
archivo las salidas P4 y P4demo van conectados a terminales ocupados por LED en la tarjeta y las entradas
A y B van a terminales que están conectados a interruptores de dos posiciones. Para crear este archivo
ucf solo basta un clic derecho con el puntero en el archivo principal y luego seleccionar “Implementa on
constraint file”.
11. Realice la asignación de terminales del FPGA de tal forma que las salidas puedan ser apreciadas en LEDs y las
entradas controladas por los switches lógicos disponibles en su tarjeta. Haga esto a través del Plan Ahead o
modificando el archivo Prac1LPTop.ucf creado y añadido al proyecto por Ud. Cuando termine guarde su archivo
a. El archivo *.ucf almacenado en el directorio de trabajo y agregado al proyecto se muestra en la estructura
jerárquica como parte del archivo top tal como la figura 7 lo ilustra. Cabe resaltar que el archivo *.ucf es
un archivo de texto que puede generarse directamente usando el bloque de notas u otro archivo que
maneje solo texto.
b. Habiendo llegado a este punto podemos ac var directamente el proceso “Generate Programming File”
(haga doble clic en este proceso) el cual genera el archivo que programa nuestro circuito en la FPGA. La
ac vación de este proceso dispara el proceso anterior en la ficha de Design “Implement Design” es un
paso intermedio antes de la generación del archivo de programación. El archivo de programación es el
resultado final del proceso de diseño este posee el mismo nombre del archivo principal pero con la
extensión *.bit en este caso será Pra3ISEtop.bit
Figura 7
Figura 8
Se abre la interfaz del Impact donde debe aparecer la cadena de disposi vos programables que con ene
la tarjeta, de aparecer una pantalla en blanco ejecute un doble clic en el comando “Boundary Scan” y
luego puye el botón “Ini alize Chain”
Aparece la cadena . Que incluye a la FPG y a la EPROM y un cuadro que le indica una acción similar al de la
figura 9
Figura 9
Usualmente la tarjeta con ene dos o más disposi vos programables: la FPGA y el PROM. El FPGA
almacena la programación temporal mientras que la PROM almacena el programa de forma más
permanente. Seleccione “YES” en la ventana emergente, luego emerge el diálogo para la apertura del
archivo de configuración en nuestro caso sería el Pra3ISEtop.bit, navegue hasta encontrar su archivo
luego selecciónelo y puye el botón “Open” en el cuadro de diálogo. Luego seleccione No a la pe ción de
añadir un manejador PROM. Los otros disposi vos simplemente seleccione la opción “Bypass” y
finalmente “OK”. En la sección de operaciones disponible ac ve “Program Device” y listo el programa es
transferido al disposi vo en forma exitosa similar a la figura 10. Ya puede mover sus interruptores y
observar los resultados en los LEDs.
Varíe los tres interruptores según las ocho combinaciones posibles y anote en tablas separadas los
resultados en cada una de las salidas. Presente esta demostración al instructor: (Si el LED brilla la salida
es uno lógico)
___________________________________ (Demostración del Tutorial)
3a.En caso de que su sistema no responda al procedimiento anterior debe usar el programa Adept IV para programar
su esquemá co en la NEXYS 2. El instalable está disponible en la página siguiente: www.digilen nc.com no debe
tomar mucho su descarga con todo y manuales. El uso de este programa es bastante intui vo y se le delega a
usted su uso.
Esto culmina el tutorial, no cubre todos los comandos del programa pero lo encamina para que usted siga
experimentando con el Project Navigator. Ahora probaremos los siguientes teoremas del algebra booleana a través de
una implementación sica de la expresión usando los elementos lógicos ya estudiados.
a. De Morgan AND
A .B .C=A+B+C
El teorema original solo incluye dos variables pero se ex ende a un número plural de variables en esta
prác ca se ex ende a tres. Igual implemente ambos lados y compruebe su igualdad.
b. De Morgan OR
A +B+C=A .B .C
Igualmente implemente ambos lados y compruebe su igualdad:
_______________________________.(De Morgan)
c. Iden dades ú les (a)
A + A . B=A
A .B+ A .B .C= A . B
______________________________(Iden dades ú les)
Asignación:
1. Compruebe las siguientes expresiones con ayuda del ISE tal como hizo con los teoremas anteriores
Como reporte presente esta guía con todas las firmas y una adenda con las asignaciones
realizadas, el orden de entrega influirá en la calificación