Post on 05-Dec-2014
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”?
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
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)
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
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
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
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:
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”)
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
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)
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)
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
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
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) ]
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)
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
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
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)
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!
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!
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
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
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’
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!)
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)
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
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
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
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
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
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’
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
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
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
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
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
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
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
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
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
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
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
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
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
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!
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
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
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?
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
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
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
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.
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
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
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)
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
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
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
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
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
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
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
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.
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
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
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
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
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!
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!
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
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
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
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)
...
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
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
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
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) ?
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
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
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)
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?
?
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)
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
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)
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
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?
?