Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


Processador MIPS simplificado, Exercícios de Processamento de Dados

Projeto e simulação de processador MIPS simplificado utilizando a linguagem de programação systemC.

Tipologia: Exercícios

2023

Compartilhado em 16/10/2023

arthur-souza-95q
arthur-souza-95q 🇧🇷

1 documento

1 / 2

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
Arquiteturas Avançadas
Parte Operativa MIPS - base
Objetivo: construir o núcleo básico da parte operativa de um processador MIPS,
composto por uma unidade lógico-aritmética (ULA) e um banco de registradores
(BREG).
O diagrama de bloco que segue ilustra o sistema a ser testado. O multiplexador na entrada de
dados permite selecionar o dado a ser escrito no banco de registradores. Pode ser um dado
externo ou o resultado de uma operação da ULA.
Características do banco de registradores:
32 registradores de 32 bits
duas entradas de endereços para leitura de registrador (rs e rt) e uma entrada de endereço
para escrita em registrador (rd)
duas saídas com os registradores lidos
uma entrada de dados para escrita em registrador
registrador 0 (índice zero) é constante, não pode ser alterado. Qualquer leitura deste
registrador retorna o valor zero e escritas não afetam o seu valor
sinal de habilitação de escrita wren: se wren = 1, dado é escrito em breg[rd] na transição
de subida do relógio
Interfaces :
#define WSIZE 32
SC_MODULE(breg) {
sc_in<sc_uint<5> > rs, rt, rd;
sc_in< sc_int<WSIZE> > d_in;
sc_in<bool> wren, clk;
sc_out< sc_int<WSIZE> > data1, data2;
};
Características da ULA:
Duas entradas de dados: A e B
pf2

Pré-visualização parcial do texto

Baixe Processador MIPS simplificado e outras Exercícios em PDF para Processamento de Dados, somente na Docsity!

Arquiteturas Avançadas

Parte Operativa MIPS - base

Objetivo : construir o núcleo básico da parte operativa de um processador MIPS,

composto por uma unidade lógico-aritmética (ULA) e um banco de registradores

(BREG).

O diagrama de bloco que segue ilustra o sistema a ser testado. O multiplexador na entrada de

dados permite selecionar o dado a ser escrito no banco de registradores. Pode ser um dado

externo ou o resultado de uma operação da ULA.

Características do banco de registradores :

  • (^) 32 registradores de 32 bits
  • (^) duas entradas de endereços para leitura de registrador ( rs e rt ) e uma entrada de endereço

para escrita em registrador ( rd )

  • (^) duas saídas com os registradores lidos
  • (^) uma entrada de dados para escrita em registrador
  • (^) registrador 0 (índice zero) é constante, não pode ser alterado. Qualquer leitura deste

registrador retorna o valor zero e escritas não afetam o seu valor

  • (^) sinal de habilitação de escrita wren : se wren = 1 , dado é escrito em breg[rd] na transição

de subida do relógio

Interfaces :

#define WSIZE 32

SC_MODULE (breg) {

sc_in <sc_uint<5> > rs, rt, rd;

sc_in < sc_int > d_in;

sc_in wren, clk;

sc_out < sc_int > data1, data2;

Características da ULA :

  • Duas entradas de dados: A e B
  • Uma Saída de dados: Z
  • Sinal Zero: detecta valor zero na saída
  • Sinal Overflow: ativo quando a operação de soma ou subtração gerar resultado que ultrapasse

o limite de representação em 32 bits

  • Operações (em Complemento de 2):

SC_MODULE (ula) {

sc_in < sc_uint<4> > opcode;

sc_in < sc_int > A, B;

sc_out < sc_int > Z;

sc_out zero, ovfl;

Criar um testbench onde o sistema ilustrado acima é instanciado e interconectado. Criar uma

thread de acionamento ( drive ) e uma de monitoramento ( monitor ), verificando o comportamento

dos módulos:

  • (^) manter rs = 0 e variar rt e rd, escrevendo a sequência de valores dada por i*10 nos

registradores índice i

  • (^) testar operações lógico aritméticas da ULA escrevendo os operandos no banco de

registradores, enviando-os para a ULA e selecionando a operação apropriada.

Entregar um breve relato da implementação deste trabalho, indicando os testes realizados. Incluir

o código SystemC desenvolvido.

Operação Significado OpCode and A, B Z recebe a operação lógica A and B, bit a bit 0000 or A, B Z recebe a operação lógica A or B, bit a bit 0001 add A, B Z recebe a soma das entradas A, B 0010 sub A, B Z recebe A - B 0011 addu A, B Z recebe A + B sem gerar overflow 0100 slt A, B Z = 1 se A < B 0101 nor A, B Z recebe a operação lógica A nor B, bit a bit 0110 xor A, B Z recebe a operação lógica A xor B, bit a bit 0111 sll A, B Z recebe B deslocado de A bits à esquerda 1000 srl A, B Z recebe deslocamento lógico de B por A bits à direita 1001 sra A, B Z recebe deslocamento arit. de B por A bits à direita 1010