Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
690 commits
Select commit Hold shift + click to select a range
24d424b
Logging resource usage
thesourcerer8 Nov 27, 2022
4ca5186
Removed warnings and debug code
thesourcerer8 Nov 27, 2022
d528d7e
Fixed report filenames
thesourcerer8 Nov 27, 2022
8f85d06
Adding a generator for CharLib characterization
thesourcerer8 Nov 28, 2022
eda2c42
Adding support for CharLib
thesourcerer8 Nov 28, 2022
b988334
Fixed typos
thesourcerer8 Nov 29, 2022
4741ddd
Reduced update frequency of buildreport to 2 minutes
thesourcerer8 Dec 1, 2022
89d9cda
Adding tool to divide and conquer the cells on several test-chips
thesourcerer8 Dec 1, 2022
4b48264
Adding tools for Caravel deployment
thesourcerer8 Dec 1, 2022
dda8c9c
Made the PDK parameterizable
thesourcerer8 Dec 1, 2022
fc9f7fc
Made building a single cell template possible, to avoid error messages
thesourcerer8 Dec 1, 2022
d08db79
Building the liberty templates just for a single cell
thesourcerer8 Dec 1, 2022
e03be1c
Various updates
thesourcerer8 Dec 1, 2022
6677226
Added more verbose output
thesourcerer8 Dec 1, 2022
6a116e7
Added warning message if environment variable is missing
thesourcerer8 Dec 1, 2022
85a1c55
Updated environment variables for newer Caravel
thesourcerer8 Dec 2, 2022
df2aebd
Configuration generator for caravel config.json files
thesourcerer8 Dec 2, 2022
6a9c017
Config generator, filename fix
thesourcerer8 Dec 2, 2022
35596ef
Expanded LEF and GDS files, since Openlane doesn't seem to be capable
thesourcerer8 Dec 4, 2022
10ee6c8
Adding environment file for debugging
thesourcerer8 Dec 4, 2022
1ac8a01
GPIO definitions
thesourcerer8 Dec 5, 2022
11b339f
GPIO definitions
thesourcerer8 Dec 5, 2022
f48abeb
Fixed User/MGMT GPIO definition
thesourcerer8 Dec 5, 2022
14e7983
New directory structure
thesourcerer8 Dec 5, 2022
47d8b87
New cells directory layout
thesourcerer8 Dec 5, 2022
8f80ebb
Scaling tool
thesourcerer8 Dec 6, 2022
0c9a959
Corrected standard cell library
thesourcerer8 Dec 6, 2022
775bdc9
New cells directory structure
thesourcerer8 Dec 6, 2022
2d58978
Added .dontuse support for standard cells
thesourcerer8 Dec 6, 2022
fac5651
Change lclayout call to only use the spice file for that cell
thesourcerer8 Dec 8, 2022
83f3c4a
Power Pins for GF180
thesourcerer8 Dec 8, 2022
d76abf2
Power pins update for GF180
thesourcerer8 Dec 8, 2022
3292b2f
Made the tools executable
thesourcerer8 Dec 8, 2022
9d4c427
Fixed wrong variable name
thesourcerer8 Dec 11, 2022
d073d61
Added a maximum limit for designs
thesourcerer8 Dec 12, 2022
939247b
Added automatic rescaling for GDS
thesourcerer8 Dec 18, 2022
48dce4d
Added GF180 and Sky130 support for the Caravel IO
thesourcerer8 Dec 18, 2022
95050b3
Added counters for *.cell and *.svg files
thesourcerer8 Dec 18, 2022
d6723e1
Adding a new dummy characterization engine to please yosys
thesourcerer8 Dec 19, 2022
43ff6cb
Adding README generator, added documentation, ...
thesourcerer8 Dec 19, 2022
def439c
Libraries added
thesourcerer8 Dec 19, 2022
3ae83ab
Overridable PDK_ROOT
thesourcerer8 Dec 19, 2022
8443385
Fixed DRC issues, removed unnecessary layers
thesourcerer8 Dec 20, 2022
ace35fc
Environment variable support added
thesourcerer8 Dec 20, 2022
082b031
Warning and explanation for changed GDS files added
thesourcerer8 Dec 20, 2022
5a1d87c
Adding wildcards back in
thesourcerer8 Dec 20, 2022
0f7cd30
Including the project cells, somehow the VERILOG files dont seem to be
thesourcerer8 Dec 20, 2022
36c6c83
Input/Output confusion
thesourcerer8 Dec 20, 2022
a909cb0
New config file with environment parameters for Caravel
thesourcerer8 Dec 20, 2022
48b2953
Changed Caravel Config Filename
thesourcerer8 Dec 20, 2022
fc7a665
Adding Inverter cell
thesourcerer8 Dec 20, 2022
ec25316
Removed old Sky130 file
thesourcerer8 Dec 20, 2022
95239a4
Added new file types to cleaning
thesourcerer8 Dec 20, 2022
5c07c02
Scaling correction
thesourcerer8 Dec 20, 2022
9b08195
Removed Min-Area rule for Metal2 since those are false positives for
thesourcerer8 Dec 22, 2022
3c85b0f
Added verbosity
thesourcerer8 Dec 22, 2022
8dad813
New bisecting tool for finding errors in many changed lines to the te…
thesourcerer8 Dec 22, 2022
66120bb
Improved variable handling for supporting PDKs
thesourcerer8 Dec 22, 2022
a396607
Rearranged some steps to avoid unnecessary steps that cost time
thesourcerer8 Dec 22, 2022
a7a76d8
Made it executable
thesourcerer8 Dec 22, 2022
52f3532
Various changes to DRC rules, based on the DRC results from magic
thesourcerer8 Dec 22, 2022
7f6be0c
More verbose for executed commands
thesourcerer8 Dec 22, 2022
309c0e1
Adding tool to display the grid usage
thesourcerer8 Dec 22, 2022
a5862a2
Added multiple-cell support
thesourcerer8 Dec 23, 2022
6fb082c
Added x support
thesourcerer8 Dec 23, 2022
be46078
Added support for the new debug-routing-graph of lclayout
thesourcerer8 Dec 23, 2022
06467aa
Adding MCW_ROOT for simulation
thesourcerer8 Dec 23, 2022
e509358
Made it run on Sky130
thesourcerer8 Dec 23, 2022
e48aa0e
Do not delete essential cells anymore
thesourcerer8 Dec 23, 2022
35940a6
Proper sizing of the gates
thesourcerer8 Dec 23, 2022
34bedec
Adding automatic verification support
thesourcerer8 Dec 24, 2022
e343ee3
Trying to make the test successful
thesourcerer8 Dec 24, 2022
318fd50
Adding testbench for Caravel
thesourcerer8 Dec 24, 2022
b4bc326
Adding CELL generators for missing cells and for essential cells
thesourcerer8 Dec 24, 2022
9a71d93
Remove min_area for metal2
thesourcerer8 Dec 24, 2022
fca27fd
Moved code out of the loop
thesourcerer8 Dec 24, 2022
6c33f0a
HIGH-Z support for sequential cells
thesourcerer8 Dec 24, 2022
5a22ea5
Adding truthtable support
thesourcerer8 Dec 24, 2022
8613f26
Create LICENSE
thesourcerer8 Jan 7, 2023
77aac99
Adding routing grid debugging
thesourcerer8 Jan 7, 2023
2ccf9fb
Merge remote-tracking branch 'refs/remotes/origin/master'
thesourcerer8 Jan 7, 2023
383da1d
New conversion tool
thesourcerer8 Feb 15, 2023
0fb5b39
Fixed the via1 mapping, now it works
thesourcerer8 Feb 15, 2023
045c7e4
Adding siliwiz to the flow
thesourcerer8 Feb 15, 2023
3e8dc1e
Adding KLayout home variable
thesourcerer8 Feb 19, 2023
a984644
Fix DRC issues with Vias near the power rails, hopefully no sideeffects
thesourcerer8 Apr 12, 2023
2b9bef8
Cleaning up DRC tcl files
thesourcerer8 Apr 12, 2023
853638a
Adding DRC Style support
thesourcerer8 Apr 12, 2023
4a4ce06
Adding via cost displaying
thesourcerer8 Apr 12, 2023
ffe5cc4
Adding ERROR logfile visualisation tool
thesourcerer8 Apr 12, 2023
247c106
Changing default DRC style to full
thesourcerer8 Apr 12, 2023
f28e8d8
Correctly filling in resistances, using vertical poly routing to avoid
thesourcerer8 Apr 12, 2023
b7966fd
Finalizing the buildreport for distribution
thesourcerer8 May 4, 2023
7ded173
Removed errors for unavailable files
thesourcerer8 May 10, 2023
2035468
Switched demoboard from bounding box to abutment
thesourcerer8 May 10, 2023
2efdb6c
Added nowindow to be safe
thesourcerer8 May 10, 2023
171a1f9
Made it work without a X-Server
thesourcerer8 May 10, 2023
ec01dbd
Making it work without a X-Server
thesourcerer8 May 10, 2023
86816cc
Added another output message for easing flow debugging
thesourcerer8 May 10, 2023
ee4b671
Fixed permission
thesourcerer8 May 10, 2023
9266744
Removing the wrong -nowindow option
thesourcerer8 May 10, 2023
bbf1b6b
Better checkmark
thesourcerer8 Jun 23, 2023
9cf352d
Update README.md
thesourcerer8 Jul 24, 2023
f2c5b67
Adding documentation
thesourcerer8 Dec 9, 2023
06d9eef
Merge branch 'master' of github.com:thesourcerer8/StdCellLib
thesourcerer8 Dec 9, 2023
56ac54b
Rename tool
thesourcerer8 Dec 9, 2023
4b31abf
Improved Verilog format for multiple outputs
thesourcerer8 Dec 10, 2023
82d6a32
Added rules for truthtables
thesourcerer8 Dec 10, 2023
3043ca3
Moved to gf180mcuD
thesourcerer8 Dec 10, 2023
825a8f2
Tech file improvements
thesourcerer8 Dec 10, 2023
3638f12
New Caravel configuration for Sky130
thesourcerer8 Dec 10, 2023
f018f83
Improved the cell selection
thesourcerer8 Dec 10, 2023
69b4493
Added warnings for empty truthtables
thesourcerer8 Dec 10, 2023
156cd3a
Updating to newer Tapeout configuration
thesourcerer8 Dec 10, 2023
a42c08a
Adding CharLib 1.0 support
thesourcerer8 Dec 11, 2023
7b47b85
Improving the Liberty functions
thesourcerer8 Dec 11, 2023
cabc0cd
Upgrading support for CharLib 1.0
thesourcerer8 Dec 11, 2023
357e31b
Making it executable
thesourcerer8 Dec 11, 2023
ff40bcd
Fixed the config.json/config.tcl confusion
thesourcerer8 Dec 11, 2023
19fad96
Fixed the commas
thesourcerer8 Dec 11, 2023
447d2c6
Fixed the EXTRA_LEFS
thesourcerer8 Dec 11, 2023
75a99de
Assigned unused IOs
thesourcerer8 Dec 11, 2023
22777d8
We dont need to remove the newlines anymore
thesourcerer8 Dec 11, 2023
0266808
Adding charter target
thesourcerer8 Dec 11, 2023
31f07d5
More die space for the IOs
thesourcerer8 Dec 11, 2023
e049678
More diespace for the IOs
thesourcerer8 Dec 11, 2023
29ad309
Modularized the SPICE PDK definitions
thesourcerer8 Dec 11, 2023
9690b07
Added a welcome message
thesourcerer8 Dec 11, 2023
7365184
Replacing the Tech directory with a symlink
thesourcerer8 Apr 9, 2024
581e90a
Adding symlink, does it work?
thesourcerer8 Apr 9, 2024
64c3585
Tools installation
thesourcerer8 Apr 9, 2024
36ef251
Adding documentation
thesourcerer8 Apr 20, 2024
7e56009
Track variations calculation
thesourcerer8 Apr 21, 2024
7651271
Adding spice file definitions. These are the modified files from
thesourcerer8 Apr 21, 2024
6e15f6d
Fixed DRC rules for via/contact overlap
thesourcerer8 Apr 23, 2024
05ba41b
Adding variants for 3.3V, 5V, 6V, 10V
thesourcerer8 Apr 26, 2024
2a49791
Addingt topological truth table for a Topology vs. Synthesis check
thesourcerer8 Apr 26, 2024
ea85f5d
Generating YAML for single cells
thesourcerer8 Apr 26, 2024
d00bbe7
Environment variables
thesourcerer8 Apr 26, 2024
0466821
Moving the DRC Fixing TCL code to a seperate file
thesourcerer8 May 2, 2024
c4a11c4
Making the Verilog output Python syntax compatible too
thesourcerer8 May 2, 2024
21266d8
Skipping cells without a truthtable
thesourcerer8 May 2, 2024
2e8d125
Switched to parasitic extracted netlist
thesourcerer8 May 2, 2024
afe7f06
Removed warnings for newer magic versions - is it the correct way to …
thesourcerer8 May 2, 2024
6127453
Made it flexible for single cells and whole libraries
thesourcerer8 May 2, 2024
e32efbe
Activating charlib support
thesourcerer8 May 2, 2024
b4e3818
Activating Logging for charlib
thesourcerer8 May 2, 2024
65989ac
Fixed typo
thesourcerer8 May 2, 2024
c5ecdab
Adding usage collection for charlib
thesourcerer8 May 2, 2024
76d1918
Added some documentation
thesourcerer8 May 2, 2024
d8c5282
Use correct type for capacity values
Jul 23, 2025
07a2008
Update .gitlab-ci.yml file
Jul 23, 2025
f0b39f8
Test CI job
Jul 23, 2025
66113bf
Update build task
Jul 23, 2025
9f8c719
Use the correct image
Jul 23, 2025
b991469
Add more build jobs
Jul 23, 2025
9fe92e3
Define BASH as entry point in CI/CD definition
Jul 23, 2025
ca8e6c2
different entrypoint?
Jul 23, 2025
d3782da
Again without -l
Jul 23, 2025
87418f3
Maybe this way?
Jul 23, 2025
79d7ea1
Activate venv
Jul 23, 2025
553bd91
Try another approach
Jul 23, 2025
2f2a725
Remove tab
Jul 23, 2025
41072c7
Update technology from LibrePDK
Jul 23, 2025
9399f45
Set db_unit is 1e-3
Jul 23, 2025
2e1e7f0
Update db unit, so that routing doesn't fail
Jul 23, 2025
2c769ec
Solve issue with metal1
Jul 23, 2025
3328eb6
Solve issue with metal1
Jul 23, 2025
a2ddfed
Disable LS1U for now and store logs
Jul 23, 2025
d8f15e5
Change back some values
Jul 25, 2025
27d787c
CI/CD: Artifacts
Jul 27, 2025
94cc7c6
Hack for making make catalog work
Jul 27, 2025
708ba98
Moving to generic file name for compatibility
Jul 27, 2025
904a3cb
Add SPICE expander
Jul 29, 2025
a6952d3
Adding SPICE models for SKY130
Jul 29, 2025
97f5c10
Updating technology from Volare
Jul 29, 2025
02cae6e
Adding magscale info for Skywater
Jul 29, 2025
9ec470c
Update include path name for file
Jul 29, 2025
987b4e4
Properly handling magscale now
Jul 29, 2025
460e667
Use our tech file everywhere
Jul 29, 2025
a27b3a4
Fix content
Jul 29, 2025
577a960
Make paths for ngspice files generic
Jul 29, 2025
9620740
Fix warning about gate length
Jul 30, 2025
efcc153
Solving build error for SKY130
Jul 30, 2025
5b72624
GF180: Cover all target voltages
Jul 30, 2025
af781ac
fix whitespaces
Jul 30, 2025
323b716
Define PDK name
Jul 30, 2025
0701ec4
Variable target voltages
Jul 30, 2025
ddac91b
Get more debug info from CharLib
Jul 30, 2025
e877cf6
Prepare for more voltages
Jul 30, 2025
e31c8d5
Fix SKY130 characterization
Jul 31, 2025
455efdc
Revert "Fix SKY130 characterization"
Jul 31, 2025
a29067c
Update GF180 technology from volare
Aug 9, 2025
198894f
Adding IHP SG13G2 technology
Aug 22, 2025
787955e
Adding lib targets to Makefile
Aug 22, 2025
c4b6fa5
Updating to most recent SKY130 tech from volare
Aug 22, 2025
d048ae5
Remove more hardcoded stuff
Aug 22, 2025
21e0921
Bug fix: Leading space
Aug 22, 2025
97dd705
Add Python requirements
Aug 22, 2025
eeff9d9
Update LS1U node (still not routing)
Aug 22, 2025
b9489a9
Stage magic layers output
Aug 22, 2025
28f8681
Load the environment file
Aug 23, 2025
b7e36a4
Fixing design rules
Aug 28, 2025
68d9a6b
Remove pyc file
Aug 28, 2025
27ee576
Ignore pycaches
Aug 28, 2025
d8a7a69
Update CI/CD and build targets
Aug 28, 2025
a83b383
IHP: Prepare support for multiple voltages
Aug 28, 2025
a5784bd
Updating some values, trying to fix DRC issues
Sep 15, 2025
af32d4e
Update README
Sep 15, 2025
efe2279
Fixing README
Sep 15, 2025
debbc17
Cleaning up OASIS files
thesourcerer8 Sep 16, 2025
3bb8f9a
Merge branch 'master' of https://gitlab.libresilicon.com/generator-to…
thesourcerer8 Sep 16, 2025
ff13ac0
Adding dlayout target (docker layout)
thesourcerer8 Sep 16, 2025
f8313b7
Re-Enabled correct scaling
thesourcerer8 Sep 16, 2025
9eb00b3
Correcting many DRC rules, still some TODO
thesourcerer8 Sep 16, 2025
101fea4
Making it compatible to sg13g2 cells
thesourcerer8 Sep 17, 2025
83a4089
Adding LibreCell parameter documentation
thesourcerer8 Sep 17, 2025
4c97377
Correcting and disabling DRC rules
thesourcerer8 Sep 17, 2025
7a642ea
Adjusting layer name for poly contact
Sep 17, 2025
0445be7
Merge branch 'master' of https://gitlab.libresilicon.com/generator-to…
thesourcerer8 Sep 17, 2025
a09b32a
Fixed a metal2 spacing violation
thesourcerer8 Sep 17, 2025
fb0f2e6
Avoiding metal2 DRC errors for bigger cells
thesourcerer8 Sep 18, 2025
2ff5171
Adding cell templates
thesourcerer8 Sep 19, 2025
49148a4
10 more nm to get rid of metal2 violations
thesourcerer8 Sep 19, 2025
6a6acc6
Adding more cell samples
thesourcerer8 Sep 19, 2025
fb2d445
Adding enclosure rule back in
Sep 22, 2025
dea7342
Switching to IHP SG13G2
thesourcerer8 Sep 23, 2025
1ab1466
Merge branch 'master' of https://gitlab.libresilicon.com/generator-to…
thesourcerer8 Sep 23, 2025
4a3d14e
Slowing down the updates
thesourcerer8 Sep 23, 2025
4b60f20
Adding dlayoutall and clearing before doing layout
thesourcerer8 Sep 23, 2025
11f1ab6
Remove redundant Make code
Sep 27, 2025
aea7b29
Don't run characterization for now
Sep 27, 2025
c8f9a71
Further splitting characterization steps
Sep 27, 2025
5d04c9e
rebase
Sep 27, 2025
c72de38
rebase
Sep 27, 2025
ab5fb1e
rebase
Sep 27, 2025
485c761
order change so that we can see the cells while they are characterized
thesourcerer8 Oct 3, 2025
a17c7e2
Improved error handling
thesourcerer8 Oct 3, 2025
1229bac
Improved value gathering
thesourcerer8 Oct 3, 2025
34fe0da
Merge branch 'master' of https://github.com/thesourcerer8/StdCellLib
Oct 4, 2025
46c8a14
Trying to add individual bulks
thesourcerer8 Oct 4, 2025
88c2e6d
Merge branch 'master' of https://github.com/thesourcerer8/StdCellLib
Oct 4, 2025
7320945
Adding Driver Logic cell for pad cells
Oct 4, 2025
625086e
No more accidental cleaning of good results
thesourcerer8 Oct 12, 2025
b3fd6f3
Merge branch 'master' of https://gitlab.libresilicon.com/generator-to…
thesourcerer8 Oct 12, 2025
1fba15d
Reducing channel length
Oct 24, 2025
8a689cf
Update pipeline
Oct 24, 2025
d96637b
Flipping minimum gate dimensions
Oct 24, 2025
b4c554a
Adding AOI/OAI support
thesourcerer8 Oct 30, 2025
16cb966
Merge branch 'master' of https://gitlab.libresilicon.com/generator-to…
thesourcerer8 Oct 30, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
StdCellLib*.tgz
*/__pycache__
31 changes: 31 additions & 0 deletions .gitlab-ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
default:
image:
name: leviathanch/libresilicon-tools:latest
entrypoint: [""]

stages:
- build

# Standard Cell Lib Targets:

sky130_lib_3v3:
stage: build
script: . ~/.venv/bin/activate && make sky130_lib_3v3
artifacts:
paths:
- sky130_lib_3v3

gf180_lib_3v3:
stage: build
script: . ~/.venv/bin/activate && make gf180_lib_3v3
artifacts:
paths:
- gf180_lib_3v3

ihp_sg13g2_lib_1v8:
stage: build
script: . ~/.venv/bin/activate && make ihp_sg13g2_lib_1v8
artifacts:
paths:
- ihp_sg13g2_lib_1v8

9 changes: 9 additions & 0 deletions Catalog/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
*.mag
*.cell
*.svg
*.sp
*.pxi
!INV.cell
__pycache__
libresilicon.lib
libresilicon.lef
27 changes: 14 additions & 13 deletions Catalog/AND4.cell
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
.DESCRIPTION "a 4-input AND gate"
.SEE_ALSO "NAND3 - a 3-input Not-AND (or NAND) gate"
.ORDER "Gate Drain Source MOSFET"
A Y vdd pmos
B Y vdd pmos
C Y vdd pmos
D Y vdd pmos
Y Z vdd pmos
A Y 2 nmos
B 2 4 nmos
C 4 6 nmos
D 6 gnd nmos
Y Z gnd nmos
.AUTOGENERATED by Popcorn Tcl Script
.inputs A B C D
.outputs Z
.ORDER "MOSFET Gate Drain Source"
pmos A Y vdd
pmos B Y vdd
pmos C Y vdd
pmos D Y vdd
pmos Y Z vdd
nmos A Y 1
nmos B 1 2
nmos C 2 3
nmos D 3 gnd
nmos Y Z gnd
17 changes: 8 additions & 9 deletions Catalog/AOI21.cell
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
.DESCRIPTION "a 2-1-input AND-OR-Invert gate"
.SEE_ALSO "AOI21 - a 2-1-input AND-OR-Invert gate"
.ORDER "Gate Drain Source MOSFET"
A Y 1 pmos
B 1 vdd pmos
B1 1 vdd pmos
A Y gnd nmos
B Y 2 nmos
B1 2 gnd nmos
.AUTOGENERATED by Popcorn Tcl Script
.inputs A A1
.outputs Y
.ORDER "MOSFET Gate Drain Source"
pmos A Y vdd
pmos A1 Y vdd
nmos A Y 1
nmos A1 1 gnd
20 changes: 11 additions & 9 deletions Catalog/AOI31.cell
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
.DESCRIPTION "a 3-1-input AND-OR-Invert gate"
.SEE_ALSO "AOI31 - a 3-1-input AND-OR-Invert gate"
.ORDER "Gate Drain Source MOSFET"
A Y 1 pmos
B 1 vdd pmos
B1 1 vdd pmos
B2 1 vdd pmos
A Y gnd nmos
B Y 2 nmos
B1 2 3 nmos
B2 3 gnd nmos
.inputs A B B1 B2
.outputs Y
.ORDER "MOSFET Gate Drain Source"
pmos A Y 1
pmos B 1 vdd
pmos B1 1 vdd
pmos B2 1 vdd
nmos A Y gnd
nmos B Y 2
nmos B1 2 3
nmos B2 3 gnd
16 changes: 16 additions & 0 deletions Catalog/ASYNC1.cell
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
.AUTOGENERATED by spice2cell script from ASYNC1.spice
.inputs A B
.outputs C CN
.ORDER "MOSFET Gate Drain Source"
nmos B CN net3
pmos A net4 VDD
pmos B CN net4
pmos A net1 VDD
pmos B net1 VDD
pmos C CN net1
pmos CN C VDD
nmos C CN net2
nmos A net3 GND
nmos B net2 GND
nmos A net2 GND
nmos CN C GND
12 changes: 12 additions & 0 deletions Catalog/ASYNC2.cell
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
.AUTOGENERATED by spice2cell script from ASYNC2.spice
.inputs A B
.outputs C CN
.ORDER "MOSFET Gate Drain Source"
nmos C CN GND
pmos A net1 VDD
pmos B CN net1
pmos CN C VDD
pmos C CN VDD
nmos B CN net2
nmos A net2 GND
nmos CN C GND
16 changes: 16 additions & 0 deletions Catalog/ASYNC3.cell
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
.AUTOGENERATED by spice2cell script from ASYNC3.spice
.inputs A B
.outputs C CN
.ORDER "MOSFET Gate Drain Source"
nmos B CN net2
nmos A net2 GND
nmos A CN net1
nmos CN C GND
nmos B net1 GND
nmos C net2 net1
pmos B CN net3
pmos A net3 VDD
pmos B net4 VDD
pmos A CN net4
pmos CN C VDD
pmos C net4 net3
180 changes: 159 additions & 21 deletions Catalog/GNUmakefile
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,8 @@
#
# ////////////////////////////////////////////////////////////////
#
# Copyright (c) 2018 by chipforge <hsank@nospam.chipforge.org>
# Copyright (c) 2018, 2019 by
# chipforge - <popcorn@nospam.chipforge.org>
# All rights reserved.
#
# This Standard Cell Library is licensed under the Libre Silicon
Expand Down Expand Up @@ -51,11 +52,19 @@ RM ?= rm -f
TAR ?= tar -zh
DATE := $(shell date +%Y%m%d)

# project tools
# project settings

POPCORN ?= ../Tools/tcl/popcorn
CELLS = INV.cell NAND2.cell NAND3.cell AND4.cell NOR2.cell NOR3.cell OR4.cell
LIMIT = 4
CELLS =

# Attention! limit/buffer changes will impact cell catalog

LIMIT ?= 5
BUFFER ?= $(LIMIT) # recommended, but free to reduce
LEVEL ?= $(LIMIT) # hack for fencing expand algorithmen
DESCR ?= '?'

#POPCORN ?= ../Tools/tcl/popcorn
POPCORN ?= ../Tools/popcorn/popcorn -l $(LEVEL) -b $(BUFFER) -D $(DESCR)

# ----------------------------------------------------------------
# DEFAULT TARGETS
Expand All @@ -72,36 +81,165 @@ help:
$(ECHO) " help - print this help screen"
$(ECHO) " clean - clean up all intermediate files"
$(ECHO) ""
$(ECHO) " catalog - compile catalog cells"
$(ECHO) " catalog - compile *all* catalog cells (see list below)"
$(ECHO) " cell CELL=<cell> - compile up to dedicated catalog cell"
$(ECHO) ""
$(ECHO) "-------------------------------------------------------------------"
$(ECHO) " available cells [limit=" $(LIMIT) "+ buffer=" $(BUFFER)"]:"
$(ECHO) "-------------------------------------------------------------------"
$(ECHO) ""
$(ECHO) $(CELLS)
$(ECHO) ""


.PHONY: clean
clean:
# $(RM) *.aux *.idx *.log *.toc *.out
$(RM) $(CELLS)
#$(RM) AND4.cell NAND2.cell NAND3.cell NOR2.cell NOR3.cell OR4.cell
$(RM) *.usage *.mag *.svg *.ext *.res.ext *.spice *.nodes *.sp *.sim *.al *.res.lump *.png *.err *.log *.libtemplate *.lib *.truthtable.html *.truthtable.v *.truthtable.txt outputlib/*.gds outputlib/*.lef outputlib/*.mag debuglib/* *.running *.mag.drc *.drc *.predrc *.done *.lef *_debug.oas *_debug.gds *.drc.tcl outputlib/*.oas

# ----------------------------------------------------------------
# DOCUMENTATION TARGETS
# CELL TARGETS
# ----------------------------------------------------------------

# include makefile with highest number of (allowed) stacked transistors

ifeq ($(LIMIT),2)
include stacked2_cells.mk
else
ifeq ($(LIMIT),3)
include stacked3_cells.mk
else
ifeq ($(LIMIT),4)
include stacked4_cells.mk
else
ifeq ($(LIMIT),5)
include stacked5_cells.mk
endif
endif
endif
endif

.PHONY: catalog
catalog: $(CELLS)
catalog: $(CELLS)

.PHONY: layout
#layout: libresilicon.sp libresilicon.lef libresilicon.lib demoboard.mag doc/StdCellLib.pdf demoboard.svg
layout: libresilicon.sp libresilicon.lef demoboard.mag doc/StdCellLib.pdf demoboard.svg

AND4.cell: NAND3.cell
$(POPCORN) -l $(LIMIT) -n nand -c $@ -b $(LIMIT) $<
libresilicon.sp: *.cell ../Tech/librecell_tech.py ../Tools/perl/cell2spice.pl ../Tools/perl/librecells.pl ../Tech/nmos.sp
echo "Generating the cells $(CELLS)"
../Tools/perl/cell2spice.pl
../Tools/perl/librecells.pl

NAND2.cell: INV.cell
$(POPCORN) -l $(LIMIT) -n nand -c $@ $<
demoboard.mag: *.cell libresilicon.sp
perl ../Tools/perl/demoboard.pl >demoboard.mag

NAND3.cell: NAND2.cell
$(POPCORN) -l $(LIMIT) -n nand -c $@ $<
.PHONY: buildreport
buildreport:
bash ../Tools/reporter.sh

NOR2.cell: INV.cell
$(POPCORN) -l $(LIMIT) -n nor -c $@ $<
libresilicon.lef: *.cell libresilicon.sp
../Tools/perl/lefgen.pl outputlib/*.lef >libresilicon.lef

NOR3.cell: NOR2.cell
$(POPCORN) -l $(LIMIT) -n nor -c $@ $<
%.lib: %.sp
../Tools/perl/librecells_charlib.pl $< $@

OR4.cell: NOR3.cell
$(POPCORN) -l $(LIMIT) -n nor -b $(LIMIT) -c $@ $<
#libresilicon.lib: *.lib
# ../Tools/perl/libgen.pl >libresilicon.libtemplate
# rm -f libresilicon.lib
# libertymerge -b libresilicon.libtemplate -o libresilicon.lib -u *.lib


.PHONY: qflow
qflow: libresilicon.lef libresilicon.lib
sudo mkdir -p /usr/local/share/qflow/tech/ls050
sudo cp libresilicon.lef /usr/local/share/qflow/tech/ls050/ls050_stdcells.lef
sudo cp libresilicon.lib /usr/local/share/qflow/tech/ls050/ls05_stdcells.lib

#AND4.cell: NAND3.cell
# $(POPCORN) -l $(LIMIT) -n nand -c $@ -b $(LIMIT) $<
#
#NAND2.cell: INV.cell
# $(POPCORN) -l $(LIMIT) -n nand -c $@ $<
#
#NAND3.cell: NAND2.cell
# $(POPCORN) -l $(LIMIT) -n nand -c $@ $<
#
#AOI21.cell: INV.cell
# $(POPCORN) -l $(LIMIT) -n aoi -c $@ $<
#
#OAI21.cell: INV.cell
# $(POPCORN) -l $(LIMIT) -n oai -c $@ $<
#
#NOR2.cell: INV.cell
# $(POPCORN) -l $(LIMIT) -n nor -c $@ $<
#
#NOR3.cell: NOR2.cell
# $(POPCORN) -l $(LIMIT) -n nor -c $@ $<
#
#OR4.cell: NOR3.cell
# $(POPCORN) -l $(LIMIT) -n nor -c $@ -b $(LIMIT) $<

doc/StdCellLib.pdf: *.cell libresilicon.sp
# doc/docu.sh

.PHONY: importQflow
importQflow:
../Tools/perl/spice2cell.pl /usr/local/share/qflow/tech/gscl45nm/gscl45nm.sp
../Tools/perl/spice2cell.pl /usr/local/share/qflow/tech/osu018/osu018_stdcells.sp
../Tools/perl/spice2cell.pl /usr/local/share/qflow/tech/osu035/osu035_stdcells.sp
../Tools/perl/spice2cell.pl /usr/local/share/qflow/tech/osu050/osu050_stdcells.sp
../Tools/perl/spice2cell.pl /usr/share/qflow/tech/osu018/osu018_stdcells.sp
../Tools/perl/spice2cell.pl /usr/share/qflow/tech/osu035/osu035_stdcells.sp
../Tools/perl/spice2cell.pl /usr/share/qflow/tech/osu050/osu050_stdcells.sp

mags=$(wildcard *.mag)
svgs=$(mags:.mag=.svg)

.PHONY: svg
svg: $(svgs)

test:
echo For debugging run "export PySpiceLogLevel=DEBUG" before make
lctime --debug --liberty libresilicon.lib \
--include ../Tech/libresilicon.m \
--spice INV.spice \
--cell INV \
--output INV.lib
libertyviz -l INV.lib --cell INV --pin Y --related-pin A --table cell_rise
libertymerge -b libresilicon.lib -o output_liberty.lib -u INV.lib AND2X1.lib

test2:
/usr/local/bin/lctime --debug --liberty ~/FreePDK45/osu_soc/lib/files/gscl45nm.lib \
--include ~/FreePDK45/osu_soc/lib/files/gpdk45nm.m \
--spice ~/FreePDK45/osu_soc/lib/source/netlists/AND2X1.pex.netlist \
--cell AND2X1 \
--output /tmp/and2x1.lib
libertyviz -l /tmp/and2x1.lib --cell AND2X1 --pin Y --related-pin A --table cell_rise &
libertyviz -l /tmp/and2x1.lib --cell AND2X1 --pin Y --related-pin B --table rise_transition &
libertyviz -l /tmp/and2x1.lib --cell AND2X1 --pin Y --related-pin A --table cell_fall &
libertyviz -l /tmp/and2x1.lib --cell AND2X1 --pin Y --related-pin B --table fall_transition &


%.svg : %.mag
perl ../Tools/perl/mag2svg.pl $@

%.truthtable.v : %.cell
perl ../Tools/perl/truthtable.pl --format=verilog $^ >$@

%.truthtable.txt : %.cell
perl ../Tools/perl/truthtable.pl --format=text $^ >$@

%.truthtable.html : %.cell
perl ../Tools/perl/truthtable.pl --format=html $^ >$@

.PHONY: charter
charter:
perl ../Tools/perl/charter2caravel.pl


.PHONY: cell
cell: $(CELL)

INV: INV.cell
Loading