FPGA HDL संश्लेषण से अलग ASIC डिजाइन कैसे है?


42

मुझे FPGA / HDL टूल सूट जैसे Xilinx ISE, Lattice Diamond, आदि के साथ कुछ अनुभव हुआ है। सामान्य वर्कफ़्लो Verilog / VHDL, सिमुलेशन, परीक्षण और फिर FPGA की प्रोग्रामिंग कर रहा है।

मैंने सुना है कुछ लोगों का कहना है कि ASIC डिजाइन बहुत अलग है। दो प्रमुख प्रकार के ASIC, गेट स्तर ASIC और ट्रांजिस्टर स्तर ASIC के लिए कौन से टूलसेट का उपयोग किया जाता है? मैं उच्च स्तर के संश्लेषण उपकरण जैसे कि कैपट्ट सी और ताल सी से लेकर सिलिकॉन तक देख रहा हूं, लेकिन मैंने कभी कोई कोशिश नहीं की। क्या आप ASIC / FPGA क्षेत्र में उपलब्ध विभिन्न प्रकार के उपकरणों की व्याख्या कर सकते हैं जो विशिष्ट HDL वर्कफ़्लो को बदल / तेज कर सकते हैं?

जवाबों:


39

आमतौर पर ASIC डिजाइन काम की जटिलता और मात्रा के कारण एक टीम प्रयास है। मैं चरणों का एक मोटा क्रम देता हूँ, हालाँकि कुछ चरणों को समानांतर या क्रम से पूरा किया जा सकता है। मैं उन उपकरणों की सूची दूंगा जिनका उपयोग मैंने प्रत्येक कार्य के लिए किया है, लेकिन यह विश्वकोश नहीं होगा।

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

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

  3. अपने डिजाइन का संश्लेषण करें। मुझे उच्च स्तरीय संकलक के साथ अनुभव नहीं है, लेकिन दिन के अंत में संकलक या संकलक श्रृंखला को आपके उच्च स्तर के डिजाइन को लेना चाहिए और गेट-स्तरीय नेटलिस्ट उत्पन्न करना चाहिए। संश्लेषण परिणाम पहली बार आपको सैद्धांतिक प्रणाली के प्रदर्शन पर मिलता है, और जहां ड्राइव शक्ति के मुद्दों को पहली बार संबोधित किया जाता है। मैंने RTL कोड के लिए डिज़ाइन कंपाइलर का उपयोग किया है ।

  4. अपने डिज़ाइन को रखें और रूट करें। यह सिंथेसाइज़र से गेट-लेवल नेटलिस्ट लेता है और इसे एक भौतिक डिज़ाइन में बदल देता है। आदर्श रूप से यह पैड-टू-पैड लेआउट उत्पन्न करता है जो निर्माण के लिए तैयार है। अपने P & R सॉफ़्टवेयर को स्वचालित रूप से हजारों DRC त्रुटियों को स्वचालित रूप से सेट करना आसान है, इसलिए इस चरण में सभी मज़ेदार और गेम नहीं हैं। अधिकांश सॉफ्टवेयर ड्राइव शक्ति के मुद्दों का प्रबंधन करेंगे और निर्देशित के रूप में घड़ी के पेड़ उत्पन्न करेंगे। कुछ सॉफ्टवेयर पैकेजों में एस्ट्रो, आईसी कंपाइलर, सिलिकॉन एनकाउंटर और सिलिकॉन एनसेंबल शामिल हैं। स्थान और मार्ग से अंतिम परिणाम अंतिम नेटलिस्ट, अंतिम लेआउट और निकाले गए लेआउट परजीवी हैं।

  5. पोस्ट-लेआउट स्टेटिक टाइमिंग विश्लेषण। यहां लक्ष्य यह सत्यापित करना है कि आपका डिज़ाइन आपके समय विनिर्देशन को पूरा करता है, और इसमें कोई सेटअप, होल्ड या गेटिंग समस्याएँ नहीं हैं। यदि आपकी डिज़ाइन आवश्यकताएं कड़ी हैं, तो आप त्रुटियों को ठीक करने और अपने P & R टूल में सुधारों को अपडेट करने में बहुत समय व्यतीत कर सकते हैं। अंतिम एसटीए टूल जिसका हमने उपयोग किया था वह था प्राइमटाइम

  6. लेआउट का भौतिक सत्यापन। एक बार पी एंड आर उपकरण द्वारा एक लेआउट तैयार किया गया है, आपको यह सत्यापित करने की आवश्यकता है कि डिजाइन प्रक्रिया डिजाइन नियमों (डिजाइन नियम चेक / डीआरसी) से मिलता है और यह लेआउट योजनाबद्ध (लेआउट बनाम योजनाबद्ध / एलवीएस) से मेल खाता है। इन चरणों का पालन यह सुनिश्चित करने के लिए किया जाना चाहिए कि लेआउट सही ढंग से वायर्ड है और यह manufacturable है। फिर से, कुछ भौतिक सत्यापन उपकरण Assura , Diva , या Caliber हैं

  7. अंतिम डिजाइन का अनुकरण। जटिलता के आधार पर, आप स्पेक्टर या HSPICE , HSIM का उपयोग करके "फास्ट मसाला" सिमुलेशन , या ModelSim या VCS का उपयोग करके पूरी तरह से डिजिटल सिमुलेशन का उपयोग करके ट्रांजिस्टर-स्तरीय सिमुलेशन करने में सक्षम हो सकते हैं । आपको अपने STA या P & R टूल की मदद से यथार्थवादी देरी के साथ एक सिमुलेशन उत्पन्न करने में सक्षम होना चाहिए।

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


2
चूंकि आपने वर्चुअोसो का उल्लेख किया है, इसलिए कैडेंस डिजाइन के लिए एक पूर्ण टूलकिन प्रदान करता है (मुझे लगता है कि इसे ओपस कहा जाता है), जहां यह योजनाबद्ध से शुरू करना संभव है, एकल कोशिका को रखना, परजीवी प्रभाव का मूल्यांकन करना, इसे चिह्नित करना और फिर इसे ऊपरी स्तर में बनाना है। ।
clabacchio

1
मुझे लगता है कि प्रत्येक प्रमुख विक्रेता एक पूर्ण टूलकिन प्रदान करता है। हमने अपने टूलकिन में कई विक्रेताओं का उपयोग करके समाप्त कर दिया, और इस तरह हम उन उपकरणों का उपयोग कर सकते हैं जिनसे हम सबसे अधिक परिचित थे या जिनके पास सबसे अच्छी उद्योग प्रतिष्ठा थी।
W5VO

1
पुस्तकालय या डिजाइन किट समर्थन के लिए उपकरण चुनना व्यावहारिक रूप से एक आवश्यकता है। यदि आप किसी विशेष सॉफ़्टवेयर के समर्थित संस्करण का उपयोग नहीं कर रहे हैं, तो कुछ असंगतता आपके डिज़ाइन को मार सकती है या आपको गलत रीडिंग दे सकती है। यह कहा जा रहा है, EDA के अधिकांश उपकरण जिन्हें मैंने यूनिक्स / लिनक्स सिस्टम पर चलाया है। अधिकांश में घुमावदार सीखने की अवस्था है।
W5VO

1
@MartinThompson बिल्कुल। जितना अधिक आप अपनी तकनीक (ASIC / FPGA) की सीमाओं को आगे बढ़ाते हैं, उतने ही महत्वपूर्ण चरण होते हैं। कहा जा रहा है, उन उपकरणों के एएसआईसी संस्करण आपको परेशानी में डालने के लिए बहुत अधिक रस्सी देते हैं।
W5VO

1
ध्यान दें कि 1 और 2 डिजाइन का सामान्य हिस्सा नहीं हैं। ये चरण तथाकथित "प्रक्रिया योग्यता" का एक हिस्सा हैं, और परिणाम (पूरी तरह से चित्रित पुस्तकालय) एफएबी विक्रेता द्वारा प्रदान किए जाते हैं। लेकिन कुछ कंपनियां "पूर्ण कस्टम डिज़ाइन" कर रही हैं, और उन्हें अपने दम पर 1 और 2 को पूरा करना होगा।
अले..चेन्स्की

7

W5VO से जवाब बैक-एंड पर ध्यान केंद्रित करता है, और यह है एएसआईसी और FPGA बहती के बीच एक बड़ा अंतर; लेकिन यह डिजिटल डिजाइन सत्यापन भाग को याद करता है।

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


मैं यह जोड़ूंगा कि एक डिजिटल डिजाइनर के लिए बुनियादी वर्कफ़्लो ASIC और FPGA के बीच बहुत भिन्न नहीं है, लेकिन ASIC में उपलब्ध मैक्रो / माइक्रो तत्वों, रखने और मार्ग के संदर्भ में बहुत अधिक लचीलापन है, जबकि FPGA उनके प्री-फैब्रिक लॉजिक ब्लॉक तक ही सीमित है और इंटरकनेक्ट टोपोलॉजी में सीमित है। इस प्रकार FPGA ASIC के प्रदर्शन स्तर तक नहीं पहुँच सकता है, और थोड़ा अलग डिज़ाइन समाधान तय कर सकता है।
अले..चेन्स्की

हाय अली चेन। यदि डिजिटल डिज़ाइन और डिजिटल सत्यापन को अलग-अलग माना जाता है, तो विशुद्ध रूप से डिजिटल डिज़ाइन के लिए प्रवाह FPGA बनाम ASIC के करीब है, लेकिन जैसा कि मैंने उल्लेख किया है, सत्यापन में काफी अलगाव है। :-)
धान 3118
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.