Nouveau dans la conception de PCB - pourquoi les composants de placement automatique n'existent-ils pas?


23

Le logiciel de conception de circuits que j'ai vu a la capacité de router automatiquement les traces, etc. sur un PCB.
Mais pourquoi ce logiciel n'a-t-il pas la capacité de placer automatiquement des composants sur un PCB, par exemple pour minimiser la taille totale de la carte?
Est-ce simplement trop compliqué pour être automatisé?


8
Les autorouteurs doivent être en mesure de placer de manière optimale les composants en fonction des contraintes (par exemple, "le bouton doit aller ici", "la LED peut être n'importe où dans cette zone"). Ils devraient également être en mesure de sélectionner les broches optimales à utiliser sur les pièces qui ont beaucoup de broches équivalentes (c'est-à-dire "utiliser n'importe quelle broche io qui a PWM"). Malheureusement, je n'en ai jamais vu un qui remplit l'une de ces fonctions. Peut-être un jour.
bigjosh

7
le placement (et l'orientation, l'échange de portes, l'échange de broches) est vraiment très important. C'est la chose la plus importante pour obtenir un bon routage. Je pense qu'un autoplacer intelligent devrait commencer par le placement schématique, à moins que le schéma ne soit l'une de ces abominations modernes "entourées de listes de réseau".
markrages

2
venant d'un arrière plan qui n'est pas du circuit, il me semble que le nid de rats devrait être suffisant pour disposer tous les composants de manière optimale, peut-être à certaines contraintes. La plupart des circuits réels sont-ils conçus plus manuellement que cela?
Adam

3
En bref, la disposition optimale des composants - même sans toutes les considérations qui en découlent étant un circuit réel et non idéal - est un problème CS très difficile. En fait, c'est une instance du problème des vendeurs ambulants, et en tant que telle, une solution optimale est irréalisable.
Nick Johnson

2
@ Gregd'Eon, je me demande la même chose. Sûrement avec plus de travail, les placeurs automatiques peuvent comprendre les rôles des bouchons de découplage et simuler le bruit du circuit, etc.
Adam

Réponses:


19

J'ai récemment conçu certains PCB et je vous suggère de NE PAS utiliser d'auto-placer ou d'auto-routeur pour votre produit final. (Proteus a un placeur automatique.)

Tout d'abord - Votre logiciel est aussi intelligent qu'un ver de terre en ce qui concerne le placement automatique ou le routage automatique. En d'autres termes, c'est stupide comme une pomme de terre.

Le routage automatique ne saurait pas quel emplacement vous donnera un meilleur motif de trace qui vous permettra non seulement de faire une conception efficace, mais aussi de minimiser le bruit dans le circuit. De même, le routage automatique ne sait pas que le fait de déplacer légèrement un composant vers la gauche ou la droite vous permettrait de router une piste d'une meilleure manière. Ces outils vous donneront juste un design correct selon le circuit. Mais quand il s'agit de performances réelles, les choses sont différentes.
Par exemple:

  • Les condensateurs de découplage doivent être physiquement proches du circuit intégré.
  • Il devrait y avoir des boucles dans la zone la moins fermée.
  • Le plan de masse doit être aussi solide que possible.
  • Aucun signal parasite ne doit être proche de votre oscillateur à cristal, etc.

Votre logiciel ne respectera pas ces concepts car ils ne sont pas mentionnés dans votre schéma. Vous ne saurez que lorsque vous aurez fabriqué le PCB et qu'il ne fonctionnera pas comme prévu tout le temps. Je ne dis pas que cela ne fonctionnera pas. Cela pourrait fonctionner, dans 90% des cas, mais vous devez également prendre ces 10% en considération.

Ma suggestion est que vous devriez apprendre certains concepts de conception de PCB et essayer de les placer et de les router vous-même. Vous pouvez toujours publier votre schéma et la disposition du tableau dans les forums et les experts vous donneront leur avis / suggestions.


5
+1 pour le ver de terre et la pomme de terre. Chaque fois que j'utilisais un placeur automatique et un autorouteur, j'avais fait les bits critiques et laissé le bit facile mais même c'était trop demander: 60% de la planche était placée et acheminée après le dernier passage. Mieux vaut tout faire nous-mêmes, sauf peut-être pour des conceptions énormes avec beaucoup d'espace libre.
Monsieur Mystère du

1
@ Monsieur - Oui, vous avez raison. Même moi, j'utilise un routeur automatique de temps en temps pour avoir une idée du routage et je termine les sections critiques. Cependant, j'utilise Eagle ces jours-ci et il n'a pas de placeur automatique.
Whiskeyjack

1
Typo dans mon commentaire ci-dessus: "pour les énormes conceptions LOW * requirements". De toute évidence, une fréquence numérique haute fréquence ne fonctionnera pas bien avec le routage automatique et le placement automatique ...
Mister Mystère

1
Je ne vois aucune raison théorique pour laquelle un routeur automatique ne pourrait pas prendre en compte toutes les contraintes et meilleures pratiques mentionnées ci-dessus lors du placement automatique de pièces. En fait, un auto-routeur idéal devrait être capable de trouver le placement optimal qui répond à ces objectifs mieux qu'un humain. C'est un problème difficile à être sûr, mais pas impossible et je parierais que bientôt nous commencerons à voir des routeurs automatiques basés sur le cloud avec des placeurs automatiques qui peuvent battre même les meilleurs humains.
bigjosh

1
@bigjosh - Votre commentaire est très logique. Un routage et un placement corrects ont quelques directives qui, si elles sont décomposées en une logique simple, devraient permettre aux ordinateurs de surpasser un humain. Il ne restera peut-être que des milliards de calculs - vérifier des milliers de cartes entièrement routées et trouver la solution optimale. Avec les systèmes basés sur le cloud, cela ne devrait pas être trop difficile. Espérons qu'un projet open source commencera bientôt pour en faire une réalité. Il pourrait être préférable que les humains d'une manière que les humains n'effectuent pas vraiment plusieurs itérations une fois qu'ils ont trouvé une solution de travail - du moins je ne le fais pas.
Whiskeyjack

13

Mon routeur a un placeur et un support pour les "chambres". Cela vous permet de dessiner des zones et d'affecter des pièces à des "pièces" à partir du schéma. Le placeur automatique les regroupera dans la pièce à laquelle la pièce est affectée. À peu près sûr qu'il prend en charge ce connecteur devrait également aller à cet emplacement. Il existe également un outil qui peut effectuer le placement de découplage automatique et la sélection / optimisation de pièces en fonction des résultats de la simulation. Ce n'est pas bon marché :) mais ça marche.

Le placeur automatique peut vous faire gagner un peu de temps en plaçant tout ensemble comme ça. Mais je préfère toujours le cross-probing du schéma au mode layout in place.

Tout comme le routeur automatique, vous obtenez ce que vous mettez en termes de contraintes et comment vous pouvez l'utiliser. Si vous essayez simplement d'utiliser votre routeur automatique sans le contraindre correctement, il route simplement partout. Lorsqu'il est correctement configuré, nous l'utilisons pour acheminer correctement les sections DDR de grande longueur correspondante. Sur des planches beaucoup plus grandes et plus denses, c'est presque une nécessité, et certainement une exigence pour un magasin de services de mise en page qui a besoin de vitesse. Cependant, ces choses ne valent pas la peine pour quelqu'un qui ne fait que quelques petites planches par an.


4
Quel est votre package CAD?
Monsieur Mystère du

5
La version haut de gamme d'Allegro, le découplage est de Sigrity maintenant détenue par cadence. J'aime aussi les pads. Ce nouveau routeur automatique basé sur un chemin censé ressembler à un routage manuel semble intéressant.
Some Hardware Guy

J'avais le pressentiment que ce pourrait être Cadence. Je l'ai utilisé pour une introduction à la conception de circuits intégrés, c'est en effet un excellent package et je pense que son autorouteur et son autoplacer pourraient simplement être efficaces si les contraintes sont correctement formulées (ce qui revient à l'expérience / à la formation).
Monsieur Mystère

Bien dit. Placer des pièces et acheminer n'est pas impossible, c'est juste beaucoup plus difficile et plus flou que la capture schématique. Tout d'abord, le schéma de circuit est bien en deçà d'une entrée complète pour placer automatiquement les pièces. Les boîtiers de circuits imprimés standard sont conçus pour le câblage, pas pour le placement automatique.
tomnexus

12

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.


10

En 1974-1975, j'ai travaillé dans le département Design Automation de Honeywell. Le problème n'a pas changé depuis:

  1. L'optimisation n'est pas faisable sur le plan informatique. Comme la plupart des problèmes d'optimisation globale, c'est NP-Complete, ce qui signifie que la complexité du calcul croît horriblement rapidement. Comme vous ne pouvez pas attendre un billion d'années (ou pire), nous pouvons considérer la solution optimale comme impossible à trouver.
  2. Le programme ne sait pas exactement ce que vous voulez optimiser. Regroupement logique selon votre modèle d'organisation du circuit? Longueur de trace? Espace conseil? Couplage parasite? Délai de propagation? Dissipation thermique (température max)? Purge thermique des sections de puissance supérieure aux composants sensibles à la température? Emission RF? Bruit? Propriétés mécaniques (par exemple, placer des composants plus massifs près des supports mécaniques? Caractéristiques de service, comme ne pas rapprocher les connecteurs embarqués que les doigts humains ne peuvent gérer? Contraintes externes, comme l'emplacement des connecteurs, ou s'insérer dans l'espace disponible (pas de conflit avec étuis, ventilateurs, etc.)

Il existe des approches basées sur l'IA pour traiter de tels problèmes. Cependant, à un moment donné, il est plus facile pour le concepteur d'essayer des choses et d'obtenir des commentaires du logiciel sur les critères de conception qui l'intéressent. Dire aux logiciels d'IA tout ce que vous savez peut être une tâche sans fin et ingrate. En fin de compte, le logiciel doit vous satisfaire, vous, le concepteur, et votre ensemble de compromis.

Le meilleur moyen pour que cela fonctionne, alors, est de le voir comme une collaboration entre le concepteur et le logiciel, le concepteur prenant les décisions finales. Le logiciel peut fournir des informations sur les propriétés, et peut suggérer des moyens d'améliorer une propriété d'intérêt, et aider à explorer les conséquences d'un changement.

Mais je prédis que nous ne verrons jamais, jamais, une mise en page entièrement automatisée - tant que des humains regarderont et se soucieront du résultat.


Voilà pour la singularité ...
Peter Mortensen

@PeterMortensen Les opinions humaines n'auront plus d'importance après la singularité.
Spehro Pefhany

1
Je pense que le point 2 est vraiment la seule partie pertinente de la réponse. Il existe de nombreux algorithmes qui peuvent résoudre très rapidement des problèmes NP-complets, avec des tailles de problème importantes, à un degré "assez bon" avec un coût en temps très acceptable, assez souvent étant à 2-3% de l'optimum.
whatsisname

C'est un bon point sur "assez bien"! Bien que pour être complètement précis sur le plan technique, nous devons soigneusement qualifier le mot «résoudre» (comme vous l'avez fait). Cependant, le coût du processeur et du stockage était à l'époque un énorme problème. Mais même si la taille des problèmes a augmenté, notre capacité de calcul s'est encore accrue.
Bob Kerns

9

Mon logiciel a un placeur. Je l'ai couru une fois juste pour voir ce qui allait se passer. Il est allé rugir à travers la planche et a obtenu tous les composants dessus. Quand je l'ai regardé, les pièces étaient PARTOUT. L'IC était dans un coin, et son capuchon de découplage était dans l'autre. Le chemin critique zigzague d'avant en arrière sur toute la ligne.

Mon point ici est que le placement est la partie la plus difficile de la mise en page. Il y a d'abord les contraintes mécaniques. Le ME / designer industriel veut que votre connecteur / interrupteur / pot / LED / tout autre composant d'interface externe se détache de la carte à un certain endroit. Certains composants peuvent être trop hauts pour se trouver dans certaines zones à l'intérieur du boîtier. Il peut y avoir des parties du circuit qui doivent garder un certain dégagement pour l'isolement.

Le logiciel peut être configuré pour gérer certains de ces facteurs, mais il ne fera jamais un aussi bon travail ou ne pourra voir visuellement les problèmes de la même manière qu'un humain. Dans un monde parfait, si vous obtenez le bon placement, effectuez le routage de l'alimentation, de la terre et du chemin critique, un passage rapide de l'autorouteur devrait être en mesure de terminer la mise en page.


J'aime cette réponse, bien qu'il semble toujours que le logiciel ne soit pas à la hauteur de ce qu'il devrait être.
Adam

6
@Adam Au fur et à mesure que vous acquérez de l'expérience, vous comprendrez mieux. Le processus de placement est incroyablement complexe et le nid d'un rat ne raconte qu'une partie de l'histoire. Prenons l'exemple des bouchons de découplage, comment le placeur est-il censé savoir où les mettre? En ce qui le concerne, ces bouchons peuvent tous être placés ensemble dans un emplacement arbitraire.
Matt Young

2
Les contraintes de distance semblent être une option envisageable pour cela.
Tim Seguine

Quel est le nom de votre logiciel?
Daniele Testa

2

J'ai déjà utilisé des auto-placers, et ils sont en effet aussi stupides qu'un tas de rochers. La seule chose pour laquelle vous pouvez les utiliser judicieusement est de démêler une pile d'empreintes de pas qui ont toutes été importées dans votre planche au même endroit; tout autre chose est tout simplement trop demander.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.