Глядя на фичу Xtreme Auto Router, возникает мысль - а ведь люди тратят деньги на софт, добавляющий вычислительной мощи автороутеру.
И не пора ли от ручной разводки переходить к автомату. Но для этого нужно понимать, как разменять вычислительную мощь (или время расчета) на соблюдение ограничений из CES.
Увы - на форуме communities.mentor всего 15 линков по поиску "autorouter" в ветке Expedition.
Из EE7.9 "Expedition® PCB User’s Guide" неочевидно, что именно проход router должен подбирать комбинацию трасс, удовлетворяющую формуле длин CES.
Проход Route, судя по User's Guide, как раз и НЕ пытается подбирать вариант соотношений длин, описанный в CES, он просто решает задачу законнектить пины согласно схеме. И только.
Table 19.2. "Auto Route Pass Type" =>"Route attempts to establish all connections that were not achieved during previous passes."
А вот "Tune Delay " => "Attempts to tune all tuned pin/pairs in the design based on the Net Properties Delay Formulas and Match Length/Delay rules and the tolerance defined for each set.
Tuning patterns are generated based on the Tuning rules defined in Editor Control typically be adding these patterns to increase the length of traces until they are within tolerance"
То есть:
Проход Route создает трассы между пинами согласно принципиальной схеме, но-! не имеет никакого отношения к выполнению ограничений по длинам цепей;
Проход Tune добавляет недостающую длину к более коротким цепям серпентинами - (замечание: только если для серпентинов есть место).
А так как Route строит забор из переходных и трасс, тупо соединяя пины - все. После Route, не задумывающегося о правилах, Tune работать места нет и автороутер прекращает работу, хотя полно violation.
Пример - попытка развести CPU +SDRAM +FLASH.
Пробовал сначала используя Match lenght (все цепи, которые должны иметь одинаковую длину, имеют общий признак в колонке Match), результат - violation ;
Пробовал через формулу:
Введена переменная N;
Для цепи CLK (SDRAM) формула: =N;
Для всех прочих цепей формула: =N+/-20000um
Как я понимаю идею использования переменной - автороутер+tuner должны подобрать такую комбинацию трасс, в которой длина цепи CLK будет =N um; а все остальные цепи быть N+/- 20000um;
На неограниченной площади, в 4-х сигнальных слоях проходы Fanouts (Parts), Route (Parts, Effort 1-5), Tune (Tuned nets), автороутер завершают разводку всех цепей этих Parts меньше чем за минуту,
мгновение на Tune - и завершение работы. НО - все практически цепи - violation.
То что алгоритм Tune рабочий - очевидно, при наличии свободных площадей длины цепей подстраивает на ура.
Но ведь проблема-то в Route - он не предусматривает Tune!!
Есть ли идеи или слухи, как заставить AutoRouter итерационно перезапускать этап Route, с учетом информации о предыдущей неудачной (по violation) попытке?
(бесконечный цикл развести-удалить-развести неинтересен)
Пусть хоть месяц - но до выполнения требований CES? (типа brute force)
Если это принципиально невозможно -зачем оплачивают Xtreme Auto Router? (=Какие задачи решает Xtreme Auto Router?)