Sponsored by
; contest hosted at the FPL'26 conference.
Hosted on GitHub Pages using the Dinky theme
The contest repo provides a basic agentic tool to optimize placed and routed DCPs. Here are the main highlights of the example agent:
Contestants submit a solution invoked by the conference repo Makefile that will read in a DCP and write out a new DCP that has improved Fmax. Here are the rules regarding the output DCP and solution requirements:
OPENROUTER_API_KEY environment variable. Any other remote LLMs are strictly prohibited. If submissions are found to be accessing other remote LLM services, the team will be disqualified for the remainder of the contest.report_route_status must report the design as fully routed with 0 routing errors.report_timing_summary must show that both hold and pulse width requirements are fully met.There are three main ways to differentiate your team's solution:
New and Customized Optimizations: With the advent of open source FPGA CAD tools like RapidWright combined with the power of agentic coding, the barrier to build customized optimizations for FPGA implementations is lower than ever. The contest repo provides a few example optimizations, one such example splits high fanout nets by replicating source flip flops, placing them in the centroid of their load set and using Vivado to route the modified nets. Another example identies designs where the placement of cells is too far apart to achieve high frequency and then uses a pblock (area constraint) to re-place the design with the cells forced to be closer in proximity. Another basic example is the phys_opt_design capability provided by Vivado, which can be run multiple times with different options to try a variety of built in optimizations. We encourage teams to explore new optimization types based on the benchmark suite designs or developing agents that can create customized optimizations on-the-fly!
Strategic Analysis & Batching: Building a strategy around design analysis will also help teams improve their overall score by correctly strategizing the quantity, order, and type of optimzations that should be applied to a design. Being able to dig deeper into the timing report and analyze multiple issues that may not be the first or second order issue will allow the agent to batch optimizations to increase efficiency, since each analysis call requires runtime.
Prompt Engineering & Context management: Another differentiator for teams will be their approach to prompting the agent and providing adequate context for the designs and optimizations that will be used. Several efforts in the AI space have found success through prompt optimization (such as DSPy and GEPA) and we encourage teams to explore these techniques.
RapidWright and Vivado have different strengths and weaknesses, but using them properly together can generate signifcant quality-of-result (QoR) improvements. Here are some basic guidelines to keep in mind when considering customized analysis and optimization tasks in RapidWright, Vivado, or a combination of the two.
report_timing as the scoring tool. It could provide a quick feedback path (as writing a DCP in RapidWright and then loading it into Vivado will take significantly longer) if exploring multiple optimizations in RapidWright in succession.route_design will produce superior timing closure results. RWRoute also does not have hold-time fixing implemented.place_design is the preferred method for placement.Optimizations and Analysis do not need to be limited to RapidWright or Vivado. As RapidWright has the ability to convert DCPs to the FPGA Interchange Format (as shown in our past competition), other open source tools can be used.
Please see the Scoring Criteria page for details on how submissions are scored.