-
Filipe Teixeira - 14/0139486
-
Lucas Santos - 14/0151010
-
Marcos Tonin – 14/0153233
Montar e simular uma versão do processador MIPS Muticilo, no ambiente Quartus / ModelSim-Altera.
O diagrama acima não suporta a execução de todas as instruções do MIPS. As instruções básicas a serem implementadas são as seguintes:
Opcode | Funct | ULA | |
---|---|---|---|
LW | 10 0011 | ||
SW | 10 1011 | ||
ADD | 00 0000 | 10 0000 | Sim |
ADDi | 00 1000 | Sim | |
SUB | 00 0000 | 10 0010 | Sim |
AND | 00 0000 | 10 0100 | Sim |
OR | 00 0000 | 10 0101 | Sim |
NOR | 00 0000 | 10 0111 | Sim |
XOR | 00 0000 | 10 0110 | Sim |
SLT | 00 0000 | 10 1010 | Sim |
J | 00 0010 | ||
BEQ | 00 0100 | ||
BNE | 00 0101 |
As instruções adicionais a serem implementadas são as seguintes:
Opcode | Funct | ULA | rt | |
---|---|---|---|---|
ANDi | 00 1100 | Sim | ||
SRL | 00 0000 | 00 0010 | Sim | |
BGEZ | 00 0001 | 0 0001 | ||
BLTZ | 00 0001 | 0 0000 | ||
SLTI | 00 1010 | Sim |
Obs.: Para as instruções BGEZ, BGTZ, BLEZ e BLTZ, o campo rt da instrução é utilizado como extensão do campo opcode.
O processador deve ser simulado no ModelSim e implementado em FPGA. Neste caso, para verificação de seu funcionamento, deve-se observar o PC, o RI, o RDM e a SaidaALU através dos mostradores de 7 segmentos.
Para entrada e saída de dados deve-se utilizar:
- Botão para acionar o relógio;
- Mostrador de 7 segmentos para exibir conteúdo de RI e SaidaALU.
O PC deve ter 32 bits. A memória tem apenas 256 palavras de 32 bits, de forma que apenas 8 bits do PC devem ser utilizados no seu endereçamento.
Os endereços da área de dados devem ser mapeados para a região de memória que começa no endereço 128 no FPGA. Assim, o endereço de dado deve ser gerado concatenando os bits [8 dowto 2] do SaidaALU com o bit ‘1’ na posição mais significativa: ‘1’ & alu_out(8 downto 2).
Para executar um programa gerado pelo MARS, devem ser carregados o código e os dados do programa.
15 de dezembro. Apresentar o código VHDL simulando no ModelSim e executar em FPGA.