google-research / circuit_training

Apache License 2.0
710 stars 139 forks source link

plc_client.get_canvas_width_height unexplained behavior #27

Open Maria-UET opened 2 years ago

Maria-UET commented 2 years ago

Hi! Great work on circuit training.

I came across this issue while parsing the Ariane RISC netlist.pb.txt file with plc_client. plc_client.get_canvas_width_height() gives the canvas size: (408.06, 408.06). But I cannot find the source/logic behind this canvas size. Note that:

So, where do canvas sizes like (408.06, 408.06) and (645.49, 645.49) come from?

sakundu commented 1 year ago

By default plc_client computes the total area of macros and soft macros and then create a square canvas with 60% utilization.

If you want to use different canvas size you have to add comment in your protobuf netlist or in the input plc file. You can see placement_util.py can extract canvas size and other details.


You may check out our MacroPlacement repo.

We provide a script to write out the protobuf netlist from the Innovus tool which can be used as input to the CircuitTraining grouping code to generate the clustered netlist.

Also, you can train circuit training using the testcases available in MacroPlacement/Flows/\<Enablement>/\<Design>/netlist/output_CT_Grouping/.

If you are interested to learn more about proxy cost computation, you can visit this link.

You can find here the progress we have made till August 26.

jagdisht12817 commented 1 year ago

Hi I have a doubt on canvas shape, will it always be a rectangular block? If not then how can we set the different shape