Aplicações com flip-flops Shift Registers - Registradores de deslocamento : pode circular dados entre os elementos Reset’ CLK right shift CLK CLK CLK Shift Reset’ CI 74194 Serial Inputs: LSI, RSI Parallel Inputs: D, C, B, A Parallel Outputs: QD, QC, QB, QA Clear Signal Positive Edge Triggered Devices S1,S0 determine the shift function S1 = 1, S0 = 1: Load on rising clk edge synchronous load S1 = 1, S0 = 0: shift left on rising clk edge LSI replaces element D S1 = 0, S0 = 1: shift right on rising clk edge ;RSI replaces element A S1 = 0, S0 = 0: hold state Aplicações com flip-flops : shift register Conversão paralela - serial - paralela entradas paralelas D7 D6 D5 D4 Clock D3 D2 D1 D0 transmissor receptor saídas paralelas S1 S0 194 LSI D QD C QC B QB A QA RSI CLK CLR S1 S0 194 LSI D QD C QC B QB A QA RSI CLK CLR D7 D6 D5 D4 S1 S0 194 LSI D QD C QC B QB A QA RSI CLK CLR S1 S0 194 LSI D QD C QC B QB A QA RSI CLK CLR D3 D2 D1 D0 transmissão serial Projeto de Circuitos Sequenciais 1 - Entendimento do problema 2 - Análise das informações 3 - Diagrama de estados Algorítmo básico 3.1 - Minimização de estados 3.2 - Identificação de estados 3.3 - Escolha do elemento de memória 4 - Implementação da lógica combinacional 4.1 - Minimização da função 4.2 - Redução do circuito Xi Input s Zk Out put s Combinational Logic for Out put s and Next St at e State Register Clock State Feedback Máquina de Mealy State Register Xi Input s Comb. Logic for Out put s Combinational Logic for Next St at e (Flip- flop Input s) Zk Out put s Clock stat e feedback Máquina de Moore Projeto de Circuitos Sequenciais Funcionamento geral •entrega o chiclete para cada 15 centavos •entrada de moedas de 10 (D) e 5 (C) centavos •não há troco Passo 1. Entendimento do problema … desenhe um diagrama de blocos Sensor de moedas C D Reset Clk Controle da Máquina Abre Mecanismo de abertura Passo 2. Análise das informações … verificar as possíveis sequências de entrada e respectivas saídas Possibilidades : C+C+C C+D D+C D+D C+C+D Reset S0 C Entradas: C, D, reset S1 Saída: abrir C D S2 C D S4 S5 S6 [abrir] [abrir] [abrir] S3 C D D S7 S8 [abrir] [abrir] Passo 3.1 - Minimização de estados … reutilização de estados Estado Atual Reset 0c 0c C 5c D 5c C 10c D 10c C, D 15c [abrir] 15c Entradas D C 0 0 1 1 0 0 1 1 0 0 1 1 X 0 1 0 1 0 1 0 1 0 1 0 1 X Próximo Estado Saída abrir 0c 5c 10c X 5c 10c 15c X 10c 15c 15c X 15c 0 0 0 X 0 0 0 X 0 0 0 X 1 Passos 3.2 e 3.3 - Identificação de estados … Escolha do flip-flop … Estado atual Q1 Q0 0 0 0 1 1 0 1 1 Entradas D C 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 Prox. estado Saída D1 D0 abrir 0 0 0 1 1 0 X X 0 1 1 0 1 1 X X 1 0 1 1 1 1 X X 1 1 1 1 1 1 X X 0 0 0 X 0 0 0 X 0 0 0 X 1 1 1 X Passos 4.1 Minimização da função … D1 D0 Q1 Q1 Q0 abrir Q1 Q1 Q0 DC C C D Q0 D Q0 D1 = Q1 + D + Q0 C D0 = C’Q0 + Q0’C + Q1 C + Q1 D abrir = Q1 Q0 Q1 Q1 Q0 DC Q0 Projeto de Circuitos Sequenciais (C’ D’ + Reset)/0 Reset/0 C’ D’ + Reset Reset 0c 0c [0] Reset/0 Reset C/0 5c C’ D’/0 D/0 C C’D’ 5c D [0] C C/0 10c D/1 10c C’ D’/0 C+D/1 D [0] C+D 15c 15c [1] Reset/1 Máquina de Mealy C’D’ Máquina de Moore Reset A máquina de Mealy tem, geralmente, menos estados que a de Moore, para a mesma sequência de saída. 0 0/ 0 0 0 [0] 0 0 1 1 1/ 1 [0] 1 2 [1] 1/ 0 0/ 0 1 1 Exercício : Identificação de padrões em sequências finitas Seja um identificador de entrada X e saída Z. Z=1 sempre que a sequência …010… for observada, enquanto não aparecer a sequência …100… . passo 1 : entendimento do problema X: 00101010010… Z: 00010101000… X: 11011010010… Z: 00000001000… passo 2 : fazer o diagrama de estados para as sequências que devem ser reconhecidas, isto é, 010 and 100. obs.: reutilizar estados sempre que possível. Máquina de Moore Redução de estados Dois estados são equivalentes se, partindo-se destes, obtivermos as mesmas sequências de saída. Podemos, assim, fazer uma prévia redução de estados por simples inspeção visual. Algorítmo de redução por classes 1 - fazer a tabela de estados inicial ; 2 - dividir os estados em classes, de acordo com as saídas apresentadas, isto é, estados que têm a mesma saída estarão na mesma grupo (classe) ; 3 - estabelecer, baseado nos próximos estados, as próximas classes de cada estado ; 4 - reagrupar em novas classes, de acordo com as próximas classes apresentadas ; 5 - repetir os ítens 3 e 4 até que, em cada classe, todos os estados tenham as mesmas próximas classes ; estes estados são equivalentes. Exemplo : a b c d e x=0 b/0 c/0 d/0 d/0 d/0 I x=1 c/0 d/0 e/1 e/1 a/1 1 a b c 2 d e x=0 1 2 2 2 2 II x=1 2 2 2 2 1 a b c d e x=0 1 2 2 2 2 x=1 2 2 2 2 1 III Em III todos os estados pertencentes a uma classe têm as mesmas próximas classes; c e d são equivalentes. Identificação de estados Algorítmo para a determinação de adjacências R1 - dois ou mais estados que têm os mesmos próximos estados devem ter identificações adjacentes ; R2 - dois ou mais estados que são os próximos estados de um mesmo estado devem ter identificações adjacentes. Do exemplo anterior : a b c e x=0 b/0 c/0 c/0 c/0 x=1 c/0 c/0 e/1 a/1 anterior atual próximo a e b, c a b c a , b, c, e c c, e e c a, c R1 R2 R1 : (ab), (ac), (ae), (bc), (be), (ce) R2 : (bc), (ce), (ac) 0 0 a 1 e 1 c b Problema 1 : Implementar um contador de 3 bits que tenha um controle M e aja da seguinte forma : M = 0 a contagem é ascendente na sequência binária; M = 1 a contagem é ascendente em código de Gray Problema 2 : Deseja-se colocar um sinal de trânsito no cruzamento de duas ruas. Sensores C detetam a presença de carros na rua secundária. Se não há carros nesta rua, o sinal permane verde para a rua principal. Se há carros naquela, o sinal passa de verde para amarelo e para vermelho, permitindo então o sinal verde na rua secundária, por um intervalo TL. Após este intervalo, o sinal passa de verde para amarelo e para vermelho, retornando o sinal da rua principal a verde. Mesmo que existam veículos na rua secundária, a principal deve ter sinal verde pelo menos por TL. Assumir a existência de um temporizador que gere os tempos TL, para os sinais verdes, e TS dos sinais amarelos, ambos em resposta a um set (ST) dos respectivos tempos. Entendimento do problema . entradas : reset C TS TL coloca a máquina em seu estado inicial sensor de veículos na rua secundária fim do períododo sinal amarelo fim do períododo sinal verde . saídas HG, HY, HR FG, FY, FR ST ativam as luzes verde, amarela e vermelha, principal ativam as luzes verde, amarela e vermelha, secundária começa um período Tl ou TS. • Estados : algumas configurações de luzes implicam em outras estado S0 principal verde, secundária vermelho S1 principal amarelo, secundária vermelho S2 secundária verde, principal vermelho S3 secundária amarelo, principal vermelho TL + C Reset S0 TL•C/ST TS/ST TS S1 S3 TS TS/ST TL + C/ST S2 TL • C