Hôm trước có bạn hỏi câu này cũng hay nên mới đi hỏi anh PD leader tại Học Vi Mạch Cùng ICTC để bưng lên đây cho mọi người cùng tham khảo![]()
PI (Physical Implementation) engineer đảm nhiệm vai trò ở khâu Back End trong flow thiết kế chip, nằm ở ranh giới giữa RTL và PD. Ở một số công ty, PI đảm nhiệm cả hai phần Synthesis và STA, nghĩa là họ vừa xử lý đầu vào từ team RTL, vừa đảm bảo chất lượng đầu ra cho PD. Nói nôm na thì PI là người đứng giữa, đảm bảo mọi thứ ổn áp trước khi chuyển sang giai đoạn layout.
PI sẽ nhận RTL và SDC từ RTL team. Việc đầu tiên là verify syntax coi RTL hoặc constraint có error/warning gì không rồi feedback ngược lại. Sau khi mọi thứ ổn, PI tiến hành synthesis để convert RTL sang gate-level netlist, sao cho timing, area, power đạt yêu cầu. Làm xong synthesis, họ sẽ phải chạy LEC (Logic Equivalence Check) để chắc chắn netlist này logic tương đương với RTL, không bị sai lệch gì.
Khi synthesis hoàn tất, PI sẽ export lại SDC, refine các constraint cho chuẩn hơn, rồi release toàn bộ data gồm netlist, SDC, report QoR, script… cho PD team. PD dựa vào đó để làm floorplan, placement, routing… Ngoài ra, PI còn phải phối hợp với DFT team để check hoặc chỉnh SDC và netlist, đảm bảo không conflict với các yêu cầu test như scan hay BIST.
Bên cạnh synthesis, PI còn làm STA sau synthesis bao gồm check setup/hold, transition, capacitance, v.v… để đảm bảo không có timing violation nào nghiêm trọng trước khi release. Một số công ty, PI còn lo luôn phần constraint top-level, tạo SDC tổng cho toàn chip để các block con dùng.
Thực ra làm PI khá áp lực, vì vừa phải hiểu RTL để debug constraint, vừa phải nắm PD requirement để không gây khó cho backend, chịu trách nhiệm cả đầu vào lẫn đầu ra, nên sai một bước có thể kéo theo cả flow bị chậm.
Nhưng mà ko phải công ty nào cũng có team PI riêng, đặc biệt là ở các startup nhỏ. Ở đó thì RTL team sẽ chịu trách nhiệm luôn việc synthesis và LEC (có công ty thì PD làm luôn) sau đó bàn giao trực tiếp netlist và constraint cho PD team. Còn STA thì do PD đảm nhận luôn, vì họ đã có environment đầy đủ (parasitic, layout info, clock tree…). Do đó, vai trò trung gian của PI không còn rõ ràng nữa. Với những công ty nhỏ hoặc các dự án đơn giản (ví dụ IP nhỏ, flow ổn định, constraint ít thay đổi), việc duy trì một PI team riêng có thể bị xem là xa xỉ. Thay vào đó, họ để RTL engineer hoặc PD engineer kiêm luôn phần đó.
Còn với những công ty lớn, sản phẩm phức tạp, nhiều block, nhiều team con, hoặc cần đảm bảo consistency giữa các IP thì PI team trở nên cần thiết. Họ là người đứng giữa để chuẩn hóa flow, đảm bảo dữ liệu đồng bộ, và giảm rủi ro khi hàng chục khối RTL và DFT đổ về cho PD.

















