Novo no design de placas de circuito impresso - por que não existem componentes de colocação automática?

23

O software de design de circuitos que vi tem a capacidade de rotear automaticamente traços etc. em uma PCB.
Mas por que esse software não tem a capacidade de colocar componentes automaticamente em uma placa de circuito impresso para minimizar o tamanho total da placa?
Isso é complicado demais para ser automatizado?

Adão
fonte
8
Os autoresouters devem poder posicionar os componentes de maneira ideal com base nas restrições (por exemplo, "o botão deve ir aqui", "o LED pode estar em qualquer lugar nesta área"). Eles também devem poder selecionar os pinos ideais para usar em peças com muitos pinos equivalentes (por exemplo, "use qualquer pino io que possua PWM"). Infelizmente, nunca vi um que execute uma dessas funções. Talvez algum dia.
bigjosh
7
posicionamento (e orientação, troca de porta, troca de pinos) é realmente muito importante. É a coisa mais importante para obter um bom roteamento. Eu acho que um autoplacer inteligente deve começar a partir do posicionamento esquemático, a menos que o esquemático seja uma daquelas abominações modernas de "caixas cercadas por netlists".
markrages
2
vindo de um plano de fundo que não é um projeto de circuito, parece-me que os ninhos de ratos devem ser suficientes para organizar todos os componentes de maneira ideal, talvez com algumas restrições. Os circuitos reais são projetados mais manualmente do que isso?
Adam
3
Em resumo, a disposição ideal de componentes - mesmo sem todas as considerações resultantes de ser um circuito real e não ideal - é um problema de CS muito difícil. De fato, é uma instância do Problema do Vendedor Viajante e, como tal, uma solução ideal é inviável.
22615 Nick Johnson (
2
@ Gregd'Eon Eu me pergunto o mesmo. Certamente com mais trabalho auto-colocadores podem entender os papéis de desacoplamento bonés, e ruído do circuito simular etc
Adam

Respostas:

19

Estive projetando alguns PCBs recentemente e sugiro que você NÃO use o auto-placer ou auto-router no seu produto final. (Proteus tem auto placer.)

Primeiro de tudo - Seu software é tão inteligente quanto uma minhoca quando se trata de posicionamento ou roteamento automático. Em outras palavras, é burro como uma batata.

O roteamento automático não saberia qual posicionamento obterá um melhor padrão de rastreamento, que permitirá não apenas criar um design eficiente, mas também minimizar o ruído no circuito. Da mesma forma, o roteamento automático não sabe que deslocar um componente levemente para a esquerda ou direita permitiria rotear uma trilha de uma maneira melhor. Essas ferramentas fornecerão apenas um design correto de acordo com o circuito. Mas quando se trata de desempenho no mundo real, as coisas são diferentes.
Por exemplo:

  • Os capacitores de desacoplamento devem estar fisicamente próximos do IC.
  • Deve haver loops de menor área fechada.
  • O plano de aterramento deve ser o mais sólido possível.
  • Nenhum sinal de interferência deve estar próximo ao seu oscilador de cristal, etc.

Seu software não respeitará esses conceitos porque eles não são mencionados no seu esquema. Você saberá apenas quando tiver fabricado o PCB e ele não funcionará conforme o esperado o tempo todo. Não estou dizendo que não vai funcionar. Pode funcionar 90% das vezes, mas você deve levar esses 10% em consideração também.

Minhas sugestões são que você aprenda alguns conceitos de design de PCB e tente colocar e rotear por conta própria. Você sempre pode postar o seu esquema e o layout do fórum em fóruns e os especialistas darão sua opinião / sugestões.

Whiskyjack
fonte
5
+1 para a minhoca e a batata. Toda vez que eu usava o auto placer e autorouter, eu fazia os bits críticos e deixava o mais fácil, mas mesmo isso era pedir demais: 60% do quadro era colocado e roteado após o passe final. Melhor fazer tudo sozinhos, exceto talvez para projetos de requisitos enormes, com bastante espaço livre.
Mister Mystère
1
@Mister - Sim, você está certo. Até eu uso o roteador automático de vez em quando para ter uma idéia do roteamento e finalizar as seções críticas. No entanto, estou usando o Eagle hoje em dia e ele não possui sinalizador automático.
precisa saber é o seguinte
1
Erro de digitação no meu comentário acima: "para grandes projetos de requisitos LOW *". Obviamente, uma freqüência digital de alta frequência não terá um bom desempenho com autorouting e autoplacing ...
Senhor Mystère
1
Não vejo nenhuma razão teórica para um roteador automático não levar em consideração todas as restrições e práticas recomendadas acima ao colocar peças automaticamente. De fato, um roteador automático ideal deve ser capaz de encontrar o posicionamento ideal que atenda melhor a esses objetivos do que uma lata humana. É um problema difícil, com certeza, mas não impossível, e eu apostaria que em breve começaremos a ver roteadores automáticos baseados em nuvem com posicionadores automáticos que podem derrotar até os melhores humanos.
bigjosh
1
@bigjosh - Seu comentário faz muito sentido. O roteamento e o posicionamento corretos têm algumas diretrizes que, se divididas em lógica simples, devem permitir que os computadores superem o desempenho humano. Tudo o que resta são talvez trilhões de cálculos - verificando milhares de placas totalmente roteadas e descobrindo a solução ideal. Com sistemas baseados em nuvem, isso não deve ser muito difícil. Vamos esperar que algum projeto de código aberto comece em breve para tornar isso realidade. Pode ser melhor do que os seres humanos de uma maneira que os seres humanos não realizam várias iterações depois de encontrarem uma solução funcional - pelo menos eu não.
Whiskeyjack
13

Meu roteador possui um localizador e suporte para "salas". Isso permite que você desenhe áreas e atribua partes a "salas" do esquema. O localizador automático os agrupará na sala à qual a peça está atribuída. A certeza de que ele tem suporte para esse conector também deve ir para esse local. Há também uma ferramenta que pode realizar o posicionamento de desacoplamento automático e a seleção / otimização de peças com base nos resultados da simulação. Não é barato :), mas funciona.

O auto placer pode economizar um pouco de tempo, colocando tudo junto assim. Mas ainda prefiro a sondagem cruzada do esquema ao layout no modo local.

Assim como o roteador automático, você obtém o que coloca em termos de restrições e quão bem você pode usá-lo. Se você apenas tentar usar o seu roteador automático sem restringi-lo corretamente, ele será roteado para qualquer lugar. Quando configurado corretamente, o usamos para rotear corretamente seções DDR de grandes tamanhos correspondentes. Em placas muito maiores e mais densas, é quase uma necessidade e certamente um requisito para uma loja de serviços de layout que precise da velocidade. No entanto, essas coisas podem não valer a pena para alguém que faz apenas algumas pequenas pranchas por ano.

Um cara de hardware
fonte
4
Qual é o seu pacote CAD?
Mister Mystère
5
A versão high-end do Allegro, o desacoplamento, é da Sigrity, agora de propriedade da cadência. Eu também gosto de almofadas. Esse novo roteador automático baseado em caminho que deveria parecer roteamento manual parece interessante.
Algum tipo de hardware
Tive um palpite de que poderia ser Cadence. Eu o usei para uma introdução ao design de IC, é realmente um pacote excelente e acredito que seu autorouter e autoplacer podem ser eficientes se as restrições forem formuladas corretamente (o que se resume a experiência / treinamento).
Mister Mystère
Bem dito. A colocação de peças e o roteamento não é impossível, é apenas muito mais difícil e confusa do que a captura esquemática. Primeiro de tudo, o diagrama do circuito está muito aquém de uma entrada completa para colocar as peças automaticamente. Pacotes regulares de PCB são projetados para a fiação, não para o posicionamento automático.
tomnexus
12

Uma coisa que você não está considerando é que um esquema não contém informações suficientes para criar um quadro adequadamente .

Basicamente, o layout de PCB requer consideração e acomodação para algumas dezenas de requisitos de layout por peça , nenhum dos quais é codificado no esquema. Considere apenas os capacitores de derivação. Para que um sistema automatizado coloque corretamente o capacitor de desvio para cada componente, é necessário ter algumas diretivas adicionais no esquema que determinam ao autorouter que o rastreamento entre os dois nós deve estar abaixo de um determinado comprimento.
Presumivelmente, você precisaria de outras diretrizes para codificar a prioridade da minimização de comprimento para várias redes, algo para ditar pares diferenciais / impedância controlada, traços de guarda (se necessário), etc.
Basicamente, existem muitas variáveis ​​adicionais que direcionam a veiculação que geralmente não são codificadas em documentos esquemáticos / de ratos.

Além disso, mesmo que você suponha que possui todas as restrições de design acima, o tamanho do espaço do problema para um layout comum é enorme . É o equivalente a tentar resolver uma equação com milhares de entradas, onde cada entrada tem um efeito não linear diferente em todas as outras. Efetivamente, o problema é completamente intratável a partir de uma perspectiva de força bruta. Qualquer solução deve, portanto, envolver algum tipo de mecanismo heurístico, com suas próprias complexidades.


Realisticamente, a principal razão pela qual não existem pelo menos melhores autoresouters é que simplesmente não há mercado. O mercado de EDA é comparativamente pequeno em comparação com muitos outros nichos, mercados de software para fins especiais, e até o melhor autorouter de todos os tempos nem sequer aborda um layout real por um ser humano real.

Quando no meio de um layout particularmente chato, geralmente tenho algumas fantasias de tentar projetar meu próprio autorouter, fazendo algo com campos vetoriais e recozimento simulado, mas mesmo isso apenas se aproximaria de um layout local ideal, e não de um layout geral geral.

Connor Wolf
fonte
10

Em 1974-1975, trabalhei no departamento de automação de design da Honeywell. O problema não mudou desde então:

  1. Não é computacionalmente viável otimizar. Como a maioria dos problemas de otimização global, é NP-Complete, o que significa que a complexidade da computação cresce terrivelmente rapidamente. Como você não pode esperar um trilhão de anos (ou pior), podemos considerar a solução ideal como impossível de encontrar.
  2. Não está claro para o programa exatamente o que você deseja otimizar. Agrupamento lógico de acordo com o seu modelo de organização do circuito? Comprimento do traço? Área da diretoria? Acoplamento parasita? Atraso de propagação? Dissipação térmica (temperatura máxima)? Sangramento térmico de seções de maior potência para componentes sensíveis à temperatura? Emissão de RF? Barulho? Propriedades mecânicas (por exemplo, colocar componentes mais maciços perto dos suportes mecânicos? Características de serviço, como não colocar os conectores integrados mais próximos do que os dedos humanos podem gerenciar? Restrições externas, como localizações dos conectores ou encaixar no espaço disponível (sem conflitos com caixas, ventiladores etc.)

Existem abordagens baseadas em IA para lidar com problemas como esse. No entanto, em algum momento, é mais fácil para o designer apenas tentar as coisas e obter feedback do software quanto aos critérios de design em que está interessado. Contar ao software de IA tudo o que você sabe pode ser uma tarefa interminável e ingrata. Por fim, o software precisa satisfazer você, o designer e seu conjunto de vantagens e desvantagens.

A melhor maneira de isso funcionar, então, é vê-lo como uma colaboração entre designer e software, com o designer tomando as decisões finais. O software pode fornecer informações sobre as propriedades e sugerir maneiras de melhorar uma propriedade de interesse e ajudar a explorar as consequências de uma mudança.

Mas eu prevejo que nunca, jamais, veremos um layout totalmente automatizado - desde que tenhamos seres humanos olhando e se preocupando com o resultado.

Bob Kerns
fonte
Tanto para a Singularity ...
Peter Mortensen
@PeterMortensen As opiniões humanas não serão importantes após a Singularidade.
Spehro Pefhany
1
Eu acho que o ponto 2 é realmente a única parte relevante da resposta. Existem muitos algoritmos que podem resolver rapidamente problemas completos de NP, com tamanhos significativos de problemas, em um grau "bom o suficiente", com um custo de tempo muito aceitável, sendo que o suficiente geralmente fica entre 2-3% do ideal.
Whatsisname
Esse é um bom argumento sobre "bom o suficiente"! Embora seja completamente tecnicamente preciso, devemos qualificar cuidadosamente a palavra "resolver" (como você fez). O custo em CPU e armazenamento era um grande problema naquela época, no entanto. Mas, embora o tamanho dos problemas tenha aumentado, nossa capacidade computacional aumentou ainda mais.
precisa
9

Meu software tem um placer. Eu executei uma vez apenas para ver o que aconteceria. Foi rasgando rugindo através da placa, e colocou todos os componentes nela. Quando olhei para ela, as peças estavam em TODO LUGAR. O CI estava em um canto e sua tampa de dissociação estava no outro. O caminho crítico ziguezagueia para frente e para trás no quadro.

Meu argumento aqui é que a colocação é a parte mais difícil do layout para acertar. Primeiro, existem as restrições mecânicas. O projetista industrial / ME deseja que seu conector / switch / pot / LED / qualquer outro componente de interface externa saia da placa em um determinado local. Alguns componentes podem ser altos demais para estar em determinadas áreas dentro do gabinete. Pode haver partes do circuito que precisam manter uma certa folga para isolamento.

O software pode ser configurado para lidar com alguns desses fatores, mas nunca fará um trabalho tão bom ou poderá visualizar visualmente os problemas da maneira que um ser humano pode. Em um mundo perfeito, se você obtiver a colocação correta, executar o roteamento de potência, terra e caminho crítico, uma rápida passagem do autorouter poderá concluir o layout.

Matt Young
fonte
Gosto dessa resposta, embora ainda pareça até certo ponto que o software não esteja pronto para o trabalho que deveria ser.
Adam
6
@ Adam À medida que você ganha mais experiência, entende melhor. O processo de colocação é incrivelmente complexo, e o ninho de um rato conta apenas parte da história. Tomemos as tampas de desacoplamento, por exemplo, como o placer deve saber onde colocá-las? No que diz respeito à preocupação, todos esses limites podem ser colocados juntos em algum local arbitrário.
Matt Young
2
As restrições de distância parecem ser uma opção viável para isso.
precisa saber é o seguinte
Qual é o nome do seu software?
Daniele Testa #
2

Eu já usei auto-placers antes, e eles são realmente tão burros quanto uma pilha de pedras. A única coisa para a qual você pode usá-los de maneira íntima é desembaraçar uma pilha de pegadas importadas para a sua prancha no mesmo local; qualquer outra coisa é simplesmente pedir demais.

ThreePhaseEel
fonte