-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy path__init__.py
39 lines (34 loc) · 1.38 KB
/
__init__.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
import os
import gymnasium as gym
import pkg_resources
def register_circuit_env(id_suffix, netlist_name):
netlist_file_path = pkg_resources.resource_filename(
"a2perf",
f"domains/circuit_training/circuit_training/environment/test_data/{netlist_name}/netlist.pb.txt",
)
init_placement_file_path = pkg_resources.resource_filename(
"a2perf",
f"domains/circuit_training/circuit_training/environment/test_data/{netlist_name}/initial.plc",
)
plc_wrapper_main = pkg_resources.resource_filename(
"a2perf", "domains/circuit_training/bin/plc_wrapper_main"
)
# Fallback to global installation path
if not os.path.exists(plc_wrapper_main):
plc_wrapper_main = "/usr/local/bin/plc_wrapper_main"
gym.envs.register(
id=f"CircuitTraining-{id_suffix}-v0",
apply_api_compatibility=False,
disable_env_checker=False,
entry_point="a2perf.domains.circuit_training.circuit_training.environment.environment:create_circuit_environment",
kwargs=dict(
netlist_file=netlist_file_path,
init_placement=init_placement_file_path,
plc_wrapper_main=plc_wrapper_main,
netlist_index=0,
use_legacy_step=False,
use_legacy_reset=False,
),
)
register_circuit_env("Ariane", "ariane")
register_circuit_env("ToyMacro", "toy_macro_stdcell")