LABORG Aula 12 – Prototipação de Processadores e Entrada e Saída Ney Laert Vilar Calazans 1º/junho/2009 Sumário Introdução TRABALHO A FAZER A ENTREGAR César Marcon / Ney Calazans 2 Sumário Introdução TRABALHO A FAZER A ENTREGAR César Marcon / Ney Calazans 3 Introdução • Em aulas anteriores vimos: – Uma implementação VHDL abrangente de uma organização para a arquitetura MIPS-I modelo R2000, denominada MR4; – Uma estrutura de memórias de dados e instruções própria para construir um protótipo da organização proposta sobre os FPGAs do fabricante que utilizamos em laboratório (utilizando BRAMs da Xilinx); – Uma estrutura rudimentar para permitir acesso à memória de dados do subsistema processador-memórias, usando os sinais sel_CPU, addressSerial e data_out – Um testbench rudimentar para permitir simular o subsistema processador-memórias com um programa e seus dados de entrada carregados nas memórias respectivas em tempo de elaboração/síntese César Marcon / Ney Calazans 4 Introdução • A idéia fundamental deste trabalho é prototipar a MR4 na plataforma Digilent, empregando o esquema rudimentar que provê possibilidade de verificar o resultado da execução de programas pelo hardware. Deve-se elaborar um controlador que seja capaz de mostrar os resultados nos recursos da placa, após a finalização da execução do programa. Processador MR4 BLOCO DE CONTROLE (controlpath) IR clock reset selCPU uins end_mul ce rw bw data_out_CPU Memória de Instruções instruction i_address BLOCO DE DADOS (datapath) data_out_RAM addressCPU 0 Memória de Dados addressRAM 1 Quando selCPU=’1’ o processador pára e o endereçamento da memória de dados é controlado pelo mundo externo selCPU addressSERIAL César Marcon / Ney Calazans data_out 5 Sumário Introdução TRABALHO A FAZER A ENTREGAR César Marcon / Ney Calazans 6 TRABALHO A FAZER (1) 1. Primeiro, planejar e implementar em VHDL o controlador. Algumas observações relevantes: – Imediatamente após prototipar o hardware, devido ao tamanho típico dos programas que usamos, e à frequência de operação do processador, assume-se que o programa já executou e “terminou”. – O conceito de término deve ser obtido tipicamente colocando o processador em um laço eterno do tipo “aqui: j aqui”, para evitar alterações incorretas de registradores ou posições da memória de dados. – O controlador DEVE ser simulado junto com a MR4 completa, criando um novo testbench, antes de qualquer tentativa de prototipação. – Antes de elaborar o controlador estudar e definir a interface do sistema com o usuário (em termos de sinais, leds, chaves de mostradores da placa) César Marcon / Ney Calazans 7 TRABALHO A FAZER (2) 2. A funcionalidade do controlador deve permitir ao usuário: – Ler conteúdos da memória de dados byte a byte, a partir da primeira posição desta – Comandar o processador para deixar de fazer acesso à memória de dados (através do sinal sel_CPU) César Marcon / Ney Calazans 8 TRABALHO A FAZER (3) 3. Prototipar o sistema completo: – Não esquecer de dar a devida atenção à definição da interface do FPGA com o mundo externo, através da especificação do arquivo UCF. – Selecionar a frequência de operação correta na placa. César Marcon / Ney Calazans 9 Sumário Introdução Processos em VHDL TRABALHO A FAZER A ENTREGAR César Marcon / Ney Calazans 10 A ENTREGAR ATENÇÃO: Este trabalho deverá ter seu enunciado estendido em aula posterior. Assim, a lista de itens a entregar deverá ser complementada!! Para esta parte do trabalho, deve-se entregar 1. O projeto completo validado por simulação usando o (sob a forma de workspace Active-HDL) 2. Projeto ISE completo 3. Documentação descrevendo a estrutura do controlador implementado e o programa executado 4. Deve-se mostrar a operação na placa Digilent do projeto César Marcon / Ney Calazans 11