Sunteți pe pagina 1din 23

U NIVERSIDAD NACIONAL DE S AN AGUST ÍN

FACULTAD DE PRODUCCI ÓN Y SERVICIOS


E SCUELA PROFESIONAL DE INGENIER ÍA ELECTRONICA

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

Fecha de entrega: 04 de Setiembre

1.OBJETIVOS

• Introducción de programación VHDL para FPGAs.

• Aprender a escribir test benchs en VHDL.

• 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.

• Diseñar, implementar y demostrar un sumador completo y un comparador.

2. CODIFICACIÓN VHDL

• Revise el material referente al curso.

3. NEXYS-4 DDR ARTIX-7 FPGA

• 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.

4.DESARROLLO DEL LABORATORIO

4.1 Sumador completo:

Un sumador completo es un circuito combinacional que forma la suma aritmética de 3 bits


de entrada. Consta de 3 entradas y 2 salidas. Dos de las entradas A y B representan los 2 bits
que van a sumarse, la tercera entrada Cin representa la cuenta que se lleva de la posición previa
significativa mas baja. La salida S representa el valor del bit menos significativo de la suma y la
salida Cout da la cuenta del valor que se lleva de salida.
Diseñar, implementar, demostrar y documentar un sumador completo en VHDL. El sumador
completo tendrá:

• 3 Señales de entrada, A, B, Cin (interruptores Nexys 4 ddr)

1
• 1 Señal de salida, S (Suma)
• 1 Señal de salida,Cout (Carrie)

4.2 Comparador de 4 bits:

Un circuito digital comparador realiza la comparación de dos palabras A y B de N bits


tomadas como un número entero sin signo e indica si son iguales o si una es mayor que otra en
tres salidas A = B, A > B y A < B. Solo una de estas salidas estará a 1 y las demás estarán a 0
dependiendo de los valores de las entradas.
Diseñar, implementar, demostrar y documentar un comparador de 4 bits en VHDL. El compara-
dor tendrá:
• 2 Señales de entrada de 4 bits cada una (interruptores Nexys 4 ddr)
• 3 Señales de salida: mayor, igual, menor (LED indicadores Nexys 4 ddr)

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

Fecha de entrega: 13 de Setiembre

1. OBJETIVOS

• Diseñar, implementar y demostrar el funcionamiento de un multiplexor de 8a1.

• Diseñar, implementar y demostrar el funcionamiento de un decodificador de 3a8.

• Diseñar, implementar y demostrar el funcionamiento de un Flip-Flop con reloj Sı́ncrono.

• Probar circuitos combinacionales y secuenciales en un FPGA.

2. CODIFICACIÓN VHDL

• Revise el material referente al curso.

3. DESARROLLO DEL LABORATORIO

3.1 Multiplexor 8 a 1:

El Multiplexor tendrá:

• 8 Señales de entrada(interruptores Nexys 4 ddr)

• 3 Señales de selección, (interruptores Nexys 4 ddr)

• 1 Señal de habilitación de interruptor(interruptor Nexys 4 ddr)

• 1 Señal de salida (LED)

3.2 Decodificador de 3 a 8:

El Decodificador tendrá:

• 3 Señales de entrada de selección: (Interruptores Nexys 4 ddr)

• 1 Señal de habilitación de interruptor (interruptor Nexys 4 ddr)

• 8 Señales de salida (LEDs Indicadores Nexys 4 ddr )

1
3.3 Flip-Flop con reloj Sı́ncrono:

El Flip-Flop tendrá:

• 1 Señal de entrada, D (Interruptor Nexys 4 ddr)

• 1 Señal de entrada, Reset (Interruptor Nexys 4 ddr)

• 1 Señal CLOCK

• 1 Señal de salida, Q (LEDs Indicador Nexys 4 ddr )

• 1 Señal de salida, Qbar (LEDs Indicadores Nexys 4 ddr )

Comportamiento:
Parte 1.

• La salida debe replicar la entrada siempre que reset sea ’0’.

CLOCK Reset D Q Qbar


Ascendente/Descendente 1 1/0 0 1
Flanco Ascendente 0 0 0 1
Flanco Ascendente 0 1 1 0

Parte 2.

• Con el Flip-Flop realizado diseñar un contador sincrono de 4 bits que contara con:

– Señal de reloj CLOCK


– Señal de entrada, Reset
– Señal de salida, Q
– Señal de salida, Qbar

• La siguiente tabla se aplica cuando Reset esta en valor bajo

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

• Crear 3 nuevos proyecto en Vivado. Seleccionar el dispositivo: XC7A100T-1CSG324


Artix-7 FPGA.

• Escriba el código VHDL para el multiplexor, el decodificador y el Flip-Flop. Sintetice su


circuito.

• Escriba los test-bench VHDL para probar los circuitos para todas las posibles combina-
ciones de las entradas de cada proyecto.

• Realice la Functional Simulation y la Timing Simulation (Simulación de comportamiento


y temporal).

• Asignación de entradas y salidas:

– 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.

• Generar los archivos bitstream.

• Descargar los bitstream en el FPGA.

3
5. 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)

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.

• Probar circuitos combinacionales en un FPGA.


2. CODIFICACIÓN VHDL
• Revise el material del curso.
3. DESARROLLO DE LA PRACTICA
• Problema: Una implementación alternativa de una operación de multiplicación de dos
números unsigned de 4 bits es mostrada en la Figura 1.
4. FLUJO DE DISEÑO
• Crear un nuevo proyecto ISE. Seleccionar el dispositivo: XC7A100T-1CSG324 Artix-7
FPGA.

• Escriba el código VHDL para el circuito de la Figura 1. Use la descripción estructural:


Crear archivos separados para el sumador completo, la Unidad de procesamiento y el
archivo principal.

• Escriba el test-bench VHDL para probar el circuito 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 SW0 a SW7 en la placa
Nexys-4 DDR para las entradas, y dos displays para mostrar el resultado final.

• Generar el archivo bitstream

• Descargar el bitstream en el FPGA.

1
Figure 1: Multiplicador

5. 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 4

Fecha de entrega: 04 de Octubre

1. OBJETIVOS

• Utilizar la descripción estructural y la descripción concurrente en VHDL.

• Probar circuitos combinacionales en un FPGA.

2. CODIFICACIÓN VHDL

• Revise el material del curso.

3. DESARROLLO DE LA PRACTICA

• Problema: En este laboratorio se requiere diseñar un generador de números pseudo-


aleatorios de 8 bits. Un generador de números pseudo-aleatorios es un algoritmo para
generar una secuencia de números cuyas propiedades se aproximan a las propiedades de
secuencias de números aleatorios. La secuencia generada no es verdaderamente aleatoria,
porque está completamente determinada por un conjunto relativamente pequeño de val-
ores iniciales.

Pasos a seguir:

– Declarar la entidad ClOCK como entrada y 8 bits de salida.


– Declara 2 variables temporales,una tan largo como su salida (Rand) y otro de un
solo bit (Temp).
– Inicializa random de tal manera que su bit mas significativo (MSB) sea ”1” y todos
los demás sean ”0” (para obtener un numero aleatorio también pueden ser difer-
entes).
– La variable de un solo bit temp se inicializa en ”0”.
– Utilizar una instrucción if para el aumento de Reloj.
– Realizar un XOR entre el MSB y el MSB-1 del numero random y asignarlo a la
variable temp.

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 mas simple es un contador. Utilizaremos un contador de 32 bits para


esta división de reloj.

• 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

• 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 (número aleatorio).

• 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 5

Fecha de entrega: 16 de Octubre

1. OBJETIVOS

• Utilizar la descripción estructural y la descripción concurrente en VHDL.

• Probar circuitos combinacionales en un FPGA.

2. CODIFICACIÓN VHDL

• Revise el material del curso.

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.

Figure 1: Maquina Expendedora

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

Fecha de entrega: 30 de Octubre

1. OBJETIVOS

• Describir circuitos sı́ncronos en VHDL.

• Aprender la generación de Test − bench para circuitos sı́ncronos.

2. CODIFICACIÓN VHDL

• Revise el material del curso.

3. DESARROLLO DE LA PRACTICA

• Problema: Simulador de una memoria de acceso aleatorio. El circuito de la Figura 1 es


una memoria con 8 direcciones, cada dirección alacena un dato de 4 bits. Las posiciones
de memoria son implementadas por registros de 4 bits. Las señales resetn y clock son
compartidas por todos los registros. Los datos son escritos en (o leı́dos de) uno de los
registros.

• 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.

• Lectura de la memoria: (wr rd = 0): La salida del MUX aparece en el display de 7


segmentos. La señal address[2..0] selecciona el registro de donde el dato es leı́do. Por
ejemplo, Si address = 010, entonces el dato en el registro 2 aparece en el display de 7
segmentos. Si el dato en el registro 2 es 1010, el sı́mbolo A aparece en el display de 7
segmentos.

4. FLUJO DE DISEÑO

• Crear un nuevo proyecto ISE. Seleccionar el dispositivo: XC7A100T-1CSG324 Artix-7


FPGA.

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.

• Escriba el test-bench VHDL para probar el circuito y pruebe al menos 8 escrituras en la


memoria y 8 lecturas de la memoria. Debe de generar una entrada de reloj de 100Mhz
para las simulaciones.

• 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 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.

• Generar el archivo bitstream.

• Descargar el bitstream en el FPGA.

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:

Figure 1: Algoritmo tradicional de la division iterativa

• 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.

• Cada componente secuencial tiene las entradas resetn y clock.

• Este circuito es un ejemplo de un sistema digital: incluye un circuito de camino de datos


y un circuito de control (FSM). El circuito de camino de datos es hecho de componentes
combinacionales y secuenciales.
4. FLUJO DE DISEÑO
• Crear un nuevo proyecto ISE. Seleccionar el dispositivo: XC7A100T-1CSG324 Artix-7
FPGA.

• 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:

- A = 011011 (27), B = 1001 (9)


- A = 010100 (20), B = 0111 (7)
- A = 101010 (42), B = 1111 (15)
- A = 100101 (37), B = 0101 (5)
- A = 001101 (13), B = 1100 (12)
- A = 101111 (47), B = 0010 (2)

• 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 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.

• Generar el archivo bitstream.

• Descargar el bitstream en el FPGA.

3
UNIVERSIDAD NACIONAL DE SAN AGUSTÍN
MICROELECTRÓNICA
Prof. PhD. Alexander B. Hilario T.

LABORATORIO 8

Fecha de entrega: 29 de Noviembre

1. OBJETIVOS

• Implementar un sistema digital: Unidad de control y unidad de ruta de datos.

• Describir los gráficos de la máquina de estado algorı́tmica (ASM) en VHDL.

• Aprender a interactuar con dispositivos SPI

2. CODIFICACIÓN VHDL

• Revise el material referente al curso.

3. DESARROLLO DEL LABORATORIO

Diseño de un recuperador de datos de acelerometro

• Acelerometro ADXL362: Este dispositivo MEMS de 3 ejes se comunica a través de un


SPI de 4 cables y funciona como un dispositivo esclavo SPI. Leemos/escribimos datos
de 8 bits a través de una interfaz basada en registros. Parámetros del ADXL362 (rango,
resolución, ODR son seleccionables):

– Rango: ± 2g (predeterminado al restablecer), ± 4g, ± 8g.


– Resolución: 1mg/LSB (predeterminado al reiniciar), 2mg/LSB, 4mg/LSB.
– Output data rate (ODR): 12.5 - 400 Hz. Predeterminado en reinicio: 100 Hz.
– Resolución de salida: 12 bits. Representación: Con signo.

• 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).

• FSMemb: FSM que contiene los contadores i y j. Configura 2 registros ADXL362


(0x1F, 0x2D), y luego solicita cı́clicamente la lectura de 12 registros ADXL362 de 8 bits
que contienen datos del acelerómetro y coloca los datos recuperados en 12 registros de
salida de 8 bits.

1
Figure 1: Circuito del Laboratorio 6

• Los datos están organizados en:

– 4 mediciones de 16 bits (X, Y, Z, Temperatura). Lo mostramos en 16 LEDs (selec-


cionables por sel). Tenga en cuenta que ya que los datos son de 12 bits de ancho,
los 4 MSB están extendidos por signo.
– 3 mediciones de 8 bits (baja precisión X, Y, Z) y estado de 8 bits: Se muestra (como
hexadecimal) en 8 pantallas de 7 segmentos: |X|Y |Z|ST |

• 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.

Reg. Address Name Reg. Address Name


0x1F SOFT RESET 0X0E XDATA L
0x2D POWER CTL 0X0F XDATA H
0X10 YDATA L
0X11 YDATA H
0x08 XDATA 0X12 ZDATA L
0x09 YDATA 0X13 ZDATA H
0x0A ZDATA 0X14 TEMP L
0x0B STATUS 0X15 TEMP H

• Serializer: 8 display de 7 segmentos (Ver Figura 3).

2
Figure 2: ASM del Laboratorio 6

3
Figure 3: Circuito serializador del Laboratorio 6

4. FLUJO DE DISEÑO

• Crear un nuevo proyecto en Vivado. Seleccionar el dispositivo: XC7A100T-1CSG324


Artix-7 FPGA.

• Escriba el código VHDL que implemente el circuito del laboratorio. La descripción es-
tructural es recomendada.

• Escriba el test-bench VHDL con un reloj de entrada de 100 MHz

– 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.

• Realice la Functional Simulation y la Timing Simulation. Nota: Puede usar Radix →


RealSettings en la ventana del simulador de Vivado.

• Asignacion de entradas y salidas: Crear el archivo XDC. Use SW 1 − SW 0 para sel[1..0],


CLK100MHZ para el reloj, CPU RESET para resetn, LED15−LED0 para ODATA LEDS[15..0],
CA−CG para DAT 7SEG[6..0], AN7−AN0 para AN 7SEG[7..0], ACL MISO para MISO,
ACL MOSI para MOSI, ACL SCLK for SCLK, y ACL CSN para CS.

• Generar el archivo bitstream y descargarlo en el FPGA.

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:

– 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)

S-ar putea să vă placă și