OpenROAD-flow-scripts icon indicating copy to clipboard operation
OpenROAD-flow-scripts copied to clipboard

Platform SG13G2 misses antenna diode definition in the LEF

Open hpretl opened this issue 1 year ago • 12 comments

Description

In the ORFS the repair_antennas command is used for antenna repair. This requires an ANTENNACELL to be declared in the LEF, see https://openroad.readthedocs.io/en/latest/main/src/grt/README.html#repair-antennas.

In the moment, this seems missing.

Suggested Solution

Add ANTENNACELL to sg13g2_stdcell.lef (at least I think this would be the right place, but I am not sure about this). @KrzysztofHerman please take a look into this.

It would also be good if antenna diodes could be placed at every input, but since only p-type antenna diodes are available in the standard cells that could lead to trouble, if a block is powered down and ties the inputs to VSS via the antenna diodes.

Additional Context

No response

hpretl avatar Apr 30 '24 09:04 hpretl

The lack of a cell should be filed against https://github.com/IHP-GmbH/IHP-Open-PDK. If such a cell exists then this request could be fufilled.

maliberty avatar Apr 30 '24 15:04 maliberty

Created an issue: https://github.com/IHP-GmbH/IHP-Open-PDK/issues/92

I propose to keep both issues open, one to get the antenna diode in the LEF, and then check that ORFS is actually using it.

hpretl avatar Apr 30 '24 15:04 hpretl

It looks like the upstream has one: https://github.com/IHP-GmbH/IHP-Open-PDK/blob/dceb7e6bd1a877182c3ba32c2e238be08368fa3f/ihp-sg13g2/libs.ref/sg13g2_stdcell/lef/sg13g2_stdcell.lef#L1099

rovinski avatar May 01 '24 01:05 rovinski

That cell exists in our copy but lacks ANTENNACELL. I'll see if we can pull in the update.

maliberty avatar May 01 '24 16:05 maliberty

https://github.com/The-OpenROAD-Project/OpenROAD-flow-scripts/pull/1987

maliberty avatar May 01 '24 17:05 maliberty

@hpretl @maliberty @rovinski since there was an update on different views used for digital design there is also the ANTENNACELL present there. I am currently testing it and it still throws antenna issues for large designs (ibex, aes, riscv32i). The updated LEF is here https://github.com/KrzysztofHerman/OpenROAD-flow-scripts/blob/April24_Update/flow/platforms/ihp-sg13g2/lef/sg13g2_stdcell.lef The name of the cell is sg13g2_antennanp

KrzysztofHerman avatar May 02 '24 07:05 KrzysztofHerman

I've merged https://github.com/The-OpenROAD-Project/OpenROAD-flow-scripts/pull/1987 so the antennacell is there. @hpretl do you want to make any necessary ORFS changes and see if it resolves your concern?

maliberty avatar May 02 '24 16:05 maliberty

@maliberty I wouldn't really know what to do except run the flow and see what happens, but @KrzysztofHerman already tried that (see above). The question is why there are still antenna fails left.

hpretl avatar May 02 '24 16:05 hpretl

What does "throws antenna issues" mean? Is it that the tool fails or just that not all issues were fixed? We do have some improvements in antenna fixing in progress.

maliberty avatar May 02 '24 16:05 maliberty

There are still antenna violations in the 5_1_grt.log, something like this: Required ratio: 200.00 (Cumulative area) (VIOLATED). I have also verified the final netlist 6_final.v and there are no cells named sg13g2_antennanp.

KrzysztofHerman avatar May 02 '24 16:05 KrzysztofHerman

@eder-matheus I ran ihp-sg13g2/riscv32i and I see

Repair antennas...
[INFO GRT-0012] Found 0 antenna violations.

but the subsequent check shows violations.

maliberty avatar May 02 '24 16:05 maliberty

@maliberty I've found the issue. The API used by repair_antennas to get the violations from antenna_checker is broken. It only computes the PAR values, not the CAR. If you look at the logs, there are only CAR violations. I'll try to fix it. Hopefully, it will be a small update. But this is something to remember in the new antenna checker (@luis201420 ).

eder-matheus avatar May 02 '24 18:05 eder-matheus

@eder-matheus is this resolved now that the new checker is in?

maliberty avatar Jun 13 '24 12:06 maliberty