vivado-synth

Identify optimal Vivado synthesis strategies and attribute configurations for QoR.

156|19|Updated Mar 27, 2026
One-click install
npx skills add https://github.com/Shinei-Nouzen-Arch/FPGA-Agent-skills --skill vivado-synth-shinei-nouzen-arch
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: vivado-synth
Source: https://github.com/Shinei-Nouzen-Arch/FPGA-Agent-skills/tree/main/vivado-synth
Command: npx skills add https://github.com/Shinei-Nouzen-Arch/FPGA-Agent-skills --skill vivado-synth-shinei-nouzen-arch

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

This skill helps engineers choose appropriate Vivado synthesis strategies, options, and attributes to optimize area, timing, and power while meeting project constraints.

Core Features & Use Cases

  • Choose synthesis strategies and directives to optimize QoR across RTL-to-synthesis flows.
  • Configure resource mapping and hierarchy controls (RAM_STYLE/USE_DSP/SHREG_EXTRACT, flatten_hierarchy, KEEP_HIERARCHY) and pattern-based synthesis for OOC or incremental flows.
  • Support RTL linting and Block-Level synthesis (BLOCK_SYNTH) planning to balance QoR across modules and IP blocks.

Quick Start

Tell me your QoR priorities and target part, and I will propose a synthesis strategy and attribute plan.

Frequently Asked Questions about vivado-synth

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

FAQPage Schema
How do I choose the right Vivado synthesis directives to optimize timing and area?▼

Vivado synthesis directives are chosen by evaluating your QoR priorities and target part to balance area, timing, and power trade-offs. This approach matches directive selection and resource inference controls like USE_DSP to your specific design constraints.

What is the best way to configure RAM_STYLE and USE_DSP attributes for FPGA synthesis?▼

Configuring RAM_STYLE and USE_DSP attributes requires mapping resources based on your desired QoR. This involves selecting appropriate synthesis strategies to control pattern-based resource inference, ensuring optimal logic distribution across the FPGA fabric.

When do I need out-of-context or incremental synthesis flows in Vivado?▼

Out-of-context and incremental synthesis flows are needed when managing complex designs where block-level QoR balancing is critical. These flows use hierarchy controls like flatten_hierarchy and KEEP_HIERARCHY to isolate modules and reduce runtime.

Can I balance QoR across specific modules using block-level synthesis?▼

Yes, block-level synthesis balances QoR across specific modules and IP blocks. By applying BLOCK_SYNTH planning and localized attribute configurations, you can independently optimize individual modules without affecting the entire design.

Why does flatten_hierarchy affect my Vivado synthesis results and timing closure?▼

Flatten_hierarchy affects synthesis results by removing logical boundaries to allow cross-boundary optimization. Adjusting this hierarchy option changes how the tool processes logic, heavily influencing timing closure and resource inference outcomes.

How do I control FSM extraction and SHREG_EXTRACT during RTL synthesis?▼

FSM extraction and SHREG_EXTRACT are controlled by applying specific synthesis attributes to your RTL. This guides the tool's pattern recognition for state machines and shift registers, directly impacting overall area and timing QoR.