/PCS3412

Repositório para os exercícios de Organização e Arquitetura de Computadores I

Primary LanguageVHDLMIT LicenseMIT

PCS3412

Repositório para o trabalho final de Organização e Arquitetura de Computadores I

Repositório base

Organização do repositório

Dentro das pastas t_five_mc e t_five_mc estão os arquivos relativos ao projeto dos dois processadores desenvolvidos, o T-FIVE Multiciclo e Pipeline, respectivamente.

Os arquivos que descrevem componentes devem ficar dentro da pasta component.

Os testbenches de cada componente devem ficar dentro da pasta testbench e deverão ser nomeados <component>_tb. Além disso, a entidade deve seguir o mesmo padrão de nomenclatura para evitar erros no Makefile.

Por fim, na pasta de cada um dos processadores há um arquivo description.mk. Ele deve conter uma lista com os arquivos da pasta components em ordem de prioridade (caso haja dependência entre eles), e uma variável para identificar o componente padrão que será usado nos testes.

# Name of all components in priority order
CPNT_LIST := multiplicador_fd multiplicador_uc multiplicador

# Name of the component to be tested
CPNT ?= multiplicador

# Commands to prepare test files
PREPARE_TEST :=

Compilando e executando

Para compilar, é necessário ter instalado o GHDL e adicioná-lo ao PATH da shell utilizada.

Todos os comandos listados abaixo serão executados para um projeto específico, identificado pela variável EP do Makefile. Para mudar o projeto em que os comandos serão executados, basta mudar o valor padrão da variável para o nome da pasta do projeto atual. Também é possível fazer isso na chamada do comando, adicionando o novo valor da variável. Para executar o comando make no EP1, seria preciso fazer

make EP=t_five_mc

Analisar

Para analisar os componentes e testbenches, execute o comando

make analyse

ou apenas

make

Verificar sintaxe

Para apenas a sintaxe dos arquivos, execute

make check_syntax

Limpar

Para limpar os arquivos gerados durante a compilação, execute

make clean

Testar

Para testar, execute o comando

make test

Nesse caso, o componente que será testado é aquele com o nome salvo na variável CPNT de description.mk, assim, é possível mudar o componente padrão direto no arquivo de descrição do projeto (editando o valor inicial da variável), ou na linha de comando.

Além disso, para ver o resultado da simulação em um ambiente gráfico, utiliza-se a variável VISUAL=1. Note que para utilizar esse recurso, é preciso ter o GtkWave instalado no sistema.

Assim, para indicar precisamente qual o projeto utilizado, qual componente deverá ser testado e se o ambiente gráfico deve ou não ser aberto, é preciso executar

make test EP=t_five_mc CPNT=t_five_mc VISUAL=1

O componente t_five_mc será testado com a testbench t_five_mc_tb e o GtkWave será aberto para visualizar o resultado da simulação.

OBS: Para testar o CPNT=t_five_mc, é necessário executar o arquivo t_five_mc_tb, por isso o padrão de nomenclatura deve sempre ser seguido.

OBS2: É necessário analisar os componentes antes de testar, e após qualquer mudança também.

Instalando o necessário

As dependências desse repositório podem ser instaladas manualmente ou executadas diretamente dentro de um container docker. Caso você não esteja usando linux, recomendo que use o dockerfile direto para facilitar.

- Instalando manualmente

Make

Para instalar o Make, basta executar os seguintes comandos.

sudo apt-get install build-essential

GHDL e GtkWave

Para instalar o GtkWave e Ghdl, basta executar os seguintes comandos.

sudo apt update
sudo apt-get install ghdl gtkwave

- Instalando com docker

Siga o guia oficial do docker e docker-compose para instalação clicando aqui

Depois que o docker estiver instalado, basta executar para baixar a imagem docker e colocar o container no ar:

sudo chmod +x run run_docker.sh
./run_docker.sh

Feito isso, toda vez que for usar o repositório basta usar o comando:

./run_docker.sh