Relatório - PC2
Relatório - PC2
Relatório - PC2
2021
BRUNO HIDEKI AMADEU OGATA
RA: 140884
2021
RESUMO
1 Introdução......................................................................................................6
2 Objetivos........................................................................................................7
2.1 Geral.............................................................................................................................7
2.2 Específicos....................................................................................................................7
3 Fundamentação Teórica................................................................................8
3.1 Verilog..........................................................................................................................8
3.2 Central Process Unit (CPU)...........................................................................................8
4 Desenvolvimento..........................................................................................10
6 Considerações Finais...................................................................................20
Referências.........................................................................................................21
6
1 Introdução
2 Objetivos
2.1 Geral
Implementar a Unidade Central de Processamento em Verilog.
2.2 Específicos
Implementar o Program Counter (PC);
Implementar a Memória de Instruções
Implementar o Banco de Registradores;
Implementar a Unidade Lógica e Aritmética (ULA);
Implementar a Memória de Dados;
Implementar a Unidade de Controle;
Testar as unidades funcionais.
8
3 Fundamentação Teórica
3.1 Verilog
Verilog é uma linguagem de descrição de hardware, criada por Prabhu
Goel e Phil Moorby, para a empresa Automated Integrated Design Systems. É
usada para implementar projetos a nível de circuito e além disso fornece maior
rapidez e facilidade em sua implementação em relação à projetos em
esquemático.
É possível descarregar os códigos feitos em Verilog em FPGAs, por
meio de suas placas de desenvolvimento com base em circuitos integrados.
4 Desenvolvimento
Fonte: Autor.
Fonte: Autor.
11
Fonte: Autor.
Fonte: Autor.
A + B;
A – B;
A x B;
A / B;
A and B;
A or B;
NOT(A);
Fonte: Autor.
Fonte: Autor.
4.7 Multiplexadores
Os multiplexadores são utilizados para fazer uma escolha entre uma
entrada ou outra dependendo do sinal de uma chave específica enviada pela
Unidade de Controle. Para esse projeto foram usados dois tipos de
multiplexadores, um de 5 bits e outro de 32 bits, que são mostrados,
respectivamente, pelas Figuras 8 e 9.
Figura 8. Código do Multiplexador de 5 bits em Verilog
Fonte: Autor.
15
Fonte: Autor.
Fonte: Autor.
Fonte: Autor.
4.10 CPU
O código da CPU foi montado a partir da junção de todas as unidades
funcionais, seguindo o molde da Figura 1 com adição da Unidade de Controle.
Abaixo, na Figura 12, está seu código em Veriog.
Figura 12. Código da CPU em Verilog
Fonte: Autor.
18
5 Resultados e Discussões
Fonte: Autor.
Fonte: Autor.
19
Fonte: Autor.
Por fim, foi feito o teste da Memória de Dados. Para esse teste o
“Mem_Write” fica ativo por 3 ciclos de clock e após isso é ativado o
“Mem_Read”, além disso, o “Write_Data” é incrementado de 1 a cada ciclo de
clock e o endereço de escrita também e, após 3 ciclos de clock o endereço de
leitura passa a ser incrementado. Assim, na Figura 16 é mostrado o resultado
desse teste.
Figura 16. Teste em waveform da Memória de Dados
Fonte: Autor.
6 Considerações Finais
Referências
[4] Trabalho de conclusão de curso do aluno Helder Celso Romero dos Santos
disponibilizado no Moodle da disciplina.