При изучении проектирования цифровых схем вы сталкиваетесь с нечетной/нечетной ячейкой, и сначала думаете: "Какой в этом смысл?"
Нечетность - это критерий для STA, позволяющий "безопасно и монотонно определить наихудший случай с помощью простых правил". Это необходимо для снижения производительности и пессимизма во время выполнения.
1) Unate / Non-unate: однострочное определение
- Unate cell: входной переход (подъем/спад) может монотонно определять направление выходного перехода для данного входного вывода.
→ STA может фиксировать направление перехода и вычислить наихудший случай. Поэтому количество случаев, которые необходимо вычислить, невелико.

- Например, AND Gate либо имеет переход на входной вывод, и на выходном выводе будет переход сигнала в том же направлении, либо он сохранит предыдущий сигнал.
- Это называется положительным униатом.
- И наоборот, если сигнал выходного контакта движется в направлении, противоположном входному, это называется отрицательным униатом.
- Неунитарная ячейка: Направление выходного перехода может меняться в зависимости от ситуации (различные входные состояния/условия).
→ STA не может зафиксировать направление перехода, поэтому требуется разделение случая.

Иными словами, "неуникальное ветвление дуги отсчета времени/прецедента и перечисление различных случаев. (частичное перечисление)."
2) Почему timing_sense Liberty важен
В библиотеке (.lib) обычно содержится следующее.
timing_sense: positive_unatetiming_sense: negative_unatetiming_sense: non_unate
Что делает эта строка, очень просто:
Она позволяет движку STA вроде PrimeTime решать, какие временные дуги являются "обрезаемыми на основе монотонности".
Односторонняя сторона:
- Направление перехода соответствующего пина фиксировано, так что
- есть меньше дуг/случаев-кандидатов.
Неодносторонняя сторона:
- Возможные дуги/случаи рассматриваются более широко, так что
- runtime↑ + pessimism↑ являются более вероятными.
3) 왜 “퍼포먼스 때문만”은 아닌가
맞다, не-унат может замедлить STA из-за разветвления.
Но что более важно:
Унате позволяет STA легко сделать "безопасную верхнюю границу" (консерватизм, который не пропускает худший случай) через предположение монотонности.
Неуниат нарушает это предположение, заставляя движок быть более консервативным (=пессимистичным)."
Иными словами, униат/неуниат - это не "трюк по оптимизации движка", а условие математической модели STA.
4) Почему неединичные ячейки - головная боль при расчетах тайминга
(1) XOR: Классический неуниат
В XOR "направление" изменения входа на выход не фиксировано.<Поэтому STA должна ветвиться на гораздо большее количество комбинаций нарастания/спада.
Последствия:
- увеличение временной дуги/случая
- трудность обрезки
- может проверить более пессимистичное поведение в STA, чем поведение реальной схемы
.