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_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;
47 package body insn_helpers is
48 function insn_rs (insn_in : std_ulogic_vector) return std_ulogic_vector is
50 return insn_in(25 downto 21);
53 function insn_rt (insn_in : std_ulogic_vector) return std_ulogic_vector is
55 return insn_in(25 downto 21);
58 function insn_ra (insn_in : std_ulogic_vector) return std_ulogic_vector is
60 return insn_in(20 downto 16);
63 function insn_rb (insn_in : std_ulogic_vector) return std_ulogic_vector is
65 return insn_in(15 downto 11);
68 function insn_rcreg (insn_in : std_ulogic_vector) return std_ulogic_vector is
70 return insn_in(10 downto 6);
73 function insn_si (insn_in : std_ulogic_vector) return std_ulogic_vector is
75 return insn_in(15 downto 0);
78 function insn_ui (insn_in : std_ulogic_vector) return std_ulogic_vector is
80 return insn_in(15 downto 0);
83 function insn_l (insn_in : std_ulogic_vector) return std_ulogic is
88 function insn_sh32 (insn_in : std_ulogic_vector) return std_ulogic_vector is
90 return insn_in(15 downto 11);
93 function insn_mb32 (insn_in : std_ulogic_vector) return std_ulogic_vector is
95 return insn_in(10 downto 6);
98 function insn_me32 (insn_in : std_ulogic_vector) return std_ulogic_vector is
100 return insn_in(5 downto 1);
103 function insn_li (insn_in : std_ulogic_vector) return std_ulogic_vector is
105 return insn_in(25 downto 2);
108 function insn_lk (insn_in : std_ulogic_vector) return std_ulogic is
113 function insn_aa (insn_in : std_ulogic_vector) return std_ulogic is
118 function insn_rc (insn_in : std_ulogic_vector) return std_ulogic is
123 function insn_oe (insn_in : std_ulogic_vector) return std_ulogic is
128 function insn_bd (insn_in : std_ulogic_vector) return std_ulogic_vector is
130 return insn_in(15 downto 2);
133 function insn_bf (insn_in : std_ulogic_vector) return std_ulogic_vector is
135 return insn_in(25 downto 23);
138 function insn_bfa (insn_in : std_ulogic_vector) return std_ulogic_vector is
140 return insn_in(20 downto 18);
143 function insn_cr (insn_in : std_ulogic_vector) return std_ulogic_vector is
145 return insn_in(10 downto 1);
148 function insn_bb (insn_in : std_ulogic_vector) return std_ulogic_vector is
150 return insn_in(15 downto 11);
153 function insn_ba (insn_in : std_ulogic_vector) return std_ulogic_vector is
155 return insn_in(20 downto 16);
158 function insn_bt (insn_in : std_ulogic_vector) return std_ulogic_vector is
160 return insn_in(25 downto 21);
163 function insn_fxm (insn_in : std_ulogic_vector) return std_ulogic_vector is
165 return insn_in(19 downto 12);
168 function insn_bo (insn_in : std_ulogic_vector) return std_ulogic_vector is
170 return insn_in(25 downto 21);
173 function insn_bi (insn_in : std_ulogic_vector) return std_ulogic_vector is
175 return insn_in(20 downto 16);
178 function insn_bh (insn_in : std_ulogic_vector) return std_ulogic_vector is
180 return insn_in(12 downto 11);
183 function insn_d (insn_in : std_ulogic_vector) return std_ulogic_vector is
185 return insn_in(15 downto 0);
188 function insn_ds (insn_in : std_ulogic_vector) return std_ulogic_vector is
190 return insn_in(15 downto 2);
193 function insn_dx (insn_in : std_ulogic_vector) return std_ulogic_vector is
195 return insn_in(15 downto 6) & insn_in(20 downto 16) & insn_in(0);
198 function insn_to (insn_in : std_ulogic_vector) return std_ulogic_vector is
200 return insn_in(25 downto 21);
203 function insn_bc (insn_in : std_ulogic_vector) return std_ulogic_vector is
205 return insn_in(10 downto 6);
208 function insn_sh (insn_in : std_ulogic_vector) return std_ulogic_vector is
210 return insn_in(1) & insn_in(15 downto 11);
213 function insn_me (insn_in : std_ulogic_vector) return std_ulogic_vector is
215 return insn_in(5) & insn_in(10 downto 6);
218 function insn_mb (insn_in : std_ulogic_vector) return std_ulogic_vector is
220 return insn_in(5) & insn_in(10 downto 6);
223 function insn_frt(insn_in : std_ulogic_vector) return std_ulogic_vector is
225 return insn_in(25 downto 21);
228 function insn_fra(insn_in : std_ulogic_vector) return std_ulogic_vector is
230 return insn_in(20 downto 16);
233 function insn_frb(insn_in : std_ulogic_vector) return std_ulogic_vector is
235 return insn_in(15 downto 11);
238 function insn_frc(insn_in : std_ulogic_vector) return std_ulogic_vector is
240 return insn_in(10 downto 6);
243 function insn_u(insn_in : std_ulogic_vector) return std_ulogic_vector is
245 return insn_in(15 downto 12);
247 end package body insn_helpers;