From 281ccc698e74c292de4e26a02ccec2f300a95908 Mon Sep 17 00:00:00 2001 From: Ebrahim Songhori Date: Mon, 29 Jul 2024 16:55:15 -0700 Subject: [PATCH] Include blockages with 0.99 rate (std cell blockages) in dreamplace. PiperOrigin-RevId: 657371651 Change-Id: I1dc5e515f5ced5715e7011ea3764f0cfe4a6c58b --- circuit_training/dreamplace/plc_converter.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/circuit_training/dreamplace/plc_converter.py b/circuit_training/dreamplace/plc_converter.py index 2af0da1..fede7e4 100644 --- a/circuit_training/dreamplace/plc_converter.py +++ b/circuit_training/dreamplace/plc_converter.py @@ -18,6 +18,7 @@ - indices of macros, ports, and pins in plc is named "_index" and "_indices". - indices of nodes, pins, and nets in PlaceDB is named "_id" and "ids". """ + import pickle from absl import logging @@ -155,11 +156,13 @@ def convert_nodes(db, plc, hard_macro_order): db.node_x.append(x - db.original_node_size_x[-1] / 2) db.node_y.append(y - db.original_node_size_y[-1] / 2) - # if the blockage rate is 1, translate it into a dummy fixed node. + # if the blockage rate is larger than 0.99 (1.0 for rectilinear blockages and + # 0.99 for stdcell blockages), translate it into a dummy fixed node. Macro + # blockages (rate==0.1) are ignored. num_blockage_dummy_node = 0 for b in plc.get_blockages(): # b is a tupe of (minx, miny, maxx, maxy, blockage_rate) - if b[4] == 1: + if b[4] >= 0.99: dummy_node_name = 'blockage_dummy_node_' + str(num_blockage_dummy_node) db.node_names.append(dummy_node_name) db.node_name2id_map[dummy_node_name] = (