Você está na página 1de 19

Escola Politcnica da USP Departamento de Engenharia de Computao e Sistemas Digitais

PCS2011 Laboratrio Digital I Turma 2 Prof. Liria Sato Bancada 04 Rafael Camargo Leite Bruno Arakaki

Um processador simples

Objetivos

O objetivo dessa experincia desenvolver um projeto de um processador simples. Para isso, foi usada a arquitetura do processador MIPS.

Projeto

Como j mencionado, o processador simples projetado nessa experincia baseou-se na arquitetura do MIPS. O diagrama deste processador se encontra na figura abaixo:

Figura 1 - Diagrama geral da microarquitetura do processador MIPS

O projeto foi dividido em dois blocos: 1)fluxo de dados 2) unidade da controle

Fluxo de Dados
O fluxo de dados possui vrias unidades menores que o compem. De incio, pensamos que o correto seria utilizarmos a ULA e o banco de registradores das experincias anteriores(ou seja, em esquemtico). Seus projetos sero mostrados a seguir. Porm, aps iniciarmos o desenvolvimento dos mesmos, optamos por descreve-los em VHDL devido enorme praticidade de implementaco e modificaco.

Banco de Registradores

Primeiramente, foi desenvolvido o banco usando diagramas esquemticos

como a seguir:

Percebemos aqui, que utilizando esquemtico, teramos um enorme trabalho para desenvolver cada parte do fluxo de dados. Por isso, optamos pelo desenvolvimento em VHDL.

O cdigo desenvolvido est exposto abaixo.

A carta de tempo esta mostrada abaixo:

ULA

De incio, a ULA tabmm foi pensada como esquemtico. Mas tambm devido ao enorme nmero de ligaces, foi proposto um desenvolvimento em VHDL. O cdigo est mostrado abaixo:

Memria de Instrues

A memria de instruces foi implementada como uma EPROM da experincia passada. Seu cdigo est explcito logo abaixo:

ela foi iniciada com um arquivo.mif apenas com alguns valores iniciados. Os Valores na carta de tempo abaixo so exatemente os esperados:

Memria de Dados
A memria de dados foi implementada como uma memria RAM.

Seu cdigo VHDL est explcito abaixo:

Seu funcionamento pode ser verificado observando a carta de tempo abaixo:

Extenso de Sinal
A extenso de sinal foi usada em 2 momentos no projeto:

1) extenso de 16 para 32 bits 2) extenso de 26 para 28 bits Apenas a extenso de 16 para 32 bits ser mostrada j que apenas seria necessrio alterar o tamanho dos vectors apresentados no VHDL.

perceba que para haver coerncia de sinal, existe o if dentro do process que completa o numero com zeros ou uns. A carta de tempo deste circuito est mostrada abaixo:

Multiplexador 2x1
Foram usados dois tipos de MUX 2x1:

1) 32 bits 2) 5 bits Novamente, apenas o de 32 bits ser mostrado. Basta modificarmos os tamanhos dos vectors para mudarmos de um para o outro.

a carta de tempo com seu funcionamento esta mostrada abaixo

PC

Este componente serve para mostrar qual o endereco da prxima instruco memria de instruces. Como pedido no projeto, este componente sncrono e apresenta enable. Seu cdigo VHDL est mostrado abaixo:

Sua carta de tempo est mostrada abaixo:

PCBranch

Este componente atua no BEQ. Ele funciona exatamente como um somador. A soma feita entre o valor dado em PC e o valor imediato aps ser extendido.Seu cdigo VHDL est mostrado abaixo:

Sua carta de tempo est mostrada abaixo:

PCPlus4

simplesmente um somador. Ele soma 4 ao valor em PC para mostrar a prxima instruco. Seu cdigo VHDL est mostrado abaixo:

Sua carta de tempo apresentada abaixo:

Deslocador de 2 bits para esquerda


Este deslocador bem simples e usado em duas formas:

1) deslocador de 2 bits para entradas de 32 bits 2)deslocador de 2 bits para entradas de 26 bits Apenas o cdigo do deslocador de 32 bits ser mostrado

Sua carta de tempo est mostrada abaixo:

O circuito completo do fluxo de dados est mostrado abaixo:

Seu arquivo .bsf ficou da seguinte forma:

Unidade de Controle
Para a implementaco da unidade de controle, foi usado o diagrama de transico de estados mostrado abaixo:

A partir dele, foi desenvolvido o diagrama ASM abaixo:

usando os 2 e a tabela tambm mostrada a seguir, desenvolvemos o cdigo VHDL que ser mostrado:

1)tabela dos sinais de controle

2) cdigo VHDL:

O circuito completo ficou da seguinte forma:

O circuito ainda no foi completamente testado e pode conter erros.

Parte Experimental

Concluses