core_debug: Stop logging 256 cycles after trigger
[microwatt.git] / insn_helpers.vhdl
1 library ieee;
2 use ieee.std_logic_1164.all;
3
4 package insn_helpers is
5 function insn_rs (insn_in : std_ulogic_vector) return std_ulogic_vector;
6 function insn_rt (insn_in : std_ulogic_vector) return std_ulogic_vector;
7 function insn_ra (insn_in : std_ulogic_vector) return std_ulogic_vector;
8 function insn_rb (insn_in : std_ulogic_vector) return std_ulogic_vector;
9 function insn_rcreg (insn_in : std_ulogic_vector) return std_ulogic_vector;
10 function insn_si (insn_in : std_ulogic_vector) return std_ulogic_vector;
11 function insn_ui (insn_in : std_ulogic_vector) return std_ulogic_vector;
12 function insn_l (insn_in : std_ulogic_vector) return std_ulogic;
13 function insn_sh32 (insn_in : std_ulogic_vector) return std_ulogic_vector;
14 function insn_mb32 (insn_in : std_ulogic_vector) return std_ulogic_vector;
15 function insn_me32 (insn_in : std_ulogic_vector) return std_ulogic_vector;
16 function insn_li (insn_in : std_ulogic_vector) return std_ulogic_vector;
17 function insn_lk (insn_in : std_ulogic_vector) return std_ulogic;
18 function insn_aa (insn_in : std_ulogic_vector) return std_ulogic;
19 function insn_rc (insn_in : std_ulogic_vector) return std_ulogic;
20 function insn_oe (insn_in : std_ulogic_vector) return std_ulogic;
21 function insn_bd (insn_in : std_ulogic_vector) return std_ulogic_vector;
22 function insn_bf (insn_in : std_ulogic_vector) return std_ulogic_vector;
23 function insn_bfa (insn_in : std_ulogic_vector) return std_ulogic_vector;
24 function insn_cr (insn_in : std_ulogic_vector) return std_ulogic_vector;
25 function insn_bt (insn_in : std_ulogic_vector) return std_ulogic_vector;
26 function insn_ba (insn_in : std_ulogic_vector) return std_ulogic_vector;
27 function insn_bb (insn_in : std_ulogic_vector) return std_ulogic_vector;
28 function insn_fxm (insn_in : std_ulogic_vector) return std_ulogic_vector;
29 function insn_bo (insn_in : std_ulogic_vector) return std_ulogic_vector;
30 function insn_bi (insn_in : std_ulogic_vector) return std_ulogic_vector;
31 function insn_bh (insn_in : std_ulogic_vector) return std_ulogic_vector;
32 function insn_d (insn_in : std_ulogic_vector) return std_ulogic_vector;
33 function insn_ds (insn_in : std_ulogic_vector) return std_ulogic_vector;
34 function insn_dx (insn_in : std_ulogic_vector) return std_ulogic_vector;
35 function insn_to (insn_in : std_ulogic_vector) return std_ulogic_vector;
36 function insn_bc (insn_in : std_ulogic_vector) return std_ulogic_vector;
37 function insn_sh (insn_in : std_ulogic_vector) return std_ulogic_vector;
38 function insn_me (insn_in : std_ulogic_vector) return std_ulogic_vector;
39 function insn_mb (insn_in : std_ulogic_vector) return std_ulogic_vector;
40 function insn_frt (insn_in : std_ulogic_vector) return std_ulogic_vector;
41 function insn_fra (insn_in : std_ulogic_vector) return std_ulogic_vector;
42 function insn_frb (insn_in : std_ulogic_vector) return std_ulogic_vector;
43 function insn_frc (insn_in : std_ulogic_vector) return std_ulogic_vector;
44 function insn_u (insn_in : std_ulogic_vector) return std_ulogic_vector;
45 end package insn_helpers;
46
47 package body insn_helpers is
48 function insn_rs (insn_in : std_ulogic_vector) return std_ulogic_vector is
49 begin
50 return insn_in(25 downto 21);
51 end;
52
53 function insn_rt (insn_in : std_ulogic_vector) return std_ulogic_vector is
54 begin
55 return insn_in(25 downto 21);
56 end;
57
58 function insn_ra (insn_in : std_ulogic_vector) return std_ulogic_vector is
59 begin
60 return insn_in(20 downto 16);
61 end;
62
63 function insn_rb (insn_in : std_ulogic_vector) return std_ulogic_vector is
64 begin
65 return insn_in(15 downto 11);
66 end;
67
68 function insn_rcreg (insn_in : std_ulogic_vector) return std_ulogic_vector is
69 begin
70 return insn_in(10 downto 6);
71 end;
72
73 function insn_si (insn_in : std_ulogic_vector) return std_ulogic_vector is
74 begin
75 return insn_in(15 downto 0);
76 end;
77
78 function insn_ui (insn_in : std_ulogic_vector) return std_ulogic_vector is
79 begin
80 return insn_in(15 downto 0);
81 end;
82
83 function insn_l (insn_in : std_ulogic_vector) return std_ulogic is
84 begin
85 return insn_in(21);
86 end;
87
88 function insn_sh32 (insn_in : std_ulogic_vector) return std_ulogic_vector is
89 begin
90 return insn_in(15 downto 11);
91 end;
92
93 function insn_mb32 (insn_in : std_ulogic_vector) return std_ulogic_vector is
94 begin
95 return insn_in(10 downto 6);
96 end;
97
98 function insn_me32 (insn_in : std_ulogic_vector) return std_ulogic_vector is
99 begin
100 return insn_in(5 downto 1);
101 end;
102
103 function insn_li (insn_in : std_ulogic_vector) return std_ulogic_vector is
104 begin
105 return insn_in(25 downto 2);
106 end;
107
108 function insn_lk (insn_in : std_ulogic_vector) return std_ulogic is
109 begin
110 return insn_in(0);
111 end;
112
113 function insn_aa (insn_in : std_ulogic_vector) return std_ulogic is
114 begin
115 return insn_in(1);
116 end;
117
118 function insn_rc (insn_in : std_ulogic_vector) return std_ulogic is
119 begin
120 return insn_in(0);
121 end;
122
123 function insn_oe (insn_in : std_ulogic_vector) return std_ulogic is
124 begin
125 return insn_in(10);
126 end;
127
128 function insn_bd (insn_in : std_ulogic_vector) return std_ulogic_vector is
129 begin
130 return insn_in(15 downto 2);
131 end;
132
133 function insn_bf (insn_in : std_ulogic_vector) return std_ulogic_vector is
134 begin
135 return insn_in(25 downto 23);
136 end;
137
138 function insn_bfa (insn_in : std_ulogic_vector) return std_ulogic_vector is
139 begin
140 return insn_in(20 downto 18);
141 end;
142
143 function insn_cr (insn_in : std_ulogic_vector) return std_ulogic_vector is
144 begin
145 return insn_in(10 downto 1);
146 end;
147
148 function insn_bb (insn_in : std_ulogic_vector) return std_ulogic_vector is
149 begin
150 return insn_in(15 downto 11);
151 end;
152
153 function insn_ba (insn_in : std_ulogic_vector) return std_ulogic_vector is
154 begin
155 return insn_in(20 downto 16);
156 end;
157
158 function insn_bt (insn_in : std_ulogic_vector) return std_ulogic_vector is
159 begin
160 return insn_in(25 downto 21);
161 end;
162
163 function insn_fxm (insn_in : std_ulogic_vector) return std_ulogic_vector is
164 begin
165 return insn_in(19 downto 12);
166 end;
167
168 function insn_bo (insn_in : std_ulogic_vector) return std_ulogic_vector is
169 begin
170 return insn_in(25 downto 21);
171 end;
172
173 function insn_bi (insn_in : std_ulogic_vector) return std_ulogic_vector is
174 begin
175 return insn_in(20 downto 16);
176 end;
177
178 function insn_bh (insn_in : std_ulogic_vector) return std_ulogic_vector is
179 begin
180 return insn_in(12 downto 11);
181 end;
182
183 function insn_d (insn_in : std_ulogic_vector) return std_ulogic_vector is
184 begin
185 return insn_in(15 downto 0);
186 end;
187
188 function insn_ds (insn_in : std_ulogic_vector) return std_ulogic_vector is
189 begin
190 return insn_in(15 downto 2);
191 end;
192
193 function insn_dx (insn_in : std_ulogic_vector) return std_ulogic_vector is
194 begin
195 return insn_in(15 downto 6) & insn_in(20 downto 16) & insn_in(0);
196 end;
197
198 function insn_to (insn_in : std_ulogic_vector) return std_ulogic_vector is
199 begin
200 return insn_in(25 downto 21);
201 end;
202
203 function insn_bc (insn_in : std_ulogic_vector) return std_ulogic_vector is
204 begin
205 return insn_in(10 downto 6);
206 end;
207
208 function insn_sh (insn_in : std_ulogic_vector) return std_ulogic_vector is
209 begin
210 return insn_in(1) & insn_in(15 downto 11);
211 end;
212
213 function insn_me (insn_in : std_ulogic_vector) return std_ulogic_vector is
214 begin
215 return insn_in(5) & insn_in(10 downto 6);
216 end;
217
218 function insn_mb (insn_in : std_ulogic_vector) return std_ulogic_vector is
219 begin
220 return insn_in(5) & insn_in(10 downto 6);
221 end;
222
223 function insn_frt(insn_in : std_ulogic_vector) return std_ulogic_vector is
224 begin
225 return insn_in(25 downto 21);
226 end;
227
228 function insn_fra(insn_in : std_ulogic_vector) return std_ulogic_vector is
229 begin
230 return insn_in(20 downto 16);
231 end;
232
233 function insn_frb(insn_in : std_ulogic_vector) return std_ulogic_vector is
234 begin
235 return insn_in(15 downto 11);
236 end;
237
238 function insn_frc(insn_in : std_ulogic_vector) return std_ulogic_vector is
239 begin
240 return insn_in(10 downto 6);
241 end;
242
243 function insn_u(insn_in : std_ulogic_vector) return std_ulogic_vector is
244 begin
245 return insn_in(15 downto 12);
246 end;
247 end package body insn_helpers;