Una cosa che non stai considerando è che uno schema non contiene abbastanza informazioni per disporre correttamente una scheda .
Fondamentalmente, il layout del PCB richiede considerazione e adattamento per alcune dozzine di requisiti di layout per parte , nessuno dei quali è codificato nello schema. Considera solo i condensatori di bypass. Per avere un sistema automatizzato che posiziona correttamente il condensatore di bypass per ciascun componente, è necessario disporre di alcune direttive aggiuntive sullo schema che dettano all'autorouter che la traccia tra i due nodi deve essere inferiore a una certa lunghezza.
Presumibilmente, avresti quindi bisogno di ulteriori direttive per codificare la priorità della minimizzazione della lunghezza per varie reti, qualcosa per dettare coppie differenziali / impedenza controllata, tracce di guardia (se necessario), ecc ...
Fondamentalmente, ci sono molte altre variabili che guidano il posizionamento che di solito non sono codificate nei documenti schematici / ratsnest.
Inoltre, anche se si presume di avere tutti i vincoli di progettazione di cui sopra, la vastità dello spazio problematico per un layout comune è enorme . È l'equivalente di cercare di risolvere un'equazione con migliaia di input, in cui ogni input ha un effetto diverso, non lineare su tutti gli altri. In effetti, il problema è completamente intrattabile dal punto di vista della forza bruta. Qualsiasi soluzione deve quindi comportare una sorta di meccanismo euristico, che ha le sue complessità.
Realisticamente, la ragione principale per cui non ci sono almeno autorouter migliori è che non c'è proprio mercato. Il mercato EDA è relativamente piccolo rispetto a molti altri mercati di nicchia, per scopi speciali e persino il miglior autorouter non si avvicinerà mai a un layout reale da parte di un vero essere umano.
Quando sono nel mezzo di un layout particolarmente noioso, di solito ho alcune fantasie di provare a progettare il mio autorouter, facendo qualcosa con campi vettoriali e ricottura simulata, ma anche questo si avvicinerebbe solo a un ottimale locale, piuttosto che a un layout ottimale generale.