一键导入
layout-design
How to think about photonic chip layout. Floorplanning, spacing, routing strategy, and hierarchy. Use when planning or creating a new design.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
How to think about photonic chip layout. Floorplanning, spacing, routing strategy, and hierarchy. Use when planning or creating a new design.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
| name | layout-design |
| description | How to think about photonic chip layout. Floorplanning, spacing, routing strategy, and hierarchy. Use when planning or creating a new design. |
Example skill — placeholder for future work. This ships as a starting point to show what a Rosette skill looks like. The heuristics below are general and intentionally brief; expand or replace this skill with rules specific to your process and design library.
High-level heuristics for photonic integrated circuit layout.
Trace the signal from input to output before placing anything. The signal flow graph determines the topology; the topology constrains the floorplan. Identify the optical I/O count, what connects to what, and which connections are performance-critical (short, low-loss) vs. just routing.
Optical interfaces (grating/edge couplers) connect to fibers with fixed spacing, so they are usually the widest constraint — place them first and fit everything else between them. Leave room for routing: every route needs its own channel, and bends consume roughly one bend radius in each direction. Balanced circuits (MZIs, differential paths) want geometric symmetry to keep arm lengths matched.
Plan all routes together, not one at a time — an early route can block a later one. Minimize crossings (each adds loss and crosstalk; reordering or mirroring often removes one), prefer fewer bends, and use the smallest bend radius that meets your loss budget.
Group components into a sub-cell when the group repeats, has a clean low-port interface, or could be tested independently. A flat layout is fine for simple circuits — don't force hierarchy for its own sake.
A layout isn't finished until the checks pass. Build, then check, and fix before moving on:
uv run rosette build designs/foo.py
uv run rosette check designs/foo.py --json
--json makes the result machine-readable: read passed and use each
violation's bbox (in microns) to locate the problem, rather than parsing
prose. Use rosette drc/rosette dfm to isolate a single check, and
--include-dfm to fold manufacturing prediction into rosette check. The full
command contract — flags, exit codes, the --json schema — lives in
.rosette/cli.json (or rosette cli-manifest); consult it instead of guessing
invocations.