Aulas 7-8 – Programação do Processador Cleópatra em
Hardware
LABORGLABORG
29/abril/2008
César Augusto Missio Marcon
Ney Laert Vilar Calazans
2Fernando 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.
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.
3Fernando 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)
4Fernando 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ço0FDh (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)
5Fernando 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.
6Fernando 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.
7Fernando Moraes / César Marcon / Ney Calazans
Prototipando o Processador
8Fernando 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.
Xilinx ISE 9.1i.lnk
Cuidado: Não podem haver espaços em branco no nome do caminho para o projeto, nem no nome do projeto
9Fernando 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
10Fernando 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):
11Fernando 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
12Fernando 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!
13Fernando 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.
14Fernando 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.
Shortcut to ExPort.exe.lnk
15Fernando 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.
16Fernando 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!
17Fernando Moraes / César Marcon / Ney Calazans
Testando o projeto no FPGAAntes 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).
18Fernando 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 e-mail ao professor.
Top Related