<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>hardware design agents | UCSC OSPO</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/tag/hardware-design-agents/</link><atom:link href="https://deploy-preview-1007--ucsc-ospo.netlify.app/tag/hardware-design-agents/index.xml" rel="self" type="application/rss+xml"/><description>hardware design agents</description><generator>Wowchemy (https://wowchemy.com)</generator><language>en-us</language><lastBuildDate>Tue, 11 Feb 2025 00:00:00 +0000</lastBuildDate><image><url>https://deploy-preview-1007--ucsc-ospo.netlify.app/media/logo_hub6795c39d7c5d58c9535d13299c9651f_74810_300x300_fit_lanczos_3.png</url><title>hardware design agents</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/tag/hardware-design-agents/</link></image><item><title>HAgent</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre25/ucsc/hagent/</link><pubDate>Tue, 11 Feb 2025 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre25/ucsc/hagent/</guid><description>&lt;p>&lt;a href="https://github.com/masc-ucsc/hagent" target="_blank" rel="noopener">HAgent&lt;/a> is a platform to build AI hardware agent engine to support multiple components in chip design, such as code generation, verification, debugging, and tapeout.&lt;/p>
&lt;p>HAgent is build as a compiler for for Hardware Agents, it interfaces with
typical EDA tools like compilers, synthesis, and verification. There are
several projects around enhancing HAgent.&lt;/p>
&lt;h3 id="bugfarm-hagent-step">BugFarm hagent step&lt;/h3>
&lt;p>&lt;strong>Objective&lt;/strong>: Develop a HAgent step (pass) to create bugs in a given design.&lt;/p>
&lt;p>&lt;strong>Description&lt;/strong>: Using LLMs (Hagent APIs), the goal is to add &amp;ldquo;bugs&amp;rdquo; to input Verilog design.
The goal is for other tools passes that need to fix bugs, to use this
infrastructure as a bug generator. There is a MCY
(&lt;a href="https://github.com/YosysHQ/mcy" target="_blank" rel="noopener">https://github.com/YosysHQ/mcy&lt;/a>) that does something similar but it does not
use verilog and create a very different Verilog output. The BugFarm is supposed
to have somewhat similar functionality but edit the Verilog directly which
results in a code with just a few edits. Like MCY, there has to be a step to confirm that
the change affects results. The project should benchmarks and compare with MCY.&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Skills Needed:&lt;/strong> Python, Verilog, and understand agents&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Medium&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Medium&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/jose-renau/">Jose Renau&lt;/a>, &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/farzaneh-rabiei-kashanaki/">Farzaneh Rabiei Kashanaki&lt;/a>&lt;/li>
&lt;/ul>
&lt;h3 id="hdeval-competition-repository">HDEval Competition Repository&lt;/h3>
&lt;p>&lt;strong>Objective&lt;/strong>: Create a platform for HDL programming challenges and community engagement.&lt;/p>
&lt;p>&lt;strong>Description&lt;/strong>: Develop a repository where users can solve HDL problems in Verilog, Chisel, PyRTL, etc. Implement a points system for successful solutions. Allow users to submit new problems (code, specifications, verification, and tests) that are not easily solvable by LLMs. Automate solution testing and provide feedback on submissions.&lt;/p>
&lt;p>The submissions consist of 4 components: code, specification, verification, and tests. It should be possible to submit also examples of bugs in code/specification/verification/tests during the design.&lt;/p>
&lt;p>If the code is different from Verilog, it should include the HDL (chisel, PyRTL,&amp;hellip;) and also the Verilog.&lt;/p>
&lt;p>The specification is free form. For any given specification, an expert on the area should be able to generate code, verification, and tests. Similarly, from any pair. Any expert should be able to generate the rest. For example, from verification and tests, it should be able to generate the code and specification.&lt;/p>
&lt;p>Typical specifications consist of a plan, API, and a sample usage.&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Skills Needed:&lt;/strong> Web design, some hardware understanding&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Medium&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Medium&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/jose-renau/">Jose Renau&lt;/a>, &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/farzaneh-rabiei-kashanaki/">Farzaneh Rabiei Kashanaki&lt;/a>&lt;/li>
&lt;/ul>
&lt;h3 id="integrate-silicon-compiler">Integrate Silicon Compiler&lt;/h3>
&lt;p>&lt;strong>Objective&lt;/strong>: &lt;a href="https://github.com/siliconcompiler/siliconcompiler" target="_blank" rel="noopener">Silicon Compiler&lt;/a> is an open-source Python library that allows to interface with many EDA tools. The idea is to integrate it with HAgent to allow prompts/queries to
interface with it.&lt;/p>
&lt;p>&lt;strong>Description&lt;/strong>: The agentic component requires to check with silicon compiler
that the generated Python compiles but also that has reasonable parameters.
This will require a react loop for compiler errors, and likely a judge loop for
testing for reasonable options/flow with feedback from execution. Since there
is not much training examples, it will require a few shot with a database to
populate context accordingly.&lt;/p>
&lt;p>The end result should allow to select different tools and options trhough silicon compiler.&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Skills Needed:&lt;/strong> Backend chip design&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> High&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Medium&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/jose-renau/">Jose Renau&lt;/a>&lt;/li>
&lt;/ul>
&lt;h3 id="comodore-64-or-msx-or-gameboy">Comodore 64 or MSX or Gameboy&lt;/h3>
&lt;p>&lt;strong>Objective&lt;/strong>: Create a prompt-only specification to build a hardware
accelerated for the target platform (Comodore 64, MSX or Gameboy). The
generated code should focus on Verilog, but it is fine to also target some
other HDL. In all the cases, the project should include a generated Verilog
integrated with some emulator for verification.&lt;/p>
&lt;p>&lt;strong>Description&lt;/strong>: Using &lt;a href="https://github.com/masc-ucsc/hagent" target="_blank" rel="noopener">Hagent&lt;/a>, create an
&lt;a href="https://github.com/masc-ucsc/hdeval" target="_blank" rel="noopener">HDLEval&lt;/a> benchmark (set of prompts) that
provide the necessary information to create the Verilog implementation. HDLEval
prompts usually consists of a high-level PLAN or specification, an API to
implement, and a few examples of usage for the given API.&lt;/p>
&lt;p>The result of running the bencharmk, a generated Verilog runs program in the
emulator and the Verilog to compare correctness. The platform should have an
already existing emulator &lt;a href="https://vice-emu.sourceforge.io/" target="_blank" rel="noopener">vice-emu&lt;/a> or
&lt;a href="https://mgba.io/" target="_blank" rel="noopener">mGBA&lt;/a> to perform cosimulation against the generated
specification.&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Skills Needed:&lt;/strong> Verilog for front-end design&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> High&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Large (175 or 350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/jose-renau/">Jose Renau&lt;/a>&lt;/li>
&lt;/ul></description></item></channel></rss>