Skip to content

Commit

Permalink
🔧 Cleanup print statements and ready for draft review
Browse files Browse the repository at this point in the history
  • Loading branch information
daquintero committed Jun 2, 2024
1 parent 8a1fabf commit 960d7f8
Show file tree
Hide file tree
Showing 6 changed files with 8 additions and 135 deletions.
3 changes: 0 additions & 3 deletions gplugins/hdl21/__init__.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,2 @@
from .netlist import *
<<<<<<< HEAD
from .sky130 import *
=======
>>>>>>> 75a4e37 ([pre-commit.ci] auto fixes from pre-commit.com hooks)
121 changes: 2 additions & 119 deletions gplugins/hdl21/netlist.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,35 +6,15 @@
import yaml

__all__ = [
<<<<<<< HEAD
<<<<<<< HEAD
'ParsedProtoVLSIR',
'generate_raw_netlist_dict_from_module',
'generate_raw_yaml_from_module'
=======
"ParsedProtoVLSIR",
"parse_module_to_proto_dict",
"generate_raw_netlist_from_module",
"generate_raw_yaml_from_module",
>>>>>>> 75a4e37 ([pre-commit.ci] auto fixes from pre-commit.com hooks)
=======
"ParsedProtoVLSIR",
"generate_raw_netlist_dict_from_module",
"generate_raw_yaml_from_module",
>>>>>>> a705eac ([pre-commit.ci] auto fixes from pre-commit.com hooks)
]

ParsedProtoVLSIR = dict


<<<<<<< HEAD
<<<<<<< HEAD
=======
>>>>>>> a705eac ([pre-commit.ci] auto fixes from pre-commit.com hooks)
def _parse_module_to_proto_dict(module: h.module) -> ParsedProtoVLSIR:
=======
def parse_module_to_proto_dict(module: h.module) -> ParsedProtoVLSIR:
>>>>>>> 75a4e37 ([pre-commit.ci] auto fixes from pre-commit.com hooks)
"""
Parse a hdl21 module object into a dictionary with the same structure as the proto VLSIR format.
"""
Expand Down Expand Up @@ -92,40 +72,16 @@ def _parse_connections(proto_dict: ParsedProtoVLSIR) -> dict:
target_signal = connection["target"][0]["sig"]
connection_key = f"{instance_name},{portname}"
# Find the target instance and port
<<<<<<< HEAD
<<<<<<< HEAD
target_instance_port = _find_target_instance_port(proto_dict, target_signal, instance_name)
=======
target_instance_port = find_target_instance_port(
proto_dict, target_signal, instance_name
)
>>>>>>> 75a4e37 ([pre-commit.ci] auto fixes from pre-commit.com hooks)
=======
target_instance_port = _find_target_instance_port(
proto_dict, target_signal, instance_name
)
>>>>>>> a705eac ([pre-commit.ci] auto fixes from pre-commit.com hooks)
if target_instance_port:
connections[connection_key] = target_instance_port

return connections


<<<<<<< HEAD
<<<<<<< HEAD
def _find_target_instance_port(proto_dict: ParsedProtoVLSIR,
target_signal,
current_instance_name):
=======
def find_target_instance_port(
proto_dict: ParsedProtoVLSIR, target_signal, current_instance_name
):
>>>>>>> 75a4e37 ([pre-commit.ci] auto fixes from pre-commit.com hooks)
=======
def _find_target_instance_port(
proto_dict: ParsedProtoVLSIR, target_signal, current_instance_name
):
>>>>>>> a705eac ([pre-commit.ci] auto fixes from pre-commit.com hooks)
"""
Find the target instance and port of the target signal in the proto_dict.
"""
Expand Down Expand Up @@ -158,23 +114,10 @@ def _generate_top_level_connections(proto_dict: ParsedProtoVLSIR):
top_level_connections = {}

# Iterate over the top-level module ports
<<<<<<< HEAD
<<<<<<< HEAD
for module in proto_dict.get('modules', []):
for port in module.get('ports', []):
port_signal = port['signal']
=======
for module in proto_dict.get("modules", []):
for port in module.get("ports", []):
port_signal = port["signal"]
>>>>>>> a705eac ([pre-commit.ci] auto fixes from pre-commit.com hooks)
connection = _find_port_connection(proto_dict, port_signal)
=======
for module in proto_dict.get("modules", []):
for port in module.get("ports", []):
port_signal = port["signal"]
connection = find_port_connection(proto_dict, port_signal)
>>>>>>> 75a4e37 ([pre-commit.ci] auto fixes from pre-commit.com hooks)
if connection:
top_level_connections[port_signal] = connection

Expand Down Expand Up @@ -205,8 +148,7 @@ def _extract_instance_parameters(proto_dict: ParsedProtoVLSIR):
for instance in module.get("instances", []):
instance_name = instance["name"]
instance_info = {
<<<<<<< HEAD
<<<<<<< HEAD

'component': _extract_component_name(instance),
'info': {},
'settings': {}
Expand All @@ -217,30 +159,6 @@ def _extract_instance_parameters(proto_dict: ParsedProtoVLSIR):
param_name = parameter['name']
param_value = _extract_parameter_value(parameter['value'])
instance_info['settings'][param_name] = param_value
=======
"component": extract_component_name(instance),
"info": {},
"settings": {},
}

# Extract parameters into the settings
for parameter in instance.get("parameters", []):
param_name = parameter["name"]
param_value = extract_parameter_value(parameter["value"])
instance_info["settings"][param_name] = param_value
>>>>>>> 75a4e37 ([pre-commit.ci] auto fixes from pre-commit.com hooks)
=======
"component": _extract_component_name(instance),
"info": {},
"settings": {},
}

# Extract parameters into the settings
for parameter in instance.get("parameters", []):
param_name = parameter["name"]
param_value = _extract_parameter_value(parameter["value"])
instance_info["settings"][param_name] = param_value
>>>>>>> a705eac ([pre-commit.ci] auto fixes from pre-commit.com hooks)

# Extract connections and add to settings
instance_info["settings"]["ports"] = {}
Expand All @@ -260,24 +178,10 @@ def _extract_component_name(instance):
"""
external_modules = instance.get("module", [])
if external_modules:
<<<<<<< HEAD
<<<<<<< HEAD
domain = external_modules[0].get('external', [{}])[0].get('domain', '')
name = external_modules[0].get('external', [{}])[0].get('name', '')
return f"{name}"
return 'unknown_component'
=======
domain = external_modules[0].get("external", [{}])[0].get("domain", "")
name = external_modules[0].get("external", [{}])[0].get("name", "")
return f"{domain}_{name}"
return "unknown_component"
>>>>>>> 75a4e37 ([pre-commit.ci] auto fixes from pre-commit.com hooks)
=======
domain = external_modules[0].get("external", [{}])[0].get("domain", "")
name = external_modules[0].get("external", [{}])[0].get("name", "")
return f"{name}"
return "unknown_component"
>>>>>>> a705eac ([pre-commit.ci] auto fixes from pre-commit.com hooks)


def _extract_parameter_value(value):
Expand All @@ -304,31 +208,13 @@ def _generate_raw_netlist_dict_from_proto_dict(proto_dict: ParsedProtoVLSIR):
raw_netlist_dict["name"] = proto_dict["modules"][0].get("name", "")

# Generate instances information
<<<<<<< HEAD
<<<<<<< HEAD
raw_netlist_dict['instances'] = _extract_instance_parameters(proto_dict)
=======
raw_netlist_dict["instances"] = _extract_instance_parameters(proto_dict)
>>>>>>> a705eac ([pre-commit.ci] auto fixes from pre-commit.com hooks)

# Generate connections
raw_netlist_dict["connections"] = _parse_connections(proto_dict)

# Generate top-level connections
<<<<<<< HEAD
raw_netlist_dict['ports'] = _generate_top_level_connections(proto_dict)
=======
raw_netlist_dict["instances"] = extract_instance_parameters(proto_dict)

# Generate connections
raw_netlist_dict["connections"] = parse_connections(proto_dict)

# Generate top-level connections
raw_netlist_dict["ports"] = generate_top_level_connections(proto_dict)
>>>>>>> 75a4e37 ([pre-commit.ci] auto fixes from pre-commit.com hooks)
=======
raw_netlist_dict["ports"] = _generate_top_level_connections(proto_dict)
>>>>>>> a705eac ([pre-commit.ci] auto fixes from pre-commit.com hooks)

return raw_netlist_dict

Expand All @@ -347,9 +233,6 @@ def generate_raw_yaml_from_module(module: h.module):
Generate a raw netlist yaml from a hdl21 module object which could be manually edited for specific instances
related to the corresponding SPICE.
"""
<<<<<<< HEAD

raw_netlist = generate_raw_netlist_dict_from_module(module)
=======
raw_netlist = generate_raw_netlist_from_module(module)
>>>>>>> 75a4e37 ([pre-commit.ci] auto fixes from pre-commit.com hooks)
return yaml.dump(raw_netlist, default_flow_style=False)
3 changes: 0 additions & 3 deletions gplugins/schematic_editor/circuitviz.py
Original file line number Diff line number Diff line change
Expand Up @@ -455,7 +455,6 @@ def viz_netlist(netlist, instances, instance_size=20):

for net in netlist.nets:
p_in, p_out = net
print(port_coords)
point1 = port_coords[p_in]
point2 = port_coords[p_out]
els += viz_connection(netlist, p_in, p_out, instance_size, point1, point2)
Expand All @@ -467,7 +466,6 @@ def show_netlist(
) -> None:
global data
data["netlist"] = schematic
print(schematic)
fig = bp.figure(width=800, height=500)
app = viz_bk(
schematic,
Expand All @@ -476,7 +474,6 @@ def show_netlist(
instance_size=50,
netlist_filename=netlist_filename,
)
print(app)
bio.show(app)


Expand Down
6 changes: 0 additions & 6 deletions gplugins/schematic_editor/schematic_editor.py
Original file line number Diff line number Diff line change
Expand Up @@ -270,12 +270,6 @@ def port_widget(self):
return self._port_grid

def visualize(self) -> None:
print("self.schematic")
print(self.schematic)
print("self.symbols")
print(self.symbols)
print("self.path")
print(self.path)
circuitviz.show_netlist(self.schematic, self.symbols, self.path)

self.on_instance_added.append(self._update_schematic_plot)
Expand Down
4 changes: 2 additions & 2 deletions notebooks/data/sky130nm/example_inverter_auto.layout.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,9 @@ instances:
component: sky130_fd_pr__rf_nfet_01v8_aM02W1p65L0p15
settings: {}
placements:
ps: {x: null, y: null, port: null, rotation: 0, dx: -1.4737477228631808, dy: -8.228251743803634,
ps: {x: null, y: null, port: null, rotation: 0.0, dx: -1.4737477228631808, dy: -8.228251743803634,
mirror: null}
ns: {x: null, y: null, port: null, rotation: 0, dx: null, dy: null, mirror: null}
ns: {x: null, y: null, port: null, rotation: 0.0, dx: null, dy: null, mirror: null}
routes:
r0:
routing_strategy: get_bundle
Expand Down
6 changes: 4 additions & 2 deletions notebooks/data/sky130nm/example_inverter_auto.schem.yaml
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
schema: null
instances:
ps:
component: sky130_fd_pr__rf_pfet_01v8_mcM04W3p00L0p15
Expand All @@ -6,8 +7,9 @@ instances:
component: sky130_fd_pr__rf_nfet_01v8_aM02W1p65L0p15
settings: {}
schematic_placements:
ps: {rotation: 0, dx: -1.4737477228631808, dy: -8.228251743803634}
ns: {rotation: 0}
ps: {x: null, y: null, port: null, rotation: 0.0, dx: -1.4737477228631808, dy: -8.228251743803634,
mirror: null}
ns: {x: null, y: null, port: null, rotation: 0.0, dx: null, dy: null, mirror: null}
nets:
- ['ps,DRAIN', 'ns,SOURCE']
- ['ps,GATE', 'ns,GATE']
Expand Down

0 comments on commit 960d7f8

Please sign in to comment.