From rtl-agent-team
Provides CDC verification policies for RTL: clock/reset naming conventions, synchronizer type selection, violation categories, SDC constraints, and checklists.
npx claudepluginhub babyworm/rtl-agent-team --plugin rtl-agent-teamThis skill uses the workspace's default tool permissions.
CDC analysis MUST recognize the project clock/reset naming conventions (CLAUDE.md):
Generates design tokens/docs from CSS/Tailwind/styled-components codebases, audits visual consistency across 10 dimensions, detects AI slop in UI.
Records polished WebM UI demo videos of web apps using Playwright with cursor overlay, natural pacing, and three-phase scripting. Activates for demo, walkthrough, screen recording, or tutorial requests.
Delivers idiomatic Kotlin patterns for null safety, immutability, sealed classes, coroutines, Flows, extensions, DSL builders, and Gradle DSL. Use when writing, reviewing, refactoring, or designing Kotlin code.
CDC analysis MUST recognize the project clock/reset naming conventions (CLAUDE.md):
clk (single domain) or {domain}_clk (multiple domains, e.g., sys_clk, axi_clk, pixel_clk)
clk_i, clk_sys — these are non-conformantrst_n (single domain) or {domain}_rst_n (multiple domains, e.g., sys_rst_n, axi_rst_n)
rst_ni — this is non-conformanti_ prefix not required (exception). All other ports require i_/o_/io_u_ prefix (e.g., u_sync_axi_to_sys)u_ prefix (e.g., u_gray_encoder)If RTL uses non-conformant clock/reset names, flag as a CONVENTION VIOLATION in the report in addition to any CDC violations.
{domain}_clk format)| Crossing Type | Recommended Synchronizer |
|---|---|
| Single-bit control | 2-FF synchronizer (3-FF for high-freq) |
| Multi-bit counter | Gray code FIFO |
| Multi-bit data bus | Handshake (REQ/ACK) or MUX synchronizer |
| Single-cycle pulse | Pulse synchronizer (toggle-based) |
| Bulk data (cross-domain R+W) | Dual-port SRAM (sram_dp with wclk/rclk) |
| Reset signal | Async assert, sync deassert reset synchronizer |
sram_dp from rtl/common/ is inherently a CDC element — write port on wclk, read port on rclk.
wclk and rclk MUST be in different clock domains (verified in CDC analysis)i_waddr, i_wen, i_raddr, i_ren) must be generated within their respective clock domainsset_clock_groups -asynchronous between wclk and rclk domainssram_dp instances and verify wclk/rclk domain assignmentFor comprehensive CDC analysis, commercial tools (SpyGlass CDC, Conformal CDC, Questa CDC) provide formal proof of synchronizer correctness beyond structural analysis.
See references/cdc-patterns.md for SDC constraint templates, violation checklist,
and detailed synchronizer implementation guidance.