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_rc (insn_in : std_ulogic_vector) return std_ulogic;
18 function insn_bd (insn_in : std_ulogic_vector) return std_ulogic_vector;
19 function insn_bf (insn_in : std_ulogic_vector) return std_ulogic_vector;
20 function insn_fxm (insn_in : std_ulogic_vector) return std_ulogic_vector;
21 function insn_bo (insn_in : std_ulogic_vector) return std_ulogic_vector;
22 function insn_bi (insn_in : std_ulogic_vector) return std_ulogic_vector;
23 function insn_bh (insn_in : std_ulogic_vector) return std_ulogic_vector;
24 function insn_d (insn_in : std_ulogic_vector) return std_ulogic_vector;
25 function insn_ds (insn_in : std_ulogic_vector) return std_ulogic_vector;
26 function insn_to (insn_in : std_ulogic_vector) return std_ulogic_vector;
27 function insn_bc (insn_in : std_ulogic_vector) return std_ulogic_vector;
28 function insn_sh (insn_in : std_ulogic_vector) return std_ulogic_vector;
29 function insn_me (insn_in : std_ulogic_vector) return std_ulogic_vector;
30 function insn_mb (insn_in : std_ulogic_vector) return std_ulogic_vector;
31 end package insn_helpers;
33 package body insn_helpers is
34 function insn_rs (insn_in : std_ulogic_vector) return std_ulogic_vector is
36 return insn_in(25 downto 21);
39 function insn_rt (insn_in : std_ulogic_vector) return std_ulogic_vector is
41 return insn_in(25 downto 21);
44 function insn_ra (insn_in : std_ulogic_vector) return std_ulogic_vector is
46 return insn_in(20 downto 16);
49 function insn_rb (insn_in : std_ulogic_vector) return std_ulogic_vector is
51 return insn_in(15 downto 11);
54 function insn_si (insn_in : std_ulogic_vector) return std_ulogic_vector is
56 return insn_in(15 downto 0);
59 function insn_ui (insn_in : std_ulogic_vector) return std_ulogic_vector is
61 return insn_in(15 downto 0);
64 function insn_l (insn_in : std_ulogic_vector) return std_ulogic is
69 function insn_sh32 (insn_in : std_ulogic_vector) return std_ulogic_vector is
71 return insn_in(15 downto 11);
74 function insn_mb32 (insn_in : std_ulogic_vector) return std_ulogic_vector is
76 return insn_in(10 downto 6);
79 function insn_me32 (insn_in : std_ulogic_vector) return std_ulogic_vector is
81 return insn_in(5 downto 1);
84 function insn_li (insn_in : std_ulogic_vector) return std_ulogic_vector is
86 return insn_in(25 downto 2);
89 function insn_lk (insn_in : std_ulogic_vector) return std_ulogic is
94 function insn_rc (insn_in : std_ulogic_vector) return std_ulogic is
99 function insn_bd (insn_in : std_ulogic_vector) return std_ulogic_vector is
101 return insn_in(15 downto 2);
104 function insn_bf (insn_in : std_ulogic_vector) return std_ulogic_vector is
106 return insn_in(25 downto 23);
109 function insn_fxm (insn_in : std_ulogic_vector) return std_ulogic_vector is
111 return insn_in(19 downto 12);
114 function insn_bo (insn_in : std_ulogic_vector) return std_ulogic_vector is
116 return insn_in(25 downto 21);
119 function insn_bi (insn_in : std_ulogic_vector) return std_ulogic_vector is
121 return insn_in(20 downto 16);
124 function insn_bh (insn_in : std_ulogic_vector) return std_ulogic_vector is
126 return insn_in(12 downto 11);
129 function insn_d (insn_in : std_ulogic_vector) return std_ulogic_vector is
131 return insn_in(15 downto 0);
134 function insn_ds (insn_in : std_ulogic_vector) return std_ulogic_vector is
136 return insn_in(15 downto 2);
139 function insn_to (insn_in : std_ulogic_vector) return std_ulogic_vector is
141 return insn_in(25 downto 21);
144 function insn_bc (insn_in : std_ulogic_vector) return std_ulogic_vector is
146 return insn_in(10 downto 6);
149 function insn_sh (insn_in : std_ulogic_vector) return std_ulogic_vector is
151 return insn_in(1) & insn_in(15 downto 11);
154 function insn_me (insn_in : std_ulogic_vector) return std_ulogic_vector is
156 return insn_in(5) & insn_in(10 downto 6);
159 function insn_mb (insn_in : std_ulogic_vector) return std_ulogic_vector is
161 return insn_in(5) & insn_in(10 downto 6);
163 end package body insn_helpers;