algebra booleana y funciones logicas

31
MEDIA VIDEO DISEÑO www.mvdfpga.com Reproducción prohibida Algebra booleana y funciones lógicas Algebra booleana Funciones lógicas

Upload: leonsf

Post on 15-Feb-2016

31 views

Category:

Documents


1 download

DESCRIPTION

Principios de algebra de boole para circuitos lógicos y FPGA. Teoría básica para electrónica digital.

TRANSCRIPT

Page 1: Algebra Booleana y Funciones Logicas

MEDIA VIDEO DISEÑOwww.mvd‐fpga.com

Reproducción prohibidaAlgebra booleana y funciones lógicas

Algebra booleana Funciones lógicas

Page 2: Algebra Booleana y Funciones Logicas

MEDIA VIDEO DISEÑOwww.mvd‐fpga.com

Reproducción prohibidaAlgebra booleana y funciones lógicas

Algebra booleana

• Se caracteriza por el hecho de que las variables de base tienen tan solo 2 valores posibles : « TRUE » o « FALSE »

• Las variables booleanas son valores « binarios »

• Unas pocas funciones de base permiten hacer funciones lógicas sobre los operandos booleanos (binarios)

Page 3: Algebra Booleana y Funciones Logicas

MEDIA VIDEO DISEÑOwww.mvd‐fpga.com

Reproducción prohibidaAlgebra booleana y funciones lógicas

Operadores básicos• Los operadores mas básicos operan sobre una o dos variables

– Función NOT : Negación de valor. El resultado es : • FALSE si el operando tiene el valor TRUE• TRUE si el operando tiene el valor FALSE

– Función AND : • El resultado es TRUE cuando los 2 operandos tienen el valor TRUE• Es false cuando cualquiera de los 2 operandos tiene el valor FALSE

– Función OR : • El resultado es TRUE cuando cualquiera de los 2 operandos tiene el valor TRUE• FALSE cuando los 2 operandos tienen el valor FALSE

– Función XOR (OR exclusivo) :• El resultado es TRUE cuando exclusivamente un solo operando tiene el valor TRUE• FALSE cuando los 2 operandos tengan el mismo valor (TRUE o FALSE

Page 4: Algebra Booleana y Funciones Logicas

MEDIA VIDEO DISEÑOwww.mvd‐fpga.com

Reproducción prohibidaAlgebra booleana y funciones lógicas

Ecuaciones booleanas• Para permitir la escritura de funciones booleanas en forma de texto, 

se han asignado símbolos específicos a cada uno de los operadores :– Función NOT : símbolo « / » Ejemplo : S = / A

– Función AND : símbolo « * » Ejemplo : S = A * B 

– Función OR :  símbolo « + » Ejemplo : S = A + B 

– Función XOR :  símbolo « + » Ejemplo : S = A  +  B 

• Otras notaciones están usadas por lenguajes existentes poco usados en la actualidad. Pueden usar los símbolos « ~ »  (NOT), « . »  (AND), « @ »  (XOR)…

+ +

Page 5: Algebra Booleana y Funciones Logicas

MEDIA VIDEO DISEÑOwww.mvd‐fpga.com

Reproducción prohibidaAlgebra booleana y funciones lógicas

Ecuaciones lógicas• Con el desarrollo de la electrónica digital, han aparecido 

lenguajes de descripción de hardware, conocidos como HDL (Hardware Description Language)

• Los lenguajes de descripción hardware mas usados en la actualidad son VHDL y Verilog

• Estos lenguajes adoptaron distintas formas de notaciones para definir estas operaciones lógicas– Función NOT : símbolo « ! » en Verilog, palabra clave « NOT » en VHDL   

– Función AND : símbolo « & »en Verilog, palabra clave « AND » en VHDL 

– Función OR :  símbolo « | » en Verilog, palabra clave « OR » en VHDL

Page 6: Algebra Booleana y Funciones Logicas

MEDIA VIDEO DISEÑOwww.mvd‐fpga.com

Reproducción prohibidaAlgebra booleana y funciones lógicas

Representación grafica de funciones lógicas

• Para poder representar funciones lógicas en forma de grafico (esquemático), se han asignado símbolos gráficos

– NOT

– AND

– OR

– XOR

• Estas funciones pueden producir un cambio instantáneo en su salida, después de un cambio en las entradas. Son funciones combi nacionales

Page 7: Algebra Booleana y Funciones Logicas

MEDIA VIDEO DISEÑOwww.mvd‐fpga.com

Reproducción prohibidaAlgebra booleana y funciones lógicas

Otras funciones lógicas sencillas

• Para facilitar la descripción de funciones lógicas, se han determinado otras funciones que son combinaciones de las funciones ya descritas.

– NAND

– NOR

– XNOR

• Estas funciones se obtienen invirtiendo la salida de las funciones de origen que son AND, OR e XOR respectivamente. Son también funciones combi nacionales

Page 8: Algebra Booleana y Funciones Logicas

MEDIA VIDEO DISEÑOwww.mvd‐fpga.com

Reproducción prohibidaAlgebra booleana y funciones lógicas

Funciones básicas y tablas de verdad

• La tabla de verdad es una tabla de correspondencia entre las entradas y la salida de cada función

NOT

Entrada Salida

0 1

1 0

AND

A B S

0 0 0

0 1 0

1 0 0

1 1 1

OR

A B S

0 0 0

0 1 1

1 0 1

1 1 1

XOR

A B S

0 0 0

0 1 1

1 0 1

1 1 0

NAND

A B S

0 0 1

0 1 1

1 0 1

1 1 0

NOR

A B S

0 0 1

0 1 0

1 0 0

1 1 0

XNOR

A B S

0 0 1

0 1 0

1 0 0

1 1 1

Page 9: Algebra Booleana y Funciones Logicas

MEDIA VIDEO DISEÑOwww.mvd‐fpga.com

Reproducción prohibidaAlgebra booleana y funciones lógicas

Funciones basicascon mas entradas

• Los operadores logicos pueden tener mas de 2 entradas

AND de 5 entradas                                    NAND de 5 entradas

OR de 5 entradas     NOR de 5 entradas

XOR de 5 entradas                                       XNOR de 5 entradas

Page 10: Algebra Booleana y Funciones Logicas

MEDIA VIDEO DISEÑOwww.mvd‐fpga.com

Reproducción prohibidaAlgebra booleana y funciones lógicas

Funciones básicas derivadas

• Los operadores lógicos pueden tener entradas invertidas

a * b * /c * /d * /e                                      /(a * b * /c * /d * /e) 

a + b + c + d + /e                                          /(a + b + /c + /d + /e)

a + b + c + /d + /e                                        /(a + b + /c + /d + /e)

Page 11: Algebra Booleana y Funciones Logicas

MEDIA VIDEO DISEÑOwww.mvd‐fpga.com

Reproducción prohibidaAlgebra booleana y funciones lógicas

Elementos lógicos adicionales usados en electrónica

• En electrónica se pueden necesitar elementos adicionales

– Buffer : no cumple ninguna función lógica, pero puede ser requerido para distribución eficiente de señales (típicamente relojes)

s = a

– Buffer con control Tri‐State : usado para crear buses bi‐direccionaless <= a    when t=‘0’   else ‘Z’; ‐‐ (sintaxis VHDL)

– Buffer con salida “OPEN COLLECTOR” o “OPEN DRAIN” : permite la generación de niveles activos a ‘0’, el nivel alto siendo únicamente pasivo (resistencia de pullup. Usado en ciertos protocolos de comunicación (I2C) y funciones AND cableadas (en arquitecturas antiguas)s <= ‘0’   when a= ‘0’  else   ‘Z’; ‐‐ (sintaxis VHDL)

a s

ta s

ta s

vcc

Page 12: Algebra Booleana y Funciones Logicas

MEDIA VIDEO DISEÑOwww.mvd‐fpga.com

Reproducción prohibidaAlgebra booleana y funciones lógicas

Equivalencia de funciones

• La función « a OR b » puede ser descrita en forma equivalente de la siguiente forma :

a + b          =                    /a * /b    

• La función « a XOR b » puede ser descrita en forma equivalente de la siguiente forma :

a +  b          =               (a * /b) + ( /a * b)    

a

bs

+

a

b

s

Page 13: Algebra Booleana y Funciones Logicas

MEDIA VIDEO DISEÑOwww.mvd‐fpga.com

Reproducción prohibidaAlgebra booleana y funciones lógicas

Equivalencia de funciones y herramientas de síntesis

• 20 o 30 años atrás, los ingenieros debían manejar muy bien la simplificación de ecuaciones booleanas para aprovechar la tecnología disponible.

• Los diseños digitales usaban circuitos discretos (de tipo TTL por ejemplo), y la simplificación o transformación de las ecuaciones era un factor importante de optimización

• Las herramientas modernas de síntesis evitan que el usuario se vea obligado en gastar tiempo en estas optimizaciones de bajo nivel, las cuales están aseguradas por las herramientas de síntesis

• En particular en el caso de las FPGAs de Xilinx, las funciones combinacionales están implementadas a partir de look‐up‐tables (LUTs)

Page 14: Algebra Booleana y Funciones Logicas

MEDIA VIDEO DISEÑOwww.mvd‐fpga.com

Reproducción prohibidaAlgebra booleana y funciones lógicas

Otras funciones lógicas• Comparador

S = (A = B)

• Multiplexor

s = (/sel * a) + (sel * b)

a

selb

s

Esquematico

0

1s

a

bselSimbolo

multiplexor

A(7:0)

B(7:0)

A(7)B(7)

A(6)B(6)

A(5)B(5)

A(4)B(4)

A(3)B(3)

A(2)B(2)

A(1)B(1)

A(0)B(0)

S(A = B)

A

B

A=B

Simbolomultiplexor

Page 15: Algebra Booleana y Funciones Logicas

MEDIA VIDEO DISEÑOwww.mvd‐fpga.com

Reproducción prohibidaAlgebra booleana y funciones lógicas

Noción de latch transparente• El dato ‘b’ se propaga hacia la salida cuando la señal “gate” esta 

al nivel ‘1’. Si esta señal pasa a ‘0’, la salida se realimenta y mantiene el valor de la salida (función de memorización)

• La salida tan solo puede cambiar de valor cuando  gate = ‘1’ 

0

1s

bgatediagrama equivalente

gateb

s

esquemático

d

g

q

Símbolo de latch transparente

Entrada dGate g

Salida qtransparente              mémorisation       transparente       mémorisation

Los latches transparentes se comportan como elementos de memoria mientras la señal de control (gate) se mantiene al nivel bajo

Page 16: Algebra Booleana y Funciones Logicas

MEDIA VIDEO DISEÑOwww.mvd‐fpga.com

Reproducción prohibidaAlgebra booleana y funciones lógicas

Noción de latch transparente• Con la tecnología TTL, el uso de los latches transparentes era 

frecuente (ex : 74373)

• En esta tecnología los latches representaban una reducción de coste – si se compara con el uso de Flip‐Flops de tipo D

• Con los procesos de fabricación de circuitos electrónicos, se ha generalizado el uso de Flip‐Flops de tipo D, los cuales representan considerables ventajas para el diseño de sistemas digitales

• En los diseños modernos – particularmente diseños de FPGA, el uso de latches transparentes es prácticamente proscrito (aunque posible)

Page 17: Algebra Booleana y Funciones Logicas

MEDIA VIDEO DISEÑOwww.mvd‐fpga.com

Reproducción prohibidaAlgebra booleana y funciones lógicas

Noción de registro o Flip‐Flop• Con las evoluciones de proceso de fabricación de circuitos 

electrónicos los Flip‐Flop de tipo D ofrecen perspectivas muy atractivas. Las arquitecturas de circuitos programables ofrecen una cantidad importante de Flip‐Flops

Los Flip‐Flops de tipo D también llamados registros samplean el dato de entrada en el flanco de subida del reloj, y lo memorizan hasta el próximo flanco de subida

D

CLK

Q

Símbolo de registro (Flip‐Flop de tipo D)

d

g

q

latches transparentes

d

g

qD 

CLK

Q Q_int 

Entrada DClock CLK

Q_int

Salida Q

transparente    memorización  transparente   memorización transparente   memorización

memorización   transparente    memorización  transparente   memorización transparente

Flancos de subida de CLK

Page 18: Algebra Booleana y Funciones Logicas

MEDIA VIDEO DISEÑOwww.mvd‐fpga.com

Reproducción prohibidaAlgebra booleana y funciones lógicas

Flip‐Flops de tipo DLa clave para diseños sincronos

• Los Flip‐Flops de tipo D pueden cambiar el valor de su salida únicamente durante las transiciones activas del reloj (típicamente flancos de subida), y mantienen su salida estable entre los flancos activos

• Si todos los Flip‐Flops de un mismo diseño ven los flancos activos de reloj al mismo tiempo, trabajan en forma síncrona.

• Se habla de un diseño síncrono

• Los diseños síncronos representan muchas ventajas para fiabilidad y predictibilidad ‐ por tal que el reloj este en un rango de frecuencia aceptable para la tecnología usada, y sea distribuido de forma apropiada hacia todos los Flip‐Flops

• Mas detalles a continuación

Page 19: Algebra Booleana y Funciones Logicas

MEDIA VIDEO DISEÑOwww.mvd‐fpga.com

Reproducción prohibidaAlgebra booleana y funciones lógicas

Flip‐Flop de tipo D con set y/o reset sincronos

D

CLK

QRESET

D

CLK

Q

Flip‐Flop de tipo D con reset sincrono

D

CLK

QSETD

CLK

Q

Flip‐Flop de tipo D con set sincrono

Flip‐Flop de tipo D con set y reset sincronos

(set prioritario)

D

CLK

QRSTD

SET

CLK

Q

Flip‐Flop de tipo D con set y reset sincronos(reset prioritario)

D

CLK

QSETD

RST

CLK

Q

Page 20: Algebra Booleana y Funciones Logicas

MEDIA VIDEO DISEÑOwww.mvd‐fpga.com

Reproducción prohibidaAlgebra booleana y funciones lógicas

Flip‐Flop de tipo D con habilitacion de ciclos de reloj• Los Flip‐Flops pueden usar una señal de control para habilitar 

o deshabilitar los flancos de reloj

• La señal de clock enable puede ser combinada con comandos SET y/o RESET

D

CLK

QD

CLOCK ENABLECLK

Q

Flip‐Flop de tipo D con clock enable

01

En las FPGA Xilinx, todos los Flip‐Flopdisponen de clockenable asi como de set/reset sincronos

Page 21: Algebra Booleana y Funciones Logicas

MEDIA VIDEO DISEÑOwww.mvd‐fpga.com

Reproducción prohibidaAlgebra booleana y funciones lógicas

Otros tipos de Flip‐Flopderivados

• Flip‐Flop de tipo T :

• Flip‐Flop de tipo JK :

• Nota : estos tipos de Flip‐Flops no tienen mucha relevancia para los diseños de lógica programable

D

CLK

QJ

KCLK

CLK J K Q next

X X X hold

0 0 Q

0 1 0

1 0 1

1 1 /Q

La salida Q esta realimentada haciala entrada D mediante un inversos. A cada flanco de subida del reloj, la salida Q cambia de valor

Qnext <= (T * /Q) OR (/T * Q)

Qnext <= (J * /Q) + (/K * Q)

D

CLK

Q1

0

QCLK

Page 22: Algebra Booleana y Funciones Logicas

MEDIA VIDEO DISEÑOwww.mvd‐fpga.com

Reproducción prohibidaAlgebra booleana y funciones lógicas

Electrónica digital moderna• En electrónica digital, los valores TRUE y FALSE se convierten 

en niveles lógicos : Nivel ‘1’ para TRUE, y nivel ‘0’ para FALSE

• Los niveles de tensión se definen de acuerdo a estándares eléctricos. Por ejemplo :– Para circuitos digitales de tipo TTL  alimentados en 5v : 

• Nivel 0 < 0,8 v• Nivel 1 > 2.4 v

• Con las evoluciones tecnológicas, han aparecido varias arquitecturas de circuitos digitales programables por el usuario– PALs y CPLDs : circuitos basados en grupos de puertas con conectividad 

programable– FPGAs : circuitos basados en la emulación de puertas a partir de tablas 

de verdad (LUTs) configurables  

Page 23: Algebra Booleana y Funciones Logicas

MEDIA VIDEO DISEÑOwww.mvd‐fpga.com

Reproducción prohibidaAlgebra booleana y funciones lógicas

Electrónica digital moderna• Los fabricantes de circuitos de lógica programable usan 

herramientas de síntesis, las cuales permiten determinar la forma mas apropiada para poder implementar dichas funciones

• En paralelo, los lenguajes HDL modernos simplifican la descripción de funcionalidad. 

• Los lenguajes HDL (VHDL y Verilog) permiten describir una funcionalidad hardware sin que el usuario tenga que preocuparse de la implementación a nivel de compuertas– Ejemplos : 

• S <= A + B;  ‐‐ Sintaxis VHDL para un sumador• S <= A – B;  ‐‐ Para un restador

Page 24: Algebra Booleana y Funciones Logicas

MEDIA VIDEO DISEÑOwww.mvd‐fpga.com

Reproducción prohibidaAlgebra booleana y funciones lógicas

Circuitos programables (1)

• Los PALs : Al final de los años 70, la empresa MMI creo circuitos de lógica programable, llamados PAL (Programmable Array Logic)– Permitía reducir el numero de circuitos discretos, permitiendo 

implementar  funciones combinacionales y/o registradas                              no necesariamente disponibles en circuitos discretos

– Los PALs eran programables (OTP) mediante un programador especifico (tecnología anti‐fusibles para establecer los contactos deseados)

– Limitaciones : capacidad lógica limitada, consumo relativamente alto e imposibilidad de re‐programación

– Lenguaje de programación de bajo nivel

– No obstante, era un progreso muy significativo para el diseño de tarjetas de electrónica digital

Page 25: Algebra Booleana y Funciones Logicas

MEDIA VIDEO DISEÑOwww.mvd‐fpga.com

Reproducción prohibidaAlgebra booleana y funciones lógicas

Arquitectura de los PALs• El PAL esta formado de un cierto numero de bloques de lógica 

llamados “macro‐cell”• Cada macro‐cell lleva en particular una matriz de puertas AND 

cableados, seguidos por una puerta OR (con o sin inversor)• Las salidas (entre 4 y 10) pueden ser registradas y con         

control tri‐state

Macro-cell

Matrices and/or

{Salida combinacinalocon registro

D Q

D Q

D Q

Page 26: Algebra Booleana y Funciones Logicas

MEDIA VIDEO DISEÑOwww.mvd‐fpga.com

Reproducción prohibidaAlgebra booleana y funciones lógicas

Circuitos programables (2)• Los CPLDs : Hacia los mediados de los años 80, aparecieron los 

circuitos CPLDs

– Arquitectura similar a la de los PALs, pero densidad mas elevada, consumo reducido (comparando con los PALs), y re‐programabilidad

– Los CPLDs usan una tecnología de programación basada en celdas EEPROM, remplazada en los 90 por una tecnología FLASH

– Los CPLDs mas densos tienen hasta 1024 macro‐cells

– Los fabricantes de CPLDs crearon su propio lenguaje de programación (no, estándar) para facilitar la descripción de las funciones a implementar 

– Limitaciones : capacidad lógica limitada (aunque superior a la de los PALs), y consumo relativamente alto 

Page 27: Algebra Booleana y Funciones Logicas

MEDIA VIDEO DISEÑOwww.mvd‐fpga.com

Reproducción prohibidaAlgebra booleana y funciones lógicas

Circuitos programables (3)• Los circuitos de tipo FPGA : Hacia los mediados de los años 80, 

Xilinx invento la tecnología FPGA

– En la tecnología FPGA, las funciones combinacionales estanimplementadas en base al uso de Look‐up‐Tables (LUTs). Cada LUT puede comunicar con la entrada D de un Flip‐Flop de tipo D (con controles SET, RESET y CLOCK_ENABLE)

– Bloques dedicados de entrada/salida con Flip‐Flops opcionales, y control tri‐state (en salida) permiten comunicar con el exterior de la FPGA

– Unos recursos de rutado permiten establecer el contacto entre los elementos de lógica

– La configuración de la FPGA se hace escribiendo en una SRAM interna   (re‐programación sin limites)

Page 28: Algebra Booleana y Funciones Logicas

MEDIA VIDEO DISEÑOwww.mvd‐fpga.com

Reproducción prohibidaAlgebra booleana y funciones lógicas

Arquitectura de las FPGAs• El concepto de FPGA permite implementar funciones 

combinacionales sin necesidad de usar compuertas lógicas, permitiendo una emulación por LUT de funciones de mas alto nivel.

• Cada LUT es una memoria SRAM – configurada para emular la función combinacional deseada

LUT (16 bits)

Implementa cualquierfunción de 4 entradas

D                Q

CE

CLK  SET/RST

ABCD

CECLK

SET/RST

Salida combinacional(hacia recursos de rutado)Salida registrada

Diagrama simplificado de una logic cell

Page 29: Algebra Booleana y Funciones Logicas

MEDIA VIDEO DISEÑOwww.mvd‐fpga.com

Reproducción prohibidaAlgebra booleana y funciones lógicas

Arquitectura de las FPGAs• En las FPGA de Xilinx Spartan‐3, las logic cells estan agrupadas 

dos por dos en una estructura llamada slice

• El slice dispone de elementos adicionales que permiten aumentar las posibilidades lógicas

• La FPGA en si misma dispone de otros elementos programables– Bloques de entrada/salida– Dispositivos de gestión y distribución de relojes– Bloques de RAM– Otros elementos relacionados con el tratamiento digital de señal

Page 30: Algebra Booleana y Funciones Logicas

MEDIA VIDEO DISEÑOwww.mvd‐fpga.com

Reproducción prohibidaAlgebra booleana y funciones lógicas

Introduccion al diseño sincrono (1)

• Criterios de reloj para funcionamiento fiable de los Flip‐Flops :

• Los fabricantes de circuitos electrónicos especifican el rango de funcionamiento. Para los Flip‐Flops :– Periodo mínimo (frecuencia máxima)– Tiempos mínimos al nivel alto (Twh) y al nivel bajo (Twl)– Tiempo de subida (Trise) y tiempo de bajada (Tfall) 

• Cada reloj debe imperativamente respetar todos estos criterios (impone usar osciladores de cuarzo o generadores dedicados de reloj)

Twh Twl

PERIOD

TriseTfall

Page 31: Algebra Booleana y Funciones Logicas

MEDIA VIDEO DISEÑOwww.mvd‐fpga.com

Reproducción prohibidaAlgebra booleana y funciones lógicas

Introduccion al diseño sincrono (2)

• Otros criterios de timing para funcionamiento fiable de los Flip‐Flops :

Dato estableen entrada D

Tiempode setup(Tsu)

Tiempode hold(Th)

Don’t care Don’t care

Clock to out(Tco) Tco Tco