Skip to main content
Glama

program_device

Programs a .bit file onto the first device on the JTAG chain, optionally loading ILA probes, so you can configure FPGA hardware from Vivado without using the GUI.

Instructions

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).

Input Schema

NameRequiredDescriptionDefault
bit_fileYesAbsolute path to .bit
probes_fileNoOptional ILA probes .ltx file

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.5.0

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description carries the burden; it does disclose the 'first device on chain' scoping limit and the required prior connection state, which are real behavioral facts. It says nothing about the fact that programming overwrites/volatile-configure the FPGA, what happens on failure, execution duration, or what the response contains.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with the action and scope, then the call sequence, then the precondition. Every sentence carries operative information with no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a hardware-mutating tool with no annotations and no output schema, the description covers scope, prerequisites, and the internal sequence, which is what an agent needs to call it in the right order. It leaves out success/failure semantics and the effect of the optional probes_file, which would be the remaining useful additions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both bit_file (absolute path) and probes_file (optional ILA .ltx) are already documented. The description adds no meaning about the optional probes_file (e.g., what attaching it enables) or path constraints, so it stays at the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Program a .bit') and narrows scope explicitly to the first device on the JTAG chain. No sibling tool performs programming, and the description references open_hw_manager/connect_hw_server as prerequisites, so an agent can place it in the ordering of hardware tools without opening a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete preconditions ('hardware must already be connected: open_hw_manager + connect_hw_server') and the underlying call sequence needed before invoking it. It does not address what to do when the target is not the first device or when multiple devices are on the chain, so the boundary case is left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Deploy Server

Other Tools