12/11/13. Obje%vos do laboratório. SST20707 Síntese de Sistemas de Telecomunicações. Síntese de máquinas de estado (FSM) Finite State Machine (FSM)

Documentos relacionados
Tipos enumerados definem uma lista de valores, e são especialmente úteis na

Fundamentos de Sistemas Digitais. Lógica Sequencial. Prof. Dr. Alexandre M. Amory Prof. Dr Edson I. Moreno

Exercícios de Fixação

Os sistemas combinacionais a saída depende exclusivamente das condições das entradas, portanto o sistema não possui memória interna.

Lógica Reconfigurável

Disciplina de SSC Elementos de Lógica Digital II (Prática)

Descreva em VHDL, simule no simulador logico e sintetize usando uma ferramenta de CAD para FPGA :

LABORG. VHDL Máquina de estados finitos

IMPLEMENTAÇÕES POR EQUAÇÃO DE ESTADOS E DE SAÍDA DOS MODELOS DE MEALY E DE MOORE 1 BIT POR ESTADO.

2006, António Esteves, Sistemas Digitais 1, UM-DI. Módulo 6. Sistemas sequenciais

Registradores. Circuitos Lógicos. DCC-IM/UFRJ Prof. Gabriel P. Silva

Exercícios de Laboratório 3

low): Descreve o que o sistema deve fazer utilizando expressões lógicas.

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

Exercícios Referentes à Prova P2

Lógica Reconfigurável

Suporte de funcionamento e interacção com o teclado

AULA 5 Aplicação com divisor de freqüência com o CI Livro Texto pág.197 a 200.

VHDL Circuitos Combinacionais

FSM em VHDL e Verificação Funcional. CMP de junho de 2006

Algumas questões de prova recentes com seus gabaritos

CIRCUITOS SEQUENCIAIS parte 2 Máquina de Estados Finita (FSM)

Eletrônica Digital para Instrumentação. Herman Lima Jr.

EPUSP PCS 2355 Laboratório Digital. Contadores em VHDL

Módulo 4 Introdução ao VHDL

ISE com VHDL estrutural

VHDL Lógica Síncrona. Sinais de Saída. Sinais de Entrada. barreira. carg. VHDL -Lógica Síncrona

LABORG. Parte 5 Projeto de um circuito digital de média complexidade. Fernando Gehm Moraes Matheus Trevisan

LABORG. Parte 3 - VHDL: Processos, Paralelismo e o Comando process. Fernando Gehm Moraes Ney Laert Vilar Calazans

Descrição por fluxo de dados (Data-Flow): Descreve o que o sistema deve fazer utilizando expressões lógicas.

TIPO INTEGER. Profa. Luiza Maria Romeiro Codá 2

Exercícios Referentes à Prova P1

Projeto com Dispositivos Programáveis

Circuitos Seqüenciais

Laboratório sobre Implementação de Sistemas Digitais com VHDL Acesso à Memória Externa na Plataforma de Prototipação XS40/XST-1

CIRCUITOS SEQUENCIAIS parte 1

CMP238 Projeto e Teste de Sistemas VLSI

LABORG. Parte 5 Projeto de um circuito digital de média complexidade Parte 2. Fernando Gehm Moraes Matheus Trevisan

UNIVERSIDADE ESTADUAL PAULISTA. Campus de Guaratinguetá Colégio Técnico Industrial de Guaratinguetá Professor Carlos Augusto Patrício Amorim

Aula 2 Semântica de VHDL

Introdução a Sistemas Digitais

Plano de Aula 26/8/13. VHDL - Visão Geral. Obje%vos: VHDL - Visão Geral. Descrição de circuito digital em VHDL

Aula 7 SISTEMAS DIGITAIS. Linguagem de Descrição de Hardware VHDL Maquinas de Estados. Prof. Fernanda Gusmão de Lima Kastensmidt

Análise de Circuitos Sequënciais Máquinas de Mealy e Moore

PDA de Sistemas Digitais em Circuitos Programáveis

VHDL - VHSIC Hardware Description Language. Exemplo prático. Raiz Quadrada

EELi02. Prof. Vinícius Valamiel

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

Funções de Lógica Combinacional

Eletrônica Digital para Instrumentação. Prof: Herman Lima Jr

PCS3225. Sistemas Digitais II. Biestáveis em VHDL. Biestáveis em VHDL. Marcos A. Simplicio Jr.

Lógica Reconfigurável

Organização e Arquitetura de Computadores

Microprocessadores. Introdução ao Prof. Henrique

VHDL. Prof. Maurício A Dias Laboratório de Lógica Digital

CONTADORES DIGITAIS (Unidade 6)

EPUSP PCS 3335/3635 Laboratório Digital. Circuito em VHDL

Introdução à Linguagem VHDL

Introdução a Sistemas Digitais

Máquinas de Estados Finitos. Aula 19 Prof. Abel Guilhermino

Implementação de um Sistema Digital em VHDL Cronômetro para Jogos de Basquete

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

2. FLIP FLOP tipo D síncrono borda de descida e com entradas assíncronas preset e clear. PRE Q n F/F CLR

Laboratório sobre Implementação de Sistemas Digitais com VHDL Multiplicação por somas sucessivas

Registradores de Deslocamentos.

ELETRÔNICA DIGITAL II

Projeto de Circuito Combinacional

Disciplina de SSC Elementos de Lógica Digital II (Prática)

Descrição de um Hardware Multiplicador Parametrizável para Números Sinalizados em Complemento a Dois em Lógica Configurável

Aula 17. Máquina de Estados Parte 1. SEL Sistemas Digitais. Prof. Dr. Marcelo Andrade da Costa Vieira

FPGA & VHDL. Tutorial

Fundamentos de sistemas digitais. Test-bench. prof. Dr. Edson Ifarraguirre Moreno

Painel Luminoso com LEDs

Circuitos Seqüenciais

Circuitos Seqüenciais

Circuitos Digitais. Tipos de circuitos digitais: Circuitos combinacionais Circuitos sequenciais

Lab 3. Timing Timing Constraints Simulação

Painel Luminoso com LEDs

Organização e Arquitetura de Computadores I

Revisão: Projeto de Processadores em VHDL

CIRCUITOS SEQUENCIAIS. Adão de Melo Neto

Shift Registers e Contadores Assíncronos

Aula 18. Máquina de Estados Parte 2. SEL Sistemas Digitais. Prof. Dr. Marcelo Andrade da Costa Vieira

VHDL. Descrição e Projeto de Circuitos Utilizando VHDL

Organização e Arquitetura de Computadores I

Laboratório sobre Implementação de Sistemas Digitais com HDLs Ferramentas de Captura e Validação

UNIVERSIDADE ESTADUAL PAULISTA. Campus de Guaratinguetá Colégio Técnico Industrial de Guaratinguetá Professor Carlos Augusto Patrício Amorim

EPUSP PCS 2011/2305/2355 Laboratório Digital. Frequencímetro

PRÁTICAS PARA DESENVOLVIMENTO DE PROTÓTIPOS DE CIRCUITOS DIGITAIS COM O KIT EDUCACIONAL DE2

Circuitos Seqüenciais

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

UNIVERSIDADE ESTADUAL PAULISTA. Campus de Guaratinguetá Colégio Técnico Industrial de Guaratinguetá Professor Carlos Augusto Patrício Amorim

2 a Lista de Exercícios

FPGA & VHDL. Tutorial Aula 1. Computação Digital

Demonstração de imagens de auxílio didático. VHDL - Descrição e Síntese de Circuitos Digitais Roberto d Amore

CIRCUITOS SEQUENCIAIS (Unidade 5)

Introdução. VHDL: VHSIC Hardware Description Language. Origem: VHSIC: Very High Speed Integrated Circuits. Departamento de Defesa EUA

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

Transcrição:

Instituto Federal de Santa Catarina Área de Telecomunicações SST20707 Síntese de Sistemas de Telecomunicações Prof. Roberto de Matos Aviso de direitos Autorais: Transparências baseadas no trabalho do Prof. Eduardo Augusto Bezerra roberto.matos@ifsc.edu.br São José, agosto de 2013. Obje%vos do laboratório 1. Entender o conceito de máquinas de estados (FSM). 2. Entender o conceito de circuito sequencial controlando o fluxo de atividades de circuito combinacional. 3. Entender o processo de síntese de FSMs em.. Entender o funcionamento de contadores. 5. Estudo de caso: projeto e implementação em de um contador baseado em máquinas de estados. Síntese de máquinas de estado (FSM) Sistemas computacionais, normalmente, são compostos por um módulo de controle e um módulo para execução das operações. Máquina de venda de refrigerantes - Recebe R$ - Devolve troco - Fornece produto Computador - Busca instrução - Decodifica - Executa - Acessa memória - Escreve resultados Automóvel (sistemas embarcados) - Alarme - Vidros - ABS O controlador é responsável por coordenar a sequência de a?vidades a ser realizada em um determinado processo (ou sistema) Em sistemas digitais são u?lizados circuitos sequenciais na geração de sinais de controle Um circuito sequencial transita por uma série de estados e, a cada estado (a cada momento), poderá fornecer uma determinada saída As saídas são u?lizadas no controle da execução de a?vidades em um processo A lógica sequencial u?lizada na implementação de uma FSM possui um número finito de estados. 1

Modelo de comportamento composto por: Estados Transições Ações Estados Armazena informação sobre o passado refletindo as modificações das entradas do início até o presente momento Transição Indica uma troca de estado e é descrita por uma condição que habilita a modificação de estado Ação Descrição da atividade que deve ser executada em um determinado instante Dois módulos: Armazenamento do estado atual ; e Cálculo da saída e do próximo estado Armazenamento do estado atual Registrador construído a partir de flip-flops Entradas Primárias Estado Atual Circuito Combinacional (Funções de Saída e Funções de Próximo Estado) Saídas Primárias Próximo Estado Cálculo da saída e do próximo estado Circuito combinacional; ou Tabela verdade da lógica de saída e da lógica de próximo estado armazenada em uma memória (ROM, Flash, RAM,...) Registrador de Estado Sinal de relógio ("Clock") Sinal de inicialização ("Reset") Qpico de uma máquina de estados 2 processos Síntese de FSMs if X='0' then PE <=S0; PE <= S2; if X='0' then PE <=S0; PE <= S2; if X='0' then PE <=S2; PE <= S3; if X='0' then PE <=S3; PE <= S1; 2

Qpico de uma máquina de estados 2 processos Qpico de uma máquina de estados 2 processos TIPO ENUMERADO Sinais EA (estado atual) e PE (próximo estado) Registrador que armazena o EA em função do próximo estado if X='0' then PE <=S0; PE <= S2; if X='0' then PE <=S0; PE <= S2; if X='0' then PE <=S2; PE <= S3; if X='0' then PE <=S3; PE <= S1; if X='0' then PE <=S0; PE <= S2; if X='0' then PE <=S0; PE <= S2; if X='0' then PE <=S2; PE <= S3; if X='0' then PE <=S3; PE <= S1; Qpico de uma máquina de estados 2 processos Qpico de uma máquina de estados 2 processos if X='0' then PE <=S0; PE <= S2; if X='0' then PE <=S0; PE <= S2; if X='0' then PE <=S2; PE <= S3; if X='0' then PE <=S3; PE <= S1; Geração do PE e a saída Z em função do EA e da entrada X (observar a lista de sensitividade) Desenhe a máquina de estados conforme as transições especificadas no processo combinacional: if X='0' then PE <=S0; PE <= S2; if X='0' then PE <=S0; PE <= S2; if X='0' then PE <=S2; PE <= S3; if X='0' then PE <=S3; PE <= S1; Esta é uma máquina Moore. A saída (Z) depende apenas do estado atual (S0,...). Em uma máquina de Mealy, a saída depende do estado E das entradas. 1 proc Máquina de estados 1 processo if X='0' then PE <=S0; PE <= S2; if X='0' then PE <=S0; PE <= S2; if X='0' then PE <=S2; PE <= S3; if X='0' then PE <=S3; PE <= S1; architecture B of MOORE is signal EA: STATES; process(clock, reset) if X='0' then EA <=S0; EA <= S2; if X='0' then EA <=S0; EA <= S2; if X='0' then EA <=S2; EA <= S3; if X='0' then EA <=S3; EA <= S1; end B; EA: mesmo comportamento Saída Z ficará defasada 1 ciclo de clock 3

process(clock, reset) Máquina de estados 1 processo Z <= '0'; if X='0' then EA <=S0; EA <= S2; Z <= '1'; if X='0' then 1 proc Não tem o PE da FSM com 2 processos! P1 P1 CS CS NS P2 P3 P2 P3 P1 define o estado atual, atualizando essa informação (CS) para P2 e P3. Com base nos valores dos sinais, P2 define o próximo estado, colocando essa informação no sinal NS sem, contudo, realizar a transição (será realizada por P1). Com base nos valores dos sinais (status) da FSM, P3 define novos valores para os sinais (do estado atual). P1 - Processo, sensível as transições do clock, que realiza a transição de estados na FSM, fazendo com que o estado atual (CS, Current State) receba o próximo estado (NS, Next State). Essa transição é sensível a borda de descida do clock. P1: process(clk) if clk'event and clk = '0' then if rst = '0' then CS <= S0; CS <= NS; P2 Realiza as alterações nos estados (define o próximo estado). Sensível a alterações nos sinais definidos na lista de sensitividade. Controla os estados definindo o fluxo, ou seja, define qual será o valor do sinal NS a ser utilizado pelo processo P1 responsável por realizar as transições de estados. Comando "case CS is seleciona o estado atual (Current State) e, conforme os sinais da FSM, um próximo estado é definido no sinal NS. process( CS, X ) case CS is if X = '1' then NS <= S2; when others => P3 Realiza atribuições dos sinais em cada estado. Sinais são alterados na borda de subida, e os estados na borda de descida. São atribuídos todos os sinais, incluindo os sinais de saída e sinais internos do processo. process(clk) if clk'event and clk = '1' then case CS is Z <= '0' Z <= '0' Z <= '1'; when others => library ieee; use ieee.std_logic_116.all; entity FSM is port ( LEDR: out std_logic_vector(7 downto 0 KEY: in std_logic_vector(3 downto 0 CLOCK_50: in std_logic end FSM; architecture FSM_beh of FSM is type states is (S0, S1, S2, S3 signal EA, PE: states; signal clock: std_logic; signal reset: std_logic; clock <= CLOCK_50; reset <= KEY(3 if reset = '0' then elsif clock'event and clock = '1' then EA <= PE; process (EA, KEY(0), KEY(1)) if KEY(0) = '0' then PE <= S3; PE <= S0; LEDR <= "01010101"; PE <= S0; case KEY(1) is when '0' => LEDR <= "10101010"; when '1' => LEDR <= "00000000"; when others => LEDR <= "11111111"; PE <= S1; when S3 => PE <= S2; SST20707 Síntese end de Sistemas FSM_beh; de Telecomunicações Uso de sinais (pinos) disponíveis na DE2 para Clock e Reset

Tarefa Implementar uma FSM em com 1 processo para geração dos caracteres A a Z da tabela ASCII, apresentando os caracteres nos LEDs verdes (LEDG). Tarefa a ser realizada na aula prática FSM com reset assíncrono (usar botão KEY(0)) para inicializar um contador com o valor do primeiro caracter a ser gerado ( A = 1H). A cada pulso do relógio de 50MHz (borda de subida), o contador deverá ser incrementado, gerando o próximo caracter da tabela ASCII. A FSM deverá possuir um número reduzido de estados, número esse suficiente para incrementar o contador, e verificar se chegou ao final da contagem (caracter Z = 5AH). Ao atingir o último caracter da tabela ASCII, a FSM deverá voltar ao início da sequencia, gerando novamente o caracter A. Obs. Alternativamente, no lugar do relógio de 50MHz o sinal de clock poderá ser gerado por um botão (KEY), porém é preciso cuidar o problema do debounce. Diagrama de blocos do circuito a ser implementado (FSM u%lizada como contador) topo.vhd Diagrama de blocos do circuito a ser implementado Uso dos displays de 7- segmentos como saída 1. Incluir o componente Decod7seg dos labs anteriores; 2. Criar um signal F no topo; topo.vhd F(7..) Decod. 7-seg 3. Criar duas instâncias do decodificador (com port map. Usar o novo sinal interno F para conectar a saída da FSM (Contagem) com as entradas dos decodificadores (usando port map F(3..0) F Decod. 7-seg 8 Contagem LEDG(7 downto 0) 5. Conectar o sinal F ao LEDG: LEDG <= F. 8 Contagem LEDG(7 downto 0) CLOCK_50 KEY(0) clock FSM reset Máquina de estados com a função de contador. Realiza a geração da sequencia de valores de A (1H) a Z (5AH) CLOCK_50 KEY(0) clock FSM reset Máquina de estados com a função de contador. Realiza a geração da sequencia de valores de A (1H) a Z (5AH) Exemplo: Topo.vhd com componente FSM (sem u%lizar os displays de 7- segmentos) entity Topo is port ( LEDG: out std_logic_vector(7 downto 0 KEY: in std_logic_vector(3 downto 0 CLOCK_50: in std_logic end Topo; architecture topo_beh of Topo is component ContaASCII -- Esse e o componente FSM port ( valorascii: out std_logic_vector(7 downto 0 clock: in std_logic; reset: in std_logic L0: ContaASCII port map ( LEDG, CLOCK_50, KEY(0) end topo_beh; 5