if 'ctbuf9041' in inst_name: tcts_database[clock]["clock_node"][node_name]["pins"] = list((get_cell(str(inst_name),name_is.quiet).pins())) print('ctbuf9041 pins:',tcts_database[clock]["clock_node"][node_name]["pins"]) if re.search("^stage0000",stage): if tcts_database[clock]["clock_node"][node_name]["type_of_obj"] =="" or tcts_database[clock]["clock_node"][node_name]["type_of_obj"] =="pin" : if len(tcts_database[clock]["clock_node"][node_name]["fanout_list"])==1: fanout_node= tcts_database[clock]["clock_node"][node_name]["fanout_list"][0] if tcts_database[clock]["clock_node"][fanout_node]["is_sink"]==1 and tcts_database[clock]["clock_node"][fanout_node]["type_of_obj"]=="pin" : set_top(chiplet) bndy_pin= str(get_pin(fanout_node).fanin_pins()[1]) tcts_database[clock]["clock_node"][node_name]["bndy_pin"]=bndy_pin tcts_database[clock]["clock_node"][node_name]["bndy_partition"]=bndy_pin.split("/")[0] tcts_database[clock]["clock_node"][node_name]["pins"]=bndy_pin.split( str(bndy_pin.split("/")[0]+"/"))[1] else: set_top(chiplet) bndy_pin= str(get_pin(ANC_in_out_pins[0]).fanin_pins()[1]) tcts_database[clock]["clock_node"][node_name]["bndy_pin"]=bndy_pin tcts_database[clock]["clock_node"][node_name]["bndy_partition"]=bndy_pin.split("/")[0] tcts_database[clock]["clock_node"][node_name]["pins"]=bndy_pin.split( str(bndy_pin.split("/")[0]+"/"))[1] print('sink&pins: '+tcts_database[clock]["clock_node"][node_name]["pins"]) else: set_top(chiplet) bndy_pin= str(get_pin(ANC_in_out_pins[0]).fanin_pins()[1]) tcts_database[clock]["clock_node"][node_name]["bndy_pin"]=bndy_pin tcts_database[clock]["clock_node"][node_name]["bndy_partition"]=bndy_pin.split("/")[0] tcts_database[clock]["clock_node"][node_name]["pins"]=bndy_pin.split( str(bndy_pin.split("/")[0]+"/"))[1] print("\033now please check bndy pins\033[0m") print('tcts_database[clock]["clock_node"][node_name]["pins"]: '+tcts_database[clock]["clock_node"][node_name]["pins"]) elif not len(fanout_map[clock][inst_name]): print('not len(fanout_map[clock][inst_name]:',tcts_database[clock]["clock_node"][node_name]) if tcts_database[clock]["clock_node"][node_name]["type_of_obj"] =="":##bndy if type_of_obj(chiplet,clock_source)=="": pass else: fanin_node= str(tcts_database[clock]["clock_node"][node_name]["fanin_node"][0]) fanin_node_inst= fanin_node set_top(chiplet) for bndy_ANC_in_out_pin in bndy_ANC_in_out_pins[node_name]: if re.search(str(fanin_node_inst+"/Y0"),bndy_ANC_in_out_pin): print("bndy_ANC_in_out_pin: "+bndy_ANC_in_out_pin) bndy_net= str(get_pin(bndy_ANC_in_out_pin).net()) tcts_database[clock]["clock_node"][node_name]["bndy_net"]=bndy_net tcts_database[clock]["clock_node"][node_name]["bndy_partition"]=bndy_net.split("/")[0] tcts_database[clock]["clock_node"][node_name]["bndy_part_net"]=bndy_net.replace( str(bndy_net.split("/")[0]+"/"),"",1) tcts_database[clock]["clock_node"][fanin_node][str(node_name)]= str( bndy_ANC_in_out_pin[bndy_ANC_in_out_pin.find("clks"):]) #elif re.search("") else: # if 'pins' in tcts_database[clock]["clock_node"][node_name].keys(): # continue # else: else_part = tcts_database[clock]["clock_node"][node_name] # if 'pins' not in else_part.keys(): # print('else_part without pins:'+else_part) print('else part:',else_part) print('keys of else_part:',else_part.keys()) print('inst_name:',inst_name) print('last tcts_database[clock]["clock_node"][node_name]: ',tcts_database[clock]["clock_node"][node_name]) tcts_database[clock]["clock_node"][node_name]["pins"] = list() ANC_name= tcts_database[clock]["clock_node"][node_name]["part_inst_name"] search_str= str(ANC_name[ ANC_name.find("cb_group_ctbuf"):] ) print("search_str:"+search_str) tcts_database[clock]["clock_node"][node_name]["pins"] = sorted(list(set([element for element in part_ANC_in_out_pins if search_str in element ])))