mirror of
https://github.com/openhwgroup/cve2.git
synced 2025-04-24 14:09:08 -04:00
NOTE this commit includes various changes to align the Ibex repo with changes upstream in OT! Update code from upstream repository https://github.com/lowRISC/opentitan to revision 6cc5c164ba96d339f06cbcede0d17d2c96ce3c05 * [dv] Add SV_FCOV_SVA back (Srikrishna Iyer) * [DV][FCOV] Minor updates to lowRISC/opentitan#5414 (Srikrishna Iyer) * [dvsim] Fix --cov + --build|run-only bugs (Srikrishna Iyer) * [lint] Waivers for rv_core_ibex lint (Greg Chadwick) * [lint] Allow one branch in unique case (Greg Chadwick) * [dv/macros] Add fcov macros from Ibex (Tom Roberts) * [dvsim/verilator] Fix pre-build cmd failure when hw/foundry is absent (Michael Schaffner) * [verilator/otp] Enable OTP preloading in verilator (Michael Schaffner) * [dvsim] Use builtins wherever possible (Srikrishna Iyer) * [prim] Avoid an apparent combinatorial loop in prim_secded_*_dec.sv (Rupert Swarbrick) * [dv/shadow_reg] Fix aes shadow reg error (Cindy Chen) * [lint] Remove comportable waivers from non-comportable IPs (Michael Schaffner) * [dv] Fix VPD dumping (Srikrishna Iyer) * [prim] Waive Verilator lint warning in prim_lfsr.sv (Pirmin Vogel) * [dv] Hard code various dv connections until full hook-up (Timothy Chen) * [tlul] Add payload checker and generator on device side only. (Timothy Chen) * [prim_packer] Silence verilator width warnings (Rupert Swarbrick) * [dvsim] lint fixes to FlowCfg (Srikrishna Iyer) * [dvsim] Minor improvement to FlowCfg (Srikrishna Iyer) * [dvsim] lint fixes to Scheduler (Srikrishna Iyer) * [dvsim] Very small update to Timer. (Srikrishna Iyer) * [lint] Update Verible lint parser to detect Verible syntax errors (Michael Schaffner) * [lint] Spot errors in the lint flow that we weren't expecting (Rupert Swarbrick) * [lint] Remove Fusesoc-related message waivers (Michael Schaffner) * [top / rst] Adjust the way rst_ni is used in design (Timothy Chen) * [dvsim/syn] Update parsing script and area reporting (Michael Schaffner) * [dv/regwen] update REGWEN conventions (Cindy Chen) * [dv/tools] Bug fix to common.tcl tb_top section. (Eitan Shapira) * [dv] Fix stress_all with reset (Weicai Yang) * [prim] Add a new slow to fast clock synchronizer (Tom Roberts) * [prim] Minor lint fix (Tom Roberts) * [tlul] Add instruction type to tlul (Timothy Chen) * [top] Ast updates (Timothy Chen) * [lint] Increase threshold for max number of bits in an array (Michael Schaffner) * [dv] add dv_base_reg_pkg to env_pkg template (Udi Jonnalagadda) * [dv/verilator] Ignore foundry dir (Srikrishna Iyer) * [dv] Provide license diagnostic info for VCS (Srikrishna Iyer) * [prim/otp_ctrl] Fix ECC correctable bug in generic OTP wrapper (Michael Schaffner) * [prim_ram_1p_scr] Make parity and diffusion layer settings more flexible (Michael Schaffner) * [prim] fix flash sram adapter use for configuration space (Timothy Chen) * [dv] Make CSR fields randomizable by default. (Srikrishna Iyer) * [dv/prim] minor updates (Udi Jonnalagadda) * [top] Minor lint fixes (Timothy Chen) * [prim_flash] Flash port alignments (Michael Schaffner) * [prim_util_pkg] Fix DC warning in _clog2() (Philipp Wagner) * Add missing full_o output signal of prim_fifo_sync (Philipp Wagner) * [dv] Gracefully kill simulation (Srikrishna Iyer) * [dv] Minor updates to prim tbs (Srikrishna Iyer) * [flash / top] Minor edits based on reviews (Timothy Chen) * [flash_ctrl / top] Various functional updates to flash (Timothy Chen) * [dv/otp_ctrl] regwen sequence (Cindy Chen) * [prim] Wire up full_o sync fifo output port in prim_sram_arbiter (Rupert Swarbrick) * [dvsim] Generate FUSESOC_IGNORE at top of scratch root (Rupert Swarbrick) * Revert "[lint] Remove Fusesoc-related message waivers" (Michael Schaffner) * Revert "[lint] Rename tool warnings to flow warnings and reduce their severity" (Michael Schaffner) * Revert "[lint] Provision syntax error filter for Verible lint" (Michael Schaffner) * [prim] Update fifo behavior during reset (Timothy Chen) * [dv] Move cip related macros to cip_macros (Weicai Yang) * [dv/dvsim] Fix when next_item does not have dependency (Cindy Chen) * [prim_packer_fifo/rtl] reset to disable output controls (Mark Branstad) * [lint] Provision syntax error filter for Verible lint (Michael Schaffner) * [lint] Rename tool warnings to flow warnings and reduce their severity (Michael Schaffner) * [lint] Remove Fusesoc-related message waivers (Michael Schaffner) * [dv/dvsim] collect coverage in scheduler (Cindy Chen) * [dvsim] Fix Syn class (Michael Schaffner) * [dv/shadow_reg] move get_shadow_regs function to dv_base_ral_block (Cindy Chen) * [lc_ctrl] Switch ECC to standard Hamming code (Michael Schaffner) * [prim_ram_*p_adv/prim_otp] Add option to use standard Hamming ECC (Michael Schaffner) * [secded_gen] Fix template bug that results in lint error (Michael Schaffner) * [prim/fifo_async] Disallow non-power-of-two depths (Tom Roberts) * [dv/alert] update shadow_reg alert naming in DV (Cindy Chen) * [dv] Align csr::reset_asserted to actual reset pin (Weicai Yang) * [prim_secded*_fpv] Generate FPV testbenches (Michael Schaffner) * [prim_secded*] Regenerate all SECDED primitives (Michael Schaffner) * [secded_gen] Add ability to generate FPV TB's and correct Hamming code (Michael Schaffner) * [dvsim] Run cov_merge / cov_report as part of the main set of jobs (Rupert Swarbrick) * [dvsim] Get rid of Deploy's static dispatch_counter (Rupert Swarbrick) * [dvsim] Make the scheduling logic per-target (Rupert Swarbrick) * [dvsim] Remove "status" from Deploy items (Rupert Swarbrick) * [dvsim] Create jobs with dependencies instead of sub-jobs (Rupert Swarbrick) * [dvsim] Simplify SimCfg._gen_results (Rupert Swarbrick) * [dvsim] Factor deploy method out of Deploy object (Rupert Swarbrick) * [dvsim] Move time tracking into its own class in Deploy.py (Rupert Swarbrick) * [dvsim] Fix printing of Deploy objects (Rupert Swarbrick) * [dv] make dv_macros.svh more UVM_agnostic (Srikrishna Iyer) * [dv/prim] reduce smoke test iterations (Udi Jonnalagadda) * [dv/hmac] reduce runtime for sha_vector test in smoke regression (Cindy Chen) * [DV] Enable cov comp creation iff cov is enabled (Srikrishna Iyer) * [prim_alert] Fix xcelium compile error (Cindy Chen) * [alert_rxtx/fpv] Update alert sender FPV testbenches (Michael Schaffner) * [alert_rxtx] Add option to latch fatal alert in alert sender (Michael Schaffner) * [kmac/dv] KMAC smoke test (Udi Jonnalagadda) * [dv/str_utils_pkg] add byte_to_str function (Udi Jonnalagadda) * [prim] - Add new prim_lc_dec (Jacob Levy) * [util] Move design-related helper scripts to util/design (Michael Schaffner) * [prim-flash] Add missing deps (Srikrishna Iyer) * [dv] Define SIMULATION during DV sims (Michael Schaffner) * [dv] Fix a typo in tb.sv.tpl (Weicai Yang) * Cleanup: Remove executable bits from source files (Philipp Wagner) * [dv] Use separate clock for EDN (Weicai Yang) * [dv] Add macro DV_EDN_IF_CONNECT to simplify EDN connect in TB (Weicai Yang) * [dv] Fix typo in clk_rst_if (Weicai Yang) Signed-off-by: Tom Roberts <tomroberts@lowrisc.org>
182 lines
4.6 KiB
Text
182 lines
4.6 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:0.1"
|
|
description: "Ibex, a small RV32 CPU core"
|
|
|
|
filesets:
|
|
files_rtl:
|
|
depend:
|
|
- lowrisc:prim:assert
|
|
- lowrisc:prim:clock_gating
|
|
- lowrisc:prim:lfsr
|
|
- lowrisc:ibex:ibex_pkg
|
|
- lowrisc:ibex:ibex_icache
|
|
- lowrisc:dv:dv_fcov_macros
|
|
files:
|
|
- rtl/ibex_alu.sv
|
|
- rtl/ibex_branch_predict.sv
|
|
- rtl/ibex_compressed_decoder.sv
|
|
- rtl/ibex_controller.sv
|
|
- rtl/ibex_cs_registers.sv
|
|
- rtl/ibex_csr.sv
|
|
- rtl/ibex_counter.sv
|
|
- rtl/ibex_decoder.sv
|
|
- rtl/ibex_ex_block.sv
|
|
- rtl/ibex_fetch_fifo.sv
|
|
- rtl/ibex_id_stage.sv
|
|
- rtl/ibex_if_stage.sv
|
|
- rtl/ibex_load_store_unit.sv
|
|
- rtl/ibex_multdiv_fast.sv
|
|
- rtl/ibex_multdiv_slow.sv
|
|
- rtl/ibex_prefetch_buffer.sv
|
|
- rtl/ibex_pmp.sv
|
|
- rtl/ibex_wb_stage.sv
|
|
- rtl/ibex_dummy_instr.sv
|
|
- rtl/ibex_register_file_ff.sv # generic FF-based
|
|
- rtl/ibex_register_file_fpga.sv # FPGA
|
|
- rtl/ibex_register_file_latch.sv # ASIC
|
|
- rtl/ibex_core.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
|
|
|
|
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)"
|
|
|
|
SecureIbex:
|
|
datatype: int
|
|
default: 0
|
|
paramtype: vlogparam
|
|
description: "Enables security hardening features (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:
|
|
- tool_verilator ? (files_lint_verilator)
|
|
- tool_veriblelint ? (files_lint_verible)
|
|
- files_rtl
|
|
- files_check_tool_requirements
|
|
toplevel: ibex_core
|
|
parameters:
|
|
- tool_vivado ? (FPGA_XILINX=true)
|
|
lint:
|
|
<<: *default_target
|
|
parameters:
|
|
- SYNTHESIS=true
|
|
- RVFI=true
|
|
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_core
|
|
tools:
|
|
veribleformat:
|
|
verible_format_args:
|
|
- "--inplace"
|