Nowość w projektowaniu obwodów drukowanych - dlaczego nie istnieje automatyczne umieszczanie komponentów?

23

Oprogramowanie do projektowania obwodów, które widziałem, ma możliwość automatycznego trasowania śladów itp. Na płytce drukowanej.
Ale dlaczego to oprogramowanie nie ma możliwości automatycznego umieszczania komponentów na płytce drukowanej, aby zminimalizować całkowity rozmiar płyty?
Czy to jest zbyt skomplikowane, aby je zautomatyzować?

Adam
źródło
8
Autorouterzy powinni mieć możliwość optymalnego umieszczania komponentów w oparciu o ograniczenia (tzn. „Przycisk musi iść tutaj”, „LED może znajdować się w dowolnym miejscu w tym obszarze”). Powinny także być w stanie wybrać optymalne piny do zastosowania w częściach, które mają wiele równoważnych pinów (tzn. „Użyj dowolnego pinu io, który ma PWM”). Niestety, nigdy nie widziałem takiego, który pełniłby jedną z tych funkcji. Może kiedyś.
bigjosh,
7
umiejscowienie (i orientacja, zamiana bramki, zamiana pinów) jest naprawdę bardzo ważne. To jest najważniejsze dla uzyskania dobrego routingu. Myślę, że inteligentny autoplacer powinien zaczynać się od umieszczenia schematu, chyba że schemat jest jednym z tych nowoczesnych „pól otoczonych obrzydliwościami sieci”.
markrages
2
wychodząc z tła, które nie jest układem obwodu, wydaje mi się, że gniazdo szczurów powinno wystarczyć do optymalnego rozmieszczenia wszystkich elementów, być może z pewnymi ograniczeniami. Czy większość prawdziwych obwodów jest zaprojektowana bardziej ręcznie?
Adam,
3
W skrócie, optymalne rozmieszczenie komponentów - nawet bez wszystkich rozważań, które wynikają z tego, że jest to rzeczywisty, nie idealny obwód - jest bardzo trudnym problemem CS. W rzeczywistości jest to przykład problemu Traveling Salesman i dlatego optymalne rozwiązanie jest niemożliwe.
Nick Johnson
2
@ Gregd'Eon Zastanawiam się tak samo. Z pewnością z większą ilością pracy auto-plasujących może zrozumieć role oddzielenie obwodu czapki i symulacji hałasu itp
Adam

Odpowiedzi:

19

Ostatnio projektowałem kilka płytek drukowanych i sugeruję, aby NIE używać auto-placera lub automatycznego routera do końcowego produktu. (Proteus ma auto placer.)

Przede wszystkim - Twoje oprogramowanie jest tak inteligentne jak dżdżownica, jeśli chodzi o automatyczne umieszczanie lub automatyczne trasowanie. Innymi słowy, jest głupi jak ziemniak.

Automatyczne trasowanie nie wiedziałoby, które umiejscowienie zapewni lepszy wzór śledzenia, co pozwoli nie tylko na stworzenie wydajnego projektu, ale także na zminimalizowanie szumów w obwodzie. Podobnie automatyczne trasowanie nie wie, że nieznaczne przesunięcie komponentu w lewo lub w prawo umożliwi lepsze wytyczenie trasy. Te narzędzia dadzą ci tylko projekt, który jest poprawny zgodnie z obwodem. Ale jeśli chodzi o wydajność w świecie rzeczywistym, sprawy wyglądają inaczej.
Na przykład:

  • Kondensatory odsprzęgające powinny znajdować się fizycznie blisko układu scalonego.
  • Powinny być pętle o najmniej zamkniętym obszarze.
  • Płaszczyzna uziemienia powinna być jak najbardziej solidna.
  • Żadne sygnały zakłócające nie powinny znajdować się w pobliżu oscylatora kwarcowego itp.

Twoje oprogramowanie nie będzie przestrzegać tych pojęć, ponieważ nie są one wymienione na schemacie. Dowiesz się tylko, kiedy wyprodukujesz płytkę drukowaną i nie będzie ona działać zgodnie z oczekiwaniami przez cały czas. Nie mówię, że to nie zadziała. To może zadziałać 90% razy, ale musisz wziąć to pod uwagę również 10%.

Moje sugestie to, że powinieneś nauczyć się kilku koncepcji projektowania płytek drukowanych i spróbować samodzielnie umieścić i trasować. Zawsze możesz opublikować swój schemat i układ forum na forach, a eksperci przedstawią swoje opinie / sugestie.

Whiskyjack
źródło
5
+1 dla dżdżownicy i ziemniaka. Za każdym razem, gdy korzystałem z funkcji automatycznego ustawiania i automatycznego routera, robiłem krytyczne bity i zostawiłem to łatwe, ale nawet to było zbyt wiele, by zapytać: 60% planszy zostało umieszczone i rozebrane po ostatnim podaniu. Lepiej rób wszystko sam, z wyjątkiem być może projektów o dużych wymaganiach z dużą ilością wolnego miejsca.
Mister Mystère,
1
@Mister - Tak masz rację. Nawet od czasu do czasu używam automatycznego routera, aby uzyskać pomysł na routing i kończę krytyczne sekcje. Jednak używam Eagle w tych dniach i nie ma auto placer.
Whiskeyjack,
1
Literówka w moim komentarzu powyżej: „dla dużych projektów wymagań LOW *”. Oczywiście, częstotliwość cyfrowa o wysokiej częstotliwości nie będzie dobrze działać z autoroutingiem i automatycznym rozmieszczaniem ...
Mister Mystère
1
Nie widzę żadnego teoretycznego powodu, dla którego automatyczny router nie mógł wziąć pod uwagę wszystkich wyżej wymienionych ograniczeń i najlepszych praktyk podczas automatycznego umieszczania części. W rzeczywistości idealny automatyczny router powinien być w stanie znaleźć optymalne miejsce, które spełnia te cele lepiej niż człowiek. Trudno jest być pewnym, ale nie niemożliwym. Założę się, że wkrótce zaczniemy widzieć oparte na chmurze automatyczne routery z automatycznymi plasowaniem, które mogą pokonać nawet najlepszych ludzi.
bigjosh
1
@bigjosh - Twój komentarz ma wiele sensu. Prawidłowe kierowanie i rozmieszczanie zawiera kilka wskazówek, które w podziale na prostą logikę powinny umożliwić komputerom lepsze działanie niż ludzie. Pozostają tylko tryliony obliczeń - sprawdzenie tysięcy w pełni wytartych desek i znalezienie optymalnego rozwiązania. W przypadku systemów opartych na chmurze nie powinno to być zbyt trudne. Miejmy nadzieję, że wkrótce zacznie się realizacja projektu open source. Może być lepszy od ludzi w taki sposób, że ludzie tak naprawdę nie wybierają wielu iteracji, gdy znajdą skuteczne rozwiązanie - przynajmniej ja nie.
Whiskeyjack
13

Mój router ma narzędzie do rozmieszczania i obsługuje „pokoje”. Dzięki temu możesz rysować obszary i przypisywać części do „pomieszczeń” ze schematu. Auto placer zgrupuje je w pokoju, do którego przypisana jest część. Całkiem pewne, że ma wsparcie dla tego złącza, również powinno przejść do tej lokalizacji. Istnieje również narzędzie, które może wykonywać automatyczne umieszczanie odsprzęgania oraz wybór / optymalizację części na podstawie wyników symulacji. Nie jest to jednak tanie :), ale działa.

Auto placer może zaoszczędzić trochę czasu, umieszczając wszystko w ten sposób. Ale nadal wolę krzyżowe sondowanie schematu niż układ w trybie zastępczym.

Podobnie jak automatyczny router, dostajesz to, co nakładasz pod względem ograniczeń i jak dobrze możesz z niego korzystać. Jeśli po prostu spróbujesz użyć routera automatycznego, nie ograniczając go właściwie, po prostu trasuje wszędzie. Po prawidłowej konfiguracji używamy go do prawidłowego trasowania odcinków DDR o dopasowanej długości. Na znacznie większych i gęstszych płytach jest to niemal konieczność, a na pewno wymóg, aby sklep z usługami układowymi potrzebował szybkości. Jednak te rzeczy mogą nie być tego warte dla kogoś, kto robi tylko kilka małych desek rocznie.

Jakiś facet od sprzętu
źródło
4
Jaki jest twój pakiet CAD?
Mister Mystère,
5
Ekskluzywna wersja Allegro, oddzielenie od Sigrity jest teraz własnością kadencji. Lubię też podkładki. Ciekawy jest ten nowy router automatyczny oparty na ścieżce, który powinien wyglądać jak ręczne trasowanie.
Some Hardware Guy
Miałem przeczucie, że to może być Cadence. Użyłem go do wprowadzenia do projektowania układów scalonych, jest to naprawdę doskonały pakiet i wierzę, że jego autorouter i autoplacer mogą być po prostu skuteczne, jeśli ograniczenia są poprawnie sformułowane (co sprowadza się do doświadczenia / szkolenia).
Mister Mystère,
Dobrze powiedziane. Umieszczanie części i trasowanie nie jest niemożliwe, jest po prostu dużo trudniejsze i bardziej niewyraźne niż przechwytywanie schematyczne. Po pierwsze, schemat połączeń jest o wiele krótszy od pełnego wejścia do automatycznego umieszczania części. Zwykłe pakiety PCB są przeznaczone do okablowania, a nie do automatycznego umieszczania.
tomnexus
12

Jedną z rzeczy, których nie bierzesz pod uwagę, jest to, że schemat nie zawiera wystarczającej ilości informacji, aby właściwie ułożyć planszę .

Zasadniczo układ PCB wymaga rozważenia i dostosowania do kilkudziesięciu wymagań dotyczących układu na część , z których żadne nie jest skodyfikowane na schemacie. Rozważ tylko kondensatory obejściowe. Aby zautomatyzowany system prawidłowo umieścił kondensator obejściowy dla każdego komponentu, potrzebne będą dodatkowe wytyczne na schemacie, które dyktują autorouterowi, że ślad między dwoma węzłami musi być poniżej określonej długości.
Prawdopodobnie potrzebne byłyby dalsze dyrektywy, aby zakodować priorytet minimalizacji długości dla różnych sieci, coś, co dyktuje pary różnicowe / kontrolowaną impedancję, ślady ochronne (w razie potrzeby) itp.
Zasadniczo istnieje wiele dodatkowych zmiennych, które sterują rozmieszczeniem, które zwykle nie są wcale zakodowane w dokumentach schematycznych / najszczerszych.

Co więcej, nawet jeśli założymy, że masz wszystkie powyższe ograniczenia projektowe, sama wielkość przestrzeni problemowej dla wspólnego układu jest ogromna . Jest to odpowiednik próby rozwiązania równania z tysiącami danych wejściowych, gdzie każde dane wejściowe mają inny, nieliniowy wpływ na wszystkie pozostałe. W rzeczywistości problem jest całkowicie nierozwiązywalny z perspektywy brutalnej siły. Każde rozwiązanie musi zatem obejmować jakiś mechanizm heurystyczny, który ma swoją złożoność.


Realistycznie, głównym powodem, dla którego nie ma co najmniej lepszych autorouterów, jest to, że po prostu nie ma rynku. Rynek EDA jest stosunkowo niewielki w porównaniu do wielu innych niszowych rynków oprogramowania specjalnego, a nawet najlepszy autorouter nigdy nie zbliży się do prawdziwego układu przez prawdziwego człowieka.

Kiedy jestem w trakcie wyjątkowo nudnego układu, zwykle mam fantazje o próbie zaprojektowania własnego autorutera, robiąc coś z polami wektorowymi i symulowanym wyżarzaniem, ale nawet to zbliżyłoby się do lokalnego optimum, a nie ogólnego optymalnego układu.

Connor Wolf
źródło
10

W latach 1974–1975 pracowałem w dziale automatyzacji projektowania w Honeywell. Problem nie zmienił się od tego czasu:

  1. Optymalizacja nie jest wykonalna obliczeniowo. Podobnie jak większość globalnych problemów z optymalizacją, jest NP-Complete, co oznacza, że ​​złożoność obliczeń rośnie strasznie szybko. Ponieważ nie możesz czekać bilion lat (lub gorzej), możemy uznać optymalne rozwiązanie za niemożliwe do znalezienia.
  2. W programie nie jest jasne, co chcesz zoptymalizować. Logiczne grupowanie według modelu organizacji obwodu? Długość śledzenia? Obszar zarządu? Sprzężenie pasożytnicze? Opóźnienie propagacji? Rozpraszanie ciepła (maksymalna temperatura)? Upust termiczny z sekcji o dużej mocy do komponentów wrażliwych na temperaturę? Emisja RF? Hałas? Właściwości mechaniczne (na przykład umieszczanie bardziej masywnych komponentów w pobliżu podpór mechanicznych? Charakterystyka usługi, np. Nie zbliżanie złącz pokładowych bliżej niż ludzkie palce mogą poradzić? Ograniczenia zewnętrzne, takie jak lokalizacja łączników lub dopasowanie w dostępnej przestrzeni (bez konfliktu z skrzynie, wentylatory itp.)

Istnieją podejścia oparte na sztucznej inteligencji do rozwiązywania takich problemów. Jednak w pewnym momencie projektantowi łatwiej jest po prostu wypróbować różne rzeczy i uzyskać informacje zwrotne od oprogramowania na temat kryteriów projektowych, którymi jest zainteresowany. Mówienie programowi AI wszystkiego, co znasz, może być niekończącym się, niewdzięcznym zadaniem. Ostatecznie oprogramowanie musi zadowolić Ciebie, projektanta i zestaw kompromisów.

Najlepszym sposobem na to jest zatem postrzeganie go jako współpracy między projektantem a oprogramowaniem, przy czym projektant podejmuje ostateczne decyzje. Oprogramowanie może dostarczać informacji o właściwościach i sugerować sposoby ulepszenia interesującej właściwości oraz pomóc zbadać konsekwencje zmiany.

Ale przewiduję, że nigdy nie zobaczymy w pełni zautomatyzowanego układu - o ile ludzie patrzą na wynik i dbają o niego.

Bob Kerns
źródło
Tyle o osobliwości ...
Peter Mortensen
@PeterMortensen Ludzkie opinie nie będą miały znaczenia po Osobliwości.
Spehro Pefhany
1
Myślę, że punkt 2 jest naprawdę jedyną istotną częścią odpowiedzi. Istnieje wiele algorytmów, które potrafią bardzo szybko rozwiązać problemy z NP-zupełnością, przy znacznych rozmiarach problemów, w stopniu „wystarczająco dobrym” przy bardzo akceptowalnym koszcie czasu, wystarczająco dobrym, często mieszczącym się w granicach 2-3% wartości optymalnej.
whatsisname
To dobry punkt na temat „wystarczająco dobrego”! Aby być całkowicie technicznie dokładnym, powinniśmy dokładnie określić słowo „rozwiązać” (tak jak Ty). Jednak koszt procesora i pamięci masowej był wówczas wielkim problemem. Ale mimo że rozmiary problemów wzrosły, nasza zdolność obliczeniowa wzrosła jeszcze bardziej.
Bob Kerns
9

Moje oprogramowanie ma placer. Raz go uruchomiłem, żeby zobaczyć, co się stanie. Rozerwał się, rycząc przez tablicę i na nim wszystkie elementy. Kiedy na to spojrzałem, części były WSZĘDZIE. IC znajdował się w jednym rogu, a jego nakrętka odsprzęgająca była w drugim. Ścieżka krytyczna zygzakowała w poprzek planszy.

Chodzi mi o to, że umieszczenie jest najtrudniejszą częścią układu, aby się dobrze. Najpierw są ograniczenia mechaniczne. ME / projektant przemysłowy chce, aby twoje złącze / przełącznik / potencjometr / LED / jakikolwiek inny zewnętrzny element interfejsu zszedł z płyty w określonym miejscu. Niektóre elementy mogą być zbyt wysokie, aby znajdować się w niektórych obszarach wewnątrz obudowy. Mogą istnieć części obwodu, które muszą zachować pewien odstęp do izolacji.

Oprogramowanie można skonfigurować tak, aby radziło sobie z niektórymi z tych czynników, ale nigdy nie wykona tak dobrej roboty, ani nie będzie w stanie dostrzec problemów w sposób, w jaki może to zrobić człowiek. W idealnym świecie, jeśli dobrze umieścisz, wykonasz zasilanie, uziemienie i krytyczne trasy, szybkie przejście autoroutera powinno być w stanie zakończyć układ.

Matt Young
źródło
Podoba mi się ta odpowiedź, choć nadal wydaje się, że oprogramowanie nie jest w stanie sprostać wymaganiom.
Adam,
6
@Adam Im więcej doświadczenia, tym lepiej zrozumiesz. Proces umieszczania jest niezwykle skomplikowany, a gniazdo szczura opowiada tylko część historii. Weźmy na przykład czapki odsprzęgające, skąd ma wiedzieć, gdzie je umieścić? O ile to możliwe, wszystkie te czapki mogą być umieszczone razem w dowolnym dowolnym miejscu.
Matt Young,
2
Ograniczenia odległości wydają się realną opcją.
Tim Seguine,
Jak nazywa się twoje oprogramowanie?
Daniele Testa
2

Wcześniej korzystałem z automatycznych placerów i są one tak głupie jak stos kamieni. Jedyną rzeczą, do której możesz je zdrowo użyć, jest rozplątanie stosu śladów stóp, które wszystkie zostały zaimportowane na twoją planszę w tym samym miejscu na niej; cokolwiek innego jest po prostu zbyt wielkim pytaniem.

ThreePhaseEel
źródło