| 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_top_tracing:0.1" |
| description: "Ibex, a small RV32 CPU core with tracing enabled" |
| filesets: |
| files_rtl: |
| depend: |
| - lowrisc:ibex:ibex_top |
| - lowrisc:ibex:ibex_tracer |
| files: |
| - rtl/ibex_top_tracing.sv |
| file_type: systemVerilogSource |
| |
| 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: str |
| default: ibex_pkg::RV32MFast |
| paramtype: vlogdefine |
| description: "RV32M implementation parameter enum. See the ibex_pkg::rv32m_e enum in ibex_pkg.sv for permitted values." |
| |
| RV32B: |
| datatype: str |
| default: ibex_pkg::RV32BNone |
| paramtype: vlogdefine |
| description: "Bitmanip implementation parameter enum. See the ibex_pkg::rv32b_e enum in ibex_pkg.sv for permitted values." |
| |
| RegFile: |
| datatype: str |
| default: ibex_pkg::RegFileFF |
| paramtype: vlogdefine |
| description: "Register file implementation parameter enum. See the ibex_pkg::regfile_e enum in ibex_pkg.sv for permitted values." |
| |
| 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 separate branch target ALU (increasing branch performance EXPERIMENTAL) [0/1]" |
| |
| WritebackStage: |
| datatype: int |
| default: 0 |
| paramtype: vlogparam |
| description: "Enables third pipeline stage (EXPERIMENTAL) [0/1]" |
| |
| BranchPredictor: |
| datatype: int |
| paramtype: vlogparam |
| default: 0 |
| description: "Enables static branch prediction (EXPERIMENTAL)" |
| |
| DbgTriggerEn: |
| datatype: int |
| default: 0 |
| paramtype: vlogparam |
| description: "Enable support for debug triggers. " |
| |
| SecureIbex: |
| datatype: int |
| default: 0 |
| paramtype: vlogparam |
| description: "Enables security hardening features (EXPERIMENTAL) [0/1]" |
| |
| ICacheScramble: |
| datatype: int |
| default: 0 |
| paramtype: vlogparam |
| description: "Enables ICache scrambling feature (EXPERIMENTAL) [0/1]" |
| |
| PMPEnable: |
| datatype: int |
| default: 0 |
| paramtype: vlogparam |
| description: "Enable PMP" |
| |
| PMPGranularity: |
| datatype: int |
| default: 0 |
| paramtype: vlogparam |
| description: "Granularity of NAPOT range, 0 = 4 byte, 1 = byte, 2 = 16 byte, 3 = 32 byte etc" |
| |
| PMPNumRegions: |
| datatype: int |
| default: 4 |
| paramtype: vlogparam |
| description: "Number of PMP regions" |
| |
| MHPMCounterNum: |
| datatype: int |
| paramtype: vlogparam |
| default: 0 |
| description: Number of performance monitor event counters [0/29] |
| |
| MHPMCounterWidth: |
| datatype: int |
| paramtype: vlogparam |
| default: 40 |
| description: Bit width of performance monitor event counters [32/64] |
| |
| targets: |
| default: &default_target |
| filesets: |
| - files_rtl |
| parameters: |
| - RVFI=true |
| toplevel: ibex_top_tracing |
| |
| lint: |
| <<: *default_target |
| parameters: |
| - RVFI=true |
| - SYNTHESIS=true |
| - RV32E |
| - RV32M |
| - RV32B |
| - RegFile |
| - ICache |
| - ICacheECC |
| - BranchTargetALU |
| - WritebackStage |
| - BranchPredictor |
| - DbgTriggerEn |
| - SecureIbex |
| - ICacheScramble |
| - PMPEnable |
| - PMPGranularity |
| - PMPNumRegions |
| - MHPMCounterNum |
| - MHPMCounterWidth |
| 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" |
| format: |
| filesets: |
| - files_rtl |
| parameters: |
| - SYNTHESIS=true |
| - RVFI=true |
| default_tool: veribleformat |
| toplevel: ibex_top_tracing |
| tools: |
| veribleformat: |
| verible_format_args: |
| - "--inplace" |
| - "--formal_parameters_indentation=indent" |
| - "--named_parameter_indentation=indent" |
| - "--named_port_indentation=indent" |
| - "--port_declarations_indentation=indent" |