Вы находитесь на странице: 1из 65

L u i s A n g e l M t z . G m z .

Pgina 1

INSTITUTO TECNOLOGICO DE OAXACA




DISEO DIGITAL
CON VHDL

PORTAFOLIO DE EVIDENCIAS
IV SEMESTRE

GRUPO: E1A
HORARIO: 11:00 A 12:00
ALUMNO: MARTINEZ GOMEZ LUIS ANGEL
CATEDRATICO: LETICIA ARELY CALLEJAS PEREZ
FECHA: JUNIO DE 2013




TARJETA N 24
NEXIS 3
SPARTAN 6



INGENIERIA ELECTRONICA


L u i s A n g e l M t z . G m z .

Pgina 2

Este trabajo contiene una serie de prcticas de diseo digital en VHDL se
utiliz un programa de la familia XILINX llamado ISE Project Navigator
versin 14.4, el cual es utilizado para describir un conjunto de
instrucciones para despus mandar a la tarjeta Spartan 6 que se encarga
de ejecutar lo que se le ordena, para comunicarse entre el xilinx y la
tarjeta Spartan 6 se utiliza otro programa llamado Adept de Digilent,
que se encarga de cargar lo programado en Xilinx a la Spartan 6. Y as se
ejecuta este programa















L u i s A n g e l M t z . G m z .

Pgina 3
Compuertas Lgicas Bsicas
Practica 1: Compuertas de 2 entrada 5
Practica 2: Compuertas de mltiples Entradas.. 8
Algebra Booleana y Ecuaciones Lgicas
Practica 3: Circuito Mayoritario..18
Practica 4: Comparador de 2 bits.25
Lgica combinacional.
Practica 6: Practica 5: Mux: 2-1, con declaracin
if....33
Practica 12: decodificador 7 segmentos: ecuaciones lgicas37
Practica 29: con declaracin behavioral.44
Practica 31: Subtractor de N-Bits: declaracin behavioral ;n=449
Practica 33: multiplicando por una constante..54
PRACTICA 52: DIVISOR DE FRECUENCIA..58







L u i s A n g e l M t z . G m z .

Pgina 4
Practica 1: Compuertas de 2 entradas

Resumen
En esta prctica se realizara la comprobacin de las tablas de verdad de cada una de
las compuertas.
Una compuerta lgica es un dispositivo que nos permite obtener resultados,
dependiendo de los valores de las seales que le ingresemos, las compuertas lgicas
se comunican entre, usando el sistema BINARIO. Este consta de solo 2 indicadores 0 y
1 llamados BIT dado que en electrnica solo hay 2 valores equivalentes 0=0volt
1=5volt (conectado-desconectado). Para comprender como se comporta cada
compuerta se debe ver su TABLA DE VERDAD. Esta nos muestra todas las
combinaciones lgicas posibles y su resultado.
COMPUERTA NOT
La compuerta NOT es un inversor que
cumple la siguiente tabla de verdad

Tabla
de
verdad
A X
0 1
1 0




COMPUERTA AND
La compuerta AND hace la funcin de
multiplicacin lgica. Es decir toma
los valores que le aplicamos a sus
entradas y los multiplica.
Tabla de
verdad AND
A B X
0 0 0
0 1 0
1 0 0
1 1 1


COMPUERTA OR
Funciona como una sumatoria lgica,
entre sus dos entradas.




COMPUERTA NAND
Funciona como una compuerta AND, pero
en su salida tiene una compuerta not, que
invierte el valor.




L u i s A n g e l M t z . G m z .

Pgina 5
COMPUERTA NOR
Funciona como una compuerta OR pero en
su salida tiene una NOT, que invierte el
valor.
COMPUERTA XNOR
Resulta de la suma entre dos productos; el
primer productos multiplica las dos
entradas, y el segundo es una inversin de
las dos entradas y luego las multiplica. (
solo es 1 si las dos entradas son iguales)



COMPUERTA XOR
Es el resultado de una suma (OR) de
productos(AND), en la que los productos se
dan entre una entrada negada y una
normal.(solo es 1 cuando sus dos entradas
son diferentes)



















L u i s A n g e l M t z . G m z .

Pgina 6
DISEO PREVIO
En esta prctica no hay diseo previo
dado que solo es la comprobacin de las
tablas de verdad

Mdulo VHD
En el siguiente Mdulo VHD se puede observar la primera parte(lnea 2-7), muestra
datos del programa(nombre, fecha, autor,). En la lnea 10-11, se declaran las
libreras a usar. De la lnea 13-17 se declaran las entradas que se usaran y el tipo de
variable que son(entrada o salida). La parte final es la arquitectura; en donde se
escriben las instrucciones que deseemos, en este caso estamos escribiendo que de las
2 entradas (a y b) formen una compuerta x, y el resultado se guardara en la variable
z.
















L u i s A n g e l M t z . G m z .

Pgina 7
DIAGRAMA RTL
El diagrama RTL que se obtiene es el siguiente, en la caja negra se ve un dispositivo
con 2 entradas y una salida; si miramos en su interior se observa que dentro de el hay
interconexiones en las compuertas, para obtener la que deseemos mediante lo que
programamos.












SIMULASION
Para simular el circuito:
1.- Creamos una nueva fuente tipo VHDL test bench.
2.- Borramos la parte que dice clock, y en su lugar le asignamos un nombre ala
constate de tiempo(linea35).
3.- En la parte de begin borramos todo el reloj(lnea 42-43) y en la parte de estimular
proceso(lnea 46-31) configuramos los tiempos deseados para las variables de
entrada(a yb).




L u i s A n g e l M t z . G m z .

Pgina 8

En la simulacin se muestran los cambios de tiempo en las entradas a yb; en
consecuencia, tambin logramos ver como las 6 salidas cambian de encendido o
apagado segn la compuerta que se configuro.







L u i s A n g e l M t z . G m z .

Pgina 9
archivo UCF
Para el asignamiento de los pines en la tarjeta se genero el archivo UCF; en donde se
establecio que las entradas a y b se asignaron a los switch T5 y V8. En cuanto a las
salidas, la z(5) se asigno al led T11, la z(4) se asigno al led R11,, la z(0) se
asigno al led U15


Conclusiones
Por medio de la simulacin se puede observar que cada una de las tablas de verdad
se cumple. Cuando la and esta encendida, la nand esta apagada viceversa. Cuando la
or esta encendida la nor esta apagada viceversa. Cuando la xor esta encendida la xnor
esta apagada y viceversa.


L u i s A n g e l M t z . G m z .

Pgina 10
Practica 2: Compuertas de mltiples Entradas

Resumen
En esta prctica se realizara la comprobacin de las tablas de verdad de cada una de
las 6 compuertas, pero ahora cada una tendr 4 entradas.
Una compuerta lgica es un dispositivo que nos permite obtener resultados,
dependiendo de los valores de las seales que le ingresemos, las compuertas lgicas
se comunican entre, usando el sistema BINARIO. Este consta de solo 2 indicadores 0 y
1 llamados BIT dado que en electrnica solo hay 2 valores equivalentes 0=0volt
1=5volt (conectado-desconectado). Para comprender como se comporta cada
compuerta se debe ver su TABLA DE VERDAD. Esta nos muestra todas las
combinaciones lgicas posibles y su resultado.
COMPUERTA NOT
La compuerta NOT es un inversor que
cumple la siguiente tabla de verdad

Tabla
de
verdad
A X
0 1
1 0




COMPUERTA AND
La compuerta AND hace la funcin de
multiplicacin lgica. Es decir toma
los valores que le aplicamos a sus
entradas y los multiplica.
Tabla de
verdad AND
A B X
0 0 0
0 1 0
1 0 0
1 1 1


COMPUERTA OR
Funciona como una sumatoria lgica,
entre sus dos entradas.




COMPUERTA NAND
Funciona como una compuerta AND, pero
en su salida tiene una compuerta not, que
invierte el valor.




L u i s A n g e l M t z . G m z .

Pgina 11
COMPUERTA NOR
Funciona como una compuerta OR pero en
su salida tiene una NOT, que invierte el
valor.
COMPUERTA XNOR
Resulta de la suma entre dos productos; el
primer productos multiplica las dos
entradas, y el segundo es una inversin de
las dos entradas y luego las multiplica. (
solo es 1 si las dos entradas son iguales)



COMPUERTA XOR
Es el resultado de una suma (OR) de
productos(AND), en la que los productos se
dan entre una entrada negada y una
normal.(solo es 1 cuando sus dos entradas
son diferentes)



















L u i s A n g e l M t z . G m z .

Pgina 12
DISEO PREVIO








X1 X2 X3 X4 Z6

X1 X2 X3 X4 Z5

X1 X2 X3 X4 Z4
1 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0
2 0 0 0 1 0 2 0 0 0 1 1 2 0 0 0 1 1
3 0 0 1 0 0 3 0 0 1 0 1 3 0 0 1 0 1
4 0 0 1 1 0 4 0 0 1 1 1 4 0 0 1 1 1
5 0 1 0 0 0 5 0 1 0 0 1 5 0 1 0 0 1
6 0 1 0 1 0 6 0 1 0 1 1 6 0 1 0 1 1
7 0 1 1 0 0 7 0 1 1 0 1 7 0 1 1 0 1
8 0 1 1 1 0 8 0 1 1 1 1 8 0 1 1 1 1
9 1 0 0 0 0 9 1 0 0 0 1 9 1 0 0 0 1
10 1 0 0 1 0 10 1 0 0 1 1 10 1 0 0 1 1
11 1 0 1 0 0 11 1 0 1 0 1 11 1 0 1 0 1
12 1 0 1 1 0 12 1 0 1 1 1 12 1 0 1 1 1
13 1 1 0 0 0 13 1 1 0 0 1 13 1 1 0 0 1
14 1 1 0 1 0 14 1 1 0 1 1 14 1 1 0 1 1
15 1 1 1 0 0 15 1 1 1 0 1 15 1 1 1 0 1
16 1 1 1 1 1 16 1 1 1 1 0 16 1 1 1 1 1























X1 X2 X3 X4 Z3

X1 X2 X3 X4 Z2

X1 X2 X3 X4 Z1
1 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 1
2 0 0 0 1 0 2 0 0 0 1 1 2 0 0 0 1 0
3 0 0 1 0 0 3 0 0 1 0 1 3 0 0 1 0 0
4 0 0 1 1 0 4 0 0 1 1 1 4 0 0 1 1 0
5 0 1 0 0 0 5 0 1 0 0 1 5 0 1 0 0 0
6 0 1 0 1 0 6 0 1 0 1 1 6 0 1 0 1 0
7 0 1 1 0 0 7 0 1 1 0 1 7 0 1 1 0 0
8 0 1 1 1 0 8 0 1 1 1 1 8 0 1 1 1 0
9 1 0 0 0 0 9 1 0 0 0 1 9 1 0 0 0 0
10 1 0 0 1 0 10 1 0 0 1 1 10 1 0 0 1 0
11 1 0 1 0 0 11 1 0 1 0 1 11 1 0 1 0 0
12 1 0 1 1 0 12 1 0 1 1 1 12 1 0 1 1 0
13 1 1 0 0 0 13 1 1 0 0 1 13 1 1 0 0 0
14 1 1 0 1 0 14 1 1 0 1 1 14 1 1 0 1 0
15 1 1 1 0 0 15 1 1 1 0 1 15 1 1 1 0 0
16 1 1 1 1 0 16 1 1 1 1 0 16 1 1 1 1 1
AND NAND 0R
NOR XOR
XNOR


L u i s A n g e l M t z . G m z .

Pgina 13
De estas tablas de verdad obenemos las siguientes EC. Booleanas:
z(6) <= x(1) and x(2) and x(3) and x(4) ---- NOTA solo encendera en el
miniterm:16

z(5) <= not[x(1) and x(2) and x(3) and x(4)] ------ NOTA solo encendera en
los miniterms:1, 2 ,3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15

z(4) <= x(1) or x(2) or x(3) or x(4); ------ NOTA solo encendera en los
miniterms:2 ,3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16

z(3) <= not(x(1) or x(2) or x(3) or x(4)); ---- NOTA solo encendera en el
miniterm:1

z(2) <= x(1) xor x(2) xor x(3) xor x(4); ------ NOTA solo encendera en los
miniterms:2 ,3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15

z(1) <= x(1) xnor x(2) xnor x(3) xnor x(4); ------ NOTA solo encendera en
los miniterms:1, 16
Nota: estas ecuaciones ya estn escritas con la sintaxis de Xilinx
Mdulo VHD
En el siguiente Mdulo VHD; como ya sabemos la 1ra parte solo contiene informacin
sobre el programa. NOTA: esta parte la genera automticamente el programa. (lnea 1-14).
Tambien se sabe que la 2da parte contiene las libreras a usar, la entrada X que
tendr 4 entradas, y la salida Z que estar formada por 6 salidas diferentes, NOTA:
esta parte la genera automticamente el programa. Lneas (25-29)
La ultima parte arquitectura es la importante; aqu programe; que para cada salida
Z(x) se realizara una funcin obtenida anteriormente de las tablas de verdad de la
seccin de DISEO PREVIO. Lneas (30-38)










L u i s A n g e l M t z . G m z .

Pgina 14













DIAGRAMA RTL
El diagrama RTL que se obtiene es el siguiente, en la caja negra se ve un dispositivo
que tiene una entrada, y a la vez esta tiene 4 entradas, y una salida que a su vez esta
formada por 6 salidas; si miramos en su interior se observa que dentro de el hay
interconexiones en las compuertas, para obtener las ecuaciones booleanas que
programamos.







L u i s A n g e l M t z . G m z .

Pgina 15
SIMULASION
Para simular el circuito:
1.- Creamos una nueva fuente tipo VHDL test bench.
2.- Borramos la parte que dice clock, y en su lugar le asignamos un nombre ala
constate de tiempo(linea35).
3.- En la parte de begin borramos todo el reloj(lnea 42-43) y en la parte de estimular
proceso(lnea 46-31) configuramos los tiempos deseados para las variables de
entrada(a yb).



En la simulacin se muestran los cambios de tiempo en las entradas a yb; en
consecuencia, tambin logramos ver como las 6 salidas cambian de encendido o
apagado segn la compuerta que se configuro.











L u i s A n g e l M t z . G m z .

Pgina 16
archivo UCF
Para el asignamiento de los pines en la tarjeta se genero el archivo UCF; en donde se
establecio que las entradas x(1), x(2), x(3), x(4) se asignaron a los switch M8, V9,
T9, T10. En cuanto a las salidas z(1), z(2), z(3), z(4), z(5), z(6) se asignaron a los
leds N11, M11, V15, U15, V16, U16








Conclusiones
Por medio de la simulacin se puede observar que cada una de las tablas de verdad
se cumple. Cuando la and esta encendida, la nand esta apagada viceversa. Cuando la
or esta encendida la nor esta apagada viceversa. Cuando la xor esta encendida la xnor
esta apagada y viceversa.


ANEXOS









L u i s A n g e l M t z . G m z .

Pgina 17
Practica 3: Circuito Mayoritario

Resumen
En esta prctica se realizara un dispositivo que contiene 4 entradas y una salida, y
solo encender cuando la mayora de las entradas estn encendidas.
Empezamos creando la tabla de verdad de nuestro circuito, en donde se muestran
todas las combinaciones posibles entre las entradas y en la salida observamos los
estados altos o bajos 1 y 0 en los que funcionara o no nuestro circuito.
Despues, de la salida de la tabla de verdad, creamos una ecuacin boleana con todos
los miniterminos en donde la salida sea 1; esto seria una EC. Booleana de
miniterminos o suma de productos.
Ejemplo de una EC. Booleana apartir de una tabla de veradad.
Luego debemos simplificar la EC. Resultante lo mas que sea posible, para un mejor
diseo, para esto podemos usar tcnicas como las reglas o teoremas de Boole, o lo
mas conveniente y lo que usare en este portafolio los mapas de karnaugh.
Aqu se muestran las reglas de Boole:



L u i s A n g e l M t z . G m z .

Pgina 18
Es mas conveniente trabajar con mapas de karnaugh de 2,3,4 o5 variables pero de 6
en adelante se vuelve muy tedioso.



Ej. Mapa de karnaugh de 2 variables Ej. Mapa de karnaugh de 3 variables





Ej. Mapa de karnaugh de 4 variables Ej. Mapa de karnaugh de 5 variables
NOTA: Para saber en que cuadro se debe colocar el minitermino que contiene el 1 se
usa el cdigo de Gray:









L u i s A n g e l M t z . G m z .

Pgina 19
DISEO PREVIO

Primero se hace la tabla de verdad, declarando
todas las posibles combinaciones con las 4 entradas, y se le pone
un 1 que significa estado alto o activo, en las salidas; que
cuplen la condicin de que mas de 2 de sus entradas estn
encendidas 1.

Despues obtenemos una EC. Booleana apartir de los
unos de las salidas con minitermios:
F= (7, 17, 13, 14,15)
F(a,b,c,d)=(abcd)+(abcd)+(abcd)+(abcd)+(abcd)


Por ultimo la simplificamos por medio del mapa de
karnaugh de 4 variables:




(ABCD) (ABCD) (ABCD) (ABCD)
+ + +
(BCD) (ABCD) (ABCD) (ABCD)
(BCD) + (ACD) + (ABD) + (ABC)

F= (BCD)+(ACD)+(ABD)+(ABC)
AQUI LA REPRESENTO CON LA SINTAXIS DE VHDL:
f <= ( (b and c and d) or (a and c and d) or (a and b and d) or (a and b and c) )










a b c d f
0 0 0 0 0
0
1 0 0 0 1
0
2 0 0 1 0
0
3 0 0 1 1
0
4 0 1 0 0
0
5 0 1 0 1
0
6 0 1 1 0
0
7 0 1 1 1
1
8 1 0 0 0
0
9 1 0 0 1
0
10 1 0 1 0
0
11 1 0 1 1
1
12 1 1 0 0
0
13 1 1 0 1
1
14 1 1 1 0
1
15 1 1 1 1
1
Tabla de verdad


L u i s A n g e l M t z . G m z .

Pgina 20
Mdulo VHD
En el siguiente Mdulo VHD; como ya sabemos la 1ra parte solo contiene informacin
sobre el programa. NOTA: esta parte la genera automticamente el programa. (lnea 1-15).
Tambien se sabe que la 2da parte contiene las libreras, y entidades a usar en
entidades se declaran las 4 entradas (a,b,c,d) y la salida f NOTA: esta parte la genera
automticamente el programa. Lneas (25-29)
La ultima parte arquitectura es la importante; aqu se escribe la ecuacin booleana
que simplificamos con el mapa de karnuagh. Lneas (33-36)






















L u i s A n g e l M t z . G m z .

Pgina 21

DIAGRAMA RTL
El diagrama RTL que se obtiene es el siguiente, en la caja negra se ve un dispositivo
que tiene 4 entradas(a,b,c,d) y una salida (f). Si miramos en su interior se observa
que dentro de el hay interconexiones en las compuertas, para obtener la ecuacin
booleana que obtubimos.










SIMULASION
Para simular el circuito:
1.- Creamos una nueva fuente tipo VHDL test bench.
2.- Borramos la parte que dice clock, y en su lugar le asignamos un nombre ala
constate de tiempo(linea35).
3.- En la parte de begin borramos todo el reloj(lnea 42-43) y en la parte de estimular
proceso(lnea 46-31) configuramos los tiempos deseados para las variables de
entrada(a yb).









L u i s A n g e l M t z . G m z .

Pgina 22

En la simulacin se muestran los cambios de tiempo en las entradas a yb; en
consecuencia, tambin logramos ver como las 6 salidas cambian de encendido o
apagado segn la compuerta que se configuro.




archivo UCF
Para el asignamiento de los pines en la tarjeta se genero el archivo UCF; en donde se
establecio que las entradas a,b,c,d se asignaron a los switch T5,V8,U8,N8
respectivamente. En cuanto a la salida f se asigno en el led T11










L u i s A n g e l M t z . G m z .

Pgina 23
Conclusiones
Por medio de la simulacin se puede observar que cada una de las tablas de verdad
se cumple. Cuando la and esta encendida, la nand esta apagada viceversa. Cuando la
or esta encendida la nor esta apagada viceversa. Cuando la xor esta encendida la xnor
esta apagada y viceversa.


ANEXOS



















L u i s A n g e l M t z . G m z .

Pgina 24
Practica 4: Comparador de 2 bits

Resumen
En esta prctica se diseara un circuito que compare 2 entradas de 2 bits cada una, y
que como resultado diga si se cumple que ( a=b; o a>b; o a<b)
Empezamos creando la tabla de verdad que contenga 2 entradas de 2 bits cada una,
en donde se muestran todas las combinaciones posibles entre las 2 entradas.
Las salidas sern 3, una que muetre cuando la comaparacion resulte igual, otra
cuando a sea mayor que b, y otra cuando a sea menor que b.
Despues, de la salida de la tabla de verdad, creamos una ecuacin boleana por cada
salida, con todos los miniterminos en donde la salida sea 1; esto seria una EC.
Booleana de miniterminos o suma de productos.
Luego debemos simplificar la EC. Resultante lo mas que sea posible, para un mejor
diseo, para esto podemos usar tcnicas como las reglas o teoremas de Boole, o lo
mas conveniente y lo que usare en este portafolio los mapas de karnaugh.
Es mas conveniente trabajar con mapas de karnaugh de 2,3,4 o5 variables pero de 6
en adelante se vuelve muy tedioso.



Ej. Mapa de karnaugh de 2 variables Ej. Mapa de karnaugh de 3 variables





Ej. Mapa de karnaugh de 4 variables Ej. Mapa de karnaugh de 5 variables
NOTA: Para saber en que cuadro se debe colocar el minitermino que contiene el 1 se
usa el cdigo de Gray:


L u i s A n g e l M t z . G m z .

Pgina 25

DISEO PREVIO
Primero se hace la tabla de verdad, declarando todas las posibles combinaciones
con las 2 entradas de 2 bits cada una y 3 salidas; que satisfagan las condiciones (
a=b; o a>b; o a<b) los miniterminos que si cumplan se les coloca 1 en su
respectiva salida.


















b(1) b(0) a(1) a(0) a_eq_b a_mayor_b a_menor_b
0 0 0 0 0 0 0 0
1 0 0 0 1 0 1 0
2 0 0 1 0 0 1 0
3 0 0 1 1 0 1 0
4 0 1 0 0 0 0 1
5 0 1 0 1 1 0 0
6 0 1 1 0 0 1 0
7 0 1 1 1 1 1 0
8 1 0 0 0 0 0 1
9 1 0 0 1 0 0 1
10 1 0 1 0 1 0 0
11 1 0 1 1 0 1 0
12 1 1 0 0 0 0 1
13 1 1 0 1 0 0 1
14 1 1 1 0 0 0 1
15 1 1 1 1 1 0 0
Tabla de verdad


L u i s A n g e l M t z . G m z .

Pgina 26
Despues obtenemos una EC. Booleana apartir de cada salida usando los
minitermios necesarios; y la simplificamos con los mapas de karnaugh:
a_eq_b = (0, 5, 10, 15)
a_eq_b = (~b(1))(~b(0))(~a(1))(~a(0)) + (b(1))(~b(0))(a(1))(~a(0)) +
(~b(1))( b(0))(~a(1))(a(0)) + (b(1))(b(0))(a(1))(a(0))









Por lo tanto la EC. Queda asi:
a_eq_b = (~b(1))(~b(0))(~a(1))(~a(0)) + (b(1))(~b(0))(a(1))(~a(0)) +
(~b(1))( b(0))(~a(1))(a(0)) + (b(1))(b(0))(a(1))(a(0))

Con la sintaxis de vhdl:
a_eq_b <= (not b(1) and not b(0) and not a(1) and not a(0)) (not b(1) and b(0) and not a(1)
and a(0)) or (b(1) and not b(0) and a(1) and not a(0)) or (b(1) and b(0) and a(1) and a(0))


a_mayor_b = (1, 2, 3, 6, 7, 11)
a_mayor_b = (~b(1))(~b(0))(~a(1))(a(0)) + (~b(1))(~b(0))(a(1))(~a(0)) +
(~b(1))(~b(0))(a(1))(a(0)) + (~b(1))(b(0))(a(1))(~a(0)) +
(~b(1))(b(0))(a(1))(a(0)) + (b(1))(~b(0))(a(1))(a(0))












L u i s A n g e l M t z . G m z .

Pgina 27


Por lo tanto la EC. Queda asi:


a_mayor_b =( ~ b(1) * a(1) ) + ( ~b(1) * ~ b(0)*a(0) ) +
( ~b(0) * a(1) * a(0) )
Con la sintaxis de vhdl:
(not b(1) and a(1)) or (not b(1) and not b(0) and a(0)) or (not b(0) and a(1) and a(0))




a_menor_b = (1, 2, 3, 6, 7, 11)
a_menor_b = (~b(1))(b(0))(~a(1))(~a(0)) + (b(1))(~b(0))(~a(1))(~a(0)) +
(b(1))(~b(0))(~a(1))( a(0)) + (b(1))(b(0))(~a(1))(~a(0)) +
(b(1))(b(0))(~a(1))(a(0)) + (b(1))(b(0))(a(1))(~a(0))







Por lo tanto la EC. Queda asi:


a_mayor_b = b(1) * ~a(1)) + b(1) *b(0) * ~a(0)) + b(0) * ~a(1) * ~a(0)
Con la sintaxis de vhdl:
a_menor_b <= (b(1) and not a(1)) or (b(1) and b(0) and not a(0)) or (b(0) and not a(1) and
not a(0))







L u i s A n g e l M t z . G m z .

Pgina 28
Mdulo VHD
La 1ra parte solo contiene informacin sobre el programa. NOTA: esta parte la genera
automticamente el programa. (lnea 1-15).
La 2da parte contiene las libreras, y entidades a usar en entidades se declaran las
2 entradas (a,b,c,d) cada una con 2 bits y la salida f NOTA: esta parte la genera
automticamente el programa. Lneas (25-29)
La ultima parte arquitectura es la importante; aqu se escribe la ecuacin booleana
que simplificamos con el mapa de karnuagh. Lneas (33-36)








L u i s A n g e l M t z . G m z .

Pgina 29
DIAGRAMA RTL
El diagrama RTL que se obtiene es el siguiente, en la caja negra se ve un dispositivo
que tiene 2 entradas(b,a) y 3 salidas (a_eq_b, a_mayor_b, a_menor_b). se observa
que cada entrada contiene dos bits de entrada. Si miramos en su interior se observa
que dentro de el hay interconexiones en las compuertas, para obtener las 3
ecuacinees booleana que obtubimos.








SIMULASION
Para simular el circuito:
1.- Creamos una nueva fuente tipo VHDL test bench.
2.- Borramos la parte que dice clock, y en su lugar le asignamos un nombre ala
constate de tiempo(linea57).
3.- En la parte de begin borramos todo el reloj(lnea 63) y en la parte de estimular
proceso(lnea 46-31) configuramos los tiempos de a cuerdo a la tabla de verdad para
las variables de entrada(b ya).




L u i s A n g e l M t z . G m z .

Pgina 30














En la simulacin se muestran los cambios de tiempo en las entradas b y a; en
consecuencia, tambin logramos ver como las 3 salidas cambian de encendido o
apagado segn las comparaciones que ocurren.




L u i s A n g e l M t z . G m z .

Pgina 31
archivo UCF
Para el asignamiento de los pines en la tarjeta se genero el archivo UCF; en donde se
establecio que las entradas a,b,c,d se asignaron a los switch T5,V8,U8,N8
respectivamente. En cuanto a la salida f se asigno en el led T11





Conclusiones
* Por medio de la simulacin se puede observar que cada condicin establecida se
cumple.
* Los mapas de karnaugh sirven para reducir a lo mximo el circuito,y asi
implementar un mejor diseo.
* Los mapas de karnugh son eficientes asta con 5 variables, ya que de 6 o mas es
muy tedioso, y en su lugarv seria conveniente usar leyes de Boole.

ANEXOS











L u i s A n g e l M t z . G m z .

Pgina 32
Practica 5: Mux: 2-1, con declaracin if

Resumen
En esta prctica se diseara un multiplexor que contenga 2 entradas a y b (de 1 bit
cada una), una seleccin s (de 1 bit) y la entrada que seleccionemos aparesca en una
salida y (1 bit)
La salida cumplir: y=a; si s=0
Y=b; si s=1
Empezamos creando el diagrama y la tabla de verdad del mux. Que contenga a , b,
s y y. En donde se muestran todas las combinaciones posibles entre las 3 entradas.
En este caso el problema nos da la ecuacin de la salida (y).
Despues, de la salida de la tabla de verdad, creamos una ecuacin boleana.
Luego debemos simplificar la EC. Resultante lo mas que sea posible, para un mejor
diseo, por medio de mapas de karnaugh.

DISEO PREVIO
Primero se hace la tabla de verdad, declarando todas las posibles combinaciones
con las 2 entradas de 2 bits cada una y 3 salidas; que satisfagan las condiciones (
a=b; o a>b; o a<b) los miniterminos que si cumplan se les coloca 1 en su
respectiva salida.


Ecuacion
resultante:

Y=(s * a) + (s * b)





s a b y
0 0 0 0 0
1 0 0 1 0
2 0 1 0 1
3 0 1 1 0
4 1 0 0 1
5 1 0 1 1
6 1 1 0 1
7 1 1 1 1
Tabla de verdad


L u i s A n g e l M t z . G m z .

Pgina 33


Mdulo VHD








L u i s A n g e l M t z . G m z .

Pgina 34
DIAGRAMA RTL
El diagrama RTL que se obtiene es el siguiente, en la caja negra se ve un dispositivo
que tiene 3 entradas; para ingresar datos son: b y a ; la seleccin es s y la salidas
y. se observa que cada entrada y salida contiene 1 bit. Por lo tanto l salida depende
de la posicin de s.








SIMULASION
Si s la seleccin esta encendida ; y es igual a b, pero si s esta apagado y muestra
el valor de a.











L u i s A n g e l M t z . G m z .

Pgina 35
archivo UCF
NET SE USA PARA PONER LA VARIABLE Y LOC PARA ASIGNARLE UN
CONTROL(SW,BOTON, LED, ETC)




Conclusiones
* Por medio de la simulacin se puede observar que cada condicin establecida se
cumple.
* Los mapas de karnaugh sirven para reducir a lo mximo el circuito,y asi
implementar un mejor diseo.
* Y DEPENDE DE LA SELECCIN QUE LE DEMOS A S; Y S TIENE LA POSIBILIDAD
DE ELEGIR ENTRE A Y B
ANEXOS












L u i s A n g e l M t z . G m z .

Pgina 36
Practica 12: decodificador 7 segmentos: ecuaciones logicas

Resumen
Un visualizador de siete segmentos se compone de siete diodos emisores de luz
(LEDs) dispuestos en un patrn como se muestra en la figura 1, y algunos incluyen un
octavo LED para el punto decimal. Existen dos tipos de visualizadores de acuerdo a su
conexin elctrica: nodo comn y ctodo comn. Desde el punto de vista de
programacin (o del diseo de sistemas digitales), es necesario saber el tipo de
visualizador para las condiciones de activacin:
En nodo comn, un 0 se utiliza para encendido y un 1 para apagado (lgica
negativa).
Caso contrario, ctodo comn utiliza un uno para encender los LEDs y un cero para
apagarlos (lgica positiva).

Figura 1: Visualizador de siete segmentos.

Se desea mostrar en el display las letras a,b,c,d,e,f,g.
Primero comenzamos creando la tabla de verdad, conentradas x3,
x2,x1, x0 y salidas a,b,c,d,e,f,g.
Luego sacamos las ec. Correspondientes a cada letra. Y las simplificamos con mapa de
karnaugh.
Por ultimo las pasamos al cdigo de vhdl.
NOTA: PARA AYAR LAS EC. USAREMOS MAXITERMINOS 0, PORQUE EL LA TAREJETA
UTILAZOMOS LOS CEROS PARA ENCENDER LOS SEGMENTOS Y UNOS PARA
APAGARLOS.







L u i s A n g e l M t z . G m z .

Pgina 37
DISEO PREVIO
Primero se hace la tabla de verdad, declarando todas las posibles combinaciones
con las 4 entradas y salidas;














Obtenemos a con mapas de karnaugh



(~x3*x2*~x1*~x0)+(~x3*~x2*~x1*x0)+(x3*x2*~x1*x0)+(x3*~x2*x1*x0)








X(3) X(2) X(1) X(0) a b c
d e f g
0 0 0 0 0 0 0 0
0 0 0 1
1 0 0 0 1 1 0 0
1 1 1 1
2 0 0 1 0 0 0 1
0 0 1 0
3 0 0 1 1 0 0 0
0 1 1 0
4 0 1 0 0 1 0 0
1 1 0 0
5 0 1 0 1 0 1 0
0 1 0 0
6 0 1 1 0 0 1 0
0 0 0 0
7 0 1 1 1 0 0 0
1 1 1 1
8 1 0 0 0 0 0 0
0 0 0 0
9 1 0 0 1 0 0 0
0 1 0 0
A 1 0 1 0 0 0 0
1 0 0 0
B 1 0 1 1 1 1 0
0 0 0 0
C 1 1 0 0 0 1 1
0 0 0 1
D 1 1 0 1 1 0 0
0 0 1 0
E 1 1 1 0 0 1 1
0 0 0 0
F 1 1 1 1 0 1 1
1 0 0 0
Tabla de verdad


L u i s A n g e l M t z . G m z .

Pgina 38
Obtenemos b con mapas de karnaugh

B= (~x3*x2*~x1*x0)+(x2*x1*~x0)+(x3*x1*x0)+
(x3*x2*~x0)

Obtenemos b con mapas de karnaugh

C=(~x3*~x2*x1*~x0)+(x3*x2*~x0)+(x3*x2*x1)



Obtenemos d con mapas de karnaugh

D= (~x3*x2*~x1*~x0)+(~x3*~x2*~x1*x0)+(x2*x1*x0)+
(x3*~x2*x1*~x0)

Obtenemos e con mapas de karnaugh

E= (~ x(3) * x(0)) + (~x(3) * x(2) * ~x(1))
+ (~x(2) * ~x(1) * x(0))







L u i s A n g e l M t z . G m z .

Pgina 39
Obtenemos f con mapas de karnaugh

F= (x3*x2*~x1*x0)+(~x3*~x2*x0)+(~x3*~x2*x1)+
(~x3*x1*x0)

Obtenemos g con mapas de karnaugh

G= (x3*x2*~x1*~x0)+(~x3*x2*x1*x0)+(~x3*~x2*~x1)



Mdulo VHD
















L u i s A n g e l M t z . G m z .

Pgina 40
DIAGRAMA RTL
El diagrama RTL que se obtiene es el siguiente, en la caja negra se muestra un vector
de tres entradas y una vector con7 salidas. Cada salida esperando la combinacin de
las entradas para ser mostrada.

























L u i s A n g e l M t z . G m z .

Pgina 41
SIMULASION




archivo UCF
NET SE USA PARA PONER LA VARIABLE Y LOC PARA ASIGNARLE UN CONTROL (SW,
BOTON, LED, ETC)






L u i s A n g e l M t z . G m z .

Pgina 42
Conclusiones
* Por medio de la simulacin se puede observar que cada condicin establecida se
cumple.
* Los mapas de karnaugh sirven para reducir a lo mximo el circuito,y asi
implementar un mejor diseo.

ANEXOS

























L u i s A n g e l M t z . G m z .

Pgina 43
Practica 29: con declaracin behavioral
Resumen
Realizar un sumador completo de n-bits, usando declaracin behabioral.
El sumador binario completo de n bits se basa en el sumador binario completo de 1
bit. Su grfico a continuacin

El sumador completo de 4 bits es una concatenacin de 4 sumadores binarios
completos de 1 bit, como se muestra en el grfico inferior. La concatenacin se realiza
a travs de los terminales de acarreo saliente (Cin) y acarreo entrante (Cout)
Un sumador de 4 bits: (n=4)
El sumador que se muestra suma dos nmeros binarios de 4
bits cada uno.
A = A
3
A
2
A
1
A
0
y B = B
3
B
2
B
1
B
0
, entonces
la suma ser S = C
out3
S
3
S
2
S
1
S
0

El bit menos significativo en los dos sumandos A y B es Ao y
Bo y el bit ms significativo es A3 y B3.

La suma se inicia en el sumador completo 0 (el inferior) con
las suma de Ao y Bo, si esta suma tuviese acarreo(Cout=1)
este pasara al sumador 1, y as sucesivamente hasta llegar al
sumador 3 en la parte superior del grfico.
Si el sumador superior tiene acarreo ("1"), ste se refleja en la suma al lado izquierdo
de la sumatoria final.
El acarreo entrante inferior no se conecta


L u i s A n g e l M t z . G m z .

Pgina 44
DISEO PREVIO
Primero se hace la tabla de verdad, declarando todas las posibles combinaciones
con las 4 entradas y salidas;













Por lo tanto la ecuacin resultante seria: y= a+b
Nota solo se ara el programa para un sumador de 2 bits, porque la tarjeta no
trae n pines para asignar entradas y salidas.













a(1) a(0) b (1)
b (0)
y (3) y (1)
y(0)
0 0 0 0 0
0 0 0
1 0 1 0 1
0 0 1
2 1 0 1 0
0 1 0
3 1 1 1 1
0 1 1
4 0 0 0 0
1 0 0
5 0 1 0 1
1 0 1
6 1 0 1 0
1 1 0
7 1 1 1 1
1 1 1
8 0 0 0 0
0 0 0
9 0 1 0 1
0 0 1
A 1 0 1 0
0 1 0
B 1 1 1 1
0 1 1
C 0 0 0 0
1 0 0
D 0 1 0 1
1 0 1
E 1 0 1 0
1 1 0
F 1 1 1 1
1 1 1
Tabla de verdad


L u i s A n g e l M t z . G m z .

Pgina 45
Mdulo VHD










DIAGRAMA RTL
El diagrama RTL que se obtiene es el siguiente, en la caja negra se muestra 2 vectores
de dos entradas y una vector con 3 salidas. Cada salida esperando la combinacin de
las entradas para ser mostrada.














L u i s A n g e l M t z . G m z .

Pgina 46
SIMULASION





archivo UCF
NET SE USA PARA PONER LA VARIABLE Y LOC PARA ASIGNARLE UN CONTROL (SW,
BOTON, LED, ETC)











L u i s A n g e l M t z . G m z .

Pgina 47
Conclusiones
* Por medio de la simulacin se puede observar que cada condicin establecida se
cumple.
* es mas sencillo usar este tipo de declaraciones, adems ahorra cdigo inescesario.
ANEXOS




























L u i s A n g e l M t z . G m z .

Pgina 48
Practica 31: Subtractor de N-Bits: declaracin behavioral ;n=4
Resumen
Un restador es un dispositivo lgico que recibe dos nmeros a la entrada, A y B, y a la
salida nos da su diferencia, admitiendo una posible llevada de una operacin anterior y
proporcionndonos un na nueva.El sumador completo de 4 bits es una concatenacin
de 4 sumadores binarios completos de 1 bit, como se muestra en el grfico inferior. La
concatenacin se realiza a travs de los terminales de acarreo saliente (Cin) y acarreo
entrante (Cout)
Los restadores utilizan el formato de complemento a dos para representar los nmeros
negativos.
Para realizar la resta en binario se requiere seguir un algoritmo descrito por los siguientes
pasos:
1. Se iguala el numero de cifras en el minuendo y el sustraendo aadiendo
ceros a la izquierda del numero con menos cifras.
2. Se conserva el minuendo.
3. Se complementa a 1 el sustraendo. El complemento consiste en la cantidad
que le hace falta a un numero para alcanzar el numero maximo de su base. En el
sistema binario el complemento a 1 equivale a intercambiar 1 por 0 y 0 por 1.
4. Se suma el minuendo con el sustraendo complementado.
5. Si existe acarreo, se suma el acarreo al resultado de la suma anterior. La
existencia del acarreo indica que el resultado es positivo.
6. Si no existe acarreo, se complementa a 1 el resultado de la suma anterior. La
no existencia de acarreo indica que el resultado es negativo.
Entonces el algoritmo indica los siguientes pasos:
1. Complementar a 1 el sustraendo. Dada dos entradas A y B, el sustraendo se
puede complementar haciendo uso de la compuerta NOT.
2. Sumar el minuendo con el sustraendo complementado.








L u i s A n g e l M t z . G m z .

Pgina 49
DISEO PREVIO
Primero se hace la tabla de verdad, declarando todas las posibles combinaciones
con las 4 entradas y salidas;













Por lo tanto la ecuacin resultante seria: y= a-b
Nota solo se ara el programa para un sumador de 2 bits, porque la tarjeta no
trae n pines para asignar entradas y salidas.













a(1) a(0) b (1)
b (0)
y (3) y (1)
y(0)
0 0 0 0 0
0 0 0
1 0 1 0 1
0 0 1
2 1 0 1 0
0 1 0
3 1 1 1 1
0 1 1
4 0 0 0 0
1 0 0
5 0 1 0 1
1 0 1
6 1 0 1 0
1 1 0
7 1 1 1 1
1 1 1
8 0 0 0 0
0 0 0
9 0 1 0 1
0 0 1
A 1 0 1 0
0 1 0
B 1 1 1 1
0 1 1
C 0 0 0 0
1 0 0
D 0 1 0 1
1 0 1
E 1 0 1 0
1 1 0
F 1 1 1 1
1 1 1
Tabla de verdad


L u i s A n g e l M t z . G m z .

Pgina 50
Mdulo VHD

DIAGRAMA RTL
El diagrama RTL que se obtiene es el siguiente, en la caja negra se muestra 2 vectores
de dos entradas y una vector con 2 salidas. Cada salida esperando la combinacin de
las entradas para ser mostrada.












L u i s A n g e l M t z . G m z .

Pgina 51


SIMULASION


















L u i s A n g e l M t z . G m z .

Pgina 52
archivo UCF








Conclusiones
* Por medio de la simulacin se puede observar que cada condicin establecida se
cumple.
* es mas sencillo usar este tipo de declaraciones, adems ahorra cdigo inescesario.
ANEXOS










L u i s A n g e l M t z . G m z .

Pgina 53
Practica 33: multiplicando por una constante
dISEO


CODIGO DE VHDL





L u i s A n g e l M t z . G m z .

Pgina 54
DISEO RTL Y CAJA NEGRA





















L u i s A n g e l M t z . G m z .

Pgina 55

SIMULACIN









L u i s A n g e l M t z . G m z .

Pgina 56

UCF



ANEXOS











L u i s A n g e l M t z . G m z .

Pgina 57
PRACTICA 52: DIVISOR DE FRECUENCIA
El divisor de frecuencia es un componente simple, cuyo objetivo es reducir la frecuencia de entrada. ste se
implementa con ayuda del factor de escalamiento y un contador. Primeramente, el factor de escalamiento
es la relacin entre la frecuencia de entrada y la frecuencia de salida deseada, en el ejemplo se va a reducir
de una entrada de 100 mHz a 1 Hz.

El diseo del programa es similar al siguiente:






















L u i s A n g e l M t z . G m z .

Pgina 58
Modulo.
Para poder hacer el programa se necesita hacer primero el cdigo VDHL, como se muestra a continuacin:















Diagrama de RTL y caja negra:









L u i s A n g e l M t z . G m z .

Pgina 59










SIMULACION:








L u i s A n g e l M t z . G m z .

Pgina 60



CODIGO PARA LA SIMULACION:








L u i s A n g e l M t z . G m z .

Pgina 61
ASIGNACION DE LAS PATILLAS MEDIANTE EL UCF.



CONCLUCIONES:
Este programa lo que hace es reducir las una entrada de 100 m hz a solo 1 hz dividiendo el valor de entrada,
por lo que nosotros queremos, esto se comprueba cuando bajamos el programa a la tarjeta, lo que sucede
es que los leds asignados parpadean a diferente velocidad, dependiendo de lo que se indique en el
programa.














L u i s A n g e l M t z . G m z .

Pgina 62
ANEXOS












L u i s A n g e l M t z . G m z .

Pgina 63













L u i s A n g e l M t z . G m z .

Pgina 64




L u i s A n g e l M t z . G m z .

Pgina 65

Вам также может понравиться