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

Substrate 2.1 #449

Merged
merged 41 commits into from
Jan 21, 2025
Merged

Substrate 2.1 #449

merged 41 commits into from
Jan 21, 2025

Conversation

rohanku
Copy link
Contributor

@rohanku rohanku commented Nov 22, 2024

No description provided.

rahulk29 and others added 25 commits November 21, 2024 16:42
* Clean up website

* Fix CI issues

* Fix link
* feat(docs): use latest logo

* Update logo illlustrator file
…451)

* feat(transform): make transformations use integers instead of floats

Transformations now only encode Manhattan transformations
and internally store a transformation matrix with integer (i8)
entries, as opposed to f64 entries.

* remove approx from cargo toml
* feat(transform): default to Manhattan transformations

Transformations now refer to Manhattan transformations;
non-Manhattan transformations are currently unsupported.
Remove transformed views, since the Manhattan transformed view of
any type is itself.

* fix(codegen): codegen supports TransformRef and TranslateRef

* fix(layout): remove TransformedCell

* fix(todos): remove comment about lazy evaluation

* fix(transform): fix bug in orientation calculation

* add TODO
* initial layir api

* initial layir implementation and gds conversion

* format cargo.toml

* add gds conversion test
* feat(schematic): substantially change schematic API to reuse bundles and decrease block complexity

* substrate compiles

* fix IO codegen

* Get basic test compiling

* fix some warnings

* hardware types somewhat working

* hardware types working as intended

* test connecting terminals to nodes

* finalize API

* start cleaning up names/typedefs

* get tracing working for tests

* fix lint errors

* Add utility for converting schemas

* fix warnings and spice/spectre compiler errors

* fix minor issues

* undo atoll changes

* clean up code
* rename bundle traits/kinds

* make mior fixes

* additional cleanup
* feat(simulation): automatically generate saved data

* basic codegen working as intended

* push simplified schematic traits

* add dataview api and clean up codegen

* fix lint errors and tests

* Remove FromSaved macro
* wip: integrate substrate with LayIR

* fix compilation errors, gds import/export

* feat(simulation): automatically generate saved data

* basic codegen working as intended

* push simplified schematic traits

* wip

* add dataview api and clean up codegen

* fix lint errors and tests

* Remove FromSaved macro

* wip

* simplified layout api

* comment out layout codegen

---------

Co-authored-by: Rohan Kumar <[email protected]>
* feat(layout): import LayIR cells into Substrate

* import raw cell ports, show example of hard macro binding

* remove layout macro
* Modify traits to allow simplified codegen

* finish basic codegen
* compiles when all ports are in the same direction

* feat(views): view API for improved codegen

* fix lint and extra code

* extract codegen utilities to separate file

* remove unecessary trait derives

* add back derives

* remove one more derive

* move NestedView back to schematic module

* finalize codegen api

* fix lint

* Fix remaining issues with codegen and apply view API to nested data

* clean up code
* Add pegasus plugin

* wip pegasus

* fix netlists and lvs results

* fix pin labels

* try fixing pins

* fix LVS issues

* add first cut at quantus plugin

* PEX working

* work on pex poc

* pex sim example compiling

* add test for simulation of pex wrapper

* try real nested node example

* propagate pins

* fix power connections

* fix lvs errors

* PEX seems to be working

* delete changelog and revert unecessary changes

* fix view DRC/LVS and remove unecessary example

* remove unecessary GDS

* fix file name

* remove unecessary constants
* magic pex

* pex test

* fix test

* fix test

* update pex tcl

* simplify extraction

* add extract test

* update extract test

* copy li1 pins

* add nwell to taps

* fix lints
* netgen lvs

* add examples

* add tests

* fix templates

* update test

* update manifests

---------

Co-authored-by: Rahul Kumar <[email protected]>
* feat(pex): magic-netgen pex mapping, reorganize pex tests

* add ngspice test

* fix schema

* use correct gds

* use correct units

* update pins in gds

* emit xf files correctly in netgen

* split out colons

* change spice netlist to not include X prefix

* add ngspice includes

* use layout cell name

* debugging

* connect all colbuf nodes

* fix port order difference

* avoid converting spice to scir

* parse quantus netlist for port names, switch quantus to spice output

* fix lint

* use schematic cell name

* move colbuf gds to colbuf crate

* re add EXAMPLES_PATH

---------

Co-authored-by: Rahul Kumar <[email protected]>
* reorganize tests and improve snippets

* substrate tests/doctests passing

* everything but tuple structs work

* everything but enums working

* IO derive macros work for enums, reinstate old tests directory
…ints (#471)

* work on fixing lint errors

* work on fixing lint errors

* fix lints, implement save for spectre ac sim types

* fix broken docs link

* fix broken test data path

* fix broken paths

* fix broken import for TestbenchIo

---------

Co-authored-by: Rahul Kumar <[email protected]>
* wip improved website

* work on versioning

* try swizzling version dropdown

* swizzle version link

* push latest docs

* revert to the original workspace config

* use substrate workspace plugin (#472)

* feat(release): use cargo workspace plugin (#473)

* use substrate workspace plugin

* fix examples

* Add examples to release please

* fix versioning

* try removing comments

* test release pleaes features

* complete doc changes for release vs latest

* fix examples paths

* cleanup pr

* try creating workflows for deploying docs

* test actions

* get workflow registered

* try again to get workflow registered

* remove extraneous dependencies

* remove docs usage

* temporarily use main environment

* try again

* test

* fix deploy docs action

* add back checkoutv3

* finalize docs deploy strategy

* fix copy

* try removing substrate api examples until it compiles

* try rerunning CI-main

* undo

* extract deployment to bash scripts

* make scripts executable

* fix variable usage

* fix argument parsing

* fix globs

* support branch docs

* fix deploy script

* fix deploy script

* migrate to docusaurus 3.7 and fix deploy script

* modify site-config.json in deploy

* fix heredoc usage

* test api doc deploy

* remove push CI

* fix api deploy script

* clean up workflow yaml

* remove iarna toml
rahulk29 and others added 4 commits January 14, 2025 09:54
* feat(simulation): implement save for nested instances

* wip

* wip

* implement save for nested node/terminal bundles

* update test

* fix generic IO

* fix lints

---------

Co-authored-by: Rohan Kumar <[email protected]>
* fix sky130 ngspice and spectre tests

* in progress test fixes

* refactor derive NestedData

* impl save for nested data

* preserve where clauses in save impl

* reorganize codegen

* fix lints

* add doc comments

* derive generic has nested view

---------

Co-authored-by: Rohan Kumar <[email protected]>
* implement mos tile layout generator

* fix derive translate/transform ref

* add nmos and pmos tile layouts
* fix sky130 ngspice and spectre tests

* in progress test fixes

* refactor derive NestedData

* impl save for nested data

* wip fixed docs

* preserve where clauses in save impl

* reorganize codegen

* fix lints

* add doc comments

* fix all docs and add detailed dev docs

* add todo

* clean up PR

---------

Co-authored-by: Rahul Kumar <[email protected]>
rahulk29 and others added 12 commits January 17, 2025 12:03
* feat(tutorial): implement sky130 inverter layout tutorial

* initial inverter layout

* add labels to ports when exporting gds
* run lvs on sky130 inverter

* make tiles magic compatible
* remove test crate and start fixing remaining test compiler errors

* finish compiling tests, move data to top level

* fix lint errors

* test examples only on non-release PRs

* fix check-docs path

* fix work dir

* fix errors/warnings

* fix doc link

* reorganize data that is not shared between tests

* reorganize data that is not shared between tests

* fix remaining lint errors

* move example lib to correct location

* fix codegen doctests

* Add separate open source and Cadence inverter tutorial docs

* fix cargo hack invocation

* fix broken link
* feat(docs): split inverter tutorial into separate open and cadence tutorials

* fix(sky130): split sky130 inverter docs and fix schemas
…s) (#484)

* feat(tutorial): open source compatible PEX testbench for inverter tutorial

* remove Ab enum

* ngspice tutorial

* fix sky130 inverter import paths

* fix imports

* encode gds units in to gds function

* write layout

* fix lints

* spectre tb

* use correct ctx

* make snippet names match

* run lvs using cds tools for sky130 inverter

* fix compile errors

* make builder fields default

* fix units for sky130 cds pdk

* place labels on pin and label

* fix lints

* fix comments
)

* feat(tutorial): run DRC on inverter layout for SKY130 CDS tutorial

* fix drc error

* add run lvs comment
* fix magic drc

* typo

* use stdin = null, improve test assertion
* feat(tutorial): run Magic DRC for open-source sky130 inverter tutorial

* fix lints

* magic ensure drc complete

* fix licon.8 drc error
* continue cleaning up inverter tutorial

* finish inverter tutorial

* finish inverter tutorial and fix ngspice print statements

* fix tests

* use bwrc path

* change step names

* rename sky130 pdk crate
@rohanku rohanku merged commit 876af6f into main Jan 21, 2025
0 of 4 checks passed
@rohanku rohanku deleted the v2p1-main branch January 21, 2025 05:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants