55import hdl21 as h
66import yaml
77
8- __all__ = [
9- 'ParsedProtoVLSIR' ,
10- 'generate_raw_netlist_dict_from_module' ,
11- 'generate_raw_yaml_from_module'
12- ]
13-
148ParsedProtoVLSIR = dict
159
1610
@@ -72,16 +66,18 @@ def _parse_connections(proto_dict: ParsedProtoVLSIR) -> dict:
7266 target_signal = connection ["target" ][0 ]["sig" ]
7367 connection_key = f"{ instance_name } ,{ portname } "
7468 # Find the target instance and port
75- target_instance_port = _find_target_instance_port (proto_dict , target_signal , instance_name )
69+ target_instance_port = _find_target_instance_port (
70+ proto_dict , target_signal , instance_name
71+ )
7672 if target_instance_port :
7773 connections [connection_key ] = target_instance_port
7874
7975 return connections
8076
8177
82- def _find_target_instance_port (proto_dict : ParsedProtoVLSIR ,
83- target_signal ,
84- current_instance_name ):
78+ def _find_target_instance_port (
79+ proto_dict : ParsedProtoVLSIR , target_signal , current_instance_name
80+ ):
8581 """
8682 Find the target instance and port of the target signal in the proto_dict.
8783 """
@@ -114,9 +110,9 @@ def _generate_top_level_connections(proto_dict: ParsedProtoVLSIR):
114110 top_level_connections = {}
115111
116112 # Iterate over the top-level module ports
117- for module in proto_dict .get (' modules' , []):
118- for port in module .get (' ports' , []):
119- port_signal = port [' signal' ]
113+ for module in proto_dict .get (" modules" , []):
114+ for port in module .get (" ports" , []):
115+ port_signal = port [" signal" ]
120116 connection = _find_port_connection (proto_dict , port_signal )
121117 if connection :
122118 top_level_connections [port_signal ] = connection
@@ -148,17 +144,16 @@ def _extract_instance_parameters(proto_dict: ParsedProtoVLSIR):
148144 for instance in module .get ("instances" , []):
149145 instance_name = instance ["name" ]
150146 instance_info = {
151-
152- 'component' : _extract_component_name (instance ),
153- 'info' : {},
154- 'settings' : {}
147+ "component" : _extract_component_name (instance ),
148+ "info" : {},
149+ "settings" : {},
155150 }
156151
157152 # Extract parameters into the settings
158- for parameter in instance .get (' parameters' , []):
159- param_name = parameter [' name' ]
160- param_value = _extract_parameter_value (parameter [' value' ])
161- instance_info [' settings' ][param_name ] = param_value
153+ for parameter in instance .get (" parameters" , []):
154+ param_name = parameter [" name" ]
155+ param_value = _extract_parameter_value (parameter [" value" ])
156+ instance_info [" settings" ][param_name ] = param_value
162157
163158 # Extract connections and add to settings
164159 instance_info ["settings" ]["ports" ] = {}
@@ -178,10 +173,9 @@ def _extract_component_name(instance):
178173 """
179174 external_modules = instance .get ("module" , [])
180175 if external_modules :
181- domain = external_modules [0 ].get ('external' , [{}])[0 ].get ('domain' , '' )
182- name = external_modules [0 ].get ('external' , [{}])[0 ].get ('name' , '' )
176+ name = external_modules [0 ].get ("external" , [{}])[0 ].get ("name" , "" )
183177 return f"{ name } "
184- return ' unknown_component'
178+ return " unknown_component"
185179
186180
187181def _extract_parameter_value (value ):
@@ -208,13 +202,13 @@ def _generate_raw_netlist_dict_from_proto_dict(proto_dict: ParsedProtoVLSIR):
208202 raw_netlist_dict ["name" ] = proto_dict ["modules" ][0 ].get ("name" , "" )
209203
210204 # Generate instances information
211- raw_netlist_dict [' instances' ] = _extract_instance_parameters (proto_dict )
205+ raw_netlist_dict [" instances" ] = _extract_instance_parameters (proto_dict )
212206
213207 # Generate connections
214208 raw_netlist_dict ["connections" ] = _parse_connections (proto_dict )
215209
216210 # Generate top-level connections
217- raw_netlist_dict [' ports' ] = _generate_top_level_connections (proto_dict )
211+ raw_netlist_dict [" ports" ] = _generate_top_level_connections (proto_dict )
218212
219213 return raw_netlist_dict
220214
0 commit comments