lsdi 0708 slides p

86
M I E E C – Laboratório de Sistemas Digitais – 2007/08 1 Laboratório de Sistemas Digitais (EEC0006) Mestrado Integrado em Engenharia Electrotécnica e de Computadores 1º ano M I E E C – Laboratório de Sistemas Digitais – 2007/08 2 Representação de informação em binário Sistemas Digitais processam dados – Codificados apenas com “0” e “1” Um bit (binary digit): Duas coisas diferentes: números, cores, estados, etc... N bits: 2 N entidades diferentes Exemplo: com 3 bits: 000, 001, 010, 011, 100, 101, 110, 111 Como representar números usando “0” e “1”?

Upload: ruievmonteiro

Post on 05-Dec-2014

110 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: LSDI 0708 Slides P

M I E E C – Laboratório de Sistemas Digitais – 2007/08 1

Laboratório de Sistemas Digitais(EEC0006)

Mestrado Integrado em Engenharia Electrotécnica e de Computadores

1º ano

M I E E C – Laboratório de Sistemas Digitais – 2007/08 2

Representação de informaçãoem binário

• Sistemas Digitais processam dados– Codificados apenas com “0” e “1”

Um bit (binary digit): Duas coisas diferentes:números, cores, estados, etc...

N bits: 2N entidades diferentes

Exemplo: com 3 bits: 000, 001, 010, 011, 100, 101, 110, 111

Como representar números usando “0” e “1”?

Page 2: LSDI 0708 Slides P

M I E E C – Laboratório de Sistemas Digitais – 2007/08 3

Representação de números

• Números inteiros– Sistema posicional

Em base 10 (10 dígitos: 0,1,2,3,4,5,6,7, 8 e 9)

45210 = 4x102+5x101+2x100

Em base 2 (2 dígitos, 1 e 0)

11012 = 1x23+1x22 +0x21 +1x20 = 1310

Potências inteiras de 2

20=1, 21=2, 22=4, 23=8, ... 27=128, 28=256, ...

M I E E C – Laboratório de Sistemas Digitais – 2007/08 4

Representação de números

• Como representar um número em base 2?– Dividindo sucessivamente por 2:

37 217 18 21 0 9 2

1 4 20 2 2

0 1

Bit menos significativo (o da direita, LSB)

Bit mais significativo (o da esquerda, MSB)3710 = 1001012

Page 3: LSDI 0708 Slides P

M I E E C – Laboratório de Sistemas Digitais – 2007/08 5

Números fraccionários

• À direita do ponto fraccionário– Potências negativas da base:

Representar a parte fraccionária em base 2• Multiplicando sucessivamente por 2:

Em base 10:

35.7210 = 3x101+5x100 +7x10-1 +2x10-2

Em base 2:

110.1012 = 1x22+1x21 +0x20 +1x2-1 +0x2-2 +1x2-3

= 6.62510

0.7210 : 0.72x2 = 1.440.44x2 = 0.880.88x2 = 1.760.76x2 = 1.52 ...

M I E E C – Laboratório de Sistemas Digitais – 2007/08 6

Sistema octal (base 8)

• Caso especial porque 8=23

– cada dígito octal é representado por 3 bits• 2348 = 0100111002

• 67.158= 110111.0011012

– interesse: “compactar” representação binária

– exemplo: comando chmod (unix/linux)• chmod 542 filename

– muda permissões para r-xr---w- (5428=1011000102)

Page 4: LSDI 0708 Slides P

M I E E C – Laboratório de Sistemas Digitais – 2007/08 7

Sistema hexadecimal (base 16)

• Caso especial porque 16=24

– 16 dígitos: 0 a 9 e A a F (A vale 10, F vale 15)

– cada dígito hex é representado por 4 bits• 2B416 = 0010101101002

• AA.1C16= 10101010.000111002

– interesse: “compactar” representação binária

– mudanças entre base 8 e 16• fácil usando base 2!

M I E E C – Laboratório de Sistemas Digitais – 2007/08 8

Adição binária

4 3 4 78 9 1 4

1 3 2 6 1+

111 transporte0

1 1 0 10 1 0 0

1 0 0 0 1+

011 transporte0

um mais um dá dois (102)

escreve-se 0 e gera-se o transporte 1para a soma seguinte

1 34

1 7+

em decimal

Page 5: LSDI 0708 Slides P

M I E E C – Laboratório de Sistemas Digitais – 2007/08 9

Subtracção binária

1 1 0 1

1 0 1 01 1

-

adicionar o borrowao diminuidor

+ 10 1 1 0

1 1 0 10 1 1 0

1-

um para dois (102) dá 1

zero para um dá um

1 1 0 10 1 1 0

1 1-

borrow

1 01 0 0 10 1 1 0

1 1-

correcção

- 1

subtrair o borrowdo diminuendo

1 1

1 1 0 11 0 1 00 1 1 1

-

zero para um dá umum para um dá zero

1 0 0 10 1 1 0

1 1 1-

um para doisdá um e vai um...

borrow

1 0

usou-se um 1 do andar seguinte(gerou-se um borrow)

0 0 0 10 1 1 00 1 1 1

-

- 1

subtrair o borrowdo diminuendo

1

correcçãozero para zero dá zero

1 1 0 1

1 1 1 00 1 1 1

-+1

0 1 1 0

um para um dá zero

adicionar o borrowao diminuidor

M I E E C – Laboratório de Sistemas Digitais – 2007/08 10

Multiplicação binária

1 0 1 10 1 0 11 0 1 1

0 0 0 0 01 0 1 1 0 0

+ 0 0 0 0 0 0 00 1 1 0 1 1 1

x

zero vezes 1011

um vezes 1011

1 15

5 5x

em decimal

Multiplicar X por 2N

equivale a deslocar os bits de X de N posições para a esquerda

2610 = 00110102

26x4=10810 = 11010002

Page 6: LSDI 0708 Slides P

M I E E C – Laboratório de Sistemas Digitais – 2007/08 11

Divisão binária

1 0 0 1 0 1 1 1 1 0 1

0 0 0 0

divisor não cabe em 1divisor não cabe em 1001

...

1 0 0 1 0 1 10 1 1 0 10 0 1 0 1

1 1 0 1- 0 0 0 0 1

divisor já cabe em 10010subtrai divisorao dividendo

1 0 0 1 0 1 10 1 1 0 10 0 1 0 1 1

1 1 0 1- 0 0 0 0 1 0

divisor não cabe em 1011próximo dígito

1 0 0 1 0 1 10 1 1 0 10 0 1 0 1 1 10 0 0 1 1 0 10 0 0 1 0 1 0

1 1 0 1- 0 0 0 0 1 0 1

-

resto

quociente

próximo dígito

divisor já cabe em 10111subtrai divisorao dividendo

M I E E C – Laboratório de Sistemas Digitais – 2007/08 12

Dimensão de dados e overflow

1 0 0 10 0 1 11 1 0 0

+

1 1 0 00 1 1 1

1 0 0 1 1+

1 transporte = 1: ocorre overflow

( 1 2 )( 5 )( 3 )

( 9 )( 3 )

( 1 2 )

resultado com 4 bits incorrecto

resultado com 4 bits correcto

0 transporte = 0: não ocorre overflow

1 1 0 10 1 1 00 1 1 1

-

0 1 1 01 1 0 1

1 1 0 0 1-

1 borrow = 1: ocorre overflow

( 6 )( 1 3 )

( 9 )

( 1 3 )( 6 )( 7 )

resultado com 4 bits incorrecto

resultado com 4 bits correcto

0 borrow = 0: não ocorre overflow

Adição Subtracção

7

Page 7: LSDI 0708 Slides P

M I E E C – Laboratório de Sistemas Digitais – 2007/08 13

Números negativos

• Sinal e magnitude– 1 bit (MSB) para sinal: 1=negativo, 0=positivo

• Complemento para a base b (com N dígitos)– -X representa-se por Y (positivo) = bN-X

– em base 10 com 4 dígitos:

0 (1)0000

positivosnegativos

5000 (1)4999

zero(0000)

máximo positivo(4999)

máximo negativo(-5000)

M I E E C – Laboratório de Sistemas Digitais – 2007/08 14

Complemento para 10 (com 4 dígitos)

4999 (o maior positivo)

0000 00010002

2500

5000(representa –5000, o mais negativo)

9999 (-1)9998 (-2)

9997 (-3)

7500 (-2500)

positivosnegativos

9997 ( -3)+1345 (+1345)11341 (+1341)

4324 (+4324)+7456 (-2544)11780 (+1780)

4324 (+4324)+2151 (+2151)6475 (-3525)

overflow!

Algumas adições:

Page 8: LSDI 0708 Slides P

M I E E C – Laboratório de Sistemas Digitais – 2007/08 15

Complemento para 2 (com 4 bits)

0111 (o maior positivo)

0000 00010011

0100

1000(representa –8, o mais negativo)

1111 (-1)1110 (-2)

1101 (-3)

1100 (-4)positivosnegativos

1101 (-3)+0101 (+5)10010 (+2)

0010 (+2)+0100 (+4)0110 (+6)

0100 (+4)+0100 (+4)1000 (-8)

overflow!

Algumas adições:

1110 (-2)+1100 (-4)11010 (-6)

M I E E C – Laboratório de Sistemas Digitais – 2007/08 16

Complemento para a base

• Como trocar o sinal a um número?– -3452 representa-se por

• 10000-3452 = (9999-3452) + 1– complemento de um dígito d na base b como b-1-d

» em base 10: o complemento de d é 9-d

– trocar o sinal = complementar os dígitos todos e somar 1

• overflow: quando o resultado não cabe!– Somando dois números com o mesmo sinal o

resultado tem sinal diferente (“deu a volta”)

Page 9: LSDI 0708 Slides P

M I E E C – Laboratório de Sistemas Digitais – 2007/08 17

Complemento para 2• Numa representação com N bits

– -X representa-se por Y=2N-X

– intervalo de representação• [-2N-1, +2N-1-1] (ex. com 8 bits: -128, +127)

– Y é representado (N bits) por:• Y=bN-12N-1 +bN-22N-2+...b121+b020

– Se -X é negativo o seu valor é Y-2N

• -X = - 2N + bN-12N-1 + bN-22N-2 + ... + b121 + b020

• ou: -X = - bN-12N-1 + bN-22N-2 + ... + b121 + b020

Peso negativo do MSB

M I E E C – Laboratório de Sistemas Digitais – 2007/08 18

Complemento para 2 com 4 bits

0 (1)00002

positivosnegativos

10002 01112

zero máximo positivo(+7)

máximo negativo(-8)

Como trocar o sinal de um número?Como em base 10: complementar os dígitos e somar 1!

+5 = 0101 (com 4 bits)-5 = 24-5 = 10000-0101 =

(1111-0101) + 1 = 1010+1 = 1011

Page 10: LSDI 0708 Slides P

M I E E C – Laboratório de Sistemas Digitais – 2007/08 19

Adição de números com sinal(em complemento para 2)

1 1 0 10 1 0 0

1 0 0 0 1+

despreza-se sempre o transportepara além dos 4 bits considerados

-341

+

resultado correcto, não ocorre overflowporque os sinais dos operandos são diferentes

1 0 0 11 1 0 0

1 0 1 0 1+

-7- 4

-11+

resultado errado!ocorre overflow porque os sinaisdos operandos são iguais e oresultado tem o sinal oposto

0 0 1 10 1 1 11 0 1 0

+37

1 0+

1 1 1 01 1 0 1

1 1 0 1 1+

-2- 3-5

+

resultado errado!não há carry-out mas ocorre overflowporque os sinais dos operandos sãoiguais e o resultado tem o sinal oposto

resultado correcto, não ocorre overflow

M I E E C – Laboratório de Sistemas Digitais – 2007/08 20

Extensão de sinal

1 1 0 11 1 0 1 0 0+

adicionar X=1101 com Y=110100, representadosem complemento para 2 com 4 e 6 bits:

1 1 1 1 0 11 1 0 1 0 0

1 1 1 0 0 0 1+

extensão de sinal de X

0 1 0 1 01 0 0 0 0 0+

adicionar X=01010 com Y=100000 representadosem complemento para 2 com 5 e 6 bits e obter umresultado com 8 bits:

0 0 0 0 1 0 1 0

1 1 1 0 0 0 0 0

1 1 1 0 1 0 1 0

+

extensão de sinal de X

extensão de sinal de Y

resultado com 8 bits ( 10+(-32) = -22 )

resultado com 6 bits ( (-3)+(-12) = -15)

Page 11: LSDI 0708 Slides P

M I E E C – Laboratório de Sistemas Digitais – 2007/08 21

Álgebra de Boole

• 1854 - George Boole– formular proposições como V ou F

– combinar proposições

– avaliar a sua veracidade ou falsidade

• 1938 - (Bell Labs) Claude Shannon– adaptou a álgebra de Boole à análise de circuitos

– condição de um contacto como V ou F• representado como uma variável Booleana (0 ou 1)

M I E E C – Laboratório de Sistemas Digitais – 2007/08 22

Álgebra de Boole - axiomas• Definições fundamentais

– seja X uma variável booleana

– A1 X=0 se X ≠ 1

– A1’ X=1 se X ≠ 0

(X ou é 1 ou é 0)

– A2 se X=0 então X’=1

– A2’ se X=1 então X’=0

(X’ é o oposto de X)

Page 12: LSDI 0708 Slides P

M I E E C – Laboratório de Sistemas Digitais – 2007/08 23

Álgebra de Boole - axiomas

– A3 0 . 0 = 0

– A4 1 . 1 = 1

– A5 0 . 1 = 1 . 0 = 0

(operador E: 2 interruptores em série)

– A3’ 0 + 0 = 0

– A4’ 1 + 1 = 1

– A5’ 0 + 1 = 1 + 0 = 1

(operador OU: 2 interruptores em paralelo)

M I E E C – Laboratório de Sistemas Digitais – 2007/08 24

Álgebra de Boole - axiomas

• Os 10 axiomas definem a álgebra de Boole

• Convenções:– operador E representa-se por . (ponto)

• pode chamar-se ao E “produto lógico”

– operador OU representa-se por + (mais)• pode chamar-se ao OU “soma lógica”

– o E tem precedência em relação ao OU

– podem usar-se parêntesis em expressões

Page 13: LSDI 0708 Slides P

M I E E C – Laboratório de Sistemas Digitais – 2007/08 25

Álgebra de Boole - teoremas

T1 X + 0 = X T1’ X . 1 = X

T2 X + 1 = 1 T2’ X . 0 = 0

T3 X + X = X T3’ X . X = X

T4 (X’)’ = X

T5 X + X’ = 1 T5’ X . X’ = 0

Uma variável

M I E E C – Laboratório de Sistemas Digitais – 2007/08 26

Álgebra de Boole - teoremas

T6 X+Y=Y+X T6’ X.Y=Y.X

T7 (X+Y)+Z=X+(Y+Z) T7’ (X.Y).Z = X.(Y.Z)

T8 X.Y+X.Z=X.(Y+Z) T8’ (X+Y).(X+Z) = X+Y.Z

T9 X+X.Y=X T9’ X.(X+Y)=X

T10 X.Y+X.Y’ = X T10’ (X+Y).(X+Y’) = X

T11 X.Y+X’.Z+Y.Z = X.Y+X’.Z

T11’ (X+Y).(X’+Z).(Y+Z) = (X+Y).(X’+Z)

Duas e três variáveis

Page 14: LSDI 0708 Slides P

M I E E C – Laboratório de Sistemas Digitais – 2007/08 27

Leis de DeMorgan (T14)

(X . Y)’ = X’ + Y’ (X +Y)’ = X’ . Y’

Generalizando:

[F(X1, X2, X3, ... Xn, +, . ) ]’ =

F(X1’, X2’, X3’,..., Xn’, . , +)

Exemplo:

[A.B+(A’+B)’.(A+C)]’=

(A’+B).( (A.B’)’+(A’.C’) )

M I E E C – Laboratório de Sistemas Digitais – 2007/08 28

Teorema de expansão de Shannon

F(X1, X2, X3, ... ,Xn)=

X1 . F(1, X2, X3,...Xn) + X1’ . F(0, X2, X3,...Xn)

F(X1, X2, X3, ... ,Xn)=

[ X1 + F(0, X2, X3,...Xn) ] . [ X1’ + F(1, X2, X3,...Xn) ]

Page 15: LSDI 0708 Slides P

M I E E C – Laboratório de Sistemas Digitais – 2007/08 29

Princípio da dualidade

• Um igualdade verdadeira mantém-se quando– se trocam entre si zeros e uns, e + e .

• Exemplo:– os teoremas Txx’ são duais dos teoremas Txx

– e os teoremas Txx são duais dos teoremas Txx’

Se é verdade que Z.Y+(X+Y’)’=(Z+X’).Yentão também é verdade (Z+Y).(X.Y’)’=(Z.X’)+Y

M I E E C – Laboratório de Sistemas Digitais – 2007/08 30

Simplificação de expressões

(A.B+(A’+B)’)+A.C =

A.B+A.B’+A.C = (Leis de DeMorgan)

A.(B+B’)+A.C = (teorema T8)

A.1+A.C = (teorema T5)

A+A.C = (teorema T1’)

A (teorema T9)

Page 16: LSDI 0708 Slides P

M I E E C – Laboratório de Sistemas Digitais – 2007/08 31

Representação de funções

• Uma função booleana de N variáveis– domínio: todas as 2N combinações das variáveis

– contra domínio: [1:0]

• Como representar?– Expressão algébrica: F(X,Y,Z)=Z.Y’+X.Z+Y’.Z’

– Tabela de verdade: todos os valores de F()

– Circuito lógico

M I E E C – Laboratório de Sistemas Digitais – 2007/08 32

Tabela de verdade

X Y Z F(X,Y,Z)0 0 0 10 0 1 10 1 0 00 1 1 01 0 0 11 0 1 11 1 0 01 1 1 1

2N linhas

Valores da funçãoordem natural

Page 17: LSDI 0708 Slides P

M I E E C – Laboratório de Sistemas Digitais – 2007/08 33

Tabela de verdade

X Y Z F(X,Y,Z)0 0 0 10 0 1 10 1 0 00 1 1 01 0 0 11 0 1 11 1 0 01 1 1 1

Nestes casos, o valor de F(X,Y,Z)só depende de X e YPode-se compactar a escrita da tabela de verdade:

X Y Z F(X,Y,Z)0 0 x 10 1 x 01 0 x 11 1 0 01 1 1 1

x significa 0 ou 1

M I E E C – Laboratório de Sistemas Digitais – 2007/08 34

Circuito lógicoUma rede de portas lógicas interligadas entre siAs porta lógicas representam as operações elementares da álgebra booleana:

F(X,Y,Z)

X

YZ

B

AA.B

E A B A.B0 0 00 1 01 0 01 1 1

B

AA+B

A B A+B0 0 00 1 11 0 11 1 1

OU

A AAA

0 11 0

NÃO

portas lógicas elementares circuito lógico

X.Z

Z.Y

Z .Y

Page 18: LSDI 0708 Slides P

M I E E C – Laboratório de Sistemas Digitais – 2007/08 35

Circuito lógicoAs portas lógicas E e OU podem ter um número qualquer de entradas(na realidade, é limitado por razões ligadas à realização física dos circuitos electrónicos)

ABCD

A.B.C.D A+B+CABC

Podem ser desenhadas portas lógicas com entradas negadas:

A

BA . B A + B

A

B

Ou com a saída negada:(neste caso chamam-se NÃO-E ou NAND e NÃO-OU ou NOR)

A

BA . B A + B

A

B

M I E E C – Laboratório de Sistemas Digitais – 2007/08 36

Representação standard

• Algumas definições (e como são as duais?)

– Literal: X Y’ READY

– Termo de produto: X Y’ X.Y’ X.X.X.Y’

– Soma de produtos: X+Y.Z’+Y’ (ou SOP)

– Termo normal: X Y’ X.Y’

– Termo mínimo: X.Y.Z’ X’.Y’.Z (3 variáveis)

Page 19: LSDI 0708 Slides P

M I E E C – Laboratório de Sistemas Digitais – 2007/08 37

Representação standard

• Termo mínimo é um termo normal de produto– que só é 1 para uma única linha da tabela

X Y Z F(X,Y,Z) minterms0 0 0 0 1 X’.Y’.Z’1 0 0 1 1 X’.Y’.Z2 0 1 0 0 X’.Y.Z’3 0 1 1 0 X’.Y.Z4 1 0 0 1 X.Y’.Z’5 1 0 1 1 X.Y’.Z6 1 1 0 0 X.Y.Z’7 1 1 1 1 X.Y.Z

Númeroda linha

M I E E C – Laboratório de Sistemas Digitais – 2007/08 38

Representação standard

• Soma canónica– soma lógica dos minterms para os quais F() é 1

– Identificando cada minterm pelo número da linha

lista de minterms: F(X,Y,Z) = ΣX,Y,Z (0,1,4,5,7)

Exemplo: para a função anterior:F(X,Y,Z) = X’.Y’.Z’ + X’.Y’.Z + X.Y’.Z’ + X.Y’.Z + X.Y.Z

IMPORTANTE: os números dependem da ordem das variáveis!

Page 20: LSDI 0708 Slides P

M I E E C – Laboratório de Sistemas Digitais – 2007/08 39

E agora ... dualidade!

• Termo máximo é um termo normal de soma– que só é 0 para uma única linha da tabela

X Y Z F(X,Y,Z) maxterms0 0 0 0 1 X+Y+Z1 0 0 1 1 X+Y+Z’2 0 1 0 0 X+Y’+Z3 0 1 1 0 X+Y’+Z’4 1 0 0 1 X’+Y+Z5 1 0 1 1 X’+Y+Z’6 1 1 0 0 X’+Y’+Z7 1 1 1 1 X’+Y’+Z’

Númeroda linha

M I E E C – Laboratório de Sistemas Digitais – 2007/08 40

Dualidade continua...

• Produto canónico– produto lógico dos maxterms para os quais F() é 0

– Identificando cada maxterm pelo número da linha

lista de maxterms: F(X,Y,Z) = ΠX,Y,Z (2,3,6)

Exemplo: para a função anterior:F(X,Y,Z) = (X+Y’+Z) . (X+Y’+Z’) . (X’+Y’+Z)

IMPORTANTE: os números dependem da ordem das variáveis!

Page 21: LSDI 0708 Slides P

M I E E C – Laboratório de Sistemas Digitais – 2007/08 41

Formas padrão para representar funções booleanas

• tabela de verdade– enumeração exaustiva para todas as combinações das variáveis

• lista de minterms– números das linhas em que a função vale 1

• lista de maxterms– números das linhas em que a função vale 0

• soma canónica– soma lógica dos termos mínimos

• produto canónico– produto lógico dos termos máximos

• circuito lógico– interligação de portas lógicas

M I E E C – Laboratório de Sistemas Digitais – 2007/08 42

Projecto de sistemas digitais

• Análise– dado um circuito lógico, descobrir a sua função

– descrever a relação entre entradas e saídas

• Síntese– transformar uma especificação num circuito

– objectivo: fazer o mais barato possível

– problema de minimização: • encontrar uma expressão booleana que gaste o

menor número possível de portas lógicas

Page 22: LSDI 0708 Slides P

M I E E C – Laboratório de Sistemas Digitais – 2007/08 43

Problemas

F = XYZ + YZ + XZApresente a função F nas diferentes formas de representação.

Determine o circuito que na presença de um número N em complemento para 2 de 3 bits indica na saída Pos se o número é positivo (>0).

N PosC2 (3 bits) ?

M I E E C – Laboratório de Sistemas Digitais – 2007/08 44

Síntese de circuitos digitais(combinacionais)

• Expressões booleanas não simplificadas– soma canónica e produto canónico

– realizadas como circuitos lógicos de 2 níveis:

F(X,Y,Z) = (X+Y’+Z) . (X+Y’+Z’) . (X’+Y’+Z)

YZX

F(X,Y,Z)

nível de portas AND

nível de portas OR

Page 23: LSDI 0708 Slides P

M I E E C – Laboratório de Sistemas Digitais – 2007/08 45

Minimização de circuitos lógicos de 2 níveis

Mapa de Karnaugh: outra forma de representar funções booleanas:

XYZ

0

1

00 01 11 10

X

Y

Z

1 1 0 0

1 1 1 0

Ordem natural trocada!

Valores da função

Propriedadeentre duas posições geometricamenteadjacentes (linhas ou colunas) apenas uma variável troca de valor lógico

XYZ=111 XYZ=101

M I E E C – Laboratório de Sistemas Digitais – 2007/08 46

Minimização de expressões SOP

XYZ

0

1

00 01 11 10

X

Y

Z

1 1 0 0

1 1 1 0

F(X,Y,Z) = X’.Y’.Z’ + X’.Y’.Z + X.Y’.Z’ + X.Y’.Z + X.Y.Z

Cada ‘1’ no mapa de Karnaugh corresponde a um termo mínimo na soma canónica

Se o ‘1’ pertence às linhas ou colunas de umavariável, essa variável aparece não negada

Se o ‘1’ não pertence às linhas ou colunas deuma variável, essa variável aparece negada

Pode-se estender essa correspondência paragrupos rectangulares de 2N uns adjacentes

Combinando estes termos obtém-se: X’.Y’.(Z+Z’) = X’.Y’

Page 24: LSDI 0708 Slides P

M I E E C – Laboratório de Sistemas Digitais – 2007/08 47

Minimização de expressões SOP

XYZ

0

1

00 01 11 10

X

Y

Z

1 1 0 0

1 1 1 0

F(X,Y,Z) = X’.Y’ + X.Y’+X.Y.Z

Combinando estes termos obtém-se: Y’.(X+X’) = Y’Corresponde ao grupo de 4 uns: não pertence completamente às colunas da variável Y

XYZ

0

1

00 01 11 10

X

Y

Z

1 1 0 0

1 1 1 0

M I E E C – Laboratório de Sistemas Digitais – 2007/08 48

Minimização de expressões SOP

XYZ

0

1

00 01 11 10

X

Y

Z

1 1 0 0

1 1 1 0

O termo Y’ implica a função F(X,Y,Z): quando Y’ é 1, também F() é 1Implicante primo (prime implicant):

é um termo normal de produto que implica F, tal que se uma variávelfor removida desse termo deixa de implicar F; corresponde a um grupo de uns que sejam o maior possível (ou termos o menor possível).

O termo X.Y.Z não é implicante primo: se Y for retirada, continua a implicar F

Y’

X.Y.Z(é implicante primo)

(não é implicante primo!)

Page 25: LSDI 0708 Slides P

M I E E C – Laboratório de Sistemas Digitais – 2007/08 49

Minimização de expressões SOP

XYZ

0

1

00 01 11 10

X

Y

Z

1 1 0 0

1 1 1 0

Y’

X.Z(é implicante primo)

(já é implicante primo!)

O que significa este 1 pertencer a dois termos (ou grupos) que implicam F( )?

Teorema dos implicantes primos: a expressão mínima soma-de-produtos é uma soma de implicantes primos

F(X,Y,Z) = Y’ + X.Z

M I E E C – Laboratório de Sistemas Digitais – 2007/08 50

Minimização de expressões POS(teorema da dualidade!)

XYZ

0

1

00 01 11 10

X

Y

Z

1 1 0 0

1 1 1 0

Cada ‘0’ no mapa de Karnaugh corresponde a um termo máximo na soma canónica

Se o ‘0’ pertence às linhas ou colunas de umavariável, essa variável aparece negada

Se o ‘0’ não pertence às linhas ou colunas deuma variável, essa variável aparece não negada

Pode-se estender essa correspondência paragrupos rectangulares de 2N zeros adjacentes

F(X,Y,Z) = (X+Y’) . (Y’+Z)

Page 26: LSDI 0708 Slides P

M I E E C – Laboratório de Sistemas Digitais – 2007/08 51

Minimização de expressões POS

XYZ

0

1

00 01 11 10

X

Y

Z

0 0 1 1

0 0 0 1

F’(X,Y,Z) = X’.Y + Y.Z’

Pode-se obter a expressão mínima SOP de F’(X,Y,Z), negando-a aplicando o teorema generalizado de DeMorgan:

F(X,Y,Z) = [ F’(X,Y,Z) ]’ = (X+Y’) . (Y’+Z)

Aplicando o teorema generalizado de DeMorgan:

M I E E C – Laboratório de Sistemas Digitais – 2007/08 52

Problemas

F = XYZ + YZ + XZObtenha o circuito mais simples para a função F recorrendo a mapas de Karnaugh.

G = ΣXYZ(0,2,4,6,8,10,12,13)Obtenha a função simplificada de G recorrendo a mapas de Karnaugh.

Sintetize o circuito que na presença de dois números A e B e 2 bits apresenta na saída N o maior ou menor deles dependendo do valor lógico da entrada M estar respectivamente a 1 ou a 0.

AN

(2 bits)

?B(2 bits)

M

Page 27: LSDI 0708 Slides P

M I E E C – Laboratório de Sistemas Digitais – 2007/08 53

Problemas (cont.)

Sintetize o circuito que na presença de dois números A e B e 4 bits apresenta na saída S o valor da sua soma.

AS(4 bits) ?B

(4 bits)

Obtenha a expressão simplificada P que indica se o número decimal D (com apenas 1 dígito) é ou não primo.

F = ΣVWXYZ(4, 6, 7, 9, 11, 12, 13, 14, 15, 20, 22, 25, 27, 28, 30) + d(1, 5, 29, 31)Obtenha a função simplificada de F recorrendo a mapas de Karnaugh.

M I E E C – Laboratório de Sistemas Digitais – 2007/08 54

Termos indiferentes (don’t care)

XYZ

0

1

00 01 11 10

X

Y

Z

1 1 0 0

1 1 d 0

F(X,Y,Z) = Y’

quando XYZ=111 o valorda função não interessaé indiferente ser 1 ou 0

F(X,Y,Z) = Y’

Expressão mínima SOP

Expressão mínima POS

F(X,Y,Z) = ΣX,Y,Z (0,1,4,5) + d(7)Lista de termos don’t care

Page 28: LSDI 0708 Slides P

M I E E C – Laboratório de Sistemas Digitais – 2007/08 55

Mapa de Karnaugh de 4 variáveis

WXYZ

00

01

00 01 11 10

W

Y

Z

1 1 0 0

1 1 1 0

1 0 0 0

1 1 0 1

11

10

X

F(W,X,Y,Z) = Y’.Z’ + W’.Y’ + W’.X.Z + W.X’.Y’+W.X’.Z’

os lados também são adjacentes entre si!

M I E E C – Laboratório de Sistemas Digitais – 2007/08 56

Mapa de Karnaugh de 2 variáveis

XY

0

1

0 1

X

Y

1 0

1 1Y’

F(X,Y) = X + Y’Expressão mínima SOP

F(X,Y) = ΣX,Y (0,2,3)

X

Page 29: LSDI 0708 Slides P

M I E E C – Laboratório de Sistemas Digitais – 2007/08 57

Mapa de Karnaugh de 5 variáveis

WXYZ

00

01

00 01 11 10

W

Y

Z

1 1 0 0

1 1 0 0

1 0 0 0

1 1 0 1

11

10

X

F(V,W,X,Y,Z) = ΣV,W,X,Y,Z (0,1,4,5,8,9,10,12,16,17,19,20,21,23,27,31)

WXYZ

00

01

00 01 11 10

W

Y

Z

1 1 1 0

1 1 1 0

0 0 1 0

0 0 1 0

11

10

X

V = 0 (termos 0 a 15) V = 1 (termos 16 a 31)

W’.Y’

M I E E C – Laboratório de Sistemas Digitais – 2007/08 58

Funções mínimas de igual custo

WXYZ

00

01

00 01 11 10

W

Y

Z

1 1 0 0

0 1 0 0

1 1 0 0

0 0 0 0

11

10

X

F(W,X,Y,Z) = W’.X’,Y’ + W.X.Y’ + W’.Y’.Z

F(W,X,Y,Z) = W’.X’,Y’ + W.X.Y’ + X.Z.Y’ou

Page 30: LSDI 0708 Slides P

M I E E C – Laboratório de Sistemas Digitais – 2007/08 59

Minimização de várias funções

XYZ

0

1

00 01 11 10

X

Y

Z

1 0 1 0

1 0 0 0

F(X,Y,Z) = Y’.Z’ + X’.Y.Z

F(X,Y,Z) = ΣX,Y,Z (0,3,4)

XYZ

0

1

00 01 11 10

X

Y

Z

1 1 1 0

1 1 0 0

G(X,Y,Z) = ΣX,Y,Z (0,1,3,4,5)

G(X,Y,Z) = Y’ + X’.Z

A função G(X,Y,Z) fica mais “barata” com o termo X’.Y.Z (grupo de 1 um)Regra: tentar maximizar o número de grupos comuns entre as funções

M I E E C – Laboratório de Sistemas Digitais – 2007/08 60

Critérios de minimização• Simplificação com mapas de Karnaugh

– garante expressões SOP e POS mínimas• com o menor número possível de literais

• mas que (no caso geral) não corresponde ao circuito mais simples ou mais barato

• Minimizar um circuito lógico é complicado!– depende fortemente da tecnologia de realização

• quais são as funções elementares que existem?

– intimamente relacionada com outros objectivos• os mais importantes: rapidez e consumo de energia

Page 31: LSDI 0708 Slides P

M I E E C – Laboratório de Sistemas Digitais – 2007/08 61

Problema• Qual é o circuito lógico que conduz à realização

mais barata da função F(A,B,C) = B+C.A?

• A função dada já é a expressão SOP mínima

• A sua realização só “gasta” duas portas lógicas– usando CIs 74xxx é necessário usar dois integrados,

embora “gastando” apenas uma porta lógica de cada um

• a expressão B.B . C.A gasta 4 portas NAND mas apenas necessita de um CI (7400 com 4 NANDs)– mas quanto custa cada CI?

– e qual é o circuito mais rápido?

M I E E C – Laboratório de Sistemas Digitais – 2007/08 62

Problema (2)

• Qual é a realização mais barata da função?

• Três cenários– 0.01€ por gate NAND 2 entradas ou inversor e 0.02€ para AND ou OR

– 0.9€ por cada integrado TTL SSI (74xxx)

– disponíveis 5 tipos de CIs com custos diferentes:

• 0.6€ pelo 7400 (4 NAND 2 entradas)

• 1.3€ pelo 7432 (4 OR 2 entradas)

• 1.1€ pelo 7408 (4 AND 2 entradas)

• 1.5€ pelo 7411 (3 AND 3 entradas)

• 0.8€ pelo 7402 (2 NOR 2 entradas)

F(W,X,Y,Z) = Y’.Z’ + W’.Y’ + W’.X.Z + W.X’.Y’+W.X’.Z’

Page 32: LSDI 0708 Slides P

M I E E C – Laboratório de Sistemas Digitais – 2007/08 63

Transformação para NANDs

• Portas lógicas NAND– mais baratas e mais rápidas do que as AND

– um AND é um NAND seguido de um inversor!

• Medida de complexidade de um circuito digital– número de portas lógicas equivalentes

• é o número de NANDs de duas entradas

• é uma medida independente da tecnologia de fabrico

• Transformar circuito AND-OR para NANDs– fácil: trocar os ANDs e o OR por NANDs!

M I E E C – Laboratório de Sistemas Digitais – 2007/08 64

AND-OR para NANDs

Y

Z

X

F(X,Y,Z)

Y

Z

X

F(X,Y,Z)

Leis de DeMorgan:Um OR com as entradasnegadas é um NAND!

Circuito AND-OR (da expressão SOP)

E os inversores?E só com NAND de 2 entradas?

Negando as saídas dos ANDs e as entradas do OR

Page 33: LSDI 0708 Slides P

M I E E C – Laboratório de Sistemas Digitais – 2007/08 65

Exemplo – somador de 3 bits

Fulladder

Ci

Ai

Bi

Si

Ci13 números de 1 bit

número de 2 bits(pode ser 0, 1, 2 ou 3)

MSB

LSB

Escrever uma expressão booleana para as funções Si(Ci,Ai,Bi) e Ci1(Ci, Ai, Bi)

Desenhar um circuito lógico que realize as funções Si() e Ci1()

Construir um circuito digital com circuitos integrados 74LSxxx

74LS00 – 4 x NANDs de 2 entradas74LS08 – 4 x AND de 2 entradas74LS11 – 3 x AND de 3 entradas74LS04 – 6 x NOT (inversores)74LS32 – 4 x OR de 2 entradas

M I E E C – Laboratório de Sistemas Digitais – 2007/08 66

Circuitos combinacionais

• Síntese a partir de tabelas de verdade– Descrição formal -> circuito AND-OR ou OR-AND– Circuitos só com NANDs ou NORs– Aplica-se apenas a circuitos “pequenos”

• Circuitos complexos (dezenas de entradas)– Impraticável usar os métodos estudados– 32 entradas, 232 = 4 294 967 296 linhas da tabela de verdade– Projecto hierárquico

• Construir circuitos complexos à custa de circuitos mais simples• Um exemplo: construir um somador de 32 bits à custa de full-adders

– Um full-adder é um somador de 3 números de 1 bit

Page 34: LSDI 0708 Slides P

M I E E C – Laboratório de Sistemas Digitais – 2007/08 67

Funções combinacionais “padrão”

• Funções padrão– Podem-se identificar em circuitos complexos

– Existem disponíveis (p. ex. como circuitos integrados)

– Facilitam o projecto de sistemas digitais

– Exemplos de funções padrão:• Somadores/subtractores (detecção de overflow, com ou sem sinal)

• Comparadores (igualdade e magnitude, com sinal ou sem sinal)

• Descodificadores e codificadores (binário, 7-segmentos, BCD, hex)

• Multiplexers (“comutadores” digitais)

M I E E C – Laboratório de Sistemas Digitais – 2007/08 68

Desenho de circuitos• Portas lógicas elementares

– A sua função é especificada pelo seu símbolo

• Funções complexas– Não existem símbolos “padrão” para cada função*– Usa-se uma “caixa” com entradas e saídas– Função: tabela de verdade

A

EN_A

EN_B

B

F

G

H

Entrada activa com 0 (negada)

Nomes dos sinais

Saída activa em 0 (negada)

Entrada activa com 1

*existe para algumas

Page 35: LSDI 0708 Slides P

M I E E C – Laboratório de Sistemas Digitais – 2007/08 69

Barramentos• Grupo de N sinais lógicos relacionados

– Representam um dado com N bits

– Usam-se nomes do tipo A[7:0]

A7 A6 A5 A4 A3 A2 A1 A0 (LSB)(MSB)

A[3:1]8

8

A[7:0]

B[7:0]

A

BA>B

A

B

S

Y8

comparador

multiplexer

MAX[7:0]

nº de bits

barramento (8 bits)

fio (1 bit)

M I E E C – Laboratório de Sistemas Digitais – 2007/08 70

Funções padrão• Descodificadores (decoders)

– N entradas e M saídas, N < M (geralmente)

– Transforma um código noutro com mais bits

– Descodificador binário (ou N-para-2N)• Exemplo: descodificador 2 ÷ 4

EN I1 I0 Y3 Y2 Y1 Y00 x x 0 0 0 01 0 0 0 0 0 11 0 1 0 0 1 01 1 0 0 1 0 01 1 1 1 0 0 0

I1

I0

EN

Y0

Y1

Y2

Y3

Page 36: LSDI 0708 Slides P

M I E E C – Laboratório de Sistemas Digitais – 2007/08 71

Funções padrão (cont.)

• Descodificadores disponíveis como CIs– Descodificador binário 2 ÷ 4 (74x139)

G B A0 x x 0 0 0 01 0 0 0 0 0 11 0 1 0 0 1 01 1 0 0 1 0 01 1 1 1 0 0 0

Y3 Y2 Y1 Y0 /G B A1 x x 1 1 1 10 0 0 1 1 1 00 0 1 1 1 0 10 1 0 1 0 1 10 1 1 0 1 1 1

/Y3 /Y2 /Y1 /Y0

A

B

G

Y0

Y1

Y2

Y3/G

/Y0

/Y1

/Y2

/Y3

A

B(cada 74x139 tem 2 descodificadores)

M I E E C – Laboratório de Sistemas Digitais – 2007/08 72

Funções padrão (cont.)

– Descodificador binário 3 ÷ 8 (74x138)

G1 /G2A /G2B C B A0 x x x x x 1 1 ... 1 1x 1 x x x x 1 1 ... 1 1x x 1 x x x 1 1 ... 1 11 0 0 0 0 0 1 1 ... 1 01 0 0 0 0 1 1 1 ... 0 1

... ...1 0 0 1 1 0 1 0 ... 1 11 0 0 1 1 1 0 1 ... 1 1

/Y7 /Y6 ... /Y1 /Y0A

B

G2B

Y0

Y1

Y2

Y3

/G2B

/Y0

/Y1

/Y2

/Y3

A

B

CCY4

Y5

Y6

Y7

/Y4

/Y5

/Y6

/Y7

G2A/G2A

G1G1

Page 37: LSDI 0708 Slides P

M I E E C – Laboratório de Sistemas Digitais – 2007/08 73

Funções padrão (cont.)– Como fazer um descodificador 4 ÷ 16?

• 16 funções de 5 variáveis (admitindo um enable)• Basta usar 2 CIs 74x138 (3 ÷ 8)

– E quantos são necessários para fazer um 5 ÷ 32?– Como realizar funções lógicas de 3 variáveis com 74x138?

• Descodificador BCD para 7 segmentos (74x49)

AB

abcdefg

CD

BI

(MSB)

(LSB)

a

b

cde

f g

(blanking input)

M I E E C – Laboratório de Sistemas Digitais – 2007/08 74

Funções padrão (cont.)

• Codificadores (encoders)– N entradas e M saídas, N > M (geralmente)

– Transforma um código noutro com menos bits

– codificador binário 2N ÷ N• se não estiverem duas entradas em 1 simultaneamente

I3 I2 I1 I0 Y1 Y0 IDLE0 0 0 0 0 0 10 0 0 1 0 0 00 0 1 0 0 1 00 1 0 0 1 0 01 0 0 0 1 1 0

Y1

Y0

IDLE

I0

I1

I2

I3

Page 38: LSDI 0708 Slides P

M I E E C – Laboratório de Sistemas Digitais – 2007/08 75

Funções padrão (cont.)

• Codificador de prioridade 8 ÷ 3 (74x148)– 8 entradas: I7 (+prioridade) a I0 (- prioridade)

EI I7 I6 I5 ... I2 I1 I0 A2 A1 A0 GS EO0 x x x ... x x x 0 0 0 0 01 0 0 0 ... 0 0 1 0 0 0 1 01 0 0 0 ... 0 1 x 0 0 1 1 01 0 0 0 ... 1 x x 0 1 0 1 0

... ... ...1 0 0 1 ... x x x 1 0 1 1 01 0 1 x ... x x x 1 1 0 1 01 1 x x ... x x x 1 1 1 1 01 0 0 0 ... 0 0 0 0 0 0 0 1

I6A2

A1

A0

GS

EO

I7

I5

I4

I3

I2

I1

I0

EI

got somethingenable outputenable input

M I E E C – Laboratório de Sistemas Digitais – 2007/08 76

Funções padrão (cont.)

• Multiplexadores (multiplexers ou muxs)– circuito selector (um mux 4 ÷ 1)

Y

I0

I1

I2

I3

S0

S1entradasde selecção

Y = Is, s={S1,S0} I0

I1

I2

I3

Y

S0S1

símbolo habitual

Page 39: LSDI 0708 Slides P

M I E E C – Laboratório de Sistemas Digitais – 2007/08 77

Funções padrão (cont.)

– Multiplexadores disponíveis como CIs• 74x151 (mux 8 ÷ 1)

• 74x153 (2 x mux 4 ÷ 1)

• 74x157 (mux 2 ÷ 1, 4bit)

– Como fazer um mux 4÷1 com muxs 2 ÷ 1?

– Como realizar uma função lógica de N variáveis• com um mux de N linhas de selecção?

• e com um mux de N-1 linhas de selecção?

M I E E C – Laboratório de Sistemas Digitais – 2007/08 78

Funções padrão (cont.)

• Porta OU-exclusivo (XOR) (74x86 tem 4 XOR)– saída é 1 quando as entradas são diferentes

– aplicação: somadores, detector de paridade (ímpar)

– função lógica: A⊕B = A’.B + A.B’ (propriedade associativa)

– Como se faz um XOR com 4 NANDs?

– XNOR é um comparador de igualdade

AB

A⊕B

A B A⊕B0 0 00 1 1 1 0 11 1 0

Page 40: LSDI 0708 Slides P

M I E E C – Laboratório de Sistemas Digitais – 2007/08 79

Funções padrão (cont.)

• Somadores– somador tipo ripple-carry (como se faz à “mão”)– ligação de N full-adders em cascata (circuito iterativo)

• Si = Ai ⊕ Bi ⊕ Ci-1• Ci = Ai.Bi + Ai.Ci-1 + Bi.Ci-1

• Subtractores– como A-B = A + (-B), basta “trocar” o sinal de B

• trocar o sinal: trocar os bits todos (XORs) e somar 1 (carry-in)

– Portas XOR como inversores controlados• X=A ⊕ B: quando A=0, X=B; quando A=1, X=B’

• Somadores como CIs:– 74x283: somador de 4 bits, com carry-in e carry-out

M I E E C – Laboratório de Sistemas Digitais – 2007/08 80

Funções padrão (cont.)

• Comparadores de igualdade– entre uma variável de N bits e uma constante

• um AND de N entradas

• negadas as entradas a comparar com zero

– entre duas variáveis A e B de N bits• N portas XNOR comparam os bits de A e B

• uma porta AND de N entradas produz o resultado

Ai = BiAiBi

Page 41: LSDI 0708 Slides P

M I E E C – Laboratório de Sistemas Digitais – 2007/08 81

Funções padrão (cont.)

• Circuitos iterativos– ligação em cascata de sub-circuitos “simples”

– cada sub-circuito avalia parte dos operandos

– exemplo: comparador iterativo de igualdade

?

Ai Bi

AEQBoutAEQBin

os bits mais significativos (até i-1) são iguais

os bits até i são iguais

M I E E C – Laboratório de Sistemas Digitais – 2007/08 82

Funções padrão (cont.)

• Comparadores de magnitude (sem sinal)

– pode ser usado um subtractor

– comparador iterativo de magnitude:

?

Ai Bi

AGTBoutAGTBin

pelos bits mais significativos (até i-1), já é A>B

resultado (A>B) dos bits até i

ALTBin

pelos bits mais significativos (até i-1), já é A<B

ALTBout

resultado (A<B) dos bits até i

Page 42: LSDI 0708 Slides P

M I E E C – Laboratório de Sistemas Digitais – 2007/08 83

Funções padrão (cont.)

• CIs comparadores– 74x85

• comparador de 4 bits (>, = e <), expansível em cascata

– 74x682• comparador de 8 bits (saídas EQ e GT)

• Outras funções– ALU (74x181, 74x381, 74x382)

– barrel shifters– multiplicadores– buffers 3 estados (74x125, 74x126)

M I E E C – Laboratório de Sistemas Digitais – 2007/08 84

Circuitos sequenciais

• Saídas dependem da sequência das entradas– não basta uma tabela de verdade!

– Exemplo: controlo do nível de água num tanque:

electro-válvula

nível máximo

nível mínimo

sistemadigital

decontrolo

entradade água

saída de água

CHEIO

VAZIO

ABRECHEIO VAZIO ABRE

0011

0101

10 ou 1d0

(nunca ocorre)

o valor da saída ABRE depende do que aconteceu antes nas entradas

Page 43: LSDI 0708 Slides P

M I E E C – Laboratório de Sistemas Digitais – 2007/08 85

Circuitos sequenciais têm memória

• A memória guarda a história das entradas até agora– não significa uma lista interminável de zeros e uns...

– a história das entradas é codificada no estado do sistema

– o estado é armazenado em elementos de memória

– contém a informação a reter dos valores anteriores das entradas

• No exemplo anterior– sem memória seria impossível realizar o controlo de nível

• mesmo se fosse feito à mão por uma pessoa!...

– basta um bit para representar o estado: a encher ou a esvaziar

M I E E C – Laboratório de Sistemas Digitais – 2007/08 86

Variáveis de estado (num circuito digital)

• O estado é codificado em um ou mais bits– a estes bits chamam-se “variáveis de estado”

– são guardados em memórias digitais (flip-flops)• a estudar nos próximos episódios...

– geralmente são “internos” ao circuito

• Num sistema sequencial com N variáveis de estado• existem 2N estados diferentes

• como N é finito, o número de estados também é finito

• Chamam-se “máquinas de estados finitos”• em Inglês Finite State Machine - FSM

Page 44: LSDI 0708 Slides P

M I E E C – Laboratório de Sistemas Digitais – 2007/08 87

Como funciona?

• Num circuito sequencial (máquina de estados)– para além do estado interno tem entradas e saídas

• O estado actual e as entradas definem:– quais são os valores das saídas– qual vai ser o próximo estado

estado

saídasentradas

M I E E C – Laboratório de Sistemas Digitais – 2007/08 88

Como funciona? (2)

• Os estados mudam a intervalos regulares– sincronizados com as transições de um relógio

• Modelo conceptual:

período T (frequência=1/T Hz)tL tH

duty-cycle=tH/T (ciclo útil)

estado(memória)

saídasentradas

estadopresente

próximoestado

relógio

Page 45: LSDI 0708 Slides P

M I E E C – Laboratório de Sistemas Digitais – 2007/08 89

Elementos de memória

• Circuitos bi-estáveis– portas lógicas “normais” com realimentação

– as saídas sustentam valores nas entradas

• O circuito bi-estável mais simples:(as memórias estáticas são feitas assim!)

Q

Qn

Q,Qn pode ser 1,0 ou 0,1

M I E E C – Laboratório de Sistemas Digitais – 2007/08 90

Análise “analógica”Vout

Vin

Vin Vout

Vout1

Vin1

Vin2

Vout2

1

2Vin2

Vout1Vin1

Vout2

pontos estáveis

instável!

Page 46: LSDI 0708 Slides P

M I E E C – Laboratório de Sistemas Digitais – 2007/08 91

Latch set/reset

Q

QNS

R S R Q QN0 0 Q ant. QN ant.0 1 0 11 0 1 01 1 0 0 (inválido)

S

R

Q

QN

t

Tp

Tp

Q: qual a duraçãomínima do pulso em S ou R?

M I E E C – Laboratório de Sistemas Digitais – 2007/08 92

Latch set/reset• activando a entrada S (set) é colocado Q=1

• activando a entrada R (reset) é colocado Q=0

Exemplo: controlo do nível de água com uma latch set/reset:

Q R

S

ABRE

CHEIO

VAZIOQN

Q

QN

S

R

símbolo: Q

Q

S

R

Page 47: LSDI 0708 Slides P

M I E E C – Laboratório de Sistemas Digitais – 2007/08 93

Latch set/reset com enable

Q

QN

S

R

símbolo:

Q

QN

R

S

EN S R Q QN0 X X Q ant. QN ant. 1 0 0 Q ant. QN ant.1 0 1 0 11 1 0 1 01 1 1 0 0 (inválido)

EN

EN

Q: o que acontece se R=S=1 e EN passa de 1 para 0 ?

S

R

M I E E C – Laboratório de Sistemas Digitais – 2007/08 94

Latch tipo D (ou transparente)

Q

QN

Dsímbolo:

Q

QN

D EN D Q QN0 X Q ant. QN ant. 1 0 0 11 1 1 0

EN

EN

Quando EN=1 a latch é transparente (Q=D)Quando EN passa de 1 para 0, a saída Q memoriza o seu estadoParâmetros temporais de uma latch tipo D: tsetup e thold

D

Q

EN

Page 48: LSDI 0708 Slides P

M I E E C – Laboratório de Sistemas Digitais – 2007/08 95

edge-triggered D flip-flop(flip-flop tipo D)

Q

QN

D

EN

Q

QN

D

EN

Q

QN

D

CLK

D CLK Q QNX 0 Q ant. QN ant. X 1 Q ant. QN ant. 1 1 00 0 1

Q1

CLK

CLK

CLK

D

Q1

Q

1 2

latch 1 é transparente aqui latch 2 é transparente aqui

M I E E C – Laboratório de Sistemas Digitais – 2007/08 96

flip-flop tipo D• quando CLK sobe captura o valor na entrada D

• símbolo:

• parâmetros temporais: tsetup e thold

Q

QN

D

CLK

Q

QN

D

CLK

CLK activo na transição negativaindica que é edge-triggered

CLK

D

tsetup thold

Q: o que acontece se estestempos forem violados?

Page 49: LSDI 0708 Slides P

M I E E C – Laboratório de Sistemas Digitais – 2007/08 97

Outros flip-flops edge-triggered

• tipo T (toggle):

• tipo JK:

• outras entradas de controlo:– com enable, com set ou reset assíncronos

Q

QN

T

CLK

Q

QN

J

CLK

K

T CLK Q0 Q ant.1 Q ant.

J K CLK Q0 0 Q ant.0 1 01 0 11 1 Q ant.

M I E E C – Laboratório de Sistemas Digitais – 2007/08 98

Equação característica de flip-flops

• Q* representa o próximo valor para Q• Q* é função de Q e das entradas de controlo:

– flip-flop tipo D: Q* = D• copia para Q o que está em D

– flip-flop tipo T: Q* = T.Q+T.Q• se T=0 mantém Q, se T=1 troca o estado de Q

– flip-flop tipo JK: Q* = Q.J+Q.K• se J=K=0 mantém Q; se J=K=1 troca o valor de Q; se

J=1 e K=0 coloca Q=1; se J=0 e K=1 coloca Q=0

Page 50: LSDI 0708 Slides P

M I E E C – Laboratório de Sistemas Digitais – 2007/08 99

Síntese de máquinas de estados

• Exemplo:– circuito com uma entrada X e saída Y

– Y=1 quando é detectada em X a sequência 1011

– o valor de X é “lido” nas transições 0->1 de CLK

0 1 1 0 1 1 1 0 0 1 0 1 1

Y

X

CLK

M I E E C – Laboratório de Sistemas Digitais – 2007/08 100

Diagrama de transição de estados

INI

S1

S2

S3

OK

X=1

X=1

X=1

X=1X=1

X=0

X=0X=0

X=0

X=0

estado

transição entre estados(quando CLK )

condição de transiçãoentre estados

nome do estado

valor da saída emcada estado

Y=1

Y=0

Y=0

Y=0

Y=0

Q: qual é a “história” que cada estado representa?

estado inicial chama-se INI

Page 51: LSDI 0708 Slides P

M I E E C – Laboratório de Sistemas Digitais – 2007/08 101

Significado de cada estado(no exemplo apresentado)

• Cada estado resume os valores anteriores de X:– INI: não foi detectado nada de interesse (inicial)– S1: foi detectado X=1– S2: foi detectada a sequência 10 na entrada X– S3: foi detectada a sequência 101 na entrada X– OK: foi detectada a sequência 1011 Y=1

• E se as sequências não forem sobrepostas?– sempre que detecta 1011 esquece tudo: estado INI

M I E E C – Laboratório de Sistemas Digitais – 2007/08 102

Tabela de transição de estados

INI

S1

S2

S3

OK

X=1

X=1

X=1

X=1

X=1

X=0

X=0X=0

X=0

X=0

Y=1

Y=0

Y=0

Y=0

Y=0

S*S X=0 X=1 YINI INI S1 0S1 S2 S1 0S2 INI S3 0S3 S2 OK 0OK S2 S1 1

estado actual

próximo estado se X=0

próximo estado se X=1

valores da saída

Page 52: LSDI 0708 Slides P

M I E E C – Laboratório de Sistemas Digitais – 2007/08 103

Modelo da máquina de estados

variáveisde estado

(guarda o estado)

Y

X

S

CLK

Y(S)

S*(X,S)

S*

(modelo de Moore: a saída só depende do estado presente)

M I E E C – Laboratório de Sistemas Digitais – 2007/08 104

Codificação de estados• Os estados devem ser codificados em binário

– o estado presente é armazenado numa memória

– a memória de estado é realizada com flip-flops• podem ser flip-flops tipo D, T ou JK

• devem ser usados mecanismos para garantir o estado inicial– usando flip-flops com controlo de set ou reset assíncrono

– codificar N estados requer log2(N) flip-flops

– no nosso exemplo são necessários 3 flip-flops• de quantas maneiras é possível codificar os 5 estados?

– a escolha do “melhor” conjunto de códigos é um problema muito complexo.

Page 53: LSDI 0708 Slides P

M I E E C – Laboratório de Sistemas Digitais – 2007/08 105

Codificação de estados

• codificando os estados em binário:

variáveis deestado

Y

X

CLK

S*

circuitos combinacionais:Y=F(S)S*=G(X,S)

flip-flopsedge-triggered(tipo D, T ou JK)

reset

S

M I E E C – Laboratório de Sistemas Digitais – 2007/08 106

Tabela de transição de estados(com os estados codificados)

Q2* Q1* Q0*Q2 Q1 Q0 X=0 X=1 Y0 0 0 0 0 0 0 0 1 00 0 1 0 1 0 0 0 1 00 1 0 0 0 0 0 1 1 00 1 1 0 1 0 1 0 0 01 0 0 0 1 0 0 0 1 1

Adoptando a codificação de estados:INI 0 0 0S1 0 0 1S2 0 1 0S3 0 1 1OK 1 0 0

S Q2 Q1 Q0

estado presentepróximo estado

Page 54: LSDI 0708 Slides P

M I E E C – Laboratório de Sistemas Digitais – 2007/08 107

Síntese de S*(X,S) e Y(S)

Tabela de verdade: Q2 Q1 Q0 X Q2* Q1* Q0* Y0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 00 0 1 0 0 1 0 00 0 1 1 0 0 1 00 1 0 0 0 0 0 00 1 0 1 0 1 1 00 1 1 0 0 1 0 00 1 1 1 1 0 0 01 0 0 0 0 1 0 11 0 0 1 0 0 1 11 0 1 0

. . .1 1 1 1

e estes valores?

S S*

M I E E C – Laboratório de Sistemas Digitais – 2007/08 108

Usando flip-flops tipo D

Q2 Q1 Q0 X D2 D1 D0 Y0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 00 0 1 0 0 1 0 00 0 1 1 0 0 1 00 1 0 0 0 0 0 00 1 0 1 0 1 1 00 1 1 0 0 1 0 00 1 1 1 1 0 0 01 0 0 0 0 1 0 11 0 0 1 0 0 1 11 0 1 0 0 0 0 0

. . . . . . 1 1 1 1 0 0 0 0

como Q*=D:

como estes estados nuncaocorrem, pode-se completara tabela de verdade com zeros

Page 55: LSDI 0708 Slides P

M I E E C – Laboratório de Sistemas Digitais – 2007/08 109

Minimizando as funções lógicas

Q2 Q1

Q0 X

00

01

00 01 11 10

Q2

0 0 0 0

0 0 1 0

0 0 0 0

0 0 0 0

11

10

Q1

Q0

X

D2

D2=Q2.Q1.Q0.X

Q2 Q1

Q0 X

00

01

00 01 11 10

Q2

0 0 0 1

0 1 0 1

0 0 0 0

0 1 0 0

11

10

Q1

Q0

X

D1

D1=Q2.Q1.Q0.X + Q2.Q1.Q0.X + Q2.Q0.X

M I E E C – Laboratório de Sistemas Digitais – 2007/08 110

continuando a minimizar...

Q2 Q1

Q0 X

00

01

00 01 11 10

Q2

0 1 1 0

0 1 0 0

0 0 0 0

0 1 0 0

11

10

Q1

Q0

X

D0

D0=Q1.Q0.X+Q2.Q0.X+Q2.Q1.X

Q2

Q1Q0

0

1

00 01 11 10

0 0 0 0

1 0 0 0 Q2

Q1Y

Y=Q2.Q1.Q0

Q0

(Y só depende do estado actual Q2Q1Q0)

Page 56: LSDI 0708 Slides P

M I E E C – Laboratório de Sistemas Digitais – 2007/08 111

Circuito lógico

QD

CLK

QD

CLK

QD

CLK

X

CLK

Y

Q2

Q1

Q0

D2

D1

D0

Q2

Q1

Q0

M I E E C – Laboratório de Sistemas Digitais – 2007/08 112

Estados não especificados

• A máquina de estados apenas tem 5 estados– usando 3 flip-flops, há 3 estados não usados

• com a codificação adoptada são 101, 110 e 111

– qual deve ser o próximo estado para estes estados?• uma hipótese é o estado INI (estado 000 no nosso caso)

– garante-se que a máquina de estados nunca “encrava”!

– foi a solução adoptada no exemplo

• admitindo que nunca ocorrem, S* pode ser indiferente– definem-se valores indiferentes na tabela de verdade

– conduz a um circuito (potencialmente) mais simples

– e se a máquina de estados “cair” num destes estados?

risco mínimo

custo mínimo

Page 57: LSDI 0708 Slides P

M I E E C – Laboratório de Sistemas Digitais – 2007/08 113

Projecto com custo mínimoQ2 Q1 Q0 X D2 D1 D0 Y0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 00 0 1 0 0 1 0 00 0 1 1 0 0 1 00 1 0 0 0 0 0 00 1 0 1 0 1 1 00 1 1 0 0 1 0 00 1 1 1 1 0 0 01 0 0 0 0 1 0 11 0 0 1 0 0 1 11 0 1 0 d d d d

. . . . . . 1 1 1 1 d d d d

com flip-flops tipo D:

como estes estados nuncaocorrem, considera-se

indiferente o próximo estado

M I E E C – Laboratório de Sistemas Digitais – 2007/08 114

Projecto com custo mínimo

Q2 Q1

Q0 X

00

01

00 01 11 10

Q2

0 0 0 0

0 0 1 0

d d d d

0 0 d d

11

10

Q1

Q0

X

D2

D2=Q1.Q0.X

Q2 Q1

Q0 X

00

01

00 01 11 10

Q2

0 0 0 1

0 1 0 1

d d d d

0 1 d d

11

10

Q1

Q0

X

D1

D1=Q1.Q0.X + Q2.X + Q0.X

Page 58: LSDI 0708 Slides P

M I E E C – Laboratório de Sistemas Digitais – 2007/08 115

Projecto com custo mínimo

Q2 Q1

Q0 X

00

01

00 01 11 10

Q2

0 1 1 0

0 1 0 0

d d d d

0 1 d d

11

10

Q1

Q0

X

D0

D0=Q1.X+Q0.X

Q2

Q1Q0

0

1

00 01 11 10

0 0 0 0

1 d d d Q2

Q1Y

Y=Q2

Q0

(Y só depende do estado actual Q2Q1Q0)

M I E E C – Laboratório de Sistemas Digitais – 2007/08 116

Circuito lógico - mínimo custo

QD

CLK

QD

CLK

QD

CLK

X

CLK

Y

Q2

Q1

Q0

D2

D1

D0

Q2

Q1

Q0

Page 59: LSDI 0708 Slides P

M I E E C – Laboratório de Sistemas Digitais – 2007/08 117

Projecto com flip-flops JK

Q2 Q1 Q0 X Q2* Q1* Q0* J2 K2 J1 K1 J0 K0 Y

0 0 0 0 0 0 0 0 d 0 d 0 d 0 0 0 0 1 0 0 1 0 d 0 d 1 d 00 0 1 0 0 1 0 0 d 1 d d 1 00 0 1 1 0 0 1 0 d 0 d 1 0 00 1 0 0 0 0 0 0 d d 1 0 d 00 1 0 1 0 1 1 0 d d 0 1 d 00 1 1 0 0 1 0 0 d d 0 d 1 00 1 1 1 1 0 0 1 d d 1 d 1 01 0 0 0 0 1 0 d 1 1 d 0 d 11 0 0 1 0 0 1 d 1 0 d 1 d 11 0 1 0 d d d d d d d d d d

. . . . . . . . .1 1 1 1 d d d d d d d d d d

Q Q* J K0 0 0 d0 1 1 d1 0 d 11 1 d 0

M I E E C – Laboratório de Sistemas Digitais – 2007/08 118

Expressões mínimas para J2 e K2

Q2 Q1

Q0 X

00

01

00 01 11 10

Q2

0 0 0 0

0 0 1 0

d d d d

d d d d

11

10

Q1

Q0

X

J2

Q2 Q1

Q0 X

00

01

00 01 11 10

Q2

d d d d

d d d d

d d d d

1 1 d d

11

10

Q1

Q0

X

K2

J2=Q1.X.Q0 K2=1

Page 60: LSDI 0708 Slides P

M I E E C – Laboratório de Sistemas Digitais – 2007/08 119

Expressões mínimas para J1 e K1

Q2 Q1

Q0 X

00

01

00 01 11 10

Q2

0 0 0 1

d d d d

d d d d

1 0 d d

11

10

Q1

Q0

X

J1

Q2 Q1

Q0 X

00

01

00 01 11 10

Q2

d d d d

1 0 1 0

d d d d

d d d d

11

10

Q1

Q0

X

K1

J1=Q0.X+Q2.X K1=Q0.X+Q0.X

M I E E C – Laboratório de Sistemas Digitais – 2007/08 120

Expressões mínimas para J0 e K0

Q2 Q1

Q0 X

00

01

00 01 11 10

Q2

0 1 1 d

0 1 d d

d d d d

0 1 d d

11

10

Q1

Q0

X

J0

Q2 Q1

Q0 X

00

01

00 01 11 10

Q2

d d 0 1

d d 1 1

d d d d

d d d d

11

10

Q1

Q0

X

K0

J0=X K0=Q1+X

Page 61: LSDI 0708 Slides P

M I E E C – Laboratório de Sistemas Digitais – 2007/08 121

Circuito com flip-flops JK

QJ

CLK

Q

Q

X

CLK

Y

Q2

Q1

Q0

J2

J1

J0

Q2

Q1

Q0

K

J

CLK

K

J

CLK

K

K21

K1

K0

M I E E C – Laboratório de Sistemas Digitais – 2007/08 122

Projecto com flip-flops tipo TQ2 Q1 Q0 X Q2* Q1* Q0* T2 T1 T0

0 0 0 0 0 0 0 0 0 00 0 0 1 0 0 1 0 0 10 0 1 0 0 1 0 0 1 10 0 1 1 0 0 1 0 0 00 1 0 0 0 0 0 0 1 00 1 0 1 0 1 1 0 0 10 1 1 0 0 1 0 0 0 10 1 1 1 1 0 0 1 1 11 0 0 0 0 1 0 1 1 01 0 0 1 0 0 1 1 0 11 0 1 0 d d d d d d

. . . . . . . . . 1 1 1 1 d d d d d d

Q Q* T0 0 00 1 11 0 11 1 0

Page 62: LSDI 0708 Slides P

M I E E C – Laboratório de Sistemas Digitais – 2007/08 123

Minimizando as funções T2, T1 e T0

Q2 Q1

Q0 X

00

01

00 01 11 10

Q2

0 0 0

11

10

Q1

Q0

X

T2

T2=Q2+X.Q1.Q0

0

0 0 01

d d dd1 1 dd

Q2 Q1Q0 X

00

01

00 01 11 10

Q2

0 0 1

11

10

Q1

Q0

X

T1

T1=Q2.X+Q1.Q0.X+Q1.Q0.X+Q1.Q0.X

0

1 0 01

d d dd1 0 dd

Q2 Q1

Q0 X

00

01

00 01 11 10

Q2

0 1 1

11

10

Q1

Q0

X

T0

0

0 1 11

d d dd0 1 dd

T0=Q0.X+Q1.X+Q0.X

M I E E C – Laboratório de Sistemas Digitais – 2007/08 124

Modelo de FSM de Mealy

variáveisde estado

(guarda o estado)

Y

X

S

CLK

Y(X,S)

S*(X,S)

S*

No modelo de Mealy as saídas dependem de estado actual e das entradasAs saídas podem ser alteradas durante o tempo de um estado

Page 63: LSDI 0708 Slides P

M I E E C – Laboratório de Sistemas Digitais – 2007/08 125

FSM de Mealy• Exemplo:

– o mesmo circuito anterior (detector de 1011)

– assunção: o valor de X muda logo após o CLK

– a saída Y depende do estado actual e da entrada X

– é detectada a sequência 1011 em 4 estados consecutivos

0 1 1 0 1 1 1 0 0 1 0 1

Y

X

CLK

INI INI S1 S1 S2 S3 S1 S1 S2 INI S1 S2 S3

1

M I E E C – Laboratório de Sistemas Digitais – 2007/08 126

Diagrama de estados

INI

S1

S2

S3

1/0

1/0

0/0

X / Y

0/0

0/0

1/11/0

0/0

Esta mudança de estado ocorre quando X=1

Y vale 1 quando 0estado actual é S3 e X=1Y vale 0 quando 0

estado actual é S3 e X=0

Os valores das saídas em cada estado dependem dos valores das entradas durante esse estado.

Desenham-se associados às transições de estado.

Apenas se altera a forma como érepresentado e construído o circuitoque produz as saídas da FSM.

Page 64: LSDI 0708 Slides P

M I E E C – Laboratório de Sistemas Digitais – 2007/08 127

Tabela de transição de estados(FSM de Mealy)

S*,YS X=0 X=1INI INI,0 S1,0S1 S2,0 S1,0S2 INI,0 S3,0S3 S2,0 S1,1

estado actual

próximo estado e saída Y se X=0

próximo estado e saída Y se X=1INI

S1

S2

S3

1/0

1/0

0/0

0/0

0/0

1/11/0

0/0

M I E E C – Laboratório de Sistemas Digitais – 2007/08 128

Tabela de transição de estados(com estados codificados)

Q1* Q0*,YQ1 Q0 X=0 X=10 0 0 0,0 0 1,00 1 1 0,0 0 1,01 0 0 0,0 1 1,01 1 1 0,0 0 1,1

Usando a codificação de estados:INI 0 0S1 0 1S2 1 0S3 1 1

S Q1 Q0

estado presente

próximo estado e saída

Y é função de Q1, Q0 e X

Page 65: LSDI 0708 Slides P

M I E E C – Laboratório de Sistemas Digitais – 2007/08 129

Síntese de S*(X,S) e Y(X,S)

Tabela de verdade: Q1 Q0 X Q1* Q0* Y0 0 0 0 0 0 0 0 1 0 1 00 1 0 1 0 00 1 1 0 1 01 0 0 0 0 01 0 1 1 1 01 1 0 1 0 01 1 1 0 1 1

S S*

(...e o resto é igual ao usado para FSMs de Moore)

Na mesma máquina de estados podem coexistir saídas de Mealy e de MooreO processo de especificação e síntese combina as duas formas anteriores:

as saídas de Moore só dependem do estado presenteas saídas de Mealy são função do estado presente e das entradas

M I E E C – Laboratório de Sistemas Digitais – 2007/08 130

Problema de Análise #1

Q0Q1

Page 66: LSDI 0708 Slides P

M I E E C – Laboratório de Sistemas Digitais – 2007/08 131

Problema de Análise #2

Q0 Q1

M I E E C – Laboratório de Sistemas Digitais – 2007/08 132

Problema de Síntese

Page 67: LSDI 0708 Slides P

M I E E C – Laboratório de Sistemas Digitais – 2007/08 133

Problema de Síntese #1

M I E E C – Laboratório de Sistemas Digitais – 2007/08 134

Problema de Síntese #2

Page 68: LSDI 0708 Slides P

M I E E C – Laboratório de Sistemas Digitais – 2007/08 135

Problema de Síntese #3

M I E E C – Laboratório de Sistemas Digitais – 2007/08 136

Codificação de estados• Qual é o melhor conjunto de códigos?

– objectivo: minimizar o circuito lógico (# gates)

• Problema muito complexo (NP-completo)– para obter a melhor solução é necessário verificar

todas as hipóteses!

– os códigos atribuídos aos estados influenciam• os circuitos que produzem o próximo estado

• os circuitos que produzem as saídas (de Moore ou Mealy)

– Isto é impraticável, mesmo para FSMs pequenas!

Page 69: LSDI 0708 Slides P

M I E E C – Laboratório de Sistemas Digitais – 2007/08 137

Codificação de estados(exemplo)

• FSM com 5 estados

• são necessários (no mínimo) 3 flip-flops– com 3 flip-flops há 8 códigos binários

– existem = 56 grupos de 5 dos 8 códigos

– existem 5!=120 formas diferentes de atribuir cada um dos 56 grupos aos 5 estados

– no total há 6720 codificações possíveis!

• e se forem usados 4 flip-flops?

()85

M I E E C – Laboratório de Sistemas Digitais – 2007/08 138

Codificação de estados(exemplo)

• usando o menor número possível de FFs:nº estados nº FFs nº códigos nº codificações

2 1 1 23 2 4 244 2 1 245 3 56 6,7206 3 28 20,1607 3 8 40,3208 3 1 40,3209 4 11440 4,151,347,20010 4 8008 29,059,430,40011 4 4368 174,356,582,40012 4 1820 871,782,912,000

gastando 1μs/solução seriam necessários 10 dias, 2 h, 9 min e 42 segundos!

Page 70: LSDI 0708 Slides P

M I E E C – Laboratório de Sistemas Digitais – 2007/08 139

Codificação de estados

• Codificações simples (exemplo para 8 estados)– binária (códigos binários por ordem natural)

• 000, 001, 010, 011, 100, 101, 110, 111

– código Gray (troca 1 bit entre estados consecutivos)• 000, 001, 011, 010, 110, 111, 101, 100

– one hot (só um bit=1 para cada estado)• 00000001, 00000010, 00000100, 00001000, 00010000, 00100000,...

– quase one hot (código 0, os outros one hot)• 0000000, 0000001, 0000010, 0000100, 0001000, 0010000,...

(é conveniente usar o estado 000...00 para estado inicial)

M I E E C – Laboratório de Sistemas Digitais – 2007/08 140

Codificação de estados(regras práticas)

• estado inicial– código fácil de “forçar” com um sinal de reset

– estados 000...00 ou 111...11, dependendo do tipo de FF• se têm sinal de controlo reset (coloca em 0) ou set (coloca em 1)

• minimizar o número de bits que trocam entre transições– ou maximizar o número de variáveis de estado que se mantêm entre

estados que tenham muitas transições entre eles

000

001010

100011

101

000

001011

010101

100

5 transições em que trocam 2 bits 2 transições em que trocam 2 bits

melhor

Page 71: LSDI 0708 Slides P

M I E E C – Laboratório de Sistemas Digitais – 2007/08 141

Codificação de estados(regras práticas)

• se existirem mais códigos do que estados, escolher códigos que permitam minimizar as funções que produzem as saídas

S S* Y

INI 0A ... 1B 1

C1 ... 0C2 1C3 ... 0

Q2Q1Q0 Q* Y

0 0 0 00 0 1 ... 10 1 0 10 1 1 ... 01 0 0 11 0 1 ... 0

Q2Q1Q0 Q* Y

0 0 0 01 0 0 ... 11 0 1 10 0 1 ... 01 1 1 10 1 1 ... 0

Y = Q2.Q1.Q0 + Q1.Q0 + Q2.Q0

Y = Q2

M I E E C – Laboratório de Sistemas Digitais – 2007/08 142

Codificação de estados(regras práticas)

• usar mais FFs do que o mínimo para forçar a aplicação da regra anterior

S S* Y Z

INI 0 1A ... 1 0B 1 0

C1 ... 0 1C2 1 1C3 1 1

SYC 0 1END ... 0 1

Y = Q2.Q1.Q0 + Q1.Q0 + Q2.Q1.Q0

Y = Q3

Q2Q1Q0 S* Y Z

0 0 0 0 10 0 1 ... 1 00 1 0 1 00 1 1 ... 0 11 0 0 1 11 0 1 1 11 1 0 0 11 1 1 ... 0 1

Q3Q2Q1Q0 S* Y Z

0 0 0 0 0 11 1 0 0 ... 1 01 1 0 1 1 00 0 0 1 ... 0 11 0 0 0 1 11 0 0 1 1 10 0 1 0 0 10 0 1 1 ... 0 1

Z = Q2 + Q1.Q0 + Q1.Q0

Z = Q2

Page 72: LSDI 0708 Slides P

M I E E C – Laboratório de Sistemas Digitais – 2007/08 143

Codificação de estados(regras práticas)

• A codificação one-hot conduz (geralmente) a equações de excitação simples– é conveniente se se pretender ter saídas que indiquem o estado actual

– necessita de mais flip-flops do que o número mínimo

– é melhor usar a codificação quase-one-hot para ter o estado inicial=0

• Estas regras não garantem a obtenção de um circuito mínimo– a aplicação de algumas regras pode ser contraditória

• por exemplo, escolher códigos que minimizem as funções que produzem as saídas pode implicar a ocorrência de muitas trocas de bits nas transições entre estados

– os resultados da aplicação de cada regra variam de caso para caso

– a experiência também conta!

M I E E C – Laboratório de Sistemas Digitais – 2007/08 144

Minimização de estados• dois estados são equivalentes se:

– as saídas de Moore assumirem o mesmo valor

– as saídas de Mealy forem iguais para todas as combinações das entradas

– os próximos estados forem os mesmos, sob as mesmas condições de transição

• dois estados equivalentes podem reunir-se num só:

...10/1

d1/0

d1/0

10/1S1

S2Ymo=1

Ymo=1

AB/Yme

S3

S4...

d1/0

10/1S12

Ymo=1S3

S4

...

... ...

...

...

...

Ymo: saída de MooreYme: saída de Mealy

Page 73: LSDI 0708 Slides P

M I E E C – Laboratório de Sistemas Digitais – 2007/08 145

Projecto de circuitos sequenciais(síncronos)

• Síntese de FSMs– circuitos sequenciais com estrutura padrão

– máquinas de estados de Moore e Mealy

– aplica-se para projectar circuitos “pequenos”

• Projecto de circuitos complexos– decomposição hierárquica de FSMs

• uma FSM comanda o funcionamento de outra(s)

– identificação de funções padrão já construídas• podem ser usadas para criar circuitos muito complexos

– por exemplo um microprocessador

M I E E C – Laboratório de Sistemas Digitais – 2007/08 146

Projecto de circuitos sequenciais(síncronos)

• Um circuito sequencial síncrono– todos os flip-flops têm o mesmo sinal de relógio

– circuitos lógicos combinacionais entre os FFs

• Modelo de um circuito sequencial síncrono

QD

CLK

QD

CLK

QD

CLK

entradas(síncronasou assíncronas)

clock

saídacombinacional

saídasíncrona (registada)

...

Page 74: LSDI 0708 Slides P

M I E E C – Laboratório de Sistemas Digitais – 2007/08 147

Funções sequenciais padrão

• Registos– armazenam vários bits em paralelo

– funciona como um flip-flop de vários bits

• Contadores– percorrem uma sequência de estados cíclica

– binários, módulo M, aleatórios, crescente ou decrescente

• Registos de deslocamento– deslocam os bits de uma palavra a cada tick do relógio

– conversão de dados série-paralelo e paralelo-série

M I E E C – Laboratório de Sistemas Digitais – 2007/08 148

Registos• Um registo é um conjunto de flip-flops

– armazena uma palavra de vários bits

– construídos com flip-flops tipo D

QD

CLK

QD

CLK

QD

CLK

Q2

Q1

Q0

D2

D1

D0

CLK

Q[2:0]D[2:0]

CLK

Page 75: LSDI 0708 Slides P

M I E E C – Laboratório de Sistemas Digitais – 2007/08 149

Registos em CIs 74xxx(exemplos)

• 74x175: registo de 4 bits com clear assíncrono

• 74x175: registo de 6 bits com clear assíncrono

• 74x374: registo de 8 bits com saída de 3 estados

• 74x377: registo de 8 bits com enable

CLK

CLR

1D

2D

3D

4D

1Q

2Q

3Q

4Q

1Q

2Q

3Q

4Q

74x175

CLK

CLR

1D

2D

3D

4D

1Q

2Q

3Q

5Q

4Q

6Q

74x174

5D

6D

CLK

OE

1D2D3D4D

74x374

6D7D8D

5D

1Q2Q3Q4Q

6Q7Q8Q

5Q

CLK

EN

1D2D3D4D

74x377

6D7D8D

5D

1Q2Q3Q4Q

6Q7Q8Q

5Q

M I E E C – Laboratório de Sistemas Digitais – 2007/08 150

Contadores• Um contador é um circuito sequencial que conta...

– em binário, decimal ou segundo outras sequências– podem ser assíncronos ou síncronos (máquinas de estados)

• Aplicações– contar coisas...

• por exemplo, os carros que entram num parque de estacionamento

– certas máquinas de estados podem ser projectadas facilmente recorrendo a contadores e circuitos adicionais

• Disponíveis como circuitos da série 74xxx– binários, decimais ou up/down

Page 76: LSDI 0708 Slides P

M I E E C – Laboratório de Sistemas Digitais – 2007/08 151

Contador assíncrono• Com FFs tipo T:

T CLK Q0 Q ant.1 Q ant.

Q

QN

T

CLK

Q

QN

T

CLK

Q

QN

T

CLK

CLK

EN Q0

Q1

Q2

CLK

Q0

Q1

Q2

Cada flip-flops tem como relógio a saída QNdo flip-flop anterior (ripple counter)

flip-flop tipo T

M I E E C – Laboratório de Sistemas Digitais – 2007/08 152

Contador síncrono• Com FFs tipo T:

QT

CLK

QT

CLK

QT

CLK

CLK

EN Q0

Q1

Q2

Todos os flip-flops têm o mesmo sinal de relógio (circuito síncrono)A saída Qi troca quando todos os bits anteriores (Q0 a Qi-1) são iguais a 1

Page 77: LSDI 0708 Slides P

M I E E C – Laboratório de Sistemas Digitais – 2007/08 153

Contador síncrono• Com FFs tipo D:

QD

CLK

QD

CLK

QD

CLK

CLK

ENQ0

Q1

Q2

A B XOR0 0 00 1 11 0 11 1 0

M I E E C – Laboratório de Sistemas Digitais – 2007/08 154

Contador com load paralelo

QD

CLK

QD

CLK

QD

CLK

CLK

EN Q0

Q1

Q2

D0

D1

D2

load

0

1

0

1

0

1

Quando load está activo, o contador é “carregado” com o que está nas entradas Di (Qi* = Di)Como acrescentar uma entrada de reset (síncrono) ?

Page 78: LSDI 0708 Slides P

M I E E C – Laboratório de Sistemas Digitais – 2007/08 155

Contador binário 74x163

CLK

CLR

ENP

DCBA

QDQCQBQA

74x163

LD

ENT

RCO

clock

/CLR /LD ENT ENP QD QC QB QA QD* QC* QB* QA*0 x x x x x x x 0 0 0 01 0 x x x x x x D C B A1 1 0 x x x x x QD QC QB QA1 1 x 0 x x x x QD QC QB QA1 1 1 1 N (se N<15) N + 11 1 1 1 1 1 1 1 0 0 0 0

74x163 estadopresente

próximoestado

RCO=0 quando QD~QA=1111 e ENT=1

M I E E C – Laboratório de Sistemas Digitais – 2007/08 156

74x163 – contador módulo 10

CLK

CLR

ENP

ABCD

QDQCQBQA

74x163

LD

ENT

RCO

Vcc (5V)Estado

QD QC QB QA CLR=QD.QA

0 0 0 0 10 0 0 1 10 0 1 0 10 0 1 1 10 1 0 0 10 1 0 1 10 1 1 0 10 1 1 1 11 0 0 0 11 0 0 1 00 0 0 0 1

. . .

CLR é activado quando o estado actual é 1001

sequência de valores gerados na saída do contador: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, ...

sequênciade estados

Page 79: LSDI 0708 Slides P

M I E E C – Laboratório de Sistemas Digitais – 2007/08 157

74x163 – exemplo 1

CLK

CLR

ENP

ABCD

QDQCQBQA

74x163

LD

ENT

RCO

Gnd(0V)

Vcc (5V)Estado

QD QC QB QA CLR LD

0 0 0 0 1 10 0 0 1 1 10 0 1 0 1 10 0 1 1 1 10 1 0 0 1 10 1 0 1 1 10 1 1 0 1 10 1 1 1 1 01 0 1 0 1 11 0 1 1 1 11 1 0 0 0 10 0 0 0 1 1

. . .

CLR é activado quando o estado actual é 1100

LD é activado quando o estado actual é 0111

valor carregadoquando LDé activado

M I E E C – Laboratório de Sistemas Digitais – 2007/08 158

74x163 – exemplo 3

CLK

CLR

ENP

DCBA

QDQCQBQA

74x163

LD

ENT

RCO

CBA

G1G2AG2B

Y0Y1Y2Y3Y4Y5Y6Y7

74x138

Vcc (5V)

Gnd

QDQCQBQA

clock

Page 80: LSDI 0708 Slides P

M I E E C – Laboratório de Sistemas Digitais – 2007/08 159

Contador com descodificador 3÷8

CLKCLRLD

ENTENP

DCBA

QDQCQBQA

RCO

CLKCLRL

EN

74x163

AB

G2B

Y0

Y1

Y2

Y3

S0

CY4

Y5

Y6

Y7

G2AG1

Vcc=+5V

S1

S2

S3

S4

S5

S6

S7

S0 S1 S2 S3 S4 S5 S6 S7

0 1 1 1 1 1 1 11 0 1 1 1 1 1 11 1 0 1 1 1 1 11 1 1 0 1 1 1 11 1 1 1 0 1 1 11 1 1 1 1 0 1 11 1 1 1 1 1 0 11 1 1 1 1 1 1 00 1 1 1 1 1 1 1

. . .

sequência de estados:

M I E E C – Laboratório de Sistemas Digitais – 2007/08 160

Divisor de frequência

CLKCLRLD

ENTENP

DCBA

QDQCQBQA

RCO

CLK(frequência f)

CLRL

EN

74x163

Vcc=+5V

CLK2 (f/2)CLK4 (f/4)CLK8 (f/8)CLK16 (f/16)

PULSE16 (f/16)

DC=50%

DC=6.25% (1/16)

CLK2 (f/2)

CLK4 (f/4)

CLK8 (f/8)

CLK16 (f/16)

PULSE16 (f/16)

CLK (f)

Page 81: LSDI 0708 Slides P

M I E E C – Laboratório de Sistemas Digitais – 2007/08 161

74x169 - contador up/downclock

CLK

UP/DWN

ENP

DCBA

QDQCQBQA

74x169

LD

ENT

RCO

UPDWN LD ENT ENP QD QC QB QA RCO QD* QC* QB* QA*x 0 x x x x x x a) D C B Ax 1 1 x x x x x 1 QD QC QB QAx 1 x 1 x x x x a) QD QC QB QA1 1 0 0 N (se N<15) 1 N + 11 1 0 0 1 1 1 1 0 0 0 0 00 1 0 0 N (se N>0) 1 N - 10 1 0 0 0 0 0 0 0 1 1 1 1

a) RCO=0 se ENT=0 e ( (N=15 e UPDWN=1) ou (N=0 e UPDWN=0) )

74x169 estadopresente

próximoestado

M I E E C – Laboratório de Sistemas Digitais – 2007/08 162

74x169 – exemplo 1

CLK

UP/DWN

ENP

DCBA

QDQCQBQA

74x169

LD

ENT

RCO

Gnd(0V)

Vcc (5V)

Qual é a sequência de contagem na saída do contador supondo que este arranca em QDQCQBQA = 0000?

?

Page 82: LSDI 0708 Slides P

M I E E C – Laboratório de Sistemas Digitais – 2007/08 163

Contador módulo 256 (8 bits)CLK

CLRLD

ENTENP

DCBA

QDQCQBQA

RCO

CLKCLRLD

ENTENP

DCBA

QDQCQBQA

RCO

CLKCLRL

LDL

EN

D3D2D1D0

D7D6D5D4

Q3Q2Q1Q0

Q7Q6Q5Q4

RCO

Este só conta quando o contadormenos significativo atingir o estado 1111

bits mais significativos

bits menos significativos

RCO vale 1 quando for atingido o valor máximo 11111111

74x163

74x163

M I E E C – Laboratório de Sistemas Digitais – 2007/08 164

Outros contadores da série 74xxx

• 74x161– igual ao 74x163 mas com CLR assíncrono

• logo que CLR é activado as saídas QD~QA são colocadas com 0

• no exemplo do slide 171, o estado 1001 não ocorre– quando as saídas são 1001 é activado CLR e passam logo para 0000

• 74x160– igual ao 74x161 mas apenas conta de 0 a 9 (decade counter)

• 74x162– igual ao 74x163 mas apenas conta de 0 a 9 (decade counter)

Page 83: LSDI 0708 Slides P

M I E E C – Laboratório de Sistemas Digitais – 2007/08 165

ProblemaConstruir uma máquina de estados com 16 saídas Y0, Y1, ... Y15 que produza ciclicamente a sequência de valores seguinte:

Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7 Y8 Y9 Y10 Y11 Y12 Y13 Y14 Y15

1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 1 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 1 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 1 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 1 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 1 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 1 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 1 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 1 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 1 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 1 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 1 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 1 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 1 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 1 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10 0 0 0 0 0 0 0 0 0 0 0 0 0 1 00 0 0 0 0 0 0 0 0 0 0 0 0 1 0 00 0 0 0 0 0 0 0 0 0 0 0 1 0 0 00 0 0 0 0 0 0 0 0 0 0 1 0 0 0 00 0 0 0 0 0 0 0 0 0 1 0 0 0 0 00 0 0 0 0 0 0 0 0 1 0 0 0 0 0 00 0 0 0 0 0 0 0 1 0 0 0 0 0 0 00 0 0 0 0 0 0 1 0 0 0 0 0 0 0 00 0 0 0 0 0 1 0 0 0 0 0 0 0 0 00 0 0 0 0 1 0 0 0 0 0 0 0 0 0 00 0 0 0 1 0 0 0 0 0 0 0 0 0 0 00 0 0 1 0 0 0 0 0 0 0 0 0 0 0 00 0 1 0 0 0 0 0 0 0 0 0 0 0 0 00 1 0 0 0 0 0 0 0 0 0 0 0 0 0 01 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

sugestãousar um 74x169 (up/down)para gerar a sequência 0..15..0,e um descodificador 4÷16 paraproduzir as 16 saídas...

M I E E C – Laboratório de Sistemas Digitais – 2007/08 166

Registo de deslocamento(shift-register)

CLK

SERIAL_IN Q0

Q1

Q2

SERIAL_OUT

saída paralela

1

0

0

0

0

1

0

1

0

1

1

0

1

0

1

0

1

1

0 1 0 0 1 1 0 1 0

0

1

0

0

0

0

QD

CLK

QD

CLK

QD

CLK

Q0

Q1

Q2

CLK

SERIAL_IN

Page 84: LSDI 0708 Slides P

M I E E C – Laboratório de Sistemas Digitais – 2007/08 167

Registo de deslocamentocom carregamento paralelo

CLK

SERIAL_INQ0

Q1

Q2

SERIAL_OUT

QD

CLK

QD

CLK

QD

CLK

0

1

0

1

0

1

D0

D1

D2

LOAD/SHIFT

deslocamento para a esquerda

Qi*=Qi-1; Q0*=SERIAL_IN

(LOAD/SHIFT=0)

carregamento paralelo: Qi* = Di (LOAD/SHIFT=1)

M I E E C – Laboratório de Sistemas Digitais – 2007/08 168

Shift-register 74x194

CLKCLR

S1

RIN

LINDCBA

QDQCQBQA

S0

função s1 s0 QA* QB* QC* QD*próximo estado

hold 0 0 QA QB QC QDshift right 0 1 RIN QA QB QCshift left 1 0 QB QC QD LIN

load 1 1 A B C D

LIN é a entrada série quando é feito um deslocamento para a esquerda (de QD para QA)

RIN é a entrada série quando é feito um deslocamento para a direita (de QA para QD)

Page 85: LSDI 0708 Slides P

M I E E C – Laboratório de Sistemas Digitais – 2007/08 169

Exemplo 1: detector de sequência

CLKCLR

S1

RIN

LINDCBA

QDQCQBQA

S0

Vcc=+5V

Z

CLK

S

Z é quando for detectada na entrada S a sequência 1101 em 4 ticks de relógio consecutivosSão também detectadas sequências parcialmente (como em 1101101)?

M I E E C – Laboratório de Sistemas Digitais – 2007/08 170

Exemplo2: detector de sequência

CLKCLR

S1

RIN

LINDCBA

QDQCQBQA

S0

Vcc=+5V

Z

CLK

S

Quando é detectada a sequência as saídas são “estragadas” (é carregado S000 para QDQCQBQA)Apenas são detectadas sequências não sobrepostas

Page 86: LSDI 0708 Slides P

M I E E C – Laboratório de Sistemas Digitais – 2007/08 171

Exemplo 3: contador

CLKCLR

S1

RIN

LINDCBA

QDQCQBQA

S0

Vcc=+5V

CLK

QDQCQBQA

M I E E C – Laboratório de Sistemas Digitais – 2007/08 172

Exemplo 4: LSFRLinear Feedback Shift Register

Qual é a sequência de contagem na saída do registo supondo que este arranca em QAQBQCQD = 1111?

?