OpenCores
URL https://opencores.org/ocsvn/microriscii/microriscii/trunk

Subversion Repositories microriscii

[/] [microriscii/] [trunk/] [documentation/] [ISA.txt] - Blame information for rev 19

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 8 alikat
The encoding info is scattered in the source I'm gonna organize it all soon.
2
 
3 11 alikat
Registers:
4
0000: $SP - Stack Pointer
5
0001: $GP - Global Pointer
6
0010: $RA - Return Address
7
0011: $SYS - System
8
0100: $R0 - General Purpose Registers
9
0101: $R1
10
0110: $R2
11
0111: $R3
12
1000: $R4
13
1001: $R5
14
1010: $R6
15
1011: $R7
16
1100: $T0 - Temporary Registers
17
1101: $T1
18
1110: $T2
19
1111: $T3
20
 
21 8 alikat
MicroRISC II Instruction Set
22
 
23
Arithmetic:
24
ADD
25
SUB
26
MUL(U) // Optional / By default it is included
27
DIV(U) // Optional
28
MOD(U) // Optional
29
SHR
30
SHL
31
ROR
32
ROL
33
PCNT // Population One Count
34
PCNTZ // Population Zero Count
35
PCNTC // Population Change Count
36
RND // Random Number Generator
37
Arguments: reg,reg,reg
38
Arguments: reg,reg,imm16
39
 
40 11 alikat
0100:
41 8 alikat
| OP(4) | ALUOP(4) | REGD(4) | REGA(4) | REGB(4) | VOID(12) |
42 11 alikat
0101:
43 8 alikat
| OP(4) | ALUOP(4) | REGD(4) | REGA(4) | IMM(16) |
44
 
45
Logic:
46
OR
47
AND
48
XOR
49
NOT
50
Arguments: reg,reg,reg
51
 
52 11 alikat
0010:
53 8 alikat
| OP(4) | LOGICOP(2) | VOID(2) | REGD(4) | REGA(4) | REGB(4) | VOID(12) |
54 11 alikat
0011:
55
| OP(4) | LOGICOP(2) | HIGH/LOW(1) | VOID(1) | REGD(4) | REGA(4) | VOID(16) |
56 8 alikat
 
57
Memory:
58
LB/LW/LD(S)
59
SB/SW/SD
60
Arguments: reg,[reg+imm16]
61
 
62 11 alikat
0001:
63 8 alikat
| OP(4) | STORE/LOAD(1) | SIGNED(1) | SIZE(2) | REGD(4) | REGA(4) | IMM(16) |
64
 
65
Branch:
66 11 alikat
J(L) 1000
67
JR(L) 1001
68
BEQ(L) 1010
69
BNE(L) 1011
70
BZ(L) 1100
71
BNZ(L) 1101
72
BC(L) 1110
73
BNC(L) 1111
74 8 alikat
 
75
| OP(4) | REGD(4) | REGA(4) | REGB(4) | IMM(16) |
76
 
77
BLT(L)
78
BLTU(L)
79
BNL(L)
80
BNLU(L)
81
BGT(L)
82
BGTU(L)
83
BNG(L)
84
BNGU(L)
85
 
86 11 alikat
0111:
87 8 alikat
| OP(4) | BranchOP(4) | REGD(4) | REGA(4) | REGB(4) | VOID(4) | IMM(8) |
88
 
89
Interupts/Special:
90
NOP // No Operation
91
LLW imm16 // Load Low Word // Erases register and places 16bit value
92
LHW     imm16 // Load High Word // Erases register and places the 16bit value
93
SIV reg // Set Interupt Vector
94
GIV reg // Get Interupt Vector
95
THROW reg // Throw and load soft cause(16 bits)
96
THROW imm16 // Throw
97
CAUSE reg // Get Cause(32 bits)
98
IRET reg // Interupt Return
99
GPRSR reg // Get Program Restore State Register(Carry,etc.)
100
SPRSR reg // Set Program Restore State Register
101 11 alikat
SWMC // Switch Microcode Size(16bit/32bit)
102 8 alikat
 
103 11 alikat
0000:
104 8 alikat
| OP(4) | SOP(4) | REGD(4) | REGA(4) | IMM(16) |

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.