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:cve2:cve2_top_tracing:0.1" description: "Ibex, a small RV32 CPU core with tracing enabled" filesets: files_rtl: depend: - lowrisc:cve2:cve2_top - lowrisc:cve2:cve2_tracer files: - rtl/cve2_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: cve2_pkg::RV32MFast paramtype: vlogdefine description: "RV32M implementation parameter enum. See the cve2_pkg::rv32m_e enum in cve2_pkg.sv for permitted values." RV32B: datatype: str default: cve2_pkg::RV32BNone paramtype: vlogdefine description: "Bitmanip implementation parameter enum. See the cve2_pkg::rv32b_e enum in cve2_pkg.sv for permitted values." RegFile: datatype: str default: cve2_pkg::RegFileFF paramtype: vlogdefine description: "Register file implementation parameter enum. See the cve2_pkg::regfile_e enum in cve2_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" WritebackStage: datatype: int default: 0 paramtype: vlogparam description: "Enables third pipeline stage (EXPERIMENTAL) [0/1]" SecureCVE2: 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" targets: default: &default_target filesets: - files_rtl parameters: - RVFI=true toplevel: cve2_top_tracing lint: <<: *default_target parameters: - RVFI=true - SYNTHESIS=true - RV32E - RV32M - RV32B - RegFile - ICache - ICacheECC - WritebackStage - SecureCVE2 - ICacheScramble - PMPEnable - PMPGranularity - PMPNumRegions 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: cve2_top_tracing tools: veribleformat: verible_format_args: - "--inplace" - "--formal_parameters_indentation=indent" - "--named_parameter_indentation=indent" - "--named_port_indentation=indent" - "--port_declarations_indentation=indent"