Skip to content

For sky130, in the generated .lef file, the value of 'DATABASE MICRONS' is wrong. #278

@ManzoniGiuseppe

Description

@ManzoniGiuseppe

Describe the bug
The lef file generated for the sky130 has 'DATABASE MICRONS 2000'.

Version
Both stable and dev

To Reproduce
I used the following configuration file:

write_size = 8
num_words = 512
num_rw_ports = 0
num_r_ports = 1
num_w_ports = 1
tech_name = "sky130"
nominal_corner_only = True
local_array_size = 16
route_supplies = False
check_lvsdrc = True
perimeter_pins = False

Then I compared the lef and gds files by opening them independently with klayout. In both cases klayout says it's using database units 0.001 microns which doesn't match the value in the lef file. Yet the layout is correct, as far as I can tell: the overall size, and the size/position of the din0 pin match that of the gds file. EDIT: Also, those sizes match the the raw values in the .lef file, without any factor of 2 or 0.5.

Expected behavior
The lef file should have 'DATABASE MICRONS 1000'

Additional context

Possible solution
In compiler/base/lef.py, change self.lef_units = 2000 to self.lef_units = 1000. I know this will fix the bug for the sky130 technology, but I do not know if it'll break others.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions