César Augusto Missio Marcon Ney Laert Vilar Calazans

Slides:



Advertisements
Apresentações semelhantes
Software Básico Silvio Fernandes
Advertisements

Tutorial Isend – Marketing
Arquitetura de Computadores
Software Básico Silvio Fernandes Universidade Federal Rural do Semi-Árido Departamento de Ciências Ambientais Ciência da Computação Aula 06: Funções.
Programação em Java Prof. Maurício Braga
Entrada e Saída Introdução.
Técnicas para operações E/S
Software Básico Silvio Fernandes Universidade Federal Rural do Semi-Árido Departamento de Ciências Exatas e Naturais Ciência da Computação Aula.
Informática Aplicada.
Fernando Gehm Moraes Ney Laert Vilar Calazans
Ney Laert Vilar Calazans
Fernando Gehm Moraes Ney Laert Vilar Calazans
Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Informática Programa de Pós-Graduação em Ciência da Computação Xilinx ChipScope Pro.
Ney Laert Vilar Calazans
César Augusto Missio Marcon Ney Laert Vilar Calazans
Aula 12 – Prototipação de Processadores e Entrada e Saída LABORG 1º/junho/2009 Ney Laert Vilar Calazans.
Parte 6 - Introdução a FPGAs (Continuação: Alterações no Projeto do Somador da Parte 5) LABORG 06/abril/2009 Fernando Gehm Moraes César Augusto Missio.
Parte 7 - VHDL: Processos, Paralelismo e o Comando process (Continuação) LABORG 05/outubro/2009 César Augusto Missio Marcon Ney Laert Vilar Calazans.
Parte 9 – Prototipação de Processadores e Entrada e Saída LABORG 27/novembro/2009 Ney Laert Vilar Calazans.
Parte 2 – Introdução a VHDL Uso de Hierarquia LABORG Fernando Gehm Moraes César Marcon Ney Laert Vilar Calazans 31/agosto/2009.
Aula 4 - Introdução a FPGAs (Continuação) LABORG 24/março/2008 Fernando Gehm Moraes César Augusto Missio Marcon Ney Laert Vilar Calazans.
Fernando Gehm Moraes César Marcon Ney Laert Vilar Calazans
Estatística Básica Utilizando o Excel
15 Introdução à Manipulação de Planilhas Eletrônicas Planilhas Eletrônicas são tabelas usadas para comunicar informações de forma clara, precisa e sucinta.
Maria Aparecida Castro Livi
Introdução à Lógica de Programação (cont.)
Sistemas Operacionais
Implementação da CPU Análise de um computador simplificado Implementação da Unidade de Controle para o computador simplificado.
Emitindo seu Certificado Digital
Emitindo seu Certificado Digital
CURSO DE LINUX EDUCACIONAL
MANUAL CAF – CONTROLE ACADÊMICO FINANCEIRO
MANUAL NOVA INTRANET 2010 IMPORTANTE! IMPORTANTE!
Como instalar e executar o programa
Introdução à Programação
Como controlar o caixa Supermercados.
ABRA A JANELA DO MEU COMPUTADOR
Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Informática Programa de Pós-Graduação em Ciência da Computação PUCRS-FACIN-PPGCC
Sistemas Operacionais
Extranet GRD – Guia de Remessa de Documentos
Instrumento Virtual LabVIEW
Inserir crédito para cliente
Como instalar o sistema de automação comercial
Tarefa 02 Visual Studio 2005 Visual C# Programa Hello World.
Diagrama de Atividades
Ney Laert Vilar Calazans
Tutorial 14 Descompactando uma pasta de arquivos Use a seta do teclado para avançar.
Conteúdo Processos e threads Partes do processo
Manual de acesso - Câmeras da Escola Atrium
Agenda - Aula 2 Introdução (Computador Digital) Processadores
Processamento de dados na UCP e memória UCP
Linguagem e Ambiente Scratch
07/04/2017 Linux Ubuntu 2.
Primeiro Técnico Navegadores.
ÁREA DE TRABALHO DO WINDOWS
FORMATANDO O TRABALHO NO WORD 2007
Planilha Eletrônica - Excel
CONFIDENCIAL. Distribuição apenas para parceiros sob acordo de confidencialidade. A Microsoft não oferece garantias, expressas ou implícitas. © 2012 Microsoft.
Tutorial: Cadastro.
CONFIDENCIAL. Distribuição Apenas a Parceiros Sem Divulgação. A Microsoft não faz garantias, explícitas ou implícitas. © 2012 Microsoft. Todos os Direitos.
Backup DE DADOS DO USUÁRIO. Cópia de segurança dos dados no computador, alguns fáceis e outros trabalhosos, de acordo com a quantidade de dados. Utilizado.
LABORG Parte 4 – Programação em Linguagem de Montagem do MIPS
8 - 1 Organização Básica de Computadores e Linguagem de Montagem Ricardo Pannain ORGANIZAÇÃO BÁSICA DE COMPUTADORES E LINGUAGEM DE MONTAGEM A pilha e subrotinas.
Parte 5 - Introdução a FPGAs (Continuação: Alterações no Projeto do Somador da Parte 4) LABORG 21/setembro/2009 Fernando Gehm Moraes César Augusto Missio.
Integrated Synthesis Environment (ISE) - Tutorial por José Carlos Sant’Anna Palma Programa de Pós-Graduação em Ciência da Computação.
Tutorial Floorplanning - ISE 6.1
PROJETO PILOTO Outubro/Novembro 2015
Programação para Web I AULA 2 BANCO DE DADOS.
Iniciar o sistema de votação Mesário e Urna
Transcrição da apresentação:

César Augusto Missio Marcon Ney Laert Vilar Calazans LABORG Aulas 7-8 – Programação do Processador Cleópatra em Hardware César Augusto Missio Marcon Ney Laert Vilar Calazans 29/abril/2008

Obtendo os Arquivos Ir na página da disciplina, parte de Conteúdos, no dia da Aula 7 e baixar o material do link Arquivos da Aula 7. Descompactar o arquivo em uma área de trabalho. Use um disco local (por exemplo, C:\Temp\Aula7-8\), pois discos de rede como do disco H: da área de usuários podem gerar problemas para o software de síntese ISE.

Conteúdo dos Arquivos Ler atentamente o conteúdo do arquivo README_First.txt, que explica a natureza dos arquivos contidos no pacote da Aula. São ao todo 17 arquivos além do README_First.txt: 1 programa em linguagem de montagem da Cleópatra (Incremento.asm) 1 arquivo de configuração de pinos do FPGA da placa Nexys (top.ucf) 15 arquivos VHDL contendo: a descrição do Processador Cleópatra (9 arquivos: Cleopatra.vhd, PacoteCleopatra.vhd, BlocoDeControle.vhd, Datapath.vhd, Ula.vhd, Flags.vhd, Registrador.vhd, DecodificadorEscrita.vhd, DecodificadorLeitura.vhd) a descrição da memória RAM do processador e de seu conteúdo (MemoriaRam.vhd e obj_code.vhd, respectivamente) um testbench simples, apenas para simulação (Tb.vhd) a descrição de um hardware que habilita o processador a realizar operações de entrada e saída mapeadas em memória (2 arquivos: Decoder.vhd e Display.vhd) um arquivo que instancia todo o sistema composto pelo Processador Cleópatra, sua memória e periféricos (Top.vhd)

Prototipando o Processador Ao prototipar o sistema fornecido na placa Nexys, tem-se acesso, a partir do software executando na Cleópatra, aos seguintes periféricos e controles: Escrita no endereço 0FFh (STA #0FFh) Escrita no endereço 0FDh (STA #0FDh) Escrita no endereço 0FEh (STA #0FEh) Inicialização do Sistema (Reset) Leitura do endereço 0FDH (LDA #0FDh) Leitura do endereço 0FCH (LDA #0FCh)

Prototipando o Processador Antes de prototipar o processador, é necessário gerar o código objeto do programa a executar. O arquivo Incremento.asm tem um programa exemplo de acesso aos periféricos Abra o arquivo Incremento.asm no Ambiente Cleosim. Selecione a opção de geração automática de listagem VHDL (Opção de menu Listagem  VHDL – garanta que o item de menu VHDL está selecionado, ou seja, precedido por um “tick”, ) Monte o programa (Tecla F5, ou opção de menu Executar  Montar). O texto “Sucesso” deve aparecer no canto inferior esquerdo da tela do ambiente.

Prototipando o Processador Sair do ambiente. No diretório onde está o arquivo Incremento.asm deve agora existir um arquivo Incremento.txt, gerado pelo processo de montagem do Cleosim. Abra este arquivo com um editor de texto que tenha capacidade de seleção de colunas (tal como TextPad, Word ou mesmo o editor de textos do ISE). Abra também o arquivo obj_code.vhd no mesmo editor. Selecione apenas as colunas 4 e 5 de todo o arquivo Incremento.txt (são exatamente 88 linhas) e copie para as colunas 19 e 20 das linhas 18 a 105 do arquivo obj_code.vhd. Isto completa o processo de criação dos arquivos para síntese. A próxima transparência mostra o resultado do processo.

Prototipando o Processador

Prototipando o Processador - Síntese: ISE Abrir a ferramenta ISE( ) e criar um novo projeto (File  New Project), como abaixo. Crie o projeto no seu diretório de trabalho do disco local. Cuidado: Não podem haver espaços em branco no nome do caminho para o projeto, nem no nome do projeto

Definição do FPGA da Placa de Prototipação Para a placa que estamos trabalhando, o FPGA é um dispositivo da família Spartan3, escolher na janela como abaixo: Características do dispositivo FPGA

Inclusão dos Fontes A próxima janela é para criar arquivos-fonte novos. Ignorar e selecionar Next A próxima janela é para inclusão dos fontes, incluir todos os VHDL exceto Tb.vhd, e incluir o top.ucf. Copia para o diretório do projeto ISE e preserva os arquivos originais Ao final há um resumo do projeto (com detecção da função do UCF):

Ambiente ISE – Browser do Projeto Se todos os passos de criação foram corretamente seguidos, deve-se ter: Top do projeto

Passo 1 da Síntese: Síntese Lógica Transforma o VHDL em portas lógicas Para executar, dá-se duplo click em “Synthesize XST” Ao final tem-se o relatório no lado direito 257 LUTs usadas, das 3840 do FPGA 33 pinos de E/S A RAM da Cleópatra! Tamanho total do Circuito: ~68K portas

Passo 2 da Síntese: Síntese Física Realiza o posicionamento e as conexão no FPGA Dar duplo click em “Implement Design” Após terminada a síntese, dar duplo click em “Generate Programming File” Após este passo, deve ter sido gerado na raiz do projeto um arquivo de nome “Top.bit” que contém a implementação do hardware sob a forma de um arquivo de programação do FPGA da placa Nexys. O próximo passo é descarregar o conteúdo deste arquivo para o FPGA da placa Nexys via o cabo USB.

Baixar para o FPGA (1/3) Executar o software ExPort ( ), ligar a placa, conectar o cabo USB e inicializar a cadeia. Resultado aparece abaixo.

Baixar para o FPGA (2/3) Marcar a check-box do chip de denominado XCF02S (para fazer não programar ele ao programar o FPGA, bypass). O resultado vê-se abaixo.

Baixar para o FPGA (3/3) Clicar na opção Browse ao lado do FPGA (ícone de nome XC3S200) e achar/selecionar o arquivo de nome somador.bit, gerado pela síntese. Em seguida escolha a opção Program Chain. Pronto!

Testando o projeto no FPGA Antes de testar o programa na placa, deve-se estudar seu código fonte, para entender como este funciona: Descrição geral da funcionalidade do programa Incrementa.asm Inicialmente, o programa fica em laço, executando suas 3 primeiras instruções repetidamente, até que o botão BTN1 seja pressionado; Após BTN1 ser pressionado uma vez, o programa sai do laço inicial, lê o valor das 8 chaves SW7-SW0, escreve este valor nos leds e inicializa um contador de 16 bits com o valor lido nos 8 bits inferiores, e 00h nos 8 bits superiores; Imediatamente a seguir, o programa entra em um laço onde se incrementa o contador, exibe-se o valor do contador nos 4 mostradores de 7 segmentos e chama-se uma rotina que aguarda cerca de 130 mil ciclos de relógio (2 milissegundos a 50MHz) e retorna, para dar tempo do usuário ver os valores; Se o usuário apertar BTN2 a qualquer momento, o programa simplesmente pára a execução e suspende a operação do processador (instrução hlt).

Testando o projeto no FPGA Depois de entender como o programa funciona, interaja com o projeto na placa, inicializando o sistema (com BTN0) inicializando o contador com um valor, disparando o processo de contagem (com BTN1) e suspendendo a contagem com BTN2. A FAZER, VALENDO NOTA: Elabore um programa que inicialmente espere que o usuário aperte a tecla BTN3. A partir daí o programa calcula os termos da Série de Fibonacci (0, 1, 1, 2, 3, 5, 8, 13, ...) da seguinte maneira: Inicialmente (depois que BTN3 foi apertada a primeira vez), o programa mostra o primeiro termo (0) nos mostradores de sete segmentos e aguarda que o usuário aperte BTN2. Quando isto acontecer, o programa calcula e mostra o segundo termo, e aguarda que o usuário aperte BTN2 novamente. E assim por diante... Mostre o programa funcionando ao professor até o dia 12/05/2008 e envie o projeto completo até este mesmo dia por e-mail ao professor.