• Integrated Circuit Design - Chia sẻ kiến thức về vi mạch

    Integrated Circuit Design - Chia sẻ kiến thức về vi mạch

    Vi mạch và Ứng dụng

  • Integrated Circuit Design - Chia sẻ kiến thức về vi mạch

    Integrated Circuit Design - Chia sẻ kiến thức về vi mạch

    Vi mạch và Ứng dụng

  • Integrated Circuit Design - Chia sẻ kiến thức về vi mạch

    Integrated Circuit Design - Chia sẻ kiến thức về vi mạch

    Vi mạch và Ứng dụng

Thứ Ba, 6 tháng 10, 2026

Q3TUI: Gated AI Workflow cho thiết kế RTL của IP số

Q3TUI: Gated AI Workflow cho thiết kế RTL của IP số

Tóm tắt: Q3TUI là công cụ TUI và CLI dùng để điều phối quy trình phát triển IP phần cứng từ specification đến RTL, verification và tài liệu thiết kế. Phần mềm kết hợp AI agent với các bước kiểm tra xác định bằng code như RTL lint, simulation và requirements traceability. Quy trình sử dụng các gate để dừng cho human review hoặc tự xác nhận khi đạt điều kiện. Bài viết phân tích workflow, cơ chế review và Requirements Traceability Matrix (RTM) của Q3TUI. Nội dung được tổng hợp từ tài liệu repo phiên bản 0.1.0 Beta, truy cập ngày 6 tháng 10 năm 2026; đây không phải kết quả benchmark hay xác minh độc lập trên một môi trường EDA cụ thể.

Từ khóa: Q3TUI, AI agent, RTL, SystemVerilog, verification, human-in-the-loop, RTM.

1. Giới thiệu

Phát triển một digital IP thường gồm nhiều công đoạn liên kết với nhau: viết specification, chọn parameter, tạo RTL, xây dựng testbench, viết assertion, chạy verification và lập tài liệu. Khi các công đoạn dùng công cụ riêng, việc giữ consistency giữa requirement và implementation có thể trở nên khó khăn. AI có thể hỗ trợ tạo nội dung, nhưng kết quả vẫn cần được kiểm tra về coding rules, chức năng và coverage.

Q3TUI tiếp cận vấn đề bằng cách điều phối các công đoạn trong một pipeline thống nhất. Theo README, Q3 là viết tắt của “Quality, Quick, Quorum”. Người dùng có thể điều khiển cùng một engine qua TUI, CLI hoặc trợ lý hội thoại. Dự án được xây dựng trên Claude Agent SDK và kết nối EDA tools thông qua các role adapter có thể cấu hình [1].

2. Mục tiêu và phạm vi

Q3TUI hướng đến việc hỗ trợ chuyển ý tưởng thiết kế hoặc specification thành một bộ artifacts có thể review, gồm synthesizable RTL, testbench, assertion và tài liệu. AI agent tham gia tạo nội dung, còn code-based checks và review gates tạo các điểm kiểm soát trước khi workflow tiếp tục.

Pipeline mặc định được mô tả là: spec → parse → config → rtl ‖ tb → sva → verify → doc. Hai nhánh RTL và testbench có thể chạy tuần tự hoặc song song vì cùng sử dụng output từ config. Khi requirement hoặc parameter thay đổi, Q3TUI hướng đến việc cập nhật các stage bị ảnh hưởng thay vì chạy lại toàn bộ pipeline [1][2].

3. Kiến trúc và workflow

Hình 1 thể hiện luồng xử lý chính của Q3TUI. Các nhãn màu vàng biểu thị stage có human review; màu xanh biểu thị stage có thể auto-confirm theo điều kiện của workflow.

Q3TUI VLSIT workflow Luồng từ spec qua parse và config, tách thành RTL và testbench song song, rồi hội tụ ở SVA, verify và doc. Các gate human và auto được đánh dấu riêng. Q3TUI · VLSIT FLOW SPEC design intent PARSE requirements Gate 1 · HUMAN CONFIG parameters Gate 2 · AUTO RTL lint · synthesis TB test plan · compile Gate 4 · AUTO SVA assertions Gate 3b · HUMAN VERIFY sim · mutation Gate 5 · HUMAN DOC MD · PDF human review gate auto gate RTL và TB có thể chạy song song sau CONFIG
Hình 1. Các stage và gate trong VLSIT workflow được mô tả trong README của Q3TUI [1].

Bảng dưới đây tóm tắt chức năng từng stage. Các gate được nêu theo workflow mặc định trong tài liệu dự án; người dùng có thể thay đổi mode theo cấu hình.

Stage Chức năng Gate hoặc kiểm tra
Spec Tạo hoặc tiếp nhận specification cho IP. Người dùng cung cấp hoặc review nội dung đầu vào.
Parse Trích xuất requirement IDs, parameter, module map và nội dung còn mơ hồ. Gate 1; human review requirements.
Config Giải quyết parameter values và kiểm tra elaboration constraints. Gate 2; có thể auto-confirm khi đạt điều kiện.
RTL Tạo các module SystemVerilog và áp dụng RTL rules. Code-based lint; có thể gọi synthesis thông qua tool adapter được cấu hình.
TB Tạo plain SystemVerilog testbench và test plan. Gate 4; tài liệu mô tả việc compile testbench trước khi tiếp tục.
SVA Tạo assertion theo requirement và bind chúng với RTL. Gate 3b; assertions và review items được đưa ra cho người dùng.
Verify Chạy selected tests, mutation testing và tạo RTM. Gate 5; human verification sign-off.
Doc Tổng hợp Markdown và PDF từ các artifacts của workflow. Dựa trên output của các stage trước.

4. Functional architecture

Hình 2 trình bày functional view của Q3TUI. TUI, CLI và chat là các frontend; workflow engine điều phối stage và review state; AI agent và EDA role adapter được sử dụng cho các tác vụ tương ứng.

Q3TUI functional architecture TUI, CLI và chat cùng sử dụng workflow engine. Project inputs đi vào engine. Engine gọi AI agent và EDA role adapters, sau đó tạo RTL, TB, SVA, RTM và tài liệu. Q3TUI · FUNCTIONAL ARCHITECTURE FRONTENDS TUI · CLI · Chat one workflow engine PROJECT INPUTS spec · config · rules user decisions Q3TUI WORKFLOW ENGINE stage orchestration · state tracking content hash · selective update gate modes · review items · sign-off AI AGENT Claude Agent SDK generation · analysis EDA ROLE ADAPTERS lint · synthesis compile · simulation ARTIFACTS RTL · TB · SVA · RTM specification · PDF
Hình 2. Functional architecture khái quát theo mô tả trong README và feature inventory [1][2].

5. Gates và human-in-the-loop review

Q3TUI mô tả bốn gate modes: human, auto, auto_answer và none. Chế độ human dừng để người dùng review; auto có thể tự xác nhận khi không còn blocking question; auto_answer còn có thể trả lời câu hỏi bằng default value; còn none tắt gate ở stage tương ứng. Các chế độ có thể cấu hình theo từng project hoặc session.

Review được theo dõi theo từng item, chẳng hạn flagged requirements, changed parameters và SVA assertions, thay vì chỉ dựa vào một nút approve tổng quát. Theo tài liệu tính năng, assertion không được trigger trong simulation chưa có bằng chứng xác nhận và không được silently đánh dấu là đã review. Cách làm này hỗ trợ human-in-the-loop (HITL), nhưng mức an toàn thực tế còn phụ thuộc vào gate mode và chính sách review mà nhóm cấu hình [2].

6. RTM và các kiểm tra xác định

Requirements Traceability Matrix (RTM) là một thành phần trọng tâm trong workflow. Hình 3 minh họa sáu điều kiện được tài liệu dự án mô tả cho từng requirement: được tag trong RTL; có SVA assertion đã được xác nhận; được cover bởi test case; simulation đạt; mutation score đạt threshold hoặc được ghi là không áp dụng; và được người dùng sign-off.

RTM evidence path for each requirement Mỗi requirement được theo dõi qua sáu điều kiện: RTL tag, reviewed SVA, mapped test case, passed simulation, mutation threshold hoặc không áp dụng, và human sign-off. RTM · EVIDENCE PER REQUIREMENT REQ-ID 1 · RTL TAGGED requirement liên kết với RTL 2 · SVA REVIEWED assertion được xác nhận 3 · TEST MAPPED test case cover requirement 4 · SIMULATION PASS selected test chạy đạt 5 · MUTATION SCORE đạt threshold hoặc N/A 6 · HUMAN SIGN-OFF kỹ sư xác nhận requirement RTM ghi lại trạng thái evidence cho từng REQ-ID
Hình 3. Evidence path của một requirement trong RTM, tóm lược từ feature inventory [2].

Mutation testing bổ sung một góc nhìn ngoài việc kiểm tra testbench có chạy thành công hay không: nó đánh giá liệu test suite có phát hiện được các thay đổi sai có chủ đích trong RTL hay không. Tài liệu cho biết mutation score được theo dõi theo requirement. Tuy nhiên, giá trị của chỉ số phụ thuộc vào mutation set, tool configuration và threshold; repo không cung cấp benchmark độc lập trong các tài liệu đã khảo sát.

Q3TUI cũng mô tả RTL rule enforcement bằng code, bao gồm naming conventions, file/module-name consistency và một số prohibited constructs như delay hoặc latch. Theo feature inventory, một số quy tắc khác — chẳng hạn abbreviation table và combinational-loop freedom — hiện vẫn là guidance, chưa được xác minh độc lập hoàn toàn bằng code [2].

7. Giao diện và khả năng tích hợp

Q3TUI cung cấp TUI, CLI và trợ lý hội thoại. TUI hiển thị pipeline status, kết quả của stage đang chọn và activity log. CLI cho phép điều khiển workflow theo cách có thể script hóa. README mô tả cả ba hình thức sử dụng chung một engine.

EDA tools được kết nối qua các role adapter có thể cấu hình, thay vì gắn cứng toàn bộ workflow với một vendor. Tài liệu cũng mô tả TUI và generated content hỗ trợ tiếng Anh, tiếng Việt và tiếng Hàn. Khả năng chạy thực tế vẫn phụ thuộc vào adapter, EDA tools, AI model và môi trường của project.

8. Thảo luận và giới hạn

Q3TUI kết hợp AI-based generation với code-based checks, review gates và RTM. Cơ chế cập nhật các stage bị ảnh hưởng khi requirement thay đổi cũng có tiềm năng giảm việc chạy lại không cần thiết. Đây là các đặc điểm kiến trúc được mô tả trong repo, chưa phải bằng chứng định lượng về mức cải thiện năng suất hoặc chất lượng RTL.

Repo ghi phiên bản 0.1.0 Beta. Feature inventory nêu một số phần giao diện chưa được dịch đầy đủ và một số RTL rules chưa được kiểm tra hoàn toàn bằng code. Tài liệu đã khảo sát cũng không đưa ra số liệu benchmark về thời gian thiết kế, defect rate, coverage hoặc khả năng tái lập trên nhiều EDA environments. Do đó, các kết luận về hiệu quả cần được kiểm tra bằng một evaluation có cấu hình rõ ràng và kết quả tái lập.

Các tiêu chí phù hợp để đánh giá gồm: tỷ lệ requirement được trace đến RTL và test; số assertion không được trigger; mutation score theo module; số lần phải sửa artifacts sau lint hoặc synthesis; và thời gian chạy pipeline với từng cấu hình cố định. Đây là các đề xuất đánh giá, không phải kết quả đã được công bố bởi dự án.

9. Kết luận

Q3TUI là một workflow orchestration tool cho phát triển digital IP, kết hợp AI agent, TUI/CLI, review gates, code-based RTL checks và RTM. Điểm đáng chú ý là automation được gắn với các điểm review và verification sign-off thay vì chỉ dựa vào nội dung AI sinh ra. Tuy vậy, do dự án đang ở giai đoạn Beta và chưa có benchmark độc lập trong tài liệu đã khảo sát, cần đánh giá thêm trên các design, EDA tools và tiêu chí chất lượng cụ thể trước khi dùng kết quả làm cơ sở sign-off sản phẩm.

Tài liệu tham khảo

  1. Nguyenquanicd. VLSIT_Q3TUI_AI_FLOW — Q3TUI. GitHub repository. https://github.com/nguyenquanicd/VLSIT_Q3TUI_AI_FLOW.
  2. Nguyenquanicd. Q3TUI Feature Inventory. Tài liệu tính năng phiên bản 0.1.0 Beta. https://github.com/nguyenquanicd/VLSIT_Q3TUI_AI_FLOW/blob/main/docs/FEATURES.md.

Tác giả: Lương Triền Thắng và Lê Trường Thịnh

Thứ Tư, 30 tháng 9, 2026

AI Flow VLSIT: Từ đặc tả phần cứng đến RTL và cách xây dựng agent chuyên biệt

Tóm tắt. VLSIT tổ chức quy trình hỗ trợ thiết kế RTL bằng mô hình ngôn ngữ lớn (LLM): từ đặc tả phần cứng, phân rã yêu cầu và cấu hình đến sinh RTL, testbench, assertion SystemVerilog (SVA), mô phỏng, kiểm thử đột biến (mutation testing) và tài liệu. Trọng tâm là phối hợp chỉ dẫn theo vai trò với artifact có cấu trúc, công cụ EDA và các điểm kỹ sư rà soát. Bài viết phân tích luồng này, xác định ranh giới tự động hóa và trình bày nguyên lý tạo agent chuyên biệt có phạm vi, hợp đồng đầu vào/đầu ra, tiêu chí hoàn tất và điều kiện dừng rõ ràng.

1. Mục tiêu và phạm vi phân tích

Bài viết xem VLSIT như một nguyên mẫu kỹ thuật cho quy trình thiết kế và kiểm chứng RTL có AI hỗ trợ. Phân tích tập trung vào kiến trúc các vai trò, luồng artifact, mức tự động hóa, cách tạo agent chuyên biệt và điều kiện cần để đánh giá kết quả. Đây là phân tích thiết kế quy trình, không phải báo cáo benchmark độc lập: các ví dụ và số liệu được đọc từ những lần chạy đã lưu, không được chạy lại trong một môi trường EDA mới. Vì vậy, chúng giúp minh họa cách vận hành chứ không thay thế regression có thể tái lập, chứng minh hình thức, phân tích timing tĩnh hay sign-off ASIC [1].

Mạch lập luận của bài đi từ ranh giới giữa LLM và công cụ thiết kế, sang cách các phase trao đổi dữ liệu; từ đó mới đánh giá phần nào có thể tự động hóa, vai trò nào nên tách thành agent và cách vận hành flow trên một IP cụ thể.

2. Khái niệm AI flow và ranh giới chức năng

VLSIT không phải một bộ trọng số LLM, pipeline huấn luyện/tinh chỉnh mô hình, hệ thống tăng cường truy xuất tri thức hay backend gọi API độc lập. Mô hình ngôn ngữ được cung cấp bởi môi trường chạy như Claude Code hoặc Codex CLI. Phần quy trình gồm chỉ dẫn theo vai trò, quy tắc RTL, lược đồ dữ liệu, script và artifact dự án; LLM dùng chúng để thực hiện từng công việc trong vòng đời thiết kế [1].

Do đó, “AI flow” ở đây là một quy trình kỹ thuật được điều khiển bằng chỉ dẫn cho agent, chứ không phải một công cụ EDA mới. Mỗi vai trò nhận một nhóm đầu vào, thực hiện nhiệm vụ giới hạn, ghi artifact ra project rồi bàn giao cho phase kế tiếp. LLM có thể phân tích và tạo mã, nhưng không thể tự biến suy luận thành bằng chứng thực thi; lint, synthesis và mô phỏng phải do Verilator, Yosys hoặc simulator chạy trên thiết kế thật.

Ba lớp kiến trúc

  1. Lớp chỉ dẫn và điều phối: 9 Claude Code commands dưới .claude/commands/ và 9 Codex CLI project skills dưới .agents/skills/. Mỗi phase có thể được gọi riêng; /autoflow hoặc skill autoflow mô tả trình tự tổng thể.
  2. Lớp dữ liệu và truy vết: đặc tả, JSON artifacts, JSON Schema và Requirement Traceability Matrix (RTM). Chúng giúp các phase trao đổi một baseline cụ thể, thay vì dựa hoàn toàn vào lịch sử hội thoại.
  3. Lớp thiết kế và bằng chứng: SystemVerilog, script Bash/Yosys, lint, synthesis, simulation và các log/báo cáo do công cụ tạo ra.

Ba lớp này tạo thành một chu trình: chỉ dẫn định hình công việc của LLM, artifact lưu trạng thái thiết kế, còn EDA tạo bằng chứng từ mã và cấu hình đã lưu. Việc phân lớp giúp phân biệt rõ nơi sinh ra kết quả với nơi kiểm tra kết quả.

Lớp kiến trúcThành phầnVai trò trong flow
Điều phối AILLM, command và project skillĐọc đầu vào, thực hiện phase, chuyển tiếp theo chỉ dẫn.
Dữ liệu và truy vếtĐặc tả, JSON Schema, artifact và RTMLưu baseline, cấu hình và quan hệ giữa requirement với bằng chứng.
Thiết kế và kiểm traRTL, SVA, testbench, EDA và logTạo thiết kế, chạy kiểm tra thực thi và ghi kết quả.

Hình 1. AI, prompt, project artifact và EDA có vai trò khác nhau. Prompt hướng dẫn; artifact lưu trạng thái; EDA tạo bằng chứng thực thi.

Slash command và skill không tự thân là workflow engine cưỡng chế mọi điều kiện. Thứ tự phase, điểm dừng và cách cập nhật artifact hiện được mô tả trong các chỉ dẫn; tính nhất quán vì vậy phụ thuộc vào cách agent thực hiện và việc đối chiếu với công cụ. Một dòng “PASS” trong phần tóm tắt chỉ là kết luận đáng tin khi có lệnh và log tương ứng để kiểm tra [1, 3, 6].

3. Luồng từ yêu cầu đến tài liệu

Khi đã tách được ba lớp kiến trúc, có thể theo dõi cách dữ liệu đi qua hệ thống. Luồng bắt đầu từ đặc tả phần cứng hoặc mô tả bằng ngôn ngữ tự nhiên, sau đó chuyển thành yêu cầu có mã định danh, cấu hình, RTL, test và bằng chứng verification [2].

Phase Vai trò chính Artifact hoặc bằng chứng cần xem
0 — Viết spec (tùy chọn) spec_writer chuyển mô tả ban đầu thành bản đặc tả có cấu trúc hơn. spec/<ip_name>_spec.md
1 — Phân tích spec spec_parser tách requirement, gán REQ-ID, đánh dấu mơ hồ, ánh xạ module/parameter và gợi ý property. schemas/structured_spec.json; review tại Gate 1
2 — Chốt cấu hình config_ui chọn parameter và kiểm tra ràng buộc. Đây là tương tác trong hội thoại, không phải GUI riêng. schemas/final_config.json; Gate 2
3a — Sinh RTL rtl_generator tạo SystemVerilog theo spec, cấu hình và coding rules; chạy lint, rồi synthesis khi môi trường sẵn sàng. src/rtl/, file list và synth_report.json
4 — Sinh testbench tb_generator tạo test plan và testbench SystemVerilog. src/tb/, selected_testplan.json; kiểm tra compile
3b — Sinh assertions sva_generator tạo SVA, bind và cập nhật traceability; cần đánh giá ý nghĩa property và vacuity. src/sva/, rtm.json; review tại Gate 3b
5 — Verification verification nối testbench và SVA với compile, simulation, mutation khi có công cụ phù hợp, cập nhật các verification gap. Log thực thi, verification_report.json, RTM; review tại Gate 5
6 — Tài liệu spec_pdf_generator tổng hợp artifact và RTL thành tài liệu Markdown/PDF. docs/specification.md, PDF nếu chuyển đổi thành công
Trình tựPhase / vai tròĐầu ra và cổng review
1Phân tích đặc tảstructured_spec.json; Gate 1 do kỹ sư review.
2Chốt cấu hìnhfinal_config.json; Gate 2 có thể tự xác nhận khi đạt điều kiện.
3a và 4Sinh RTL; sinh testbenchRTL, lint/synthesis, test plan và compile check; hai phase được chạy tuần tự trong một session.
3bSinh SVAAssertion, bind, RTM; Gate 3b review ý nghĩa property và vacuity.
5VerificationCompile, simulation, mutation khi có tool; Gate 5 review log và gap.
6Tổng hợp tài liệuMarkdown/PDF sau khi kết quả đã qua review.

Hình 2. Trình tự phase và các cổng rà soát. Gate 2 và Gate 4 có thể tự xác nhận trong autoflow khi đạt điều kiện; Gate 1, Gate 3b và Gate 5 yêu cầu kỹ sư xem xét.

Gate là gì và vì sao cần giữ lại?

  • Gate 1 — baseline yêu cầu: kỹ sư xác nhận yêu cầu đã được tách đúng, không còn quyết định mơ hồ chưa xử lý và mapping sang module/parameter là hợp lý. Nếu lỗi ở đây, mọi artifact sau đó có thể nhất quán về cú pháp nhưng sai chức năng.
  • Gate 2 — baseline cấu hình: autoflow có thể chọn giá trị mặc định, trừ khi có override từ spec hoặc hội thoại; có thể tự xác nhận khi không lỗi. Việc này thuận tiện nhưng cần đưa giá trị cấu hình quan trọng vào spec, tránh dựa vào mặc định mà người dùng không chủ ý.
  • Gate 3b — review property: con người cần xác nhận assertion diễn tả đúng intent, bind đúng tín hiệu và không bị vacuous do stimulus không kích hoạt điều kiện. Compile pass chỉ chứng minh cú pháp/khả năng biên dịch, không chứng minh property đúng.
  • Gate 4 — testbench: theo autoflow, có thể tự xác nhận nếu compile check pass. Compile testbench không đồng nghĩa test có kiểm tra hành vi đủ mạnh.
  • Gate 5 — verification/sign-off: kỹ sư cần đọc kết quả từng test, xác nhận SVA có thực sự chạy, xem mutation và các requirement còn thiếu bằng chứng. Flow khóa sign-off của requirement tương ứng nếu mutation score dưới 85%; trường hợp N/A có thể được chính sách cho phép nhưng không phải mutation pass. Gate 5 được duyệt cũng không đồng nghĩa mọi REQ-ID đã sign-off [2, 5].

RTM: trục chính của khả năng truy vết

RTM kết nối chuỗi:

REQ-ID → khối/file RTL → SVA đã review → test case được chọn → kết quả chạy → trạng thái sign-off

Khi có yêu cầu thay đổi, chuỗi này hỗ trợ trả lời: requirement nào bị ảnh hưởng? Có RTL implement không? Có assertion kiểm soát không? Có test kích hoạt và bằng chứng pass không? Vẫn còn requirement pending/locked nào? Đây là giá trị kỹ thuật đáng chú ý hơn việc chỉ sinh một tập file RTL. Tuy nhiên RTM chỉ hữu ích nếu mapping được kiểm tra và trạng thái không bị sao chép từ một lần chạy cũ. Một JSON hợp lệ về cấu trúc chưa đảm bảo nội dung đúng về ngữ nghĩa.

RTM vì thế là cầu nối giữa việc sinh thiết kế và việc quyết định có đủ bằng chứng hay chưa. Để hiểu vai trò thực tế của AI, cần tách rõ những thao tác có thể giao cho agent với các điểm vẫn cần con người phê duyệt.

4. Ranh giới của tự động hóa

Những thao tác có thể tự động hóa

Autoflow có thể bắt đầu từ file đặc tả có sẵn hoặc từ mô tả thiết kế (--describe). Sau đó, agent gọi các phase theo thứ tự, đọc và ghi artifact, trình bày tóm tắt, dùng giá trị mặc định khi chưa có override, và tiếp tục từ phase đã chọn dựa trên trạng thái đã lưu. Các điểm resume được hỗ trợ gồm phase3b, phase5 và phase6 [3, 6].

Khi thiếu đầu vào hoặc gặp lỗi nghiêm trọng, flow cần dừng, báo lint/compile/simulation thất bại và không chuyển tiếp nếu điều kiện chưa đạt. Khả năng tạo mã, chạy lệnh và đọc log còn phụ thuộc quyền truy cập project, shell, toolchain, thư viện PDK và license trên máy chạy.

“Automatic” không có nghĩa là thiết kế tự duyệt

Có thể tự động hóa trong flow Vẫn cần kỹ sư quyết định hoặc kiểm tra
Soạn draft spec, phân tích thành requirement có mã định danh Tính đúng, đầy đủ và không mơ hồ của spec
Đọc parameter và tạo file cấu hình Giá trị cấu hình có phù hợp mục tiêu sản phẩm hay không
Sinh RTL/SVA/testbench theo prompt và coding rules Ý nghĩa chức năng, giao thức, corner case và chất lượng stimulus
Gọi lint, synthesis, compile, simulation nếu tool có sẵn Log có phản ánh đúng baseline; phạm vi kiểm chứng có đủ hay không
Cập nhật JSON/RTM và tổng hợp tài liệu Chấp nhận gate, ký sign-off, quyết định xử lý verification gap

RTL và testbench là hai đầu ra có thể phát triển độc lập sau Gate 2, nhưng autoflow hiện gọi Phase 3a trước rồi đến Phase 4 trong cùng session. Không có scheduler để thực thi đồng thời; “độc lập” ở đây mô tả quan hệ công việc, không phải bảo đảm về chạy song song [1, 3].

Ranh giới này cũng giúp xác định đúng vai trò của agent: tự động hóa được những thao tác có đầu vào và tiêu chí rõ, còn quyết định về yêu cầu, ngữ nghĩa property và sign-off cần người chịu trách nhiệm xem xét.

5. Nguyên lý tạo agent riêng trong flow này

5.1 Agent chuyên biệt là một vai trò có hợp đồng rõ ràng

Trong VLSIT, mỗi vai trò được hiện thực hóa bằng một bộ chỉ dẫn gắn với môi trường chạy:

  • Với Claude Code, mỗi command là một file Markdown dưới .claude/commands/, ví dụ rtl_generator.md.
  • Với Codex CLI, mỗi project skill là thư mục có file SKILL.md dưới .agents/skills/<skill-name>/. Phần đầu file có metadata name và description, sau đó là hướng dẫn mà agent đọc và làm theo. Bộ hiện có 9 skill, tương ứng với 9 command phase của Claude Code.
  • Với autoflow, vai trò điều phối gọi/đọc các phase khác và dựa vào artifact đã lưu để xác định trạng thái tiếp theo.

Command và skill là cấu hình vai trò bên trong host agent. Tạo một skill không tự sinh ra process LLM độc lập, model riêng hay năng lực chạy đồng thời. Các phase chuyển giao bằng cách đọc skill kế tiếp và trao đổi qua artifact; muốn chạy song song cần có cơ chế điều phối thực sự, không chỉ chia prompt [1, 6].

Vai tròTrách nhiệmBàn giao
Agent điều phốiTheo dõi phase, dependency, trạng thái và gate.Chỉ định phase kế tiếp dựa trên artifact.
Agent phân tích spec / cấu hìnhTách requirement, ambiguity và parameter.structured_spec.json, final_config.json.
Agent RTL / testbench / SVATạo các sản phẩm thiết kế và verification theo phạm vi riêng.RTL, test plan, testbench, assertion và RTM.
Agent verificationChạy công cụ sẵn có, tổng hợp kết quả và gap.Log và verification report.

Điểm kiểm soát: kỹ sư duyệt yêu cầu, property và bằng chứng sign-off. Việc chia vai trò không đồng nghĩa các agent chạy đồng thời.

Hình 3. Mô hình vai trò: agent điều phối giao việc cho các vai trò chuyên biệt, artifact giữ trạng thái giữa phase và kỹ sư duyệt quyết định quan trọng. Các vai trò không mặc nhiên là những tiến trình LLM chạy đồng thời.

5.2 Bảy nguyên tắc để tạo một agent hữu dụng

  1. Đặt một nhiệm vụ hẹp và có lý do tồn tại. Ví dụ “kiểm tra tính nhất quán giữa port RTL với interface trong spec” dễ đánh giá hơn “thiết kế IP hoàn chỉnh”.
  2. Khai báo đầu vào và nguồn sự thật. Nêu rõ agent phải đọc file nào, phiên bản nào là chuẩn và điều gì được xem là thiếu. Khi spec và RTL mâu thuẫn, agent nên báo mâu thuẫn thay vì tự chọn một phía.
  3. Định nghĩa đầu ra có thể kiểm tra. Ghi tên file, schema/trường bắt buộc, format summary và cách liên kết finding với REQ-ID. Tránh output chỉ là một đoạn nhận xét tự do nếu bước sau cần tiêu thụ dữ liệu.
  4. Nêu quyền và giới hạn thao tác. Agent có được sửa RTL không, hay chỉ đọc và báo cáo? Có được chạy lệnh nào? Khi input không rõ, cần dừng hay được dùng giả định nào? Quy định này hạn chế việc agent âm thầm mở rộng phạm vi.
  5. Viết điều kiện đạt và điều kiện dừng rõ ràng. Ví dụ: mọi requirement interface được map; lint phải thực sự chạy; tool không có thì kết quả là “not run”, không phải pass; lỗi blocker thì không chuyển phase.
  6. Thiết kế phase để nối với flow. Mô tả phase trước/sau, artifact cần đọc/ghi và ảnh hưởng của việc sửa input. Autoflow nên điều phối phase, còn mỗi agent chuyên trách nên giữ một nhiệm vụ duy nhất.
  7. Tạo khả năng truy vết và resume. Ghi REQ-ID, baseline/phiên bản, lệnh và log tương ứng; không tái sử dụng approval hoặc báo cáo cũ nếu spec/config đã thay đổi.

Có thể nhớ công thức:

Vai trò + đầu vào chuẩn + hành động cho phép + đầu ra có cấu trúc + tiêu chí đạt + điều kiện dừng + bàn giao

5.3 Mẫu skill minh họa: agent rà soát interface

Ví dụ dưới đây minh họa cách thu hẹp nhiệm vụ thành một agent có thể đánh giá được. Agent chỉ đọc và phát hiện sai khác giữa đặc tả giao tiếp với khai báo port RTL; nó không tự sửa thiết kế.

---
name: source-command-interface-auditor
description: "Review interface consistency between an approved hardware specification and SystemVerilog RTL."
---
# Interface Auditor

## Mục tiêu
Đối chiếu interface của module với spec đã được duyệt; không sinh hoặc sửa RTL.

## Đầu vào bắt buộc
- schemas/structured_spec.json
- schemas/final_config.json
- Danh sách file RTL/top module của baseline đang review
- REQ-ID liên quan nếu được cung cấp

## Thực hiện
1. Xác định spec và cấu hình thuộc cùng baseline với RTL.
2. Trích tên, hướng, độ rộng và nhóm clock/reset của từng port.
3. Đối chiếu từng trường với yêu cầu nguồn.
4. Ghi finding có mức độ, file/port, REQ-ID, bằng chứng và cách tái hiện.
5. Không suy đoán giá trị còn thiếu; ghi là unresolved và dừng nếu ảnh hưởng đến kết luận.

## Đầu ra
- reports/interface_audit.md: tóm tắt, findings, unresolved items và baseline
- schemas/interface_audit.json: status, checked_ports, findings, source_files

## Tiêu chí hoàn tất
- Mọi port top-level thuộc phạm vi đã được kiểm tra.
- Tool/log chỉ được đánh dấu pass nếu thực sự đã chạy và đọc kết quả.
- Nếu spec thiếu hoặc baseline không khớp, kết quả là blocked, không phải pass.

## Bàn giao
Chỉ đề xuất Gate review khi không còn finding blocker. Chờ kỹ sư quyết định mọi thay đổi thiết kế.

Ví dụ cho thấy nguyên lý cốt lõi: giới hạn agent vào một nhiệm vụ, xác định artifact đầu vào/đầu ra và yêu cầu nó giải thích bằng chứng. Vai trò đó có thể được đóng gói thành project skill của Codex CLI hoặc command Markdown của Claude Code; cách kích hoạt phụ thuộc môi trường chạy [1, 6].

5.4 Đưa agent mới vào autoflow

Tạo file skill hoặc command thôi chưa làm agent mới tự chạy. Để tích hợp đúng, cần thực hiện tuần tự:

  1. Chọn vị trí và tên rõ ràng. Với Codex CLI, tạo thư mục skill và SKILL.md có name, description cùng nội dung hướng dẫn. Với Claude Code, tạo command Markdown ở vị trí command mà project đang dùng.
  2. Xác định artifact contract. Thêm JSON Schema nếu đầu ra cần được phase sau tiêu thụ có kiểm tra trường. Chọn đường dẫn ổn định và mô tả owner của mỗi artifact.
  3. Viết hướng dẫn độc lập. Một skill phải có đủ ngữ cảnh để host agent biết lúc nào dùng, đọc gì, làm gì, tạo gì và báo gì nếu thiếu tool. Hạn chế phụ thuộc ngầm vào một cuộc hội thoại trước.
  4. Thêm phase vào orchestrator. Chỉ định phase chạy sau/before nào, gate nào bảo vệ bước đó, điều kiện được đi tiếp và cách resume. Nếu không sửa điều phối thì agent mới chỉ có thể gọi thủ công.
  5. Cập nhật điều phối và tài liệu dự án. Đăng ký phase mới trong orchestrator, preflight, sơ đồ và danh sách artifact để agent có thể được gọi đúng lúc.
  6. Rà soát tương thích IP. Các vai trò mẫu chứa giả định về module, tín hiệu, schema và môi trường EDA. Khi đổi IP, cập nhật đồng bộ mapping của parser, cấu hình, hierarchy RTL, SVA, test plan và tài liệu.
  7. Kiểm chứng bằng fixture nhỏ. Tạo spec thử có kết quả mong đợi; kiểm tra trường hợp đạt, thiếu input, mâu thuẫn, tool không sẵn sàng và resume sau khi input đổi. Lưu log để kỹ sư review. Điều phối chỉ đáng tin khi các điều kiện này có thể được kiểm tra, thay vì chỉ dựa vào lời khẳng định của agent.

Nguyên tắc thiết kế phù hợp là worker theo phase, orchestrator gọn: mỗi worker chịu trách nhiệm một loại suy luận hoặc sản phẩm; orchestrator giữ thứ tự, dependency, trạng thái và cổng duyệt. Một prompt quá lớn khó bảo trì; ngược lại, tách quá nhiều worker mà thiếu schema và gate dễ làm các vai trò ghi đè artifact hoặc lệch baseline.

Sau khi xác định hợp đồng của từng vai trò, bước tiếp theo là chuẩn bị môi trường và dữ liệu đầu vào để flow có thể chạy trên một thiết kế cụ thể.

6. Vận hành flow trên một IP cụ thể

6.1 Chuẩn bị

Flow cần môi trường Linux/Bash có Environment Modules và công cụ EDA. Trước khi chạy, kiểm tra sourceme.sh, phiên bản tool, đường dẫn PDK và module có sẵn trên máy. Verilator dùng cho lint, Yosys cho synthesis, thư viện GF180MCU Liberty cho technology mapping và simulator phù hợp cho kiểm chứng. VCS cần cài đặt và license riêng; một số đường chạy Icarus bỏ qua SVA. Script tạo PDF cần Python 3 và Matplotlib. Mọi giả định về đường dẫn và module phải khớp với host thực tế [1, 2].

Trên Windows, Bash script cần chạy trong môi trường Linux như WSL hoặc máy chủ EDA, không chạy trực tiếp trong PowerShell. Flow không tự cài EDA, cấp license hay tạo PDK; các thành phần này phải được chuẩn bị riêng.

Khi môi trường đã sẵn sàng, chất lượng đầu vào quyết định phần lớn mức độ ổn định của các phase sinh mã.

6.2 Chọn đầu vào và điều chỉnh cho IP mới

  1. Làm việc trên branch hoặc bản sao riêng để giữ snapshot tham khảo.
  2. Viết spec tại spec/<ip_name>_spec.md, mô tả interface, parameters, clock/reset, hành vi chức năng, timing và error behavior.
  3. Với IP mới, điều chỉnh parser mapping, module hierarchy, constraint/config, RTL rules, SVA, test plan và format tài liệu.
  4. Chuẩn bị JSON Schema tại đường dẫn mà phase sử dụng. Phân biệt rõ file đầu vào, template và artifact được sinh ra, kể cả khi chúng có tên gần giống nhau.

Các template hiện có chứa giả định về cấu trúc IP và môi trường EDA cụ thể. Vì vậy, đổi spec thôi chưa đủ để áp dụng flow cho một thiết kế khác; cần rà soát các mapping, cấu hình, phân cấp module, property và test plan liên quan.

6.3 Chạy toàn bộ flow

Trong Claude Code, mở project root và nhập command trong hội thoại:

/autoflow spec/<ip_name>_spec.md

Nếu mới có mô tả thiết kế:

/autoflow --describe

Trong Codex CLI, gọi project skill trong phiên làm việc:

$source-command-autoflow
Dùng spec/<ip_name>_spec.md

Tên skill Codex khác cú pháp slash command Claude; không nhập chúng như lệnh Bash trong terminal. Để kiểm soát từng bước, gọi riêng các phase theo bảng ở mục 3. Sinh testbench trước khi review SVA giúp kỹ sư kiểm tra property trong bối cảnh stimulus dự kiến.

Nếu flow bị gián đoạn, có thể yêu cầu tiếp tục từ phase cần thiết hoặc dùng tham số --from. Trước khi resume, xác nhận spec, cấu hình, RTL và báo cáo thuộc cùng baseline. Thay đổi spec hoặc config có thể làm mất hiệu lực các bước sau; khi đó cần chạy lại các phase phụ thuộc thay vì giữ approval hay report cũ [2].

6.4 Những file cần đọc sau khi chạy

Thông thường nên xem:

  • schemas/structured_spec.json: requirement IDs, ambiguity và mapping.
  • schemas/final_config.json: parameter thực tế đã chốt.
  • src/rtl/ và schemas/synth_report.json: RTL, file list, lint/synthesis.
  • src/tb/ và schemas/selected_testplan.json: test plan, testbench, requirement coverage.
  • src/sva/, schemas/rtm.json, GATE3_REVIEW.md: assertions, mapping và vacuity review.
  • Log simulation/mutation và schemas/verification_report.json: bằng chứng thực chạy, failure và gap.
  • docs/specification.md/PDF: tài liệu tổng hợp.

Không xem file được sinh là thay thế log. Nếu một bước bị bỏ qua do thiếu tool, ghi rõ “not run” và không suy diễn thành pass.

7. Tính năng đáng chú ý

Khi một lần chạy tạo đủ artifact và log, giá trị của flow không chỉ nằm ở lượng mã sinh ra mà còn ở khả năng giải thích mã đó đáp ứng yêu cầu nào và đã được kiểm tra bằng cách nào.

7.1 Requirement traceability

REQ-ID được giữ xuyên qua spec, RTL, SVA, test case và verification status, cho phép đánh giá coverage theo yêu cầu thay vì chỉ đếm số module hoặc test.

7.2 Quy ước và kiểm tra nhất quán

Quy tắc RTL chuẩn hóa SystemVerilog-2012 synthesizable subset, cách đặt tên port/parameter/register/wire, reset active-low, module, assertion và coding pattern. Quy tắc chung giúp đầu ra dễ đọc và review hơn, nhưng cần được điều chỉnh theo chuẩn của IP đích [7].

7.3 Tách biệt sinh mã và kiểm chứng

Các vai trò RTL, SVA, testbench và verification có trách nhiệm riêng. Về nguyên tắc, điều này giúp tránh kết luận “RTL đúng vì chính prompt sinh RTL nói vậy”. Công cụ lint/simulation/mutation có thể cung cấp một phần bằng chứng bên ngoài LLM; độ mạnh phụ thuộc cấu hình và phạm vi test/property.

7.4 Resume và artifact tái sử dụng

Các artifact trong thư mục schema lưu trạng thái để flow tiếp tục sau gián đoạn. Cách này đáng tin hơn việc chỉ dựa vào lịch sử hội thoại, miễn là artifact thuộc cùng baseline và thay đổi input làm chạy lại đúng các phase phụ thuộc.

7.5 Có ví dụ thiết kế và snapshot

Hai snapshot minh họa cho các loại thiết kế khác nhau: lõi xử lý RV32IM và bộ chuyển đổi độ rộng dữ liệu AXI4-Stream. Downscaler chia beat theo thứ tự LSB-first và truyền TKEEP/TLAST; đây là chuyển độ rộng dữ liệu, không phải giảm độ phân giải ảnh. Số liệu của mỗi snapshot chỉ phản ánh lần chạy tương ứng [1].

Những khả năng này hữu ích khi artifact được nối với bằng chứng có thể kiểm tra. Phần tiếp theo nêu giới hạn cần tính đến trước khi dùng kết quả cho quyết định kỹ thuật.

8. Giới hạn và rủi ro khi diễn giải kết quả

  1. Chưa phải sign-off sản xuất. Lint, synthesis mapping và simulation không tự chứng minh timing closure, CDC/RDC an toàn, physical implementation hoặc đầy đủ chức năng. Flow hiện chưa bao gồm STA, place-and-route hay quy trình sign-off đầy đủ [1].
  2. Evidence có thể thiếu hoặc lệch baseline. Một số log cuối cùng, mutation working files hoặc artifact cần để tái lập không có trong snapshot. Báo cáo JSON không thay thế log nguồn.
  3. SVA có thể compile nhưng không hữu ích. Assertion vacuous, bind sai tín hiệu hoặc stimulus không kích hoạt property đều có thể làm kết quả trông “sạch” mà không kiểm tra hành vi mong muốn.
  4. Pass count có thể che khuất test N/A. Cần đọc từng test case và điều kiện pass/fail; số TC tổng hợp không nói được mọi requirement đã được kiểm chứng.
  5. Chênh lệch giữa command, template, schema và ví dụ. Một số phiên bản chỉ dẫn, schema và snapshot chưa hoàn toàn đồng nhất; ví dụ synthesis cũ cũng có thể không phản ánh các cập nhật mới. Phần tự động mô tả RTL/TB độc lập nhưng trình tự thực thi trong một session là tuần tự. Trước khi chạy, cần chọn một baseline và rà soát tính nhất quán [1, 3].
  6. Giả định toolchain/PDK. sourceme.sh giả định module, Bash và đường dẫn PDK cụ thể; các snapshot có thể chứa đường dẫn tuyệt đối. Không nên xem script là gói cài đặt portable.
  7. Chưa xác định quyền sử dụng. Bản công khai được khảo sát không kèm file LICENSE; cần xác nhận quyền sử dụng và phân phối với chủ sở hữu, đồng thời tuân thủ license riêng của EDA/PDK [1].

Những giới hạn này không làm mất giá trị của khung quy trình; chúng xác định loại kết luận có thể rút ra từ artifact và loại quyết định vẫn cần kỹ sư chịu trách nhiệm. Các thuật ngữ dưới đây được dùng theo nghĩa đó.

9. Giải thích các thuật ngữ tiếng Anh

Bảng dưới đây giải nghĩa những cụm từ kỹ thuật tiếng Anh được giữ lại trong bài. Một số thuật ngữ có bản dịch ngắn, nhưng phần giải thích tập trung vào ý nghĩa trong quy trình thiết kế RTL.

Thuật ngữ Cách gọi tiếng Việt và ý nghĩa trong bài
AI flow / workflow Luồng công việc có AI hỗ trợ: chuỗi bước, điều kiện chuyển tiếp và người chịu trách nhiệm.
AI-assisted RTL Thiết kế RTL có AI hỗ trợ; AI giúp phân tích yêu cầu hoặc đề xuất mã, còn tính đúng phải được kiểm tra.
Agent Tác tử AI được giao một vai trò/nhiệm vụ. Một vai trò có thể được mô tả bằng prompt hoặc skill mà không cần là một tiến trình AI riêng.
LLM (Large Language Model) Mô hình ngôn ngữ lớn, sinh/diễn giải văn bản và mã dựa trên ngữ cảnh được cung cấp.
Prompt Chỉ dẫn đầu vào cho mô hình, nêu mục tiêu, ngữ cảnh và cách thực hiện.
Slash command Lệnh bắt đầu bằng dấu gạch chéo, được nhập trong Claude Code để gọi một quy trình chỉ dẫn. Đây không phải lệnh Bash.
Project skill Bộ hướng dẫn theo vai trò đặt trong dự án để Codex CLI biết khi nào và cách thực hiện một nhiệm vụ.
Orchestrator Bộ điều phối: xác định thứ tự phase, dependency, trạng thái và các điểm duyệt. Trong VLSIT, autoflow đảm nhiệm vai trò này bằng cách hướng dẫn agent đi qua các phase.
RTL (Register-Transfer Level) Mô tả phần cứng ở mức thanh ghi và luồng dữ liệu; thường được viết bằng Verilog/SystemVerilog để tổng hợp thành mạch.
Specification / spec Đặc tả: mô tả có cấu trúc về chức năng, giao tiếp, tham số, clock/reset, timing và hành vi lỗi mà thiết kế phải đáp ứng.
Requirement Yêu cầu cụ thể, có thể truy vết và kiểm tra; trong flow được gán mã REQ-ID.
REQ-ID Mã định danh duy nhất của requirement, ví dụ REQ-001, dùng nối yêu cầu với RTL, assertion, test và kết quả.
Requirements traceability Truy vết yêu cầu: theo dõi một requirement xuyên suốt thiết kế và kiểm chứng.
RTM (Requirement Traceability Matrix) Ma trận truy vết yêu cầu; bảng/JSON liên kết requirement với RTL, SVA, test case, kết quả và sign-off.
Artifact Sản phẩm trung gian/đầu ra được lưu thành file, như JSON, RTL, testbench, log hoặc tài liệu.
Schema / JSON Schema Lược đồ dữ liệu; quy định trường, kiểu dữ liệu và cấu trúc mà một file JSON cần tuân theo.
Baseline Phiên bản chuẩn của spec, cấu hình, RTL và báo cáo được dùng làm mốc cho một lần chạy.
Phase Giai đoạn công việc có nhiệm vụ và đầu ra riêng trong flow.
Gate / review gate Cổng rà soát: điểm phải thỏa điều kiện hoặc được con người duyệt trước khi flow tiếp tục.
Human review Kỹ sư/con người rà soát kết quả và đưa ra quyết định; khác với việc agent tự tạo báo cáo.
Parameter / override Tham số cấu hình của thiết kế / giá trị ghi đè lên giá trị mặc định.
Interface / port Giao tiếp giữa các khối / một tín hiệu đầu vào, đầu ra hoặc hai chiều của module.
Testbench (TB) Môi trường kiểm thử mô phỏng: kích thích đầu vào, quan sát đầu ra và đánh giá kết quả của RTL.
Test plan Kế hoạch kiểm thử, mô tả các test case và requirement mà từng test dự kiến kiểm tra.
Compile / compile check Biên dịch / bước kiểm tra rằng source được công cụ chấp nhận về cú pháp và khả năng kết hợp. Compile thành công chưa chứng minh thiết kế đúng chức năng.
Lint Phân tích tĩnh để phát hiện lỗi cú pháp, vấn đề coding, độ rộng tín hiệu, latch ngoài ý muốn và các cảnh báo khác.
Synthesis Tổng hợp logic: chuyển RTL thành biểu diễn mạch/cell logic theo thư viện công nghệ và ràng buộc được cung cấp. Không thay thế STA hay physical design.
Simulation Mô phỏng hành vi thiết kế theo testbench và stimulus đã chọn. Kết quả chỉ bao phủ các tình huống thực sự được chạy.
SVA (SystemVerilog Assertions) Các khẳng định/thuộc tính viết bằng SystemVerilog để kiểm tra hành vi hoặc quan hệ theo thời gian của thiết kế.
Property Thuộc tính cần kiểm tra; ví dụ khi có request thì response phải xuất hiện trong một khoảng thời gian nhất định.
Bind Cơ chế gắn assertion hoặc checker vào module/instance thiết kế mà không nhất thiết sửa trực tiếp RTL của module đó.
Vacuity / vacuous property Assertion “đạt” một cách rỗng vì điều kiện kích hoạt không bao giờ xảy ra; do đó không có tình huống thực để kiểm tra property.
Verification Kiểm chứng: thu thập bằng chứng cho thấy thiết kế đáp ứng yêu cầu bằng test, assertion và phân tích kết quả.
Verification gap Khoảng trống kiểm chứng: requirement chưa có đủ test/property/bằng chứng hoặc chưa được sign-off.
Mutation testing Kiểm thử đột biến: cố ý tạo thay đổi nhỏ có lỗi trong thiết kế/mã rồi xem test có phát hiện được thay đổi sai đó không.
Mutation score Điểm/tỷ lệ đột biến bị test phát hiện trên tổng số đột biến hợp lệ đã thử; đây là chỉ số đánh giá độ nhạy của test, không phải phần trăm chức năng đúng.
Coverage Độ bao phủ kiểm thử: mức requirement, tình huống hoặc cấu trúc đã được test kích hoạt/kiểm tra. Có nhiều loại coverage và chúng không đồng nghĩa với nhau.
Sign-off Phê duyệt chính thức rằng một hạng mục đáp ứng tiêu chí đã định; không nên ký chỉ dựa trên summary do AI viết.
Regression Chạy lại tập kiểm thử sau khi thay đổi để kiểm tra rằng hành vi đã đúng trước đó không bị hỏng.
Formal proof / formal verification Chứng minh hoặc kiểm chứng hình thức bằng phương pháp toán học trên mô hình và giả thiết đã khai báo; mạnh hơn mô phỏng ở một số phạm vi nhưng phụ thuộc tính đúng của model/assumptions.
STA (Static Timing Analysis) Phân tích timing tĩnh: kiểm tra đường truyền tín hiệu so với ràng buộc thời gian/clock mà không cần mô phỏng vector.
CDC / RDC Kiểm tra tín hiệu đi qua miền clock khác nhau / miền reset khác nhau, nhằm tìm nguy cơ đồng bộ hoặc phục hồi/reset không an toàn.
PDK (Process Design Kit) Bộ dữ liệu công nghệ bán dẫn, gồm mô hình và thư viện cần cho thiết kế/kiểm tra theo một tiến trình cụ thể.
Liberty library File thư viện mô tả đặc tính cell chuẩn, như hàm logic, timing và công suất, dùng trong synthesis và phân tích liên quan.
Process corner Góc công nghệ/điện áp/nhiệt độ (ví dụ TT hoặc SS) dùng để đánh giá đặc tính cell trong điều kiện khác nhau.
Timing closure Đạt các ràng buộc timing sau các bước thiết kế vật lý và phân tích; chỉ chạy synthesis chưa chứng minh đã timing closure.
IP (Intellectual Property) Khối thiết kế phần cứng có thể tái sử dụng, như bộ xử lý, bộ điều khiển hoặc khối giao tiếp.
Toolchain Bộ công cụ và phiên bản phối hợp để thực hiện lint, synthesis, simulation và xử lý artifact.
Environment Modules Cơ chế trên máy Linux/HPC để nạp và chuyển phiên bản công cụ/thư viện vào môi trường làm việc.
Scheduler Bộ lập lịch điều phối công việc đồng thời hoặc theo tài nguyên. VLSIT hiện thực hiện các phase tuần tự trong một session, chưa có scheduler chạy chúng đồng thời.
Resume Tiếp tục flow từ một phase sau khi gián đoạn, dựa trên artifact đã lưu và baseline còn phù hợp.
LSB-first Truyền/xử lý phần bit ít quan trọng nhất trước; trong ví dụ downscaler, đây là thứ tự tách các lát dữ liệu.
TKEEP / TLAST Tín hiệu AXI4-Stream: TKEEP đánh dấu byte hợp lệ trong beat; TLAST đánh dấu beat cuối của một packet/frame.
EDA (Electronic Design Automation) Công cụ tự động hóa thiết kế điện tử, gồm lint, tổng hợp, mô phỏng và các bước phân tích thiết kế chip.
Engineering prototype Nguyên mẫu kỹ thuật dùng để thử nghiệm quy trình/ý tưởng; chưa đồng nghĩa sản phẩm đã hoàn thiện hoặc sign-off.
Snapshot Bản chụp artifact/log tại một thời điểm chạy; không mặc nhiên là kết quả có thể tái lập hoặc baseline hiện hành.
RAG (Retrieval-Augmented Generation) Sinh nội dung có tăng cường truy xuất: tìm tài liệu liên quan rồi đưa vào ngữ cảnh của mô hình trước khi tạo câu trả lời.
Fine-tuning Tinh chỉnh mô hình bằng dữ liệu bổ sung để thay đổi khả năng/hành vi; đây không phải thành phần của kiến trúc VLSIT đang phân tích.
Backend / API Dịch vụ phía máy chủ / giao diện lập trình để phần mềm gửi yêu cầu và nhận kết quả từ một dịch vụ khác.

10. Kết luận

VLSIT đưa ra một khung thực hành để đưa LLM vào chuỗi công việc RTL: chia nhiệm vụ thành phase, chuẩn hóa quy tắc coding, lưu artifact trung gian, duy trì RTM và giữ các điểm kỹ sư review. Giá trị chính nằm ở cách tổ chức quy trình và truy vết yêu cầu; việc sinh mã tự động không tự tạo ra một model RTL độc lập hay bảo đảm sign-off.

Khi áp dụng, prompt/skill định nghĩa cách agent hành động; JSON/RTM và log tạo hợp đồng dữ liệu và bằng chứng giữa các bước. Một agent riêng nên bắt đầu từ nhiệm vụ nhỏ, input chuẩn, output kiểm tra được, quyền thao tác rõ, tiêu chí đạt và điều kiện dừng; sau đó mới được tích hợp vào orchestrator. Kỹ sư giữ trách nhiệm xác nhận đặc tả, ngữ nghĩa assertion, mức bao phủ verification và sign-off cuối.

Tài liệu tham khảo

  1. VLSIT_RTL_Generator_AI_Model — README
  2. Hướng dẫn sử dụng — guideline.md
  3. Prompt điều phối — autoflow.md
  4. RTL Generator prompt
  5. Verification prompt
  6. Codex CLI autoflow skill
  7. Quy tắc RTL — rtl_rule.md

Tác giả: Lê Đại Quốc, Lê Trường Thịnh, Lương Triển Thắng, Nguyễn Hùng Quân

Thứ Sáu, 27 tháng 2, 2026

[Bài 2] Công nghệ chiplet: Giao thức die-to-die (D2D)

Ở phần trước, chúng ta đã nắm bắt các nguyên lý cơ bản của công nghệ Chiplet cũng như động lực thúc đẩy sự ra đời của xu hướng này trong ngành bán dẫn. Trong phần tiếp theo, chúng ta sẽ đi sâu phân tích cơ chế giao tiếp giữa các die (Die-to-Die Interconnects), yếu tố then chốt quyết định hiệu năng và sự thống nhất của toàn bộ hệ thống.


1. Giao tiếp giữa hai chip SoC
Trước khi phân tích cơ chế giúp các chiplet phối hợp vận hành như một thực thể đơn khối (Monolithic), chúng ta cần hiểu làm thế nào để hai vi mạch độc lập có thể thiết lập liên kết dữ liệu. Về cơ bản, việc trao đổi dữ liệu giữa các chip dựa trên các giao thức tiêu chuẩn (Standard Protocols) như SPI, I²C, UART, hay PCIe, ... Ngay cả các tín hiệu thông qua chân GPIO cũng phải tuân thủ các nguyên lý đã được quy định chặt chẽ.
Hình 1. Giao tiếp giữa các chip và thành phần ngoại vi

2. Giao tiếp Die-to-Die (D2D)
Nguyên tắc liên kết Die-to-Die (D2D) về bản chất tương đồng với cơ chế giao tiếp giữa SoC và các thành phần ngoại vi rời rạc. Điều này đồng nghĩa với việc thiết lập liên kết dữ liệu bắt buộc phải dựa trên các giao thức tiêu chuẩn (Standardized Protocols). Tuy nhiên, điểm khác biệt cốt lõi nằm ở việc tối ưu hóa lớp vật lý (PHY) để đạt được băng thông cực cao và độ trễ cực thấp, tiệm cận với hiệu suất của các kết nối nội tại bên trong một chip đơn khối.
Giao tiếp Die-to-Die (D2D) giữa các chiplet được chia thành hai phần chính dựa trên yêu cầu về băng thông và chức năng:
  • Giao diện tốc độ thấp (Low-speed Interface): Đóng vai trò là kênh điều khiển và quản lý hệ thống. Nhiệm vụ cốt lõi bao gồm truyền tải thông số cấu hình, thực thi quy trình bắt tay (handshaking), đồng bộ hóa trạng thái vận hành, và nhận diện cấu trúc chiplet (Discovery). Các giao diện này thường triển khai dựa trên các tiêu chuẩn như I3C, SPI, QSPI hoặc các tín hiệu GPIO tùy biến.
  • Giao diện tốc độ cao (High-speed Interface): Được thiết kế để đáp ứng các kịch bản đòi hỏi băng thông cực lớn (High bandwidth) và độ trễ cực thấp (Ultra-low latency). Đây là luồng dữ liệu chủ đạo (Data Path) phục vụ cho việc truyền tải dữ liệu lớn như đồ họa, xử lý video thời gian thực, và các thao tác truy xuất bộ nhớ tốc độ cao (như DRAM/HBM). Các chuẩn giao tiếp chuyên dụng cho sẽ được trình bày ở phần kế tiếp.
Hình 2. Kiến trúc giao tiếp Die-to-Die (D2D) cơ bản
Trong hình minh họa trên, giao tiếp D2D tốc độ cao gồm các phần cơ bản sau đây:
  • Bộ điều khiển Link (Link controller) là RTL code.
    • Giao tiếp BUS: Hỗ trợ các chuẩn kết nối nội bộ như CHI, AXI, CXS, Wishbone, Avalon ...
    • Mô hình giao dịch (Transaction Model): Quản lý các luồng trao đổi dữ liệu.
    • Đóng gói dữ liệu (Packetization): Chuyển đổi dữ liệu thành các gói tin (packets) tiêu chuẩn.
    • Kiểm soát luồng (Flow Control): Điều phối tốc độ truyền dẫn và ngăn ngừa tràn bộ đệm.
    • Quản lý trạng thái liên kết (Link State Management): Giám sát các chế độ vận hành (Active, Sleep, Power-down) của đường truyền.
  • PHY
    • PHY controller (RTL code)
      • Bắt tay giữa Link và PHY (Link-PHY Handshake): Giao thức phối hợp tín hiệu giữa tầng liên kết và tầng vật lý (ví dụ: chuẩn RDI hoặc CPI).
      • Quản lý trạng thái PHY (PHY State Management): Điều khiển trình tự khởi tạo và duy trì ổn định cho lớp vật lý.
    • Analog (hard macro) PHY: hoạt động như bộ chuyển đổi Số - Tương tự (Digital-Analog Converter) để chuyển đổi dữ liệu logic thành các tín hiệu điện vật lý để truyền dẫn trên kết nối D2D.
Hình 3. Cấu trúc cơ bản của thiết kế D2D

Hình 4. Các chuẩn giao tiếp D2D

Hình 4. Bảng thống kê các chuẩn giao tiếp D2D
3. Mô tả ngắn về các chuẩn
3.1. UCIe - Universal Chiplet Interconnect Express 
  • Website: https://www.uciexpress.org
  • Loại hình: Tiêu chuẩn mở (Open Standard).
  • Phạm vi đặc tả: Định nghĩa toàn diện cả bộ điế khiển Link, bao gồm lớp giao thức (protocol), lớp điều phối (adapter), và lớp vật lý (PHY).
  • Giao diện chuẩn hóa: Xác định các giao thức kết nối tiêu chuẩn giữa lớp giao thức và lớp điều phối (FDI - Flit-aware D2D Interface), cũng như giữa lớp điều phối và lớp vật lý (RDI - Raw D2D Interface).
  • Điểm loại trừ: Không định nghĩa giao diện BUS nội bộ. Giao tiếp BUS này tùy thuộc vào thiết kế riêng của từng nhà phát triển IP.
Hình 5. Giao thức UCIe

3.2 BoW - Bunch of Wires
  • Website: https://www.opencompute.org/
  • Loại hình: Tiêu chuẩn mở
  • Phạm vi đặc tả: Định nghĩa cả phần link controller, bao gồm lớp giao dịch (transaction) và lớp liên kết (link) – theo đặc tả Open Domain Specific Architecture (ODSA), và lớp vật lý (PHY).
  • Giao diện chuẩn hóa: Xác định các giao thức tiêu chuẩn giữa tầng giao dịch và tầng liên kết (TLI - Transaction Link Interface), cũng như giữa tầng liên kết và lớp vật lý (LPI _ Link Physical Interface).
  • Điểm loại trừ: Không định nghĩa giao diện BUS nội bộ kết nối với BUS hệ thống.
Hình 6. Giao thức BoW
3.3 AIB - Advanced Interface Bus
  • Website: Trang chủ Intel (Hiện được duy trì bởi liên minh CHIPS Alliance).
  • Loại hình: Tiêu chuẩn mở.
  • Phạm vi đặc tả: Chỉ định nghĩa lớp vật lý (PHY), trong đó bao gồm AIB Adapter như một cấu phần tích hợp của bộ điều khiển PHY (PHY Controller).
  • Điểm loại trừ: Không định nghĩa lớp liên kết (Link Layer) hay giao diện BUS.
Hình 7. Giao thức AIB
3.4 Chuẩn CEI-112G-MCM, XSR
  • Website: https://www.oiforum.com
  • Loại hình: Tiêu chuẩn mở.
  • Phạm vi đặc tả: Chỉ định nghĩa lớp vật lý (PHY), tập trung vào các đặc tính giao diện và truyền dẫn tín hiệu điện. Chủ yếu giải quyết các yêu cầu về SerDes (Bộ tuần tự hóa/Giải tuần tự hóa) cho các khoảng cách truyền dẫn khác nhau, chẳng hạn như XSR (Khoảng cách cực ngắn) và MCM (Mô-đun đa chip).
Hình 8. Chuẩn CEI-112G
Việc lựa chọn tiêu chuẩn liên kết D2D: Việc xác định các chuẩn và giao thức giao tiếp Die-to-Die (cả Low-speed và High-speed) linh hoạt tùy theo mục tiêu sản phẩm, bao gồm cả các giải pháp tùy chỉnh nội bộ (In-house/Proprietary IP). Tuy nhiên, tính tương thích vật lý, khả năng mở rộng hệ sinh thái và lộ trình công nghệ (Roadmap) phải được xem xét ngay từ giai đoạn định nghĩa kiến trúc (Architectural Definition) trước khi lựa chọn chuẩn để sử dụng.
  • Quy mô và mật độ giao tiếp D2D: Số lượng các kênh giao tiếp D2D không bị giới hạn bởi các quy tắc cố định. Cấu hình cụ thể về số lượng lane (Kênh truyền dữ liệu trên giao tiếp D2D), băng thông tổng thể và loại giao diện được tính toán dựa trên yêu cầu thông lượng dữ liệu (Throughput), kiến trúc phân tầng hệ thống và chiến lược phân vùng chức năng (Functional Partitioning) giữa các die.
  • Xem xét giữa chuẩn nội bộ và chuẩn mở: Việc triển khai các giao thức nội bộ cho phép tối ưu hóa chuyên sâu về băng thông, hiệu năngvà độ trễ. Tuy nhiên, cách tiếp cận này tạo ra rào cản lớn về tính tích hợp giữa các nhà cung cấp IP và hệ thống.
Ngược lại, việc áp dụng các tiêu chuẩn mở (như UCIe, BoW) đảm bảo khả năng tương tác liên thông (Interoperability), giảm thiểu rủi ro thiết kế và thúc đẩy sự phát triển của hệ sinh thái Chiplet mở giữa các nhà sản xuất khác nhau.

Lịch sử cập nhật:
1) 2026.02.27 - Tạo lần đầu - Quan Nguyen

Thứ Ba, 24 tháng 2, 2026

[Bài 1] Công nghệ chiplet: Kiến trúc đơn khối và kiến trúc chiplet

Trong bối cảnh kiến trúc đơn khối (Monolithic) truyền thống gặp hạn chế về tỷ lệ sản phẩm sản xuất đạt yêu cầu (Yield) khi diện tích die tăng, chi phí sản xuất cao ở các tiến trình tiên tiến, và chi phí R&D không tối ưu, công nghệ Chiplet nổi lên như một giải pháp thay thế hiệu quả trong nhiều năm gần đây. Bằng cách phân chia chức năng SoC thành nhiều die mô-đun (chiplet) riêng biệt và kết nối qua các giao tiếp die-to-die, kiến trúc này cho phép tối ưu hóa chi phí trong nhiều trường hợp, đặc biệt là cho các SoC phức tạp cao. Chuổi bài này cung cấp kiến thức nền tảng về cấu trúc Chiplet, các giao thức kết nối phổ biến và chi tiết quy trình khởi động hệ thống (booting flow) trong thiết kế VLSI hiện đại.

1. Kiến trúc đơn khối và kiến trúc chiplet

Kiến trúc đơn khối (Monolithic) đề cập đến một đế bán dẫn tích hợp, trong đó tất cả các khối chức năng của một hệ thống trên chip (SoC) đều được chế tạo trên một nền silicon liên tục duy nhất. Silicon đơn khối đại diện cho cấu trúc truyền thống đang được áp dụng cho đại đa số các thiết kế chip nhỏ và vừa hiện nay.

Hình 1. Chip SoC đơn khối (monolithic SoC) với duy nhất 1 die trong SoC package

Kiến trúc Chiplet là một phương pháp thiết kế hệ thống, trong đó các chức năng của SoC được phân chia thành nhiều đế (die) mô-đun riêng biệt (gọi là các chiplet). Các chiplet này được tích hợp bên trong một gói duy nhất và kết nối với nhau thông qua các liên kết die-to-die (D2D) để vận hành như một hệ thống thống nhất.
Hình 2. Chiplet Soc với 2 chiplet (2 die) trong SoC package

2. Giới hạn của kiến trúc đơn khối

2.1. Tại sao cần tiếp cận kiến trúc chiplet trong các thiết kế SoC lớn và phức tạp?
Khi thiết kế SoC ngày càng lớn, chi phí và rủi ro củng tăng theo. Thiết kế đơn khối bộc lộ các nhược điểm sau đây:
  1. Yield suy giảm theo sự tăng của diện tích die: xác suất lỗi sản xuất tăng phi tuyến theo diện tích die; chỉ một lỗi sản xuất cũng có thể làm hỏng toàn bộ die.
  2. Chi phí cao vì thiếu sự linh hoạt về côn nghệ sản xuất và khả năng tái sử dụng kém: Toàn bộ digital logic, analog IP, và IO PAD buộc dùng cùng một công nghệ sản xuất, dẫn đến chi phí wafer, mask, nghiên cứu, và phát triển rất cao và không tối ưu công nghệ cho từng phần thiết kế. Tất cả IP bị ràng buộc chặt vào một die đơn khối cụ thể, gây khó khăn cho việc tái sử dụng linh hoạt giữa các sản phẩm hoặc cấu hình SoC khác nhau.
  3. Sự phức tạp của thiết kế vật lý (physical design) tăng đột biến: Giải quyết các vấn đề về định thời (timing), tổng hợp cây clock (CTS), mạng lưới cấp nguồn (PDN) và và đảm bảo tính toàn vẹn tín hiệu và nguồn (SI/PI) trở nên khó khăn khi die lớn và mật độ logic cao.
2.2. Yield suy giảm theo sự tăng của diện tích die

Yield (Tỷ lệ sản phẩm đạt) là tỷ lệ thống kê của các đế bán dẫn (dies) sau khi chế tạo đáp ứng đầy đủ tất cả các yêu cầu về chức năng, thông số kỹ thuật và khả năng sản xuất sau quá trình gia công và kiểm thử; tỉ lệ này được quyết định cơ bản bởi mật độ lỗi (defect density), diện tích đế (die area) và sự biến đổi của quy trình (process variability).

Yield thể hiện sự sụt giảm phi tuyến tính khi diện tích die tăng lên. Ví dụ minh họa dưới đây cho thấy sự sụt giảm Yield trên cùng một diện tích wafer khi kích thước die tăng lên gấp bốn lần:

(a) Yield = 'Số die tốt / Tổng số die' = 2/4 = 50%

(b) Yield = 28/32 = 87,5%"

Hình 3. Yield giảm khi kích thước die tăng. (a) yield là 50% (b) Yield là 87.5% khi kích thước wafer không đổi
2.3. Sự linh hoạt về công nghệ sản xuất (process - tiến trình) và tái sử dụng mức silicon
Kiến trúc Monolithic: Toàn bộ đế (die) phải được chế tạo lại từ đầu khi chuyển sang một tiến trình công nghệ khác.
Kiến trúc Chiplet: Chỉ những đế (chiplet) nào yêu cầu chuyển đổi tiến trình mới cần phải chế tạo lại; các đế còn lại có thể được tái sử dụng mà không cần phải thực hiện lại quy trình chế tạo.
Hình 4. Toàn bộ die phải được thiết kế vật lý và sản xuất lại khi chuyển đổi công nghệ từ 7nm lên 5nm

Hình 5. Chỉ die cần phải nâng cấp (die 0) phải thiết kế vật lý và sản xuất lại với công nghệ mới 5nm, còn die 1 sẽ tái sử dụng (tái sản xuất trên công nghệ cũ 7nm) mà không cần thiết kế vật lý lại.

Trong ví dụ trên đây, chúng ta xem xét kịch bản yêu cầu nâng cấp một thiết kế SoC từ tiến trình 7nm lên 5nm cho các khối CPU, NPU, BUS và DSP.
  • Đối với kiến trúc đơn khối: Ngay cả khi các thành phần như MEM (Memory) hay PCIE không có sự thay đổi về mặt thiết kế (RTL), chúng vẫn buộc phải "cuốn chiếu" nâng cấp theo tiến trình mới. Điều này đồng nghĩa với việc toàn bộ các khối Analog Hard Macro (DRAM PHY, PCIE PHY, IO PAD) và thiết kế vật lý (Physical Design) của Logic Digital phải triển khai lại từ đầu. Hệ quả là chi phí R&D tăng vọt và kéo dài đáng kể thời gian đưa sản phẩm ra thị trường (Time-to-Market).
  • Đối với kiến trúc Chiplet: Nếu các khối chức năng đã được phân tách ngay từ đầu dựa trên lộ trình sản phẩm và phân tích chi phí đóng gói, chúng ta sẽ có lợi thế vượt trội về giảm chi phí R&D và thời gian đưa sản phảm ra thị trường. Cụ thể, chỉ có Die 0 (chứa CPU/NPU/BUS/DSP) cần tái đầu tư R&D cho tiến trình 5nm. Toàn bộ Die 1 được bảo lưu hoàn toàn, giúp cắt giảm tối đa chi phí thiết kế và rủi ro kỹ thuật trong quá trình chuyển đổi công nghệ.
2.4. Độ phức tạp của thiết kế vật lý tăng khi sự phức tạp của SoC đơn khối tăng

Bảng 1. So sánh sự phức tạp giữa chip SoC đơn giản (nhỏ và vừa) và chíp SoC phức tạp

Khía cạnh

SoC đơn giản (ít component)

SoC phức tạp (nhiều component)

Floorplanning (bố trí)

Bố trí tương đối trực quan, ít macro, ít ràng buộc chéo.

Floorplan đa khối, nhiều macro lớn (CPU, GPU, NPU, SRAM), ràng buộc vị trí chặt chẽ.

Routing Congestion (nghẽn định tuyến)

Routing (đi dây) tương đối đều, dễ tránh tắc nghẽn.

Congestion cục bộ nghiêm trọng do bus tín hiệu nhiều bit, mang lưới kết nối trong chip và lưu lượng kết nối các IP cao.

Timing Closure

Ít path dài, dễ đóng timing ở số ít corner.

Path dài xuyên nhiều IP, nhiều clock domain, timing closure phi tuyến.

Clock Tree Synthesis (CTS)

Một hoặc ít clock domain, skew dễ kiểm soát.

Nhiều clock domain (hàng trăm, hàng nghìn), clock gating phức tạp, khó kiểm soát skew.

Power Delivery & Integrity (PDN/PI)

Dòng tiêu thụ thấp, rơi áp và nhiễu nhỏ, mạng lưới cấp nguồn đơn giản.

Dòng lớn, hotspot cục bộ, rơi áp, và nhiễu dễ xảy ra.

Signal Integrity (SI)

Ít dây dẫn tốc độ cao, coupling thấp.

Nhiều dây dẫn tốc độ cao song song, nhiễu xuyên kênh (crosstalk) và suy giảm tín hiệu dễ xuất hiện.


Tại sao foorplanning của SoC lớn lại khó hơn? Floorplanning là giai đoạn xác định vị trí tối ưu và phân bổ không gian cho các khối chức năng chính (như CPU, SRAM, NPU,...) trên đế silicon (die). Mục tiêu cốt lõi của bước này là thiết lập một khung sườn vật lý vững chắc, đảm bảo khả năng định tuyến (routability), tối ưu hóa diện tích và kiểm soát các yếu tố về định thời (timing) cũng như phân phối điện năng (power distribution).
Khi SoC ngày càng lớn, số lượng các khối chức năng vật lý tăng lên việc bố trí để thỏa nhiều điều kiện khác nhau như đã nói sẽ trờ nên khó khăn hơn.
Tại sao việc đóng/hội tụ timing (timing closure) của SoC lớn lại khó hơn? Timing Closure (Hội tụ định thời) là trạng thái mà toàn bộ các đường dẫn tín hiệu trong thiết kế đều thỏa mãn các ràng buộc về thời gian (timing constraints). Điều này bao gồm việc đáp ứng các điều kiện về Setup time và Hold time đối với các đường dẫn dữ liệu (Data Path), cũng như Recovery time và Removal time đối với các đường dẫn reset (Reset Path). Trạng thái này phải được đảm bảo duy trì ổn định trên tất cả các kịch bản hoạt động (scenarios) và mọi điều kiện góc kỹ thuật (PVT corners - Process, Voltage, Temperature).
SoC phức tạp sẽ có số lượng miền clock lớn; tần số clock yêu cầu cao; số lượng data path, reset path nhiều; ... sẽ làm cho timing closure khó hơn.
Hình 6. (Hình bên trái) Minh họa floorplanning; (Hình bên phải) Minh họa routing trong đó có thể xuất hiện đường timing path dài (long timing path) gây vi phạm định thời (timing)
Tại sao tắc nghẽn định tuyến lại dễ xuất hiện trong chip SoC lớn? Hiện tượng tắc nghẽn định tuyến (Routing congestion) phát sinh khi nhu cầu về mật độ dây dẫn vượt quá tài nguyên không gian vật lý hiện có trên die.
Khi độ phức tạp của thiết kế tăng lên, số lượng các đường liên kết giữa các thành phần trên chip (on-chip components) phát triển một cách đáng kể, dẫn đến tình trạng tắc nghẽn định tuyến (routing congestion). Sự tắc nghẽn này cần được phân tích và xử lý triệt để ngay từ giai đoạn RTL cho đến suốt quá trình triển khai vật lý (physical implementation).
Hình 7. Minh họa việc thiết kế có số lượng dây kết nối lớn gây hiện tượng routing congestion (tham khảo: https://www.arteris.com/learn/wire-routing-congestion) 

Tại sao tổng hợp cây clock (CTS) khó khăn hơn? CTS (Clock Tree Synthesis - Tổng hợp cây xung nhịp) là quy trình xây dựng mạng lưới phân phối xung nhịp từ nguồn (Clock Source/Root) đến tất cả các điểm cuối (Sinks) như các Flip-flops hoặc các chân xung nhịp của các khối Macros bên trong chip. Mục tiêu cốt lõi của CTS là tối thiểu hóa độ lệch xung nhịp (Clock Skew) và độ trễ chèn (Insertion Delay). Trước khi thực hiện bước CTS, xung nhịp trong thiết kế chỉ được coi là xung nhịp lý tưởng (Ideal Clock) và chưa được lan truyền (Propagated) qua mạng lưới dây dẫn vật lý.
Một thiết kế SoC lớn với số lượng Flip-flop lớn và nhiều miền clock, việc CTS tốt sẽ mất thời gian hơn.
Hình 8. Minh họa tổng hợp cây clock (Clock Tree Synthesis - CTS)

Tại sao thiết lập mạng lưới phân phối nguồn lại khó hơn trong các chip SoC lớn? Mạng lưới phân phối nguồn (Power Delivery Network - PDN) là hệ thống các đường dẫn vật lý (metal grids) và các thành phần liên kết bên trong chip, có nhiệm vụ đảm bảo cung cấp điện áp ổn định và đồng nhất đến mọi khối chức năng. Một PDN tối ưu phải kiểm soát được hiện tượng sụt áp (IR Drop), nhiễu nguồn (Power Noise) trong giới hạn cho phép, và đảm bảo tính toàn vẹn điện năng (Power Integrity - PI) cho toàn bộ hệ thống.
Một thiết kế SoC với nhiều IP analog (hard macro) khác nhau thường yêu cầu nhiều power domain và nhiều vị trí cấp nguồn khác nhau (nhiều chân cấp nguồn hơn).
Hình 9. Các SoC lớn thường yều cầu nhiều power domain

Tại sao việc đảm bảo PI lại khó hơn? Trong ví dụ này, việc bố trí CPU và DSP — hai khối chức năng hoạt động với tần suất cao — nằm sát nhau tại cạnh trên của die đã gây ra sự tập trung công suất và nhiệt năng cục bộ, hình thành các điểm nóng vượt ngưỡng (Thermal Hotspots). Hotspot trong SoC là những vùng có mật độ công suất (Power Density) và nhiệt độ cao bất thường so với khu vực lân cận, phát sinh do hoạt động chuyển mạch với cường độ lớn. Hiện tượng này không chỉ gây ra ứng suất nhiệt mà còn trực tiếp làm suy giảm tính toàn vẹn điện năng (Power Integrity) do sự biến đổi đặc tính dẫn điện theo nhiệt độ.
Để tối ưu hóa, cấu trúc Floorplan cần được điều chỉnh bằng cách giãn cách vật lý giữa CPU và DSP, giúp dàn trải dòng nhiệt và tối ưu hóa khả năng tản nhiệt tự nhiên của die. Bên cạnh đó, các cảm biến nhiệt độ (Thermal Sensors) và cảm biến điện áp (Voltage Monitors) được tích hợp tại các vị trí chiến lược để giám sát trạng thái thời gian thực. Dữ liệu từ hệ thống giám sát này đóng vai trò là thông số đầu vào cho các thuật toán DVFS (Dynamic Voltage and Frequency Scaling), cho phép hệ thống tự động điều chỉnh tần số xung nhịp hoặc mức điện áp nguồn, từ đó ngăn chặn tình trạng quá nhiệt và kiểm soát hiện tượng sụt áp (IR Drop) hiệu quả."
Hình 10. Bên trái: hotspot xảy ra khi hai thành phần hoạt động và tiêu thụ năng lượng chính, CPU và DSP, đặt gần nhau; Bên phải: Hai thành phần hoạt động chính được bố trí cách xa nhau để tránh việc cộng hưởng nhiệt gây hotspot. 

Khi độ phức tạp của SoC tăng cao, việc phân tích tính toàn vẹn tín hiệu (Signal Integrity - SI) trở thành yêu cầu bắt buộc trong quy trình sign-off. Chẳng hạn, nếu không tối ưu hóa vị trí đặt (Placement) của các khối giao tiếp ngoại vi tốc độ cao (như PCIe Gen5/6, DDR5), các đường truyền tín hiệu sẽ bị kéo dài hoặc đi quá gần nhau, làm gia tăng hiện tượng nhiễu xuyên âm (Crosstalk). Điều này không chỉ gây biến dạng dạng sóng mà còn dẫn đến các lỗi về định thời và suy giảm tỷ số tín hiệu trên nhiễu (SNR), gây khó khăn cho việc kiểm soát nhiễu ở giai đoạn định tuyến.
Hình 11. Bên trái: 2 ngoại vi tốc độ cao PCIe bố trí gần nhau dễ gây tình trạng nhiễu (ảnh hưởng) tín hiệu khi cả hai cùng hoạt động truyền tốc độ cao. Bên phải: 2 ngoại vi được bố trí lại khi thiết kế vật lý để đảm bảo SI.

Những phân tích trên đây giúp làm rõ sự gia tăng mức độ khó khăn trong thiết kế vật lý của kiến trúc chip đơn khối khi độ phức tạp của thiết kế tăng lên.
Việc chuyển đổi từ kiến trúc đơn khối (Monolithic) sang phương thức tiếp cận dựa trên Chiplet có thể giúp cắt giảm một số thành phần chi phí nhất định. Tuy nhiên, mô hình này lại làm gia tăng độ phức tạp của hệ thống và các chi phí liên quan đến đóng gói chip (packaging).
Do đó, hiệu quả giảm tổng chi phí thực tế cần phải được đánh giá thông qua một bản phân tích định lượng toàn diện trên toàn bộ chuỗi giá trị, bao gồm các giai đoạn: thiết kế, chế tạo wafer, đóng gói tiên tiến (Advanced Packaging), kiểm thử, tích hợp hệ thống.

Lịch sử cập nhật:
1) 2026.02.22 - Tạo lần đầu - Quan Nguyen