2 use ieee.std_logic_1164.all;
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_dq (insn_in : std_ulogic_vector) return std_ulogic_vector;
35 function insn_dx (insn_in : std_ulogic_vector) return std_ulogic_vector;
36 function insn_to (insn_in : std_ulogic_vector) return std_ulogic_vector;
37 function insn_bc (insn_in : std_ulogic_vector) return std_ulogic_vector;
38 function insn_sh (insn_in : std_ulogic_vector) return std_ulogic_vector;
39 function insn_me (insn_in : std_ulogic_vector) return std_ulogic_vector;
40 function insn_mb (insn_in : std_ulogic_vector) return std_ulogic_vector;
41 function insn_frt (insn_in : std_ulogic_vector) return std_ulogic_vector;
42 function insn_fra (insn_in : std_ulogic_vector) return std_ulogic_vector;
43 function insn_frb (insn_in : std_ulogic_vector) return std_ulogic_vector;
44 function insn_frc (insn_in : std_ulogic_vector) return std_ulogic_vector;
45 function insn_u (insn_in : std_ulogic_vector) return std_ulogic_vector;
46 end package insn_helpers;
48 package body insn_helpers is
49 function insn_rs (insn_in : std_ulogic_vector) return std_ulogic_vector is
51 return insn_in(25 downto 21);
54 function insn_rt (insn_in : std_ulogic_vector) return std_ulogic_vector is
56 return insn_in(25 downto 21);
59 function insn_ra (insn_in : std_ulogic_vector) return std_ulogic_vector is
61 return insn_in(20 downto 16);
64 function insn_rb (insn_in : std_ulogic_vector) return std_ulogic_vector is
66 return insn_in(15 downto 11);
69 function insn_rcreg (insn_in : std_ulogic_vector) return std_ulogic_vector is
71 return insn_in(10 downto 6);
74 function insn_si (insn_in : std_ulogic_vector) return std_ulogic_vector is
76 return insn_in(15 downto 0);
79 function insn_ui (insn_in : std_ulogic_vector) return std_ulogic_vector is
81 return insn_in(15 downto 0);
84 function insn_l (insn_in : std_ulogic_vector) return std_ulogic is
89 function insn_sh32 (insn_in : std_ulogic_vector) return std_ulogic_vector is
91 return insn_in(15 downto 11);
94 function insn_mb32 (insn_in : std_ulogic_vector) return std_ulogic_vector is
96 return insn_in(10 downto 6);
99 function insn_me32 (insn_in : std_ulogic_vector) return std_ulogic_vector is
101 return insn_in(5 downto 1);
104 function insn_li (insn_in : std_ulogic_vector) return std_ulogic_vector is
106 return insn_in(25 downto 2);
109 function insn_lk (insn_in : std_ulogic_vector) return std_ulogic is
114 function insn_aa (insn_in : std_ulogic_vector) return std_ulogic is
119 function insn_rc (insn_in : std_ulogic_vector) return std_ulogic is
124 function insn_oe (insn_in : std_ulogic_vector) return std_ulogic is
129 function insn_bd (insn_in : std_ulogic_vector) return std_ulogic_vector is
131 return insn_in(15 downto 2);
134 function insn_bf (insn_in : std_ulogic_vector) return std_ulogic_vector is
136 return insn_in(25 downto 23);
139 function insn_bfa (insn_in : std_ulogic_vector) return std_ulogic_vector is
141 return insn_in(20 downto 18);
144 function insn_cr (insn_in : std_ulogic_vector) return std_ulogic_vector is
146 return insn_in(10 downto 1);
149 function insn_bb (insn_in : std_ulogic_vector) return std_ulogic_vector is
151 return insn_in(15 downto 11);
154 function insn_ba (insn_in : std_ulogic_vector) return std_ulogic_vector is
156 return insn_in(20 downto 16);
159 function insn_bt (insn_in : std_ulogic_vector) return std_ulogic_vector is
161 return insn_in(25 downto 21);
164 function insn_fxm (insn_in : std_ulogic_vector) return std_ulogic_vector is
166 return insn_in(19 downto 12);
169 function insn_bo (insn_in : std_ulogic_vector) return std_ulogic_vector is
171 return insn_in(25 downto 21);
174 function insn_bi (insn_in : std_ulogic_vector) return std_ulogic_vector is
176 return insn_in(20 downto 16);
179 function insn_bh (insn_in : std_ulogic_vector) return std_ulogic_vector is
181 return insn_in(12 downto 11);
184 function insn_d (insn_in : std_ulogic_vector) return std_ulogic_vector is
186 return insn_in(15 downto 0);
189 function insn_ds (insn_in : std_ulogic_vector) return std_ulogic_vector is
191 return insn_in(15 downto 2);
194 function insn_dq (insn_in : std_ulogic_vector) return std_ulogic_vector is
196 return insn_in(15 downto 4);
199 function insn_dx (insn_in : std_ulogic_vector) return std_ulogic_vector is
201 return insn_in(15 downto 6) & insn_in(20 downto 16) & insn_in(0);
204 function insn_to (insn_in : std_ulogic_vector) return std_ulogic_vector is
206 return insn_in(25 downto 21);
209 function insn_bc (insn_in : std_ulogic_vector) return std_ulogic_vector is
211 return insn_in(10 downto 6);
214 function insn_sh (insn_in : std_ulogic_vector) return std_ulogic_vector is
216 return insn_in(1) & insn_in(15 downto 11);
219 function insn_me (insn_in : std_ulogic_vector) return std_ulogic_vector is
221 return insn_in(5) & insn_in(10 downto 6);
224 function insn_mb (insn_in : std_ulogic_vector) return std_ulogic_vector is
226 return insn_in(5) & insn_in(10 downto 6);
229 function insn_frt(insn_in : std_ulogic_vector) return std_ulogic_vector is
231 return insn_in(25 downto 21);
234 function insn_fra(insn_in : std_ulogic_vector) return std_ulogic_vector is
236 return insn_in(20 downto 16);
239 function insn_frb(insn_in : std_ulogic_vector) return std_ulogic_vector is
241 return insn_in(15 downto 11);
244 function insn_frc(insn_in : std_ulogic_vector) return std_ulogic_vector is
246 return insn_in(10 downto 6);
249 function insn_u(insn_in : std_ulogic_vector) return std_ulogic_vector is
251 return insn_in(15 downto 12);
253 end package body insn_helpers;