1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
|
Format for Vector Load Instructions under LOAD-FP major opcode
////
31 29 28 27 26 25 24 20 19 15 14 12 11 7 6 0
nf | mew| mop | vm | lumop | rs1 | width | vd |0000111| VL* unit-stride
nf | mew| mop | vm | rs2 | rs1 | width | vd |0000111| VLS* strided
nf | mew| mop | vm | vs2 | rs1 | width | vd |0000111| VLX* indexed
3 1 2 1 5 5 3 5 7
////
[wavedrom,,svg]
....
{reg: [
{bits: 7, name: 0x7, attr: 'VL* unit-stride'},
{bits: 5, name: 'vd', attr: 'destination of load'},
{bits: 3, name: 'width'},
{bits: 5, name: 'rs1', attr: 'base address'},
{bits: 5, name: 'lumop'},
{bits: 1, name: 'vm'},
{bits: 2, name: 'mop'},
{bits: 1, name: 'mew'},
{bits: 3, name: 'nf'},
]}
....
[wavedrom,,svg]
....
{reg: [
{bits: 7, name: 0x7, attr: 'VLS* strided'},
{bits: 5, name: 'vd', attr: 'destination of load'},
{bits: 3, name: 'width'},
{bits: 5, name: 'rs1', attr: 'base address'},
{bits: 5, name: 'rs2', attr: 'stride'},
{bits: 1, name: 'vm'},
{bits: 2, name: 'mop'},
{bits: 1, name: 'mew'},
{bits: 3, name: 'nf'},
]}
....
[wavedrom,,svg]
....
{reg: [
{bits: 7, name: 0x7, attr: 'VLX* indexed'},
{bits: 5, name: 'vd', attr: 'destination of load'},
{bits: 3, name: 'width'},
{bits: 5, name: 'rs1', attr: 'base address'},
{bits: 5, name: 'vs2', attr: 'address offsets'},
{bits: 1, name: 'vm'},
{bits: 2, name: 'mop'},
{bits: 1, name: 'mew'},
{bits: 3, name: 'nf'},
]}
....
Format for Vector Store Instructions under STORE-FP major opcode
////
31 29 28 27 26 25 24 20 19 15 14 12 11 7 6 0
nf | mew| mop | vm | sumop | rs1 | width | vs3 |0100111| VS* unit-stride
nf | mew| mop | vm | rs2 | rs1 | width | vs3 |0100111| VSS* strided
nf | mew| mop | vm | vs2 | rs1 | width | vs3 |0100111| VSX* indexed
3 1 2 1 5 5 3 5 7
////
[wavedrom,,svg]
....
{reg: [
{bits: 7, name: 0x27, attr: 'VS* unit-stride'},
{bits: 5, name: 'vs3', attr: 'store data'},
{bits: 3, name: 'width'},
{bits: 5, name: 'rs1', attr: 'base address'},
{bits: 5, name: 'sumop'},
{bits: 1, name: 'vm'},
{bits: 2, name: 'mop'},
{bits: 1, name: 'mew'},
{bits: 3, name: 'nf'},
]}
....
[wavedrom,,svg]
....
{reg: [
{bits: 7, name: 0x27, attr: 'VSS* strided'},
{bits: 5, name: 'vs3', attr: 'store data'},
{bits: 3, name: 'width'},
{bits: 5, name: 'rs1', attr: 'base address'},
{bits: 5, name: 'rs2', attr: 'stride'},
{bits: 1, name: 'vm'},
{bits: 2, name: 'mop'},
{bits: 1, name: 'mew'},
{bits: 3, name: 'nf'},
]}
....
[wavedrom,,svg]
....
{reg: [
{bits: 7, name: 0x27, attr: 'VSX* indexed'},
{bits: 5, name: 'vs3', attr: 'store data'},
{bits: 3, name: 'width'},
{bits: 5, name: 'rs1', attr: 'base address'},
{bits: 5, name: 'vs2', attr: 'address offsets'},
{bits: 1, name: 'vm'},
{bits: 2, name: 'mop'},
{bits: 1, name: 'mew'},
{bits: 3, name: 'nf'},
]}
....
|