Thứ Bảy, 7 tháng 7, 2018

[STA] Các thông số của clock trong phân tích timing

Để các phần mềm phân tích như Prime Time của Synopsys có thể hiểu và phân tích chính xác timing thì những mô tả về các thông số cấu hình cơ bản hoặc các ràng buộc (constraint) timing cần được cung cấp. Bài này mô tả một số khái niệm về các thông số cơ bản như độ trễ, thời gian chuyển đổi, độ lệch của đường clock cần phải khai báo khi thực hiện kiểm tra timing.

Việc phân tích timing gắn liền với các ràng buộc liên quan đến clock. Một thiết kế có thể hoạt động với chỉ duy nhất 1 hoặc nhiều clock khác nhau. Tất cả các clock có trong thiết kế đều phải được đặc tả timing rõ ràng. Nếu thiết kế có nhiều clock, sự ràng buộc timing giữa các clock này phải được mô tả để phần mềm phân tích có thể kiểm tra đường timing từ lan truyền từ clock này đến clock khác.Các thông số của clock gồm có:
  • Chu kỳ clock (period)
  • Độ trễ clock (latency)
  • Thời gian chuyển đổi tại các cạnh clock (transition time)
  • Độ lệch clock (uncertainty hoặc skew)
Quá trình phân tích timing sẽ sử dụng tất cả các thông số của clock để xác định các điều kiện xấu nhất cho mỗi loại kiểm tra timing.
Hình 1: Các thông số của clock
1) Độ trễ clock (latency)
Độ trễ clock có hai loại là độ trễ nguồn (source latency) và độ trễ mạng clock (network latency). Trong đó:
  • Độ trễ nguồn, source latency hoặc source delay, là thời gian tín hiệu clock lan truyền từ điểm nguồn đến điểm định nghĩa clock trong thiết kế. Điểm nguồn có thể là tại PLL (Phase Lock Loop) hoặc tại bộ tạo clock nội. Điểm định nghĩa clock có thể là port clock của một khối, một module hoặc một nhóm module được kiểm tra timing.
  • Độ trễ mạng clock, network latency hoặc network delay, là thời gian tín hiệu clock lan truyền từ điểm định nghĩa lock đến chân clock của phần tử tuần tự, ví dụ như chân clock của một FF.
Lý do sinh ra độ trễ clock là do các buffer được chèn trên đường clock khi thực hiện thiết kế cây clock cho một chip và độ trễ đường dây khi layout. Độ trễ sinh ra do chèn thêm các buffer gọi là insertion delay.
  • Source insertion delay là độ trễ chèn thêm tính từ điểm nguồn clock đến điểm định nghĩa clock.
  • Network insertion delay là độ trễ chèn thêm tính từ điểm định nghĩa clock đến chân clock của một phần tử tuần tự.
Độ trễ clock (latency) = độ trễ chèn thêm (insertion delay) + độ trễ đường dây
Độ trễ chèn thêm (insertion delay) = độ trễ chèn thêm từ nguồn (source insertion delay) + độ trễ chèn thêm của mạng clock (network insertion delay)

Hình 2: Đỗ trễ của tín hiệu clock
2) Thời gian chuyển đổi tại các cạnh clock
Thời gian chuyển đổi tại cạnh clock là khoảng thời gian mà clock chuyển từ trạng thái này sang trạng thái khác. Trên thực tế, khi chuyển trạng thái, tín hiệu cần một khaongr thời gian để xác lập giá trị mới chứ
Thời gian chuyển đổi có hai loại là thời gian chuyển đổi cạnh lên (rising transition time) và thời gian chuyển đổi cạnh xuống (falling transition time).
Việc chuyển đổi trạng thái trên tín hiệu clock cần một khoảng thời gian do kết nối giữa cổng lái tín hiệu clock đến chân clock của FF. Kết nối này có thể được mô hình tương đương gần đúng bằng điện trở ngõ ra cổng lái (RoutB), điện trở đường dây (Rwire), tụ kí sinh trên đường dây (Cwire) và tụ đầu vào chân clock (CinFF) như hình 3.
Hình 3: Mô hình tương đương của kết nối từ Buffer đến chân clock của FF
Điện áp tại chân clock của một FF được lan truyền từ ngõ ra một buffer sẽ được tính theo mô hình tường đương trên như sau:

Vout = VDD (1- e^(-t/RC))

Trong đó, R = RoutB + RwireC = Cwire + CinFF.
Thời gian cạnh lên (cạnh xuống) của clock được tính từ khi điện áp tại chân clock chuyển đạt từ 10% đến 90% (từ 90% đến 10%) điện áp nguồn. Như vậy thời gian cạnh lên sẽ được tính như sau:
Thời gian cạnh lên = Thời gian đạt 90% - Thời gian đạt 10%
Thời gian đạt 90% sẽ được tính theo buổi thức điện áp Vout như sau:
0.9*VDD =VDD(1- e^(-t/RC)
e^(-t/RC) = 1 - 0.9
t = -(RC*ln(0.1))
t ~= 2.3*RC
Thời gian đạt 10% được tính như sau:
0.1*VDD =VDD(1- e^(-t/RC)
e^(-t/RC) = 1 - 0.1
t = -(RC*ln(0.9))
t ~= 0.1*RC
Như vậy, thời gian cạnh lên trise = 2.2*RC
Hình 4: Thời gian chuyển đổi trạng thái của cạnh clock
Thời gian cạnh xuống của clock xấp xỉ bằng thời gian cạnh lên do thời gian nạp và xả của tụ là như nhau.
3) Độ lệch clock (uncertainty hoặc skew)
Độ lệch clock được định nghĩa là sự khác biệt tối đa về thời gian đến của tín hiệu clock tại các thanh ghi trong cùng một miền clock hoặc giữa các miền clock khác nhau.
Sau khi tổng hợp và trước khi tổng hợp cây clock (clock tree synthesis) thì uncertainty sinh ra do hiện tượng clock jitter. Clock jitter là hiện tượng cạnh clock bị cung cấp lệch so với vị trí lý tưởng. Hiện tượng này xảy ra khi nguồn cung cấp clock (clock source) bị nhiễu, năng lượng không ổn định hoặc bị ảnh hưởng từ các mạch khác,...
Hình 5: Clock jitter
Sau khi tổng hợp cây clock và layout, độ lệch clock còn bị tác động do độ trễ trên đường clock đến các FF khác nhau là khác nhau. Do độ trễ khác nhau nên cạnh xung clock xuất hiện tại chân clock của các FF là không cùng một lúc.
Hình 6: Độ lệch clock
Độ lệch clock có hai loại là:
  • Simple uncertainty là độ lệch clock giữa các cạnh liên tiếp của cùng một clock so với một thời điểm lý tưởng.
  • Interclock  uncertainty là độ lệch clock giữa hai cạnh hai cạnh của hai clock khác nhau.
Hình 7: Simple and interclock uncertainty

0 bình luận:

Đăng nhận xét