सॉफ्टवेयर विकास के साथ डिजिटल डिजाइन में बहुत कुछ नहीं है (शायद सिवाय इसके कि वेरिलॉग सिंटैक्स सी भाषा की तरह थोड़ा सा दिखता है लेकिन यह सिर्फ दिखता है)। इस प्रकार इस प्रश्न का पर्याप्त रूप से उत्तर देना बहुत कठिन है। लेकिन एक आदमी के रूप में जो सॉफ्टवेयर डेवलपमेंट से लेकर हार्डवेयर डिज़ाइन तक का रास्ता तय करता है, मैं इसे शॉट देता हूँ। अपने आप को पीछे देखते हुए, यहाँ बताया गया है कि कैसे मैंने खुद को वापस सलाह दी होगी, अगर मुझे पता था कि मुझे अब क्या पता है:
सहूलियत बिना शुरू करना
सॉफ्टवेयर विकास के बारे में सब कुछ भूल जाओ। खासकर प्रोग्रामिंग लैंग्वेज। वे सिद्धांत डिजिटल डिज़ाइन में लागू नहीं होते हैं। शायद एक आदमी के लिए यह आसान होगा जिसने सीपीयू को इसे कोडांतरक या सी में प्रोग्राम करने के लिए डिज़ाइन किया हो, लेकिन एक कोडांतरक प्रोग्रामर सीपीयू को डिज़ाइन करने में सक्षम नहीं होगा।
आपके सीखने के मार्ग में यह हल नहीं है कि सॉफ्टवेयर से आपके मौजूदा ज्ञान के साथ एक आसान समस्या क्या है। क्लासिक उदाहरणों में से एक "लूप के लिए" है। भले ही आप एक लूप के लिए लिख सकते हैं, कहते हैं, verilog - यह एक अलग उद्देश्य प्रदान करता है। यह मुख्य रूप से कोड पीढ़ी के लिए उपयोग किया जाता है। यह लूप के लिए भी हो सकता है क्योंकि सॉफ़्टवेयर डेवलपर इसे देखते हैं, लेकिन यह किसी भी चीज़ के लिए अच्छा नहीं होगा, लेकिन सिमुलेशन (यानी आप उस तरह FPGA प्रोग्राम नहीं कर पाएंगे)।
इसलिए हर उस काम के लिए जिससे आप निपटना चाहते हैं, यह मत सोचिए कि आप इसे कैसे करना चाहते हैं, इसके बजाय एक शोध करें - पुस्तकों की जांच करें, उदाहरणों, अन्य अनुभवी लोगों से पूछें आदि।
हार्डवेयर और एचडीएल भाषा सीखें
सबसे लोकप्रिय एचडीएल भाषाएं वेरिलोग और वीएचडीएल हैं। AHDL (Altera HDL) जैसे विक्रेता-विशिष्ट भी हैं। चूँकि उन भाषाओं का उपयोग हार्डवेयर घटकों का वर्णन करने के लिए किया जाता है, इसलिए वे सभी समान रूप से एक समान फैशन में एक अलग सिंटैक्स के साथ व्यक्त करने के लिए उपयोग किए जाते हैं।
कुछ लोग वेरिलोग को सीखने की सलाह देते हैं क्योंकि यह सी की तरह दिखता है। हां, इसका सिंटैक्स सी और एड का मिश्रण है, लेकिन यह सॉफ्टवेयर डेवलपर के लिए दुबला होना आसान नहीं है। वास्तव में, मुझे लगता है कि यह और भी बुरा हो सकता है क्योंकि वेरिलोग में सी लिखने का प्रलोभन होगा। जो कि बहुत ही बुरे समय के लिए एक अच्छा नुस्खा है।
ध्यान में रखते हुए, मैं VHDL से घूरने की सलाह दूंगा। हालांकि वेरिलॉग भी ठीक है, जब तक कि ऊपर को ध्यान में रखा जाता है।
एक महत्वपूर्ण बात यह है कि आपको यह समझना चाहिए कि आप उस भाषा के साथ क्या व्यक्त कर रहे हैं। किस तरह के हार्डवेयर का "वर्णन" किया जा रहा है और यह कैसे काम करता है।
इस कारण से, मैं आपको खुद को सामान्य रूप से इलेक्ट्रॉनिक्स पर कुछ पुस्तक और इस तरह की एक अच्छी पुस्तक - एचडीएल चिप डिजाइन (एक नीली किताब के रूप में उर्फ) की सलाह दूंगा ।
एक सिम्युलेटर प्राप्त करें
इससे पहले कि आप हार्डवेयर में कुछ भी करना शुरू करें और किसी भी विक्रेता-विशिष्ट सुविधाओं आदि का उपयोग करें, अपने आप को एक सिम्युलेटर प्राप्त करें। मैं एक वेरिलॉग के साथ शुरू कर रहा था, और GTK वेव के साथ इकारस वेरिलॉग का उपयोग करता था। वे स्वतंत्र मुक्त स्रोत परियोजनाएं हैं। पुस्तकों में आपके द्वारा देखे गए उदाहरणों को चलाएं, इसके कुछ स्वाद प्राप्त करने के लिए अपने स्वयं के सर्किट को डिजाइन करके अभ्यास करें।
एक विकास बोर्ड प्राप्त करें
जब आपको आगे बढ़ने का मन हो, तो एक विकास बोर्ड प्राप्त करें। यदि आप जानते हैं कि आपका नियोक्ता जाली के साथ जाना चाहता है, तो जाली बोर्ड प्राप्त करें।
प्रोग्रामिंग के तरीके बहुत समान हैं, लेकिन ऐसे विवरण हैं जो अलग-अलग हैं। उदाहरण के लिए, विभिन्न उपकरण, विभिन्न विकल्प, विभिन्न इंटरफेस। आमतौर पर, यदि आपके पास एक विक्रेता के साथ अनुभव है, तो स्विच करना मुश्किल नहीं है। लेकिन आप शायद इस अतिरिक्त सीखने की अवस्था से बचना चाहते हैं।
मैं यह भी सुनिश्चित करूँगा कि बोर्ड उन घटकों के साथ आए जिन्हें आप उपयोग करने की योजना बना रहे हैं या जो विस्तार योग्य हैं। उदाहरण के लिए, यदि आप एक नेटवर्क डिवाइस को राउटर की तरह डिजाइन करना चाहते हैं, तो सुनिश्चित करें कि बोर्ड में ईथरनेट PHY है या इसे HSMC कनेक्टर, आदि के माध्यम से बढ़ाया जा सकता है।
बोर्ड आमतौर पर एक अच्छा संदर्भ, उपयोगकर्ता गाइड और डिजाइन उदाहरण के साथ आते हैं। उनका अध्ययन करें।
किताबें पढ़ें
आपको किताबें पढ़ने की आवश्यकता होगी। मेरे मामले में, मेरे पास कोई दोस्त नहीं था जो डिजिटल डिजाइन जानता था, और यह साइट एक साधारण बात की वजह से बहुत उपयोगी नहीं थी - मुझे यह भी नहीं पता था कि मैं अपने प्रश्न को कैसे वाक्यांश दूं। मैं सभी के साथ आ सकता था जैसे "उम्म, दोस्तों, एक चीज है dcfifo और मैंने घड़ी डोमेन क्रॉसिंग चुनौतियों के बारे में कुछ सुना, यह क्या है और मेरा डिज़ाइन काम क्यों नहीं करता है?"।
मैंने व्यक्तिगत रूप से इनसे शुरुआत की:
FPGA के विक्रेताओं के पास सर्वोत्तम प्रथाओं के साथ बहुत सारी कुकबुक हैं। संदर्भ डिजाइन के साथ उनका अध्ययन करें। यहाँ उदाहरण के लिए, Altera से एक है।
अधिक विशिष्ट प्रश्नों के साथ वापस आएं
जब आप अपनी पुस्तकों के माध्यम से जाते हैं, तो एक डिज़ाइन का अनुकरण करें, अपने विकास बोर्ड पर कुछ एलईडी को ब्लिंक करें, आपको सबसे अधिक संभावना है, बहुत सारे प्रश्न होंगे। सुनिश्चित करें कि आप यहाँ पूछने से पहले किताब के अगले पृष्ठ पर या ऑनलाइन (यानी जाली-विशिष्ट मंच में) उन लोगों के लिए एक उत्तर नहीं देखते हैं।