Está en la página 1de 18

MANEJO DE LA HERRMAIENTA DE DISEÑO

1 DIGITAL 1

1. Objetivos.

 Introducir al estudiante en el uso de herramientas de diseño digital


en la modalidad de captura de esquemáticos.
 Aprender a describir y simular circuitos lógicos.

2. Equipo.
 Computador personal.
 Software Quartus II 10.1 Web Edition para diseño y ModelSim Altera
6.6 Starter Edition para simulación del circuito digital.
 Tarjeta de desarrollo DE0 nano.

3. Metodología de trabajo para todo el semestre.

1. La realización de cada práctica implica el desarrollo de actividades en


el transcurso de la semana, por lo tanto, el espacio de tiempo y el
laboratorio asignado para las prácticas se empleará solo para la
sustentación de las prácticas. En dicha sustentación se deberá
entregar:
a) Simulación funcional del sistema (diagrama de tiempos para cada
uno de los puntos).
b) Archivo .bit: Programa fuente de FPGA para cada uno de los
puntos.
c) Montaje hardware de la práctica para cada uno de los puntos.
d) Archivo de diseño documentado para cada uno de los puntos.
2. Al final de la práctica el docente empleará 15 minutos para socializar
la práctica siguiente.
3. Todos los grupos deberán utilizar el software determinado por el
docente para la descripción, simulación y configuración en la FPGA de
los diseños digitales planteados. El software lo pueden descargar
directamente de la página del fabricante o pedirlo al docente.
4. Deberán conformarse grupos de trabajo compuestos por máximo 3
estudiantes, estos grupos de trabajo realizarán las prácticas durante
todo el semestre académico.
5. Cada una de las prácticas realizadas durante los cortes, tendrán una
ponderación equivalente con las evaluaciones escritas realizadas en
dicho periodo de tiempo.

4. Rubrica de evaluación de las prácticas durante el semestre.


 30% Calidad y estética en el montaje del hardware y software.
 40% Conocimientos y claridad en la sustentación, así como en las
respuestas a las preguntas realizadas por el docente durante la
sustentación.
 30% correcto funcionamiento de la práctica.

5. Teoría.
Crear un proyecto en Quartus II

1. Se abre el programa Quartus II aparecerá la siguiente ventana,


donde se oprime en el boton “Create a New Project”.

2. Aparece la ventana de asistente de nuevo proyecto y allí se oprime el


botón “siguiente”.

3. Aparece una nueva ventana en la que se define la carpeta de trabajo


donde se guardarán los archivos generados, el nombre del proyecto y
el nombre de la entidad de mayor jerarquía. La entidad y el proyecto
deben tener el mismo nombre.
4. En la ventana siguiente se oprime el botón “siguiente” no tenemos
archivos de diseño que incluir en el proyecto.
5. En la ventana siguiente se define el hardware de la tarjeta de
desarrollo en que se va a implementar el diseño.
6. En la siguiente ventana hay que indicar las herramientas que se van
a emplear en el desarrollo del proyecto. Por ahora, solo hay que
indicar al asistente la herramienta de Simulación que va a usarse
para trabajar más adelante. Para ello primero hay que seleccionar en
la fila Simulation la opción de ModelSim-Altera y en el formato
correspondiente se selecciona VHDL. Con estos pasos ya se tiene
todo listo para empezar a trabajar y simular, por lo que, para
terminar, hay que pulsar Next para poder ver un resumen de los
datos del proyecto y comprobar que todo esté bien y luego pulsar el
botón Finish.

Crear un nuevo archivo de captura de esquemáticos e introducir el


diseño

Con el proyecto creado ya se tienen definidas todas las características sobre


las cuales se desarrollará el circuito digital pero aún no se ha introducido
ningún diseño. El diseño puede ser introducido varias formatos, durante
este curso se hará a través de captura de esquemáticos. Por lo tanto debe
crearse un archivo de captura de esquemáticos que contendrá los
diagramas deseados, para lo cual seleccione la opción “New” en el menú
“File”, aparece la ventana de la figura siguiente, que permite elegir el tipo
de archivo que se va a crear.
Existen cuatro grupos diferentes de archivos. Archivos de Diseño, archivos
de Memoria, archivos de Verificación y otros tipos de archivo
complementarios. En este curso se van a utilizar principalmente los
siguientes: archivo gráfico (Block Diagram/Schematic File) para capturar un
esquema; archivo de símbolo (Block Symbol File) para símbolo del
componente; y archivo tipo VHDL (VHDL File), que contendrá las
descripciones de los circuitos y de las simulaciones en lenguaje VHDL.

Como lo que se desea es capturar un esquema, hay que seleccionar la


opción Block Diagram/Schematic File en la ventana anterior. El archivo
creado tendrá extensión .bdf.

Después de pulsar OK aparece la ventana de captura de esquemas, que es


una hoja en blanco donde se va a dibujar el esquema. Antes de nada
conviene guardar el archivo en el directorio de trabajo con el nombre que
eligió colocar en el asistente nombre.bdf, mediante la opción Save As del
menú File. Aparecerá entonces la ventana de la Figura siguiente, en la que
hay que indicar el nombre del archivo (nombre.bdf). Es muy importante que
la opción Add file to current project (en la parte inferior de la ventana) esté
activada. De esta forma se le está diciendo al programa que el archivo
nombre.bdf pertenece al proyecto actual, para que lo tenga en cuenta en el
momento de compilar (tarea que se realizará más adelante).
INTRODUCIR COMPONENTES EN EL ARCHIVO DE CAPTURA DE
ESQUEMÁTICOS

A continuación hay que dibujar el esquemático del diseño. Para introducir


un componente en la ventana de captura hay que pulsar el botón
denominado “symbol tool” que aparece señalado en la imagen siguiente.

Aparece entonces la ventana emergente de selección de símbolos como se


muestra en la siguiente figura. Se puede entonces buscar en la carpeta de
la biblioteca los elementos digitales que se requieren.
Al desplegar la carpeta, apareces tres subcarpetas: primitives,
megafunctions, y others.

Primitives: Contiene los componentes básicos de diseño como puertas


lógicas, entradas, salidas, flip-flops, etc.

Megafunctions: Contiene componentes complejos diseñados por Altera a


partir de los componentes básicos.

Others: Contiene otras librerías con funciones configurables y circuitos


comerciales.

Para seleccionar el componente que se desea introducir, existen dos


alternativas: teclearlo directamente en la casilla Name, o seleccionarlo en la
ventana Libraries, buscando en la librería adecuada. En todo diseño debe
introducirse el componente input y el componente output, que representa
una señal de entrada al circuito de la hoja activa. Cada componente
seleccionado en la herramienta de símbolos aparece en la ventana de dibujo
y hay que hacer clic en el lugar donde se quiera insertar. Si se desea
cambiarlo de posición, se puede arrastrar con el ratón o usar la técnica de
cortar y pegar. Si se desea introducir más componentes del mismo tipo, es
posible aplicar la técnica de copiar y pegar para introducir componentes
iguales que ya estén insertados en la hoja sin necesidad de pasar por la
ventana de selección de componentes.

Cablear.

Para conectar los componentes y los puertos de entrada y salida, se debe


realizar el cableado seleccionando con el cursor del ratón una patilla del
componente y, cuando la flecha cambie a una cruz, se puede arrastrar el
cable a la patilla del otro componente, sin soltar el botón del ratón, salvo
que se desee realizar más de un codo, en cuyo caso basta con soltar y
volver a pulsar el botón del ratón, lo que permitirá hacer un nuevo codo.
Otra forma de dibujar un cable es seleccionando el icono que se muestra en
la siguiente figura y pulsando con el ratón sobre el punto donde queremos
que empiece el cable. Esto es necesario para conectar un cable a otro, en
lugar de a una patilla.
Asignar nombres a los componentes y a los puertos

Para cambiar el nombre del puerto de entrada hay que hacer doble clic
encima de “pin_name” y cambiar el nombre a continuación. Si se hace
doble clic en el símbolo input, aparece la ventana de la Figura siguiente,
donde también se puede introducir el nombre.
Un procedimiento similar se realiza para cambiar los nombres a los
componentes.

COMPILAR EL CIRCUITO

Para compilar, primero hay que guardar el esquematico, y luego arrancar el


Compilador Start Compilation, que se encuentra en la primera opción del
menú Processing.

Pasados unos instantes terminará el proceso con una ventana en la que se


informa del número de avisos (warnings) que se han producido en el
proceso.

Si se produce algún error, aparecerá la ventana de Messages, donde se


mostrarán los errores producidos. Es muy importante leer detenidamente el
texto del error en la ventana de mensajes, pues indica cuál es el problema.
Si se hace doble clic sobre el mensaje de error, el programa abre la ventana
donde lo ha localizado y lo resalta. Una vez que se hayan corregido todos
los errores mostrados por Quartus II, hay que guardar los cambios
realizados y volver a compilar (pulsar el botón Start de la ventana
Processing). Si aparecen nuevos errores, se han de subsanar y repetir el
proceso hasta que compilación sea satisfactoria.

VISUALIZAR LA JERARQUÍA

Para Visualizar la Jerarquía del proyecto ha de consultarse la ventana


Project Navigator que se encuentra en la partes superior izquierda, la
opción Utility Windows del menú View.
ASIGNAR PATILLAS DE LA FPGA A TERMINALES DE ENTRADA Y
SALIDA DEL ESQUEMA

Una vez que se ha verificado que el esquemático del proyecto está libre de
errores, el siguiente paso es la asignación de las patillas físicas del
dispositivo de lógica programable (FPGA) a los terminales de entrada y
salida del esquema del nivel superior de la jerarquía. Para ello hay que
elegir la opción Pin Planner del menú Assignments. Aparecerá entonces la
ventana de la Figura.

Para asignar las patillas de la FPGA a los terminales del esquema se puede
hacer de tres formas. La primera consiste en hacer doble clic en la columna
Location y en la fila del puerto que se quiere asignar, y a continuación elegir
el pin correspondiente al pin de la lista desplegada. Por ejemplo, al terminal
‘A0’ se le ha asignado el pin L22 en la figura siguiente.
La segunda forma consiste, primero, en seleccionar uno de los puertos
haciendo clic en la fila deseada dentro de la columna Node Name y teclear
el nombre en la celda location correspondiente (es la recomendada si
sabemos el nombre) y, tercero, arrastrar dicho terminal sobre uno de los
pines del mapa de la FPGA que hay en la parte superior de la ventana.

Debe tenerse presente que la tarjeta DE0 Nano tiene unos pines de la FPGA
conectados a ciertos leds, botones y circuitos integrados. Puede encontrar
esta distribución en el manual de usuario de la tarjeta.

Si el proyecto ya había sido compilado, debe volver a compilarse para que


se tengan en cuenta estas nuevas configuraciones en el archivo que se
transfiere a la FPGA.

Simulación

Una vez compilado se genera el archivo de configuración de la FPGA y es


posible transferirlo a través de la interfaz JTAG que se emplea en la
comunicación entre el computador y el USB Blaster. Sin embargo, la
simulación es conveniente pues permite seguir fácilmente los cambios
temporales de las señales. Para conseguir ver el mismo número de señales
en el circuito real se necesita un analizador lógico, que es más caro,
voluminoso y delicado. Además, con la simulación se pueden analizar
señales internas, lo que permite depurar el funcionamiento del circuito,
finalmente, la simulación permite corregir errores en el diseño y comprobar
el funcionamiento del mismo sin necesidad de disponer del hardware.

Existen varios simuladores de diseños digitales disponibles en el mercado


que son compatibles con la plataforma Quartus II. En el disco de instalación
de aplicaciones para trabajar con la plataforma DE0 Nano se dispone de la
herramienta ModelSim-Altera, por lo que se empleará este programa para
realizar la simulación funcional de los diseños digitales durante este curso. A
continuación se describirán los pasos necesarios para realizar la simulación
a través de ModelSim.

1) Generación del archivo de vectores de prueba

Para simular un diseño, es necesario generar el conjunto de patrones de las


señales de entrada que permiten evaluar el funcionamiento del sistema
digital lo más completo posible. La generación de este conjunto de patrones
es conocido como vectores de prueba o banco de pruebas (testbench). El
simulador ModelSim permite que le sean introducidos estos patrones de
prueba a través de un archivo VHDL. Desde la aplicación Quartus II es
posible generar este archivo con la estructura básica para la simulación,
luego de realizar la compilación del diseño digital, a través del menú
“Processing”. Sin embargo, el archivo generado debe ser editado para
añadir la descripción de la evolución en el tiempo las señales de entrada
que se desean verificar.

Para generar el archivo VHDL con para la simulación, se da clic en


“Processing”, luego en “Start”, luego en “Start Test Bench Template Writer”.
Entonces, el archivo que contiene la plantilla se creará en la carpeta de
trabajo bajo el directorio “simulation/modelsim/” con el nombre del
proyecto y con la extensión .vht.

DESCRIPCIÓN DEL ARCHVO VHT

El proceso siguiente a la generación de este archivo vht, es la edición de los


estímulos que permiten simular el circuito (vectores de prueba). Este es un
archivo de texto y está dividido en varios bloques:

1) El bloque de librerías empleadas en la simulación.


2) El bloque de entidad con el nombre dado por defecto: ENTITY
nombredelproyecto_vhd_tst.
3) El bloque de arquitectura con las señales de entrada y salida del circuito
a simular.
4) El componente a simular, al que se le asigna la instancia (i1) y sus
conexiones.
5) Finalmente los procesos (PROCESS) que contienen los vectores de
prueba. Es en esta sección en la que se editan las señales de entrada
para simular todos los casos posibles que permitan comprobar el diseño
digital.

Es importante obtener una combinación lo más completa posible de las


señales de entrada para verificar que el circuito funciona correctamente
bajo cualquier circunstancia.

A continuación se muestra el contenido de una archivo VHT.

-- ***************************************************************************
-- This file contains a Vhdl test bench template that is freely editable to
-- suit user's needs .Comments are provided in each section to help the user
-- fill out necessary details.
-- ***************************************************************************
-- Generated on "01/19/2017 18:22:28"
-- Vhdl Test Bench template for design : pract2
--
-- Simulation tool : ModelSim-Altera (VHDL)
LIBRARY ieee;
USE ieee.std_logic_1164.all;
ENTITY pract2_vhd_tst IS
END pract2_vhd_tst;
ARCHITECTURE pract2_arch OF pract2_vhd_tst IS
-- constants
-- signals
SIGNAL A0 : STD_LOGIC;
SIGNAL A1 : STD_LOGIC;
SIGNAL AigualB : STD_LOGIC;
SIGNAL AmayorB : STD_LOGIC;
SIGNAL AmenorB : STD_LOGIC;
SIGNAL B0 : STD_LOGIC;
SIGNAL B1 : STD_LOGIC;
COMPONENT pract2
PORT (
A0 : IN STD_LOGIC;
A1 : IN STD_LOGIC;
AigualB : OUT STD_LOGIC;
AmayorB : OUT STD_LOGIC;
AmenorB : OUT STD_LOGIC;
B0 : IN STD_LOGIC;
B1 : IN STD_LOGIC
);
END COMPONENT;
BEGIN
i1 : pract2
PORT MAP (
-- list connections between master ports and signals
A0 => A0,
A1 => A1,
AigualB => AigualB,
AmayorB => AmayorB,
AmenorB => AmenorB,
B0 => B0,
B1 => B1
);
init : PROCESS
-- variable declarations
BEGIN
-- code that executes only once
WAIT;
END PROCESS init;
always : PROCESS
-- optional sensitivity list
-- ( )
-- variable declarations
BEGIN
-- code executes for every event on sensitivity list
WAIT;
END PROCESS always;

END pract2_arch;
Como puede notar, en el ejemplo que se acaba de mostrar aún no se ha
realizado la edición de las señales de entrada.

EDITANDO EL VHT DE PRUEBA

Para que la simulación tenga efecto, es necesario introducir los estímulos en


el archivo de vht. Esto se edita desde QuartusII. Si este archivo de
simulación aún no esta abierto, se puede abrir siguiendo la siguiente ruta:

Seleccione “File”, luego seleccione “Open”, luego de clic en el directorio


“simulation”, luego de clic en “modelsim” y seleccione el archivo con el
mismo nombre del circuito en cuestión y con extensión VHT.

El archivo se abre en la ventana de edición de QuartusII. Se puede editar


entonces los estímulos y su forma de onda para simular el circuito digital.
Se introducen los vectores de prueba para los valores de las señales de
entrada, con el objeto de hacer todas las combinaciones posibles. Es decir,
para comprobar el circuito.

Se introducen los valores en la sección PROCESS justo despues de la


palabra reservada BEGIN.

Lo primero que se debe hacer es inicializar las variables de entrada en 0


lógico. En las siguientes dos líneas se muestra como se hace.

A <= '0';

B <= '0';

Para que las señales de entrada duren un tiempo determinado en el valor


asignado y así poder observar la respuesta del sistema se debe indicar este
tiempo a través de las palabras reservadas “wait for” y empleando las letras
reservadas:

“n” para nano, “m” para mili, etc. y la letra “s” para segundos. A
continuación se asignará un tiempo de sostenimiento de los valores
asignados a las señales de entrada de 100 nanosegundos.

wait for 100 ns;

Entonces para introducir todas las posibles combinaciones de las señales de


entrada, debe repetir los pasos anteriores las veces que sean necesarios.

Paso para simular:

Ir al menú principal, luego seleccionar “Assignments” luego seleccionar


“Settings” posteriormente pulsar “Simulation”. Lo que despliega el cuadro
de dialogo siguiente.
Debe estar indicado en el recuadro “Tool name”, la opción “ModeSim-
Altera”. A continuación se selecciona la opción “Compile test bench” y se da
clic en el botón “Test Benches”. Entonces se abrirá otro cuadro de dialogo,
el cual permite seleccionar el archivo de test que se va a usar. En este
cuadro de dialogo dé clic en “New”. A continuación se abre la siguiente
ventana. Entonces debe rellenarse el campo “Test bench name” con el
nombre de la entidad que aparece al principio del archivo, usualmente la
entidad tiene el mismo nombre del archivo VHT. En el cuadro siguiente con
nombre “Top level module in test bench” debe escribirse el nombre de la
entidad. Posteriormente se debe seleccionar “Use test bench to perfom
VHDL timing simulation” y escribir el número de la instancia i1 en el
recuadro “Design instance name in test bench”.

En el recuadro siguiente a “Test bench files” se debe indicar la ruta en


donde se encuentra el archivo VHT. Este está ubicado bajo el directorio
simulation/modelsim. Una vez indicada la ruta de acceso al archivo VHT, se
debe adicionar dando clic en Add. Esto hace que aparezca el archivo en la
lista del recuadro inferior.
Finalmente se debe dar OK.

El paso siguiente es ejecutar el simulador ModelSim-Altera. Para ello se


introduce en el menú principal la opción “Tools”, luego “Run EDA Simulation
Tool”, posteriormente “EDA Gate Level Simulation”. Aparece entonces la
ventana de en la figura. Clic en Run.

Este proceso arranca el simulador ModelSim-Altera con el archivo de


testbench y una serie de ventanas en el simulador, según este configurado
el menú View (en el menú principal). La vista clásica es como se refleja en
la Figura. Se ven tres ventanas, la primera de ellas indica la librería con los
componentes que se simulan (arriba izquierda). La ventana que esta
localizada en la parte izquierda- abajo, contiene los objetos, que
representan señales del circuito y finalmente la ventana con las de formas
de onda (Wave) a la derecha de la imagen.

Tipos de archivos generados:

.qpf archivo de proyecto de Quartus II

6. Procedimiento.

1. Deberán conformarse grupos de trabajo compuestos por máximo 3


estudiantes, estos grupos de trabajo realizarán las prácticas durante
todo el semestre académico.
2. Todos los grupos deberán utilizar el software determinado por el docente
para la descripción, simulación y configuración en la FPGAs de los
diseños digitales planteados. El software lo pueden descargar
directamente de la página del fabricante o pedirlo al docente.

1) Basándose en la información entregada en esta práctica, cree un


proyecto y simule el siguiente esquemático y verifique el
comportamiento de cada una de las compuertas lógicas.
2) Basándose en la información entregada en esta pràctica para cree un
proyecto e implemente el siguiente esquemático, cree la tabla de
verdad y explique el comportamiento del circuito lógico basándose en
la simulación.

También podría gustarte