Điều cần thiết là áp dụng các ràng buộc thời gian cho việc vượt qua miền đồng hồ multibit của bạn. Nếu xe buýt này có hạn chế set_false_path , thì độ lệch trên xe buýt có thể hơn 1 khoảng thời gian đồng hồ, điều này có thể gây ra lỗi chức năng.
Yêu cầu đầu tiên là bạn không có ràng buộc set_false_path giữa hai miền đồng hồ. Nếu bạn không muốn các đường dẫn giữa chúng được phân tích để thiết lập và giữ, thì bạn có thể sử dụng set_clock_groups, có mức ưu tiên thấp hơn.
Tiếp theo, hạn chế các đường dẫn bằng set_net_delay để làm cho chúng càng ngắn càng tốt và với et_max_skew set_max_skew không hạn chế bộ lắp ráp, nhưng bạn có thể phân tích dựa trên ràng buộc này trong Trình phân tích thời gian.
Các ràng buộc đối với miền đồng hồ giao nhau giữa data_a trong miền đồng hồ clk_a và data_b trong miền đồng hồ clk_b có thể trông như thế này.
create_clock -name clk_a -period 4.000 [get_ports {clk_a}]
create_clock -name clk_b -period 4.500 [get_ports {clk_b}]
set_clock_groups -không đồng bộ -group [get_clocks {clk_a}] -group [get_clocks {clk_b}]
set_net_delay -from [get_registers {data_a[*]}] -to [get_registers {data_b[*]}] -max -get_value_from_clock_period dst_clock_period -value_multiplier 0.8
set_max_skew -from [get_keepers {data_a[*]}] -to [get_keepers {data_b[*]}] -get_skew_value_from_clock_period min_clock_period -skew_value_multiplier 0.8
Các yêu cầu về độ lệch sẽ phụ thuộc vào thiết kế của bạn và cách bạn xử lý việc vượt qua miền đồng hồ.
Cuối cùng, kiểm tra thời gian vượt qua miền đồng hồ của bạn bằng cách chạy Báo cáo tóm tắt độ lệch tối đa và Báo cáo tóm tắt độ trễ ròng trong Trình phân tích thời gian.