-
Notifications
You must be signed in to change notification settings - Fork 85
/
Copy pathtestharness_pkg.sv
60 lines (47 loc) · 2.11 KB
/
testharness_pkg.sv
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
// Copyright 2022 EPFL
// Solderpad Hardware License, Version 2.1, see LICENSE.md for details.
// SPDX-License-Identifier: Apache-2.0 WITH SHL-2.1
package testharness_pkg;
import addr_map_rule_pkg::*;
import core_v_mini_mcu_pkg::*;
localparam EXT_XBAR_NMASTER = 2;
localparam EXT_XBAR_NSLAVE = 1;
//master idx
localparam logic [31:0] EXT_MASTER0_IDX = 0;
localparam logic [31:0] EXT_MASTER1_IDX = 1;
//slave mmap and idx
localparam logic [31:0] SLOW_MEMORY_START_ADDRESS = core_v_mini_mcu_pkg::EXT_SLAVE_START_ADDRESS;
localparam logic [31:0] SLOW_MEMORY_SIZE = 32'h200;
localparam logic [31:0] SLOW_MEMORY_END_ADDRESS = SLOW_MEMORY_START_ADDRESS + SLOW_MEMORY_SIZE;
localparam logic [31:0] SLOW_MEMORY_IDX = 32'd0;
localparam addr_map_rule_t [EXT_XBAR_NSLAVE-1:0] EXT_XBAR_ADDR_RULES = '{
'{
idx: SLOW_MEMORY_IDX,
start_addr: SLOW_MEMORY_START_ADDRESS,
end_addr: SLOW_MEMORY_END_ADDRESS
}
};
//slave encoder
localparam EXT_NPERIPHERALS = 2;
// Memcopy controller (external peripheral example)
localparam logic [31:0] MEMCOPY_CTRL_START_ADDRESS = core_v_mini_mcu_pkg::EXT_PERIPHERAL_START_ADDRESS + 32'h0;
localparam logic [31:0] MEMCOPY_CTRL_SIZE = 32'h10;
localparam logic [31:0] MEMCOPY_CTRL_END_ADDRESS = MEMCOPY_CTRL_START_ADDRESS + MEMCOPY_CTRL_SIZE;
localparam logic [31:0] MEMCOPY_CTRL_IDX = 32'd0;
// External AMS Peripheral
localparam logic [31:0] AMS_START_ADDRESS = core_v_mini_mcu_pkg::EXT_PERIPHERAL_START_ADDRESS + 32'h001000;
localparam logic [31:0] AMS_SIZE = 32'h100;
localparam logic [31:0] AMS_END_ADDRESS = AMS_START_ADDRESS + AMS_SIZE;
localparam logic [31:0] AMS_IDX = 32'd1;
localparam addr_map_rule_t [EXT_NPERIPHERALS-1:0] EXT_PERIPHERALS_ADDR_RULES = '{
'{
idx: MEMCOPY_CTRL_IDX,
start_addr: MEMCOPY_CTRL_START_ADDRESS,
end_addr: MEMCOPY_CTRL_END_ADDRESS
},
'{idx: AMS_IDX, start_addr: AMS_START_ADDRESS, end_addr: AMS_END_ADDRESS}
};
localparam int unsigned EXT_PERIPHERALS_PORT_SEL_WIDTH = EXT_NPERIPHERALS > 1 ? $clog2(
EXT_NPERIPHERALS
) : 32'd1;
endpackage