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 end package insn_helpers;
46 package body insn_helpers is
47 function insn_rs (insn_in : std_ulogic_vector) return std_ulogic_vector is
49 return insn_in(25 downto 21);
52 function insn_rt (insn_in : std_ulogic_vector) return std_ulogic_vector is
54 return insn_in(25 downto 21);
57 function insn_ra (insn_in : std_ulogic_vector) return std_ulogic_vector is
59 return insn_in(20 downto 16);
62 function insn_rb (insn_in : std_ulogic_vector) return std_ulogic_vector is
64 return insn_in(15 downto 11);
67 function insn_rcreg (insn_in : std_ulogic_vector) return std_ulogic_vector is
69 return insn_in(10 downto 6);
72 function insn_si (insn_in : std_ulogic_vector) return std_ulogic_vector is
74 return insn_in(15 downto 0);
77 function insn_ui (insn_in : std_ulogic_vector) return std_ulogic_vector is
79 return insn_in(15 downto 0);
82 function insn_l (insn_in : std_ulogic_vector) return std_ulogic is
87 function insn_sh32 (insn_in : std_ulogic_vector) return std_ulogic_vector is
89 return insn_in(15 downto 11);
92 function insn_mb32 (insn_in : std_ulogic_vector) return std_ulogic_vector is
94 return insn_in(10 downto 6);
97 function insn_me32 (insn_in : std_ulogic_vector) return std_ulogic_vector is
99 return insn_in(5 downto 1);
102 function insn_li (insn_in : std_ulogic_vector) return std_ulogic_vector is
104 return insn_in(25 downto 2);
107 function insn_lk (insn_in : std_ulogic_vector) return std_ulogic is
112 function insn_aa (insn_in : std_ulogic_vector) return std_ulogic is
117 function insn_rc (insn_in : std_ulogic_vector) return std_ulogic is
122 function insn_oe (insn_in : std_ulogic_vector) return std_ulogic is
127 function insn_bd (insn_in : std_ulogic_vector) return std_ulogic_vector is
129 return insn_in(15 downto 2);
132 function insn_bf (insn_in : std_ulogic_vector) return std_ulogic_vector is
134 return insn_in(25 downto 23);
137 function insn_bfa (insn_in : std_ulogic_vector) return std_ulogic_vector is
139 return insn_in(20 downto 18);
142 function insn_cr (insn_in : std_ulogic_vector) return std_ulogic_vector is
144 return insn_in(10 downto 1);
147 function insn_bb (insn_in : std_ulogic_vector) return std_ulogic_vector is
149 return insn_in(15 downto 11);
152 function insn_ba (insn_in : std_ulogic_vector) return std_ulogic_vector is
154 return insn_in(20 downto 16);
157 function insn_bt (insn_in : std_ulogic_vector) return std_ulogic_vector is
159 return insn_in(25 downto 21);
162 function insn_fxm (insn_in : std_ulogic_vector) return std_ulogic_vector is
164 return insn_in(19 downto 12);
167 function insn_bo (insn_in : std_ulogic_vector) return std_ulogic_vector is
169 return insn_in(25 downto 21);
172 function insn_bi (insn_in : std_ulogic_vector) return std_ulogic_vector is
174 return insn_in(20 downto 16);
177 function insn_bh (insn_in : std_ulogic_vector) return std_ulogic_vector is
179 return insn_in(12 downto 11);
182 function insn_d (insn_in : std_ulogic_vector) return std_ulogic_vector is
184 return insn_in(15 downto 0);
187 function insn_ds (insn_in : std_ulogic_vector) return std_ulogic_vector is
189 return insn_in(15 downto 2);
192 function insn_dx (insn_in : std_ulogic_vector) return std_ulogic_vector is
194 return insn_in(15 downto 6) & insn_in(20 downto 16) & insn_in(0);
197 function insn_to (insn_in : std_ulogic_vector) return std_ulogic_vector is
199 return insn_in(25 downto 21);
202 function insn_bc (insn_in : std_ulogic_vector) return std_ulogic_vector is
204 return insn_in(10 downto 6);
207 function insn_sh (insn_in : std_ulogic_vector) return std_ulogic_vector is
209 return insn_in(1) & insn_in(15 downto 11);
212 function insn_me (insn_in : std_ulogic_vector) return std_ulogic_vector is
214 return insn_in(5) & insn_in(10 downto 6);
217 function insn_mb (insn_in : std_ulogic_vector) return std_ulogic_vector is
219 return insn_in(5) & insn_in(10 downto 6);
222 function insn_frt(insn_in : std_ulogic_vector) return std_ulogic_vector is
224 return insn_in(25 downto 21);
227 function insn_fra(insn_in : std_ulogic_vector) return std_ulogic_vector is
229 return insn_in(20 downto 16);
232 function insn_frb(insn_in : std_ulogic_vector) return std_ulogic_vector is
234 return insn_in(15 downto 11);
237 function insn_frc(insn_in : std_ulogic_vector) return std_ulogic_vector is
239 return insn_in(10 downto 6);
241 end package body insn_helpers;