Ctrl+P
GenAlpha Schematics enables editing real, production-quality schematics, live in the popular VsCode programming environment.
GenAlpha operates on the same OpenAccess databases and schematics supported by leading silicon foundry PDKs.
GenAlpha Schematics is available on a private preview basis. Contact dan@gen-alpha.io if you are interested in joining the trial!
Access is managed through GitHub login, and its seamless VsCode integration. Open a schematic or run the GenAlpha: Log In With GitHub command to log in.
GenAlpha: Log In With GitHub
Note: GenAlpha Schematics will never, for any reason, no matter what, send your design data to GitHub, or anywhere else outside your own servers. GitHub is used solely for user authentication and access validation.
With a database configured, just open the sch.oa or symbol.oa file in VsCode's file explorer. Or run code {path}/{to}/sch.oa from the command line.
sch.oa
symbol.oa
code {path}/{to}/sch.oa
Configuring a database requires two primary pieces of information:
lib.defs
cds.lib
Environment variables can be defined in either of two formats:
{ "VAR_NAME": "VAR_VALUE" }
GenAlpha will attempt to auto-configure a database from your VsCode workspace directory. It will search for both library-definitions and environment variables starting in the workspace root, and then in each parent directory until it reaches the filesystem root.
GenAlpha: Set Library Definitions
.env
env.json
GenAlpha: Set Environment File
After configuring a schematic database, GenAlpha will write a resolution-file name db.resolved.json in the workspace root. This file contains the absolute paths to the library definitions and environment variables files that were loaded. It will also often be the best source of debug information if you're having trouble getting a database to load. The resolution-file attempts to catalog any information (typically variable-values) that it needed, but couldn't find.
db.resolved.json
Example successful resolution-file:
{ "schemaVersion": 1, "env": { "vars": { "DESIGNDATA": "/designdata/" }, "file": { "path": "/designdata/env.json", "fmt": "json" } }, "libdefs": { "path": "/designdata/cds.lib", "warnings": [], "libs": { "mylib": "/designdata/mylib" }, "unresolved": { "libs": [], "includes": [], "vars": [] } } }
Note running the popular Unix env utility can, but often doesn't, produce output compatible with the dotenv file format. Particularly env often includes special characters (and whitespace) which is not escaped or quoted. If running env to produce a dotenv file, expect to have to do some manual editing. JSON encoding, particularly when written by popular libraries, should avoid this problem. For example the (two-line) Python script env.py will produce a JSON file compatible with GenAlpha:
env
dotenv
import os, json open("env.json", "w").write(json.dumps(dict(os.environ), indent=2))
Please report any issues or feature requests to gen-alpha-xtor/GenAlphaSchematics. Note this is not the source code repository.