Baru dalam desain PCB - mengapa komponen penempatan otomatis tidak ada?


23

Perangkat lunak desain sirkuit yang saya lihat memiliki kemampuan untuk secara otomatis merutekan jejak dll pada PCB.
Tetapi mengapa perangkat lunak ini tidak memiliki kemampuan untuk secara otomatis menempatkan komponen pada PCB mengatakan untuk meminimalkan ukuran papan total?
Apakah ini terlalu rumit untuk diotomatisasi?


8
Autorouter harus dapat menempatkan komponen secara optimal berdasarkan kendala (yaitu "tombol harus ada di sini", "LED dapat berada di mana saja di area ini"). Mereka juga harus dapat memilih pin optimal untuk digunakan pada bagian yang memiliki banyak pin yang setara (yaitu "gunakan pin io yang memiliki PWM"). Sayangnya, saya belum pernah melihat satu pun yang melakukan salah satu dari fungsi ini. Mungkin suatu hari nanti.
bigjosh

7
penempatan (dan orientasi, swapping gerbang, pin swapping) sangat, sangat penting. Ini adalah hal yang paling penting untuk mendapatkan rute yang bagus. Saya pikir autoplacer yang pintar harus dimulai dari penempatan skematis, kecuali skematis adalah salah satu dari kekejian "kotak dikelilingi oleh netlist".
markrages

2
datang dari latar belakang yang bukan desain sirkuit, menurut saya sarang tikus harus cukup untuk tata letak semua komponen secara optimal, mungkin untuk beberapa kendala. Apakah sirkuit yang paling nyata dirancang lebih manual dari ini?
Adam

3
Singkatnya, meletakkan komponen secara optimal - bahkan tanpa semua pertimbangan yang berasal dari itu menjadi, sirkuit yang tidak ideal - adalah masalah CS yang sangat sulit. Bahkan, ini adalah contoh dari Masalah Salesman Perjalanan, dan dengan demikian solusi yang optimal tidak mungkin.
Nick Johnson

2
@ GregDEEon, saya juga heran. Tentunya dengan lebih banyak kerja auto-placers dapat memahami peran decoupling cap, dan mensimulasikan kebisingan sirkuit dll
Adam

Jawaban:


19

Saya telah merancang beberapa PCB baru-baru ini dan saya menyarankan Anda untuk TIDAK menggunakan auto-placer atau auto-router untuk produk akhir Anda. (Proteus memiliki auto placer.)

Pertama-tama - Perangkat lunak Anda sama cerdasnya dengan cacing tanah dalam hal penempatan otomatis atau perutean otomatis. Dengan kata lain, itu bodoh seperti kentang.

Perutean otomatis tidak akan tahu penempatan mana yang akan memberi Anda pola jejak yang lebih baik yang akan memungkinkan Anda tidak hanya membuat desain yang efisien tetapi juga untuk meminimalkan kebisingan di sirkuit. Demikian pula perutean otomatis tidak tahu bahwa menggeser komponen sedikit ke kiri atau kanan akan memungkinkan Anda untuk merutekan trek dengan cara yang lebih baik. Alat-alat ini hanya akan memberi Anda desain yang benar sesuai dengan sirkuit. Tetapi ketika datang ke kinerja dunia nyata, semuanya berbeda.
Sebagai contoh:

  • Kapasitor decoupling harus dekat secara fisik dengan IC.
  • Harus ada loop dari area yang paling tidak tertutup.
  • Pesawat darat harus sekokoh mungkin.
  • Tidak ada sinyal yang mengganggu yang dekat dengan osilator kristal Anda, dll.

Perangkat lunak Anda tidak akan menghormati konsep-konsep ini karena ini tidak disebutkan dalam skema Anda. Anda hanya akan tahu ketika Anda telah membuat PCB dan itu tidak berfungsi seperti yang diharapkan sepanjang waktu. Saya tidak mengatakan itu tidak akan berhasil. Mungkin berhasil, untuk 90% kali tetapi Anda harus mempertimbangkan 10% itu juga.

Saran saya adalah Anda harus mempelajari beberapa konsep perancangan PCB dan mencoba menempatkan dan merute sendiri. Anda selalu dapat memposting tata letak skema dan papan di forum dan pakar akan memberikan pendapat / saran.


5
+1 untuk cacing tanah dan kentang. Setiap kali saya menggunakan auto placer dan autorouter, saya telah melakukan bit-bit kritis dan meninggalkannya dengan bit yang mudah tetapi bahkan itu terlalu banyak untuk ditanyakan: 60% dari papan ditempatkan dan diarahkan setelah lulus terakhir. Lebih baik melakukan semuanya sendiri, kecuali mungkin untuk desain persyaratan besar dengan banyak ruang kosong.
Tuan Mystère

1
@ Tuan - Ya Anda benar. Bahkan saya menggunakan router otomatis setiap sekarang dan kemudian untuk mendapatkan ide untuk routing dan saya menyelesaikan bagian penting. Namun saya menggunakan Eagle hari ini dan tidak memiliki auto placer.
Whiskeyjack

1
Mengetik dalam komentar saya di atas: "untuk desain persyaratan RENDAH * besar". Jelas, frekuensi digital frekuensi tinggi tidak akan berfungsi dengan baik dengan autorouting dan autoplacing ...
Mister Mystère

1
Saya tidak melihat alasan teoretis mengapa sebuah router otomatis tidak dapat memperhitungkan semua kendala dan praktik terbaik yang disebutkan di atas ketika menempatkan komponen secara otomatis. Bahkan, sebuah router otomatis yang ideal harus dapat menemukan penempatan optimal yang memenuhi tujuan-tujuan ini lebih baik daripada manusia. Memang sulit untuk memastikannya, tetapi bukan tidak mungkin dan saya berani bertaruh bahwa segera kita akan mulai melihat auto-router berbasis cloud dengan auto-placers yang dapat mengalahkan bahkan manusia terbaik sekalipun.
bigjosh

1
@ bigjosh - Komentar Anda sangat masuk akal. Perutean dan penempatan yang benar memiliki beberapa pedoman yang jika dipecah menjadi logika sederhana, harus memungkinkan komputer untuk berkinerja lebih baik. Yang tersisa hanyalah triliunan kalkulasi - memeriksa ribuan papan yang sepenuhnya dialihkan dan mencari solusi optimal. Dengan sistem berbasis cloud, itu seharusnya tidak terlalu sulit. Mari berharap beberapa proyek open source segera hadir untuk mewujudkannya. Ini mungkin lebih baik daripada manusia dengan cara yang tidak benar-benar dilakukan manusia untuk beberapa iterasi setelah mereka menemukan solusi yang berfungsi - setidaknya saya tidak.
Whiskeyjack

13

Router saya memiliki placer dan dukungan untuk "kamar". Itu memungkinkan Anda menggambar area dan menetapkan bagian ke "kamar" dari skema. Placer otomatis akan mengelompokkannya bersama di ruangan tempat bagian tersebut ditugaskan. Cukup yakin itu memiliki dukungan untuk konektor ini harus pergi ke lokasi ini juga. Ada juga alat yang dapat melakukan penempatan decoupling otomatis dan pemilihan / optimasi bagian berdasarkan hasil simulasi. Meskipun tidak murah :) tetapi tidak berhasil.

Auto placer dapat menghemat sedikit waktu Anda dengan menyatukan semuanya seperti itu. Tapi saya masih lebih suka lintas probing skematis ke tata letak dalam mode tempat.

Sama seperti router otomatis Anda mendapatkan apa yang Anda masukkan dalam hal kendala dan seberapa baik Anda dapat menggunakannya. Jika Anda hanya mencoba menggunakan router otomatis Anda tanpa membatasi dengan benar itu hanya rute di mana-mana. Ketika diatur dengan benar, kami menggunakannya untuk merutekan bagian DDR panjang yang cocok dengan benar. Pada papan yang jauh lebih besar dan lebih padat, hampir merupakan kebutuhan, dan tentu saja persyaratan untuk toko layanan tata letak yang membutuhkan kecepatan. Namun hal-hal ini mungkin tidak sepadan bagi seseorang yang hanya melakukan beberapa papan kecil setahun.


4
Apa paket CAD Anda?
Tuan Mystère

5
Versi high-end dari Allegro, decoupling dari Sigrity sekarang dimiliki oleh irama. Saya suka pembalut juga. Itu auto router berbasis jalur baru itu seharusnya terlihat seperti hand routing yang terlihat menarik.
Some Hardware Guy

Saya punya firasat ini mungkin irama. Saya menggunakannya untuk pengantar desain IC, ini memang paket yang sangat bagus dan saya yakin autorouter dan autoplacernya mungkin lebih efisien jika kendala dirumuskan dengan benar (yang terkait dengan pengalaman / pelatihan).
Tuan Mystère

Kata baik. Menempatkan komponen dan perutean bukanlah hal yang mustahil, itu hanya jauh lebih sulit dan fuzzier daripada penangkapan skematis. Pertama-tama, diagram sirkuit jauh dari input lengkap untuk bagian tempat otomatis. Paket PCB reguler dirancang untuk pemasangan kabel, bukan penempatan otomatis.
tomnexus

12

Satu hal yang tidak Anda pertimbangkan adalah bahwa skema tidak mengandung informasi yang cukup untuk membuat papan dengan benar .

Pada dasarnya, tata letak PCB memerlukan pertimbangan dan akomodasi untuk beberapa lusin persyaratan tata letak per bagian , tidak ada yang dikodifikasi dalam skema. Pertimbangkan kapasitor bypass saja. Agar sistem otomatis menempatkan kapasitor bypass dengan benar untuk setiap komponen, Anda harus memiliki beberapa arahan tambahan pada skema yang menentukan untuk autorouter bahwa jejak antara kedua node harus di bawah panjang tertentu.
Agaknya, Anda kemudian akan memerlukan arahan lebih lanjut untuk menyandikan prioritas minimalisasi panjang untuk berbagai jaring, sesuatu untuk menentukan pasangan diferensial / impedansi terkontrol, jejak penjaga (jika diperlukan), dll ...
Pada dasarnya, ada banyak variabel tambahan yang mendorong penempatan yang biasanya tidak dikodekan sama sekali dalam dokumen skematik / ratsnest.

Selain itu, bahkan jika Anda berasumsi bahwa Anda memiliki semua kendala desain di atas, ukuran ruang masalah untuk tata letak umum sangat besar . Ini sama dengan mencoba menyelesaikan persamaan dengan ribuan input, di mana setiap input memiliki efek non-linear yang berbeda pada yang lainnya. Secara efektif, masalahnya benar-benar tidak dapat dipecahkan dari sudut pandang kekuatan fisik. Solusi apa pun karena itu harus melibatkan semacam mekanisme heuristik, yang memiliki kompleksitas sendiri.


Secara realistis, alasan utama tidak ada setidaknya autorouter yang lebih baik adalah karena tidak ada pasar. Pasar EDA relatif kecil dibandingkan dengan banyak ceruk lainnya, pasar perangkat lunak tujuan khusus, dan bahkan autorouter terbaik yang pernah ada bahkan tidak akan mendekati tata letak nyata oleh manusia yang sebenarnya.

Ketika di tengah-tengah tata letak yang sangat membosankan, saya biasanya memiliki fantasi mencoba merancang autorouter saya sendiri, dengan melakukan sesuatu dengan bidang vektor dan simulasi annealing, tetapi bahkan itu hanya akan mendekati optimal lokal, daripada tata letak optimal umum.


10

Kembali pada 1974-1975 saya bekerja di departemen Otomasi Desain di Honeywell. Masalahnya tidak berubah sejak saat itu:

  1. Secara komputasi tidak layak untuk dioptimalkan. Seperti kebanyakan masalah pengoptimalan global, ini NP-Lengkap, yang berarti kompleksitas perhitungannya tumbuh dengan sangat cepat. Karena Anda tidak dapat menunggu selama satu triliun tahun (atau lebih buruk), kami dapat menganggap solusi optimal tidak mungkin ditemukan.
  2. Tidak jelas untuk program apa yang ingin Anda optimalkan. Pengelompokan logis sesuai dengan model organisasi sirkuit Anda? Panjang jejak? Area dewan? Kopling parasit? Penundaan propagasi? Pembuangan panas (suhu maksimum)? Pendarahan termal dari bagian dengan daya lebih tinggi ke komponen yang sensitif terhadap suhu? Emisi RF? Kebisingan? Sifat mekanis (misalnya, menempatkan komponen yang lebih masif di dekat penyangga mekanis? Karakteristik layanan, seperti tidak menempatkan konektor on-board lebih dekat daripada yang dapat dikelola jari manusia? Kendala eksternal, seperti lokasi konektor, atau pemasangan di ruang yang tersedia (tidak ada konflik dengan kasing, kipas, dll.)

Ada pendekatan berbasis AI untuk menangani masalah seperti ini. Namun, pada titik tertentu, lebih mudah bagi perancang untuk hanya mencoba hal-hal, dan mendapatkan umpan balik dari perangkat lunak mengenai kriteria desain yang dia minati. Memberitahu perangkat lunak AI semua yang Anda tahu bisa menjadi tugas yang tak ada habisnya, tanpa pamrih. Pada akhirnya, perangkat lunak harus memuaskan Anda, perancang, dan tim pengimbang Anda.

Maka, cara terbaik untuk bekerja ini adalah melihatnya sebagai kolaborasi antara perancang dan peranti lunak, dengan perancang membuat keputusan akhir. Perangkat lunak ini dapat memberikan informasi tentang properti, dan dapat menyarankan cara untuk meningkatkan properti yang menarik, dan membantu mengeksplorasi konsekuensi dari perubahan.

Tapi saya memperkirakan kita tidak akan pernah melihat tata letak yang sepenuhnya otomatis - selama kita memiliki manusia yang memperhatikan dan memperhatikan hasilnya.


Begitu banyak untuk Singularitas ...
Peter Mortensen

@PeterMortensen Pendapat manusia tidak akan menjadi masalah setelah Singularity.
Spehro Pefhany

1
Saya pikir poin 2 adalah satu-satunya bagian yang relevan dari jawabannya. Ada banyak algoritma yang dapat dengan sangat cepat menyelesaikan masalah NP-complete, dengan ukuran masalah yang signifikan, ke tingkat "cukup baik" dengan biaya waktu yang sangat dapat diterima, cukup baik sering berada dalam 2-3% dari optimal.
whatsisname

Itu poin bagus tentang "cukup baik"! Meskipun harus benar-benar akurat secara teknis, kita harus dengan cermat memenuhi syarat kata "memecahkan" (seperti yang Anda lakukan). Namun, biaya dalam CPU dan penyimpanan adalah masalah besar. Tetapi meskipun ukuran masalah telah tumbuh, kapasitas komputasi kami telah tumbuh lebih besar lagi.
Bob Kerns

9

Perangkat lunak saya memiliki placer. Saya menjalankannya satu kali hanya untuk melihat apa yang akan terjadi. Itu merobek meraung melalui papan, dan mendapat semua komponen di atasnya. Ketika saya melihatnya, bagian-bagiannya ada di mana-mana. IC ada di satu sudut, dan tutup decouplingnya ada di sudut lainnya. Jalur kritis zig-zag bolak-balik melintasi papan.

Maksud saya di sini adalah penempatan adalah bagian tersulit dari tata letak untuk diperbaiki. Pertama, ada kendala mekanis. ME / perancang industri menginginkan konektor / switch / pot / LED / komponen antarmuka eksternal apa pun lainnya keluar dari papan di tempat tertentu. Beberapa komponen mungkin terlalu tinggi untuk berada di area tertentu di dalam selungkup. Mungkin ada bagian sirkuit yang perlu menjaga jarak tertentu untuk isolasi.

Perangkat lunak dapat dikonfigurasikan untuk menangani beberapa faktor ini, tetapi tidak akan pernah melakukan pekerjaan sebaik itu, atau dapat melihat masalah secara visual seperti manusia. Di dunia yang sempurna, jika Anda mendapatkan penempatan yang benar, lakukan power, ground, dan routing jalur kritis, lulus cepat dari autorouter harus bisa menyelesaikan tata letak.


Saya suka jawaban ini, meskipun tampaknya masih pada tingkat bahwa perangkat lunak tidak sesuai dengan pekerjaan yang seharusnya.
Adam

6
@ Adam Ketika Anda mendapatkan lebih banyak pengalaman, Anda akan lebih mengerti. Proses penempatannya sangat kompleks, dan sarang tikus hanya menceritakan sebagian dari cerita. Ambil topi decoupling misalnya, bagaimana placer seharusnya tahu di mana harus meletakkannya? Sejauh menyangkut itu, topi itu semua dapat ditempatkan bersama di beberapa lokasi sewenang-wenang.
Matt Young

2
Kendala jarak sepertinya pilihan yang layak untuk itu.
Tim Seguine

Apa nama perangkat lunak Anda?
Daniele Testa

2

Saya telah menggunakan auto-placers sebelumnya, dan mereka memang sebodoh tumpukan batu. Satu-satunya hal yang dapat Anda gunakan secara waras adalah untuk mengurai tumpukan jejak kaki yang semuanya diimpor ke papan Anda di tempat yang sama; hal lain terlalu banyak untuk ditanyakan.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.