XML / IP-XACT → yml2reg YAML
SkillDev toolsConvert IP-XACT / Spirit XML register maps into yml2reg-compatible YAML (xml2yml / ipxact2yml). Use when the approved register source is Spirit XML, IP-XACT, or yml2xml output and you need YAML for RTL/DV/SW generation. Exclusive skill of soc-integrator — other roles must not call it.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the XML / IP-XACT → yml2reg YAML skill
What this skill tells your AI
The instructions your AI receives, as published by siliconpeasant/vibe_soc in .agents/skills/xml2yml/SKILL.md and read by ahel’s review.
Owner role: soc-integrator only. MCP xml2yml is connected at the
project parent for routing; execution remains exclusive to the integrator
through named MCP inheritance. After conversion, the same owner runs yml2reg
/ yml2docs for RTL and packs.
One Spirit/IP-XACT XML → yml2reg YAML. Then run yml2reg / yml2docs for RTL and packs.
Tools
| Tool | Role |
|---|---|
xml2yml | Primary converter |
ipxact2yml | Alias of xml2yml |
Args
xml_file(required): Spirit / IP-XACT XML pathoutput_dir(optional): default beside the XMLname(optional): override YAMLnameprotocol(optional):apb/ahb/dabfold_interrupts(optional): collapse expanded*_raw/*_stat/… banks intointerrupts[]
Supported XML shapes
- Project dialect from
yml2reg/yml2xmlspirit:component+spirit:addressBlock+register/interrupt(namespacehttp://www.siliconpeasant.com, optional fieldlockOffset/lockWidth/lockValue). - IEEE-style Spirit / IP-XACT
component→memoryMaps→memoryMap→addressBlock→register→field(spirit:oripxact:prefixes; matching is by local-name).
Multiple addressBlocks → multiple YAML files.
Recommended flow
xml2yml(xml_file=.../regs.xml, output_dir=.../docs)
# review the generated YAML, then:
yml2docs(yaml_file=.../BLOCK.yml)
yml2reg(yaml_file=.../BLOCK.yml, protocol="apb")
CLI (no MCP):
python3 .agents/skills/xml2yml/scripts/xml2yml.py path/to/regs.xml -o out/
Notes
- Output is yml2reg schema (
lsb/bits/accesslowercase, optionalinterrupts). - Do not hand-edit generated YAML for long-lived sources; fix XML (or promote YAML to the approved source) and regenerate.
- Full IEEE vendor extensions / vendorExtensions are ignored unless mapped above.
- After conversion, treat YAML as the working register source for
yml2reg.
References
references/demo_spirit.xml— project dialect (roundtrip with yml2xml)references/demo_ipxact.xml— minimal IEEE-style IP-XACT addressBlock tree
Signals
- GitHub stars
- 38
- Forks
- 18
- Last commit
- Aug 2026
Advanced
- Catalog kind
- skill
- Gateway key
xml2yml- Source
- github.com/siliconpeasant/vibe_soc