2010-09-04 17 views
6

मैं अपनी पहली वीएचडीएल कक्षा के बाद से अपने सिर को खरोंच कर रहा हूं और यहां अपना प्रश्न पोस्ट करने का फैसला किया है।अन्य आर्किटेक्चर में उन्हें तुरंत चालू करने से पहले मुझे वीएचडीएल घटकों को फिर से चलाने की आवश्यकता क्यों है?

यह देखते हुए कि मैं एक घोषित इकाई (और यह भी इसके बारे में एक वास्तुकला) है और एक और वास्तुकला के अंदर यह दृष्टांत करना चाहते हैं, कारण है कि यह मैं प्रतीत होता है "इकाई" redeclare करना है (घटक) इस वास्तुकला से युक्त अंदर instantiating से पहले यह?

क्या संकलक अपने नाम से बस इसके वास्तुकला के लिए तत्काल मिलान करने के लिए पर्याप्त स्मार्ट नहीं है? घटक घोषणा की आवश्यकता कहां है?

उत्तर

10

आप सीधे, घटक का दृष्टांत कर सकते हैं अगर वांछित:

MyInstantiatedEntity : entity work.MyEntity_E 
    generic map (
     config   => whatever) 
    port map (
     clk    => signal1, 
     clk_vid   => signal2, 
     ... 

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

+0

मैं देख रहा हूँ, धन्यवाद! –

+1

आप के लिए वास्तुकला निर्दिष्ट कर सकते हैं: लेबल: इकाई work.MyEntity_E (RTL) सामान्य नक्शा ... – Hendrik

2

वापस जब मैंने स्कूल में था, तो मैंने अपने वीएचडीएल असाइनमेंट वापस कर दिए, तो मुझे हमारे सभी कोड एक फ़ाइल में रखना आवश्यक था, इसलिए मुझे याद नहीं है कि आप प्रत्येक मॉड्यूल के लिए एक फ़ाइल लिख सकते हैं या नहीं किया गया।

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

एक वीएचडीएल गुरु के लिए इसका एक निश्चित उत्तर हो सकता है लेकिन इस तरह मैं इसे समझता हूं।

+0

मैं, [कैसे VHDL मॉड्यूल में हेडर फाइल शामिल करने के लिए] (http://www.edaboard.com/thread169224.html) (वहाँ एक रास्ता _isn't_) इस एक दिलचस्प पढ़ा हो सकता है लगता है। प्रासंगिक हो सकता है लेकिन मुझे यकीन नहीं है कि आप इसे कैसे लागू करेंगे। आप इस तरह अपने "शीर्षलेख" को परिभाषित करने में सक्षम हो सकते हैं। –

+0

आह, यह बहुत समझ में आता है। जवाब के लिए धन्यवाद! –

+1

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

संबंधित मुद्दे

 संबंधित मुद्दे