राउटिंग (इलेक्ट्रॉनिक डिजाइन ऑटोमेशन)

इलेक्ट्रॉनिक डिज़ाइन में, वायर राउटिंग, जिसे सामान्यतः राउटिंग कहा जाता है, प्रिंटेड सर्किट बोर्ड (पीसीबी - PCBs) और इंटीग्रेटेड सर्किट्स (आईसी - ICs) के डिज़ाइन में एक उपाय है। यह एक पूर्ववर्ती चरण पर निर्मित होता है, जिसे प्लेसमेंट कहा जाता है, जो एक पीसीबी पर आईसी या घटक के प्रत्येक सक्रिय तत्व का स्थान निर्धारित करता है। प्लेसमेंट के बाद, राउटिंग चरण आईसी के लिए सभी डिज़ाइन नियमों का पालन करते हुए रखे गए घटकों को ठीक से कनेक्ट करने के लिए आवश्यक तारों को जोड़ता है। साथ में, आईसी के डिज़ाइन के लिए प्लेसमेंट और राउटिंग के चरणों को स्थान और मार्ग के रूप में जाना जाता है।

सभी राउटर का कार्य समान होता है। उन्हें कुछ पूर्व आकलन पर निर्भर बहुभुज दिए गए हैं जिनमें कोशिकाओं पर पिन (जिसे टर्मिनल भी कहा जाता है) और वैकल्पिक रूप से कुछ पूर्व तारों को प्रीरूट्स कहा जाता है। इनमें से प्रत्येक बहुभुज एक जाल से जुड़ा होता है, सामान्यतः पर नाम या संख्या से। राउटर का प्राथमिक कार्य ज्यामिति बनाना है जैसे कि एक ही नेट को सौंपे गए सभी टर्मिनल जुड़े हुए हैं, अलग-अलग नेट को सौंपे गए कोई भी टर्मिनल जुड़े नहीं हैं, और सभी डिज़ाइन नियमों का पालन किया जाता है। एक राउटर उन टर्मिनलों को कनेक्ट न करने से विफल हो सकता है जिन्हें कनेक्ट किया जाना चाहिए (एक खुला), गलती से दो टर्मिनलों को कनेक्ट करके जो कनेक्ट नहीं होना चाहिए (एक छोटा), या डिज़ाइन नियम उल्लंघन बनाकर। इसके अलावा, नेट को सही ढंग से कनेक्ट करने के लिए, राउटर से यह सुनिश्चित करने की भी उम्मीद की जा सकती है कि डिज़ाइन समय को पूरा करता है, कोई क्रॉसस्टॉक समस्या नहीं है, किसी भी धातु घनत्व आवश्यकताओं को पूरा करता है, एंटीना प्रभाव से ग्रस्त नहीं है, और इसी तरह परस्पर विरोधी उद्देश्यों की यह लंबी सूची ही राउटिंग को बेहद कठिन बना देती है।

राउटिंग से जुड़ी सामान्यतः हर समस्या को मुश्किल माना जाता है। सबसे सरल राउटिंग समस्या, जिसे स्टीनर ट्री समस्या कहा जाता है, बिना किसी बाधा के एक परत में एक जाल के लिए सबसे छोटे मार्ग को ढूंढने के लिए कोई और डिज़ाइन नियम नहीं है यदि सभी कोणों की अनुमति मिल जाती है और एनपी-पूर्ण है यदि केवल क्षैतिज और ऊर्ध्वाधर तारों की अनुमति है। चैनल राउटिंग के वेरिएंट को भी एनपी-पूर्ण दिखाया गया है, साथ ही राउटिंग जो क्रॉसस्टॉक, वायस की संख्या आदि को कम करती है। इसलिए राउटर शायद ही कभी एक इष्टतम परिणाम ढूंढने का प्रयास करते हैं। इसके स्थान पर, सामान्यतः सभी राउटिंग अनुमानों पर आधारित होते हैं जो एक ऐसा समाधान ढूंढने की कोशिश करते हैं जो इसके अतिरिक्त तुलना में अच्छा हो।

डिज़ाइन नियम कभी-कभी परत से परत में काफी भिन्न होते हैं। उदाहरण के लिए, निचली परतों पर अनुमत चौड़ाई और रिक्ति ऊपरी परतों पर अनुमत चौड़ाई और रिक्ति से चार या अधिक गुना छोटी हो सकती है। यह कई अतिरिक्त जटिलताओं का परिचय देता है जो अन्य अनुप्रयोगों जैसे कि मुद्रित सर्किट बोर्ड या मल्टी-चिप मॉड्यूल डिज़ाइन के लिए राउटर के सामने नहीं आती हैं। विशेष रूप से कठिनाइयाँ तब आती हैं जब नियम एक-दूसरे के सरल गुणक नहीं होते हैं, और जब विअस को विभिन्न नियमों के साथ परतों के बीच से गुजरना पड़ता है।

राउटर के प्रकार
ईडीए राउटर के शुरुआती प्रकार "मैनुअल राउटर" थे - ड्राफ्टर ने प्रत्येक नेट के प्रत्येक लाइन सेगमेंट के एंडपॉइंट पर एक माउस क्लिक किया। आधुनिक पीसीबी (PCB) डिजाइन सॉफ्टवेयर सामान्यतः पर "इंटरैक्टिव राउटर्स" प्रदान करता है - ड्राफ्टर एक पैड का चयन करता है और ईडीए (EDA) टूल को यह पता लगाने के लिए कुछ जगहों पर क्लिक करता है कि कहां जाना है, और ईडीए टूल तारों को उस पथ के जितना संभव हो सके बिना उल्लंघन किए रखने की कोशिश करता है। डिज़ाइन नियम जाँच डीआरसी (DRC)। कुछ और उन्नत इंटरएक्टिव राउटर में एक इंटरेक्टिव राउटर में "पुश एंड शॉव" (उर्फ "शॉव-एसाइड" या "ऑटोमूविंग") विशेषताएं होती हैं; ईडीए उपकरण अन्य जालों को रास्ते से हटा देता है, यदि संभव हो तो, एक नया तार लगाने के लिए जहां ड्राफ्टर इसे चाहता है और फिर भी डीआरसी का उल्लंघन करने से बचता है।

आधुनिक पीसीबी डिजाइन सॉफ्टवेयर भी आम तौर पर "ऑटोराउटर" प्रदान करता है जो मानव हस्तक्षेप के बिना सभी शेष अनियंत्रित कनेक्शनों को रूट करता है।

ऑटोराउटर के मुख्य प्रकार हैं:


 * मेंज़ राउटर
 * ली राउटर
 * हैडलॉक राउटर
 * फ्लड राउटर


 * लाइन-जांच राउटर
 * मिकामी-ताहुची राउटर
 * हाईटॉवर राउटर


 * पैटर्न राउटर
 * चैनल राउटर
 * स्विचबॉक्स राउटर
 * नदी रूटर
 * स्पाइन और स्टिच राउटर


 * ग्रिडलेस राउटर
 * एरिया राउटर
 * ग्राफ सिद्धांत-आधारित राउटर
 * ब्लडहाउंड राउटर  (रकल-रेडैक द्वारा कैडस्टार / ज़ुकेन)
 * स्पेक्ट्रा (उर्फ एलेग्रो पीसीबी राउटर) (संस्करण 10 से ग्रिड रहित)
 * टोपोलॉजिकल राउटर
 * फ्री स्टाइल राउटर (उर्फ स्पीडवे, पी-सीएडी के लिए डॉस-आधारित ऑटोराउटर)
 * टॉप राउटर (एक विंडोज़-आधारित ऑटोराउटर, जिसका उपयोग एरेमेक्स के डेल्टा डिज़ाइन में भी किया जाता है)
 * टॉप राउटर (जीईडीए सूट के पीसीबी में एंथनी ब्लेक का ओपन-सोर्स राउटर)
 * टॉप राउटर(कैडसॉफ्ट/ऑटो डेस्क ईगल 7.0 और उच्चतर में टोपोलॉजिकल प्री-राउटर)
 * पीसीबी को सरल बनाएं (हैंड-राउटिंग परिणामों के साथ बंडल राउटिंग पर ध्यान देने वाला एक टोपोलॉजिकल राउटर)

राउटर कैसे काम करते हैं
कई राउटर निम्नलिखित समग्र एल्गोरिदम निष्पादित करते हैं:


 * सबसे पहले, मोटे ग्रिड पर राउटिंग करके, प्रत्येक नेट के लिए एक अनुमानित पाठ्यक्रम निर्धारित करें। इस चरण को वैश्विक राउटिंग कहा जाता है और इसमें वैकल्पिक रूप से परत असाइनमेंट शामिल हो सकता है। ग्लोबल राउटिंग निम्नलिखित विस्तृत राउटिंग चरणों के आकार और जटिलता को सीमित करता है, जिसे ग्रिड स्क्वायर द्वारा ग्रिड स्क्वायर किया जा सकता है।

विस्तृत राउटिंग के लिए, सबसे आम तकनीक है रिप-अप और रीरूट उर्फ ​​रिप-अप और पुनः प्रयास:

उस क्रम का चयन करें जिसमें जालों को रूट किया जाना है।


 * प्रत्येक नेट को क्रम से रूट करें
 * यदि सभी जालों को सफलतापूर्वक रूट नहीं किया जा सकता है, तो विभिन्न प्रकार की "क्लीनअप" विधियों में से कोई भी लागू करें, जिसमें चयनित राउटिंग हटा दिए जाते हैं, शेष नेट को रूट करने का क्रम बदल दिया जाता है, और शेष राउटिंग को फिर से करने का प्रयास किया जाता है।

यह प्रक्रिया तब तक दोहराई जाती है जब तक कि सभी नेट रूट नहीं हो जाते या प्रोग्राम (या उपयोगकर्ता) हार नहीं मान लेता।

एक वैकल्पिक तरीका यह है कि शॉर्ट्स, डिज़ाइन नियमों के उल्लंघन, अवरोधों आदि को तार की अतिरिक्त लंबाई के समान स्तर पर माना जाए - यानी, परिमित लागतों को कम करने के लिए (पहले) के बजाय निरपेक्षता से बचा जाना चाहिए। यह बहु-पास "पुनरावृत्ति-सुधार" राउटिंग विधि निम्न एल्गोरिथम द्वारा वर्णित है:


 * कई पुनरावृत्त पासों में से प्रत्येक के लिए:
 * "ऑब्जेक्टिव फंक्शन" के वजन मापदंडों को निर्धारित या समायोजित करें (अतिरिक्त तार लंबाई की प्रत्येक इकाई के लिए वजन पैरामीटर मान और प्रत्येक प्रकार के उल्लंघन के लिए)। उदाहरण के लिए, पहले पास के लिए, अतिरिक्त तार की लंबाई को आमतौर पर एक उच्च लागत दी जा सकती है, जबकि डिजाइन के उल्लंघन जैसे कि शॉर्ट्स, आसन्नता, आदि को कम लागत दी जाती है। बाद के पासों में, लागतों का सापेक्ष क्रम बदल दिया जाता है ताकि उल्लंघन उच्च लागत वाले हों, या पूरी तरह से प्रतिबंधित हो सकते हैं।
 * एक अनुक्रम चुनें (या बेतरतीब ढंग से चुनें) जिसमें इस पास के दौरान जाल को रूट किया जाना है।
 * "रिप अप" (यदि पहले रूट किया गया हो) और बदले में प्रत्येक नेट को फिर से रूट करें, ताकि उस नेट के उद्देश्य फ़ंक्शन के मूल्य को कम किया जा सके। (कुछ राउटिंग में सामान्य रूप से शॉर्ट्स या अन्य डिज़ाइन उल्लंघन होंगे।)
 * राउटिंग पूर्ण और सही होने तक अगले पुनरावृत्त पास पर आगे बढ़ें, इसमें और सुधार नहीं किया गया है, या कुछ अन्य समाप्ति मानदंड संतुष्ट हैं।

अधिकांश राउटर मुख्य रूप से "x" या "y" दिशात्मक तारों को ले जाने के लिए तारों की परतें प्रदान करते हैं, चूंकि ऐसे राउटर हैं जो इस तरह के असाइनमेंट की आवश्यकता से बचते हैं या कम करते हैं। प्रत्येक दृष्टिकोण के फायदे और नुकसान हैं। प्रतिबंधित दिशाएँ बिजली आपूर्ति डिज़ाइन और इंटर-लेयर क्रॉसस्टॉक के नियंत्रण को आसान बनाती हैं, लेकिन मनमाने मार्गों की अनुमति देने से वायस की आवश्यकता कम हो सकती है और आवश्यक वायरिंग परतों की संख्या कम हो सकती है।

यह भी देखें

 * इलेक्ट्रॉनिक डिजाइन स्वचालन
 * डिजाइन प्रवाह (ईडीए)
 * एकीकृत परिपथ डिजाइन
 * स्थान और मार्ग
 * ऑटो ध्रुवीयता (अंतर जोड़े)
 * ऑटो क्रॉसओवर (ईथरनेट)

बाहरी संबंध

 * http://www.eecs.northwestern.edu/~haizhou/357/lec6.pdf
 * http://www.facweb.iitkgp.ernet.in/~isg/CAD/SLIDES/10-grid-routing.pdf