OpenCores
URL https://opencores.org/ocsvn/yifive/yifive/trunk

Subversion Repositories yifive

[/] [yifive/] [trunk/] [caravel_yifive/] [verilog/] [rtl/] [syntacore/] [scr1/] [src/] [includes/] [scr1_ipic.svh] - Blame information for rev 11

Details | Compare with Previous | View Log

Line No. Rev Author Line
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

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.