Hsb Ip Packetizer
NVIDIAOfficialCreated by Holoscan TeamDistributed by NVIDIA
- Skill
- Tool integration
- Software development
- Apache-2.0
- Medium risk
AutoGineer summary
Written by AutoGineer from the skill’s own files, not by the author
This skill assists in defining the packetizer-specific localparams within the HOLOLINK_def.svh file for the NVIDIA Holoscan Sensor Bridge (HSB). It enables users to derive correct settings for packetizer enablement, virtual port counts, data sorting resolution, port sizes, and cycle windows based on specific sensor data manipulation requirements. It is designed to operate either as a standalone tool for manual SVH updates or as a handoff partner for the hsb-ip-def generation flow.
What it does
- Derives SIF_RX_PACKETIZER_EN, SIF_RX_VP_COUNT, SIF_RX_SORT_RESOLUTION, SIF_RX_VP_SIZE, and SIF_RX_NUM_CYCLES.
- Supports Standalone SVH output for manual HOLOLINK_def.svh editing.
- Provides a Def-Skill Handoff mode for integration with hsb-ip-def.
- Applies placeholder values for disabled interfaces to maintain RTL compatibility.
- Ensures packetizer configuration is grounded in specific data-shape requirements.
- Distinguishes between compile-time hardware definition and runtime APB configuration.
When to use it
- When you need to add or update packetizer-related localparams in a HOLOLINK_def.svh file.
- When you are using hsb-ip-def and need to provide a packetizer configuration overlay.
- When you need to understand how specific packetizer fields impact data flow or virtual port routing.
- When you need to determine if your data manipulation intent requires enabling the packetizer hardware.
Advantages
- Reduces manual configuration errors by deriving fields from data-shape facts.
- Maintains consistency with HSB IP revision requirements.
- Provides clear separation between hardware definition and runtime software control.
- Integrates seamlessly into existing Holoscan IP generation workflows.
Usage examples
- “I need to configure the packetizer for two Sensor RX interfaces. RX0 is 512 bits and must split into four 128-bit virtual streams; RX1 is pass-through.”
- The agent provides the necessary SystemVerilog localparams for the packetizer arrays, setting RX0 to enabled with the specified split parameters and RX1 to disabled with appropriate placeholders.
- “hsb-ip-def is generating my HOLOLINK_def.svh and needs packetizer values. RX0 should rearrange 16-bit lanes into four virtual streams; RX1 should stay pass-through.”
- The agent emits a packetizer_profile_overlay YAML block for the def-skill to consume, followed by an explanation of the derived settings.
Install
Download the skill as a ZIP:
https://mp-staging.autogineer.com/agent-skills/nvidia/hsb-ip-packetizer/downloadUnzip it into the cross-client skills folder of your project:
mkdir -p .agents/skills && unzip hsb-ip-packetizer.zip -d .agents/skills
Documentation by Holoscan Team
HSB IP Packetizer Skill
Purpose
Choose packetizer-related HOLOLINK_def.svh fields for the NVIDIA Holoscan Sensor Bridge Sensor RX path.
This skill owns only the packetizer slice of HOLOLINK_def.svh:
SIF_RX_PACKETIZER_EN[]SIF_RX_VP_COUNT[]SIF_RX_SORT_RESOLUTION[]SIF_RX_VP_SIZE[]SIF_RX_NUM_CYCLES[]
Use hsb-ip-def for whole-file generation, validation, comparison, and non-packetizer macros.
Prerequisites
SENSOR_RX_IF_INSTmust be defined and nonzero before packetizer fields are relevant.Per-RX-interface
SIF_RX_WIDTH[]values and the user's data manipulation intent are required before deriving enabled packetizer values.Live packetizer RTL is preferred for source-sensitive claims; bundled references cover known rev
16'h2604and compatible rev16'h2603.Whole-file generation and validation remain the responsibility of
hsb-ip-def.
Instructions
Only configure packetizer fields when
SENSOR_RX_IF_INSTis defined. If Sensor RX is disabled, say no packetizer fields are needed.First classify the request as Standalone SVH, Def-Skill Handoff, Explain, or runtime APB pattern-RAM. For Def-Skill Handoff, load
references/handoff-contract.mdand makepacketizer_profile_overlaythe first non-empty output after any required clarification.Ask one question per turn only while collecting the data-description facts needed to derive a grounded profile. Prefer deriving macro values from those facts instead of requesting per-macro confirmation.
Use sensor-agnostic language. Say "sensor data", "data word", "stream", "bandwidth", and "packetization"; use camera-specific language only after the user says the sensor data is image/camera data.
Never silently default enabled packetizer fields. Derive them from the user's stated data layout and manipulation intent, print the complete field set in one block, and then explain what the selected settings enable and what assumptions they encode.
Avoid ungrounded "typical", "common", "most designs", or corpus-frequency claims. Anchor statements to HSB docs, RTL behavior, or the user's stated requirements.
Keep runtime APB pattern-RAM programming out of v1 generation.
HOLOLINK_def.svhenables/sizes hardware; runtime software still controls pattern RAM, virtual-port selection, sort controls, bypass, padding, duplication, and latency.In a handoff from
hsb-ip-def, use facts already known by that def flow. If the prompt gives RX count, enabled/pass-through intent, lane or stream width, virtual stream count, and cycle window, emit the overlay without re-asking for macro names or whole-file details. Leave final merge and full validation tohsb-ip-def.
Live HSB IP source policy
Prefer live HSB IP source over bundled packetizer references whenever the user's workspace provides it. The bundled references describe known rev 16'h2604 and backward-compatible rev 16'h2603; live source is the authority for the checked-out IP.
When source is available:
Locate
HOLOLINK_top.svplus the packetizer RTL files:<hsb-ip-root>/top/HOLOLINK_top.sv<hsb-ip-root>/packetizer/packetizer_top.sv<hsb-ip-root>/packetizer/packetizer.sv<hsb-ip-root>/packetizer/virtual_port.sv<hsb-ip-root>/packetizer/odd_even_gen.sv
Read
HOLOLINK_REVandHOLOLINK_BACKWARD_COMPAT_REVfromHOLOLINK_top.svwhen present.Verify that
HOLOLINK_topstill maps the five def fields intopacketizer_topas documented before making source-sensitive claims.If the rev is newer, unknown, or live RTL disagrees with this skill's references, state the mismatch. Trust the live RTL for explanation, avoid unsupported assumptions, and do not emit an enabled packetizer overlay unless the field mapping and RTL constraints can be verified from the live source.
When no source is available, use the bundled references as known-revision guidance and say that the answer is based on the skill's supported HSB IP rev.
Reference Loading
Load only the reference needed for the user's task:
| File | When to load |
|---|---|
references/packetizer-def-fields.md | Choosing or explaining HOLOLINK_def.svh packetizer fields, array length rules, bypass placeholders, RTL-derived constraints, or standalone SVH output formatting |
references/packetizer-architecture.md | Explaining packetizer blocks, data flow, clocks, APB registers, runtime-vs-def split, or why a field exists |
references/handoff-contract.md | Producing packetizer_profile_overlay YAML for hsb-ip-def or enforcing output-mode separation |
Workflow Decision
If the user is working inside a
HOLOLINK_def.svhgeneration flow, use Def-Skill Handoff.If the user asks for lines to add to an existing/new
HOLOLINK_def.svh, use Standalone SVH.If the user asks what a field does, why a value matters, or whether a combination is safe, use Explain.
If the user asks for APB pattern RAM programming, explain that it is runtime configuration and outside v1 generated output; load
references/packetizer-architecture.mdfor the register context.
Requirement Discovery
Collect these facts in order, skipping facts the user already supplied. Stop asking as soon as the data manipulation description is specific enough to derive the profile.
SENSOR_RX_IF_INST: number of Sensor RX interfaces. If undefined or zero, stop.SIF_RX_WIDTH[]: per-RX-interface input width. This isDIN_WIDTHfor each packetizer instance.Packetizer intent per RX interface: pass-through, data rearrangement/manipulation, split into virtual ports, replicate/duplicate, or other manipulation.
The data layout for enabled interfaces: lane/chunk width, number of output virtual streams, whether the manipulation stays within one input cycle or spans multiple cycles, and any exact ordering/replication requirement.
Skip per-macro confirmation prompts such as "Confirm SIF_RX_VP_COUNT?", "Confirm SIF_RX_SORT_RESOLUTION?", "Confirm SIF_RX_VP_SIZE?", or "Confirm SIF_RX_NUM_CYCLES?" Ask for missing data-shape facts, such as "How many virtual streams should RX0 split into?" or "What bit granularity is being rearranged?"
Deriving Fields
After the required facts are known, derive all packetizer arrays together:
SIF_RX_PACKETIZER_EN[i] = 1for RX interfaces that need packetizer hardware for rearrangement, split, replication, or other runtime-controlled data manipulation;0for pass-through interfaces.SIF_RX_VP_COUNT[i]equals the number of virtual output streams/ports required by the user's manipulation for that RX interface.SIF_RX_VP_SIZE[i]is the per-virtual-port data size/width in bits. For an equal contiguous split of oneSIF_RX_WIDTH[i]input word intoNvirtual ports, useSIF_RX_WIDTH[i] / Nif it is a positive power-of-two divisor and matches the user's intent.SIF_RX_SORT_RESOLUTION[i]is the bit granularity of the data rearrangement operation. If the user describes fixed-size lanes, use that lane size when it passes the RTL-derived constraints. If no ordering manipulation is needed and the packetizer is used only for contiguous split/replication, useSIF_RX_WIDTH[i]to disable the sort network internally when legal.SIF_RX_NUM_CYCLES[i]is the number of input sensor-data cycles that participate in the manipulation. Use1for single-cycle rearrange/split/replication; use the stated cycle window when the manipulation spans multiple input cycles.
If several profiles remain plausible after reading the data description, ask one clarifying question about the behavior or data shape that distinguishes them. Do not fall back to "typical" packetizer values.
For disabled entries in a mixed enabled/disabled design, fill the peer arrays with ignored placeholder values matching the RTL bypass constants:
SIF_RX_VP_COUNT[i] = 1SIF_RX_SORT_RESOLUTION[i] = 2SIF_RX_VP_SIZE[i] = 32SIF_RX_NUM_CYCLES[i] = 1
Emitted Field Format
The enable array must always have exactly
SENSOR_RX_IF_INSTentries.If any enable entry is
1, emit all four peer arrays at exactlySENSOR_RX_IF_INSTlength.If every enable entry is
0, emit onlySIF_RX_PACKETIZER_EN[]; the four peer arrays are not required for the packetizer decision.Use positional array syntax for mixed per-port values. Use
'{default:<value>}only when every entry is identical and that form improves readability.Do not emit or modify
SENSOR_RX_IF_INST,SIF_RX_WIDTH[],DATAPATH_WIDTH, host fields, clocks, or any non-packetizer macros from this skill.After emitting the block or overlay, explain the selected settings in terms of the user's input data and manipulation needs. Keep the explanation after the fenced output so downstream tools can consume the block first.
Standalone SVH
Use this when the user asks for packetizer lines to add to a HOLOLINK_def.svh.
Steps:
Gather the required facts.
Load
references/packetizer-def-fields.mdfor choosing values, checking constraints, and using the canonical standalone output formatting.Emit a fenced
systemverilogblock containing only the packetizer localparams.Explain what the settings allow for the user's data manipulation: which RX interfaces use packetizer hardware, how many virtual streams they expose, the per-stream width, the data-rearrangement granularity, and whether the operation is single-cycle or multi-cycle.
Add a short note that whole-file validation should be done with
hsb-ip-defor itsvalidate_def.py.
Def-Skill Handoff
Use this when invoked by hsb-ip-def while that skill is generating a full HOLOLINK_def.svh.
Steps:
Gather only packetizer-specific requirements not already known from the def flow.
Load
references/handoff-contract.md.Emit one labeled YAML overlay first. Do not write an introductory sentence before the
packetizer_profile_overlaylabel once requirements are known. The def skill consumes the flat keys directly.After the overlay, add a concise explanation of what the settings allow for the user's data description and manipulation needs.
Required label:
packetizer_profile_overlay
YAML keys:
sif_rx_packetizer_ensif_rx_vp_countonly when any enable is1sif_rx_sort_resolutiononly when any enable is1sif_rx_vp_sizeonly when any enable is1sif_rx_num_cyclesonly when any enable is1
Example shape:
packetizer_profile_overlay
sif_rx_packetizer_en: [1, 0]
sif_rx_vp_count: [4, 1]
sif_rx_sort_resolution: [16, 2]
sif_rx_vp_size: [128, 32]
sif_rx_num_cycles: [1, 1]The def skill remains responsible for merging this overlay into its profile, generating the final SVH, and running full validation.
Explain
Use this when the user asks what a packetizer field does, why a value matters, or whether a packetizer combination is suitable.
Steps:
Load
references/packetizer-def-fields.mdfor field-level answers.Load
references/packetizer-architecture.mdfor architecture, data flow, clock domains, or runtime APB behavior.Cite source locations in the form
top/HOLOLINK_top.sv:1356-1362orpacketizer/packetizer.sv:69-85when explaining RTL behavior.For legality questions that affect the whole
HOLOLINK_def.svh, state the packetizer-local concern and tell the user to validate the full file withhsb-ip-def.
Troubleshooting
Sensor RX disabled: emit no packetizer arrays and explain that packetizer hardware is only for Sensor RX interfaces.
Missing data-shape facts: ask one clarifying question about stream count, lane width, cycle window, or ordering before deriving fields.
Runtime APB pattern-RAM request: explain that runtime programming is outside v1 generated output and load
references/packetizer-architecture.mdonly for context.Whole-file legality concern: state the packetizer-local issue and direct validation back to
hsb-ip-def.
Examples
Use hsb-ip-packetizer to choose packetizer fields for two Sensor RX interfaces. RX0 is 512 bits and must split each input word into four 128-bit virtual streams; RX1 is pass-through.Treat as Standalone SVH and emit only packetizer localparams: enable[1, 0], virtual-port count[4, 1], sort resolution[512, 2]for a contiguous split without lane reordering, virtual-port size[128, 32], and cycles[1, 1]. Tell the user to run full-file validation withhsb-ip-def.hsb-ip-def is generating my HOLOLINK_def.svh and needs packetizer values. RX0 should rearrange 16-bit lanes into four virtual streams; RX1 should stay pass-through.Treat as Def-Skill Handoff and put the YAML overlay first:
packetizer_profile_overlay
sif_rx_packetizer_en: [1, 0]
sif_rx_vp_count: [4, 1]
sif_rx_sort_resolution: [16, 2]
sif_rx_vp_size: [16, 32]
sif_rx_num_cycles: [1, 1] Then state that hsb-ip-def remains responsible for merging this overlay, generating the full HOLOLINK_def.svh, and running full validation.
Do I need hsb-ip-packetizer if SENSOR_RX_IF_INST is disabled in my HOLOLINK_def.svh?Explain that packetizer fields apply only to Sensor RX interfaces, emit no packetizer arrays, and avoid runtime APB pattern-RAM configuration.
Limitations
Do not generate full
HOLOLINK_def.svhfiles.Do not validate full
HOLOLINK_def.svhfiles.Do not generate runtime APB writes or pattern-RAM contents in v1.
Do not choose packetizer values from corpus frequency or archetype popularity.
Files
- ATTRIBUTION.mdAdded by AutoGineer916 B
- BENCHMARK.md3.4 KiB
- LICENSELicence file added by AutoGineer11.2 KiB
- SKILL.md14.0 KiB
- evals/evals.json3.1 KiB
- references/handoff-contract.md3.0 KiB
- references/packetizer-architecture.md4.4 KiB
- references/packetizer-def-fields.md6.2 KiB
- skill-card.md3.8 KiB
- skill.oms.sig5.2 KiB
ATTRIBUTION.md
Attribution
This folder is an unmodified copy of the Agent Skill "hsb-ip-packetizer", distributed by AutoGineer (https://autogineer.com/agent-skills).
Commit: fce3cca4170be75e82c64920654d56ee2811b005
Created by: Holoscan Team (https://github.com/NVIDIA/skills/tree/fce3cca4170be75e82c64920654d56ee2811b005/skills/hsb-ip-packetizer)
Publisher: NVIDIA (https://github.com/NVIDIA)
Licence: Apache License 2.0 (https://spdx.org/licenses/Apache-2.0.html)
Licence evidence: declared in the frontmatter ("license: Apache-2.0")
Retrieved: 2026-11-07
The skill's own files are unmodified copies. AutoGineer is not affiliated with or endorsed by the author or the publisher.
Files added by AutoGineer
ATTRIBUTION.md: this file, written by AutoGineer
LICENSE: copied from LICENSE-APACHE
Requirements and compatibility
Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta
“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.
The author says: Targets HSB IP rev 16'h2604; backward-compatible with 16'h2603. Prefer live HSB IP packetizer source when available; warn on unknown revisions. Designed to work standalone or as a companion to hsb-ip-def.
Security
What our scanner noticed· Medium risk
- Large base64-encoded blobs
A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.
Attribution and licence
- Created by
- Holoscan Team
- Publisher
- NVIDIA (Official)
- Distributed by
- NVIDIA
- Source
- NVIDIA/skills · skills/hsb-ip-packetizer · commit fce3cca
- Licence
- Apache License 2.0 (redistribution allowed)
- LICENSE (added by AutoGineer from LICENSE-APACHE)
- ATTRIBUTION.md (written by AutoGineer)
- Synced
AutoGineer is not affiliated with or endorsed by Holoscan Team or NVIDIA.
Download ZIP
The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download hsb-ip-packetizer.zip