Các mức trừu tượng: cùng chức năng, khác thông tin nhìn thấy

Khoảng 35 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ẽ

  • Phân biệt kiến trúc, RTL, netlist, transistor và layout
  • Nhận ra thông tin một mô hình đã mô tả và thông tin còn thiếu
  • Giải thích tác động của thêm thanh ghi lên latency dù phép toán giữ nguyên

Hai thiết kế cùng cộng nhưng chưa chắc thay được cho nhau

Một mô hình nói kết quả phải bằng tổng hai đầu vào. Nó có thể chưa nói kết quả xuất hiện ngay sau khi logic ổn định hay được giữ ở thanh ghi sau một cạnh clock.

Trừu tượng hóa giúp tập trung vào một câu hỏi và tạm bỏ bớt chi tiết. Điều bị bỏ đi không tự trở thành đúng; muốn kết luận về nó, cần thêm mô hình hoặc kiểm tra phù hợp.

Một phép tính và hai thời điểm nhận kết quả

Xét đầu vào mang hai số 1 và 3, tổng toán học là 4. Hai lựa chọn triển khai có thể khác nhau như sau:

Mô tả Điều được quyết định Điều chưa được xác nhận
Mô hình chức năng: trả tổng 4 Quan hệ giữa giá trị đầu vào và đầu ra Clock, latency, đường logic cụ thể
Khối tổ hợp Đầu ra phụ thuộc đầu vào hiện tại qua logic tổ hợp Bao lâu để đầu ra vật lý ổn định
Khối có thanh ghi đầu ra Đầu ra được cập nhật theo clock và hợp đồng lấy mẫu Timing có đạt trên công nghệ đích hay không

Thêm thanh ghi có thể giúp chia đường logic, nhưng thay đổi lúc bên nhận thấy dữ liệu. Không được giữ testbench chỉ so giá trị rồi bỏ qua yêu cầu latency.

Mỗi mức giữ lại một nhóm chi tiết

Bài dùng năm nhóm để đọc artifact. Đây là cách tổ chức kiến thức, không phải yêu cầu mọi dự án có đúng năm loại file.

Mức Thường thấy Câu hỏi phù hợp
Kiến trúc Sơ đồ khối, mô hình chức năng, ngân sách tài nguyên Chia hệ thống thành những khối nào và trao đổi gì?
RTL Thanh ghi, logic tổ hợp, clock/reset và giao tiếp theo chu kỳ Giá trị/trạng thái được cập nhật lúc nào?
Gate/netlist Cell hoặc primitive cùng các kết nối Công cụ đã tạo cấu trúc logic nào?
Transistor Phần tử mạch điện và tham số mô hình Cell phản ứng theo điện áp, tải và điều kiện mô hình thế nào?
Physical/layout Hình học cell/dây và dữ liệu công nghệ Bố trí, kết nối vật lý và quy tắc triển khai có phù hợp không?

Netlist generic chưa chắc đã map sang thư viện cell hoặc tài nguyên FPGA cụ thể. Layout cần thêm thông tin về đích công nghệ; không thể suy diện tích silicon chỉ từ số dòng RTL.

RTL quyết định trạng thái và đường dữ liệu

RTL không chỉ là công thức toán. Nó còn thể hiện các chỗ lưu trạng thái và logic nằm giữa chúng. Một thanh ghi được cập nhật ở cạnh clock khác với một biểu thức tổ hợp theo đầu vào hiện tại.

Synthesis chọn cấu trúc triển khai trong phạm vi RTL, constraint và tài nguyên cho phép. Viết toán tử cộng không ấn định một mạch cộng vật lý duy nhất, nhưng độ rộng và các ranh giới thanh ghi vẫn ảnh hưởng thiết kế.

Chọn độ rộng đủ cho đầu vào chưa chắc đủ cho đầu ra. Hai số từ 0 tới 3 có tổng tối đa 6; lưu kết quả chỉ trong miền 0 tới 3 sẽ mất thông tin, dù mô tả còn rất ngắn.

Đọc đúng câu hỏi của từng loại mô hình

Functional simulation giúp đối chiếu hành vi của mô hình với các tình huống được tạo ra. Equivalence checking đối chiếu hai biểu diễn theo các giả thiết đã cấu hình. STA kiểm timing theo mô hình và constraint; nó không tự viết thay đặc tả chức năng.

Ở mức physical, DRC kiểm quy tắc hình học; LVS đối chiếu kết nối layout với schematic/netlist theo luồng được dùng. Một báo cáo của nhóm này không tự thay cho báo cáo nhóm khác.

Tìm điều chưa thể suy ra

  1. Một mô hình số học trả đúng mọi tổng từ 0 tới 6. Nó đã xác nhận thiết kế chạy được ở tần số yêu cầu chưa?
  2. Netlist có thanh ghi nhưng chưa có thư viện timing và constraint. Có thể tự chọn một con số cho độ trễ không?
  3. Bạn thêm một tầng pipeline rồi giữ nguyên cách nhận dữ liệu. Cần kiểm lại điều gì ngoài giá trị phép cộng?
  4. Vì sao một kết quả synthesis generic không thể được gọi ngay là layout đã sẵn sàng chế tạo?

Tránh hai lỗi: đòi một mô hình trả lời điều nó không chứa, và quên kiểm lại phần hợp đồng đã thay đổi khi chuyển mức.

Kiểm tra

Tự kiểm tra: Các mức trừu tượng

  1. Thêm thanh ghi đầu ra nhưng vẫn giữ phép cộng có thể làm thay đổi điều gì?
  2. Artifact liệt kê cell hoặc primitive cùng các kết nối thuộc nhóm nào?
  3. Từ số dòng RTL, có thể kết luận ngay diện tích silicon chính xác không?
  4. Mô hình chỉ nói output bằng tổng hai số đã xác nhận latency theo clock chưa?

Chọn mức đủ chi tiết cho câu hỏi

Bắt đầu từ hành vi cần có, xác định thêm thời điểm và trạng thái, rồi đọc cấu trúc và dữ liệu vật lý khi câu hỏi đòi hỏi. Giữ mối liên hệ giữa các mức bằng kiểm chứng thích hợp.

Bài tiếp theo đi vào simulator, waveform, lint và synthesis: mỗi công cụ giúp nhìn một phần của thiết kế.

[1] [2]

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

  1. Design Abstraction Layers — bản chụp resources.zip, Architecture Level; RTL Level; Schematic Level; Transistor Level; Physical Level; Design Styles; Common Beginner Mistakes. Trích dẫn; nguồn đã đọc các mục liên quan.
  2. 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.