forked from lowRISC/ibex
-
Notifications
You must be signed in to change notification settings - Fork 46
Expand file tree
/
Copy pathcve2_top.core
More file actions
123 lines (109 loc) · 2.97 KB
/
Copy pathcve2_top.core
File metadata and controls
123 lines (109 loc) · 2.97 KB
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
CAPI=2:
# Copyright (c) 2025 Eclipse Foundation
# Copyright lowRISC contributors.
# Licensed under the Apache License, Version 2.0, see LICENSE for details.
# SPDX-License-Identifier: Apache-2.0
name: "openhwgroup:cve2:cve2_top:0.1"
description: "A single-issue 2-stage pipeline embedded class of RISC-V CPUs"
filesets:
files_rtl:
depend:
- openhwgroup:cve2:cve2_pkg
- openhwgroup:cve2:cve2_core
- openhwgroup:cve2:cve2_clock_gate
- lowrisc:prim:buf
- lowrisc:prim:clock_mux2
- lowrisc:prim:flop
- lowrisc:prim:ram_1p_scr
files:
- rtl/cve2_register_file_ff.sv # generic FF-based
- rtl/cve2_top.sv
file_type: systemVerilogSource
files_lint_verilator:
files:
- lint/verilator_waiver.vlt: {file_type: vlt}
files_lint_verible:
files:
- lint/verible_waiver.vbw: {file_type: veribleLintWaiver}
files_check_tool_requirements:
depend:
- lowrisc:tool:check_tool_requirements
parameters:
RVFI:
datatype: bool
paramtype: vlogdefine
SYNTHESIS:
datatype: bool
paramtype: vlogdefine
FPGA_XILINX:
datatype: bool
description: Identifies Xilinx FPGA targets to set DSP pragmas for performance counters.
default: false
paramtype: vlogdefine
MHPMCounterNum:
datatype: int
default: 10
paramtype: vlogparam
MHPMCounterWidth:
datatype: int
default: 40
paramtype: vlogparam
RV32E:
datatype: int
default: 0
paramtype: vlogparam
RV32M:
datatype: str
default: cve2_pkg::RV32MFast
paramtype: vlogdefine
description: "RV32M implementation parameter enum. See the cve2_pkg::rv32m_e enum in cve2_pkg.sv for permitted values."
targets:
default: &default_target
filesets:
- tool_verilator ? (files_lint_verilator)
- tool_veriblelint ? (files_lint_verible)
- files_rtl
toplevel: cve2_top
parameters:
- tool_vivado ? (FPGA_XILINX=true)
lint:
<<: *default_target
parameters:
- SYNTHESIS=true
- RVFI=true
- MHPMCounterNum
- MHPMCounterWidth
- RV32E
- RV32M
default_tool: verilator
tools:
verilator:
mode: lint-only
verilator_options:
# - "-Wall"
# RAM primitives wider than 64bit (required for ECC) fail to build in
# Verilator without increasing the unroll count (see Verilator#1266)
- "--unroll-count 72"
- "-Wno-COMBDLY"
- "-Wno-WIDTHEXPAND"
- "-Wno-WIDTHTRUNC"
format:
filesets:
- files_rtl
parameters:
- SYNTHESIS=true
- RVFI=true
- MHPMCounterNum
- MHPMCounterWidth
- RV32E
- RV32M
default_tool: veribleformat
toplevel: cve2_top
tools:
veribleformat:
verible_format_args:
- "--inplace"
- "--formal_parameters_indentation=indent"
- "--named_parameter_indentation=indent"
- "--named_port_indentation=indent"
- "--port_declarations_indentation=indent"