A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

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

Apresentações semelhantes


Apresentação em tema: "Aulas 7-8 – Programação do Processador Cleópatra em Hardware LABORG 29/abril/2008 César Augusto Missio Marcon Ney Laert Vilar Calazans."— Transcrição da apresentação:

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

2 2 Fernando Moraes / César Marcon / Ney Calazans Obtendo os Arquivos 1.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.Arquivos da Aula 7 2.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.

3 3 Fernando Moraes / César Marcon / Ney Calazans 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)

4 4 Fernando Moraes / César Marcon / Ney Calazans 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: Leitura do endereço 0FDH (LDA #0FDh) Escrita no endereço 0FDh (STA #0FDh) Leitura do endereço 0FCH (LDA #0FCh) Inicialização do Sistema (Reset) Escrita no endereço 0FFh (STA #0FFh) Escrita no endereço 0FEh (STA #0FEh)

5 5 Fernando Moraes / César Marcon / Ney Calazans Prototipando o Processador 1.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 2.Abra o arquivo Incremento.asm no Ambiente Cleosim. 3.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, ) 4.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.

6 6 Fernando Moraes / César Marcon / Ney Calazans Prototipando o Processador 5.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. 6.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.

7 7 Fernando Moraes / César Marcon / Ney Calazans Prototipando o Processador

8 8 Fernando Moraes / César Marcon / Ney Calazans Prototipando o Processador - Síntese: ISE 7.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

9 9 Fernando Moraes / César Marcon / Ney Calazans Definição do FPGA da Placa de Prototipação 8.Para a placa que estamos trabalhando, o FPGA é um dispositivo da família Spartan3, escolher na janela como abaixo: Características do dispositivo FPGA

10 10 Fernando Moraes / César Marcon / Ney Calazans Inclusão dos Fontes 9.A próxima janela é para criar arquivos-fonte novos. Ignorar e selecionar Next 10.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):

11 11 Fernando Moraes / César Marcon / Ney Calazans Ambiente ISE – Browser do Projeto 11.Se todos os passos de criação foram corretamente seguidos, deve-se ter: Top do projeto

12 12 Fernando Moraes / César Marcon / Ney Calazans Passo 1 da Síntese: Síntese Lógica Transforma o VHDL em portas lógicas 12.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 Tamanho total do Circuito: ~68K portas A RAM da Cleópatra!

13 13 Fernando Moraes / César Marcon / Ney Calazans Passo 2 da Síntese: Síntese Física Realiza o posicionamento e as conexão no FPGA 13.Dar duplo click em Implement Design 14.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.

14 14 Fernando Moraes / César Marcon / Ney Calazans Baixar para o FPGA (1/3) 1.Executar o software ExPort ( ), ligar a placa, conectar o cabo USB e inicializar a cadeia. Resultado aparece abaixo.

15 15 Fernando Moraes / César Marcon / Ney Calazans Baixar para o FPGA (2/3) 2. 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.

16 16 Fernando Moraes / César Marcon / Ney Calazans Baixar para o FPGA (3/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!

17 17 Fernando Moraes / César Marcon / Ney Calazans 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 1.Inicialmente, o programa fica em laço, executando suas 3 primeiras instruções repetidamente, até que o botão BTN1 seja pressionado; 2.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; 3.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; 4.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).

18 18 Fernando Moraes / César Marcon / Ney Calazans 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 ao professor.


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

Apresentações semelhantes


Anúncios Google