Từ yêu cầu đến chip: ASIC, FPGA và vai trò RTL/DV

Khoảng 35 phútMức 1/3Bản nháp: một số khẳng định chưa đối chiếu spec

Bài này không yêu cầu tiên quyết.

Sau bài này bạn sẽ

  • Theo một yêu cầu từ đặc tả tới RTL, netlist và sản phẩm triển khai
  • Phân biệt đầu ra của luồng ASIC với FPGA
  • Biết RTL, DV và physical design cùng giải quyết những câu hỏi nào

Một phép cộng đúng chưa phải một con chip

Giả sử bạn cần một khối cộng hai số từ 0 tới 3. Viết công thức cộng là bước đầu; còn phải quyết định kết quả xuất hiện lúc nào, biểu diễn bằng bao nhiêu bit và khối đó sẽ chạy trên phần cứng nào.

RTL (Register Transfer Level) mô tả phần cứng ở mức logic và chu kỳ. Công cụ tiếp tục biến mô tả ấy thành cấu trúc có thể triển khai. Kiểm chứng theo sát quá trình để tìm khác biệt giữa yêu cầu và cách làm thực tế.

Viết rõ điều gì được coi là đúng

Một yêu cầu nhỏ nhưng rõ có thể là: “Với hai đầu vào không dấu từ 0 tới 3, đầu ra phải bằng tổng toán học, trong khoảng 0 tới 6; đây là khối tổ hợp, không thêm một chu kỳ chờ.”

Đầu vào Kết quả cần có Câu hỏi thiết kế
0 và 0 0 Đầu ra khi không có giá trị khác 0?
1 và 3 4 Có giữ được bit carry không?
3 và 3 6 Độ rộng đầu ra đã đủ chưa?

Nếu chỉ giữ được các giá trị từ 0 tới 3, hai dòng cuối sẽ sai. Một đặc tả thiếu yêu cầu về độ rộng có thể khiến người thiết kế và người kiểm tra chọn hai cách hiểu khác nhau.

Các khối tuần tự còn cần mô tả clock, reset, độ trễ và cách nhận yêu cầu. Ta sẽ học từng phần ấy sau; ở đây cần nhận ra chúng thuộc hợp đồng thiết kế.

Luồng ASIC từ đặc tả tới layout

ASIC (Application-Specific Integrated Circuit) là chip được triển khai cho một mục đích thiết kế cụ thể. Bảng sau là luồng rút gọn; các nhóm thường lặp lại và làm song song nhiều bước.

Bước Sản phẩm chính Câu hỏi cần trả lời
Đặc tả và kiến trúc Yêu cầu, sơ đồ khối, giao tiếp Cần làm gì, với ngân sách hiệu năng/công suất/diện tích nào?
RTL Mô tả logic và trạng thái bằng HDL Chức năng và quan hệ theo chu kỳ được biểu diễn thế nào?
Kiểm chứng chức năng Kế hoạch kiểm, testbench, kết quả và coverage Đã kiểm đúng yêu cầu và các tình huống biên chưa?
Synthesis Netlist logic, mapping theo thư viện khi được cấu hình RTL được chuyển thành cấu trúc nào?
Equivalence và timing Báo cáo đối chiếu, STA theo constraint Biến đổi có giữ chức năng, các đường timing có đạt yêu cầu không?
Physical implementation Placement, clock tree, routing Đặt cell và nối dây thế nào trên đích công nghệ?
Physical sign-off Các kiểm tra như DRC/LVS và timing cuối Layout và kết nối có đáp ứng bộ quy tắc cần dùng không?
Tapeout và chế tạo Dữ liệu layout, thường ở dạng GDSII Đúng phiên bản thiết kế nào được giao đi?
Kiểm tra silicon Đo và thử chip thật Thiết bị chế tạo ra hoạt động thế nào?

Netlist là danh sách phần tử và kết nối. Layout bổ sung hình học của phần tử và dây trên công nghệ đích. Có một netlist chưa có nghĩa đã hoàn tất layout hoặc đạt timing.

FPGA dùng tài nguyên có sẵn

FPGA (Field-Programmable Gate Array) đã được chế tạo với tài nguyên có thể cấu hình, như logic LUT, flip-flop, khối nhớ và DSP. Thiết kế được map, đặt và nối trên các tài nguyên của đúng thiết bị.

Điểm so sánh ASIC FPGA
Đích triển khai Thư viện cell và công nghệ được chọn Một dòng/thiết bị FPGA được chọn
Sau synthesis Netlist để tiếp tục implementation Netlist/tài nguyên để tiếp tục implementation
Đầu ra triển khai điển hình Dữ liệu layout để giao chế tạo Bitstream hoặc dữ liệu cấu hình để nạp thiết bị
Điều vẫn phải kiểm Chức năng, constraint, timing và tính nhất quán của phiên bản Chức năng, constraint, timing và tính nhất quán của phiên bản

Bitstream không phải file layout để tự chế tạo một chip mới. Ngược lại, GDSII không phải file nạp trực tiếp cho FPGA. Hai luồng dùng chung nhiều ý tưởng RTL/DV nhưng có đích triển khai khác nhau.

RTL và DV bắt đầu làm việc cùng nhau

Người thiết kế RTL chọn cấu trúc dữ liệu, logic và trạng thái để thực hiện yêu cầu. Người làm DV (Design Verification) đọc cùng yêu cầu, tìm điểm còn mơ hồ và xây cách phát hiện thiết kế làm sai.

Với bộ cộng, RTL cần giữ đủ kết quả; DV cần chọn cả các cặp tạo carry, thay vì chỉ thử các tổng nhỏ. Verification plan nên bắt đầu từ đặc tả, rồi phát triển cùng RTL.

Physical design tập trung triển khai vật lý và timing; Design for Test (DFT) phục vụ khả năng kiểm tra lỗi chế tạo. Post-silicon validation làm việc với thiết bị đã có. Các vai trò trao đổi artifact và vấn đề, thay vì chỉ chuyển một file sang nhóm sau rồi hết trách nhiệm.

Từ dấu hiệu lỗi chọn việc cần làm

Một lượt simulation qua không bảo đảm toàn bộ đặc tả đã được kiểm. Synthesis qua cũng không chứng minh phép cộng đúng. Trước khi chọn công cụ, hãy xác định câu hỏi còn chưa được trả lời.

  1. Kết quả 3 cộng 3 thành 2: cần kiểm độ rộng và chức năng trước, hay chỉ đổi vị trí cell?
  2. Kết quả logic đúng nhưng báo cáo STA có đường không đạt constraint: cần xem thông tin nào ngoài testbench?
  3. Một thay đổi RTL được thêm sau lượt kiểm cuối: kết quả của phiên bản cũ có tự xác nhận phiên bản mới không?

Đối chiếu yêu cầu, phiên bản nguồn, kích thích và kết quả mong đợi trước khi kết luận công cụ hay thiết kế bị lỗi.

Kiểm tra

Tự kiểm tra: Từ yêu cầu đến chip

  1. Hai số không dấu đều trong khoảng 0 tới 3. Tổng lớn nhất cần giữ là bao nhiêu?
  2. Đầu ra triển khai nào thường dùng để cấu hình FPGA?
  3. Khi nào nên bắt đầu đọc đặc tả và lập verification plan?
  4. Một testbench cho kết quả số học đúng. Muốn kết luận đạt timing cần thêm gì?

Mang theo ba câu hỏi sang bài tiếp

Một artifact đang mô tả chức năng, quan hệ theo chu kỳ, hay cấu trúc/vật lý? Công cụ vừa chạy trả lời câu hỏi nào? Bằng chứng ấy còn chưa xác nhận điều gì?

Bài kế tiếp dùng các mức trừu tượng để đọc đúng ý nghĩa của mô hình, RTL, netlist và layout.

[1] [2] [3]

Nguồn và mức độ đối chiếu

  1. ASIC Design Flow — bản chụp resources.zip, ASIC Design Flow Overview; Specifications; Digital Design (RTL Development); Verification; Logic Synthesis; Logic Equivalence Checking (LEC); Placement and Routing (Physical Design); Team Roles in ASIC Design. Trích dẫn; nguồn đã đọc các mục liên quan.
  2. Verification In Chip Design Flow — bản chụp resources.zip, Verification Planning — Starts at Specification; RTL Coding — The Heaviest Verification Phase; How Design and Verification Teams Collaborate. Trích dẫn; nguồn đã đọc các mục liên quan.
  3. Simulation & Synthesis Tools — bản chụp resources.zip, Understanding What Simulation Does; Yosys; Vivado; RTL Elaboration; Understanding Synthesis Results; Waveform Viewers; Learning Path: From Beginner to Advanced; Making the Most of Simulation. Trích dẫn; nguồn đã đọc các mục liên quan.