Aula Expositiva 03
2.2.5 Síntese de Circuitos Combinatórios (7 segmentos)
2.2.6 Multiplexadores e Demultiplexadores
2.3 Circuitos Sequenciais
2.3.1 Flip-flops e registradores
2.3.2 Barramentos e Controle de Fluxo de Dados
2.3.3 Memórias
2.3.4 Acumuladores
2.4 Processadores
2.4.1 Uma Calculadora
2.4.2 Osciladores ou Clocks
DCC 001
Programação de Computadores
2o Semestre de 2011
Prof. Osvaldo Carvalho
DCC001 - 2011-2
1
Display Hexadecimal com
Lâmpada de 7 Segmentos
DCC001 - 2011-2
2
Lâmpada de 7 Segmentos
 Dispositivo simples e eficaz para
visualização de algarismos e
algumas letras
 O Logisim oferece este componente,
na biblioteca (Library) Input/Output
 Cada pino acende ou apaga um dos
sete segmentos
 Um pino acende um ponto decimal,
que não vamos usar
DCC001 - 2011-2
3
O Circuito SeteSegmentos.circ
Center
Upper Right
Lower Left
Lower Right
DCC001 - 2011-2
4
Display Hexadecimal
4 bits de
entrada
DCC001 - 2011-2
Circuito que
queremos
5
Construção da Tabela da Verdade para
Display Hexadecimal
DCC001 - 2011-2
6
O (sub-)Circuito 4bits2hexa
 Complicado? Pode ser, mas isso não é um
problema:


DCC001 - 2011-2
O circuito foi construído automaticamente, usando
uma tabela da verdade
Pode ser usado como um módulo, e seus detalhes
internos não interessam
7
Multiplexadores,
Demultiplexadores e
Decodificadores
DCC001 - 2011-2
8
Controle de Fluxo de Dados
 Além de operações aritméticas e
comparações, circuitos lógicos são também
utilizados para conduzir fluxos de dados

Multiplexador

dirige uma única entre várias fontes de dados
para um destino; a fonte é designada por um
endereço

Demultiplexador

DCC001 - 2011-2
dirige uma entrada de dados para um entre vários
destinos; o destino é designado por um endereço
9
MUX / DMX
Determina qual das
entradas fica
conectada à saída
DCC001 - 2011-2
Determina qual das
saídas fica conectada
à entrada
10
Multiplexador 1 bit
Circuito
DCC001 - 2011-2
11
Multiplexador 2 bits
O binário
a1a0 designa
qual entrada
fica ligada à
saída
Endereço
0 0
0 1
1 0
1 1
DCC001 - 2011-2
MUX
1 bit
MUX
1 bit
MUX
1 bit
12
Demultiplexador 1 bit
Circuito
DCC001 - 2011-2
13
Demultiplexador 2 bits
DMX
1 bit
DMX
1 bit
DMX
1 bit
DCC001 - 2011-2
Endereço
0 0
0 1
1 0
1 1
14
Decodificador construído com
Demultiplexador
Entrada
codificada
em binário
Constante
1
Saída
decodificada
DCC001 - 2011-2
15
Circuitos Sequenciais
Flip-Flops e Registradores
DCC001 - 2011-2
16
Limitações de Circuitos Combinatórios
 Sua saída depende exclusivamente dos
valores aplicados às suas entradas
 Com poucas variáveis de entrada, podem ser
obtidos da tabela da verdade
 Com arranjos em cascata, podem tratar de
entradas da ordem de algumas dezenas de
bits
 Mas como fazer para somar, digamos, 50
inteiros de 32 bits cada um?
DCC001 - 2011-2
17
Circuitos Sequenciais
 São circuitos digitais cuja saída depende
 dos sinais aplicados às suas entradas
 de valores armazenados em memórias
 Possuem Memórias:
 Flip-flops
 Registradores
 Memórias RAM
 Podem realizar operações como a soma de 50 inteiros de
32 bits, realizando uma soma de cada vez, com resultados
parciais acumulados em uma memória
DCC001 - 2011-2
18
Flip-Flop tipo D
Poderia ser “click”; funciona
como um obturador de
máquina fotográfica
A entrada D é
“fotografada” no
instante em que o clock
passa de 0 para 1
DCC001 - 2011-2
Bit
Armazenado
Complemento
do Bit
Armazenado
Pino Auxiliar:
Impõe 1
Pino Auxiliar:
Impõe 0
19
Carta de Tempo
FF tipo D
7
6
5
Clock
1
4
0
3
1
Entrada D
2
0
1
1
Saída Q
0
0
-1
1
2
3
4
5
6
7
8
9
10
11
12
13
Tempo
DCC001 - 2011-2
20
Registrador 4 bits
Clock
único para os 4 FFs
Saídas
Entradas
DCC001 - 2011-2
21
Registradores Logisim - 1
 Encontram-se na biblioteca “Memory”
 Permitem escolher a largura de dados
(no. de bits armazenados)
 Têm possibilidade de digitação direta
do conteúdo armazenado
 Também têm um pino de “clear”
DCC001 - 2011-2
22
Registradores Logisim - 2
Registradores
Valor
armazenado no
registrador, em
hexadecimal
Largura de
dados
DCC001 - 2011-2
23
Barramentos e Largura de
Dados
DCC001 - 2011-2
24
Largura de Dados
 Estes circuitos são
equivalentes
 No de baixo,
entradas, saídas,
registradores e
fios têm largura
de bits (bit width)
igual a 4
DCC001 - 2011-2
25
Ramificações (Splitters)
 Arquivo
Splitter.circ
5 bits
2 bits
8 bits
1 bit
DCC001 - 2011-2
26
Barramentos
Toda saída ligada ao barramento
passa por um “Controlled Buffer”
A todo instante, no máximo
um controlled buffer pode ter o
controle do barramento
O dado no barramento é igual à
saída com o controlled buffer
ligado
DCC001 - 2011-2
27
Controle de Fluxo de Dados
 Os sinais de clock dos registradores e dos
controlled buffers podem ser usados para
controlar o fluxo de dados entre
componentes ligados a um barramento
 Dados são transferidos de um ponto para
outro conectando e desconectando esses
sinais em uma sequência apropriada para a
transferência desejada
DCC001 - 2011-2
28
Controle de Fluxo de Dados
Exemplo 1
Colocar 7 no registrador A
Passo Sinal
Comentário
1 In = 7
Colocar 7 (em binário, 111) na entrada In
2 In_Bus = 1 Colocar o valor de In no barramento
3 A_Clk = 1 Copiar o valor do barramento no registrador A
4 A_Clk = 0 Zerar o clock do registrador A
5 In_Bus = 0 Liberar o barramento
DCC001 - 2011-2
29
Controle de Fluxo de Dados
Exemplo 2
Colocar 3 no registrador B
Passo Sinal
Comentário
1 In =3
Colocar 3 (em binário, 11) na entrada In
2 In_Bus = 1 Colocar o valor de In no barramento
3 B_Clk = 1 Colocar o valor do barramento no registrador B
4 B_Clk = 0 Zerar o clock do registrador B
5 In_Bus = 0 Liberar o barramento
DCC001 - 2011-2
30
Controle de Fluxo de Dados
Exemplo 3
Colocar no registrador C o conteúdo do registrador A
Passo Sinal
Comentário
1 A_Bus = 1 Colocar o valor do registrador A no barramento
2 C_Clk = 1 Copiar o valor do barramento no registrador C
3 C_Clk = 0 Zerar o clock do registrador C
4 A_Bus = 0 Liberar o barramento
DCC001 - 2011-2
31
Memórias
DCC001 - 2011-2
32
Memórias - 1
 O Logisim oferece memórias RAM (Random
Memory) e ROM (Read Only Memory)
Access
 Uma memória é composta por muitas unidades de
armazenamento chamadas palavras
 Cada palavra possui um endereço que deve ser usado para
ler ou escrever seu conteúdo
 Facilidades do simulador (não existem em circuitos reais)
para alteração de conteúdo, e mesmo para a leitura de um
arquivo com todo o conteúdo da memória
DCC001 - 2011-2
33
Memórias - 2
 Memórias têm como atributos
 a largura de dados, que é o número de bits em cada palavra
 a largura de endereço, que é o número de bits que compõem um
endereço
 o tamanho, que é o número de palavras que a memória contém
 No Logisim o tamanho de uma memória é determinado por
sua largura de endereço:

DCC001 - 2011-2
com n bits de largura de endereço, temos 2n palavras na memória
34
Memórias – 3
Memory
Address
Register
Entrada e
também saída
de dados
Na subida, copia
D na posição A
Controle de posse
do barramento
DCC001 - 2011-2
35
RAM – Fluxo 1
Passo
1
2
3
4
5
6
7
8
9
10
11
12
13
14
DCC001 - 2011-2
Escrever 9 na posição de memória 15
Sinal
Comentário
Input = 15
Colocar 15 (em binário, 1111) na entrada Input
In_Clk = 1
Copiar no registrador In a entrada Input
In_Clk = 0
Zerar o clock do registrador In
In_Bus = 1
Colocar o valor de In no barramento
Copiar o valor do barramento no registrador MAR (e
MAR_Clk = 1
também na entrada A da RAM)
MAR_Clk = 0 Zerar o clock do registrador MAR
In_Bus = 0
Liberar o barramento
Input = 9
Colocar 9 (em binário, 1001) na entrada Input
In_Clk = 1
Copiar no registrador In a entrada Input
In_Clk = 0
Zerar o clock do registrador In
In_Bus = 1
Colocar o valor de In no barramento
RAM_Clk = 1 Copiar o valor do barramento no endereço A da RAM
RAM_Clk = 0 Zerar o clock da memória
In_Bus = 0
Liberar o barramento
36
RAM
– Fluxo 2
Copiar o conteúdo da posição 15 da memória para o registrador Out
Passo
Sinal
Comentário
1
Input = 15
Colocar 15 (em binário, 1111) na entrada Input
2
In_Clk = 1
Copiar no registrador In a entrada Input
3
In_Clk = 0
Zerar o clock do registrador In
4
In_Bus = 1
Colocar o valor de In no barramento
Copiar o valor do barramento no registrador MAR (e
5
MAR_Clk = 1
também na entrada A da RAM)
6
MAR_Clk = 0 Zerar o clock do registrador MAR
7
In_Bus = 0
Liberar o barramento
Colocar o valor da posição A da memória no
8
RAM_Bus = 1
barramento
9
Out_Clk = 1 Copiar o valor do barramento no registrador Out
10
Out_Clk = 0 Zerar valor do clock do registrador Out
11
RAM_Bus = 0 Liberar o barramento
DCC001 - 2011-2
37
Acumuladores e Loops
DCC001 - 2011-2
38
Acumulador - 1
 Um registrador acumulador
Tem sua entrada alimentada por um circuito
aritmético, como um somador
 Sua saída é também uma das entradas deste
circuito aritmético

 Este arranjo permite p. ex. somar 100
números, sequenciando as somas ao longo
do tempo
DCC001 - 2011-2
39
Acumulador – 2
Registrador
Acumulador
Circuito Soma
(combinatório)
DCC001 - 2011-2
40
Acumulador – Fluxo 1
Colocar 5 no Acumulador
Sinal
Acc Clr = 1
Acc Clr = 0
In = 5
In->Dbus = 1
Acc Clk = 1
Acc Clk = 10
In->Dbus = 0
DCC001 - 2011-2
Comentário
Zera o acumulador
Abaixa o clear do acumulador
Coloca 5 na entrada In
A entrada In controla o barramento
O acumulador copia a entrada, que é a
saída do circuito de soma, sendo = 5
Abaixa o clock do acumulador
Libera o barramento
41
Acumulador – Fluxo 2
Soma 7 (111) ao conteúdo do Acumulador, e transfere
o resultado para o registrador Out
Sinal
In = 7
In->Dbus = 1
Acc Clk = 1
Acc Clk = 0
In->Dbus = 0
Acc->Dbus = 1
Out Clk = 1
Out Clk = 0
Acc->Dbus = 0
DCC001 - 2011-2
Comentário
Coloca 7 na entrada In
A entrada In controla o barramento
O acumulador copia a entrada, que é a
saída do circuito de soma, sendo igual a 12
(0c em hexa), soma do valor do acumulador
com o do barramento
Abaixa o clock do acumulador
Libera o barramento
O acumulador controla o barramento
O registrador Out copia o barramento
Abaixa o clock do registrador Out
Libera o barramento
42
Uma Calculadora
DCC001 - 2011-2
43
Uma Calculadora
Registrador de
Dados
Luzes para
acompanhamento
Unidade
LógicoAritmética
DCC001 - 2011-2
44
Uso da Calculadora
 Problema:
 Somar os conteúdos das posições 1 e 2 da memória, e
colocar o resultado na posição 3
 Pode ser feito pelas etapas:
1. Carregar no acumulador o conteúdo da posição 1 da RAM
2. Somar ao acumulador o conteúdo da posição 2 da RAM
3. Armazenar o conteúdo do acumulador na posição 3 da
memória
DCC001 - 2011-2
45
Etapa 1
DCC001 - 2011-2
ACC_Clear = 1
ACC_Clear = 0
Input = 1
In_Clk = 1
In_Clk = 0
In->Bus = 1
MAR_Clk = 1
MAR_Clk = 0
In->Bus = 0
RAM->Bus = 1
ACC_Clk = 1
ACC_Clk = 0
RAM->Bus = 0
Entrada de
Operando
Carrega no acumulador o
conteúdo da posição 1 da RAM
46
Etapa 2
Input = 2
In_Clk = 1
In Clk = 0
In->Bus = 1
MAR_Clk = 1
MAR_Clk = 0
In->Bus = 0
RAM->Bus = 1
ACC_Clk = 1
ACC_Clk = 0
RAM->Bus = 0
DCC001 - 2011-2
Soma ao acumulador o
conteúdo da posição 2 da RAM
47
Etapa 3
Input = 3
In_Clk = 1
In_Clk = 0
In->Bus = 1
MAR_Clk = 1
MAR_Clk = 0
In->Bus = 0
ACC->Bus = 1
RAM_Clk = 1
RAM_Clk = 0
ACC->Bus = 0
DCC001 - 2011-2
Armazena o conteúdo do
acumulador na posição 3 da
RAM
48
Clocks
DCC001 - 2011-2
49
De Calculadora a Processador
 Um processador é um circuito similar à
calculadora, mas
 A emissão de sinais de controle e a
entrada de operandos é automatizada,
e segue um programa
 Vamos adicionar circuitos à calculadora
para transformá-la em um processador
DCC001 - 2011-2
50
Osciladores ou Clocks
 O “propulsor” de qualquer circuito digital é um
oscilador ou clock
 Um clock é um circuito cuja saída oscila entre 0 e 1
com uma frequência conhecida
 Um computador de 1 GHz (1 giga hertz) utiliza um
clock cuja saída varia entre 0 e 1 um milhão de
vezes por segundo
 Deste sinal básico circuitos como registradores
circulares obtêm sinais de tempo que são usados
para “coreografar” o fluxo de dados de um circuito
DCC001 - 2011-2
51
Clocks no Logisim
DCC001 - 2011-2
52
Registrador Circular
DCC001 - 2011-2
53
Registrador Circular
Carta de Tempo
t2
t1
t0
Clock
Reset
DCC001 - 2011-2
54
Resumo - 1
 (De)Multiplexadores são usados para
conduzir dados em um circuito digital
 Um flip-flop armazena 1 bit
 Registradores são conjuntos de flipflops
 Memórias armazenam muitas palavras
(conjuntos de bits) identificadas por
um endereço
DCC001 - 2011-2
55
Resumo - 2
 A informação desloca-se entre dois
pontos de armazenamento seguindo
controles de fluxo de dados
 A informação é transformada por
circuitos combinatórios colocados entre
dois pontos de armazenamento
 Osciladores, divisores de frequência e
circuitos correlatos permitem o controle
no tempo do fluxo de dados
DCC001 - 2011-2
56
Download

Módulo_03_2011