česky english Vítejte, dnes je středa 25. prosinec 2024

Concurrent Engineering a jeho aplikace v návrhu desek

DPS 5/2012 | Články
Autor: Jamie Metcalfe, Mentor Graphics

Všichni se zajímáme o to, jak věci, které děláme, dělat rychleji a lépe. Ať už se jedná o mytí auta, vaření jídla, nebo třeba návrh desek plošných spojů. Pochopitelně, že když se zabýváme návrhem plošných spojů, je to mnohem důležitější než domácí práce. „Concurrent engineering“ zavádí součinnost do procesu návrhu desky, která vede ke kratší době návrhu a příznivě ovlivňuje celkové náklady i kvalitu.

Nedávná studie provedená agenturou Aberdeen Group na téma návrhu desek plošných spojů zjistila, že nejlepší fi rmy v oboru se vždy zaměřují na komunikaci a kooperaci během návrhu. Toho dosáhnou tím, že jejich lidé v rozšířeném návrhovém týmu pracují na návrhu desek současně. Takové firmy dosahují až o 60 % kratší doby návrhu oproti fi rmám používajícím klasický přístup k návrhu desek.

Co je „concurrent engineering“?

„Concurrent Engineering“ je dost široký pojem, který si vysvětlíme na dvou příkladech:

  • Jídlo, které se skládá ze salátu a grilovaného masa, může být připraveno rychleji, když jeden člověk pracuje na salátu, zatímco druhý v tu samou chvíli griluje maso. S tímto přístupem k věci bude ušetřený čas roven tomu kratšímu z obou činností. Toto je příklad nezávislého (independent) concurrent engineering, který zahrnuje všechny druhy prováděné práce – v tomto případě se obě aktivity neovlivňují, ale jejich souběžné provedení zkrátí délku vykonávané práce.
  • Dva lidé mohou umýt auto mnohem rychleji než jenom jeden. Nikdo z nich se nebude zabývat mytím té části auta, kterou již umyl ten druhý, i když na některých místech se jejich práce může přece jen trochu překrývat. S tímto přístupem neumyjí auto dva lidé přesně za poloviční dobu, než kterou by jinak potřeboval k umytí pouze jeden z nich, ale i tak bude auto určitě umyto rychleji – řekněme s úsporou 40 % času. Toto je příklad společného (collaborative) concurrent engineering v rámci jednoho druhu prováděné práce – všechny aktivity jsou prováděny ve vzájemném souladu, přičemž pro dosažení optimálního výsledku vyžadují v danou chvíli vzájemnou komunikaci.

V návrhu desek je nezávislý concurrent engineering často používán, protože může být proveden i nezávisle na možnostech použitých nástrojů. Je však pravdou, že změna nebo chyba v jedné aktivitě může ovlivnit tu druhou. Tak např. nejvíce rozšířenou formou nezávislého concurrent engineering je práce na schematickém zapojení paralelně k návrhu desky. Změna ve schématu, a tím změna v netlistu vyžaduje aktualizaci netlistu v návrhu desky. Komunikace a schopnost zajištění změn mezi oběma aktivitami je pro tento způsob práce kritická.

Tzv. „collaborative concurrent“ nástroje pro návrh desky byly vytvořeny pro použití jedním uživatelem. Nápadití uživatelé si však našli cesty jak použít také concurrent engineering v případě aktivit jednoho uživatele. Tím je snaha eliminovat závislost na druhých v podobě rozdělení práce a pozdějšího sesazení jednotlivých výsledků dohromady.

Conncurent Engineering a jeho aplikace v návrhu desek

Rozdělením návrhu desky na dvě části vznikají prakticky dva nové návrhy. Na obou dvou lze pracovat nezávisle na sobě a potom je složit zpět do jednoho návrhu původní desky. Je však nutné upravit okolí dělení desky na dva návrhy s ohledem na změny v umístění součástek, vzájemné propojení plošnými spoji a různá omezení.

Změna v rozmístění v jedné polovině děleného návrhu může způsobit problém pro tu druhou. Propojení obou polovin návrhu plošnými spoji nemusí být úplně jednoduchou záležitostí a může být spojeno s porušením zadání a pravidel návrhu. Problém s tímto přístupem k řešení návrhu desky zahrnuje práci navíc spojenou s dělením návrhu na dvě či více částí, riskování možných chyb a neoptimálního využití zdrojů (lidských i nástrojových). Navíc, rozdělení návrhu desky na oblasti nemusí být vždy dobré – lepší může být dělení podle netů nebo sběrnic, nebo podle jednotlivých vrstev desky. K tomu je ještě potřeba zdůraznit, že tento způsob je užitečný pouze pro routování rozdělených částí desky, ne např. pro rozmisťování součástek.

Concurrent engineering prakticky

Podívejme se, jak může být concurrent engineering aplikováno v případě schematického zapojení a návrhu desky:

Kreslení schematického zapojení je založeno na použití více stránek a může být jednovrstvé (flat design), nebo hierarchické. Je možné, aby několik lidí pracovalo na jednotlivých stránkách schématu, když se před tím domluví na propojení jednotlivých stránek. Různé rozdíly mezi stránkami mohou být nalezeny během kontroly schématu, nebo v nejhorším případě, během návrhu desky. Nesprávnosti ve vlastním propojení nemusí být objeveny dříve, než je vyroben prototyp. Jedním z problémů je potřeba definování požadavků na spoje (nets).V dnešní době je docela obvyklé, že i na více než 80 % spojů jsou kladeny určité požadavky (constraints), čímž vzniká potřeba spolupracovat na definici těchto požadavků. V současnosti se tato otázka řeší několika různými způsoby:

  • Definováním požadavků v oddělené specifikaci, přičemž lze doufat, že návrhář desky tomu porozumí a nějak se s tím vypořádá.
  • Částečným definováním požadavků použitím dostupných, ale omezených vlastností nástroje a zálohováním pomocí napsaných instrukcí. Toto není o mnoho lepší než předcházející varianta.
  • Úplným definováním požadavků ve schématu a použitím této definice při návrhu desky.

Toto je případ, kdy je concurrent engineering prováděn s pomocí možností nástrojů. Ne všechny schematické editory mají možnost definování požadavků na jednotlivé spoje (constraint management). Většina z těch nástrojů, které mají tuto možnost definování požadavků, uplatňují sériový přístup k těmto definicím – v danou chvíli může editovat definice pouze jeden pracovník. Toto omezení vyplývá z toho, že požadavky na spoje se týkají celého návrhu, a jsou drženy v jedné databázi, ke které může mít v tu danou chvíli přístup jen jeden člověk.

Návrh desky je obtížnější oříšek k rozlousknutí. Na rozdíl od schématu, které je přirozeně rozděleno do více stránek, deska plošných spojů je v databázi brána jako jeden celek, jakoby jedna stránka. Většina návrhových programů umožňuje dělit návrh desky tak, že vzniká několik nových návrhů pro jednotlivé dělené části. Normálně lze toto provést až po rozmístění součástek na celé desce, jinak by nebylo možné najít části desky k dělení. Pravidla pro opětovné sesazení navržených částí desky jsou stanovena podle potřeby konkrétní desky. S tímto přístupem se do popředí dostávají znepokojivé otázky. Co se spoji, které jdou z jedné části dělení do druhé? Co když ta část dělení potřebuje více prostoru, např. kvůli zhotovení „fanout“ spojů atd.? Co když rozdělení desky není optimální, např. kvůli sběrnicím? Odpovědí na některé otázky může být opětovné rozdělení desky, provedení potřebných úprav na jednotlivých částech a její zpětné sesazení do jednoho celku.

Jak je vidět, tento přístup k věci je docela komplexní. Zatímco se uživatelé a dodavatelé nástrojů snaží o automatizaci a kontrolu celého procesu, naznačené problémy souvisí s daleko závažnější záležitostí, a tou je architektura nástroje. Mnohé návrhové programy byly vytvořeny v 80. a 90. letech minulého století. Jedinou možnou cestou jak dosáhnout concurrent engineering s nástroji připravenými pro samostatné uživatele je jejich použití při nezávislém concurrent engineering, popsaném již dříve. Pochopitelně, ne nezávislé, ale společné concurrent engineering by mělo větší smysl. Tato úloha již byla vyřešena pro některá odvětví, jako je IT, nebo dokonce videohry použitím architektury klient-server.

Dnešní videohry umožňují hrát několika hráčům najednou jednu hru přes internet. Server zajišťuje přístup do databáze hry více klientům najednou, a přitom zaručuje data integrity, odezvu v reálném čase a komunikaci mezi hráči. Existuje více příkladů, jako jsou video konference, finanční zprávy atd. Není tedy na čase, aby nástroje pro návrh desky také využily možnosti této technologie? Pochopitelně ta doba nastala, a proto lze dnes vidět tuto technologii u více moderních návrhových systémů.

Společné (collaborative) concurrent engineering

Architektura klient-server umožňuje vývojovým pracovníkům a návrhářům pracovat ve stejnou chvíli na stejném návrhu desky. Tito návrháři mohou být fyzicky na různých místech, často i velmi vzdálených. Několik inženýrů může pracovat na schematickém zapojení tak, že v reálném čase vidí svoji dílčí práci v kontextu práce ostatních. Pokud se něco někde změní, okamžitě to vidí, takže není potřeba čekat na kontrolu celého schématu. Mohou zadávat požadavky na jednotlivé spoje a současně vidí, jak ostatní definují své požadavky pro jejich část schématu, aniž by jim tím působili nějaké komplikace. Pokud je potřeba provést změny na spoji, který prochází přes další stránky schématu, není to problém. Protože je zde jen jedna databáze schématu, nedochází k chybám jinak způsobeným nutnými synchronizacemi. Tak vypadá skutečný návrhový tým v akci. Když je architektura klient- -server aplikovaná na návrh desky plošných spojů, potom umožňuje více návrhářům pracovat na jednom návrhu v tu samou chvíli bez nutnosti dělení desky na jednotlivé části a jejich pozdější sesazení zpět v jeden celek. Každý návrhář může vidět, na jaké části desky pracují ostatní a co konkrétně dělají – možnosti jsou bez konce a mohou být využity od rozmisťování součástek přes routování až k výstupům pro výrobu. Jednotliví návrháři mohou pracovat na různých částech či vrstvách desky. Ostatní vývojáři mohou být přivoláni na pomoc při rozhodování o rozmístění kritických součástek nebo jejich routování. Návrháři mohou být různými specialisty, např. pro VF, FPGA, ASIC nebo IC atd. Konzultanti návrhu mohou pracovat na návrhu, aniž data návrhu opustí server firmy. Nyní by už mělo být zřejmé, jak je možné pro firmy dosáhnout až 60% úspory času v návrhu desky. Na rozdíl od nezávislého přístupu k práci, není zde duplikace dat, ale je zde komunikace změn a viditelnost celého návrhu v reálném čase.

Výhody společného concurrent engineering

Největší výhodou je podstatné zrychlení práce, které mnohdy pomůže dohnat jinak ztracený čas vývoje. Jsou tu ale i další výhody a konkrétní výsledky:

  • schopnost využít jinak nevyužité zdroje
  • intenzivnější komunikace mezi jednotlivými pracovníky týmu
  • integrita dat – není potřeba dělení a zpětného sesazení, je pouze jedna kopie návrhových dat
  • posílení týmového přístupu k práci – členové týmu se učí navzájem a jsou motivováni sounáležitostí k týmu
  • ohromná přizpůsobivost v řízení a využití lidských zdrojů
  • zvýšení znalostí členů týmu, dokonce i když členové týmu nejsou v jednom místě
  • prokazatelný finanční profit firem používajících tento typ concurrent engineering
  • firma Alcatel Lucent dosáhla 60% snížení doby návrhu desky ze 13 týdnů na 7 týdnů
  • společnost Fujitsu Technology Solutions mohla eliminovat nákladné noční směny
  • firma Kontron snížila dobu návrhu desek o 25 %, přestože se její návrhy staly komplexnější

Collaborative concurrent engineering, které nabízí výhody ve vysoké produktivitě práce a ve zkrácení doby návrhového cyklu, je dnes možné díky architektuře klient-server a rychlé infrastruktuře sítě. Nová generace návrhových systémů desek plošných spojů, jako je např. Expedition Enterprise od Mentor Graphics, zajišťuje fi rmám s takovýmto nástrojem skutečnou konkurenční výhodu.