Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

LDO Pull Request #4

Open
wants to merge 108 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
108 commits
Select commit Hold shift + click to select a range
1784525
Added all LDO content
akiles-esta-usado Nov 9, 2023
eb0abfc
refactored xschem file structure
akiles-esta-usado Nov 9, 2023
cd5268d
Included pnp bjt in estimation gds
akiles-esta-usado Nov 11, 2023
3a6fc0e
Renamed pmic to ldo-top. Fixed bandgap-test
akiles-esta-usado Nov 11, 2023
d832471
Readme updated
akiles-esta-usado Nov 11, 2023
d2e5508
Relative paths on ldo-top and ldo tests
akiles-esta-usado Nov 12, 2023
a3ac745
Added PDK on devcontainer file
akiles-esta-usado Nov 16, 2023
9b6535e
added current sources and new pass transistor size
lild4d4 Nov 30, 2023
3906180
Added common centroid resistor. Need evaluation
akiles-esta-usado Dec 4, 2023
cc90133
primeros scripts de automatizacion
lild4d4 Dec 9, 2023
5980a20
layout de ota version 2
lild4d4 Dec 12, 2023
b5bcb0a
better performance
lild4d4 Dec 16, 2023
bde7524
Some python scripts that simplifies setup of design
akiles-esta-usado Dec 19, 2023
3d102e4
Merged with main
akiles-esta-usado Dec 19, 2023
2f5f437
Updated resistor finger script
akiles-esta-usado Dec 20, 2023
ab061b7
Moved placement scripts from klayout/ to klayout/scripts
akiles-esta-usado Dec 21, 2023
58f276a
Added xschemrc, all symbols should not be relative. Added Makefile an…
akiles-esta-usado Dec 21, 2023
87276dd
Added resistor gds and sch for lvs
akiles-esta-usado Dec 22, 2023
6bfd01a
Makefile supports lvs, working on drc. Added resistor_core
akiles-esta-usado Dec 24, 2023
f94acde
xscschem Makefile can perform lvs, drc and drc-precheck
akiles-esta-usado Dec 24, 2023
0dcbb8f
gmid script
lild4d4 Dec 24, 2023
c4eedb2
Merge branch 'daniel-dev' of https://github.com/akiles-esta-usado/DC2…
lild4d4 Dec 24, 2023
aefa3b5
primeros scripts de automatizacion
lild4d4 Dec 9, 2023
63664ac
layout de ota version 2
lild4d4 Dec 12, 2023
cce5ea0
better performance
lild4d4 Dec 16, 2023
92c0cc1
gmid script
lild4d4 Dec 24, 2023
8290dfa
Some python scripts that simplifies setup of design
akiles-esta-usado Dec 19, 2023
67e7688
Merge branch 'daniel-dev' of https://github.com/akiles-esta-usado/DC2…
lild4d4 Dec 24, 2023
1f5a096
Makefile shows drc and lvs results on klayout
akiles-esta-usado Dec 24, 2023
695f4bb
new ldo ota
lild4d4 Dec 26, 2023
694aadb
Adding lvs and drc reports to control version. added klayout-eval rule
akiles-esta-usado Dec 27, 2023
d365fab
Changed .netlist into .spice in makefile
akiles-esta-usado Dec 27, 2023
50546ff
Base script for waffle transistor
akiles-esta-usado Dec 30, 2023
ef2a63e
Waffle script accepts multiplicity as parameter
akiles-esta-usado Dec 30, 2023
2d6b1ec
Klayout LVS -> Magic LVS
akiles-esta-usado Dec 30, 2023
35aed62
Magic LVS -> Klayout LVS, resistor with common centroid layout match
akiles-esta-usado Dec 30, 2023
0c72ec6
Added waffle scripts, not ready
akiles-esta-usado Jan 2, 2024
102bd2f
Make waffle script is working without corners. port_gds has a bug on …
akiles-esta-usado Jan 3, 2024
d47f7d3
Waffle become part of KlayoutUtilities. Porting scripts almost ready
akiles-esta-usado Jan 6, 2024
f653bdd
waffle drain in frame port ready
akiles-esta-usado Jan 8, 2024
7713d8c
in ported waffle, there's merged drain in and source in port classes
akiles-esta-usado Jan 9, 2024
b8994ac
Now there are merged
akiles-esta-usado Jan 9, 2024
04b6b2c
Ported source frame lt
akiles-esta-usado Jan 9, 2024
2a730be
Ready *_in, *_lt, source_rb.
akiles-esta-usado Jan 10, 2024
cf425c9
Waffle generator and porting script highly modified. Some frames are …
akiles-esta-usado Jan 11, 2024
1647375
Internal waffle structure passes DRC
akiles-esta-usado Jan 12, 2024
8c07b65
Core draw is now ready. Guard ring without vias
akiles-esta-usado Jan 12, 2024
f945c90
Waffle with external guardring. Needs evaluation
akiles-esta-usado Jan 12, 2024
d5b396d
Fixed waffle transistor interpretation of n
akiles-esta-usado Jan 13, 2024
98401e4
Fixed internal guard ring vias
akiles-esta-usado Jan 13, 2024
7c0b571
New structure of makefile
akiles-esta-usado Jan 14, 2024
a85f918
Fixed basic structure of all new makefiles. Added help mechanism
akiles-esta-usado Jan 15, 2024
f7be1c0
Klayout logs fixed. Use of multiple threads fixed
akiles-esta-usado Jan 15, 2024
7355e93
Fixed all makefiles, resistor example passes lvs
akiles-esta-usado Jan 16, 2024
e3956f2
Cleaned scripts, added frame templates, upgraded waffle
akiles-esta-usado Jan 18, 2024
5c74add
Pmos evaluation tests renamed
akiles-esta-usado Jan 18, 2024
4d82240
Merge branch 'daniel-dev'
akiles-esta-usado Jan 18, 2024
60877f9
Removed unused tests
akiles-esta-usado Jan 18, 2024
f37da36
Integrated latest ldo design
akiles-esta-usado Jan 18, 2024
29913d1
Added rule create-module, added all makefile help entries
akiles-esta-usado Jan 19, 2024
8d3fa62
Fix using correct ldo design
akiles-esta-usado Jan 25, 2024
7bcfb50
Added 4 vias on resistor connections, waffle_1984 is not using metaltop
akiles-esta-usado Jan 25, 2024
f84e879
First usable version of padring generation script works
akiles-esta-usado Jan 26, 2024
de6dc84
Updated padring. More configurable
akiles-esta-usado Jan 27, 2024
c2a7dd0
Considering gap on padring, script is usable
akiles-esta-usado Jan 27, 2024
7e949a0
DRC and LVS reports stored on specific directory. Magic routines insi…
akiles-esta-usado Feb 3, 2024
edff89c
Added licences to important scripts. Padring creation script supports…
akiles-esta-usado Feb 4, 2024
c68d0ee
Trying to add support for EBC, but don't work. Updated inv_sample exa…
akiles-esta-usado Feb 5, 2024
cf05e92
Restructuration of the project structure. Waffle layout can be extracted
akiles-esta-usado Feb 29, 2024
347d8da
Added some bracolin pad tests
akiles-esta-usado Mar 2, 2024
86624b3
Fixed padring analog_leakage test. added lots of extracted netlists
akiles-esta-usado Mar 2, 2024
e60f1c5
Added openfasoc padring tests
akiles-esta-usado Mar 2, 2024
f84299b
Restructured padframe test structure
akiles-esta-usado Mar 5, 2024
db4be2b
Updated padring yaml, added example switching_in_c
akiles-esta-usado Mar 6, 2024
db3071d
updated padring ltc2
akiles-esta-usado Mar 6, 2024
dd2b07a
Stored extracted netlist with and without parasitics. Smaller modific…
akiles-esta-usado Mar 9, 2024
920cf8c
Commit updated ic-makefile commit
akiles-esta-usado Mar 10, 2024
65b4fab
Updated docker runner scripts
akiles-esta-usado Mar 23, 2024
791e3a3
Updated LDO design
akiles-esta-usado Mar 24, 2024
b5aa721
Integrated some changes on LDO design, more on stash
akiles-esta-usado Mar 27, 2024
e94b2cf
Updated LDO design. Cleaned LDO from unused designs. Updated klayoutr…
akiles-esta-usado Mar 30, 2024
8f959b6
Updated LDO. Added clean layout for ota transistors. Added cace into …
akiles-esta-usado Apr 1, 2024
c7222b6
Modified ota to use ppolyf_u_1k instead to 2k. Added ota_res layout
akiles-esta-usado Apr 1, 2024
16f732b
ota layout is horrific but lvs clean
akiles-esta-usado Apr 1, 2024
9b24e93
Updated ic-makefile commit. Added clean and pex layout netlist into s…
akiles-esta-usado Apr 1, 2024
7042e97
Updated PADRING LTC2_V2.
akiles-esta-usado Apr 4, 2024
34909c2
Updated ic-makefile. Updated floorplan LTC2_V2
akiles-esta-usado Apr 8, 2024
94bba53
OTA passes klayout lvs
akiles-esta-usado Apr 20, 2024
29d36cf
OTA has sustrate recognition problems, but passes LVS.
akiles-esta-usado Apr 20, 2024
2fa3f9f
Added LDO layout, still not drc and lvs clean
akiles-esta-usado Apr 25, 2024
42dbb06
Added nmos guard ring example
akiles-esta-usado Apr 25, 2024
14bc5c2
Updated OTA layout, still with extraction problems
akiles-esta-usado Apr 25, 2024
4af51ac
LDO Passes Klayout LVS but with problems on magic extraction. Added s…
akiles-esta-usado Apr 30, 2024
f915b86
Ldo tests with reference to pads and extracted netlists. Updated ic-m…
akiles-esta-usado May 2, 2024
d768740
Added TOP_CHILE_LDO and TOP_CHILE_OPEN_LDO. Updated LTC2-V3 padring. …
akiles-esta-usado May 8, 2024
3295d4e
Updated ldo and open_ldo layouts. Makefile reflects state of design
akiles-esta-usado May 10, 2024
240550b
Updated testbenches for ldo and open_ldo. Work in progress.
akiles-esta-usado May 10, 2024
8f2015f
Demostrated fundamental differences between cdl and spice
akiles-esta-usado May 10, 2024
78a2d50
Added TOP_CHILE_OPEN_LDO testbench, updated ic-makefile, added MORE t…
akiles-esta-usado May 13, 2024
88c049b
Updated TOP_CHILE_OPEN_LDO simulations adding more netlists pex and c…
akiles-esta-usado May 14, 2024
fcebb47
Fixed openloop tests, adding spices to relevant modules. Makefile wi…
akiles-esta-usado May 14, 2024
11b7ad6
Updated layout to fix IO.1a2. Updated pex and clean extractions
akiles-esta-usado May 15, 2024
b73fffc
Added filler script. Updated ic-makefile, changes on ldo tests
akiles-esta-usado Jun 3, 2024
46e1f34
Updated klayout-filler script
akiles-esta-usado Jun 5, 2024
2b6689e
Updated klayout filler script
akiles-esta-usado Jun 6, 2024
0bc456e
Fixed some comments on filler script
akiles-esta-usado Jun 6, 2024
fe875ad
Updated filler. It solves metal density errors on Calibre DRC
akiles-esta-usado Jun 6, 2024
f6358b6
Filler integrates comp separation drc rules, removed unused functions…
akiles-esta-usado Jun 6, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
48 changes: 48 additions & 0 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
// More info: https://containers.dev/implementors/json_reference/
{
"name": "chipathon-devcontainer",
"image": "akilesalreadytaken/chipathon-tools",
"features": {},
"customizations": {
"vscode": {
"extensions": [
"ms-python.python",
"ms-python.vscode-pylance",
"ms-toolsai.jupyter",
"ms-python.black-formatter",
"mutantdino.resourcemonitor"
],
"settings": {
"[python]": {
"editor.defaultFormatter": "ms-python.black-formatter",
"editor.formatOnSave": true
},
"resmon.show.battery": false,
"resmon.show.disk": true,
"resmon.show.cpufreq": false,
"resmon.show.cputemp": false,
"resmon.updatefrequencyms": 5000
}
}
},
"mounts": [
{
"source": "\\\\wsl.localhost\\${localEnv:WSL_DISTRO}\\tmp\\.X11-unix",
"target": "/tmp/.X11-unix",
"type": "bind"
},
{
"source": "\\\\wsl.localhost\\${localEnv:WSL_DISTRO}\\tmp\\wslg",
"target": "/mnt/wslg",
"type": "bind"
}
],
"containerEnv": {
"DISPLAY": ":0",
"XDG_RUNTIME_DIR": "/mnt/wslg/runtime-dir",
"WAYLAND_DISPLAY": "wayland-0",
"PULSE_SERVER": "unix:/mnt/wslg/PulseServer",
"PDK": "gf180mcuD"
},
"initializeCommand": "powershell -noprofile -nologo -ExecutionPolicy Bypass .devcontainer\\set-wsl-distro.ps1"
}
16 changes: 16 additions & 0 deletions .devcontainer/set-wsl-distro.ps1
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@

$WSL_DISTRO='Ubuntu'

function get-ubuntu-distro() {
# Identify if distro has (Predeterminado) or something like that
Invoke-Expression "wsl --list" | ForEach-Object {
if ($_ -match '\)' ) {
$WSL_DISTRO=$_.split('(')[0].replace(" ","")
}
}
}

get-ubuntu-distro

[Environment]::SetEnvironmentVariable("WSL_DISTRO", "$WSL_DISTRO", "User")
#[Environment]::SetEnvironmentVariable("WSL_DISTRO", "$WSL_DISTRO", "Machine")
4 changes: 4 additions & 0 deletions .devcontainer/setup.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
#!/bin/bash

klayout -y klive
git config --global --add safe.directory /workspaces/
14 changes: 14 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# Auto detect text files and perform LF normalization
* text=auto
.png filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.sh text eol=lf
*.py text eol=lf
*.bat text eol=crlf
desktopinit text eol=lf
klayout text eol=lf
.bashrc text eol=lf
setwallpaper text eol=lf
startserver text eol=lf
*.desktop text eol=lf
xschemrc text eol=lf
175 changes: 175 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,175 @@
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class
tests/test_components.gds/gds_diff
tests/test_components.gds/gds_run

# C extensions
*.so
*.fsp

# Distribution / packaging
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
share/python-wheels/
*.egg-info/
.installed.cfg
*.egg
MANIFEST

# PyInstaller
# Usually these files are written by a python script from a template
# before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec

# Installer logs
pip-log.txt
pip-delete-this-directory.txt

# Unit test / coverage reports
htmlcov/
.tox/
.nox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
*.py,cover
.hypothesis/
.pytest_cache/
cover/

# Translations
*.mo
*.pot

# Django stuff:
*.log
local_settings.py
db.sqlite3
db.sqlite3-journal

# Flask stuff:
instance/
.webassets-cache

# Scrapy stuff:
.scrapy

# Sphinx documentation
docs/_build/

# PyBuilder
.pybuilder/
target/

# Jupyter Notebook
.ipynb_checkpoints
**/*.ipynb_checkpoints/

# IPython
profile_default/
ipython_config.py

# pyenv
# For a library or package, you might want to ignore these files since the code is
# intended to run in multiple environments; otherwise, check them in:
# .python-version

# pipenv
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
# However, in case of collaboration, if having platform-specific dependencies or dependencies
# having no cross-platform support, pipenv may install dependencies that don't work, or not
# install all needed dependencies.
#Pipfile.lock

# PEP 582; used by e.g. github.com/David-OConnor/pyflow
__pypackages__/

# Celery stuff
celerybeat-schedule
celerybeat.pid

# SageMath parsed files
*.sage.py

# Environments
.env
.venv
env/
venv/
ENV/
env.bak/
venv.bak/

# Spyder project settings
.spyderproject
.spyproject

# Rope project settings
.ropeproject

# mkdocs documentation
/site

# mypy
.mypy_cache/
.dmypy.json
dmypy.json

# Pyre type checker
.pyre/

# pytype static type analyzer
.pytype/

# Cython debug symbols
cython_debug/

*.DS_Store
.DS_Store
*Thumbs.db

# Project specifics
**/outputs/*.gds

# **/*.lyrdb
# **/*.lvsdb # Maybe this files can be useful
**/comp.out
**/*.ext
**/*.nodes
**/*.sim
**/*.drc
**/*.raw
**/drc_run_*/

# Eventually, make a script that shows if this spices are really different.
#**/*.spice
**/output

**/.vscode

**/gf180mcu_fd_*/*
**/spice/clean/*
**/spice/pex/*
**/cace/*.spice
**/cace/*.sym
**/netlist/*
**/PROBLEMS_SLACK/*
**/meetings
**/drc.out
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[submodule "LDO/scripts/ic-makefile"]
path = LDO/scripts/ic-makefile
url = https://github.com/akiles-esta-usado/ic-makefile.git
Binary file added LDO/Characteristics.xlsx
Binary file not shown.
30 changes: 30 additions & 0 deletions LDO/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
# LDO

[Proposal link](https://github.com/sscs-ose/sscs-ose-chipathon.github.io/blob/main/initial_notebooks_2023/accepted_notebooks/labbench-on-chip-pmic/labbench-on-chip-pmic.ipynb)

The scope of the LDO changed:

- The DCDC is not going to be implemented.

## How to use Development Environment

The development environment is based on docker and can be used in two ways:

### 1. Using a Docker Container

A custom container was developed to resolve all dependencies that xschem, klayout and the PDK have.
The script `run.ps1` executes the container on Windows.

To run it on linux, execute the following:

~~~bash
$ docker run -it -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix --name ldo-environ git.1159.cl/mario1159/chipathon-tools
~~~


### 2. Using DevContainers

Devcontainer is an extension of Visual Studio Code that links the editor with the container. I's useful when developing
code in pythona or jupyter notebooks.

This solution currently supports Windows environments. On linux the line that invokes a powershell script should be removed.
Loading