Skip to content

Commit

Permalink
Sky130: Add lib to contain all logic libraries, add hd low leakage lo…
Browse files Browse the repository at this point in the history
…gic library (#28)

* Sky130: Add lib to contain all logic libraries, add hd low leakage logic library

* Fix linter error

* Regenerate lambdalib

* Sky130sc: Update don't use

* Address review comments

* Add tests for sky130sc

* Fix yosys techmap files for sky130hdll

* sky130sc: regenerate lambdalib, add mapping for latch_p
  • Loading branch information
ubfx committed Mar 8, 2024
1 parent 0394d0b commit eb7ba22
Show file tree
Hide file tree
Showing 132 changed files with 192,227 additions and 11 deletions.
27 changes: 24 additions & 3 deletions lambdapdk/sky130/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,12 @@ Source: [OpenROAD](https://github.com/The-OpenROAD-Project/OpenROAD-flow-scripts

Up-to-date as of commit `2484116`, no modifications.

`sky130_fd_sc_hdll.tlef`

Source: [open_pdks](https://github.com/RTimothyEdwards/open_pdks)

Copied from open_pdks at commit 6d4d11780c40b20ee63cc98e645307a9bf2b2ab8, then added the `dummycut` layer between `pwell` and `li1` to make the LEF conformant to the standard.

### `base/setup/klayout/`

`skywater130.lyt`
Expand Down Expand Up @@ -71,7 +77,7 @@ https://github.com/RTimothyEdwards/open_pdks/blob/master/sky130/netgen/sky130_se

Up-to-date as of `b06f0f2`.

### `libs/sky130hd/gds`
### `libs/sky130hd/gds/`

`sky130_fd_sc_hd.gds`

Expand All @@ -93,7 +99,7 @@ Source: generated by passing `sky130_fd_sc_hd_merged.lef` and
`sky130_fd_sc_hd.tlef` through `mergeLef.py`. This custom-generated LEF file is
referenced in `skywater130.lyt`.

### `libs/sky130hd/lib/`
### `libs/sky130hd/nldm/`

`sky130_fd_sc_hd__tt_025C_1v80.lib `

Expand All @@ -105,10 +111,25 @@ to set the dont_use property on the cells specified in `drc_exclude.cells` and
`no_synth.cells` in this [directory](.
https://github.com/RTimothyEdwards/open_pdks/tree/master/sky130/openlane/sky130_fd_sc_hd).

### `libs/sky130hd/verilog`
### `libs/sky130hd/verilog/`

`primitives.v` and `sky130_fd_sc_hd.v`

Source: [open_pdks](https://github.com/RTimothyEdwards/open_pdks)

Generated using the open_pdks Makefiles at commit 6d4d11780c40b20ee63cc98e645307a9bf2b2ab8.


### `libs/sky130hdll/cdl/`, `libs/sky130hdll/gds/`, `libs/sky130hdll/verilog/`
Work in Progress

Source: [open_pdks](https://github.com/RTimothyEdwards/open_pdks)

Copied from open_pdks at commit 6d4d11780c40b20ee63cc98e645307a9bf2b2ab8.

### `libs/sky130hdll/nldm/`
Work in Progress

Source: [open_pdks](https://github.com/RTimothyEdwards/open_pdks)

Copied from open_pdks at commit 6d4d11780c40b20ee63cc98e645307a9bf2b2ab8, then replaced all `bit_from`, `bit_to` and `bit_width` fields from floats to integers (same values, just without the .000) to make it conformant to Liberty file standard.
7 changes: 3 additions & 4 deletions lambdapdk/sky130/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,8 +42,6 @@ def setup(chip):
rev = 'v0_0_2'
stackup = '5M1LI'

# TODO: eventually support hs libtype as well
libtype = 'unithd'
node = 130
# TODO: dummy numbers, only matter for cost estimation
wafersize = 300
Expand All @@ -69,8 +67,9 @@ def setup(chip):
# APR Setup
# TODO: remove libtype
for tool in ('openroad', 'klayout', 'magic'):
pdk.set('pdk', process, 'aprtech', tool, stackup, libtype, 'lef',
pdkdir + '/apr/sky130_fd_sc_hd.tlef')
for libtype in ('hd', 'hdll'):
pdk.set('pdk', process, 'aprtech', tool, stackup, libtype, 'lef',
pdkdir + f'/apr/sky130_fd_sc_{libtype}.tlef')

pdk.set('pdk', process, 'minlayer', stackup, 'met1')
pdk.set('pdk', process, 'maxlayer', stackup, 'met5')
Expand Down

0 comments on commit eb7ba22

Please sign in to comment.