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_si (insn_in : std_ulogic_vector) return std_ulogic_vector;
10 function insn_ui (insn_in : std_ulogic_vector) return std_ulogic_vector;
11 function insn_l (insn_in : std_ulogic_vector) return std_ulogic;
12 function insn_sh32 (insn_in : std_ulogic_vector) return std_ulogic_vector;
13 function insn_mb32 (insn_in : std_ulogic_vector) return std_ulogic_vector;
14 function insn_me32 (insn_in : std_ulogic_vector) return std_ulogic_vector;
15 function insn_li (insn_in : std_ulogic_vector) return std_ulogic_vector;
16 function insn_lk (insn_in : std_ulogic_vector) return std_ulogic;
17 function insn_aa (insn_in : std_ulogic_vector) return std_ulogic;
18 function insn_rc (insn_in : std_ulogic_vector) return std_ulogic;
19 function insn_oe (insn_in : std_ulogic_vector) return std_ulogic;
20 function insn_bd (insn_in : std_ulogic_vector) return std_ulogic_vector;
21 function insn_bf (insn_in : std_ulogic_vector) return std_ulogic_vector;
22 function insn_bfa (insn_in : std_ulogic_vector) return std_ulogic_vector;
23 function insn_fxm (insn_in : std_ulogic_vector) return std_ulogic_vector;
24 function insn_bo (insn_in : std_ulogic_vector) return std_ulogic_vector;
25 function insn_bi (insn_in : std_ulogic_vector) return std_ulogic_vector;
26 function insn_bh (insn_in : std_ulogic_vector) return std_ulogic_vector;
27 function insn_d (insn_in : std_ulogic_vector) return std_ulogic_vector;
28 function insn_ds (insn_in : std_ulogic_vector) return std_ulogic_vector;
29 function insn_to (insn_in : std_ulogic_vector) return std_ulogic_vector;
30 function insn_bc (insn_in : std_ulogic_vector) return std_ulogic_vector;
31 function insn_sh (insn_in : std_ulogic_vector) return std_ulogic_vector;
32 function insn_me (insn_in : std_ulogic_vector) return std_ulogic_vector;
33 function insn_mb (insn_in : std_ulogic_vector) return std_ulogic_vector;
34 end package insn_helpers;
36 package body insn_helpers is
37 function insn_rs (insn_in : std_ulogic_vector) return std_ulogic_vector is
39 return insn_in(25 downto 21);
42 function insn_rt (insn_in : std_ulogic_vector) return std_ulogic_vector is
44 return insn_in(25 downto 21);
47 function insn_ra (insn_in : std_ulogic_vector) return std_ulogic_vector is
49 return insn_in(20 downto 16);
52 function insn_rb (insn_in : std_ulogic_vector) return std_ulogic_vector is
54 return insn_in(15 downto 11);
57 function insn_si (insn_in : std_ulogic_vector) return std_ulogic_vector is
59 return insn_in(15 downto 0);
62 function insn_ui (insn_in : std_ulogic_vector) return std_ulogic_vector is
64 return insn_in(15 downto 0);
67 function insn_l (insn_in : std_ulogic_vector) return std_ulogic is
72 function insn_sh32 (insn_in : std_ulogic_vector) return std_ulogic_vector is
74 return insn_in(15 downto 11);
77 function insn_mb32 (insn_in : std_ulogic_vector) return std_ulogic_vector is
79 return insn_in(10 downto 6);
82 function insn_me32 (insn_in : std_ulogic_vector) return std_ulogic_vector is
84 return insn_in(5 downto 1);
87 function insn_li (insn_in : std_ulogic_vector) return std_ulogic_vector is
89 return insn_in(25 downto 2);
92 function insn_lk (insn_in : std_ulogic_vector) return std_ulogic is
97 function insn_aa (insn_in : std_ulogic_vector) return std_ulogic is
102 function insn_rc (insn_in : std_ulogic_vector) return std_ulogic is
107 function insn_oe (insn_in : std_ulogic_vector) return std_ulogic is
112 function insn_bd (insn_in : std_ulogic_vector) return std_ulogic_vector is
114 return insn_in(15 downto 2);
117 function insn_bf (insn_in : std_ulogic_vector) return std_ulogic_vector is
119 return insn_in(25 downto 23);
122 function insn_bfa (insn_in : std_ulogic_vector) return std_ulogic_vector is
124 return insn_in(20 downto 18);
127 function insn_fxm (insn_in : std_ulogic_vector) return std_ulogic_vector is
129 return insn_in(19 downto 12);
132 function insn_bo (insn_in : std_ulogic_vector) return std_ulogic_vector is
134 return insn_in(25 downto 21);
137 function insn_bi (insn_in : std_ulogic_vector) return std_ulogic_vector is
139 return insn_in(20 downto 16);
142 function insn_bh (insn_in : std_ulogic_vector) return std_ulogic_vector is
144 return insn_in(12 downto 11);
147 function insn_d (insn_in : std_ulogic_vector) return std_ulogic_vector is
149 return insn_in(15 downto 0);
152 function insn_ds (insn_in : std_ulogic_vector) return std_ulogic_vector is
154 return insn_in(15 downto 2);
157 function insn_to (insn_in : std_ulogic_vector) return std_ulogic_vector is
159 return insn_in(25 downto 21);
162 function insn_bc (insn_in : std_ulogic_vector) return std_ulogic_vector is
164 return insn_in(10 downto 6);
167 function insn_sh (insn_in : std_ulogic_vector) return std_ulogic_vector is
169 return insn_in(1) & insn_in(15 downto 11);
172 function insn_me (insn_in : std_ulogic_vector) return std_ulogic_vector is
174 return insn_in(5) & insn_in(10 downto 6);
177 function insn_mb (insn_in : std_ulogic_vector) return std_ulogic_vector is
179 return insn_in(5) & insn_in(10 downto 6);
181 end package body insn_helpers;