1 |
11 |
dinesha |
/// Copyright by Syntacore LLC © 2016-2021. See LICENSE for details
|
2 |
|
|
/// @file
|
3 |
|
|
/// @brief IPIC header file
|
4 |
|
|
///
|
5 |
|
|
|
6 |
|
|
`ifndef SCR1_IPIC_SVH
|
7 |
|
|
`define SCR1_IPIC_SVH
|
8 |
|
|
|
9 |
|
|
`include "scr1_arch_description.svh"
|
10 |
|
|
|
11 |
|
|
`ifdef SCR1_IPIC_EN
|
12 |
|
|
//-------------------------------------------------------------------------------
|
13 |
|
|
// Parameters declaration
|
14 |
|
|
//-------------------------------------------------------------------------------
|
15 |
|
|
parameter SCR1_IRQ_VECT_NUM = 16; // must be power of 2 in the current implementation
|
16 |
|
|
parameter SCR1_IRQ_VECT_WIDTH = $clog2(SCR1_IRQ_VECT_NUM+1);
|
17 |
|
|
parameter SCR1_IRQ_LINES_NUM = SCR1_IRQ_VECT_NUM;
|
18 |
|
|
parameter SCR1_IRQ_LINES_WIDTH = $clog2(SCR1_IRQ_LINES_NUM);
|
19 |
|
|
parameter logic [SCR1_IRQ_VECT_WIDTH-1:0] SCR1_IRQ_VOID_VECT_NUM = SCR1_IRQ_VECT_WIDTH'(SCR1_IRQ_VECT_NUM);
|
20 |
|
|
parameter SCR1_IRQ_IDX_WIDTH = $clog2(SCR1_IRQ_VECT_NUM);
|
21 |
|
|
|
22 |
|
|
// Address decoding parameters
|
23 |
|
|
parameter logic [2:0] SCR1_IPIC_CISV = 3'h0; // RO
|
24 |
|
|
parameter logic [2:0] SCR1_IPIC_CICSR = 3'h1; // {IP, IE}
|
25 |
|
|
parameter logic [2:0] SCR1_IPIC_IPR = 3'h2; // RW1C
|
26 |
|
|
parameter logic [2:0] SCR1_IPIC_ISVR = 3'h3; // RO
|
27 |
|
|
parameter logic [2:0] SCR1_IPIC_EOI = 3'h4; // RZW
|
28 |
|
|
parameter logic [2:0] SCR1_IPIC_SOI = 3'h5; // RZW
|
29 |
|
|
parameter logic [2:0] SCR1_IPIC_IDX = 3'h6; // RW
|
30 |
|
|
parameter logic [2:0] SCR1_IPIC_ICSR = 3'h7; // RW
|
31 |
|
|
|
32 |
|
|
parameter SCR1_IPIC_ICSR_IP = 0;
|
33 |
|
|
parameter SCR1_IPIC_ICSR_IE = 1;
|
34 |
|
|
parameter SCR1_IPIC_ICSR_IM = 2;
|
35 |
|
|
parameter SCR1_IPIC_ICSR_INV = 3;
|
36 |
|
|
parameter SCR1_IPIC_ICSR_IS = 4;
|
37 |
|
|
parameter SCR1_IPIC_ICSR_PRV_LSB = 8;
|
38 |
|
|
parameter SCR1_IPIC_ICSR_PRV_MSB = 9;
|
39 |
|
|
parameter SCR1_IPIC_ICSR_LN_LSB = 12;
|
40 |
|
|
parameter SCR1_IPIC_ICSR_LN_MSB = SCR1_IPIC_ICSR_LN_LSB
|
41 |
|
|
+ SCR1_IRQ_LINES_WIDTH;
|
42 |
|
|
|
43 |
|
|
parameter logic [1:0] SCR1_IPIC_PRV_M = 2'b11;
|
44 |
|
|
|
45 |
|
|
//-------------------------------------------------------------------------------
|
46 |
|
|
// Types declaration
|
47 |
|
|
//-------------------------------------------------------------------------------
|
48 |
|
|
typedef enum logic {
|
49 |
|
|
SCR1_CSR2IPIC_RD,
|
50 |
|
|
SCR1_CSR2IPIC_WR
|
51 |
|
|
`ifdef SCR1_XPROP_EN
|
52 |
|
|
,
|
53 |
|
|
SCR1_CSR2IPIC_ERROR = 'x
|
54 |
|
|
`endif // SCR1_XPROP_EN
|
55 |
|
|
} type_scr1_csr2ipic_wr_e;
|
56 |
|
|
|
57 |
|
|
`endif // SCR1_IPIC_EN
|
58 |
|
|
`endif // SCR1_IPIC_SVH
|