Vivado Red MCP

io.github.sinemortal由 GitHub 账号 sinemortal 发布v0.5.0更新于 Nov 7, 2026

通过AI助手驱动AMD Vivado,包含Red Pitaya STEMlab 125-14的构建与部署流程。

AI 翻译由 AI 模型根据下方的原文描述翻译,可能有误。

原文描述

Drive AMD Vivado from AI assistants, with Red Pitaya STEMlab 125-14 build and deploy flows.

已验证STDIO仅桌面

概览

Vivado Red 的本地 MCP 服务;无需登录;STDIO;93 个工具。

暂无 AI 概览:以下信息来自注册中心条目和服务本身。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Vivado Red MCP,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

vivado-red-mcp — Vivado MCP server, Red Pitaya edition

An MCP server that lets an AI assistant such as Claude drive AMD/Xilinx Vivado directly: create projects, build block designs, synthesize, implement, simulate, read timing/utilization reports and generate bitstreams — without opening the Vivado GUI.

It has first-class support for the Red Pitaya STEMlab 125-14 (Zynq xc7z010clg400-1): you can go from a natural-language description to a .bit.bin running on the board, using either pure RTL or the official RedPitaya-FPGA PS+PL (ARM + FPGA) backbone, and deploy it over SSH.

Forked from coreyhahn/vivado_mcp and heavily extended (93 tools): block design / IP Integrator, IP catalog, Hardware Manager, advanced reports, Red Pitaya RTL and PS+PL flows, SSH deploy.

Current version: 0.5.0 — see What's new and CHANGELOG.md.

Not to be confused with the unrelated vivado-mcp package on PyPI. This project is vivado-red-mcp: Python module vivado_red_mcp, command vivado-red-mcp.


Contents

What it can do

  • Persistent Vivado session — one Vivado process in Tcl mode is kept alive, so commands don't pay the 20–30 s startup each time.
  • Projects and design flow — create/open projects, add HDL and XDC files, synthesis, implementation, bitstream, run strategies.
  • Block design (IP Integrator) — ports, IP cores, RTL module cells, nets, PS7 presets, validation, wrapper generation.
  • Reports — timing (WNS/TNS/WHS/THS), utilization, clocks, power, DRC, methodology, QoR; returned as parsed values, not just raw text.
  • Simulation (xsim) — behavioral and post-synthesis/implementation, read signal values, breakpoints.
  • Red Pitaya — one-shot RTL build, full PS+PL build from the official RedPitaya-FPGA repo, bundled board constraints, .bit.bin generation, SSH deploy.
  • Raw Tcl — anything not covered by a tool can be run as Tcl (multi-line scripts supported).

Tested with

Status
Vivado 2026.1, Windows 11Validated end-to-end in 0.4.0: session, RTL and PS+PL Red Pitaya builds, reports, behavioral + post-synthesis xsim, block design, RedPitaya-FPGA tutorials (see below)
Vivado 2020.1, LinuxOriginal development target (0.3.x). Not re-tested on 0.4.0
Other Vivado releasesExpected to work (the generic tools use standard Tcl); not tested
Red Pitaya boardSTEMlab 125-14 (Z10) only for the Red Pitaya flows
Python3.10 – 3.12
MCP Python SDK1.x only (mcp>=1.0,<2, pinned automatically)

The RedPitaya-FPGA tutorials in prj/Examples (Led_blink, Knight_rider, Stopwatch, Frequency_counter) build to a bitstream through the server. Led_blink and Knight_rider rebuilt from scratch with MCP tools only produce byte-identical bitstreams to the tutorials' own scripts.

Requirements

  1. Python 3.10+
  2. AMD Vivado (the free edition is enough for the Red Pitaya xc7z010). When installing, you only need Vivado and, under devices, SoCs → Zynq-7000; Vitis Model Composer and DocNav are not needed.
  3. A Vivado license file — also for the free edition on 2025.x/2026.x. Without it Vivado refuses to start (a valid license was not found):
    • open the Vivado License Manager (<Vivado>/bin/vlm.bat on Windows, vlm on Linux);
    • Obtain License → on the AMD site tick Vivado Basic Tier License, Node Locked License (no charge, no expiry) → Generate Node-Locked License;
    • host ID: the MAC address of your network card (shown under View Host Information). The license is tied to the PC, not to the network you use;
    • load the received Xilinx.lic with Load License → Copy License.
  4. Vivado reachable by the server, either:
    • on PATH (Linux: source <Vivado>/settings64.sh; Windows: add <Vivado>\bin to PATH), or
    • by telling Claude the full path, which it passes to start_session (e.g. C:\AMDDesignTools\2026.1\Vivado\bin\vivado.bat).

pexpect (Linux/macOS) or pywinpty (Windows) is installed automatically.

Installation

1. Get the code and install it

bash
git clone https://github.com/sinemortal/vivado-red-mcp.gitcd vivado-red-mcppython -m venv .venv# Windows:      .venv\Scripts\activate# Linux/macOS:  source .venv/bin/activatepip install -e .

pip pins the MCP SDK to 1.x by itself. Do not upgrade mcp to 2.x: the server would not start ('Server' object has no attribute 'list_tools').

2. Register it with Claude Code

Once, for all your projects:

bash
claude mcp add --transport stdio --scope user vivado -- vivado-red-mcp

If vivado-red-mcp is not on PATH when Claude Code starts (typical with a virtual environment), point to the venv's Python instead:

bash
# Windowsclaude mcp add --transport stdio --scope user vivado -- "C:\path\to\vivado-red-mcp\.venv\Scripts\python.exe" -m vivado_red_mcp# Linux/macOSclaude mcp add --transport stdio --scope user vivado -- /path/to/vivado-red-mcp/.venv/bin/python -m vivado_red_mcp

Or share it with a single project through a .mcp.json at the project root:

json
{  "mcpServers": {    "vivado": {      "type": "stdio",      "command": "vivado-red-mcp"    }  }}

Check it with claude mcp list: vivado should show as connected.

3. Optional: disable the RedPitaya-FPGA auto-download

On startup the server downloads the RedPitaya-FPGA repo (source zip) into its working directory if it is missing, for the PS+PL flow. Set the environment variable VIVADO_MCP_NO_AUTOFETCH=1 to turn this off; the rp_fetch_repo tool can still download it on demand.

First steps

Talk to Claude in plain language, for example:

  1. "Start a Vivado session" (add the path if Vivado is not on PATH)
  2. "Open my project at C:/work/my_proj/my_proj.xpr"
  3. "Synthesize and implement it, then tell me if timing is met"
  4. "Show me the resource utilization"
  5. "Generate the bitstream"
  6. "Stop the Vivado session"

Claude picks the tools; you never have to call them by name.

Red Pitaya

Two flows, depending on whether you need the ARM processor:

FlowToolUse it for
RTL only (no PS7)create_redpitaya_project_rtlLogic clocked by the 125 MHz ADC clock: LEDs, counters, expansion-connector GPIO. One call does create → sources → XDC → synth → impl → bitstream → .bit.bin
PS + PLrp_fetch_repo → rp_setup_workspace → rp_build_projectDesigns that need the ARM, DDR or AXI. Reuses the PS7 block design shipped by RedPitaya-FPGA instead of reconfiguring the Zynq by hand

Example prompt:

Make an LED blinker at 1 Hz for the Red Pitaya using the 125 MHz ADC clock on led_o[0], build it and give me the .bit.bin.

To load the result on the board, ask Claude to use deploy_to_redpitaya (SSH, default credentials root/root; works with OS 1.04 xdevcfg and OS 2.00 fpgautil), or copy it yourself:

bash
scp led_blinker.bit.bin [email protected]:/tmp/ssh [email protected] 'cat /tmp/led_blinker.bit.bin > /dev/xdevcfg'

PS+PL and the RedPitaya-FPGA repo. The current upstream master targets Vivado 2025.1; older checkouts targeted 2020.1. Both layouts are supported. rp_setup_workspace copies the repo into a separate workspace and patches only that copy, so the scripts run on the Vivado you have installed (their exported block-design/IP scripts otherwise refuse any other release) and without a git checkout. Your downloaded repo is never modified. Details: get_vivado_doc redpitaya_ps_pl_flow.

Bundled board data (data/boards/):

  • red_pitaya_125_14_full.xdc — full pinout (ADC, DAC, LEDs, expansion connector, XADC), port names as in the official red_pitaya_top (adc_dat_i[ch][bit], dac_dat_o, exp_p_io, …); checked pin by pin against upstream sdc/red_pitaya.xdc.
  • red_pitaya_125_14_leds_min.xdc — 125 MHz differential ADC clock + 8 LEDs, for hello-world designs.
  • red_pitaya_125_14_info.json — part number and board metadata.

The RedPitaya tutorials (prj/Examples) use different port names (adc_dat_a_i, adc_clk_p_i, …) and a PS7 preset (cfg/red_pitaya.xml); use their own cfg/ files when rebuilding them.

More Italian prompt examples and the step-by-step low-level flow: USAGE.md.

What's new in 0.5.0

Renamed to vivado-red-mcp (package, Python module vivado_red_mcp, command vivado-red-mcp), so it no longer clashes with the unrelated vivado-mcp package on PyPI. If you installed an earlier version, reinstall it and re-register it with Claude Code using the new command (see Installation).

0.4.0

Works on Vivado 2026.1 and with the current RedPitaya-FPGA repo.

Fixed:

  • Server failed to start with MCP SDK 2.x → SDK pinned to 1.x.
  • Simulation never worked when the server was started by Claude Code on Windows (xsim: Spawn failed) → fixed.
  • Multi-line Tcl sent through run_tcl was silently corrupted on Windows → fixed.
  • get_timing_summary always returned empty values; get_utilization misread newer reports → both parse current Vivado output.
  • Reports right after a build failed with no message (No open design) → the latest completed run is opened automatically.
  • get_synthesis_errors_parsed always returned 0 errors → now reads the run logs, including failed IP runs.
  • launch_simulation modes rejected by recent Vivado → fixed.
  • generate_bitstream timed out after 300 s and didn't check the result → now verified, returns the .bit path.
  • Missing license (or any startup failure) now reports Vivado's own message in seconds instead of a generic error after 2 minutes.
  • Bundled red_pitaya_125_14_full.xdc had 6 wrong pins (ADC channel A MSB and dac_dat_o[8..12]) → corrected.
  • PS+PL flow broken by the new RedPitaya-FPGA layout → both layouts supported.

New tools: create_bd_port, add_module_to_bd, configure_bd_cell, set_run_strategy. Full list in CHANGELOG.md.

Troubleshooting

SymptomCause / fix
start_session fails with valid license was not foundVivado 2025.x/2026.x needs a license file even for the free edition — see Requirements
start_session cannot find VivadoPut <Vivado>/bin on PATH or give Claude the full path of vivado.bat / vivado
Server does not start: 'Server' object has no attribute 'list_tools'MCP SDK 2.x installed. Run pip install "mcp>=1.0,<2"
claude mcp list shows vivado as failedvivado-red-mcp not on PATH for Claude Code: register it with the venv's Python (see Installation)
A RedPitaya example fails synthesis with red_pitaya_pll ... port does not existUpstream issue in prj/Examples/Simple_moving_average (it pulls in rtl_250), not in this server
Occasional Could not open 'C' for writing in an IP runIntermittent Vivado issue with parallel out-of-context runs; re-run synthesis
Long paths on WindowsKeep projects in short paths; Vivado and IP generation hit the 260-character limit

Available tools

Session management

  • start_session - Start a persistent Vivado Tcl session (optional vivado_path)
  • stop_session - Stop the Vivado session
  • session_status - Session statistics
  • check_session_health - Detect a hung/dead session, optionally recover
  • get_host_status - Host CPU/memory status

Project management

  • create_project - Create a project on disk (default part xc7z010clg400-1)
  • open_project / close_project - Open or close an .xpr
  • get_project_info - Part, directory, top, …
  • add_sources / add_constraints - Attach HDL and XDC files

Design flow

  • run_synthesis - Run synthesis (verified run status)
  • run_implementation - Run place and route (verified run status)
  • generate_bitstream - Generate the bitstream (verified status + .bit path)
  • set_run_strategy - Set the synthesis/implementation run strategy

Reports & analysis

Report tools open the latest completed run automatically if no design is open.

  • get_timing_summary - WNS, TNS, WHS, THS, pulse width, met / not met
  • get_timing_paths - Detailed timing paths for failing/critical paths
  • get_utilization - LUTs, FFs, BRAMs, DSPs, IOs
  • get_clocks - Clock information
  • get_messages - Synthesis/implementation messages

Design queries

  • get_design_hierarchy - Module/instance hierarchy
  • get_ports - Top-level ports
  • get_nets / get_cells - Search nets and cells

Simulation (xsim)

  • set_simulation_top - Set the testbench module
  • launch_simulation - Behavioral, post-synthesis or post-implementation (functional/timing)
  • run_simulation / step_simulation / restart_simulation / close_simulation
  • get_simulation_time
  • get_signal_value / get_signal_values - Read signals
  • get_simulation_objects / get_scopes - Browse the hierarchy
  • add_signals_to_wave
  • add_breakpoint / remove_breakpoints
  • get_simulation_messages

Block design (IP Integrator) — Zynq / AXI

  • create_block_design - Create a block design and make it current
  • create_bd_port - Scalar, vector or interface ports
  • add_ip_to_bd - Add an IP core (VLNV) with CONFIG.* properties
  • add_module_to_bd - Add an RTL module as a module-reference cell
  • configure_bd_cell - Set CONFIG.* on an existing cell (e.g. PS7 board preset import)
  • connect_bd_net / connect_bd_intf_net - Wire pins/ports and AXI interfaces
  • auto_connect_axi - apply_bd_automation for AXI master ↔ slave
  • apply_ps7_preset - Zynq PS7 automation (FIXED_IO/DDR external)
  • validate_block_design - Run BD DRC
  • assign_bd_address - Auto-assign AXI address ranges
  • regenerate_bd_layout - Tidy the layout
  • save_bd_design / close_bd_design - Persist or close the BD
  • list_bd_cells - List cells
  • generate_bd_wrapper - make_wrapper + add to fileset + set as top

IP catalog

  • create_ip / configure_ip - Create and configure catalog IPs
  • generate_ip_target / synth_ip - Output products, out-of-context synthesis
  • upgrade_ip / report_ip_status - Upgrade and audit IP versions

Hardware Manager (JTAG)

  • open_hw_manager / close_hw_manager
  • connect_hw_server - Connect to hw_server (default localhost:3121)
  • program_device - Program a .bit over JTAG
  • refresh_hw_device - Re-read the JTAG chain

Advanced reports

  • report_power - Total/dynamic/static power
  • report_drc - DRC violations grouped by severity
  • report_methodology - UltraFast methodology checks
  • report_qor_assessment - QoR score
  • report_clock_interaction - Cross-clock paths
  • generate_full_report / read_report_section - Full reports to file, read them in pieces

Red Pitaya — RTL flow

  • list_boards / get_board_info - Bundled board metadata and XDC paths (no Vivado needed)
  • load_board_xdc - Add a bundled board XDC to the project
  • create_redpitaya_project_rtl - One-shot RTL build; returns bit_path, bin_path, parsed timing_summary and utilization
  • generate_cfgmem - .bit → .bit.bin for /dev/xdevcfg / fpgautil
  • get_synthesis_errors_parsed - Structured errors from the run logs, including failed IP runs

Red Pitaya — PS+PL flow

  • rp_fetch_repo - Download RedPitaya-FPGA (source zip, no git needed)
  • rp_setup_workspace - Isolated, patched copy of the repo to build in
  • rp_list_projects - List prj/* projects, flag the Z10-capable ones
  • rp_workspace_info - Which projects are already built
  • rp_create_custom_project - Clone a base project for your own PL logic
  • rp_build_project - Setup → synth → impl → bitstream → .bit.bin, with parsed timing

Red Pitaya — deploy (SSH, no Vivado needed)

  • deploy_to_redpitaya - Upload a .bit.bin and load it (xdevcfg on OS 1.04, fpgautil on OS 2.00)
  • ssh_redpitaya_exec - Run a shell command on the board

Documentation (offline)

  • list_vivado_docs / get_vivado_doc - Bundled topics (block_design, ps7_zynq, timing_constraints, synthesis_strategies, simulation_xsim, red_pitaya_125_14, redpitaya_ps_pl_flow, tcl_quoting, hw_manager, ip_integrator, pitfalls_2020_1), each with links to the AMD user guides

Raw Tcl and misc

  • run_tcl - Run any Tcl command or multi-line script
  • run_tcl_script - Source a .tcl file
  • request_feature / list_feature_requests

Architecture

┌─────────────────┐     MCP (JSON-RPC)     ┌─────────────────┐│   Claude Code   │◄──────over stdio──────►│  vivado-red-mcp     ││   (AI client)   │                        │  server         │└─────────────────┘                        └────────┬────────┘                                                    │ pexpect (Linux)                                                    │ pywinpty/ConPTY (Windows)                                                    ▼                                           ┌─────────────────┐                                           │ Vivado process  │                                           │  (-mode tcl)    │                                           └─────────────────┘

The server keeps one Vivado process in Tcl mode and talks to it through a pseudo-terminal, using the Vivado% prompt to know when a command has finished. Each tool family lives in its own module under tools/; see CLAUDE.md for the design conventions and known Vivado Tcl pitfalls.

Contributing

Issues and pull requests are welcome. There is no automated Vivado test in CI (it only checks that every tool has a handler); changes to the Vivado-facing code should be validated against a real Vivado install.

License

MIT — see LICENSE. Bundled third-party material (Red Pitaya board XDC files, 3-clause BSD) is listed in THIRD-PARTY-NOTICES.md.

Acknowledgments

来源:README.md,提交 79ff546

工具

93

start_session

Start a persistent Vivado TCL session. Must be called before project/design tools. Vivado startup is ~30s; the session is reused across tool calls.

输入参数vivado_path

stop_session

Stop the Vivado TCL session and free resources.

无需输入参数。

session_status

Get statistics for the current Vivado session (commands run, timing, errors).

无需输入参数。

check_session_health

Verify the Vivado process is responsive. With auto_recover=true the session is restarted if it hangs.

输入参数auto_recover

get_host_status

Get host hostname, free memory, and session state. Useful to check there is enough RAM before launching synthesis/implementation.

无需输入参数。

open_project

Open an existing Vivado project (.xpr file).

输入参数project_path必填

close_project

Close the currently open project.

无需输入参数。

get_project_info

Get name, part, target language, directory of the open project.

无需输入参数。

create_project

Create a new Vivado project on disk in project mode. Defaults to the Red Pitaya STEMlab 125-14 part (xc7z010clg400-1). Call add_sources / add_constraints next, then run_synthesis.

输入参数name必填partforcedirectory必填target_language

add_sources

Add HDL source files (.v/.sv/.vhd) to the current project. Optionally sets the top module and updates compile order.

输入参数files必填filesetset_top

add_constraints

Add XDC constraint files to the current project.

输入参数files必填fileset

list_boards

List boards with bundled XDC + metadata. No Vivado session required.

无需输入参数。

get_board_info

Get bundled metadata for a board: part, LED pinout, absolute XDC paths, default synth flags. Use the returned absolute_path values with add_constraints. No Vivado session required.

输入参数board必填

run_synthesis

Run synthesis on the current project (reset_run -> launch_runs synth_1 -> wait_on_run). Returns ground-truth status from the run object, not just text parsing.

输入参数jobstimeout

run_implementation

Run implementation (opt_design -> place_design -> route_design). Returns ground-truth status from the impl_1 run object.

输入参数jobstimeout

generate_bitstream

Generate bitstream — `launch_runs impl_1 -to_step write_bitstream` -> wait_on_run. Returns ground-truth run status and the .bit path.

输入参数timeout

set_run_strategy

Set the strategy of a synthesis or implementation run (e.g. synth_1 'Flow_PerfOptimized_high', impl_1 'Performance_NetDelay_high'). On an unknown name, Vivado's error lists the valid strategies.

输入参数run必填strategy必填

get_timing_summary

Get timing summary (WNS, TNS, WHS, THS). Returns parsed metrics by default. Use generate_full_report for raw output.

输入参数report_typedetail_level

get_timing_paths

Get failing/critical timing paths. Returns structured summary by default; use detail_level=standard|full for the raw text too.

输入参数clockto_pinthroughfrom_pinnum_pathspath_typedetail_levelslack_threshold

get_utilization

Resource utilization (LUT/FF/BRAM/DSP/IO). Parsed only by default.

输入参数detail_levelhierarchicalmodule_filterthreshold_percent

get_clocks

Get clock information and constraints (report_clocks).

无需输入参数。

get_messages

Get Vivado messages filtered by severity (error/critical/warning/all).

输入参数severity

get_design_hierarchy

Get the design hierarchy (modules and instances), optionally filtered.

输入参数max_depthinstance_pattern

get_ports

Get top-level I/O ports of the design.

无需输入参数。

get_nets

Search for nets by pattern (default '*').

输入参数limitpattern

get_cells

Search for cells/instances by pattern.

输入参数limitpattern

launch_simulation

Launch xsim in behavioral/post-synth/post-impl mode.

输入参数mode

run_simulation

Run the simulation for a specified time (e.g. 100ns, 1us, all).

输入参数time必填

restart_simulation

Restart the simulation from time 0.

无需输入参数。

close_simulation

Close the current simulation.

无需输入参数。

get_simulation_time

Get the current simulation time (current_time).

无需输入参数。

get_signal_value

Get current value of a signal in simulation.

输入参数radixsignal必填

get_signal_values

Get values of multiple signals matching a wildcard pattern (max 50).

输入参数radixpattern必填

add_signals_to_wave

Add signals to the waveform viewer.

输入参数signals必填

set_simulation_top

Set the top-level testbench module for simulation.

输入参数filesettop_module必填

get_simulation_objects

List simulation objects in a scope (signals/ports/internal).

输入参数scopefilter

get_scopes

List child scopes (hierarchy) in the simulation.

输入参数parent

step_simulation

Step simulation by delta cycles.

输入参数count

add_breakpoint

Add a breakpoint on signal edge or change.

输入参数signal必填condition

remove_breakpoints

Remove all breakpoints (remove_bps -all).

无需输入参数。

get_simulation_messages

Get simulation log messages filtered by severity.

输入参数severity

run_tcl

Execute a raw TCL command in Vivado. Use for advanced ops not covered by other tools.

输入参数command必填timeout

run_tcl_script

Source a .tcl script file in the Vivado session (uses `source` under the hood). Helpful for replaying canonical Red Pitaya / Xilinx reference scripts.

输入参数path必填timeout

create_block_design

Create a new block design and make it current. Optionally sets the board_part property on the project beforehand (board_part requires the BSP to be installed in Vivado).

输入参数name必填board_part

save_bd_design

Save the currently open block design to disk.

无需输入参数。

close_bd_design

Close the currently open block design (without deleting).

无需输入参数。

list_bd_cells

List cells in the current block design (optionally filtered).

输入参数filter

add_ip_to_bd

Add an IP core to the current block design (`create_bd_cell -type ip -vlnv ...`). If `config` is provided, the CONFIG.* keys are applied via set_property -dict.

输入参数vlnv必填configcell_name必填

create_bd_port

Create a top-level port on the current block design. Scalar or vector (`from`/`to`) via create_bd_port, or an interface port when `vlnv` is given (create_bd_intf_port, e.g. the XADC 'xilinx.com:interface:diff_analog_io_rtl:1.0'). Port names must match the constraints (XDC) of the board.

输入参数tofrommodename必填typevlnvdirection

add_module_to_bd

Add an RTL module (Verilog/VHDL already in the project, see add_sources) to the current block design as a module-reference cell (`create_bd_cell -type module -reference`). Optional `config` sets its parameters, e.g. {'CONFIG.WIDTH': '8'}; string parameters keep their quotes, e.g. {'CONFIG.init': '"0011"'}.

输入参数configmodule必填cell_name必填

configure_bd_cell

Set CONFIG.* properties on an existing block-design cell (set_property -dict). Use for settings that must be applied after creation or in a separate step, e.g. importing a PS7 board preset: {'CONFIG.PCW_IMPORT_BOARD_PRESET': '<path>/red_pitaya.xml'}.

输入参数config必填cell_name必填

connect_bd_net

Connect two scalar pins/ports in the current block design.

输入参数pin_to必填pin_from必填

connect_bd_intf_net

Connect two AXI/interface pins in the current block design.

输入参数intf_to必填intf_from必填

auto_connect_axi

Use `apply_bd_automation -rule xilinx.com:bd_rule:axi4` to wire an AXI master to a slave (inserts AXI interconnect + clock/reset hookups).

输入参数slave必填master必填options

apply_ps7_preset

Apply the Zynq-7000 processing_system7 board preset to a PS7 cell — wires FIXED_IO / DDR / clocks per the board definition. Equivalent to clicking 'Run Block Automation' on a freshly added PS7 in the GUI.

输入参数cellapply_board_preset

validate_block_design

Run validate_bd_design and return parsed status. Failures include unconnected pins, conflicting CONFIG values, or missing assignments.

无需输入参数。

regenerate_bd_layout

Regenerate the block design layout (cosmetic; useful before save).

无需输入参数。

assign_bd_address

Auto-assign addresses in the BD address editor (assign_bd_address).

无需输入参数。

generate_bd_wrapper

Generate the HDL wrapper for a block design and (by default) add it to sources_1 and set it as project top. Implements the canonical pattern: make_wrapper -files <bd> -top; add_files -norecurse <wrapper>; set_property top <wrapper> [current_fileset]; update_compile_order.

输入参数bd_name必填set_top

create_ip

Create an IP from the Xilinx IP catalog. Generates a .xci file in the project's IP sources fileset. Use configure_ip + generate_ip_target afterwards, then run synth_ip if you want out-of-context synthesis.

输入参数vendorip_name必填libraryversionmodule_name必填

configure_ip

Set CONFIG.* properties on an existing IP via set_property -dict.

输入参数config必填module_name必填

generate_ip_target

Generate IP output products (synthesis + simulation by default).

输入参数targetsmodule_name必填

synth_ip

Run out-of-context (OOC) synthesis on an IP.

输入参数module_name必填

upgrade_ip

Upgrade IP version (no-op if already at latest).

输入参数module_name

report_ip_status

Get a structured snapshot of the project's IP and their upgrade status.

无需输入参数。

open_hw_manager

Open the Hardware Manager (no JTAG connection yet).

无需输入参数。

close_hw_manager

Close the Hardware Manager.

无需输入参数。

connect_hw_server

Connect to a hw_server (cs_server). Default URL is localhost:3121 — the value Vivado uses when running hw_server locally.

输入参数url

refresh_hw_device

Refresh the currently selected hardware device (re-reads JTAG chain state). Call after re-plugging a cable.

无需输入参数。

program_device

Program a .bit onto the first device on the JTAG chain. Sequence: open_hw_target -> set PROGRAM.FILE -> program_hw_devices. The hardware must already be connected (`open_hw_manager` + `connect_hw_server`).

输入参数bit_file必填probes_file

report_power

Run report_power and return parsed totals (total/dynamic/static W) + a truncated raw block. Full output stored at /tmp/vivado_red_mcp/.

无需输入参数。

report_drc

Run report_drc and return parsed violations list (severity/code/message). Use after place_design/route_design to catch design-rule problems.

无需输入参数。

report_methodology

Run report_methodology (UltraFast methodology checks). Returns violation list grouped by severity.

无需输入参数。

report_qor_assessment

Run report_qor_assessment (overall design quality score).

无需输入参数。

report_clock_interaction

Run report_clock_interaction to find cross-clock paths (timed/async/unconstrained).

无需输入参数。

load_board_xdc

Resolve a bundled board XDC and attach it to the current project. Standalone wrapper over get_board_info + add_constraints.

输入参数board必填variant

generate_cfgmem

Convert a .bit into a raw binary image (.bit.bin) loadable via /dev/xdevcfg on the Red Pitaya. Use after generate_bitstream.

输入参数outputbit_file必填

get_synthesis_errors_parsed

Return structured errors and critical warnings from a run's log (default: synth_1), plus those of every failed run (e.g. out-of-context IP runs). Use after run_synthesis fails to get a clean actionable list.

输入参数runmax_items

create_redpitaya_project_rtl

One-shot composite: create project -> add HDL sources -> apply XDC -> synth -> impl -> write_bitstream -> generate .bit.bin. Stops on the first failing stage and returns a structured payload.

输入参数jobsname必填boarddirectory必填top_module必填synth_flagsxdc_variantimpl_timeoutsynth_timeoutverilog_files必填extra_xdc_files

rp_fetch_repo

Download the RedPitaya-FPGA repo from GitHub as a source zip and extract it (no git required, stdlib only). Returns repo_path to feed into rp_setup_workspace. Idempotent — pass force=true to redownload. No Vivado session required.

输入参数refurlforcetimeoutdest_path

rp_setup_workspace

Copy a RedPitaya-FPGA repo into an isolated workspace so builds don't touch the pristine checkout. The copy is patched to run on the installed Vivado release (block-design version check) and without git. Idempotent — pass force=true to recopy. No Vivado session required.

输入参数forcerepo_path必填workspace_path

rp_list_projects

List projects under prj/ of a RedPitaya workspace or repo. Flags which are Z10-capable (have ip/system.tcl or legacy ip/systemZ10.tcl). No Vivado session required.

输入参数path必填

rp_workspace_info

Report workspace state: projects present and which already have a built bitstream.

输入参数workspace_path必填

rp_create_custom_project

Clone an existing prj/<base> into prj/<name> inside the workspace, ready for custom PL logic. Returns the rtl/ dir and red_pitaya_top path to edit. No Vivado session required.

输入参数name必填base_project必填workspace_path必填

rp_build_project

Build a RedPitaya PS+PL project end-to-end: run the repo's project setup TCL (creates the PS7 block design from ip/system.tcl), then synthesis, implementation and write_bitstream, then generate the .bit.bin. Returns {stage, xpr_path, bit_path, bin_path, timing}. Requires start_session first.

输入参数jobsmodeldefinesproject必填synth_flagsimpl_timeoutsetup_timeoutsynth_timeoutworkspace_path必填

deploy_to_redpitaya

Copy a .bit.bin to a Red Pitaya over SSH/SCP and load it into the FPGA. Uses /dev/xdevcfg (works on Red Pitaya OS 1.04 + 2.00) or fpgautil (OS 2.00). No Vivado session required.

输入参数host必填portusermethodpasswordkeep_remoteremote_pathbit_bin_path必填key_filenameconnect_timeout

ssh_redpitaya_exec

Run an arbitrary shell command on a Red Pitaya over SSH and return stdout/stderr/exit code. Useful for status checks, dmesg reads, manual loader invocations.

输入参数host必填portusercommand必填passwordexec_timeoutkey_filenameconnect_timeout

get_vivado_doc

Look up a topical Vivado documentation summary bundled with this server. Returns markdown content + upstream URL. Known topics: block_design, ps7_zynq, timing_constraints, synthesis_strategies, simulation_xsim, red_pitaya_125_14, redpitaya_ps_pl_flow, tcl_quoting, hw_manager, ip_integrator, pitfalls_2020_1.

输入参数topic必填version

list_vivado_docs

List the bundled Vivado documentation topics.

无需输入参数。

request_feature

Submit a feature request for the Vivado MCP server (persisted on disk).

输入参数title必填priorityuse_casedescription必填

list_feature_requests

List all submitted feature requests.

无需输入参数。

generate_full_report

Generate a full Vivado report to a file. Use when inline reports get truncated or you need the complete output. Returns a report_id usable with read_report_section.

输入参数optionsoutput_filereport_type必填

read_report_section

Read a section of a previously generated report. Provide report_id (from generate_full_report) or a direct file_path.

输入参数file_pathnum_linesreport_idstart_linesearch_pattern

版本历史

1
  1. v0.5.0最新Nov 3, 2026

评分

已满足适用检查项的 90%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分
  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具必需15 分
  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分