Lộ trình RTL/DV: học nền tảng chung rồi chọn chiều đi sâu

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

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

  • Chọn thứ tự học theo prerequisite thay vì tên công cụ
  • Phân biệt sản phẩm học tập của hướng RTL và hướng DV
  • Tự đánh giá bằng khả năng giải thích và kiểm lại một thiết kế nhỏ

Chọn câu hỏi muốn giải quyết trước khi chọn chức danh

Bạn thích quyết định dữ liệu được lưu và xử lý thế nào, hay thích tìm cách chứng minh một cách làm đang sai? Cả hai hướng đều cần hiểu phần cứng, đọc waveform và trao đổi rõ yêu cầu.

Tên vị trí có thể khác giữa các nhóm. Hãy nhìn nhiệm vụ và artifact cần tạo: RTL, testbench, kế hoạch kiểm, báo cáo timing hay kết quả debug.

Nền tảng chung giúp cả RTL lẫn DV

Chặng Kiến thức chính Tự hỏi trước khi đi tiếp
Biểu diễn số Nhị phân, signed/unsigned, overflow, fixed-point Giá trị này được giữ bằng bao nhiêu bit và hiểu theo kiểu nào?
Logic tổ hợp và số học Boolean, MUX, decoder, adder, ALU Đầu ra phải phụ thuộc đầu vào thế nào?
Tuần tự và FSM Thanh ghi, reset, timing, trạng thái Điều gì thay đổi tại cạnh clock và lúc nào nhận kết quả?
Verilog và mô phỏng Module, assignment, scheduling, task/function Source đang mô tả phần cứng nào và phép kiểm đọc giá trị nào?
Debug có phương pháp Tái hiện, dự đoán, waveform, đối chiếu Khác biệt đầu tiên với yêu cầu xuất hiện ở đâu?

Đây là lý do không bắt đầu bằng UVM macro rồi bỏ qua logic tuần tự. Một thông báo lỗi về response sai chu kỳ vẫn đòi bạn hiểu clock, latency và cách lấy mẫu.

Đi sâu RTL bằng các quyết định phần cứng

Sau nền tảng chung, học coding cho synthesis, latch inference, FSM, bộ nhớ/FIFO và các tình huống qua miền clock. Tiếp theo là đọc netlist, timing/constraint, đánh đổi PPA và low power theo phạm vi công việc.

Với mỗi khối nhỏ, giải thích được đầu vào/đầu ra, reset, dữ liệu lưu ở đâu và điều kiện biên. Nếu đổi độ rộng hay thêm pipeline, cần biết phần hợp đồng nào thay đổi và kiểm lại nó.

Đi sâu DV bằng yêu cầu và cách phát hiện sai

Từ testbench đơn giản, học mô hình tham chiếu, monitor, scoreboard và cách kết thúc test khi các nghĩa vụ đã hoàn tất. Bổ sung SystemVerilog data type, interface, OOP, randomization, concurrency, SVA và functional coverage theo prerequisite.

Sau đó dùng UVM để tổ chức và tái sử dụng môi trường: component, phase, configuration, sequence, TLM và register model. UVM không tự sinh ra một đặc tả đúng hay một scoreboard đủ tốt.

Một bài kiểm không chỉ cần làm DUT chạy; nó cần phát hiện được hành vi vi phạm và chỉ ra dữ liệu giúp tái hiện. Giữ tình huống sai có chủ đích khi tự kiểm chất lượng cách kiểm.

Mỗi chặng cần một sản phẩm giải thích được

Sản phẩm Điều cần tự giải thích
Một bảng đầu vào/đầu ra Miền giá trị và trường hợp biên đã rõ chưa?
Một khối tổ hợp hoặc tuần tự nhỏ Độ rộng, trạng thái và latency đến từ đâu?
Một waveform có dự đoán trước Tín hiệu tại mốc cần kiểm phải mang giá trị nào?
Một testbench có so sánh tự động Lỗi nào sẽ bị bắt và lỗi nào còn có thể lọt?
Một báo cáo và bản debug ngắn Đã kiểm phiên bản/cấu hình nào, kết luận có giới hạn gì?

Không cần chờ làm một hệ thống lớn mới tập các bước này. Một lỗi mất carry được tái hiện và giải thích rõ hữu ích hơn nhiều kết quả chạy mà không biết đã xác nhận điều gì.

Tự chọn việc học tiếp từ chỗ còn vướng

  1. Nếu bạn chưa hiểu vì sao tổng bị mất bit cao, nên quay lại biểu diễn số/độ rộng hay chuyển ngay sang framework testbench?
  2. Nếu bạn viết được RTL nhưng chưa biết kiểm sai latency, cần bổ sung kỹ năng nào?
  3. Nếu test ngẫu nhiên chạy nhiều lần nhưng chưa biết đã thử gì, nên xem lại yêu cầu và coverage thế nào?
  4. Chọn một chặng trong bảng và ghi một sản phẩm nhỏ bạn có thể giải thích độc lập.

Trang Lộ trình cho biết prerequisite và bài đã có nội dung. Các bài đang chuẩn bị chưa được tính là đã học; hãy giữ rõ phần mình đã hiểu và phần còn chờ hoặc cần ôn lại.

Kiểm tra

Tự kiểm tra: Chọn chặng học tiếp

  1. Nếu còn vướng signed/unsigned và mất bit cao, nên củng cố nội dung nào trước?
  2. Sản phẩm học tập nào thể hiện rõ khả năng tự giải thích?
  3. Dùng UVM có tự bảo đảm verification plan và scoreboard đầy đủ không?
  4. Khi nào việc đánh dấu đã hiểu có ý nghĩa học tập hơn?

Dùng lộ trình để quay lại đúng nền tảng

Đi theo quan hệ kiến thức, không chỉ theo tên công cụ đang phổ biến. Sau mỗi phần, tự giải thích một ví dụ và một cách làm sai trước khi đánh dấu đã hiểu.

Chặng nền tảng tiếp theo của chương trình là Biểu diễn số. Hướng RTL và DV gặp lại nhau ở cùng một việc: hiểu yêu cầu, tạo bằng chứng và giải thích chính xác kết luận của mình.

[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. 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.
  3. 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.