idea-fasoc/OpenFASOC

ldo generator fails at detail_place.tcl file

Closed this issue · 8 comments

It looks like the comparator is not being placed:

Components of this program may be licensed under more restrictive licenses which must be honored.
[ERROR DPL-0017] cannot place instance cmp1

@harshkhandeparkar it seems like the call to the detailed_placement function (after place_pt_unit ) is where the error occurs

This is what I have found so far:

  1. The detail_place.tcl script first calls the custom_place.tcl script that is supposedly places the cmp1 instance on this line.
  2. After the custom placement, the OpenROAD command detailed_placement is called.
  3. If custom placement is disabled, the detailed_placement command simply fails to place cmp1 with the error [ERROR DPL-0017] cannot place instance cmp1. (presumably by trying to place the already placed cmp1)
  4. If custom placement is enabled but detailed_placement is disabled, the flow throws the following error: Cell cmp1 with height 8140 is taller than any row. (Presumably because cmp1 is placed but violates some rules)
  5. The command linked in point 1 sets the status of the cell to PLACED using the -status flag of the place_cell command. If the status is instead set to FIRM, the error mentioned in point 4 occurs even with detailed_placement enabled. (Presumably because setting the status to FIRM doesn't cause cmp1 to be placed again but still violates the rules)

Addendum: The error mentioned in point 4 occurs at this line which presumably logs the placement violations.

Perhaps the size of each row was decreased (grid size increased) in OpenROAD?

Also the GDS of the cmp1 instance which is a custom block (LDO_COMPARATOR_LATCH) shows that the cell is of size ~19 micrometer x ~8 micrometer. Is this correct?

I now understand that the cell is taller than a row, but the error is not supposed to be shown since it is custom-placed. I will investigate further on how to remove the error.

While this issue has been fixed in #288, the DRC and LVS are failing.

I found the reason for LVS failing:

Warning:  Ports "VSS" and "VDD" are electrically shorted.

Investigating further to find where the short occurs.