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

Subversion Repositories yifive

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

Go to most recent revision | 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      SCU header file
4
///
5
 
6
`ifndef SCR1_INCLUDE_SCU_DEFS
7
`define SCR1_INCLUDE_SCU_DEFS
8
 
9
//`include "scr1_arch_description.svh"
10
 
11
`ifdef SCR1_DBG_EN
12
 
13
//==============================================================================
14
// Parameters
15
//==============================================================================
16
localparam int unsigned         SCR1_SCU_DR_SYSCTRL_OP_WIDTH        = 2;
17
localparam int unsigned         SCR1_SCU_DR_SYSCTRL_ADDR_WIDTH      = 2;
18
localparam int unsigned         SCR1_SCU_DR_SYSCTRL_DATA_WIDTH      = 4;
19
 
20
//==============================================================================
21
// Types
22
//==============================================================================
23
typedef enum logic [SCR1_SCU_DR_SYSCTRL_OP_WIDTH-1:0] {
24
    SCR1_SCU_SYSCTRL_OP_WRITE       = 2'h0,
25
    SCR1_SCU_SYSCTRL_OP_READ        = 2'h1,
26
    SCR1_SCU_SYSCTRL_OP_SETBITS     = 2'h2,
27
    SCR1_SCU_SYSCTRL_OP_CLRBITS     = 2'h3
28
`ifdef SCR1_XPROP_EN
29
    ,
30
    SCR1_SCU_SYSCTRL_OP_XXX         = 'X
31
`endif // SCR1_XPROP_EN
32
} type_scr1_scu_sysctrl_op_e;
33
 
34
typedef enum logic [SCR1_SCU_DR_SYSCTRL_ADDR_WIDTH-1:0] {
35
    SCR1_SCU_SYSCTRL_ADDR_CONTROL   = 2'h0,
36
    SCR1_SCU_SYSCTRL_ADDR_MODE      = 2'h1,
37
    SCR1_SCU_SYSCTRL_ADDR_STATUS    = 2'h2,
38
    SCR1_SCU_SYSCTRL_ADDR_STICKY    = 2'h3
39
`ifdef SCR1_XPROP_EN
40
    ,
41
    SCR1_SCU_SYSCTRL_ADDR_XXX       = 'X
42
`endif // SCR1_XPROP_EN
43
} type_scr1_scu_sysctrl_addr_e;
44
 
45
typedef struct packed {
46
    logic [SCR1_SCU_DR_SYSCTRL_DATA_WIDTH-1:0]  data;
47
    logic [SCR1_SCU_DR_SYSCTRL_ADDR_WIDTH-1:0]  addr;
48
    logic [SCR1_SCU_DR_SYSCTRL_OP_WIDTH-1:0]    op;
49
} type_scr1_scu_sysctrl_dr_s;
50
 
51
typedef enum int unsigned {
52
    SCR1_SCU_DR_SYSCTRL_OP_BIT_R                  = 'h0,
53
    SCR1_SCU_DR_SYSCTRL_OP_BIT_L                  = SCR1_SCU_DR_SYSCTRL_OP_WIDTH-1,
54
    SCR1_SCU_DR_SYSCTRL_ADDR_BIT_R                = SCR1_SCU_DR_SYSCTRL_OP_WIDTH,
55
    SCR1_SCU_DR_SYSCTRL_ADDR_BIT_L                = SCR1_SCU_DR_SYSCTRL_OP_WIDTH +
56
                                                    SCR1_SCU_DR_SYSCTRL_ADDR_WIDTH - 1,
57
    SCR1_SCU_DR_SYSCTRL_DATA_BIT_R                = SCR1_SCU_DR_SYSCTRL_OP_WIDTH +
58
                                                    SCR1_SCU_DR_SYSCTRL_ADDR_WIDTH,
59
    SCR1_SCU_DR_SYSCTRL_DATA_BIT_L                = SCR1_SCU_DR_SYSCTRL_OP_WIDTH +
60
                                                    SCR1_SCU_DR_SYSCTRL_ADDR_WIDTH +
61
                                                    SCR1_SCU_DR_SYSCTRL_DATA_WIDTH - 1
62
} type_scr1_scu_sysctrl_dr_bits_e;
63
 
64
typedef struct packed {
65
    logic [1:0]                                     rsrv;
66
    logic                                           core_reset;
67
    logic                                           sys_reset;
68
} type_scr1_scu_sysctrl_control_reg_s;
69
 
70
typedef struct packed {
71
    logic [1:0]                                     rsrv;
72
    logic                                           hdu_rst_bhv;
73
    logic                                           dm_rst_bhv;
74
} type_scr1_scu_sysctrl_mode_reg_s;
75
 
76
typedef struct packed {
77
    logic                                           hdu_reset;
78
    logic                                           dm_reset;
79
    logic                                           core_reset;
80
    logic                                           sys_reset;
81
} type_scr1_scu_sysctrl_status_reg_s;
82
 
83
`endif // SCR1_DBG_EN
84
`endif // SCR1_INCLUDE_SCU_DEFS

powered by: WebSVN 2.1.0

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