Bộ phân tích Thời gian coi bộ chia đồng hồ, đồng hồ gợn sóng hoặc các mạch có khả năng sửa đổi hoặc thay đổi các đặc tính của đồng hồ đến hoặc máy chủ như đồng hồ được tạo ra. Bạn nên xác định đầu ra của các mạch này là đồng hồ được tạo ra. Định nghĩa này cho phép Phân tích Thời gian phân tích các đồng hồ này và tính toán bất kỳ độ trễ mạng nào được liên kết với chúng.
Bạn có thể sử dụng lệnh create_generated_clock tạo đồng hồ đã tạo. Danh sách sau hiển thị lệnh create_generated_clock hành và các tùy chọn có sẵn:
create_generated_clock [-tên <clock name>] -source <thernet pin> [-edges <edge list>] [-edge_shift <shift list>] [-divide_by <factor>] [-multiply_by <factor>] [-duty_cycle <percent>] [-add] [-invert] [-host_clock <clock>] [-phase <phase>] [-offset <offset>] <cô>
Bảng 1 mô tả các tùy chọn cho create_generated_clock lệnh.
Bảng 1. Mô tả tùy chọn cho Create_generated_clock lệnh
Mô tả | tùy chọn |
---|---|
-Tên <clock> | Tên của đồng hồ được tạo, ví dụ, clk_x2. Nếu bạn không xác định tên đồng hồ, tên đồng hồ sẽ giống với nút đầu tiên được chỉ định. |
-nguồn < pin> | Chân < > định nút trong thiết kế mà từ đó xuất phát từ cài đặt đồng hồ. |
-Edges < sách > | sách edge_shift < chuyển đổi> | Tùy chọn -edges chỉ định các cạnh tăng và giảm biên mới đối với các cạnh tăng và giảm biên của đồng hồ chủ. Các cạnh gia tăng và giảm tỷ lệ của đồng hồ chủ được đánh số là 1,<n> bắt đầu với biên tăng đầu tiên, ví dụ: cạnh 1. Cạnh đầu tiên sau đó là cạnh số 2, cạnh tiếp theo tăng số 3, v.v. Danh sách < hàng hóa > phải theo thứ tự tăng lên. Có thể sử dụng cùng một cạnh để chỉ ra xung xung nhịp độc lập với chu kỳ công suất của dạng sóng ban đầu. edge_shift định lượng dịch chuyển cho từng cạnh trong danh sách < định sẵn>. Tùy chọn -đảo ngược có thể được sử dụng để đảo ngược đồng hồ sau khi -edges và -edge_shifts được áp dụng. |
-divide_by < nhân>| -Multiply_by< nhân> | Các yếu tố divide_by lượng và hiệu multiply_by dựa trên cạnh tăng đầu tiên của đồng hồ và mở rộng hoặc hợp đồng dạng sóng bởi các yếu tố được chỉ định. Ví dụ: tệp -divide_by 2 tương đương với -edge {1 3 5}. Đối với đồng hồ nhân, chu kỳ nhiệm vụ cũng có thể được chỉ định. Phân tích Thời gian hỗ trợ xác định nhân và phân chia các yếu tố cùng một lúc. |
-Duty_cycle<môn viên> | Chỉ định chu kỳ công suất của đồng hồ được tạo ra. Chu kỳ nhiệm vụ được áp dụng cuối cùng. |
-thêm | Cho phép bạn chỉ định nhiều hơn một đồng hồ với cùng một chân. |
-đảo ngược | Đảo ngược được áp dụng ở đầu ra của đồng hồ sau khi tất cả các sửa đổi khác được áp dụng, trừ chu kỳ nhiệm vụ. |
-Host_clock< ép xung> | host_clock dụng để chỉ định đồng hồ nếu có nhiều đồng hồ tại chân máy chủ. |
-pha<phase> | Chỉ định pha của đồng hồ được tạo ra. |
-offset<offset> | Chỉ định bù giờ của đồng hồ được tạo ra. |
< các đối tượng> | Chỉ định cổng hoặc (các) chân mà bài tập áp dụng. |
Độ trễ nguồn dựa trên độ trễ mạng đồng hồ từ đồng hồ máy chủ (không nhất thiết phải chân máy chủ). Bạn có thể sử dụng set_clock_latency -source command để ghi đè lên độ trễ nguồn.
Hình 1 hiển thị dạng sóng cho các lệnh SDC sau đây tạo ra một đồng hồ được tạo ngược dựa trên đồng hồ 10 ns.
create_clock -period 10 [get_ports clk] create_generated_clock -divide_by 1 -invert -source [get_registers clk] \ [get_registers gen|clkreg]
Hình 2 hiển thị dạng sóng cho các lệnh SDC sau đây sửa đổi đồng hồ được tạo bằng cách sử dụng các tùy chọn -edge và -edge_shift.
create_clock -period 10 -waveform { 0 5 } [get_ports clk] # Tạo một đồng hồ create_generated_clock -source [get_ports clk] -edges { 1 3 5 } \ [get_registers clkdivA|clkreg] # Tạo ra một đồng hồ chia-by-2 độc lập với chu kỳ công suất của đồng hồ chủ giờ đây là 50%) nguồn create_generated_clock [get_ports clk] -edges { 1 1 5 } -edge_shift 0 5 0 } \ [get_registers clkdivB|clkreg]
Hình 3 cho thấy wafeforms cho các lệnh SDC sau đây chứng minh hiệu quả của tùy chọn -multiply trên đồng hồ được tạo ra.
create_clock -period 10 -waveform { 0 5 } [get_ports clk] # Tạo ra một đồng hồ create_generated_clock nhân-2 [get_ports clk] -multiply_by 2 \ [get_registers clkmult|clkreg]