ARC1
2º Semestre de 2013
Criação de Instrução e simulação no Modelsim
Professor: Marco Antonio Assis de Melo
Objetivo:
A idéia do trabalho é criar uma nova instrução no programa Modelsim, através dos conhecimentos adquiridos durante o semestre na matéria de Arquitetura de Computadores.
A instrução criada foi “COMPL2” (Complemento de 2).
Endereço:
O endereço escolhido foi 11010010000, resultando na posição de endereço (1680) 10.
Código em RTL:
1680: R[temp0] SEXT13 (R[ir]); / Lê o campo simm13 e o transfere para [temp0] IF R[IR[13]] THEN GOTO 1682; / É um vetor ?
1681: R[temp0] ADD (R[rs1]),R[0]) / Transfere o valor do registrador de destino 1 para [temp0]
1682: R[temp0] NOR (R[0],R[temp0]); / Inverte todos os valores de temp0 e reescreve o resultado em temp0
1683: R[rd] INC (R[temp0]) / Incremeta 1 em temp0 e manda o resultado para o registrador de destino GOTO 2047
Microwords:
Address A AMUX B BMUX C CMUX RD WR ALU COND JUMPADDR
1680 100101 0 000000 0 100001 0 0 0 1100 101 11010010010
1681 000000 1 000000 0 100001 0 0 0 1000 000 00000000000
1682 000000 0 100001 0 100001 0 0 0 0111 000 00000000000
1683 100001 0 000000 0 000000 1 0 0 1101 110 11111111111
Alteração do arquivo “microstore_bhv.vhd”
Alteração do arquivo “program.bin”
op rd op3 rs1 i 0 rs2
10 00011 010000 00001 0 00000000 00010
Base 2 1000 0111 0010 0000 0100 0000 0000 0010
Base 16 8 7 2 0 4 0 0 2
Programa 1 para teste da instrução(utilizando um registrador para realizar a instrução)*
.begin
.org 0 addcc %r0, 4, %r1 comp2 %r1, %r0, %r3 halt .end
Alteração do arquivo “program.bin”
Programa 2 para teste da instrução (utilizando um vetor para realizar a instrução) *
.begin
.org 0 comp2 %r0, 13, %r3 halt .end
Alteração do arquivo “program.bin”