Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos sequenciais síncronos - 1
Circuitos sequenciais
síncronos
• Organização:
– Conceitos básicos e métodos de representação
– Síntese de circuitos sequenciais síncronos
– Projecto com blocos SSI / MSI
– Análise de circuitos sequenciais síncronos
– Projecto e teste
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos sequenciais síncronos - 2
Sequenciais 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 sequenciais as
saídas dependem também do valor que as entradas
tiveram em instantes anteriores
• Podemos portanto afirmar que os circuitos
sequenciais possuem memória, onde armazenam
uma informação interna de estado
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos sequenciais síncronos - 3
Circuitos sequenciais
síncronos
• Os circuitos sequenciais dividem-se essencialmente
em duas grandes classes:
– Os circuitos sequenciais síncronos, cujo funcionamento é
cadenciado por um sinal periódico de relógio e que são
aqueles que directamente nos interessam
– Os circuitos sequenciais 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
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos sequenciais síncronos - 4
Composição de um circuito
sequencial
• A necessidade de armazenar a informação de estado
faz com que os circuitos sequenciais 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 actual e do valor das entradas exteriores:
– O bloco que determina qual o estado seguinte
– O bloco que determina o valor das saídas exteriores
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos sequenciais síncronos - 5
Modelo de Huffman
CLK
X Z
D1
D0
Q1
Q0
Circuito
combinatório
Estado
actual
Estado
seguinte
Bloco que determina
o estado seguinte:
CLK
X Z
D1
D0
Q1
Q0
Circuito
combinatório
Estado
actual
Estado
seguinte
Bloco que determina
as saídas exteriores:
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos sequenciais síncronos - 6
Formas básicas de
representação
• Consideraremos as seguintes alternativas principais
para a representação de circuitos sequenciais:
– 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
Entradas
exteriores
Saídas
exteriores
Relógio
(CLK)
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos sequenciais síncronos - 7
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 actual e pelo valor das entradas, quando
ocorre uma transição activa 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
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos sequenciais síncronos - 8
Interpretação do diagrama
• Quando o circuito se encontra no
estado A, sendo a entrada exterior
(X) 0, a próxima transição activa no
sinal de relógio provocará a
passagem para o estado A
(mantém-se o estado actual); 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
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos sequenciais síncronos - 9
O conceito de entrada do
circuito sequencial
• Exemplo para a sequê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
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos sequenciais síncronos - 10
Formas de onda nas
entradas
• Uma vez que o que é importante é o valor da entrada
no momento em que ocorre a transição activa 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
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos sequenciais síncronos - 11
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
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos sequenciais síncronos - 12
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?
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos sequenciais síncronos - 13
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
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos sequenciais síncronos - 14
A implementação das
variáveis de estado
• As variáveis de estado são normalmente
implementadas por recurso a circuitos bi-está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 frequência)
– FF do tipo J-K
– FF do tipo T
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos sequenciais síncronos - 15
Os FF do tipo D
• Num FF do tipo D, a saída assume o valor da entrada
por cada transição activa no sinal de relógio
• Num FF deste tipo, o estado actual (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
Q
6
Q
5
CLK
3
D
2
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos sequenciais síncronos - 16
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
Q
6
Q
7
K
1
CLK
5
J
4
correspondência
que existe neste
caso entre S,
NS, J, K e Q?)
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos sequenciais síncronos - 17
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
CLK
Q
Q
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos sequenciais síncronos - 18
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
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos sequenciais síncronos - 19
Máquinas de Moore e
máquinas de Mealy
• Nas máquinas de estado (circuitos sequenciais com
um número finito de estados) do tipo Moore, as
saídas dependem apenas do estado actual 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 ...?
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos sequenciais síncronos - 20
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ídas
exteriores)
D1
D0
Q1
Q0
Circuito
combinatório
(geração do
estado seguinte)
Estado
seguinte
Estado
actual Circuito
combinatório
(geração das
saídas)
CLK
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos sequenciais síncronos - 21
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 sequência
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos sequenciais síncronos - 22
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 sequê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).
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos sequenciais síncronos - 23
Exemplo 2: Um votador
sequencial
• 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)
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos sequenciais síncronos - 24
Exemplo 2: Um votador
sequencial (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 a
saída está em 1)
- E: Estado onde
já foram lidos
dois 1 (e
portanto a saída
está em 1).
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos sequenciais síncronos - 25
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
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos sequenciais síncronos - 26
Exemplo 1: Um detector de
duplas sequê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 sequência
101 (representa-se à esquerda o primeiro bit lido)
– Sequências sobrepostas devem ser consideradas válidas
Y
Z
Relógio (CLK)
X
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos sequenciais síncronos - 27
Exemplo 1: Um detector de
duplas sequê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
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos sequenciais síncronos - 28
Exemplo 1: Um detector de
duplas sequê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?
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos sequenciais síncronos - 29
Exemplo 1: Um detector de
duplas sequê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
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos sequenciais síncronos - 30
Exemplo 1: Um detector de
duplas sequê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 1
Z=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
D0
Y
/Y /Y
/X X
D0=X*Y
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos sequenciais síncronos - 31
Exemplo 1: Um detector de
duplas sequências (cont.)
• Diagrama lógico
correspondente à
soma mínima
obtida:
Entrada Y
Entrada X
CLK
Saída
Q1
Q0
/Q0
/Q0
Q0
Q1
D0
D1
7408
4
5
6
7404
3
4
7474
D
2
CLK
3
Q
5
Q
6
7421
1
2
4
5
6
7411
1
2
13
12
7408
1
2
3
7404
1
2
7432
1
2
3
7474
D
12
CLK
11
Q
9
Q
8
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos sequenciais síncronos - 32
Exemplo 2: Um comparador
sequencial
• 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 efectuar 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 efectuada bit a bit,
com início pelo bit mais significativo
Y
Z
Relógio (CLK)
X
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos sequenciais síncronos - 33
Exemplo 2: Um comparador
sequencial (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?
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos sequenciais síncronos - 34
Exemplo 2: Um comparador
sequencial (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
A
00,11
C E
B
D
reset 00,11
10
00,01,10,11
10
10
01 00,01,11
M: Xt-2 Xt-1 Xt
N: Yt-2 Yt-1 Yt
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos sequenciais síncronos - 35
Exemplo 2: Um comparador
sequencial (cont.)
• O sinal de
reset exterior:
Reinicialização
Relógio (CLK)
>> estado A
Compara o MSB
Z = M≤N está válida (e o estado é B ou D)
(...)
(...)
(...)
Z = M (menor
ou igual a) N
D1
D0
Reinicialização
(...)
(...)
(...)
(...)
(...)
(...)
(...)
(...)
(...)
Y
Z = M≤N
Relógio
(CLK)
X
Reinicialização
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos sequenciais síncronos - 36
Exemplo 2: Um comparador
sequencial (cont.)
• A implementação do sinal de reset poderia também
ser feita através de um pino específico dos FF-D:
Y
Z = M≤N
D1
D0
Q1
Q0
Bloco
combinatório
(estado
seguinte)
Bloco
combinatório
(saídas)
CLK
X
RST
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos sequenciais síncronos - 37
Exemplo 2: Um comparador
sequencial (cont.)
• Se o circuito não
dispuser de reset
exterior, efectuando
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: Yt-2 Yt-1 Yt
MSB: Bit mais
significativo
Bit
intermédio
LSB: Bit menos
significativo
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos sequenciais síncronos - 38
Exemplo 2: Um comparador
sequencial (cont.)
• Caso de M=100 e N=101
(M≤N 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: Yt-2 Yt-1 Yt
MSB: Bit mais
significativo
Bit
intermédio
LSB: Bit menos
significativo
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos sequenciais síncronos - 39
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)
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos sequenciais síncronos - 40
Projecto com blocos SSI /
MSI
• Tal como sucedia com os circuitos combinatórios,
também neste caso o procedimento de projecto 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
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos sequenciais síncronos - 41
Principais blocos SSI / MSI
• Os principais tipos de blocos SSI / MSI do tipo
sequencial, normalmente disponíveis nos catálogos
dos fabricantes de semicondutores, são os seguintes:
– Flip-flops (FF)
– Registos (latches)
– Registos de deslocamento (shift registers)
– Contadores (counters)
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos sequenciais síncronos - 42
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 /Q
CP
/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
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos sequenciais síncronos - 43
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
15
1
/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 /Q
CP
/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
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos sequenciais síncronos - 44
Registos
74x573 (8-bit latch)
OE
1
D0
2
D1
3
D2
4
D3
5
D7
9
D5
7
D4
6
D6
8
Q7
12
Q6
13
Q5
14
Q4
15
Q3
16
Q2
17
Q1
18
Q0
19
E
11
2D
2
3
4
5
6
7
8
9
1
11
EN1
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
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos sequenciais síncronos - 45
Registos de deslocamento
(74x164)
1
2
8
9
C1/ ->
R
3
4
5
6
10
11
12
13
1D
&
SRG8
MR
9
Dsb
2
Q7
13
Q6
12
Q5
11
Q4
10
Q3
6
Q2
5
Q1
4
Q0
3
CP
8
Dsa
1
Q2 Q3
Q1
Q0
Dsb
Dsa
CP
/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
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos sequenciais síncronos - 46
Registos de deslocamento
(74x194)
MR
1
D1
4
Q2
13
Q3
12
CP
11
S1
10
Q1
14
D2
5
Q0
15
D0
3
S0
9
DSR
2
D3
6
DSL
7
R
15
14
13
12
C4/1->/2<-
SRG4
M
0
3
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 Q0
DSL
DSR
S0
S1
/MR
CP
X
X
Q1 Q2 Q3
Entradas Saídas
Deslocamento
para a esquerda
Mantém
Reset
Modo de
operação
Deslocamento
para a direita
Carga paralela
X X X X X
X
X
X
X
X
X
X
X
X
X
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
l
h
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)
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos sequenciais síncronos - 47
Registos de deslocamento
(74x195)
/K
3
D1
5
Q1
14
Q0
15
J
2
CP
10
Q2
13
D0
4
Q3
12
D2
6
/Q3
11
/PE
9
D3
7
/MR
1
1,2J
1,2K
/1,2D
/1,2D
SRG4
C2/1->
R
M1
9
1
10
2
3
4
5
6
7
14
13
12
15
11
Q0 Q1
Dn
/K
/PE
CP
/MR
H
L
Q2 Q3 /Q3
Deslocamento, comuta
o primeiro andar
Deslocamento, coloca
o primeiro andar a 0
Reset assíncrono
Deslocamento, coloca
o primeiro andar a 1
Deslocamento, mantém
o primeiro andar
Saídas
Entradas
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
/d3
d0 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)
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos sequenciais síncronos - 48
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
CP
Q
R
CP
Q
R
CP
Q
R
CP
H
MR1 MR2
L
H
H
Q0 Q1 Q2 Q3
L L L L
Contagem
Contagem
Contagem
Entradas
de reset
Saídas
H
H
L
L
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos sequenciais síncronos - 49
Contadores
(74x161)
TC
15
Q0
14
Q1
13
CP
2
Q2
12
CEP
7
D0
3
MR
1
D1
4
D2
5
D3
6
CET
10
Q3
11
PE
9
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 TC
Dn
/PE
CET
CEP
CP
/MR
H
H
L Reset
H
h
Modo de
operação
Saídas
Entradas
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)
Carga
paralela
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 o
contador estiver no último estado da contagem (HHHH)
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos sequenciais síncronos - 50
Contadores
(74x192)
D1
1
Q1
2
Q0
3
CPU
5
Q2
6
D0
15
Q3
7
D2
10
TCU
12
PL
11
D3
9
TCD
13
CPD
4
MR
14
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
D2
D1
D0
CPU
/PL
MR
H
H
Q0 Q1 Q2
L
Modo de
operação
Q3
Saídas
Entradas
D3
CPD
Contagem ascendente
Contagem descendente
Reset assíncrono
Carga paralela
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
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
H
H
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
Contagem
ascendente
Contagem
descendente
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)
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos sequenciais síncronos - 51
Contadores (74x192, cont.)
Reset Preset Contagem ascendente Contagem descendente
0 7 9 0 1
8 0 9 8
1
2 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 contagem
descendente (CPD) deve estar em H; quando em contagem descendente, a entrada
de relógio para a contagem ascendente (CPU) deve estar em H
O sinal MR sobrepõe-se às entradas de carga, dados e contagem
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos sequenciais síncronos - 52
Exemplo 1: Um detector de
sequência
• Pretende-se projectar um circuito que efectue
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
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos sequenciais síncronos - 53
Exemplo 1: Um detector de
sequê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
J
2
K
3
A
4
B
5
C
6
D
7
CLK
10
S/L
9
CLR
1
QA
15
QB
14
QC
13
QD
12
QD
11
7486
1
2
3
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos sequenciais síncronos - 54
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
F
X
INI
74161
A
3
B
4
C
5
D
6
ENP
7
ENT
10
CLK
2
LOAD
9
CLR
1
QA
14
QB
13
QC
12
QD
11
RCO
15
• 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
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos sequenciais síncronos - 55
Análise de circuitos
sequenciais síncronos
• A análise é uma actividade que surge com frequência
na prática com circuitos electró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
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos sequenciais síncronos - 56
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
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos sequenciais síncronos - 57
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
Estado
actual
Estado
seguinte
X
D1
D0
7408
1
2
3
7432
1
2
3
7408
9
10
8
7432
4
5
6
7474
D
2
CLK
3
Q
5
Q
6
7474
D
12
CLK
11
Q
9
Q
8
7404
1
2
7408
4
5
6
7408
12
13
11
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos sequenciais síncronos - 58
Circuitos na forma de
Huffman: Exemplo (cont.)
• Equações: D1=/X*/Q0+X*Q0 D0=/X*Q1+X*/Q1
Q1 Q0 X D1 D0
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
0
0
1
1
D
C
B
A
0 1
1
0
• Tabela de verdade e
diagrama de estados:
Q1
/Q1
Q0
/Q0
/Q1
Q1
/Q0
Q0
CLK
Estado
actual
Estado
seguinte
X
D1
D0
7408
1
2
3
7432
1
2
3
7408
9
10
8
7432
4
5
6
7474
D
2
CLK
3
Q
5
Q
6
7474
D
12
CLK
11
Q
9
Q
8
7404
1
2
7408
4
5
6
7408
12
13
11
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos sequenciais síncronos - 59
Análise de circuitos com
blocos SSI / MSI
• A muito menor uniformização do projecto 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
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos sequenciais síncronos - 60
Análise de circuitos com
blocos SSI / MSI: Exemplo
• Indicar qual a
sequência de
contagem que
tem lugar no
circuito
apresentado
+5 V
CLK
74161
A
3
B
4
C
5
D
6
ENP
7
ENT
10
CLK
2
LOAD
9
CLR
1
QA
14
QB
13
QC
12
QD
11
RCO
15
74161
A
3
B
4
C
5
D
6
ENP
7
ENT
10
CLK
2
LOAD
9
CLR
1
QA
14
QB
13
QC
12
QD
11
RCO
15
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos sequenciais síncronos - 61
A testabilidade de circuitos
sequenciais
• As razões pelas quais a geração de vectores de teste
para circuitos sequenciais 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 afectar a determinação do estado seguinte
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos sequenciais síncronos - 62
A testabilidade de circuitos
sequenciais (cont.)
• Exemplo: obter
um vector que
detecte a falta X
s@0 no circuito
apresentado à
direita:
+5 V
+5 V
+5 V
Bloco combinatório
Saída para o
próximo
estado
Entrada
primária
Saída
primária
do
circuito
X s@0
(1/0)
1
1
Saída para o
próximo
estado
X
0 0
Y
CLK
F=1/0
A
7432
1
2
3
7474
D
2
CLK
3
Q
5
Q
6
PR
4
CL
1
7408
4
5
6
7474
D
12
CLK
11
Q
9
Q
8
PR
10
CL
13
7408
1
2
3
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos sequenciais síncronos - 63
A testabilidade de circuitos
sequenciais (cont.)
• Apesar de a determinação do vector 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 sequência a
aplicar na entrada primária A, de forma a conduzir o
circuito até ao estado pretendido
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos sequenciais síncronos - 64
A testabilidade de circuitos
sequenciais (cont.)
• A tarefa, para este caso, é relativamente simples:
+5 V
+5 V
+5 V
X s@0
(0/0)
1
0
0
1
1
Bloco combinatório
Saída para o
próximo
estado
Saída
primária
do
circuito
Y
Saída para o
próximo
estado
1
1
0
0
1
CLK
F=1
A
7408
1
2
3
7408
4
5
6
7474
D
2
CLK
3
Q
5
Q
6
PR
4
CL
1
7474
D
12
CLK
11
Q
9
Q
8
PR
10
CL
13
7432
1
2
3
F
CLK
A
1
0
0
+5 V
+5 V
+5 V
X s@0
(0/0)
0
0
1
1
0
Bloco combinatório
Saída para o
próximo
estado
Saída
primária
do
circuito
Y
Saída para o
próximo
estado
1
0
0
1
1
CLK
F=0
A=1
7408
1
2
3
7408
4
5
6
7474
D
2
CLK
3
Q
5
Q
6
PR
4
CL
1
7474
D
12
CLK
11
Q
9
Q
8
PR
10
CL
13
7432
1
2
3
CLK
A
F
1
1
0
0
+5 V
+5 V
+5 V
X s@0
(0/0)
0
1
1
0
0
Bloco combinatório
Saída para o
próximo
estado
Saída
primária
do
circuito
Y
Saída para o
próximo
estado
0
0
1
1
1
CLK
F=1/0
A=1
7408
1
2
3
7408
4
5
6
7474
D
2
CLK
3
Q
5
Q
6
PR
4
CL
1
7474
D
12
CLK
11
Q
9
Q
8
PR
10
CL
13
7432
1
2
3
F
CLK
A
fault-free
X s@0
1/0
1
1
1
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos sequenciais síncronos - 65
A testabilidade de circuitos
sequenciais (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
sequência de transição que nos permita chegar ao estado
pretendido, sobretudo naqueles casos em que a própria
transição de estados é afectada pela falta considerada
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos sequenciais síncronos - 66
A testabilidade de circuitos
sequenciais (cont.)
• Uma falta que afecte
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 o
próximo
estado
Entrada
primária
Saída
primária
do
circuito
X s@0
(1/0)
1
1
Saída para o
próximo
estado
X
0 0
Y
CLK
F=1/0
A
7432
1
2
3
7474
D
2
CLK
3
Q
5
Q
6
PR
4
CL
1
7408
4
5
6
7474
D
12
CLK
11
Q
9
Q
8
PR
10
CL
13
7408
1
2
3
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos sequenciais síncronos - 67
A testabilidade de circuitos
sequenciais (cont.)
• Alteração no diagrama de transição de estados:
(qual o novo vector que detecta Y s@0?)
+5 V
+5 V
+5 V
Bloco combinatório
Saída para o
próximo
estado
Entrada
primária
Saída
primária
do
circuito
X s@0
(1/0)
1
1
Saída para o
próximo
estado
X
0 0
Y
CLK
F=1/0
A
7432
1
2
3
7474
D
2
CLK
3
Q
5
Q
6
PR
4
CL
1
7408
4
5
6
7474
D
12
CLK
11
Q
9
Q
8
PR
10
CL
13
7408
1
2
3
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ão
estão acessíveis
01
10
11
Q1
Q0
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos sequenciais síncronos - 68
Soluções ad hoc para
melhorar a testabilidade
• Sendo um conjunto de “regras soltas” de projecto, 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
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos sequenciais síncronos - 69
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)
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos sequenciais síncronos - 70
Métodos estruturados de
projecto 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 actual 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á?)
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos sequenciais síncronos - 71
Projecto 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
1
0
2:1 mux
1
0
2:1 mux
1
0
Estado
actual Estado
seguinte
Estado
actual
Estado
actual
Estado
seguinte
Estado
seguinte
Modo de
Teste
Modo de
Teste
Saída série
(scan out)
Modo de
Teste
Entrada série
(scan in)
Relógio
(CLOCK)
Modo de
Teste
U1B
7474
D
12
CLK
11
Q
9
Q
8
PR
10
CL
13
U1A
7474
D
2
CLK
3
Q
5
Q
6
PR
4
CL
1
U2A
7474
D
2
CLK
3
Q
5
Q
6
PR
4
CL
1
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos sequenciais síncronos - 72
Projecto com varrimento:
• A importância do projecto com varrimento, como
metodologia estruturada de projecto para a
testabilidade, pode ser melhor aferida se
considerarmos que no projecto sem varrimento:
– Parte das entradas do circuito combinatório não são
directamente controláveis, por estarem ligadas às saídas
dos FF (nós que definem o estado actual)
– Parte das suas saídas não são directamente observáveis,
por estarem ligadas às entradas dos FF (estado seguinte)
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos sequenciais síncronos - 73
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 de
Teste
1
0
2:1 mux
1
0
2:1 mux
1
0
Estado
actual Próximo
estado
Próximo
estado
Próximo
estado
Estado
actual
Estado
actual
1
0
0
0
1
Modo de
Teste
Modo de
Teste
0
Saída
série
Relógio
Entrada
série
Modo de
Teste
0 1
1
U1A
7474
D
2
CLK
3
Q
5
Q
6
PR
4
CL
1
U1B
7474
D
12
CLK
11
Q
9
Q
8
PR
10
CL
13
U2A
7474
D
2
CLK
3
Q
5
Q
6
PR
4
CL
1
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos sequenciais síncronos - 74
A questão da
controlabilidade (cont.)
+5 V
+5 V
+5 V
+5 V
+5 V
+5 V
0
1
1
0
2:1 mux
?
?
1
1
0
2:1 mux
0
?
2:1 mux
0
Estado
actual
Estado
actual
Estado
actual
Modo de
Teste
Modo de
Teste
Modo de
Teste
Próximo
estado
Próximo
estado
Próximo
estado
Saída
série
Relógio
Entrada
série
Modo de
Teste
1 1
0
U2A
7474
D
2
CLK
3
Q
5
Q
6
PR
4
CL
1
U1A
7474
D
2
CLK
3
Q
5
Q
6
PR
4
CL
1
U1B
7474
D
12
CLK
11
Q
9
Q
8
PR
10
CL
13
+5 V
+5 V
+5 V
+5 V
+5 V
+5 V
0
1
1
0
2:1 mux
?
?
1
1
1
2:1 mux
0
?
2:1 mux
0
Estado
actual
Estado
actual
Estado
actual
Modo de
Teste
Modo de
Teste
Modo de
Teste
Próximo
estado
Próximo
estado
Próximo
estado
Saída
série
Relógio
Entrada
série
Modo de
Teste
1 1
0
U2A
7474
D
2
CLK
3
Q
5
Q
6
PR
4
CL
1
U1A
7474
D
2
CLK
3
Q
5
Q
6
PR
4
CL
1
U1B
7474
D
12
CLK
11
Q
9
Q
8
PR
10
CL
13
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos sequenciais síncronos - 75
A questão da
controlabilidade (cont.)
+5 V
+5 V
+5 V
+5 V
+5 V
+5 V
1
1
1
0
2:1 mux
?
?
1
0
1
2:1 mux
0
?
2:1 mux
0
Estado
actual
Estado
actual
Estado
actual
Modo de
Teste
Modo de
Teste
Modo de
Teste
Próximo
estado
Próximo
estado
Próximo
estado
Saída
série
Relógio
Entrada
série
Modo de
Teste
1 0
1
U2A
7474
D
2
CLK
3
Q
5
Q
6
PR
4
CL
1
U1A
7474
D
2
CLK
3
Q
5
Q
6
PR
4
CL
1
U1B
7474
D
12
CLK
11
Q
9
Q
8
PR
10
CL
13
+5 V
+5 V
+5 V
+5 V
+5 V
+5 V
2:1 mux
Modo de
Teste
1
0
2:1 mux
1
0
2:1 mux
1
0
Estado
actual Próximo
estado
Próximo
estado
Próximo
estado
Estado
actual
Estado
actual
1
1
0
?
?
Modo de
Teste
Modo de
Teste
?
Saída
série
Relógio
Entrada
série
Modo de
Teste
0 X
1
U1A
7474
D
2
CLK
3
Q
5
Q
6
PR
4
CL
1
U1B
7474
D
12
CLK
11
Q
9
Q
8
PR
10
CL
13
U2A
7474
D
2
CLK
3
Q
5
Q
6
PR
4
CL
1
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos sequenciais síncronos - 76
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 de
Teste
1
0
2:1 mux
1
0
2:1 mux
1
0
Estado
actual Próximo
estado
Próximo
estado
Próximo
estado
Estado
actual
Estado
actual
1
0
0
0
1
Modo de
Teste
Modo de
Teste
0
Saída
série
Relógio
Entrada
série
Modo de
Teste
0 1
1
U1A
7474
D
2
CLK
3
Q
5
Q
6
PR
4
CL
1
U1B
7474
D
12
CLK
11
Q
9
Q
8
PR
10
CL
13
U2A
7474
D
2
CLK
3
Q
5
Q
6
PR
4
CL
1
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos sequenciais síncronos - 77
A questão da
observabilidade (cont.)
+5 V
+5 V
+5 V
+5 V
+5 V
+5 V
2:1 mux
Modo de
Teste
1
0
2:1 mux
1
0
2:1 mux
1
0
Estado
actual Próximo
estado
Próximo
estado
Próximo
estado
Estado
actual
Estado
actual
0
0
1
?
?
Modo de
Teste
Modo de
Teste
?
Saída
série
Entrada
série
Modo de
Teste
0 X
0
Relógio
U1A
7474
D
2
CLK
3
Q
5
Q
6
PR
4
CL
1
U1B
7474
D
12
CLK
11
Q
9
Q
8
PR
10
CL
13
U2A
7474
D
2
CLK
3
Q
5
Q
6
PR
4
CL
1
+5 V
+5 V
+5 V
+5 V
+5 V
+5 V
0
1
1
0
2:1 mux
?
?
1
X
1
2:1 mux
0
?
2:1 mux
0
Estado
actual
Estado
actual
Estado
actual
Modo de
Teste
Modo de
Teste
Modo de
Teste
Próximo
estado
Próximo
estado
Próximo
estado
Saída
série
Relógio
Entrada
série
Modo de
Teste
1 X
0
U2A
7474
D
2
CLK
3
Q
5
Q
6
PR
4
CL
1
U1A
7474
D
2
CLK
3
Q
5
Q
6
PR
4
CL
1
U1B
7474
D
12
CLK
11
Q
9
Q
8
PR
10
CL
13
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos sequenciais síncronos - 78
A questão da
observabilidade (cont.)
+5 V
+5 V
+5 V
+5 V
+5 V
+5 V
1
1
1
0
2:1 mux
?
?
1
X
X
2:1 mux
0
?
2:1 mux
0
Estado
actual
Estado
actual
Estado
actual
Modo de
Teste
Modo de
Teste
Modo de
Teste
Próximo
estado
Próximo
estado
Próximo
estado
Saída
série
Relógio
Entrada
série
Modo de
Teste
1 X
1
U2A
7474
D
2
CLK
3
Q
5
Q
6
PR
4
CL
1
U1A
7474
D
2
CLK
3
Q
5
Q
6
PR
4
CL
1
U1B
7474
D
12
CLK
11
Q
9
Q
8
PR
10
CL
13
+5 V
+5 V
+5 V
+5 V
+5 V
+5 V
2:1 mux
Modo de
Teste
1
0
2:1 mux
1
0
2:1 mux
1
0
Estado
actual Próximo
estado
Próximo
estado
Próximo
estado
Estado
actual
Estado
actual
1
X
X
?
?
Modo de
Teste
Modo de
Teste
?
Saída
série
Relógio
Entrada
série
Modo de
Teste
0 X
1
U1A
7474
D
2
CLK
3
Q
5
Q
6
PR
4
CL
1
U1B
7474
D
12
CLK
11
Q
9
Q
8
PR
10
CL
13
U2A
7474
D
2
CLK
3
Q
5
Q
6
PR
4
CL
1
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos sequenciais síncronos - 79
Resumo: Projecto para a
testabilidade
• As técnicas de projecto para a testabilidade eliminam
(sob o ponto de vista das ferramentas para a geração
de vectores) a natureza sequencial 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 projectistas deixam de ter liberdade para escolher
quaisquer soluções que achem mais adequadas (por
exemplo, não são admissíveis estruturas assíncronas)
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Circuitos sequenciais síncronos - 80
Conclusão
• Objectivo principal do capítulo: Concluir os
conhecimentos básicos sobre o projecto de sistemas
digitais (combinatórios e sequenciais)
• Pistas para a continuação do estudo:
– Circuitos sequenciais assíncronos
– Modelação lógica com maiores níveis de abstracção e
síntese automática

Slides Circuitos Sequenciais.pdf

  • 1.
    Introdução ao Projectocom Sistemas Digitais e Microcontroladores Circuitos sequenciais síncronos - 1 Circuitos sequenciais síncronos • Organização: – Conceitos básicos e métodos de representação – Síntese de circuitos sequenciais síncronos – Projecto com blocos SSI / MSI – Análise de circuitos sequenciais síncronos – Projecto e teste Introdução ao Projecto com Sistemas Digitais e Microcontroladores Circuitos sequenciais síncronos - 2 Sequenciais 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 sequenciais as saídas dependem também do valor que as entradas tiveram em instantes anteriores • Podemos portanto afirmar que os circuitos sequenciais possuem memória, onde armazenam uma informação interna de estado Introdução ao Projecto com Sistemas Digitais e Microcontroladores Circuitos sequenciais síncronos - 3 Circuitos sequenciais síncronos • Os circuitos sequenciais dividem-se essencialmente em duas grandes classes: – Os circuitos sequenciais síncronos, cujo funcionamento é cadenciado por um sinal periódico de relógio e que são aqueles que directamente nos interessam – Os circuitos sequenciais 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 Introdução ao Projecto com Sistemas Digitais e Microcontroladores Circuitos sequenciais síncronos - 4 Composição de um circuito sequencial • A necessidade de armazenar a informação de estado faz com que os circuitos sequenciais 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 actual e do valor das entradas exteriores: – O bloco que determina qual o estado seguinte – O bloco que determina o valor das saídas exteriores
  • 2.
    Introdução ao Projectocom Sistemas Digitais e Microcontroladores Circuitos sequenciais síncronos - 5 Modelo de Huffman CLK X Z D1 D0 Q1 Q0 Circuito combinatório Estado actual Estado seguinte Bloco que determina o estado seguinte: CLK X Z D1 D0 Q1 Q0 Circuito combinatório Estado actual Estado seguinte Bloco que determina as saídas exteriores: Introdução ao Projecto com Sistemas Digitais e Microcontroladores Circuitos sequenciais síncronos - 6 Formas básicas de representação • Consideraremos as seguintes alternativas principais para a representação de circuitos sequenciais: – 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 Entradas exteriores Saídas exteriores Relógio (CLK) Introdução ao Projecto com Sistemas Digitais e Microcontroladores Circuitos sequenciais síncronos - 7 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 actual e pelo valor das entradas, quando ocorre uma transição activa 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 Introdução ao Projecto com Sistemas Digitais e Microcontroladores Circuitos sequenciais síncronos - 8 Interpretação do diagrama • Quando o circuito se encontra no estado A, sendo a entrada exterior (X) 0, a próxima transição activa no sinal de relógio provocará a passagem para o estado A (mantém-se o estado actual); 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
  • 3.
    Introdução ao Projectocom Sistemas Digitais e Microcontroladores Circuitos sequenciais síncronos - 9 O conceito de entrada do circuito sequencial • Exemplo para a sequê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 Introdução ao Projecto com Sistemas Digitais e Microcontroladores Circuitos sequenciais síncronos - 10 Formas de onda nas entradas • Uma vez que o que é importante é o valor da entrada no momento em que ocorre a transição activa 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 Introdução ao Projecto com Sistemas Digitais e Microcontroladores Circuitos sequenciais síncronos - 11 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 Introdução ao Projecto com Sistemas Digitais e Microcontroladores Circuitos sequenciais síncronos - 12 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?
  • 4.
    Introdução ao Projectocom Sistemas Digitais e Microcontroladores Circuitos sequenciais síncronos - 13 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 Introdução ao Projecto com Sistemas Digitais e Microcontroladores Circuitos sequenciais síncronos - 14 A implementação das variáveis de estado • As variáveis de estado são normalmente implementadas por recurso a circuitos bi-está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 frequência) – FF do tipo J-K – FF do tipo T Introdução ao Projecto com Sistemas Digitais e Microcontroladores Circuitos sequenciais síncronos - 15 Os FF do tipo D • Num FF do tipo D, a saída assume o valor da entrada por cada transição activa no sinal de relógio • Num FF deste tipo, o estado actual (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 Q 6 Q 5 CLK 3 D 2 Introdução ao Projecto com Sistemas Digitais e Microcontroladores Circuitos sequenciais síncronos - 16 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 Q 6 Q 7 K 1 CLK 5 J 4 correspondência que existe neste caso entre S, NS, J, K e Q?)
  • 5.
    Introdução ao Projectocom Sistemas Digitais e Microcontroladores Circuitos sequenciais síncronos - 17 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 CLK Q Q Introdução ao Projecto com Sistemas Digitais e Microcontroladores Circuitos sequenciais síncronos - 18 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 Introdução ao Projecto com Sistemas Digitais e Microcontroladores Circuitos sequenciais síncronos - 19 Máquinas de Moore e máquinas de Mealy • Nas máquinas de estado (circuitos sequenciais com um número finito de estados) do tipo Moore, as saídas dependem apenas do estado actual 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 ...? Introdução ao Projecto com Sistemas Digitais e Microcontroladores Circuitos sequenciais síncronos - 20 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ídas exteriores) D1 D0 Q1 Q0 Circuito combinatório (geração do estado seguinte) Estado seguinte Estado actual Circuito combinatório (geração das saídas) CLK
  • 6.
    Introdução ao Projectocom Sistemas Digitais e Microcontroladores Circuitos sequenciais síncronos - 21 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 sequência Introdução ao Projecto com Sistemas Digitais e Microcontroladores Circuitos sequenciais síncronos - 22 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 sequê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). Introdução ao Projecto com Sistemas Digitais e Microcontroladores Circuitos sequenciais síncronos - 23 Exemplo 2: Um votador sequencial • 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) Introdução ao Projecto com Sistemas Digitais e Microcontroladores Circuitos sequenciais síncronos - 24 Exemplo 2: Um votador sequencial (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 a saída está em 1) - E: Estado onde já foram lidos dois 1 (e portanto a saída está em 1).
  • 7.
    Introdução ao Projectocom Sistemas Digitais e Microcontroladores Circuitos sequenciais síncronos - 25 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 Introdução ao Projecto com Sistemas Digitais e Microcontroladores Circuitos sequenciais síncronos - 26 Exemplo 1: Um detector de duplas sequê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 sequência 101 (representa-se à esquerda o primeiro bit lido) – Sequências sobrepostas devem ser consideradas válidas Y Z Relógio (CLK) X Introdução ao Projecto com Sistemas Digitais e Microcontroladores Circuitos sequenciais síncronos - 27 Exemplo 1: Um detector de duplas sequê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 Introdução ao Projecto com Sistemas Digitais e Microcontroladores Circuitos sequenciais síncronos - 28 Exemplo 1: Um detector de duplas sequê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?
  • 8.
    Introdução ao Projectocom Sistemas Digitais e Microcontroladores Circuitos sequenciais síncronos - 29 Exemplo 1: Um detector de duplas sequê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 Introdução ao Projecto com Sistemas Digitais e Microcontroladores Circuitos sequenciais síncronos - 30 Exemplo 1: Um detector de duplas sequê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 1 Z=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 D0 Y /Y /Y /X X D0=X*Y Introdução ao Projecto com Sistemas Digitais e Microcontroladores Circuitos sequenciais síncronos - 31 Exemplo 1: Um detector de duplas sequências (cont.) • Diagrama lógico correspondente à soma mínima obtida: Entrada Y Entrada X CLK Saída Q1 Q0 /Q0 /Q0 Q0 Q1 D0 D1 7408 4 5 6 7404 3 4 7474 D 2 CLK 3 Q 5 Q 6 7421 1 2 4 5 6 7411 1 2 13 12 7408 1 2 3 7404 1 2 7432 1 2 3 7474 D 12 CLK 11 Q 9 Q 8 Introdução ao Projecto com Sistemas Digitais e Microcontroladores Circuitos sequenciais síncronos - 32 Exemplo 2: Um comparador sequencial • 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 efectuar 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 efectuada bit a bit, com início pelo bit mais significativo Y Z Relógio (CLK) X
  • 9.
    Introdução ao Projectocom Sistemas Digitais e Microcontroladores Circuitos sequenciais síncronos - 33 Exemplo 2: Um comparador sequencial (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? Introdução ao Projecto com Sistemas Digitais e Microcontroladores Circuitos sequenciais síncronos - 34 Exemplo 2: Um comparador sequencial (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 A 00,11 C E B D reset 00,11 10 00,01,10,11 10 10 01 00,01,11 M: Xt-2 Xt-1 Xt N: Yt-2 Yt-1 Yt Introdução ao Projecto com Sistemas Digitais e Microcontroladores Circuitos sequenciais síncronos - 35 Exemplo 2: Um comparador sequencial (cont.) • O sinal de reset exterior: Reinicialização Relógio (CLK) >> estado A Compara o MSB Z = M≤N está válida (e o estado é B ou D) (...) (...) (...) Z = M (menor ou igual a) N D1 D0 Reinicialização (...) (...) (...) (...) (...) (...) (...) (...) (...) Y Z = M≤N Relógio (CLK) X Reinicialização Introdução ao Projecto com Sistemas Digitais e Microcontroladores Circuitos sequenciais síncronos - 36 Exemplo 2: Um comparador sequencial (cont.) • A implementação do sinal de reset poderia também ser feita através de um pino específico dos FF-D: Y Z = M≤N D1 D0 Q1 Q0 Bloco combinatório (estado seguinte) Bloco combinatório (saídas) CLK X RST
  • 10.
    Introdução ao Projectocom Sistemas Digitais e Microcontroladores Circuitos sequenciais síncronos - 37 Exemplo 2: Um comparador sequencial (cont.) • Se o circuito não dispuser de reset exterior, efectuando 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: Yt-2 Yt-1 Yt MSB: Bit mais significativo Bit intermédio LSB: Bit menos significativo Introdução ao Projecto com Sistemas Digitais e Microcontroladores Circuitos sequenciais síncronos - 38 Exemplo 2: Um comparador sequencial (cont.) • Caso de M=100 e N=101 (M≤N 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: Yt-2 Yt-1 Yt MSB: Bit mais significativo Bit intermédio LSB: Bit menos significativo Introdução ao Projecto com Sistemas Digitais e Microcontroladores Circuitos sequenciais síncronos - 39 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) Introdução ao Projecto com Sistemas Digitais e Microcontroladores Circuitos sequenciais síncronos - 40 Projecto com blocos SSI / MSI • Tal como sucedia com os circuitos combinatórios, também neste caso o procedimento de projecto 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
  • 11.
    Introdução ao Projectocom Sistemas Digitais e Microcontroladores Circuitos sequenciais síncronos - 41 Principais blocos SSI / MSI • Os principais tipos de blocos SSI / MSI do tipo sequencial, normalmente disponíveis nos catálogos dos fabricantes de semicondutores, são os seguintes: – Flip-flops (FF) – Registos (latches) – Registos de deslocamento (shift registers) – Contadores (counters) Introdução ao Projecto com Sistemas Digitais e Microcontroladores Circuitos sequenciais síncronos - 42 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 /Q CP /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 Introdução ao Projecto com Sistemas Digitais e Microcontroladores Circuitos sequenciais síncronos - 43 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 15 1 /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 /Q CP /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 Introdução ao Projecto com Sistemas Digitais e Microcontroladores Circuitos sequenciais síncronos - 44 Registos 74x573 (8-bit latch) OE 1 D0 2 D1 3 D2 4 D3 5 D7 9 D5 7 D4 6 D6 8 Q7 12 Q6 13 Q5 14 Q4 15 Q3 16 Q2 17 Q1 18 Q0 19 E 11 2D 2 3 4 5 6 7 8 9 1 11 EN1 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
  • 12.
    Introdução ao Projectocom Sistemas Digitais e Microcontroladores Circuitos sequenciais síncronos - 45 Registos de deslocamento (74x164) 1 2 8 9 C1/ -> R 3 4 5 6 10 11 12 13 1D & SRG8 MR 9 Dsb 2 Q7 13 Q6 12 Q5 11 Q4 10 Q3 6 Q2 5 Q1 4 Q0 3 CP 8 Dsa 1 Q2 Q3 Q1 Q0 Dsb Dsa CP /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 Introdução ao Projecto com Sistemas Digitais e Microcontroladores Circuitos sequenciais síncronos - 46 Registos de deslocamento (74x194) MR 1 D1 4 Q2 13 Q3 12 CP 11 S1 10 Q1 14 D2 5 Q0 15 D0 3 S0 9 DSR 2 D3 6 DSL 7 R 15 14 13 12 C4/1->/2<- SRG4 M 0 3 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 Q0 DSL DSR S0 S1 /MR CP X X Q1 Q2 Q3 Entradas Saídas Deslocamento para a esquerda Mantém Reset Modo de operação Deslocamento para a direita Carga paralela X X X X X X X X X X X X X X X 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 l h 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) Introdução ao Projecto com Sistemas Digitais e Microcontroladores Circuitos sequenciais síncronos - 47 Registos de deslocamento (74x195) /K 3 D1 5 Q1 14 Q0 15 J 2 CP 10 Q2 13 D0 4 Q3 12 D2 6 /Q3 11 /PE 9 D3 7 /MR 1 1,2J 1,2K /1,2D /1,2D SRG4 C2/1-> R M1 9 1 10 2 3 4 5 6 7 14 13 12 15 11 Q0 Q1 Dn /K /PE CP /MR H L Q2 Q3 /Q3 Deslocamento, comuta o primeiro andar Deslocamento, coloca o primeiro andar a 0 Reset assíncrono Deslocamento, coloca o primeiro andar a 1 Deslocamento, mantém o primeiro andar Saídas Entradas 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 /d3 d0 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) Introdução ao Projecto com Sistemas Digitais e Microcontroladores Circuitos sequenciais síncronos - 48 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 CP Q R CP Q R CP Q R CP H MR1 MR2 L H H Q0 Q1 Q2 Q3 L L L L Contagem Contagem Contagem Entradas de reset Saídas H H L L
  • 13.
    Introdução ao Projectocom Sistemas Digitais e Microcontroladores Circuitos sequenciais síncronos - 49 Contadores (74x161) TC 15 Q0 14 Q1 13 CP 2 Q2 12 CEP 7 D0 3 MR 1 D1 4 D2 5 D3 6 CET 10 Q3 11 PE 9 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 TC Dn /PE CET CEP CP /MR H H L Reset H h Modo de operação Saídas Entradas 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) Carga paralela 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 o contador estiver no último estado da contagem (HHHH) Introdução ao Projecto com Sistemas Digitais e Microcontroladores Circuitos sequenciais síncronos - 50 Contadores (74x192) D1 1 Q1 2 Q0 3 CPU 5 Q2 6 D0 15 Q3 7 D2 10 TCU 12 PL 11 D3 9 TCD 13 CPD 4 MR 14 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 D2 D1 D0 CPU /PL MR H H Q0 Q1 Q2 L Modo de operação Q3 Saídas Entradas D3 CPD Contagem ascendente Contagem descendente Reset assíncrono Carga paralela 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 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 H H 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 Contagem ascendente Contagem descendente 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) Introdução ao Projecto com Sistemas Digitais e Microcontroladores Circuitos sequenciais síncronos - 51 Contadores (74x192, cont.) Reset Preset Contagem ascendente Contagem descendente 0 7 9 0 1 8 0 9 8 1 2 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 contagem descendente (CPD) deve estar em H; quando em contagem descendente, a entrada de relógio para a contagem ascendente (CPU) deve estar em H O sinal MR sobrepõe-se às entradas de carga, dados e contagem Introdução ao Projecto com Sistemas Digitais e Microcontroladores Circuitos sequenciais síncronos - 52 Exemplo 1: Um detector de sequência • Pretende-se projectar um circuito que efectue 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
  • 14.
    Introdução ao Projectocom Sistemas Digitais e Microcontroladores Circuitos sequenciais síncronos - 53 Exemplo 1: Um detector de sequê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 J 2 K 3 A 4 B 5 C 6 D 7 CLK 10 S/L 9 CLR 1 QA 15 QB 14 QC 13 QD 12 QD 11 7486 1 2 3 Introdução ao Projecto com Sistemas Digitais e Microcontroladores Circuitos sequenciais síncronos - 54 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 F X INI 74161 A 3 B 4 C 5 D 6 ENP 7 ENT 10 CLK 2 LOAD 9 CLR 1 QA 14 QB 13 QC 12 QD 11 RCO 15 • 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 Introdução ao Projecto com Sistemas Digitais e Microcontroladores Circuitos sequenciais síncronos - 55 Análise de circuitos sequenciais síncronos • A análise é uma actividade que surge com frequência na prática com circuitos electró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 Introdução ao Projecto com Sistemas Digitais e Microcontroladores Circuitos sequenciais síncronos - 56 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
  • 15.
    Introdução ao Projectocom Sistemas Digitais e Microcontroladores Circuitos sequenciais síncronos - 57 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 Estado actual Estado seguinte X D1 D0 7408 1 2 3 7432 1 2 3 7408 9 10 8 7432 4 5 6 7474 D 2 CLK 3 Q 5 Q 6 7474 D 12 CLK 11 Q 9 Q 8 7404 1 2 7408 4 5 6 7408 12 13 11 Introdução ao Projecto com Sistemas Digitais e Microcontroladores Circuitos sequenciais síncronos - 58 Circuitos na forma de Huffman: Exemplo (cont.) • Equações: D1=/X*/Q0+X*Q0 D0=/X*Q1+X*/Q1 Q1 Q0 X D1 D0 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 0 0 1 1 D C B A 0 1 1 0 • Tabela de verdade e diagrama de estados: Q1 /Q1 Q0 /Q0 /Q1 Q1 /Q0 Q0 CLK Estado actual Estado seguinte X D1 D0 7408 1 2 3 7432 1 2 3 7408 9 10 8 7432 4 5 6 7474 D 2 CLK 3 Q 5 Q 6 7474 D 12 CLK 11 Q 9 Q 8 7404 1 2 7408 4 5 6 7408 12 13 11 Introdução ao Projecto com Sistemas Digitais e Microcontroladores Circuitos sequenciais síncronos - 59 Análise de circuitos com blocos SSI / MSI • A muito menor uniformização do projecto 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 Introdução ao Projecto com Sistemas Digitais e Microcontroladores Circuitos sequenciais síncronos - 60 Análise de circuitos com blocos SSI / MSI: Exemplo • Indicar qual a sequência de contagem que tem lugar no circuito apresentado +5 V CLK 74161 A 3 B 4 C 5 D 6 ENP 7 ENT 10 CLK 2 LOAD 9 CLR 1 QA 14 QB 13 QC 12 QD 11 RCO 15 74161 A 3 B 4 C 5 D 6 ENP 7 ENT 10 CLK 2 LOAD 9 CLR 1 QA 14 QB 13 QC 12 QD 11 RCO 15
  • 16.
    Introdução ao Projectocom Sistemas Digitais e Microcontroladores Circuitos sequenciais síncronos - 61 A testabilidade de circuitos sequenciais • As razões pelas quais a geração de vectores de teste para circuitos sequenciais 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 afectar a determinação do estado seguinte Introdução ao Projecto com Sistemas Digitais e Microcontroladores Circuitos sequenciais síncronos - 62 A testabilidade de circuitos sequenciais (cont.) • Exemplo: obter um vector que detecte a falta X s@0 no circuito apresentado à direita: +5 V +5 V +5 V Bloco combinatório Saída para o próximo estado Entrada primária Saída primária do circuito X s@0 (1/0) 1 1 Saída para o próximo estado X 0 0 Y CLK F=1/0 A 7432 1 2 3 7474 D 2 CLK 3 Q 5 Q 6 PR 4 CL 1 7408 4 5 6 7474 D 12 CLK 11 Q 9 Q 8 PR 10 CL 13 7408 1 2 3 Introdução ao Projecto com Sistemas Digitais e Microcontroladores Circuitos sequenciais síncronos - 63 A testabilidade de circuitos sequenciais (cont.) • Apesar de a determinação do vector 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 sequência a aplicar na entrada primária A, de forma a conduzir o circuito até ao estado pretendido Introdução ao Projecto com Sistemas Digitais e Microcontroladores Circuitos sequenciais síncronos - 64 A testabilidade de circuitos sequenciais (cont.) • A tarefa, para este caso, é relativamente simples: +5 V +5 V +5 V X s@0 (0/0) 1 0 0 1 1 Bloco combinatório Saída para o próximo estado Saída primária do circuito Y Saída para o próximo estado 1 1 0 0 1 CLK F=1 A 7408 1 2 3 7408 4 5 6 7474 D 2 CLK 3 Q 5 Q 6 PR 4 CL 1 7474 D 12 CLK 11 Q 9 Q 8 PR 10 CL 13 7432 1 2 3 F CLK A 1 0 0 +5 V +5 V +5 V X s@0 (0/0) 0 0 1 1 0 Bloco combinatório Saída para o próximo estado Saída primária do circuito Y Saída para o próximo estado 1 0 0 1 1 CLK F=0 A=1 7408 1 2 3 7408 4 5 6 7474 D 2 CLK 3 Q 5 Q 6 PR 4 CL 1 7474 D 12 CLK 11 Q 9 Q 8 PR 10 CL 13 7432 1 2 3 CLK A F 1 1 0 0 +5 V +5 V +5 V X s@0 (0/0) 0 1 1 0 0 Bloco combinatório Saída para o próximo estado Saída primária do circuito Y Saída para o próximo estado 0 0 1 1 1 CLK F=1/0 A=1 7408 1 2 3 7408 4 5 6 7474 D 2 CLK 3 Q 5 Q 6 PR 4 CL 1 7474 D 12 CLK 11 Q 9 Q 8 PR 10 CL 13 7432 1 2 3 F CLK A fault-free X s@0 1/0 1 1 1
  • 17.
    Introdução ao Projectocom Sistemas Digitais e Microcontroladores Circuitos sequenciais síncronos - 65 A testabilidade de circuitos sequenciais (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 sequência de transição que nos permita chegar ao estado pretendido, sobretudo naqueles casos em que a própria transição de estados é afectada pela falta considerada Introdução ao Projecto com Sistemas Digitais e Microcontroladores Circuitos sequenciais síncronos - 66 A testabilidade de circuitos sequenciais (cont.) • Uma falta que afecte 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 o próximo estado Entrada primária Saída primária do circuito X s@0 (1/0) 1 1 Saída para o próximo estado X 0 0 Y CLK F=1/0 A 7432 1 2 3 7474 D 2 CLK 3 Q 5 Q 6 PR 4 CL 1 7408 4 5 6 7474 D 12 CLK 11 Q 9 Q 8 PR 10 CL 13 7408 1 2 3 Introdução ao Projecto com Sistemas Digitais e Microcontroladores Circuitos sequenciais síncronos - 67 A testabilidade de circuitos sequenciais (cont.) • Alteração no diagrama de transição de estados: (qual o novo vector que detecta Y s@0?) +5 V +5 V +5 V Bloco combinatório Saída para o próximo estado Entrada primária Saída primária do circuito X s@0 (1/0) 1 1 Saída para o próximo estado X 0 0 Y CLK F=1/0 A 7432 1 2 3 7474 D 2 CLK 3 Q 5 Q 6 PR 4 CL 1 7408 4 5 6 7474 D 12 CLK 11 Q 9 Q 8 PR 10 CL 13 7408 1 2 3 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ão estão acessíveis 01 10 11 Q1 Q0 Introdução ao Projecto com Sistemas Digitais e Microcontroladores Circuitos sequenciais síncronos - 68 Soluções ad hoc para melhorar a testabilidade • Sendo um conjunto de “regras soltas” de projecto, 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
  • 18.
    Introdução ao Projectocom Sistemas Digitais e Microcontroladores Circuitos sequenciais síncronos - 69 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) Introdução ao Projecto com Sistemas Digitais e Microcontroladores Circuitos sequenciais síncronos - 70 Métodos estruturados de projecto 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 actual 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á?) Introdução ao Projecto com Sistemas Digitais e Microcontroladores Circuitos sequenciais síncronos - 71 Projecto 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 1 0 2:1 mux 1 0 2:1 mux 1 0 Estado actual Estado seguinte Estado actual Estado actual Estado seguinte Estado seguinte Modo de Teste Modo de Teste Saída série (scan out) Modo de Teste Entrada série (scan in) Relógio (CLOCK) Modo de Teste U1B 7474 D 12 CLK 11 Q 9 Q 8 PR 10 CL 13 U1A 7474 D 2 CLK 3 Q 5 Q 6 PR 4 CL 1 U2A 7474 D 2 CLK 3 Q 5 Q 6 PR 4 CL 1 Introdução ao Projecto com Sistemas Digitais e Microcontroladores Circuitos sequenciais síncronos - 72 Projecto com varrimento: • A importância do projecto com varrimento, como metodologia estruturada de projecto para a testabilidade, pode ser melhor aferida se considerarmos que no projecto sem varrimento: – Parte das entradas do circuito combinatório não são directamente controláveis, por estarem ligadas às saídas dos FF (nós que definem o estado actual) – Parte das suas saídas não são directamente observáveis, por estarem ligadas às entradas dos FF (estado seguinte)
  • 19.
    Introdução ao Projectocom Sistemas Digitais e Microcontroladores Circuitos sequenciais síncronos - 73 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 de Teste 1 0 2:1 mux 1 0 2:1 mux 1 0 Estado actual Próximo estado Próximo estado Próximo estado Estado actual Estado actual 1 0 0 0 1 Modo de Teste Modo de Teste 0 Saída série Relógio Entrada série Modo de Teste 0 1 1 U1A 7474 D 2 CLK 3 Q 5 Q 6 PR 4 CL 1 U1B 7474 D 12 CLK 11 Q 9 Q 8 PR 10 CL 13 U2A 7474 D 2 CLK 3 Q 5 Q 6 PR 4 CL 1 Introdução ao Projecto com Sistemas Digitais e Microcontroladores Circuitos sequenciais síncronos - 74 A questão da controlabilidade (cont.) +5 V +5 V +5 V +5 V +5 V +5 V 0 1 1 0 2:1 mux ? ? 1 1 0 2:1 mux 0 ? 2:1 mux 0 Estado actual Estado actual Estado actual Modo de Teste Modo de Teste Modo de Teste Próximo estado Próximo estado Próximo estado Saída série Relógio Entrada série Modo de Teste 1 1 0 U2A 7474 D 2 CLK 3 Q 5 Q 6 PR 4 CL 1 U1A 7474 D 2 CLK 3 Q 5 Q 6 PR 4 CL 1 U1B 7474 D 12 CLK 11 Q 9 Q 8 PR 10 CL 13 +5 V +5 V +5 V +5 V +5 V +5 V 0 1 1 0 2:1 mux ? ? 1 1 1 2:1 mux 0 ? 2:1 mux 0 Estado actual Estado actual Estado actual Modo de Teste Modo de Teste Modo de Teste Próximo estado Próximo estado Próximo estado Saída série Relógio Entrada série Modo de Teste 1 1 0 U2A 7474 D 2 CLK 3 Q 5 Q 6 PR 4 CL 1 U1A 7474 D 2 CLK 3 Q 5 Q 6 PR 4 CL 1 U1B 7474 D 12 CLK 11 Q 9 Q 8 PR 10 CL 13 Introdução ao Projecto com Sistemas Digitais e Microcontroladores Circuitos sequenciais síncronos - 75 A questão da controlabilidade (cont.) +5 V +5 V +5 V +5 V +5 V +5 V 1 1 1 0 2:1 mux ? ? 1 0 1 2:1 mux 0 ? 2:1 mux 0 Estado actual Estado actual Estado actual Modo de Teste Modo de Teste Modo de Teste Próximo estado Próximo estado Próximo estado Saída série Relógio Entrada série Modo de Teste 1 0 1 U2A 7474 D 2 CLK 3 Q 5 Q 6 PR 4 CL 1 U1A 7474 D 2 CLK 3 Q 5 Q 6 PR 4 CL 1 U1B 7474 D 12 CLK 11 Q 9 Q 8 PR 10 CL 13 +5 V +5 V +5 V +5 V +5 V +5 V 2:1 mux Modo de Teste 1 0 2:1 mux 1 0 2:1 mux 1 0 Estado actual Próximo estado Próximo estado Próximo estado Estado actual Estado actual 1 1 0 ? ? Modo de Teste Modo de Teste ? Saída série Relógio Entrada série Modo de Teste 0 X 1 U1A 7474 D 2 CLK 3 Q 5 Q 6 PR 4 CL 1 U1B 7474 D 12 CLK 11 Q 9 Q 8 PR 10 CL 13 U2A 7474 D 2 CLK 3 Q 5 Q 6 PR 4 CL 1 Introdução ao Projecto com Sistemas Digitais e Microcontroladores Circuitos sequenciais síncronos - 76 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 de Teste 1 0 2:1 mux 1 0 2:1 mux 1 0 Estado actual Próximo estado Próximo estado Próximo estado Estado actual Estado actual 1 0 0 0 1 Modo de Teste Modo de Teste 0 Saída série Relógio Entrada série Modo de Teste 0 1 1 U1A 7474 D 2 CLK 3 Q 5 Q 6 PR 4 CL 1 U1B 7474 D 12 CLK 11 Q 9 Q 8 PR 10 CL 13 U2A 7474 D 2 CLK 3 Q 5 Q 6 PR 4 CL 1
  • 20.
    Introdução ao Projectocom Sistemas Digitais e Microcontroladores Circuitos sequenciais síncronos - 77 A questão da observabilidade (cont.) +5 V +5 V +5 V +5 V +5 V +5 V 2:1 mux Modo de Teste 1 0 2:1 mux 1 0 2:1 mux 1 0 Estado actual Próximo estado Próximo estado Próximo estado Estado actual Estado actual 0 0 1 ? ? Modo de Teste Modo de Teste ? Saída série Entrada série Modo de Teste 0 X 0 Relógio U1A 7474 D 2 CLK 3 Q 5 Q 6 PR 4 CL 1 U1B 7474 D 12 CLK 11 Q 9 Q 8 PR 10 CL 13 U2A 7474 D 2 CLK 3 Q 5 Q 6 PR 4 CL 1 +5 V +5 V +5 V +5 V +5 V +5 V 0 1 1 0 2:1 mux ? ? 1 X 1 2:1 mux 0 ? 2:1 mux 0 Estado actual Estado actual Estado actual Modo de Teste Modo de Teste Modo de Teste Próximo estado Próximo estado Próximo estado Saída série Relógio Entrada série Modo de Teste 1 X 0 U2A 7474 D 2 CLK 3 Q 5 Q 6 PR 4 CL 1 U1A 7474 D 2 CLK 3 Q 5 Q 6 PR 4 CL 1 U1B 7474 D 12 CLK 11 Q 9 Q 8 PR 10 CL 13 Introdução ao Projecto com Sistemas Digitais e Microcontroladores Circuitos sequenciais síncronos - 78 A questão da observabilidade (cont.) +5 V +5 V +5 V +5 V +5 V +5 V 1 1 1 0 2:1 mux ? ? 1 X X 2:1 mux 0 ? 2:1 mux 0 Estado actual Estado actual Estado actual Modo de Teste Modo de Teste Modo de Teste Próximo estado Próximo estado Próximo estado Saída série Relógio Entrada série Modo de Teste 1 X 1 U2A 7474 D 2 CLK 3 Q 5 Q 6 PR 4 CL 1 U1A 7474 D 2 CLK 3 Q 5 Q 6 PR 4 CL 1 U1B 7474 D 12 CLK 11 Q 9 Q 8 PR 10 CL 13 +5 V +5 V +5 V +5 V +5 V +5 V 2:1 mux Modo de Teste 1 0 2:1 mux 1 0 2:1 mux 1 0 Estado actual Próximo estado Próximo estado Próximo estado Estado actual Estado actual 1 X X ? ? Modo de Teste Modo de Teste ? Saída série Relógio Entrada série Modo de Teste 0 X 1 U1A 7474 D 2 CLK 3 Q 5 Q 6 PR 4 CL 1 U1B 7474 D 12 CLK 11 Q 9 Q 8 PR 10 CL 13 U2A 7474 D 2 CLK 3 Q 5 Q 6 PR 4 CL 1 Introdução ao Projecto com Sistemas Digitais e Microcontroladores Circuitos sequenciais síncronos - 79 Resumo: Projecto para a testabilidade • As técnicas de projecto para a testabilidade eliminam (sob o ponto de vista das ferramentas para a geração de vectores) a natureza sequencial 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 projectistas deixam de ter liberdade para escolher quaisquer soluções que achem mais adequadas (por exemplo, não são admissíveis estruturas assíncronas) Introdução ao Projecto com Sistemas Digitais e Microcontroladores Circuitos sequenciais síncronos - 80 Conclusão • Objectivo principal do capítulo: Concluir os conhecimentos básicos sobre o projecto de sistemas digitais (combinatórios e sequenciais) • Pistas para a continuação do estudo: – Circuitos sequenciais assíncronos – Modelação lógica com maiores níveis de abstracção e síntese automática