Síntesis Logica

24
1 Diseño de Sistemas Digitales Martín Vázquez Diseño de Sistemas Lógicos 2 Materialización de Sistemas Lógicos Circuitos integrados específicos (ASIC - (Appication Specific Integrated Circuits). Circuitos Integrados programables por el usuario, por ejemplo PAL, CPLD, FPGAs, etc. Circuitos impresos que permiten ensamblar circuitos integrados (estándar, específicos o programables) y componentes discretos (resistencias, capacitores, transistores, etc)

description

Sintesis Logica de circuitos

Transcript of Síntesis Logica

Page 1: Síntesis Logica

1

Diseño de Sistemas Digitales

Martín Vázquez

Diseño de Sistemas Lógicos 2

Materialización de Sistemas Lógicos

� Circuitos integrados específicos (ASIC - (AppicationSpecific Integrated Circuits).

� Circuitos Integrados programables por el usuario, por ejemplo PAL, CPLD, FPGAs, etc.

� Circuitos impresos que permiten ensamblar circuitos integrados (estándar, específicos o programables) y componentes discretos (resistencias, capacitores, transistores, etc)

Page 2: Síntesis Logica

2

Diseño de Sistemas Lógicos 3

Materialización de Sistemas Lógicos. Ejemplos:

Circuito aeroespacial ASIC Atmel. Mucho conocimiento de electrónica.

Dispositivos programables por el usuario: FPGA stratix III Altera y PAL. Conocimiento de diseño lógico de sistemas digitales.

Diseño de Sistemas Lógicos 4

Materialización de Sistemas Lógicos. Ejemplos:

Placa de Digilent con componentes discretos y circuitos integrados. Conocimiento de electrónica, sobre todo cuando se diseña en varias capas y altas frecuencias

Page 3: Síntesis Logica

3

Diseño de Sistemas Lógicos 5

Diseño Lógico

� Independientemente de la implementación final del diseño. Las primeras etapas del diseño lógico son las mismas:

� Descripción del diseño digital: esquemáticos, lenguajes de descripción de hardware (HDLs), o mediante lenguajes de alto nivel (HLL) tales como C, Handel-C, etc.

� Simulación funcional y/o comportamental del diseño. Observar el comportamiento y, de ser necesario, corregir la descripción…

Diseño de Sistemas Lógicos 6

Síntesis Lógica

� La síntesis lógica es un proceso por el que se obtiene un circuito en términos de puertas lógicas (pertenecientes a bibliotecas genéricas o específicas) a partir de una descripción abstracta.

� Tabla de verdad, ecuación lógica, etc.� Descripción en VHDL, Verilog, etc.

Page 4: Síntesis Logica

4

Diseño de Sistemas Lógicos 7

Generación de una expresión a partir de una tabla de verdad� Una expresión se dice

canónica si cada uno de sus términos hace referencia a todas las variables que intervienen en la expresión, ya sea en forma directa o negada.

� Las expresiones canónicas conjuntivas son sumas de términos conjuntivos (también llamados minterms).

Y = ¬ X2 · ¬ X1 · X0 + ¬ X2 · X1 · ¬ X0 + X2 · ¬ X1 · ¬ X0

cada uno es un minterm.

0111

0011

1101

0001

0110

1010

1100

0000

f(x1, x2, x3)x3x2x1

Diseño de Sistemas Lógicos 8

Síntesis mediante multiplexores

� Se emplea un multiplexor con tantas entradas de control como variables de entrada tenga el circuito.

� Cada una de las entradas del MUX (2n) se conectan a ‘0’ ó a ‘1’según corresponda al valor de la salida.

y1

01234567

01101001

01234567

00010111

y2

Page 5: Síntesis Logica

5

Diseño de Sistemas Lógicos 9

Planos de Puertas (Repaso)

� Para el plano AND, la matriz de compuertas puede tener hasta Xnentradas y hasta pksalidas, donde cada salida pi es el producto de entradas X pudiendo estas estar en forma normal (Xi) o negada (¬ Xi).

AND

x1 x2 ......... xn

p1

p2

:

pk

Diseño de Sistemas Lógicos 10

Planos de Puertas (Repaso)

� Ejemplo con n = 3 y k = 2:

� Queremos que p1 = x1 · ¬ x2 p2 = ¬ x1 · ¬ x2 · ¬ x3

1

1

x1 x2 x3

p1

p2

Page 6: Síntesis Logica

6

Diseño de Sistemas Lógicos 11

Planos de Puertas (Repaso)

� La programación del plano AND se realiza a través de una cadena de bits de tamaño

2 * #x *#p.

� En donde se representa con un ‘1’ cada posición del plano que debe ser conectada.

� Para el ejemplo:1 0 0 1 0 0 -> x1 · ¬ x20 1 0 1 0 1 -> ¬ x1 · ¬ x2 · ¬ x3

Diseño de Sistemas Lógicos 12

Planos de puertas (Repaso)

� En el plano OR, que es una matriz de compuertas OR interconectadas con k entradas –x1, x2, ...., xk- y m salidas –s1, s2, ...., sm-, cada si es la suma (booleana) de algunas variables de entrada, siempre en forma normal.

OR

s1 . . . . . . . . .sm

x1

:::

xk

Page 7: Síntesis Logica

7

Diseño de Sistemas Lógicos 13

Planos de puertas (Repaso)

� El plano OR en conjunción con un plano AND permite sintetizar funciones booleanas completas mediante componentes denominados PLA (ProgrammableLogic Array’s).

OR

s1 . . . . . . . . .sm

AND

x1 x2 ......... xn

p1

p2

pk

Diseño de Sistemas Lógicos 14

Síntesis mediante Planos de Puertas

� Ejemplo de dos funciones y1 e y2:y1 = x1 · ¬ x2 + x1 · x3y2 = x1 · ¬ x2 + ¬ x1 · x3

� En el plano AND deben implementarse los términos: x1 · ¬ x2 x1 · x3

¬ x1 · x3

10 01 00

10 00 10

01 00 10

1 1

1 0

0 1

AND OR

x1 x2 x3 y1 y2

x1 · ¬ x2

x1 · x3

¬ x1 · x3

Page 8: Síntesis Logica

8

Diseño de Sistemas Lógicos 15

Memorias ROM� Una memoria ROM es un

dispositivo totalmente cableado. Ante cada combinación de valores de los xi da como resultado un determinado valor en cada salida yi.

� Las ROM son compatible con un plano AND-OR con tantas salidas (yi) como ancho de la celda de datos, y con nseñales de entrada (xi).

ROM2n palabras de m bits de ancho

xn-1

xn-2

xn-3

:x0

ym-1 ym-2 . . . . . . . y0

Diseño de Sistemas Lógicos 16

Memorias ROM

� La figura siguiente muestra un ejemplo de implementación de una memoria ROM pasiva de cuatro celds (n = 2) de 4 bits cada una (m = 4).

01 01

01 10

10 01

10 10

0 0 0 1

0 0 1 0

0 1 0 0

1 0 0 0

AND OR

x1 x0y3 y2 y1 y0

Page 9: Síntesis Logica

9

Diseño de Sistemas Lógicos 17

Decodificador, demultiplexor y plano AND

¬ z1 · z0

z1 · ¬ z0

z1

0

1

z0

¬ z1 · ¬ z0

z1 · z0

2

3

equivale a

01 01

01 10

10 01

10 10

z1 z2

p1

p2

p3

p4

Demultiplexor de 1 a 4 con entrada, y = 1, implementa un Decodificador de 2 bits.

Decodificador de 2 bits, equivale a plano AND completo.

Diseño de Sistemas Lógicos 18

Memorias ROM� El proceso de síntesis consiste en

compilar (en un compilador de circuitos digitales) la secuencia de bits del plano OR.

� La secuencia de bits del plano AND es fija: secuencia de valores de las señales xi desde todos ‘0’ hasta todos ‘1’ (decodificador de direcciones).

� Por ejemplo, para una ROM de 4 palabras de 8 bits cada una con los valores:

DirecciónValor0 AAh1 FFh2 03h3 54h

� Plano AND : 01 0101 10 10 01 10 10

� Plano OR : 10101010 11111111 00000011 01010100

Page 10: Síntesis Logica

10

Diseño de Sistemas Lógicos 19

Síntesis mediante memoria ROM

0 01 01 00 11 00 10 11 1

x2

x1

x0

ym-1 ym-2

Diseño de Sistemas Lógicos 20

Síntesis mediante ROM+MUX

0 1 0 0

1 0 0 1

1 0 0 1

0 1 1 1

0 1 0 1

y1 y2

x2

x0

x1

y10 y11 y20 y21

y11 = y1(x2 = 1)y10 = y1(x2 = 0)y21 = y2(x2 = 1)y20 = y2(x2 = 0)

Page 11: Síntesis Logica

11

Diseño de Sistemas Lógicos 21

Generación de una expresión a partir de una tabla de verdad

� Una expresión canónica conjuntiva

Y = ¬ X2 · ¬ X1 · X0 + ¬ X2 · X1 · ¬ X0 +

X2 · ¬ X1 · X0¿Se puede minimizar haciendo operaciones permitidas?

0111

0011

1101

0001

0110

1010

1100

0000

f(x0, x1, x2)X0X1x2

Diseño de Sistemas Lógicos 22

Síntesis Lógica

� Técnicas y herramientas de minimización� Para tablas de verdad (circuitos combinacionales)

� Mapas de Karnaugh (1953).

� Algoritmo de Quine–McCluskey (1956).

� Espresso heuristic logic minimizer (Brayton et al., 1984).

Page 12: Síntesis Logica

12

Diseño de Sistemas Lógicos 23

Mapas de Karnaugh

� Las simplificaciones que permiten los diagramas de Karnaughse basan en la siguiente identidad:

A · B · C + A · B · ¬ C = A · B · (C + ¬ C) = A · B

� La ecuación anterior indica que si una variable (la C) aparece negada en un término y no negada en otro que tiene el resto de las variables iguales, puede eliminarse por completo. Los diagramas de Karnaugh ayudan mucho a la localización de estas variables que se pueden suprimir.

Diseño de Sistemas Lógicos 24

Mapas de Karnaugh

� Método manual, gráfico, útil hasta 5 o 6 variables.

� Las variables se ordenan de acuerdo al código de Gray (una sola variable cambia de polaridad entre cuadros adyacentes).

� Para obtener la expresión minimizada:� Agrupar los ‘1’ en rectángulos que contengan 1, 2, 4, 8

unos.� Cada casilla con un ‘1’ se debe cubrir al menos una vez.� Los valores indefinidos (don’t care) pueden aprovecharse

para hacer grupos de ‘1’ mas grandes.

Page 13: Síntesis Logica

13

Diseño de Sistemas Lógicos 25

Mapas de Karnaugh

101198

14151312

6754

2310

X0

X1

X2

X3

X1 X0

X3 X2

00 01 11 10

00

01

11

10

X1 X0

X2

00 01 11 10

0

1

X0

X1

0 1

0

1

Diseño de Sistemas Lógicos 26

Mapas de Karnaugh

� Un mapa de Karnaugh se puede ver como un diagrama de Venn especialmente dibujado:

101198

14151312

6754

2310

B

A

D

C

(A,B,C,D) = 11012 = 13

Page 14: Síntesis Logica

14

Diseño de Sistemas Lógicos 27

Mapas de Karnaugh

1

1

1

1

1

1

1

1

x3

1

1

1

1

0

0

0

0

x2

1

1

0

0

1

1

0

0

x1

1

0

1

0

1

0

1

0

x0

0

0

0

0

0

0

1

1

F

0

0

0

0

0

0

0

0

x3

0111

1011

0101

1001

1110

1010

1100

1000

Fx0x1x2

F = ¬X3·¬X2·¬X1·¬X0 + ¬X3·¬X2·¬X1·X0 + X3·¬X2·¬X1·¬X0 + X3·¬X2·¬X1·X0 +X3·¬X2·X1·¬X0 + X3·¬X2·X1·X0 + X3·X2·¬X1·¬X0 + X3·X2·X1·¬X0

Diseño de Sistemas Lógicos 28

Mapas de Karnaugh

111110

100111

000001

001100X2X3

10110100

X0X1

F = ¬ X2·¬X1 + X3·¬X0 + X3·¬X2

Page 15: Síntesis Logica

15

Diseño de Sistemas Lógicos 29

Mapas de Karnaugh

� Éste es un método gráfico que posee limitaciones muy fuertes (casi imposible de hacer) cuando se desea simplificar funciones de más de 6 variables.

� No es determinístico, hay varias maneras de agrupar.

� No necesariamente se encuentra la expresión mínima.

Diseño de Sistemas Lógicos 30

Método tabular de Quine–McCluskey� Mismo funcionamiento que método de Karnaugh.

� Se puede implementar en un programa de computación. Posibilita la síntesis automática.

� Permite encontrar de forma determinística la expresión mínima de una función booleana.

Page 16: Síntesis Logica

16

Diseño de Sistemas Lógicos 31

Método tabular de Quine–McCluskey� Primero encuentra los implicantes primos.

� Se parte de la función canónica conjuntiva.

� Se efectúa un proceso iterativo en el que se van combinando términos.

� Una vez encontrado los implicantes primos, obtiene las expresiones mínimas candidatas a partir de la cobertura mínima de los mintérminos involucrados en la función.

� Por último, escoge la/s función/es con mínimo costo según algún criterio: área, profundidad lógica, etc.

Diseño de Sistemas Lógicos 32

Implicantes primos� Dada una función expresada como suma de conjunciones.

Los implicantes primos son las expresiones que no están contenidas en ninguna otra.

Ejemplo, sea la función booleana F = X2·¬X1·¬X0 + ¬X2·X0 + X2·¬X0,

X2·¬X1·¬X0 está contenida en X2·¬X0, ya que

X2·¬X0 = X2·¬X0·X1 + X2·¬X0·¬X1

Implicantes primos son: ¬X2·X0 y X2·¬X0

Page 17: Síntesis Logica

17

Diseño de Sistemas Lógicos 33

Método tabular de Quine–McCluskey

Para encontrar los implicantes primos, primero se deben encontrar los mintérminos involurados en la función.

Ejemplo: F= X2·X1·X0 + ¬X3·¬X0 + ¬X3·X1·X0 + X3·¬X2·X0 + X3·¬X1·X0

¬X3·¬X0 = ¬X3·¬X2·¬X1·¬X0 + ¬X3·X2·¬X1·¬X0 + ¬X3·¬X2·X1·¬X0 + ¬X3·X2·X1·¬X0

¬X3·¬X0 genera los mintérminos: m0, m2, m4, m6

X2·X1·X0 m7, m15

¬X3·X1·X0 m3, m7

X3·¬X2·X0 m9 y m11

X3·¬X1·X0 m9 y m13

Diseño de Sistemas Lógicos 34

Método tabular de Quine–McCluskeyEntonces F = (0, 2, 3, 4, 6, 7, 9, 11, 13, 15)

0110

0110

1101

1101

X0

X1

X2

X3

Implicantes esenciales¬X3·¬X0 y X3·X0

Implicantes primos y esenciales identificados con K arnaugh

Implicantes Primos¬X3·X1; ¬X3·¬X0; X3·X0; X1·X0

Page 18: Síntesis Logica

18

Diseño de Sistemas Lógicos 35

Generación de implicantes primos� A partir de la expresión canónica conjuntiva, se determina el índice de

cada término. El índice es el número de componentes que contengan uno.

730111m7

1131011m11

4

3

2

2

2

1

1

0

índice

151111m15

131101m13

91001m9

60110m6

30011m3

40100m4

20010m2

00000m0

valor decimalcódigominterms

Diseño de Sistemas Lógicos 36

Generación de implicantes primos

� Se itera combinando términos mediante la aplicación de la siguiente regla:

Los términos a combinar no deben diferir entre si, másque en el estado de una de las variables, la cuál será sustituida

por un guión

Page 19: Síntesis Logica

19

Diseño de Sistemas Lógicos 37

Generación de implicantes primos

1_11m(11,15)

_111m(7,15)

1_01m(9,13)m15

11_1

10_1

011_

_011

0_11

01_0

0_10

001_

0_00

00_0

m(13,15)

m(9,11)

m(6,7)

m(3,11)

m(3,7)

m(4,6)

m(2,6)

m(2,3)

m(0,4)

m(0,2)

Implicantes de tam. 2

m7

m11

m13

m9

m6

m3

0_1_m(2,3,6,7)m4

0__0m(0,4,2,6) m2

0__0m(0,2,4,6)m0

Implicantes de tam. 4

minterms

elimina

Diseño de Sistemas Lógicos 38

Generación de implicantes primos

1_11m(11,15)

_111m(7,15)

1_01m(9,13)m15

11_1

10_1

011_

_011

0_11

01_0

0_10

001_

0_00

00_0

m(13,15)

m(9,11)

m(6,7)

m(3,11)

m(3,7)

m(4,6)

m(2,6)

m(2,3)

m(0,4)

m(0,2)

Implicantes de tam. 2

m7

m11

m13

m9

__11m(3,11,7,15)m6

__11m(3,7,11,15)m3

0_1_m(2,3,6,7)m4

0__0m(0,4,2,6) m2

0__0m(0,2,4,6)m0

Implicantes de tam. 4

minterms

elimina

elimina

Page 20: Síntesis Logica

20

Diseño de Sistemas Lógicos 39

Generación de implicantes primos

1_11m(11,15)

_111m(7,15)

1_01m(9,13)m15

11_1

10_1

011_

_011

0_11

01_0

0_10

001_

0_00

00_0

m(13,15)

m(9,11)

m(6,7)

m(3,11)

m(3,7)

m(4,6)

m(2,6)

m(2,3)

m(0,4)

m(0,2)

Implicantes de tam. 2

1__1m(9,13,11,15)m7

m11

m13

1__1m(9,11,13,15)m9

__11m(3,11,7,15)m6

__11m(3,7,11,15)m3

0_1_m(2,3,6,7)m4

0__0m(0,4,2,6) m2

0__0m(0,2,4,6)m0

Implicantes de tam. 4

minterms

elimina

elimina

elimina

Implicantes primos encontrados¬X3·¬X0; ¬X3·X1; X1·X0; X3·X0

Diseño de Sistemas Lógicos 40

Generación de cobertura mínima

� Se construye tabla de modo que:� filas son los implicantes primos encontrados.

� columnas los mintérminos de la función.

� identifica los mintérminos cubiertos por los implicantes primos

x

x

m6

x

m4

x

x

m3

x

x

m2

x

m0

x

x

m11

x

m9

x

x

m7

x

m13

xm(9,11,13,15)

xm(3,7,11,15)

m(2,3,6,7)

m(0,2,4,6)

m15

a

bc

d

Page 21: Síntesis Logica

21

Diseño de Sistemas Lógicos 41

Generación de cobertura mínima

� Identificar implicantes esenciales y generar tabla reducida

x

x

m6

x

m4

x

x

m3

x

x

m2

x

m0

x

x

m11

x

m9

x

x

m7

x

m13

xm(9,11,13,15)

xm(3,7,11,15)

m(2,3,6,7)

m(0,2,4,6)

m15

a

bc

d

Diseño de Sistemas Lógicos 42

Generación de cobertura mínima

� Identificar implicantes esenciales y generar tabla reducida

x

x

m6

x

m4

x

x

m3

x

x

m2

x

m0

x

x

m11

x

m9

x

x

m7

x

m13

xm(9,11,13,15)

xm(3,7,11,15)

m(2,3,6,7)

m(0,2,4,6)

m15

a

bc

d

x

x

m3

x

x

m7

m(3,7,11,15)

m(2,3,6,7)bc

Tabla reducida

Page 22: Síntesis Logica

22

Diseño de Sistemas Lógicos 43

Generación de cobertura mínima

� Reglas para tabla reducida:

� Dos implicantes primos son intercambiables si poseen el mismo costo.

� Se dice que un implicante primo y domina a otro z, si tiene todas las marcas de z y alguna adicional.

� Tras eliminar las filas se busca implicantes esenciales: el único que cubre una columna

� Si no quedan cubiertos todos los mintérminos se repite el proceso.

Diseño de Sistemas Lógicos 44

Generación de cobertura mínima

x

x

m3

x

x

m7

m(3,7,11,15)

m(2,3,6,7)bc

En nuestro ejemplo son intercambiables

Solución es a·d·(b+c), entonces

F = ¬X3·¬X0 + X3·X0 + ¬X3·X1

F = ¬X3·¬X0 + X3·X0 + X1·X0

o bien

Page 23: Síntesis Logica

23

Diseño de Sistemas Lógicos 45

Algoritmo de Quine–McCluskey

� Si bien el algoritmo de Quine–McCluskey se puede implementar en un programa, su complejidad temporal y espacial no son buenas (exponencial). Es un método exhaustivo, es decir que agota todas las posibilidades.

� Para resolver problemas de muchas variables se deben usar métodos heurísticos sub-óptimos.

Diseño de Sistemas Lógicos 46

Espresso

� Espresso es el algoritmo estándar de síntesis automática de funciones booleanas.� Es un algoritmo greedy que aplica operaciones

iterativamente� Se parte de diferentes puntos y se aplican

operaciones hasta que no haya mejoras� Se puede caer en mínimos locales

Page 24: Síntesis Logica

24

Diseño de Sistemas Lógicos 47

Espresso

� Espresso esta disponible en la web como código open-source:� http://diamond.gem.valpo.edu/~dhart/ece110/espr

esso/tutorial.html Programa para bajar más instrucciones sobre cómo operarlo.

� http://embedded.eecs.berkeley.edu/pubs/downloads/espresso/index.htm El código fuente original se puede bajar de la página de Berkeley.