Mời các bạn theo dõi bài viết tiếp theo của anh PD lead tại Học Vi Mạch Cùng ICTC nhé.
—
Ở những bài trước, chúng ta đã tìm hiểu về 2 vấn đề quan trọng trong PD đó là congestion và timing violation. Hôm nay sẽ là chủ đề tiếp theo – CTS.
Nếu bạn từng học về thiết kế số (Digital Design), hẳn bạn đã quen thuộc với Flip-Flop (FF). Đây là phần tử nhớ cơ bản dùng để lưu trữ dữ liệu theo xung nhịp (clock). Mỗi Flip-Flop chỉ thay đổi trạng thái khi nhận được cạnh clock (rising hoặc falling edge). Vì vậy, trong mạch số, clock giúp đồng bộ toàn hệ thống.
Trong các SoC hiện đại ngày nay có hàng trăm nghìn, thậm chí hàng triệu Flip-Flop, có rất nhiều yếu tố có thể làm cho clock không thể đến tất cả các FF cùng thời điểm (skew), FF có thể bắt dữ liệu quá sớm hoặc quá muộn, dẫn đến capture sai dữ liệu, gây lỗi chức năng hoặc timing violation.
Chính vì vậy, trong Physical Design cần có một công đoạn gọi là Clock Tree Synthesis (CTS) làm nhiệm vụ phân phối clock đến các FF nhằm đảm bảo độ lệch nhỏ nhất có thể. Đây là nền tảng để đảm bảo thiết kế hoạt động đúng và đạt hiệu suất mong muốn.
CTS không chỉ là build clock tree, mà còn phải cân bằng giữa timing, power, và độ ổn định của hệ thống. Các kỹ sư bắt đầu từ netlist sau placement, xác định các clock source và sink (FF, latch), sau đó chọn cấu trúc clock tree phù hợp: làm clock tree theo kiểu truyền thống phân phối đều đến các FF sink (conventional CTS), H-tree cho độ cân bằng cao, grid cho vùng dày đặc, hoặc hybrid để tận dụng ưu điểm của cả hai
Kỹ sư phải chèn buffer, inverter, cân nhắc đường đi của clock để vừa minimize skew, đồng thời đảm bảo clock tree không gây congestion cho các tín hiệu logic khác. Ngoài ra, họ còn phải điều chỉnh constraint, phân tích timing sau CTS, và lặp lại nhiều lần với sự trợ giúp của EDA cho đến khi đạt được sự cân bằng tốt nhất giữa performance và power consumption.
Sau khi hoàn thành CTS, việc kiểm tra kỹ lưỡng là bước không thể thiếu. Kỹ sư thường quan sát clock tree map để hình dung cách clock được phân phối trên toàn design, từ đó phát hiện các vùng mất cân bằng hoặc tắc nghẽn. Tiếp theo là phân tích các report về latency và skew, nhằm đánh giá chất lượng của clock tree.
Ngoài ra, cần chú ý đến các timing violation do skew lớn gây ra, cũng như power và area tiêu tốn bởi các cell trong clock tree, vì clock network thường chiếm tỷ lệ tiêu hao năng lượng đáng kể trong toàn chip.
Để làm cho CTS hiệu quả, cần chuẩn bị từ sớm ngay từ giai đoạn floorplan và placement. Cụ thể, nên dự trù tài nguyên hợp lý, chừa channel trống, phân tán standard cell để tránh congestion, giúp clock tree dễ dàng được xây dựng. Trong quá trình thực hiện, có thể giảm skew/latency bằng cách chọn cell mạnh hơn, áp dụng NDR hoặc shield trong clock routing, hoặc sử dụng các phương pháp phân phối clock tiên tiến như H-tree, clock mesh.
Bên cạnh đó, phân tán các loại cell khác xung quanh clock cell hoặc bổ sung thêm các decap cell… cũng giúp giảm nhiễu và ổn định điện áp cung cấp cho các clock cell, góp phần cải thiện chất lượng tín hiệu clock tổng thể.

















