Documente Academic
Documente Profesional
Documente Cultură
Guia de Practica/Laboratorio:
Microelectrónica
Autor:
Alexander B. H ILARIO TACURI
UNIVERSIDAD NACIONAL DE SAN AGUSTÍN
MICROELECTRÓNICA
Prof. PhD. Alexander B. Hilario T.
LABORATORIO 1
1.OBJETIVOS
• Aprender el flujo de diseño con el ISE: Sı́ntesis, simulación y generación del Bitstream.
• Aprender como asignar pins de entrada y salida del FPGA y cargar el Bitstream en el
Nexys-4 DDR Artix-7 FPGA Board.
2. CODIFICACIÓN VHDL
• La placa Nexys-4 DDR puede recibir alimentación de su puerto USB. Conecte la placa al
computador vı́a cable USB. Si no enciende, conecte la fuente de alimentación de la placa.
1
• 1 Señal de salida, S (Suma)
• 1 Señal de salida,Cout (Carrie)
5. FLUJO DE DISEÑO
• Crear un nuevo proyecto ISE. Seleccionar el dispositivo: XC7A100T-1CSG324 Artix-7
FPGA.
• Escriba el código VHDL para el sumador completo de y el comparador de 4 bits. Sintetice
su circuito.
• Escriba el test-bench VHDL para probar el circuito para todas las posibles combinaciones
de las entradas.
• Realice la Functional Simulation y la Timing Simulation (Simulación de comportamiento
y temporal).
• Asignación de entradas y salidas para el sumador completo: Crear un archivo UCF. Use
SW0-SW2 en la placa Nexys-4 DDR para las entradas y LED(0)-LED(1) para la salida.
• Asignación de entradas y salidas para el comparador: Crear un archivo UCF. Use SW0-
SW7 en la placa Nexys-4 DDR para las entradas y LED(0)-LED(2) para la salida.
• Generar el archivo bitstream.
• Descargar el bitstream en el FPGA.
6. PRESENTACIÓN DE INFORME
• Cuando el docente lo autorice, es decir luego de presentar el laboratorio funcionando,
puede mandar un correo electrónico a: ahilariot@unsa.edu.pe con las siguientes especifi-
caciones:
– Asunto: Microelectrónica - Informe de Laboratorio X, Grupo Y.
– El correo electrónico debe contener: Informe en pdf (Escrito en LATEX) sin ningún
tipo de compresión (ZIP o RAR), programas escritos en vivado (Comprimidos en
un ZIP)
2
UNIVERSIDAD NACIONAL DE SAN AGUSTÍN
MICROELECTRÓNICA
Prof. PhD. Alexander B. Hilario T.
LABORATORIO 2
1. OBJETIVOS
2. CODIFICACIÓN VHDL
3.1 Multiplexor 8 a 1:
El Multiplexor tendrá:
3.2 Decodificador de 3 a 8:
El Decodificador tendrá:
1
3.3 Flip-Flop con reloj Sı́ncrono:
El Flip-Flop tendrá:
• 1 Señal CLOCK
Comportamiento:
Parte 1.
Parte 2.
• Con el Flip-Flop realizado diseñar un contador sincrono de 4 bits que contara con:
2
Q3 Q2 Q1 Q0 Q3 Q2 Q1 Q0
ESTADO ACTUAL SIGUIENTE ESTADO
0 0 0 0 0 0 0 1
0 0 0 1 0 0 1 0
0 0 1 0 0 0 1 1
0 0 1 1 0 1 0 0
0 1 0 0 0 1 0 1
0 1 0 1 0 1 1 0
0 1 1 0 0 1 1 1
0 1 1 1 1 0 0 0
1 0 0 0 1 0 0 1
1 0 0 1 1 0 1 0
1 0 1 0 1 0 1 1
1 0 1 1 1 1 0 0
1 1 0 0 1 1 0 1
1 1 0 1 1 1 1 0
1 1 1 0 1 1 1 1
1 1 1 1 0 0 0 0
4. FLUJO DE DISEÑO
• Escriba los test-bench VHDL para probar los circuitos para todas las posibles combina-
ciones de las entradas de cada proyecto.
– Multiplexor: Crear un archivo UCF. Use SW0-SW7 para las entradas, use SW11
para la habilitacion, use SW8-SW10 para el selector y LED(0) para la salida en la
placa Nexys-4 DDR.
– Decodificador: Crear un archivo UCF. Use SW0-SW2 para las entradas, use SW3
para la habilitación, use LED(0)-LED(7)para las salidas.
– Flip-Flop: Crear archivo UFC. Use SW0 para la entrada D, SW1 para Reset, CLK100MHZ
para la entrada CLOCK, use LED(0) para la salida Q y use LED(1) para la salida
Qbar.
3
5. PRESENTACIÓN DE INFORME
4
UNIVERSIDAD NACIONAL DE SAN AGUSTÍN
MICROELECTRÓNICA
Prof. PhD. Alexander B. Hilario T.
LABORATORIO 3
Fecha de entrega: 25 de Setiembre
1. OBJETIVOS
• Utilizar la descripción estructural en VHDL.
• Escriba el test-bench VHDL para probar el circuito y pruebe los casos mas representa-
tivos.
• Asignación de entradas y salidas: Crear un archivo UCF. Use SW0 a SW7 en la placa
Nexys-4 DDR para las entradas, y dos displays para mostrar el resultado final.
1
Figure 1: Multiplicador
5. PRESENTACIÓN DE INFORME
2
UNIVERSIDAD NACIONAL DE SAN AGUSTÍN
MICROELECTRÓNICA
Prof. PhD. Alexander B. Hilario T.
LABORATORIO 4
1. OBJETIVOS
2. CODIFICACIÓN VHDL
3. DESARROLLO DE LA PRACTICA
Pasos a seguir:
1
– Asigna los valores de random (MSB-1 a 0) a (MSB a 1) y luego asigna el valor de
temp a random(0).
– Terminar la sentencia if y todo el proceso.
• Para esta aplicación en FPGA también se necesita un divisor de reloj para observar la
secuencia en la tarjeta Nexys 4 ddr
• El divisor de reloj tendrá una entrada ClOCK y una salida de 1 bit, la salida es uno de los
bit de salida del contador (que serán las señales para nuestro uso).
4. FLUJO DE DISEÑO
• Escriba el test-bench VHDL para probar el proyecto y pruebe los casos mas representa-
tivos.
• Asignación de entradas y salidas: Crear un archivo UCF. Use los display de 7 segmentos
CA-CG para las salidas (número aleatorio).
2
UNIVERSIDAD NACIONAL DE SAN AGUSTÍN
MICROELECTRÓNICA
Prof. PhD. Alexander B. Hilario T.
LABORATORIO 5
1. OBJETIVOS
2. CODIFICACIÓN VHDL
3. DESARROLLO DE LA PRACTICA
• Problema: En este laboratorio se requiere diseñar una maquina expendedora la cual ten-
dra en venta 2 productos CAKE y TOFFEE los cuales los alumnos elegirán los precios de
cada producto y como salida darán algún cambio o vuelto al realizar la compra de estos
productos.
Pasos a seguir:
1
• Como se observa la maquina tiene 7 entradas:
– CLOCK.
– Reset.
– Moneda de 10 céntimos.
– Moneda de 50 céntimos.
– Moneda de 1 sol.
– Toffee.
– Cake.
• Tiene 4 Salidas:
– Cake.
– Toffee.
– Moneda de 10 céntimos.
– Mondeda de 50 céntimos.
• En el FPGA se implementaran 3 partes.
– La programación de la maquina expendedora.
– Un divisor de reloj el mismo del laboratorio de anterior.
– Modulo superior para la combinación de ambos.
4. FLUJO DE DISEÑO
• Crear un nuevo proyecto Vivado. Seleccionar el dispositivo: XC7A100T-1CSG324 Artix-
7 FPGA.
• Escriba el código VHDL para el proyecto.
• Escriba el test-bench VHDL para probar el proyecto y pruebe los casos mas representa-
tivos.
• Realice la Functional Simulation y la Timing Simulation (Simulación de comportamiento
y temporal).
• Asignación de entradas y salidas: Crear un archivo UCF. Use los display de 7 segmentos
CA-CG para las salidas del vuelto de los productos, use el LED0 a LED1 para veri-
ficar cual es el producto comprado, use SW0 a SW2 para seleccionar los precios y use 2
botones pulsadores de la placa para seleccionar el producto.
• Generar el archivo bitstream
• Descargar el bitstream en el FPGA.
2
UNIVERSIDAD NACIONAL DE SAN AGUSTÍN
MICROELECTRÓNICA
Prof. PhD. Alexander B. Hilario T.
LABORATORIO 6
1. OBJETIVOS
2. CODIFICACIÓN VHDL
3. DESARROLLO DE LA PRACTICA
• Escritura en la memoria: (wr rd = 1): La entrada de 4 bits Din se escribe en uno de los
registros. La señal address[2..0] selecciona el registro a ser escrito. Aquı́, el display de
7 segmentos debe mostrar 0. Ejemplo: Si address = 101, entonces Din es escrito en el
registro 5.
4. FLUJO DE DISEÑO
1
• Escriba el código VHDL para el circuito de la Figura 1. Crear un archivo separado para i)
Registro con habilitador, ii) MUX con habilitador, iii) Decodificador con habilitador, iv)
decodificador de 7 segmentos-hexadecimal y v) archivo principal.
• Asignación de entradas y salidas: Crear un archivo UCF. Use SW0 a SW7 en la placa
Nexys-4 DDR para las entradas, CLK100MHZ para la entrada clock, el pulsador CPU RESET
para resetN y el display de 7 segmentos para la salida.
Figure 1: RAM
2
UNIVERSIDAD NACIONAL DE SAN AGUSTÍN
MICROELECTRÓNICA
Prof. PhD. Alexander B. Hilario T.
LABORATORIO 7
Fecha de entrega: 15 de Noviembre
1. OBJETIVOS
• Describir maquinas de estado finito en VHDL.
• Implementar un sistema digital: Camino de datos y unidad de control
2. CODIFICACIÓN VHDL
• Revise el material del curso.
3. DESARROLLO DE LA PRACTICA
• Problema: Dado dos números unsigned A y B, diseñe un circuito que produce el cociente
Q y el residuo R. El algoritmo que implementa la division tradicional es:
• Una arquitectura iterativa es mostrada en la Figura 2 para A con 6 bits y B con 4 bits. El
registro R guarda el residuo. En este diseño, una operación de division comienza cuando
E = 1 (Donde los valores A y B son capturados). Entonces, a cada ciclo del reloj se
ejecuta i) Cambio en el siguiente bit de A o ii) Cambio en el siguiente bit de A y restamos
B. La señal done es creada para indicar que la operación ha sido completada y el resultado
aparece en Q y R.
1
Figure 2: Circuito para la división iterativa
• El contador de modulo 6 incluye una entrada sı́ncrona sclr que limpia el contador cuando
E = sclr = 1 y una salida zC que es activada cuando el contador llega a 5.
• Le f t −shit register: Note que uno de los registros de cambio incluye una entrada sı́ncrona
sclr que limpia la salida de los registros cuando E = sclr = 1.
• Escriba el código VHDL para el circuito de la Figura 2. Crear un archivo separado para
i) contador de modulo 6, ii) shi f t register, iii) shi f t register con entrada sclr, iv) registro,
v) sumador, vi) decodificador de 7 segmentos y vii) archivo principal.
2
• Escriba el test-bench VHDL para probar el circuito(Debe de generar una entrada de reloj
de 100 Mhz para las simulaciones) para probar los siguientes casos:
• Asignación de entradas y salidas: Crear un archivo UCF. Use SW0 a SW10 en la placa
Nexys-4 DDR para las entradas, CLK100MHZ para la entrada clock, el pulsador CPU RESET
para resetn, un LED para done, 6 LEDs para Q, y el display de 7 segmentos para R.
3
UNIVERSIDAD NACIONAL DE SAN AGUSTÍN
MICROELECTRÓNICA
Prof. PhD. Alexander B. Hilario T.
LABORATORIO 8
1. OBJETIVOS
2. CODIFICACIÓN VHDL
• wr reg adxl362: Este circuito maneja la comunicación SPI básica con el ADXL362
(Ver Figura 1). El usuario proporciona dirección, datos y lectura/escritura. Luego, una
transacción de lectura/escritura se ejecuta a través del bus SPI (estructura de datos especi-
ficada en la hoja de datos ADXL362). Use el código VHDL wr reg axl362.vhd (use todos
los archivos de diseño .vhd en accelerom.zip excepto accelerom.vhd) con SCLK T = 105
(ciclos de 10 ns en un perı́odo de 1000 Hz SCLK).
1
Figure 1: Circuito del Laboratorio 6
• Esta es la lista de registros con los que tratamos en este laboratorio, que es un modo de
operación básico. Consulte la hoja de datos de ADXL362 para obtener una lista completa
de los registros y modos de operación.
2
Figure 2: ASM del Laboratorio 6
3
Figure 3: Circuito serializador del Laboratorio 6
4. FLUJO DE DISEÑO
• Escriba el código VHDL que implemente el circuito del laboratorio. La descripción es-
tructural es recomendada.
– Dado que SCLK = 1000 Hz, la simulación tardará mucho tiempo. Sólo para fines
de simulación, utilice SCLK T = 16. Por simplicidad, use MISO = 1. Observe las
señales SPI y verifique que los datos en ODATA LEDS y DAT 7SEG sean correctos.
Use sel para seleccionar lo que se mostrará en ODATA LEDS.
5. PRESENTACIÓN DE INFORME
4
• Cuando el docente lo autorice, es decir luego de presentar el laboratorio funcionando,
puede mandar un correo electrónico a: ahilariot@unsa.edu.pe con las siguientes especifi-
caciones: