Skip to content

Projeto em Verilog HDL de um processador de 8 bits uniciclo, baseado na arquitetura do MIPS.

Notifications You must be signed in to change notification settings

caiovpsilveira/Processador-8-bits

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 

Repository files navigation

Processador-8-bits

Projeto e descrição em Verilog HDL de um processador de 8 bits uniciclo, baseado na arquitetura do MIPS.

Caminho de dados: datapath

O PC e a memoria de dados são sincronos na borda de subida do clock. O registrador rJump, o banco de registradores e a memória de instruções são síncronos na borda de descida do clock.

A primeira borda do clock deve ser uma borda de descida, para a memoria de instruções ler o conteudo de [0].

Conjunto de instruções, tabela de controle e programas testados: https://docs.google.com/spreadsheets/d/1jTgcv_d65m7bKRawLwDhGFnjqreM5VpYS6qBkbGyiEc/edit#gid=1924621090

Dentre as diferenças da arquitetura do MIPS, a mais significativa é de que todos os desvios necessitam de um endereço absoluto que deve ser setado no registrador rJump antes de qualquer instrução de desvio (beq, bne, beqz ou j), utilizando a instrucao sjmp (set jump).

Simulação: Programas e casos de teste

O processador foi capaz de executar com sucesso, na simulação RTL, um algoritmo de BubbleSort e um algoritmo para encontrar o maior elemento de um vetor.

O código em código de máquina para o programa do BubbleSort pode ser encontrado no arquivo "m_inst_bubblesort.txt" e o código de máquina para o programa de encontrar o maior elemento de um vetor pode ser encontrado no arquivo "m_inst_maior.txt". Para carregar esses programas na memória de instruções, é necessário alterar o arquivo "memoria_instrucao.v", colocando o PATH completo na função $readmemb.

Para cada programa foram criados dois casos de teste, que podem ser encontrados nos arquivos "m_dado_teste_bs_10pos.txt", "m_dado_teste_bs_20pos.txt", "m_dado_teste_maior_10pos.txt", "m_dado_teste_maior_20pos.txt".Para carregar esses valores na memória de dados, é necessário alterar o arquivo "memoria_dados.txt", colocando o PATH completo na função $readmemb.

Ao se trocar o programa a ser executado, o arquivo "simulacao_processador.v" tambem deve ser alterado, trocando os comentários no bloco initial e no fim do bloco always, para escrever no console corretamente para cada programa executado.

Bubblesort

Caso 1 - Vetor de 10 posições

Caso 2 - Vetor de 20 posições

Maior elemento

Caso 1 - Vetor de 10 posições

Caso 2 - Vetor de 20 posições

About

Projeto em Verilog HDL de um processador de 8 bits uniciclo, baseado na arquitetura do MIPS.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published