Quand dois-je choisir d’utiliser la fonction Autoroute du logiciel de conception de circuits imprimés Altium designer et quand dois-je effectuer un routage à la main ?


"Ne faites JAMAIS confiance à l'autorouteur"

Achetez le tshirt. Live by it.


main-qimg-70bbe429d9bf5906e78f20245c6d928e

En près de 30 ans d'utilisation - ou du moins de tentative d'utilisation - de la fonction Autoroute dans Altium/Protel (et ils ont eu quelques moteurs d'autoroute installés au fil des ans, dont un ou deux provenant de sociétés qu'ils ont acquises), au mieux, j'ai constamment été très déçu par les résultats, et au pire, le résultat est complètement inutilisable.


On nous a promis des moteurs autorouteurs basés sur l'IA/les réseaux neuronaux depuis la seconde moitié des années 1990, mais jusqu'à présent, cela n'a jamais tenu ses promesses. J'ai entendu parler de certains moteurs autorouteurs dans d'autres produits qui semblent plus prometteurs, tirant parti de la technologie moderne de l'IA, mais je ne les ai pas encore expérimentés personnellement. En fin de compte, un jour, il y aura probablement un autorouteur de PCB qui surpasse même un concepteur de PCB expérimenté, mais nous n'en sommes pas encore là.

Le défi pour un autorouteur se présente en plusieurs parties :

  • pour obtenir les meilleurs résultats d'un autorouteur, vous devez être très explicite et exhaustif dans la configuration des règles de conception de la carte : créer des classes de composants, des classes de réseaux, des affectations multicanaux le cas échéant, et leur attribuer des règles, telles que la largeur et l'espacement des pistes (qui peuvent à leur tour être régies par des réglementations spécifiques qui s'appliquent dans l'application/l'industrie à laquelle votre carte doit être conforme), prendre en compte la diaphonie, et appliquer toute règle de contrôle d'impédance & de longueur de piste pour les signaux à grande vitesse ou à paire différentielle, le cas échéant. cela prend beaucoup de temps - parfois dans les cartes compliquées autant de temps que le routage manuel vous-même, ergo, aucun avantage à utiliser l'autorouteur.
  • tout cela après avoir placé au moins les composants clés qui ont typiquement des positions nécessairement fixes, comme les connecteurs, les affichages/LED, respecté les différentes hauteurs maximales des composants à divers endroits sur le PCB par rapport à ce que le PCB vit à l'intérieur (certaines parties du PCB pourraient n'avoir qu'un dégagement en hauteur de Xmm parce qu'une partie de la zone du PCB se trouve à côté d'un autre composant non-PCB à l'intérieur du boîtier du produit, par exemple).
  • À la fin des années 90, Protel (avant que la société ne soit rebaptisée Altium), leur " autorouteur basé sur la forme " basé sur un réseau neuronal pouvait réellement déplacer et faire pivoter des composants et pousser des sections entières de routage pour débloquer et faire place à de nouvelles routes. c'était une grande vision, produisant parfois des résultats impressionnants dans des circonstances idéales, mais elle n'a jamais vraiment " réussi " pour la plupart des conceptions du monde réel.
  • si vous ne saisissez pas TOUTES les règles de conception, même si beaucoup de ces règles sont ce qu'un concepteur de PCB expérimenté fait " automatiquement " sans avoir besoin de les entrer dans la conception du PCB, les chances que l'autorouteur fasse quelque chose que vous ne voulez pas augmentent de façon exponentielle ; "Oh, merde, ouais, ce régulateur de tension buck à découpage a besoin d'une zone de boucle de l'interrupteur d'alimentation, de la diode de capture et du capuchon de filtre pour rester vraiment serré (sinon les performances pourraient être merdiques, ou même ne pas fonctionner du tout, et rayonner comme un soleil et je vais échouer aux tests CEM)" - AFAIK l'autorouteur Altium n'a aucun concept de minimisation de la zone de boucle d'un chemin de circuit spécifique.

Il est possible d'utiliser l'autorouteur pour des tâches spécifiques au sein de la conception globale. Par exemple, une carte sur laquelle j'ai travaillé l'année dernière et pour laquelle j'avais un délai serré pour la terminer, avait encore 80 et quelques signaux " non critiques " à faible vitesse, à faible tension et à faible puissance, avec une largeur et un espacement de piste standard applicables, qui sillonnaient le PCB, même après avoir routé manuellement tout le reste. J'ai donc donné une chance au routeur automatique. Il m'a fallu une demi-douzaine de relances de l'autorouteur, en ajustant sa configuration à chaque fois, pour qu'il réalise la plupart - mais pas toutes - des routes, et même alors, j'ai encore dû passer des heures à nettoyer après lui, à réparer les routes "stupides" qui démentent la stupidité de l'autorouteur. Et, j'ai découvert que le moteur actuel de l'autorouteur d'Altium est 'aveugle' aux polygones placés manuellement - il achemine béatement ses pistes tout droit à travers eux comme si le polygone n'était même pas là - srslywtf !?

Dans les années 90 & 00, lorsque vous aviez de grands bus d'adresses et de données de 16 ou 32 bits entre un microprocesseur et ses puces RAM ou ROM/Flash, et pas particulièrement à haute vitesse, et à l'époque où les temps de montée/descente des signaux n'étaient pas devenus si courts et transformaient "tout" en un cauchemar à haute vitesse, par exemple, l'autorouteur pouvait être pratique pour acheminer ces types de signaux de bus d'adresses et de données. Ces jours, où une grande partie de la conception de PCB était rarement plus difficile que de simplement "joindre les points" de quelque manière que ce soit, sont révolus, à moins que vous ne conceviez des ordinateurs rétro.

Enfin, les néophytes s'enthousiasment pour les autorouteurs pour diverses raisons, et ont tendance à s'appuyer sur eux comme un moyen de compenser un manque d'expérience. C'est juste une idée totalement mauvaise - ils n'apprendront pas grand-chose en essayant d'utiliser un autorouteur, parce que l'autorouteur lui-même donne de si mauvais exemples de la façon de router !

Ce à quoi Altium a consacré des tas d'efforts de développement ces derniers temps, c'est la fonction 'ActiveRoute', grâce à laquelle vous sélectionnez un groupe de pistes - disons, un bus de mémoire - puis tracez un chemin d'une largeur appropriée, et vous, le concepteur, tracez le chemin global que ce bus doit emprunter, et le moteur ActiveRoute va alors tracer toutes les pistes, jusqu'à les rapprocher de leurs points d'extrémité cibles. Vous pouvez tracer ce chemin avec votre cerveau humain qui connaît la vue d'ensemble et qui a en tête la plupart, sinon la totalité, des exigences de conception, même si elles ne sont pas capturées dans les règles de conception, et réduire considérablement le temps de routage manuel. Pour le temps qu'il faut pour acheminer 1 ou 2 signaux, vous pouvez en faire 10, 20, 30, tout à la fois. C'est une excellente utilisation de la technologie de routeur semi-automatique.