idea-fasoc / OpenFASOC

Fully Open Source FASOC generators built on top of open-source EDA tools
https://openfasoc.readthedocs.io
Apache License 2.0
216 stars 91 forks source link

ldo generator fails at detail_place.tcl file #264

Open saicharan0112 opened 7 months ago

saicharan0112 commented 7 months ago

https://github.com/idea-fasoc/OpenFASOC/actions/runs/6753021994/job/18359047461#step:4:1983

msaligane commented 7 months ago

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
chetanyagoyal commented 6 months ago

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

harshkhandeparkar commented 6 months ago

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.

harshkhandeparkar commented 6 months ago

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

harshkhandeparkar commented 6 months ago

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?

harshkhandeparkar commented 6 months ago

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.

harshkhandeparkar commented 5 months ago

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

harshkhandeparkar commented 5 months ago

I found the reason for LVS failing:

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

Investigating further to find where the short occurs.