






Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
implementar, simular y alambrar un circuito que reciba cuatro entradas BCD a traves de dip switches y despliegue el n´umero correspondientemediante cuatro displays de siete segmentos
Tipo: Apuntes
1 / 11
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!







Que el alumno:
Se familiarice con el uso del software Quartus y Simulink
Se familiarice con el uso de circuitos contadores
Comience a trabajar tanto con esquem´aticos como VHDL
Empiece a utilizar la FPGA para la implementaci´on de circuitos l´ogicos
Se requiere implementar, simular y alambrar un circuito que reciba cuatro entradas BCD a trav´es de dip switches y despliegue el n´umero correspondiente mediante cuatro displays de siete segmentos.
En la Fig. 1 se muestra el esquema general del circuito a implementar. El circuito se va a implementar en Quartus, para lo cual es conveniente separarlo en distintos segmentos. La pr´actica consiste en:
a) Decodificador 2 a 4 b) Multiplexor 2 a 1 c) Decodificador BCD a 7 segmentos
Entrada Salida S 0 S 1 D 0 D 1 D 2 D 3 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 1 0 1 1 0 0 0 1
Cuadro 1: Tabla de verdad para el decodificador 2 a 4
Figura 1: Esquema del circuito a implementar
3.1.1. Decodificador 2 a 4
Recibe dos bits de entrada y tiene cuatro bits a la salida. De acuerdo a la tabla 2. Implementarlo utilizando VHDL. En la secci´on 4.2 se muestra como implementar ´este componente.
a = m 2 m 0 + m 1 m 2 + m 3 m 1 + m 3 m 2 m 0 + m 3 m 1 m 0 + m 3 m 2 m 1 b = m 3 m 2 + m 2 m 0 + m 3 m 1 m 0 + m 3 m 1 m 0 + m 3 m 1 m 0 c = m 1 m 0 + m 3 m 2 + m 3 m 2 + m 3 m 1 + m 3 m 0 d = m 3 m 1 m 0 + m 2 m 1 m 0 + m 2 m 1 m 0 + m 2 m 1 m 0 + m 3 m 2 m 0 e = m 3 m 2 + m 1 m 0 + m 3 m 1 m 0 + m 2 m 1 m 0 f = m 1 m 0 + m 3 m 2 + m 3 m 1 + m 3 m 2 m 1 + m 2 m 1 m 0 g = m 3 m 2 + m 1 m 0 + m 3 m 0 + m 2 m 1 + m 3 m 2 m 1
ModelSim es el software mediante el cual se pueden simular los circuitos crea- dos en Quartus previo a programarlos a la FPGA. En general, es recomendable simular cada componente que se implementa de manera individual previo a in- cluirlo en el proyecto general. Para ´esta practica, por tratarse de componentes sencillos, es posible simular todas las entradas para verificar todas las posibles salidas. Para componentes m´as complejos, se pueden simular casos espec´ıficos para verificar esas salidas. En 4.3 se describe el uso b´asico de modelsim.
El circuito general es conveniente implementarlo utilizando BDF (ver 4.5) en un nuevo archivo. A ´este circuito se importar los componentes implementados (decodificadores, multiplexor) as´ı como el contador y el divisor de frecuencia. Tanto el contador como el divisor de frecuencia NO se tienen que implementar, se pueden descargar desde la p´agina del curso.
Un circuito contador tiene como entrada una se˜nal de reloj y a la salida se tiene una se˜nal de n bits que incrementa en 1 a cada nuevo ciclo de reloj hasta llegar a 2n^ − 1 y despu´es comienza desde 0.
3.4.1. Divisor de Frecuencia
Un divisor de frecuencia recibe una se˜nal de reloj de entrada y a la salida se tiene una se˜nal que corresponde a un reloj de menor frecuencia.
El circuito general se puede dividir en las siguiente partes: circuito de entra- da, FPGA y circuito de salida/visualizaci´on.
3.5.1. Circuito de entrada
El circuito de entrada es la interfaz mediante la cual se van a introducir se˜nales a la FPGA.
Los circuitos implementados en Quartus, se programan en la FPGA. Cuando se tenga el circuito completo, conectar la FPGA a la computadora y programarla (ver 4.6).
3.6.1. Circuito de salida/visualizaci´on
El circuito de salida consiste en displays de siete segmentos y transistores con sus correspondientes resistencias.
Quartus es un software para dise˜no de circuitos l´ogicos, los cuales se pueden tanto simular como programar en una FPGA. Para la FPGA que se va a utilizar durante el curso, para cada nuevo proyecto se debe seleccionar como disposi- tivo Cyclone IV E: EP4CE22F17C6. Un proyecto en Quartus puede contener m´ultiples archivos, en este curso se estar´a trabajando tanto con archivos tipo Block Diagram/Schematic File como archivos VHDL. Crear un nuevo proyecto mediante: File − > New Proyect Wizard. Se abre una ventana para configu- rar el proyecto: seleccionar la ubicaci´on del proyecto y su nombre. Seleccionar un proyecto vacio y no se agregan archivos. En la ventana Family, Device & Board Settings seleccionar Family − > Cyclone IV E, en Available devices − > EP4CE22F17C6, el resto se quedan con la opci´on preestablecida y finalizar la configuraci´on: bot´on Finish.
Algunas tutoriales y referencias de VHDL son:
M. Morris Mano. Logic and Computer Design Fundamentals. Prentice Hall; 4 edition (June 17, 2007), 2007. isbn: 013198926X, Cap´ıtulo 4
David Jaime Gonz´alez Maxinez. Programaci´on de sistemas digitales con VHDL. Grupo Editorial Patria, 2014
David G Maxinez y Jessica Alcal´a Jara. “VHDL: el arte de programar sistemas digitales”. En: ()
Jan Van der Spiegel. VHDL Tutorial. 2006. url: https://www.seas. upenn.edu/~ese171/vhdl/vhdl_primer.html
4.2.1. Ecuaciones:
14 architecture function_table of decoder_2_to_4 is 15 begin 16 D0 <= NOT ( S (0)) AND NOT ( S (1)) ; 17 D1 <= NOT ( S (0)) AND S (1); 18 D2 <= S (0) AND NOT ( S (1)); 19 D3 <= S (0) AND S (1); 20 end function_table ;
4.2.2. with/select
14 architecture function_table of decoder_2_to_4 is 15 signal temp : std_logic_vector (0 to 3) := "0000"; 16 begin 17 with S select 18 temp <= "1000" when "00" , 19 "0100" when "01" , 20 "0010" when "10" , 21 "0001" when "11" , 22 " XXXX " when others ; 23 D0 <= temp (0); 24 D1 <= temp (1); 25 D2 <= temp (2); 26 D3 <= temp (3); 27 end function_table ;
Cuando se tenga implementado el circuito, utilizar el bot´on Start Compila- tion (Processing − > Start Compilation) para compilar el proyecto. Si existen errores, revisar el mensaje y corregir lo que sea necesario.
Si es la primera vez que se utiliza ModelSim-Altera en una computado- ra, es necesario configurar el simulador en “Tools − > Options − > EDA Tool Options”. En la secci´on de Modelsim-Altera debe de ir la siguiente ruta /opt/altera/modelsim ase/linuxaloem. Despues, checar que la configuraci´on se encuentre igual a la tabla 2 mediante: “Assignments − > Settings − > EDA Tool Settings − > Simulation”.
Figura 2: Configuraci´on
Para abrir model sim: “Tools − > Run Simulation Tool − > RTL Simula- tion”. Se debe abrir una ventana nueva con ModelSim. En la parte izquierda de la ventana ModelSim, se encuentra la secci´on “Li- brary”, expandir “Work − > nombre del proyecto”. Doble click al proyecto. Las se˜nales del proyecto aparecen en la secci´on objects. Ahora se deben definir los valores que tomar´an las se˜nales durante la simulaci´on: click derecho en una se˜nal de entrada − > Modify − > Apply Wave. Existen 5 opciones:
Clock - Solamente se puede utilizar con se˜nales de 1 bit.
Constant - De tratarse de un vector, es posible asignar el valor en formato binario o hexadecimal.
Random - Para los prop´ositos del laboratorio, ´este tipo de se˜nal no resulta muy util.
Repeater - Se pueden definir m´ultiples valores que se van a repetir de acuerdo a los par´ametros que se utilicen
Counter - Similar a Repeater pero solamente se define el valor inicial y el final. Es importante tomar en cuenta la unidad en que se realicen las simulaciones, picosegundos (ps) suele ser una buena opci´on. Es posible agregar se˜nales por partes variando el tiempo de inicio y fin, por ejemplo, el resultado de una se˜nal Counter se puede obtener utilizando segmentos de se˜nales Constant. Para correr la simulaci´on, agregar las se˜nales de salida: Simulate − > Run − > Run-All. Verificar que las se˜nales de salida tengan los valores correctos.
Para agregar un archivo al proyecto, desde la aplicaci´on Files (navegador de archivos del sistema operativo) copiar el archivo a la carpeta del proyecto y agregarlo desde Quartus al proyecto: Project − > Add/Remove Files in Project.
Crear un nuevo archivo de tipo Block Diagram/Schematic File. Una vez crea- do el archivo, en la parte izquierda de la pantalla en Proyect Navigator cambiar la vista de Hierarchy a Files. Buscar el archivo BDF que se acaba de crear, hacer click derecho y establecerlo como Top level entity. NOTA: ModelSim no puede simular archivos BDF, si se requiere simular, es necesario convertirlos a VHD. Por esto, es importante simular los componentes de manera individual antes de crear el archivo BDF. En este tipo de archivo, el circuito se implementa gr´aficamente. Para selec- cionar un componente para ser incluido en el circuito, utilizar el bot´on que se muestra en la figura 3 que se encuentra en la barra de herramientas de quar- tus. Mediante ´esta herramienta se pueden agregar compuertas l´ogicas y otros componentes como vcc y gnd.
NOTA: Es necesario compilar el proyecto despu´es de la asignaci´on de todos los pines.
4.6.2. Alambrado
Para el alambrado del circuito en la protoboard, conviene dividir el trabajo entre los miembros del equipo. En la protoboard se deben alambrar:
Cuatro dip switches de cuatro salidas cada uno.
Cuatro displays de siete segmentos de c´atodo com´un. Notar las salidas del circuito BCD a siete segmentos implementado en la FPGA son com´unes a los cuatro displays.
Transistores asociados a los displays.
Resistencias asociados a los displays y transistores.
Vcc a los dip switches
Tierra a los transistores.
Antes de conectar la FPGA a la computadora, revisar el alambrado.
4.6.3. Programar la FPGA
Para programar la FPGA, buscar el bot´on de Programmer en la barra de herramientas de Quartus. Se deber´ıa mostrar autom´aticamente el dispositivo en la computador y solamente es necesario apretar el bot´on upload.
4.6.4. Extra: BDF a VHDL
Si fuera necesario simular un archivo BDF, a continuaci´on se describen los pasos para convertir de BDF a VHDL y poder simular. La herramienta que permite simular los circuitos es ModelSim-Altera. Esta aplicaci´on utiliza archivos de descripci´on de lenguaje as´ı como archivos bech para simular. Para generar un archivo vhdl s´olo dirigete al archivo de esquema de bloques y selecciona la opci´on “File − > create / update − > Create HDL Design File from Current file”, selecciona la opci´on VHDL. Finalmente agrega el archivo al proyecto “Assignments − > Settings”. Esto mostrar´a una ventana, en la secci´on “Files” busca el archivo con el boton “...” y agregalo “add”, pero retira el archivo de bloques con “remove”. Aplica los cambios y cierra la ventana.
Es necesario realizar la simulaci´on de los componentes implementados me- diante ModelSim. Verificar que los resultados sean los esperados. Al alambrar el circuito, las principales fuentes de error son:
Asignaci´on de pines
Conexi´on de los transistores
Conectar el dipswitch correctamente (revisar las resistencia pullup)
Cuando el circuito se encuentre funcionando, realice un experimento para determinar un rango de frecuencias en las que el circuito funciona correctamente. ¿Porqu´e si el decodificador a siete segmentos saca la misma se˜nal a los dis- plays, se pueden ver n´umeros distintos? textbooks