<#386 Include specify blocks in cell libraries> Pu...
# open_pdks
g
#386 Include specify blocks in cell libraries Pull request opened by mole99 This PR includes the specify blocks in all sky130 cell libraries. • enables
dospecify
to include the specify blocks in
inc_verilog.py
(
dospecify
was removed from
fix_verilog.py
because it doesn't do anything there) • fixes issues inside the specify blocks • different naming (e.g.
RESETB_delayed
->
RESET_B_delayed
) • lower-case (e.g.
AWAKE
->
awake
) • fixes issues inside the cells • some cells contained text fragments that definitely did not belong there (e.g. sky130_fd_sc_hs__a2bb2o on line 59 and 60) The following cell libraries have been successfully read in with Icarus Verilog. All four combinations of
USE_POWER_PINS
defined/not-defined and
FUNCTIONAL
defined/not-defined were tested.
Copy code
- `sky130_fd_io/verilog/sky130_ef_io.v`
- `sky130_fd_io/verilog/sky130_fd_io.v`
- `sky130_fd_sc_hd/verilog/primitives.v`
- `sky130_fd_sc_hd/verilog/sky130_fd_sc_hd.v`
- `sky130_fd_sc_hdll/verilog/primitives.v`
- `sky130_fd_sc_hdll/verilog/sky130_fd_sc_hdll.v`
- `sky130_fd_sc_hs/verilog/primitives.v`
- `sky130_fd_sc_hs/verilog/sky130_fd_sc_hs.v`
- `sky130_fd_sc_hvl/verilog/primitives.v`
- `sky130_fd_sc_hvl/verilog/sky130_fd_sc_hvl.v`
- `sky130_fd_sc_lp/verilog/primitives.v`
- `sky130_fd_sc_lp/verilog/sky130_fd_sc_lp.v`
- `sky130_fd_sc_ls/verilog/primitives.v`
- `sky130_fd_sc_ls/verilog/sky130_fd_sc_ls.v`
- `sky130_fd_sc_ms/verilog/primitives.v`
- `sky130_fd_sc_ms/verilog/sky130_fd_sc_ms.v`
Additionally, a simple simulation with IOPATH delays was run for
sky130_fd_sc_hd
. Problem: SDF-File Currently, the SDF file generated by OpenROAD annotates the drive-strength specific cells:
Copy code
(CELL
  (CELLTYPE "sky130_fd_sc_hd__inv_1")
  (INSTANCE _43_)
  (DELAY
   (ABSOLUTE
    (IOPATH A Y (0.059:0.059:0.059) (0.041:0.041:0.041))
   )
  )
 )
But this PR adds the specify paths to the base cells. This seems to be the right thing to do here, since the cells are structured in a way that all conditions, notifiers, delayed signals for the timing checks are in the base cell. Moving them to the drive-strength specific cells would mean a major rewrite of the cell libraries. Therefore, the SDF file needs to be changed like so:
Copy code
(CELL
  (CELLTYPE "sky130_fd_sc_hd__inv")
  (INSTANCE _43_.base)
  (DELAY
   (ABSOLUTE
    (IOPATH A Y (0.059:0.059:0.059) (0.041:0.041:0.041))
   )
  )
 )
I will open an Issue with OpenROAD to ask ask if OpenSTA's
write_sdf
can be changed to output the SDF file in this format. RTimothyEdwards/open_pdks