Source code for hdlConvertorAst.translate.verilog_to_basic_hdl_sim_model.add_unique_labels_to_all_processes

from hdlConvertorAst.hdlAst._statements import HdlStmProcess
from hdlConvertorAst.hdlAst._structural import HdlModuleDef


[docs]class AddUniqueLabelsToAllProcesses():
[docs] def __init__(self, name_scope, stm_outputs): """ :type name_scope: NameScope :type stm_outputs: Dict[iHdlStatement, ] """ self.name_scope = name_scope self.stm_outputs = stm_outputs
[docs] def visit_HdlModuleDef(self, m): """ :type m: HdlModuleDef """ for o in m.objs: if isinstance(o, HdlStmProcess): if not o.labels: outputs = self.stm_outputs[o] if outputs: suggested_name = "assig_process_" + outputs[0].val else: suggested_name = "proc" o.labels.append(self.name_scope.checked_name(suggested_name, o))
[docs] def context(self, context): """ :type context: HdlContext """ for o in context.objs: if isinstance(o, HdlModuleDef): try: self.name_scope = self.name_scope.get_child(o.dec.name) self.visit_HdlModuleDef(o) finally: self.name_scope = self.name_scope.level_pop()