FPGA, पहले चरण


11

खैर यह यहाँ पर FPGA पर मेरे सवाल का एक निरंतरता है

मैंने आखिरकार एक स्पार्टन 6 एफपीजीए के साथ डिजीलेंट एटिलेस का चयन किया , मुझे एफपीजीए का कोई पूर्व अनुभव नहीं है, हालांकि मैंने माइक्रो-कंट्रोलर्स के साथ कुछ काम किया है।

मैंने पिछले कुछ दिनों को FPGA की डेटा शीट के माध्यम से पढ़ने में बिताया, और मुझे लगता है कि यह वेरिलोग के साथ शुरू करने के लिए एक अच्छा विकल्प होगा। मुझे हालांकि कोई भी कोड उदाहरण नहीं मिला और यहां तक ​​कि डेटा शीट भी नौसिखिया के अनुकूल नहीं हैं।

मैं अब प्रोग्रामिंग, सिमुलेशन, संश्लेषण पर कुछ हाथ करना चाहता हूं और यही मैं करना चाहता हूं

  1. एक अजीब आवृत्ति उत्पन्न करें, FPGA से 54Mhz (यह 100Mhz की घड़ी पर चलता है) और इसे पिन में से किसी एक पर रूट करें। मुझे शायद इसके लिए डीसीएम या पीएलएल का उपयोग करना होगा, लेकिन यह नहीं पता कि यहां कैसे शुरू किया जाए?

  2. FPGA से I2C रीड राइट के कुछ प्रकार को लागू करें।

मैं जो देख रहा हूं वह एक संदर्भ है, संभवतः एक ऑनलाइन या एक पुस्तक जो मुझे कोड उदाहरण और FPGA के अंदर उपलब्ध प्रत्येक हार्डवेयर घटक का विवरण देता है, जैसे DCM, स्लाइस, clb इत्यादि।

मुझे लगता है कि मुझे FPGA की दुनिया में शुरुआत करनी चाहिए।

जवाबों:


13

कोड उदाहरण

OpenCores पर हॉप करें और आपको दर्जनों ओपन सोर्स प्रोजेक्ट मिलेंगे। वेरिलोग में कई लिखे गए हैं और प्रोसेसर के माध्यम से I / O उपकरणों से सरगम ​​को कवर करते हैं।

इसके अलावा, Xilinx से उपलब्ध कई एप्लिकेशन नोट्स को मत भूलना। वे अपने उपकरणों के साथ बहुत मददगार हैं।

डिजाइन प्रवाह

एक पुस्तक या दो को डिजाइन प्रवाह पर उठाओ ताकि आपको FPGA डिजाइन में शामिल चरणों पर एक अवलोकन प्राप्त हो। सारांश में, वे शामिल होंगे:

  1. डिजाइन प्रविष्टि - आपके मामले में, वेरिलोग।
  2. कार्यात्मक सिमुलेशन - विभिन्न उपकरणों का उपयोग करना।
  3. संश्लेषण - आपके मामले में, Xilinx ISE टूल का उपयोग करना।
  4. सिमुलेशन - अपने पोस्ट-संश्लेषण डिजाइन को सत्यापित करने के लिए क्योंकि वेरिलॉग के कुछ पहलू संश्लेषण योग्य नहीं हैं।
  5. प्लेस और रूट - Xilinx ISE टूल का उपयोग करना।
  6. कार्यान्वयन - FPGA पर डिज़ाइन डाउनलोड करना।
  7. परिक्षण।

FPGA घटक

FPGA घटकों का उपयोग करने के लिए के रूप में, वहाँ उन्हें उपयोग करने के लिए विभिन्न तरीके हैं। लेकिन यह मानते हुए कि आप एक वेरिलॉग डिजाइन प्रविष्टि का उपयोग कर रहे हैं, आप या तो विभिन्न घटकों का अनुमान लगा सकते हैं या उनका तत्काल उपयोग कर सकते हैं

इंट्रेंस में आमतौर पर कार्यक्षमता के आधार पर सर्वोत्तम घटकों को लेने के लिए संश्लेषण उपकरण प्राप्त करना शामिल होता है जिनकी आपको आवश्यकता होती है। इसका सबसे अच्छा उदाहरण एक योजक डिजाइन करना होगा।

करके q <= a + bया q = a + bआप एक योजक का अनुमान लगा सकते हैं। दोनों योजक को अनुमान लगाएंगे, लेकिन जब आप अवरुद्ध / गैर-अवरुद्ध सिंटैक्स का उपयोग करते हैं तो अंतर होता है।

इंस्टेंटिएशन में आमतौर पर कोड में सटीक लाइब्रेरी घटक को शामिल करना होता है। कुछ घटकों को आसानी से कोड में आसानी से नहीं समझा जा सकता है - जैसे कि डीसीएम। इस बारे में अधिक जानने के लिए आप ISE टूल और उदाहरणों का उपयोग कर सकते हैं।

पुस्तकालयों गाइड में Xilinx द्वारा स्वयं घटकों की वास्तविक सूची प्रदान की गई है ।

प्रो टिप

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


5

आपके पूर्ण संदर्भ स्पार्टन 6 उपयोगकर्ता गाइड होंगे । उदाहरण के लिए, क्लॉकिंग रिसोर्स गाइड (UG382) कवर करता है कि DCM को कैसे कॉन्फ़िगर किया जाए। वास्तविक कोड कैसा दिखता है, इसके उदाहरण के लिए, ISE का एक डेटाबेस है। ओपन लैंग्वेज टेम्प्लेट (टूलबार में लाइटबल्ब), फिर भाषा (VHDL या वेरिलॉग) में देखें -> डिवाइस आदिम इंस्टेंटिएशन -> चिप परिवार (स्पार्टन -6) -> क्लॉक कंपोनेंट्स।

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

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


क्या आप VHDL के विशेषज्ञ हैं? यूसीएफ के बारे में डिजीलेंट बोर्ड के साथ काम करना क्यों महत्वपूर्ण होगा?
केविन बोयड

1
मैं इस तरह से विशेषज्ञ नहीं हूं - सिर्फ वेरिलॉग का अध्ययन नहीं किया है। यूसीएफ वह फाइल है, जो बताती है कि आपके पोर्ट किस पिन से कनेक्ट होते हैं, साथ ही क्लॉकिंग डिमांड भी। इसके बिना, पिन को यादृच्छिक रूप से सौंपा गया है, जो मौजूदा बोर्ड से मेल नहीं खाएगा।
यन वर्निअर

मैं पिन असाइनमेंट हिस्सा समझ गया कि घड़ी की मांग के बारे में क्या है?
केविन बोयड

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

1

घड़ी के लिए आप DLL / PLL मेगाकोर का उपयोग करें।


संयमी 6 में DCM और PLL है, अभी तक DLL नहीं मिला है। मंचों को खोजने के बाद मैंने पाया कि Xilinx के पास कोर जेनरेटर नामक एक उपकरण है जिसे घड़ी संसाधनों को उत्पन्न करने के लिए कॉन्फ़िगर किया जा सकता है।
केविन बॉयड
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.