O diagrama ASM contém dois elementos básicos: o bloco de estado e o bloco de decisão.



Documentos relacionados
Dispositivos Lógicos Programáveis

Organização e Arquitetura de Computadores II

Curso Superior de Sistemas de Telecomunicações Unidade São José. Disciplina: Síntese de Sistemas de Telecomunicações 7º Fase

Centro Universitário da FEI Engenharia Elétrica PROJETO DE SISTEMAS. DIGITAIS UTILIZANDO FPGAs

Somador e subtrator de 8 bits

Conceitos de Linguagens de Descrição de Hardware (Verilog, VHDL) Alex Vidigal Bastos

Circuitos Seqüenciais

Electrónica Digital 2. Xilinx Webpack

UNIVERSIDADE FEDERAL DE ITAJUBÁ Instituto de Engenharia Elétrica Engenharia da Computação

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

Universidade Federal Fluminense - UFF Centro Tecnológico - CTC Escola de Engenharia - TCE Departamento de Engenharia de Telecomunicações TET

Curso Superior de Sistemas de Telecomunicações Unidade São José. Disciplina: Síntese de Sistemas de Telecomunicações 7º Fase

Programação de CPLDs no ambiente ISE 4.2i da Xilinx

Capítulo 8. CICLOS. Tabela 8.1 Programa8a.f90.

Passos para executar um programa no Simulador MPLAB

4.a Aula Prática Projeto de um Somador de 16 bits com a Linguagem VHDL

Departamento de Engenharia Electrotécnica e de Computadores Instituto Superior Técnico Universidade Técnica de Lisboa Sistemas Digitais

CAPÍTULO II. Funções e Portas Lógicas

INTRODUÇÃO AO PSPICE. Usaremos o PSPICE para simular o circuito mostrado na Figura 1. Figura 1. Exemplo No. 1

Manual de Instalação da Plataforma Scorpion. 1. Como conectar a Plataforma Scorpion com a Xilinx Starter-3E kit

1 CIRCUITOS COMBINACIONAIS

Com Pedido de Compra Sem Pedido de Compra ou Entrada Manual Importando XML enviado do Fornecedor

Conectar diferentes pesquisas na internet por um menu

Circuitos/Sistemas Integrados Digitais (CID/SID)

ANDROID APPLICATION PROJECT

Tutorial de Computação Programação em Python para MEC1100 v

Tutorial :: Introdução ao VHDL em ambiente Design Works

Revisão: Projeto de Processadores em VHDL

Introdução à Simulação em VHDL. Ney Laert Vilar Calazans

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS

APOSTILA ZELIO SOFT 2

FPGA & VHDL. Tutorial

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

Criar um novo projeto

SISTEMAS DIGITAIS INTRODUÇÃO AO AMBIENTE DE PROJECTO DO XILINX ISE 10.1 PEDRO TOMÁS, PAULO LOPES, HORÁCIO NETO

Circuitos Digitais 144L

Disciplina: Laboratório de Circuitos Digitais

MANUAL DA SECRETARIA

MODELAGEM E SIMULAÇÃO

Capítulo 2. VARIÁVEIS DO TIPO INTEIRO

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

CRIAÇÃO DE MAPAS TEMÁTICOS COM ALOV MAP

Exercícios de Fixação

Descrição do Produto. Altus S. A. 1

Astra LX Frases Codificadas Guia para o processo de Configuração de Frases Codificadas no Programa AstraLX.

Usando um Simulador da Máquina de Turing Claudio Kirner 2010

Aula 01 Conceitos Iniciais sobre Excel 2010

Sistemas Digitais. Módulo 15 Prof. Celso PLD - DISPOSITIVOS LÓGICOS PROGRAMÁVEIS

A equação da posição em função do tempo t do MRUV - movimento retilíneo uniformemente variado é:

Organização de Computadores Software

LABORG. Parte 1 Introdução à Simulação em VHDL. Fernando Moraes e Ney Laert Vilar Calazans

Virtual Box. Guia. Instalação E Utilização. Criado por Wancleber Vieira wancleber.vieira@ibest.com.br

REPRESENTAÇÃO DE DADOS EM SISTEMAS DE COMPUTAÇÃO AULA 03 Arquitetura de Computadores Gil Eduardo de Andrade

Para criar uma nova apresentação: 1.Escolha a opção Apresentação em Branco Clique no botão Ok

Boletim Eletrônico de Recolhimento Manual do Sistema. Boletim Eletrônico de Recolhimento. Manual do Sistema

TUTORIAL APOSTILA PL7

Introdução à Engenharia de Computação

Adicionando Propriedades e Funcionalidades aos Componentes Parte II

Capítulo 12. SUB-ROTINAS

Inserção de Ponto de Entrada. Autoenge Módulo Automação Página 1

OFICINA DE POWER POINT

Simulado Informática Concurso Correios - IDEAL INFO

AMBIENTE. FORMULÁRIO: é a janela do aplicativo apresentada ao usuário. Considere o formulário como a sua prancheta de trabalho.

PASSO A PASSO COMO CRIAR UM NOVO PROJETO EM SCHEMATIC NO SOFTWARE QUARTUS II

Algoritmos DCC 119. Introdução e Conceitos Básicos

Manual do Usuário. Protocolo

ORGANIZAÇÃO DE COMPUTADORES MÓDULO 1

Instituto Superior Técnico Licenciatura em Engenharia Informática e de Computadores. Projecto de. Arquitectura de Computadores.

- Aulas 57, 58, 59 e 60 - Técnicas de programação. Funções

DELPHI 7 LINGUAGEM DE PROGRAMAÇÃO AMBIENTE CLIENTE SERVIDOR

Linguagem de Montagem 2. Operações e Operandos

Implementando uma Classe e Criando Objetos a partir dela

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

Introdução à Arquitetura de Computadores. Renan Manola Introdução ao Computador 2010/01

COMANDO DA AERONÁUTICA ESCOLA DE ESPECIALISTAS DE AERONÁUTICA SUBDIVISÃO DE ADMISSÃO E DE SELEÇÃO

Processo Módulo Básico - TimeOut

Departamento de Engenharia Electrotécnica e de Computadores Instituto Superior Técnico Universidade Técnica de Lisboa.

Manual das planilhas de Obras v2.5

Capítulo 1. INTRODUÇÃO

Guia de utilização da notação BPMN

Computador E/S, Memória, Barramento do sistema e CPU Onde a CPU Registradores, ULA, Interconexão interna da CPU e Unidade de controle.

Acessos Convergentes. Manual de Configuração e Utilização

LABORG. VHDL Máquina de estados finitos

CEDERJ - CENTRO DE EDUCAÇÃO SUPERIOR A DISTÂNCIA DO ESTADO DO RIO DE JANEIRO

JavaScript (ou JScript)

TUTORIAL: AQUISIÇÃO DE SINAIS USANDO LABVIEW E MATLAB

Introdução ao CoolEdit c : programa de edição de som digital

Eletrônica Digital para Instrumentação

Aula 6: Introdução ao System Generator

Mapeamento de memória e programação da IHM do controlador CP-WS41/8DO8DI4AO2AI2TAI

Autor: Tiago Lone Nível: Básico Criação: 19/12/2005 Última versão: 18/12/2006. PdP. Pesquisa e Desenvolvimento de Produtos

Aula 19. Conversão AD e DA Técnicas

Sophos SafeGuard Disk Encryption

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

Ministério da Agricultura, Pecuária e Abastecimento. SPARK - Comunicador Instantâneo MANUAL DO USUÁRIO

PROGRAMAÇÃO II 3. FILA DINÂMICA

Transcrição:

14 3.2 Projeto da Unidade de Controle (VHDL) 3.2.1 Diagrama ASM (Algorithmic State Machine) ASM é um fluxograma através do qual se representa a seqüência de ações que a unidade de controle de um sistema digital deve realizar, para se obter o comportamento especificado. As ações realizadas dependem das entradas externas do sistema digital e também de condições que traduzem a situação em que se encontram a própria unidade de controle e o fluxo de dados. Na verdade, ASM é uma representação gráfica do algoritmo que descreve o comportamento do sistema digital. Um fluxograma ASM parece semelhante aos fluxogramas convencionais, mas deve ser interpretado de outra maneira. Nos fluxogramas convencionais há apenas a descrição dos passos a serem seguidos e as decisões a serem tomadas, sem nenhuma relação com a variável tempo. Já nos diagramas ASM, além da descrição da seqüência dos eventos há as relações temporais entre os estados da unidade de controle e as ações que ocorrem, em cada estado, em resposta às bordas do CLOCK. O diagrama ASM contém dois elementos básicos: o bloco de estado e o bloco de decisão. Bloco de estado: o nome do estado é colocado externamente ao bloco e, dentro do mesmo, aparecem as ações ou saídas que são ativadas (fig. 14). N o m e d o E s t a d o S i n a i s a t i v o s n e s t e e s t a d o ( s a í d a s ) Fig. 14 - Bloco de Estado do Diagrama ASM Bloco de decisão: representa o efeito das entradas, na seqüência de controle. A condição mostrada na figura 15 tanto pode ser expressa por uma única variável como por uma expressão booleana. Os dois caminhos referem-se aos dois possíveis valores que a condição pode assumir.

15 1 Condição (entrada) 0 Fig. 15- Bloco de Decisão do Diagrama ASM Bloco ASM: é o conjunto construído por um bloco de estado e todos os blocos de decisão que ficam entre a saída do bloco de estado e a entrada do mesmo bloco ou de um outro bloco de estado. Ver figura 16. EST_0 0 INÍCIO 1 EST_1 EN1 Fig. 16 - Exemplo de Diagrama ASM A cada borda de subida, as condições dos blocos de decisão são examinadas e, dependendo do seu valor (0 ou 1), segue-se para o estado seguinte indicado. No exemplo da figura 15, enquanto o sinal INICIO=0, a cada borda de atuação do CLOCK, o ASM permanece em EST_0. Se, num instante qualquer, o sinal INICIO=1, na primeira borda de atuação do CLOCK após INICIO=1, o ASM alcançará o estado EST_1. Neste estado será acionado o sinal EN1.

A figura abaixo ilustra um exemplo de Diagrama ASM com a sua correspodente carta de tempos. Observe que os sinais de saída (EN2 e EN3) são acionados logo após a borda de subida do clock (CLKUC), momento no qual o sinal de entrada (LOAD) é amostrado. 16 Fig. 17 - Simulação de Diagrama ASM 3.2.2 A Linguagem VHDL A linguagem VHDL (VHSIC Very High Speed Integrated Circuit - Hardware Description Language) foi desenvolvida inicialmente para documentar e simular sistemas digitais, no início da década de 80. Após isto, na década de 90, ela começou a ser utilizada por empresas fornecedoras de chips para descrever os projetos contidos nos mesmos. Utilizando-se a linguagem VHDL é possível descrever um sistema digital através de um arquivo texto, possibilitando a implementação do mesmo por diferentes ferramentas de desenvolvimento. Os elementos principais contidos em uma descrição VHDL são: entity : declaração inicial de um módulo, contendo seu nome e os sinais de entrada e saída do mesmo. Para declarar estes sinais de entrada e saída é utilizada a construção port. A figura abaixo exemplifica a declaração de uma entity denominada SOMA:

17 A B SOMA SAIDA Fig. 18 - Exemplo de Entidade VHDL entity SOMA is Port ( A : in std_logic; B : in std_logic; SAIDA : out std_logic; ); end SOMA; architecture : descrição da arquitetura interna de uma entity. Esta descrição pode ser formada por blocos funcionais conectados através de sinais internos ou construções que descrevem o funcionamento de um módulo. A descrição de um somador pode ser feita através da seguinte linha: SAIDA <= A + B; signal : declaração de sinais internos ao módulo, utilizados na construção architecture ; process : declaração de um processo interno a um módulo, dependente de um ou mais sinais, contidos em uma lista logo após o nome do processo. Esta construção é utilizada para descrever processos que são executados em paralelo. A principal diferença existente entre uma linguagem de programação usual e VHDL está na construção process. Uma entity pode conter um ou mais processos, que estão sendo executados todos em paralelo, geralmente sincronizados por um sinal de relógio (não devemos esquecer que estamos descrevendo hardware, que possue um alto grau de paralelismo). No próximo item será visto como abrir um projeto em VHDL na ferramenta ISE. 3.2.3 Diagrama ASM em VHDL Para a descrição do Diagrama ASM através da linguagem VHDL, basta criar uma entidade ("entity") contendo dois processos ("process") principais. O primeiro deles será responsável pela inicialização do ASM e o segundo será responsável pela atribuição dos valores das saídas da Unidade de Controle, juntamente com a definição de qual será o próximo estado a seguir. Na declaração da entidade são colocados os sinais de entrada e saída do Diagrama ASM juntamente com os sinais CLOCK e RESET. Estes sinais não estão presentes no Diagrama ASM mas são utilizados para controlar o funcionamento do mesmo. A figura abaixo mostra um exemplo de Diagrama ASM, com dois estados, uma entrada (LOAD) e duas saídas (EN1 e EN2).

18 EST_0 LOAD 0 EST_1 1 EN1, EN2 Fig. 19 - Exemplo de Diagrama ASM A descrição da entidade deste ASM é a seguinte: entity exemplo_asm is Port ( clock : in std_logic; reset : in std_logic; end exemplo_asm; load : in std_logic; en1 : out std_logic; en2 : out std_logic); O número de estados do ASM é descrito através da criação de um tipo novo de dados, contendo o nome de cada um deles. No exemplo da figura X tem-se: type tipo_estado is (est_0, est_1); Os dois processos do arquivo VHDL utilizam dois sinais do tipo acima para descrever o funcionamento do ASM: estado_atual e proximo_estado. No arquivo VHDL utiliza-se a linha abaixo para criar estes sinais: signal estado_atual, proximo_estado : tipo_estado; O processo que inicializa o ASM no primeiro estado é descrito da seguinte maneira:

19 sincronismo_asm: process (clock,reset) begin if (reset='1') then estado_atual <= est_0; elsif ( clock 'event and clock = '1') then estado_atual <= proximo_estado; end if; end process; A descrição acima será idêntica para todos os ASMs descritos neste curso. O processo que descreve o funcionamento do ASM contém uma construção CASE para definir qual será o próximo estado caso alguma condição ocorra e quais as saídas acionadas no mesmo. O ASM da figura 19 é descrito da seguinte maneira, com relação ao processo de decodificação de proximo estado: decodificacao_proximo_estado: process (estado_atual, load) begin proximo_estado <= estado_atual; case (estado_atual) is -- definicao do estado 0 when est_0 => if load = '1' then proximo_estado <= est_1; end if; en1 <= '0'; en2 <= '0'; -- definicao do estado 1 when est_1 => proximo_estado <= est_0; en1 <= '1'; en2 <= '1'; when others => proximo_estado <= est_0; end case; end process;

20 3.2.3.1 Projeto em VHDL no ISE A utilização de um arquivo VHDL como descrição do projeto para a ferramenta ISE é semelhante à utilização de um arquivo do tipo esquemático, visto no item 3.1. A ferramenta ISE facilita a criação do arquivo VHDL através da geração de um arquivo modelo, para que o usuário complete com a descrição da arquitetura da entity desejada. Basta seguir o procedimento abaixo: a) abrir o Project Navigator (Iniciar Programas Xilinx ISE 6.3 Project Navigator b) selecionar File New Project. c) Na janela New Project, escolher o diretório de trabalho (Project Location), o nome do projeto (ASM_VHDL) e o tipo de arquivo do módulo principal (Top-Level Module Type). O tipo de arquivo é HDL. No diretório de trabalho será criado um sub-diretório com o nome do projeto escolhido; d) Clicar em <avançar> e) Selecionar o dispositivo e o tipo de projeto Device Family: Spartan-3 Device: xc3s200 Package: ft256 Speed Grade: -4 Top-Level Module Type: HDL Synthesis Tool: XST(VHDL/Verilog) Simulator: Modelsim Generated Simulation Language: VHDL f) Clicar em <avançar>. g) Clicar na opção New Source h) Na opção Create New Source, selecionar a opção VHDL Module e colocar o nome do arquivo igual a asm_vhdl, deixando a opção Add to project selecionada. i) Clicar em <avançar> j) Na opção Define VHDL Source, no campo Entity Name colocar exemplo_asm. No campo Architecture Name colocar exemplo_asm _arq. Esta janela possui uma tabela que nos permite definir os sinais externos de entrada e saída do nosso módulo. No ASM existem duas entradas que sempre estarão presentes: clock e reset. Além destas entradas devem ser declarados os sinais de entrada e saída do ASM. Para o exemplo da figura 19, basta preencher a tabela da seguinte maneira: Port Name Direction MSB LSB clock in reset in LOAD in EN1 out EN2 out k) Clicar em <avançar> e <concluir>. l) Na opção Create New Source novamente, clicar em <avançar>. m) Na opção Add Existing Source, clicar em <avançar>. n) Na janela New Project Information, verificar se as opções descritas estão corretas e clicar em <concluir>

Após o procedimento acima, na janela do Project Navigator denominada Sources in Project aparecerá o arquivo asm_vhdl.vhd, logo abaixo do nome da FPGA escolhida anteriormente. Este arquivo com a descrição VHDL modelo será aberto automaticamente. Neste arquivo está faltando apenas descrever a arquitetura da entidade exemplo_asm. Para isto basta copiar os trechos descritos no item anterior, com a declaração dos estados do diagrama, o processo de inicialização do ASM e o processo de decodificação de estados. Para implementar o projeto através do ISE, basta seguir o procedimento descrito no item 3.1.3, escolhendo o arquivo que descreve o mesmo na janela Sources in Project e depois clicar duas vezes no processo chamado Implement Design, na janela Process for Source.... Para a simulação do projeto basta seguir o procedimento do item 3.1.4, gerando o Testbench e simulando através do ModelSim. 3 o Exercício: implementar o exemplo de ASM e simular o mesmo, verificando se o funcionamento é compatível com a descrição da figura 19. 21