← Về trang chủ
09 tháng 5, 2026 ⟳ 12 phút đọc

VerilogCoder: Khi AI tự viết và debug Verilog như một kỹ sư thực thụ

NVIDIA Research giới thiệu VerilogCoder — hệ thống multi-agent AI có thể tự viết Verilog, sửa lỗi syntax và functional, đạt 94.2% pass rate trên benchmark VerilogEval-Human v2. Bài này breakdown cách nó hoạt động.

AIEDAVerilogRTLdigital-designLLM

Mình đoán phần lớn các bạn đọc blog này làm analog hoặc mixed-signal. Nhưng hôm nay mình muốn nói về một thứ đang xảy ra ở phía digital — và nó ảnh hưởng trực tiếp đến công việc của engineer AMS hơn nhiều người nghĩ.

Nếu bạn đang làm PLL, ADC, hay LDO — chip của bạn chắc chắn có một đống Verilog đi kèm: lock detector FSM của PLL, SAR control logic của ADC, enable sequencer của LDO, calibration state machine của bandgap. Những block này không phải analog, nhưng engineer AMS thường là người viết hoặc ít nhất là review chúng. Và đây là phần sẽ bị tự động hóa trước.

Tháng 8/2024, một nhóm researcher từ NVIDIA Research (Chia-Tung Ho, Haoxing Ren, Brucek Khailany) công bố paper VerilogCoder — một hệ thống AI có thể tự động viết Verilog từ mô tả bằng ngôn ngữ tự nhiên, tự phát hiện lỗi, và tự sửa — đạt 94.2% pass rate trên benchmark chuẩn của ngành.

Con số đó không phải marketing. Đó là kết quả đo được trên VerilogEval-Human v2, với 156 bài toán RTL design thực tế. Và nó vượt state-of-the-art trước đó 33.9%.

Bài này mình breakdown cách VerilogCoder hoạt động, tại sao nó khác với “GPT viết Verilog” thông thường, và góc nhìn của mình về ý nghĩa của nó với nghề IC design.


Mục lục

  1. Vấn đề: LLM đơn thuần không đủ
  2. Kiến trúc VerilogCoder
  3. TCRG: Planning thông minh hơn
  4. AST-based Waveform Tracing: Debug như kỹ sư thực thụ
  5. Kết quả thực nghiệm
  6. Ý nghĩa với ngành IC design
  7. Từ research paper đến product: EDA vendor đang làm gì?
  8. Tổng kết

Vấn đề: LLM đơn thuần không đủ

Trước VerilogCoder, người ta đã thử dùng LLM để generate Verilog rồi. GPT-4 Turbo — một trong những model mạnh nhất lúc đó — chỉ đạt 60.3% pass rate khi dùng kiểu hỏi thông thường (prompt engineering). Nghĩa là gần 40% bài toán nó viết ra code sai về mặt chức năng.

Tại sao?

Có hai điểm yếu cơ bản:

Thứ nhất: Planning không đủ chi tiết. Khi bạn nhờ LLM viết một Finite State Machine (FSM) phức tạp, nó thường bỏ sót các state transition edge case. Ví dụ, nó có thể implement đúng trạng thái S_next nhưng miss một số điều kiện chuyển trạng thái của S1_next, dẫn đến FSM chạy sai hoàn toàn trong simulation.

Thứ hai: Debug functional error cực kỳ khó. Khi simulation báo “output mismatch tại timestep 340ns”, LLM không biết tại sao signal đó sai. Nó chỉ có thể đoán và sửa mù — đôi khi sửa làm hỏng chỗ khác.

Đây là đúng vấn đề mà một kỹ sư Verilog thực sự gặp. Sự khác biệt là kỹ sư có tool: waveform viewer, script trace signal. LLM thông thường thì không.

Flow Diagram

Kiến trúc VerilogCoder

VerilogCoder không phải là “hỏi ChatGPT rồi copy code”. Nó là một hệ thống multi-agent — tức là nhiều AI agent làm việc cùng nhau, mỗi agent có vai trò riêng, giống như một team kỹ sư nhỏ.

Flow tổng quan:

Input: Mô tả module bằng ngôn ngữ tự nhiên + testbench

[Task Planning Phase]
   High-level Planner Agent     → phân rã task thành sub-tasks
   Signal Extraction Agent      → extract signals, transitions, examples
   TCRG Construction            → xây dựng knowledge graph
   TCRG Retrieval Agent         → enrich sub-tasks với circuit info

[Code Implementation Phase]
   Code Agent (Verilog Engineer + Verification Assistant)
         ↓ (nếu fail functional check)
   Debug Agent (Verilog Engineer + AST-WT tool + Simulator)

Output: Verilog module đúng syntax + functional

Toàn bộ hệ thống được build trên AutoGen (framework multi-agent của Microsoft) và dùng GPT-4 Turbo hoặc Llama3 70B làm LLM backbone. Code được release công khai trên GitHub của NVlabs.


TCRG: Planning thông minh hơn

Đây là đóng góp đầu tiên và theo mình là quan trọng nhất của paper.

TCRG = Task and Circuit Relation Graph — một knowledge graph mà VerilogCoder tự xây dựng từ mô tả bài toán trước khi viết bất kỳ dòng code nào.

Nó hoạt động thế nào?

Lấy một ví dụ gần với AMS engineer hơn. Giả sử bạn mô tả một PLL lock detector bằng ngôn ngữ tự nhiên như này:

“Thiết kế một module digital detect trạng thái lock của PLL. Output lock=1 khi frequency error nhỏ hơn threshold trong 3 cycle liên tiếp. Nếu error vượt threshold, reset về unlocked.”

Với mô tả này, TCRG sẽ extract ra ba loại thông tin:

Signals — những gì tồn tại trong mạch: freq_error (input), threshold (input tham chiếu), lock (output), count (counter nội bộ đếm số cycle ổn định). → Tương đương việc bạn xác định port list và internal node của một schematic analog.

Transitions — luật hoạt động: count tăng 1 khi freq_error < threshold, count reset về 0 khi freq_error ≥ threshold, lock=1 khi count đạt 3. → Đây là rule — đúng với mọi cycle, giống như phương trình mô tả behavior của mạch analog.

Examples — test case cụ thể từ spec: freq_error = [nhỏ, nhỏ, nhỏ] trong 3 cycle liên tiếp → lock=1 ở cycle thứ 4. → Đây không phải rule mà là một trường hợp cụ thể người viết spec đưa ra để minh họa. TCRG tách nó thành node riêng vì nó giúp agent tự verify — thay vì chỉ biết luật trừu tượng, agent còn có một test case để tự check output trước khi chạy simulation.

Sự phân biệt Signals / Transitions / Examples nghe có vẻ academic, nhưng thực ra rất tự nhiên nếu bạn đã quen viết spec: “mạch có những port nào” (Signals), “nó hoạt động theo luật gì” (Transitions), và “ví dụ cụ thể để confirm hiểu đúng” (Examples).


Bước 1 — High-level planner agent phân rã thành sub-tasks:

  1. Define module interface
  2. Implement cycle counter logic
  3. Implement threshold comparison
  4. Implement lock output logic

Bước 2 — Signal extraction agent extract Signals, Transitions, Examples như trên và xây TCRG.

Bước 3 — TCRG retrieval agent query graph để enrich mỗi sub-task. Khi Code Agent implement “Implement lock output logic”, nó nhận đủ: signal liên quan (count, lock), transition rule (lock=1 khi count=3), và test case cụ thể để verify — không phải chỉ tên task chung chung.

Kết quả: LLM có đủ context để implement từng sub-task mà không bỏ sót edge case.

Example

AST-based Waveform Tracing: Debug như kỹ sư thực thụ

Đây là đóng góp thứ hai, và là thứ mình thấy elegant nhất về mặt kỹ thuật.

Vấn đề debug functional error

Sau khi Code Agent viết xong và chạy simulation, iverilog trả về:

Mismatch at timestep 340ns: output z = 0, expected z = 1

Câu hỏi là: tại sao z sai? Nó phụ thuộc vào signal nào? Signal đó lại phụ thuộc vào gì?

Một kỹ sư thực thụ sẽ mở waveform viewer, trace ngược từ z → xem signal trung gian → xem state register → tìm điều kiện nào bị miss. Đây là quá trình back-tracing theo cấu trúc code.

AST-WT tool hoạt động thế nào?

VerilogCoder implement điều này bằng cách phân tích Abstract Syntax Tree (AST) của Verilog module — cấu trúc cây biểu diễn logic của code.

Dùng thư viện Pyverilog, tool này:

  1. Parse Verilog module → AST
  2. Bắt đầu từ signal bị sai (z)
  3. Truy ngược RVALUE trong AST — tức là tìm các signal quyết định giá trị của z
  4. Tiếp tục truy ngược đến level do agent tự quyết định (qua ReAct reasoning)
  5. Output: Verilog code reference + tabular waveform của tất cả signal liên quan

Debug Agent nhận output này, “nhìn thấy” waveform, và biết chính xác chỗ nào cần sửa.

Tại sao cách này hiệu quả?

Trước đây, Debug Agent chỉ nhận được “mismatch at 340ns” — thông tin quá ít để suy luận. Với AST-WT, nó nhận được đủ ngữ cảnh tương đương với việc mở waveform viewer. Nó có thể suy luận theo kiểu:

“z sai vì state = S110 nhưng điều kiện reset chưa được handle. Cần thêm case cho S110 trong next state logic.”


Kết quả thực nghiệm

Benchmark được dùng là VerilogEval-Human v2 — 156 bài toán RTL design từ đơn giản (combinational logic) đến phức tạp (multi-module FSM với state machine phức tạp).

Pass rate so với baseline

MethodModelPass Rate
RTL-Coder6.7B (Open)36.5%
DeepSeek Coder33B (Open)37.2%
CodeLlama70B (Open)41.0%
Llama370B (Open)41.7%
GPT-4Closed50.6%
GPT-4 TurboClosed60.3%
VerilogCoder (Llama3)70B (Open)67.3%
VerilogCoder (GPT-4 Turbo)Closed94.2%

VerilogCoder với Llama3 (open-source, chạy được locally) đã vượt GPT-4 Turbo dùng prompt thông thường. Với GPT-4 Turbo làm backbone, nó đạt 94.2% — vượt 33.9% so với best baseline.

Ablation study — mỗi component đóng góp bao nhiêu?

ConfigPass RateImprovement
Planner1 (baseline, không AST-WT)66.7%
Planner1 + AST-WT78.2%+11.5%
TCRG (Planner2) không AST-WT74.4%+7.7%
TCRG + AST-WT (VerilogCoder)94.2%+27.5%

Hai component này cộng hưởng với nhau — không phải đơn giản cộng. TCRG giúp nhiều với Kmap và FSM transition table (vì planning cần đầy đủ state info). AST-WT giúp nhiều với Application và FSM description (vì debug cần waveform context). Kết hợp lại thì cả hai loại bài toán đều được giải quyết.


Ý nghĩa với ngành IC design

Góc nhìn thực tế — đọc kết quả với con mắt phê phán

VerilogCoder giải quyết được bài toán specification-to-RTL ở mức 94.2% trên benchmark học thuật. Nhưng trước khi kết luận, có vài điểm cần lưu ý.

Conflict of interest trong benchmark. Benchmark VerilogEval-Human v2, số liệu baseline của các method khác, và VerilogCoder đều đến từ cùng một nhóm tác giả tại NVIDIA Research — Ren và Khailany đứng tên trên cả ba. Các baseline như GPT-4 hay Llama3 là independent, nhưng việc nhóm vừa thiết kế benchmark vừa test method của mình trên đó — kết quả cần được reproduce bởi bên thứ ba độc lập trước khi kết luận mạnh.

94.2% cũng có nghĩa là vẫn còn 6% fail. Trong production IC design, 6% module sai chức năng là không chấp nhận được — một bug trong controller logic hay sequencer có thể kéo theo respin silicon, chi phí hàng triệu đô. Benchmark cũng chưa đo được các thách thức production thực tế như timing closure, PPA optimization, multi-clock domain, hay verification coverage closure.

Nhưng đặt đúng chỗ thì đây là con số rất có giá trị. Với use case prototype — explore một function mới, draft module để team review, hay generate boilerplate cho block quen thuộc — tỉ lệ 94.2% hoàn toàn hợp lý. Kỹ sư vẫn review và verify output, nên 6% fail không phải thảm họa mà chỉ là “cần sửa thêm”. Tool phù hợp nhất ở giai đoạn early exploration, không phải sign-off.

Nhưng đây là năm 2024 — và trajectory thực sự rõ ràng khi nhìn vào những gì đang xảy ra ở các EDA vendor lớn.

Điều mình thấy thú vị hơn: paradigm shift về tool

Điểm quan trọng nhất của VerilogCoder không phải là con số 94.2%. Mà là cách tiếp cận: AI agent dùng EDA tool như một kỹ sư dùng tool.

Thay vì cố gắng dạy LLM “hiểu Verilog” tốt hơn, VerilogCoder trao cho LLM tool — syntax checker, simulator, waveform tracer — và để LLM tự quyết định khi nào dùng gì. Đây là pattern giống với cách AI agent đang tiến hóa trong software engineering (SWE-agent, OpenDevin). Và nó sẽ lan sang EDA.

Với kỹ sư digital design

Nếu bạn đang làm RTL design, đây là tín hiệu rõ ràng: công việc mechanical của RTL coding sẽ dần được tự động hóa. Những gì vẫn cần con người: microarchitecture decision, tradeoff PPA, system-level architecture, verification strategy.

Với kỹ sư AMS

Analog design có structural barrier tự nhiên cao hơn digital — simulation corner phức tạp hơn, không có benchmark rõ ràng, và physics-based constraint khó model. Nhưng phần digital backend của AMS chip sẽ bị ảnh hưởng sớm hơn — và phần đó lớn hơn nhiều người nghĩ.

Hãy nhìn vào một chip PLL điển hình: ngoài VCO, CP, LPF, bạn còn có lock detector FSM, divider control logic, calibration state machine cho VCO band selection, power-on sequencer, và đôi khi cả SPI interface để configure từ digital. Với SAR ADC: SAR control logic, redundancy correction, digital calibration backend. Với LDO: enable sequencer, soft-start FSM, fault detection logic.

Những block này thường không phức tạp về mặt Verilog — nhưng mất thời gian để viết đúng, debug, và verify. Và đây chính xác là loại task mà VerilogCoder — hay ChipStack, AgentEngineer — nhắm vào.

Với sinh viên và junior AMS: Nếu bạn chưa quen Verilog nhiều, đây là thời điểm tốt để học — không phải vì bạn sẽ phải viết nhiều hơn, mà vì bạn cần đủ fluent để review output của AI. Tool generate ra code sai 6% thời gian, và người review là bạn.

Với senior AMS: Câu hỏi thực tế hơn là integration vào existing flow. Hiện tại các vendor chưa công bố rõ về token cost per module, latency, hay cách tích hợp vào Cadence Virtuoso/Spectre flow mà AMS engineer đang dùng hàng ngày. ChipStack và AgentEngineer hiện tập trung vào digital front-end flow — Verilog đến verified RTL. Phần custom IC flow (Siemens Solido) đang được develop nhưng chưa có benchmark độc lập. Cần evaluate trực tiếp với vendor trước khi kết luận về ROI.


Từ research paper đến product: EDA vendor đang làm gì?

Nếu VerilogCoder đi vào production thực sự, nó sẽ không phải dạng opensource mà các bạn tự cài. Nó sẽ đến tay engineer qua Cadence, Synopsys, hay Siemens — và thực tế đang xảy ra nhanh hơn mình nghĩ. Chỉ ~18 tháng sau VerilogCoder, cả ba EDA vendor lớn đều có product hoặc prototype agentic AI thực sự trong tay.

Cadence — ChipStack AI Super Agent (Feb 2026)

Tháng 11/2025 Cadence acquire startup ChipStack — được co-found bởi một kỹ sư chip design có PhD về computer architecture và ML, build từ đầu để giải quyết bottleneck verification. Chỉ 3 tháng sau, tháng 2/2026, Cadence ra mắt ChipStack AI Super Agent — claim là “world’s first agentic workflow” có thể tự động hóa chip design từ specification.

Architecture gần như copy pattern VerilogCoder: multiple virtual engineers chạy song song, mỗi agent dùng Cadence EDA tool thật (Verisium Verification Platform, Cerebrus, JedAI platform), hỗ trợ cả NVIDIA Nemotron lẫn OpenAI GPT. Claim lên đến 10x productivity improvement cho coding, testbench creation, regression testing, debugging, và auto-fix. Early adopter: Altera, NVIDIA, Qualcomm, Tenstorrent.

Synopsys — AgentEngineer™ (prototype Sep 2025, production đang roll out)

Synopsys announce AgentEngineer™ technology tại DAC 2025 (Sep 2025), build trên Microsoft Discovery, trong collaboration chặt với Microsoft. Vision là autonomous chip design agent tiến hóa qua 5 level — từ single-agent step (L2) → multi-agent complex (L3) → adaptive learning (L4) → fully autonomous (L5). Hiện tại đang ở L2–L3.

Tháng 10/2025, NVIDIA confirm đang pilot Synopsys AgentEngineer cho AI-enabled formal verification. Tức là NVIDIA vừa là early adopter của Cadence ChipStack lẫn pilot partner của Synopsys AgentEngineer — cả hai vendor đang race nhau, và NVIDIA đang chơi cả hai bên. Tại Synopsys Converge 2026 (Mar 2026), AgentEngineer được report đạt 2x–5x productivity improvement trên các workflow thực tế.

Bối cảnh lớn hơn: tháng 1/2025 Synopsys hoàn thành acquisition Ansys trị giá $35B — tạo ra một công ty từ silicon design đến system-level simulation. AI agentic workflow là layer kết nối toàn bộ stack đó.

Siemens EDA — EDA AI System + Solido agentic AI (DAC 2025)

Siemens announce tại DAC 2025 (Jun 2025) một platform tích hợp agentic AI xuyên suốt toàn bộ portfolio. Điểm đáng chú ý nhất với kỹ sư AMS: Solido — tool custom IC của Siemens — tích hợp generative và agentic AI xuyên suốt toàn bộ custom IC flow từ schematic capture, simulation, variation-aware verification, library characterization, đến layout và IP validation.

Aprisa AI (digital, RTL-to-GDS) claim 10x productivity, 3x faster tapeout, 10% better PPA. Siemens dùng NVIDIA NIM microservices và Llama Nemotron làm LLM backend, hỗ trợ cả on-premises lẫn cloud — điểm quan trọng cho các công ty chip có yêu cầu bảo mật IP cao.

Bức tranh chung

Ba vendor đều chọn cùng một architecture: multi-agent, tool-integrated, human-in-the-loop. Không ai cố gắng build một “super LLM hiểu Verilog hơn” — tất cả đều đi theo hướng “trao tool cho LLM có sẵn”. VerilogCoder từ NVIDIA Research năm 2024 về cơ bản là blueprint mà cả ngành đang follow.

Nhìn kỹ hơn thì có một pattern thú vị ở tầng infrastructure: cả Cadence lẫn Synopsys đều đang partner với NVIDIA — Cadence dùng Nemotron, Synopsys pilot AgentEngineer với NVIDIA. NVIDIA vừa là chip customer của cả hai vendor (họ cần EDA tool để design GPU), vừa là AI infrastructure provider (LLM, NeMo framework). Conflict of interest tinh tế hơn nhưng cũng đáng theo dõi.

Bài học: VerilogCoder không phải chỉ là một paper học thuật thú vị. Nó là preview của những gì Cadence, Synopsys, và Siemens đang ship vào production — và câu hỏi không còn là “AI có replace kỹ sư không?” mà là “EDA vendor nào monetize được workflow này trước?”


Tổng kết

VerilogCoder từ NVIDIA Research là một demo ấn tượng về hướng đi của AI-assisted hardware design. Ba điểm chính:

1. Multi-agent > single prompt. Phân vai Code Agent / Debug Agent với tool riêng biệt, phối hợp theo flow có cấu trúc, hiệu quả hơn nhiều so với nhờ một LLM làm tất cả.

2. Planning với domain knowledge là chìa khóa. TCRG không chỉ phân rã task — nó embed circuit knowledge (signal, transition, example) vào từng bước. Đây là điều LLM không tự làm được nếu không có framework.

3. Tool integration quyết định debug quality. AST-based waveform tracing là thứ biến AI agent từ “đoán mò” thành “phân tích có cơ sở”. Tương tự cách một kỹ sư giỏi debug không phải bằng trực giác mà bằng tool.

VerilogCoder là paper từ năm 2024 — nhưng Cadence, Synopsys, và Siemens đang ship đúng pattern đó vào production ngay bây giờ. Với kỹ sư AMS, câu hỏi thực tế không phải là “bao giờ AI mới đủ tốt?” mà là “mình cần biết gì để làm việc hiệu quả với tool đó khi nó đến tay mình?”

Code và benchmark đều public. Nếu bạn tò mò muốn thử, repo GitHub của NVlabs là điểm xuất phát tốt.


Tham khảo

  • Chia-Tung Ho, Haoxing Ren, Brucek Khailany, “VerilogCoder: Autonomous Verilog Coding Agents with Graph-based Planning and Abstract Syntax Tree (AST)-based Waveform Tracing Tool”, arXiv:2408.08927, 2024 — Paper gốc, full paper available tại arxiv.org/abs/2408.08927. Ablation study trong paper rất chi tiết, đáng đọc nếu bạn quan tâm đến kỹ thuật.

  • NVlabs/VerilogCoder GitHub Repo — Source code, prompt templates, và hướng dẫn cài đặt. Cần iverilog để chạy waveform tracing tool: github.com/NVlabs/VerilogCoder.

  • Pinckney et al., “Revisiting VerilogEval: Newer LLMs, In-Context Learning, and Specification-to-RTL Tasks”, 2024 — Benchmark được dùng trong paper. Nếu bạn muốn evaluate một tool Verilog generation khác, đây là benchmark chuẩn của cộng đồng.

  • Yao et al., “ReAct: Synergizing Reasoning and Acting in Language Models”, arXiv:2210.03629, 2022 — Framework reasoning Thought-Action-Observation mà VerilogCoder dùng cho agent interaction.