MO801/MC912 - Trabalho 2

Informações Gerais

Objetivo

Aperfeiçoar conhecimentos de VHDL sintetizável, coletar características do circuito gerado (área e desempenho) e fazer estimativa de consumo de energia.

Descrição

A entidade implementada deve ser exatamente:

entity Processador is
port (Clk,
SReset_n : in std_logic;
MCmd : out std_logic_vector(2 downto 0);
MAddr,
MData : out std_logic_vector(15 downto 0);
SCmdAccept : in std_logic;
SResp : in std_logic_vector(1 downto 0);
SData : in std_logic_vector(15 downto 0));
end entity Processador;

Atividades a serem feitas

Cada aluno, individualmente e sem consulta ao trabalho de outro aluno, deve realizar as seguintes atividades:

  • Implementar, em VHDL, o circuito especificado acima, utilizando quantos arquivos forem necessários
  • Definir e implementar um testbench para o circuito
  • Utilizar o ghdl para testar a implementação
  • Garantir que seu circuito passe pelo seu testbench
  • Sintetizar o circuito utilizando o Quartus II utilizando uma FPGA Cyclone II
  • Gerar um relatório resumido sobre o trabalho (1 página, seguindo as mesmas especificações dos resumos) contendo a área e a freqüência máxima de operação do circuito

Os alunos estão autorizados a testarem seus modelos com os testbenches dos outros alunos da sala.

Apresentação com detalhes da especificação do processador: Trabalho2.ppt (pdf).

Exemplo de código

Entrega

Cada aluno deve entregar seu trabalho por email, com apenas um arquivo em anexo, nomeado XXXXXX.tgz, onde XXXXXX são os 6 dígitos do seu RA (não incluir as letras RA no nome do arquivo). Dentro desse arquivo deve existir um diretório cujo nome será os 6 dígitos do seu RA (sem as letras RA). Dentro desse diretório devem estar:

  • Um diretório com o nome vhdl. Dentro desse diretório devem estar todos os arquivos em VHDL relacionados com sua implementação. Nesse diretório também deve existir um script chamado compila.sh que compila todos os arquivos VHDL necessários.
  • Um diretório com o nome tb. Dentro desse diretório devem estar todos os arquivos relacionados com seu testbench. Todos os arquivos em VHDL desse diretório devem ter o nome iniciado pelas letras tb. Nesse diretório deve existir um script chamado compila_tb.sh, que compila todos os arquivos necessários para o testbench, e um script chamado executa.sh que executa o testbench. Esse script deve garantir que, ao final de sua execução, só exista um arquivo chamado ERRO no diretório atual se aconteceu algum problema com o testbench. No script de correção, o arquivo ERRO será criado antes de chamar o script executa.

Todos os scripts devem trabalhar como se todos os arquivos necessários para executa-los estivessem no diretório atual. De forma alguma eles devem incluir o caminho dos arquivos de outros diretórios.

Atenção: O script de correção que será usado nesse trabalho executará os seguintes passos:
  1. Criar um diretório temporário
  2. Copiar a implementação do usuário para o diretório temporário
  3. Executar compila.sh de dentro do diretório temporário
  4. Copiar o testbench do usuário para o diretório temporário
  5. Executar compila_tb.sh de dentro do diretório temporário
  6. Criar arquivo ERRO dentro do diretório temporário
  7. Executar executa.sh de dentro do diretório temporário
A existência do arquivo ERRO dentro do diretório temporário ao final desses passos indica que aconteceu um erro (não importa o tipo do erro, simplesmente que ele aconteceu).

A entrega deve ser feita por email até as 8:00 de 02/06/06. Assunto do email: MO801: Entrega T2 - numero_do_RA.

Montador

Um montador para o processador descrito. Contribuição do aluno Sérgio Ordine.
Retornar à página principal.