Elektroda.pl
Elektroda.pl
X
Arrow Multisolution Day
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Historia programów do projektowania płytek drukowanych - część 2

ghost666 31 Sie 2018 16:31 3357 16
  • W poprzedniej części cyklu dowiedzieliśmy się, jak wyglądało projektowanie płytek drukowanych przed pojawieniem się komputerów, gdy cały proces realizowany był ręcznie. W momencie, gdy pojawiły się pierwsze programy komputerowe, pojawiło się także nowe narzędzie, dotychczas nieznane inżynierom - autorouter. To algorytm komputerowy, który automatycznie wykonuje połączenie na płytce drukowanej rysując ścieżki.

    Autorouter to dosyć tajemniczy i mityczny zwierz w świecie projektowania PCB... To znaczy w sumie nie jest wcale mityczny ani nazbyt tajemniczy - takie narzędzia rzeczywiście istnieją i, wierzcie bądź nie, są ludzie, którzy z nich korzystają. Ale dlaczego? Każdy zaawansowany projektant płytek drukowanych wie, że algorytmy autoroutera są dalekie od ideału. Ich odpowiednie skonfigurowanie zajmuje sporo czasu, a bardzo często wyniki ich pracy są dalekie od satysfakcjonujących, tak, że trzeba po nich poprawiać. Sumarycznie zajmuje to w sumie tyle samo czasu, co narysowanie ścieżek samodzielnie.

    Na pierwszy rzut oka idea autoroutera wydaje się genialna. Algorytm, który idealnie poprowadzi ścieżki na płytce drukowanej za inżyniera. Brzmi wspaniale! Taka właśnie idea przyświecała pracom nad tego rodzaju algorytmami w latach '80 XX wieku. Niestety pierwsze z nich nie dawały idealnych rezultatów. A nawet gorzej - dawały rezultaty bardzo kiepskie. Wczesne autoroutery miały wiele wad: źle zarządzały miejscem na płytce, nierównomiernie obciążały strony płytki i generowały nadmierną ilość przelotek na PCB.

    Jeśli chcielibyśmy jednym zdaniem opisać sytuację wczesnych autorouterów, to z pewnością byłoby to "upośledzenie spowodowane ograniczeniami sprzętowymi". Algorytmy po prostu nie mogły zredukować swojej siatki pracy, by zapewnić lepszą rozdzielczość obliczeń, gdyż nie pozwalały na to ograniczenia w postaci procesorów oraz niewielkiej ilości pamięci. Bez odpowiednich komputerów, twórcy oprogramowania EDA (do projektowania urządzeń elektronicznych) eksplorowali inne techniki, na przykład autorouting oparty na kształtach. Nowe algorytmy pozwoliły na spełnienie wymagań dotyczących generacji połączeń na płytce drukowanej i zapewnienia integralności sygnałów dzięki:

    * Tworzeniu wydajnych połączeń pomiędzy elementami,
    * Redukcji ilości przelotek na płytce drukowanej - możliwe było zmniejszenie kosztów produkcji płytek drukowanych,
    * Zmniejszeniu liczby warstw na PCB kosztem zwiększenia jej rozmiaru.

    Historia programów do projektowania płytek drukowanych - część 2
    Jednakże nawet pomimo tego, rezultaty osiągane z pomocą autoroutera były co najwyżej średnie. Twórcom oprogramowania EDA udało się pokonać ograniczenia sprzętowe oprogramowania, jednakże projektanci PCB nadal sceptycznie odnosili się do nowej technologii projektowania płytek.





    Jak z każdą technologią, tak i w tym zakresie następowała ewolucja. W latach '90 XX wieku do autorouterów dodawano nowe funkcje, takie jak zoptymalizowane kąty prowadzenia ścieżek, tryby przepychania innych ścieżek podczas generacji połączeń etc. Dzięki temu zmniejszała się ilość przelotek i ścieżek na PCB. Niestety pomimo tego nowa technologia miała bardzo ograniczony wpływ na środowisko projektantów PCB. Konfiguracja autoroutera nadal była bardzo czasochłonna i wymagała wprowadzania dużej ilości poprawek. Niektórych płytek nawet nie dało się połączyć automatycznie w 100%. Mimo ogromnego postępu w tym okresie autorouter ciągle nie był realnie wykorzystywany i wszystkie ścieżki projektowane były manualnie.

    Przełom wieków wprowadził do elektroniki gro nowych technologii i elementów, co spowodowało z kolei, że zmienił się sposób projektowania płytek drukowanych. W wielu projektach trzeba było redukować ilość przelotek, które pogarszają jakość sygnału. Ścieżki muszą mieć często ściśle kontrolowaną impedancję i opóźnienia; pojawiły się także sygnały różnicowe, które obecnie są standardem, w których konieczne jest utrzymywanie dwóch ścieżek blisko siebie i o tej samej długości. Pojawiły się nowe obudowy, takie jak BGA, które preferowane są w przypadku układów scalonych z dużą ilością wyprowadzeń. Zmiany technologiczne pociągnęły za sobą ogromną zmianę w świadomości projektantów. Te zmiany dały początek nowej generacji algorytmom, tzw. river-routing.

    Nowa metoda jest zadziwiająco efektowna. Pozwala ona na zredukowanie liczby przelotek w torze sygnału, wykorzystuje równo wszystkie warstwy i nie przejawia żadnych preferencji co do prowadzenia połączeń którąkolwiek z nich. Mimo tych zalet jednakże nadal niewielu elektroników niechętnie sięgnęło po nowe rozwiązanie. Dlaczego? Tym razem to nie technologia – przyczyna leży w psychice projektantów.

    Inżynierowie, podczas rozkładania elementów na płytce drukowanej, cały czas już w głowie prowadzili ścieżki. Ma to bezpośredni wpływ więc na ich rozmieszczenie, a w konsekwencji na poprowadzone później ścieżki. Próba zmiany tego trybu pracy, poprzez wprowadzenie autorouterów, kończy się zawsze odmową współpracy przez projektanta, któremu niezwykle ciężko jest zmienić swoje przyzwyczajenia.

    Oprócz ‘river-routing’ powstał także algorytm ‘route-planning’. Ten z kolei daje projektantom szerokie możliwości konfiguracji autoroutera. Ustawienia pozwalają na definicję przeznaczenia poszczególnych warstw, stworzenie różnych więzów dla sygnałów, zapewnianie ekranowania wybranym sygnałom etc. Niestety – jakkolwiek wszystkie te ustawienia sprawiają, że autorouter idealnie sprawdza się w swoim zastosowaniu, to czas jego konfiguracji jest dłuższy niż manualne prowadzenie ścieżek na płytce.

    Rezultat jest taki, że pomimo ogromnego postępu, jaki w ciągu ostatnich lat możemy obserwować w tym sektorze, algorytmy tego typu nadal nie doczekały się pełniejszej akceptacji w środowisku projektantów PCB. Obecnie wszystko wskazuje, że wykonujemy krok w tył – wracamy do momentu, gdy szczytem technologii były autoroutery jedynie asystujące projektantom. Ale czy to realny krok w tył? Niekoniecznie.

    Podczas projektowania płytki drukowanej typowy inżynier elektronik wykorzystuje podejście „od ogółu do szczegółu”. W pierwszej kolejności zgrubnie rozmieszcza elementy zgodnie z jego doświadczeniem i planowanym kierunkiem płynięcia sygnałów na PCB. Następnie manualnie rysuje ścieżki łączące poszczególne układy. W przypadku bardziej złożonych układów można początkowo wytyczyć miejsce, gdzie znajdować się będą szyny danych etc. W ten sposób łatwiej jest rozplanować płytkę drukowaną.

    Autorouter z kolei postępuje zupełnie odwrotnie – „od szczegółu do ogółu”. Algorytm zajmuje się dokładnym spozycjonowaniem każdej ścieżki już na samym początku swojej pracy. Dlatego też ciężko jest połączyć oba podejścia – ludzkie i autoroutera – w jedną całość.

    Firmy, takie jak Altium czy Mentor Graphics, właśnie z takim podejściem podeszły do tworzenia nowych algorytmów wspomagania prowadzenia ścieżek. Z ich wykorzystaniem inżynier nanosi jedynie zgrubnie kształt, wedle którego chciałby poprowadzić ścieżki, tak jakby szkicował je na papierze, a resztę pracy wykonuje narzędzie wbudowane w program CAD. Narzędzia te mogą nawet dopasowywać długość ścieżek do siebie czy prowadzić pary różnicowe. Na obrazku poniżej widać przykład działania takiego algorytmu.

    Historia programów do projektowania płytek drukowanych - część 2Historia programów do projektowania płytek drukowanych - część 2


    Dzięki zastosowaniu zupełnie nowego podejścia, które nie jest tak zautomatyzowane jak poprzednie, możliwe jest osiąganie rezultatów tak dobrych, jak w przypadku manualnego prowadzenia ścieżek, z szybkością typowych w pełni zautomatyzowanych algorytmów autoroutingu.

    Nic nie wskazuje, aby w najbliższym czasie powstać miały lepsze narzędzia. W pełni zautomatyzowane podejście jest póki co niemożliwe do zrealizowania – ilość czasu, jaką poświęcić trzeba na konfigurację autoroutera jest większa niż na manualne narysowanie ścieżek w projekcie. A nawet, jeżeli już w jakiś sposób przekonamy się do takiej złożonej konfiguracji algorytmu, to nadal i tak nigdy nie można być w 100% pewnym, czy operacja się powiedzie.

    A Wy – czy korzystaliście kiedyś z autoroutera? Z jakim skutkiem? A może korzystacie z niego nadal?

    Źródło: https://www.eeweb.com/profile/alex-tamari/articles/eras-of-pcb-design-the-autorouter


    Fajne!
  • Arrow Multisolution Day
  • #2 31 Sie 2018 23:08
    ptt4
    Poziom 2  

    @ghost666 No myślęże dotyczy to tylko takich prostych PC-towych programów. Taki układ scalony np. to też skomplikowna "płytka drukowana" a intel czy ARM chwalą się systemami automatycznego projektowania, które robią zresztą wiele różnych innych rzeczy - bo samo zrobienie połączeń jest dla tych systemów dość trywialnym zadaniem. Robią symulacje dynamiczne - co przy częstotliwościach rzędu GHz jest konieczne. Zresztą bez tego chyba nie da się zrobić układu który ma 1G tranzystorów.

    To samo płyty głowne, albo np do telefonów. Człowiek nie jest w stanie już takich rzeczy projektować. 16 warstw i to jeszcze SLP.

    Tak że automatyczne trasowanie + symujlacja -> popraawki i od początku przez wiele dni na superkomputerach - tak to działa (przynajmniej tak widziałem na prezentacji ARM-a)

  • Arrow Multisolution Day
  • #3 31 Sie 2018 23:28
    ghost666
    Tłumacz Redaktor

    ptt4 napisał:
    @ghost666 No myślęże dotyczy to tylko takich prostych PC-towych programów. Taki układ scalony np. to też skomplikowna "płytka drukowana" a intel czy ARM chwalą się systemami automatycznego projektowania, które robią zresztą wiele różnych innych rzeczy - bo samo zrobienie połączeń jest dla tych systemów dość trywialnym zadaniem. Robią symulacje dynamiczne - co przy częstotliwościach rzędu GHz jest konieczne. Zresztą bez tego chyba nie da się zrobić układu który ma 1G tranzystorów.

    To samo płyty głowne, albo np do telefonów. Człowiek nie jest w stanie już takich rzeczy projektować. 16 warstw i to jeszcze SLP.

    Tak że automatyczne trasowanie + symujlacja -> popraawki i od początku przez wiele dni na superkomputerach - tak to działa (przynajmniej tak widziałem na prezentacji ARM-a)


    Nie no ;) układ scalony to zupełnie inna para kaloszy - tam bez komputera ani rusz. Teraz już nikt nie układa tranzystorów po kolei. Ale tutaj mówimy o PCB - wydaje mi się, że nawet tak skomplikowane PCB, jak to w telefonie czy komputerze, są projektowane bardziej ręcznie niż automatycznie...

  • #4 01 Wrz 2018 00:45
    Nerwus
    Poziom 18  

    Pracowałem przy projektowaniu platform Ericssona przez prawie 10 lat. Mieliśmy cały dział od layoutu. Ścieżki robili z reki, 9 warstw miały.
    Przy wysokiej skali integracji układów mało jest połączeń zewnętrznych.

  • #5 01 Wrz 2018 07:16
    Christophorus
    Poziom 41  

    ghost666 napisał:
    A Wy – czy korzystaliście kiedyś z autoroutera? Z jakim skutkiem?
    Z moich doświadczeń ze stosowania autoroutera w różnych programach wynika, że efekty jego pracy często są trudne do zaakceptowania nawet w przypadku prostych płytek drukowanych. Można oczywiście korygować rozmieszczenie elementów na płytce i poprawiać przebieg ścieżek. Tylko jeśli mam tracić czas na poprawę autoroutera to lepiej od razu samodzielnie rozmieścić elementy i wytrasować ścieżki. Jako ciekawostkę nadmienię, że obecnie w KiCad 5 wycofano się z automatycznego rozmieszczenia elementów i autoroutera. Pozostał tylko router z funkcją rozpychania ścieżek, ale ścieżki trasuje się w nim ręcznie.

  • #6 01 Wrz 2018 10:06
    ZbeeGin
    Poziom 38  

    Christophorus napisał:
    Jako ciekawostkę nadmienię, że obecnie w KiCad 5 wycofano się z automatycznego rozmieszczenia elementów i autoroutera.

    Automatyczne rozmieszczanie elementów już wraca z powrotem. Choć nie znam nikogo, kto by z tego korzystał.

  • #7 01 Wrz 2018 13:42
    ptt4
    Poziom 2  

    @Nerwus Kiedy?

    @Christophorus Z tego co wiem z plotek to ręcznie robiony jest tylko layout mechaniczny + rozmieszczenie elementów. Później idzie do trasowania, symulowania liczenia na dużych maszynach. Te wielkie firmy mają swoje "proprietary" rozwiązania do tego typu systemów. Jest też kilka firm, które udostępniają IP do tego (ale nie mają stron internetowych aby podejrzeć). Nawet ARM ostatnio szukał ludzi do pracy właśnie w dziale oprogramowania automatyzacji projektowania (i wymogiem była dobra znajomość projektowania PCB). Sądzę że też się chcą przyłączyć do tego tego biznesu.

    @ZbeeGin Oczywiście w takim eagle, altrium czy kikad to się do niczego nie nadaje - bo jak tu @ghost666 nadmienił zanim skonfigurujesz to ręcznie zrobisz. Ale ta zasada nie dotyczy skomplikowanych rozwiązań. Ten co robił nawet prostą płytkę na kilkaset MHz wie jak to jest upierdliwe.

  • #8 01 Wrz 2018 14:12
    acctr
    Poziom 13  

    ghost666 napisał:
    A Wy – czy korzystaliście kiedyś z autoroutera? Z jakim skutkiem? A może korzystacie z niego nadal?

    Dla mało wymagających płytek, czyli tam gdzie nie jest istotna różna grubość ścieżek i ułożenie elementów
    stosuję nierozwijany już FreeRouter w połączeniu z KiCadem.
    Czas projektowania znacząco się skraca w przypadku płytek wielowarstwowych.
    Potrzeba czasem przesunąć element aby pomóc autorouterowi znaleźć lepsze rozwiązanie,
    w tym zmniejszenie liczby przelotek, kilka takich iteracji i płytka gotowa.

  • #9 01 Wrz 2018 16:19
    Christophorus
    Poziom 41  

    Nawet zaawansowane autoroutery czasami się wykładają przy prostych projektach i płytkach jednostronnych. Po prostu zostały zaprojektowane do radzenia sobie z zaawansowanymi, a nie prostymi projektami. Można ustawiać reguły projektowe, tylko to zajmuje czasami sporo czasu, a przeciętny użytkownik danego programu nie zawsze potrafi odpowiednio zdefiniować reguły projektowe

  • #10 02 Wrz 2018 13:07
    malyjasiu
    Poziom 17  

    Czasem korzystam z autoroutera, jako swojego rodzaju pomocy. Kiedy już sam nie wiem, jak te ścieżki poprowadzić. Wtedy "pomysły" autoroutera czasem pozwalają wyjść z impasu. Z tym, że jest on naprawdę "głupi". Wystarczy przesunąć element o pół milimetra (żeby ładniej wyglądało), i już proponuje całkiem inny zestaw ścieżek, często dużo gorszy (Eagle). Ale nie zapieram się, czasem pomaga. Szczególnie w prostych płytkach. Tylko pytanie, czy wielokrotne przestawianie elementów jest szybsze od zaprojektowania ręcznego....

  • #11 02 Wrz 2018 20:37
    Skipperab kobieta
    Poziom 5  

    @ghost666 Cześć! Kręci cię historia i elektronika jednocześnie, czyli to samo co ja a więc twój post mnie zaciekawił. Wstawienie go na forum elektroda pomogło ci łatwo go rozprzestrzenić, ale nie wiem czy to dobre forum na takie tematy? Podszedłeś do tego od strony historycznej, a tu raczej liczy się coś innego. Mi się podobało, ale zapalonym fanom elektroniki mogło to przeszkadzać i w pełni rozumiem dlaczego. Jak już masz takie zasięgi może podpytaj się moderację o to czy post jest w odpowiednim dziale bądź w ogóle na odpowiednim forum, bo nie życzę Ci potem jakichś nieporozumień czy coś. Pozdrawiam i naprawdę chce więcej, jeśli to Tobie ani innym osobom nie będzie przeszkadzało, to czekam na coś o podobnej tematyce. Dziękuję za ilość pracy włożoną w ten artykuł, bo takich informacji nie znajduje się codziennie i na pewno musiałeś się wysilić.

  • #13 03 Wrz 2018 20:19
    Nerwus
    Poziom 18  

    ptt4 napisał:
    @Nerwus Kiedy?


    2007-2015

  • #14 03 Wrz 2018 21:29
    goldi74
    Poziom 43  

    leonow32 napisał:
    Gdzieś w książce Sztuka Elektroniki jest zdjęcie trzech facetów, stojących na rysunku jakiejś płytki, który ma rozmiary dywanu :D To zdjęcie najlepiej pokazuje postęp jaki się dokonał przez ostatnie kilkadziesiąt lat.

    A no jest faktycznie, w drugim tomie. Tyle, że to chyba zdjęcie chipu układu scalonego. ;)

    Historia programów do projektowania płytek drukowanych - część 2

  • #15 03 Wrz 2018 22:15
    Zubiik
    Poziom 11  

    Moim zdaniem przyszłością jest AI i to nie tylko w dziedzinie projektowania PCB. Prędzej czy później będzie to tak powszechne(używanie sztucznej inteligencji) jak dzisiaj korzystanie ze smartphona.

  • #16 12 Wrz 2018 13:27
    michcior
    Poziom 30  

    "Historia programów do projektowania płytek drukowanych" ...
    W pierwszej części o metodach "przedkomputerowych" a w drugiej od razu a autoruterach? Co to
    za chaos, "czelabińska" logika?

    W okolicach 95 roku zajmowałem się "opieką" techniczną nad takimi programami, miałem do czynienia z produktami o jakich już nikt nie pamięta:

    Vutrax (dos/windows)
    P-CAD 4,5,6,7 dos/windows
    Tango
    Autorax dos
    Pads windows
    Accel EDA windows

    No autoruter Spectra, miałem nawet szkolenie w Niemczech, to ten ze zdjęcia w artykule (to niebieskawe). Kiedy jeszcze był produkowany przez C&C zanim kupił ich Cadence.

    A to tylko kawałek historii, można by o tym pisać książkę, ale tak bez składu i ładu i logiki?

  • #17 12 Wrz 2018 13:49
    ghost666
    Tłumacz Redaktor

    michcior napisał:
    "Historia programów do projektowania płytek drukowanych" ...
    W pierwszej części o metodach "przedkomputerowych" a w drugiej od razu a autoruterach? Co to
    za chaos, "czelabińska" logika?

    W okolicach 95 roku zajmowałem się "opieką" techniczną nad takimi programami, miałem do czynienia z produktami o jakich już nikt nie pamięta:

    Vutrax (dos/windows)
    P-CAD 4,5,6,7 dos/windows
    Tango
    Autorax dos
    Pads windows
    Accel EDA windows

    No autoruter Spectra, miałem nawet szkolenie w Niemczech, to ten ze zdjęcia w artykule (to niebieskawe). Kiedy jeszcze był produkowany przez C&C zanim kupił ich Cadence.

    A to tylko kawałek historii, można by o tym pisać książkę, ale tak bez składu i ładu i logiki?


    Nie chaos, tylko krótki cykl ;) nie ma miejsca na rozpisywanie się o tym wszystkim...

    A wymieniony soft jest nadal w pamięci! Autotrax to w sumie pradziad Protela/Altiuma, znanego chyba każdemu; a z PADSa ludzie nadal korzystają i to duże firmy.