systemverilog

Enforce SystemVerilog coding conventions on generated and modified RTL files.

43|9|Updated Feb 25, 2026
One-click install
npx skills add https://github.com/babyworm/rtl-agent-team --skill systemverilog
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: systemverilog
Source: https://github.com/babyworm/rtl-agent-team/tree/main/skills/systemverilog
Command: npx skills add https://github.com/babyworm/rtl-agent-team --skill systemverilog

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

Inconsistent SystemVerilog style and tool-incompatible patterns cause lint failures, synthesis issues, fragile clock/reset naming, and unreadable RTL that hinders reviews and automation. This Skill centralizes project-specific overrides, enforces naming, declaration order, and synthesizable constructs so generated or modified .sv/.v files are lint- and synthesis-ready.

Core Features & Use Cases

  • Naming and Style Enforcement: Enforces port prefixes, snake_case or ALL_CAPS identifiers, no CamelCase, parameter and localparam conventions, and instance/file naming rules.
  • Synthesis and Lint Compatibility: Requires logic-only signals, always_ff/always_comb usage, default cases, no magic numbers, and iverilog/VCS compatibility restrictions.
  • Declaration Order & Module Structure: Validates mandatory declaration ordering, one-module-per-file rule, and package-based shared types.
  • Context-Specific Patterns: Provides power optimization, memory wrapper selection, FPGA considerations, and pipelining guidance for timing closure.
  • Use Cases: Run before rtl-lint-check or rtl-synth-check, apply when auto-generating modules or testbenches, and consult when agents perform RTL modifications or create new packages.

Quick Start

Ask the systemverilog skill to validate and enforce project naming, declaration order, and synthesis-safe constructs on generated .sv files.

Frequently Asked Questions about systemverilog

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I enforce consistent SystemVerilog RTL coding conventions for synthesis and linting?

To enforce consistent SystemVerilog RTL coding conventions, apply rules for port prefixes, snake_case identifiers, declaration order, and always_ff/always_comb usage to ensure generated .sv files are synthesis- and lint-ready.

What SystemVerilog naming conventions are required for VCS and iverilog compatibility?

Required SystemVerilog naming conventions include using port prefixes, snake_case or ALL_CAPS identifiers, avoiding CamelCase, and matching filenames to module names to satisfy VCS and iverilog simulator compatibility restrictions.

How do I validate declaration order and module structure in SystemVerilog files?

To validate SystemVerilog module structure, enforce a mandatory declaration order, apply the one-module-per-file rule, and use package-based shared types to maintain consistent RTL hierarchy across generated files.

Does this approach support power optimization and timing closure for RTL design?

Yes, this approach supports power optimization and timing closure by providing context-specific patterns for memory wrapper selection, FPGA considerations, and pipelining guidance during RTL implementation.

When should I run SystemVerilog convention checks during RTL generation workflows?

Run SystemVerilog convention checks before rtl-lint-check or rtl-synth-check, and apply them when auto-generating modules or testbenches, or when agents perform RTL modifications and create new packages.

Why do my generated SystemVerilog files fail lint checks due to magic numbers and synthesis issues?

Generated SystemVerilog files fail lint checks due to missing default cases, magic numbers, or non-synthesizable constructs; enforcing logic-only signals and standard always_ff/always_comb blocks resolves these synthesis issues.