7-Sistemas Combinacionales

59
ELO211: Sistemas Digitales Tomás Arredondo Vidal 1er Semestre – 2006 Este material está basado en: textos y material de apoyo: Contemporary Logic Design 1 st / 2 nd edition. Gaetano Borriello and Randy Katz. Prentice Hall, 1994, 2005 material del curso ELO211 del Prof. Leopoldo Silva material en el sitio http://es.wikipedia.org 7: Combinacionales 1

Transcript of 7-Sistemas Combinacionales

Page 1: 7-Sistemas Combinacionales

ELO211: Sistemas Digitales

Tomás Arredondo Vidal1er Semestre – 2006

Este material está basado en:

textos y material de apoyo: Contemporary Logic Design 1st / 2nd edition. Gaetano Borriello and Randy Katz. Prentice Hall, 1994, 2005

material del curso ELO211 del Prof. Leopoldo Silvamaterial en el sitio http://es.wikipedia.org

7: Combinacionales 1

Page 2: 7-Sistemas Combinacionales

7-Sistemas Combinacionales

7.1 Introducción7.2 Multiplexores, Demultiplexores,

Decodificador7.3 PLAs, PALs, ROMs7.4 FPGAs7.5 HDLs

7: Combinacionales 2

Page 3: 7-Sistemas Combinacionales

Introducción: Componentes básicos

7: Combinacionales 3

Transistores se integraron en compuertas (1960s)Catálogos de compuertas comunes (1970s)

TI Logic Data Booklistas de los típicos paquetes de chips y sus caracterizaciones (retardos, consumo)paquetes típicos en chips de 14 pins

• 6 inversores, 4 compuertas NANDS, 4 compuertas XOR

Cambios (rediseños) a estos diseños son difíciles de hacer

Hay que reconectar partes o puede necesitar mas componentesse diseñaba con compuertas extras en cada placa por si fuera necesario usarlas

Page 4: 7-Sistemas Combinacionales

Introducción: Bloques multi-uso

Hoy muy pocos de estas chips se utilizanPero, bibliotecas de estas compuertas se usan para diseñar nuevos chips

se reutilizan las compuertas ya caracterizadas las compuertas no existen en inventario se crean a medida que se van necesitando

Hoy se usan componentes de lógica programablese gana en flexibilidadtiempos mas cortos de diseñomas difícil de analizar en términos de compuertas especificasse analiza usando bloques multi-uso mas grandes

7: Combinacionales 4

Page 5: 7-Sistemas Combinacionales

7-Sistemas Combinacionales

7.1 Introducción7.2 Multiplexores, Demultiplexores,

Decodificadores7.3 PLAs, PALs, ROMs7.4 FPGAs7.5 HDLs

7: Combinacionales 5

Page 6: 7-Sistemas Combinacionales

Mux/Demux

7: Combinacionales 6

multiplexor demultiplexor switch 4x4

control control

Se usan para conectar y rutearMuchos inputs a un output - multiplexorUn input a muchos outputs – demultiplexorSe pueden usan para conectar entre diferentes fuentes y destinos

A

B

Y

Z

Page 7: 7-Sistemas Combinacionales

Mux y demux (cont'd)

Uso de multiplexor/demultiplexor en conexiones multi-punto (como en este sumador)

MUX

A B

Sum

Ss

B0

MUX

DEMUX

B1A0 A1

S0 S1

Sa Sb múltiples fuentes de input

múltiple destinos de output

7: Combinacionales 7

Page 8: 7-Sistemas Combinacionales

Multiplexores

dos formas alternativaspara una tabla de verdad Mux 2:1

forma funcional

forma lógica

A Z0 I01 I1

I1 I0 A Z0 0 0 00 0 1 00 1 0 10 1 1 01 0 0 01 0 1 11 1 0 11 1 1 1

Z = A' I0 + A I1

Multiplexores: concepto general2n data inputs, n inputs de control inputs, 1 outputse usan para conectar 2n puntos a un de punto salidapatrón de control binario indexa cual input se conecta al output

7: Combinacionales 8

Page 9: 7-Sistemas Combinacionales

Multiplexores (cont'd)

2 -1I0I1I2I3I4I5I6I7

A B C

8:1mux

Z

I0I1I2I3

A B

4:1mux ZI0

I1

A

2:1mux Z

k=0

n

2:1 mux: Z = A'I0 + AI1

4:1 mux: Z = A'B'I0 + A'BI1 + AB'I2 + ABI3

8:1 mux: Z = A'B'C'I0 + A'B'CI1 + A'BC'I2 + A'BCI3 +AB'C'I4 + AB'CI5 + ABC'I6 + ABCI7

En general: Z = Σ (mkIk)

sumatoria de minterms para un 2n:1 Mux

7: Combinacionales 9

Page 10: 7-Sistemas Combinacionales

Implementación de multiplexores usando compuertas

7: Combinacionales 10

2:1 mux

4:1 mux

Page 11: 7-Sistemas Combinacionales

Multiplexores en cascada

7: Combinacionales 11

señales de control B y C simultáneamente seleccionanuna de I0, I1, I2, I3 y una de I4, I5, I6, I7

señal de control A elige cual de los outputsde los mux’s se envia a Z

implementación alternativa

C

Z

A B

4:1mux

2:1mux

2:1mux

2:1mux

2:1mux

I4I5

I2I3

I0I1

I6I7

8:1mux

Se pueden implementar multiplexores mas grandes usando multiplexores mas pequeños en cascada

Z

I0I1I2I3

A

I4I5I6I7

B C

4:1mux

4:1mux

2:1mux

8:1mux

Page 12: 7-Sistemas Combinacionales

Multiplexores para implementar funcionesUn multiplexor 2n:1 puede implementar cualquiera función de n variables

con las variables usadas como inputs de control ylos inputs de datos con 0 o 1básicamente, una tabla de referencia

Ejemplo:F(A,B,C) = m0 + m2 + m6 + m7

= A'B'C' + A'BC' + ABC' + ABC

= A'B'C'(1) + A'B'C(0) + A'BC'(1) + A'BC(0) + AB'C'(0) + AB'C(0) + ABC'(1) + ABC(1)

Z = A'B'C'I0 + A'B'CI1 + A'BC'I2 + A'BCI3 +AB'C'I4 + AB'CI5 + ABC'I6 + ABCI7

CA B

01234567S2

8:1 MUX

S1 S0

Z

10100011

F

7: Combinacionales 12

Page 13: 7-Sistemas Combinacionales

Multiplexores para implementar funcionesUn multiplexor 2n-1:1 puede implementar cualquier función de n variables

con n-1 variables usadas como inputs de control ylos inputs de datos con la ultima variable o su complemento

Ejemplo:F(A,B,C) = m0 + m2 + m6 + m7

= A'B'C' + A'BC' + ABC' + ABC= A'B'(C') + A'B(C') + AB'(0) + AB(1)

F

CA B

01234567

10100011

S2

8:1 MUX

S1 S0

A B C F0 0 0 10 0 1 00 1 0 10 1 1 01 0 0 01 0 1 01 1 0 11 1 1 1

C'

C'

0

1 A B

S1 S0

F0123

4:1 MUX

C'C'01

7: Combinacionales 13

Page 14: 7-Sistemas Combinacionales

Multiplexores para implementar funciones

Generalización

Ejemplo: G(A,B,C,D)se puede realizar con un MUX 8:1

n-1 variables decontrol

una variable de datos

cuatro posiblesconfiguracionesde filas de la tabla de verdad se pueden expresar comouna función de In

I0 I1 . . . In-1 In F

. . . . 0 0 0 1 1

. . . . 1 0 1 0 1

0 In In' 1

7: Combinacionales 14

elegir A,B,C comovariables de control

CA B

01234567

1D01D’DD’D’

S2

8:1 MUX

S1 S0

A B C D G0 0 0 0 10 0 0 1 10 0 1 0 00 0 1 1 10 1 0 0 00 1 0 1 00 1 1 0 10 1 1 1 11 0 0 0 11 0 0 1 01 0 1 0 01 0 1 1 11 1 0 0 11 1 0 1 01 1 1 0 11 1 1 1 0

1

D

0

1

D'

D

D’

D’

Page 15: 7-Sistemas Combinacionales

Actividad

Realizar F = B’CD’ + ABC’ con un 4:1 multiplexor y un minimo numero de compuertas:

7: Combinacionales 15

A B C D Z0 0 0 0 00 0 0 1 00 0 1 0 10 0 1 1 00 1 0 0 00 1 0 1 00 1 1 0 00 1 1 1 01 0 0 0 01 0 0 1 01 0 1 0 11 0 1 1 01 1 0 0 11 1 0 1 11 1 1 0 01 1 1 1 0

0 when B’C’

D’ when B’C

A when BC’

0 when BC

Z = B’C’(0) + B’C(D’) + BC’(A) + BC(0)

B C

S1 S0

F0123

4:1 MUX

0D’A0

Page 16: 7-Sistemas Combinacionales

Demultiplexor/decodificador

Decodificador/demultiplexor: concepto generalun input de datos, n inputs de control, 2n outputsinputs de control (llamado “selects” (S)) representan index binario de cual output se conecta el inputinput de datos típicamente se llama “enable” (G)

1:2 Decoder:O0 = G • S’O1 = G • S

3:8 Decoder: O0 = G • S2’ • S1’ • S0’O1 = G • S2’ • S1’ • S0O2 = G • S2’ • S1 • S0’O3 = G • S2’ • S1 • S0O4 = G • S2 • S1’ • S0’O5 = G • S2 • S1’ • S0O6 = G • S2 • S1 • S0’O7 = G • S2 • S1 • S0

2:4 Decoder: O0 = G • S1’ • S0’O1 = G • S1’ • S0O2 = G • S1 • S0’O3 = G • S1 • S0

7: Combinacionales 16

Page 17: 7-Sistemas Combinacionales

Implementación de demultiplexores

7: Combinacionales 17

active-high enable

active-low enable

active-high enable

active-low enable

O0G

S

O1

O0\G

S

O1

S1

O2

O3

O0G

O1

S0 S1

O2

O3

O0\G

O1

S0

decodificador 1:2

decodificador 2:4

Page 18: 7-Sistemas Combinacionales

Demultiplexores para implementar funciones

Un decoder n:2n puede implementar cualquier función de n variables

con las variables usadas como inputs de controllos inputs de enable conectados a 1los minterms sumados para formar la función

A'B'C'A'B'CA'BC'A'BCAB'C'AB'CABC'ABC

CA B

01234567

S2

3:8 DEC

S1 S0

“1”

demultiplexor genéra minterms apropiadosbasados en las señales de control ("decodifica" señales de control)

7: Combinacionales 18

Page 19: 7-Sistemas Combinacionales

Demultiplexores para implementar funciones

F1

F2

F3

F1 = A'BC'D + A'B'CD + ABCDF2 = ABC'D' + ABCF3 = (A' + B' + C' + D')

A B

0 A'B'C'D'1 A'B'C'D2 A'B'CD'3 A'B'CD4 A'BC'D'5 A'BC'D6 A'BCD'7 A'BCD8 AB'C'D'9 AB'C'D10 AB'CD'11 AB'CD12 ABC'D'13 ABC'D14 ABCD'15 ABCD

4:16DECEnable

C D7: Combinacionales 19

Page 20: 7-Sistemas Combinacionales

Decodificadores en cascada

0 A'B'C'D'E'1234567

S2

3:8 DEC

S1 S0

A B

0123S1

2:4 DEC

S0

F

012 A'BC'DE'34567

S2

3:8 DEC

S1 S0

EC D

0 AB'C'D'E'1234567 AB'CDE

decodificador 5:32decodificador 1x2:4decodificador 4x3:8

3:8 DEC

01234567 ABCDE

EC D

S2 S1 S0 S2

3:8 DEC

S1 S0

7: Combinacionales 20

Page 21: 7-Sistemas Combinacionales

7-Sistemas Combinacionales

7.1 Introducción7.2 Multiplexores, Demultiplexores,

Decodificador7.3 PLAs, PALs, ROMs7.4 FPGAs7.5 HDLs

7: Combinacionales 21

Page 22: 7-Sistemas Combinacionales

Programmable logic arraysBloque constructivo de lógica de muchas compuertas AND/OR

en realidad se usan NOR o NAND"personalizado" al hacer/romper conexiones entre las compuertasdiagrama de PLA para forma suma de productos

7: Combinacionales 22

• • •

inputs

ANDarray

• • •

outputs

ORarrayproduct

terms

Page 23: 7-Sistemas Combinacionales

PLAs: Concepto que permite implementación

Términos de productos son compartidos entre los outputs

ejemplo:F0 = A + B' C'F1 = A C' + A BF2 = B' C' + A BF3 = B' C + A

personality matrix 1 = uncomplemented in term0 = complemented in term– = does not participate

1 = term connected to output0 = no connection to output

input side:

output side:

product inputs outputsterm A B C F0 F1 F2 F3

AB 1 1 – 0 1 1 0B'C – 0 1 0 0 0 1AC' 1 – 0 0 1 0 0B'C' – 0 0 1 0 1 0A 1 – – 1 0 0 1

reuso de terminos

7: Combinacionales 23

Page 24: 7-Sistemas Combinacionales

Antes de programarTodas las conexiones posibles están disponibles antes de “programar”

en realidad, todas las AND y ORs son NANDs

7: Combinacionales 24

Page 25: 7-Sistemas Combinacionales

Durante programación

7: Combinacionales 25

A B C

F1 F2 F3F0

AB

B'C

AC'

B'C'

A

Conexiones no deseadas se eliminanfuse (normalmente conectadas, se rompen esas no deseadas)anti-fuse (normalmente desconectadas, se hacen conexiones deseadas)

Page 26: 7-Sistemas Combinacionales

Representaciones alternativas

ejemplo:F0 = A B + A' B'F1 = C D' + C' D

AB+A'B'CD'+C'D

AB

A'B'

CD'

C'D

A B C D

Mas corta para no tener que dibujar todos los cable

significa conexión esta presente y señal perpendicular es input a una compuerta

7: Combinacionales 26

Page 27: 7-Sistemas Combinacionales

PLA: ejemplo

7: Combinacionales 27

A'B'C'

A'B'C

A'BC'

A'BC

AB'C'

AB'C

ABC'

ABC

A B C

F1 F2 F3 F4 F5F6

full decoder as for memory address

bits stored in memory

Múltiples funciones usando A, B, CF1 = A B CF2 = A + B + CF3 = A' B' C'F4 = A' + B' + C'F5 = A xor B xor CF6 = A xnor B xnor C

A B C F1 F2 F3 F4 F5 F60 0 0 0 0 1 1 0 00 0 1 0 1 0 1 1 10 1 0 0 1 0 1 1 10 1 1 0 1 0 1 0 01 0 0 0 1 0 1 1 11 0 1 0 1 0 1 0 01 1 0 0 1 0 1 0 01 1 1 1 1 0 0 1 1

Page 28: 7-Sistemas Combinacionales

PALs y PLAs

7: Combinacionales 28

una columna del arreglo ORsolo tiene acceso a un

subconjunto del los posibles productos

Programmable logic array (PLA)lo que hemos visto hasta ahoraarreglos AND y OR generales, sin restricciones

Programmable array logic (PAL)topología del arreglo OR es restringida (eg. 8, 4, 2 ORs, numero de inputs fijo para cada OR) plano de ORs es mas rápido y pequeñotodos los términos de los productos no se comparten entre los ouputs

Page 29: 7-Sistemas Combinacionales

Ejemplo: PALs y PLAs

Conversor de código BCD a GrayA B C D W X Y Z0 0 0 0 0 0 0 00 0 0 1 0 0 0 10 0 1 0 0 0 1 10 0 1 1 0 0 1 00 1 0 0 0 1 1 00 1 0 1 1 1 1 00 1 1 0 1 0 1 00 1 1 1 1 0 1 11 0 0 0 1 0 0 11 0 0 1 1 0 0 01 0 1 – – – – –1 1 – – – – – –

funciones minimizadas:

W = A + BD + BCX = BC'Y = B + CZ = A'B'C'D + BCD + AD' + B'CD'

7: Combinacionales 29

Page 30: 7-Sistemas Combinacionales

Ejemplo: PALs y PLAs (cont)

Conversor de código: PLAfunciones minimizadas:

W = A + BD + BCX = B C'Y = B + CZ = A'B'C'D + BCD + AD' + B'CD'

A B C D

A

BD

BC

BC'

B

C

A'B'C'D

BCD

AD'

BCD'

W X Y Z

no es un buen candidato para implementación en PLA

ya que los términos no soncompartidos entre los outputs

pero la implementación es muchomas compacta y regular que usando

compuertas AND y OR discretas

7: Combinacionales 30

Page 31: 7-Sistemas Combinacionales

Ejemplo: PALs y PLAs (cont)Conversor de código: PAL

A

BD

BC

0

BC'

0

0

0

B

C

0

0

A'B'C'D

BCD

AD'

B'CD'

W X Y Z

A B C D

4 términos de productos por cada

compuerta OR

7: Combinacionales 31

Page 32: 7-Sistemas Combinacionales

Ejemplo: PALs y PLAs (cont)Conversor de código: implementación con compuertas individuales NAND

se pierde regularidad, mas difícil de entendermas difícil hacer cambios

7: Combinacionales 32

W

X

Y

Z

B

B

B

B

B

B

\BC

C

C

A

AA

D

D

\D

\D

D

C

C

Page 33: 7-Sistemas Combinacionales

Ejemplo2: PALs y PLAsComparador AB vs CD

EQ NE LT GT

A'B'C'D'

A'BC'D

ABCD

AB'CD'

AC'

A'C

B'D

BD'

A'B'D

B'CD

ABC

BC'D'

A B C D

7: Combinacionales 33

A B C D EQ NE LT GT0 0 0 0 1 0 0 00 0 0 1 0 1 1 00 0 1 0 0 1 1 00 0 1 1 0 1 1 00 1 0 0 0 1 0 10 1 0 1 1 0 0 00 1 1 0 0 1 1 00 1 1 1 0 1 1 01 0 0 0 0 1 0 11 0 0 1 0 1 0 11 0 1 0 1 0 0 01 0 1 1 0 1 1 01 1 0 0 0 1 0 11 1 0 1 0 1 0 11 1 1 0 0 1 0 11 1 1 1 1 0 0 0

funciones minimizadas:EQ = A’B’C’D’ + A’BC’D + ABCD + AB’CD’ NE = AC’ + A’C + B’D + BD’LT = A’C + A’B’D + B’CD GT = AC’ + ABC + BC’D’

Page 34: 7-Sistemas Combinacionales

Actividad

Mapear las funciones a un PLA:W = AB + A’C’ + BC’X = ABC + AB’ + A’BY = ABC’ + BC + B’C’

A B C

W X Y7: Combinacionales 34

Page 35: 7-Sistemas Combinacionales

W = AB + A’C’ + BC’X = ABC + AB’ + A’BY = ABC’ + BC + B’C’

Actividad (cont)

9 términos no caben en PLA de 7 términosse puede usar teorema de consensoa W para simplificar a:W = AB + A’C’

8 términos no caben en PLA de 7 términosobserve que AB = ABC + ABC’reescribir W para reutilizar términos:W = ABC + ABC’ + A’C’

Ahora cabeW = ABC + ABC’ + A’C’X = ABC + AB’ + A’BY = ABC’ + BC + B’C’

Esto es mapeo de tecnologíamanipular funciones lógicas para poder usarrecursos disponibles

ABC

ABC’

A’C’

AB’

A’B

BC

B’C’

A B C

W X Y

7: Combinacionales 35

Page 36: 7-Sistemas Combinacionales

Read-only memories (ROM)

7: Combinacionales 36

decoder

0 n-1

Address

2 -1n

0

1 1 1 1

word[i] = 0011

word[j] = 1010

lineas de bits (normalmente subido a 1 a través de resistor – selectivamente conectado a zero por los switches controladospor las palabras)

j

i

líneas de palabras (solo unas es activa – decoder se usa por eso)

Arreglo bidimensional de 1s y 0sentrada (fila) se llama palabra ("word“)ancho de fila = word-sizeíndice es dirección ("address“)dirección es inputpalabra seleccionada es output

ROM: organizacion interna

Page 37: 7-Sistemas Combinacionales

ROMs y lógica combinacional

Implementando lógica combinacional con un ROM (forma canónica de dos niveles)

F0 = A' B' C + A B' C' + A B' C

F1 = A' B' C + A' B C' + A B C

F2 = A' B' C' + A' B' C + A B' C'

F3 = A' B C + A B' C' + A B C'

truth table

A B C F0 F1 F2 F30 0 0 0 0 1 00 0 1 1 1 1 00 1 0 0 1 0 00 1 1 0 0 0 11 0 0 1 0 1 11 0 1 1 0 0 01 1 0 0 0 0 11 1 1 0 1 0 0

block diagram

ROM8 words x 4 bits/word

address outputsA B C F0F1F2F3

7: Combinacionales 37

Page 38: 7-Sistemas Combinacionales

Estructura de ROMSimilar a PLA pero con un arreglo AND completamente decodificado

Arreglo OR completamente flexiblen address lines

• • •

inputs

decoder 2n wordlines

• • •

outputs

memoryarray

(2n wordsby m bits)

m data lines

7: Combinacionales 38

Page 39: 7-Sistemas Combinacionales

ROM vs. PLA

7: Combinacionales 39

ROM ventajoso cuandotiempo de diseño es corto (no hay que minimizar funciones de output)la mayoría de combinaciones de input se necesitan (e.g., conversores de código)no se comparten los productos

problemas ROMtamaño se duplica para cada input adicionalno se pueden utilizar don't cares

PLA ventajoso cuandohay herramientas para multi-output minimizaciónhay pocas combinaciones única de mintermsmuchos minterms son compartidos entre las funciones de output

problemas PALrestricciones de fan-ins en plano OR

Page 40: 7-Sistemas Combinacionales

Estructuras lógicas: ROM, PAL, PLA

7: Combinacionales 40

ROM – plano AND completo, plano OR generalbarato (componente de alto volumen)puede implementar cualquiera función de n inputsvelocidad media

PAL – plano AND programable, plano OR fijocosto intermediopuede implementar funciones con numero de términos limitadosalta velocidad (solo un plano programable)

PLA – planos AND y OR programmablesmas caro (complejo en diseño, herramientas mas sofisticadas)puede implementar cualquiera función has un limite de términoslento (dos planos programables)

Page 41: 7-Sistemas Combinacionales

Estructuras lógicas: ROM, PAL, PLA

Difícil lograr una estructura regular (celda o cell) para la conexión arbitraria para conexiones entre diferentes tipos de compuertas

requerimientos de eficiencia/velocidadfield programmable gate arrays (FPGAs) usan ese tipo de estructuras programables multi-nivel• multiplexores programables para conexiones• tablas de referencia para funciones lógicas• celdas multi-uso (utilización es lo importante)

Se pueden usar múltiples niveles de PALs/PLAs/ROMsoutput es resultado intermediose hace un input para ser usado en otra lógica

7: Combinacionales 41

Page 42: 7-Sistemas Combinacionales

7-Sistemas Combinacionales

7.1 Introducción7.2 Multiplexores, Demultiplexores,

Decodificador7.3 PLAs, PALs, ROMs7.4 FPGAs7.5 HDLs

7: Combinacionales 42

Page 43: 7-Sistemas Combinacionales

FPGA (Field Programmable Gate Arrays)

Dispositivos basados en arreglos bidimensionales de bloques lógicos y flip-flopsInterconexiones entre bloques, funciones lógicas y de control son programables usando HDLAlgunos tienen memoria y procesadores incorporadosAlgunos fabricantes proporcionan el código HDL de microprocesadores de 16 y 32 bits, unidades multiplicación y acumulación para implementar diferentes aplicaciones (e.g. filtros digitales)Diferentes opciones para los bloques lógicos incluyen: pares de transistores, compuertas NAND de dos entradas, compuertas AND y XOR, multiplexores y tablas de búsqueda 7: Combinacionales 43

Page 44: 7-Sistemas Combinacionales

FPGA (Field Programmable Gate Arrays)

7: Combinacionales 44

Ejemplo: celda basada en multiplexores

Esta celda es de 8 entradas y una salida implementa:f = (s0 + s1)’(sA’A0+sAA1)(s0 + s1)(sB’B0+sBB1)Esta celda puede implementar todas las funciones de dos variables, todas las de tres con al menos unas sin complementar, muchas de cuatro y hasta algunas de ocho

Page 45: 7-Sistemas Combinacionales

FPGA (Field Programmable Gate Arrays)Ejemplo: celda basada en tabla de búsqueda (LUT)

Esta celda es de 4 entradas y puede implementar cualquier función de cuatro variables

7: Combinacionales 45

Para su funcionamiento primero se graba la tabla de búsqueda con la tabla de verdad de la función, se direcciona usando el decodificadorUna ves configurada, se usa el multiplexor con la combinación de las variables de entrada y en la salida se obtiene el bit almacenado

Page 46: 7-Sistemas Combinacionales

FPGA (Field Programmable Gate Arrays)

7: Combinacionales 46

Ejemplo: implementación de función de cuatro variables usando celdas LUT de 3 variables: f = x2’x3 + x1’x2x3’ + x2x3’x4 + x1x2’x4’Usando el Teorema de Shannon:

Finalmente:

Page 47: 7-Sistemas Combinacionales

FPGA: Etapas de trabajoPara trabajar con FPGAs es necesario ingresar el diseño usando esquemáticos o usando un lenguaje HDL como Verilog o VHDL. Esta etapa es codificación.Luego se compila y simula el diseño de la cual se puede verificar el diseño lógico y el flujo de datosLuego se ejecuta la fase de síntesis, que implementa el diseño en compuertas básicas, minimizando las ecuacionesLa próxima fase el mapeo tecnológico, que implementa las ecuaciones con los elementos lógicos disponibles. También se hacen las localicaciones de los componentes y los enrutamientos y conexiones entre los componentes (place and route)Se ejecutan simulaciones temporales usando el diseño finalFinalmente se genera un archivo binario el cual se graba en el dispositivo.

7: Combinacionales 47

Page 48: 7-Sistemas Combinacionales

7-Sistemas Combinacionales

7.1 Introducción7.2 Multiplexores, Demultiplexores,

Decodificador7.3 PLAs, PALs, ROMs7.4 FPGAs7.5 HDLs

7: Combinacionales 48

Page 49: 7-Sistemas Combinacionales

HDLs (Hardware description languages)

Describen hardware en diferentes niveles de abstracciónDescripción estructural

reemplazo textual para una esquemáticacomposición jerárquica de módulos desde elementos primitivos

Descripción de Comportamiento y Funcionaldescribe lo que hace un modulo no los componentes específicosla etapa de síntesis genera el circuito para el modulo

Requerimientos para la simulacióncircuito de prueba

7: Combinacionales 49

Page 50: 7-Sistemas Combinacionales

HDLsAbel (circa 1983) – desarrollado por Data-I/O

usado para PLUsprincipalmente para maquinas de estados

ISP (circa 1977) – proyecto de CMUsimulación, pero no síntesis

Verilog (circa 1985) – desarrollado por Gateway (absorvido por Cadence)

similar a Pascal y Ceficiente y facil de usarstandard de IEEE

VHDL (circa 1987) – desarrollado por DoD de USAsimilar a Ada muy general pero complejostandard de IEEE

7: Combinacionales 50

Page 51: 7-Sistemas Combinacionales

VerilogPermite descripción estructurales y de comportamientoEstructural

estructura explicita del circuitoe.g., cada compuerta es instanciada y conectada a otras

Comportamientoprograma describe input/output del circuitopueden haber muchas implementaciones del mismo comportamientoe.g., diferentes implementaciones de una función Booleana

7: Combinacionales 51

Page 52: 7-Sistemas Combinacionales

Modelo Estructural

module xor_gate (out, a, b);input a, b;output out;wire abar, bbar, t1, t2;

inverter invA (abar, a);inverter invB (bbar, b);and_gate and1 (t1, a, bbar);and_gate and2 (t2, b, abar);or_gate or1 (out, t1, t2);

endmodule

7: Combinacionales 52

Page 53: 7-Sistemas Combinacionales

Modelo simple de comportamiento

Asignación continua

module xor_gate (out, a, b);input a, b;output out;reg out;

assign #6 out = a ^ b;

endmoduleretardo desde cambio en inputhasta cambio en output

registro de simulación –contiene valor de senal

7: Combinacionales 53

Page 54: 7-Sistemas Combinacionales

Modelo simple de comportamiento

bloque alwaysmodule xor_gate (out, a, b);input a, b;output out;reg out;

always @(a or b) begin#6 out = a ^ b;

end

endmodule especifica cuando se ejecuta el bloque ie. determinado por que señales

7: Combinacionales 54

Page 55: 7-Sistemas Combinacionales

Activando la simulación usando un banco de prueba (testbench)

7: Combinacionales 55

module testbench (x, y);output x, y;reg [1:0] cnt;

initial begincnt = 0;repeat (4) begin#10 cnt = cnt + 1;$display ("@ time=%d, x=%b, y=%b, cnt=%b",

$time, x, y, cnt); end#10 $finish;

end

assign x = cnt[1];assign y = cnt[0];

endmodule

vector de 2-bits

bloque inicial se ejecuta una vez al inicio de la simulación

directiva de detener simulación

imprimir a consola

Page 56: 7-Sistemas Combinacionales

Simulación completa

Instanciar componente de estimulo y componente para probar circuito

a

b

ztest-bench

xy

7: Combinacionales 56

Page 57: 7-Sistemas Combinacionales

Ejemplo comparador

module Compare1 (Equal, Alarger, Blarger, A, B);input A, B;output Equal, Alarger, Blarger;

assign #5 Equal = (A & B) | (~A & ~B);assign #3 Alarger = (A & ~B);assign #3 Blarger = (~A & B);

endmodule

7: Combinacionales 57

Page 58: 7-Sistemas Combinacionales

Modelo de comportamiento mas complejo

7: Combinacionales 58

module life (n0, n1, n2, n3, n4, n5, n6, n7, self, out);input n0, n1, n2, n3, n4, n5, n6, n7, self;output out;reg out;reg [7:0] neighbors;reg [3:0] count;reg [3:0] i;

assign neighbors = {n7, n6, n5, n4, n3, n2, n1, n0};

always @(neighbors or self) begincount = 0;for (i = 0; i < 8; i = i+1) count = count + neighbors[i];out = (count == 3);out = out | ((self == 1) & (count == 2));

end

endmodule

Page 59: 7-Sistemas Combinacionales

HDL vs lenguajes de programación

7: Combinacionales 59

Estructura de programainstanciar múltiples componentes al mismo tiempoespecifican interconexión de módulos vía esquemáticajerarquía de módulos encapsulan bloques funcionales

Asignaciónasignación continua (lógica siempre calcula)retardos de propagación (computación toma tiempo)efectos temporales de señales es importante

Estructuras de datostamaño explícitamente especificado - no hay estructuras dinámicasno hay punteros

Paralelismohardware es naturalmente paraleloasignaciones pueden ocurrir en paralelo (no solo secuencialmente)