f38539e2ed7d67ce38afdd3e538b1fad79035977
[pinmux.git] / src / bsv / bsv_lib / slow_tuple2_template.bsv
1 package slow_memory_map;
2 /*===== Project imports =====*/
3 import defined_types::*;
4 `include "instance_defines.bsv"
5 `include "slow_instance_defines.bsv"
6 /* ==== define the AXI slave numbering ===== */
7 {1}
8
9 /* ==== define the number of slow peripheral irqs ==== */
10
11 function Tuple2#(Bool, Bit#(TLog#(Num_Slow_Slaves)))
12 fn_slow_address_mapping (Bit#(`PADDR) addr);
13 `ifdef CLINT
14 if(addr>=`ClintBase && addr<=`ClintEnd)
15 return tuple2(True,fromInteger(valueOf(CLINT_slave_num)));
16 else
17 `endif
18 `ifdef PLIC
19 if(addr>=`PLICBase && addr<=`PLICEnd)
20 return tuple2(True,fromInteger(valueOf(Plic_slave_num)));
21 else
22 `endif
23 `ifdef AXIEXP
24 if(addr>=`AxiExp1Base && addr<=`AxiExp1End)
25 return tuple2(True,fromInteger(valueOf(AxiExp1_slave_num)));
26 else
27 `endif
28 {0}
29 return tuple2(False,?);
30 endfunction
31
32 endpackage