Vivado Synth

SKILL待分类
待分类 未标注权限 许可证不明确

Use this skill when the user needs help with Vivado synthesis strategy selection, synthesis attribute configuration, synth_design option tuning, resource inference control (RAM/DSP/SRL/BRAM), hierarchy optimization (flatten_hierarchy, KEEP_HIERARCHY), OOC (out-of-context) synthesis, incremental synthesis, RTL linting, Block-Level synthesis (BLOCK_SYNTH), or any synthesis optimization decision. Trigger when the user mentions synthesis strategies, synthesis directives, synthesis attributes, resource mapping control, FSM encoding, retiming, or asks how to optimize synthesis results for area/timing/power. This skill provides decision-making knowledge — for TCL command execution, use vivado-tcl skill.

一句话选型结论

按资料字段整理

Vivado Synth是待分类类的 Agent Skill,安装方式:GitHub 仓库,权限级别未标注,许可证不明确,没有现成安装命令,需按说明手动放置 SKILL.md。技能本质是给模型读的说明书,效果取决于模型与客户端;装完先用一个小任务验证,再放进正式流程。

分类待分类 安装方式GitHub 仓库 权限级别未标注权限 许可证许可证不明确
累计安装 未标注 本周 未标注
GitHub 星标 未标注 仓库 fpga-agent
下载量 未标注 技能市场下载数
权限级别 未标注权限 安装前请确认风险范围
许可证 许可证不明确 未说明

安装

GitHub 仓库
在支持 Skills 的客户端里执行,装完问一句「你有哪些技能」验证
  1. 1
    确认客户端支持

    确认你的客户端支持 Skills(Claude、Codex、Cursor 等),并升级到较新的版本。

  2. 2
    拿到技能文件

    按安装说明或仓库 README,把 SKILL.md 放到客户端的 skills 目录(一般一个技能一个文件夹)。

  3. 3
    刷新技能列表

    重新打开客户端,或刷新技能列表,让新放进来的技能被加载。

  4. 4
    验证是否生效

    问一句「你有哪些技能」,确认列表里出现它,再拿一个小任务试跑。

技能档案

待分类
字段来自技能仓库与公开索引,中文说明由本站标注
作者 / 维护方shinei-nouzen-arch仓库 fpga-agent · 版本 未标注
宿主客户端未标注技能可被这些客户端加载
安装方式GitHub 仓库安装包 shinei-nouzen-arch/fpga-agent
权限级别未标注权限安装前请确认风险范围
许可证未说明许可证不明确,商用前请自行确认条款
仓库可用性available技能仓库当前是否可访问
最近核验未标注上游最后核验时间 · 数据更新 2026-09-05
正文体量14.0 KBSKILL.md 原文大小,越大说明说明书写得越细

典型使用场景

3 类
按分类整理的常见用法,具体以 SKILL.md 为准
探索新能力

先试一类新技能能做什么。

当通用助手

让模型按说明书处理常见任务。

补齐模型缺的技能

给模型补上它原本没有的做法。

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 基础信息齐全,可以先按说明装一个试试。

先想清楚的地方

  • 没有标注权限级别,实际能做什么要装好后确认。
  • 许可证不明确,商用或二次分发前先到仓库确认条款。
  • 没有现成安装命令,要按安装说明或仓库 README 手动放置。
  • 没有做站内核验,内容以作者仓库为准。
  • 技能只是说明书,实际效果取决于模型与客户端,装完先用小任务试一遍。

更适合

  • 需要在待分类场景里给模型补一套做法的人。
  • 愿意先读一遍 SKILL.md、确认它会让模型做什么的人。

不太适合

  • 对许可证要求很严、必须明确可商用的人。
  • 只想装完就自动变强、不打算看说明书的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
技能权限级别安装方式累计安装宿主客户端安装命令
Vivado Synth当前 未标注权限 GitHub 仓库 未标注 未标注 无
着色页 联网访问 GitHub 仓库 1.4 万 Codex、Claude、Cursor 有
获取焦点模式 未标注权限 GitHub 仓库 1.1 万 Codex、Claude、Cursor 有
Nano PDF 文档 只读 GitHub 仓库 6,823 Codex、Claude、Cursor 有
Civil Servant 未标注权限 GitHub 仓库 — 未标注 无
07 Project Handoff 未标注权限 GitHub 仓库 — 未标注 无

SKILL.md 全文

14.0 KB
模型实际读到的说明书原文,来自技能仓库

Vivado Synthesis Decision Guide

Based on UG901 (v2025.2). This skill helps choose the right synthesis strategies, options, and attributes. For attribute syntax see REFERENCE.md; for HDL coding templates (RAM/DSP/ROM/SRL/FSM/etc.) see examples/ directory — consult the index table in REFERENCE.md to locate the right file.

synth_design Complete Options

Hierarchy Control

Option Values Default Effect
-flatten_hierarchy none/full/rebuilt rebuilt none: preserve RTL hierarchy. full: flatten to top only. rebuilt: flatten then rebuild similar hierarchy (best QoR + readability)

Timing Optimization

Option Values Default Effect
-directive See strategy table below Default Selects preconfigured optimization strategy
-global_retiming auto/on/off auto Register balancing across combinational logic. Auto = on for Versal, off for others
-no_timing_driven flag — Disables timing-driven synthesis (faster, worse timing)

Resource Control

Option Values Default Effect
-max_bram integer -1 (max) Limit Block RAM usage
-max_uram integer -1 (max) Limit UltraRAM usage (UltraScale+)
-max_dsp integer -1 (max) Limit DSP block usage
-shreg_min_size integer 3 Min chain length for SRL inference
-srl_style register/rl/srl_reg/reg_srl/reg_srl_reg — Global SRL implementation style
-cascade_dsp auto/tree/force auto DSP adder chain implementation
-max_bram_cascade_height integer -1 Max BRAM cascade depth
-max_uram_cascade_height integer -1 Max UltraRAM cascade depth
-no_srlextract flag — Disable all SRL extraction
-no_lc flag — Disable LUT combining

FSM & Logic

Option Values Default Effect
-fsm_extraction auto/one_hot/sequential/gray/johnson/user_encoding/off auto FSM encoding strategy
-resource_sharing auto/on/off auto Arithmetic operator sharing
-keep_equivalent_registers flag off Prevent merging of equivalent registers
-control_set_opt_threshold auto/integer/0 auto Fanout threshold for control set optimization. 0 = disable

Clock & IO

Option Values Default Effect
-bufg integer 12 Max global clock buffers to infer
-gated_clock_conversion off/on/auto off Convert gated clocks to enables

Design Entry

Option Values Default Effect
-top module name — Top module
-part part number — Target FPGA part
-constrset fileset name — Constraint fileset to use
-include_dirs paths — Verilog include search dirs
-generic name=value — Override Verilog parameters / VHDL generics
-verilog_define macro[=text] — Define Verilog macros
-mode default/out_of_context default OOC mode: no IO buffers

Special Modes

Option Values Default Effect
-rtl flag — Elaborate only, don't synthesize
-lint flag — Run RTL Linter only (see section below)
-incremental_mode default/quick/off default Incremental synthesis mode
-sfcu flag — Single-file compilation unit mode

Debug & Performance

Option Values Default Effect
-debug_log flag — Extra debug info in log
-assert flag — Enable VHDL assertions

Multi-Threading

set_param general.maxThreads 8  ;# 1-8 threads for synthesis

Strategy Decision Table

Use -directive <strategy> to select:

Scenario Strategy Key Effect
Default / first try default Balanced optimization
Fast iteration / debug runtimeoptimized Fewer optimizations, faster runtime
Resource-constrained AreaOptimized_high Force ternary adders, includes AreaMapLargeShiftRegToBRAM + AreaMultThresholdDSP
Resource-constrained (moderate) AreaOptimized_medium Area-optimized MUX, ternary adders, lower multiplier→DSP threshold
Timing-critical PerformanceOptimized Logic level reduction at expense of area
Routing congestion AlternateRoutability Less MUXF/CARRY usage for better routability
Minimum area LogicCompaction Compact CARRY+LUT into fewer SLICEs (negative timing impact)
DSP-heavy AreaMultThresholdDSP Lower threshold for multiplier→DSP inference
Carry-chain issues FewerCarryChains Higher threshold to use LUTs instead of carry chains
Large shift registers AreaMapLargeShiftRegToBRAM Implement large shift regs in Block RAM

Note: Directive values are case-sensitive in v2025.2. Use exactly as shown above.


Synthesis Attributes Quick Reference (by scenario)

Preventing Optimization

Attribute Values Where When to Use
DONT_TOUCH TRUE/FALSE RTL+XDC Prevent optimization AND preserve through P&R. Strongest protection
KEEP TRUE/FALSE RTL only Prevent signal absorption into LUTs. Synthesis-only, NOT forwarded to P&R
KEEP_HIERARCHY TRUE/SOFT/FALSE RTL+XDC SOFT (recommended): allow constant propagation. TRUE: block all cross-boundary optimization

Resource Inference Control

Attribute Values Where When to Use
RAM_STYLE block/distributed/registers/ultra/mixed/auto RTL+XDC Force specific RAM implementation
ROM_STYLE block/distributed/ultra RTL+XDC Force specific ROM implementation
USE_DSP yes/no/logic/simd RTL+XDC Force/prevent DSP block usage. logic=XOR→DSP, simd=SIMD mode
SHREG_EXTRACT yes/no RTL+XDC Enable/disable SRL inference
SRL_STYLE register/srl/srl_reg/reg_srl/reg_srl_reg/block RTL+XDC Specific SRL implementation
RAM_DECOMP power/area RTL+XDC RAM split: power = address decode (saves power), area = smallest
CASCADE_HEIGHT integer (0=disable) RTL+XDC BRAM/URAM cascade chain length (UltraScale+ only)
RW_ADDR_COLLISION auto/yes/no RTL only Read-write collision handling

Timing Optimization

Attribute Values Where When to Use
RETIMING_FORWARD integer (0=off) RTL+XDC Move register forward through logic
RETIMING_BACKWARD integer (0=off) RTL+XDC Move register backward through logic
CRITICAL_SIG_OPT true/false RTL+XDC Shannon decomposition on critical feedback loops. Trades area for timing
MAX_FANOUT integer (-1=no limit) RTL+XDC Fanout limit → triggers register replication. Best on local signals only

Debug

Attribute Values Where When to Use
MARK_DEBUG TRUE/FALSE RTL+XDC Mark nets for ILA debug probing
ASYNC_REG TRUE/FALSE RTL+XDC Mark CDC synchronizer registers

FSM

Attribute Values Where When to Use
FSM_ENCODING one_hot/sequential/gray/johnson/user_encoding/none RTL+XDC Override FSM encoding
FSM_SAFE_STATE auto_safe_state/reset_state/power_on_state/default_state RTL+XDC Add invalid state recovery logic

IO & Clock

Attribute Values Where When to Use
IOB TRUE/FALSE RTL only Pack register into IOB
IO_BUFFER_TYPE NONE RTL only Disable automatic IO buffer insertion
CLOCK_BUFFER_TYPE BUFG/BUFH/BUFIO/BUFMR/BUFR/none RTL+XDC Specify clock buffer type
GATED_CLOCK yes RTL+XDC Mark signal as clock for gated clock conversion

Enable & Reset

Attribute Values Where When to Use
DIRECT_ENABLE yes RTL+XDC Force signal to CE pin of register
DIRECT_RESET yes RTL+XDC Force signal to reset pin of register
EXTRACT_ENABLE yes/no RTL+XDC Control enable extraction to CE pin
EXTRACT_RESET yes/no RTL+XDC Control reset extraction (sync reset only)

DSP Folding

Attribute Values Where When to Use
DSP_FOLDING yes/no RTL only Fold two MAC structures into one DSP
DSP_FOLDING_FASTCLOCK yes/no RTL only Designate fast clock port for DSP folding

Verilog Case Control

Attribute Values Where When to Use
FULL_CASE (presence) RTL only All case values covered — suppress latch inference
PARALLEL_CASE (presence) RTL only Build as parallel if-elsif, no priority

Other

Attribute Values Where When to Use
BLACK_BOX (presence) RTL only Force module to black box
TRANSLATE_OFF/ON comment-based RTL only Exclude code from synthesis

Block-Level Synthesis (BLOCK_SYNTH)

Apply per-instance synthesis settings via XDC:

set_property BLOCK_SYNTH.<option> <value> [get_cells <instance>]
Option Type Values Description
STRATEGY STRING DEFAULT/AREA_OPTIMIZED/ALTERNATE_ROUTABILITY/PERFORMANCE_OPTIMIZED Per-instance strategy
RETIMING INT 0/1 Enable/disable retiming
ADDER_THRESHOLD INT 4-128 Adder size → CARRY chain threshold
COMPARATOR_THRESHOLD INT 4-128 Comparator size → CARRY chain threshold
SHREG_MIN_SIZE INT 3-32 SRL inference threshold
FSM_EXTRACTION STRING OFF/ONE_HOT/SEQUENTIAL/GRAY/JOHNSON/AUTO FSM encoding
LUT_COMBINING INT 0/1 Enable/disable LUT combining
CONTROL_SET_THRESHOLD INT 0-128 Control set optimization threshold
MAX_LUT_INPUT INT 4-6 4=no LUT5/6, 5=no LUT6, 6=all
MUXF_MAPPING INT 0/1 Enable/disable MUXF7/F8/F9
KEEP_EQUIVALENT_REGISTER INT 0/1 Merge or retain equivalent registers
PRESERVE_BOUNDARY INT any Mark hierarchy as changing (for incremental)
LOGIC_COMPACTION INT 1 Compact CARRY+LUT into fewer SLICEs
SRL_STYLE STRING REGISTER/SRL/SRL_REG/REG_SRL/REG_SRL_REG SRL implementation

Note: BLOCK_SYNTH hardens the instance hierarchy. Use only where needed.


OOC (Out-of-Context) Synthesis

When to use: Large IP modules, 3rd-party netlists, modules that rarely change.

# Non-Project Mode
synth_design -top <module> -part <part> -mode out_of_context

# Project Mode: right-click module → Set As Out-of-Context for Synthesis

Key rules:
- OOC modules are synthesized independently, treated as black boxes in top-level synthesis
- No IO buffers are created
- Incremental synthesis is NOT supported for OOC runs
- Do NOT use OOC if module has AMD IP in lower levels
- Do NOT use OOC if module ports use user-defined types


Incremental Synthesis

Detects RTL changes and only re-synthesizes modified sections. Reduces runtime and QoR fluctuation.

# Project Mode: Settings → Synthesis → Incremental synthesis
# Non-Project Mode:
synth_design -top <top> -part <part> -incremental_mode default
Mode Effect
default Full incremental (detect + selective re-synthesis)
quick Faster, less thorough incremental
off Full re-synthesis

Note: Not supported for OOC runs.


RTL Linter

Pre-synthesis code quality check:

synth_design -lint -top <top> -part <part>
# For OOC runs:
synth_design -lint -srcset [get_property SRCSET [get_runs my_IP_core_synth_1]]

Key rules detected: latch inference (INFER-1), combinational loops (INFER-4), arithmetic overflow (ASSIGN-1), mixed clock edges (CLOCK-1), mixed async resets (RESET-1), unconnected ports (ASSIGN-12). See REFERENCE.md for complete rule table.

Waivers:

create_waiver -type LINT -id ASSIGN-1 -rtl_hierarchy x/y
write_waivers -type LINT -file waivers.tcl

Synthesis-Stage Constraints

Only these constraints are used during synthesis:

Type Commands
Timing create_clock, create_generated_clock, set_input_delay, set_output_delay, set_false_path, set_multicycle_path, set_max_delay, set_clock_groups, set_clock_latency, set_disable_timing
Object Access all_clocks, all_inputs, all_outputs, get_cells, get_ports, get_clocks, get_nets, get_pins

Important: Timing analysis on synthesized design uses estimated routing delays — only post-route timing is accurate.


Attribute Propagation Rules

  • Placing attribute on a hierarchy affects only its boundary, NOT signals inside (except: DSP_FOLDING, RAM_STYLE, ROM_STYLE, SHREG_EXTRACT, USE_DSP — these DO affect internal signals)
  • If same attribute is set in both RTL and XDC with different values → XDC wins
  • KEEP must be set in RTL; XDC does not support it.
  • DONT_TOUCH supports both RTL and XDC. Set it in RTL when the object may be optimized away before XDC is read. For existing applicable cells or nets, XDC can set or override the property without requiring an RTL edit. Preserve the user's requested modification scope.

常见问题

5 问
答案由本站依据条目字段整理
Vivado Synth怎么安装?

没有现成安装命令:按安装说明或仓库 README,把 SKILL.md 放进客户端的 skills 目录(一般一个技能一个文件夹)。

Vivado Synth支持哪些客户端?

资料没有标注宿主客户端,但只要客户端支持 Skills(Claude、Codex、Cursor 等),一般都能加载。

Vivado Synth权限高吗,安全吗?

权限级别为未标注权限。安装前先看它会读取或写入哪些内容。

Vivado Synth收费吗?

本站不代收费用,也没有标注具体价格。是否收费取决于技能本身和所用的模型或客户端,正式使用前按作者说明确认。

Vivado Synth用什么许可证?

许可证标注为 未说明(许可证不明确)。商用或二次分发前请到仓库确认条款原文。

热门专题

按场景挑技能
全部专题 →

技能内容以作者仓库为准;分类、权限级别与许可证状态的中文说明为中文整理,最近核验 未标注。