Nuevo en el diseño de PCB: ¿por qué no existen componentes de colocación automática?

23

El software de diseño de circuitos que he visto tiene la capacidad de enrutar automáticamente trazas, etc. en una PCB.
Pero, ¿por qué este software no tiene la capacidad de colocar automáticamente componentes en una PCB para minimizar el tamaño total de la placa?
¿Es esto demasiado complicado para ser automatizado?

Adán
fuente
8
Los enrutadores automáticos deben poder colocar de manera óptima los componentes en función de las restricciones (es decir, "el botón debe ir aquí", "el LED puede estar en cualquier lugar de esta área"). También deberían poder seleccionar los pines óptimos para usar en piezas que tienen muchos pines equivalentes (es decir, "usar cualquier pin io que tenga PWM"). Desafortunadamente, nunca he visto uno que realice alguna de estas funciones. Tal vez algún día.
bigjosh
77
la colocación (y orientación, intercambio de puertas, intercambio de clavijas) es realmente muy importante. Es lo más importante para obtener una buena ruta. Creo que un autoplacer inteligente debería comenzar desde la ubicación esquemática, a menos que el esquema sea una de esas modernas "cajas rodeadas de abominaciones de netlists".
markrages
2
viniendo de un fondo que no es diseño de circuito, me parece que las ratas anidan deberían ser suficientes para diseñar todos los componentes de manera óptima, quizás con algunas limitaciones. ¿La mayoría de los circuitos reales están diseñados más manualmente que esto?
Adam
3
En resumen, el diseño óptimo de los componentes, incluso sin todas las consideraciones derivadas de ser un circuito real, no ideal, es un problema CS muy difícil. De hecho, es una instancia del problema del vendedor ambulante y, como tal, una solución óptima es inviable.
Nick Johnson
2
@ Gregd'Eon Me pregunto lo mismo. Seguramente con más trabajo auto-colocadores pueden entender el papel de los condensadores de desacoplo, y el ruido del circuito simular etc
Adam

Respuestas:

19

He estado diseñando algunos PCB recientemente y te sugiero que NO uses auto-placer o auto-router para tu producto final. (Proteus tiene auto placer).

Antes que nada: su software es tan inteligente como una lombriz de tierra cuando se trata de colocación automática o enrutamiento automático. En otras palabras, es tonto como una papa.

El enrutamiento automático no sabría qué ubicación le dará un mejor patrón de rastreo que le permitirá no solo hacer un diseño eficiente sino también minimizar el ruido en el circuito. Del mismo modo, el enrutamiento automático no sabe que desplazar un componente ligeramente hacia la izquierda o hacia la derecha le permitiría enrutar una pista de una mejor manera. Estas herramientas solo le darán un diseño correcto de acuerdo con el circuito. Pero cuando se trata del rendimiento en el mundo real, las cosas son diferentes.
Por ejemplo:

  • Los condensadores de desacoplamiento deben estar físicamente cerca del CI.
  • Debe haber bucles del área menos cerrada.
  • El plano de tierra debe ser lo más sólido posible.
  • No debe haber señales interferentes cerca de su oscilador de cristal, etc.

Su software no respetará estos conceptos porque no se mencionan en su esquema. Solo lo sabrá cuando haya fabricado la PCB y no funcione como se espera todo el tiempo. No estoy diciendo que no funcionará. Podría funcionar, el 90% de las veces, pero también debe tener en cuenta ese 10%.

Mi sugerencia es que debe aprender algunos conceptos de diseño de PCB e intentar colocar y enrutar por su cuenta. Siempre puede publicar su diseño esquemático y de tablero en foros y los expertos le darán su opinión / sugerencias.

Whiskyjack
fuente
55
+1 para la lombriz de tierra y la papa. Cada vez que utilicé el auto placer y el enrutador automático, hice los bits críticos y lo dejé fácil, pero incluso eso era demasiado pedir: el 60% del tablero fue colocado y enrutado después del pase final. Es mejor hacer todo nosotros mismos, excepto quizás por diseños de grandes requisitos con mucho espacio libre.
Señor Mystère
1
@ Señor - Sí, tienes razón. Incluso uso el enrutador automático de vez en cuando para tener una idea del enrutamiento y termino las secciones críticas. Sin embargo, estoy usando Eagle en estos días y no tiene auto placer.
Whiskeyjack
1
Error tipográfico en mi comentario anterior: "para grandes diseños de requisitos BAJOS *". Obviamente, una frecuencia digital de alta frecuencia no funcionará bien con enrutamiento automático y colocación automática ...
Mister Mystère
1
No veo ninguna razón teórica por la cual un enrutador automático no pueda tener en cuenta todas las restricciones y las mejores prácticas mencionadas anteriormente al colocar piezas automáticamente. De hecho, un enrutador automático ideal debería poder encontrar la ubicación óptima que cumpla con estos objetivos mejor que un ser humano. Es un problema difícil de asegurar, pero no imposible y apuesto a que pronto comenzaremos a ver enrutadores automáticos basados ​​en la nube con posicionadores automáticos que pueden vencer incluso a los mejores humanos.
bigjosh
1
@bigjosh: tu comentario tiene mucho sentido. El enrutamiento y la colocación correctos tienen algunas pautas que, si se desglosan en una lógica simple, deberían permitir que las computadoras superen a un humano. Todo lo que quedará son tal vez trillones de cálculos: verificar miles de tableros completamente enrutados y encontrar la solución óptima. Con los sistemas basados ​​en la nube, eso no debería ser demasiado difícil. Esperemos que algún proyecto de código abierto comience pronto para hacer esto realidad. Podría ser mejor que los humanos de una manera en que los humanos no realicen múltiples iteraciones una vez que hayan encontrado una solución que funcione, al menos yo no.
Whiskeyjack
13

Mi enrutador tiene un placer y soporte para "habitaciones". Eso le permite dibujar áreas y asignar partes a "habitaciones" desde el esquema. El auto placer los agrupará en la habitación a la que está asignada la pieza. Bastante seguro de que tiene soporte para este conector también debería ir a esta ubicación. También hay una herramienta que puede hacer la colocación de desacoplamiento automático y la selección / optimización de piezas en función de los resultados de la simulación. Sin embargo, no es barato :) pero funciona.

El auto placer puede ahorrarle un poco de tiempo al colocar todo junto de esa manera. Pero todavía prefiero el sondeo cruzado del esquema al modo de diseño en el lugar.

Al igual que el enrutador automático, obtienes lo que pones en términos de restricciones y qué tan bien puedes usarlo. Si solo intentas usar tu enrutador automático sin restringirlo correctamente, solo se enruta a todas partes. Cuando se configura correctamente, lo usamos para enrutar correctamente secciones DDR de gran longitud coincidente. En tableros mucho más grandes y densos es casi una necesidad, y ciertamente un requisito para una tienda de servicios de diseño que necesita la velocidad. Sin embargo, estas cosas pueden no valer la pena para alguien que solo hace unas pocas tablas pequeñas al año.

Some Hardware Guy
fuente
44
¿Cuál es tu paquete CAD?
Señor Mystère
55
La versión de gama alta de Allegro, el desacoplamiento es de Sigrity ahora propiedad de cadencia. A mí también me gustan las almohadillas. Ese nuevo enrutador automático basado en rutas que se supone que se parece a un enrutamiento manual parece interesante.
Some Hardware Guy
Tenía el presentimiento de que esta podría ser Cadencia. Lo utilicé para una introducción al diseño de circuitos integrados, de hecho es un paquete excelente y creo que su enrutador automático y su capa automática podrían ser eficientes si las restricciones se formulan correctamente (lo que se reduce a experiencia / capacitación).
Mister Mystère
Bien dicho. Colocar piezas y enrutamiento no es imposible, es mucho más difícil y difuso que la captura esquemática. En primer lugar, el diagrama del circuito es muy inferior a una entrada completa para colocar piezas automáticamente. Los paquetes de PCB normales están diseñados para el cableado, no para la colocación automática.
tomnexus
12

Una cosa que no está considerando es que un esquema no contiene suficiente información para diseñar un tablero correctamente .

Básicamente, el diseño de PCB requiere consideración y adaptación para unas pocas docenas de requisitos de diseño por parte , ninguno de los cuales está codificado en el esquema. Considere solo los condensadores de derivación. Para que un sistema automatizado coloque correctamente el condensador de derivación para cada componente, necesitaría tener algunas directivas adicionales en el esquema que dicten al enrutador automático que la traza entre los dos nodos debe estar por debajo de cierta longitud.
Presumiblemente, necesitaría más directivas para codificar la prioridad de minimización de longitud para varias redes, algo para dictar pares diferenciales / impedancia controlada, trazas de protección (si es necesario), etc.
Básicamente, hay muchas variables adicionales que impulsan la ubicación que generalmente no están codificadas en absoluto en documentos esquemáticos / ratsnest.

Además, incluso si asume que tiene todas las restricciones de diseño anteriores, el tamaño del espacio del problema para un diseño común es enorme . Es el equivalente a tratar de resolver una ecuación con miles de entradas, donde cada entrada tiene un efecto no lineal diferente en todas las demás. Efectivamente, el problema es completamente intratable desde una perspectiva de fuerza bruta. Por lo tanto, cualquier solución debe involucrar algún tipo de mecanismo heurístico, que tiene sus propias complejidades.


Siendo realistas, la razón principal por la que no hay al menos mejores rutas automáticas es que simplemente no hay mercado. El mercado de EDA es comparativamente pequeño en comparación con muchos otros mercados de software de nicho y de propósito especial, e incluso el mejor enrutador automático nunca se acercará a un diseño real por un humano real.

Cuando estoy en medio de un diseño particularmente aburrido, por lo general tengo algunas fantasías de tratar de diseñar mi propia ruta automática, haciendo algo con campos vectoriales y recocido simulado, pero incluso eso solo se acercaría a un diseño óptimo local, en lugar de un diseño óptimo general.

Connor Wolf
fuente
10

En 1974-1975 trabajé en el departamento de automatización de diseño en Honeywell. El problema no ha cambiado desde entonces:

  1. No es computacionalmente factible optimizar. Como la mayoría de los problemas de optimización global, es NP-Complete, lo que significa que la complejidad del cálculo crece horriblemente rápido. Como no puede esperar un billón de años (o peor), podemos considerar que la solución óptima es imposible de encontrar.
  2. No está claro para el programa qué es lo que desea optimizar. ¿Agrupación lógica según su modelo de organización del circuito? Longitud del rastro? Área de la junta? Acoplamiento parasitario? ¿Retardo de propagación? ¿Disipación térmica (temperatura máxima)? ¿Purga térmica de secciones de mayor potencia a componentes sensibles a la temperatura? Emisión de RF? ¿Ruido? Propiedades mecánicas (por ejemplo, ¿colocar componentes más masivos cerca de los soportes mecánicos? ¿Características de servicio, como no colocar los conectores integrados más cerca de lo que los dedos humanos pueden manejar? estuches, ventiladores, etc.)

Existen enfoques basados ​​en IA para tratar problemas como este. Sin embargo, en algún momento, es más fácil para el diseñador probar cosas y obtener comentarios del software sobre los criterios de diseño en los que está interesado. Decirle al software de IA todo lo que sabes puede ser una tarea interminable e ingrata. En última instancia, el software tiene que satisfacerlo a usted, al diseñador y a su conjunto de compensaciones.

La mejor manera de que esto funcione, entonces, es verlo como una colaboración entre el diseñador y el software, con el diseñador tomando las decisiones finales. El software puede proporcionar información sobre las propiedades y puede sugerir formas de mejorar una propiedad de interés y ayudar a explorar las consecuencias de un cambio.

Pero predigo que nunca, nunca, veremos un diseño totalmente automatizado, siempre que tengamos humanos mirando y preocupados por el resultado.

Bob Kerns
fuente
Demasiado para la singularidad ...
Peter Mortensen
@PeterMortensen Las opiniones humanas no importan después de la Singularidad.
Spehro Pefhany
1
Creo que el punto 2 es realmente la única parte relevante de la respuesta. Hay muchos algoritmos que pueden resolver muy rápidamente los problemas de NP completo, con tamaños de problema significativos, en un grado "suficientemente bueno" con un costo de tiempo muy aceptable, lo suficientemente bueno como para estar dentro del 2-3% del óptimo.
whatsisname
Ese es un buen punto sobre "lo suficientemente bueno"! Aunque para ser completamente técnicamente exactos, debemos calificar cuidadosamente la palabra "resolver" (como lo hizo). Sin embargo, el costo en CPU y almacenamiento fue un gran problema en ese entonces. Pero a pesar de que el tamaño del problema ha crecido, nuestra capacidad computacional ha crecido aún más.
Bob Kerns
9

Mi software tiene un placer. Lo ejecuté una vez solo para ver qué pasaría. Rip rugió a través del tablero, y puso todos los componentes en él. Cuando lo miré, las partes estaban POR TODAS PARTES. El IC estaba en una esquina, y su tapa de desacoplamiento estaba en la otra. La ruta crítica zigzagueaba de un lado a otro en todos los ámbitos.

Mi punto aquí es que la ubicación es la parte más difícil del diseño para hacerlo bien. Primero están las restricciones mecánicas. El diseñador industrial / ME quiere que su conector / interruptor / pot / LED / cualquier otro componente de interfaz externo salga de la placa en un lugar determinado. Algunos componentes pueden ser demasiado altos para estar en ciertas áreas dentro del gabinete. Puede haber partes del circuito que necesiten mantener un cierto espacio libre para el aislamiento.

El software se puede configurar para manejar algunos de estos factores, pero nunca hará un trabajo tan bueno ni podrá ver los problemas visualmente como lo hace un ser humano. En un mundo perfecto, si obtiene la ubicación correcta, realiza el enrutamiento de alimentación, tierra y ruta crítica, un paso rápido del enrutador automático debería ser capaz de finalizar el diseño.

Matt Young
fuente
Me gusta esta respuesta, aunque todavía parece en cierta medida que el software no está a la altura del trabajo que debería ser.
Adam
66
@ Adam A medida que adquieras más experiencia, entenderás mejor. El proceso de colocación es increíblemente complejo, y el nido de ratas solo cuenta una parte de la historia. Tomemos las tapas de desacoplamiento, por ejemplo, ¿cómo se supone que el placer sabe dónde colocarlas? En lo que a él respecta, esas tapas se pueden colocar juntas en una ubicación arbitraria.
Matt Young
2
Las restricciones de distancia parecen una opción factible para eso.
Tim Seguine
¿Cómo se llama su software?
Daniele Testa
2

He usado auto-colocadores antes, y de hecho son tan tontos como un montón de rocas. Casi lo único para lo que puede usarlos es desenredar una pila de huellas que todas fueron importadas a su tablero en el mismo lugar; cualquier otra cosa es simplemente pedir demasiado.

ThreePhaseEel
fuente