Портирование моего ответа от SO . Что фокусируется на том, почему нецелесообразно синтезировать абсолютные задержки
При синтезе деревьев тактовых импульсов инструмент синтеза уравновешивает их, добавляя задержки, чтобы все узлы получали часы одновременно, поэтому может показаться, что инструмент синтеза действительно имеет возможность добавлять задержки.
Однако, когда производятся ASIC, есть разница в скорости, на высоком уровне это можно рассматривать как медленную, типичную и быструю. На практике существуют сотни вариантов этих углов, в которых определенные типы устройств в кремнии работают быстро, а другие медленно.
Эти углы кремния также имеют температурный рейтинг, в худшем случае это может быть + 140C для быстрого кремния и -40C для медленного кремния. Изменение задержки через буфер в этом случае может составлять от 1 нс до 30 нс.
Чтобы вернуть это в Verilog, если бы он #10был синтезируемым, вы бы на самом деле получили 155 + -145, то есть от 10 нс до 300 нс, если вы также спроектировали что-то, #20чтобы быть частью того же интерфейса или структуры управления, он будет иметь диапазон от 20 нс до 600 нс. , Поэтому все это не совсем верно в отношении вашего дизайна. Вы не получите точного #10и того, #20что было указано.
Деревья часов спроектированы таким образом, чтобы ограничить максимальные и минимальные задержки, и чтобы все узлы в дереве часов масштабировались относительно друг друга. Им никогда не дают такого строгого правила, что оно должно быть # 10 нс, поскольку это физически невозможно гарантировать в комбинаторной схеме.