Skip to content

Commit

Permalink
Updated the custom additions to sky130_fd_sc_hd with a size-2 fill an…
Browse files Browse the repository at this point in the history
…d decap

cells with graded amounts of poly which can be used to hit a specific overall
target poly density.
  • Loading branch information
RTimothyEdwards committed Dec 10, 2024
1 parent b9bcc58 commit a67574f
Show file tree
Hide file tree
Showing 19 changed files with 652 additions and 19 deletions.
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
1.0.504
1.0.505
2 changes: 2 additions & 0 deletions sky130/custom/sky130_fd_sc_hd/Readme.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,5 @@ These decap cells were redesigned to cut back on its use of the LI layer because
The fill cells were redesigned to add tap diffusion in the middle because otherwise the spacing of the nwells and the height of the cells prevents FOM fill, resulting in a different density error.

Cell "newfill_12" was added to satisfy the change in the poly density rule to 38%; this cell is effectively the decap_12 cell with the poly removed, rendering it a fill cell. Its use is to replace some percentage of decap_12 cells until the maximum poly density rule is satisfied.

12/10/2024: Cell "newfill_12" was removed and replace with (a modified version of) "fill_12", which serves the same purpose but avoids the error in "newfill_12" where the nwell did not extend to the edge and would cause nwell spacing violations. Because SkyWater imposed stricter limits on poly density, cells "decap_20_12", "decap_40_12", "decap_60_12", and "decap_80_12" have been added to allow selection of poly densities in the decap (relative to the original cell) to meet an overall target poly density in a design.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file modified sky130/custom/sky130_fd_sc_hd/gds/sky130_ef_sc_hd__fill_12.gds
Binary file not shown.
Binary file not shown.
Binary file not shown.
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@ VERSION 5.7 ;
NOWIREEXTENSIONATPIN ON ;
DIVIDERCHAR "/" ;
BUSBITCHARS "[]" ;
MACRO sky130_ef_sc_hd__newfill_12
MACRO sky130_ef_sc_hd__decap_20_12
CLASS CORE SPACER ;
FOREIGN sky130_ef_sc_hd__newfill_12 ;
FOREIGN sky130_ef_sc_hd__decap_20_12 ;
ORIGIN 0.000 0.000 ;
SIZE 5.520 BY 2.720 ;
SYMMETRY X Y R90 ;
Expand Down Expand Up @@ -74,6 +74,6 @@ MACRO sky130_ef_sc_hd__newfill_12
RECT 4.745 -0.085 4.915 0.085 ;
RECT 5.205 -0.085 5.375 0.085 ;
END
END sky130_ef_sc_hd__newfill_12
END sky130_ef_sc_hd__decap_20_12
END LIBRARY

79 changes: 79 additions & 0 deletions sky130/custom/sky130_fd_sc_hd/lef/sky130_ef_sc_hd__decap_40_12.lef
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
VERSION 5.7 ;
NOWIREEXTENSIONATPIN ON ;
DIVIDERCHAR "/" ;
BUSBITCHARS "[]" ;
MACRO sky130_ef_sc_hd__decap_40_12
CLASS CORE SPACER ;
FOREIGN sky130_ef_sc_hd__decap_40_12 ;
ORIGIN 0.000 0.000 ;
SIZE 5.520 BY 2.720 ;
SYMMETRY X Y R90 ;
SITE unithd ;
PIN VPWR
USE POWER ;
PORT
LAYER met1 ;
RECT 0.000 2.480 5.520 2.960 ;
END
END VPWR
PIN VGND
USE GROUND ;
PORT
LAYER met1 ;
RECT 0.000 -0.240 5.520 0.240 ;
END
END VGND
PIN VPB
DIRECTION INOUT ;
USE POWER ;
PORT
LAYER nwell ;
RECT -0.190 1.305 5.710 2.910 ;
END
END VPB
PIN VNB
DIRECTION INOUT ;
USE GROUND ;
PORT
LAYER pwell ;
RECT 0.005 0.105 5.515 0.915 ;
RECT 0.145 -0.085 0.315 0.105 ;
END
END VNB
OBS
LAYER li1 ;
RECT 0.000 2.635 5.520 2.805 ;
RECT 0.085 2.200 5.430 2.635 ;
RECT 1.670 0.630 2.010 1.460 ;
RECT 3.490 0.950 3.840 2.200 ;
RECT 0.085 0.085 5.430 0.630 ;
RECT 0.000 -0.085 5.520 0.085 ;
LAYER mcon ;
RECT 0.145 2.635 0.315 2.805 ;
RECT 0.605 2.635 0.775 2.805 ;
RECT 1.065 2.635 1.235 2.805 ;
RECT 1.525 2.635 1.695 2.805 ;
RECT 1.985 2.635 2.155 2.805 ;
RECT 2.445 2.635 2.615 2.805 ;
RECT 2.905 2.635 3.075 2.805 ;
RECT 3.365 2.635 3.535 2.805 ;
RECT 3.825 2.635 3.995 2.805 ;
RECT 4.285 2.635 4.455 2.805 ;
RECT 4.745 2.635 4.915 2.805 ;
RECT 5.205 2.635 5.375 2.805 ;
RECT 0.145 -0.085 0.315 0.085 ;
RECT 0.605 -0.085 0.775 0.085 ;
RECT 1.065 -0.085 1.235 0.085 ;
RECT 1.525 -0.085 1.695 0.085 ;
RECT 1.985 -0.085 2.155 0.085 ;
RECT 2.445 -0.085 2.615 0.085 ;
RECT 2.905 -0.085 3.075 0.085 ;
RECT 3.365 -0.085 3.535 0.085 ;
RECT 3.825 -0.085 3.995 0.085 ;
RECT 4.285 -0.085 4.455 0.085 ;
RECT 4.745 -0.085 4.915 0.085 ;
RECT 5.205 -0.085 5.375 0.085 ;
END
END sky130_ef_sc_hd__decap_40_12
END LIBRARY

79 changes: 79 additions & 0 deletions sky130/custom/sky130_fd_sc_hd/lef/sky130_ef_sc_hd__decap_60_12.lef
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
VERSION 5.7 ;
NOWIREEXTENSIONATPIN ON ;
DIVIDERCHAR "/" ;
BUSBITCHARS "[]" ;
MACRO sky130_ef_sc_hd__decap_60_12
CLASS CORE SPACER ;
FOREIGN sky130_ef_sc_hd__decap_60_12 ;
ORIGIN 0.000 0.000 ;
SIZE 5.520 BY 2.720 ;
SYMMETRY X Y R90 ;
SITE unithd ;
PIN VPWR
USE POWER ;
PORT
LAYER met1 ;
RECT 0.000 2.480 5.520 2.960 ;
END
END VPWR
PIN VGND
USE GROUND ;
PORT
LAYER met1 ;
RECT 0.000 -0.240 5.520 0.240 ;
END
END VGND
PIN VPB
DIRECTION INOUT ;
USE POWER ;
PORT
LAYER nwell ;
RECT -0.190 1.305 5.710 2.910 ;
END
END VPB
PIN VNB
DIRECTION INOUT ;
USE GROUND ;
PORT
LAYER pwell ;
RECT 0.005 0.105 5.515 0.915 ;
RECT 0.145 -0.085 0.315 0.105 ;
END
END VNB
OBS
LAYER li1 ;
RECT 0.000 2.635 5.520 2.805 ;
RECT 0.085 2.200 5.430 2.635 ;
RECT 1.670 0.630 2.010 1.460 ;
RECT 3.490 0.950 3.840 2.200 ;
RECT 0.085 0.085 5.430 0.630 ;
RECT 0.000 -0.085 5.520 0.085 ;
LAYER mcon ;
RECT 0.145 2.635 0.315 2.805 ;
RECT 0.605 2.635 0.775 2.805 ;
RECT 1.065 2.635 1.235 2.805 ;
RECT 1.525 2.635 1.695 2.805 ;
RECT 1.985 2.635 2.155 2.805 ;
RECT 2.445 2.635 2.615 2.805 ;
RECT 2.905 2.635 3.075 2.805 ;
RECT 3.365 2.635 3.535 2.805 ;
RECT 3.825 2.635 3.995 2.805 ;
RECT 4.285 2.635 4.455 2.805 ;
RECT 4.745 2.635 4.915 2.805 ;
RECT 5.205 2.635 5.375 2.805 ;
RECT 0.145 -0.085 0.315 0.085 ;
RECT 0.605 -0.085 0.775 0.085 ;
RECT 1.065 -0.085 1.235 0.085 ;
RECT 1.525 -0.085 1.695 0.085 ;
RECT 1.985 -0.085 2.155 0.085 ;
RECT 2.445 -0.085 2.615 0.085 ;
RECT 2.905 -0.085 3.075 0.085 ;
RECT 3.365 -0.085 3.535 0.085 ;
RECT 3.825 -0.085 3.995 0.085 ;
RECT 4.285 -0.085 4.455 0.085 ;
RECT 4.745 -0.085 4.915 0.085 ;
RECT 5.205 -0.085 5.375 0.085 ;
END
END sky130_ef_sc_hd__decap_60_12
END LIBRARY

79 changes: 79 additions & 0 deletions sky130/custom/sky130_fd_sc_hd/lef/sky130_ef_sc_hd__decap_80_12.lef
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
VERSION 5.7 ;
NOWIREEXTENSIONATPIN ON ;
DIVIDERCHAR "/" ;
BUSBITCHARS "[]" ;
MACRO sky130_ef_sc_hd__decap_80_12
CLASS CORE SPACER ;
FOREIGN sky130_ef_sc_hd__decap_80_12 ;
ORIGIN 0.000 0.000 ;
SIZE 5.520 BY 2.720 ;
SYMMETRY X Y R90 ;
SITE unithd ;
PIN VPWR
USE POWER ;
PORT
LAYER met1 ;
RECT 0.000 2.480 5.520 2.960 ;
END
END VPWR
PIN VGND
USE GROUND ;
PORT
LAYER met1 ;
RECT 0.000 -0.240 5.520 0.240 ;
END
END VGND
PIN VPB
DIRECTION INOUT ;
USE POWER ;
PORT
LAYER nwell ;
RECT -0.190 1.305 5.710 2.910 ;
END
END VPB
PIN VNB
DIRECTION INOUT ;
USE GROUND ;
PORT
LAYER pwell ;
RECT 0.005 0.105 5.515 0.915 ;
RECT 0.145 -0.085 0.315 0.105 ;
END
END VNB
OBS
LAYER li1 ;
RECT 0.000 2.635 5.520 2.805 ;
RECT 0.085 2.200 5.430 2.635 ;
RECT 1.670 0.630 2.010 1.460 ;
RECT 3.490 0.950 3.840 2.200 ;
RECT 0.085 0.085 5.430 0.630 ;
RECT 0.000 -0.085 5.520 0.085 ;
LAYER mcon ;
RECT 0.145 2.635 0.315 2.805 ;
RECT 0.605 2.635 0.775 2.805 ;
RECT 1.065 2.635 1.235 2.805 ;
RECT 1.525 2.635 1.695 2.805 ;
RECT 1.985 2.635 2.155 2.805 ;
RECT 2.445 2.635 2.615 2.805 ;
RECT 2.905 2.635 3.075 2.805 ;
RECT 3.365 2.635 3.535 2.805 ;
RECT 3.825 2.635 3.995 2.805 ;
RECT 4.285 2.635 4.455 2.805 ;
RECT 4.745 2.635 4.915 2.805 ;
RECT 5.205 2.635 5.375 2.805 ;
RECT 0.145 -0.085 0.315 0.085 ;
RECT 0.605 -0.085 0.775 0.085 ;
RECT 1.065 -0.085 1.235 0.085 ;
RECT 1.525 -0.085 1.695 0.085 ;
RECT 1.985 -0.085 2.155 0.085 ;
RECT 2.445 -0.085 2.615 0.085 ;
RECT 2.905 -0.085 3.075 0.085 ;
RECT 3.365 -0.085 3.535 0.085 ;
RECT 3.825 -0.085 3.995 0.085 ;
RECT 4.285 -0.085 4.455 0.085 ;
RECT 4.745 -0.085 4.915 0.085 ;
RECT 5.205 -0.085 5.375 0.085 ;
END
END sky130_ef_sc_hd__decap_80_12
END LIBRARY

12 changes: 6 additions & 6 deletions sky130/custom/sky130_fd_sc_hd/lef/sky130_ef_sc_hd__fill_12.lef
Original file line number Diff line number Diff line change
Expand Up @@ -28,25 +28,25 @@ MACRO sky130_ef_sc_hd__fill_12
USE POWER ;
PORT
LAYER nwell ;
RECT -0.190 1.305 2.950 2.910 ;
RECT -0.190 1.305 5.710 2.910 ;
END
END VPB
PIN VNB
DIRECTION INOUT ;
USE GROUND ;
PORT
LAYER pwell ;
RECT 0.005 0.105 2.755 0.915 ;
RECT 0.005 0.105 5.515 0.915 ;
RECT 0.145 -0.085 0.315 0.105 ;
END
END VNB
OBS
LAYER li1 ;
RECT 0.000 2.635 5.520 2.805 ;
RECT 0.085 1.545 2.675 2.635 ;
RECT 0.085 0.855 1.295 1.375 ;
RECT 1.465 1.025 2.675 1.545 ;
RECT 0.085 0.085 2.675 0.855 ;
RECT 0.085 2.200 5.430 2.635 ;
RECT 1.670 0.630 2.010 1.460 ;
RECT 3.490 0.950 3.840 2.200 ;
RECT 0.085 0.085 5.430 0.630 ;
RECT 0.000 -0.085 5.520 0.085 ;
LAYER mcon ;
RECT 0.145 2.635 0.315 2.805 ;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
/**
* Copyright 2020 The SkyWater PDK Authors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* SPDX-License-Identifier: Apache-2.0
*/

`ifndef SKY130_EF_SC_HD__DECAP_20_12_V
`define SKY130_EF_SC_HD__DECAP_20_12_V

/**
* decap: Decoupling capacitance filler.
*
* Verilog wrapper for decap with size of 12 units.
* This cell has been modified from sky130_fd_sc_hd__decap_12
* to remove excess LI, so that when used extensively in a
* padded region of a digital layout, it does not cause the
* LI layer to exceed critical density. Additionally, this
* cell was modified from sky130_ef_sc_hd__decap_12 to remove
* excess poly, so that when used extensively in a padded
* region of a digital layout, it does not cause the POLY
* layer to exceed critical density. A combination of
* cells _20_12, _40_12, _60_12, and _80_12 (representing
* 20, 40, 60, and 80 percent of the original amount of poly)
* can be used to achieve a target poly density.
*
* WARNING: This file is autogenerated, do not modify directly!
*/

`timescale 1ns / 1ps
`default_nettype none

`ifdef USE_POWER_PINS
/*********************************************************/

`celldefine
module sky130_ef_sc_hd__decap_20_12 (
VPWR,
VGND,
VPB ,
VNB
);

// Module ports
input VPWR;
input VGND;
input VPB ;
input VNB ;
// No contents.
endmodule
`endcelldefine

/*********************************************************/
`else // If not USE_POWER_PINS
/*********************************************************/

`ifdef FUNCTIONAL

`celldefine
module sky130_ef_sc_hd__decap_20_12 ();
// No contents.
endmodule
`endcelldefine

`else // If not FUNCTIONAL

`celldefine
module sky130_ef_sc_hd__decap_20_12 ();

// Voltage supply signals
supply1 VPWR;
supply0 VGND;
supply1 VPB ;
supply0 VNB ;
// No contents.
endmodule
`endcelldefine

`endif // If not FUNCTIONAL

/*********************************************************/
`endif // If not USE_POWER_PINS

`default_nettype wire
`endif // SKY130_EF_SC_HD__DECAP_20_12_V


Loading

0 comments on commit a67574f

Please sign in to comment.