Синопсис: повторные компиляции дают разные результаты. Как автоматизировать повторную компиляцию?

Я новичок в использовании компилятора дизайна. Раньше я в основном работал с ПЛИС. Прямо сейчас я использую Synopsys, чтобы определить минимум, необходимый для представления некоторых схем (используя библиотеку Nangate 45nm). Я не занимаюсь P&R прямо сейчас; Я просто пытаюсь определить площадь транзистора.

Мое единственное ограничение оптимизации - минимизировать площадь. Я заметил, что если я говорю DC скомпилировать более одного раза подряд, он каждый раз выдает разные (и обычно меньшие) результаты.

  • Я смотрел и смотрел и не видел, упоминается ли это в руководстве или где-либо в каком-либо обсуждении. Это должно работать таким образом?

  • Это говорит о том, что оптимизация останавливается раньше, чем могла бы, поэтому ДЕЙСТВИТЕЛЬНО не минимизируется площадь. Есть идеи, почему?

  • Есть ли способ, которым я могу сказать, чтобы он увеличил усилия и / или сказал ему автоматически повторять компиляции, чтобы он сходился на наименьшем дизайне?

Я предполагаю, что DC ожидает соблюдения временных ограничений, но я дал ему чисто комбинаторный блок без временных ограничений. Они никогда не рассматривали сценарий использования, когда все, что вы хотите сделать, это определить минимальную площадь затвора для комбинаторной схемы?


person Timothy Miller    schedule 02.07.2014    source источник
comment
Я понял, как сделать итерацию. Сценарии выполняются на Tcl, поэтому их легко зациклить. Но один из моих коллег (который знаком только с инструментами Cadence) говорит, что должен быть способ заставить его тратить больше времени на оптимизацию (помимо установки уровня усилий).   -  person Timothy Miller    schedule 02.07.2014


Ответы (2)


В чисто комбинаторной схеме вы можете использовать ограничение set_max_delay, и DC попытается его выполнить.

Для уменьшения площади вы можете использовать -map_effort high или -map_effort ultra, чтобы заставить его работать интенсивнее.

DC — забавный зверь, и алгоритмы, которые он использует, меняются по мере развития процессов и делают определенные действия более или менее полезными. Большая часть оптимизации перед макетом менее полезна, так как вся ситуация может измениться после фактического размещения и маршрутизации ворот.

person Guy    schedule 02.07.2014
comment
Я использую команду compile_ultra -area_high_effort_script, которая работает лучше, чем компиляция, но все же требует много проходов для достижения минимума. - person Timothy Miller; 03.07.2014

Я подал заявку в службу поддержки Synopsys. Я использовал компилятор дизайна версии 2010 года. Судя по всему, с тех пор оптимизация области была улучшена, и версия 2014 года будет минимизировать площадь за один проход компилятора.

person Timothy Miller    schedule 10.07.2014