Arquitectura de Sistemas Computacionais

Download Report

Transcript Arquitectura de Sistemas Computacionais

1
Introdução à Lógica Digital
Arquitectura de Sistemas Computacionais
Introdução à Lógica Digital
ELECTRÓNICA DIGITAL
“...é o conjunto de determinadas técnicas e dispositivos integrados, de vários
graus de complexidade, que se utilizam principalmente na realização de circuitos
de controlo de processos industriais, de equipamentos informáticos para
processamento de dados e, em geral, de outros equipamentos e produtos
electrónicos.”
Relativamente à Electrónica Analógica:
 Permitiu melhorar sistemas e produtos já existentes e desenvolver outros até aí
impossíveis ou inviáveis de construir.
 Apresentam uma maior imunidade ao ruído eléctrico, elevada densidade de
integração, facilidade de acoplamento com outros circuitos, simplicidade de
projecto e de análise, ...
Arquitectura de Sistemas Computacionais
Introdução à Lógica Digital
SINAIS ANALÓGICOS:
Toda a grandeza Analógica é aquela que assume uma infinidade de valores ao
longo do tempo de uma forma contínua e sem saltos bruscos (p.e. variação da
temperatura ao longo de um dia).
Temp
40
30
20
10
0
1
2
3
4
5
6
7
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
Horas
Arquitectura de Sistemas Computacionais
Introdução à Lógica Digital
SINAIS DIGITAIS:
Toda a grandeza Digital é aquela que assume um número finito de valores e que
varia de valor por saltos de uma forma descontínua (p.e. variação hora a hora da
temperatura ao longo de um dia). Portanto a sua evolução no tempo consiste
precisamente em saltar duns valores discretos para outros.
Temp
40
30
20
10
0
1
2
3
4
5
6
7
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
Horas
Arquitectura de Sistemas Computacionais
Introdução à Lógica Digital
CIRCUITOS ELECTRÓNICOS DIGITAIS BINÁRIOS:
Definição: São circuitos que funcionam baseados em apenas dois valores de
amplitude.
Nível
Alto 1
Nível
Baixo 0
Em lógica positiva, faz-se corresponder ao nível mais elevado de tensão o valor
lógico 1. Ao valor mais baixo de tensão (que pode ser 0 volts ou outra tensão
qualquer) o valor lógico 0.
RAZÕES PARA A SUA LARGA UTILIZAÇÃO:
Simplicidade e grande tolerância dos componentes dos CIs;
Interligação fácil e versátil com outros componentes;
Imunidade ao ruído.
Arquitectura de Sistemas Computacionais
Introdução à Lógica Digital
APLICAÇÕES (ELECTRÓNICA DIGITAL):
 Máquinas de calcular;
 Instrumentos de medida;
 Relógios digitais;
 Contadores;
 Computadores digitais;
 Etc...
APLICAÇÕES (ELECTRÓNICA ANALÓGICA):
 Amplificadores de áudio
 Receptores de rádio
 Etc...
Arquitectura de Sistemas Computacionais
1
Sistemas de Numeração
Sistemas de Numeração
INTRODUÇÃO
A utilização de 10 algarismos diferentes – 0 até 9 – para representação usual de números;
Vários países tiveram sistemas não decimais, nomeadamente para medidas de peso ou
comprimento. 1 pé → 12 polegadas. Sistema de base 12 (0 até 11);
Usando a semana como unidade de contagem dos dias estamos a usar um sistema de base
sete (0 até 6);
Supondo que não existiam no sistema de base 10 os algarismos 8 e o 9 → sistema com 8
algarismos diferentes → sistema de base oito ou sistema octal.
Quando temos que escrever diferentes números em diferentes bases a seguir ao número
representamos. entre parentesis a sua base de modo a evitar ambiguidades e imprecisões.
Por exemplo:
8(10) = 10(8)
Esta igualdade sem os respectivos índices não teria qualquer significado!
Nos circuitos digitais para a representação de números e execução de operações
aritméticas com circuitos digitais, temos que usar um sistema de numeração que tenha
simplesmente dois algarismos - 0 e 1 - sistema binário ou sistema de base 2.
Arquitectura de Sistemas Computacionais
Sistemas de Numeração
FÓRMULA GENÉRICA PARA DEFINIÇÃO DE UM NÚMERO DECIMAL:
Nn Nn-1 Nn-2... N1= Nn.bn-1+ Nn-1.bn-2+...+ N1.b0
Onde,
N representa um algarismo qualquer pertencente ao valor;
n é o número de algarismos pertencentes ao valor;
b é a base de numeração pela qual se representa o valor.
Arquitectura de Sistemas Computacionais
Sistemas de Numeração
DESCRIÇÃO DOS SISTEMAS DE NUMERAÇÃO

DECIMAL (base 10)
Utiliza 10 dígitos {0,1,2,...,9}

BINÁRIO (base 2)
Utiliza 2 dígitos {0,1}

OCTAL (base 8)
Utiliza 8 dígitos {0,1,2,...,7}

HEXADECIMAL (base 16)
Utiliza 16 dígitos {0,1,...,9,A,B,...,F}
Arquitectura de Sistemas Computacionais
Sistemas de Numeração
SISTEMA DECIMAL
Baseia-se no facto de anatomicamente dispormos de 5 dedos em cada mão,
torna-se necessário que a contagem envolva 10 dígitos  sistema de base 10
Sistema de Base 10  {0,1,2,3,4,5,6,7,8,9}
PESO
A posição de cada um destes dígitos diz-nos a grandeza que representa e pode
ser designada por peso.
EXEMPLO (número inteiro):
3 4 6 7
Unidades
Dezenas
Centenas
Milhares
-
EXEMPLO (número inteiro):
7
6
4
3
x
1=
7
x 10= 60
x 100= 400
x 1000= 3000
3467
1 5 7 2(…)= 1x103+5x102+7x101+2x100
E se for fraccionário? As potências são de base negativa, partindo do valor 1.
Arquitectura de Sistemas Computacionais
Sistemas de Numeração
SISTEMA BINÁRIO
É o mais utilizado nos Circuitos Digitais (Sistemas Digitais) porque se baseia
nos dois estados possíveis dos elementos neles usados, i. é., há tensão ou não.
Sistema de Base 2  {0,1}
Cada um dos algarismos designa-se por dígito binário ou bit (Binary Digit).
PESO
Cada dígito comparticipa na formação do número com um peso, determinado
pela posição que ocupa no número (...32 (25), 16 (24), 8 (23), 4 (22), 2 (21), 1 (20)).
FORMAÇÃO DOS NÚMEROS NO SISTEMA BINÁRIO
0 1 10 11 100 101 110 111
Exemplo:
Valor inteiro e fraccionário:
o 1101(2) = 1x23+1x22+0x21+1x20 = 13 … em decimal ;)
o E se for fraccionário? …procede-se da mesma forma! Atenção à base!!
Arquitectura de Sistemas Computacionais
Sistemas de Numeração
SISTEMA OCTAL
O sistema de numeração Octal é composto por oito dígitos.
Sistema de Base 8  {0,1,2,3,4,5,6,7}
PESO
Cada dígito comparticipa na formação do número com um peso, determinado
pela posição que ocupa no número (...32768 (85), 4096 (84), 512 (83), 64 (82), 8
(81), 1 (80)).
Exemplo:
Valor inteiro e fraccionário:
o 347(8) = 3x82+4x81+7x80 = 231
o E se for fraccionário? …procede-se da mesma forma! Atenção à base!!
Nota: Todos os números representados num sistema de numeração para além
do decimal, INCLUEM ENTRE PARENTESIS A RESPECTIVA BASE !!!
Arquitectura de Sistemas Computacionais
Sistemas de Numeração
SISTEMA HEXADECIMAL
O sistema Hexadecimal é composto por 16 símbolos.
Sistema de Base 16  {0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F}
PESO
Cada dígito comparticipa na formação do número com um peso, determinado
pela posição que ocupa no número (...65536 (164), 4096 (163), 256 (162), 16
(161), 1 (160)).
Exemplo:
Valor inteiro e fraccionário:
o 4FA(16) = 4x162+15x161+10x160 = 1274
o … e se for fraccionário?
→ 4FA,AB(16) = 4x162+15x161+10x160+10x16-1+11x16-2= 1274,0664
Nota: Todos os números representados num sistema de numeração para além
do decimal, INCLUEM ENTRE PARENTESIS A RESPECTIVA BASE !!!
Arquitectura de Sistemas Computacionais
Sistemas de Numeração
TABELA
Decimal
Binário
Octal
Hexadecimal
0
00000
0
0
1
00001
1
1
2
00010
2
2
3
00011
3
3
4
00100
4
4
5
00101
5
5
6
00110
6
6
7
00111
7
7
8
01000
10
8
9
01001
11
9
10
01010
12
A
11
01011
13
B
12
01100
14
C
13
01101
15
D
14
01110
16
E
15
01111
17
F
16
10000
20
10
Arquitectura de Sistemas Computacionais
Sistemas de Numeração
CONVERSÃO DE DECIMAL PARA BASE b
Números Inteiros:
Base 2  Divisões sucessivas por 2;
Exº 2672 = 101001110000(2)
Base 8  Divisões sucessivas por 8;
Exº 315 = 473(8)
Base 16  Divisões sucessivas por 16;
Exº 675 = 2A3(16)
Números Fraccionários:
Base 2  Multiplicações sucessivas por 2;
Exº 0,125 = 0,001(2)
Base 8  Multiplicações sucessivas por 8;
Exº 0,125 = 0,1(8)
Base 16  Multiplicações sucessivas por 16; Exº 0,125 = 0,2(16)
Arquitectura de Sistemas Computacionais
Sistemas de Numeração
CONVERSÕES ENTRE SISTEMAS DE NUMERAÇÃO
Conversões de
Números Inteiros
Binário
Octal
Divisões Consecutivas por 8
Divisões Consecutivas por 2
Dn…D2D1=Dn*2n-1+…+D2*21+D1*20
Arquitectura de Sistemas Computacionais
Hexadecimal
Dn…D2D1=Dn*8n-1+…+D2*81+D1*80
Decimal
Divisões Consecutivas por 16
Dn…D2D1=Dn*16n-1+…+D2*161+D1*160
Sistemas de Numeração
CONVERSÕES ENTRE SISTEMAS DE NUMERAÇÃO
Conversão da Parte
Fraccionária
Binário
Octal
Produtos Consecutivos por 8
Produtos Consecutivos por 2
0,D1D2… Dn=D1*2-1+D2*2-2+…+Dn*2-n
Arquitectura de Sistemas Computacionais
Hexadecimal
0,D1D2… Dn=D1*8-1+D2*8-2+…+Dn*8-n
Decimal
Produtos Consecutivos por 16
0,D1D2… Dn=D1*16-1+D2*16-2+…+Dn*16-n
Sistemas de Numeração
CONVERSÕES ENTRE SISTEMAS DE NUMERAÇÃO
Cada n.º é convertido para um binário de 4 Bits
Binário
Agrupam-se os Bits em grupos de 4
Cada n.º é convertido para um binário de 3 Bits
Agrupam-se os Bits em grupos de 3
Hexadecimal
Octal
Passa-se por uma base intermédia (Decimal ou Binária)
Arquitectura de Sistemas Computacionais
Sistemas de Numeração
OPERAÇÕES EM BINÁRIO
SOMA
a
b
Soma
0
0
1
1
0
1
0
1
0
1
1
0
Transporte ou
Carry (C)
0
0
0
1
EXEMPLO
101101
+110010
1011111
Arquitectura de Sistemas Computacionais
 Carry
Sistemas de Numeração
OPERAÇÕES EM BINÁRIO
SUBTRACÇÃO
a
b
Diferença
Borrow (B)
0
0
1
1
0
1
0
1
0
1
1
0
0
1
0
0
101101
-010010
011011
Nota: Dar exº de multiplicação em binário....
Arquitectura de Sistemas Computacionais
 Borrow
Sistemas de Numeração
OPERAÇÕES EM OCTAL
SOMA
SUBTRACÇÃO
2 4 7(8)
3 2 5(8)
+ 5 6(8)
- 5 6(8)
3 2 5(8)
2 4 7(8)
OPERAÇÕES EM HEXADECIMAL
SOMA
SUBTRACÇÃO
A 3 7(16)
A A 5(16)
+ 5 9 B(16)
- 6 E D(16)
F D 2(16)
3 B 8(16)
Arquitectura de Sistemas Computacionais
Sistemas de Numeração
OPERAÇÕES EM OCTAL/HEXADECIMAL
MULTIPLICAÇÃO
5 6(8)
x 1 4(8)
30
24
56
1 0 5 0(8)
6(10)  4(10)  24(10)  30(8)
4(10)  5(10)  20(10)  24(8)
1(10)  6(10)  6(10)  6(8)
1(10)  5(10)  5(10)  5(8)
Arquitectura de Sistemas Computacionais
A B(16)
x 4 C(16)
84
78
2C
28
3 2 C 4(16)
C(10 )  B(10 )  12  11  132(10 )  84(16 )
C(10 )  A(10 )  12  10  120(10 )  78(16 )
4(10 )  B(10 )  4  11  44(10 )  2C(16 )
4(10 )  A(10 )  4  10  40(10 )  28(16 )
Sistemas de Numeração
REPRESENTAÇÃO DE NÚMEROS NEGATIVOS
COMPLEMENTAÇÃO
Complemento de um número: É a diferença entre a base (B) e o número (N)
COMPLEMENTO PARA UM
O complemento para 1 de um número N com k bits é dado pela seguinte expressão:
2k  N  1
EXEMPLO
O complemento para 1 do número 1001:
k 4
2k  24  16  10000 ( 2 )
2k  N  1  10000 ( 2 )  1001( 2 )  1( 2 )  0110 ( 2 )
REGRA PRÁTICA: Trocar os 0’s por 1’s e vice-versa.
Arquitectura de Sistemas Computacionais
Sistemas de Numeração
COMPLEMENTAÇÃO (cont.)
COMPLEMENTO PARA DOIS
O complemento para 2 de um número N com k bits é dado pela seguinte expressão:
2k  N
REGRAS PRÁTICAS
 Determinar o complemento para 1 do número e
somar ao resultado o valor 1
. Da direita para a esquerda do número encontrar o
primeiro dígito a 1. Mantê-lo e inverter os restantes.
Arquitectura de Sistemas Computacionais
Sistemas de Numeração
REPRESENTAÇÃO DE NÚMEROS RELATIVOS (2´C)
Registo de 8 flip-flops onde 7 flip-flops representam a grandeza do número e o 8º
representa o sinal, olhando da direita para a esquerda.
0
0
1
1
0
1
0
1
+53
1
1
0
0
1
0
1
1
- 53
Se pretendermos usar um número fixo de bits (k bits), normalmente usado nas
máquinas, a expressão seguinte indica-nos a gama de valores possíveis de representar,
usando bit de sinal:
 2k 1  N  2k 1  1
EXEMPLO
Registo com 4 bits (casas)  - 8  N  7
O número 3(10) = 0 011(2)
O número –3 otém-se: 0011(2) 1100(2) + 1(2) = 1 101(2)
Arquitectura de Sistemas Computacionais
Sistemas de Numeração
OPERAÇÕES COM NÚMEROS RELATIVOS
ADIÇÃO
1.
2.
3.
4.
5.
Decidir sobre o número de casas com que vamos trabalhar.
Tomar módulos dos números, em binário.
Representar números negativos na forma de complemento para 2.
Usar regra da adição.
Analizar resultados:
 Se existe carry, desprezá-lo.
Se o bit mais significativo, após desprezar o carry é:
 0 – o resultado é positivo e o bit mais à esq. é o bit de sinal.
 1 – o resultado é negativo e está na forma de complemento para 2
SUBTRACÇÃO
1.
2.
3.
4.
Idêntico ao ponto 1 da adição.
Determinar o complemento para 2 do diminuendo.
Adicionar o diminuidor ao diminuendo.
Seguir o ponto 5 da adição.
Arquitectura de Sistemas Computacionais
Sistemas de Numeração
EXERCÍCIO:
a) 12 + 9 b) 12 - 9 c) -12 - 9 d) -12 + 9
RESOLUÇÃO:
 21  resultado  21
Com 5 casas : 16  resultado  15
Com 6 casas : 32  resultado  31
 6 casas (mínimo obrigatóri o)
1. 12 (10 )  001100 ( 2 )
9 (10 )  001001( 2 )
2. Determinar representação de - 12 e - 9 em 2' C :
-12( 10 )  110100( 2 )
 9(10 )  110111( 2 )
Arquitectura de Sistemas Computacionais
Sistemas de Numeração
RESOLUÇÃO(cont.):
3. a) 12 + 9
001100
+001001
010101
b) 12 - 9
c) -12 - 9
d) -12 + 9
001100
+110111
1000011
110100
+110111
1101011
110100
+001001
111101
c) 1 0 1 0 1 1
d) 1 1 1 1 0 1
4. a) e d) não  carry
b) e c)  carry desprezá-lo!!
5. a) 0 1 0 1 0 1
+
21
b) 0 0 0 0 1 1
+
3
- 21(2’C)
Complemento
para 2 do
valor obtido
Arquitectura de Sistemas Computacionais
-
3(2’C)
3
Álgebra de Boole
Arquitectura de Sistemas Computacionais
Álgebra de Boole
FUNDAMENTOS DA ÁLGEBRA DE BOOLE
PROPOSIÇÃO – É uma frase ou expressão matemática cujo conteúdo pode ser verdadeiro ou
falso.
Considerar as seguintes proposições:
p(x) = x é PAR = {0, 2, 4, 6, 8, ...}
p(x) representa o conjunto dos números pares
q(x) = x é MÚLTIPLO de 3 = {3, 6, 9, 12, 15, ...}
q(x) representa o conjunto dos números que são múltiplos de 3.
Estes conjuntos pertencem a um conjunto mais geral que se designa por universo, e que será
o conjunto dos números naturais.
U(x) = {0, 1, 2, 3, 4, ...}
Arquitectura de Sistemas Computacionais
Álgebra de Boole
Os conjuntos podem ser representados graficamente através de DIAGRAMAS DE VENN,
levando-nos à obtenção de funções lógicas.
Conjunção, Intersecção ou Produto Lógico
q(x)
I- p(x)  q(x) ou p(x)  q(x)
p(x)
Disjunção, Reunião ou Soma Lógica
q(x)
II- p(x)  q(x) ou p(x)  q(x)
p(x)
Complementação ou Negação Lógica
p(x)
III- p(x)
Arquitectura de Sistemas Computacionais
Álgebra de Boole
CONJUNÇÃO, INTERSECÇÃO OU PRODUTO LÓGICO
q(x)
p(x)
I - Conjunto representado pela proposição: p(x)  q(x)
Resulta da intersecção dos conjuntos q(x) e p(x).
II - Conjunto representado pela proposição: p( x)  q( x)
Resulta da intersecção dos conjuntos q(x) e o complementar de p(x).
III - Conjunto representado pela proposição: p( x)  q( x)
Resulta da intersecção dos conjuntos p(x) e o complementar de q(x).
IV - Conjunto representado pela proposição: p( x)  q( x)
Resulta da intersecção dos conjuntos complementar de p(x) e
complementar de q(x).
Arquitectura de Sistemas Computacionais
Álgebra de Boole
CONJUNÇÃO, INTERSECÇÃO OU PRODUTO LÓGICO (cont.)
Verifica-se que as intersecções possíveis entre os dois conjuntos são as seguintes:
p( x)  q( x)
p( x)  q( x)
p( x)  q( x)
p( x)  q( x)
A proposição p(x) é 1 ou verdadeira (V) quando engloba os números pares e q(x) quando
engloba os números múltiplos de 3. Por outro lado, os seus complementos, que negam as
condições inicais, são 0 ou falsos (F). Isto permite transformar as expressões em cima na
seguinte TABELA DE VERDADE:
a
b
S=ab
F
F
F
F
V
F
V
F
F
V
V
V
Arquitectura de Sistemas Computacionais
Álgebra de Boole
CONJUNÇÃO, INTERSECÇÃO OU PRODUTO LÓGICO (cont.)
ESQUEMA DE CONTACTOS ELÉCTRICOS
a
+V
M
b
TABELA DE VERDADE
TABELA DE VERDADE
a
b
M
0
0
0
Parado
Para efeitos lógicos e
simplificação da tabela
faz-se a correspondência
dos estados em que:
0
1
0
Aberto
Parado
Aberto; Parado  0
1
0
0
Fechado
Actuado
Fechado; Actuado  1
1
1
1
a
b
M
Aberto
Aberto
Parado
Aberto
Fechado
Fechado
Fechado
FUNÇÃO LÓGICA DA INTERSECÇÃO
OU PRODUTO LÓGICO
M  a b
Arquitectura de Sistemas Computacionais
PORTA LÓGICA (AND)
a
b
M
Álgebra de Boole
DIJUNÇÃO, REUNIÃO OU SOMA LÓGICA
ESQUEMA DE CONTACTOS ELÉCTRICOS
a
L
+V
b
TABELA DE VERDADE
TABELA DE VERDADE
a
b
S
0
0
0
L. Ligada
Para efeitos lógicos e
simplificação da tabela
faz-se a correspondência
dos estados em que:
0
1
1
P. Fech.
L. Ligada
P Fech.; L. Desl.  0
1
0
1
P. Aberta
L. Ligada
P. Aberta; L. Ligada 1
1
1
1
a
b
L
P. Fech.
P. Fech.
L. Desl.
P. Fech.
P. Aberta
P. Aberta
P. Aberta
FUNÇÃO LÓGICA DA REUNIÃO
OU SOMA LÓGICA
M  ab
Arquitectura de Sistemas Computacionais
PORTA LÓGICA (OR)
a
b
M
Álgebra de Boole
COMPLEMENTAÇÃO OU NEGAÇÃO LÓGICA
ESQUEMA DE CONTACTOS ELÉCTRICOS
+V
a
S
TABELA DE VERDADE
a
S
Aberto
Ligada
Fechado
Desligada
TABELA DE VERDADE
Para efeitos lógicos e simplificação
da tabela faz-se a correspondência
dos estados em que:
Aberto; Desligada  0
Fechado; Ligada  1
FUNÇÃO LÓGICA DA NEGAÇÃO
OU INVERSOR LÓGICO
S a
Arquitectura de Sistemas Computacionais
a
S
0
1
1
0
PORTA LÓGICA (NOT)
a
a
Álgebra de Boole
OUTRAS FUNÇÕES BÁSICAS IMPORTANTES
Denominação
NAND
NOR
EXOR
(exclusive OR)
EXNOR
(exclusive NOR)
Tabela
Função
a
b
S
0
0
1
0
1
1
1
0
1
1
1
0
a
b
S
0
0
1
0
1
0
1
0
0
1
1
0
a
b
S
0
0
0
0
1
1
1
0
1
1
1
0
a
b
S
0
0
1
0
1
0
1
0
0
1
1
1
Arquitectura de Sistemas Computacionais
Porta Lógica
S  a b
a
b
S
S  ab
a
b
S
S  a b  a b  a b
a
b
S  a b  a b
a
S  a b  a b
b
S
S
Álgebra de Boole
REGRAS DE CÁLCULO DA ÁLGEBRA DE BOOLE
A utilização prática da Álgebra de Boole vai permitir:
 Apresentar um dado circuito lógico através da sua equação ou expressão.
 Simplificar a expressão lógica de forma ao circuito poder ser implementado com o menor
número possível de portas lógicas (AND’s, OR’s, NOT’s, etc...).
Semelhanças da Álgebra de Boole relativamente à Álgebra Clássica:
 Propriedade Comutativa.
 Propriedade Associativa.
 Propriedade Distributiva.
A principal diferença é que na Álgebra de Boole não é possível passar termos de um membro
para o outro de uma equação.
Arquitectura de Sistemas Computacionais
Álgebra de Boole
REGRAS DE CÁLCULO DA ÁLGEBRA DE BOOLE (cont.)
Regras da Álgebra de Boole a estudar:
 Expressões só com constantes.
 Expressões com uma constante e uma variável.
 Dupla negação.
 Expressões com mais de uma variável:
 Propriedade Comutativa.
 Propriedade Associativa.
 Propriedade Distributiva.
 Princípio da dualidade ou Lei de De Morgan.
 Regras gerais de simplificação ou Leis de Absorção.
Arquitectura de Sistemas Computacionais
Álgebra de Boole
EXPRESSÕES SÓ COM CONSTANTES
Constantes da Álgebra de Boole: ‘0’ e ‘1’
Função AND:
00  0
0 1  0
1 0  0
1 1  1
Função OR:
000
0 1  1
1 0  1
11  1
Função NOT:
0 1
1 0
Arquitectura de Sistemas Computacionais
Álgebra de Boole
EXPRESSÕES COM UMA CONSTANTE E UMA VARIÁVEL
Função AND:
0a  0
1 a  a
aa  a
aa  0
Função OR:
0a  a
1 a 1
aaa
a  a 1
Arquitectura de Sistemas Computacionais
Álgebra de Boole
DUPLA NEGAÇÃO
00
11
aa
EXPRESSÕES COM MAIS DE UMA VARIÁVEL
Propriedade Comutativa:
a  b  c  a  c  b  b  a  c  ...
a  b  c  a  c  b  b  a  c  ...
Propriedade Associativa:
a  b  c  (a  b)  c  a  (c  b)  ...
a  b  c  (a  b)  c  a  (c  b)  ...
Propriedade Distributiva:
- em relação à multiplicação
- em relação à Soma
a  (b  c)  (a  b)  (a  c)
a  (b  c)  (a  b)  (a  c)
Arquitectura de Sistemas Computacionais
Álgebra de Boole
EXPRESSÕES COM MAIS DE UMA VARIÁVEL (cont.)
Princípio da dualidade ou Lei de De Morgan:
a  b  a b
a b  a  b
ou com 3 variáveis,
a  b  c  a bc
a bc  a  b  c
EXERCÍCIO: Tente fazer a demonstração das Leis de De Morgan.
A demonstração poderá ser feita através:
- tabela de verdade.
- diagrama de Venn.
- circuitos lógicos (ainda por abordar!!).
- analiticamente.
Arquitectura de Sistemas Computacionais
Álgebra de Boole
REGRAS GERAIS DA SIMPLIFICAÇÃO OU LEIS DE ABSORÇÃO
1ª Regra:
a  ( a  b)  a
a  ( a  b)  a
2ª Regra:
a  ( a  b)  a  b
a  ( a  b)  a  b
3ª Regra:
( a  b)  ( a  b)  a
( a  b)  ( a  b)  a
Tente Demonstrar...
EXERCÍCIO: Simplifique a seguinte expressão lógica:
f (a, b, c)  cba  cba  ba  cb a
Arquitectura de Sistemas Computacionais
Resposta : ca  ba
Álgebra de Boole
FORMA CANÓNICA DE UMA FUNÇÃO BOOLEANA
A todo o produto de somas ou soma de produtos nos quais aparecem todas as
variáveis em cada um dos termos que constituem a expressão, em forma directa ou
complementada, da-se a desigação de FORMA CANÓNICA.
São exemplos de formas canónicas as seguintes funções:
S1  a  b  c  a  b  c  a  b  c
Soma de Produtos
S 2  (a  b  c)  (a  b  c)  (a  b  c)
Produto de Somas
As funções do tipo S1 tomam o nome de primeira forma canónica ou
MINTERMOS (Minterms) e as do tipo S2 denominam-se de segunda forma
canónica ou MAXTERMOS (Maxterms).
Arquitectura de Sistemas Computacionais
Álgebra de Boole
FUNÇÃO LÓGICA A PARTIR DA TABELA DE VERDADE
Seja f (a, b, c) definida pela tabela de verdade:
a
b
c
f
0
0
0
1
Na primeira forma Canónica (soma de produtos) :
0
0
1
1
f (a, b, c)  a  b  c  a  b  c  a  b  c  a  b  c  a  b  c  a  b  c
0
1
0
1
f (a, b, c)   (0,1,2,4,5,6)
0
1
1
0
1
0
0
1
1
0
1
1
Na segunda forma Canónica (produto de somas) :
1
1
0
1
f (a, b, c)  (a  b  c)  (a  b  c)
1
1
1
0
f (a, b, c)   (3,7)
Arquitectura de Sistemas Computacionais
Álgebra de Boole
MAPAS DE kARNAUGH
Um Mapa de Karnaugh é uma representação gráfica de uma função. Trata-se de um
diagrama feito de quadrados. Cada quadrado representa um mintermo. Um mapa para uma
função lógica com n entradas é um conjunto de 2n células, uma para cada mintermo.
Mapa de duas entradas:
b
0
1
a
a
b
0
0
a
0
ab
1
a
1
ab
b
0
2
ab
ab
1
3
b
Mapa de três entradas:
bc
00
01
11
10
a
a
bc
00
0
a
0
abc
1
a
1
abc
b
c
1
b
c
b
c
b
c
Arquitectura de Sistemas Computacionais
01
11
10
0
abc 1 abc 3 abc 2
4
abc 5 abc 7 abc 6
Álgebra de Boole
MAPAS DE kARNAUGH (cont.)
Mapa de quatro entradas:
cd
ab
00
01
11
cd
10
ab
00
01
11
10
00
a b
00
abc d 0 abcd 1 abcd 3 abc d 2
01
a b
01
abc d
11
a b
11
abc d
10
a b
10
abc d abcd abcd
c
d
c
d
c
d
ab
00
00
01

01
11
8
e 1
10

*
cd
ab
00
00
01

01
11
10
12
11
10

*
11
+
abcd abcd
5
abcd abcd
13
9
7
15
abcd
6
abcd
14
abc d
11
10
c
d
Mapa de cinco entradas:
e0
cd
4
+
10
Arquitectura de Sistemas Computacionais
+
+
* - Posições adjacentes.
 - Posições adjacentes.
+ - Posições adjacentes.
Elementos em posições
correspondentes, mas
em quadros diferentes,
são adjacentes.
Álgebra de Boole
MAPAS DE kARNAUGH (APLICAÇÃO)
Dada a seguinte função:
f (a, b, c, d )   (0,2,3,4,6,7,8,10)
4 variáveis 
cd
ab
00
24
= 16 quadriculas
01
11
É prática comum envolver com
um laço os 1s adjacentes;
10
00
1
1
1
01
1
1
1
Apenas é possível efectuar
agrupamentos com um nº de
células igual a uma potência de 2
11
10
1
1
F  ad bd  ac
Uma função Booleana, expressa como
soma de mintermos, especifica as
condições que levam a função a ser
igual a 1.
Nota: O conceito de Don´t care conditions será abordado mais tarde.
Arquitectura de Sistemas Computacionais
Tabela de Verdade
d
c
b
a
F
0
0
0
0
1
0
0
0
1
0
0
0
1
0
1
0
0
1
1
1
0
1
0
0
1
0
1
0
1
0
0
1
1
0
1
0
1
1
1
1
1
0
0
0
1
1
0
0
1
0
1
0
1
0
1
1
0
1
1
0
1
1
0
0
0
1
1
0
1
0
1
1
1
0
0
1
1
1
1
0
Álgebra de Boole
REALIZAÇÃO DE FUNÇÕES (com circuitos lógicos)
FUNÇÕES NAND E NOR COMO FUNÇÕES UNIVERSAIS
FUNÇÃO
INVERSOR
'1'
a
a
a
'0'
a
a b
a
b
a
OR
a b
b
ab
b
a
PORTA NOR
a
a
a
a
a
AND
PORTA NAND
a
a b
ab
a
b
IMPLEMENTAÇÃO DO XOR COM PORTAS UNIVERSAIS
 (a  b)  (a  b)
Arquitectura de Sistemas Computacionais
a
b
b
a  b  a  b  a  b  (a  b)  (a  b)
a
, com portas NOR
, com portas NAND
ab
Álgebra de Boole
ETAPAS PARA A SOLUÇÃO DE UM PROBLEMA
 Definição de variáveis;
 Obtenção da Tabela de Verdade;
 Determinação da função;
 Simplificação da função (analítica, mapas de Karnaugh, Quine-McCluskey);
 Conversão das funções para o uso de portas pretendidas;
 Desenho do diagrama lógico;
 Realização.
Arquitectura de Sistemas Computacionais
Álgebra de Boole
EXERCÍCIO
“SELECÇÃO PARA INGRESSO EM EMPRESA”
Para realizar uma primeira selecção de ingresso numa determinada empresa são
precisos dois ou mais dos seguintes requisitos:
- Possuir título académico.
- Possuir dois anos de experiência.
- Ser recomendado pela direcção da empresa.
Construa, com portas lógicas, um circuito que realize, automaticamente, a
selecção.
Arquitectura de Sistemas Computacionais
Álgebra de Boole
SOLUÇÃO:
2. Tabela de Verdade:
1. Definição de variáveis:
a - Possuir título académico.
b - Possuir dois anos de experiência.
c - Ser recomendado pela direcção da empresa.
3. Determinação da função:
F  abc  abc  abc  abc
4. Simplificação da função:
bc
00
01
11
10
a
0
1
1
1
b
c
F
0
0
0
0
0
0
1
0
0
1
0
0
0
1
1
1
1
0
0
0
1
0
1
1
1
1
0
1
1
1
1
1
6. Circuito lógico:
a
1
a
b
c
1
F  a c  a b  bc
5. Conversão em NANDs:
F  a c a bbc
Arquitectura de Sistemas Computacionais
S
4
Aspectos Tecnológicos
Arquitectura de Sistemas Computacionais
Aspectos Tecnológicos
FAMÍLIAS LÓGICAS
Escalas de integração:
 SSI (Small Scale Integration) – Integração em pequena escala. Envolve um número de
transístores na ordem da dezena e integra entre uma e dez portas por invólucro.
 MSI (Medium Scale Integration) – Integração em média escala. Integra numa única
pastilha de silício, circuitos digitais envolvendo entre 10 e 200 portas lógicas.
 LSI (Large Scale Integration) – Integração em larga escala. A este nível integram-se,
numa única pastilha, sistemas digitais de grande complexidade, envolvendo muitos
milhares de transístores (p.e. memórias de elevada capacidade de armazenamento,
microprocessadores, etc.).
 VLSI (Very Large Scale Integration) – Integração em muito larga escala. Tornam-se
muito comuns hoje em dia circuitos VLSI, que integram numa única pastilha estruturas
de computadores envolvendo várias centenas de milhar de transístores
Arquitectura de Sistemas Computacionais
Aspectos Tecnológicos
FAMÍLIAS LÓGICAS (cont.)
Objecto de estudo:
 TTL (Transistor – Transistor Logic)
 CMOS (Complementary Metal Oxide Semiconductor)
Para projectar um dispositivo digital envolvendo circuitos lógicos de uma dada família é
fundamental conhecer as características dessa família, nomeadamente:
 Tempo de propagação (velocidade).
 Potência dissipada.
 Fan-out.
 Margem de ruído.
 Factor de mérito.
Arquitectura de Sistemas Computacionais
Aspectos Tecnológicos
CARACTERÍSTICAS DAS FAMÍLIAS LÓGICAS (1)
TEMPO DE ATRASO DE PROPAGAÇÃO (tp)
O tempo de atraso de propagação de um sinal é a quantidade de tempo que vai desde que a
ocorrência de uma mudança de estado na entrada se reflita na saída.
5V
Entrada 0V
tPLH
VOH
VOL
Saída
tPHL
VOH
VOL
tPHL
tPLH
Arquitectura de Sistemas Computacionais
Aspectos Tecnológicos
CARACTERÍSTICAS DAS FAMÍLIAS LÓGICAS (2)
POTÊNCIA DISSIPADA
Qualquer circuito necessita de certa potência para poder realizar operações. A dissipação
de potência por porta expressa-se em mW e é o produto da tensão de polarização (VCC)
pela corrente fornecida pela fonte de alimentação (ICC) à porta. Este valor de corrente
depende do nível lógico de saída da porta. Se o nível for ALTO temos ICCH se for BAIXO
temos ICCL. A média destas correntes é que nos dá ICC. Assim PD=VCCICC.
 A potência dissipada é medida por circuito ou por porta lógica.
FAN-OUT
Indica qual o número máximo de entradas de portas do mesmo tipo poderão ser ligadas a
uma saída, sem que se altere o seu funcionamento.
Valores típicos (TTL standard (7400)):
I OH  400 A
I IH  40A
I OL  16mA
O valor do FAN-OUT é determinado pelo quociente de:
Arquitectura de Sistemas Computacionais
I IL  1,6mA
I OH I OL

 10
I IH I IL
Aspectos Tecnológicos
CARACTERÍSTICAS DAS FAMÍLIAS LÓGICAS (3)
MARGEM DE RUÍDO E NÍVEIS LÓGICOS
Constitui uma margem de segurança do utilizador, para eventual ruído captado no percurso
entre a saída da porta excitadora (driver) e a entrada da porta excitada (carga).
5V
VOH min
Nível Lógico 1
VOH min
VIH min
VIL máx
VOL máx
Nível Lógico 1
5V
4,9 V
Margem de Ruído
2,4 / 2,7V
VIH min
70% Vcc
Margem de Ruído
2V
Zona Ambígua
Zona Ambígua
0,8V
VIL máx
Margem de Ruído
0,4/0,5V
Nível Lógico 0
0V
Margens de Ruído em TTL
Arquitectura de Sistemas Computacionais
30% Vcc
Margem de Ruído
VOL máx
0,1V
Nível Lógico 0
0V
Margens de Ruído em CMOS
Aspectos Tecnológicos
CARACTERÍSTICAS DAS FAMÍLIAS LÓGICAS (4)
MARGEM DE RUÍDO E NÍVEIS LÓGICOS
Os parâmetros especificados pelos fabricantes nos data sheets são definidos da seguinte
forma:
VOHmin
Tensão de saída mínima no estado HIGH;
VIHmin
Tensão de entrada mínima de modo a ser reconhecida como um estado HIGH;
VILmáx
Tensão de entrada máxima de modo a ser reconhecida como um estado LOW;
VOLmáx
Tensão de saída máxima no estado LOW;
Níveis típicos para TTL:
Níveis típicos para CMOS:
VOHmin – 2,4/2,7 V
VOHmin – 4,9 V
VIHmin – 2 V
VIHmin – 70% de Vcc
VILmáx – 0,8 V
VILmáx – 30% de Vcc
VOLmáx – 0,4/0,5 V
VOLmáx – 0,1 V
Arquitectura de Sistemas Computacionais
Aspectos Tecnológicos
CARACTERÍSTICAS DAS FAMÍLIAS LÓGICAS (5)
MARGEM DE RUÍDO E NÍVEIS LÓGICOS
Para além da tensão aplicada à entrada dos circuitos lógicos (TTL ou CMOS), a entrada
consome também uma pequena corrente. Então a quantidade máxima de corrente que pode
fluir é também especificada pelos fabricantes nos data sheets e é designada por:
IIHmáx
Corrente máxima que flui para a entrada no estado HIGH;
IILmáx
Corrente máxima que flui para a entrada no estado LOW;
IOLmáx
Corrente máxima que uma saída pode absorver (sinking current) no estado
LOW de modo a manter a tensão de saída não superior a VOLmáx;
IOHmáx
Corrente máxima que uma saída pode fornecer (sourcing current) no estado
HIGH de modo a manter a tensão de saída acima de VOHmin;
FACTOR DE MÉRITO
Duas das características mais importantes das famílias lógicas são a velocidade e o
consumo. Assim o factor de mérito de um produto é dado pela relação:
Tempo de propagação  Potência consumida
Desta forma quanto menor fôr o valor obtido, tanto melhor é o produto!
Arquitectura de Sistemas Computacionais
Aspectos Tecnológicos
FAMÍLIA TTL (TRANSISTOR TRANSISTOR LOGIC)
Principais características:
 Imunidade ao Ruído;
 Menor consumo de potência a altas frequências.
Surgem no mercado duas versões identificadas pelo sufixo, 54 – militar (-55ºC e +125ºC) e
74 – comercial (0ºC e +70ºC). Este é seguido por uma ou mais letras que identificam a
subfamília e 2, 3 ou 4 dígitos que indicam as portas ou a função do integrado.
74/54 FAM xx, onde FAM se refere à mnemónica da subfamília a que pertencem
74 ALS xx
Comercial
Advanced Low
Power Schottky
Tipo de Porta
Exemplo: Os circuitos integrados (CIs) 74AS00, 74ALS00, 74F00, 74H00, 7400 são todos
constituídos por 4 portas NAND de 2 entradas cada.
Arquitectura de Sistemas Computacionais
Aspectos Tecnológicos
CARACTERÍSTICAS DA PERFORMANCE DA FAMÍLIA TTL (1)
FAMÍLIA TTL (primórdios)
 Série TTL Standard 74/54xx;
 Série TTL 74/54Hxx (H-High Speed);
 Série TTL 74/54Lxx (L-Low Power);
FAMÍLIA TTL Schottky
 Com o aparecimento do transistor Schottky as séries da família TTL 74xx, 74Hxx
e 74Lxx tornaram-se obsoletas.
 Cronologicamente:
-74S (S-Schottky) – Maior velocidade no entanto têm um maior consumo de
potência;
-74LS (LS-Low Power Schottky) – Mesma velocidade que versões anteriores, no
entanto têm um consumo de potência 5 vezes inferior;
-74AS (ALS-Advanced Schottky) – Dobro da velocidade que 74S para o mesmo
consumo de potência.
Arquitectura de Sistemas Computacionais
Aspectos Tecnológicos
CARACTERÍSTICAS DA PERFORMANCE DA FAMÍLIA TTL (2)
FAMÍLIA TTL Schottky (cont.)
 Cronologicamente:
-74ALS (ALS-Advanced Low Power Schottky) – Velocidade superior à 74LS e
baixo consumo de potência;
-74F (F-Fast TTL) – Posiciona-se entre as séries 74AS e 74ALS. Tem a
vantagem de possuir um bom factor de mérito (relação velocidade/consumo de
potência).
FAMÍLIA TTL
Tempo de
Propag. (ns)
Potência por
porta (mW)
Factor de
mérito
S: Schottky – 74Sxx
3
19
57
LS: Low Power Schottky – 74LSxx
9
2
18
AS: Advanced Schottky – 74ASxx
1,7
8
13,6
ALS: Advanced Low Power Schottky – 74ALSxx
4
1,2
4,8
F: Fast – 74Fxx
3
4
12
Arquitectura de Sistemas Computacionais
Aspectos Tecnológicos
SAÍDAS TTL EM OPEN COLLECTOR
VCC
VCC
R1
A
B
R2
T1
S
T2
T3
R3
NAND com saídas em Open Collector
Wired AND
O método para se realizar um AND entre várias saídas em “Open Collector” consiste em
ligar todas as saídas umas às outras e colocar uma resistência de pull up ligada a essa saída.
Este tipo de ligação é designado por wired AND. Quando todas as saídas estiverem a ‘1’ o
ponto de ligação estará a ‘1’.
Arquitectura de Sistemas Computacionais
Aspectos Tecnológicos
FAMÍLIA CMOS (COMPLEMENTARY METAL OXIDE SEMICONDUCTOR)
Principais características:
 Maior facilidade de construção;
 Ocupação de espaço, reduzida;
 Consumo baixo de potência;
 Imunidade ao ruído.
SÉRIES CMOS
 CMOS Série 4000;
 74C (C – CMOS);
 74 HC (High Speed CMOS);
 74 HCT (High Speed CMOS – TTL compatible);
 74 VHC (Very High Speed CMOS);
 74 VHCT (Very High Speed CMOS – TTL compatible)
 74 FCT (Fast CMOS – TTL compatible)
 74 FCT-T (Fast CMOS – TTL compatible with TTL VOH)
Arquitectura de Sistemas Computacionais
Aspectos Tecnológicos
FAMÍLIA CMOS (cont.)
CMOS 4000A/4000B





Foi introduzida no mercado na década de 60;
A corrente de saída não é a mesma para todos os circuitos;
Os tempos de propagação dependem da capacidade de carga;
A série 4000B está preparada para fornecer maior corrente de saída;
Hoje ainda existem funções nesta série que não dispõem de equivalentes nas mais
recentes;
 Dissipação reduzida de potência sendo no entanto bastante lentas.
74C
 É uma série compatível pino a pino e função a função com os circuitos TTL, desde
que disponham dos mesmos números de marcação. Desta forma torna-se possível
substituir os circuitos TTL por equivalentes CMOS;
 As saídas destes circuitos são “bufferizadas”.
Arquitectura de Sistemas Computacionais
Aspectos Tecnológicos
FAMÍLIA CMOS (cont.)
74HC (High Speed CMOS)
 Permitem uma gama de alimentação entre os 2 (menor consumo de potência) e 6V
(maior velocidade de comutação);
 Compatíveis com os circuitos TTL 74LS, mas não na totalidade;
 Bem adaptadas em sistemas que usem exclusivamente circuitos CMOS.
74HCT (High Speed CMOS–TTL Compatible)
 Elevada velocidade de comutação;
 Menor consumo de portência e total compatibilidade de níveis com circuitos TTL;
 Uma única saída poder alimentar, pelo menos, 10 cargas TTL LS.
74VHC e 74VHCT (Very High Speed CMOS e TTL Compatible)
 Duas vezes mais rápidas que a versão predecessora, a série HC e HCT;
 Mantém a compatibilidade com todas as séries anteriores da mesma família;
 Uma em relação à outra diferem unicamente nos níveis de entrada que reconhecem,
sendo as suas características de saída iguais;
Arquitectura de Sistemas Computacionais
Aspectos Tecnológicos
FAMÍLIA CMOS (cont.)
74VHC e 74VHCT (Very High Speed CMOS e TTL Compatible) (cont.)
 Permitem uma gama de alimentação entre os 2 e os 5,5V;
 Com estes circuitos já se conseguem obter tempos de propagação na ordem dos 3ns,
comparável aos tempos da série TTL 74 ALS.
74FCT e 74FCT-T (Fast CMOS TTL Compatible e Fast CMOS-TTL
Compatible With TTL VOHmáx)
 Surgiram no início dos anos 90;
 Permitem igualar e mesmo exceder a velocidade e capacidade de servir de driver
relativamente às melhores séries TTL, reduzindo o consumo de potência e
mantendo compatibilidade.
 Aplicadas principalmente na implementação de buses e outros circuitos com
pesadas cargas, pois pode fornecer (sourcing) ou absorver (sinking) acima dos
64mA no estado LOW.
Arquitectura de Sistemas Computacionais
Aspectos Tecnológicos
LIGAÇÕES ENTRE FAMÍLIAS LÓGICAS
Valores típicos de entrada e saída para as famílias TTL e CMOS (casos extremos de
Funcionamento).
CMOS
Parâmetro
TTL
4000B
74HC
74HCT
74
74LS
74AS
74ALS
VIH(min) (V)
3,5
3,5
2,0
2,0
2,0
2,0
2,0
VIL(máx) (V)
1,5
1,0
0,8
0,8
0,8
0,8
0,8
VOH(min) (V)
4,95
4,9
4,9
2,4
2,4
2,7
2,7
VOL(máx) (V)
0,05
0,1
0,1
0,4
0,5
0,5
0,4
IIH(máx) (A)
1
1
1
40
20
200
20
IIL(máx) (A)
1
1
1
1600
400
2000
100
IOH(máx) (mA)
0,4
4
4
0,4
0,4
2
0,4
IOL(máx) (mA)
0,4
4
4
16
8
20
8
Arquitectura de Sistemas Computacionais
Aspectos Tecnológicos
LIGAÇÃO CMOS – TTL
No estado alto, este tipo de ligação não necessita de qualquer cuidado, pois podemos verificar
que, segundo os valores típicos de tensão de saída do CMOS (VOH), satisfaz os níveis de
tensão típicos requeridos pela entrada TTL no estado alto VIH. Verifica-se também que a
família CMOS fornece uma corrente IOH superior ao valor exigido IIH pela entrada TTL.
74HC00
D
C
74AS00
A
74AS00
B
Exemplo de ligação
Arquitectura de Sistemas Computacionais
Aspectos Tecnológicos
LIGAÇÃO CMOS – TTL (cont.)
No estado baixo os circuitos TTL exigem uma entrada relativamente alta que varia de 100A
a 2mA. Assim, e porque as séries CMOS HC e HCT podem fornecer 4mA, podem facilmente
servir de driver a qualquer série TTL. No entanto, os circuitos da série 4000B não podem
servir de driver a uma única entrada de qualquer circuito das séries 74 e 74AS.
Neste caso teríamos que optar por recorrer a um buffer. O buffer pode ser outro CMOS, tal
como o 74HC ou o 74HCT.
5V
5V
5V
CMOS 4000B
CMOS
74HC/HCT
TTL
GND
Arquitectura de Sistemas Computacionais
GND
GND
Aspectos Tecnológicos
LIGAÇÃO CMOS – TTL (cont.)
Outro problema que surge, é quando o circuito CMOS é alimentado com uma tensão UDD=15V
e é necessário ligá-lo a um circuito TTL. Neste caso usamos um circuito deslocador de nível
(4050B), que converte a tensão elevada para os 5V necessários aos circuitos TTL.
15V
5V
5V
15V
0V
5V
0V
CMOS
TTL
4050B
GND
Arquitectura de Sistemas Computacionais
GND
GND
Aspectos Tecnológicos
LIGAÇÃO TTL – CMOS
No que diz respeito à tensão, todos os circuitos
da série TTL fornecem uma tensão VOHmin
demasiado baixa face ao valor VIHmin exigido
pelas entradas dos circuitos CMOS.
5V
TTL
RP
CMOS
Neste caso é necessário elevar os níveis TTL
para poderem ser aceites pelos circuitos CMOS,
como também é necessária a utilização de uma
resistência de “pull-up”.
5V
O valor dessa resistência de “pull-up” deverá ser
tal que:
TTL
RP
IOL
IRP
IIL
CMOS
1
VCC  VOL ( máx )
Rp 
I OL (TTL)  nI IL (CMOS )
IIL
2
IIL
n
Arquitectura de Sistemas Computacionais
5
Circuitos Combinacionais
Arquitectura de Sistemas Computacionais
Circuitos Combinacionais
CÓDIGOS (1)
Definição:
“Código pode-se definir como o conjunto de n-bits de combinações diferentes
em que cada uma delas representa um determinado valor ou qualquer outra
coisa. A uma combinação em particular é atribuído o nome de palavra de
código.”

Numa palavra de código pode não existir uma relação aritmética entre os vários bits ou o
que representam;

Um código que utilize combinações de n-bits não necessita de obrigatoriamente utilizar
2n palavras de código válidas
Arquitectura de Sistemas Computacionais
Circuitos Combinacionais
CÓDIGOS (2)
Códigos a estudar:
Numéricos:
•BCD;
•BCDXS3;
•1 out of n;
•GRAY;
•JOHNSON;
•BCO;
•BCH;
Alfanuméricos:
•ASCII;
•EBCDIC;
Arquitectura de Sistemas Computacionais
Circuitos Combinacionais
CÓDIGOS BINÁRIOS PARA REPRESENTAR VALORES DECIMAIS
No mínimo são necessários 4 bits para representar os dez dígitos decimais. Existindo no
entanto imensas formas de o realizar. As mais comuns apresentam-se a seguir na tabela:
DECIMAL
BCD8421
0
1
2
3
4
5
6
7
8
9
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
10
11
…
1010
1011
…
2421
BCD XS-3
Biquinário
0000
0011
0100001
0001
0100
0100010
0010
0101
0100100
0011
0110
0101000
0100
0111
0110000
1011
1000
1000001
1100
1001
1000010
1101
1010
1000100
1110
1011
1001000
1111
1100
1010000
Palavras de Código não usadas
0101
1101
0000000
0110
1110
0000001
…
…
…
Arquitectura de Sistemas Computacionais
1 out of 10
1000000000
0100000000
0010000000
0001000000
0000100000
0000010000
0000001000
0000000100
0000000010
0000000001
0000000000
0000000011
…
Circuitos Combinacionais
CÓDIGO BCD OU DECIMAL CODIFICADO EM BINÁRIO(1)
BCD é a sigla do nome do código escrita em inglês: Binary Coded Decimal.
BCD Natural, NBCD ou BCD8421
• Codifica os digitos de 0 até 9 pelas suas representações binárias de 4 bits, 0000(2) até
1001(2). No entanto as combinações 1010(2) até 1111(2) não são usadas;
• É um código pesado: cada dígito decimal é obtido através da palavra de código bastando
atribuir a cada dígito bináio o seu respectivo peso, i .é, a sequência normal de potências
de base 2: 8 4 2 1.
BCD não Natural
• Os pesos dos diferentes bits já não tem a mesma sequência das potências de base 2.
Estes códigos são usualmente utilizados para facilitar operações que utilizem
complemento.
Códigos AUTOCOMPLEMENTARES
• Códigos BCD não Naturais têm a particularidade de permitirem determinar facilmente o
complemento a 9 dos dígitos decimais, bastando para tal inverter os bits que os
compõem.
Arquitectura de Sistemas Computacionais
Circuitos Combinacionais
CÓDIGO BCD OU DECIMAL CODIFICADO EM BINÁRIO(2)
Códigos AUTOCOMPLEMENTARES (cont.)
• Por exemplo, complemento a 9 do valor 4 (0100) é 9 – 4 = 5 (1011).
Exemplos de Códigos BCD de Quatro Bits Ponderados:
2421* 4321
5221
6321
7421
3321* 4421
6221
4311* 5211* 5321
6311
7321
6421
5421
5311
8421(NBCD)
BCD Excesso 3 (XS3)
• É obtido a partir do BCD somando 3 a cada dígito. Assim em vez de começar por
0=0000, começa por 0=0011;
• Trata-se também de um código AUTOCOMPLEMENTAR.
Arquitectura de Sistemas Computacionais
Circuitos Combinacionais
CÓDIGO BCD OU DECIMAL CODIFICADO EM BINÁRIO(3)
Biquinário
• Os códigos decimais podem ter mais de 4 bits, é o caso do biquinário;
• Os dois primeiros bits indicam se o valor se encontra entre 0 – 4 ou 5 – 9. Os últimos
indicam o seu valor;
• Detecção de erros e apresentada como uma das principais vantagens;
• São só utilizadas 10 da 128 combinações possíveis.
1 out of 10
• É o método de codificação mais esparso para dígitos decimais;
• Das 1024 combinações possíveis só utiliza 10;
Arquitectura de Sistemas Computacionais
Circuitos Combinacionais
CÓDIGO GRAY (CÓDIGO REFLECTIDO) (1)
Arquitectura de Sistemas Computacionais
Circuitos Combinacionais
CÓDIGO GRAY (CÓDIGO REFLECTIDO) (2)
Métodos de Construção do Código GRAY:
Método 1:
 O código Gray para 1-bit tem unicamente duas palavras de código: 0 e 1;
 As primeiras 2n palavras de código de um código Gray de (n+1)-bit são iguais às do
código Gray de n-bit escritas da mesma forma mas com um 0 à esquerda de cada
palavra de código;
 As últimas 2n palavras de código de um código Gray de (n+1)-bit são iguais às de um
código Gray de n-bit, escritas de ordem inversa e com um 1 à esquerda de cada palavra
de código.
Método 2:
 Os bits de uma palavra de código Binário de n-bits são numerados da direita para a
esquerda, desde 0 até n-1;
 O bit i de uma palavra de código do código Gray é 0 se os bits i e i+1 da
correspondente palavra binária forem iguais, caso contrário é 1. Quando i+1=n, o bit n
é considerado 0;
Arquitectura de Sistemas Computacionais
Circuitos Combinacionais
CÓDIGO GRAY (CÓDIGO REFLECTIDO) (3)
Exemplo do método 2:
Binário
GRAY
0 0 0
0 0 0
0 0 1
0 0 1
0 1 0
0 1 1
0 1 1
0 1 0
1 0 0
1 1 0
1 0 1
1 1 1
1 1 0
1 0 1
1 1 1
1 0 0
bit 0
bit 1
bit 2
Arquitectura de Sistemas Computacionais
i=0:
•Bit 0 (i=0) do código binário é igual a 1;
•Bit 1 (i=1) do código binário é igual a 0;
Portanto,
•Bit 0 do código Gray é igual a 1.
i=1:
•Bit 1 (i=1) do código binário é igual a 0;
•Bit 2 (i=2) do código binário é igual a 0;
Portanto,
•Bit 1 do código Gray é igual a 0.
i=2:
•Bit 2 (i=2) do código binário é igual a 0;
•Bit n (i=3) do código binário é igual a 0;
Portanto,
•Bit 0 do código Gray é igual a 0.
Circuitos Combinacionais
CÓDIGO GRAY (CÓDIGO REFLECTIDO) (4)
Representação do sistema decimal em código Gray e Gray excesso 3
DECIMAL
GRAY
XS-3 GRAY
0
0000
0010
1
0001
0110
2
0011
0111
3
0010
0101
4
0110
0100
5
0111
1100
6
0101
1101
7
0100
1111
8
1100
1110
9
1101
1010
Arquitectura de Sistemas Computacionais
Circuitos Combinacionais
CÓDIGO JOHNSON
A sequência de procedimentos consiste:
• Iniciar tudo a zeros (0’s).
• Convertê-los sucessivamente em 1’s a partir da direita, até se ober tudo a 1’s.
• Convertê-los sucessivamente em 0’s a partir da direita até o valor possuir
unicamente o dígito mais significativo a 1.
DECIMAL
JOHNSON
0
0000
1
0001
2
0011
3
0111
4
1111
5
1110
6
1100
7
1000
Código Johnson de 4 bits
Arquitectura de Sistemas Computacionais
Circuitos Combinacionais
CÓDIGOS BCO E BCH
DECIMAL
BCO
BCH
BCO – Binary Coded Octal
0
000 000
0000 0000
BCH – Binary Coded Hexadecimal
1
000 001
0000 0001
2
000 010
0000 0010
3
000 011
0000 0011
4
000 100
0000 0100
5
000 101
0000 0101
6
000 110
0000 0110
7
000 111
0000 0111
8
001 000
0000 1000
...
...
...
16
010 000
0001 0000
17
010 001
0001 0001
...
...
...
31
011 111
0001 1111
32
100 000
0010 0000
Arquitectura de Sistemas Computacionais
Circuitos Combinacionais
CÓDIGOS ASCII E EBCDIC
ASCII – American Standard Code for Information Interchange
EBCDIC – Extended Binary Coded Decimal Interchange Code
Caracteres
Válidos
ASCII
EBCDIC
Caracteres
Válidos
ASCII
EBCDIC
Caracteres
Válidos
ASCII
EBCDIC
0
30
F0
|
7C
4F
%
25
6C
...
...
...
&
26
50
>
3E
6E
9
39
F9
!
21
5A
?
3F
6F
A
41
C1
$
24
5B
:
3A
7A
...
...
...
*
2A
5C
#
23
7B
Z
5A
E9
)
29
5D
@
40
7C
Blank
20
40
;
3B
5E
‘
27
7D
.
2E
4B
_
2D
60
=
3D
7E
(
28
4D
/
EF
61
“
22
7F
+
2B
4E
,
2C
6B
<
3C
4C
Arquitectura de Sistemas Computacionais
Circuitos Combinacionais
CORRECÇÃO DE ERROS ATRAVÉS DE BITS DE PARIDADE (1)
Um erro num sistema digital consiste na corrupção do valor correcto de uma dada informação
para qualquer outro valor. É normalmente causado por uma falha física (temporária ou
permanente). Uma das formas de realizar a detecção desses erros é através do método das
paridades.
Método das Paridades
Longitudinais
Transversais
Na Paridade Longitudinal o acréscimo de um 1 ou um 0 é feita na horizontal para todos os
bits da mesma linha
Na Paridade Transversal o acréscimo de um 1 ou 0 é feita na vertical para todos os bits da
mesma coluna.
A Paridade pode ser Par ou Ímpar:
Na Paridade Par o bit de paridade será 1 ou 0 de forma que o número de bits 1 seja par.
Na Paridade Ímpar o bit de paridade será 1 ou 0 de forma que o número de bits 1 seja
ímpar.
Arquitectura de Sistemas Computacionais
Circuitos Combinacionais
CORRECÇÃO DE ERROS ATRAVÉS DE BITS DE PARIDADE (2)
Algumas características...
 Para se construir um detector de erros de um bit, em geral são necessários (n+1)bit para palavras de código de 2n-bit. Os n-bit constituem a palavra de código
eqnuanto que o bit n+1 representa o bit de paridade (par ou ímpar);
 A detecção de erros para este tipo de códigos (longitudinal OU transversal – não
ambos) só é praticável para erros de 1 bit.
Arquitectura de Sistemas Computacionais
Circuitos Combinacionais
CORRECÇÃO DE ERROS ATRAVÉS DE BITS DE PARIDADE (3)
EXEMPLO: Suponhamos um número decimal, p. e. 937651234, que vai
ser
processado ou transmitido. Antes do processo se iniciar o sistema atribui-lhe uma
paridade que vai verificar no final do processo.
Dígito Decimal
Código
(NBCD)
Paridade Ímpar
9
1001
1
3
0011
1
7
0111
0
6
0110
1
5
0101
1
1
0001
0
2
0010
0
3
0011
1
4
0100
0
Paridade Ímpar
Arquitectura de Sistemas Computacionais
0101
Circuitos Combinacionais
CIRCUITOS COMBINATÓRIOS (1)
São constituídos por uma combinação de gates AND, OR, NOT, NAND, NOR e XOR onde as
suas saídas só dependem do valor das entradas e se estas deixarem de estar presentes a saída
muda imediatamente.
Os circuitos combinatórios que vamos estudar são:
- Geradores de bit de paridade;
- Comparadores;
- Conversores de código;
- Adicionadores/Subtractores;
- Codificadores/Descodificadores;
- Multiplexers/Demultiplexers.
Arquitectura de Sistemas Computacionais
Circuitos Combinacionais
CIRCUITOS COMBINATÓRIOS (2)
Circuito Gerador de Bit de Paridade
Uma porta XOR (OU-exclusivo) é uma porta com duas entradas cuja saída é 1 se uma das
entradas for 1, i. é, uma porta XOR produz um 1 na saída se o número de 1’s na entrada for
ímpar (PARIDADE PAR). Caso se trate de uma porta XNOR (NÃO OU-exclusivo) o
resultado é o inverso, i. é, produz um 1 na saída quando o número de 1’s na entrada for par
(PARIDADE ÍMPAR). (nº de possibilidades com saída igual a 1 )  2(nº de XOR's)
a
b
S=ab
S’ = a  b
0
0
0
1
S  a b  a b  a b
0
1
1
0
1
0
1
0
S'  a  b  a  b  a  b  a  b
1
1
0
1
a
b



S
a
b



S'
Arquitectura de Sistemas Computacionais
Exclusive-OR
CI 74x86
Circuitos Combinacionais
CIRCUITOS COMBINATÓRIOS (3)
Circuito Gerador de Bit de Paridade (cont.)
Implementando n portas XOR em cascata, obtém-se um circuito com n+1 entradas e uma
saída, originando um circuito de paridade ímpar. Ao invertermos essa saída, resulta um
circuito de paridade par (ver figura):
I1
I2
I3
I4
Saída Ímpar
In
Saída Par
Outra forma de implementar este tipo de circuito, de modo a que seja mais rápido, é em
ÁRVORE.
Gerador Bit Paridade
CI 74x280
Arquitectura de Sistemas Computacionais
Circuitos Combinacionais
CIRCUITOS COMBINATÓRIOS (4)
Circuito Gerador de Bit de Paridade (cont.)
Caso Prático Simplificado:
Suponhamos que trasmitimos em paralelo ao longo de uma linha e que
pretendemos usar um bit de paridade para detecção de erros.
A
B
X
Gerador
Y
S
Detector
Arquitectura de Sistemas Computacionais
Circuitos Combinacionais
CIRCUITOS COMBINATÓRIOS (5)
Circuito Comparador
Circuito Comparador de 2 bits, a0 e b0:
a0
b0
S
Circuito Comparador de 2 números digitais de 4 bits, A = a0 a1 a2 a3 e
B = b 0 b 1 b 2 b 3:
a0
b0
a1
b1
S
a2
b2
a3
b3
Arquitectura de Sistemas Computacionais
Comparador 4-Bit
CI 74x85
Circuitos Combinacionais
CIRCUITOS COMBINATÓRIOS (6)
Circuito Comparador Iterativo
Dois valores de n-bit podem ser comparados de forma iterativa. Para tal tem que se ter em
conta o bit resultante da comparação anterior (figura circuito para n-bit). Para implementar
este tipo de circuitos, basta juntar n módulos de comparação de um único bit (figura
módulo para um bit).
a b
a
CMP
EQoutput
EQinput
EQI
EQO
a0
b0
a1
b1
an-1
bn-1
a
b
a
b
a
b
CMP
EQ0
1
b
EQI
EQO
CMP
EQ1
EQI
Arquitectura de Sistemas Computacionais
EQO
EQ2
EQn-1
CMP
EQI
EQO
EQn
Circuitos Combinacionais
CIRCUITOS COMBINATÓRIOS (7)
Meio-Somador e Somador Completo
O somador mais simples, designado por MEIO SOMADOR (1/2 Somador – Half Adder),
soma dois operandos de 1 bit, resultando um valor de 2 bits (pois o resultado varia entre 0 e
2).
a
b
S
Cout
0
0
0
0
0
1
1
0
1
0
1
0
1
1
0
1
Da tabela resulta:
Símbolo Lógico:
S  a b
Cout  a  b
a
Half S
Adder
Cout
Diagrama Lógico:
a b
S
Cout
Arquitectura de Sistemas Computacionais
b
Circuitos Combinacionais
CIRCUITOS COMBINATÓRIOS (8)
Meio-Somador e Somador Completo (cont.)
Para somar operandos com mais de um bit, temos que produzir carries entre as posições
dos vários bits, i. é, entre cada posição de um bit. O bloco que realiza esta operação
designa-se por SOMADOR COMPLETO (Full Adder).
a
b
cin
S
Cout
0
0
0
0
0
0
0
1
1
0
0
1
0
1
0
0
1
1
0
1
1
0
0
1
0
1
0
1
0
1
1
1
0
0
1
1
1
1
1
1
Da tabela resulta:
Símbolo Lógico:
S  a  b  cin
a b cin
Full S
Cout  cin  (a  b)  a  b
Adder
Diagrama Lógico:
Cout
a b cin
Arquitectura de Sistemas Computacionais
S
Cout
Circuitos Combinacionais
CIRCUITOS COMBINATÓRIOS (9)
Somadores de Ripple (Ripple Adders)
Duas palavras binárias, cada uma com n-bits, podem ser adicionadas usando um somador
para n-bits. Este é constituído por n full adders ligados em cascata, onde cada um suporta
uma soma de um bit. Este tipo de somadores designam-se por somadores de ripple ou
ripple adders.
Cn+1
an
bn
a
b
cn
a2
b2
a
b
c2
a1
b1
a
b
c1
a0
b0
a
b
FA
FA
FA
FA
Cout Sn
Cout S2
Cout S1
Cout S0
Arquitectura de Sistemas Computacionais
c0
Circuitos Combinacionais
CONVERSORES (1)
Estes circuitos têm por objectivo converter códigos. Desta forma o circuito que realiza
esta conversão é designado de Conversor.
Procedimento para realização de um CONVERSOR
Código de origem
Entradas
Código de destino
Saídas
Mapas de Karnaugh
Expressões mínimas
Diagrama Lógico Conversor
Arquitectura de Sistemas Computacionais
Circuitos Combinacionais
CONVERSORES (2)
Exemplo
Projectar um conversor de código XS-3 (Excess-3) para o código NBCD
1. Representação do Código de Origem e Destino na Tabela de Verdade
Entradas
Saídas
BCD XS-3
NBCD8421
DECIMAL
I3 I2 I1 I0
D C B A
0
0 0 1 1
0 0 0 0
A  I0
1
0 1 0 0
0 0 0 1
B  I0  I1
2
0 1 0 1
0 0 1 0
C  I0  I 2  I0  I1  I 2  I0  I1  I3
3
0 1 1 0
0 0 1 1
4
0 1 1 1
0 1 0 0
D  I0  I1  I3  I 2  I3
5
1 0 0 0
0 1 0 1
6
1 0 0 1
0 1 1 0
7
1 0 1 0
0 1 1 1
8
1 0 1 1
1 0 0 0
9
1 1 0 0
1 0 0 1
Arquitectura de Sistemas Computacionais
2. Dos mapas de Karnaugh obtêm-se as expressões:
Circuitos Combinacionais
CONVERSORES (3)
Exemplo (cont.)
3. Implementação do Diagrama Lógico
I0
A
I1
B
I2
C
D
I3
Arquitectura de Sistemas Computacionais
Circuitos Combinacionais
DESCODIFICADORES (1)
As quantidades discretas de informação podem ser representadas em sistemas digitais
através de códigos binários. Um código binário de n bits é capaz de representar até 2n
elementos diferentes de uma informação codificada, i. é, cada palavra de código na
entrada produz uma palavra de código diferente na saída. Um descodificador é um
Circuito Combinatório que converte informação binária desde n linhas de entrada para
um máximo de 2n linhas de saída.
Estrutura de um descodificador:
n
DESCODIFICADOR
Palavra de
código
de entrada
p
Entradas
de Enable
Arquitectura de Sistemas Computacionais
m
Palavra de
código
de saída
Descodificador de n para m
linhas (objecto de estudo) onde:
m  2n
Circuitos Combinacionais
DESCODIFICADORES (2)
Características gerais:
 O código de entrada mais frequentemente usado é o código binário de n-bits, os
quais representam 2n códigos diferentes, normalmente inteiros desde 0 até 2n-1;
 O código de saída mais frequente é o 1-out-of-n, que contém n-bits, onde
simplesmente se encontra activo um bit de cada vez.
Descodificadores Binários:
Trata-se do descodificador mais usual possuindo na sua entrada palavras de código de
n-bits e na saída palavras de código do tipo 1-out-of-2n bits.
Entradas
EN
0
1
1
1
1
I1
x
0
0
1
1
I2
x
0
1
0
1
Saídas
Y3
0
0
0
0
1
Y2
0
0
0
1
0
Y1 Y0
0 0
0 1
1 0
0 0
0 0
Descodificador de 2 para 4 (lógica positiva)
Arquitectura de Sistemas Computacionais
Circuitos Combinacionais
DESCODIFICADORES (3)
Descodificadores Binários: (cont.)
I0
I1
Y0
Dual Decoder
74x139
Y1
1G
1A
Y2
EN
Y3
Diagrama Lógico (lógica positiva)
1Y0
1Y1
1B
1Y2
1Y3
2G
2Y0
2Y1
2A
2B
2Y2
2Y3
Símbolo Lógico (lógica negativa)
Descodificador duplo de 2 para 4
CI 74x139
Arquitectura de Sistemas Computacionais
Circuitos Combinacionais
DESCODIFICADORES (4)
Exemplo: Implementação de um descodificador BINÁRIO - OCTAL
Tabela de Verdade do descodificador binário–octal (lógica negativa)
Entradas
Saídas
EN
A
B
C
Yo
Y1
Y2
Y3
Y4
Y5
Y6
Y7
1
0
0
0
0
0
0
0
0
x
0
0
0
0
1
1
1
1
x
0
0
1
1
0
0
1
1
x
0
1
0
1
0
1
0
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
Descodificador 3 para 8
CI 74x138
Arquitectura de Sistemas Computacionais
Circuitos Combinacionais
DESCODIFICADORES (5)
Circuito Lógico do descodificador binário – octal (lógica negativa)
Y0
Y1
EN
Y2
Y3
Y4
Y5
A
Y6
B
C
Arquitectura de Sistemas Computacionais
Y7
Circuitos Combinacionais
DESCODIFICADORES (6)
TIPOS DE CIRCUITOS DESCODIFICADORES DISPONÍVEIS NO MERCADO
Descodificador de BCD/7Segmentos (com drivers):
- 74x46/47/48/49.
Descodificador BCD/Decimal:
- 74x42/45/145.
Descodificador 4/10 linhas:
- 74x43/44.
Descodificador 4/16 linhas:
- 74x154.
Descodificador 3/8 linhas:
- 74x138.
Descodificador 2x 2/4 linhas:
- 74x139.
Arquitectura de Sistemas Computacionais
Circuitos Combinacionais
DESCODIFICADORES (7)
DESCODIFICADORES LIGADOS EM CASCATA (exemplo)
VCC
Decoder
74LS138
R
A
G1
Y0
0
G2A
Y1
1
G2B
Y2
2
Y3
3
Y4
4
Y5
5
Y6
6
Y7
7
G1
Y0
8
G2A
Y1
9
G2B
Y2
10
Y3
11
Y4
12
Y5
13
Y6
14
Y7
15
A
B
B
C
C
D
Decoder
74LS138
EN
A
B
C
Arquitectura de Sistemas Computacionais
Circuitos Combinacionais
DESCODIFICADORES (8)
APLICAÇÃO EM CIRCUITOS COMBINACIONAIS (exemplo)
Implementar, com um descodificador 74x138, o circuito correspondente à função:
f (a, b, c)  a  b  c  a  c  b  c
Implementação – Diagrama Lógico
Decoder
74x138
G1
G2A
G2B
A
B
C
Arquitectura de Sistemas Computacionais
Circuitos Combinacionais
CODIFICADORES (1)
Um codificador é um Circuito Lógico Combinacional que é construido para gerar um
código de saída binário para n entradas diferentes de caracteres ou grupos de caractres. O
número de bits m necessários na saída do codificador tem que satisfazer a seguinte
relação:
2m  n
EXEMPLO: Implementação de um codificador OCTAL - BINÁRIO (lógica positiva)
Entradas
Io
I1
I2
I3
I4
I5
I6
I7
Y2
Y1
Y0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
Arquitectura de Sistemas Computacionais
Tabela de Verdade
do codificador
octal-binário
Circuitos Combinacionais
CODIFICADORES (2)
EXEMPLO: Implementação de um codificador OCTAL – BINÁRIO (cont.)
Y0  I1  I 3  I 5  I 7
I0
Y1  I 2  I 3  I 6  I 7
I1
Y2  I 4  I 5  I 6  I 7
Equações Lógicas
Y2
I2
I3
I4
Y1
I5
I6
I7
Y0
Diagrama Lógico do codificador octal-binário
Em geral um codificador de 2n entradas para n saídas pode ser implementado com portas
lógicas OR de 2n-1 entradas.
Arquitectura de Sistemas Computacionais
Circuitos Combinacionais
CODIFICADORES (3) - CODIFICADOR DE PRIORIDADE
EXEMPLO: Codificador de Prioridade de 4 bits (lógica positiva)
Entradas
Saídas
I0
x
1
x
x
x
I1
x
0
1
x
x
00
01
11
10
x
1
1
1
01
1
1
11
1
10
1
EN
0
1
1
1
1
I2 I3
I 0 I1
00
I2
x
0
0
1
x
I3
x
0
0
0
1
B
0
0
0
1
1
A
0
0
1
0
1
I2 I3
I 0 I1
IDLE
Tabela de Verdade
0
1
1
1
1
I2 I3
11
10
1
1
1
1
1
1
1
11
1
1
1
1
10
1
1
1
1
01
11
00
x
1
1
00
1
01
1
1
1
01
1
1
11
1
1
1
1
1
10
1
1
B  I2  I3
Arquitectura de Sistemas Computacionais
A  I 2  I1  I 3
10
01
00
I 0 I1
00
IDLE  I 0  I1  I 2  I 3
Circuitos Combinacionais
CODIFICADORES (3) - CODIFICADOR DE PRIORIDADE
EXEMPLO: Codificador de Prioridade de 4 bits (lógica positiva)
I0
I1
A
I2
B
I3
IDLE
Diagrama Lógico
Codificador Prioridade de 8-entradas
CI 74x148
Arquitectura de Sistemas Computacionais
Circuitos Combinacionais
MULTIPLEXERS
A Multiplexagem consiste em transmitir um grande número de unidades de informação
através de um pequeno número de linhas ou canais de transmissão.
Um multiplexer digital é um circuito combinatório que selecciona a informação binária de
uma das várias linhas de entrada e direcciona-as para uma única linha de saída.
A selecção de uma determinada linha é efectuada através de um conjunto de linhas de
selecção ou de endereço.
Estrutura de um Multiplexer (mux.)
1D0
Mux
1D1
Enable
D0
b
D1
b
1Y
1Dn-1
2D0
b
Y
2D1
Dn-1
b
2Y
2Dn-1
bD0
s
Selecção
Entradas e Saídas do mux.
Arquitectura de Sistemas Computacionais
bD1
bDn-1
bY
Selecção
Enable
Esquema Funcional do mux.
Circuitos Combinacionais
MULTIPLEXERS (Implementação)
Tabela de Verdade
D1
S
Saídas
0
Y = D0
1
Y = D1
Y  D1S  D0 S
D0
S
Selecção
Nota: Implemente um circuito multiplexer de 4 para 1 (mux 4:1)
Arquitectura de Sistemas Computacionais
Circuitos Combinacionais
APLICAÇÕES DOS MULTIPLEXERS
Os multiplexers apresentam diversas aplicações entre as quais se destacam:
- Geradores de funções.
- Conversão paralelo-série.
- Geradores de formas de onda.
- Direccionamento de dados.
GERADORES DE FUNÇÕES
Os multiplexers podem ser usados para implementar funções lógicas directamente da tabela
de verdade sem recorrer a simplificações. Quando usado com esta finalidade, às entradas de
selecção são aplicadas as variáveis lógicas do circuito e cada uma das entradas é ligada
permanentemente a 0 ou 1.
Arquitectura de Sistemas Computacionais
Circuitos Combinacionais
MULTIPLEXER COMO GERADOR DE FUNÇÕES (exemplo)
Tabela de Verdade:
a
b
c
F
0
0
0
0
0
0
1
0
0
1
0
1
0
1
1
1
1
0
0
0
1
0
1
0
1
1
0
1
1
1
1
0
F(a, b, c)   m(2,3,6)
Arquitectura de Sistemas Computacionais
VCC
Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7
A
B
Mux
8:1
C
Y  abc  abc  abc
Circuitos Combinacionais
MULTIPLEXER COMO GERADOR DE FUNÇÕES (exercícios)
1. Implementar a função F(a, b, c, d)   m(0,1,4,5,6,9,12,14,15) utilizando:
a) Um multiplexer de 8:1 onde as variáveis de endereço são D e C.
b)
Um multiplexer de 16:1.
2. Implementar a função F(a, b, c, d)   m(1,4,6,7,10,12,13,14,15) utilizando:
a) Um multiplexer de 8:1 onde as variáveis de endereço são C, B e A.
b)
Um multiplexer de 4:1 onde as variáveis de endereço são C e D.
3. Implementar a função F(a, b, c, d)   m(6,8,9,10,11,14) utilizando:
a) Um multiplexer de 4:1 onde as variáveis de endereço são C e D.
Arquitectura de Sistemas Computacionais
Circuitos Combinacionais
MULTIPLEXER COMO CONVERSOR PARALELO-SÉRIE (exemplo)
Y0
Y1
Y2
Registo de
armazenamento
(8 bits)
Y3
Mux
8:1
Y4
Y
Y5
Y6
Y7
A
B
(Contador)
Arquitectura de Sistemas Computacionais
C
Circuitos Combinacionais
DEMULTIPLEXER
Demux
Enable
Y
D0
b
I0
D1
b
I1
Dn-1
b
In-1
b
s
Selecção
Arquitectura de Sistemas Computacionais
Circuitos Combinacionais
DEMULTIPLEXER ATRAVÉS DE DESCODIFICADORES
Demultiplexer usando o descodificador 74LS138, onde G 2 A funciona como entrada de
informação.
Decoder
74LS138
VCC
G1
Y0
G2A
Y1
G2B
Y2
Y3
A
1
Y4
Y5
B
C
0
1
Y6
Y7
G2A
Y5
Restantes
Saídas
Lógica 1
Nota: O descodificador 74x154 (descodificador de 4 para 16 linhas) é também usado como
demultiplexer de 1:16.
Arquitectura de Sistemas Computacionais
Circuitos Combinacionais
TRANSMISSÃO DE DADOS
Conjugando um multiplexer e um demultiplexer, podemos estabelecer a ligação através de
um bus entre várias entradas e várias saídas. Isso é realizado da seguinte forma:
D0
b
b
I0
D1
b
b
I1
b
In-1
MUX
Dn-1
b
DEMUX
b
s
s
Selecção
Selecção
Arquitectura de Sistemas Computacionais
6
Circuitos Sequenciais
Arquitectura de Sistemas Computacionais
Circuitos Sequenciais
FLIP – FLOPS
LÓGICA Combinatória
LÓGICA Sequencial
Saídas dependem
unicamente do valor
instantâneo dos
diversos sinais de
entrada.
Saída depende não só do valor
instantâneo dos sinais de entrada
mas também do estado prévio
dos elementos lógicos que
constituem o circuito.
FLIP – FLOPS
FLIP – FLOPS – Circuito bi-estável. Circuito memorizador ou armazenador da informação
recebida. Sinal mantém-se enquanto um sinal exterior não substituir a
informação armazenada.
Flip - Flops a estudar:
• RS.
• RST (RS sincronizado ou clocked).
• D ou latch.
• T ou toggle.
• JK.
• JK master-slave.
Arquitectura de Sistemas Computacionais
Circuitos Sequenciais
FLIP–FLOP RS
FLIP-FLOP RS –Possui duas entradas, S-Set e R-Reset, e duas saídas, Q e o seu
complemento.
Pode ser implementado com portas NOR ou NAND.
NOR – O “disparo” ocorre no flanco ascendente.
NAND – O “disparo” ocorre no flanco descendente (apresenta dois círculos
na entrada).
APLICAÇÃO: Circuito “Contact-Bounce Eliminator”, i.é, evita o efeito transitório na
tensão.
S
Q
S
Q
R
Q
R
Q
S
Q
R
Q
S
R
Q
Q
Flip-Flop RS com NOR’s e NAND’S
Arquitectura de Sistemas Computacionais
Símbolo do Flip-Flop RS
Circuitos Sequenciais
CONTACT BOUNCE ELIMINATOR
+V
+V
R
R
2
1
S
S
Q
1
V
Q
R
R
+V
+V
Circuito normal
2
Efeito transitório da tensão
Arquitectura de Sistemas Computacionais
Contact-Bounce Eliminator
Circuitos Sequenciais
FLIP–FLOP RST
Este FF não é mais do que um FF RS com uma terceira entrada de clock que vai permitir ou
inibir o funcionamento do FF conforme estiver ou não presente o impulso de clock.
S
Q
Ck
S
Q
C
Q
R
Flip-Flop RST, implementado com NAND’s
Arquitectura de Sistemas Computacionais
R
Q
Símbolo do Flip-Flop RST
Circuitos Sequenciais
FLIP–FLOP TIPO D OU LATCH
Este FF não é mais do que um FF RST onde as entradas RS estão ligadas a uma única
entrada D (DATA). Esta é aplicada directamente numa das gates e inversamente na outra.
D
Q
D
Q
C
Ck
Q
Q
SET
D
Flip-Flop D
S
C
CLR
D
Q
Q
Ck
D
Q
SET
R
Flip-Flop D, com Set e Clear (Reset)
Q
C
CLR
Arquitectura de Sistemas Computacionais
Q
Q
Símbolo do Flip-Flop D
Circuitos Sequenciais
FLIP–FLOP TIPO T OU TOGGLE
Este FF tem só uma entrada exterior (T) sendo, as outras, realimentações das saídas de Q e o
seu complemento. Por tal motivo, são necessários dois circuitos de atraso (delay) para evitar
que as realimentações mudem de estado enquanto T permanecer no seu estado 1.
A saída deste FF pode servir para: contar impulsos; servir como divisor (scaler) (na
medida em que são necessários 2 impulsos de entrada para 1 impulso de saída (T2=2T1));
servir, também, como contador binário.
S
Q
SET
Q
T
T
R
Flip-Flop T
Arquitectura de Sistemas Computacionais
Q
CLR
Q
Símbolo do Flip-Flop T
Circuitos Sequenciais
FLIP–FLOP JK
Tal como o FF Toggle, existem realimentações das saídas Q e do seu complemento, cujas
mudanças não devem interferir no funcionamento.
J
S
Q
Ck
J
Q
C
R
k
Q
Flip-Flop JK
Arquitectura de Sistemas Computacionais
K
Q
Símbolo do Flip-Flop JK
Circuitos Sequenciais
FLIP–FLOP JK master-slave
Esta situação levou à concepção de um novo tipo denominado JK master-slave, cuja
finalidade é introduzir um atraso entre a entrada e a saída, de forma a eliminar essa
interferência.
A razão do nome master-slave resulta de o segundo FF estar condicionado ao primeiro.
S
J
Q
Ck
Q
k
Slave
Master
R
Flip-Flop JK master-slave
Arquitectura de Sistemas Computacionais
Circuitos Sequenciais
FLIP–FLOP RS
Princípio de funcionamento:
1. As duas entradas estão normalmente a zero, podendo o FF estar com as saídas num estado
qualquer, i.é, estado Reset (Q=0 e ~Q=1) ou estado Set (Q=1 e ~Q=0).
2. Aplicando um sinal um à entrada Reset o FF é conduzido sempre ao estado Reset. Se ele
estiver previamente nesse estado permanece nele.
3. Aplicando um sinal um à entrada Set o FF é conduzido sempre ao estado Set. Se ele
estiver previamente nesse estado permanece nele.
4. Aplicando simultaneamente sinais Set e Reset nas entradas, o FF cai num estado de
indeterminação. Deve ser evitada esta situação!
S
Q
S
Q
R
Q
R
Q
Flip-Flop RS
Arquitectura de Sistemas Computacionais
Circuitos Sequenciais
FLIP–FLOP RS (cont.)
Este princípio de funcionamento traduz-se na seguinte tabela.
Saídas
Casos
Condições
Iniciais
Entrada
s
Saídas
Condições
Finais
Observações
Q
~Q
R
S
Q
~Q
1
0
1
0
0
0
1
Não muda
2
0
0
0
1
0
1
Não muda
3
0
1
1
0
1
0
Muda de Reset para Set
4
0
0
1
1
5
1
1
0
0
1
0
Não muda
6
1
0
0
1
0
1
7
1
1
1
0
1
0
8
1
0
1
1
S
R
Qn+1
0
0
Qn
Muda de Set para Reset
0
1
0
Não muda
1
0
1
Indeterminado
1
1
X
Indeterminado
Tabela Simplificada do FF RS
Arquitectura de Sistemas Computacionais
Circuitos Sequenciais
FLIP–FLOP RS (cont.)
O funcionamento do FF também se pode observar pelo diagrama de impulsos:
S0
R0
Q0
Q0
Nota: O funcionamento do FF é idêntico quando implementado com NAND’s!
Arquitectura de Sistemas Computacionais
Circuitos Sequenciais
FLIP–FLOP RST
As Gates C e D servem para que o Clock CK quando presente, deixe passar o sinal S ou R.
As Gates A e B constituem o FF RS propriamente dito.
O impulso de clock CK funciona como trinco (latch) que abre ou fecha as gates de controle,
C e D.
Continua a existir um estado indeterminado!
O FF comporta-se de igual forma ao RS desde que haja sinal de clock.
S
C
Entradas
A
Q
Ck
R
D
B
Arquitectura de Sistemas Computacionais
Q
Saídas
S
R
Ck
Q
~Q
0
0
0
Não actua
0
0
1
Não actua
0
1
0
Não actua
0
1
1
0
1
0
0
Não actua
1
0
1
1
1
1
0
Não actua
1
1
1
Indeterminado
1
0
Circuitos Sequenciais
FLIP–FLOP D ou LATCH
Este FF tem em relação aos anteriores a vantagem de eliminar o estado indeterminado. Isso
consegue-se ligando as entradas RS a uma única entrada D (DATA). A qual é aplicada
directamente numa das gates e inversamente na outra.
Este FF, além da vantagem acima descrita em relação às anteriores, dá-nos oportunidade de
avançar para outros processos, utilizando mais algumas alterações em relação ao esquema
básico, com o objectivo de eliminar alguns inconvenientes que ainda subsistem neste tipo.
D
ENTRADAS
Q
Ck
Q
Arquitectura de Sistemas Computacionais
SAÍDAS
Data
Clock
Q
0
0
Não Muda
0
1
0
1
0
Não Muda
1
1
1
Circuitos Sequenciais
FLIP–FLOP D ou LATCH
Na zona 1 aparece o que foi descrito na tabela de verdade, i.é, o nível na entrada D aparece
na saída Q a partir do impulso seguinte do clock com um certo atraso B devido ao nível 1 da
entrada D ter surgido antes desse impulso de clock. Funciona como um trinco (latch) que
abre levando a saída Q ao nível da entrada D.
Na zona 2 está representada uma situação inconveniente, i.é, durante todo o patamar em que
o impulso de clock é 1 a saída pode variar desde que varie a entrada.
A frequência de clock é inferior à da entrada de D. Em determinados contadores, isso
exigiria criar uma situação de compromisso entre o impulso de clock e o sinal de entrada
para não se dar a tal situação que ocorre na zona 2.
1
Ck
D
B
Q
Arquitectura de Sistemas Computacionais
2
Circuitos Sequenciais
FLIP–FLOP D ou LATCH(cont.)
Foi criado dentro do mesmo tipo um circuito mais complexo, para colmatar a situação
anteriormente descrita, denominado de Edge Triggered D-type FF, i.é, FF tipo D
disparando unicamente ou no flanco ascendente ou no descendente do impulso de clock.
Funcionamento:
Condições iniciais, Ck=0, D=1 e FF no estado Reset.
Quando aparece um impulso de clock, a saída da gate B vai para 0, fazendo com que o FF
RS constituido pelas gates E e F vá para estado Set. Se a entrada D vai para 0 durante o
tempo em que o Ck ainda é 1, a saída da gate D vai para 1. Isto não causa efeito na saída do
FF uma vez que a gate C está inibida pela saída da gate B.
Quando o clock por seu turno for 0 a saída B vai para 1 mas C é agora inibida pela falta de
clock, deixando assim a saída do FF no estado de Set, sem alteração.
A
B
E
Q
C
F
Q
Ck
D
Arquitectura de Sistemas Computacionais
D
Circuitos Sequenciais
FLIP–FLOP T ou TOGGLE
Funcionamento:
Inicialmente o FF está no estado Reset (Q=0 e ~Q=1).
Ao aplicamos um impulso 1 à entrada T, a porta NAND A abre, dando uma saída 0. Após
um certo atraso o FF é activado e passa ao estado Set.
A gate B fica preparada a actuar após a recepção do próximo impulso que conduzirá à
situação inicial, ou seja, Reset.
Aplicação:
Como foi falado anteriormente, a saída deste FF pode servir para contar impulsos ou servir
como divisor (scaler), na medida em que são necessários 2 impulsos de entrada para 1
impulso de saída (T2=2T1). Pode servir também como contador binário pois a sua saída é
alternadamente 0, 1, 0, 1, 0, 1,...
T1
S
Q
B
T
R
B
B
Q
T2
Arquitectura de Sistemas Computacionais
B
Circuitos Sequenciais
FLIP–FLOP JK
Este FF é o mais utilizado em circuitos lógicos devido a ser aquele que além de não ter
estado indeterminado, tem mais possibilidades de funcionamento, uma vez que tem 2
entradas (J e K) além de um clock.
Para compreender o seu funcionamento básico apercebamo-nos das seguintes condições:
•Só funciona com impulso de clock.
•Se ambas as entradas forem iguais a 0, o FF não muda de estado.
•Se ambas as entradas forem iguais a 1 o FF funciona como o FF Toggle (muda
sempre de estado).
•Se as entradas forem iguais às saidas, o FF não muda de estado.
•Se as entradas forem diferentes das saídas, o FF muda de estado complementarmente,
ficando com as entradas iguais às entradas.
0 || 1|| 0 / 1|| 0 / 1
J
Q
0 || 0  1  0 || 0 / 1|| 1  0 / 0  1
C
0 || 1|| 1/ 0 || 1/ 0
Arquitectura de Sistemas Computacionais
K
Q
1|| 1  0  1|| 1/ 0 || 0  1/ 1  0
Circuitos Sequenciais
FLIP–FLOP JK
Pelo esquema é fácil observar o funcionamento anteriormente descrito:
1. Quando J=0 e K=0 as portas A e B estão bloqueadas (A e B são AND’s!!).
2. Quando J=K=1, as portas A e B estão desbloqueadas, o FF funciona como Toggle e
Alterna de estado consoante o clock.
3. Quando J=0 e K=1 ou vice-versa, A ou B estão bloqueadas. Funciona como o FF RS,
pois as saídas dos AND’s são aplicadas directamente às entradas do FF RS.
J
S
Q
R
Q
Ck
k
Flip-Flop JK
Arquitectura de Sistemas Computacionais
Circuitos Sequenciais
FLIP–FLOP JK master-slave
Esta montagem é constituida por dois FF RS, no primeiro dos quais o clock actua
directamente (flanco ascendente) e no segundo inversamente (flanco descendente). Portanto,
a saída do primeiro FF (master) vai ser transmitida ao segundo FF (slave) no flanco
descendente do impulso de clock, o que implica dizer haver um atraso igual à duração do
clock. Este atraso elimina os efeitos da realimentação sobre a entrada, à semelhança da
introdução dos delays no FF Toggle.
S
J
A
C
E
G
Q
Ck
k
B
Master
D
H
F
Q
ENTRADAS
SAÍDAS
J
K
Qn+1
0
0
Qn
0
1
0
1
0
1
1
1
~Qn
Slave
R
Flip-Flop JK master-slave
Tabela de verdade do FF JK
A razão do nome master-slave resulta de o segundo FF estar condicionado ao primeiro.
Arquitectura de Sistemas Computacionais
Circuitos Sequenciais
FLIP–FLOP JK master-slave
Funcionamento do FF JK master-slave através do diagrama de sinais:
J
1
0
0
1
K
1
0
1
0
Ck
QCD
Ck
QGH
B
B
B
Como se pode verificar existe um atraso B entre as saídas QGH e QCD igual à duração do
impulso de clock.
Arquitectura de Sistemas Computacionais
Circuitos Sequenciais
CIRCUITOS SEQUENCIAIS
Os circuitos que vão ser objecto de estudo vão ser:
• Contadores.
• Divisores de frequência (scalers).
CONTADORES:
Estes dispositivos têm como objectivo realizar vários tipos de contagem como: tempo
(como um relógio digital), temporização ou sincronismo das operações de um sistema
complexo, calculadores, computadores, etc...
Tipos principais de CONTADORES:
• Assincronos ou de RIPPLE.
• Síncronos.
Arquitectura de Sistemas Computacionais
7
Circuitos Sequenciais
Assíncronos
Arquitectura de Sistemas Computacionais
Circuitos Sequenciais Assíncronos
CONTADORES ASSÍNCRONOS
Nos contadores assíncronos a saída do primeiro FF liga à entrada do segundo e assim
sucessivamente.
Dizem-se assíncronos porque os vários FF’s não comutam em sincronismo com o clock mas
sim com um atraso de um FF para o seguinte.
A
Q
Ck
T
C
B
Q
Q
T
CLR
Q
T
CLR
Q
CLR
Q
R
Contador Assíncrono implementado com FF tipo T
1 J
Ck
SET
Q
A
1 J
C
1
K
C
B
SET
Q
1 J
C
CLR
Q
1
K
SET
Q
C
CLR
Q
1
K
CLR
Q
R
Contador Assíncrono implementado com FF tipo JK
Arquitectura de Sistemas Computacionais
Circuitos Sequenciais Assíncronos
CONTADORES ASSÍNCRONOS
Diagrama de sinais dos contadores assíncronos implementados com FF tipo T e FF tipo JK.
Ck
A
1
0
1
0
1
0
1
0
1
0
B
1
1
0
0
1
1
0
0
1
1
C
1
1
1
1
0
0
0
0
1
1
Diagrama de sinais do contador assíncrono implementado com FF tipo T
Ck
A 0
1
0
1
0
1
0
1
0
1
B 0
0
1
1
0
0
1
1
0
0
C 0
0
0
0
1
1
1
1
0
0
Diagrama de sinais do contador assíncrono implementado com FF tipo JK
Arquitectura de Sistemas Computacionais
Circuitos Sequenciais Assíncronos
DESENHO DE CONTADORES ASSÍNCRONOS
O processo a seguir para implementar um contador assíncrono é o seguinte:
• Determinar o número de FF’s a utilizar.
• Ligar a saída de cada FF ao clock do FF seguinte.
• O reset do contador será feito através das saídas que terão nível lógico 1 no módulo
pretendido.
Exemplo: Implementar um contador de módulo 5.
Ponto 1: o número de FF a usar é igual a 3. Pois, 22 < 5 < 23  3 FF´s.
Ponto 2 e 3.
A
1 J
Ck
SET
Q
1 J
C
1
K
C
B
SET
Q
1 J
C
CLR
Q
R
Arquitectura de Sistemas Computacionais
1
K
SET
Q
C
CLR
Q
1
K
CLR
Q
Circuitos Sequenciais Assíncronos
DESENHO DE CONTADORES ASSÍNCRONOS
Exercícios:
1. Implemente, usando FF’s do tipo JK, um contador assíncrono que faça uma contagem de
0 a 3.
2. Implemente um contador, usando FF’s do tipo JK, um contador assíncrono de módulo 12.
3. Realize os pontos 1 e 2 usando FF’s do tipo T e D:
Arquitectura de Sistemas Computacionais
8
Circuitos Sequenciais Síncronos
Arquitectura de Sistemas Computacionais
Circuitos Sequenciais Síncronos
CONTADORES SÍNCRONOS
CONTADOR SÍNCRONO PROGRESSIVO:
A análise dos contadores síncronos torna-se mais complexa que a dos assíncronos, daí se
optar pelo método baseado na aplicação da tabela de verdade. Para tal procedemos da
seguinte forma:
• As entradas J e K de cada FF podem representar-se sob a forma de uma expressão
lógica.
• Essas expressões lógicas são normalmente função das saídas dos vários FF’s.
A
1 J
SET
Q
C
1
K
J
SET
Q
C
CLR
Q
C
B
K
SET
J
Q
Ck
R
Arquitectura de Sistemas Computacionais
Q
K
CLR
2. K A  1
3. J B  A
C
CLR
1. J A  1
Q
4. K B  A
5. J C  A  B
6. K C  A  B
Circuitos Sequenciais Síncronos
CONTADORES SÍNCRONOS
Tabela de verdade do funcionamento do contador síncrono progressivo:
SAÍDAS
C
B
A
ENTRADAS
JA
KA
JB
KB
JC
KC
1
1
A
A
A.B
A.B
Reset
0
0
0
1
1
0
0
0
0
1º clock
0
0
1
1
1
1
1
0
0
2º clock
0
1
0
1
1
0
0
0
0
3º clock
0
1
1
1
1
1
1
1
1
4º clock
1
0
0
1
1
0
0
0
0
5º clock
1
0
1
1
1
1
1
0
0
6º clock
1
1
0
1
1
0
0
0
0
7º clock
1
1
1
1
1
1
1
1
1
8º clock
0
0
0
1
1
0
0
0
0
Arquitectura de Sistemas Computacionais
Método para construção da Tabela de
verdade:
1.Dividir a tabela em dois grupos:
Entradas e Saídas.
2.Colocar no grupo das entradas, JA,
KA, JB, etc, com as respectivas
expressões.
3.Nas saídas colocam-se as letras A,
B, C relativas às saídas Q dos FF’s.
Circuitos Sequenciais Assíncronos
CONTADORES ASSÍNCRONOS
Diagrama de sinais do contador Síncrono progressivo:
Ck
A 0
1
0
1
0
1
0
1
0
1
B
0
0
1
1
0
0
1
1
0
0
C
0
0
0
0
1
1
1
1
0
0
R
Diagrama de sinais do contador síncrono progressivo implementado com FF tipo JK
Arquitectura de Sistemas Computacionais
Circuitos Sequenciais Síncronos
CONTADORES SÍNCRONOS
CONTADOR SÍNCRONO REGRESSIVO:
Procedendo da mesma forma de análise que para o contador síncrono progressivo temos:
A
SET
1 J
Q
1
K
CLR
SET
J
C
Q
J
C
Q
C
B
K
CLR
SET
Q
C
Q
K
CLR
Q
Ck
R
Contador síncrono regrassivo implementado com FF tipo JK
Comecemos por escrever as expressões das várias entradas a partir do esquema:
JA  1
JB  A
JC  A  B
KA  1
KB  A
KC  A  B
Arquitectura de Sistemas Computacionais
Circuitos Sequenciais Síncronos
CONTADORES SÍNCRONOS
Tabela de verdade do funcionamento do contador síncrono regressivo:
SAÍDAS
C
B
A
ENTRADAS
JA
KA
JB
KB
1
1
A
A
JC
KC
AB AB
Reset
0
0
0
1
1
1
1
1
1
1º clock
1
1
1
1
1
0
0
0
0
2º clock
1
1
0
1
1
1
1
0
0
3º clock
1
0
1
1
1
0
0
0
0
4º clock
1
0
0
1
1
1
1
1
1
5º clock
0
1
1
1
1
0
0
0
0
6º clock
0
1
0
1
1
1
1
0
0
7º clock
0
0
1
1
1
0
0
0
0
8º clock
0
0
0
1
1
1
1
1
1
Arquitectura de Sistemas Computacionais
Circuitos Sequenciais Assíncronos
CONTADORES ASSÍNCRONOS
Diagrama de sinais do contador Síncrono regressivo:
Ck
A
1
0
1
0
1
0
1
0
1
B
1
1
0
0
1
1
0
0
1
C
1
1
1
1
0
0
0
0
1
R
Diagrama de sinais do contador síncrono regressivo implementado com FF tipo JK
Arquitectura de Sistemas Computacionais
Circuitos Sequenciais Síncronos
CONTADORES SÍNCRONOS
CONTADOR SÍNCRONO REVERSÍVEL:
Trata-se de um contador que pode contar quer no sentido ascendente quer no sentido
descendente.
A
C
B
SET
1 J
Q
I
II
C
1
K
CLR
SET
J
Q
III
C
Q
K
Q
C
IV
CLR
SET
J
Q
K
CLR
Q
Ck
R
CD
Count Direction
JB
KB
JC
KC
0 (crescente)
A
A
A.B
A.B
Abre I e III
1 (decrescente)
A
A
AB
AB
Abre II e IV
Arquitectura de Sistemas Computacionais
Circuitos Sequenciais Síncronos
DESENHO DE CONTADORES SÍNCRONOS
O processo a seguir para implementar um contador síncrono é o seguinte:
• Determinar o número de FF’s a utilizar;
• Desenhar a tabela de verdade das saídas de acordo com o código de contagem
pretendido;
• Desenhar o mapa de Karnaugh relativamente às saídas do contador, utilizando a tabela
de verdade já construída, na fase anterior, como auxiliar;
• Retirar as expressões para todas as saídas J e K;
• Implementar o circuito do contador síncrono.
Arquitectura de Sistemas Computacionais
Circuitos Sequenciais Síncronos
DESENHO DE CONTADORES SÍNCRONOS (cont.)
Exemplo: Construir um contador para o código BCD-XS3.
• Número de FF’s a utilizar:
O número de FF a usar é igual a 4. Pois, o código necessita de pelo menos 4 bits para
representar os 10 digitos (0 – 9). Assim, 23=8 < 10 < 24=16  4 FF´s.
• Desenhar a tabela de verdade das saídas de acordo com o código de contagem
pretendido.
SAÍDAS
Estado Actual
Estado Seguinte
Decimal
D
C
B
A
D
C
B
A
Decimal
0 — 0
0 1 1
3
0
0
1
1
0
1
0
0
4
1 — 0
1 0 0
4
0
1
0
0
0
1
0
1
5
2 — 0
1 0 1
5
0
1
0
1
0
1
1
0
6
3 — 0
1 1 0
6
0
1
1
0
0
1
1
1
7
4 — 0
1 1 1
7
0
1
1
1
1
0
0
0
8
5 — 1
0 0 0
8
1
0
0
0
1
0
0
1
9
6 — 1
0 0 1
9
1
0
0
1
1
0
1
0
10
7 — 1
0 1 0
10
1
0
1
0
1
0
1
1
11
8 — 1
0 1 1
11
1
0
1
1
1
1
0
0
12
9 — 1
1 0 0
12
1
1
0
0
0
0
1
1
0
Arquitectura de Sistemas Computacionais
Circuitos Sequenciais Síncronos
DESENHO DE CONTADORES SÍNCRONOS (cont.)
• Desenhar o mapa de Karnaugh relativamente às saídas do contador, utilizando a tabela
de verdade já construída, na fase anterior, como auxiliar.
BA
00
DC
01
00
11
10
3
01
4
11
12
10
8
5
7
6
9
11
10
Os espaços em branco, serão “Don’t Care Conditions” (X) e correspondem aos códigos
ilegítimos deste contador.
Arquitectura de Sistemas Computacionais
Circuitos Sequenciais Síncronos
DESENHO DE CONTADORES SÍNCRONOS (cont.)
• Desenhar mapas de Karnaugh para as entradas J e K do total de FF’s a utilizar.
A tabela de excitação do FF JK é a seguinte:
Estado do FF
Estado das
Entradas
Condição do FF
Antes
Depois
J
K
0
0
0
X
Não Mudou ou Reset
0
1
1
X
Mudou ou Set
1
0
X
1
Mudou ou Reset
1
1
X
0
Não Mudou ou Set
Arquitectura de Sistemas Computacionais
Circuitos Sequenciais Síncronos
DESENHO DE CONTADORES SÍNCRONOS (cont.)
• Desenhar mapas de Karnaugh para as entradas J e K do total de FF’s a utilizar.
De acordo com a tabela de excitação constroi-se nova tabela de verdade, agora com as
entradas J e K.
SAÍDAS
ENTRADAS
Estado Actual
Estado Seguinte
D
C
B
A
D
C
B
A
0
0
1
1
0
1
0
0
1
0
0
0
1
0
1
0
1
0
0
1
1
0
0
1
1
1
0
1
JD
KD
JC
KC
JB
KB
JA
KA
0
0
X
1
X
X
1
X
1
JD  C  B  A
0
1
0
X
X
0
0
X
1
X
1
1
0
0
X
X
0
1
X
X
1
KD  C
0
1
1
1
0
X
X
0
X
0
1
X
1
1
0
0
0
1
X
X
1
X
1
X
1
KC  B  A  D
0
0
1
0
0
1
X
0
0
X
0
X
1
X
JB  D  C  A
0
0
1
1
0
1
0
X
0
0
X
1
X
X
1
1
0
1
0
1
0
1
1
X
0
0
X
X
0
1
X
1
0
1
1
1
1
0
0
X
0
1
X
X
1
X
1
1
1
0
0
0
0
1
1
X
1
X
1
1
X
1
X
Arquitectura de Sistemas Computacionais
JC  B  A
KB  A
JA  1
KA  1
Circuitos Sequenciais Síncronos
DESENHO DE CONTADORES SÍNCRONOS (cont.)
• Implementação do circuito contador síncrono.
C
D
J
SET
Q
C
K
J
SET
Q
C
CLR
Q
K
A
B
SET
J
Q
1 J
C
CLR
Q
K
CLR
SET
Q
C
Q
1
K
CLR
Q
Ck
R
Exercício:
1. Implemente, usando FF’s do tipo D, T e S-R o contador síncrono atrás realizado com FF’s
JK.
Arquitectura de Sistemas Computacionais
Circuitos Sequenciais Síncronos
DESENHO DE CONTADORES SÍNCRONOS (cont.)
Tabelas de excitação para outros FF’s:
Flip-Flop S-R
Estado do FF
Flip-Flop D
Estado das
Entradas
Estado do FF
Estado das
Entradas
Antes
Depois
S
R
Antes
Depois
D
0
0
0
X
0
0
0
0
1
1
0
0
1
1
1
0
0
1
1
0
0
1
1
X
0
1
1
1
Flip-Flop T
Estado do FF
Estado das
Entradas
Antes
Depois
T
0
0
0
0
1
1
1
0
1
1
1
0
Arquitectura de Sistemas Computacionais