vivado-synth

Select Vivado synthesis directives, attributes, and options for FPGA design constraints.

27|5|Updated Apr 19, 2026
One-click install
npx skills add https://github.com/adeleempurpled290/FPGA-Agent-skills --skill vivado-synth-adeleempurpled290
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: vivado-synth
Source: https://github.com/adeleempurpled290/FPGA-Agent-skills/tree/main/vivado-synth
Command: npx skills add https://github.com/adeleempurpled290/FPGA-Agent-skills --skill vivado-synth-adeleempurpled290

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

FPGA designers often struggle to navigate the dozens of Vivado synthesis options, attributes, and strategies to meet timing, area, and resource goals without time-consuming trial and error. This skill eliminates that guesswork with clear, actionable guidance aligned with official AMD documentation.

Core Features & Use Cases

  • Synthesis Strategy Selection: Choose the right -directive (e.g., PerformanceOptimized, AreaOptimized_high) based on your design priorities (timing closure, area reduction, routability).
  • Attribute Configuration Support: Get exact syntax and use cases for synthesis attributes like DONT_TOUCH, KEEP_HIERARCHY, RAM_STYLE, FSM_ENCODING, and MAX_FANOUT to control optimization, resource inference, and debug.
  • Advanced Workflow Guidance: Covers out-of-context (OOC) synthesis, incremental synthesis, block-level synthesis (BLOCK_SYNTH), and pre-synthesis RTL linting to catch errors early and reduce runtime.
  • Use Case Example: If your design is failing timing closure, use this skill to identify the correct retiming, critical signal optimization, and strategy settings to meet your timing goals without excessive area overhead.

Quick Start

Use the vivado-synth skill to select the optimal synthesis strategy and attributes for your Vivado FPGA design to meet your timing, area, and resource requirements.

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 best Vivado synthesis directive for timing closure?

Vivado synthesis directives like PerformanceOptimized or AreaOptimized_high are selected based on design priorities such as timing closure, area reduction, or routability to meet specific design constraints.

What synthesis attributes control RAM and DSP inference in FPGA RTL?

Synthesis attributes such as RAM_STYLE, DONT_TOUCH, and FSM_ENCODING control FPGA resource inference, optimization, and debug behavior directly within the RTL code.

When should I use out-of-context synthesis for FPGA block-level design?

Out-of-context synthesis is used for block-level synthesis to catch errors early, reduce runtime, and isolate module optimization without integrating the entire FPGA design hierarchy.

How do I fix failing timing closure without excessive FPGA area overhead?

Fix failing timing closure by applying retiming, critical signal optimization, and selecting the appropriate synthesis strategy settings to meet timing goals without excessive area overhead.

Does pre-synthesis RTL linting work with incremental Vivado synthesis workflows?

Pre-synthesis RTL linting interprets lint rules to catch errors early and works alongside incremental synthesis and block-level settings to reduce overall Vivado synthesis runtime.