systemverilog

Enforce synthesizable SystemVerilog design patterns with interfaces and typedefs.

2|1|Updated Apr 6, 2026
One-click install
npx skills add https://github.com/tangyangchao578-art/icer_skill_package --skill systemverilog-tangyangchao578-art
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: systemverilog
Source: https://github.com/tangyangchao578-art/icer_skill_package/tree/main/skills/systemverilog
Command: npx skills add https://github.com/tangyangchao578-art/icer_skill_package --skill systemverilog-tangyangchao578-art

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

SystemVerilog usage guidance delivers structured patterns and best practices to write robust, maintainable SV code for both design and verification.

Core Features & Use Cases

  • Synthesizable design patterns using always_ff and always_comb
  • Interfaces and modports for clean module connectivity
  • Parameterization, generate blocks, typedef/struct/enum usage
  • Verification-oriented practices with clear separation of concerns
  • Practical examples across common design and verification tasks

Quick Start

Enable SystemVerilog usage skill to start applying best practices immediately.

Frequently Asked Questions about systemverilog

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

FAQPage Schema
How do I write synthesizable SystemVerilog using always_ff and always_comb?

Use always_ff for sequential logic and always_comb for combinational logic to enforce clean coding standards and prevent inferred latches. This separation ensures synthesizable patterns and maintainable RTL design.

What is the best way to use interfaces and modports for module connectivity in SystemVerilog?

The best way to manage module connectivity is using SystemVerilog interfaces and modports to bundle signals and define directional access, creating clear verification-oriented structures and reducing wiring errors.

How do I use typedef, struct, and enum definitions across multiple modules?

Define SystemVerilog typedef, struct, and enum types in a shared package to enable consistent type usage across modules. This enforces clean coding standards and clear verification-oriented structures.

When do I need generate blocks and parameterization in RTL design?

Use SystemVerilog generate blocks and parameterization when you need conditional instantiation or scalable RTL design. They enable reusable, synthesizable patterns for varying data widths or module configurations.

Does this approach support verification tasks as well as RTL design?

Yes, this SystemVerilog approach supports both RTL design and verification tasks by enforcing clear separation of concerns, using interfaces, and maintaining verification-oriented structures for robust testbenches.