mirror of
https://github.com/openhwgroup/cve2.git
synced 2025-04-24 14:09:08 -04:00
Fusesoc has an unfortunate bug[1] where a boolean parameter which has default true can't be disabled. For now, just make all our boolean parameters back into integers again. In the future, when that's fixed, maybe we should switch things back. [1] https://github.com/olofk/fusesoc/issues/392
136 lines
3.1 KiB
Text
136 lines
3.1 KiB
Text
CAPI=2:
|
|
# Copyright lowRISC contributors.
|
|
# Licensed under the Apache License, Version 2.0, see LICENSE for details.
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
name: "lowrisc:ibex:ibex_core_tracing:0.1"
|
|
description: "Ibex CPU core with tracing enabled"
|
|
filesets:
|
|
files_rtl:
|
|
depend:
|
|
- lowrisc:ibex:ibex_core
|
|
- lowrisc:ibex:ibex_tracer
|
|
files:
|
|
- rtl/ibex_core_tracing.sv
|
|
file_type: systemVerilogSource
|
|
|
|
files_lint:
|
|
depend:
|
|
- lowrisc:ibex:sim_shared
|
|
|
|
files_lint_verilator:
|
|
files:
|
|
- lint/verilator_waiver.vlt: {file_type: vlt}
|
|
|
|
parameters:
|
|
# The tracer uses the RISC-V Formal Interface (RVFI) to collect trace signals.
|
|
RVFI:
|
|
datatype: bool
|
|
paramtype: vlogdefine
|
|
default: true
|
|
|
|
SYNTHESIS:
|
|
datatype: bool
|
|
paramtype: vlogdefine
|
|
|
|
RV32E:
|
|
datatype: int
|
|
default: 0
|
|
paramtype: vlogparam
|
|
|
|
RV32M:
|
|
datatype: int
|
|
default: 1
|
|
paramtype: vlogparam
|
|
|
|
RV32B:
|
|
datatype: int
|
|
default: 0
|
|
paramtype: vlogparam
|
|
|
|
MultiplierImplementation:
|
|
datatype: str
|
|
paramtype: vlogparam
|
|
description: "Multiplier implementation. Valid values: fast, slow, single-cycle"
|
|
default: "fast"
|
|
|
|
ICache:
|
|
datatype: int
|
|
default: 0
|
|
paramtype: vlogparam
|
|
description: "Enable instruction cache"
|
|
|
|
ICacheECC:
|
|
datatype: int
|
|
default: 0
|
|
paramtype: vlogparam
|
|
description: "Enable ECC protection in instruction cache"
|
|
|
|
BranchTargetALU:
|
|
datatype: int
|
|
default: 0
|
|
paramtype: vlogparam
|
|
description: "Enables seperate branch target ALU (increasing branch performance EXPERIMENTAL) [0/1]"
|
|
|
|
WritebackStage:
|
|
datatype: int
|
|
default: 0
|
|
paramtype: vlogparam
|
|
description: "Enables third pipeline stage (EXPERIMENTAL) [0/1]"
|
|
|
|
SecureIbex:
|
|
datatype: int
|
|
default: 0
|
|
paramtype: vlogparam
|
|
description: "Enables security hardening features (EXPERIMENTAL) [0/1]"
|
|
|
|
targets:
|
|
default:
|
|
filesets:
|
|
- files_rtl
|
|
parameters:
|
|
- RVFI=true
|
|
|
|
lint:
|
|
filesets:
|
|
# Note on Verilator waivers:
|
|
# You *must* include the waiver file first, otherwise only global waivers
|
|
# are applied, but not file-specific waivers.
|
|
- tool_verilator ? (files_lint_verilator)
|
|
- files_rtl
|
|
- files_lint
|
|
parameters:
|
|
- RVFI=true
|
|
- SYNTHESIS=true
|
|
- RV32M
|
|
- RV32E
|
|
- RV32B
|
|
- BranchTargetALU
|
|
- WritebackStage
|
|
- MultiplierImplementation
|
|
- SecureIbex
|
|
default_tool: verilator
|
|
toplevel: ibex_core_tracing
|
|
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"
|
|
veriblelint:
|
|
ruleset: default
|
|
rules:
|
|
- "-parameter-name-style"
|
|
format:
|
|
filesets:
|
|
- files_rtl
|
|
parameters:
|
|
- SYNTHESIS=true
|
|
- RVFI=true
|
|
default_tool: veribleformat
|
|
toplevel: ibex_core
|
|
tools:
|
|
veribleformat:
|
|
verible_format_args:
|
|
- "--inplace"
|