Documentos de Académico
Documentos de Profesional
Documentos de Cultura
TEMA
NOMBRE
CARNET
GPO. TEO.
GPO.
DISC.
Romero Granados
Gerson Benedicto
RG13039
Oliva Hernndez
Miguel ngel
OH13007
INSTRUCTOR
INDICE
INTRODUCCION ........................................................................................................................ 3
OBJETIVOS ............................................................................................................................... 4
MARCO TEORICO ...................................................................................................................... 5
DESARROLLO DE CIRCUITOS ..................................................................................................... 8
RESULTADOS DE INVESTIGACION ............................................................................................ 27
OBSERVACIONES .................................................................................................................... 29
CONCLUSIONES ...................................................................................................................... 30
BIBLIOGRAFA -----------------------------------------------------------------------------------------------------Error!
Marcador no definido.
INTRODUCCION
En presente trabajo se mostrara el anlisis, diseo e implementacin (a manera de simulacin) de
dos circuitos lgicos digitales con el software QUARTUS II, as como tambin una visin general de
cmo funciona dicho software, ventajas de su uso y los requerimientos que se necesitan para su
instalacin. Tambin se pondrn en prctica los conocimientos adquiridos en clase sobre los
mapas de Karnaugh y la universalidad de las compuertas NAND y NOR. As como la aplicacin en
el leguaje VHDL (Veryhighspeedintegratedcircuit Hardware DescriptionLanguage) y el
conocimiento y descripcin de algunas de las libreras que este implementa.
Tambien hablaremos sobre los mapa de Karnaugh (tambin conocido como tabla
de Karnaugh o diagrama de Veitch, abreviado como Mapa-K o Mapa-KV) es un diagrama utilizado
para la simplificacin de funciones algebraicas Booleanas. El mapa de Karnaugh fue inventado
en 1950 por Maurice Karnaugh, un fsico y matemtico de los laboratorios Bell.
Los mapas de Karnaugh reducen la necesidad de hacer clculos extensos para la simplificacin de
expresiones booleanas, aprovechando la capacidad del cerebro humano para el reconocimiento
de patrones y otras formas de expresin analtica, permitiendo as identificar y eliminar
condiciones muy inmensas.
Tambien hablaremos sobre otro mtodo de simplificacin, en matemticas las expresiones
booleanas se simplifican por numerosas razones: - Una expresin ms simple es ms fcil de
entender y tiene menos posibilidades de error a la hora de su interpretacin.
Una expresin simplificada suelen ser ms eficiente y efectiva cuando se implementan en la
prctica, como en el caso de circuitos elctricos o en determinados algoritmos. El mtodo de
Quine-McCluskey es particularmente til cuando se tienen funciones con un gran
nmerode variables, no es el caso del mtodo de Karnaugh, que se hace impracticable con ms de
cinco variables.
OBJETIVOS.
OBJETIVO GENERAL:
OBJETIVOS ESPECIFICOS:
MARCO TEORICO.
Qu es QUARTUS II?
QUARTUS II,, su versin para estudiantes es un software potente y asequible para la simulacin y
anlisis de circuitos electrnicos. Funciona con circuitos analgicos lineales y no lineales, digitales
y mixtos. QUARTUS II es una herramienta de aprendizaje extraordinaria
extraordinaria para los estudiantes. Sus
caractersticas ms destacadas incluyen el anlisis simblico, presentacin de herramientas
sofisticadas para resolver su trabajo, y un modo especial de enseanza.
En la siguiente figura se observa el entorno QUARTUS II
sto te ayuda no slo en el desarrollo o en la comprensin del funcionamiento del circuito, sino
que tambin te ahorra horas de trabajo deduciendo o verificando frmulas.
El mapa de Karnaugh
Es un mtodo grfico que se utiliza para simplificar una ecuacin lgica para convertir una tabla de
verdad a su circuito lgico correspondiente en un proceso simple y ordenado. Aunque un mapa de
Karnaugh (que de aqu en adelante se abreviar como mapa K) se puede utilizar para resolver
problemas con cualquier numero de variables de entrada, su utilidad practica se limita a seis
variables. El siguiente anlisis se limitara a problemas de hasta cuatro entradas , ya que los
problemas con cinco y seis entradas son demasiado complicados y se resuelven mejor con un
programa de computadora.
Metodo de QuineMcCluskey
Sea K un lgebra de Boole y f una funcin booleana de orden n sobre K. Denotamos por B = {0, 1}.
Para obtener una expresin simplificada de f realizamos los siguientes pasos:
1. Calculamos su tabla de verdad.
2. Ordenamos los valores cuya imagen es 1 en una columna de arriba a abajo en nmero
decreciente de unos. Separamos estos en bloques de forma que los elementos de cada bloque
tengan el mismo nmero de unos.
3. Comparamos cada elemento de cada bloque con cada uno de los elementos del bloque inferior
de forma que si dos de estos elementos difieren en un nico valor, les antepondremos un + y
escribiremos en una nueva columna, el elemento que se obtiene al sustituir dicho valor por un
guion. Separaremos los elementos resultantes por una lnea cuando acabemos de comparar dos
bloques.
4. Repetimos el proceso anterior con la nueva columna obtenida y as sucesivamente hasta que
slo tengamos una nica columna con un nico bloque o bien, cuando de los bloques que se
tengan, no existan elementos que difieran slo en un valor de otro elemento del bloque siguiente.
5. Rellenamos una tabla donde escribimos en la primera fila las secuencias de unos y ceros
correspondientes a los tomos de f, en la primera columna las secuencias con guiones que no
llevan + obtenidas anteriormente, y en cada recuadro interior correspondiente a un tomo y uno
con guin, escribiremos un asterisco si todos los valores de ambos, sin contar los elementos con
guiones coinciden.
6. Finalmente, de cada columna elegimos un asterisco de forma que el nmero de filas donde
hayan sido elegidos asteriscos sea el menor posible. La suma de los elementos de la primera
columna que contienen asteriscos elegidos junto con los elementos de la primera fila en cuya
columna no hay ningn asterisco es una expresin booleana simplificada de f.
DESARROLLO DE CIRCUITOS.
-
ASIGNACION 1
Desarrollar y simular un convertidor de 8421 a 7 segmentos, el cual se describe en la
siguiente figura:
Para las combinaciones no vlidas, rellene con ceros. Obtenga las ecuaciones simplificadas
para las salidas utilizando Mapas K (dejando constancia del proceso), trabajando con
MINTERMINOS, codifique cada una en Quartus II (VHDL) y obtenga la simulacin par
para las
combinaciones
es validas utilizando ModelSim.
Paso 1. Primero, se debe indagar la tabla de verdad de un display de 7 segmentos, la cual se
presenta a continuacin:
Digito a b
d e
0 0 0 0 0 0 1
1 0 0 1 1 1 1
0 0 1 0 0 1 0
0 0 0 0 1 1 0
1 0 0 1 1 0 0
0 1 0 0 1 0 0
0 1 0 0 0 0 0
0 0 0 1 1 1 1
0 0 0 0 0 0 0
0 0 0 0 1 0 0
A B C D
d e
0 0
1 1
0 0
0 1
1 1
0 1
0 0
1 1
0 0
0 1
10
0 0
11
0 0
12
0 0
13
0 0
14
0 0
15
0 0
AB \CD
00
00
01
11
10
01
0
11
11
12
8
0
09
10
3
13
15
14
11
10
AB \CD
00
00
01
11
12
10
01
11
0
10
3
13
15
14
11
10
10
AB \CD
00
00
01
11
10
01
11
0
10
3
12
13
15
14
11
10
AB \CD
00
00
01
11
12
10
01
11
1
10
3
13
15
14
11
10
11
(1, 3 5, 7, 9)
AB \CD
00
00
01
01
11
12
10
11
1
10
3
13
15
14
11
10
12
AB \CD
00
00
01
11
12
10
01
1
11
10
3
13
15
14
11
10
AB \CD
00
00
01
11
12
10
01
11
1
10
3
13
15
14
11
10
13
--*************************************
ENTITY ASIGNACION_1 IS
PORT (
A, B, C, D :IN BIT;
p, q, r, s, t, u, v :OUT BIT );
END ASIGNACION_1;
--**************************************
ARCHITECTURE ARCH_1 OF ASIGNACION_1 IS
BEGIN
p <= (not(A)and B and not(C)and not(D))or(not(A)and not(B) and not(C)and D);
q <= (not(A)and B and not(C)and D)or(not(A)and B and C and not(D));
r <= (not(A)and not(B) and C and not(D));
s <= (not(A)and B and not(C)and not(D))or(not(A)and not(B) and not(C)and D)or(not(A)and B and C and
D);
t <= (not(A)and D)or(not(A)and B and not(C));
u <= (not(A)and not(B) and D)or(not(A)and not(B) and C)or(not(A)and C and D);
v <= (not(A)and not(B) and not(C))or(not(A)and B and C and D);
END ARCH_1;
--**************************************
14
15
ASIGNACION 2.
Desarrollar un convertidor de cdigos BCD: 2421, 5421, 7421 y Exceso3, todos al cdigo BCD 8421;
estrictamente utilizar solo compuertas bsicas, sern 6 entradas, las primeras 2 entradas, A Y B
sern de control, es decir, 00=7421 a 8421, 01= Exceso 3 a 8421, 10=2421 a 8421 y 11= 5421 a
8421, y 4 entradas las cuales sern el cdigo BCD que se convertirn; y las salidas sern las 4 del
cdigo 8421.
En las salidas no validas de los cdigos BCD se rellenaran con X (dontcareconditions).
Obtenga las ecuaciones simplificadas para las salidas utilizando Mapas K (dejando constancia del
proceso), codifique cada una en Quartus II (VHDL) y obtenga la simulacin para las combinaciones
validas utilizando ModelSim.
Paso 1: Realizar la tabla de verdad.
#
32 1
33 1
34 1
35 1
36 1
37 1
38 1
39 1
40 1
41 1
10 0
42 1
11 0
43 1
12 0
44 1
13 0
45 1
14 0
46 1
15 0
47 1
16 0
48 1
17 0
49 1
16
18 0
50 1
19 0
51 1
20 0
52 1
21 0
53 1
22 0
54 1
23 0
55 1
24 0
56 1
25 0
57 1
26 0
58 1
27 0
59 1
28 0
60 1
29 0
61 1
30 0
62 1
31 0
63 1
(9, 10, 27, 28, 46, 47, 59, 60 ) + (7, 11 18, 29 31, 37 42, 53 55, 61 63 )
ABC\DEF
000
001
000
001
24
25
011
010
16
X17
110
48
111
56
101
40
100
49
X41
010
057
32
011
033
110
11
10
14
27
26
30
19
18
51
50
59
43
35
100
15
13
12
31
29
28
22
23
21
20
54
55
53
52
58
62
63
61
60
42
46
47
45
44
34
38
39
37
36
101
7
111
17
Para la variable X:
(4 6, 8, 23 26, 36, 43 45, 52, 56 58) + (7, 11 18, 29 31, 37 42,
53 55, 61 63 )
ABC\DEF
000
011
010
110
01
001
11
10
14
011
1 24
27
26
30
010
19
18
51
50
59
43
35
1 25
X
16
110
48
111
56
1 57
100
49
40
17
41
033
32
111
000
101
001
101
15
13
12
31
29
28
22
23
21
20
54
55
53
52
58
62
63
61
60
42
46
47
45
44
34
38
37
36
100
0
X
39
18
Para la variable Y:
=
(2, 3, 6, 8, 21, 22, 25, 26, 34, 44, 45, 50, 51,57, 58 ) + (7, 11 18, 29 31, 37 42,
53 55, 61 63 )
ABC\DEF
000
001
000
001
011
24
25
010
16
011
1
17
010
110
111
11
10
14
27
26
30
19
18
101
100
15
13
12
31
29
28
22
23
21
20
110
48
0 49
51
50
54
55
53
52
111
56
59
58
62
63
61
60
43
42
46
47
45
44
35
34
38
39
37
36
101
100
40
32
57
41
033
19
Para la variable Z:
=
(1, 3, 5, 8, 10, 20, 22, 24,26, 28,33, 35, 43, 45, 47, 49, 56, 58, 60 ) + (7, 11 18, 29
31, 37 42,
ABC\DEF
000
001
000
001
011
1 24
010
110
0 48
1 49
111
156
0 57
101
100
32
16
40
53 55, 61 63 )
011
010
110
111
09
11
10
14
27
26
30
19
18
51
50
59
43
35
25
X
133
17
41
100
15
13
12
31
29
28
22
23
21
20
54
55
53
52
58
62
63
61
60
42
46
47
45
44
34
38
39
37
36
101
20
END ARCH_2;
--**************************************
21
22
Problema 3.
Simplifique utilizando el mtodo de Qm, la ecuacin de la salida de un circuito comparador de 2
nmeros binarios (K y L) de 2 bits cada uno, que genere un 1 en la salida cuando K es mayor a L.
Cuando los nmeros sean iguales rellenar con 0, Habiendo obtenido la ecuacin simplificada por
el mtodo antes mencionado, codifquela en VHDL y obtenga la simulacin utilizando ModelSim.
A B C D X
0
X = m(4,8,9,12,13,14)
X = m (4,8,9,12,13,14)
Poseen un 1: (4,8)
23
(4,12)_(-8)*
(8,9)_(-1)
(8,12)_(-4)
12
(9,13)_(-4)
13
(12,13)_(-1)
(8,9,12,13)_(-1,-4)*
(12,14)_(-2)*
Tabla de implicacin:
Combinaciones 4 8 9 12 13 14
(8,9,12,13)
(12,14)
(4,12)
Cheques
24
ENTITY comparador IS
PORT (
A,B,C,D :IN bit;
X :OUT bit);
END comparador;
ARCHITECTURE circ OF comparador IS
BEGIN
X <= (A and not(C)) or (A and B and not(D)) or (B and not(C) and
not(D));
END circ;
Imagen de su codificacin.
25
26
RESULTADOS DE LA INVESTIGACION.
Investigue las libreras existentes para VHDL, las caractersticas, elementos que contiene, como
acceder a stas y cmo utilizarlas.
Una librera se compone de dos partes bien diferenciadas, dependiendo de las unidades que la
formen. Por un lado, estn las unidades primarias, que correspondern a entidades, paquetes y
archivos de configuracin. Mientras que las unidades secundarias sern arquitecturas y cuerpos de
paquetes. Por lo tanto, se puede sacar la conclusin de que cada unidad secundaria deber estar
asociada con una unidad primaria.
Al realizar una compilacin se analizarn las unidades que vayan apareciendo en el texto. Por
consiguiente, es importante establecer un orden lgico de las distintas unidades, para que de esta
forma se puedan cumplir las dependencias existentes entre las mismas. La forma que toma la
librera una vez compilada es muy diversa; dependiendo de la herramienta de compilacin
utilizada as ser el resultado obtenido, esto se debe a que en VHDL no existe un estndar para
crear bibliotecas.
Para incluir una librera a un diseo basta con utilizar la palabra reservada LIBRARY seguida del
nombre de la biblioteca a utilizar. Adems, tambin es posible hacer visibles elementos internos
de estas bibliotecas con el uso de la sentencia USE. En el caso de querer hacer visible todos los
elementos de un paquete se puede utilizar la palabra reservada ALL.
La declaracin de una librera sigue la siguiente sintaxis:
LibraryMiLibreria;
use MiLibreria.Paquete1.all;
use MiLibreria.Paquete2.all; --Enmascara las funciones de Paquete1
En VHDL hay dos libreras que no hacen falta importarlas. Por un lado est la librera work, que
contiene las unidades que se estn compilando, y por otro lado, la librera std que contiene los
paquetes standard y textio, las cuales contienen definiciones de tipos y funciones para el acceso a
ficheros de texto.
Librera IEEE
Una de las bibliotecas ms utilizadas en el mundo de la industria es la denominada IEEE(Institute
of Electrical and ElectronicsEngineers), la cual contiene algunos tipos y funciones que completan a
las que vienen por defecto en el propio lenguaje.
Libreria IEEE;
use IEEE.std_logic_1164. all ;
useIEEE.std_logic_arith. all;
useIEEE.std_logic_signed.all;
useIEEE.std_logic_unsigned.all;
useIEEE.numeric_bit.all;
useIEEE.numeric_std.all;
27
useIEEE.math_real.all;
useIEEE.math_complex.all;
USE ieee.std_logic_1164: Especifica el STD_LOGIC (8 niveles) y el STD_ULOGIC (9 niveles) para
sistemas lgicos multinivel. De todos estos niveles slo 3 son sintetizables sin restricciones; el
resto sirven para simulacin.
Librera Synopsys:
USE ieee.std_logic_arith: Esta es la Librera que define algunos tipos y operaciones aritmticas
bsicas para la representacin de nmeros enteros en formas estndar. Esta es una extensin de
Synopsys.
USE std_logic_misc: Define tipos, subtipos, constantes y funciones complementarios para el
paquete std_logic_1164.
USE ieee.std_logic_signed: Esta Librera ampla la biblioteca std_logic_arith para manejar valores
STD_LOGIC_VECTOR como enteros con signo
USE ieee.std_logic_unsigned: Esta Librera ampla la biblioteca std_logic_arith para manejar
valores STD_LOGIC_VECTOR como enteros sin signo.
Liberia work
USE work.all: Esta librera es la de trabajo, en la que se almacenan compiladas todas las unidades
de diseo en curso, es decir, todas las entidades, arquitecturas, configuraciones y paquetes que
forman parte del diseo (creados por el compilador, simulador, etc.).
library IEEE;
use IEEE.std_logic_1164.all;
Librera std:
Contiene declaraciones de tipos de datos y funciones de entrada-salida de texto entre otros.
USE std.standard.all;
USE std.textio.all;
Standard: donde se definen los tipos lgicos y numricos bsicos.
Textio: Define tipos para la creacin de texto y procedimientos para el ingreso e impresin de
textos.
28
OBSERVACIONES
En las entradas no validas por ejemplo en: 010010 la salida est llena de posiciones dont
cares estas en el circuito se llenan con ceros.
El mtodo de mapas de karnaugh puede funcionar para cualquier problema sin importar el
numero de variables pero seria demasiado complicado trabajar con varias variables
siendo un trabajo demasiado tedioso.
Los mapas QM si pueden funcionar para cualquier tipo de circuitos sin importar el nmero
de variables.
29
CONCLUSIONES.
QUARTUS II es una herramienta muy poderosa que nos permite simular circuitos antes de
llevarlos a una implementacin real, algo que nos puede servir cuando el circuito sea algo
complejo y se necesite saber cmo va funcionar, o en caso de que lleven componentes de
alto coste, se podra saber exactamente qu es lo que va llevar, para no hacer un gasto
innecesario ya que nos permite virtualmente ver un circuito realizando sus funciones sin
necesidad de hacer el gasto para poder hacer las modificaciones respectivas para un
optimo funcionamiento de este.
30
BIBLIOGRAFIA.
http://www.tina.com/Spanish/tina/student_version
http://es.wikibooks.org/wiki/Programaci%C3%B3n_en_VHDL/Organizaci%C3%B3n
_del_c%C3%B3digo
http://www.csee.umbc.edu/portal/help/VHDL/stdpkg.html
http://www.cs.sfu.ca/~ggbaker/reference/std_logic/
http://www.dte.uvigo.es/vhdl/c7.html
31