.gitignore
AGENTS.md
CLAUDE.md
CONTRIBUTING.md
MANIFEST.in
README.md
REUSE.toml
pyproject.toml
pytest.ini
setup.py
LICENSES/Apache-2.0.txt
LICENSES/CC0-1.0.txt
LICENSES/MIT.txt
LICENSES/OFL-1.1.txt
benchmarks/__init__.py
benchmarks/checksum.py
benchmarks/equivalence.py
benchmarks/html.py
benchmarks/memory.py
benchmarks/prng.py
benchmarks/report.py
benchmarks/runner.py
benchmarks/schema.py
benchmarks/workloads/__init__.py
benchmarks/workloads/layout_flatten.py
benchmarks/workloads/micro.py
benchmarks/workloads/render_scan.py
benchmarks/workloads/sim_hierarchy.py
benchmarks/workloads/snapshot_chain.py
benchmarks/workloads/symbol_build.py
docs/.gitignore
docs/Makefile
docs/conf.py
docs/index.rst
docs/make.bat
docs/ordec_logo.svg
docs/readme.rst
docs/related_projects.rst
docs/requirements.txt
docs/screenshot_demo.png
docs/_static/.keep
docs/cell_lib/base.rst
docs/cell_lib/generic_mos.rst
docs/cell_lib/ihp130.rst
docs/cell_lib/index.rst
docs/cell_lib/sky130.rst
docs/dev/containers_and_ci.rst
docs/dev/design_decisions.rst
docs/dev/hub.rst
docs/dev/index.rst
docs/dev/ipython_integration.rst
docs/dev/ordb_benchmark_workloads.rst
docs/dev/ordb_benchmarks.rst
docs/dev/ordb_wire.rst
docs/dev/setup.rst
docs/dev/view_generation.rst
docs/dev/view_generation.svg
docs/dev/webui.rst
docs/guides/editor_support.rst
docs/guides/howto_layout.rst
docs/guides/index.rst
docs/guides/ord_tutorial.py
docs/guides/webui_design_organization.rst
docs/ref/architecture.svg
docs/ref/arrange.rst
docs/ref/cell_and_viewgen.rst
docs/ref/constraints.rst
docs/ref/extlibrary.rst
docs/ref/geoprim.rst
docs/ref/geoprim_D4.svg
docs/ref/geoprim_rect.svg
docs/ref/index.rst
docs/ref/layout.rst
docs/ref/layout_klayout.rst
docs/ref/ord.rst
docs/ref/ordb.rst
docs/ref/ordb_demo.py
docs/ref/pnr.rst
docs/ref/rational.rst
docs/ref/schema.rst
examples/JupyterExample.py
examples/README.md
examples/demo/counter.v
examples/demo/counter_yosys.py
examples/demo/gen_all.py
examples/demo/run_drc.py
examples/demo/top.ord
examples/dev/layout.py
examples/dev/render2.py
src/ordec/__init__.py
src/ordec/__main__.py
src/ordec/extlibrary.py
src/ordec/hub.py
src/ordec/importer.py
src/ordec/jobrunner.py
src/ordec/language.py
src/ordec/lef_in.py
src/ordec/server.py
src/ordec/sphinx_ext.py
src/ordec/version.py
src/ordec.egg-info/PKG-INFO
src/ordec.egg-info/SOURCES.txt
src/ordec.egg-info/dependency_links.txt
src/ordec.egg-info/entry_points.txt
src/ordec.egg-info/requires.txt
src/ordec.egg-info/scm_file_list.json
src/ordec.egg-info/scm_version.json
src/ordec.egg-info/top_level.txt
src/ordec/core/__init__.py
src/ordec/core/arrange.py
src/ordec/core/cell.py
src/ordec/core/constraints.py
src/ordec/core/context.py
src/ordec/core/directory.py
src/ordec/core/genrun.py
src/ordec/core/geoprim.py
src/ordec/core/rational.py
src/ordec/core/simarray.py
src/ordec/core/wire.py
src/ordec/core/ordb/__init__.py
src/ordec/core/ordb/backend.py
src/ordec/core/ordb/backend_cow.py
src/ordec/core/ordb/backend_delta.py
src/ordec/core/ordb/backend_fullcopy.py
src/ordec/core/ordb/backend_pyrsistent.py
src/ordec/core/ordb/base.py
src/ordec/core/ordb/patricia.py
src/ordec/core/schema/__init__.py
src/ordec/core/schema/base.py
src/ordec/core/schema/drc.py
src/ordec/core/schema/layout.py
src/ordec/core/schema/lvs.py
src/ordec/core/schema/report.py
src/ordec/core/schema/schematic.py
src/ordec/core/schema/simhier.py
src/ordec/courses/__init__.py
src/ordec/courses/common.py
src/ordec/courses/amp_competition/__init__.py
src/ordec/courses/amp_competition/challenge.ord
src/ordec/courses/amp_competition/challenge.uistate.json
src/ordec/courses/amp_competition/checks.py
src/ordec/courses/amp_competition/course.json
src/ordec/courses/cmos_circuits/__init__.py
src/ordec/courses/cmos_circuits/checks.py
src/ordec/courses/cmos_circuits/course.json
src/ordec/courses/cmos_circuits/lesson1.ord
src/ordec/courses/cmos_circuits/lesson1.uistate.json
src/ordec/courses/cmos_circuits/lesson10.ord
src/ordec/courses/cmos_circuits/lesson10.uistate.json
src/ordec/courses/cmos_circuits/lesson11.ord
src/ordec/courses/cmos_circuits/lesson11.uistate.json
src/ordec/courses/cmos_circuits/lesson2.ord
src/ordec/courses/cmos_circuits/lesson2.uistate.json
src/ordec/courses/cmos_circuits/lesson3.ord
src/ordec/courses/cmos_circuits/lesson3.uistate.json
src/ordec/courses/cmos_circuits/lesson4.ord
src/ordec/courses/cmos_circuits/lesson4.uistate.json
src/ordec/courses/cmos_circuits/lesson5.ord
src/ordec/courses/cmos_circuits/lesson5.uistate.json
src/ordec/courses/cmos_circuits/lesson6.ord
src/ordec/courses/cmos_circuits/lesson6.uistate.json
src/ordec/courses/cmos_circuits/lesson7.ord
src/ordec/courses/cmos_circuits/lesson7.uistate.json
src/ordec/courses/cmos_circuits/lesson8.ord
src/ordec/courses/cmos_circuits/lesson8.uistate.json
src/ordec/courses/cmos_circuits/lesson9.ord
src/ordec/courses/cmos_circuits/lesson9.uistate.json
src/ordec/courses/getting_started/__init__.py
src/ordec/courses/getting_started/checks.py
src/ordec/courses/getting_started/course.json
src/ordec/courses/getting_started/epilogue.ord
src/ordec/courses/getting_started/epilogue.uistate.json
src/ordec/courses/getting_started/lesson1.ord
src/ordec/courses/getting_started/lesson1.uistate.json
src/ordec/courses/getting_started/lesson10.ord
src/ordec/courses/getting_started/lesson10.uistate.json
src/ordec/courses/getting_started/lesson2.ord
src/ordec/courses/getting_started/lesson2.uistate.json
src/ordec/courses/getting_started/lesson3.ord
src/ordec/courses/getting_started/lesson3.uistate.json
src/ordec/courses/getting_started/lesson4.ord
src/ordec/courses/getting_started/lesson4.uistate.json
src/ordec/courses/getting_started/lesson5.ord
src/ordec/courses/getting_started/lesson5.uistate.json
src/ordec/courses/getting_started/lesson6.ord
src/ordec/courses/getting_started/lesson6.uistate.json
src/ordec/courses/getting_started/lesson7.ord
src/ordec/courses/getting_started/lesson7.uistate.json
src/ordec/courses/getting_started/lesson8.ord
src/ordec/courses/getting_started/lesson8.uistate.json
src/ordec/courses/getting_started/lesson9.ord
src/ordec/courses/getting_started/lesson9.uistate.json
src/ordec/courses/layout_tutorial/__init__.py
src/ordec/courses/layout_tutorial/checks.py
src/ordec/courses/layout_tutorial/course.json
src/ordec/courses/layout_tutorial/epilogue.ord
src/ordec/courses/layout_tutorial/epilogue.uistate.json
src/ordec/courses/layout_tutorial/lesson1.ord
src/ordec/courses/layout_tutorial/lesson1.uistate.json
src/ordec/courses/layout_tutorial/lesson10.ord
src/ordec/courses/layout_tutorial/lesson10.uistate.json
src/ordec/courses/layout_tutorial/lesson11.ord
src/ordec/courses/layout_tutorial/lesson11.uistate.json
src/ordec/courses/layout_tutorial/lesson2.ord
src/ordec/courses/layout_tutorial/lesson2.uistate.json
src/ordec/courses/layout_tutorial/lesson3.ord
src/ordec/courses/layout_tutorial/lesson3.uistate.json
src/ordec/courses/layout_tutorial/lesson4.ord
src/ordec/courses/layout_tutorial/lesson4.uistate.json
src/ordec/courses/layout_tutorial/lesson5.ord
src/ordec/courses/layout_tutorial/lesson5.uistate.json
src/ordec/courses/layout_tutorial/lesson6.ord
src/ordec/courses/layout_tutorial/lesson6.uistate.json
src/ordec/courses/layout_tutorial/lesson7.ord
src/ordec/courses/layout_tutorial/lesson7.uistate.json
src/ordec/courses/layout_tutorial/lesson8.ord
src/ordec/courses/layout_tutorial/lesson8.uistate.json
src/ordec/courses/layout_tutorial/lesson9.ord
src/ordec/courses/layout_tutorial/lesson9.uistate.json
src/ordec/examples/__init__.py
src/ordec/examples/adder_pnr.ord
src/ordec/examples/adder_pnr.uistate.json
src/ordec/examples/amp.ord
src/ordec/examples/amp.uistate.json
src/ordec/examples/blank.ord
src/ordec/examples/blank.uistate.json
src/ordec/examples/currentmirror.ord
src/ordec/examples/currentmirror.uistate.json
src/ordec/examples/diffpair.ord
src/ordec/examples/diffpair.uistate.json
src/ordec/examples/nand2.ord
src/ordec/examples/nand2.uistate.json
src/ordec/examples/rc_curve.py
src/ordec/examples/rc_curve.uistate.json
src/ordec/examples/stdcells.ord
src/ordec/examples/stdcells.uistate.json
src/ordec/examples/vco_pseudodiff.ord
src/ordec/examples/vco_pseudodiff.uistate.json
src/ordec/examples/voltagedivider.ord
src/ordec/examples/voltagedivider.uistate.json
src/ordec/examples/voltagedivider_py.py
src/ordec/examples/voltagedivider_py.uistate.json
src/ordec/layout/__init__.py
src/ordec/layout/drc.py
src/ordec/layout/gds_in.py
src/ordec/layout/gds_out.py
src/ordec/layout/helpers.py
src/ordec/layout/klayout.py
src/ordec/layout/lvs.py
src/ordec/layout/lvsdb.lark
src/ordec/layout/makevias.py
src/ordec/layout/rdb_value.lark
src/ordec/layout/srouter.py
src/ordec/layout/webdata.py
src/ordec/layout/pnr/__init__.py
src/ordec/layout/pnr/flow.py
src/ordec/layout/pnr/place.py
src/ordec/layout/pnr/route.py
src/ordec/lib/__init__.py
src/ordec/lib/base.py
src/ordec/lib/generic_mos.py
src/ordec/lib/ihp130.py
src/ordec/lib/pdk_common.py
src/ordec/lib/sky130.py
src/ordec/lsp/__init__.py
src/ordec/lsp/server.py
src/ordec/lsp/analysis/__init__.py
src/ordec/lsp/analysis/completions.py
src/ordec/lsp/analysis/diagnostics.py
src/ordec/lsp/analysis/hierarchy.py
src/ordec/lsp/analysis/model.py
src/ordec/lsp/analysis/parser_pass.py
src/ordec/lsp/analysis/python_index.py
src/ordec/lsp/analysis/rename.py
src/ordec/lsp/analysis/session.py
src/ordec/lsp/analysis/signatures.py
src/ordec/ord/__init__.py
src/ordec/ord/context.py
src/ordec/ord/ord.lark
src/ordec/ord/ord_transformer.py
src/ordec/ord/parser.py
src/ordec/ord/python_transformer.py
src/ordec/schematic/__init__.py
src/ordec/schematic/auto_wire.py
src/ordec/schematic/helpers.py
src/ordec/schematic/netlister.py
src/ordec/schematic/render.py
src/ordec/schematic/spice_in.py
src/ordec/schematic/verilog_in.py
src/ordec/sim/__init__.py
src/ordec/sim/helpers.py
src/ordec/sim/ngspice.py
src/ordec/sim/simulator.py
src/ordec/sim/webdata.py
support/editors/.gitignore
support/editors/jetbrains/build.gradle.kts
support/editors/jetbrains/gradlew
support/editors/jetbrains/gradlew.bat
support/editors/jetbrains/settings.gradle.kts
support/editors/jetbrains/gradle/wrapper/gradle-wrapper.jar
support/editors/jetbrains/gradle/wrapper/gradle-wrapper.properties
support/editors/jetbrains/src/main/java/org/ordec/intellij/OrdAnnotator.java
support/editors/jetbrains/src/main/java/org/ordec/intellij/OrdElementTypes.java
support/editors/jetbrains/src/main/java/org/ordec/intellij/OrdExpressionParsing.java
support/editors/jetbrains/src/main/java/org/ordec/intellij/OrdFileType.java
support/editors/jetbrains/src/main/java/org/ordec/intellij/OrdInspectionSuppressor.java
support/editors/jetbrains/src/main/java/org/ordec/intellij/OrdLanguage.java
support/editors/jetbrains/src/main/java/org/ordec/intellij/OrdLexer.java
support/editors/jetbrains/src/main/java/org/ordec/intellij/OrdParser.java
support/editors/jetbrains/src/main/java/org/ordec/intellij/OrdParserDefinition.java
support/editors/jetbrains/src/main/java/org/ordec/intellij/OrdStatementParsing.java
support/editors/jetbrains/src/main/java/org/ordec/intellij/OrdSyntaxHighlighterFactory.java
support/editors/jetbrains/src/main/java/org/ordec/intellij/OrdTokenSetContributor.java
support/editors/jetbrains/src/main/resources/META-INF/plugin.xml
support/editors/jetbrains/src/main/resources/META-INF/pluginIcon.svg
support/editors/jetbrains/src/main/resources/icons/ord.svg
support/editors/jetbrains/src/test/java/org/ordec/intellij/OrdDialectParsingTest.java
support/editors/sublime/Ord.sublime-syntax
support/editors/tests/test_editor_grammars.py
support/editors/tree-sitter-ord/grammar.js
support/editors/tree-sitter-ord/package-lock.json
support/editors/tree-sitter-ord/package.json
support/editors/tree-sitter-ord/tree-sitter.json
support/editors/tree-sitter-ord/queries/folds.scm
support/editors/tree-sitter-ord/queries/highlights-helix.scm
support/editors/tree-sitter-ord/queries/highlights.scm
support/editors/tree-sitter-ord/queries/indents.scm
support/editors/tree-sitter-ord/queries/locals.scm
support/editors/tree-sitter-ord/queries/tags.scm
support/editors/tree-sitter-ord/queries/textobjects.scm
support/editors/tree-sitter-ord/test/corpus/ord.txt
support/editors/vscode/ord/.vscodeignore
support/editors/vscode/ord/README.md
support/editors/vscode/ord/extension.js
support/editors/vscode/ord/extension.test.js
support/editors/vscode/ord/language-configuration.json
support/editors/vscode/ord/ordec.png
support/editors/vscode/ord/package-lock.json
support/editors/vscode/ord/package.json
support/editors/vscode/ord/.vscode/launch.json
support/editors/vscode/ord/icons/ord.svg
support/editors/vscode/ord/syntaxes/ord-injection.tmLanguage.json
support/editors/vscode/ord/syntaxes/ord.tmLanguage.json
support/hub/Dockerfile
support/hub/docker-compose.yml
support/hub/example.env
support/hub/hub.Dockerfile
support/hub/jupyterhub_config.py
support/hub/ordec_logo.svg
support/hub/rescore.py
support/hub/scoreboard.py
support/hub/deploy/Caddyfile
support/hub/deploy/host-setup.sh
support/hub/templates/login.html
support/hub/templates/page.html
support/hub/tests/conftest.py
support/hub/tests/test_rescore.py
support/hub/tests/test_scoreboard.py
tests/__init__.py
tests/conftest.py
tests/test_analysis_ord.py
tests/test_benchmarks.py
tests/test_cell.py
tests/test_cli.py
tests/test_course.py
tests/test_directory.py
tests/test_drc_schema.py
tests/test_genrun.py
tests/test_geoprim.py
tests/test_hub.py
tests/test_ihp130_corners.py
tests/test_ihp130_drc_hier.py
tests/test_ihp130_inv.py
tests/test_ihp130_lvs_hier.py
tests/test_ihp130_passives.py
tests/test_ihp130_pnr.py
tests/test_ihp130_stdcells.py
tests/test_importer.py
tests/test_ipython.py
tests/test_jobrunner.py
tests/test_layout.py
tests/test_layout_constraints.py
tests/test_lef_in.py
tests/test_lsp_server.py
tests/test_ord.py
tests/test_ord_compiler.py
tests/test_ord_runtime.ord
tests/test_ordb.py
tests/test_ordb_generic_mos.py
tests/test_parse_lvsdb.py
tests/test_pnr.py
tests/test_rational.py
tests/test_renderview.py
tests/test_report.py
tests/test_schematic.py
tests/test_schematic_arrange.py
tests/test_schematic_auto_wire.py
tests/test_schematic_constraints.py
tests/test_server_protocol.py
tests/test_sim_hierarchy.py
tests/test_sim_highlevel.py
tests/test_sim_ngspice.py
tests/test_spice_in.py
tests/test_srcloc.py
tests/test_srouter.py
tests/test_verilog_in.py
tests/test_version.py
tests/test_web.py
tests/test_web_eventbus.py
tests/test_wire.py
tests/test_wire_subprocess.py
tests/web_fixtures.py
tests/layout_gds/__init__.py
tests/layout_gds/test_aref.gds
tests/layout_gds/test_label.gds
tests/layout_gds/test_path_custom.gds
tests/layout_gds/test_path_flush.gds
tests/layout_gds/test_path_round.gds
tests/layout_gds/test_path_square.gds
tests/layout_gds/test_polygon.gds
tests/layout_gds/test_sref_bad_angle.gds
tests/layout_gds/test_sref_bad_mag.gds
tests/layout_gds/test_sref_d4.gds
tests/layout_gds/test_sref_nested.gds
tests/layout_gds/test_write_gds.gds
tests/layout_gds/test_write_gds_without_cell.gds
tests/lib/__init__.py
tests/lib/drc_example.py
tests/lib/drc_example_hier.py
tests/lib/ihp130_inv.py
tests/lib/ihp130_nmos_series.ord
tests/lib/layoutgl_example.py
tests/lib/lvs_example.py
tests/lib/lvs_example_hier.ord
tests/lib/pnr_cells.ord
tests/lib/report.py
tests/lib/schematics.py
tests/lib/sim.py
tests/lib/thinwrap.py
tests/lib/ord/__init__.py
tests/lib/ord/amp_multipin.ord
tests/lib/ord/buf_hier.ord
tests/lib/ord/d_ff_soc.ord
tests/lib/ord/d_flip_flop.ord
tests/lib/ord/d_latch.ord
tests/lib/ord/d_latch_schem_check.ord
tests/lib/ord/d_latch_soc.ord
tests/lib/ord/empty.ord
tests/lib/ord/empty2.ord
tests/lib/ord/inverter.ord
tests/lib/ord/inverter_constraints.ord
tests/lib/ord/inverter_series.ord
tests/lib/ord/inverter_solver.ord
tests/lib/ord/inverter_stack.ord
tests/lib/ord/multicell.ord
tests/lib/ord/mux2.ord
tests/lib/ord/nand.ord
tests/lib/ord/nand_placement.ord
tests/lib/ord/nmux.ord
tests/lib/ord/reg.ord
tests/lib/ord/reg_array_structs.ord
tests/lib/ord/reg_struct_arrays.ord
tests/lib/ord/ringosc.ord
tests/lib/ord/sr_flip_flop.ord
tests/lib/ord/strongarm.ord
tests/lib/ord/two_stacks.ord
tests/lvsdb/c_hier.lvsdb
tests/renderview_ref/README.md
tests/renderview_ref/__init__.py
tests/renderview_ref/lib_and2_sym.svg
tests/renderview_ref/lib_inverter_sch.svg
tests/renderview_ref/lib_inverter_sym.svg
tests/renderview_ref/lib_or2_sym.svg
tests/renderview_ref/lib_ringosc_sch.svg
tests/renderview_ref/libtest_multibitreg_arrayofstructs5_sym.svg
tests/renderview_ref/libtest_multibitreg_arrays32_sym.svg
tests/renderview_ref/libtest_multibitreg_arrays5_sch.svg
tests/renderview_ref/libtest_multibitreg_arrays5_sym.svg
tests/renderview_ref/libtest_multibitreg_structofarrays5_sym.svg
tests/renderview_ref/libtest_netnamingtest_sch.svg
tests/renderview_ref/libtest_portaligntest_sch.svg
tests/renderview_ref/libtest_rotatetest_sch.svg
tests/renderview_ref/libtest_tapaligntest_sch.svg
tests/renderview_ref/libtest_testnmosinv.svg
tests/renderview_ref/libtest_testnmosinv_nowiring.svg
tests/renderview_ref/make_styled.py
tests/renderview_ref/ordtest_amp_multipin_sch.svg
tests/renderview_ref/ordtest_buf_hier_sch.svg
tests/renderview_ref/ordtest_dffsoc_sch.svg
tests/renderview_ref/ordtest_dflipflop_sch.svg
tests/renderview_ref/ordtest_dlatch_sch.svg
tests/renderview_ref/ordtest_dlatch_schem_check_sch.svg
tests/renderview_ref/ordtest_dlatchsoc_sch.svg
tests/renderview_ref/ordtest_inverter_constraints_sch.svg
tests/renderview_ref/ordtest_inverter_sch.svg
tests/renderview_ref/ordtest_nand_placement_sch.svg
tests/renderview_ref/ordtest_nand_sch.svg
tests/renderview_ref/ordtest_nmux_sch.svg
tests/renderview_ref/ordtest_reg_sch.svg
tests/renderview_ref/ordtest_ringosc_migrated_sch.svg
tests/renderview_ref/ordtest_strongarm_sch.svg
web/.gitignore
web/app.html
web/index.html
web/package-lock.json
web/package.json
web/vite.config.js
web/public/ordec_icon.svg
web/public/ordec_logo.svg
web/public/fonts/Inconsolata/Inconsolata-VariableFont_wdth,wght.ttf
web/public/fonts/Inconsolata/Inconsolata-VariableFont_wdth,wght.ttf.license
web/src/ace-ord-mode.js
web/src/ace-ord-style.css
web/src/app.js
web/src/auth.js
web/src/client.js
web/src/course.js
web/src/hier-selector.js
web/src/landing-page.js
web/src/main.js
web/src/resultviewer.js
web/src/scoreboard.js
web/src/spotlight.js
web/src/style.css
web/src/theme.js
web/src/tour.js
web/src/view/drc.js
web/src/view/index.js
web/src/view/layout.js
web/src/view/lvs.js
web/src/view/report-elements.js
web/src/view/report-simplot.js
web/src/view/report.js
web/src/view/siformat.js
web/src/view/svg.js
web/src/view/view.js
web/src/view/glsl/layout-highlight.frag
web/src/view/glsl/layout-highlight.vert
web/src/view/glsl/layout-labels.frag
web/src/view/glsl/layout-labels.vert
web/src/view/glsl/layout-post.frag
web/src/view/glsl/layout-post.vert
web/src/view/glsl/layout-shapes.frag
web/src/view/glsl/layout-shapes.vert