(self)
| 932 | """ |
| 933 | |
| 934 | def compute_DRC_density(self): |
| 935 | drc_density_dict = {} |
| 936 | overall_count = 0 |
| 937 | save_path = os.path.join(self.save_path, 'DRC') |
| 938 | rpt_dir = os.path.join(save_path, 'rpt') |
| 939 | for types in self.drc_dict: # first layer of dict: key types |
| 940 | type_count = 0 |
| 941 | drc_density_dict[types] = np.zeros(self.gcell_size) |
| 942 | save_dir = os.path.join(save_path, 'DRC_seperated', types.replace(' ', ''), self.save_name) |
| 943 | os.system("mkdir -p %s " % (os.path.dirname(save_dir))) |
| 944 | for layer in self.drc_dict[types]: # second: metal layer |
| 945 | for drc in self.drc_dict[types][layer]: # drc_dict[types][layer] third: coordinate |
| 946 | drc_left, drc_lower, drc_right, drc_upper = drc |
| 947 | drc_x_left_gcell = bisect.bisect_left(self.gcell_coordinate_x, drc_left) |
| 948 | drc_y_lower_gcell = bisect.bisect_left(self.gcell_coordinate_y, drc_lower) |
| 949 | drc_x_right_gcell = bisect.bisect_left(self.gcell_coordinate_x, drc_right) |
| 950 | drc_y_upper_gcell = bisect.bisect_left(self.gcell_coordinate_y, drc_upper) |
| 951 | drc_gcell = [drc_x_left_gcell, drc_y_lower_gcell, drc_x_right_gcell, drc_y_upper_gcell] |
| 952 | drc_density_dict[types] = self.compute_density(drc_density_dict[types], drc_gcell) |
| 953 | type_count += 1 |
| 954 | overall_count += 1 |
| 955 | with open(rpt_dir, 'a') as write: |
| 956 | write.writelines('%s: %s\n' % (types, type_count)) |
| 957 | np.save(save_dir, drc_density_dict[types]) # save based on types |
| 958 | |
| 959 | with open(rpt_dir, 'a') as write: |
| 960 | write.writelines('all: %s\n' % overall_count) |
| 961 | |
| 962 | overall_drc_density = np.zeros(self.gcell_size) |
| 963 | for i in drc_density_dict: |
| 964 | overall_drc_density += drc_density_dict[i] |
| 965 | save_dir = os.path.join(save_path, 'DRC_all', self.save_name) |
| 966 | os.system("mkdir -p %s " % (os.path.dirname(save_dir))) |
| 967 | np.save(save_dir, overall_drc_density) |
| 968 | |
| 969 | """ |
| 970 | Get IR drop features. |
no test coverage detected