def make_constructor(self,obj,name,parent=None,InOut_Filter=None, VaribleSignalFilter = None ): primary = hdl.get_primary_object(obj) TypeName = hdl.get_type_simple(primary) member = primary.getMember() VariableList = " variable ret : " + TypeName+ " := " + TypeName +"_null;" name = TypeName +"_ctr" fl = flat_member_list(primary, []) Constructor_Default_arguments=self.get_constroctor_default_list(obj) argList = [ join_str(x["name"],Delimeter="_") + " : integer := " + str(value(x["symbol"])) for x in Constructor_Default_arguments ] Argliststr = join_str(argList,Delimeter="; ",IgnoreIfEmpty=True) body= [ " ret." + join_str(x["name"],Delimeter=".") + " := "+ hdl.get_type_simple(x["symbol"]) + "_ctr(" + join_str(x["name"],Delimeter="_") +");\n" for x in Constructor_Default_arguments ] body = join_str(body,IgnoreIfEmpty=True) body += " return ret;\n" func = v_function(body=body, returnType=TypeName, argumentList=Argliststr,VariableList=VariableList,name=name,IsEmpty=False,isFreeFunction=True) setattr(parent, name, func)
def _vhdl__call_member_func(self, obj, name, args, astParser=None): primary = hdl.get_primary_object(obj) obj.__hdl_converter__ = primary.__hdl_converter__ call_obj = hdl.get_get_call_member_function(obj, name, args) ret = call_obj.HDL_Call(astParser, args, obj) return ret
def prepare_for_conversion(self,obj): primary = hdl.get_primary_object(obj) obj.__hdl_converter__ = primary.__hdl_converter__ if not primary.__hdl_converter__.extractedTypes: primary.__hdl_converter__.extractedTypes += vc_helper.extract_components(primary) members = obj.getMember() for m in members: hdl.prepare_for_conversion(m["symbol"])
def impl_architecture_body(self, obj): primary = hdl.get_primary_object(obj) obj.__hdl_converter__ = primary.__hdl_converter__ ret = [] for x in obj.__hdl_converter__.archetecture_list: ret.append(hdl.impl_architecture_body(x["symbol"])) ret = join_str(ret, LineBeginning=" ") ret = ret.replace("!!SELF!!", str(obj.__hdl_name__)) return ret
def get_constroctor_default_list(self, obj): primary = hdl.get_primary_object(obj) if primary.__hdl_converter__.Constructor_Default_arguments: return primary.__hdl_converter__.Constructor_Default_arguments fl = flat_member_list(primary, []) primary.__hdl_converter__.Constructor_Default_arguments = [ x for x in fl if not x["symbol"].__abstract_type_info__.UseDefaultCtr ] return primary.__hdl_converter__.Constructor_Default_arguments
def get_functions(self): primary = hdl.get_primary_object(self.freeFunction) self.freeFunction.__hdl_converter__ = primary.__hdl_converter__ self.freeFunction.__hdl_converter__.MissingTemplate = False print_cnvt(str(gTemplateIndent) +'<processing name="' + self.freeFunction.FuncName +'" MemfunctionCalls="' +str(len(self.freeFunction.__hdl_converter__.MemfunctionCalls)) +'">') self.__request_function_with_default_arguments__() print_cnvt(str(gTemplateIndent)+'</processing>') fun_ret = self.__implement_requested_functions__() return fun_ret
def impl_get_init_values(self, obj, parent=None, InOut_Filter=None, VaribleSignalFilter=None, ForceExpand=False): primary = hdl.get_primary_object(obj) if ForceExpand: member = obj.getMember() Content = [ hdl.def_record_Member_Default(x["symbol"], x["name"], obj.getMember(name=x["name"]), InOut_Filter) for x in member ] start = "(\n" ret = join_str(Content, start=start, end="\n )", Delimeter=",\n", LineBeginning=" ", IgnoreIfEmpty=True) return ret TypeName = hdl.get_type_simple(parent) name = TypeName + "_ctr" Constructor_Default_arguments = self.get_constroctor_default_list(obj) fl = flat_member_list(obj, []) # print(name, Constructor_Default_arguments, fl) argList = [ join_str(x["name"], Delimeter="_") + " => " + str(value(x["symbol"])) for i, x in enumerate(fl) if not x["symbol"].__abstract_type_info__.UseDefaultCtr if len(Constructor_Default_arguments) > i and value(x["symbol"]) != value(Constructor_Default_arguments[i]["symbol"]) ] Argliststr = join_str(argList, Delimeter=", ", IgnoreIfEmpty=True, start="(", end=")") ret = name + Argliststr return ret
def reset_TemplateMissing(self, obj): primary = hdl.get_primary_object(obj) primary.__hdl_converter__.MissingTemplate = False
def FlagFor_TemplateMissing(self, obj): obj.__hdl_converter__.MissingTemplate = True primary = hdl.get_primary_object(obj) primary.__hdl_converter__.MissingTemplate = True
def get_MemfunctionCalls(self,obj): primary = hdl.get_primary_object(obj) return primary.__hdl_converter__.MemfunctionCalls
def isTemplateMissing(self,obj): primary = hdl.get_primary_object(obj) return primary.__hdl_converter__.MissingTemplate