-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
1/149
CIRCUITOS LGICOS
DIGITALESMANUAL DE PRCTICAS DE LABORATORIOPRIMERA EDICIN
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
2/149
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
3/149
CIRCUITOS LGICOSDIGITALES
MANUAL DE PRCTICAS DE LABORATORIO
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
4/149
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
5/149
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
6/149
CIRCUITOS LGICOS DIGITALESMANUAL DE PRCTICAS DE LABORATORIO
Primera edicin 2011
D.R. Universidad Autnoma de Aguascalientes Av. Universidad No. 940 Ciudad Universitaria C.P. 20131, Aguascalientes, Ags. http://www.uaa.mx/direcciones/dgdv/editorial/
Gerardo Leyva Hernndez Israel de la Parra Gonzlez Rodrigo Jaramillo Ramrez
ISBN 978-607-8227-06-8Hecho en Mxico / Made in Mexico
http://www.uaa.mx/direcciones/dgdv/editorial/http://www.uaa.mx/direcciones/dgdv/editorial/ -
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
7/149
Gerardo Leyva HernndezIsrael de la Parra GonzlezRodrigo Jaramillo Ramrez
CIRCUITOS LGICOSDIGITALES
MANUAL DE PRCTICAS DE LABORATORIO
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
8/149
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
9/149
Introduccin
Circuitos lgicos digitalesPrimera parte
Prctica 1Compuertas lgicas
ObjetivoFundamento tericoMaterial y equipoDesarrolloSeccin de resultadosResumen
Prctica 2lgebra de Boole
ObjetivoFundamento tericoMaterial y equipoDesarrolloSeccin de resultadosResumen
Prctica 3Uso de tablas de verdad (Paridad)
ObjetivoFundamento tericoMaterial y equipoDesarrolloSeccin de resultadosResumen
11
15
17
191920202222
23
252527272828
29
313132323233
ndice
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
10/149
Prctica 4Suma y producto cannicos
ObjetivoFundamento tericoMaterial y equipo
DesarrolloSeccin de resultadosPrctica 5Convertidores de cdigo
ObjetivoFundamento tericoMaterial y equipoDesarrolloSeccin de resultadosResumen
Prctica 6Codificador de prioridad
ObjetivoFundamento tericoMaterial y equipoDesarrolloSeccin de resultadosResumen
Prctica 7Sumadores
ObjetivoFundamento tericoMaterial y equipoDesarrolloSeccin de resultadosResumen
Prctica 8Multiplicadores de nmeros enteros positivos
ObjetivoFundamento tericoMaterial y equipoDesarrolloSeccin de resultadosPrctica 9ALU (Unidad Aritmtico-Lgica)
ObjetivoFundamento tericoMaterial y equipoDesarrolloSeccin de resultados
35
373738
3838
41
434346464748
49
515152525353
55
575758586060
61
6363646565
67
6969707070
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
11/149
Prctica 10Flip-flops
ObjetivoFundamento tericoMaterial y equipo
DesarrolloSeccin de resultadosResumen
Circuitos lgicos digitalesSegunda parte
Prctica 1Registros y latches
ObjetivoFundamento terico
Material y equipoProcedimientoTabla de resultados
Prctica 2Contadores
ObjetivoFundamento tericoMaterial y equipoProcedimientoTabla de resultadosResumenCuestionario
Prctica 3Aplicaciones de lgica secuencial (I)
ObjetivoFundamento tericoMaterial y equipoProcedimientoTabla de resultados
Prctica 4Aplicaciones de lgica secuencial (II)
ObjetivoFundamento tericoMaterial y equipoProcedimientoTabla de resultados
71
737374
747575
77
79
8181
828282
83
85858686868787
89
9191929293
95
9797
102102102
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
12/149
Prctica 5Registro de desplazamiento
ObjetivoFundamento tericoMaterial y equipo
ProcedimientoTabla de resultados
Prctica 6Multiplicadores de nmeros enteros (I)
ObjetivoFundamento tericoMaterial y equipoProcedimientoTabla de resultados
Prctica 7
Mquinas de estado finitas (FSM)
ObjetivoFundamento tericoMaterial y equipoProcedimientoTabla de resultados
Prctica 8Multiplicadores de nmeros enteros (II)
ObjetivoFundamento tericoMaterial y equipoProcedimientoTabla de resultados
Prctica 9Controlador de LCD
ObjetivoFundamento tericoMaterial y equipoProcedimientoTabla de resultados
103
105105106
106106
107
109109112112113
115
117117119119119
121
123123134134135
137
139139145145145
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
13/149
INTRODUCCIN
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
14/149
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
15/149
13
El diseo electrnico digital ha impactado considerablemente nues-tra sociedad por medio de la adopcin de tecnologas de uso comncomo: los telfonos celulares, las computadoras, la televisin digi-tal, los videojuegos, los reproductores porttiles de msica, entreotros. En las ltimas dcadas, la tendencia en el diseo electrnicoha demandado la implementacin de sistemas digitales en camposde la ingeniera, considerados mayoritariamente como analgicos(instrumentacin, procesamiento de seales, control y comunica-ciones, por mencionar algunos). En efecto, la adopcin de sistemasdigitales en diversos campos de la ingeniera tiene como principalesatractivos la reduccin del tiempo de ciclo de diseo, la facilidad paraalmacenar la informacin, inmunidad al ruido, mayor precisin, altaescala de integracin, la reduccin de costos de produccin, entre otros.
En este contexto, el desarrollo masivo del diseo digital ha sidoposible gracias a metodologas estandarizadas de diseo y verifica-cin de circuitos digitales. Este campo tiene dos componentes esen-ciales para la implementacin de sistemas: el software y el hardware.El rea del software incluye herramientas de diseo asistido porcomputadora (Computer-Aided Design, CAD) para auxiliar en simula-ciones o sntesis de circuitos, lenguajes de programacin como ensam-blador, C/C++, y lenguajes de descripcin de hardware como el VHDLy Verilog. Mientras que en el rea del hardware actualmente dispone-mos de microprocesadores y microcontroladores, procesadores digita-les de seales (Digital Signal Processors, DSPs), memorias, circuitosintegrados de aplicacin especfica (Application Specific IntegratedCircuits, ASICs), dispositivos de lgica programable (ProgrammableLogic Devices, PLDs) y arreglos de compuertas programables en cam-po (Field Programmable Gate Arrays, FPGAs).
El lenguaje de descripcin de hardware (Hardware DescriptionLanguage, HDL) de circuitos integrados de alta velocidad comn-mente abreviado VHDL, ya que proviene del trmino en ingls VeryHigh Speed Integrated Circuits (VHSIC), se genera a partir de unainiciativa del Departamento de Defensa de los Estados Unidos deAmrica en los aos ochenta. Posteriormente es adoptado y estan-
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
16/149
CIRCUITOS LGICOS DIGITALES14
darizado como el primer lenguaje de descripcin de hardware porel Instituto de Ingenieros Elctricos y Electrnicos (Institute of Elec-trical and Electronics Engineers, IEEE). El propsito de establecer unlenguaje de descripcin de hardware estandarizado es el de proveerdiseos digitales en un lenguaje comn para todos los desarrollado-res, independientemente de la marca y dispositivo final en el cual se
implementar el diseo (PLD o FPGA); por lo tanto, un HDL presentacualidades de portabilidad y reuso. La utilizacin del VHDL dentrodel ciclo de diseo de un sistema digital consiste bsicamente enmodelar el hardware a diferentes niveles de abstraccin (flujo de da-tos o transferencia de registros, comportamental, estructural, etc.)y funcionalidad (desde sistemas completos como microprocesadoreso perifricos complejos, subsistemas como una unidad aritmtico-lgica, hasta una simple compuerta lgica). Posteriormente, auxiliaren la simulacin del circuito descrito para verificar el funcionamientodeseado. Finalmente, sintetizar el circuito para ser implementado enun PLD o FPGA. Un comentario final que se debe subrayar del VHDLes su naturaleza concurrente o paralela de ejecucin, a diferenciade los lenguajes de programacin tradicionales donde se realiza de
manera secuencial.Ahora bien, los circuitos de lgica programable han evolucionado
de substituir compuertas lgicas, decodificadores o bloques bsicos defunciones especiales a implementar diseos complejos como micro-procesadores, perifricos de comunicacin y sistemas completos en unsolo chip (System-on-Chip, SoC). Las plataformas FPGAs tienen un cos-to inicial mnimo y un ciclo de diseo considerablemente reducido encomparacin con el desarrollo y produccin de un ASIC, aunque pre-sentan desventajas en velocidad y consumo de energa con respecto astos. Sin embargo, las FPGAs normalmente forman parte del ciclo dediseo y prototipado de un ASIC, adems de ser la solucin preferidapor desarrolladores para diseos de baja produccin.
El desarrollo del diseo digital ha aumentado considerable-mente con la consolidacin de las FPGAs. Como ya se expuso, loscircuitos de lgica programable tienen su xito en el costo inicial,los recursos de silicio (algunos mayores a 10 millones de compuer-tas lgicas) y su capacidad de reso o reprogramabilidad. Por ello, alincrementar su presencia en la ingeniera moderna se requiere de ex-pertos en diseo con lenguajes de descripcin de hardware y FPGAs.
Por lo anteriormente expuesto, este libro presenta una com-pilacin de prcticas de laboratorio desarrolladas para la ense-anza de las bases del VHDL y FPGAs. Dichas prcticas resumen eltrabajo de los autores iniciado en el ao 2003 con la fundacin delgrupo de investigacin de Lgica Programable en el Departamentode Sistemas Electrnicos de la Universidad Autnoma de Aguas-calientes (UAA). El material del libro consiste en 20 ejercicios quecomplementan la teora expuesta en un curso bsico de diseodigital de uno a dos semestres a nivel de ingeniera. Las prcticashan sido implementadas exitosamente en los cursos de CircuitosLgicos I y II de la UAA durante ms de siete generaciones de inge-niera. Por lo tanto, esperamos que los profesores y los estudian-tes encuentren en este libro una fuente bien organizada, prcticay clara para desarrollar sus cursos de diseo digital.
Los autores.
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
17/149
PRIMERA PARTE
CIRCUITOS LGICOSDIGITALES
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
18/149
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
19/149
1COMPUERTAS LGICAS
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
20/149
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
21/149
19
Objetivo
El alumno comprobar el funcionamiento de las puertas l-gicas digitales empleando lgica reconfigurable.
Fundamento terico
Las compuertas son los elementos ms sencillos dentro de los cir-cuitos lgicos, estos elementos operan con base en los valores dis-cretos 0 y 1. Las caractersticas importantes del manejo de valoresbinarios son la inmunidad a las variaciones de los componentes, elvoltaje y el ruido.
Mediante las tres compuertas lgicas bsicas AND, OR y NOT,se puede construir cualquier circuito lgico combinacional. Adems,con base en estas compuertas se derivan las denominadas NAND yNOR que surgen de la operacin de anexar un inversor (NOT) a lasalida de una compuerta AND u OR.
Tablas de verdad
AND OR NOT
A B X A B X A X0 0 0 0 0 0 0 1
0 1 0 0 1 1 1 01 0 0 1 0 1 0 11 1 1 1 1 1 1 0
NAND NOR
A B X A B X0 0 1 0 0 10 1 1 0 1 01 0 1 1 0 01 1 0 1 1 0
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
22/149
20 CIRCUITOS LGICOS DIGITALES |PRIMERA PARTE
Material y equipo
Cantidad Descripcin1 Tarjeta CPLD o FPGA1 Computadora personal
Desarrollo
1. Realiza lo que se pide a continuacin:
a) Describe y simula en VHDL las cinco compuertas b-sicas, como se muestra en las figuras 1 y 2.
A
B
2 1
NOT
X(1)
2 1
NOT
X(2)
2
31
OR2
X(3)
2
31
NOR2
X(4)
2
31
AND2
X(5)
2
31
NAND2
X(6)
Figura 1. Diagrama lgico para las cinco compuertas bsicas.
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
23/149
21 CIRCUITOS LGICOS DIGITALES |PRIMERA PARTE
-- Compuertas bsicas
library IEEE;
use IEEE.std_logic_1164.all;
entity compuertas_basicas is port(
A,B : in std_logic;
X : out std_logic_vector(6 downto 1)
);
end compuertas_basicas;
architecture simple of compuertas_basicas is
begin
X(1)
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
24/149
22 CIRCUITOS LGICOS DIGITALES |PRIMERA PARTE
c) Cul sera el nico conjunto de condiciones de en-trada que producir una salida ALTA a partir de unacompuerta NOR de tres entradas?
Seccin de resultados
Tabla 1CLBs o macroceldas IOBs f mx
Resumen
Como se pudo ver en la prctica, las compuertas son los elementosbsicos en la Electrnica Digital. Estos elementos nos permiten llevar
a cabo la modelacin de expresiones Booleanas, ya que, como se ob-serv, una compuerta AND representa la expresin AB, una OR: A+By una NOT: A .
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
25/149
2LGEBRA DE BOOLE
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
26/149
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
27/149
25 CIRCUITOS LGICOS DIGITALES |PRIMERA PARTE
Objetivo
Describirs circuitos con el lenguaje VHDL a partir de unaecuacin lgica, y comprobars su funcionamiento median-te la implementacin en lgica reconfigurable.
Fundamento terico
En un problema de diseo real, usualmente se empieza con una des-cripcin informal del circuito. Generalmente, la etapa del proceso dediseo que demanda ms esfuerzo y creatividad es la de formalizarla descripcin del circuito, definiendo las entradas y salidas, y especi-ficando su comportamiento funcional por medio de tablas de verdado ecuaciones.
Esta descripcin suele mencionar un conjunto de seales lgi-cas en una lista de combinaciones para las cuales una seal de salidadeber estar encendida o apagada, lo que es un equivalente verbal auna tabla de verdad o a listas de mintrminos o maxtrminos.
Ms comnmente se describe una funcin lgica usando los co-nectivos del lenguaje y, o, y no los que sirven como puente en-tre un problema descrito con palabras y una realizacin fsica (hard-ware) de ese problema a travs de compuertas.
En el lgebra de conmutacin, se usan variables simblicas pararepresentar la condicin de las seales lgicas. Una seal lgica pue-de estar en una de dos condiciones bajo o alto, apagado o encendido,etc. Las variables tienen el valor de 0 para una condicin y 1 parala otra; de manera que los valores 0 y 1 pueden representar los dosestados de diferentes variables discretas, como por ejemplo: encen-der y apagar una luz, abrir y cerrar una puerta, tener un voltaje altoo uno bajo, oprimir o no un botn; o en general cualquier evidenciafsica medible con dos valores posibles.
Cotidianamente se describen las funciones lgicas usando losoperadores , + y representados en nuestro lenguaje comoy, o y no o con algunas formas ms elaboradas como todos,
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
28/149
26 CIRCUITOS LGICOS DIGITALES |PRIMERA PARTE
mientras que, al mismo tiempo que, entre otras, para decir yo por ejemplo alguno o cualquiera para dar a entender o. Estaforma de descripcin permite escribir las expresiones algebraicas co-rrespondientes muy naturalmente y sin necesidad de enunciar todaslas posibilidades como en una tabla de verdad, sobretodo pensandoque el nmero de entradas puede ser muy grande.
Una vez que se tiene una expresin para una funcin lgica,sta puede implementarse con compuertas, aunque suele ser msconveniente manipularla para obtener diferentes circuitos buscandola minimizacin. Minimizar se refiere a reducir lo ms posible el ta-mao del circuito, logrando utilizar la menor cantidad de compuertasy tambin buscando que las compuertas empleadas sean lo ms pe-queas posibles (menor cantidad de entradas por cada compuerta).
Para minimizar una expresin algebraica, se utilizan los axio-mas y teoremas del lgebra de Boole, de manera que se consiga elimi-nar trminos redundantes. A continuacin se enuncian dichos axio-mas y teoremas1, utilizando las variables lgicas arbitrariasA, B, C:
Axiomas:A=0 siA 1A=1 siA0
1)
si A=0, entoncesA =1si A=1, entoncesA=0
2)
00=01+1=111=10+0=001=1 0 =01+0=0 +1 =1
3)
4)
5)
Hay que destacar que los axiomas 3, 4 y 5 definen las funcioneslgicas AND y OR.
Teoremas para una variable:A+0=AA1=AA+1=1A0=0A+A=AAA=A( A )=A
A +A =1A A =0
1)
2)
3)
4)5)
(identidades)
(elementos nulos)
(igual valor)
(doble inversin)
(complementos)
Teoremas de dos y tres variables:A+B=B +AAB=BA( A+B ) + C =A + ( B+C )( AB ) C =A ( BC )
AB +A C =A ( B+C )( A+B ) ( A+C ) =A +BC
6)
7)
8)
(asociatividad)
(conmutatividad)
(distributividad)
1 J. F. Wakerly, Diseo digital: principios y prcticas, Tercera edicin, Editorial Pearson edu-cacin, Mxico, 2001.
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
29/149
27 CIRCUITOS LGICOS DIGITALES |PRIMERA PARTE
A+A B =AA ( A+B ) =AA+A B =A +BA( A +B ) =A BAB+A B =A( A+B ) ( A+B ) =A
A
C +AB
C =AC + B
CAB +A C +B C =A B+A C( A+B ) ( A +C ) ( B+C ) = ( A+B ) ( A +C )
9)
10)
11)
12)13)
(cobertura)
(combinacin)
(consenso)
Los teoremas de mayor inters para el proceso de minimizacinson: el 9, el 10 y el 11. Para aplicar el teorema de cobertura o el teo-rema 10 se necesita que la expresin contenga al menos un trminoque no sea MIN ni MAX trmino. El teorema de combinacin es laclave del proceso de minimizacin de formas cannicas.
Teoremas para n variables:X+X+ ... +X=XX X ... X =X
( X1X2... Xn ) =X1 +X2 + ... +Xn( X1+X2+ ... +Xn ) =X1 X2 ... Xn[ F ( X1,X2,...,Xn, +,) ] =F ( X1,X2, ...,Xn, , +)
F ( X1,X2,...,Xn)=X1F ( 1,X2, ...,Xn) +X1 F ( 0,X2, ...,Xn)=[ X1+F ( 0,X2, ...,Xn) ] [X1 +F ( 1,X2, ...,Xn) ]
4)
15)
6)
17)
(DeMorgan)
(igual valor generalizado)
(T. de DeMorgan generalizado)
(T. de expansin de Shannon)
Finalmente, ya que se obtuvo la minimizacin de la expresinlgica, se tendr que conseguir un circuito que realice (haga real)dicha expresin. Esto se refiere a un circuito cuya salida coincidacon el resultado de la expresin lgica para todas las combinacionesposibles de los valores de entrada. Dicho circuito puede obtenersesimplemente sustituyendo las operaciones . por compuertas AND,las operaciones + por compuertas OR y las operaciones porcompuertas NOT.
Material y equipo
Cantidad Descripcin1 Tarjeta CPLD o FPGA1 Computadora personal
Desarrollo
1. Simplifique la siguiente expresin (circuito 1) usando lge-bra de Boole:
z = A * B * C + A * B * C + A * B * C
2. Describa en VHDL el circuito que obtuvo.
3. Implemente en lgica reconfigurable el circuito logrado.
4. Obtenga la tabla de verdad del circuito.
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
30/149
28 CIRCUITOS LGICOS DIGITALES |PRIMERA PARTE
5. Simplifique la siguiente expresin (circuito 2) usando lge-bra de Boole:
x = (A + B) * (A + B)
6. Describa en VHDL el circuito adquirido.
7. Implemente en lgica reconfigurable el circuito logrado.
8. Obtenga la tabla de verdad del circuito.
Seccin de resultados
1. Expresiones lgicas obtenidas del circuito 1.
2. Cdigo VHDL del circuito 1.
3. Expresin lgica obtenida del circuito 2.
4. Cdigo VHDL del circuito 2.
5.Tabla 1. Resultados de implementacin del circuito 1.
CLBs o macroceldas IOBs f mx
6.Tabla 2. Resultados de implementacin del circuito 2.
CLBs o macroceldas IOBs f mx
Resumen
Con lo realizado en la presente prctica se observa la gran importan-cia de las expresiones lgicas utilizadas en el diseo digital. Los pro-cesos de minimizacin e implementacin en el circuito ya no comn-mente se llevan a cabo de la manera como se trabaj esta prctica; latendencia es tener herramientas computacionales que se encarguende ellos. Sin embargo, se trata de conceptos bsicos que todo disea-dor tiene que dominar, y como tales no es bueno subestimarlos.
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
31/149
3USO DE TABLAS DE VERDAD
(PARIDAD)
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
32/149
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
33/149
31 CIRCUITOS LGICOS DIGITALES |PRIMERA PARTE
Objetivo
El alumno utilizar tablas de verdad en VHDL.
Fundamento terico
Tablas de verdad
Una tabla de verdad es la representacin bsica de una funcin lgi-ca. En una tabla de verdad se tienen todas los combinaciones posiblesde las entradas y el valor que toma la salida para cada valor quese tiene en la entrada. Por ejemplo si tenemos la siguiente ecuacinF(x,y,z) = ( x and y ) or ( y and ( not z ) ), la tabla de verdad para dichafuncin sera.
x y z F(x, y, z)0 0 0 00 0 1 00 1 0 10 1 1 01 0 0 01 0 1 01 1 0 1
1 1 1 1
Paridad
La paridad es un mtodo para la deteccin de errores en la transmi-sin de datos, cuando se transmite un dato, unido a ste va un BITextra el cual indica si la cantidad de unos en el dato que se transmitees par o impar. Existen dos tipos de paridad: paridad par y paridadimpar, cuando se tiene paridad par se obtiene un uno cuando la can-tidad de unos es par, en la paridad impar se tiene un 1 cuando lacantidad de unos es impar. Por ejemplo:
Como se observa se tienen las entradas contodas combinaciones posibles y la salidaque se debe de obtener con dichas entradas.En una tabla se puede representar cual-quier circuito lgico por muy complejo queste sea. En la tabla se pueden tener cual-quier cantidad de salidas como se desee onecesite.
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
34/149
32 CIRCUITOS LGICOS DIGITALES |PRIMERA PARTE
DatoParidad
Par Impar1011 0 10110 1 01010 1 00000 1 00100 0 1
Material y equipo
Cantidad Descripcin1 Tarjeta CPLD o FPGA1 Computadora personal
Desarrollo
1. Construir tabla de verdad para obtener el BIT de paridad parde un dato de 4 bits.
2. Llevar la tabla de verdad obtenida a VHDL.
3. Implementar la descripcin realizada.
4. Verificar los resultados obtenidos con los de la tabla de ver-dad.
Seccin de resultados
1. Tabla de verdad obtenida para la paridad par e impar.
DatoParidad
Par Impar0000000100100011010001010110011110001001101010111100
110111101111
Cmo funciona la paridad?Cuando se recibe un dato se checa el BIT deparidad que debera traer el dato, y se compa-ra con el BIT de paridad que lleg con el datoque se recibi, si son iguales el dato no tie-ne errores, pero si son diferentes existe un
error y se solicita la retransmisin o tomaruna decisin de qu accin tomar.
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
35/149
33 CIRCUITOS LGICOS DIGITALES |PRIMERA PARTE
2. Buscar en los archivos de los reportes la siguiente informa-cin:
Tabla 1. Resultados de implementacin del circuito.
CLBs o macroceldas IOBs f mx
Resumen
Con la ayuda del VHDL se pueden implementar funciones sin la ne-cesidad de encontrar la ecuacin de un circuito. Esto ayuda bastante,ya que en ocasiones se presentan muchas entradas en un circuito yse tiene la tabla de verdad. Es complicado, pues, obtener la ecuacina partir de la tabla de verdad cuando se tienen muchas variables,
pero con la herramienta de VHDL no es necesario extraer la ecuacindel circuito, y podemos implementar la tabla de verdad directamentey obtener el mismo resultado, adems de que nos ayuda a verificarmas rpido si el circuito que implementamos est funcionando co-rrectamente.
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
36/149
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
37/149
4SUMA Y PRODUCTO CANNICOS
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
38/149
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
39/149
37 CIRCUITOS LGICOS DIGITALES |PRIMERA PARTE
Objetivo
El alumno expresar e implementar funciones lgicasusando su notacin en suma y producto cannicos.
Fundamento terico
La forma ms fcil y directa de representar una funcin lgica sue-le ser mediante su tabla de verdad. Sin embargo, tambin es posiblerepresentar cualquier funcin lgica mediante alguna ecuacin alge-braica booleana. Adems, puede haber varias ecuaciones que repre-senten la misma funcin, si entre ellas existe una equivalencia lgica.
De entre todas las ecuaciones posibles para representar deter-minada funcin lgica, existe siempre la denominada suma can-nica y el llamado producto cannico. Estas expresiones cannicaspueden entenderse como representaciones directas de la tabla deverdad en forma de ecuacin, pues mencionan precisamente todaslas combinaciones de valores de entrada que ocasionan un 1 lgicoen la salida (suma cannica) o bien todas las que ocasionan un 0lgico en la salida (producto cannico).
Frecuentemente, las expresiones cannicas se escriben con unanotacin abreviada que para la suma cannica utiliza el smbolo y para el producto cannico el smbolo . En esta notacin, a con-tinuacin de dicho smbolo se escribirn entre parntesis los n-meros decimales correspondientes a las combinaciones de valoresde entrada que se quieran mencionar. Para obtener dichos nme-ros decimales es necesario establecer un orden o acomodo para lasvariables de manera que al elegir una determinada combinacin deentrada se forme un nmero binario y con l se obtenga el nmerodecimal correspondiente.
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
40/149
38 CIRCUITOS LGICOS DIGITALES |PRIMERA PARTE
x y z F(x, y, z)0 0 0 00 0 1 10 1 0 00 1 1 11 0 0 11 0 1 1
1 1 0 01 1 1 0
Material y equipo
Cantidad Descripcin1 Tarjeta CPLD o FPGA1 Computadora personal
Desarrollo
1. Construye la tabla de verdad para cada una de las represen-
taciones cannicas siguientes:a) F(w,x,y,z) = (1,4,5,6,7,9,14,15)b) F(w,x,y,z) =(0,2,5,7,8,10,13,15)
2. Escribe un programa VHDL para cada una de las tablas ob-
tenidas.
3. Implementa en CPLD o FPGA cada una de las tablas.
4. Compara los resultados obtenidos con los de la tabla de ver-dad.
Seccin de resultados
1. Tabla de verdad obtenida para la suma y producto cannico.
DatoSalida
00000001001000110100010101100111
10001001101010111100110111101111
Por ejemplo, para la tabla que se muestra,la funcin lgica puede ser representadacomo:
a) suma cannica: F(x,y,z) = (1,3,4,5)
b) producto cannico: F(x,y,z) = (0,2,6,7)
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
41/149
39 CIRCUITOS LGICOS DIGITALES |PRIMERA PARTE
2. Buscar en los archivos de los reportes la siguiente informa-cin:
Tabla 1. Resultados de implementacin del circuito.
CLBs o macroceldas IOBs f mx
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
42/149
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
43/149
5CONVERTIDORES DE CDIGO
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
44/149
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
45/149
43 CIRCUITOS LGICOS DIGITALES |PRIMERA PARTE
Objetivo
El alumno implementar convertidores de cdigo y compro-bar su funcionamiento en VHDL.
Fundamento terico
Sistemas numricos
Los sistemas digitales se basan en el principio de que slo existen da-tos formados por bites, es decir, dgitos que slo tienen uno de dosvalores, 0 y 1. Desafortunadamente, estos datos binarios casi nuncase encuentran en la vida cotidiana y, por lo tanto, parecera que lossistemas digitales no seran de utilidad prctica. Sin embargo, a lolargo del desarrollo de la tecnologa digital, se ha buscado representarcasi cualquier dato, suceso o informacin mediante bites y, de estamanera ser capaces de utilizar procesamientos digitales en casi cual-quier aplicacin. As que parte del trabajo de los diseadores digitalesconsiste en representar adecuadamente todos los datos involucradosen un problema mediante el uso de dgitos binarios, en donde cadaforma de representacin con reglas claras y coherentes se denominaun cdigo binario, y puede ser utilizado en variedad de aplicacionescon requerimientos similares.
En la vida diaria se usan los nmeros decimales, sin percibir queexisten otros sistemas numricos. Tal es el caso del ya mencionado sis-tema binario. La base de un sistema numrico es la que indica cuntosvalores diferentes podr tomar un dgito en dicho sistema, como es:10 en el sistema decimal o 2 en el binario. Cuando se trabaja con n-meros no decimales, se usa un subndice para indicar la base de dichonmero, excepto cuando sta se conozca y est clara segn el contexto.A continuacin se muestran dos ejemplos de nmeros binarios y susequivalentes decimales:
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
46/149
44 CIRCUITOS LGICOS DIGITALES |PRIMERA PARTE
110002=1 16+1 8+0 4+0 2+0 1=2410 1011002=1 32+0 16+1 8+1 4+0 2+0 1=4410
Debido a las potencias de 2 asociadas a cada dgito binario de-pendiendo de su posicin, es evidente que el bit en el extremo izquier-do de un nmero binario es numricamente el ms valioso y por eso
se le llama bit ms significativo (most significant bitMSB); mientrasque el bit del extremo derecho es numricamente el menos valioso yse le llama bit menos significativo (least significant bitLSB).
Otro sistema muy usado es el numrico hexadecimal que tienebase 16, por lo que utiliza 16 dgitos. Como cotidianamente slo seusan smbolos para 10 dgitos, del 0 al 9, es necesario agregar 6 sm-bolos ms que comnmente son las letras de la A a la F, en ordenalfabtico.
El sistema numrico hexadecimal se emplea principalmentecomo una abreviacin del sistema binario. Esto se debe a que cadagrupo de cuatro bits puede tomar una de diecisis diferentes combi-naciones de unos y ceros, y por lo tanto ser representado por uno delos 16 dgitos hexadecimales. As, para encontrar el correspondiente
hexadecimal de un nmero binario, se separan los bits en grupos decuatro, comenzando desde el LSB hacia el MSB. Si no es posible com-pletar el ltimo grupo de cuatro bits, se agregan ceros a la izquierda.Posteriormente, cada grupo de cuatro bits se reemplaza por el corres-pondiente dgito hexadecimal:
1010001100102= 1010 0011 00102= A3216 11011010110000010102= 0110 1101 0110 000010102= 6D60A16
Cdigo BCD
Segn lo comentado en la seccin anterior, para un diseador digi-tal es indispensable comprender el manejo de nmeros y otros datosmediante valores binarios. Sin embargo, no puede esperarse que to-dos los usuarios de los sistemas digitales estn familiarizados con es-tos conceptos. Por ejemplo, si pusiramos a disposicin de cualquierpersona una calculadora que slo recibe valores binarios y muestrael resultado de esa misma forma, no podramos suponer que tendramucho xito de ventas, pues la mayora de las personas no podranresolver ni siquiera una suma como 2 + 2 con dicho aparato. Enton-ces, para que los usuarios comunes utilicen los sistemas digitales,stos deben poseer interfaces que se adapten a los conocimientospropios de la mayora de las personas, y al respecto de representacio-nes numricas es claro que nos referimos a los nmeros decimales.
Para que las interfaces de un sistema e incluso algunos de susprocesamientos se adapten a los nmeros decimales, es necesarioencontrar maneras apropiadas de representacin de la informacin.Recordemos que los nmeros decimales se forman con varios dgitoscon valor segn su posicin expresada por potencias de 10, dondeadems para cada dgito se cuentan con 10 valores posibles: de 0 a 9.Entonces, para caracterizar un nmero decimal debemos representarcada dgito por separado eligiendo adems 10 combinaciones dife-rentes de bits que representen cada uno de los valores posibles del0 al 9. Al requerir 10 combinaciones diferentes, es claro que sernnecesarios al menos 4 bits para cada dgito.
Existen una infinidad de maneras de elegir cmo representarnmeros decimales, pues aunque al menos se requieren 4 bits, po-
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
47/149
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
48/149
46 CIRCUITOS LGICOS DIGITALES |PRIMERA PARTE
En caso de que se requieran mostrar tambin algunas letras, porejemplo para representar nmeros hexadecimales, se pueden dibujarlas letras de la A a la F tomando las siguientes configuraciones:
Material y equipo
Cantidad Descripcin1 Tarjeta CPLD o FPGA1 Computadora personal
Desarrollo
1.
a) Escribe en la tabla 1 los valores de tabla de verdadpara una conversin de cdigo binario (4 bits) a cdi-go de siete segmentos, tomando en cuenta los dgitoshexadecimales.
b) Describe en VHDL un circuito que cumpla la tabla deverdad anterior y comprueba mediante simulacinel resultado despus del proceso de sntesis.
c) Completa en la tabla 2 los resultados del proceso desntesis.
d) Implementa en la tarjeta CPLD o FPGA tu descrip-cin sintetizada tomando en cuenta que las sealesde entrada se asignen a cuatro interruptores, y lasseales de salida se asignen a un visualizador de sie-te segmentos. Verifica su funcionamiento.
2.
a) Escribe en la tabla 3 los valores de tabla de verdadpara una conversin de cdigo binario (4 bits) a cdi-go BCD (8 bits).
b) Describe en VHDL un circuito que cumpla la tabla deverdad anterior, y comprueba mediante simulacinel resultado despus del proceso de sntesis.
3.
a) Utilizando los dos bloques anteriores (1. y 2.), descri-be un circuito que tenga como entrada un nmerobinario (4 bits) y como salida dos dgitos de siete seg-mentos, los cuales debern corresponder con los dosdgitos del equivalente decimal del nmero binariode entrada.
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
49/149
47 CIRCUITOS LGICOS DIGITALES |PRIMERA PARTE
b) Completa en la tabla 4 los resultados del proceso desntesis, y simula el funcionamiento de tu circuito.
c) Implementa en la tarjeta CPLD o FPGA tu descrip-cin sintetizada, tomando en cuenta que las sealesde entrada se asignen a cuatro interruptores, y lasseales de salida se asignen a cada visualizador de
siete segmentos. Verifica su funcionamiento.
4. Responde las preguntas del siguiente cuestionario.
a) Cuntos valores diferentes se pueden representarcon 8 bites (1 byte)?
b) Cules son las ventajas y desventajas del empleodel cdigo hexadecimal en el trabajo con sistemasdigitales?
c) Cul es la ventaja de utilizar el cdigo BCD paraconvertir un nmero binario en su correspondiente
decimal?
d) Qu otras letras podrn representarse con un exhi-bidor de siete segmentos? Muestra tus propuestas.
Seccin de resultados
1.
Tabla 1. Resultados para conversin de binario a siete segmentoshexadecimal.
D3 D2 D1 D0 a b c d e f g
0 0 0 00 0 0 10 0 1 00 0 1 10 1 0 00 1 0 10 1 1 00 1 1 11 0 0 01 0 0 11 0 1 01 0 1 11 1 0 01 1 0 11 1 1 01 1 1 1
2.
Tabla 2. Resultados de implementacin del circuito 1.
CLBs o macroceldas IOBs f mx
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
50/149
48 CIRCUITOS LGICOS DIGITALES |PRIMERA PARTE
3.
Tabla 3. Resultados para conversin de binario a BCD (dos dgitos).
D3 D2 D1 D0 BCD7 BCD6 BCD5 BCD4 BCD3 BCD2 BCD1 BCD00 0 0 00 0 0 10 0 1 00 0 1 10 1 0 00 1 0 10 1 1 00 1 1 11 0 0 01 0 0 11 0 1 01 0 1 11 1 0 01 1 0 11 1 1 01 1 1 1
4.
Tabla 4. Resultados de implementacin del circuito 2.
CLBs o macroceldas IOBs f mx
Resumen
Los cdigos son una parte fundamental en el diseo digital; todo sis-tema est plagado de ellos, desde el ms elemental cdigo binariohasta los cdigos que representan palabras, acciones o el estado delas variables en el sistema. Los cdigos son el principal puente en-tre el mundo real y el mundo digital; para que un dispositivo digitalpueda interactuar con sus usuarios y viceversa, se requieren cdigosa fin de establecer comunicacin, por lo que siempre es importantetener herramientas que puedan convertir entre cdigos. Los conver-tidores de cdigo cumplen esta funcin, y ms adelante podr verseque prcticamente cualquier sistema digital los necesita.
Tambin es importante entender la utilidad de los visualizado-res de siete segmentos, pues su uso se difundi notablemente casi acualquier aparato electrnico. Sin embargo, no es el nico recursoque se tiene para mostrar informacin, sobretodo en aparatos mo-dernos, pero es una base casi indispensable para las dems tcnicasy dispositivos que existen o que posteriormente sern desarrollados.
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
51/149
6CODIFICADOR DE PRIORIDAD
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
52/149
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
53/149
51 CIRCUITOS LGICOS DIGITALES |PRIMERA PARTE
Objetivo
El alumno verificar cmo describir codificadores de prio-ridad con VHDL, y comprender mejor su funcionamientoal implementar y probar uno de ellos en la tarjeta CPLD oFPGA.
Fundamento terico
Los decodificadores binarios son circuitos que identifican un cdigo deentrada de n bits y producen un estado (1 o 0) en una sola lnea de sa-lida, segn dicho cdigo identificado. Por lo tanto, podemos decir queeste proceso lo realizan circuitos capaces de identificar, reconocer o de-tectar un cdigo especfico. Su contraparte (por lgica) es un circuitodenominado codificador binario, el cual tiene varias lneas de entrada,donde slo una de las cuales se activa en un momento dado, lo queproduce un cdigo de n bits en la salida, segn la entrada que detecte.
Un codificador de prioridad cumple con la definicin anterior,pero adems asegura que cuando dos o ms entradas son activadasal mismo tiempo, el cdigo de salida corresponder al de la entrada demayor peso numrico. Por ejemplo, cuando I4y I7se encuentran enALTO (o bajo, segn se quiera describir), el cdigo de salida ser 111 quecorresponde al nmero 7 por darle prioridad a la entrada I
7.
Un codificador de prioridad de decimal a BCD cumple con las ca-ractersticas anteriores y se caracteriza tambin por tener exactamente10 entradas (decimal) y expresar la salida con un dgito BCD (4 bits). Eldiagrama de bloque de un codificador de este tipo y su tabla de verdadse muestran a continuacin:
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
54/149
52 CIRCUITOS LGICOS DIGITALES |PRIMERA PARTE
Sal0
Sal1
Sal2
Sal3
GS
E
I0
I1
I2
I9
Cod.
Prioridad
Decimal BCD
E I9 I8 I7 I6 I5 I4 I3 I2 I1 I0 Sal3 Sal2 Sal1 Sal0 GS
1 x x x x x x x x x x 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 1 0 0 0 0 10 0 0 0 0 0 0 0 0 1 x 0 0 0 1 10 0 0 0 0 0 0 0 1 x x 0 0 1 0 10 0 0 0 0 0 0 1 x x x 0 0 1 1 10 0 0 0 0 0 1 x x x x 0 1 0 0 10 0 0 0 0 1 x x x x x 0 1 0 1 1
0 0 0 0 1 x x x x x x 0 1 1 0 10 0 0 1 x x x x x x x 0 1 1 1 10 0 1 x x x x x x x x 1 0 0 0 10 1 x x x x x x x x x 1 0 0 1 1
Material y equipo
Cantidad Descripcin1 Tarjeta CPLD o FPGA1 Computadora personal
Desarrollo
1.
a) Implementa y simula en VHDL un codificador deprioridad como el descrito en el fundamento terico.
b) Comprueba su funcionamiento en la tarjeta CPLD oFPGA, y corrobora los resultados obtenidos con losresultados simulados.
c) Registra los resultados de la implementacin en latabla 1 de la seccin de resultados.
2. Responde las preguntas del siguiente cuestionario:
a) En qu difieren un codificador y un decodificadorbinarios?
b) En qu caso(s) considera til el uso de un codifica-dor de prioridad?
c) Suponiendo que se desea que en el circuito descritoen el fundamento terico sus entradas se activen ennivel BAJO y produzcan como salida el cdigo BCDNEGADO correspondiente, cmo quedara la tablade verdad? Registra tu respuesta en la tabla 2 de laseccin de resultados.
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
55/149
53 CIRCUITOS LGICOS DIGITALES |PRIMERA PARTE
Seccin de resultados
Tabla 1. Resultados de implementacin del circuito.
CLBs o macroceldas IOBs f mx
Tabla 2
E I9 I8 I7 I6 I5 I4 I3 I2 I1 I0 Sal3 Sal2 Sal1 Sal0 GS
Resumen
En un codificador binario ordinario, al observar las entradas sabe-mos cul est haciendo peticin de servicio en cada momento. Sinembargo, esto sera vlido solamente si se garantiza que las entradasse activan slo una a la vez. Si se hacen mltiples peticiones, se pro-duciran resultados no deseados o estados invlidos. Por lo tanto, lasolucin est en asignar una prioridad a las lneas de entrada, paraque en caso de peticiones mltiples, el dispositivo codificador identi-fique la solicitud con prioridad ms alta.
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
56/149
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
57/149
7SUMADORES
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
58/149
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
59/149
57 CIRCUITOS LGICOS DIGITALES |PRIMERA PARTE
Objetivo
El alumno implementar sumadores en VHDL y comproba-r su funcionamiento en lgica reconfigurable.
Fundamento terico
Una funcin esencial para cualquier computadora es la realizacin deoperaciones aritmticas, stas se efectan en la unidad aritmticolgi-ca (ALU), donde se combinan operadores lgicos para tal fin. El siguien-te diagrama de bloques nos muestra una ALU:
Una manera muy popular de realizar la adicin de dos nmerosde nbits se inicia sumando los bits menos significativos (LSB) del con-sumando y el sumando. En caso de efectuarse 1 + 1 obtendramos elresultado 10, lo que nos indica que la suma de esta posicin es 0 con
Acumulador
Registro B
Circuitoslgicos
Unidad decontrol
Unidad dememoria
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
60/149
58 CIRCUITOS LGICOS DIGITALES |PRIMERA PARTE
un acarreo de 1; el acarreo debe sumarse en la siguiente posicin jun-to con el consumando y el sumando. Ejemplo:
Consumando -> 1 0 1 10
0 0 1 11
0 0 1 111 1 1 00
+Sumando ->
Observe que en cada paso del proceso se efecta una suma de 3bits, consumando + sumando + acarreo, lo que produce un bit de sumay otro de acarreo. Por lo tanto, si queremos reproducir este proceso encircuitos lgicos debemos ser capaces de disear un mdulo (denomi-nado sumador completo) que se pueda conectar en cascada de la si-guiente manera:
An
Cn C4
Bn
#n
total
Sn
A3
B3
#3
total
S3
C3
A2
B2
#2
total
S2
C2
A1
B1
#1
total
S1
C1 C0
A0
B0
#0
total
S0
El sumador completo utilizado en cada mdulo (posicin) tienetres entradas: A, B, Ci, y dos salidas: S, Co
Ci
C0
A
total
B
S A B Ci S C00 0 0 0 00 0 1 1 0
0 1 0 1 00 1 1 0 11 0 0 1 01 0 1 0 11 1 0 0 11 1 1 1 1
Material y equipo
Cantidad Descripcin1 Tarjeta CPLD o FPGA1 Computadora personal
Desarrollo
1.1.1
a) Implemente y simule en VHDL un sumador comple-to con base en el circuito resultante de la simplifi-cacin de las ecuaciones obtenidas para S y Code latabla de verdad (por mtodos algebraicos o mapasK). Enuncie el proceso de simplificacin en la tablanmero 2 y dibuje el circuito.
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
61/149
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
62/149
60 CIRCUITOS LGICOS DIGITALES |PRIMERA PARTE
Seccin de resultados
Tabla 1. Resultados de implementacin del circuito.
CLBs o macroceldas IOBs f mx
Tabla 2. Proceso de simplicacin del sumador completo.
S C0
Circuito:
Resumen
Con base en lo realizado, en la presente prctica se abarcaron temasreferentes a los circuitos lgicos y el VHDL, se dise un mdulo arit-mtico binario, el cual forma parte de una ALU que es el ncleo de ope-raciones bsicas de una mquina digital (computadoras, calculadoras,entre otras).
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
63/149
8MULTIPLICADORES DE NMEROS
ENTEROS POSITIVOS
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
64/149
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
65/149
63 CIRCUITOS LGICOS DIGITALES |PRIMERA PARTE
Objetivo
El alumno implementar multiplicadores en VHDL, y com-probar su funcionamiento en CPLD o FPGA.
Fundamento terico
Los multiplicadores son circuitos aritmticos muy complejos. Hay va-rias maneras de implementar un multiplicador: usando tablas de ver-dad, usando sumadores y desplazamientos, en arreglo de sumadores,entre otras. Para ejemplificar el diseo de un multiplicador lo haremosmediante la figura 1, en la cual se muestra un multiplicador sin signode 2 entradas de dos bits y una salida de cuatro bits como resultado.
Y1 Y0 X1 X0 P3 P2 P1 P00 0 0 0 0 0 0 00 0 0 1 0 0 0 00 0 1 0 0 0 0 00 0 1 1 0 0 0 00 1 0 0 0 0 0 00 1 0 1 0 0 0 10 1 1 0 0 0 1 00 1 1 1 0 0 1 11 0 0 0 0 0 0 01 0 0 1 0 0 1 01 0 1 0 0 1 0 01 0 1 1 0 1 1 01 1 0 0 0 0 0 01 1 0 1 0 0 1 11 1 1 0 0 1 1 01 1 1 1 1 0 0 1
Figura 1. Multiplicador sin signo de dos nmeros de dos bits.
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
66/149
64 CIRCUITOS LGICOS DIGITALES |PRIMERA PARTE
Una opcin muy utilizada en VHDL, para implementar multiplica-dores, es utilizar el operador aritmtico * que est definido en lalibrera IEEE.std_logic_arith y que permite simplemente indicarlay dejarle todo el trabajo al motor de sntesis. Un ejemplo de este tipode descripcin se muestra en la figura 2, para un multiplicador sinsigno de 8 bits x8 bits.
-- Multiplicador de 8 bits usando libreras
-- VER 1 / REV 1
-- FPGAG: IPG, JEH, RJR, GLH.
-- FEB2K3
library IEEE;
use IEEE.std_logic_1164.all;
use IEEE.std_logic_arith.all;
entity mult is
port(
x : in std_logic_vector (7 downto 0);
y : in std_logic_vector (7 downto 0);
p : out std_logic_vector (15 downto 0));
end mult;
architecture mult_arch of mult is
begin
c
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
67/149
65 CIRCUITOS LGICOS DIGITALES |PRIMERA PARTE
Desarrollo
1. Multiplicadores de 3 bits x 3 bits.
a) Implemente en VHDL un multiplicador en array(vis-to en clase) usando medios sumadores y sumadores
completos como components.b) Compruebe su funcionamiento en la tarjeta CPLD o
FPGA, y anote los resultados de la implementacinen la tabla 1.
c) Implemente en VHDL un multiplicador usando la li-brera IEEE.std_logic_arith.all.
d) Compruebe su funcionamiento en la tarjeta CPLD oFPGA, y anote los resultados de la implementacinen la tabla 2.
e) Implemente en VHDL un multiplicador directamen-te de su tabla de verdad.
f) Compruebe su funcionamiento en la tarjeta CPLD oFPGA, y anote los resultados de la implementacin
en la tabla 3.g) Compare los resultados obtenidos, y explique cul
de los multiplicadores es mejor, cul es ms rpido ycul ocupa menos rea.
Seccin de resultados
Tabla 1. Resultados de implementacin del multiplicador en "array".
CLBs o macroceldas IOBs f mx
Tabla 2. Resultados de implementacin del multiplicador con operador *.
CLBs o macroceldas IOBs f mx
Tabla 3. Resultados de implementacin del multiplicador con tabla de verdad.
CLBs o macroceldas IOBs f mx
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
68/149
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
69/149
9ALU
(UNIDAD ARITMTICO-LGICA)
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
70/149
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
71/149
69 CIRCUITOS LGICOS DIGITALES |PRIMERA PARTE
Objetivo
El alumno describir una unidad aritmticolgica en VHDL,y comprobar su funcionamiento en lgica reconfigurable.
Fundamento terico
Una ALU (Unidad Aritmtico-Lgica) es un circuito combinacional, elcual nos realiza varias operaciones aritmticas y lgicas. Para esto, tie-ne dos datos de entrada que son los valores con los que se realizarnlas operaciones. Existe tambin otra seal de entrada, la cual nos indicaqu operacin se debe de realizar con los operandos. El nmero de ope-raciones que puede realizar est directamente relacionado con el n-mero de bits que tiene en la entrada de control; por ejemplo, si nuestraALU cuenta con 4 bits para seleccionar la operacin a realizar, podre-mos tener 2^4 posibles operaciones. Adems, posee otras entradas quenos sirven para conectar en cascada nuestras ALU y as poder realizaroperaciones de ms bits. Una ALU cuenta con una salida que es el re-sultado de la operacin que realiz y otra salida que son las seales queutilizaremos para conectar en cascada o utilizarlas para otro propsito.
El orden de las operaciones que realizar las define el fabricante;por ejemplo, para el 74x382 tenemos:
EntradasS2 S1 S0 Operacin0 0 0 F=00000 0 1 F=B - A - 1 + Cin0 1 0 F=A - B - 1 + Cin0 1 1 F=A + B + Cin1 0 0 F=A xor B1 0 1 F=A or B1 1 0 F=A and B1 1 1 F=1111
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
72/149
70 CIRCUITOS LGICOS DIGITALES |PRIMERA PARTE
Material y equipo
Cantidad Descripcin1 Tarjeta CPLD o FPGA1 Computadora personal
Desarrollo
1. Realizar en VHDL la descripcin de una ALU de 4 bits, lacual realice 8 operaciones diferentes.
EntradasS2 S1 S0 Operacin0 0 0 F=A + B0 0 1 F=A + B + Cin0 1 0 F=A - B - 1 + Cin0 1 1 F=A(1-0) * B(1-0)1 0 0 F=A xor B1 0 1 F=A or B1 1 0 F=A and B
1 1 1 F=A
2. Tendr las siguientes banderas de salida Cout, el cual debeser uno cuando ocurra un carry en la suma o un borrowen la resta; tambin tendr una bandera de cero, la cualencender cuando el resultado sea cero.
Seccin de resultados
1. Cdigo fuente de la ALU.
2. Completa los valores de las salidas en la siguiente tabla:
Entradas SalidasS A B Cin R Cout Cero
101 1111 1111 1011 1011 1110 0000 1011 1001 1110 1101 1010 0001 1101 1100 1010 1001 1011 1
3. Anota los resultados que se piden en la siguiente tabla:
CLBs o macroceldas IOBs f mx
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
73/149
10FLIP-FLOPS
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
74/149
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
75/149
73 CIRCUITOS LGICOS DIGITALES |PRIMERA PARTE
Objetivo
Comprobar el funcionamiento de los diferentes tipos deflip-flops, y aplicar dichos dispositivos para resolver unproblema prctico.
Fundamento terico
El elemento de memoria ms importante es el flip-flop, el cual estformado por un conjunto de compuertas lgicas interconectadas conalgunas seales retroalimentadas. El flip-flop es un dispositivo se-cuencial cuyos cambios en la salida estn sincronizados con una sealde reloj. Esto quiere decir que solamente cuando se presentan flancosen la entrada de reloj es posible que, segn el valor de las dems entra-das, se genere un nuevo valor en la salida. Existen varias configuracio-nes de compuertas que se utilizan para producir varios tipos de flip-flops, entre los que destacan el flip-flop tipo D y el J-K, cuyas tablasde funcionamiento se muestran a continuacin.
Rst D En Clk Q 0 X X X 01 0 1 0
1 1 1 1
1 X 0 X Q 1 X X 0 Q 1 X X 1 Q
Figura 1. Funcionamiento de flip-flop D con resetasncrono y enable.
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
76/149
74 CIRCUITOS LGICOS DIGITALES |PRIMERA PARTE
Rst En J K Clk Q 0 X X X X 01 X X X 0 Q 1 X X X 1 Q 1 0 X X X Q 1 1 0 0 Q
1 1 0 1 0
1 1 1 0 11 1 1 1 /Q
Material y equipo
Cantidad Descripcin1 Tarjeta CPLD o FPGA1 Computadora personal
Desarrollo
1. Flip-flop D
a) Implemente en VHDL el flip-flop D cuya tabla defuncionamiento se muestra en la figura 1.
b) Compruebe su funcionamiento en la tarjeta CPLD oFPGA, y anote los resultados de la implementacinen la tabla 1.
2. Flip-flop J-K
a) Implemente en VHDL el flip-flop J-K, cuya tabla defuncionamiento se muestra en la figura 2.
b) Compruebe su funcionamiento en la tarjeta CPLD oFPGA, y anote los resultados de la implementacinen la tabla 2.
3. Circuitos de aplicacin
Empleando flip-flops JK, disee un circuito que fun-cione como contador binario de 2 bits de acuerdo conel siguiente procedimiento:
a) Poner a 0 las salidas activando momentneamenteel botn pulsador de Reinicio.
b) Mostrar el conteo binario en 2 LEDs.c) Conectar adems a las salidas del contador un deco-
dificador 2 a 4, y mostrar las salidas de ste en otros4 LED.
4. Contesta las preguntas del siguiente cuestionario:
a) Ocupan la misma rea los flip-flops D y J-K?
b) En qu caso(s) considera til el uso de un flip-flopJ-K?
Figura 2. Funcionamiento de flip-flop J-K con resetasncrono y enable.
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
77/149
75 CIRCUITOS LGICOS DIGITALES |PRIMERA PARTE
c) Investigue qu tipo de flip-flops son utilizados den-tro de la arquitectura de dispositivos reconfigurables(CPLD y FPGA). Cite ejemplos concretos.
Seccin de resultados
Tabla 1. Resultados de la implementacin del flip-flop D.
CLBs o macroceldas IOBs f mx
Tabla 2. Resultados de la implementacin del flip-flop J-K.
CLBs o macroceldas IOBs f mx
Resumen
Los sistemas digitales que requieren un funcionamiento secuencialutilizan tpicamente los flip-flops como las celdas de construccinbsicas. En ambientes de diseo basados en lgica programable, losflip-flops ya estn disponibles dentro de los circuitos reconfigurablesy pueden ser inferidos empleando lneas de cdigo especficas en VHDL.Por lo general, un circuito reconfigurable posee slo flip-flops del mis-mo tipo (comnmente tipo D), as que los otros tipos se implementarancon alguna conexin particular del flip-flop disponible.
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
78/149
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
79/149
SEGUNDA PARTE
CIRCUITOS LGICOSDIGITALES
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
80/149
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
81/149
1REGISTROS Y LATCHES
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
82/149
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
83/149
81 CIRCUITOS LGICOS DIGITALES |SEGUNDA PARTE
Objetivo
Comprobar las diferencias de operacin entre registros ylatches, y aplicar esos dispositivos para resolver un proble-ma prctico.
Fundamento terico
Se denomina latcha un dispositivo secuencial que monitorea sus entra-das y modifica sus salidas continua e independientemente de la sealde reloj. Los latchesms comunes son los tipos SR y D, cuyas tablas defuncionamiento se muestran a continuacin.
S R Q Qn0 0 QT-1 QnT-10 1 0 11 0 1 01 1 0 0
D En Q QnX 0 QT-1 QnT-10 1 0 11 1 1 0
Los latches SR son tiles en aplicaciones en las que se requieredisponer de entradas de establecimiento y restablecimiento indepen-dientemente. Los latchestipo D son indispensables cuando se requierealmacenar bits de informacin mientras est activa una seal (como
Figura 1. Tabla de funcionamiento del latchSR.
Figura 2. Tabla de funcionamiento del latchD con seal de habilitacin.
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
84/149
82 CIRCUITOS LGICOS DIGITALES |SEGUNDA PARTE
en buses de microprocesadores). Los latchesy losflip-flopsdiscretos hansido eliminados en gran medida debido a que sus funciones se integranen PLDs y FPGAs.
Material y equipo
Cantidad Descripcin1 Tarjeta CPLD o FPGA1 Computadora personal
Procedimiento
Disee un circuito digital que almacene ordenadamente tres dgitoshexadecimales provenientes de un bus de entrada de cuatro bits. Paradar como vlido un dgito hexadecimal se deber contar con una sealokasignada a interruptor pulsador y tambin con una seal dereinicio,a otro interruptor pulsador. El circuito deber fijar automticamentecada dgito en el registro correspondiente. Establezca las salidas de losregistros a decodificadores bcd - 7 segmentos para exhibir su valor en
displays.
1. Puede seccionar el circuito en las siguientes partes:
a) Implemente en VHDL un registro de 4 bits.b) Construya el sistema de bus con las entradas de los
registros conectados al bus de entrada.c) Implemente un decodificador de estados de un con-
tador para la asignacin automtica de los datosen los registros. Proporcione la seal de entrada okcomo seal de reloj. Utilice las salidas decodificadascomo seales de control para los registros.
d) Use la seal de reinicio para el decodificador de esta-dos y para los registros.
2. Anote los valores correspondientes en la tabla 1.
Tabla de resultados
Tabla 1
CLBs o macroceldas Flip-flops IOBs f mx
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
85/149
2CONTADORES
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
86/149
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
87/149
85 CIRCUITOS LGICOS DIGITALES |SEGUNDA PARTE
Objetivo
Implementar diversos tipos de contadores en circuitos inte-grados estndar y mediante VHDL en dispositivos de lgicaconfigurable.
Fundamento terico
Un contador es un circuito secuencial cuyas transiciones circulan a tra-vs de un conjunto definido de estados. Un ejemplo de un diagramade estados de un contador se muestra en la figura 1. Un contador de mestados se conoce como un contador de mdulo m. Un contador binarioes un circuito secuencial de nbits que genera en sus salidas un nmerobinario sin signo que se incrementa en cada pulso de reloj. Un contadorde esta clase tiene nflip-flops y 2nestados donde cada uno de stos seencuentra codificado con el correspondiente entero binario de nbits.
S1 S2
S5 S4
Sm S3
Figura 1. Diagrama de estado de un contador de mestados.
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
88/149
86 CIRCUITOS LGICOS DIGITALES |SEGUNDA PARTE
Material y equipo
Cantidad Descripcin1 Tarjeta CPLD o FPGA1 Computadora personal1 LM555
1 C1 = 100 F1 C2 = 0.1 F2 R = 4K71 74LS163
Procedimiento
1. Circuitos osciladores
a) Realice el clculo de la frecuencia de operacin deun circuito oscilador basado en el CI LM555 dados:R1= R2= 4k7C1= 100 F
C2= 0.1 F
b) Implemente el circuito oscilador.
2. Contador estndar
a) Implemente un contador MOD-12 empleando el cir-cuito integrado 74LS163.
Nota: Use el circuito del punto 1 como seal de relojpara los contadores.
3. Circuito de aplicacin
a) Disee con VHDL un circuito contador 0-59 de acuer-do a las siguientes caractersticas:- Puesta a 0 activando momentneamente el botn
pulsador de Reinicio.- Control en el conteo al pulsar momentneamente
el botn Start-stop.- Salida en 2 displays de 7 segmentos.
b) Anote en la tabla 1 los resultados correspondientes.
Tabla de resultados
Tabla 1
CLBs o macroceldas IOBs f mx
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
89/149
87 CIRCUITOS LGICOS DIGITALES |SEGUNDA PARTE
Resumen
Los contadores binarios son buenos candidatos para el diseo basadoen VHDL. Muchas aplicaciones exigen contadores con requerimientosespeciales para inicializacin, deteccin de estado o salida de estado.En lugar de emplear un contador comercial y lgica extra para los re-
querimientos especiales, el diseador puede especificar exactamentelas funciones requeridas en un programa VHDL. La mayora de los con-tadores estndar tienen slo cuatro bits, mientras que en los dispositi-vos de lgica configurable se cuenta con la posibilidad de tener conta-dores de mayor tamao y, adems, de incorporar la lgica extra dentrodel mismo dispositivo consiguiendo una mayor integracin.
Cuestionario
1. Disee un contador binario ascendente/descendente para controlarel elevador de un edificio de 20 pisos mediante FPGA. El contador debe-r tener entradas de habilitacin y de control ascendente/descendentey deber finalizar el conteo en 1 cuando se cuente hacia abajo, detener
el conteo en 21 cuando lo haga hacia arriba y saltarse el estado 13 encualquiera de las dos direcciones de conteo. Dibuje el diagrama lgico,escriba el cdigo VHDL correspondiente y use el simulador para validarsu diseo.
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
90/149
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
91/149
3APLICACIONES
DE LGICA SECUENCIAL (I)
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
92/149
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
93/149
91 CIRCUITOS LGICOS DIGITALES |SEGUNDA PARTE
Objetivo
Implementar en lgica configurable un circuito controladorde teclado matricial de 4x4.
Fundamento terico
Una alternativa para la implementacin de circuitos controladores deteclados matriciales lo es un circuito de aplicacin especfica, por ejem-plo, el MM74C922. Este circuito posee toda la lgica necesaria para reali-zar la interfaz de una matriz de interruptores y decodificar la activacinde un interruptor de cierre momentneo en un cdigo hexadecimal deun nibble. Cuando en la matriz no hay ningn interruptor activado, lasfilas (Y) reciben un 1 lgico por medio de las resistencias depull upy enlas columnas se exhibe un 0 lgico en alguna de ellas y 1 lgico en elresto. La frecuencia de rastreo de las columnas es determinada interna-mente por un circuito oscilador. Cuando un interruptor es presionado,por ejemplo key_0, nada cambiar en Y0 mientras en X0 se mantengaun 1 lgico; pero cuando X0 sea 0 lgico, Y0 tambin ser 0 lgico. Estodeshabilitar el circuito de rastreo de las columnas para mantener X0en 0 lgico y tambin deber mantener el valor de Y0. El cdigo del in-terruptor presionado ser exhibido en las salidas de datos (d3..d0) y laseal DA (dato disponible) generar un pulso de duracin T, que podraser de 100 mS, por ejemplo. El diagrama lgico y de tiempos del circuitocontrolador se muestra en las figuras 1 y 2, respectivamente.
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
94/149
92 CIRCUITOS LGICOS DIGITALES |SEGUNDA PARTE
X3
3
X2 X1 X0 +Vcc
7
B
F
2
6
A
E
1
5
9
D
0
4
8
C
Y0
X3
X2
X1
X1
Y0
D0
D1
D2
D3
DA
CONTROLADOR
Y1
Y2
Y3
Y1
Y2
Y3
Operacindel teclado
Sinactividad
Tecla 1activada
T
Sinactividad
Tecla 2activada
Sinactividad
Datodisponible (DA)
Datode salida
T
Cdigoprevio
Cdigo de la tecla1
Cdigo de la tecla2
Material y equipo
Cantidad Descripcin1 Tarjeta CPLD o FPGA1 Computadora personal1 Teclado matricial 4x4
Procedimiento
1. Circuito de aplicacin
a) Disee con VHDL un circuito decodificador de tecla-do matricial, como el descrito anteriormente.
b) Ensamble la matriz de interruptores y conctela alcontrolador de teclado.
c) Agregue un decodificador hexadecimal-7 segmentosy un display para exhibir el valor del interruptor pre-sionado.
d) Anote en la tabla 1 los resultados correspondientes.
Figura 1. Diagrama de conexiones de un teclado matricial y su contro-
lador.
Figura 2. Diagrama de tiempos del controlador de teclado matricial.
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
95/149
93 CIRCUITOS LGICOS DIGITALES |SEGUNDA PARTE
Tabla de resultados
Tabla 1
CLBs o macroceldas IOBs f mx
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
96/149
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
97/149
4APLICACIONES
DE LGICA SECUENCIAL (II)
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
98/149
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
99/149
97 CIRCUITOS LGICOS DIGITALES |SEGUNDA PARTE
Objetivo
Implementar en lgica configurable un circuito sumadorBCD de 3 dgitos.
Fundamento terico
Cdigos binarios decimales
Los sistemas digitales requieren circuitos de conversin de representa-ciones numricas para adaptar el sistema decimal, usado por las per-sonas, al sistema binario, utilizado por las computadoras. En algunasocasiones, los sistemas digitales son diseados para leer o presentarnmeros decimales.
Adems de las representaciones de nmeros enteros en binario,complemento a 1 y complemento a 2, existen otros sistemas en los quelos nmeros decimales son representados directamente en binario, loscuales fueron desarrollados en la creencia de que podran reducir enor-memente los problemas de conversin en las entradas-salidas de datosde los sistemas digitales, ya que la notacin decimal es ms convenien-te para las personas.
Aunque existen diversos cdigos, el ms natural para representarnmeros decimales es el decimal codificado en binario (BCD), el cualcodifica cada dgito decimal por su equivalente en 4 dgitos binarios,desde 0000 hasta 1001. Las palabras de cdigo restantes, de 1010 hasta1111 no se utilizan.
Suma BCD
La suma de nmeros BCD es semejante a la adicin de nmeros bina-rios sin signo, excepto que en caso de que el resultado sea mayor que1001, debe corregirse ste sumando 0110 binario, como se muestra enlos siguientes ejemplos:
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
100/149
98 CIRCUITOS LGICOS DIGITALES |SEGUNDA PARTE
5
+9
14
0101
1001
1110
+0110
1 0100
correccin
resultado
correccin
resultado
correccin
resultado
resultado
7
+8
15
0111
1000
1111
+0110
1 0101
6
+6
12
0110
0110
1100
+0110
1 0010
3
+2
5
0011
0010
0101
Sumador BCD en VHDL
El cdigo VHDL propuesto para un sumador BCD de un dgito es el si-guiente:
-- Module: 4-bit BCD adder-- Name: GLH
-- CREATED: 27/05/2010
library IEEE;
use IEEE.std_logic_1164.all;
use IEEE.std_logic_arith.all;
use IEEE.std_logic_unsigned.all;
entity bcd_adder is
port(
cin: in STD_LOGIC;
a,b: in STD_LOGIC_VECTOR (3 downto 0); sum: out STD_LOGIC_VECTOR (3 downto 0);
cout: out STD_LOGIC);
end bcd_adder;
architecture behavior of bcd_adder is
begin
process (a, b, cin)
variable sumv: unsigned (4 downto 0);
begin
sumv := unsigned ('0' & a) + unsigned ('0' & b) + cin;
if (sumv > 9) then (sumv := sumv + 6;
end if;
sum
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
101/149
99 CIRCUITOS LGICOS DIGITALES |SEGUNDA PARTE
Figura 2. Sumador-acumulador.
4. Sumadoracumulador
Este tipo de circuito realiza la suma de un nmero A(i) y el valor de lasuma anterior S(i-1), de tal manera que para cada pulso de reloj iracumulando en el resultado el valor de un nuevo dato A(i). El suma-doracumulador se puede definir como: S = A (i). La figura 2 muestra
el diagrama de bloques del acumulador propuesto.
A(i) Sum
Reg +
Reg
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
102/149
100 CIRCUITOS LGICOS DIGITALES |SEGUNDA PARTE
5. Arquitectura del sumador de nmeros BCD
X3
3
X2 X1 X0 +Vcc
7
B
F
2
6
A
E
1
5
9
D
0
4
8
C
Y0
X3
X2X1
X1
Y0
D0
D1
D2
D3
DA Interfaz
Lgica
OK_DATA
MAS
SEL_MUX
DATA
CONTROLADOR
Prctica 3
Y1
Y2
Y3
Y1
Y2
Y3
DATA
Reg Reg
+
MAS
SEL_MUX
OK_DATA
Reg
Reg
12
12Sum
Prctica 2
DecodificadorBCD a 7-seg
Nota:a) Conectar la seal MAS al resetde registros de entrada.b) Que el circuito de interfaz genere el resetal registro
de la suma.
La figura 3 muestra el diagrama de bloques para el sumador BCDpropuesto, que bsicamente est compuesto por un controlador de te-clado (Prctica 4), un registro de datos (Prctica 2), un sumadoracumu-lador, lgica de interfaz entre el controlador de teclado y los registros ylgica para la exhibicin del resultado.
Figura 3. Sumador BCD.
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
103/149
101 CIRCUITOS LGICOS DIGITALES |SEGUNDA PARTE
Figura 4. Diagrama de tiempos del sumador BCD.
/test
bech/rst
0
5 000
000
000
003
038
000
000
007
074
742
000
835
000
835
835
167
100
000
004
005
000
005
051
051
051
089
093
093
093
089
054
835
742
074
007
000
000
223776
ps
0
50ns
100ns
150ns
200ns
250ns
300
ns
350ns
005
051
093
004
038
089
003
1
B
3
8
B
4
B
7
4
2
B
5
0
/test
bech/cin
0
/test
bech/ok
0
/test
bech/key_
dato
0
/test
bech/key_add
0
/test
bech/sel_mux
0
/test
bech/cout
B
/test
bech/data
000
/test
bech/mon_a
093
/test
bech/mon_
b
093
/test
bech/mon_sum
093
/test
bech/display
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
104/149
102 CIRCUITOS LGICOS DIGITALES |SEGUNDA PARTE
6. Diagrama de tiempos del sumador BCD
La figura 4 muestra la operacin del sumador BCD en el diagrama detiempo. La seal OK y DATA son las seales de salida del controladorde teclado. En los dos primeros pulsos de la seal OK se observa cmolos nmeros 5 y 1 son almacenados en el registro de datos MON_A. En
el tercer pulso de la seal OK se advierte cmo el controlador de tecladogenera el nmero B en hexadecimal, el cual es interpretado como el c-digo para la suma; por lo tanto, los contenidos de los registros A y B sonsumados y almacenados en el registro B (seal MON_B). En los pulsos4 y 5 de la seal OK se generan los datos 3 y 8, que son almacenadosen el registro A y que pueden ser observados en la seal DATA. En elsexto pulso de la seal OK se genera el nmero B hexadecimal, por loque nuevamente se realiza la suma de las seales MON_A y MON_By el resultado se almacena en MON_B. Para la exhibicin de datos secuenta con la seal SEL_MUX que estar en 0 lgico despus de RESETy mientras se estn ingresando datos decimales, y cambiar a 1 lgicocuando se detecte el cdigo de suma (B hexadecimal). Las entradas almultiplexor sern, por tanto, los registros A y B. La seal SEL_MUX de-
terminar cul de los dos valores deber exhibirse.
Material y equipo
Cantidad Descripcin1 Tarjeta CPLD o FPGA1 Computadora personal1 Teclado matricial 4x41 Display de 7 segmentos
Procedimiento
1. Circuito de aplicacin
a) Una el cdigo VHDL de las prcticas 2 y 4. Verifiqueque el circuito implementado es capaz de almacenarnmeros ordenadamente en los registros correspon-dientes.
b) Implemente y simule un sumador BCD de tres dgi-tos reutilizando el cdigo VHDL proporcionado.
c) Construya el sumadoracumulador de acuerdo a laarquitectura propuesta. Simule el circuito.
d) Disee el circuito que genere las seales OK_DATA,MAS y SEL_MUX, de acuerdo al diagrama de tiemposde la seccin 1.6.
e) Una los cdigos de los apartados anteriores e imple-mente el circuito en FPGA o CPLD.
f) Anote en la tabla 1 los resultados correspondientes.
Tabla de resultados
Tabla 1
CLBs o macroceldas IOBs f mx
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
105/149
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
106/149
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
107/149
105 CIRCUITOS LGICOS DIGITALES |SEGUNDA PARTE
Objetivo
Implementar en lgica configurable un sistema de comuni-cacin sincrnico mediante registros de desplazamiento.
Fundamento terico
Un registro de desplazamiento mueve su contenido a una posicin (a laizquierda o a la derecha) en cada pulso de reloj. Una de las aplicacio-nes ms frecuentes del registro de desplazamiento es el envo de datosparalelos en serie a travs de una lnea nica. El sistema completo detransmisin serie, cuyo diagrama de bloques se muestra en la figura 1,estara formado por un transmisor y un receptor. En el lado del trans-misor un dato paralelo se carga en el registro y a continuacin se envabit a bit en cada pulso de reloj. En el lado del receptor un nuevo bit esrecibido en cada pulso de reloj y reensamblado con la llegada de unaseal de sincrona. La figura 1 muestra un transmisor y un receptorconectados por tres seales:
Clock: seal de reloj para que los datos se desplacen en losregistros de cada pulso.
Data: el canal que transporta los datos en serie. Sync: un pulso de sincrona proporciona un punto de referen-
cia para reensamblar los datos en el receptor.
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
108/149
106 CIRCUITOS LGICOS DIGITALES |SEGUNDA PARTE
Mdulo fuente Mdulo destino
Datos enparalelo
Circuitos
de control
Convertidorparaleloa serie
Datos enparalelodata
sync
clock
Circuitos
de control
Convertidorparaleloa serie
Material y equipo
Cantidad Descripcin2 Tarjeta CPLD o FPGA1 Computadora personal
Procedimiento
1. Circuito de aplicacin
a) Seleccione un circuito digital en VHDL que muestreinformacin en un display de 7 segmentos de 3 dgi-tos (puede reutilizar cdigo de otras prcticas).
b) Disee un circuito transmisor sincrnico que enveserialmente la informacin de los displays de 7 seg-mentos.
c) Disee en VHDL un circuito receptor sincrnico quereciba tres bytes de informacin y los muestre endisplay de 7 segmentos.
d) Elabore proyectos separados para el transmisor y re-ceptor sincrnicos. Sintetice y configure cada uno delos proyectos en una placa independiente de FPGA oCPLD.
e) Anote en la tabla 1 los resultados correspondientes.
Tabla de resultados
Tabla 1
CLBs o macroceldas IOBs f mx
Figura 1. Sistema que transmite datos en formato serie entre dos m-
dulos.
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
109/149
6MULTIPLICADORES
DE NMEROS ENTEROS (I)
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
110/149
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
111/149
109 CIRCUITOS LGICOS DIGITALES |SEGUNDA PARTE
Objetivo
Implementar en lgica configurable un multiplicador BCD.
Fundamento terico
MultiplicadoresLa multiplicacin es una tarea importante en la aritmtica de compu-tadoras y en el procesamiento digital de seales. En el mtodo de lpizy papel (el que se ensea en educacin primaria con nmeros enterosdecimales), los dgitos del multiplicador son examinados uno a uno.Cada uno de esos bits multiplicados por el multiplicando dan como re-sultado un producto parcial. Todos los productos parciales producidosse suman con su respectivo desplazamiento y el resultado es el pro-ducto de dos nmeros dados. La figura 1 muestra el algoritmo para elmultiplicador de 8x8 para dos enteros sin signo (X, Y). Cada cuadro re-presenta el AND lgico del bit multiplicador yiy el bit multiplicando xj.
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
112/149
110 CIRCUITOS LGICOS DIGITALES |SEGUNDA PARTE
+
x0y7 x0y6 x0y5 x0y4 x0y3 x0y2 x0y1 x0y0
x0y7 x0y6 x0y5 x0y4 x0y3 x0y2 x0y1 x0y0
x1y7 x1y6 x1y5 x1y4 x1y3 x1y2 x1y1 x1y0
x1y7 x1y6 x1y5 x1y4 x1y3 x1y2 x1y1 x1y0
x2y7 x2y6 x2y5 x2y4 x2y3 x2y2 x2y1 x2y0
x3y7 x3y6 x3y5 x3y4 x3y3 x3y2 x3y1 x3y0
x2y7 x2y6 x2y5 x2y4 x2y3 x2y2 x2y1 x2y0
x3y7 x3y6 x3y5 x3y4 x3y3 x3y2 x3y1 x3y0
P15 P14 P13 P12 P11 P10 P9 P8 P7 P6 P5 P4 P3 P2 P1 P0
x4y7 x4y6 x4y5 x4y4 x4y3 x4y2 x4y1 x4y0
Existen otros algoritmos para implementar un multiplicador: usandotablas de verdad, usando sumadores y corrimiento, en array, etcte-ra. Para ejemplificar el diseo de un multiplicador mediante tablas deverdad lo haremos a travs de la tabla 1, en la cual se muestra un mul-tiplicador de 2 entradas de dos bits y una salida de cuatro bits comoresultado. La figura 2 presenta el cdigo VHDL para un multiplicadorutilizando inferencia del componente.
Y1 Y0 X1 X0 P3 P2 P1 P00 0 0 0 0 0 0 00 0 0 1 0 0 0 00 0 1 0 0 0 0 0
0 0 1 1 0 0 0 00 1 0 0 0 0 0 00 1 0 1 0 0 0 10 1 1 0 0 0 1 00 1 1 1 0 0 1 11 0 0 0 0 0 0 01 0 0 1 0 0 1 01 0 1 0 0 1 0 01 0 1 1 0 1 1 01 1 0 0 0 0 0 01 1 0 1 0 0 1 11 1 1 0 0 1 1 01 1 1 1 1 0 0 1
Figura 1. Productos parciales en un multiplicador 8x8.
Tabla 1. Multiplicador de dos nmeros de dos bits.
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
113/149
111 CIRCUITOS LGICOS DIGITALES |SEGUNDA PARTE
-- Multiplicador de 8 bits usando libreras
-- FPGAG: IPG, JEH, RJR, GLH.
-- FEB2K3
library IEEE;
use IEEE.std_logic_1164.all;
use IEEE.std_logic_arith.all;
entity mult is
port(
x: in std_logic_vector (7 downto 0);
y: in std_logic_vector (7 downto 0);
p: out std_logic_vector (15 downto 0));
end mult;
architecture mult_arch of mult is
begin
c
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
114/149
112 CIRCUITOS LGICOS DIGITALES |SEGUNDA PARTE
Nmero BCD
Bit BCD
5
0
B
Bit Hex Bin
Bin=
BCD1
BCD
7
B 1 0 0 0 0 0 0 0 10 0 0 0 0 0 1 0
0 0 0 0 0 1 0 0
0 0 0 0 1 0 0 0
0 0 0 0 1 0 1 0
0 0 0 1 0 1 0 1
0 0 1 0 1 0 0 0
0 1 0 1 0 0 0 0
0 0 1 1 0 1 1 0
0=
B 21=B 42=
B 104=
B 406=
B 83=
B 205=
B 807=
B6 B5 B4 B3 B2 B1 B0
0 0 0 01 1 1
4
12
Bcd2Bin
Mult
10
Prod[13..0]Bin2Bcd
16
BCD212
Bcd2Bin
10
Prod[14..19]error
Material y equipo
Cantidad Descripcin2 Tarjeta CPLD o FPGA1 Computadora personal
Procedimiento
1. Multiplicador
a) Implemente en VHDL un multiplicador binario 10x10usando la librera IEEE.std_logic_arith.all. Use comomodelo el cdigo de la figura 2.
b) Verifique en el simulador el funcionamiento delmultiplicador binario.
c) Implemente en VHDL el convertidor BCD a binario.d) Verifique en el simulador el funcionamiento del con-
vertidor Bcd2Bin.e) Implemente en VHDL el convertidor binario a BCD.f) Verifique en el simulador el funcionamiento del con-
vertidor Bin2Bcd.g) Implemente el multiplicador de la figura 3.h) Verifique en el simulador el funcionamiento del
multiplicador BCD y anote los resultados de la im-plementacin en la tabla 1.
Figura 3. Multiplicador BCD.
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
115/149
113 CIRCUITOS LGICOS DIGITALES |SEGUNDA PARTE
Tabla de resultados
Tabla 1
CLBs o macroceldas FPGAs o CPLDs f mx
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
116/149
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
117/149
7MQUINAS DE ESTADO
FINITAS (FSM)
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
118/149
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
119/149
117 CIRCUITOS LGICOS DIGITALES |SEGUNDA PARTE
Objetivo
Disear mquinas de estado mediante VHDL.
Fundamento tericoExisten muchas clases de problemas de diseo que pueden ser resuel-tos con circuitos lgicos digitales secuenciales sncronos. Un circuitosecuencial es aquel cuyas salidas actuales dependen tanto de las en-tradas actuales como de las entradas pasadas. Las entradas pasadasson memorizadas en flip-flops y son llamadas el estado presente delcircuito. Los valores lgicos del estado presente y de las entradas ac-tuales determinan el estado siguiente. Entre los circuitos secuencialessncronos podemos mencionar microprocesadores, circuitos de inter-faz a redes, automatismos de maquinaria, circuitos de control de par-tes robticas, entre muchos otros.
Una mquina de estados puede ser representada por un diagra-ma de estados, como se muestra en la figura 1. Cada uno de los nodosrepresenta el estado de la mquina y los arcos las posibles transicionesdeterminadas por la lgica del estado siguiente. La figura 2 muestra elcdigo VHDL de un contador binario descrito como una mquina deestados.
S1 S2
S5 S4
Sm S3
Figura 1. Contador binario de mestados.
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
120/149
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
121/149
119 CIRCUITOS LGICOS DIGITALES |SEGUNDA PARTE
Material y equipo
Cantidad Descripcin1 Tarjeta CPLD o FPGA1 Computadora personal
Procedimiento
1. Disee un semforo de 1 entrada (modo) y tres salidas (ver-de, amarillo, rojo) que funcione de acuerdo con las siguien-tes especificaciones (ver figura 3):
a) Cuando modo=0, el semforo exhibe verde (3 tiem-pos), amarillo (1 tiempo) y rojo (4 tiempos) cclica-mente.
b) Cuando modo=1, el semforo exhibe amarillo (1tiempo) y rojo (1 tiempo).
2. Implemente el circuito en FPGA o CPLD.
3. Anote los resultados que se piden en la tabla 1.
MODO=1
MODO=0
V2
R3 R2
V1
R4 R1
A
V3
Tabla de resultados
Tabla 1
CLBs o macroceldas FFs f mx
Figura. 3. Diagrama de estados para el semforo propuesto.
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
122/149
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
123/149
8MULTIPLICADORES
DE NMEROS ENTEROS (II)
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf
124/149
-
7/23/2019 Circuitos lA3gicos digitales_ m - Leyva HernA!ndez,