Circuitos seqüenciais síncronos• Organização:
– Conceitos básicos e métodos de representação– Síntese de circuitos seqüenciais síncronos– Projecto com blocos SSI / MSI– Análise de circuitos seqüenciais síncronos– Projeto e teste
Seqüenciais x combinatórios
• Ao contrário dos circuitos combinatórios, onde as saídas dependem apenas do valor das entradas no instante considerado, nos circuitos seqüenciais as saídas dependem também do valor que as entradas tiveram em instantes anteriores
• Podemos portanto afirmar que os circuitos seqüenciais possuem memória, onde armazenam uma informação interna de estado
Circuitos seqüenciais síncronos• Os circuitos seqüenciais dividem-se essencialmente
em duas grandes classes:– Os circuitos seqüenciais síncronos, cujo funcionamento é
cadenciado por um sinal periódico de relógio e que são aqueles que diretamente nos interessam
– Os circuitos seqüenciais assíncronos, que pela definição anterior ficam associados aos circuitos nos quais a transição de estado não é cadenciada por um sinal de relógio, ou onde o sinal de relógio não é periódico
Composição de um circuito seqüencial• A necessidade de armazenar a informação de estado
faz com que os circuitos seqüenciais síncronos disponham de elementos de memória internos (FF)
• Para além dos FF, existem dois blocos combinatórios principais, que têm por entradas a informação do estado atual e do valor das entradas exteriores:– O bloco que determina qual o estado seguinte– O bloco que determina o valor das saídas exteriores
Modelo de Huffman
CLK
X Z
D1
D0Q1
Q0
Circuito combinatório
Estado actual
Estado seguinte
Bloco que determina o estado seguinte:
CLK
X Z
D1
D0Q1
Q0
Circuito combinatório
Estado actual
Estado seguinte
Bloco que determina as saídas exteriores:
Formas básicas de representação• Consideraremos as seguintes alternativas principais
para a representação de circuitos seqüenciais:– Diagrama de transição de estados– Tabela de transição de estados– Tabela de verdade– Diagrama lógico (já conhecida)
• O sinal de relógio só está explicitamente representado no diagrama lógico
Entradasexteriores
Saídasexteriores
Relógio
(CLK)
Diagrama de transição de estados• Os estados são indicados por círculos
e definidos por combinações de valores lógicos presentes nas variáveis de estado (os FF que constituem a memória do circuito)
• O estado seguinte e o valor das saídas são definidos pelo estado atual e pelo valor das entradas, quando ocorre uma transição ativa no sinal de relógio
X=0
X=1
X=0
X=0
X=1
X=1
X=0
X=1
D
C
B
A
Interpretação do diagrama
• Quando o circuito se encontra no estado A, sendo a entrada exterior (X) 0, a próxima transição ativa no sinal de relógio provocará a passagem para o estado A (mantém-se o estado atual); se,
X=0
X=1
X=0
X=0
X=1
X=1
X=0
X=1
D
C
B
A
no entanto, a entrada exterior for 1, o circuito passará para o estado B
O conceito de entrada do circuito seqüencial• Exemplo para a seqüência 101:
A - B - C - D (valor da saída no fim?)• Convém ainda assinalar que:
– Assumimos que o primeiro bit a ser lido é o que está representado à esquerda (por convenção)
– O estado da entrada entre dois impulsos de relógio é irrelevante, porque o que conta é o seu valor no momento em que ocorre a transição activa neste sinal
X=0
X=1
X=0
X=0
X=1
X=1
X=0
X=1
D
C
B
A
Formas de onda nas entradas• Uma vez que o que é importante é o valor da entrada
no momento em que ocorre a transição ativa no sinal de relógio, as seguintes formas de onda na entrada X serão ou não equivalentes?
Entrada (X)
Relógio (CLK)
Saída (Z)
Estado A B C D B
Entrada (X)
Relógio (CLK)
Saída (Z)
Estado A B C D B
Tabela de transição de estados• Esta tabela contém exactamente a
mesma informação que o diagrama de transição de estados, mas agora na forma tabular
Estado actual Estado seguinte Saída
(quando X=0) (quando X=1)
A A B 0
B C B 0
C A D 0
D A B 1
X=0
X=1
X=0
X=0
X=1
X=1
X=0
X=1
D
C
B
A
Tabela de verdade
• A tabela de verdade contém uma descrição mais pormenorizada do circuito, uma vez que a alocação de estados já foi realizada
X=0
X=1
X=0
X=0
X=1
X=1
X=0
X=1
D
C
B
A
S1 S0 X NS1 NS0 Z
0 0 0 0 0 0
0 0 1 0 1 0
0 1 0 1 0 0
0 1 1 0 1 0
1 0 0 0 0 0
1 0 1 1 1 0
1 1 0 0 0 1
1 1 1 0 1 1
• Qual foi a alocação de estados que conduziu à tabela de verdade à direita, para o nosso exemplo?
Interpretação da tabela de verdade• Usa-se a designação S para indicar o valor actual
das variáveis de estado (state) e NS para representar o seu valor seguinte (next state)
• No caso da primeira linha da tabela, teremos que se o circuito se encontrar no estado A (S1,S0=00) e a entrada exterior for X=0, então a próxima transição activa no sinal de relógio manterá o circuito no estado A (NS1,NS0=00) e a saída continuará em Z=0
S1 S0 X NS1 NS0 Z
0 0 0 0 0 0
A implementação das variáveis de estado• As variáveis de estado são normalmente
implementadas por recurso a circuitos biestáveis, a que se dá a designação habitual de flip-flops (FF)
• Existem três tipos principais de FF:– FF do tipo D (os que usaremos com maior freqüência)– FF do tipo J-K– FF do tipo T
Os FF do tipo D
• Num FF do tipo D, a saída assume o valor da entrada por cada transição ativa no sinal de relógio
• Num FF deste tipo, o estado atual (S) corresponde às saídas Q e o estado seguinte (NS) às entradas D
D CLK Q /Q
0 0 1
1 1 0
X 0 Qant /Qant
X 1 Qant /Qant
X Qant /Qant
Q6
Q5
CL K3
D2
Os FF do tipo J-K
• Nos FF J-K, o valor da saída é definido pelo valor presente nas duas entradas (J e K), quando ocorre a transição activa no sinal de relógio (qual a
J K CLK Q /Q
0 0 Qant /Qant
0 1 0 1
1 0 1 0
1 1 /Qant Qant
X X 0 Qant /Qant
X X 1 Qant /Qant
X X Qant /Qant
Q6
Q7
K1
CL K5
J4
correspondência que existe neste caso entre S, NS, J, K e Q?)
Os FF do tipo T
• Nos FF do tipo T (toggle), a saída é complementada por cada transição activa no sinal de relógio (e para este caso, qual a correspondência entre S, NS, T e Q?) T CLK Q /Q
0 X Qant /Qant
1 /Qant Qant
X 0 Qant /Qant
X 1 Qant /Qant
X Qant /Qant
T
CL K
Q
Q
Utilização dos FF D
• No circuito considerado, o uso de FF D para as variáveis de estado levaria a uma solução como a seguinte:
Q1 Q0 X D1 D0 Z
0 0 0 0 0 0
0 0 1 0 1 0
0 1 0 1 0 0
0 1 1 0 1 0
1 0 0 0 0 0
1 0 1 1 1 0
1 1 0 0 0 1
1 1 1 0 1 1 CLK
X Z
D1
D0
Q1
Q0
Circuito combinatório
Estado actual
Estado seguinte
X=0
X=1
X=0
X=0
X=1
X=1
X=0
X=1
D
C
B
A
Máquinas de Moore e máquinas de Mealy• Nas máquinas de estado (circuitos seqüenciais com
um número finito de estados) do tipo Moore, as saídas dependem apenas do estado atual do circuito
S1 S0 X NS1 NS0 Z
0 0 0 0 0 0
0 0 1 0 1 0
0 1 0 1 0 0
0 1 1 0 1 0
1 0 0 0 0 0
1 0 1 1 1 0
1 1 0 0 0 1
1 1 1 0 1 1
• Nas máquinas de Mealy as saídas dependem do estado actual e do valor das entradas
• O exemplo que temos vindo a considerar corresponde a ...?
Distinção entre máquinas de Moore e de Mealy• A representação apresentada abaixo corresponde a
uma máquina de Moore ou de Mealy?X (entradas exteriores)
Z
(saídasexteriores)
D1
D0
Q1
Q0
Circuitocombinatório(geração do
estado seguinte)
Estadoseguinte
Estadoactual Circuito
combinatório(geração das
saídas)
CLK
Exemplo 1: Um detector de janela• Apresente o diagrama de transição de estados para
um circuito com uma entrada, à qual chegam continuamente (em forma série) palavras de 3 bits, e com uma saída, que deverá ser colocada em 1 sempre que a palavra lida pertença ao intervalo [2,5]
• Assuma que a saída é considerada válida apenas durante cada terceiro ciclo de relógio, após o que se inicia imediatamente a leitura de uma nova seqüência
Exemplo 1: Um detector de janela (conclusão)
E
1
F
A
D
C B 0
0 1
1 0
1 0
0,1
0,1
Assumindo que o bit mais significativo é lido em primeiro lugar, concluímos facilmente que as seqüências que devem colocar a saída em 1 são aquelas nas quais os dois primeiros bits lidos são diferentes: 010 (2), 011 (3), 100 (4) e 101 (5).
Exemplo 2: Um votador seqüencial• Apresente o diagrama de transição de estados para
um circuito com uma entrada e uma saída, que deverá ser colocada em 1 sempre que a entrada se mantiver no mesmo estado durante pelo menos dois impulsos de relógio consecutivos (voltando a 0 quando esta situação deixar de ter lugar)
Exemplo 2: Um votador seqüencial (conclusão)
A
0 B
C
D E
1
1 0
0
1
0
1
0 1
A: Estado inicial - B: Estado onde já foi lido o primeiro 0 - C: Estado onde já foi lido o primeiro 1 - D: Estado onde já foram lidos dois 0 (e portanto asaída está em 1) - E: Estado onde já foram lidos dois 1 (e portanto a saída está em 1).
Síntese de máquinas de estado• A síntese de máquinas de estado, seja de Moore ou
de Mealy, é feita de acordo com o seguinte conjunto de etapas:– Representação formal– Alocação de estados– Construção da tabela de verdade– Obtenção da soma mínima
Exemplo 1: Um detector de duplas seqüências• Pretende-se ilustrar a aplicação das quatro etapas
principais referidas na transparência anterior, através do exemplo concreto de um circuito com as seguintes características funcionais:– O circuito deverá possuir duas entradas, nas quais se
pretende detectar a ocorrência simultânea da seqüência 101 (representa-se à esquerda o primeiro bit lido)
– Seqüências sobrepostas devem ser consideradas válidas
Y
Z
Relógio (CLK)
X
Exemplo 1: Um detector de duplas seqüências (cont.)• Exemplo do diagrama temporal para
uma situação típica de funcionamento:
Entrada Y
Relógio (CLK)
Saída (Z)
Entrada X
Y
Z
Relógio (CLK)
X
Exemplo 1: Um detector de duplas seqüências (cont.)• Representação formal (diagrama de transição de
estados): 00,01,10
11
00,01,10
11
XY=11
00
D
C
B
A
01,10
11 00
01,10
Entrada Y
Relógio (CLK)
Saída (Z)
Entrada X
• Qual a sequência de transição de estados que corresponde ao diagrama temporal abaixo?
Exemplo 1: Um detector de duplas seqüências (cont.)• Considerando a alocação de
estados A-00, B-01, C-10 e D-11:
Q1 Q0 X Y D1 D0 Z
(0) 0 0 0 0 0 0 0
(1) 0 0 0 1 0 0 0
(2) 0 0 1 0 0 0 0
(3) 0 0 1 1 0 1 0
(4) 0 1 0 0 1 0 0
(5) 0 1 0 1 0 0 0
(6) 0 1 1 0 0 0 0
(7) 0 1 1 1 0 1 0
(8) 1 0 0 0 0 0 0
(9) 1 0 0 1 0 0 0
(10) 1 0 1 0 0 0 0
(11) 1 0 1 1 1 1 0
(12) 1 1 0 0 1 0 1
(13) 1 1 0 1 0 0 1
(14) 1 1 1 0 0 0 1
(15) 1 1 1 1 0 1 1
00,01,10
11
00,01,10
11
XY=11
00
D
C
B
A
01,10
11 00
01,10
Exemplo 1: Um detector de duplas seqüências (cont.)• Obtenção da soma mínima: Q1 Q0 X Y D1 D0 Z
(0) 0 0 0 0 0 0 0
(1) 0 0 0 1 0 0 0
(2) 0 0 1 0 0 0 0
(3) 0 0 1 1 0 1 0
(4) 0 1 0 0 1 0 0
(5) 0 1 0 1 0 0 0
(6) 0 1 1 0 0 0 0
(7) 0 1 1 1 0 1 0
(8) 1 0 0 0 0 0 0
(9) 1 0 0 1 0 0 0
(10) 1 0 1 0 0 0 0
(11) 1 0 1 1 1 1 0
(12) 1 1 0 0 1 0 1
(13) 1 1 0 1 0 0 1
(14) 1 1 1 0 0 0 1
(15) 1 1 1 1 0 1 1Z=Q1*Q0
/Q1
Q1
/Q0
/Q0
Q0
Y/Y /Y
/X X
0 1 3 2
4 5 7 6
12 13 15 14
8 9 11 10
1
1
1
D1
D1=Q0*/X*/Y+Q1*/Q0*X*Y
/Q1
Q1
/Q0
/Q0
Q0
0 1 3 2
4 5 7 6
12 13 15 14
8 9 11 10
1
1
1
1
D0Y/Y /Y
/X X
D0=X*Y
Exemplo 1: Um detector de duplas seqüências (cont.)• Diagrama lógico
correspondente à soma mínima obtida:
Entrada Y
Entrada X
CLK
Saída Z
Q1
Q0
/Q0/Q0
Q0
Q1
D0
D1
7408
4
56
7404
34
7474
D2
CLK3
Q5
Q6
7421
12
45
6
7411
12
1312
7408
1
23
7404
12
7432
1
23
7474
D12
CLK11
Q9
Q8
Exemplo 2: Um comparador seqüencial• No sentido de ilustrar a situação mais realista de nos
confrontarmos com uma especificação incompleta / ambígua, consideraremos agora o caso de um circuito com as seguintes características funcionais:– Pretende-se efetuar a comparação de duas palavras com
3 bits cada uma (palavras M e N), produzindo uma saída que indique quando M N
– Pretende-se que a comparação seja efetuada bit a bit, com início pelo bit mais significativo
Y
Z
Relógio (CLK)
X
Exemplo 2: Um comparador seqüencial (cont.)• Dúvidas por esclarecer na especificação inicial:
– Existe algum sinal exterior que indique o início de uma nova comparação?
– Ou assume-se que estão permanentemente a ser efectuadas novas comparações, correspondendo cada “quarto” impulso de relógio à comparação do primeiro bit (o mais significativo) do novo par de palavras?
Exemplo 2: Um comparador seqüencial (cont.)• Assumindo a existência
de um sinal exterior de inicialização (reset), chegamos ao seguinte diagrama de transição de estados:
00,01,10,11
XY=01
A00,11
C E
B
D
reset 00,11
10
00,01,10,11
1010
01 00,01,11
M: Xt-2 Xt-1 Xt
N: Y t-2 Y t-1 Y t
Exemplo 2: Um comparador seqüencial (cont.)• O sinal de
reset exterior:
Reinicialização
Relógio (CLK)
>> estado A
Compara o MSB
Z = MN está válida (e o estado é B ou D)
(...)
(...)
(...)
Z = M (menorou igual a) N
D1
D0
Reinicialização
(...)
(...)
(...)
(...)
(...)
(...)
(...)
(...)
(...)
Y
Z = MN
Relógio
(CLK)
X
Reinicialização
Exemplo 2: Um comparador seqüencial (cont.)• A implementação do sinal de reset poderia também
ser feita através de um pino específico dos FF-D:
YZ = MN
D1
D0
Q1
Q0
Blococombinatório
(estadoseguinte)
Blococombinatório
(saídas)
CLK
X
RST
Exemplo 2: Um comparador seqüencial (cont.)• Se o circuito não
dispuser de reset exterior, efetuando constantemente comparações, teremos o seguinte diagrama de transição de estados:
00,01,10,11
XY=10
A 00,11
C
B
D
01
E H
F
G I
00,01,10,11
00,01,10,11 00,01,10,11
00,11
10 10 00,11
00,01,11 01 00,11
10
10
01
01
M: Xt-2 Xt-1 Xt N: Y t-2 Y t-1 Y t
MSB: Bit mais significativo
Bit intermédio
LSB: Bit menos significativo
Exemplo 2: Um comparador seqüencial (cont.)• Caso de M=100 e N=101
(MN verdadeiro):
Entrada Y (N)
Relógio (CLK)
Saída (Z)
Entrada X (M)
Estado actual A C F I B
Fim desta comparação
Início da seguinte
00,01,10,11
XY=10
A 00,11
C
B
D
01
E H
F
G I
00,01,10,11
00,01,10,11 00,01,10,11
00,11
10 10 00,11
00,01,11 01 00,11
10
10
01
01
M: Xt-2 Xt-1 Xt N: Y t-2 Y t-1 Y t
MSB: Bit mais significativo
Bit intermédio
LSB: Bit menos significativo
Síntese de máquinas de Mealy• A síntese de máquinas de Mealy segue um conjunto
de passos idêntico ao que consideramos para estes dois exemplos de máquinas de Moore
• As diferenças face às máquinas de Moore existem apenas na etapa de representação formal, onde ...?
• Resta referir que uma mesma máquina de estados pode naturalmente apresentar saídas destes dois tipos (Moore e Mealy)
Projeto com blocos SSI / MSI• Tal como sucedia com os circuitos combinatórios,
também neste caso o procedimento de projeto mais comum na prática consiste em recorrer aos componentes de catálogo já disponíveis, reservando a síntese de circuitos “à medida” aos casos em que isso seja realmente necessário
• Interessa-nos pois conhecer quais os principais tipos de blocos SSI / MSI disponíveis neste domínio
Principais blocos SSI / MSI
• Os principais tipos de blocos SSI / MSI do tipo seqüencial, normalmente disponíveis nos catálogos dos fabricantes de semicondutores, são os seguintes:– Flip-flops (FF)– Travas (latches)– Registradores de deslocamento (shift registers)– Contadores (counters)
Flip-flops(74x74: D)
5
6
9
8
4
3
2
1
10
11
12
13
S
C1
1D
R
S
C2
2D
R
&
H
L
L
Reset assíncrono
Indeterminado (ver nota)
H L
D Q /QCP/R/S
H
H
H
H
H
H
H
H
H
H
H
H
L
L
X
X
X
X
X
X
X
h
l
L
L
M M
L
Set assíncrono
Carrega 1
Carrega 0
Mantém
M = Mantém o estado anterior
X = "tanto faz" (don't care)
H = Nível lógico "alto" (1)
h = O nível H tem que estar presente um"setup time" antes da subida no relógio
L = Nível lógico "baixo" (0)
l = O nível L tem que estar presente um"setup time" antes da subida no relógio
= Subida no relógio
= Não ocorre subida no relógio
Indeterminado = Ambas as saídas estarão em H enquanto /S e /R estiverem em L, mas ficarão em estado indeterminado se /S e /R passarem a H em simultâneo
Entradas Saídas
Modo de operação
FF (cont.)(74x109: JK)
J
CP
/K
/Q
Q
/1Q- 7
1Q- 6
/2Q- 9
2Q- 10
1J- 2
1C- 4
/1K- 3
2J- 14
2C- 12
/2K- 13
/2S
11
/2R
151
/1R
5
/1S
1S
1J
1C
1K
2J
2C
2K
2R
5
2
4
3
1
11
14
12
13
15
6
7
10
9
1R
2S
H
L
L
H L
J Q /QCP/R/S
H
H
H
H
H
H
H
H
/q
H
H
H
L
L
X
X
X
X
X
X
h
h
l
L
L
L
q
Saídas
Reset assíncrono
Comuta (toggle)
Carrega 0
Set assíncrono
Indeterminado (ver nota)
Modo de operação
X
X
/K
l
X
l
h
Entradas
Carrega 1
H H l h
H
q /q
h = O nível H tem que estar presente um"setup time" antes da subida no relógio
H = Nível lógico "alto" (1)
q = a letra pequena indica o estado da saída um "setup time" antes da subida no relógio
l = O nível L tem que estar presente um"setup time" antes da subida no relógio
L = Nível lógico "baixo" (0)
X = "tanto faz" (don't care)
= Subida no relógio
Mantém
Indeterminado = Ambas as saídas estarão em H enquanto /S e /R estiverem em L, mas ficarão em estado indeterminado se /S e /R passarem a H em simultâneo
Registradores74x573 (8-bit latch)
OE1
D02
D13
D24
D35
D79
D57
D46
D68
Q712
Q613
Q514
Q415
Q316
Q217
Q118
Q019
E11
2D2
3
4
5
6
7
8
9
1
11EN1
EN2
1 19
18
17
16
15
14
13
12
L
L
L
L
Entradas
/OE E
L
H
H
H
H
H
L
L
L
Dn
H
l
h
X
X
Dn
L
L
H
H
M
M
Dn
L
L
H
H
M
Z
Z
Habilita e abre as saídas
Habilita e memo-riza as saídas
Mantém
Inibe as saídas
Saídas(Q0 a Q7)
Saídas internas
Modo de operação
h = O nível H tem que estar presente um "setup time" antes da descida no relógio (E)
H = Nível lógico "alto" (1)
L = Nível lógico "baixo" (0)
l = O nível L tem que estar presente um "setup time" antes da descida no relógio (E)
M = Mantém o estado anterior
X = "tanto faz" (don't care)
Z = Alta impedância
= Descida no relógio
Registradores de deslocamento(74x164)
1
2
8
9C1/ ->
R
3
4
5
6
10
11
12
13
1D&
SRG8
MR
9
Dsb2
Q713
Q612
Q511
Q410
Q36
Q25
Q14
Q03
CP8
Dsa1
Q2 Q3Q1Q0DsbDsaCP/MR
H
H
L
Q4 Q5 Q6 Q7
Reset
Entradas Saídas
H
H
x
l
x
l
h
h
X
l
l
h
L
L
L
L
H
L
q0
L L L L L L
Deslocamento
h
q0
q0
q0
q1
q1
q1
q1
q2
q2
q2
q2
q3
q3
q3
q3
q4
q4
q4
q4
q5
q5
q5
q5
q6
q6
q6
q6
L = Nível lógico "baixo" (0)
q = a letra pequena indica o estado da saída um "setup time" antes da subida no relógio
= Subida no relógio
l = O nível L tem que estar presente um"setup time" antes da subida no relógio
X = "tanto faz" (don't care)
H = Nível lógico "alto" (1)
h = O nível H tem que estar presente um"setup time" antes da subida no relógio
Modo de operação
Registradores de deslocamento (74x194)
MR
1
D14
Q213
Q312
CP11
S110
Q114
D25
Q015
D03
S09
DSR2
D36
DSL7
R
15
14
13
12
C4/1->/2<-
SRG4
M03
0
1
1
10
9
11
2
3
4
5
6
7
1,4D
3,4D
3,4D
3,4D
3,4D
2,4D
Dn Q0DSLDSRS0S1/MRCP
X
X
Q1 Q2 Q3
Entradas Saídas
Deslocamentopara a esquerda
Mantém
Reset
Modo de operação
Deslocamentopara a direita
Carga paralela
X X X X X
X
X
X
X
X
X
X
X
XX
X
X
X
L L L L L
L
L
H
H
H
H
H
H
H
H
l
l
l
l
l
l
l
lh
h
h
h
h
h
h
h
dn d0 d1 d2 d3
q0
q1
q1
q1
q2
q2
q2
q0
q0
q3
q3
q1
q1
q2
q2
q3
L = Nível lógico "baixo" (0)
= Subida no relógio
l = O nível L tem que estar presente um"setup time" antes da subida no relógio
H = Nível lógico "alto" (1)
d, q = a letra pequena indica o estado da entrada ou saída, um "setup time" antes da subida no relógio
h = O nível H tem que estar presente um"setup time" antes da subida no relógio
X = "tanto faz" (don't care)
Registradores de deslocamento (74x195)
/K3
D15
Q114
Q015
J2
CP10
Q213
D04
Q312
D26
/Q311
/PE9
D37
/MR1
1,2J
1,2K
/1,2D
/1,2D
SRG4
C2/1->
R
M19
1
10
2
3
4
5
6
7
14
13
12
15
11
Q0 Q1Dn/K/PECP/MR
H
L
Q2 Q3 /Q3
Deslocamento, comutao primeiro andar
Deslocamento, colocao primeiro andar a 0
Reset assíncrono
Deslocamento, colocao primeiro andar a 1
Deslocamento, mantémo primeiro andar
SaídasEntradas
J
H
H
H
H
X X
h
h
h
h
l
h
h
X
X
X
X
X
X
X
X
X
l
l
l
l
h
h
dn
L L L L H
H
L
/q0
q0
q0
q0
q0
q0
q1
q1
q1
q1
q2
q2
q2
q2
/q2
/q2
/q2
/q2
/d3d0 d1 d2 d3
Modo de operação
Carga paralela
H = Nível lógico "alto" (1)
h = O nível H tem que estar presente um "setup time" antes da subida no relógio
L = Nível lógico "baixo" (0)
l = O nível L tem que estar presente um "setup time" antes da subida no relógio
d, q = a letra pequena indica o estado da entrada ou saída, um "setup time" antes da subida no relógio
= Subida no relógio
X = "tanto faz" (don't care)
Contadores(74x93)
2
3
14
1
9
8
11
12
& CT=0
CTR
+
+
DIV2
DIV8
2
0
CT
/CP0
/CP1
MR2
MR1
FF1 FF2 FF3 FF4
Q0 Q1 Q2 Q3
Q
R
CPQ
R
CPQ
R
CPQ
R
CP
H
MR1 MR2
L
H
H
Q0 Q1 Q2 Q3
L L L L
Contagem
Contagem
Contagem
Entradasde reset
Saídas
H
H
L
L
Contadores (74x161)
TC15
Q014
Q113
CP2
Q212
CEP7
D03
MR1
D14
D25
D36
CET10
Q311
PE9
CTR DIV 16
/1,2D
1
9
7
10
2
3
4
5
6
4 CT=15
14
13
12
11
15
R
M1
G3
G4
C2/1,3,4<-
Qn TCDn/PECETCEPCP/MR
H
H
L Reset
H
h
Modo de operação
SaídasEntradas
h
X
X
X
X
X
X
X
X
X
X
X
X X
X
X
X
h h h
h
h
h
l
l
l
l
l
L
L
L
L
L
H
C
qn
qn
(a)
(a)
(a)
Cargaparalela
Contagem
Mantém
H = Nível lógico "alto" (1)
h = O nível H tem que estar presente um"setup time" antes da subida no relógio
l = O nível L tem que estar presente um"setup time" antes da subida no relógio
L = Nível lógico "baixo" (0)
C = Contagem
= Subida no relógio
X = "tanto faz" (don't care)
qn = a letra pequena indica o estado da saída antes da subida no relógio
(a) A saída está em H quando CET estiver em H e ocontador estiver no último estado da contagem (HHHH)
Contadores (74x192)
D11
Q12
Q03
CP
U5
Q26
D015
Q37
D210
TCU
12
PL11
D39
TCD
13C
PD
4
MR14
3D
CTR DIV 10
3
2
6
7
13
12
11
5
4
14
15
1
10
9
C3
2+
1-
R
/2CT=0
/1CT=9
G1
G2
D2D1D0CPU/PLMR
H
H
Q0 Q1 Q2
L
Modo de operação
Q3
SaídasEntradas
D3CPD
Contagem ascendente
Contagem descendente
Reset assíncrono
Carga paralelaL
L
L
L
L
L
L
L
L
L
L
L L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
/TCU /TCD
H
H
H
H
H
H
H
H
H
H
H
L
L
L
H
H
H
H
H
H
H
H
HH
H (2) H
H (3)
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
Qn = Dn
Qn = Dn
Contagemascendente
Contagemdescendente
H = Nível lógico "alto" (1)
L = Nível lógico "baixo" (0)
X = "tanto faz" (don't care)
(2) /TCU = CPU quando se atinge o máximo na contagem ascendente (HLLH)
(3) /TCD = CPD quando se atinge o mínimo na contagem descendente (LLLL)
Contadores (74x192, cont.)
Reset Preset Contagem ascendente Contagem descendente
0 7 9 0 18 0 9 812 7
MR (1)
/PL
D0
D1
D2
D3
CPU (2)
CPD (2)
Q0
Q1
Q2
Q3
/TCU
/TCD
(1)
(2) Quando em contagem ascendente, a entrada de relógio para a contagemdescendente (CPD) deve estar em H; quando em contagem descendente, a entradade relógio para a contagem ascendente (CPU) deve estar em H
O sinal MR sobrepõe-se às entradas de carga, dados e contagem
Exemplo 1: Um detector de seqüência• Pretende-se projetar um circuito que efetue
constantemente a leitura de palavras com 3 bits (valor [0..7]) e produza uma saída que indique quando a palavra lida pertence ao intervalo [2,5]
• O bit mais significativo é primeiro a ser lido e a saída é válida apenas em cada terceiro impulso de relógio
• Pretende-se uma solução baseada no registo de deslocamento 74x195
Exemplo 1: Um detector de seqüência (cont.)
Que alteração haveria no funcionamento do circuito, se as entradas do EX-OR tivessem por engano sido ligadas às saídas QA e QB, em vez de QB e QC?
+5 V
F
X
CLK
74195
J2
K3
A4
B5
C6
D7
CLK10
S/L9
CLR1
QA15
QB14
QC13
QD12
QD11
7486
1
23
Exemplo 2: Um contador como detector de paridade• Pretende-se recorrer ao contador 74x161 para
projectar um circuito que indique quando uma palavra de 4 bits apresenta um número ímpar de bits em 1
+5 V
CLOCK
FX
INI
74161
A3
B4
C5
D6
ENP7
ENT10
CLK2
LOAD9
CLR1
QA14
QB13
QC12
QD11
RCO15
• Considere-se que existe um impulso de reset a preceder cada palavra e que a saída deve estar válida apenas no quarto impulso de relógio
Análise de circuitos seqüenciais síncronos• A análise é uma atividade que surge com freqüência
na prática com circuitos eletrônicos, nomeadamente em situações como as seguintes:– Operações de manutenção– Expansão de funcionalidade (upgrading)– Modificação da funcionalidade
• Apesar da especificidade de cada caso, é possível definir algumas regras gerais a seguir para este fim
Análise de circuitos na forma de Huffman• Este tipo de circuitos é o que decorre da síntese por
recurso a mapas de Karnaugh, podendo a análise destes circuitos ser feita seguindo o percurso oposto ao da síntese:– Obter as equações algébricas a partir do diagrama lógico– Construir a tabela de verdade que especifica o valor das
saídas para cada combinação possível nas entradas– Desenhar o diagrama de transição de estados
Análise de um circuito na forma de Huffman: Exemplo• Pretende-se obter o
diagrama de transição de estados correspondente ao circuito seguinte:
Q1
/Q1
Q0
/Q0
/Q1
Q1
/Q0
Q0
CLK
Estadoactual
Estadoseguinte
X
D1
D0
7408
1
23
7432
1
23
7408
9
108
7432
4
56
7474
D2
CLK3
Q5
Q6
7474
D12
CLK11
Q9
Q8
7404
12
7408
4
56
7408
12
1311
Circuitos na forma de Huffman: Exemplo (cont.)• Equações: D1=/X*/Q0+X*Q0 D0=/X*Q1+X*/Q1
Q1Q0XD1D0
0 0 0 1 0
0 0 1 0 1
0 1 0 0 0
0 1 1 1 1
1 0 0 1 1
1 0 1 0 0
1 1 0 0 1
1 1 1 1 0
001
1
D
C
B
A
0 1
10
• Tabela de verdade e diagrama de estados:
Q1
/Q1
Q0
/Q0
/Q1
Q1
/Q0
Q0
CLK
Estadoactual
Estadoseguinte
X
D1
D0
7408
1
23
7432
1
23
7408
9
108
7432
4
56
7474
D2
CLK3
Q5
Q6
7474
D12
CLK11
Q9
Q8
7404
12
7408
4
56
7408
12
1311
Análise de circuitos com blocos SSI / MSI• A muito menor uniformização do projeto com blocos
SSI / MSI torna mais difícil o estabelecimento de regras para permitir a análise de forma sistemática
• Como regras de ordem geral, podemos ainda assim referir as seguintes:– Identificar e compreender todos os blocos SSI / MSI– Compreender a interacção entre os blocos presentes– Identificar possíveis ciclos de funcionamento
Análise de circuitos com blocos SSI / MSI: Exemplo• Indicar qual a
seqüência de contagem que tem lugar no circuito apresentado
+5 V
CLK
74161
A3
B4
C5
D6
ENP7
ENT10
CLK2
LOAD9
CLR1
QA14
QB13
QC12
QD11
RCO15
74161
A3
B4
C5
D6
ENP7
ENT10
CLK2
LOAD9
CLR1
QA14
QB13
QC12
QD11
RCO15
A testabilidade de circuitos seqüenciais• As razões pelas quais a geração de vetores de teste
para circuitos seqüenciais são bastante mais difíceis do que para circuitos combinatórios são as seguintes:– Nem todas as entradas do bloco combinatório são
entradas primárias– Do mesmo modo, nem todas as saídas são saídas
primárias– A falta pode afetar a determinação do estado seguinte
A testabilidade de circuitos seqüenciais (cont.)• Exemplo: obter
um vetor que detecte a falta X s@0 no circuito apresentado à direita:
+5 V
+5 V
+5 V
Bloco combinatório
Saída para opróximoestado
Entradaprimária
Saídaprimáriadocircuito
X s@0(1/0)1
1
Saída para opróximoestado
X0 0
Y
CLK
F=1/0
A
7432
1
23
7474
D2
CLK3
Q5
Q6
PR
4C
L1
7408
4
56
7474
D12
CLK11
Q9
Q8
PR
10C
L13
7408
1
23
A testabilidade de circuitos seqüenciais (cont.)• Apesar de a determinação do vetor a aplicar nas
entradas do bloco combinatório ser simples, os valores a que chegamos dão-nos apenas, neste caso, a indicação do estado (1,1) que permitiria a detecção da falta
• Resta ainda, portanto, determinar qual a seqüência a aplicar na entrada primária A, de forma a conduzir o circuito até ao estado pretendido
A testabilidade de circuitos seqüenciais (cont.)• A tarefa, para este caso, é relativamente simples:
+5 V
+5 V
+5 V
X s@0(0/0)
1
00
11
Bloco combinatório
Saída para opróximoestado
Saídaprimáriadocircuito
YSaída para opróximoestado
1
1
0
0
1
CLK
F=1
A
7408
1
23
7408
4
56
7474
D2
CLK3
Q5
Q6
PR4
CL1
7474
D12
CLK11
Q9
Q8
PR10
CL13
7432
1
23
F
CLK
A
1
0
0
+5 V
+5 V
+5 V
X s@0(0/0)
0
01
10
Bloco combinatório
Saída para opróximoestado
Saídaprimáriadocircuito
YSaída para opróximoestado
1
0
0
1
1
CLK
F=0
A=1
7408
1
23
7408
4
56
7474
D2
CLK3
Q5
Q6
PR4
CL1
7474
D12
CLK11
Q9
Q8
PR10
CL13
7432
1
23
CLK
A
F
1
1
0
0
+5 V
+5 V
+5 V
X s@0(0/0)
0
11
00
Bloco combinatório
Saída para opróximoestado
Saídaprimáriadocircuito
YSaída para opróximoestado
0
0
1
1
1
CLK
F=1/0
A=1
7408
1
23
7408
4
56
7474
D2
CLK3
Q5
Q6
PR4
CL1
7474
D12
CLK11
Q9
Q8
PR10
CL13
7432
1
23
F
CLK
A
fault-free
X s@0
1/0
1
1
1
A testabilidade de circuitos seqüenciais (cont.)• Repare-se ainda que:
– A simplicidade que encontrámos no exemplo anterior se ficou a dever ao facto de os dois FF estarem ligados como um registo de deslocamento, o que torna trivial forçar a passagem para qualquer estado
– O problema surge quando é necessário determinar a seqüência de transição que nos permita chegar ao estado pretendido, sobretudo naqueles casos em que a própria transição de estados é afetada pela falta considerada
A testabilidade de circuitos seqüenciais (cont.)• Uma falta que afete
o diagrama de transição de estados (como é o caso de Y s@0) ajuda-nos a compreender melhor este aspecto
+5 V
+5 V
+5 V
Bloco combinatório
Saída para opróximoestado
Entradaprimária
Saídaprimáriadocircuito
X s@0(1/0)1
1
Saída para opróximoestado
X0 0
Y
CLK
F=1/0
A
7432
1
23
7474
D2
CLK3
Q5
Q6
PR4
CL1
7408
4
56
7474
D12
CLK11
Q9
Q8
PR10
CL13
7408
1
23
A testabilidade de circuitos seqüenciais (cont.)• Alteração no diagrama de transição de estados:
(qual o novo vetor que detecta Y s@0?)
+5 V
+5 V
+5 V
Bloco combinatório
Saída para opróximoestado
Entradaprimária
Saídaprimáriadocircuito
X s@0(1/0)1
1
Saída para opróximoestado
X0 0
Y
CLK
F=1/0
A
7432
1
23
7474
D2
CLK3
Q5
Q6
PR4
CL1
7408
4
56
7474
D12
CLK11
Q9
Q8
PR10
CL13
7408
1
23
0
1
1
3
2
1
0
0
0
0 1
Q1,Q0=00
1
01
10
11
0,1
3
2
1
0
0,1
Q1,Q0=00
Estados 1 e 3(Q0=1) já nãoestão acessíveis
01
10
11
Q1
Q0
Soluções ad hoc para melhorar a testabilidade• Sendo um conjunto de “regras soltas” de projeto, as
regras ad hoc apresentam como desvantagens principais as seguintes:– Não são necessariamente reutilizáveis, uma vez que cada
projecto tem requisitos e problemas de testabilidade que lhe são específicos
– Não conseguem garantir elevados índices de testabilidade para qualquer tipo de circuito
Soluções ad hoc para a testabilidade: Exemplos• A título de exemplo, podemos referir as seguintes
medidas ad hoc para melhorar a testabilidade de circuitos sequenciais:– Partição de contadores, convertendo um contador de N bits
em K contadores com N/K bits, de forma a tornar mais rápida a progressão até um determinado estado
– Provisão de linhas de set / reset síncronas ou assíncronas– Observação directa de nós internos (por multiplexagem
com saídas primárias ou acrescentando novos pinos)
Métodos estruturados de projeto para a testabilidade• Pretendem proporcionar uma forma sistemática de
forçar a passagem do circuito para qualquer estado pretendido, num número fixo (e reduzido) de ciclos de relógio, qualquer que seja o estado atual e a falta presente no circuito
• O termo estruturados implica que o método seja (quase-) universal e conduza sempre a idênticos níveis de testabilidade (que custos haverá?)
Projeto com varrimento (scan design)• A geração de vectores de
teste pode ser largamente simplificada se cada FF D for precedido por um mux de 2:1, criando aquilo a que se dá a designação de scan FF
+5 V
+5 V
+5 V
+5 V
+5 V
+5 V
2:1 mux
10
2:1 mux
10
2:1 mux
10
Estadoactual Estado
seguinte
Estadoactual
Estadoactual
Estadoseguinte
Estadoseguinte
Modo deTeste
Modo deTeste
Saída série(scan out)
Modo deTeste
Entrada série(scan in)
Relógio(CLOCK)
Modo deTeste
U1B7474
D12
CLK11
Q9
Q8
PR10
CL13
U1A7474
D2
CLK3
Q5
Q6
PR4
CL1
U2A7474
D2
CLK3
Q5
Q6
PR4
CL1
Projeto com varrimento:
• A importância do projeto com varrimento, como metodologia estruturada de projeto para a testabilidade, pode ser melhor aferida se considerarmos que no projeto sem varrimento:– Parte das entradas do circuito combinatório não são
diretamente controláveis, por estarem ligadas às saídas dos FF (nós que definem o estado atual)
– Parte das suas saídas não são diretamente observáveis, por estarem ligadas às entradas dos FF (estado seguinte)
A questão da controlabilidade• Consideremos que se
pretende passar para o estado 110, partindo do estado 100 e sendo o estado seguinte (para as condições consideradas) 001
+5 V
+5 V
+5 V
+5 V
+5 V
+5 V
2:1 mux
Modo deTeste
10
2:1 mux
10
2:1 mux
10
Estadoactual Próximo
estado
Próximoestado
Próximoestado
Estadoactual
Estadoactual
1
0
0
0
1
Modo deTeste
Modo deTeste
0
Saídasérie
RelógioEntradasérie
Modo deTeste
0 1
1
U1A7474
D2
CLK3
Q5
Q6
PR4
CL1
U1B7474
D12
CLK11
Q9
Q8
PR10
CL13
U2A7474
D2
CLK3
Q5
Q6
PR4
CL1
A questão da controlabilidade (cont.)
+5 V
+5 V
+5 V
+5 V
+5 V
+5 V
0
1
1
02:1 mux
?
?
1
1
0
2:1 mux
0
?
2:1 mux
0
Estadoactual
Estadoactual
Estadoactual
Modo deTeste
Modo deTeste
Modo deTeste
Próximoestado
Próximoestado
Próximoestado
Saídasérie
RelógioEntradasérie
Modo deTeste
1 1
0
U2A7474
D2
CLK3
Q5
Q6
PR4
CL1
U1A7474
D2
CLK3
Q5
Q6
PR4
CL1
U1B7474
D12
CLK11
Q9
Q8
PR10
CL13
+5 V
+5 V
+5 V
+5 V
+5 V
+5 V
0
1
1
02:1 mux
?
?
1
1
1
2:1 mux
0
?
2:1 mux
0
Estadoactual
Estadoactual
Estadoactual
Modo deTeste
Modo deTeste
Modo deTeste
Próximoestado
Próximoestado
Próximoestado
Saídasérie
RelógioEntradasérie
Modo deTeste
1 1
0
U2A7474
D2
CLK3
Q5
Q6
PR4
CL1
U1A7474
D2
CLK3
Q5
Q6
PR4
CL1
U1B7474
D12
CLK11
Q9
Q8
PR10
CL13
A questão da controlabilidade (cont.)
+5 V
+5 V
+5 V
+5 V
+5 V
+5 V
1
1
1
02:1 mux
?
?
1
0
1
2:1 mux
0
?
2:1 mux
0
Estadoactual
Estadoactual
Estadoactual
Modo deTeste
Modo deTeste
Modo deTeste
Próximoestado
Próximoestado
Próximoestado
Saídasérie
RelógioEntradasérie
Modo deTeste
1 0
1
U2A7474
D2
CLK3
Q5
Q6
PR4
CL1
U1A7474
D2
CLK3
Q5
Q6
PR4
CL1
U1B7474
D12
CLK11
Q9
Q8
PR10
CL13
+5 V
+5 V
+5 V
+5 V
+5 V
+5 V
2:1 mux
Modo deTeste
10
2:1 mux
10
2:1 mux
10
Estadoactual Próximo
estado
Próximoestado
Próximoestado
Estadoactual
Estadoactual
1
1
0
?
?
Modo deTeste
Modo deTeste
?
Saídasérie
RelógioEntradasérie
Modo deTeste
0 X
1
U1A7474
D2
CLK3
Q5
Q6
PR4
CL1
U1B7474
D12
CLK11
Q9
Q8
PR10
CL13
U2A7474
D2
CLK3
Q5
Q6
PR4
CL1
A questão da observabilidade• Consideremos que se
pretende observar o valor dos nós que definem o estado seguinte, para o caso anteriormente considerado
+5 V
+5 V
+5 V
+5 V
+5 V
+5 V
2:1 mux
Modo deTeste
10
2:1 mux
10
2:1 mux
10
Estadoactual Próximo
estado
Próximoestado
Próximoestado
Estadoactual
Estadoactual
1
0
0
0
1
Modo deTeste
Modo deTeste
0
Saídasérie
RelógioEntradasérie
Modo deTeste
0 1
1
U1A7474
D2
CLK3
Q5
Q6
PR4
CL1
U1B7474
D12
CLK11
Q9
Q8
PR10
CL13
U2A7474
D2
CLK3
Q5
Q6
PR4
CL1
A questão da observabilidade (cont.)
+5 V
+5 V
+5 V
+5 V
+5 V
+5 V
2:1 mux
Modo deTeste
10
2:1 mux
10
2:1 mux
10
Estadoactual Próximo
estado
Próximoestado
Próximoestado
Estadoactual
Estadoactual
0
0
1
?
?
Modo deTeste
Modo deTeste
?
Saídasérie
Entradasérie
Modo deTeste
0 X
0
Relógio
U1A7474
D2
CLK3
Q5
Q6
PR4
CL1
U1B7474
D12
CLK11
Q9
Q8
PR10
CL13
U2A7474
D2
CLK3
Q5
Q6
PR4
CL1
+5 V
+5 V
+5 V
+5 V
+5 V
+5 V
0
1
1
02:1 mux
?
?
1
X
1
2:1 mux
0
?
2:1 mux
0
Estadoactual
Estadoactual
Estadoactual
Modo deTeste
Modo deTeste
Modo deTeste
Próximoestado
Próximoestado
Próximoestado
Saídasérie
RelógioEntradasérie
Modo deTeste
1 X
0
U2A7474
D2
CLK3
Q5
Q6
PR4
CL1
U1A7474
D2
CLK3
Q5
Q6
PR4
CL1
U1B7474
D12
CLK11
Q9
Q8
PR10
CL13
A questão da observabilidade (cont.)
+5 V
+5 V
+5 V
+5 V
+5 V
+5 V
1
1
1
02:1 mux
?
?
1
X
X
2:1 mux
0
?
2:1 mux
0
Estadoactual
Estadoactual
Estadoactual
Modo deTeste
Modo deTeste
Modo deTeste
Próximoestado
Próximoestado
Próximoestado
Saídasérie
RelógioEntradasérie
Modo deTeste
1 X
1
U2A7474
D2
CLK3
Q5
Q6
PR4
CL1
U1A7474
D2
CLK3
Q5
Q6
PR4
CL1
U1B7474
D12
CLK11
Q9
Q8
PR10
CL13
+5 V
+5 V
+5 V
+5 V
+5 V
+5 V
2:1 mux
Modo deTeste
10
2:1 mux
10
2:1 mux
10
Estadoactual Próximo
estado
Próximoestado
Próximoestado
Estadoactual
Estadoactual
1
X
X
?
?
Modo deTeste
Modo deTeste
?
Saídasérie
RelógioEntradasérie
Modo deTeste
0 X
1
U1A7474
D2
CLK3
Q5
Q6
PR4
CL1
U1B7474
D12
CLK11
Q9
Q8
PR10
CL13
U2A7474
D2
CLK3
Q5
Q6
PR4
CL1
Resumo: Projeto para a testabilidade• As técnicas de projeto para a testabilidade eliminam
(sob o ponto de vista das ferramentas para a geração de vetores) a natureza seqüencial do circuito, mas...– Os mux de 2:1 impõem maiores tempos de propagação,
aumentam a área de silício e conduzem eventualmente a mais pinos
– Os projetistas deixam de ter liberdade para escolher quaisquer soluções que achem mais adequadas (por exemplo, não são admissíveis estruturas assíncronas)
Conclusão
• Objetivo principal do capítulo: Concluir os conhecimentos básicos sobre o projeto de sistemas digitais (combinatórios e seqüenciais)
• Pistas para a continuação do estudo:– Circuitos seqüenciais assíncronos– Modelação lógica com maiores níveis de abstração e
síntese automática