Professional Documents
Culture Documents
Ingeniera Electrnica
Equipo Nmero 2
Integrantes:
ngeles Olmos Luis Alfredo
Galvn Becerra Miguel
Martnez Maya Juan Enrique
Morn Jimnez Arn
Objetivo.
El objetivo principal de esta prctica es familiarizarnos y tomar
experiencia con las FPGAs y su programacin, as como tambin con
los mtodos que existen en el VHDL para resolver problemas, en este
caso fueron problemas exclusivamente combinacionales y para
resolverlos utilizamos las bases obtenidas en la materia anterior a esta
(Diseo Digital) as como los nuevos conocimientos que estamos
obteniendo en la materia actual.
Resumen.
La presente prctica se dividi en 4 sesiones las cuales fueron:
-Compuerta NAND
Programar por primera vez la FPGA con algo bsico y fcil como lo es
una muy conocida compuerta NAND
-Compuertas bsicas
Programar el resto de compuertas bsicas de 2 entradas y una salida
(NOT, AND, OR, NAND, NOR, XOR)
-Decodificador binario a 7 segmentos
Programar un ejemplo bsico de la electrnica digital como lo es el
decodificador binario a 7 segmentos, teniendo dos opciones, utilizar la
tarjeta Spartan 3 y utilizar uno de los displays que vienen integrados
en la tarjeta o utilizar la tarjeta Spartan 3E y conectarla a un display
externo
-Generador de paridad par de 4 bits
Programar un generador de paridad del tipo par y checar su
funcionamiento
ndice
Bases tericas.1
Desarrollo.6
Sesin 1.6
Sesin 2.6
Sesin 3.7
Sesin 4.9
Resultados...13
Observaciones y conclusiones.13
Bibliografa14
1. Bases tericas
PLDs
Un Dispositivo Lgico Programable (PLD) es cualquier dispositivo lgico cuya
funcin est especificada por el usuario, despus de fabricado el dispositivo. Se
usan para reemplazar lgica SSI y MSI, ahorrando as en costo y tiempo en el
diseo. Entre los PLDs encontramos:
HDL
Un lenguaje de descripcin de hardware (HDL) permite documentar las
interconexiones y el comportamiento de un circuito electrnico, sin utilizar
diagramas esquemticos.
El flujo de diseo suele ser tpico:
1.
2.
Escribir el programa usando un lenguaje HDL. Tambin existen programas
de captura de esquemas que pueden hacer esto, pero no son tiles para diseos
complicados.
3.
4.
Seales digitales
La seal digital es un tipo de seal generada por algn tipo de fenmeno
electromagntico en que cada signo que codifica el contenido de la misma puede
ser analizado en trmino de algunas magnitudes que representan valores
discretos, en lugar de valores dentro de un cierto rango. Por ejemplo, el interruptor
de la luz slo puede tomar dos valores o estados: abierto o cerrado, o la misma
lmpara: encendida o apagada (vase circuito de conmutacin).
Los sistemas digitales usan lgica de dos estados representados por dos niveles
de tensin elctrica, uno alto, H y otro bajo, L (de High y Low, respectivamente, en
ingls). Por abstraccin, dichos estados se sustituyen por ceros y unos, lo que
facilita la aplicacin de la lgica y la aritmtica binaria. Si el nivel alto se representa
por 1 y el bajo por 0, se habla de lgica positiva y en caso contrario de lgica
negativa.
Compuertas lgicas
Una puerta lgica, o compuerta lgica, es un dispositivo electrnico con una
funcin booleana. Suman, multiplican, niegan o afirman, incluyen o excluyen
segn sus propiedades lgicas. Se pueden aplicar a tecnologa electrnica,
elctrica, mecnica, hidrulica y neumtica. Son circuitos de conmutacin
integrados en un chip. Las compuertas lgicas se dividen en:
OR (suma binaria)
2
NOT (complemento)
XOR
XNOR
Generadores de paridad
Los circuitos electrnicos digitales se basan en la transmisin y el procesamiento
de informacin, lo que hace necesario verificar que la informacin recibida es igual
a la emitida; no suelen producirse errores, por lo que cuando ocurren en la
mayora de los casos el error en la transmisin se produce en un nico bit.
Process
La forma en que se declara un bloque PROCESS es la siguiente:
[id_proc:]
[POSTPONED] PROCESS [(lista sensible)] [IS]
Declaraciones
BEGIN
Instrucciones_serie
END [POSTPONED] PROCESS [id_proc];
El id_proc es simplemente una etiqueta opcional que sirve para ponerle nombre a
los diferentes procesos de una descripcin. La (lista_sensible) es tambin opcional
y contiene una lista de seales separadas por comas y encerradas entre
parntesis. La ejecucin del PROCESS se activa cuando se produce un evento, o
cambio, en alguna de las seales de la lista sensible. En el caso de no existir lista
sensible, la ejecucin se controla mediante el uso de sentencias WAIT dentro del
PROCESS.
La parte de declaracin es parecida a la de otras estructuras, de forma que se
pueden definir aqu variables, tipos, subprogramas, atributos, etc., pero en ningn
caso seales. Es interesante destacar que ste es el nico lugar, aparte de en los
subprogramas, donde se pueden definir las variables, cosa que no se puede hacer
en otras estructuras como entidades, bloques, arquitecturas o paquetes. A
continuacin, y entre el BEGIN.. END, vienen todas las instrucciones serie que,
como se ver, presentan sus propios elementos sintcticos, siendo la asignacin
simple el nico elemento comn con la ejecucin concurrente.
Variables
Definicin formal:
Variable es un objeto con un solo valor actual.
Las variables son objetos que almacenan la informacin local a los procesos y
subprogramas (procedimientos y funciones) en el que estn definidos. Sus valores
se pueden cambiar durante la simulacin a travs de las sentencias de asignacin
variable.
1. Desarrollo
5
3. Se program la FPGA.
4. Se prob el circuito y se compararon los resultados con lo esperado
3. Se program la FPGA.
4. Se prob el circuito y se compararon los resultados con lo esperado
SW3
0
0
0
0
0
0
0
0
1
1
1
SW2
0
0
0
0
1
1
1
1
0
0
0
SW1
0
0
1
1
0
0
1
1
0
0
1
SW0
0
1
0
1
0
1
0
1
0
1
0
A
1
0
1
1
0
1
1
1
1
1
1
B
1
1
1
1
1
0
0
1
1
1
1
C
1
1
0
1
1
1
1
1
1
1
1
D
1
0
1
1
0
1
1
0
1
0
0
E
1
0
1
0
0
0
1
0
1
0
1
F
1
0
0
0
1
1
1
0
1
1
1
G
0
0
1
1
1
1
1
1
1
1
1
7
B
C
D
E
F
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
0
1
0
1
0
1
0
1
1
0
0
1
0
0
1
0
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
4. Se program la FPGA
5. Investigamos el mximo de corriente y voltaje que suministra la tarjeta a sus
salidas (3.3v)
6. Basados en el punto anterior colocamos resistencias limitadoras para cada
segmento del Display
5. Se prob el dispositivo y se comprobaron los resultados con la tabla de verdad.
SW3
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
SW2
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
SW1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
SW0
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
GEN
0
1
1
0
1
0
0
1
1
0
0
1
0
1
1
0
Para el inciso a)
10
Para el inciso b)
11
Para el inciso c)
12
2. Resultados
En las prcticas de la compuerta NAND, compuertas bsicas y generador de
paridad se obtuvieron resultados satisfactorios y tal como se esperaban. En la
prctica de decodificador de binario a 7 segmentos se tuvo que hacer un segundo
intento para poder obtener los resultados que se esperaban.
3. Anlisis de resultados
En todo momento la FPGA en combinacin con un correcto cdigo nos mostr un
comportamiento tal y como se esperaba, en el caso de la prctica del
Decodificador el error se encontraba en una mala identificacin de pines en el
Display, una vez corrigiendo esto la prctica nos sali tal como lo esperbamos.
4. Observaciones y conclusiones
Luis Alfredo ngeles Olmos
Gracias a esta prctica pudimos relacionar conceptos del curso previo con los
nuevos conocimientos adquiridos en la materia actual y aunque en una sesin
tuvimos algunas complicaciones pudimos salir adelante gracias a la facilidad con
la que se pueden desarrollar circuitos en las FPGAs, con el nico problema de
que a veces elaborar cdigo en VHDL puede ser un poco ms confuso a como lo
es con otros leguajes como el C++.
13
14