circseq_aoco_201516
DESCRIPTION
circSeq_AOCO_201516TRANSCRIPT
1
Arquitetura e Organização de
Computadores - EIC00831º ano, 1º semestre - 2015/16
Mestrado Integrado em Engenharia Informática e Computação
FEUP
Circuitos sequenciais
Outubro de 2015
António José Duarte Araújo
António José Araújo, FEUP AOCO_2015/16 - Circuitos sequenciais 2
Circuitos sequenciais: resumo
• Conceitos introdutórios
• Elementos de memória
• Circuitos sequenciais síncronos
• Registos, banco de registos e contadores
• Exemplos
2
António José Araújo, FEUP AOCO_2015/16 - Circuitos sequenciais 3
Introdução
• Circuito combinacional: o valor da saída depende apenasdos valores atuais das entradas.
• Circuito sequencial: o valor da saída depende dos valores atuais e dos valores anteriores das entradas.
• Estado de um circuito: conjunto de variáveis de estado que, em cada momento, contém informação sobre o passado do circuito permitindo, em conjunto com os valores da entrada, a determinação do comportamento futuro.
• Em circuitos digitais, as variáveis de estado são binárias: um circuito com n variáveis de estado pode ter até 2n
estados.
• O valor de uma variável de estado é armazenado num elemento de memória (p. ex. flip-flop tipo D).
• Nos circuitos digitais síncronos, as mudanças de estado ocorrem em instantes de tempo determinados por um sinal periódico: o sinal de relógio.
António José Araújo, FEUP AOCO_2015/16 - Circuitos sequenciais 4
Como funcionam?
• Um circuito sequencial, além do estado interno, tem:
– entradas
– saídas
• O estado atual e as entradas definem:– quais são os valores das saídas
– qual vai ser o próximo estado, ou seja, que valores tomarão as variáveis de estado
estado
saídasentradas
3
António José Araújo, FEUP AOCO_2015/16 - Circuitos sequenciais 5
Modelo conceptual
Composição
• Geração das saídas
– Bloco combinatório
– Saídai = fi (entradas, estado
presente)
• Geração do próximo estado
– Bloco combinatório
– Estadoi = gi(entradas, estado
presente)
• Memória de estado
– Elementos de memória (flip-
flops)
– Próximo estado passa a
constituir o estado presente
após transição do relógio
estado
saídasentradas
estado
(memória)
saídasentradas
estado
presentepróximo
estado
sinal de
relógio
António José Araújo, FEUP AOCO_2015/16 - Circuitos sequenciais 6
Sinal de relógio
• Sinal de relógio típico, para um sistema sensível
à transição positiva (flanco ascendente )
• T = período (intervalo de repetição) (unidade: s)
• T = TH + TL
• F = 1/T = frequência (unidade: Hz = 1/s)
– Exemplo: se FCLK = 1 GHz, TCLK = 1 ns (10-9 s)
TL THT
mudanças de estado
ocorrem aqui
4
António José Araújo, FEUP AOCO_2015/16 - Circuitos sequenciais 7
Organização geral de um sistema
sequencial síncrono• O flanco de relógio determina quando é que os elementos de
memória são modificados.
• O período de relógio deve ser longo o suficiente para a saída da lógica combinatória atingir o seu valor final, isto é, estabilizar.
• Num sistema sensível à transição, o valor de um elemento de memória pode ser usado para calcular o próximo valor desse mesmo elemento. A alteração só é efetuada na transição ativa seguinte.
Circuito combinatório
Circuito combinatórioElemento de
estado 1
Elemento de
estado 1
Elemento de
estado 2
António José Araújo, FEUP AOCO_2015/16 - Circuitos sequenciais 8
Elemento de memória
• Circuitos bi-estáveis:
– portas lógicas “normais” com realimentação
positiva, isto é, que reforça o estado atual
– as saídas sustentam valores nas entradas
• O circuito bi-estável mais simples:
– mas … não tem entradas,
não podendo ser controlado
Q,Q’ pode ser 1,0 ou 0,1
5
António José Araújo, FEUP AOCO_2015/16 - Circuitos sequenciais 9
Latch tipo D (ou transparente)
símbolo:
EN D Q Q’
0 X Qant. Q’ant.
1 0 0 1
1 1 1 0
Q
Q’
D
EN
Quando EN=1 a latch é transparente (Q=D)
Quando EN passa de 1 para 0, a saída Q memoriza o seu estado
D
Q
EN
Q
Q’
D
EN
R
S
António José Araújo, FEUP AOCO_2015/16 - Circuitos sequenciais 10
Flip-flop tipo D
D CLK Q Q’
X 0 Qant. Q’ant.
X 1 Qant. Q’ant.
1 1 0
0 0 1
Edge-triggered: sensível à transição do sinal de relógio (CLK)
CLK
D
Q
6
António José Araújo, FEUP AOCO_2015/16 - Circuitos sequenciais 11
Flip-flop tipo D
• quando CLK sobe captura o valor na entrada D
• símbolo:
• parâmetros temporais: tsetup e thold
Que acontece se estes
tempos forem violados?
CLK
D
tsetup thold
Q
Q’
D
CLK
indica que é
edge-triggered
indica que é ativo à transição
negativa, ou descendente
Q
Q’
D
CLK
António José Araújo, FEUP AOCO_2015/16 - Circuitos sequenciais 12
Flip-flop tipo D
Equação característica:
– Q* representa o próximo valor para Q
• quando CLK passa de 0 para 1
– Q* é função de Q e da entrada
• flip-flop tipo D: Q* = D
– copia para Q o que está em D
7
António José Araújo, FEUP AOCO_2015/16 - Circuitos sequenciais 13
Registos
• Registo: grupo de n elementos de memória (p. ex. flip-
flops D), que são acedidos como uma única entidade e
partilham o mesmo sinal de relógio
• Exemplo: implementação de um registo de 4 bits
D3 D2 D1 D0
Q3 Q2 Q1 Q0
CLK
António José Araújo, FEUP AOCO_2015/16 - Circuitos sequenciais 14
Banco de registos
• Banco de registos: conjunto de registos com a mesma capacidade,
em que cada registo pode ser selecionado individualmente
•
Qual a função do
descodificador e
do multiplexador?
Exemplo: banco
de 8 registos de
4 bits
8
António José Araújo, FEUP AOCO_2015/16 - Circuitos sequenciais 15
Contador síncrono
• Todos os flip-flops têm o mesmo sinal de relógio (circuito síncrono),
comutando simultaneamente.
• A saída Qi troca quando todos os bits anteriores (Q0 a Qi-1) são iguais a 1.
QD
CLK
QD
CLK
QD
CLK
CLK
ENQ0
Q1
Q2
• Constituição com flip-flops tipo D:
CLK
QAENQB
QC
CONT3
Símbolo (ex: contador
de 3 bits)
António José Araújo, FEUP AOCO_2015/16 - Circuitos sequenciais 16
Contador com load
QD
CLK
QD
CLK
QD
CLK
CLK
EN Q0
Q1
Q2
D0
D1
D2
load
0
1
0
1
0
1
Quando load está ativo, o contador é “carregado” com o que está nas entradas Di
Como acrescentar uma entrada de reset (síncrono)?