Prévia do material em texto
Sistemas Digitais Revisão: Máquina de Estados Finitos (FSM) Professor Tiago Balen Tópico do plano de ensino cobertos por esta aula: Circuitos Sequenciais • Um circuito sequencial pode ser estudado e projetado do ponto de vista dos estados que este pode assumir. Cada estado é representado pelo valor binário presente nos elementos de memória (FFs) que compõem o circuito. Contadores Contadores • Um circuito sequencial bastante útil é o contador. Contadores podem ser utilizados também como divisores de frequência. • Contador de 3 BITs • Conta de 0 a 7 (000, 001, 010, 011, 100, 101, 110, 111). Ao analisar este circuito como uma máquina de estados diz-se que este apresenta 8 estados. Pode-se então representar o Diagrama ou Mapa De Estados do circuito em questão da seguinte maneira: Diagrama de estados de um contador de 3 BITs Máquina de Moore: Saída só depende do estado atual !!!! Emanuel Pencil Emanuel Pencil Funcionamento S0 S1 S2 Count_IN Contador: H 111 A 000 B 001 C 010 D 011E 100 F 101 G 110 0 0 0 Estado: A Funcionamento S0 S1 S2 Count_IN Contador: H 111 B 001 A 000 C 010 D 011E 100 F 101 G 110 1 0 0 Estado: B Funcionamento S0 S1 S2 Count_IN Contador: H 111 C 010 A 000 B 001 D 011E 100 F 101 G 110 0 1 0 Estado: C Funcionamento S0 S1 S2 Count_IN Contador: H 111 D 011 A 000 B 001 C 010 E 100 F 101 G 110 1 1 0 Estado: D . . . Memória !!!! Funcionamento S0 S1 S2 Count_IN Contador: H 111 E 100 A 000 B 001 C 010 D 011 F 101 G 110 0 0 1 Estado: E . . . Memória !!!! O que é uma FSM? • A máquina de estados é uma representação abstrata comportamental de um sistema digital que possui: – Memória (obrigatório) – Entradas (opcional – se o clock não for considerado entrada) – Saídas (obrigatório) O que é uma FSM? • A máquina de estados é uma representação abstrata comportamental de um sistema digital que possui: – Memória (obrigatório) – Entradas (opcional – se o clock não for considerado entrada) – Saídas (obrigatório) – Utilidade (desejável) Baixando o nível Baixando o nível (de abstração) S0 S1 S2 Count_IN Contador: D1 Q1 D2 Q2 D0 Q0 Função de Próximo Estado (comb.) Função de Saída (comb.) Níveis de abstração • Comportamental • RTL (Register Transfer Level) • Lógico (esquemático: portas lógicas) • Elétrico (esquemático: transistores) • Físico (arranjo geométrico de materiais condutores, isolantes e semicondutores) Entradas externas • Neste caso a única entrada do circuito é o próprio clock e a cada evento deste (borda de subida ou descida, dependendo dos Flip-Flops utilizados) há uma transição de estado. • Podemos ter casos em que as transições ocorram apenas em determinadas condições de entrada. Ex.: A 000 B 001 X X XYX+Y Contador Habilitável (Enable) S0 S1 S2 Count_IN Contador: H 111 A 000 B 001 C 010 D 011E 100 F 101 G 110 0 0 0 Estado: A En En En En En En 0 En En En En En En En En Contador Habilitável (Enable) S0 S1 S2 Count_IN Contador: H 111 A 000 B 001 C 010 D 011E 100 F 101 G 110 0 0 0 Estado: A En En En En En En 0 En En En En En En En En Contador Habilitável (Enable) S0 S1 S2 Count_IN Contador: H 111 A 000 B 001 C 010 D 011E 100 F 101 G 110 0 0 0 Estado: A En En En En En En 0 En En En En En En En En Contador Habilitável (Enable) S0 S1 S2 Count_IN Contador: H 111 A 000 B 001 C 010 D 011E 100 F 101 G 110 0 0 0 Estado: A En En En En En En 0 En En En En En En En En Contador Habilitável (Enable) S0 S1 S2 Count_IN Contador: H 111 A 000 B 001 C 010 D 011E 100 F 101 G 110 0 0 0 Estado: A En En En En En En 1 En En En En En En En En En En En En En En En En Contador Habilitável (Enable) S0 S1 S2 Count_IN Contador: H 111 B 001 A 000 C 010 D 011E 100 F 101 G 110 1 0 0 Estado: B En1 En En En En En En En En En En En En En Emanuel Lápis Contador Habilitável (Enable) S0 S1 S2 Count_IN Contador: H 111 C 010 A 000 B 001 D 011E 100 F 101 G 110 0 1 0 Estado: C En1 En En En En En En En En En En En En En Contador Habilitável (Enable) S0 S1 S2 Count_IN Contador: H 111 C 010 A 000 B 001 D 011E 100 F 101 G 110 0 1 0 Estado: C En0 En En En En En En En En En En En En En Contador Habilitável (Enable) S0 S1 S2 Count_IN Contador: H 111 C 010 A 000 B 001 D 011E 100 F 101 G 110 0 1 0 Estado: C En0 En En En En En En En En En En En En En Contador Habilitável (Enable) S0 S1 S2 Count_IN Contador: H 111 C 010 A 000 B 001 D 011E 100 F 101 G 110 0 1 0 Estado: C En0 En En En En En En En En En En En En En Baixando o nível... S0 S1 S2 Count_IN Contador: D1 Q1 D2 Q2 D0 Q0 Função de Próximo Estado (comb.) Função de Saída (comb.) En Tabela de Transição Contador simples (sem Enable) Entrdas da Função de p. Estado Saídas da Função de Saída Saídas da Função de p. Estado Baixando o nível... S0 S1 S2 Count_IN Contador: D1 Q1 D2 Q2 D0 Q0 Função de Próximo Estado (comb.) Função de Saída (comb.) En Codificação dos Estados O número de FFs necessários à implementação da máquina obedece a seguinte relação: NFF = log 2 NE Onde NFF é o número de FFs necessários e NE é o numero de estados da máquina. Ou seja, para representar: Até 2 estados precisamos de 1 FF Até 4 estados precisamos de 2 FFs Até 8 estados precisamos de 3 FFs Até 16 estados precisamos de 4 FFs ... Mealy x Moore Moore Saídas dependem apenas do estado atual e suas variações são síncronas Mealy As saídas dependem do estado atual e das entradas; Como as entradas são assíncronas as saídas podem ter variações assíncronas Mealy x Moore Mealy Exemplo Mealy x Moore Exercício 2 0 Nome Saída Representação de cada estado (Moore): 1 0 0 0 B’ B B’ B’ C∙B É possível obter algum benefício usando Mealy? Mealy x Moore Máquinas de Mealy são mais econômicas em termos de registradores, pois podem ter menos estados que sua dual Moore Porém podem apresentar Glitches na saída nas transições de entrada e o diagrama é mais difícil de interpretar Baixando o nível (Mealy)... S0 S1 S2 Ck D1 Q1 D2 Q2 D0 Q0 Função de Próximo Estado (comb.) Função de Saída (comb.) In 1. Interpretação do problema 2. Diagrama de estados 3. Determinação do número de FFs 4. Codificação e nomeação dos estados 5. Tabela de transição 6. Determinação da função de próximo estado 7. Determinação da função de saída 8. Desenho do esquemático Fluxo de Projeto (manual) Síntese das funções lógicas Considerações sobre projeto automatizado • Linguagens de descrição de Hardware – Descrições podem ser • Comportamental • Estrutural • Mistas • Ferramentas de simulação e geração automática de leiaute FSMs na Disciplina • Lembram do somador bit a bit projetado em Técnicas Digitais? • FSMs serão a base da Parte de Controle (PC) de sistemas digitais compostos também por uma Parte Operativa (PO) Exercício 1: Análise Escreva a tabela de transição e desenhe o diagrama de estados do circuito abaixo, identificando as equações booleanas das funções de próximo estado e de saída. D Q E Ck S Quantos estados o circuito pode representar? Defina quais são os sinais de entrada e saída (quem é quem). Parta do preenchimento da seguinte tabela: “D” é função de “Q” e “E” “S” é apenas função de “Q” (Maq. De Moore) Emanuel Lápis Emanuel Lápis Emanuel Lápis Exercício 2: Projeto Projetar o contador habilitável estudado nesta aula (3 BITs) EmanuelCarimbo Emanuel Texto digitado https://www.youtube.com/watch?v=6e8oV2blkGs Emanuel Lápis Emanuel Lápis Emanuel Lápis Emanuel Lápis Emanuel Lápis Exercício 3: Projeto Projetar um contador simples que conta apenas os números impares: 1, 3, 5 e 7 Emanuel Carimbo Exercício 4: Projeto Projetar um circuito que terá como entrada um push-button e como saída 3 LEDs. Quando o botão for pressionado uma vez o circuito será ligado, sendo que para desligar o circuito o botão deve ser pressionado novamente (Modo Toggle). Quando o circuito estiver ligado os 3 LEDS devem piscar alternadamente no sentido horário (apenas um LED ligado por vez). Emanuel Texto digitado Mesmo passo a passo do exemplo 3, porém não sei como inclur o botão Tabela de Excitação Q Q+1 D 0 0 0 0 1 1 1 0 0 1 1 x SISTEMAS DIGITAIS - PROJETO DE UM CONTADOR DE 3 BITS COM ENABLE Saídas D0 C EN D1 B (EN.C) D2 A (EN.B.C) ESTADO ATUAL PRÓXIMO ESTADO Nº EN A B C D2 D1 D0 1 0 0 0 0 0 0 0 2 0 0 0 1 0 0 1 3 0 0 1 0 0 1 0 4 0 0 1 1 0 1 1 5 0 1 0 0 1 0 0 6 0 1 0 1 1 0 1 7 0 1 1 0 1 1 0 8 0 1 1 1 1 1 1 9 1 0 0 0 0 0 1 10 1 0 0 1 0 1 0 11 1 0 1 0 0 1 1 12 1 0 1 1 1 0 0 13 1 1 0 0 1 0 1 14 1 1 0 1 1 1 0 15 1 1 1 0 1 1 1 16 1 1 1 1 0 0 0