blob: f186b851056aa0af9a767f45fa289298bbdf8c1b [file] [log] [blame]
# Copyright 2024 Google LLC.
# Licensed under the Apache License, Version 2.0, see LICENSE for details.
# SPDX-License-Identifier: Apache-2.0
"""Support rules for building target specific verilated simulators"""
load(
"@lowrisc_opentitan//rules:fusesoc.bzl",
"fusesoc_build",
)
def target_fusesoc_build(name, output_groups):
"""A helper macro for building verilator targets.
Args:
name: The name of the top level target.
output_groups: Verilator testbench passed to fusesoc_build.
"""
fusesoc_build(
name = "{}_verilator_real".format(name),
srcs = [
":all_files",
"//hw/top_{}:all_files".format(name),
"//hw/top_{}/dv/verilator:all_files".format(name),
],
cores = [
"//:cores",
"//hw/ip:BUILD",
"//hw/top_{}:BUILD".format(name),
],
data = ["@lowrisc_opentitan//hw/ip/otbn:all_files"],
make_options = ":make_options",
output_groups = output_groups,
systems = ["lowrisc:dv:{}_verilator_sim".format(name)],
tags = [
"manual",
"verilator",
],
target = "sim",
)