Projeto de Máquinas de Estado



Documentos relacionados
CAPÍTULO 6 CIRCUITOS SEQUENCIAIS IV: PROJETO DE REDES SEQUENCIAIS

Figura 1 - Diagrama de um sistema de controle de temperatura que requer conversão analógico-digital para permitir o uso de técnicas de processamento

Circuitos Lógicos Aula 23

Capítulo VIII Registradores de Deslocamento e Contadores

Circuitos Sequenciais. Sistemas digitais

Índice. Modelos e Procedimentos

Análise e Projeto de Contadores Síncronos. Circuitos Lógicos Prof. Daniel D. Silveira

CAPÍTULO 4 CIRCUITOS SEQUENCIAIS II: CONTADORES ASSÍNCRONOS

Organização e Arquitetura de Computadores I

CEFET/RJ - Centro Federal de Educação Tecnológica Celso Suckow da Fonseca Rio de Janeiro, 13 de novembro de 2008.

Circuitos Digitais Cap. 6

Circuitos Seqüenciais: Latches e Flip-Flops. Fabrício Noveletto

Contadores. Contadores Assíncronos Crescentes

Instituto Tecnológico de Aeronáutica - ITA Divisão de Engenharia Eletrônica Departamento de Eletrônica Aplicada Laboratório de EEA-21

CAPÍTULO 5 CIRCUITOS SEQUENCIAIS

Circuitos Seqüenciais

GUIA DE LABORATÓRIO DE SISTEMAS DIGITAIS PARA O CURSO DE ENGENHARIA DE CONTROLE E AUTOMAÇÃO

Circuitos Digitais Cap. 5

Universidade Federal de Santa Catarina Centro Tecnológico Departamento de Informática e Estatística Curso de Graduação em Ciências da Computação

Exame (2ª chamada) Sistemas Digitais I LESI 2º ano ❶ Ano 2001/02 21/Jun/2002 Univ. Minho

Conceitos básicos do


1 Título. 2 Objetivos. 3 - Fundamentos Teóricos. Página 1 de 5 Universidade Federal de Juiz de Fora. Prática 1 Aplicações das Funções Lógicas

MINISTÉRIO DA EDUCAÇÃO IFSC - Campus São José. CST em Telecomunicações ELETRÔNICA DIGITAL CONTADORES. Marcos Moecke

Disciplina: : ELETRÔNICA DIGITAL

Universidade Federal de Santa Catarina Centro Tecnológico Departamento de Informática e Estatística Curso de Graduação em Ciências da Computação

Circuitos Digitais. Conteúdo. Introdução. Códigos. Outros Códigos BCD de 4 Bits. Código BCD Circuitos Combinacionais.

MÓDULO N.º 1 SISTEMAS DE NUMERAÇÃO HORAS / TEMPOS CONTEÚDOS OBJETIVOS AVALIAÇÃO

Aula 8 Circuitos Integrados

INSTITUTO DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE SERGIPE COORDENADORIA DE ELETRÔNICA CONTADORES

LABORATÓRIO DE ELETRÔNICA DIGITAL Experiência 9: Análise de Circuitos com Contadores

CAPÍTULO 1 REVISÃO DE LÓGICA COMBINACIONAL

PROJETO LÓGICO DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar

Aritmética Binária e. Bernardo Nunes Gonçalves

Autómatos Finitos Determinísticos

Exercícios de Circuitos Combinacionais

ANO LETIVO 2015 / 2016

Diagrama de transição de Estados (DTE)

Fabio Bento

Modelagem de Circuitos Digitais

CALCULADORA SIMPLES COM ULA

Programa da disciplina, i metodologia de ensino, avaliações e bibliografia básica. Objetivos da Disciplina

Tais operações podem utilizar um (operações unárias) ou dois (operações binárias) valores.

EA773 - Experimento 5

Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia Disciplina de Lógica Computacional Aplicada. Prof. Dr.

Álgebra de Boole e Teorema de De Morgan Prof. Rômulo Calado Pantaleão Camara. Carga Horária: 2h/60h

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES

Curso: Técnico de Informática Disciplina: Redes de Computadores. 1- Apresentação Binária

Aula 2: Conversão entre Bases, Aritmética

Circuitos Lógicos Registradores e Contadores

Experimento 11 - Contador síncrono

Exercícios de Eletrônica Digital Instrutor Gabriel Vinicios Tecnologia Eletrônica II - Tarde

ULA Sinais de Controle enviados pela UC

Introdução. de Eletrônica Digital (Parte II) Universidade Federal de Campina Grande Departamento de Sistemas e Computação. Carga Horária: 60 horas

CAPÍTULO 5 CIRCUITOS SEQUENCIAIS III: CONTADORES SÍNCRONOS

1. Sistemas de numeração

BARRAMENTO DO SISTEMA

Flip-Flops (Aplicações) Prof. Rômulo Calado Pantaleão Camara

DATA: HORÁRIO DE ENTRADA: HORÁRIO DE SAÍDA: BANCADA: NOMES DOS COMPONENTES DO GRUPO DE TRABALHO:

MINISTÉRIO DA EDUCAÇÃO CEFET/SC - Unidade de São José. Curso Técnico em Telecomunicações CONTADORES. Marcos Moecke

FACULDADE CAMPO LIMPO PAULISTA MESTRADO EM CIÊNCIA DA COMPUTAÇÃO. Projeto e Análise de Algoritmos II Lista de Exercícios 2

SISTEMAS DIGITAIS LETI, LEE Ano lectivo de 2013/2014 Trabalho 3 Latches e Flip-Flops

EA075 Conversão A/D e D/A

a 1 x a n x n = b,

A lógica de programação ajuda a facilitar o desenvolvimento dos futuros programas que você desenvolverá.

Introdução à Organização e Arquitetura de Computadores. Prof. Leonardo Barreto Campos 1

SUMÁRIO 1. AULA 6 ENDEREÇAMENTO IP:... 2

CAPÍTULO 5 CONTADORES NA FORMA DE CIRCUITO INTEGRADO

MÓDULO 6 INTRODUÇÃO À PROBABILIDADE

4 Arquitetura básica de um analisador de elementos de redes

Introdução à Lógica de Programação

Portas Lógicas Básicas Prof. Rômulo Calado Pantaleão Camara. Carga Horária: 2h/60h

Disciplina: Laboratório de Circuitos Digitais

Tabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008

Preparando um esquema de endereçamento de sua rede

Múltiplos Estágios processo com três estágios Inquérito de Satisfação Fase II

5º Experimento: Somador Binário de números com sinal

Memorias. Flip-Flop RS básico (Assíncrono) preencher. Tabela da verdade S R Q A S Q

Universidade Estadual do Ceará

Setores Trilhas. Espaço entre setores Espaço entre trilhas

Apostila de Fundamentos de Programação I. Prof.: André Luiz Montevecchi

PROGRAMAÇÃO EM LINGUAGEM LADDER LINGUAGEM DE RELÉS

Bases Matemáticas. Aula 2 Métodos de Demonstração. Rodrigo Hausen. v /15

FERRAMENTA DIDÁTICA PARA DISCIPLINA DE ELETRÔNICA DIGITAL

Máquinas de estado. Rodrigo Hausen ... saída próx. estado. entrada estado. Circuito combinacional para o cálculo do próximo estado.

1. NÍVEL CONVENCIONAL DE MÁQUINA

Orientação a Objetos

UFSM-CTISM. Circuitos Digitais Contadores Aula-11

Controladores Lógicos Programáveis CLP (parte-3)

NOME: TURMA. a) Mostre que, numa representação em complemento para dois, são necessários 8 bits para representar Tset e 7 bits para representar T.

CAPÍTULO 5. INTERFACES PARA PERIFÉRICOS DE ARMAZENAMENTO INTERFACES DIVERSAS: FIREWIRE, SPI e I 2 C INTERFACES COM O MUNDO ANALÓGICO

Sistemas Digitais Contadores. João Paulo Carvalho

Um circuito comparador permite determinar se dois números binários são iguais, e não o sendo, qual deles é o maior.

04 Simplificação de funções lógicas. v0.1

Aula 11: Blocos Digitais Básicos Decodificador e Multiplexador

Soluções de Questões de Matemática do Centro Federal de Educação Tecnológica Celso Suckow da Fonseca CEFET/RJ

Circuitos Digitais. Conteúdo. Sistema de Numeração e Códigos :: Conversões de Binário para Decimal SISTEMA DE NUMERAÇÃO E CÓDIGOS

SISTEMAS DIGITAIS. Memórias. Prof. Guilherme Arroz Prof. Carlos Sêrro Alterado para lógica positiva por Guilherme Arroz.

Transcrição:

Projeto de Máquinas de Estado Organizado por Rodrigo Hausen. Original de Thomas L. Floyd. Versão 0: 15 de março de 2013 http://compscinet.org/circuitos Resumo Grande parte deste texto, exemplos e estrutura geral foram retirados da seção 8-4 do livro Sistemas igitais (9a. ed.) de Thomas L. Floyd. Este texto foi organizado para apresentar uma abordagem mais simples para o projeto de máquinas de estados do que a contida no original. 1 Modelo Geral de uma Máquina de Estados Antes de procedemos com qualquer técnica de projeto de contadores, começaremos com uma definição geral de uma máquina de estados: um circuito sequencial genérico que consiste de uma seção feita a partir de lógica combinacional e uma seção de memória (flip-flops), como demonstrado na Figura 1. Em um circuito sequencial síncrono (que recebe um único sinal de clock), há uma entrada para o clock na seção de memória como indicado. Y 0n 1 Y 01 Y 0 Entrada de dados Memória Saída de dados n 1 01 00 entrada estado atual saída próx. estado Circuito combinacional para o cálculo do próximo estado X 10 X 11 X m 1 Entradas Circuito combinacional para o cálculo das saídas Z k 1 Z 01 Z 00 Saídas Figura 1: Modelo geral de uma máquina de estados com entrada de clock 1

A informação armazenada na seção de memória, assim como nas entradas X 0, X 1,... X m 1 do circuito combinacional, é necessária para a operação adequada do circuito. Em um dado instante, a memória está em um estado denominado estado atual, e avançará para o próximo estado, ao detectar uma transição do clock, de acordo com as condições das linhas de ativação Y 0, Y 1,..., Y n 1. O estado atual da memória é representado pelas variáveis de estado 0, 1,..., n 1. Estas variáveis de estado determinam as saídas do sistema Z 0, Z 1,..., Z k 1. Nem todas as máquinas de estado possuem variáveis de entrada e saída como neste modelo geral recém-discutido. Porém, todos possuem variáveis de ativação e de estado. Contadores são um caso especial de máquina de estado sensíveis à transição do clock. Nesta seção, um procedimento geral de projeto de máquinas de estado é aplicado aos contadores síncronos em uma série de passos. 2 Exemplo: Implementação de Contador Gray Um código de Gray é um sistema de numeração binário onde dois valores sucessivos diferem de apenas um bit. Por exemplo, em um código de Gray de 3 bits, a sequência de numerais que representa os números de 0 a 7 é: 000, 001, 011, 010, 110, 111, 101, 100. 2.1 Passo 1: iagrama de Estados O primeiro passo no projeto de um contador é a criação de um diagrama de estados. Um diagrama de estados mostra a progressão dos estados através dos quais o contador avança a cada transição do clock. A figura 2 é o diagrama de estados para um contador de código de Gray de 3 bits. Este circuito particular possuirá apenas uma entrada, o clock, e as únicas saídas serão aquelas obtidas dos estados dos flip-flops no contador. 000 100 001 101 011 111 010 110 Figura 2: iagrama de estados para um contador de Gray de 3 bits. 2

2.2 Passo 2: Tabela de transição Uma vez que o funcionamento da máquina de estados esteja definido por meio de um diagrama de estado, o segundo passo é determinar uma tabela de transição para o próximo estado, que lista cada estado do contador (estado atual), junto com o próximo estado correspondente. O próximo estado é o estado para onde o contador vai ao detectar uma transição do clock. A tabela de transição é derivada do diagrama de estados. A Tabela 1 mostra a tabela de transição para o contador de Gray de 3 bits; 0 é o bit menos significativo. Tabela 1: Tabela de transição para o contador de Gray de 3 bits. atual próximo 2 1 0 Y 2 Y 1 Y 0 0 0 0 0 0 1 0 0 1 0 1 1 0 1 1 0 1 0 0 1 0 1 1 0 1 1 0 1 1 1 1 1 1 1 0 1 1 0 1 1 0 0 1 0 0 0 0 0 2.3 Passo 3: determinação e otimização de expressões Usaremos uma memória composta por flip-flops do tipo, onde as linhas de ativação Y 0, Y 1, Y 2 determinarão o próximo estado da saída de cada flip-flop. Para calcular o estado de cada linha de ativação, precisamos determinar uma expressão para cada variável Y i com base em 2, 1 e 0. Usaremos mapas de Karnaugh para obter expressões simplificadas para cada linha de ativação. A Figura 3 mostra os mapas de Karnaugh construídos a partir da tabela de transição. 00 01 11 10 0 1 1 0 0 1 0 0 1 1 2 1 0 00 01 11 10 0 0 1 1 1 1 0 0 0 1 2 1 0 (a) Mapa para Y 0 (b) Mapa para Y 1 00 01 11 10 0 0 0 0 1 1 0 1 1 1 2 1 0 (c) Mapa para Y 2 Figura 3: Mapas de Karnaugh para as linhas de ativação Y 0, Y 1 e Y 2. 3

os mapas de Karnaugh na figura 3, obtemos as seguintes expressões para as linhas de ativação: Y 0 = 1 2 + 1 2 = 1 2 Y 1 = 0 2 + 1 0 Y 2 = 0 2 + 1 0 Observe que, como A B + A B = A B, podemos simplificar ainda mais a expressão para Y 0, saindo da forma de soma de produtos. 2.4 Passo 4: Implementação O passo final é implementar a lógica combinacional a partir das expressões para cada linha de ativação Y 0, Y 1 e Y 2 e conectar os flip-flops para formar o contador de código de Gray de 3 bits como na Figura 4. Os flip-flops fazem o papel de memória neste circuito. Y 0 Y 1 Y 2 02 01 00 Figura 4: Contador para código de Gray de 3 bits. Note que, na Figura 4, desprezamos as saídas. Poderíamos usá-las para economizar portas NOT no circuito combinacional do cálculo do próximo estado. A Figura 5 mostra como isso é feito. A seguir temos um resumo dos passos usados no projeto deste contador. Em geral, esses passos podem ser aplicados ao projeto de qualquer máquina de estados. 1. Especifique a sequência de estados do contador e desenhe o diagrama de estados. 2. Obtenha a tabela de transição a partir do diagrama de estados 3. Para cada linha de ativação, obtenha uma expressão a partir do diagrama de estados. Para modelos pequenos, como os estudados no nosso curso, isso pode ser feito por meio de mapas de Karnaugh. 4

Y 0 Y 1 Y 2 02 01 00 Figura 5: Aproveitando as saídas. 4. Implemente as expressões por meio de lógica combinacional e combine com flip-flops para criar o contador. Note que o projeto de contadores pode ser feito também com outros flipflops além daqueles do tipo. O livro do Floyd (seção 8-4, 9a ed.) mostra como construir o mesmo contador usando flip-flops J-K. 3 Exemplo: Implementação de Contador com Sequência Arbitrária Projete um contador para a sequência irregular de contagem binária mostrada no diagrama de estado da Figura 6. Use flip-flops. 001 111 010 101 Figura 6: iagrama para um contador com sequência arbitrária Há duas maneiras de se implementar este contador. Como ele possui apenas quatro estados, uma primeira maneira seria usar um contador de 2 bits e fazer um circuito combinacional para transformar a saída, cuja sequência de estados seria 00, 01, 10, 11, da seguinte forma: 00 001, 01 010, 10 101 e 5

11 111. A segunda maneira, a qual demonstraremos a seguir, é implementar um contador síncrono de 3 bits que transita diretamente entre esses quatro estados. Passo 1: já nos foi dado o diagrama de estados, portanto nada mais há a fazer neste passo. Passo 2: na Tabela 2 temos a tabela de transição desenvolvida a partir do diagrama de estado. Tabela 2: Tabela de transição. atual próximo 2 1 0 Y 2 Y 1 Y 0 0 0 1 0 1 0 0 1 0 1 0 1 1 0 1 1 1 1 1 1 1 0 0 1 Passo 3: determinação e otimização de expressões. as tabelas-verdade para Y 0, Y 1 e Y 2 obtemos os mapas de Karnaugh da Figura 7. Note que há várias células preenchidas com um X, que correspondem os estados para 2, 1 e 0 que nunca serão alcançados neste caso, os estados 000, 011, 100 e 110. Uma célula preenchida com um X (também chamada de don t care) pode ser agrupada junto com um ou mais 1s, desde que ela sirva para simplificar a expressão. 2 1 0 00 01 11 10 0 X 0 X 1 1 X 1 1 X 2 1 0 00 01 11 10 0 X 1 X 0 1 X 1 0 X (a) Mapa para Y 0 (a) Mapa para Y 1 2 1 0 00 01 11 10 0 X 0 X 1 1 X 1 0 X (a) Mapa para Y 2 Figura 7: Mapas de Karnaugh para o próximo estado do contador irregular. Com os agrupamentos mostrados na Figura 7, obtemos as seguintes expressões: Y 0 = 1 + 2 Y 1 = 1 6

Y 2 = 0 + 1 2 Passo 4: a implementação do contador irregular é mostrada na Figura 8. Y 1 Y 0 Y 2 02 01 00 Figura 8: Implementação do contador irregular. 4 Exercícios Faça os exercícios 14 e 15 do capítulo 8 do livro do Floyd. Nos exercícios 16, 17 e 18 use flip-flops em vez de flip-flops J-K. Referências [1] FLOY, Thomas L. Sistemas igitais: Fundamentos e Aplicações. Editora Bookman, 9 a Edição, 2007. 7