The-OpenROAD-Project / OpenLane

OpenLane is an automated RTL to GDSII flow based on several components including OpenROAD, Yosys, Magic, Netgen and custom methodology scripts for design exploration and optimization.
https://openlane.readthedocs.io/
Apache License 2.0
1.27k stars 369 forks source link

Units situation is a mess #1897

Open donn opened 1 year ago

donn commented 1 year ago

Description

OpenLane and its invocation of tools makes too many assumptions about the library being used.

Preliminarily analysis shows that there are three units widely used by variables:

These happen to match sky130 and gf180mcu, but may not always match others.

Additionally, there exist some config variables that are even more egregious:

https://github.com/RTimothyEdwards/open_pdks/blame/d9f6d3870385a580b19bc800942eedb0d5df9848/sky130/openlane/sky130_fd_sc_hd/config.tcl#L37C61-L37C61

This is specified in picoseconds, and the SDC file automatically divides it by 1000, which is then set in nanoseconds. This is silly.

Proposal

There are two approaches, and I hate both of them:


At any rate, the femtofarad variable has to be brought in line with the others.

donn commented 1 year ago

See also: #1352