blob: cb571d9934cdb50f72ff3953ec92e6fbd72831cf [file] [log] [blame]
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:ip:otbn:0.1"
description: "OpenTitan Big Number Accelerator (OTBN)"
filesets:
files_rtl_core:
depend:
- lowrisc:prim:assert
- lowrisc:prim:util
- lowrisc:prim:lfsr
- lowrisc:prim:xoshiro256pp
- lowrisc:prim:cipher_pkg
- lowrisc:prim:mubi
- lowrisc:prim:crc32
- lowrisc:prim:sparse_fsm
- lowrisc:ip:keymgr_pkg
- lowrisc:ip:edn_pkg
- lowrisc:ip:otbn_pkg
files:
- rtl/otbn_controller.sv
- rtl/otbn_decoder.sv
- rtl/otbn_instruction_fetch.sv
- rtl/otbn_rf_base.sv
- rtl/otbn_rf_bignum.sv
- rtl/otbn_rf_base_ff.sv
- rtl/otbn_rf_bignum_ff.sv
- rtl/otbn_rf_base_fpga.sv
- rtl/otbn_rf_bignum_fpga.sv
- rtl/otbn_lsu.sv
- rtl/otbn_alu_base.sv
- rtl/otbn_alu_bignum.sv
- rtl/otbn_mac_bignum.sv
- rtl/otbn_loop_controller.sv
- rtl/otbn_stack.sv
- rtl/otbn_rnd.sv
- rtl/otbn_start_stop_control.sv
- rtl/otbn_core.sv
file_type: systemVerilogSource
files_rtl_top:
depend:
- lowrisc:ip:tlul
- lowrisc:prim:all
- lowrisc:prim:assert
- lowrisc:prim:util
- lowrisc:prim:ram_1p_scr
- lowrisc:prim:lc_sync
- lowrisc:ip:edn_pkg
- lowrisc:prim:edn_req
- lowrisc:ip:otbn_pkg
- lowrisc:ip:otp_ctrl_pkg
- lowrisc:dv:otbn_model
files:
- rtl/otbn_reg_pkg.sv
- rtl/otbn_reg_top.sv
- rtl/otbn_scramble_ctrl.sv
- rtl/otbn.sv
file_type: systemVerilogSource
files_verilator_waiver:
depend:
# common waivers
- lowrisc:lint:common
- lowrisc:lint:comportable
files:
- lint/otbn.vlt
file_type: vlt
files_ascentlint_waiver:
depend:
# common waivers
- lowrisc:lint:common
- lowrisc:lint:comportable
files:
- lint/otbn.waiver
file_type: waiver
parameters:
SYNTHESIS:
datatype: bool
paramtype: vlogdefine
OTBN_BUILD_MODEL:
datatype: bool
paramtype: vlogdefine
description: |
Build the simulation with the ISS as well as with the RTL implementation
(development only). Use the OTBN_USE_MODEL plusarg to switch at runtime.
OTBN_USE_MODEL:
datatype: bool
description: Use the OTBN model instead of the RTL implementation (development only)
paramtype: plusarg
default: false
targets:
default: &default_target
filesets:
- tool_verilator ? (files_verilator_waiver)
- tool_ascentlint ? (files_ascentlint_waiver)
- files_rtl_core
- files_rtl_top
toplevel: otbn
parameters:
- OTBN_USE_MODEL
- OTBN_BUILD_MODEL
lint:
<<: *default_target
default_tool: verilator
parameters:
- SYNTHESIS=true
tools:
verilator:
mode: lint-only
verilator_options:
- "-Wall"
lint-core:
filesets:
- files_rtl_core
toplevel: otbn_core
default_tool: verilator
parameters:
- SYNTHESIS=true
tools:
verilator:
mode: lint-only
verilator_options:
- "-Wall"
syn:
<<: *default_target
# TODO: set default to DC once
# this option is available
# olofk/edalize#89
default_tool: icarus
parameters:
- SYNTHESIS=true