Aperfeiçoar conhecimentos de
VHDL sintetizável, coletar características do circuito gerado (área e
desempenho) e fazer estimativa de consumo de energia.
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:
- Criar um diretório temporário
- Copiar a implementação do
usuário para o diretório temporário
- Executar compila.sh
de dentro do diretório temporário
- Copiar o testbench do
usuário para o diretório temporário
- Executar compila_tb.sh
de dentro do diretório temporário
- Criar arquivo ERRO
dentro do diretório temporário
- 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.