|  | # Copyright lowRISC contributors. | 
|  | # Licensed under the Apache License, Version 2.0, see LICENSE for details. | 
|  | # SPDX-License-Identifier: Apache-2.0 | 
|  |  | 
|  | load("@rules_python//python:defs.bzl", "py_binary") | 
|  | load("@ot_python_deps//:requirements.bzl", "requirement") | 
|  |  | 
|  | package(default_visibility = ["//visibility:public"]) | 
|  |  | 
|  | py_library( | 
|  | name = "utils", | 
|  | srcs = ["utils.py"], | 
|  | deps = [ | 
|  | requirement("hjson"), | 
|  | requirement("mistletoe"), | 
|  | requirement("premailer"), | 
|  | ], | 
|  | ) | 
|  |  | 
|  | py_library( | 
|  | name = "sim_utils", | 
|  | srcs = ["sim_utils.py"], | 
|  | ) | 
|  |  | 
|  | py_library( | 
|  | name = "msg_buckets", | 
|  | srcs = [ | 
|  | "MsgBucket.py", | 
|  | "MsgBuckets.py", | 
|  | ], | 
|  | deps = [ | 
|  | ":utils", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | py_library( | 
|  | name = "modes", | 
|  | srcs = ["Modes.py"], | 
|  | deps = [ | 
|  | ":utils", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | py_library( | 
|  | name = "timer", | 
|  | srcs = ["Timer.py"], | 
|  | ) | 
|  |  | 
|  | py_library( | 
|  | name = "status_printer", | 
|  | srcs = ["StatusPrinter.py"], | 
|  | deps = [ | 
|  | requirement("enlighten"), | 
|  | ], | 
|  | ) | 
|  |  | 
|  | py_library( | 
|  | name = "launcher", | 
|  | srcs = [ | 
|  | "Launcher.py", | 
|  | "LauncherFactory.py", | 
|  | "LocalLauncher.py", | 
|  | "LsfLauncher.py", | 
|  | ], | 
|  | deps = [ | 
|  | ":utils", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | py_library( | 
|  | name = "deploy", | 
|  | srcs = ["Deploy.py"], | 
|  | deps = [ | 
|  | ":launcher", | 
|  | ":sim_utils", | 
|  | ":utils", | 
|  | requirement("tabulate"), | 
|  | ], | 
|  | ) | 
|  |  | 
|  | py_library( | 
|  | name = "scheduler", | 
|  | srcs = ["Scheduler.py"], | 
|  | deps = [ | 
|  | ":launcher", | 
|  | ":status_printer", | 
|  | ":timer", | 
|  | ":utils", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | py_library( | 
|  | name = "cfg_json", | 
|  | srcs = ["CfgJson.py"], | 
|  | deps = [ | 
|  | ":utils", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | py_library( | 
|  | name = "flow_cfg", | 
|  | srcs = ["FlowCfg.py"], | 
|  | deps = [ | 
|  | ":cfg_json", | 
|  | ":launcher", | 
|  | ":scheduler", | 
|  | ":utils", | 
|  | requirement("hjson"), | 
|  | ], | 
|  | ) | 
|  |  | 
|  | py_library( | 
|  | name = "oneshot_cfg", | 
|  | srcs = ["OneShotCfg.py"], | 
|  | deps = [ | 
|  | ":deploy", | 
|  | ":flow_cfg", | 
|  | ":modes", | 
|  | ":utils", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | py_library( | 
|  | name = "lint_cfg", | 
|  | srcs = ["LintCfg.py"], | 
|  | deps = [ | 
|  | ":msg_buckets", | 
|  | ":oneshot_cfg", | 
|  | ":utils", | 
|  | requirement("tabulate"), | 
|  | ], | 
|  | ) | 
|  |  | 
|  | py_library( | 
|  | name = "formal_cfg", | 
|  | srcs = ["FormalCfg.py"], | 
|  | deps = [ | 
|  | ":oneshot_cfg", | 
|  | ":utils", | 
|  | requirement("hjson"), | 
|  | requirement("tabulate"), | 
|  | ], | 
|  | ) | 
|  |  | 
|  | py_library( | 
|  | name = "cdc_cfg", | 
|  | srcs = ["CdcCfg.py"], | 
|  | deps = [ | 
|  | ":lint_cfg", | 
|  | ":msg_buckets", | 
|  | ":utils", | 
|  | requirement("tabulate"), | 
|  | ], | 
|  | ) | 
|  |  | 
|  | py_library( | 
|  | name = "rdc_cfg", | 
|  | srcs = ["RdcCfg.py"], | 
|  | deps = [ | 
|  | ":cdc_cfg", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | py_library( | 
|  | name = "testplan", | 
|  | srcs = ["Testplan.py"], | 
|  | deps = [ | 
|  | requirement("hjson"), | 
|  | requirement("mistletoe"), | 
|  | requirement("tabulate"), | 
|  | ], | 
|  | ) | 
|  |  | 
|  | py_library( | 
|  | name = "sim_results", | 
|  | srcs = ["SimResults.py"], | 
|  | deps = [ | 
|  | ":testplan", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | py_library( | 
|  | name = "sim_cfg", | 
|  | srcs = ["SimCfg.py"], | 
|  | deps = [ | 
|  | ":deploy", | 
|  | ":flow_cfg", | 
|  | ":modes", | 
|  | ":sim_results", | 
|  | ":testplan", | 
|  | ":utils", | 
|  | requirement("tabulate"), | 
|  | ], | 
|  | ) | 
|  |  | 
|  | py_library( | 
|  | name = "syn_cfg", | 
|  | srcs = ["SynCfg.py"], | 
|  | deps = [ | 
|  | ":oneshot_cfg", | 
|  | ":utils", | 
|  | requirement("hjson"), | 
|  | requirement("tabulate"), | 
|  | ], | 
|  | ) | 
|  |  | 
|  | py_library( | 
|  | name = "cfg_factory", | 
|  | srcs = ["CfgFactory.py"], | 
|  | deps = [ | 
|  | ":cdc_cfg", | 
|  | ":cfg_json", | 
|  | ":formal_cfg", | 
|  | ":lint_cfg", | 
|  | ":sim_cfg", | 
|  | ":syn_cfg", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | py_binary( | 
|  | name = "dvsim", | 
|  | srcs = ["dvsim.py"], | 
|  | deps = [ | 
|  | ":cfg_factory", | 
|  | ":deploy", | 
|  | ":launcher", | 
|  | ":timer", | 
|  | ":utils", | 
|  | ], | 
|  | ) |