zynq-imx6-flow: analyze 阶段增加频谱仪取证要求
RF/发射类验收不能只靠数字侧证据。analyze 节点新增一节,规定用已注册的 频谱仪 MCP(N9320B / DSA815)取证:需求点名哪台就用哪台,未点名默认 DSA815;只读抓图优先,改了设置要还原;artifact 路径、峰值频率/功率与 扫描设置一并写进 analysis_log。频谱仪连不上时报缺证,不得仅凭数字证据 判定 RF 需求通过。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015tMFjKGgxdmxJ28dyXdx1u
This commit is contained in:
+26
-1
@@ -109,7 +109,7 @@ Perform it, then resume the **same `--thread-id`**. Repeat until exit 0.
|
||||
|
||||
| `action` | excalidraw node | What you (the session) do | Resume JSON |
|
||||
|---|---|---|---|
|
||||
| `analyze` | 通过ila/串口分析 | Grab ILA + the `sources` consoles (ps_console, and imx6_console if xmod); summarize | `{"analysis_log":"<摘要/路径>"}` |
|
||||
| `analyze` | 通过ila/串口分析 | Grab ILA + listed consoles; for RF/TX requirements also capture the requested analyzer spectrum; summarize all evidence | `{"analysis_log":"<摘要/路径>"}` |
|
||||
| `meets_requirement` | 符合设计要求? | Judge analysis vs the design requirement | `{"meets": true}` or `{"meets": false}` |
|
||||
| `propose` | 分析原因,提方案 | Diagnose; **review the plan with `/langgraph-plan-review`**; decide what to change + next program mode | `{"reason":"...","need_fpga":bool,"need_imx6":bool,"need_ps":bool,"program_mode":"bitstream"或"flash"}` |
|
||||
| `modify_fpga` | 改 RTL→综合→bit/flash | Edit RTL, run Vivado synth/impl, produce bit + flash | `{"bit_path":"...","flash_path":"..."}` |
|
||||
@@ -142,6 +142,31 @@ Notes:
|
||||
re-sequence (`flash_burn → power_off`). This is the big closed loop.
|
||||
- `"$PY" "$RUN" status --thread-id zynq-<name>` re-prints the current state without advancing.
|
||||
|
||||
### Spectrum-analyzer evidence during `analyze`
|
||||
|
||||
For RF/transmitter acceptance, use a registered analyzer MCP in addition to ILA and
|
||||
console logs:
|
||||
|
||||
- N9320B (tool prefix `mcp__mcp_n9320b__`): `get_idn` → `get_settings` →
|
||||
`get_spectrum` with `mark_peak=true` and a stable `csv_path`.
|
||||
- DSA815 (tool prefix `mcp__mcp_dsa815__`): `dsa_get_identity` → `dsa_get_status` →
|
||||
`dsa_capture_plot`.
|
||||
|
||||
Use the analyzer named by the requirement. If none is named, prefer DSA815; use both only
|
||||
for an explicit cross-check or independent confirmation. For DSA815 specifically:
|
||||
|
||||
1. `dsa_get_identity` → `dsa_get_status` verifies serial `DSA8A194401321` and records
|
||||
the current sweep, unit, RBW and VBW.
|
||||
2. `dsa_capture_plot` captures the current Trace and returns PNG/CSV evidence; call
|
||||
`dsa_capture_spectrum` only when all 601 points are needed for numerical analysis.
|
||||
3. Put artifact paths, peak frequency/power and sweep settings in `analysis_log`.
|
||||
4. Prefer read-only capture. If a required mask/channel needs different settings,
|
||||
record the original status and restore it after capture. Do not enable raw SCPI write.
|
||||
|
||||
Always record the selected analyzer identity with the RF artifacts. If the analyzer cannot
|
||||
be verified or reached, report the missing RF evidence and do not mark an RF requirement
|
||||
as passed from digital evidence alone.
|
||||
|
||||
## Step 3 — Finish
|
||||
|
||||
On exit 0 (`status: done`), report iterations completed and whether the design met
|
||||
|
||||
Reference in New Issue
Block a user