Circuitos Lógicosac2018.pbworks.com/w/file/fetch/124425447/AC2018... · Controlador com contador...
Transcript of Circuitos Lógicosac2018.pbworks.com/w/file/fetch/124425447/AC2018... · Controlador com contador...
Circuitos Lógicos2017/2018
Conteúdo
• Portas Lógicas
• Circuito lógico -> tabela de verdade
• Tabela de verdade -> circuito lógico
• Blocos lógicos• Somador• Mux e Demux• Demultiplexador• Contador síncrono• ROM
• Controlador e Fluxograma• Com contador• Com registo
2Pedro Serra / Sérgio FerreiraAC 2017/2018
Portas Lógicas
Portas lógicas
• Operações Básicas
• NOT !A
• AND AB
• OR A+B
• NAND !(AB)
• NOR !(A+B)
• XOR A^B
• XNOR !(A^B)
4Pedro Serra / Sérgio FerreiraAC 2017/2018
Tabelas de verdade
5Pedro Serra / Sérgio FerreiraAC 2017/2018
A B Out
0 0 0
0 1 0
1 0 0
1 1 1
A B Out
0 0 0
0 1 1
1 0 1
1 1 1
A B Out
0 0 0
0 1 1
1 0 1
1 1 0
A B Out
0 0 1
0 1 0
1 0 0
1 1 1
A B Out
0 0 1
0 1 0
1 0 0
1 1 0
A B Out
0 0 1
0 1 1
1 0 1
1 1 0
AND OR XOR
XNORNORNAND
Circuito Lógico Tabela de verdade
Do circuito para a tabela de verdade
7Pedro Serra / Sérgio FerreiraAC 2017/2018
A B X Y
0 0
0 1
1 0
1 1
X
Y
AB
0
00
0
0 0
0
0
0
0
0 1
0 1
1 1
Tabela de verdadeCircuito lógico
Mapa de Karnaugh
Da tabela de verdade para o circuito
• Que função é esta?
9Pedro Serra / Sérgio FerreiraAC 2017/2018
A B Y
0 0 0
0 1 1
1 0 1
1 1 1
!A and B
A and !B
A and B
Y = (!A and B) Or (A and !B) Or (A and B)
Da tabela de verdade para o circuito
• Metodo de Karnaugh
10Pedro Serra / Sérgio FerreiraAC 2017/2018
A B Y
0 0 0
0 1 1
1 0 1
1 1 1
0 1
0
1
AB
!A
A
!B B
0 1
1 1
Y =
Da tabela de verdade para o circuito
• Metodo de Karnaugh
11Pedro Serra / Sérgio FerreiraAC 2017/2018
A B Y
0 0 0
0 1 1
1 0 1
1 1 1
0 1
0
1
AB
!A
A
!B B
0 1
1 1
B
A
Y = A Or B
Da tabela de verdade para o circuito
• Exemplo
12Pedro Serra / Sérgio FerreiraAC 2017/2018
A B C Y
0 0 0 0
0 0 1 0
0 1 0 1
0 1 1 0
1 0 0 0
1 0 1 0
1 1 0 1
1 1 1 1
0 0 0 1 1 1 1 0
0
1
AB C
0 1
1 1
B and !CA and B
Y = (A and B) Or (B and !C)
0 0
00
Células adjacentes diferem apenas no valor de uma variável
YAB
C
Blocos lógicosCircuitos LSI
Somador e comparador
14Pedro Serra / Sérgio FerreiraAC 2017/2018
A
B
Adder
A
B out3 3
carry
Inputs
Comp.
A
B =3
B == (A+7) ?
Output:
7
3
MUX
• Multiplexer (MUX)• Multiplexador• Roteamento de sinais. Escolher entre múltiplas entradas• Os bits de select determinam qual das entradas é mapeada para a
saída
• Busses usam o mesmo símbolo. In0, in1 podem ter 8-bits (8 fios) assim como a saída
15Pedro Serra / Sérgio FerreiraAC 2017/2018
in0
sel
in1
out
sel
in0
in1
out
=0 =0=1 =1
Se o mux tiver 4 entradas, quantos bits tem a entrada de sel?
DEMUX
• Demultiplexer (DEMUX)• Roteamento de sinais
• Oposto do multiplexer
• Busses usam o mesmo símbolo. in pode ter 8-bits (8 fios) assim como cada uma das saídas
16Pedro Serra / Sérgio FerreiraAC 2017/2018
in
sel
O0
sel
O1
O0
O1
in
Decoder
• Decoder• Descodificador• Converte de binário para 1-hot• Ex. 011b := 00001000 (1-hot)
17Pedro Serra / Sérgio FerreiraAC 2017/2018
Decoder3x8
A
B
D0
CD1
D2
D3
D4
D5
D6
D7
1
1
0
0
0
0
1
0
0
0
0
Encoder
• Encoder• Codificador• Converte 1-hot para binário• Ex. 0100 (1-hot) := 10b
18Pedro Serra / Sérgio FerreiraAC 2017/2018
Encoder4x2
A
D0
D1
D2
D3
0
10
0
1
0
Q0
Q1
Contador Síncrono
Contador Síncrono
• Contador (counter)• Contar números sequencialmente: 0, 1, 2, 3 ….
• next_value = current_value + 1
• output = current_value
20Pedro Serra / Sérgio FerreiraAC 2017/2018
1
Adder
A
B outnext_value
current_value
Problema: next_value e current_value estão no mesmo fio…feedback
Para resolver necessitamos de1. gravar o estado actual
2. Algo que nos diga quando fazer o update
Lógica combinacional e sequencial
• Combinacional• Saída só depende da entrada
• Ex. Uma numa porta AND a saída é sempre o AND das entradas.
• Sequencial• Saída depende da entrada e do estado
• Ex. contador• Depende do resultado do somador
• Depende do valor anterior
21Pedro Serra / Sérgio FerreiraAC 2017/2018
Elemento de estado: latch
• O Estado é um valor gravado (memória)
• O clock (relógio) diz-nos quando actualizar o estado (gravar por cima do valor que lá estava)
22Pedro Serra / Sérgio FerreiraAC 2017/2018
Stateoutin
current_valuenext_value
clock
Contador Síncrono
• Counter (contador)• Contar números sequencialmente: 0, 1, 2, 3 ….
• next_value = current_value + 1
• output = current_value
23Pedro Serra / Sérgio FerreiraAC 2017/2018
1
Adder
A
B outnext_value State
outincurrent_value
clock
Contador Síncrono
• Contador síncrono• Contadores podem ter uma entrada para carregar um valor, e
um sinal para escolher entre load do novo valor ou incrementar o valor actual.
24Pedro Serra / Sérgio FerreiraAC 2017/2018
next_value
Counter
outcurrent_value
clock
A
Ld/inc
Memória ROMRead Only Memory
Memória ROM
• ROM read only memory• Gravar na fase de fabrico, informação de forma permanente
• São circuitos combinatórios
• Entrada: endereço
• Saída: palavra que está gravada no endereço seleccionado
26Pedro Serra / Sérgio FerreiraAC 2017/2018
Endereço Dados
A2 A1 A0 D3 D2 D1 D0
0 0 0 1 1 1 0
0 0 1 1 1 0 0
0 1 0 0 1 1 1
0 1 1 1 1 1 1
1 0 0 1 0 1 0
1 0 1 1 0 1 1
1 1 0 0 0 0 0
1 1 1 1 0 0 1
ROM
A0
A1
A2
D0
D1
D2
D3
Memória ROM
27Pedro Serra / Sérgio FerreiraAC 2017/2018
Endereço Dados
A2 A1 A0 D3 D2 D1 D0
0 0 0 1 1 1 0
0 0 1 1 1 0 0
0 1 0 0 1 1 1
0 1 1 1 1 1 1
1 0 0 1 0 1 0
1 0 1 1 0 1 1
1 1 0 0 0 0 0
1 1 1 1 0 0 1
ROM
A0
A1
A2
D0
D1
D2
D3
0x2
0
1
0
1
1
0
1 0x07
Memória ROM
• ROM puras são circuitos integrados projectados de origem com o conteúdo pretendido e não podem ser alterados
• PROM (programmable ROM) podem ser programadas uma vez por fusão de pequenos fusíveis dentro do circuito integrado. Não permitem alterações.
• EPROM (erasable PROM) podem ser programados e apagados (usualmente por um banho de alguns minutos de radiação ultravioleta). Podem ser reprogramadas um certo número de vezes (dezenas a milhares).
• EEPROM (Electrically Erasable PROM) alteráveis electricamente sem necessidade de as retirar do circuito onde estão inseridas.
28Pedro Serra / Sérgio FerreiraAC 2017/2018
Memória ROM
• Aplicações• Suporte a programas em sistemas embebidos
• Memorização de tabelas
• Implementação de lógica• A ROM pode ser toda a tabela de verdade de um circuito
combinatório
29Pedro Serra / Sérgio FerreiraAC 2017/2018
ROM
A0
A1
A2
D0
D1
D2
D3
Z
Y
X
F(X,Y,Z)
Controlador e Fluxograma
Com ROM
Controlador com contador
31Pedro Serra / Sérgio FerreiraAC 2017/2018
ROM
Saídas (PO)
Próximo Endereço (NS)
Counter
outCLK
A
Ld/inc
Entradas
…1
Variável a testar (TV)
Endereço
Teste complementado (CT)
Entrada parallel load
Decide se faz load, ou se avança para o
estado seguinte da contagem
Selecciona a entrada a ser testada
Escolhe se salta quando a variável vem
a ‘0’ ou quando a variável vem a ‘1’
Activar saídas p.ex. acender leds, motores,
etc
Controlador com contador
• Os Controladores com contadores possuem a seguinte limitação: • Como resultado de cada teste numa variável de entrada, o
controlador poderá saltar para um estado arbitrário ou transitar para o estado seguinte da contagem
• Ou seja, um dos estados seguintes possíveis tem obrigatoriamente de ser o estado seguinte da contagem.
• Esta limitação obriga a manipulações no fluxograma que podem não ter solução simples. É necessário incluir estados redundantes, trocar codificações, etc.
32Pedro Serra / Sérgio FerreiraAC 2017/2018
Controlador com contador
• Estrutura de uma linha da memória ROM pode ser dividia em:
33Pedro Serra / Sérgio FerreiraAC 2017/2018
Next State (NS) Primary Output (PO) Test Variable(TV)
Complementary Test(CT)
Controlador com registo
34Pedro Serra / Sérgio FerreiraAC 2017/2018
ROM
SaídasPróximo Endereço
Latch
out
CLK
A
Entradas
Endereço
Teste
…
ES0
ES1
Controlador com registo
• Os controladores com Latch resolvem as limitações do contador à custa da inclusão de mais um MUX e utilização de mais bits de saída da ROM. O formato dos dados na ROM será o seguinte:
35Pedro Serra / Sérgio FerreiraAC 2017/2018
Saídas Estado Seguinte ‘0’ Estado Seguinte ‘1’ Teste
FluxogramaAlgorithmic State Machine diagram ASM
Fluxograma - blocos
37Pedro Serra / Sérgio FerreiraAC 2017/2018
Saídas activas
CondiçãoNome doestado
01
início
Fim
Regras
• As saídas dependem apenas do estado, não existindo saídas condicionais: Máquina de Moore
• Em cada estado, apenas é testada uma variável de entrada
• Para implementação com Contadores• Como resultado de cada teste numa variável de entrada, o
controlador poderá saltar para um estado arbitrário ou transitar para o estado seguinte da contagem
• Esta restrição é levantada se a implementação for feita com um registo à custa da utilização de mais bits na ROM.
38Pedro Serra / Sérgio FerreiraAC 2017/2018
Exemplo
39Pedro Serra / Sérgio FerreiraAC 2017/2018
Sensor 2Sensor 1
Semáforo
Exemplo
40Pedro Serra / Sérgio FerreiraAC 2017/2018
Sensor 2Sensor 1
Semáforo
• Dois sensores: Sensor 1, Sensor 2.• O comboio pode circular vindo de um lado ou do outro.
Nunca dos dois• Os sensores estão suficiente afastados.• O comboio é muito mais pequeno do que a distancia entre
sensores• Os dois semáforos funcionam em simultâneo como se
fossem apenas um.• Existe um temporizador para contar o tempo durante o qual
o semáforo está amarelo
Exemplo
41Pedro Serra / Sérgio FerreiraAC 2017/2018
Sensor 2Sensor 1
Semáforo
• Quando um dos sensores detecta a presença do comboio transita para ‘1’.• Nesse momento, o temporizador deve ser inicializado (saída
ArranqueTemp = ‘1’) e o semáforo deve passar para Amarelo.
• Quando o temporizador chega ao fim da contagem (sinal temp = ‘1’) o semáforo deve passar a Vermelho.
• O semáforo passa a Verde quando o comboio faz disparar o outro sensor.
Exemplo
42Pedro Serra / Sérgio FerreiraAC 2017/2018
Sensor 2Sensor 1
Semáforo
• Entradas:• S1, S2, temp
• Saídas:• Verde, Amarelo, Vermelho, ArranqueTemp
Exemplo – Implementação com contador
43Pedro Serra / Sérgio FerreiraAC 2017/2018
verde E0
S1
VerdeArranqueTemp
10
0
verde
S2
1
E1
E2
Amarelo
temp
Vermelho
S1
Vermelho
1
E3
E4
E5
1
1
1
0
0
VerdeArranqueTemp
E6
Amarelo
temp
Vermelho
S2
Vermelho
1
E7
E8
E9
1
1 0
0
1
Exemplo – implementação com registo
44Pedro Serra / Sérgio FerreiraAC 2017/2018
ROM
Latch
out
CLK
A
S1
Endereço
Teste
ES0
ES1
S2
temp
Saídas ES0 ES1 Test
Verde
Amarelo
Vermelho
ArranqueTemp
Exemplo – Implementação com Registo
45Pedro Serra / Sérgio FerreiraAC 2017/2018
verde E0
S1
VerdeArranqueTemp
10
0
verde
S2
1
E1
E2
Amarelo
temp
Vermelho
S1
E3
E41
10
0
VerdeArranqueTemp
E5
Amarelo
temp
Vermelho
S2
E6
E7
1
0
0
1
Exemplo – implementação com registo
46Pedro Serra / Sérgio FerreiraAC 2017/2018
ROM
Verde
Latch
out
CLK
A
S1
Endereço
Teste
ES0
ES1
S2
temp
Endereço Saídas ES0 ES1 TestE0 1000 E1 E5 0E1 1000 E0 E2 1E2 1001 E3 E3 XE3 0100 E3 E4 2E4 0010 E4 E0 1E5 1001 E6 E6 XE6 0100 E6 E7 2E7 0010 E7 E0 1
Amarelo
Vermelho
ArranqueTemp
Referências
• Guilherme Arroz, José Monteiro e Arlindo Oliveira, "Arquitectura de Computadores: dos Sistemas Digitaisaos Microprocessadores", IST Press, Dez 2014 (3ª Edição), 2.1.1-2.1.12, 2.2.1, 2.3.1, 7.3.37.5.2
47Pedro Serra / Sérgio FerreiraAC 2017/2018