Projeto de Arquitetura de Computadores: Implementação de uma Instrução
Por: Flavio Ribeiro de Lira • 22/10/2020 • Trabalho acadêmico • 524 Palavras (3 Páginas) • 103 Visualizações
[pic 1][pic 2]
Projeto de Arquitetura de Computadores:
“ Implementação de uma instrução
Multiplica por Cinco (XFIVE)”
NOMES DOS INTEGRANTES DO GRUPO | NÚMEROS |
1.Flavio Ribeiro de Lira | 12206153-4 |
2. |
I. Objetivos
- Implementação da Microinstrução
- Simulação utilizando o programa ModelSim
II. Implementação:
- Programas necessários:
- ModelSim (http://www.mentor.com/company/higher_ed/modelsim-student-edition)
- ARC_VHDL_8_june_2009.zip
- ARCToolsv2.1.2.zip
- uWord.xls (para a uxílio)
- Notepad++
- Procedimento:
Primeiramente foi criado um novo projeto no programa ModelSim, e editado os arquivos microstore.asm, microstore_bhv.vhd
Para efetuar a edição dos arquivos primeiramente foi necessário a alocação da memoria através da inclusão da instrução 10000001 01001000 00000000 00000000 bin que equivale a 81480000hex conforme a figura abaixo:
[pic 3]
10 00000 101001 000000 0 00000000 00000
[pic 4] 11010100100
[pic 5]
Após estas modificações foi desenvolvido o seguinte programa:
/XFIVE
ORG 1700
00000000000000000000000010110111010101010 / IF R[IR[13]] THEN GOTO 1706
00000010000001100001000001100000000000000 / R[temp0] <- ADDCC(R[rs0], R[rs1])
10000101000010100010000001100000000000000 / R[temp1] <- ADDCC(R[temp0], R[temp0])
10000101000100100011000001100000000000000 / R[temp2] <- ADDCC(R[temp0], R[temp1])
10000101000110100100000001100000000000000 / R[temp3] <- ADDCC(R[temp0], R[temp2])
10000101001000000000100001111011111111111 / R[rd] <- ADDCC(R[temp0], R[temp3]) GOTO 2047
10010110000000100001000110000000000000000 / R[temp0] <- SEXT13 (R(ir))
10000101000010100010000001100000000000000 / R[temp1] <- ADDCC(R[temp0], R[temp0])
10000101000100100011000001100000000000000 / R[temp2] <- ADDCC(R[temp0], R[temp1])
10000101000110100100000001100000000000000 / R[temp3] <- ADDCC(R[temp0], R[temp2])
10000101001000000000100001111011111111111 / R[rd] <- ADDCC(R[temp0], R[temp3]) GOTO 2047
10010110000000100001000110000000000000000 / R[temp0] <- SEXT13 (R(ir))
/ END XFIVE
Codificação em Binário:
1700 => "00000000000000000000000010110111010101010",
1701 => "00000010000001100001000001100000000000000",
1702 => "10000101000010100010000001100000000000000",
1703 => "10000101000100100011000001100000000000000",
1704 => "10000101000110100100000001100000000000000",
1705 => "10000101001000000000100001111011111111111",
1706 => "10010110000000100001000110000000000000000",
1707 => "10000101000010100010000001100000000000000",
1708 => "10000101000100100011000001100000000000000",
1709 => "10000101000110100100000001100000000000000",
1710 => "10000101001000000000100001111011111111111",
1711 => "10010110000000100001000110000000000000000",
O Set de instruções foi incluído nos arquivos descritos nas imagens abaixo, utilizando-se o Notepad++:
...