1 EDIG Montero

536
simplyjarod.com EDIG Carpeta Montero Apuntes y exámenes ETSIT UPM

description

Apuntes de Electrónica Digital de la Montero Espinosa

Transcript of 1 EDIG Montero

  • simplyjarod

    .com

    EDIGCarpeta Montero

    Apuntes y exmenes ETSIT UPM

  • Si alguna vez estos apuntes te sirvieron

    de ayuda, piensa que tus apuntes pueden

    ayudar a muchas otras personas.

    Comparte tus apuntes en simplyjarod.com

  • \ ~j

    www.monteroespinosa.es

    EDIG Teora

    Clases de EDIG Tfnos 91 5445377, 619142355

  • PROGRAMA DE LA ASIGNATURA EDIG

    1. Codificacin de la Informacin Introduccin Electrnica Digital. Abstraccin digital (analgico vs. digital). Sistemas de numeracin. Representacin nmeros negativos. lgebra de Boole. Axiomas. Operadores bsicos. Tabla de Verdad. Puertas Lgicas simples y complejas. Mapas de Karnaugh.

    2. Dispositivos de Lgica Programable (VHDL) Introduccin a los dispositivos lgicos programables y a los lenguajes de descripcin hardware (VHDL). Estructura cdigo VHDL. Sintaxis bsica.

    3. Circuitos combinacionales Multiplexores. Interconexin de varios MUX. Implementacin de funciones con MUX. Codificadores y Decodificadores. Interconexin de varios codificadores. Comparadores. Sumadores. Memorias no voltiles.

    4. Circuitos secuenciales Elemento biestable bsico. Bscula Set-Reset. Biestables activos por nivel (latch). Biestables activos por flanco de CLK (flip-flops): tipo-D, po J-K y tipo-T. Temporizacin. Registros de almacenamiento. Contadores. Registros de desplazamiento.

    5. Autmatas (1,0 crdito) Mquinas Moore y Mealy. Diagrama de estados. Tabla de transiciones autmatas.

    --------------~------------------~----------------------------------------

    www.monteroespinosa.com - Clases de EDIG - Tfnos 91 544 53 77 , 619 142 355

    l. )" '---

    ~--)

  • (~.

    (\. )

    '-j l~

    Los smbolos numricos con los que ms familiarizados estamos en la actualidad se conocen como dgitos arbigos, ya que se desarrollaron en la cultura rabe medieval. Como ya sabemos, son:

    1 ,2,3,4,5,6,7,8,9 Y o

    Bit = "Binary Digit"

    Los tamaos de palabra normalmente son potencias de 2.

    TEMA 1: CODIFICACiN DE LA INFORMACiN 1.1 Sistemas de numeracin

    Un sistema de numeracin se defme por sus smbolos bsicos, llamados dgitos cifras, y las formas de combinar los mismos para representar toda la gama de nmeros que requerimos.

    Decimos que nuestra notacin de los nmeros es posicional, puesto que cada dgito de un nmero tiene un valor fijo determinado por su posicin. Este valor viene dado por el dgito, multiplicado por una potencia de la base de numeracin (con su posicin como exponente, empezando por cero). As, un nmero "N" se representa en base "b" como " ... d7d6dsd4d3d2d" donde "d" son los dgitos.

    do es el bit menos significativo (LSB) d7 es el bit ms significativo (MSB)

    Los sistemas ms habituales son el decimal (base 10), el binario (base 2), el octal (base 8) y el hexadecimal (base 16) de los que se presentan los primeros valores en la siguiente tabla:

    Decimal Binario Octal Hexadecimal

    O O O O 1 1 1 1 2 10 2 2 3 11 3 3 4 100 4 4 5 101 5 5 6 110 6 6 7 111 7 7 8 1000 10 8 9 1001 11 9

    10 1010 12 A 11 1011 13 8 12 1100 14 e 13 1101 15 D 14 1110 16 E 15 1111 17 F

    1.1.1 Sistemas digitales. Tamao de palabra

    Como veremos en epgrafes posteriores, los sistemas digitales trabajan con numeracin binari, en la que a cada dgito lo llamaremos bit. Un aspecto importante de estos sistemas es que slo pueden manejar nmeros con una cantidad fija de dgitos n. As, por ejemplo, los computadores tienen un tamao de palabra especfico, que es la longitud (nmero de bits) de los nmeros binarios procesados por las instrucciones internas del computador.

    www.monteroespinosa.com - Clases de EDIG - Tfnos 91 5445377 , 619 142355 T-1.1

  • El subndice indica en qu base est el nmero

    Es igual que el octal pero agrupando de cuatro en cuatro

    1.2 Conversin entre las bases ms comunes

    De binario a:

    -+ Octal: basta con agrupar los digitos binarios de tres en tres empezando por la derecha y sustituir cada tema por el digito octal correspondiente (ver tabla de la pgina anterior). Si el nmero de dgitos binarios no es multiplo de tres rellenamos con ceros por la izquierda.

    Ejemplo: 1011101100h 10 111 011 OOb 2731 8 -+ Hexadecimal: basta con agrupar los digitos binarios de cuatro en cuatro empezando

    por la derecha y sustituir cada grupo por el digito hexadecimal correspondiente (ver tabla de la pgina anterior). Si el nmero de dgitos binarios no es multiplo de cuatro rellenamos con ceros por la izquierda.

    Ejemplo: 101110110012 101 1101 100h

    -+ Decimal: multiplicamos cada dgito binario por 2 elevado a la posicin que ocupa. Tras ello sumamos todo y sale el nmero en decimal

    Ejemplo: 1011101100h = 1 . 210 + O . 29 + 1 . 28 + 1 . 27 + 1 . 26 + O . 25 +

    + 1 . 24 + 1 . 23 + 1 . 22 + O . 21 + 1 . 2 = 149710

    De octal a:

    -+ Binario: basta con sustituir los digitos en octal por los tres digitos equivalentes en binario (ver tabla de la pgina anterior). Ejemplo: 12348 = 001 010011 1002

    -+ Hexadecimal: Primero pasamos el dgito octal a binario y despus de binario a hexadecimal (ambos procedimientos ya estn explicados) Ejemplo: 12348 = 001 0100111002 = 0010 100111002 = 29C16

    -+ Decimal: multiplicamos cada dgito octal por S elevado a la posicin que ocupa. Tras ello sumamos todo y sale el nmero en decimal Ejemplo: 12342 = 1 . S3 + 2 . S2 + 3 . SI + 4 . SO = 66S 1O

    De hexadecimal a:

    -+ Binario: basta con sustituir los digitos en hexadecimal por los cuatro digitos equivalentes en binario (ver tabla, de la pgina anterior). Ejemplo: CODE16 = 1100 0000 110 1 11102

    -+ Octal: Primero pasamos el dgito hexadecimal a binario y despus de binario a octal (ambos procedimientos ya estn explicados) Ejemplo: CODE16 = 11000000110111102 = 1100 000 011 0111102 = 1403368

    -+ Decimal: multiplicamos cada dgito hexadecimal por 16 elevado a la posicin que ocupa. Tras ello sumamos todo y sale el nmero en decimal Ejemplo: CODE16 = 12 163 + O . 162 + 13 . 161 + 14 . 16 = 4937410

    www.monteroespinosa.com - Clases de EDIG - Tfnos 91 5445377 , 619 142355 T-1.2

    ( I ~-_/

  • l_)

    De decimal a:

    ~ Binario: Se va dividiendo el dgito en decimal entre 2 tantas veces como sea posible (divisin entera, sin decimales) y nos vamos quedando con el resto que sobra en cada divisin (que siempre ser O 1). Esos restos ordenados del ltimo al primero forman el nmero binario:

    Ejemplo: 108 + 2 = 54 Y sobra O (LSB) +2 = 27 Y sobra O

    + 2 = 13 Y sobra 1 +2= 6 y sobra 1

    +2=3 y sobra O + 2 = 1 Y sobra 1

    +2 = O Y sobra 1 (MSB)

    10810 = 11011002

    ~ Octal: Se va dividiendo el dgito en decimal entre 8 tantas veces como sea posible (divisin entera, sin decimales) y nos vamos quedando con el resto que sobra en cada divisin (que esta-r siempre entre O y 7). Esos restos ordenados del ltimo al primero forman el nmero octal:

    Ejemplo: 108 +8 = 13 y sobra 4 (LSB) + 8 = 1 Y sobra 5

    + 8 = O Y sobra 1 (MSB)

    10810 = 1548

    ~ Hexadecimal: Se va dividiendo el dgito en decimal entre 16 tantas veces como sea posible (divisin entera, sin decimales) y nos vamos quedando con el resto que sobra en cada divisin (que esta-r siempre entre O y 15). Esos restos ordenados del ltimo al primero forman el nmero octal:

    Ejemplo: 108 + 16 = 6 Y sobra 12 (LSB) + 16 = O Y sobra 6 (MSB)

    10810 = 6C16

    www.monteroespinosa.com - Clases de EDIG - Tfnos 91 5445377 , 619 142355 T-1.3

  • Usando el complemento a 1, el "O" se puede representar tanto 00000000 como 11111111 (en este ejemplo, trabajando con 8 bits).

    Para saber qu cifra representa un nmero negativo en complemento a 2, basta con volver a complementarlo a 2, y obtendremos su valor absoluto.

    Recuerda que el bit ms significativo nos da la informacin relativa al signo del nmero.

    1.3 Representacin de nmeros binarios negativos

    Para representar nmero negativos en binario existen bsicamente dos sistemas, complemento a uno y complemento a dos.

    1.3.1 Complemento a uno

    El bit ms significativo indica el signo y el resto el mdulo si el nmero es positivo. En caso de ser negativo el mdulo es el resultante de cambiar los "1" por "O" y viceversa. El rango de valores que se pueden representar con n bits es - (2n- 1 - 1) :::s nmero :::s (2n- 1 -1).

    El problema del complemento a uno es que el cero no queda unvocamente definido.

    Ejemplo: 0101010lz = 8510 101010102 == -85 10

    1.3.2 Complemento a dos

    Igual que c?~ple~ent~ol' a und

    o, pero si el nmero es negativo se suma "1" al resultado. Es la !) representaclOn mas u lIza a. .

    El rango de valores que se pueden representar con n bits es - 2n- 1 :::s nmero :::s (2n- 1 - 1).

    Ejemplo: 0101010lz = 8510 1010101lz = -85 10

    En la tabla siguiente tienes ejemplos de representacin con 4 bits.

    Decimal Complemento . Complemento a dos a uno

    -8 1000 -7 1001 1000 -6 1010 1001 -5 1011 1010 -4 1100 1011 -3 1101 1100 -2 1110 1101 -1 1111 1110 O 0000 1111 0000 1 0001 0001 2 0010 0010 3 0011 0011 4 0100 0100 5 0101 0101 6 0110 0110 7 0111 0111

    j

    www.monteroespinosa.com - Clases de EDIG - Tfnos 91 5445377 , 619 142355 T-1.4

  • \+ \..0 ( ~ ~'btmos. e\ r'l'iVle\ .e-V\ 'Yll~(O'. lO \0 - b ~fu~fYlO~ 0.;, \O~ \ de... C:;~10 ~\,~vo ~'-\.o-\-o-l---'ol

    '\=- ~)J~ 'E-scs\\:.lvYlOS. ~ to e1..~\..etLeYt\a ~ '- CL ~e.c.~. \"otO\ ~c\ )es~ho?=6t\.-t.VO.

    -'b %\0 t-e1.;:ncS. ~ ~ e \'"'a.t"\o o-. '

  • Estos sistemas se usan para excitacin de

    f"\ dispositivos externos , . como rels o LEOs.

    1.4 Cdigos para nmeros decimales

    En este apartado estudiamos formas alternativas de representar los nmeros decimales, a caballo entre el "pensamiento" de una mquina (sistema binario) y el de una persona (sistema decimal). Los ms utilizados son BCD y l-de-lO.

    BCD = "Binary-coded 1.4.1 Decimal codificado en binario (BCD) decimal"

    BCD no es ms que el sistema decimal, con cada dgito codificado en binario.

    La correspondencia entre cada dgito decimal y su representacin en BCD la tienes en la tabla del final de este epgrafe

    n Observa que el / subndice del resultado '-' es 10, para representar

    que, efectivamente, no est representado en binario, sino en BCD.

    Es importante recordar que en este sistema contamos las posiciones desde la izquierda, empezando c) por cero.

    Observa que no se utilizan las combinaciones comprendidas entre 1010 Y 1111, inclusive.

    G!

    Hasta ahora hemos supuesto que los nmeros decimales se traducen a binario para ser procesados por circuitos digitales. Un mtodo alternativo es codificar los dgitos decimales en forma binaria, manteniendo su notacin posicional. Estos nmeros se denominan . nmeros decimales codificados en binario.

    La forma de conversin es muy sencilla: Un nmero decimal sin signo N IO = dn_Idn_2 ... dldo se convierte a la forma BCD estableciendo la correspondencia de cada dgito di a un nmero binario de cuatro bits B.

    Ejemplo: Si tenemos el nmero decimal N IO = 710910 , el proceso de conversin a BCD es:

    N IO = 7 1 O 9 = 011100010000100110 ~ ~ ~~ Olll 0001 0000 1001

    Por supuesto, la conversin de BCD a la forma decimal ordinaria se efecta reemplazando los grupos de cuatro bits por el dgito decimal equivalente.

    Ejemplo: N IO = 001110000100100100000101 = 38490510 ~~~'----v--"--v-'

    3 8 4 9 o 5

    1.4.2 l-de-l0

    Este sistema consiste simplemente en codificar cada dgito decimal como una palabra binaria de lO bits. En esta, todos los bits estn puestos a cero excepto aquel que ocupa la posicin coincidente con el valor del dgito decimal representado.

    As, por ejemplo, el dgito decimal O estar representado por '1000000000', y el decimal 7, corresponder al '0000000100'. Todas las correspondencias entre dgitos puedes encontrarlas en la tabla adjunta.

    Dgito decimal BCD 1-de-10

    O 0000 1000000000 1 0001 0100000000 2 0010 0010000000 3 0011 0001000000 4 0100 0000100000 5 0101 0000010000 6 0110 0000001000 7 0111 0000000100 8 1000 0000000010 9 1001 0000000001

    www.monteroespinosa.com - Clases de EDIG - Tfnos 91 5445377 , 619 142355 T-1.5

  • 1.4.3 Ejemplo de uso de BCD: excitacin de los LEDs de "displays" de 7 segmentos

    INPUTS

    D e B A

    L L L L L L L H L L H L L L H H L H L L L H L H L H" H L L H H ". H L L L H L L H H L H L H L H H

    H H L L H H L H H H H l H H H H

    1..5247 FUNCTION TABLE

    " b

    ON ON OFF ON ON ON ON ON OFF ON ON OFF ON OFF ON ON

    ot~ ON ON ON OFF OFF OFF OFF OFF .oN ON OFF OFF OFF OFF OFF

    OUTPUTS

    e d ON ON ON ON OFF OFF

    OFF ON ON ON ON OFF ON OFF OFF ON ON OFF ON ON ON ON OFF OFF ON ON ON

    Ol~ ON OFF OFF ON ON ON ON OFF

    OFF OFF OFF OFF ON OFF OFF ON ON OFF OFF OFF

    74LS247: Decodificador de BCD a 7 segmentos I

    r 9 ON OFF OFF OFF OFF ON OFF 01'1 ON ON ON ON ON ON OFF OFF ON ON ON ON OFF ON OFF ON ON ON ON ON ON ON OFF OFF

    Display de 7 segmentos:

    a

    fl-;-I b el le

    d

    SEGMENT IDENTIFICATION

    lul ilcl-:I'-1IL.'~' :lc:lyl,-bl'-JIL.lr-I I o 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

    NUMERICAL OESIGNATIONS ANO RESULTANT OISPLAYS

    www.monteroespinosa.com - Clases de EDIG - Tfnos 91 5445377 I 619 142355 T-1.6

    (j

    )

  • o

    C)

    Este convenio responde al nombre de "Lgica positiva", que es la ms utilizada.

    1.5 lgebra de Boole Es un tipo de lgebra que, basndose en la teora de conjuntos, se aplica a sistemas matemticos en los que slo existen dos elementos posibles: el O y el 1.

    De la anterior definicin se deduce su posibilidad de ser aplicada al anlisis y diseo de circuitos digitales, simplemente precisando el siguiente convenio:

    Presencia de tensin = 1. Ausencia de tensin = O.

    1.6 Operaciones y propiedades bsicas

    En el lgebra de Boole slo existen tres operaciones: '\ Suma. ('O(;;: ') (l ~ \\0 d resu.\\q.)c e.-s ~(t, c.uando . ~ "C?,~\UI1d?f

    \ - '5011. o ,EiC.ucUl+e tu'lO -V'o...,-e. \ e..., re.S\.t\ Multiplicacin. 1 Ar\?) &~ a..~ ~o es ~". Complementacin o inversin. ! (~O() (5 -:: \' 1 -=- co

    En la tabla se indican las forma de representacin, as como sus postulados bsicos. Las operaciones del lgebra de Boole cumplen las siguiente propiedades:

    a) Conmutativa: a + b = b + a ab=ba

    b) Asociativa: a+b+c=a+(b+c) abc=(ab)c

    c) Distributiva: a (b + c) = ab + a c a+(bc) = (a+b)(a+c)

    " . .i , Op~racin

    Suma

    Multiplicacin

    Complementacin o inversin

    F=a+b

    F = a' b F = ab

    F = a * b

    F= F = Q.b

    1.7 Teoremas y leyes booleanas principales

    0+0=0 a+O=a O + 1 = 1 a + 1 = 1 1+.1=1 a+a=a

    a + = 1

    0,0=0 a'O=O 0'1=0 a'l=a 1,1=1 a'a=a

    a' = O

    Los teoremas de lgebra de Boole son demostrables, a diferencia de los del lgebra convencional, por el mtodo de induccin completa. Este mtodo consiste en comprobar que la relacin entre los elementos que el teorema defme se cumplen en todos los casos posibles. Para poder realizar esto se emplean las llamadas tablas de verdad, que no son otra cosa que representaciones grficas de todos los casos que pueden darse en una relacin y de sus respectivos resultados.

    www.monteroespinosa.com - Clases de EDIG - Tfnos 91 5445377 , 619 142355 T-1.7

  • Para comprender mejor lo anterior, demostremos la primera ley del lgebra de Boole, llamada ley de absorcin; su expresin es la que sigue:

    a+ab = a

    Su demostracin se encuentra en la tabla siguiente:

    o O 0+00=0 O O 1 0+01=0 O 1 O 1+10=1 1 1 1 1+1'1=1 1

    Existen infinidad de teoremas en el lgebra de Boole, tantos como puedan ser demostrados por el mtodo ya referido; sin embargo, hay una serie de ellos que, dada su utilidad, es importante conocer. La tabla siguiente muestra los ms importantes. Por otra parte, siempre que se cumple una ley o teorema en el lgebra de Boole, se cumple tambin su llamada forma dual; es decir, se cumple tambin la expresin que se obtiene cambiando solamente las operaciones de suma por las de producto y las de producto por las de suma. Las formas duales de las leyes y teoremas bsicos tambin se indican en la tabla siguiente.

    : Hrrii~'~~'i~j~y, ," " , , ,: ,')Y~?~~~~~~,;""", :'f~~~:I~?;:~', .. .'i;rL'~} .. i~~#~~~irJ~ Ley de absorcin a + a . b = a a . (a + b) = a (1)

    ., Teorema de De Morgan (a+b+c+)-iilic (abc)-ii+li+E+ ... '(2)

    IMPORTANTE: Tanto en una estructura como en la otra, todos los trminos han de contener todas las variables que intervienen en la ecuacin.

    Leyes de transposicin

    Leyes varias

    a b+ii' c=(a+c)' (ii+b) ii li+a' b=(ii+b) . (a+O)

    a+ii b=a+b ii+a' b=ii+b

    a b+a li c=a . b+a . c a' b+ii' c+b . c=a' b+ii . c

    a b+a 'li=a a' b+a . c=a . (b+c)

    (a+b) . (Hc)=a . c+ii b (3) (HO) : (a+b)=ii' b+a . li (4)

    a' (ii+b)=a . b (5) ii (a+b)=ii b (6)

    (a+b) (a+li+c)=(a+b)' (a+c) (7) ~+~.~+~.~+~=~+~.~+~ W

    (a+b) (a+O)=a (9) (a+b) . (a+c)=a+(b . c) (10)

    1.8 Formas cannicas de una funcin booleana

    Las ecuaciones o expresiones booleanas pueden adoptar dos estructuras o formas tpicas, denominadas formas cannicas. Dichas formas son:

    Primera forma cannica - Ecuaciones con estructura minterms: Esta ecuacin est estructurada como una suma de trminos en forma de producto de las diferentes variables que intervienen en la ecuacin. Ejemplo:

    x = abc+abc+abc

    Segunda forma cannica - Ecuacin con estructura maxterms: Se dispone como un producto de trminos en forma de suma de las diferentes variables que intervienen en la ecuacin.

    Ejemplo: y = (~+b+c ).( a+b+~).(~+b+~).( a+b+c)

    www.monteroespinosa.com - Clases de EDIG - Tfnos 91 5445377 , 619 142355 T-1.8

    n

    (\ . J

  • o

    Esta forma cannica se utiliza para implementar una funcin empleando slo puertas NANO.

    Esta forma cannica se utiliza para implementar una funcin empleando slo puertas NOR.

    Con el ejercicio 1 de clase comprenderemos mejor estos mtodos.

    Ecuacin minterms

    Ecuacin maxterms

    Tercera forma cannica - Ecuacin con producto de productos: Se dispone como un producto de trminos en forma de producto de las diferentes variables que intervienen en la ecuacin.

    Ejemplo:

    z = abe abe abe

    Cuarta forma cannica - Ecuacin con suma de sumas: Se dispone como una suma de trminos en forma de suma de las diferentes variables que intervienen en la ecuacin.

    Ejemplo:

    w= (a+b+e )+( a+b+e )+( a+b+e )+( a+b+e)

    1.9 Obtencin de la ecuacin de una funcin lgica partiendo de su tabla de verdad.

    Dada la tabla de verdad,que representa la respuesta binaria de una funcin lgica, existen dos mtodos para obtener su ecuacin en primera y segunda forma cannica, respectivamente. Estos mtodos estn expresados y resumidos en la tabla siguiente, en la que tambin explicamos el mtodo para obtener a partir de estas, la tercera y la cuarta forma cannica.

    Tipo de ecuacin

    Primera forma cannica

    Segunda forma cannica

    Tercera forma cannica

    Cuarta forma cannica

    Mtodo de obtencin

    Obtener la suma de productos de variables cuyas combinaciones hacen 1 la funcin

    Obtener el producto de las sumas de variables cuyas combinaciones hacen O la

    funcin

    Negar dos veces la ecuacin en la primera forma cannica

    Negar dos veces la ecuacin en la segunda forma cannica

    1.10 Simplificacin de ecuaciones booleanas

    Convenio a aplicar

    o variable negada 1 variable sin negar

    o variable sin negar 1 variable negada

    Existen dos procedimientos bsicos a la hora de shnplificar las ecuaciones booleanas:

    Mtodo de simplificacin algebraico: Se realiza aplicando las leyes y teoremas del lgebra.

    Mtodos tabulares y grficos: Destacamos entre estos, el mtodo de Karnaugh, que estudiamos a continuacin.

    www.monteroespinosa.com - Clases de EDIG - Tfnos 91 5445377 , 619 142355 T-1.9

  • IMPORTANTE: de una casilla a otra adyacente slo puede cambiar una variable.

    Es por esto que, por ejemplo, representemos la entrada X4X5 = 11 justo debajo de la casilla con entrada X4X5 = 01

    1.10.1 Simplificacin utilizando el Mtodo de Karnaugh

    Se han propuesto diversos mtodos para minimizar de modo sistemtico. Algunos son numricos, y conducen a un algoritmo que puede programarse. Aqu veremos un mtodo grfico que es el ms sencillo y tambin el ms conocido (aunque prcticamente deja de tener utilidad para formas booleanas con ms de seis variables). Una tabla de Karnaugh no es otra cosa que una presentacin alternativa de la misma informacin contenida en una tabla de verdad. La tabla de Karnaugh es de doble entrada, y tiene las asignaciones colocadas de tal modo que las que corresponden a productos cannicos adyacentes estn fsicamente contiguas. En la siguiente figura pueden verse las disposiciones de las tablas de Kamaugh para los casos de tres, cuatro y cinco variables booleanas. Cada casilla corresponde a una lnea de la tabla de verdad, y se pondr en ella un "O" un "1". En la figura hemos numerado las casillas con los nmeros de fila correspondiente de la tabla de verdad.

    z 00

    O O

    1 1

    x.;x ,x. 00

    4

    00 O

    01 1

    11 3

    10 2

    x.;x x :;;:.

    3 00 01 11 10

    00 O 4 12 8

    01 1 5 13 9

    11 3 7 15 11

    10 2 6 14 10

    01

    2

    3

    01 4

    5

    7

    6

    11 10

    6 4

    7 5

    11 10 12 8

    13 9

    15 11

    14 10

    x.;x xx

    3

    s

    00

    01

    11

    10

    x,=1

    00 01 11 10

    16 20 28 24

    17 21 29 25

    19 23 31 27

    18 22 30 26

    Una vez rellena la tabla, pasamos a agrupar trminos para obtener la forma cannica simplificada que buscamos y despus expresar finalmente la funcin. Segn sea esta la primera o la segunda, actuaremos de formas diferentes:

    Primera forma cannica - Simplificacin por unos: Las reglas para agrupar los "1" son las que se enuncian a continuacin:

    1) Cada grupo debe tener 2n elementos (o sea, 1, 2, 4, 8, etc ... ). 2) Los grupos deben ser lo ms grandes posibles. 3) Los grupos siempre deben ser rectngulos o cuadrados. 4) Est permitido pasar los bordes del mapa (en vertical y horizontal). 5) Cada grupo debe tener al menos un elemento en exclusividad (que no pertenezca a

    ningn otro grupo). 6) Todos los "1" deben pertenecer al menos a un grupo. 7) Hay que intentar agrupar todos los" 1" en el menor nmero posible de grupos. 8) No es obligatorio que estn superpuestos unos grupos con otros.

    www.monteroespinosa.com - Clases de EDIG - Tfnos 91 5445377 , 619 142355 T-1.10

  • Una vez agrupados todos los unos, pasamos a expresar la funcin buscada.

    Obtendremos tantos trminos como grupos de unos (trminos que se sumarn entre s)

    (---\1 Cada uno de los trminos se obtiene multiplicando las variables que quedan constantes.

    ObseNa que son las mismas reglas que para las agrupaciones de unos, solo que referidas a los ceros.

    Complementamos las variables que valen O.

    Segunda forma cannica - Simplificacin por ceros:

    Las reglas para agrupar los "O" son las que se enuncian a continuacin:

    1) Cada grupo debe tener 2n elementos (o sea, 1,2,4,8, etc ... ). 2) Los grupos deben ser lo ms grandes posibles. 3) Los grupos siempre deben ser rectngulos o cuadrados. 4) Est permitido pasar los bordes del mapa (en vertical y horizontal). 5) Cada grupo debe tener al menos un elemento en exclusividad (que no pertenezca a

    ningn otro grupo). 6) Todos los "O" deben pertenecer al menos a un grupo. 7) Hay que intentar agrupar todos los "O" en el menor nmero posible de grupos. 8) No es obligatorio que estn superpuestos unos grupos con otros.

    Una vez agrupados todos los ceros, pasamos a expresar la funcin buscada.

    Obtendremos tantos trminos como grupos de ceros (trminos que se multiplicarn entre s) Cada uno de los trminos se obtiene sumando las variables que quedan constantes. Complementamos las variables que valen 1.

    www.monteroespinosa.com - Clases de EDIG - Tfnos 91 5445377 , 619 142355 T-1.11

  • En ingls "structural design".

    Estas bibliotecas con-tienen componentes o mdulos denominados macros que pueden ser de dos tipos: Macros hardware ("hard ma-cros') y Macros soft-ware ("soft macros").

    TEMA 2: DISP. DE LGICA PROGRAMABLE (VHDL).

    2.1 Descripcin de sistemas digitales complejos La descripcin de los sistemas digitales complejos se puede realizar, tal y como se indica en el esquema siguiente, de diferentes maneras segn tres parmetros caractersticos inter-relacionados entre s:

    El tipo de jerarqua. La representacin del sistema. La relacin con la realizacin fsica.

    Formas de descripcin

    de los sistemas digitales

    complejos

    {

    Horizontal Segn el tipo de

    jerarqua {. De abajo hacia arriba Vertical

    De arriba hacia abajo

    {

    Estructural

    Segn la representacin del sistema Funcional o de comportamiento

    Segn la relacin con la realizacinfisica

    Fsica O geomtrica

    {

    Independiente'

    Dependiente . .

    A pesar de que existen, tal y como hemos visto, tantas formas de describir un circuito, para esta asignatura slo vamos a centrarnos en la segunda de las clasificaciones y ms concre-tamente, slo en las descripciones estructural y funcional.

    2.1.1 Formas de descripcin segn la representacin del sistema

    2.1.1.1 Descripcin estructural

    (~)

    La descripcin estructural consiste en especificar la totalidad de los elementos que compo- ) nen el sistema digital y las interconexiones entre ellos. Inicialmente se realiz representan-do los elementos mediante smbolos e interconectndolos para dar lugar a un esquema.

    Las dificultades que presenta la descripcin del esquema de un sistema digital complejo mediante transistores o incluso mediante puertas lgicas hizo que a los programas de dise-o de esquemas se les dotase de bibliotecas (en ingls "libraries").

    La edicin de esquemas fue, hasta la dcada de 1980, la nica forma de realizar la descrip-cin estructural asistida por computador de los sistemas digitales. Pero la elevacin de su complejidad propici el desarrollo de lenguajes orientados a la descripcin de sistemas digitales, que reciben el nombre de BDL, uno de los cuales (VHDL) estudiaremos en apar-tados posteriores.

    www.monteroespinosa.com - Clases de EDIG - Tfnos 91 5445377 , 619 142355 T-2.1

  • o

    C)

    HDL = "Hardware Descripton Language".

    Ejemplos de lenguajes HDL no estructurados son ABEL, CUPL y PALASM.

    Ejemplos de lenguajes HDL estructurados son RTLyVHDL.

    VHSIC - "Very High Speed Integrated Cir-cuits".

    VHDL - "VHSIC Hard-ware Description Lan-guaje".

    Cabe resaltar que VHDL es independiente de la tecnologa em-pleada.

    En esto radica que se diga que VHDL es un lenguaje estructurado.

    2.1.1.2 Descripcin funcional o de comportamiento

    La descripcin funcional consiste en especificar el funcionamiento del sistema digital en lugar de detallar los elementos que lo forman.

    Los formatos habituales para describir el funcionamiento de los sistemas digitales sencillos son las tablas de verdad, las ecuaciones lgicas y los grafos de estado. Para sistemas ms complejos estos formatos habituales son el flujo de datos y los algoritmos de compor-tamiento.

    Para potenciar esta forma de descripcin fue necesario desarrollar lenguajes de descripcin como el que estudiamos a continuacin.

    2.2 Introduccin a los lenguajes de descripcin Como se ha dicho, los fabricantes de circuitos integrados iniciaron durante la dcada de 1970 el desarrollo de lenguajes que permitiesen realizar la descripcin estructural y funcio-nal de los sistemas digitales complejos. Estos lenguajes, que reciben el nombre genrico de HDL, evolucionaron siguiendo dos caminos paralelos:

    Algunos fabricantes de circuitos digitales configurables de equipos de instrumenta-cin electrnica desarrollaron lenguajes HDL sencillos, denominados no estructura-dos, ya que estn orientados a la realizacin de un nico circuito o mdulo por fichero.

    Los fabricantes de circuitos integrado a medida desarrollaron lenguajes HDL comple-jos, denominados estructurados porque permiten defmir submdulos y enlazarlos jerrquicamente en un nico fichero. Estos lenguajes se caracterizan adems por el hecho de que las herramientas de CAD asociadas con ellos permiten utilizar un fichero HDL como nivel superior de lajerarqu-a, lo que propicia la creacin de bibliotecas de circuitos y operadores frecuentemente utilizados (puertas lgicas, bloques funcionales, operadores aritmticos ... ).

    2.3 Lenguaje VHDL 2.3.1 Introduccin

    VlIDL es un lenguaje de descripcin de sistemas digitales que fue desarrollado en el marco del programa VHSIC del Departamento de Defensa de los Estados Unidos.

    Se trata de un lenguaje complejo y estructurado que permite la descripcin de cualquier circuito combinacional o secuencial. Por ser un lenguaje universal, permite la implemen-tacin posterior del circuito descrito en cualquier tipo de circuito integrado disponible en la actualidad, como los circuitos digitales configurables (pLDs y FPGAs). Actualmente, to-das las herramientas de CAD para el diseo con PLDs y FPGAs incluyen una versin del VHDL.

    Adems, cabe destacar que el lenguaje VHDL permite la descripcin de un circuito de dis-tintas formas, incluyendo las descripciones Estructural y Funcional, descritas en apartados anteriores.

    Para realizar la descripcin de un circuito o sistema digital en VHDL, debe incluirse sta en un fichero de texto, que posteriormente ser compilado y sintetizado, obteniendo el cdigo necesario para programar el circuito configurable elegido.

    En un fichero escrito en VHDL se puede incluir la descripcin de un nico circuito o blo-que funcional o la de varios, cuyas interconexiones se defmirn a su vez en el mismo fiche-ro o en otro distinto.

    www.monteroespinosa.com - Clases de EDIG - Tfnos 91 5445377 , 619 142355 T-2.2

  • En este fichero se describe un biestable de tipo D activado por flancos ascendentes.

    En estos apuntes no desarrollaremos la definicin de bibliotecas por el usuario

    2.3.2 Sintaxis del fichero VHDL

    A continuacin se describe la sintaxis que debe presentar cualquier fichero fuente de VHDL. El fichero debe constar de las siguientes secciones, que se muestran en el ejemplo de la tabla siguiente (en negrita): n

    - Cabecera

    - Declaraciones

    Sintaxis bsica del fichero VHDL

    library ieee use ieee.std_logic_1164.all use ieee.std_logic_arith.all use ieee.std_logic_unsigned.all

    entity BIESTABLED is port ( -- Entradas reloj : in std_logic dato : in std_logic -- Salidas salida_ : out std_logic ) ; end BIESTABLED

    - Descripcin lgica archi tecture ej emplo of BIESTABLED is begin

    process begin

    wai t until reloj' event and reloj '1' salida_

  • o

    Aqu se especifica el uso de todos los com-ponentes del paquete "std_logic_1164 2 de la biblioteca "IE-EE", Y el uso del com-ponente "dff' del pa-quete "registros" de la biblioteca "mLbiblioteca".

    Para cada circuito que se utilice en VHDL, es necesario definir un bloque entidad.

    Ms adelante explica-remos los tipos de datos de VHDL.

    En este ejemplo se especifica la entidad correspondiente a un circuito sumador total de dos nmeros de un bit.

    En la arquitectura daremos la Descrip-cin del circuito, en cualquiera de las formas que hemos visto del circuito.

    El conjunto entidad -arquitectura es la uni-dad mnima de diseo.

    En los ficheros VHDL de descripcin de circuitos, es habitual incluir en su cabecera la utilizacin de bibliotecas y paquetes, que permiten utilizar en todo el fichero las defmicio-nes que incluyen.

    La sintaxis para el uso de bibliotecas y paquetes es:

    LIBRARY nombre_biblioteca; USE nombre_biblioteca. nombre_paquete. elemento_paquete

    Ejemplo:

    LIBRARY IEEE; USE IEEE.std_logic_1164.all

    LIBRARY mi biblioteca; USE mi_biblioteca.registros.dff

    Algunos paquetes tpicos, disponibles en la biblioteca IEEE, existente en la mayora de las herraimentas CAD, son: std _logic _1164. vhd (estndar), std jogic _ arith. vhd (aritmtica), std _logic _unsigned. vhd (aritmtica sin signo), std _logic _ components. vhd. ..

    2.3.4 Entidad

    Una entidad ("entity") en VHDL consiste en la defmicin del nombre del circuito y de sus seales de entrada y salida (puertos), indicando el tipo de cada una de ellas.

    La sintaxis es la siguiente

    ENTITY nombre circuito is PORT (nombre_entradas: IN tipo_entradas; nombre salidas: OUT tipo_salidas);

    END nombre_circuito;

    Ejemplo:

    ENTITY sumador total is PORT (a, b, cin: IN bit; sum, cout: OUT bit);

    END sumador_total;

    2.3.5 Arquitectura

    Esos puertos pueden se de los siguientes tipos:

    IN -7 entrada OUT -7 salida (que no se puede leer desde el propio componente). BUFFER -7 salida (que se puede leer desde dentro) INOUT -7 salida entrada

    Una arquitectura ("architecture") en VHDL es la definicin del funcionamiento de un cir-cuito, de cualquiera de las formas permitidas en VHDL, descritas ya anteriormente.

    Una arquitectura siempre debe asociarse con una entidad, aunque una entidad puede tener varias arquitecturas, es decir, varias formas de realizacin o descripcin. Cuando poste-rionnente se utilice el circuito ser necesario indicar cul es la arquitectura que se utilizar.

    Cada circuito en VHDL debe incluir una declaracin de entidad y al menos una declaracin de arquitectura.

    Un mismo fichero puede contener la declaracin de muchos circuitos, lo que permite dise-ar un sistema digital complejo mediante un solo fichero VHDL, aunque tambin se pueda utilizar un fichero distinto para cada circuito. Esto lo convierte en un lenguaje estructurado, que permite realizar fcilmente la descripcin jerrquica de un sistema digital.

    www.monteroespinosa.com - Clases de EDIG - Tfnos 91 5445377,619142355 T-2.4

  • Aqu se especifica una posible arquitectura correspondiente al circuito sumador total de dos nmeros de 1 bit, cuya entidad se ha definido en el apartado anterior.

    Los tipos de datos son las diferentes represen-taciones de informacin que vamos a manejar con circuitos lgicos.

    Un bit_vector se pue-de entender como un nmero binario de varios bits.

    No se debe confundir el smbolo utilizado para un valor desconocido fuerte ("X") con el smbolo de la indirefen-cia ("-").

    Los tipos de objetos se refieren al tratamiento que va a tener la infor-macin manejada.

    El uso de variables est restringido a las estruc-turas secuenciales (dentro de procesos y subprogramas). Sin embargo, el uso de seales NO est res-tringido.

    La sintaxis para la descripcin de una arquitectura es la siguiente:

    ARCHITECTURE nombre_arquitectura OF nombre entidad IS -- Zona de declaraciones BEGIN -- Descripcin lgica del circuito [cuerpo("body")] END nombre_arquitectura

    Ejemplo:

    ARCH1TECTURE comportamiento S1GNAL auxiliar: bit vector BEG1N

    auxiliar

  • (\

    f~ \. /

    \~

    IMPORTANTE: los espacios caracteres de subrayado u_" no son tenidos en cuenta y slo sirven para au-mentar la legibilidad del nmero.

    La concatenacin con & permite unir varios operandos del mismo tipo

    2.3.6.3 Notacin

    2,8, 10, 16 ............... binario, octal, decimal o hexadecimal, respectivamente.

    La base debe preceder al valor, dispuesto entre caracteres #, para tipos numricos.

    Ejemplo: 2#1100 0010#

    B, X, O ..................... binario, hexadecimal u octal, respectivamente.

    Este smbolo debe preceder al valor de tipos "bit vector" o "bit string literal s" (literales de cadenas de bits). Por defecto, la base es binaria.

    Ejemplo: X"2E"

    2.3.6.4 Operadores

    Operadores Lgicos

    and or

    xor

    xnor

    not nand nor

    sll srl

    funcin Y lgica funcin O lgica funcin O-exclusiva funcin O-exclusiva negada negacin funcin Y lgica negada funcin O lgica negada desplazamiento lgico a izquierda desplazamiento lgico a derecha

    & concatenacin

    Operadores de asignacin . = - asignacin de valores a constan-

    tes y variables. - asignacin de valor inicial a se-ales

    t=d asignacin a seales

    Operadores aritmticos

    +

    *

    / mod

    **

    sla sra

    suma aritmtica - resta ritmtica (dos operandos) - signo negativo (un operando) multiplicacin divisin mdulo (resto de la divisin entera) exponenciacin desplazamiento aritmtico a izda. desplazamiento aritmtico a dcha.

    Operadores de relacin

    ') igual COY>'\. pcu-o.- t~ \Aa.\ o-d /= distinto < menor que > mayor que G menor o igual que >= mayor o igual que

    www.monteroespinosa.com - Clases de EDIG - Tfnos 91 544 53 77 , 619 142 355 T-2.6

  • Vamos a distinguir entre dos tipos de sentencias de descrip-cin: las concurrentes y las secuenciales.

    Las sentencias con-currentes son las que distinguen al VHDL de los lenguajes de pro-gramacin y son las que permiten modelar el comportamiento real de los circuitos.

    MUY IMPORTANTE: los procesos se utilizan para modelar el com-portamiento de cual-quier circuito ante el cambio en seales de entrada, cuando este comportamiento requie-re una reaccin se-cuencial. Esto es, aunque se trata de un bloque que en conjunto funciona de forma combinacional (su relacin con otros procesos no es se-cuencial, e incluso puede ser simultneo con otros), un proceso est compuesto por sentencias secuencia-les, que s dependen del orden de aparicin. Es por esto que los procesos sirven para describir circu itos secuenciales. Cuando necesitemos sentencias secuencia-les, tendrn que ir dentro de un proceso.

    En el ejemplo se espe-cifica un proceso que describe una puerta lgica AND de dos entradas.

    Importante: slo usa-mos uno de los tipos de sentencia WAIT aqu presentadas (por eso comentamos con --o el final de esas senten-cias).

    Aqu se especifica un proceso que describe un biestable de tipo D activado por flancos.

    2.3.6.5 Sentencias concurrentes

    Las sentencias concurrentes son aquellas que se ejecutan de forma simultnea a otras sen-tenciasconcurrentes, independientemente del orden en que estn escritas en el fichero VHDL. Se puede decir que las sentencias concurrentes modelan un comportamiento com-binacional.

    a) Process

    Los procesos siempre se ejecutan una vez durante la inicializacin, pero posteriormente slo se ejecutan cuando se produce un "evento" (cambio) en alguna de las seales indica-das en el proceso.

    Existen dos formas de indicar las seales cuyos eventos producen la activacin de un pro-ceso.

    Mediante una lista de "sensibilidad", que enumera entre parntesis y separados por comas, todas las seales cuyos eventos deben activar el proceso.

    La sintaxis de esta forma es:

    PROCESS (lista de seales) BEGIN

    Sentencias secuenciales; END PROCESS

    Ejemplo: PROCESS (a,b) BEGIN

    Salida

  • Esta sentencia concu-rrente es anloga a la sentencia secuencial condicional case, que explicaremos ms adelante.

    MUY IMPORTANTE: esta sentencia slo se utiliza para describir comportamientos com-binacionales.

    Aqu se especifica el comportamiento de un circuito combinacional cuya salida es una combinacin de 3 bits (resultado) y cuya entrada es un vector de 2 bits (operandos)

    (\ Esta es otra sentencia " ) concurrente anloga a

    - la sentencia secuencial condicional 1f...Then ... Else

    MUY IMPORTANTE: esta sentencia slo se utiliza para describir comportamientos com-binacionales.

    Aqu se especifica el comportamiento del mismo circuito combi-nacional anterior.

    Las sentencias se-. cuenciales se compor-(-- ') tan como las de cual-~ quier lenguaje de pro-

    gramacin.

    Esta sentencia secuen-cial es anloga a la sentencia concurrente when ... else

    MUY IMPORTANTE: esta sentencia slo se utiliza para describir comportamientos se-cuenciales.

    b) With ... select

    Se utiliza nonnalmente para las expresiones en las que intervienen varias seales. Se deben cubrir todos los posibles valores de la expresin, de fonna excluyente. .

    1I).SO'\o ~lGlV'o. e.V\ ~U."",OVl ~~ ~C)(" '"e LLV\.U La sintaxis es la siguiente: Q..\C.prQ;;,.~n ~ \ _ \

    .$'10

  • Aqu se especifica el comportamiento de un contador ascendente con carga en paralelo y seal de puesta en estado inicial.

    Esta sentencia secuen-cial es anloga a la sentencia concurrente with ... select

    MUY IMPORTANTE: esta sentencia slo se utiliza para describir comportamientos se-cuenciales.

    El smbolo 1 representa la funcin "o bien".

    Desde aqu comenza-mos las sentencias de bucle.

    Aqu se especifica un bucle que calcula el bit de paridad par de una combinacin x(i) de 16 bits.

    Ejemplo: IF RESET = '1' THEN

    Ctr a. \ .

    ~~ ~(" mu.c\,o '/Mas ~ ~\. s\m\)\e. O-..'St.cy'lo-c.~n ..

    Permite repetir la ejecucin de las sentencias incluidas en el bucle mientras el ndice del bucle se encuentre en el rango predefinido.

    La sintaxis es la siguiente:

    FOR i IN rango_ndice LOOP Sentencias secuenciales;

    END LOOP;

    Ejemplo: Bit_paridad_par

  • .. \

    o

    C)

    Aqu se especifica un bucle que multiplica dos nmeros "p" y "q" mediante el mtodo de Isumas sucesivas.

    d) While

    Pennite repetir la ejecucin de las sentencias incluidas en el bucle mientras se cumpla la condicin defmida .

    La sintaxis es la siguiente:

    WHILE expresion LOOP Sentencias secuenciales;

    END LOOP;

    Ejemplo: 1:: ")\G\~(\ \o )e producto

  • 2.3.7.1 Decodificador 3 a 8 74xx138

    1 AO YO 15 2 A1 Y1 14 3 A2 Y2 13

    Y3 12. E1 Y4 11

    Y5 ;0 Y6 9 Y7 7

    MNA370

    lHPUTS Ot1TPUTS t, Et q Por, A, Ao y. Y, y~ Vi! y. Y, 'i't Y1 H X X X )( X H H H H H H H H X H X X X X H H H H H H H ti X X L X X Jo; H H H H H H H ti L L H L L l. i.. H H ti: H H H H L L ti H L l. H L H ti ti H H H L L. ti L H l. H H l ti ti H ti H L L ti H H L H Ji H L ti H H H L L H L L H H Ji H H L H H ti L L H ti L H H H H H H L H ti L L H l H H H H H ti H H l H L L Ji ti H H H H H H ti H ti L

    library IEEE; use IEEE.std-'ogic_1164.all;

    entity V74x138 is port (G1, G2A_L, G2B_L: in STD_LOGIC; -- enable inputs

    A: in STD_LOGIC_VECTOR (2 downto O); -- select inputs Y_L: out STD_LOGIC_VECTOR (O to 7)); -- decoded outputs

    end V74x138;

    architecture V74x138_a of V74x138 is signal Y_LJ STD_LOGIC_VECTOR (O to 7);

    begin ~QCO).:l~~C~Or. '"?:.a.Sl cpV\

    ~~os.. a.c\\VdS. a.. ",,\te.\. ~Q..'p / Col' Q.~\fdcsa..S be.. eVta..\o\e ': ~~ . se. a...

  • ./-----, ! '

    Iibrary IEEE; use IEEE.stdJogic_1164.all;

    entity mux4in8b is port (

    S: in STD_LOGIC_VEeTOR (1 downto O); -- Select inputs, 0-3 ==> A-D A, B, e, D: in STD_LOGle_VEeTOR (1 to 8); -- Data bus input Y: out STD_LOGIC_VEeTOR (1 to 8) -- Data bus output

    ); end mux4in8b;

    architecture mux4in8b of mux4in8b is begin B~I ~ . 'Y

    with S select Y 'U') when others; -- this creates an 8-bit vector of 'U'

    enamux4in8b; l. \ k .. \ . "-~ t!.-i/\ ~o c..a...:;o ~net'\'tos ~\.GO.. o- no'lrt i-(Gt\i~a.c,

    2.3.7.3 Multiplexor especializado 4 entradas de 3 bits

    Iibrary IEEE; use IEEE.stdJogic_1164.all;

    entity mux4in3b is port ( S: in STD_LOGle_VEeTOR (2 downto O); -- Select inputs , 0-7 ==> ABAeADAB A, B, e, D: in STD_LOGle_VEeTOR (1 to 18); -- Data bus inputs Y: out STD_LOGle_VEeTOR (1 to 18) -- Data bus output

    ); end mux4in3b;

    architecture mux4in3p of mux4in3b is begin process(S, A, B, e, D) \farible i' II\ITEGERr

    begin case S is

    when "000" I "010" I "100" I "110" => Y Y Y Y Y 'U'); -- 18-bit vector of 'U' end case;

    end process; end mux4in3p;

    2.3.7.4 Comparador de 8 bits

    www.monteroespinosa.com - Clases de EDIG - Tfnos 91 5445377 I 619 142355

    '50 Y G A.. \ Js

    o A \ e o A l ~ 'O A I ..!S

    T-2.12

  • Iibrary IEEE; use IEEE.stdJogic_1164.all;

    entity vcompare is port ( A, B: in STD_LOGIC_VECTOR (7 downto D); EQ, NE, GT, GE, LT, LE: out STD_LOGIC

    ); end vcompare;

    architecture vcompare_arch of vcompare is begin process (A, B) begin

    EQ

  • library IEEE; use IEEE.std-'ogic_1164.all;

    entitY rol16 is port (

    );

    DIN: in STD_LOGIC_VECTOR(15 downto O); -- Data inputs S: in STD_LOGIC_VECTOR (3 downto O); -- Shift amount, 0-15 DOUT: out STD_LOGIC_VECTOR(15 downto O) -- Data bus output

    end ro116;

    architecture rol16_arch of rol16 is begin process(DIN, S) variable X, Y, Z: STD_LOGIC_VECTOR(15 downto O); begin

    if S(0)='1' then X:= DIN(14 downto O) & DIN(15); else X:= DIN; end if; if S(1)='1' then Y:= X(13 downto O) & X(15 downto 14); else Y:= X; end if; if S(2)='1' then Z:= Y(11 downto O) & Y(15 downto 12); else Z:= Y; end if; if S(3)='1' then DOUT

  • 2.3.8.1 Bscula R-S

    library IEEE; use I EEE.stdJogic_1164.all;

    entity Vsrlatch is port (S, R: in STD_LOGIC;

    Q, QN: buffer STD_LOGIC ); end Vsrlatch;

    architecture Vsrlatch_arch of Vsrlatch is begin QN t:x. c\p.ndo oo.rn b'l O- Lo.. l:>ero1

  • n

    '~

    9 PE

    10 CET

    7 CE?

    2 CP MR

    CiPERATING mOE Jm re.et (deat} { parame.!tlad n

    b eoxmt n ilcId lo {do nolhirt;} b

    library IEEE; use IEEE.stdJogic_1164.all; use IEEE.stdJogic_arith.all;

    entity V74x163 is

    3 4 5 6

    BINARY COUNTER

    14 13 12 11

    INf'UTS CP' CE? CET

    t X x t x X t x X t ti h X f X X X

    MNA901

    'PE D; x X l' 1 I h ti X h X h X

    port (CLK, CLR_L, LD_L, ENP, ENT: in STD_LOGIC; D: in UNSIGNED (3 downto O); Q: out UNSIGNED (3 downto O); RCO: out STD_LOGIC );

    end V74x163;

    architecture V74x163_arch ofV74x163 is signal IQ: UNSIGNED (3 downto O); begin process (CLK, ENT,IQ)

    begn if (CLK'event and CLK='1') then

    f CLR_L='O' then IQ 'O'); elsif LD_L='O' then IQ

  • library IEEE; use IEEE.std_logic_1164.all;

    entity smexamp is port ( CLOCK, A, B: in STD_LOGIC;

    Z: out STD_LOGIC ); end;

    architecture smexamp_arch of smexamp is type Sreg_type is (INIT, AO, A1, OKO, OK1); signal Sreg: Sreg_type; begin

    -

    process (CLOCK) -- state-machine states and transitions begin

    if CLOCK'event and CLOCK = '1' then case Sreg is

    when INIT => if A='O' then Sreg

  • /~ r '

    ()

    entity Vtbird is port ( CLOCK, RESET, LEFT, RIGHT, HAZ: in STD_LOGIC;

    L1GHTS: buffer STD_LOGIC_ VECTOR (1 to 6) ); end;

    architecture Vtbird_arch of Vtbird is constant IDLE: STD_LOGIC_ VECTOR (1 to 6) := "000000"; constant L3 : STD _LOGIC _VECTOR (1 to 6) := "111000"; constant L2 : STD_LOGIC_VECTOR (1 to 6):= "110000"; constant L 1 : STD_LOGIC_VECTOR (1 to 6):= "100000"; constant R1 : STD_LOGIC_VECTOR (1 to 6):= "000001"; constant R2 : STD_LOGIC_VECTOR (1 to 6):= "000011"; constant R3 : STD_LOGIC_VECTOR (1 to 6):= "000111"; constant LR3 : STD_LOGIC_ VECTOR (1 to 6) := "111111";

    begin process (CLOCK) begin

    if CLOCK'event and CLOCK = '1' then if RESET = '1' then LlGHTS if HAZ='1' or (LEFT='1' and RIGHT='1') then LlGHTS

  • Un ciclo de retroalimentacin es la trayectoria de una seal en un circuito que permite que la salida de una puerta se propague de regreso hacia la entrada de esa misma puerta. Un ciclo de esta naturaleza generalmente genera un comportamiento secuencial en un circuito.

    TEMA 3: CIRCUITOS COMBINACIONALES

    3.1 Definiciones bsicas

    3.1.1 Circuitos combinacionales y circuitos secuenciales

    Los circuitos lgicos se clasifican en dos tipos, "combinacional" y "secuencial". Un circuito lgico combinacional es aquel cuyas salidas dependen solamente de sus entradas de corriente. Por el contrario, las salidas de un circuito lgico secuencial dependen no slo de las entradas de corriente sino tambin de la secuencia anterior de las entradas, posiblemente arbitrarias, que sucedieron en el pasado.

    Un circuito combinacional puede contener una cantidad arbitraria de puertas lgicas e inversores, pero NO ciclos de retroalimentacin.

    3.1.2 Anlisis VS Sntesis

    En el anlisis de un circuito combinacional comenzamos con un diagrama lgico y procedemos hasta una descripcin formal de la funcin que realiza el circuito, tal como una tabla de verdad o una expresin lgica.

    En la sntesis hacemos lo contrario, comenzamos con una descripcin formal y procedemos hasta un diagrama lgico.

    3.2 Multiplexores

    Son circuitos combinacionales que poseen las siguientes entradas y salidas: N entradas de informacin o canales de datos. n entradas de seleccin o control. Una salida de informacin Una entrada de autorizacin.

    Los canales de entrada estn relacionados con las entradas de seleccin por la siguiente ecuacin:

    nmero de canales = 2nmero de entradas de seleccin ~ N = 2n

    211 entradas dedato$

    Multiplexor

    ,

    1 I I I

    r-A--. 1111 ~

    n bits de seleccin

    salida

    www.monteroespinosa.com - Clases de EDIG - Tfnos 91 5445377,619 142355 T-3.1

    /)

  • o

    C)

    lo 11 12

    El componente aqu descrito es el 74AC157, multiplexor de dos entradas de datos (de 4 bits cada una).

    lo

    11

    00 01 10

    MUX

    Co

    MUX

    z

    z h II

    Cl Co

    En los esquema representativos de estos circuitos se suele denominar a dichas entradas y salidas con los smbolos que se exponen a continuacin:

    Do o lo a DN o IN a las entradas de informacin. So a Sn a las entradas de direccionamiento. E a la entrada de autorizacin o enable. Wo Z a la salida del circuito.

    Ejemplo de esquema de un multiplexor:

    S !{la Pin Names Descnption

    Ifa 'o~ lOa-1M Source o Data nputs Za Ite Ita-1td Source 1 Data. tnputs

    10b 12 Ze E Enable Input Ilb 11 'oc! S Sefect Input 2b 10 lld Za...za Outputs

    9 ZIt

    3.2.1 Funcionamiento de un multiplexor

    El principio de funcionamiento del multiplexor es el siguiente: cuando una combinacin binaria aparece en las entradas de seleccin, la informacin de entrada presente en el canal por ella defmido aparece en la salida.

    Por tanto, se puede considerar a un multiplexor como un conmutador de mltiples entradas cuya nica salida se controla electrnicamente mediante las entradas de seleccin. La estructura interna de estos circuitos puede llegar a ser relativamente compleja, y como, por otra parte, nosotros los vamos a encontrar en el mercado bajo la forma de chips integrados, no realizaremos su estudio interno.

    3.2.2 Multiplexor 2 x 1

    Esta es la tabla de verdad de un multiplexor de 2 canales de entrada (lo e 11) con 1 entrada de control ( Ca)

    y esta es la funcin que implementa:

    Z Co lo + Ca 11 (la forma cannica) Z = (Ca + lo) (Ca + 11) (2a forma cannica)

    3.2.3 Multiplexor 4 x 2

    Ca Z O lo 1 11

    La tabla de verdad de un multiplexor de 4 canales de entrada (10 ,11 ,12 e 13 ) con 2 entradas de control (Ca Y CI ) es la siguiente:

    CI Ca Z O O lo O 1 11 1 O 1? 1 1 13

    www.monteroespinosa.com - Clases de EDIG - Tfnos 91 544 53 77 , 619 142 355 T-3.2

  • 10- 000 MUX !l- 001 ll- 010 -h- Oll 1,- lOO Is- 101 16- 110 17- 111

    I I I C, Cl Co

    Veremos este mtodo en la prctica en el ejercicio 1 de clase, de este tema, apartado a,

    Recuerda que un multiplexor 4x2 tiene 4 canales de entrada

    (lo ,JI,J2 e 13 ) con 2 entradas de control (eo y CI )

    y esta es la funcin que implementa:

    Z = CI Co lo + CI CO 11 + CI CO 12 + el Co 13 (la forma cannica) Z = (el +Co +lo)(CI +Co +11)(CI +Co +12)(CI +Co +13) (2a forma'cannica)

    3.2.4 Multiplexor 8 x 3

    La tabla de verdad de un multiplexor de 8 canales de entrada (10 ,11 ,12 ,13 , 14 ,15 ,16 e 17 ) con 3 entradas de control ( Co, CI y C2 ) es la siguiente:

    C2 CI eo Z O O O lo O O 1 11 O 1 O 17 O 1 1 13 1 O O 14 1 O 1 l'i 1 1 O lF, 1 1 1 17

    y esta es la funcin que implementa:

    Z=~G~~+~G~I+~G~~+~G~~+~G~~+~G~~+ +~GCoI6 +~GCoI7

    Anlogamente se pueden deducir las tablas de verdad y la forma cannica de multiplexores de mayor nmero de canales y entradas de control.

    3.2.5 Realizacin de funciones lgicas con multiplexores

    La circuitera interna que posee un multiplexor permite la implementacin de funciones lgicas mediante su adecuado conexionado externo. Existen dos mtodos de emplear multiplexores cuando se trata de implementar funciones lgicas:

    rj '--- ~

    a) Implementacin de funciones booleanas de n variables con un multiplexor de n '\,j entradas de control

    En este caso basta con escribir la tabla de verdad de la funcin booleana y asignar cada una de las lneas de esa tabla a uno de los canales de datos. Las n entradas de control se reservan para las n variables de la funcin.

    Una opcin ms mecnica es escribir la 1 ~ forma cannica estandar de una funcin a la salida de un multiplexor, e identificar cada trmino (teniendo en cuenta que las entradas de control las identificamos directamente con las variables de la funcin. Por lo tanto, slo nos queda saber qu valores, '1' 'O', ponemos en las entradas de datos). Vamos a detallar la explicacin para la realizacin de una funcin F de dos variables (X e Y) con un multiplexor 4x2:

    Para este multiplexor, la forma desarrollada de su funcin de salida es:

    www.monteroespinosa.com - Clases de EDIG - Tfnos 91 5445377 J 619 142355 T-3.3

  • En este momento empezamos ya a completar el dibujo de nuestro circuito con el /~ multiplexor.

    As, por ejemplo, si en la funcin del enunciado no aparece

    el trmino XY , entonces ID tiene que valer 'O'.

    Veremos este mtodo en la prctica en el ejercicio 1 de clase, de este tema, apartado b.

    Nuevamente vamos a seguir'la explicacin a partir de un multiplexor 4x2, slo que ahora la funcinF que O queremos implementar

    - es de tres variables, X, Yy W.

    Recuerda dos propiedades importantes:

    la+a=ll la.l =al

    Veremos un ejemplo de este tipo en el ejercicio 1 de clase, de este tema, apartado c.

    Sobre esta funcin de salida, identificamos ya las entradas de control con las variables, y Z con F, la funcin que queremos implementar:

    F=XY~+XY~+XY~+XY~

    Donde slo queda ya sustituir cada entrada de datos 10 ,11 ,12 e 13 por' 1 ' 'O' segn aparezca o no el trmino en cuestin en la funcin del enunciado.

    b) Implementacin de funciones booleanas de n + 1 variables con un multiplexor de n entradas de control y un negador En este caso una de las variables de la funcin booleana ser enchufada al multiplexor por las entradas de datos mientras que las otras n - 1 variables se siguen enchufando en las entradas de control.

    Nota:

    Para poder implementar la funcin vamos a seguir el segundo de los mtodos del apartado a), pero realizando unos pasos previos. Lo primero que debemos hacer es elegir qu dos variables van a estar conectadas a las entradas de control. Vamos a suponer que en nuestro caso van a ser X e Y.

    Acto seguido tenemos que transformar la expresin que nos den de la funcin, para que en cada trmino de la misma aparezcan SIEMPRE estas dos variables elegidas. Para ello, cuando en algn trmino falte alguna, multiplicaremos dicho trmino por (X + X) (y + y) , segn cul sea la variable que falta. Una vez expresadas estas multiplicaciones, deshacemos los parntesis aplicando la propiedad distributiva, simplificamos cuando se pueda, y reordenamos la expresin.

    De esta forma, podremos ya escribir nuestra salida estandar (en la 1 a forma cannica) de un multiplexor de estas caractersticas:

    Para despus identificar:

    F=XY~+XY~+XY~+XY~

    Donde la nica diferencia ser que las entradas 10 ,11 ,12 e 13 no quedarn slo identificadas con' l' 'O', sino tambin por W W, la tercera de las variables de la funcin.

    Tambin es posible, en algunas ocasiones, implementar funciones con n + 2 variables o ms mediante un mltiplexor de n entradas de control pero para ello el problema debe estar preparado.

    www.monteroespinosa.com - Clases de EDIG - Tfnos 91 5445377 , 619142355 T-3.4

  • 3.3 Decodificadores

    Genricamente, un decodificador es un circuito lgico con varias entradas y salidas que convierte las entradas codificadas en salidas codificadas, donde los cdigos de entrada y de salida son diferentes. n

    En ocasiones un cdigo binario de n bits es truncado para

    El cdigo de entrada que se utiliza con mayor frecuencia es un cdigo binario de n bits, donde una palabra de n bits representa uno de 2n diferentes valores codificados, normalmente los enteros de O hasta 2n - l. representar menos de

    2n valores. Es el caso El cdigo de salida que se utiliza con mayor frecuencia es un cdigo 1 fuera de m, que contiene m bits, donde un solo bit se activa en un determinado momento. del cdigo BCD, en el que las combinaciones

    0000 hasta 1001 representan los dgitos decimales O a 9, pero las combinaciones 1010 hasta 1111no se usan.

    Efectivamente, son decodificadores provistos de n entradas y un nmero de salidas menor o igual 2'.

    No todos los decodificadores poseen la misma asignacin de estados lgicos.; de hecho, hay muchos que trabajan tomando un nivel alto (1) como nivel activo.

    Un ejemplo real de decodificador (un integrado con esta funcionalidad) es el 74AC179, solo que tanto sus salidas como su entrada enable son activas a nivel bajo.

    a tabla de verdad del decodificador binario introduce una notacin "sin importancia" para combinaciones de entrada. Si uno o ms valores de entrada no afectan a los valores de salida para alguna combinacin de las entradas restantes, se marcan con una X para esa combinacin de entrada.

    Son circuitos combinacionales provistos de n entradas y un nmero de salidas menor o igual 2n

    3.3.1 Decodificaror binario: funcionamiento

    El circuito decodificador ms comn es un decodificador de n a 2n decodificador binario. Un decodificador de esta clase tiene un cdigo de entrada binario de n bits y un cdigo de salida 1 fuera de 2n.

    Se utiliza un decodificador binario cuando se necesita activar exactamente una de las 2n salidas basado en un valor de entrada de n bits. Dicho de otra forma, funcionan de manera que, al aparecer una combinacin binaria en sus entradas, se activa una sola de sus salidas.

    Normalmente, la salida activada presenta un 0, mientras que las dems permanecen a 1. Los decodificadores se emplean en los sistemas digitales para convertir las informaciones binarias, con las cuales trabajan, otros tipos de informaciones digitalizadas, pero no binarias, empleadas por otros dispositivos, por ejemplo, los visualizadores alfanumricos.

    A continuacin presentamos algunos ejemplos de circuitos de estas caractersticas.

    3.3.2 Decodificador binario 2 a 4

    Describimos aqu un decodificador de 2 a 4 lneas con entrada de inhibicin que activa la salida en nivel bajo.

    La descripcin completa de sus entradas y salidas es:

    10 e 11 son las dos entradas. Yo a 1; son las cuatro salidas. Una de ellas se activar en funcin del nmero

    binario representado a la entrada. EN es la entrada de autorizacin o enable. Observa que se activa a nivel alto, esto

    es, el decodificador funcionar cuando esta entrada est a 1.

    Su tabla de verdad es la siguiente:

    Inputs Outputs

    EN 11 lo Y3 Y2 YI Yo O x x O O O O 1

    O O O O 1

    1 O 1 O O 1 O 1 1 O O 1 O O 1 1 1 1 O O O

    www.monteroespinosa.com - Clases de EDIG - Tfnos 91 5445377 , 619 142355 T-3.5

  • Es importante entender que en el nmero binario que pongamos !~ en l/o, 11 es el bit

    ms significativo. Aun as, mira SIEMPRE la tabla de verdad de cada circuito integrado, para conocer con certeza estas cuestiones.

    o

    1 ) \~

    En el circuito equivalente, observa que cada salida consiste en un minterrn de las variables de entrada

    En este caso, E2 es el bit ms significativo de la entrada

    Su esquema y su circuito equivalente (implementado con puertas) son:

    2-to-4 decoder

    10 YO 11 Y1

    Y2 EN Y3

    3.3.3 Decodificador 3 a 8

    Otro ejemplo de decodificador es el de 3 a 8 lneas.

    El que presentamos tiene las siguientes entradas y salidas:

    Eo a E2 son las tres entradas. So a S7 son las ocho salidas. Una de ellas se activar en funcin del nmero

    binario representado a la entrada. EN es la entrada de autorizacin o enable.

    Su tabla de verdad es la siguiente:

    EN E2 El Eo O X X X 1 O O O 1 O O 1 1 O 1 O 1 O 1 1 1 1 O O 1 1 O 1 1 1 1 O 1 1 1 1

    y su esquema:

    So SI S2 S3 O O O O 1 O O O O 1 O O O O 1 O O O O 1 O O O O O O O O O O O O O O O O

    decodificador 3 a 8 So

    EN

    SI S2 S3 S4 Ss S6 S7

    S4 S5 S6 S7 O O O O O O O O O O O O O O O O O O O O 1 O O O O 1 O O O O 1 O O O O 1

    www.monteroespinosa.com - Clases de EDIG - Tfnos 91 5445377 , 619 142355 T-3.6

  • Observa que as es como formamos los minterms a la salida.

    Un decodificador es lo mismo que un demultiplexor si cumple que:

    - Tiene 2" salidas. - Tiene entrada de

    validacin.

    El comparador ms sencillo que podemos encontrar es el de igualdad entre dos bits, que es implementado simplemente por una puerta XOR.

    3.3.4 Funciones de un decodificador

    La funcin que ms nos interesa de un decodificador es la de implementar funciones lgicas. La forma de hacerlo es muy sencilla: n

    Necesitamos la tabla de verdad de la funcin.

    Basta con unir en una puerta OR aquellas salidas del decodificador donde la funcin valga uno.

    Otra posibilidad es unir justo las contrarias (donde la funcin vale O) con una puerta NOR.

    Otras funciones importantes de un decodificador son la de hacer de decodificador estricto (que, en principio, es para lo que se inventaron) y la de hacer de demultiplexor (si se cumplen las caractersticas antes enunciadas en el margen).

    3.4 Comparadores binarios

    Los circuitos comparadores son circuitos combinacionales que indican la relacin de igualdad o desigualdad existente entre dos nmeros binarios A y B de n bits cada uno. Adems suelen disponer de una serie de entradas de acoplamiento en cascada para poder comparar con mayor nmero de bits que los permitidos por el comparador que usamos.

    Ejemplo: En la figura se muestra el diagrama esquemtico de un comparador del tipo 74x85:

    Entradas de cascada

    Su tabla de funcionamiento la siguiente.

    A3> 83 X X X X X X 1 O O A3 82 X X X X X 1 O O A3 = 83 A2< 82 X X X X X O 1 O A3 = 83 A2= 82 A1 > 81 X X X X 1 O O A3 = 83 A2 = 82 A1 < 81 X X X X O 1 O A3 = 83 A2 = 82 A1 = 81 AO> 80 X X X 1 O O A3= 83 A2 = 82 A1 = 81 AO< 80 X X X O 1 O A3= 83 A2 = 82 A1 = 81 AO= 80 1 O O 1 O O A3= 83 A2 = 82 A1 = 81 AO=80 O 1 O O 1 O A3 = 83 A2 = 82 A1 = 81 AO= 80 O O -_~l O O '1 A3 = 83 A2= 82 A1 = 81 AO= 80 X X O O 1 A3 = 83 A2= 82 A1 = 81 AO = 80 1 1 O O O O A3 = 83 A2 = 82 A1 = 81 AO = 80 .o O O 1 1 O

    www.monteroespinosa.com - Clases de EDIG - Tfnos 91 5445377 , 619142355 T-3.7

    NacheteLnea

    NacheteLnea

    NacheteLnea

    NacheteLnea

  • o

    I \~

    Al full adder lo abreviaremos FA

    El FA slo suma dos bits ms el acarreo de entrada

    Para ms detalles ver el ejercicio 1 de clase de este tema

    Estos sumadores de dos palabras de n bits, formados por full-adders, se suelen denominar sumadores de rizo.

    Ver febrero 2000- ej2

    En este tipo de sumadores la velocidad de clculo est limitada por el camino del acarreo. Si este se propaga en toda la cuenta, ralentiza la operacin

    3.5 Sumadores - Full Adder

    El bloque elemental de los sumadores es el sumador completo o "full adder", con tratamiento de acarreos de entrada (CIN) y salida (COUT). A continuacin se muestra su esquema y su tabla de verdad.

    x y Cin O O O

    x y O O 1 O 1 O

    COUT GIN O 1 1

    s 1 O O 1 O 1 1 1 O 1 1 1

    El circuito internp del sumador completo se muestra a continuacin: \ '.~

    \c-' ,AO' Ql' . ~.

    y --+-lJ---l'-l CIN --I--I--+-----....J.

    S Cout O O 1 O 1 O O 1 1 O O 1 O 1 1 1

    s

    COUT

    A partir del bloque elemental se pueden construir sumadores de ms bits (n bits),

    Solo necesitamos una cascada de n etapas de sumadores completos, si cada una de las cuales maneja un bit.

    Por ejemplo, aqu mostramos un sumador de cuatro bits construido a partir de cuatro sumadores de un bit:

    ~ Y3 ~ Y2 Xl Y1 Yo

    y .. :r--

    t col. CIN COUT CIN COUT COUT ClN ( Camino s s s S I crtico ~ t , S3 S2 s, So

    www.monteroespinosa.com - Clases de EDIG - Tfnos 91 5445377 , 619 142355 T-3.8

  • matriz = memoria

    fila = palabra

    Nota: La longitud b de la palabra puede ser cualquiera, inde-pendientemente del nmero de filas

    3.6 Memorias ROM

    Podemos entender una memoria ROM (Read Only Memory) como una matriz de dimensin 2n x b, es decir una matriz de 2n filas y b columnas. A las filas de esta 'matriz las vamos a llamar palabras y diremos que cada palabra est compuesta de b bits. Por tanto tenemos que mirar siempre esta matriz por filas (nunca por columnas).

    Para acceder a cada fila de la matriz tenemos una direccin que no es ms que un nmero binario que identifica cada fila. Por tanto si nuestra matriz tiene 2n filas necesitaremos un direccin de n bits. A su vez cada fila alberga una informacin de b bits (que son las columnas que tiene la matriz).

    El esquema genrico de. una memoria ROM de 2n x b es el siguiente:

    2n xbROM AO Al DO A2 D1

    address data , inputs

    outputs

    An-2 Db-1 An-1

    Resumen

    En la memoria caben 2n palabras de b bits, o sea, en total 2n x b bits. Consta de n entradas (llamadas Bus de direcciones) y b salidas (llamadas Bus de datos) Por cada combinacin binaria de las entradas (2n) existe un dato de longitud b bits

    t'\ i,.yM.p('c:> ~< pa\.a..brO-~ . ti' (\ll~S ~ ~\a.loo. :: ...\-a-"Vla.vt~ ~

    3.6.1 Memoria ROM de 4 x 5 bl-tS ~e :1~. 'i ')(> Recuerda que b es 2

    "G totalmente indepen- En este caso nuestra memoria tiene 2 = 4 palabras (es decir, una matriz con 4 filas), las ~.e. diente de n , direcciones para referirnos a cada palabra tendrn 2 bits. En concreto las direcciones de las \{ecc't;V\ .... "'==---:--::-~r--_~.-

    cuatro palabras de la memoria sern 00, 01, 10, 11. Cada una de estas palabras tendr una informacin de 5 bits.

    3.6.2 Memoria ROM de 'x 2

    En este caso nuestra memoria tiene 23 = 8 palabras (es decir, una matriz con 8 filas) las direcciones para referirnos a cada palabra tendrn 3 bits. En concreto las direcciones de las ocho palabras de la memoria sern 000, 001, 010, 011, 100, 101, 110, 111. Cada una de estas palabras tendr una informacin de 2 bits.

    3.6.3 Funcionamiento de las memorias.

    El mtodo de funcionamiento de una memoria es la siguiente: para elegir una fila de la memoria debo introducir por las entradas (bus de direcciones o address inputs) el cdigo de esa fila. La memoria "va" a esa fila, extrae la informacin que hay en ella y la "saca" por las salidas (bus de datos o data outputs).

    www.m.tnteroespinosa.com - Clases de EDIG - Tfnos 91 5445377 J 619 142355 T-3.9

    (-) \ -

  • ~1-1 DA A.3 ,

    iz --~~ b.., .-1\0 ~ D

    t 1l8 ' ~ kl es. -- ~~ Aa

  • /\

    C:

    3.6.4 Uso de las memorias ROM

    Una Memoria ROM puede implementar cualquier funcin lgica combinacional.

    Para ello basta con hacer los siguiente:

    Las entradas de la funcin se conectan al bus de direcciones Las salidas de la funcin se conectan al bus de datos

    Ejemplo de implementacin de una funcin lgica en una ROM: Sea el circuito combinacional siguiente, .

    lo (Aa)

    11 {Ai}

    POL (A2)

    Podemos implementarlo mediante una memoria ROM de 8 x 4 :

    Yo (Do)

    Y1 (Dl }

    Y2 CDZ}

    Y3 (D3}

    Inputs Outputs

    8x4ROM A2 Ar AO D3 D2 0'1 Do O O O 1 1 1 (}

    00 YO O O 1 1 1 O 1 !O Aa o 1 o 1 o 1 11 A1

    01 Y1 ti 1 o 1 1 POL A2 02 Y2 1 (} o o () O 1 D3 Y3 1 o o o 1 o

    1 1 o o 1 o o i 1 1 o o o

    1. J1'l ~ ~eVl~O--c \c(11 ~ e.. ~ li.vz. c.. ~ov'les 01~d 'la v1 -k ~)..{: Vi

  • Recuerda lo explicado en el tema 3 sobre la diferencia entre circuitos combinacionales y secuenciales:

    - Un circuito lgico combinacional es aquel cuyas salidas dependen solamente de sus entradas.

    - Un circuito lgico secuencial es aquel cuyas salidas dependen no slo de sus entradas actuales, sino tambin de la secuencia pasada de entradas, posiblemente retrasada en el tiempo de manera arbitraria.

    Tan grande como parezca, 2n siempre ser finito, nunca infinito, de modo que los circuitos secuenciales en ocasiones se conocen como mquinas de estado finito.

    Los sistemas digitales tpicos, desde relojes digitales hasta supercomputadoras, utilizan un oscilador de cristal de cuarzo para generar una seal de reloj de funcionamiento libre.

    TEMA 4: CIRCUITOS SECUENCIALES

    4.1 Introduccin

    Los circuitos secuenciales se caracterizan por su capacidad para memorizar informacin; en consecuencia, los valores de las salidas, en un determinado momento, no dependen exclusi-vamente de los valores de las entradas en ese instante, sino que dependen tambin de los que tuvieran presentes con anterioridad.

    Definiremos el estado actual de un circuito secuencial como una coleccin de "variables de estado" cuyos valores en cualquier tiempo contienen toda la informacin acerca del pasado necesario para explicar el comportamiento futuro del circuito.

    Dicho de otra forma, vamos a llamar "variables de estado" a las variables que guardan toda la informacin sobre la historia del circuito y permiten predecir la salida actual en base a su contenido y al de las seales de entrada actuales.

    Las variables de estado se guardan en uno o ms bits de informacin.

    Considerando como entradas las entradas del circuito y las variables de estado, el diseo de un circuito secuencial es igual al de uno combinacional.

    En un circuito de lgica digital, las variables de estado son valores binarios, correspondientes a ciertas seales lgicas en el circuito, como veremos en secciones posteriores. Un circuito con n variables de estado binarias tiene 2n estados posibles.

    4.1.1 Seales de reloj Los cambios de estado en la mayora de los circuitos secuenciales se presentan en tiempos especificados por una seal de reloj de funcionamiento libre. En la siguiente figura presentamos los diagramas de temporizacin y nomenclatura para seales de reloj tpicas.

    . los cambios de estado r ocurren aqu "

    ~LK -.-111

    ____ 'H"~.,\.---... t.L ...... , , .. ;' .. ~.l ..... :'r--.,. -----,\~. ___ _ .... 1: ~r '

  • o

    ()

    Como puedes ver, no tiene entradas y tiene dos salidas, Q y Q_L

    Un biestable tiene mucho ms que mostrar si consideramos su funcionamiento desde el punto de vista analgico, estudiando conceptos de meta estabilidad, que se escapan del temario de EDIG.

    Se dice que los flip-flops son dispositivos sncronos.

    Se dice que los cerrojos son dispositivos asncronos.

    Es importante saber que algunos textos y diseadores digitales pueden emplear (incorrectamente) el nombre "flip-flop" para un dispositivo que en '~ realidad es un cerrojo.

    4.2 Biestables

    El circuito secuencial ms sencillo consiste en un par de inversores que forman un ciclo de retroalimentacin, como se muestra en la siguiente figura:

    >Cf-----1''--- Q

    Este circuito se denomina con frecuencia biestable, puesto que en un anlisis estrictamente digital tiene dos estados estables:

    Si Q es ALTO, entonces el inversor inferior tiene una entrada en ALTO y una salida en BAJO, lo que fuerza un nivel ALTO a la salida del inversor superior, como supusimos en primer lugar. Pero si Q est en BAJO, entonces el inversor inferior tiene una entrada en BAJO y una salida en ALTO, lo que fuerza Q a BAJO, otra situacin estable.

    Podramos por tanto utilizar una variable de estado simple, el estado de la seal Q, para describir el estado del circuito. As, existen dos estados posibles: Q = O Y Q = l.

    Este elemento es tan simple que no tiene entradas y as no hay manera de controlar o modificar su estado. Cuando se aplica primero la energa al circuito, llega aleatoriamente a un estado o al otro y se mantiene ah permanentemente.

    Por supuesto, este elemento biestable que presentamos en un comienzo, evoluciona a otras formas, controlables mediante entradas, que exponemos a continuacin.

    4.2.1 Cerrojos y flip-flops: generalidades Los cerrojos y flip-flops son circuitos secuenciales constituidos por puertas lgicas, capaces de almacenar un bit, la informacin binaria ms elemental. Son los bloques de construccin bsicos de la mayora de los dems circuitos secuenciales.

    Estos circuitos pueden ser sncronos o asncronos:

    Todos los diseadores digiales utilizan el nombre de flip-flop para un dispositivo secuencial que necesita una seal de reloj (CLK) para ser activado. Esto significa que, aun-que cambie el valor de alguna de las entradas, la salida no cambia hasta un determinado momento marcado por el reloj. Normalmente esta activacin sevproduce en el flanco de subida o bajada de la seal de reloj.

    Por otra parte, la mayora de los diseadores digitales utilizan el nombre de cerrojo (latch) para un dispositivo secuencial que no necesitan una seal de reloj. Esto es, la salida cambia cada vez que cambia una de las entradas.

    La clasificacin de los biestables, desde el punto de vista de su constitucin y del nmero de entradas puede resumirse en: biestable R-S, biestable J-K, biestable T y biestable D.

    www.monteroespinosa.com - Clases de EDIG - Tfnos 91 544 53 77 , 619 142 355 T-4.2

  • En EDIG a los cerrojos les llamamos bsculas.

    Encontrars tambin estas bsculas con el nombre de "Bscula S-E" (set- reset, de establecimiento -restablecimiento)

    Un poco ms adelante comprobaremos que esta definicin de QN no es completamente exacta.

    Ot representa la salida O en un detenminado instante t.

    Q, representa la salida Q en undetenminado instante t.

    Ot+1 representa la salida O en el siguiente instante, t+1.

    Recuerda que cuando decimos "elemento biestable" nos referimos al biestable bsico, sin entradas, presentado en el comienzo de este punto 5.2

    Con esta observacin queda patente que en un caso detenminado, Q no es el complemento de O, en la salida de una bscula R-S.

    La metaestabilidad no es objeto de esta asignatura.

    4.2.2 Bscula R-S

    Una bscula R-S tiene como smbolo lgico es cualquiera de los siguientes:

    - S Q r-- - S Q -

    - R QN r-- - R Q O-

    El circuito tiene dos entradas, S y R, y dos salidas, etiquetadas como Q y QN, donde normalmente QN es el complemento de Q. La seal QN se representa en ocasiones como Q _L Se trata de un biestable asncrono (no est monitoreado por un reloj) . Su tabla de transiciones entre dos estados es la siguiente:

    R S Qt Q Qt+1 O O O 1 O O O 1 O 1 O 1 O 1 1 O 1 1 O 1 1 O O 1 O 1 O 1 O O 1 1 O O -

    Como se puede observar en la tabla si tanto S como R son O, el circuito se comporta como el elemento biestable: tendremos un ciclo de retroalimentacin que retiene uno o dos estados lgicos, Q = O Q = 1. Pero tanto S como R pueden ser asertivas (ponerse al) para forzar al ciclo de retroalimentacin a un estado deseado:

    S establece la salida Q a 1. R restablece o limpia la salida Q a O.

    Despus de que la entrada S R es negada de nuevo, la bscula permanece en el estado al cual fue forzado.

    Toda esta informacin queda resumida en la tabla de transicin siguiente, ms concisa:

    R S 0t+1 O O Qt O 1 1 1 O O 1 1. -

    Inestabilidades:

    Cuando ambas entradas, S y R, estn a 1, ambas salidas son forzadas a cero. Una vez que negamos cualquiera de las entradas, las salidas regresan a la operacin complementaria como es habitual.

    Sin embargo, si negamos ambas entradas de manera simultnea, la bscula se encamina a un estado siguiente impredecible y de hecho puede oscilar o entrar a un estado conocido como metaestable.

    La metaestabilidad tambin puede presentarse se un pulso 1 que sea demasiado breve se aplica a S R.

    www.monteroespinosa.com - Clases de EDIG - Tfnos 91 5445377 ,619142355 T-4.3

    ()

    -~)

    )

  • ,

    ~/

    Para este circuito valen todas las explicaciones de la pgina anterior, dado que esta es justo su implementacin

    La bscula resultante de esta implementacin suele recibir el nombre de Bscula Ji. - S

    Observa que las puertas OR con las entradas negadas son, en realidad, puertas NAND:

    x+y=xy

    Las entradas de nivel. bajo se indican claramente en el smbolo lgico de este circuito.

    e permite o impide que olas entradas R y S lleguen a la bscula

    Esto es, el estado siguiente es impredecible y la salida puede llegar a ser metaestable

    4.2.2.1 Implementacin de una bscula R-S con puertas NOR

    R---~ X)---....--Q

    8------1 )---....--QN

    4.2.2.2 Implementacin de una bscula R-S con puertas NAND

    >--....---Q

    }------QN

    El resultado de esta implementacin es una bscula con entradas de establecimiento y restablecimiento a nivel bajo.

    A continuacin tenemos su smbolo y su tabla de verdad:

    8_L R_L Q QN O O O 1 Q

    o o 1 lastQ [astQN

    El funcionamiento de esta bscula R - S es semejante al de la R - S, con dos diferencias principales:

    R y S son de nivel activo bajo, de modo que el cerrojo recuerda su estado anterior cuando R = S = 1 . Cuando tanto R como S son afirmadas de manera simultnea, ambas salidas de la bscula se van al, no a O como en la bscula R - S.

    4.2.2.3 Bscula R-S con "enable"

    5---1 }---'!>--- Q

    e

    R----1

    Este circuito se comporta como una bscula R - S cuando C = 1, Y retiene su estado anterior cuando C = O.

    Nota:

    Si tanto S como R son 1 cuando C cambia de 1 a O, el circuito se comporta como una bscula R - S en la cual S y R son negadas simultneamente.

    QN

    S R o o o 1 o 1 1 x x

    e Q QN [ast Q lastQN

    o 1 1 1 o 1 1 1 o [ast Q lastaN

    www.monteroespinosa.com - Clases de EDIG - Tfnos 91 5445377 , 619 142355 T-4.4

  • Los cerrojos tipo O son tiles en aplicaciones de control, donde con frecuencia pensamos en trminos de establecer una marca en respuesta a alguna condicin y restablecerla cuando cambian las condiciones.

    Con frecuencia necesitamos cerrojos simplemente para almacenar bits de informacin: cada bit es presentado en una lnea de seal, y nos gustara almacenarlo en alguna parte.

    Un cerrojo O puede emplearse en una aplicacin de esta naturaleza.

    El circuito se denomina con frecuencia un "cerrojo transparente" por esta razn.

    El primer cerrojo de la figura se conoce con el nombre de maestro; se abre y sigue la entrada cuando CLK es O. Cuando CLK sube a 1, el cerrojo maestro se cierra y su salida se transfiere al segundo cerrojo, conocido como esclavo. ste se encuentra abierto todo el tiempo que CLK es 1, pero solamente cambia al principio de este intervalo, porque el maestro est cerrado y sin modificaciones durante el resto del intervalo.

    El tringulo en la entrada CLK de los f1ip-flops O (en su smbolo lgico) indica un comportamiento de disparo por flanco, y se denomina indicador de entrada dinmica.

    4.2.3 Latch D

    La figura muestra un cerrojo D. Su diagrama lgico se reconoce como el de una bscula R-S con habilitacin (enable), con un inversor agregado para generar entradas S y R a partir de la entrada simple D (de datos). n Esto elimina la situacin problemtica en los cerrojos R-S, donde R y S pueden afirmarse de manera simultnea.

    D Q O C C Q QN

    La entrada de control de un cerrojo D, etiquetada C, se llama en ocasiones ENABLE, CLK, G.

    La tabla de verdad de un latch D es la siguiente: e D a QN 1 o o 1

    Cuando C es afirmada, la salida Q sigue la entrada D. 1 1 1 O En esta situacin se dice que el cerrojo est abierto y la

    O x lasta lastQN trayectoria desde la entrada D a la salida Q es transparente.

    Cuando la entrada C es negada, el cerrojo se cierra y la salida Q retiene su ltimo valor y ya no cambia en respuesta a D, mientras que C permanezca negada.

    4.2.4 Flip-flop D disparado por flanco

    Un flip-flop D disparado por flanco positivo combina un par de cerrojos D como se ilustra en la siguiente figura:

    QM Do------I D Q D Q Q

    e e N

    =8 CLK Q CLK As tenemos un circuito que muestrea su entrada D y cambia sus salidas Q y QN slo para el flanco ascendente de la seal CLK de control.

    Su tabla de verdad es la siguiente:

    D ClK Q QN O S O 1 1 I O x: O lasta ast QN x: 1 lastQ las! QN

    (-)

    \)

    www.monteroespinosa.com - Clases de EDIG - Tfnos 91 5445377 , 619 142355 T-4.5

  • (,

    o

    CJ

    A las cuatro primeras filas se les llama modo retencin y las cuatro ltimas modo transpa-rente

    Podemos entender mejor el comportamiento de este biestable con la tabla de transiciones del circuito:

    C D O O O O O 1 O 1 1 O 1 O 1 1 1 1

    Observaciones:

    Qt O 1 O 1 O 1 O 1

    Qt+! O 1 O 1 O O 1 1

    La ecuacin caracterstica de un biestable Des:

    Qt+! =D

    Un flip-flop D disparado por flanco negativo simplemente invierte la entrada de reloj, de modo que toda la accin se desarrolla sobre el flanco descendente de una entrada CLK L.

    Algunos flip-flops D tienen entradas asncronas que se pueden utilizar para llevar al flip-flop a un estado particular, independientemente de las entradas CLK y D. Estas entradas, generalmente se identifican como PR (preset, prestablecimiento) y CLR (c1ear, borrado), se comportan como las entradas de establecimiento y restablecimiento de una bscula R-S.

    4.2.5 Flip-flop J-K

    El problema de qu Se trata de un biestable sncrono, con la siguiente configuracin: hacer cuando en una bscula R-S, las entradas R y S se afirman de manera simultnea, se resuelve en un flip-flop J-K.

    Observa que este circuito utiliza un flip-flop O disparado por flanco.

    Por supuesto, recuerda que la bscula RS es un circuito asncrono.

    J J Q Q GLK

    K QN Q K CLK

    Su tabla de verdad es:

    J K CLK Q QN

    x: x: O lastQ lastQN x: x: 1 lastQ lastQN O O I las Q lastQN O 1 I O 1 O I 1 O 1 1 I lastQN lastQ

    Las entradas J y K son anlogas a S y R (de la bscula R-S). La novedad es que en este circuito, si J y K se afinnan de manera simultnea, el flip-flop se ir al valor opuesto de su estado actual.

    www.monteroespinosa.com - Clases de EDIG - Tfnos 91 5445377 I 619 142355 T-4.6

  • La aplicacin ms comn de los flip-flops J-K se encuentra en las mquinas de estado sncronas temporizadas

    En esta tabla se inter-preta que:

    x=O1

    El circuito que aqu presentamos es en realidad un flip-flop T con habilitacin (ENABLE).

    Este circuito es muy importante para realizar contadores.

    En el ejercicio 1 de clase veremos otra modalidad de biestable T, muy parecida a esta.

    T viene de "toggle", conmutacin

    La tabla de la derecha muestra la misma informacin pero de forma ms concisa.

    As, su tabla de transiciones es la siguiente:

    J K Qt Qt+l O O O O O O 1 1 O 1 O O O 1 1 O 1 O O 1 1 O 1 1 1 1 O 1 1 1 1 O

    La ecuacin caracterstica de un biestable J-K es:

    Esta informacin se puede expresar de manera ms concisa en la siguiente tabla:

    J K Qt+l O O Qt O 1 O 1 O 1 1 1 o.

    De la anterior tabla de transiciones se puede extraer la siguiente tabla que es de gran utilidad para los ejercicios de autmatas:

    Qt Qt+l J K O O O X O 1 1 X 1 O X 1 1 1 X O

    4.2.6 Flip-flop T

    Se trata de un biestable J-K al que se han cortocircuitado las entradas:

    EN T

    Q

    QN

    Construido con un flip-flop D, el circuito queda:

    EN Q

    Q

    QN

    Un flip-flop T cambia de estado con cada pulso de T, siempre y cuando la entrada de habilitacin EN est activa. Dicho de otra forma, se puede entender un biestable T como un circuito con la siguiente tabla de transicin:

    T Qt Qt+l O O O O 1 1 1 O 1 1 1 O

    T O 1

    Qt+l Qt Qt

    La ecuacin caracterstica de un biestable Tes:

    www.monteroespinosa.com - Clases de EDIG - Tfnos 91 5445377 ,619 142355 T-4.7

  • o El flanco activo puede ser el de.subida o el de bajada

    4.3 Temporizacin de circuitos lgicos

    En ocasiones puede suceder que aunque un circuito est bien diseado a nivel lgico despus no funciona como se espera en la prctica. Esto normalmente es debido al retardo de cada uno de los componentes del circuito .

    Se trata de estudiar en este apartado el perodo mnimo o, lo que es lo mismo, la frecuencia mxima, que puede tener la seal de reloj para que un circuito funcione correctamente teniendo en cuenta los retardos de los componentes implicados.

    4.3.1 Parmetros caractersticos de las puertas lgicas

    Las puertas son dispositivos asncronos. Esto significa que la salida cambia en el momento que cambia alguna de sus entradas (si suponemos que su tiempo de propagacin es nulo), sin esperar a ninguna seal de reloj.

    Tiempo de propagacin (td~ -7 Tiempo que tarda una puerta en cambiar su salida desde que cambia alguna de sus entradas. El tiempo de propagacin es un parmetro dado por el fabricante.

    4.3.2 Parmetros caractersticos de los biestables

    Los biestables son dispositivos sncronos. Esto significa que su salida solo cambia cuando se produce un flanco activo de reloj (si suponemos que su tiempo de propagacin es nulo).

    Tiempo de propagacin (tFF)I-7 Tiempo que tarda un biestable en cambiar la salida desde que recoge las entradas en el flanco activo del reloj.

    ITiempo de establecimiento (set up time, tsetup~ -7 Tiempo antes del instante de flanco activo en el cual las entradas del biestable no deben cambiar.

    El tiempo de hold no es un parmetro que intervenga en el clculo

    ITiempo de hold (hold time, thold)l-7 Tiempo despus del flanco activo en el cual las entradas del biestable no deben cambiar.

    de la frecuencia mxima del reloj de un Observacin: circuito.

    El tiempo de propagacin, el tiempo de setup y el tiempo de hold son parmetros dados por el fabricante. Es decir, en los ejercicios son dato.

    4.3.3 Parmetros caractersticos del reloj Todos estos parmetros del reloj quedan completamente ilustrados en la figura IPeriodo del reloj (1)1-7 Tiempo entre transiciones sucesivas en la misma direccin.

    Esto es, el tiempo que transcurre entre un flanco de subida y el siguiente flanco de subida, por ejemplo.

    de la pgina 5.1

    Habitualmente se mide IFrecuencia de reloj (f)I-7 Inversa del Perodo. en Mhz . .

    En porcentaje, % ICiclo de trabajol-7 es el porcentaje de tiempo que la seal de reloj se encuentra en su

    nivel ALTO.

    Lo usual es que el ciclo de trabajo sea del 50% lo que significa que el reloj tiene los dos semiciclos alto y bajo de igual duracin. En este caso tambin se dice que el reloj es simtrico.

    www.monteroespinosa.com - Clases de EDIG - Tfnos 91 5445377 , 619 142355 T-4.8

  • Estos son dos clculos tpicos en ejercicios de examen.

    Los puntos 5.3.4.1 y 5.3.4.2 explican cmo debemos actuar con ante circuitos con un nico biestable (adems de puertas lgicas).

    Observa que no interviene el tiempo de hold.

    Observa que no interviene el tiempo de setup.

    4.3.4 Clculos de temporizacin

    4.3.4.1 Periodo mnimo ( frecuencia mxima) del reloj del circuito.

    Para hallar este valor, calcularemos cunto tarda en "volver" (por el camino ms largo) O una seal, desde la salida de un biestable hasta una de sus entradas. Este camino incluye:

    Tiempo de propagacin del biestable, tFF. Tiempos de propagacin td de todas las puer