Une chose que vous ne considérez pas est qu'un schéma ne contient pas suffisamment d'informations pour disposer correctement un tableau .
Fondamentalement, la disposition des PCB nécessite une prise en compte et une adaptation pour quelques dizaines d'exigences de disposition par pièce , dont aucune n'est codifiée dans le schéma. Considérez uniquement les condensateurs de dérivation. Pour qu'un système automatisé place correctement le condensateur de dérivation pour chaque composant, vous devez disposer de directives supplémentaires sur le schéma qui dictent à l'autorouteur que la trace entre les deux nœuds doit être inférieure à une certaine longueur.
Vraisemblablement, vous auriez alors besoin de directives supplémentaires pour coder la priorité de la minimisation de la longueur pour divers réseaux, quelque chose pour dicter les paires différentielles / l'impédance contrôlée, les traces de garde (si nécessaire), etc.
Fondamentalement, il existe de nombreuses variables supplémentaires qui déterminent le placement, qui ne sont généralement pas codées du tout dans les documents schématiques / ratsnest.
De plus, même si vous supposez que vous avez toutes les contraintes de conception ci-dessus, la taille de l'espace problématique pour une mise en page commune est énorme . C'est l'équivalent d'essayer de résoudre une équation avec des milliers d'entrées, où chaque entrée a un effet non linéaire différent sur toutes les autres. En effet, le problème est complètement insoluble du point de vue de la force brute. Toute solution doit donc impliquer une sorte de mécanisme heuristique, qui a ses propres complexités.
En réalité, la principale raison pour laquelle il n'y a pas au moins de meilleures autorouteurs est qu'il n'y a tout simplement pas de marché. Le marché de l'EDA est relativement petit par rapport à de nombreux autres marchés de logiciels spécialisés et de niche, et même le meilleur autorouteur n'a jamais approché une véritable mise en page par un humain réel.
Quand au milieu d'une mise en page particulièrement ennuyeuse, j'ai généralement quelques fantasmes d'essayer de concevoir mon propre autorouteur, en faisant quelque chose avec des champs vectoriels et un recuit simulé, mais même cela n'aborderait qu'un optimum local, plutôt qu'une mise en page optimale générale.