Commit Graph
505 Commits
Author SHA1 Message Date
Uri Shaked b7b993ac50 fix(precheck): allow any klayout 0.30.x from pip
KLayout removes older releases from PyPI: KLayout/klayout#1670
2026-10-29 22:27:27 +01:00
Uri Shaked 617676148e feat(ihp-sg13cmos5l): analog project support 2026-10-29 21:32:06 +01:00
Uri Shaked 02abf73b5f docs(ihp-sg13cmos5l): update stale mux_macros comment 2026-10-27 11:52:13 +01:00
Uri Shaked 806c0cf721 fix(ihp-sg13cmos5l): default to the ihp-sg13cmos5l-18.yaml mux config 2026-10-27 11:49:11 +01:00
Uri Shaked 2984badb72 feat(tt_tool): deprecate --ihp and --gf in favor of --pdk 2026-10-27 11:43:49 +01:00
Uri Shaked 2278ea867e feat: add ihp-sg13cmos5l PDK alongside ihp-sg13g2
Based on work done in the ihp-sg13cmos5l branch
2026-10-27 11:17:19 +01:00
Joni Hendrickson 01d5d2814f fix(fpga): Use --project-dir for harden and configure
Right now, running `tt_fpga.py --project-dir example/<projectname>
harden` will fail if previously, `tt_fpga.py harden` was ran against a
project in the root folder. This is because the `_tt_fpga_top.v` file is
always read from `src/_tt_fpga_top.v`, even though it's generated in the
proper --project-dir location.

Similar problem affects the `configure` command, where it looks for the
bitstream in `build/<name>.bin` relative to the current dir even with
`--project-dir` set.

Commit prepends the source_dir from `--project-dir` in the appropriate
places such that it's used for both harden and configure.

Tested by observing that running the following commands in sequence now
succeeds against one of my projects:
- tt_fpga.py harden
- tt_fpga.py --project-dir examples/tt_um_vga_example_gamepad harden
- tt_fpga.py --project-dir examples/tt_um_vga_example_gamepad configure
  --upload --port /dev/ttyACM0
2026-08-20 11:42:53 +02:00
htfab 8bca34afbe fix(tt_tool): allow hardening in git repos without a remote 2026-08-06 17:09:13 +02:00
htfab ff75e344cd feat(precheck): port the gds/lef pin consistency check to gf180mcuD 2026-07-29 17:39:19 +02:00
htfab d869909e41 fix(precheck): rewrite the boundary check
The previous version of the boundary check was a quick heuristic where
we compared the bounding box of the design to that of the prBoundary layer.
Over time we came across some designs where this is insufficient.

The new check compares the bounding box to the correct project size
based on the .def template and verifies that there is a rectangle of
this exact size in the prBoundary layer at the top level.

The patch also abstracts parsing the .def template into a separate
function since we now use it in two different checks.
2026-07-28 21:21:12 +02:00
Uri Shaked d65690eeb1 fix(precheck): bump pip klayout to 0.30.8 to match the DRC binary 2026-06-15 17:03:35 +03:00
Uri Shaked d1bbd34d95 feat(precheck/gf180mcuD): update to latest PDK 2026-06-14 20:23:49 +03:00
Uri Shaked a280aac0a7 ci(test-harden): bump LibreLane to 3.0.2 2026-06-14 19:32:56 +03:00
Uri Shaked 50998ec8f8 feat(precheck/gf180mcuD): run KLayout DRC via PDK run_drc.py
- Density related rules skipped (irrelevant for user projects)
- Add docopt dependecy (required by the PDK's run_drc.py)
2026-06-14 16:50:19 +03:00
Uri Shaked 1de6149a61 fix(precheck): disable gf180mcuD magic DRC
Sylvain: The techfile for GF180 is still a bit dodgy in some areas,
especially when reading from GDS and it's rejecting perfectly valid designs.
Wafer.space relies only on KLayout DRC for acceptance so we should do
too for the time being.
2026-06-09 18:03:55 +03:00
htfab 9be228c021 fix(precheck/gf180mcuD): set power strip min width to 0.8 um 2026-06-02 10:56:05 +02:00
Uri Shaked 0cb06befb0 Merge ed26854793 into d2ed4b10ae 2026-05-31 13:20:08 +00:00
Uri Shaked ed26854793 refactor: rename uses_3v3 to uses_vapwr
The flag enables a second power supply (VAPWR), not necessarily 3.3V (gf180's core is already 3v3), so "uses_3v3" no longer accurately describes its purpose.
Rename it across project_info, precheck, project and shuttle, and update the validation message accordingly.

The legacy "uses_3v3" key is still accepted when reading info.yaml, so existing project configs keep working.
2026-05-31 16:18:24 +03:00
Uri Shaked d5b156e241 feat(precheck/gf180mcuD): analog template selection + pin check 2026-05-31 15:40:42 +03:00
Uri Shaked ad17dca51b feat(tech/gf180mcuD): analog def files + magic init script 2026-05-31 15:40:34 +03:00
Uri Shaked d2ed4b10ae docs(readme): note mac dependencies for setup 2026-05-23 19:41:42 +03:00
Gonsolo 7e3f0f87a3 fix(project): handle errors in print_stats() (#173) 2026-05-20 10:18:15 +02:00
htfab 5a894537dc fix(precheck): support integers (without '.' decimal separator) in LEF (#171) 2026-05-11 08:32:46 +02:00
Sylvain Munaut a6c7030a0a fix(precheck/sky130A): Fix MR_licon.SP6 again
Previous fix caused issue with resistors since that check must not
apply to anything in prec_res zone according to licon.9

Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2026-05-05 22:26:43 +02:00
htfab afbe0d69fc fix(precheck/sky130A): add MR_licon.SP.6_overlap rule to MR (#169)
as suggested by @smunaut
2026-05-04 13:53:07 +02:00
htfab e63fad485d fix(precheck): fix bug in parsing fixed-point numbers in LEF (#168)
as suggested by @smunaut
2026-05-04 13:52:49 +02:00
htfab d4626aaed7 feat(precheck/gf180mcuD): add test for antenna check 2026-05-03 09:26:53 +02:00
htfab c904c49f53 feat(precheck/gf180mcuD): add antenna check 2026-05-03 09:26:53 +02:00
Uri Shaked dfa73d614c feat(tech/sky130A): analog def files for 3x2, 4x2, 6x2 tiles (bare + 3v3) 2026-04-18 21:03:16 +03:00
Uri Shaked b7acfdc00e fix(precheck): forbid prBoundary.drawing (189/0) for ihp shuttles 2026-03-30 16:49:26 +03:00
Kristaps Jurkans 5779f397bc feat: add interactive document checker (#164)
* feat: add interactive document checker

This utility can be used to audit the documentation of the projects on the shuttle, marking them to be removed from the datasheet.

Usage:
`python3 tt/configure.py --doc-check`, inspect using `nano` controls, then answer prompt upon exiting `nano`.
2026-03-30 15:15:24 +02:00
Uri Shaked 635d1b4285 fix(configure): skip power gate macro copy when no_power_gating is set 2026-03-28 14:57:59 +02:00
htfab 201d0273dc feat(precheck): add Verilog syntax check 2026-03-26 13:05:34 +01:00
Gerard Talatinian bd4a4a08e5 fix: lazy imports for matplotlib & gdstk (#161)
only require matplotlib & gdstk for functionality where we actually use them

contributed by @gerardvt
2026-03-26 11:02:37 +01:00
Uri Shaked 4c1ebdd9c0 feat(ihp): 8x4 tile size 2026-03-13 09:14:12 +02:00
htfab 34f7730b3a fix(precheck): force single-threaded mode in sky130A_mr.drc
avoids intermittent segfaults in klayout FEOL check
2026-03-12 22:48:48 +02:00
Kristaps Jurkans becdf49dd7 fix(docs): remove extra str call (#159)
The `str()` call is already added by calling `DocsHelper._as_str_or_content()`, so having both causes an error which prevents docs from building.
2026-03-10 12:33:07 +01:00
Kristaps Jurkans 1caab70038 fix(docs): make project doc flow compatible with updated template (#158)
The shuttle datasheet flow was updated to santise strings properly, and within the changes were some updates to the template that was used. This template is shared between the shuttle and individual projects, but the standalone version wasn't updated to be compatible. This commit rectifies that issue.
2026-03-08 04:32:54 +01:00
Kristaps Jurkans bfd5020b4c fix(docs): attempt to sanitise user strings from yaml
User strings were used as-is in certain parts since they were taken directly from `info.yaml`, but this could sometimes cause the datasheet build to fail since they've found a way (intentionally or not) to escape the content box that they were in.

This commit attempts to address this issue by:
- Sanitising user input using regex
- Using Typst's `str()` function instead of content boxes where possible
- Clarifying syntax in certain sections

Hopefully these changes will remove (or at least reduce) the chances of someone breaking the build.
2026-03-07 22:55:01 +02:00
Andy Sloane 3c092caeed fix(fpga): remove set_frequency from .pcf so nextpnr --freq works as expected (#154) 2026-03-04 00:04:54 +01:00
Uri Shaked 362e5b2f0e fix(datasheet): handle artwork insertion when projects < artwork count 2026-02-28 11:55:21 +02:00
Uri Shaked 6839bd1295 feat(precheck): json file with tool versions 2026-02-24 09:51:16 +00:00
htfab 45fa89984f feat(precheck): add analog pin check for ihp-sg13g2 2026-02-21 07:16:36 +02:00
htfab cff6920d69 fix(precheck): add nofill & slit layers to IHP valid layer list 2026-02-18 14:27:22 +02:00
htfab d28b20433e feat(precheck): use new DRC deck for IHP
needs IHP PDK 34c00bdd15efd3406ab028896d2182236aad3aa7 (2025.11.25) or later
2026-02-17 20:50:41 +02:00
htfab 57cc5a39d6 feat(precheck): allow more customization for run_klayout() 2026-02-17 20:50:41 +02:00
Uri Shaked 4d46382768 fix(tech/ihp-sg13g2): wrong layer for power strings in magic init script 2026-02-12 22:16:57 +02:00
Uri Shaked 88470b895b fix(precheck): disable analog pin check for ihp-sg13g2
The check currently uses hard-coded sky130A specific layer names and pin sizes.
2026-02-12 22:10:36 +02:00
Uri Shaked fecefe0b07 feat(tech/ihp-sg13g2): analog def files + magic init script 2026-02-12 21:36:18 +02:00
Pat Deegan 89ad9bfa93 feat(fpga): add support for the new FabricFox devkit
* TT FPGA tool, prelim import
* config.ini manager, prelim
* bitstream uploads and FPGA config.ini management

Contributed by @psychogenic, with minor edits by @htfab
2026-02-12 06:27:29 +01:00