Está en la página 1de 15

UNIVERSIDAD NACIONAL DE INGENIERÍA

FACULTAD DE INGENIERÍA MECANICA


ESPECIALIDAD DE INGENIERÍA MECATRÓNICA

ANÁLISIS Y DISEÑO DE CIRCUITOS DIGITALES


(MT127-A)
INFORME DEL LABORATORIO N°8
(entrada 4 bits y salida a decodificador usando case when y if)

Docente: Manuel Ronald Gómez Casasola


Estudiante: Vilcamiche Fernández Luis Ángel Código UNI:20212545E

2023-II
ÍNDICE
Marco teórico ................................................................................................................................ 3
Desarrollo teórico .......................................................................................................................... 4
Observaciones ............................................................................................................................. 15
Conclusiones ............................................................................................................................... 15
Sugerencias ................................................................................................................................. 15
Referencias .................................................................................................................................. 15
Marco teórico
En el laboratorio anterior solo usamos variables de entrada y salida (in y out) que se le conocen
como señales. Ahora además de estas usaremos una nueva que son llamadas las variables.

La diferencia principal entre señales (signal) y variables (variable) en VHDL es cómo se manejan
en procesos y cómo retienen su valor entre ejecuciones del proceso.

➢ Señales (signal):

o Las señales se declaran en la arquitectura y tienen una duración más allá de la


ejecución de un único ciclo del proceso.

o Pueden ser in, out o inout y son visibles fuera del proceso en el que se
declaran.

o Los cambios en las señales no toman efecto de inmediato y se propagan al


siguiente ciclo de simulación.

➢ Variables (variable):

o Las variables se declaran dentro de procesos y tienen una duración limitada a


la ejecución del proceso.

o No pueden ser in, out o inout; simplemente existen dentro del proceso y no
son visibles fuera de él.

o Los cambios en las variables toman efecto de inmediato dentro del mismo ciclo
de simulación en el que se realizan.

Las sentencias if y case-when son fundamentales para la programación en VHDL, permitiendo


la toma de decisiones y la ejecución condicional en la descripción de hardware.
Desarrollo teórico
S0 S1 S2 S3 S4 S5 S6
0 0 0 0 0 0 0 1
1 1 0 0 1 1 1 1
2 0 0 1 0 0 1 0
3 0 0 0 0 1 1 0
4 1 0 0 1 1 0 0
5 0 1 0 0 1 0 0
6 0 1 0 0 0 0 0
7 0 0 0 1 1 1 1
8 0 0 0 0 0 0 0
9 0 0 0 0 1 0 0

Usando if

- Primer código con error en el if ,elsif (a3&a2&a1&a0), debemos de crear una


variable o una señal para poder usarlo en las comparaciones.
- Debemos recordar que variable la usamos de manera local, cosa distinta si
usamos signal. Para este problema podrías usar cualquier indiferentemente.
- Generación de las formas de la onda
- Circuito generado
- Asignamos los pines

- Compilamos por completo para generar el archivo. SOF


Usando case-when

- Sintetizamos para verificar errores

- Generación de las formas de la onda


- circuito generado
- Asignamos los pines

- Compilamos por completo para generar el archivo. SOF


Observaciones
En la primera foto se trabaja con una entity cuyo nombre es de “labo8_if_deco” pero luego en
una segunda foto arreglando el error cometido en la primera foto aparece el nuevo nombre
“if_labo8” para la entity . Esto es debido a que al momento de la asignación de pines había
errores por no poner bien el código del FPGA, y opté por crear una nueva carpeta y poner bien
el código del FPGA.

Los errores cometidos fueron por no conocer muy bien la sintaxis VHDL.

Gracias a la experiencia del laboratorio 7 se supo que el led 7 segmentos era de ánodo común,
quiere decir si lo hicieron en base a cátodo común lo convierten negándolo.

Conclusiones
Ambas funciones tanto con el uso del if como del uso del case-when dan los mismos
resultados, esto es gracias a la buena sintaxis y al manejo de errores que se observan al
momento de hacer solamente la síntesis.

Leer el manual te ayudará a no cometer errores.

Sugerencias
Debemos de tener a la mano el código 10m50daf484c7, código del FPGA que debemos usar
para cada proyecto nuevo para no tener errores en la asignación de pines.

Conocer muy bien la sintaxis de VHDL.

Para la asignación de los pines tanto de entrada como de salida, debemos de guiarnos del
manual del FPGA.

Leer bien las instrucciones dadas para el laboratorio.

Referencias
Sánchez-Élez, M. (n.d.). Introducción a la Programación en VHDL 1 F. Informática

(UCM). https://docta.ucm.es/rest/api/core/bitstreams/4ded6d60-6b62-4f59-a7cd-

2511b9a73861/content

También podría gustarte