Skip to content

About

Local-first semiconductor preflight checks: MPW fit, packaging, IP manifests, Touchstone, wafer CSV and GDS metadata. Not manufacturing sign-off.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TOMPW Engineering Checks 1.1.0

Six local-first semiconductor input checks. Original code is MIT licensed. No subscription, server, API key, JavaScript dependencies or AI model is needed. Website: https://www.tompwservice.com/tools

Disclaimer: This tool and its outputs are for reference and preliminary evaluation only, not design, manufacturing, qualification or commercial approval; verify all results with the responsible supplier or engineer.

This package is a preflight aid, not manufacturing sign-off. A ready report means only that the implemented checks found no issue. It is not permission to send a design to manufacturing or to use a licensed IP.

Quick Start

Install Node.js 20 or later before going offline. Extract the source archive and open a terminal in tompw-engineering-checks/. No npm install is needed.

node --test test/*.test.mjs
node scripts/create-examples.mjs
node src/cli.mjs mpw examples/mpw.json --output mpw-report.json
node src/cli.mjs packaging examples/packaging.json --output packaging-report.json
node src/cli.mjs ip examples/ip.json --output ip-report.json
node src/cli.mjs rf examples/network.s2p --ports 2 --output rf-report.json
node src/cli.mjs wafer examples/wafer.csv --retest error --output wafer-report.json
node src/cli.mjs gds examples/demo.gds --output gds-report.json

The six fixtures are deliberately synthetic. Generation refuses to overwrite existing fixture files. The CLI reads regular local files and never uploads or rewrites them. --output creates a new file exclusively; it rejects any existing destination, including the input or a hard-link alias. Use a new report name for each run. Without --output, reports go to stdout. Do not redirect stdout onto an input file: a shell could truncate it before the CLI starts.

Exit codes: 0 check complete, 1 human review required, 2 blocked/invalid input or CLI error. Reports include model version, explicit issues and scope limits. Do not treat a nonzero exit code as permission to discard the report.

Input Contracts

Tool Supported input Output and important limit
MPW block fit Explicit mm/um; die and block width/height; four margins; Boolean rotation permission 0/90-degree placement, clearances and SVG. One die only, no nesting. Area alone cannot establish fit. Dimensions 1e-9 to 1e6 mm.
Packaging preflight JSON pad/pin/net map; explicit unit, origin, view, rotation, mirror; bond list; pin 1; RFQ fields Mapping issues, missing RFQ items, transformed coordinates and SVG. At most 500 pads/pins/bonds. 2D crossing warnings are not 3D bond-loop or DRC checks.
IP delivery JSON with IP type, revision, target process/PDK, licensor/seller/support owner, license status/reference and delivered views Type-specific starting checklist. Unconfirmed licenses block. Explicit required views override defaults. Manifest assertions are not proof of authorization or contract terms. Never paste licensed content.
RF viewer Strict Touchstone 1.x S1P/S2P; explicit five-token option line, RI/MA/DB, increasing frequency and one positive reference resistance Full complex/magnitude/wrapped-phase report. 2 MB, 20,000 points. No noise records, 2.x keywords, vendor impedance extensions or inferred defaults.
Wafer test UTF-8 CSV columns wafer,x,y,bin,status; integer coordinates; PASS/FAIL/EXCLUDE; explicit retest policy Selected-site map and counts. Yield is selected PASS/(PASS+FAIL), excluding EXCLUDE and absent sites. 5 MB, 50,000 rows, 100 wafers; preview 5,000 sites/wafer. Restricted STDF conversion is a separate optional offline Python step.
GDSII metadata Uncompressed binary GDSII with explicit framing, structure names, units and references Library/cell/layer metadata and structural issues. 20 MB, 200,000 records, 10,000 cells. No rendering, geometry proof, DRC/LVS, die-boundary inference or foundry acceptance. OASIS requires the Python reader.

JSON files have a 2 MB CLI limit. Numbers and units must be explicit. The synthetic examples are the starting schemas; replace them with your own approved input under the applicable NDA and local security policy. Never put private manifests, net names, licensed IP, PDKs, production GDS or product test results into a public issue, source repository or example pull request.

RF comparison is opt-in. In addition to matching parsed frequency grids and reference resistance, an operator must confirm equal ordered ports, reference planes and measurement/simulation conditions:

node src/cli.mjs rf input-a.s2p --ports 2 --compare input-b.s2p --comparable --output new-comparison.json

No interpolation, renormalization, de-embedding, group-delay or passivity/sign-off claim is made. Zero amplitude has undefined phase and non-finite dB, represented as null; it is not silently replaced with a floor value.

Packaging Revision Comparison

Compare two complete packaging manifests with stable pad/pin IDs. IDs that disappear or appear are removals/additions; the tool never guesses a rename. Coordinates and dimensions are normalized to mm. Changes to origin, view, rotation or mirror always require review, even if symmetric coordinates happen to coincide.

node src/cli.mjs packaging-diff baseline.json --compare candidate.json --output new-packaging-diff.json

The report records explicit mapping, geometry, orientation, bond and RFQ differences. Its SVG overlays a dashed blue baseline and solid orange candidate in a common package frame. This is not a 3D bond-loop, DRC, OSAT approval or electrical check. The website exposes this action under Compare packaging revisions.

Actual IP Delivery Inventory

Keep the normal IP delivery manifest and add a files array. Example entry below: the all-zero hash is only a placeholder, not a real checksum.

{
  "files": [{
    "path": "rtl/core.v", "view": "rtl",
    "sha256": "0000000000000000000000000000000000000000000000000000000000000000",
    "sizeBytes": 1234, "version": "R1"
  }]
}

path, view and SHA-256 are required; byte count and declared version are optional. Every delivered view needs at least one file. Paths are relative with forward slashes, without traversal. Symlinks, junctions and case-colliding paths are rejected.

node src/cli.mjs ip-files manifest.json --directory delivery-folder --output new-ip-file-check.json

The CLI inventories nested directories read-only: at most 1,000 files, 20 MB each, 100 MB total. It hashes bytes without executing or interpreting IP content. Missing files, hash mismatches and size mismatches block; extra files, case differences and declared version differences require review. The website's Verify actual IP delivery files action accepts flat file selections only, not directory trees. Editing/resetting input invalidates the current result, including an in-flight hash.

Obtain the reference manifest/checksums through an approved trusted delivery channel. Hashing a file and using that same hash as its expectation proves no vendor origin. Matching hashes do not establish IP behavior, embedded version, encryption validity, licensing/resale authority, foundry qualification or support obligations. Inventory reports expose relative filenames and hashes; keep them confidential with the inputs.

Optional Local Python Readers

See python/README.md for installation and exact compatibility limits. These original wrappers use separately licensed scikit-rf, gdstk and Semi-ATE STDF. They support a broader, bounded Touchstone subset, GDSII/OASIS metadata and restricted single-wafer STDF V4 PRR-to-CSV conversion, preserve input SHA256 and refuse output overwrites. Dependency installation needs network access; subsequent reading is local. No dependency environment is shipped.

The readers do not execute layouts or rewrite designs, but native file parsing is not an operating-system resource sandbox. Do not feed hostile files to either reader. Results and SVGs can still contain confidential net, cell or bin names; store/share reports under the same policy as their inputs.

Verification and Contribution

The shipped tests use synthetic fixtures only. Windows was tested; other operating systems, actual customer files and all vendor format variants were not. A tested fixture is not a compatibility guarantee for a production toolchain.

Use a new synthetic fixture when reporting a parser issue. Include the model version and expected vs actual behavior without private file paths, license text or customer records. The browser interface is part of the TOMPW website; this portable package provides models and CLI checks rather than an offline web server.

About

Local-first semiconductor preflight checks: MPW fit, packaging, IP manifests, Touchstone, wafer CSV and GDS metadata. Not manufacturing sign-off.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages