Circuitos lA3gicos digitales_ m - Leyva HernA!ndez, Gerardo(Autho.pdf

Embed Size (px)

Citation preview

  • 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,