From vibe-ic
Executes hardware measurements on analog blocks via oscilloscope capture and FPGA ADC read. Use for hardware-in-the-loop verification, scope capture, or analog tuning.
How this skill is triggered — by the user, by Claude, or both
Slash command
/vibe-ic:analog-hw-measureThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Drives the measurement instruments (oscilloscope + FPGA ADC) to capture real analog block behavior, then parses the results into a structured measurement report comparable to SPICE simulation output.
Drives the measurement instruments (oscilloscope + FPGA ADC) to capture real analog block behavior, then parses the results into a structured measurement report comparable to SPICE simulation output.
analog-hw-testbench-gen has programmed the FPGAanalog-hw-tuning-loop iterationsanalog/<block>/spec.json — specs with min/max limitsanalog/<block>/hw_test/pin_assignments.qsf — which scope channel maps to which signal| Tool | Purpose |
|---|---|
device_scope_capture | Capture transient waveform (CSV: time, voltage) |
device_scope_periodic_pulse_check | Measure frequency, duty cycle, amplitude |
eda_fpga_adc_read | Read MAX10 ADC for DC voltage (when available) |
device_camera_led_diff | Capture LED pass/fail indication |
| Block type | Key measurements | Instrument |
|---|---|---|
| LDO | Vout DC, load regulation, PSRR, transient response | ADC (DC) + Scope (transient) |
| Oscillator | Frequency, duty cycle, jitter, startup time | Scope (periodic) |
| POR | Trip voltage, hysteresis, release delay | Scope (single-shot ramp) |
| Bandgap | Vref DC, temperature coefficient | ADC (DC, sweep temp manually) |
| Comparator | Propagation delay, offset, hysteresis | Scope (transient) |
The DC/rise/settling/overshoot/freq/jitter math below is FIXED and
deterministic — do NOT re-derive it by hand each run. Once you have a
captured scope CSV (time,voltage), invoke the program so the numbers come
out identically every time:
python3 programs/scope_waveform_metrics.py <scope_csv> \
[--spec analog/<block>/spec.json] [--json analog/<block>/hw_measurements.json]
It emits {dc_level, rise_time, settling_time, overshoot, freq, jitter} and,
when a spec JSON with per-metric min/max is given, a per-spec
PASS/FAIL (a metric that cannot be computed grades SKIP, never a false
FAIL). Exit 0 = extracted / all gradeable specs PASS, 1 = a spec FAILed,
2 = IO/parse error. The program degrades gracefully: a capture shorter than
--min-samples (default 8), with no detectable edge, or non-periodic reports
the affected metric as null + a MISSING/SKIP note instead of guessing.
The frozen formulas it implements (kept here for reference / review only):
AI judgment stays with you — choosing the right instrument per block
(scope transient vs ADC DC vs periodic-pulse), setting timebase/trigger,
deciding when a capture is trustworthy, and interpreting a SKIP/MISSING
metric (re-capture vs accept) are NOT delegated to the program. The program
only freezes the arithmetic on a capture you already judged good.
analog/<block>/hw_measurements.json{
"block_name": "ldo_1v8",
"timestamp": "2026-04-29T14:30:00Z",
"measurements": {
"vout_dc": {"value": 1.803, "unit": "V", "spec_min": 1.75, "spec_max": 1.85, "status": "PASS"},
"load_reg": {"value": 0.5, "unit": "%", "spec_max": 2.0, "status": "PASS"},
"settling_time": {"value": 12.3, "unit": "us", "spec_max": 50, "status": "PASS"}
},
"scope_files": ["analog/ldo_1v8/hw_test/scope_transient.csv"],
"all_pass": true
}
hw_measurements.json → analog-hw-tuning-loop for three-way comparisonscope_response_byte_decode_check (if protocol testing)After producing your output, save it to a file and run:
python3 plugins/vibe-ic/_shared/skill_compliance_check.py \
--requirements plugins/vibe-ic/skills/analog-hw-measure/compliance.yaml \
<your_output_file>
Exit 0 = PASS, exit 1 = FAIL with specific missing elements listed.
Your task is not complete until the audit returns PASS.
npx claudepluginhub vibeic/vibe-ic --plugin vibe-icGuides completion of development work by verifying tests, detecting environment, and presenting structured options for merge, PR, or cleanup.
Enforces test-driven development: write failing test first, then minimal code to pass. Use when implementing features or bugfixes.
Guides creation and editing of skills using test-driven development with pressure scenarios and subagents to verify agent compliance.