Chuyển câu trả lời của tôi từ SO . Mà tập trung vào lý do tại sao nó là không thực tế để tổng hợp sự chậm trễ tuyệt đối
Khi tổng hợp cây đồng hồ, công cụ tổng hợp sẽ cân bằng những điều này bằng cách thêm độ trễ để tất cả các nút nhận được đồng hồ cùng một lúc, do đó có vẻ như công cụ tổng hợp có khả năng thêm độ trễ.
Tuy nhiên, khi ASIC được sản xuất có sự chênh lệch về tốc độ, ở mức cao, điều này có thể được xem là Chậm, Điển hình và Nhanh. Trong thực tế, có hàng trăm biến thể của các góc này trong đó một số loại thiết bị trong silicon chạy nhanh và các loại khác chậm.
Các góc này của silicon cũng có mức nhiệt độ, trường hợp xấu nhất có thể là + 140C Silic nhanh và silicon chậm -40C. Sự thay đổi của độ trễ thông qua bộ đệm trong trường hợp này có thể là từ 1ns đến 30ns.
Để mang lại điều này cho Verilog nếu có thể #10
tổng hợp, bạn thực sự sẽ nhận được 155 + -145 tức là 10ns đến 300ns, nếu bạn cũng đã thiết kế một cái gì đó #20
để trở thành một phần của cùng một giao diện hoặc cấu trúc điều khiển, nó sẽ có phạm vi từ 20ns đến 600ns . Do đó, toàn bộ điều này không thực sự hợp lệ đối với thiết kế của bạn. Bạn không nhận được chính xác #10
và #20
đã được chỉ định.
Các cây đồng hồ được thiết kế theo cách hạn chế độ trễ tối đa và tối thiểu và do đó tất cả các nút trên cây đồng hồ sẽ chia tỷ lệ tương đối với nhau. Họ không bao giờ được đưa ra một quy tắc nghiêm ngặt đến mức nó phải là # 10ns vì điều này là không thể đảm bảo về mặt vật lý trong một mạch tổ hợp.