Ejemplo VHDL Quartus
ESTUDIOS GENERALES CIENCIAS
INFORME DE
LABORATORIO DE CIRCUITOS DIGITALES
Tema
:
Nombre
:
Código
:
Horario
:
Laboratorio 2
446
Lima, abril de 2015
1. Descripción del funcionamiento del circuito
El circuito a desarrollar será un sumador de números de dos bits, el cual tendrá como
entrada valores de un bit A0, A1, B0, B1. Estos, a su vez, seconcatenarán para formar
un número de tres bits: ‘0’(A1)(A0) y ‘0’(B1)(B0). Sin embargo esto contradice lo
anteriormente dicho (se sumarán números de dos bits), pero los agrupamos de este
modo con la finalidad de tener el acarreo de la suma, debido a que la salida es un
número de tres bits, donde el número más significativo es el del acarreo. En el circuito
se denominó a nuestra salida comoCoutZ1Z0, un número de tres bits, del cual cada bit
varían dependiendo de los valores de las entradas de selección: S1, S2. De este modo,
se tendrán cuatro posibles salidas:
S1 S2
CoutZ1Z0
0
0
Salida en binario
0
1
Salida en binario, pero invertida
1
0
Salida en código Grey
1
1
Salida en código Grey, pero invertido
Para simplificar la tabla de verdad y la aplicación de mapas de Karnaugh,se optó por
sumar los números compuestos A(0 A1 A0) y B(0 B1 B0) para obtener como resultado
un número de tres bits C. De esta manera, en lugar de trabajar con las entradas A1, A0,
B1, B0, S1 y S2 como variables, sólo se utilizarán los valores de S1, S2, C(2), C(1) y
C(0), siendo estos tres últimos los valores de cada bit que conforman la suma C.
Además, debido a que los números A y B solo puedendar como máximo resultado 6, es
decir 110, se pueden considerar a las salidas como valores no importa cuando C sea
111.
Finalmente, las salidas de un bit O(2), O(1) y O(0) en conjunto pasan a formar la salida
de tres bits CoutZ1Z0 (O(2) O(1) O(0)).
De esta manera, la tabla de verdad queda representada de la siguiente manera:
Gray
Inverso
Variables de la suma de tres bits
Salidas de CoutZ1Z0 detres bits
S1
S2
C(2)
C(1)
C(0)
O(2)
O(1)
O(0)
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
1
0
0
1
0
0
0
0
1
1
0
1
1
0
0
1
0
0
1
0
0
0
0
1
0
1
1
0
1
0
0
1
1
0
1
1
0
0
0
1
1
1
X
X
X
0
1
0
0
0
0
0
0
0
1
0
0
1
1
0
0
0
1
0
1
0
0
1
0
0
1
0
1
1
1
1
0
0
1
1
0
0
0
0
1
0
1
1
0
1
1
0
1
0
1
11
0
0
1
1
0
1
1
1
1
X
X
X
1
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
1
0
0
1
0
0
1
1
1
0
0
1
1
0
1
0
1
0
1
0
0
1
1
0
1
0
1
0
1
1
1
1
1
0
1
1
0
1
0
1
1
0
1
1
1
X
X
X
1
1
0
0
0
0
0
0
1
1
0
0
1
1
0
0
1
1
0
1
0
1
1
0
1
1
0
1
1
0
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
0
11
1
1
1
1
X
X
X
Por tanto, partir de esta tabla de verdad, se pueden obtener los siguientes mapas de
Karnaugh:
Para O(2):
0
0
0
0
0
0
0
0
1
1
X
1
1
1
X
1
0
1
X
0
0
1
X
1
0
1
1
0
0
1
0
1
_
_
_
_
O(2)=S2.C2+S2.C1.C0+S1.S2.C0+S1.S2.C1.C0
Para O(1):
0
0
1
1
0
0
1
1
0
0
X
1
1
1
X
0
0
0
X
1
1
1
X
0
0
0
1
1
0
0
1
1
_
_
_O(1)=S1.C1+C2.C1+S1.S2.C1
Para O(0):
0
1
1
0
0
1
0
1
0
1
X
0
0
1
X
1
1
1
X
1
1
1
X
1
0
0
0
0
0
0
0
0
_
_ _
_
_
O(0)=S1.S2.C0+S2.C2+S2.C1.C0+S1.S2.C1.C0
2. Estructura del circuito
Primer diagrama (Entidad):
Segundo diagrama (Arquitectura):
3. Estructura del código:
3.1. Declaración de librerías/paquetes
Cabe recalcar que los operadores lógicos not, and y or solo sonusados para describir el
circuito lógico usando compuertas lógicas. Mientras que el operador lógico xor será
usado en las otras dos descripciones del circuito.
3.2. Declaración de la Entidad
3.3. Declaración de la Arquitectura
Arquitectura usando compuertas lógicas:
Arquitectura usando When-else:
Arquitectura usando With-select-when:
4. Verificación funcional del circuito (Test Bench):...
Regístrate para leer el documento completo.