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 - 1 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 - 2 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 - 3 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 - 4 Modelo de Huffman Bloco que determina as saídas exteriores: Bloco que determina o estado seguinte: X Z Circuito combinatório Estado Q1 actual Q0 X D1 D0 Estado seguinte CLK Introdução ao Projecto com Sistemas Digitais e Microcontroladores Circuitos sequenciais síncronos - 5 Z Circuito combinatório Estado Q1 actual Q0 D1 D0 Estado seguinte CLK Formas básicas de representação • Consideraremos as seguintes alternativas principais para a representação de circuitos sequenciais: – – – – Diagrama de transição de estados Entradas Tabela de transição de estados exteriores Tabela de verdade Relógio Diagrama lógico (já conhecida) (CLK) • O sinal de relógio só está explicitamente representado no diagrama lógico Introdução ao Projecto com Sistemas Digitais e Microcontroladores Circuitos sequenciais síncronos - 6 Saídas exteriores Diagrama de transição de estados X=0 • 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 A X=1 B X=1 X=1 X=0 C X=0 D X=0 X=1 Introdução ao Projecto com Sistemas Digitais e Microcontroladores Circuitos sequenciais síncronos - 7 Interpretação do diagrama X=0 • 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, no entanto, a entrada exterior for 1, o circuito passará para o estado B A X=1 B X=1 X=0 X=1 C X=0 D X=0 X=1 Introdução ao Projecto com Sistemas Digitais e Microcontroladores Circuitos sequenciais síncronos - 8 O conceito de entrada do circuito sequencial X=0 A X=1 X=1 • Exemplo para a sequência 101: A - B - C - D (valor da saída no fim?) • Convém ainda assinalar que: B X=1 X=0 C X=0 D X=0 X=1 – 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 Introdução ao Projecto com Sistemas Digitais e Microcontroladores Circuitos sequenciais síncronos - 9 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) Entrada (X) Relógio (CLK) Relógio (CLK) Saída (Z) Saída (Z) Estado A B C D Introdução ao Projecto com Sistemas Digitais e Microcontroladores Circuitos sequenciais síncronos - 10 B Estado A B C D B Tabela de transição de estados X=0 X=1 • 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 X=1 B (quando X=1) A A B 0 B C B 0 C A D 0 D A B 1 X=1 X=0 C X=0 D X=0 X=1 Saída (quando X=0) Introdução ao Projecto com Sistemas Digitais e Microcontroladores Circuitos sequenciais síncronos - 11 A X=0 Tabela de verdade X=1 B X=1 • A tabela de verdade contém uma descrição mais pormenorizada do circuito, uma vez que a alocação de estados já foi realizada S1 S0 0 0 • Qual foi a alocação de 0 0 estados que conduziu à 0 1 tabela de verdade à direita, 0 1 1 0 para o nosso exemplo? 1 0 Introdução ao Projecto com Sistemas Digitais e Microcontroladores Circuitos sequenciais síncronos - 12 A X=1 X=0 C X=0 D X=0 X NS1 NS0 Z 0 0 0 0 1 0 1 0 0 1 0 0 1 0 1 0 0 0 0 0 1 1 1 0 X=1 1 1 0 0 0 1 1 1 1 0 1 1 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) 0 0 0 0 0 0 • 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 Introdução ao Projecto com Sistemas Digitais e Microcontroladores Circuitos sequenciais síncronos - 13 S0 X NS1 NS0 Z 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 - 14 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 XDigitais e Microcontroladores Qant Introdução ao Projecto com Sistemas Circuitos sequenciais síncronos - 15 /Qant 2 3 D Q 5 CLK Q 6 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 correspondência J K CLK Q /Q 0 Q /Q que existe neste 00 1 0 1 caso entre S, 1 0 1 0 1 1 /Q Q NS, J, K e Q?) ant ant 4 5 1 ant ant X X 0 Qant /Qant X X 1 Qant /Qant X X Qant /Qant Introdução ao Projecto com Sistemas Digitais e Microcontroladores Circuitos sequenciais síncronos - 16 J Q 7 CLK K Q 6 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 T 1 /Qant Qant CLK X 0 Qant /Qant X 1 Qant /Qant X Qant /Qant Introdução ao Projecto com Sistemas Digitais e Microcontroladores Circuitos sequenciais síncronos - 17 Q Q X=0 Utilização dos FF D X=1 B X=1 • 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 0 1 0 1 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 Introdução ao Projecto com Sistemas Digitais e Microcontroladores 1 1síncronos -018 1Circuitos sequenciais 1 1 A X=1 X=0 C X=0 D X=0 X=1 X Z Circuito combinatório Q1 Estado actual CLK Q0 D1 D0 Estado seguinte 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 • Nas máquinas de Mealy as S1 S0 X NS1 NS0 Z saídas dependem do estado 00 00 01 00 01 00 actual e do valor das entradas 00 11 01 10 01 00 • O exemplo que temos vindo a 11 00 01 01 01 00 considerar corresponde a ...? 11 11 01 00 01 11 Introdução ao Projecto com Sistemas Digitais e Microcontroladores Circuitos sequenciais síncronos - 19 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) Estado seguinte Circuito combinatório (geração do estado seguinte) Estado actual D1 Q1 D0 Q0 CLK Introdução ao Projecto com Sistemas Digitais e Microcontroladores Circuitos sequenciais síncronos - 20 Circuito combinatório (geração das saídas) Z (saídas exteriores) 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 - 21 Exemplo 1: Um detector de janela (conclusão) 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 - 22 E 1 0 B 0 0,1 1 F 0 1 A 0,1 0 D C 1 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 - 23 Exemplo 2: Um votador sequencial (conclusão) 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) B 0 0 - E: Estado onde 0 já foram lidos 0 1 0 A D E dois 1 (e portanto a saída está em 1). 1 1 1 Introdução ao Projecto com Sistemas Digitais e Microcontroladores Circuitos sequenciais síncronos - 24 C 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 Introdução ao Projecto com Sistemas Digitais e Microcontroladores Circuitos sequenciais síncronos - 25 Exemplo 1: Um detector de duplas sequências Y X Z Relógio (CLK) • 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 Introdução ao Projecto com Sistemas Digitais e Microcontroladores Circuitos sequenciais síncronos - 26 Exemplo 1: Um detector de duplas sequências (cont.) • Exemplo do diagrama temporal para uma situação típica de funcionamento: Entrada X Entrada Y Relógio (CLK) Saída (Z) Introdução ao Projecto com Sistemas Digitais e Microcontroladores Circuitos sequenciais síncronos - 27 Y X Relógio (CLK) Z Exemplo 1: Um detector de duplas sequências (cont.) • Representação formal (diagrama de transição de 00,01,10 estados): A • Qual a sequência de transição de estados que corresponde ao XY=11 01,10 B diagrama temporal abaixo? Entrada X C Entrada Y Relógio (CLK) Saída (Z) Introdução ao Projecto com Sistemas Digitais e Microcontroladores Circuitos sequenciais síncronos - 28 11 00 11 01,10 11 00,01,10 00 D Exemplo 1: Um detector de duplas sequências (cont.) • Considerando a alocação de estados A-00, B-01, C-10 e D-11: 00,01,10 A 01,10 XY=11 01,10 B 11 00 11 C 11 00,01,10 00 Introdução ao Projecto com Sistemas Digitais e Microcontroladores D Circuitos sequenciais síncronos - 29 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 Exemplo 1: Um detector de duplas sequências (cont.) • Obtenção da soma mínima: /Y D1 Y /X /Q0 /Q1 Q0 Q1 /Q0 0 /Y D0 X 1 3 Y /X 2 14 5 7 6 112 13 15 14 9 111 8 /Y 10 /Q0 /Q1 Q0 Q1 /Q0 /Y X 1 13 4 5 17 6 12 13 115 14 9 111 10 0 8 D1=Q0*/X*/Y+Q1*/Q0*X*Y D0=X*Y Z=Q1*Q0 Introdução ao Projecto com Sistemas Digitais e Microcontroladores Circuitos sequenciais síncronos - 30 2 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 Exemplo 1: Um detector de duplas sequências (cont.) Entrada Y Entrada X 3 1 • Diagrama lógico correspondente à soma mínima obtida: 7404 7404 4 2 1 Saída Z 3 2 7408 1 2 13 12 1 1 2 3 7411 2 6 7432 4 5 7421 4 6 5 7408 /Q0 Q0 Introdução ao Projecto com Sistemas Digitais e Microcontroladores Circuitos sequenciais síncronos - 31 Q1 /Q0 Q0 6 CLK 5 8 Q1 7474 Q Q D 2 D0 7474 Q CLK 9 3 Q D 11 12 CLK Exemplo 2: Um comparador sequencial Y X Z Relógio (CLK) • 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 Introdução ao Projecto com Sistemas Digitais e Microcontroladores Circuitos sequenciais síncronos - 32 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 - 33 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: M: Xt-2 Xt-1 Xt N: Yt-2 Yt-1 Yt 00,01,10,11 B 01 XY=01 reset 00,11 A 10 C 10 00,01,11 00,11 10 D Introdução ao Projecto com Sistemas Digitais e Microcontroladores Circuitos sequenciais síncronos - 34 00,01,10,11 E Exemplo 2: Um comparador sequencial (cont.) Reinicialização (...) Z = M (menor ou igual a) N • O sinal de reset exterior: Reinicialização (...) (...) (...) (...) (...) (...) (...) Y X (...) Z = MN D1 (...) Relógio (CLK) Reinicialização (...) (...) Relógio (CLK) >> estado A Compara o MSB Introdução ao Projecto com Sistemas Digitais e Microcontroladores Circuitos sequenciais síncronos - 35 Z = MN está válida (e o estado é B ou D) D0 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: RST Y X Bloco combinatório (estado seguinte) D1 Q1 D0 Q0 CLK Introdução ao Projecto com Sistemas Digitais e Microcontroladores Circuitos sequenciais síncronos - 36 Bloco combinatório (saídas) Z = MN 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: 10 M: Xt-2 Xt-1 Xt N: Yt-2 Yt-1 Yt 10 B XY=10 10 00,11 A 00,01,10,11 01 00,11 00,11 C 01 D 00,01,10,11 E 00,01,10,11 H 10 F 00,11 00,01,11 00,01,10,11 G 01 01 Introdução ao Projecto com Sistemas Digitais e Microcontroladores Circuitos sequenciais síncronos - 37 MSB: Bit mais significativo Bit intermédio LSB: Bit menos significativo I Exemplo 2: Um comparador sequencial (cont.) 10 M: Xt-2 Xt-1 Xt N: Yt-2 Yt-1 Yt • Caso de M=100 e N=101 (MN verdadeiro): 10 B XY=10 Entrada X (M) Entrada Y (N) 10 00,11 A 00,01,10,11 01 00,11 00,11 C 00,01,10,11 E 01 H 10 F 00,11 00,01,11 Relógio (CLK) D Saída (Z) Estado actual A 00,01,10,11 00,01,10,11 G 01 C F I Fim desta comparação Introdução ao Projecto com Sistemas Digitais e Microcontroladores Início da seguinte Circuitos sequenciais síncronos - 38 B 01 MSB: Bit mais significativo Bit intermédio LSB: Bit menos significativo I 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 - 39 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 - 40 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 - 41 Flip-flops (74x74: D) 4 3 2 S 5 C1 1D 1 R 10 S 11 C2 12 2D 13 & R 6 Entradas Saídas Modo de operação /S /R CP D Q /Q L H X X H L Set assíncrono H L X X L H Reset assíncrono L L X X H H Indeterminado (ver nota) H H h H L Carrega 1 H H l L H Carrega 0 H H X M M 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 = Nível lógico "baixo" (0) 9 l = O nível L tem que estar presente um "setup time" antes da subida no relógio 8 M = Mantém o estado anterior X = "tanto faz" (don't care) = Subida no relógio = Não ocorre subida no relógio Indeterminado = Ambas as saídas estarão em H Introdução ao Projecto com Sistemas Digitais e Microcontroladoresenquanto /S e /R estiverem em L, mas ficarão em esta Circuitos sequenciais síncronos - 42 indeterminado se /S e /R passarem a H em simultâneo FF (cont.) (74x109: JK) Entradas Modo de operação Saídas /S /R CP J /K Q /Q Set assíncrono L H X X X H L Reset assíncrono H L X X X L H Indeterminado (ver nota) L L X X X H H Comuta (toggle) H H h l /q q 5 1S 2 1J 4 1C 3 1K Carrega 0 H H l l L H 1 1R Carrega 1 H H h h H L 11 2S Mantém H H l h q /q 14 2J 12 2C 13 2K 15 2R 6 7 10 H = Nível lógico "alto" (1) 9 1J- 2 2J- 14 1C- 4 2C- 12 /1S /2S 5 11 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 J Q CP /1K- 3 /K /2K- 13 1Q- 6 2Q- 10 /Q /1Q- 7 /2Q- 9 q = a letra pequena indica o estado da saída um "setup time" antes da subida no relógio X = "tanto faz" (don't care) = Subida no relógio Indeterminado = Ambas as saídas estarão em H Introdução ao Projecto com Sistemas Digitais /1R e Microcontroladores /2R enquanto /S e /R estiverem em L, mas ficarão em estad Circuitos sequenciais síncronos - 43 indeterminado se /S e /R passarem a H em simultâneo 1 15 /OE E Dn L H L L L L H H H H L l L L L h H H L L X M M H L X M Z H H Dn Dn Z 3 4 5 6 7 Modo de operação 8 9 D0 Q0 D1 Q1 D2 Q2 D3 Q3 D4 Q4 D5 Q5 D6 Q6 D7 Q7 18 17 16 15 14 13 12 Habilita e memoriza as saídas Mantém 1 Inibe as saídas 11 EN1 EN2 2D 3 h = O nível H tem que estar presente um "setup time" antes da descida no relógio 4 (E) L = Nível lógico "baixo" (0) 19 Habilita e abre as saídas 2 H = Nível lógico "alto" (1) E Saídas (Q0 a Q7) 2 11 Saídas internas OE Entradas 1 Registos 74x573 (8-bit latch) 5 6 (E) l = O nível L tem que estar presente um "setup time" antes da descida no relógio 1 19 18 17 16 15 M = Mantém o estado anterior 7 14 X = "tanto faz" (don't care) 8 13 9 12 Introdução ao Projecto com Sistemas Digitais e Microcontroladores Z = Alta impedância Circuitos sequenciais síncronos - 44 = Descida no relógio Registos de deslocamento (74x164) Entradas /MR CP 8 9 SRG8 x Dsa Dsb Q0 Modo de operação Q1 Q2 Q3 Q4 Q5 Q6 Q7 x X L L L L L L L L H l l L q0 q1 q2 q3 q4 q5 q6 H l h L q0 q1 q2 q3 q4 q5 q6 H h l L q0 q1 q2 q3 q4 q5 q6 H h h H q0 q1 q2 q3 q4 q5 q6 Reset C1/ -> R 1 2 L Saídas & 1D 3 4 5 6 8 CP h = O nível H tem que estar presente um "setup time" antes da subida no relógio MR 11 H = Nível lógico "alto" (1) 9 10 Deslocamento Q0 12 13 L = Nível lógico "baixo" (0) Q1 1 l = O nível L tem que estar presente um "setup time" antes da subida no relógio Dsa Q2 Q3 2 q = a letra pequena indica o estado da saída um "setup time" antes da subida no relógio Dsb Q4 Q5 Q6 X = "tanto faz" (don't care) Introdução ao Projecto com Sistemas Digitais e Microcontroladores = Subida no relógio Circuitos sequenciais síncronos - 45 Q7 3 4 5 6 10 11 12 13 Registos de deslocamento (74x194) Modo de operação Entradas CP /MR S1 S0 Saídas DSR DSL Dn Q0 Q1 Q2 Q3 Reset X L X X X X X L L L L Mantém X H l l X X X q0 q1 q2 q3 H h l X l X q1 q2 q3 L H h l X h X q1 q2 q3 H H l h l X X L q0 q1 q2 H l h h X X H q0 q1 q2 H h h X X dn d0 d1 d2 d3 SRG4 11 9 10 1 2 3 R Carga paralela 1,4D 3,4D 3,4D 3,4D 3,4D 2,4D 15 H = Nível lógico "alto" (1) 14 13 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) 12 l = O nível L tem que estar presente um "setup time" antes da subida no relógio 2 3 4 5 S1 7 Deslocamento para a direita 10 6 1 0 M 3 S0 5 0 9 4 Deslocamento para a esquerda C4/1->/2<- DSR Q0 15 D0 D1 Q1 D2 Q2 d, q = a letra pequena indica o estado da entrada ou D3 saída, um "setup time" antes da subida no relógio 7 14 13 6 Q3 DSL MR CP 1 11 X = "tanto faz" (don't care) Introdução ao Projecto com Sistemas Digitais e Microcontroladores Circuitos sequenciais síncronos - 46 = Subida no relógio 12 Registos de deslocamento (74x195) Modo de operação Entradas /MR CP Reset assíncrono 9 1 10 4 5 6 7 R C2/1-> 1,2J 1,2K /1,2D /1,2D Carga paralela J /K Dn Q0 Q1 Q2 Q3 /Q3 X X X X L L L L H H h h h X H q0 q1 q2 /q2 H h l l X L q0 q1 q2 /q2 H h h l X /q0 q0 q1 q2 /q2 H h l h X q0 q0 q1 q2 /q2 H l X X dn d0 d1 d2 d3 /d3 L X H = Nível lógico "alto" (1) /Q 3 3 SRG4 /PE 11 2 M1 Deslocamento, coloca o primeiro andar a 1 Deslocamento, coloca o primeiro andar a 0 Deslocamento, comuta o primeiro andar Deslocamento, mantém o primeiro andar Saídas 15 h = O nível H tem que estar presente um "setup time" antes 7da subida no rel 12 D3 Q3 L = Nível lógico "baixo" (0) 6 13 D2 14 l = O nível L tem que estar presente um "setup time" antes da subidaQ 2 no rel 13 d, q = a letra pequena indica o estado da entrada ou 5 14 D1 Q1 saída, um "setup time" antes da subida no relógio 12 11 X = "tanto faz" (don't care) = Subida no relógio 9 D0 Q0 /PE /MR /K CP J 3 10 2 Introdução ao Projecto com Sistemas Digitais e Microcontroladores Circuitos sequenciais síncronos - 47 4 15 1 Contadores (74x93) 14 & CT=0 DIV2 12 + DIV8 1 Saídas MR1 MR2 Q0 Q1 Q2 Q3 H H L L L L L H Contagem H L Contagem H L Contagem CTR 2 3 Entradas de reset 9 0 8 CT + 11 2 FF1 /CP0 FF2 Q FF3 Q CP FF4 Q CP Q CP CP R R R R /CP1 MR1 Q0 MR2 Introdução ao Projecto com Sistemas Digitais e Microcontroladores Circuitos sequenciais síncronos - 48 Q1 Q2 Q3 CET TC CP 3 4 X X X X L L Reset H X X l l L L Carga paralela H X X l h H (a) 15 H h h h X C (a) h X l X h X qn (a) h X X l h X qn Contagem Mantém L 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) G4 l = O nível L tem que estar presente um "setup time" antes da subida no relógio C2/1,3,4</1,2D TC 11 2 12 10 Q3 G3 13 7 Q2 Q1 M1 X Qn MR CTR DIV 16 9 L CEP CET /PE Dn Modo de operação CEP 14 R /MR CP Saídas PE Q0 1 6 1 D3 2 5 10 D2 7 D1 D0 9 4 3 Contadores (74x161) Entradas 14 C = Contagem 13 qn = a letra pequena indica o estado da saída antes da subida no relógio 5 12 6 11 X = "tanto faz" (don't care) (a) A saída está em H quando CET estiver em H e o contador estiver no último estado da contagem (HHHH) 15 4 com CT=15 Introdução ao Projecto Sistemas Digitais e Microcontroladores = Subida no relógio Circuitos sequenciais síncronos - 49 Contadores (74x192) Modo de operação H /PL CPU CPD D0 2+ D1 D2 D3 Q0 Q1 Q2 Q3 14 /TCU /TCD 15 10 6 H 9H 7 H L X X X L L L L H H X X H X X X X L L L L L L X L L L L L L L L L Reset assíncrono L L L L L X H X X H L L H X H X X H Contagem ascendente L H H X X X X Contagem descendente L H X X X X L L L L H H Qn = Dn L H Qn = Dn H H Contagem ascendente Contagem descendente H = Nível lógico "alto" (1) L = Nível lógico "baixo" (0) X = "tanto faz" (don't care) H (2) H H H (3) 9 10 1 15 TCD L 12 /1CT=9 13 L 13 /2CT=0 TCU H L 12 X 3 3D 2 X L R 1 L L 1G2 Saídas X H 5 CTR DIV 10 G1 X Carga paralela C3 4 Entradas MR 11 D3 Q3 D2 Q2 D1 Q1 D0 Q0 PL MR 7 6 2 3 (2) /TCU = CPU quando se atinge o máximo na contagem ascendente (HLLH) CPD 4 5 Introdução ao Projecto com Sistemas Digitais e Microcontroladores Circuitos sequenciais síncronos - 50 11 CPU (3) /TCD = CPD quando se atinge o mínimo na contagem descendente (LLLL) 14 Contadores (74x192, cont.) MR (1) /PL D0 D1 D2 D3 CPU (2) CPD (2) Q0 Q1 Q2 Q3 /TCU /TCD 0 Reset 7 8 Preset 9 0 1 Contagem ascendente 2 1 0 9 8 7 Contagem descendente (1) O sinal MR sobrepõe-se às entradas de carga, dados e contagem Introdução ao Projecto com Sistemas Digitais e Microcontroladores em contagem ascendente, a entrada de relógio para a contagem Circuitos sequenciais síncronos -(2) 51 Quando descendente (CPD) deve estar em H; quando em contagem descendente, a entrada de relógio para a contagem ascendente (CPU) deve estar em H 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 - 52 Exemplo 1: Um detector de sequência (cont.) X 2 3 4 5 6 7 CLK 10 9 1 J K A B C D CLK S/L CLR 15 Q A 14 Q B 13 Q C 12 QD 11 QD 1 3 F 2 7486 74195 +5 V 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? Introdução ao Projecto com Sistemas Digitais e Microcontroladores Circuitos sequenciais síncronos - 53 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 • Considere-se que existe um F X impulso de reset a preceder cada palavra e que a saída deve estar válida apenas no CLOCK quarto impulso de relógio INI 3 4 5 6 7 10 2 9 1 A B C D QA QB QC QD RCO ENP ENT CLK LOAD CLR 74161 Introdução ao Projecto com Sistemas Digitais e Microcontroladores Circuitos sequenciais síncronos - 54 +5 V 14 13 12 11 15 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 - 55 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 - 56 Análise de um circuito na forma de Huffman: Exemplo X 1 • Pretende-se obter o diagrama de transição de estados correspondente ao circuito seguinte: 7404 2 1 3 2 1 3 7408 2 4 6 7432 5 7408 9 8 10 4 6 7408 5 12 11 7432 13 7408 /Q1 Q1 Estado actual /Q1 Q1 Estado seguinte 6 Q C LK 5 Q D 3 2 D1 7474 /Q0 Introdução ao Projecto com Sistemas Digitais e MicrocontroladoresQ0 Circuitos sequenciais síncronos - 57 /Q0 Q0 8 Q C LK 9 Q 7474 D CLK 11 12 D0 Circuitos na forma de Huffman: Exemplo (cont.) X 1 • Equações: D1=/X*/Q0+X*Q0 D0=/X*Q1+X*/Q1 • Tabela de verdade e diagrama de estados: 7404 2 1 3 2 1 3 7408 2 4 6 7432 5 7408 9 8 10 4 6 7408 5 12 11 7432 13 7408 /Q1 Q1 Estado actual /Q1 Q1 Estado seguinte 6 Q C LK 5 Q D 3 2 D1 7474 /Q0 Q0Introdução /Q0 8 Q 11 CLK Q0 ao Projecto com Sistemas 9 Digitais e 1 2Microcontroladores Q D D0 Circuitos sequenciais síncronos - 58 7 4 7 4 C LK 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 A 1 1 0 B C 0 1 1 0 D 0 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 - 59 Análise de circuitos com blocos SSI / MSI: Exemplo • Indicar qual a sequência de contagem CLK que tem lugar no circuito apresentado +5 V 3 4 5 6 7 10 2 9 1 QA QB QC QD RCO 14 13 12 11 15 ENP ENT CLK LOAD CLR 74161 3 4 5 6 7 10 2 9 1 Introdução ao Projecto com Sistemas Digitais e Microcontroladores Circuitos sequenciais síncronos - 60 A B C D A B C D ENP ENT CLK LOAD CLR 74161 QA QB QC QD RCO 14 13 12 11 15 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 - 61 A testabilidade de circuitos sequenciais (cont.) Bloco combinatório Entrada primária 1 1 Saída para o próximo estado X s@0 (1/0) 1 3 2 7408 1 3 2 0 X 0 4 6 Saída para o próximo estado Y 7408 +5 V Q 7474 CL 6 C LK Q PR 5 D 3 2 4 +5 V 13 Q 7474 CL 8 C LK Q PR 9 D 11 12 10 Introdução ao Projecto com Sistemas Digitais e Microcontroladores Circuitos sequenciais síncronos - 62 Saída primária do circuito 7432 5 1 • Exemplo: obter um vector que detecte a falta X s@0 no circuito apresentado à direita: A +5 V CLK F=1/0 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 - 63 A testabilidade de circuitos sequenciais (cont.) • A tarefa, para este caso, é relativamente simples: Bloco combinatório A 0 0 Saída para o próximo estado X s @0 ( 0/ 0) 1 3 2 7 4 08 1 3 2 1 1 1 4 7 4 32 Saída primária do circuito 1 A=1 1 0 1 5 7 4 08 1 3 2 1 0 Saída para o próximo estado Y 7 4 08 3 2 0 4 1 1 CLK 1 5 Q D 3 2 1 +5 V 1 8 Q 7474 CL K 9 Q D 11 12 10 CLK 7474 CL K PR 12 Q CL Introdução ao Projecto com Sistemas Digitais e Microcontroladores F F Circuitos sequenciais síncronos - 64 +5 V D 11 6 13 A 10 CLK Q 1 0 7 4 74 CL K 9 Saída para o próximo estado 4 1 Q PR 10 1 CLK 2 CL 8 7432 Y PR 13 PR +5 V D 12 D 3 +5 V 0 11 Q 0 7 4 74 CL K 5 CL Q 0 Q Saída primária do circuito 6 5 CL 0 1 7 4 74 CL K 9 0 4 7408 4 13 A Q 0 0 1 2 4 CLK 0 0 8 6 PR D 3 +5 V 1 3 2 CL PR Q 1 F=0 +5 V 1 CL K 5 1 7 4 74 CL Q 3 2 7408 0 Saída para o próximo estado X s@0 (0/0) 1 +5 V 1 0 0 6 1 1 Saída para o próximo estado Y 7 4 08 +5 V 1 7 4 32 6 5 Saída primária do circuito Bloco combinatório A=1 Saída para o próximo estado X s @0 ( 0/ 0) 1 F=1 6 1 Bloco combinatório +5 V A fault-free F X s@0 CLK F=1/0 1/0 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 - 65 A testabilidade de circuitos sequenciais (cont.) Bloco combinatório Entrada primária 1 1 Saída para o próximo estado X s@0 (1/0) 1 3 2 7408 1 3 2 0 X 0 4 6 Saída para o próximo estado Y 7408 +5 V Q 7474 CL 6 C LK Q PR 5 D 3 2 4 +5 V 13 Q 7474 CL 8 C LK Q PR 9 D 11 12 10 Introdução ao Projecto com Sistemas Digitais e Microcontroladores Circuitos sequenciais síncronos - 66 Saída primária do circuito 7432 5 1 • 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 A +5 V CLK F=1/0 A testabilidade de circuitos sequenciais (cont.) • Alteração no diagrama de transição de estados: 0 Q1,Q0=00 0,1 0 1 0 Q1,Q0=00 Bloco combinatório A Entrada primária 1 1 0 0,1 Saída para o próximo estado X s@0 (1/0) 1 3 2 7408 1 3 2 01 1 1 01 0 X 0 4 7432 6 5 Saída para o próximo estado Y 7408 0 1 +5 V 2 D 2 +5 V 8 Q0 Q 7474 C LK 9 Q PR 11 Q 3 CL 3 C LK 5 13 11 1 7474 4 3 Estados 1 e 3 (Q0=1) já não estão acessíveis Q1 Q PR 0 6 CL 10 10 1 2 1 D 11 12 10 (qual o novo vector que detecta Y s@0?) Introdução ao Projecto com Sistemas Digitais e Microcontroladores Circuitos sequenciais síncronos - 67 Saída primária do circuito +5 V CLK F=1/0 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 - 68 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 - 69 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 - 70 Projecto com varrimento (scan design) Q CL 6 CLK Q D 3 2 2:1 mux 0 4 Estado actual PR 5 1 Modo de Teste +5 V Estado seguinte +5 V U1B 7474 13 Q CL 8 CLK Q D 11 12 2:1 mux 0 10 Estado actual PR 9 1 Modo de Teste +5 V Estado seguinte +5 V U2A 7474 1 Q CL 6 CLK Q PR 5 4 Estado actual +5 V Introdução ao Projecto com Sistemas Digitais e Microcontroladores Circuitos sequenciais síncronos - 71 U1A 7474 1 • 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 Saída série (scan out) +5 V D 3 2 2:1 mux 0 1 Modo de Teste Modo de Teste Estado seguinte Entrada série (scan in) Relógio (CLOCK) 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 - 72 A questão da controlabilidade 1 U1A 7474 1 6 CLK 5 Q D 3 2 2:1 mux 1 +5 V Próximo estado Modo de Teste +5 V U1B 7474 13 CLK 9 Q D 11 12 2:1 mux 0 0 10 Estado actual PR 0 Q CL 8 1 +5 V Próximo estado Modo de Teste +5 V U2A 7474 1 CLK 5 Q PR 4 Estado actual Q CL 6 0 D 3 2 2:1 mux 1 0 1 +5 V Introdução ao Projecto com Sistemas Digitais e Microcontroladores Circuitos sequenciais síncronos - 73 0 0 4 Estado actual PR 1 Q CL • Consideremos que se pretende passar para o estado 110, partindo do estado 100 e sendo o estado seguinte (para as condições consideradas) 001 Saída série +5 V Modo de Teste Próximo estado Modo de Teste Entrada série 0 Relógio 1 A questão da controlabilidade (cont.) 0 D 3 2 2:1 mux 1 Modo de Teste 0 ? Próximo estado 2:1 mux Modo de Teste ? Próximo estado CLK 9 Estado actual 2:1 mux ? 0 Próximo estado Modo de Teste CL 2:1 mux 1 +5 V Modo de Modo de Teste Entrada ? Próximo estado Relógio Introdução ao Projecto com Sistemas e Microcontroladores Teste Digitaissérie Circuitos sequenciais síncronos - 74 1 1 Estado actual CLK 5 Q 4 4 0 1 PR PR D Q 3 2 U2A 7474 1 6 CL Q 12 +5 V 1 Estado actual D 1 U2A 7474 CLK 5 Q 11 +5 V +5 V 1 Modo de Teste U1B 7474 10 10 0 1 PR 12 1 Q ? Próximo estado CL D Q 11 +5 V 6 2:1 mux 0 13 PR Q 8 CL Estado actual 2 +5 V CLK 9 D 1 U1B 7474 13 0 Q +5 V +5 V Q 5 Estado actual 3 4 4 0 +5 V 8 U1A 7474 CLK PR Q PR 5 Q CL CLK Estado actual 6 CL 0 Q Saída série +5 V 1 U1A 7474 1 6 0 Saída série +5 V D 3 2 2:1 mux ? 0 1 +5 V Modo de Teste Próximo estado Modo de Teste Entrada série 1 Relógio 1 A questão da controlabilidade (cont.) 1 D 3 2 2:1 mux 1 Modo de Teste 1 ? Próximo estado 2:1 mux Modo de Teste ? Próximo estado 12 2:1 mux ? 0 1 Próximo estado Modo de Teste CL 2:1 mux 1 +5 V Modo de Modo de Teste Entrada ? Próximo estado Relógio Introdução ao Projecto com Sistemas e Microcontroladores Teste Digitaissérie Circuitos sequenciais síncronos - 75 1 0 Estado actual CLK 5 Q 4 4 0 0 PR PR D Q 3 2 U2A 7474 1 6 CL Q D +5 V 1 Estado actual Q 11 +5 V U2A 7474 CLK 5 CLK 9 Estado actual +5 V 0 Modo de Teste U1B 7474 10 10 0 1 PR 12 1 Q ? Próximo estado CL D Q 11 +5 V 6 2:1 mux 0 13 PR Q 8 CL Estado actual 2 +5 V CLK 9 D 1 U1B 7474 13 1 Q +5 V +5 V Q 5 Estado actual 3 4 4 0 +5 V 8 U1A 7474 CLK PR Q PR 5 Q CL CLK Estado actual 6 CL 1 Q Saída série +5 V 1 U1A 7474 1 6 1 Saída série +5 V D 3 2 2:1 mux ? 0 1 +5 V Modo de Teste Próximo estado Modo de Teste Entrada série 0 Relógio X A questão da observabilidade 1 U 1A 7474 1 6 C LK 5 Q D 3 2 2:1 mux 1 +5 V Próx imo esta do Modo de Test e +5 V U 1B 7474 13 C LK 9 Q D 11 12 2:1 mux 0 0 10 Esta do actu al PR 0 Q CL 8 1 +5 V Próx imo esta do Modo de Test e +5 V U 2A 7474 1 Q 4 Esta do actu al C LK 5 PR 0 Q CL 6 D 3 2 2:1 mux 1 0 1 +5 V Introdução ao Projecto com Sistemas Digitais e Microcontroladores Circuitos sequenciais síncronos - 76 0 0 4 Esta do actu al PR 1 Q CL • Consideremos que se pretende observar o valor dos nós que definem o estado seguinte, para o caso anteriormente considerado Saíd a séri e +5 V Modo de Test e Próx imo esta do Modo de Test e Entr ada séri e 0 Reló gio 1 A questão da observabilidade (cont.) 0 D 3 2 2:1 mux 1 Modo de Test e 0 ? Próx imo esta do 2:1 mux Modo de Test e ? Próx imo esta do C LK 9 Esta do actu al 2:1 mux ? 0 Próx imo esta do Modo de Test e CL 2:1 mux 1 +5 V Modo de Modo de Test e Entr ada ? Próx imo esta do Reló gio Introdução ao Projecto com Sistemas e Microcontroladores Test e Digitaisséri e Circuitos sequenciais síncronos - 77 0 X Esta do actu al C LK 5 Q 4 4 0 X PR PR D Q 3 2 U 2A 7474 1 6 CL Q 12 +5 V 1 Esta do actu al D 1 U 2A 7474 C LK 5 Q 11 +5 V +5 V 1 Modo de Test e U 1B 7474 10 10 0 1 PR 12 1 Q ? Próx imo esta do CL D Q 11 +5 V 6 2:1 mux 0 13 PR Q 8 CL Esta do actu al 2 +5 V C LK 9 D 1 U 1B 7474 13 0 Q +5 V +5 V Q 5 Esta do actu al 3 4 4 0 +5 V 8 U 1A 7474 C LK PR Q PR 5 Q CL C LK Esta do actu al 6 CL 0 Q Saíd a séri e +5 V 1 U 1A 7474 1 6 0 Saíd a séri e +5 V D 3 2 2:1 mux ? 0 1 +5 V Modo de Test e Próx imo esta do Modo de Test e Entr ada séri e 1 Reló gio X A questão da observabilidade (cont.) 1 D 3 2 2:1 mux 1 Modo de Test e 1 ? Próx imo esta do 2:1 mux Modo de Test e ? Próx imo esta do 12 2:1 mux ? 0 1 Próx imo esta do Modo de Test e CL 2:1 mux 1 +5 V Modo de Modo de Test e Entr ada ? Próx imo esta do Reló gio Introdução ao Projecto com Sistemas e Microcontroladores Test e Digitaisséri e Circuitos sequenciais síncronos - 78 1 X Esta do actu al C LK 5 Q 4 4 0 X PR PR D Q 3 2 U 2A 7474 1 6 CL Q D +5 V 1 Esta do actu al Q 11 +5 V U 2A 7474 C LK 5 C LK 9 Esta do actu al +5 V X Modo de Test e U 1B 7474 10 10 0 X PR 12 1 Q ? Próx imo esta do CL D Q 11 +5 V 6 2:1 mux 0 13 PR Q 8 CL Esta do actu al 2 +5 V C LK 9 D 1 U 1B 7474 13 X Q +5 V +5 V Q 5 Esta do actu al 3 4 4 0 +5 V 8 U 1A 7474 C LK PR Q PR 5 Q CL C LK Esta do actu al 6 CL 1 Q Saíd a séri e +5 V 1 U 1A 7474 1 6 1 Saíd a séri e +5 V D 3 2 2:1 mux ? 0 1 +5 V Modo de Test e Próx imo esta do Modo de Test e Entr ada séri e 0 Reló gio X 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 - 79 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 Introdução ao Projecto com Sistemas Digitais e Microcontroladores Circuitos sequenciais síncronos - 80