SYMDIREC: A Neuro-Symbolic Divide-Retrieve-Conquer Framework for Enhanced RTL Synthesis and Summarization
Organizations: IBM Research, San Jose, CA, USA
Abstract
Register-Transfer Level (RTL) synthesis and summarization are central to hardware design automation but remain challenging for Large Language Models (LLMs) due to rigid HDL syntax, limited supervision, and weak alignment with natural language. Existing prompting and retrieval-augmented generation (RAG) methods have not incorporated symbolic planning, limiting their structural precision. We introduce SYMDIREC, a neuro-symbolic framework that decomposes RTL tasks into symbolic subgoals, retrieves relevant code via a fine-tuned retriever, and assembles verified outputs through LLM reasoning. Supporting both Verilog and VHDL without LLM fine-tuning, SYMDIREC achieves ~20% higher Pass@1 rates for synthesis and 15-20% ROUGE-L improvements for summarization over prompting and RAG baselines, demonstrating the benefits of symbolic guidance in RTL tasks.
Figures & tables
| Method | LLM | Pass@1 | Rouge - L | ||
|---|---|---|---|---|---|
| Verilog | VHDL | Verilog | VHDL | ||
| Vanilla Prompting | GPT - 4o | ||||
| Llama - 3 | |||||
| CoDes | GPT - 4o | ||||
| Llama - 3 | |||||
| ReAct Prompting | GPT - 4o | ||||
| RTL-IR Dataset Statistics | |
|---|---|
| # Total Size | k |
| # Text-to-Code Pairs | k |
| # FEC Pairs | k |
| # Code-to-Summary Pairs | k |
| # Partial-to-Complete Code Pairs | k |
Appendix figures & tables3 assets
Supplementary material from the paper’s appendix.
Appendix
| Methods | NDCG@1 | NDCG@10 |
|---|---|---|
| BM25 | 0.434 | 0.570 |
| ELSER | 0.485 | 0.664 |
| SPLADE | 0.577 | 0.688 |
| GTE-Qwen-1.5b | 0.644 | 0.864 |
| Stella-400m | 0.656 | 0.866 |
| GIST-Large | 0.616 | 0.802 |
| Task | Symbolic Decomposition | Retrieved Context |
|---|---|---|
| 8-bit Ripple Carry Adder | LSB Half-Adder: , Bits 1–7 Full-Adders: , | Half-Adder (LSB) Verilog: module half_adder(input a, b, o utput sum, carry); assign sum = a ^ b; assign carry = a & b; endmodule VHDL: entity half_adder is port(a, b: in std_logic; sum, carry: out std_logic); end entity; architecture rtl of half_adder is begin sum <= a xor b; carry <= a and b; end architecture; Full-Adder (bits 1–7) Verilog: module full_adder(input a, b, cin, output sum, cout); assign sum = a ^ b ^ cin; assign cout = (a & b) | (b & cin) | (a & cin); endmodule VHDL: entity full_adder is port(a, b, cin: in std_logic; sum, cout: out std_logic); end entity; architecture rtl of full_adder is begin sum <= a xor b xor cin; cout <= (a and b) or (b and cin) or (a and cin); end architecture; |
Electronic Design Automation
Electronic Design Automation uses algorithms and software to design, verify, optimize, and manufacture electronic circuits and systems.
See all 213 papers