YAML Register Map (yml2reg)

SkillFiles & storage

Generate APB/AHB/DAB regfile RTL, Spirit XML, Excel, C/sysmap headers, UVM regmodel/ral_lib/init/define, bus adapters, JSON/CSV regmap, and multi-block top RAL from YAML.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the YAML Register Map (yml2reg) skill

What this skill tells your AI

The instructions your AI receives, as published by siliconpeasant/vibe_soc in .agents/skills/yml2reg/SKILL.md and read by ahel’s review.

One approved YAML → RTL + software + verification pack. Outputs beside YAML by default (output_dir optional).

Tools

ToolOutput
yml2regAPB/AHB/DAB regfile RTL + interrupt banks
yml2xmlSpirit/IP-XACT XML
yml2excelExcel table
yml2reg_cC header with sparse MMIO struct (reserved_* holes)
yml2sysmapmodule sysmap fragment
yml2uvm_ralUVM regmodel NAME_ral.svh
yml2uvm_ral_topmulti-block top RAL from type: top YAML
yml2sv_define*_regs_define.h / .svh
yml2regs_init*_regs_init.sv / .c / .h
yml2ral_lib*_regs_ral_lib.svh (extends block + config)
yml2bus_adaptersyml2reg_bus_adapters.svh (APB/AHB/DAB templates)
yml2regmap_export*_regmap.json + *.csv
yml2docsone-shot full pack (no RTL)

Full pack (recommended)

yml2docs(yaml_file=..., targets="xml,excel,h,sysmap,ral,define,init,ral_lib,regmap,adapter")
yml2reg(yaml_file=..., protocol="apb")

Top multi-block:

yml2docs(yaml_file=demo_top.yml)   # auto-detects blocks:[]
# or
yml2uvm_ral_top(yaml_file=demo_top.yml, emit_children=true)

YAML extras (DV)

coverage: true                 # UVM_CVR_ALL in RAL
hdl_path: u_sys_ctrl           # block HDL root
hdl_path_prefix: tb.dut        # => tb.dut.u_sys_ctrl
fields:
  - {name: enable, ..., hdl_path: custom_slice_name}  # optional

Top YAML (references/demo_top.yml):

name: DEMO_CHIP_TOP
type: top
blocks:
  - yaml: demo_docs.yml
    base_address: 0x1000
    instance: u_sys_ctrl
    hdl_path: tb.dut.u_sys_ctrl

Interrupt banks

Expand to RAW/STAT/MASK/SET/CLR/MODE/POLAR (RTL + RAL + headers), rals_parser aligned.

Notes

  • C header struct now inserts volatile uint32_t reserved_*[] for offset holes — safe for MMIO cast when offsets are word-aligned.
  • Bus adapters are templates; replace apb_seq_item / ahb_seq_item / dab_seq_item with project types if needed.
  • Do not hand-edit generated files; change YAML and regenerate.
  • Reverse path (IP-XACT / Spirit XML → YAML): skill xml2yml (xml2yml / ipxact2yml tools).

Signals

GitHub stars
38
Forks
18
Last commit
Aug 2026
Advanced
Catalog kind
skill
Gateway key
yml2reg
Source
github.com/siliconpeasant/vibe_soc