VHDL: आर्किटेक्चर नामकरण और व्याख्या


14

नोट: मैं Xilinx के ISE का उपयोग कर रहा हूं और स्विच (रोशनी और इतने पर) के साथ काम करने के लिए एक FPGA बोर्ड है, और मैंने अब तक कुछ सरल परियोजनाओं को एक साथ हैक किया है। उसी समय मैं जो कर रहा हूं उसकी नींव बनाने के लिए कई ट्यूटोरियल पढ़ रहा हूं।

मैंने विभिन्न सामग्रियों और उनके आर्किटेक्चर को उन संदर्भ सामग्रियों में उल्लेखित देखा है, जिन्हें मैं जा रहा था, लेकिन नामकरण अक्सर भ्रमित कर रहा है। अक्सर "आर्किटेक्चर आरटीएल ऑफ .." या "आर्किटेक्चर स्ट्रक्चरल ऑफ ..." के बजाय मैं "आर्किटेक्चर फू ऑफ ..." या "आर्किटेक्चर आर्क ऑफ ..." देखूंगा।

मुझे पता है कि (नामांकित) यह है कि आर्किटेक्चर नाम केवल इकाई नामकरण के रूप में मनमाना है, हालांकि ऐसे स्टाइल गाइड हैं जो सुझाव देते हैं कि इस मुद्दे से बचने के लिए अधिक सुसंगत नामकरण सम्मेलनों का उपयोग किया जा सकता है। यह मुझे कुछ सवालों की ओर ले जाता है:

  • एक इकाई को देखते हुए, वास्तुकला के नाम से संकेत के बिना उपयोग किए जा रहे वास्तविक स्थापत्य मॉडल को कैसे निर्धारित किया जा सकता है? आरटीएल, व्यवहारिक, संरचनात्मक ... वे मेरे शिक्षार्थी की आंखों के समान प्रतीत होते हैं (मैंने जो उदाहरण देखे हैं, वे वास्तव में सही तरीके से नामित किए गए थे)। एक सरल लेकिन स्पष्ट उदाहरण यहाँ सहायक होगा (या एक के लिए एक सूचक)।

  • यदि एक ही इकाई के लिए कई आर्किटेक्चर निर्दिष्ट करना (जो मुझे समझ में संभव है) क्या आप बस एक ही फ़ाइल में आर्किटेक्चर को अलग-अलग नाम देते हैं या ...?

  • क्या आर्किटेक्चरल नाम किसी दिए गए निकाय तक सीमित हैं (यानी, कई संस्थाओं पर समान आर्किटेक्चर नाम का उपयोग करके "नेमस्पेस" के साथ कोई समस्या है)?

संपादित करें: और एक और:

  • ऐसा लगता है कि आरटीएल और व्यवहार के बीच एक अंतर है, लेकिन जैसा कि ऊपर उल्लेख किया गया है मैं वास्तव में इसे उन उदाहरणों में नहीं देख रहा हूं जिन्हें मैंने देखा है (अक्सर मैं केवल एक वास्तुकला को परिभाषित करते हुए देखता हूं)। क्या एक वास्तुकला दूसरों की तुलना में अधिक सामान्य है?

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

जवाबों:


6

एक इकाई को देखते हुए, वास्तुकला के नाम से संकेत के बिना उपयोग किए जा रहे वास्तविक स्थापत्य मॉडल को कैसे निर्धारित किया जा सकता है?

आप नहीं कर सकते हैं - जब इसे तत्काल या कॉन्फ़िगर किया जाता है तो आर्किटेक्चर निर्दिष्ट किया जा सकता है (यदि चुनने के लिए एक से अधिक है) या एक डिफ़ॉल्ट आपके लिए चुना जाएगा।

यदि एक ही इकाई के लिए कई आर्किटेक्चर निर्दिष्ट करना (जो मुझे समझ में संभव है) क्या आप बस एक ही फ़ाइल में आर्किटेक्चर को अलग-अलग नाम देते हैं या ...?

आप उन्हें अलग-अलग नाम दें। यह एक ही फाइल के भीतर नहीं होना चाहिए (वास्तव में VHDL की परवाह बहुत कम है जितना आप सोच सकते हैं कि किस फाइल में क्या है)

क्या आर्किटेक्चरल नाम किसी दिए गए निकाय तक सीमित हैं (यानी, कई संस्थाओं पर समान आर्किटेक्चर नाम का उपयोग करके "नेमस्पेस" के साथ कोई समस्या है)?

वे एक इकाई के लिए "संलग्न" हैं, इसलिए पुन: उपयोग किया जा सकता है।

मैं अक्सर के a1रूप में संश्लेषण के लिए मेरी वास्तुकला के रूप में उपयोग करते हैं

  • rtl मेरे द्वारा लिखे जाने की तुलना में निचले स्तर (कई पाठकों के लिए) का अर्थ है।
  • behavioural अक्सर गैर-संश्लेषण योग्य होता है (कुछ पाठकों के लिए)
  • synth सिंथेसाइज़र द्वारा इसका उपयोग मॉडल के लिए किया जाता है (अन्यथा मैंने इसका उपयोग किया होगा)

a1 अब तक गैर-संघर्ष किया गया है और भ्रम का कारण नहीं है;)

अगर मेरे पास वास्तव में एक से अधिक आर्किटेक्चर हैं, तो मैं उन्हें मौखिक रूप से नाम देता हूं (उदाहरण के लिए hard_multipliersऔर lut_multipliersएक फिल्टर के लिए जो तात्कालिक रूप से - या नहीं - MUL18 ब्लॉक)।

बहुत बार आपके पास केवल एक वास्तुकला होती है, इसलिए यह कोई फर्क नहीं पड़ता। अच्छी इकाई के नाम बहुत अधिक महत्वपूर्ण हैं।

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

यह ऐतिहासिक है - आप "व्यवहार" कोड को संश्लेषित करने में सक्षम नहीं थे (जिसमें एक बिंदु पर कुछ चीजें शामिल थीं!) - इसलिए आपने एक आरटीएल संस्करण बनाया जो कि योजक और इस तरह से जोड़ा गया। (जैसा कि मैं इसे समझता हूं - मैंने लगभग 1999 में VHDLing शुरू करने के बाद से व्यवहार (और फिर भी अभी भी संश्लेषण योग्य) कोड लिख रहा हूं!)


मैं बिंदु-दर-बिंदु उत्तर की सराहना करता हूं!
MartyMacGyver

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

8

यहाँ वास्तुकला प्रकार हैं:

व्यवहार:

सामान्य टिप्पणी:

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

Xilinx विशिष्ट नोट्स

  • आम तौर पर कोर जनरेटर मॉडल पूर्व संश्लेषण .vhd फाइलें हैं

संरचनात्मक:

सामान्य परिभाषा

  • केवल घटकों को इंस्टेंट करता है और उन्हें एक साथ (पदानुक्रमित) तार करता है।
  • व्यवहार की तुलना में अनुकरण करने के लिए धीमा।
  • शीर्ष स्तर में कोई वास्तविक संकेत व्यवहार परिभाषा नहीं।
  • केवल संश्लेषित कोड।

Xilinx xpecific नोट्स

  • कोर जनरेटर मॉडल खाते में समय नहीं लेते हैं।
  • आम तौर पर कोर जनरेटर मॉडल तुरंत संश्लेषण के बाद के नेटलिस्ट होते हैं

ऊपर मूल रूप से वास्तुकला के पारंपरिक मुख्य दो जानवर हैं। आमतौर पर एक "मिश्रित" परिभाषा का उपयोग किया जाता है, जिसमें दोनों के गुण होते हैं।

RTL:

RTL वास्तव में दिन के अंत में FPGA पर क्या रखा है। तो यह संश्लेषित कोड है जो सिस्टम के व्यवहार को परिभाषित करता है और एक कोड पदानुक्रम से बना होता है:
नीचे की परतें संश्लेषित व्यवहार होती हैं, जहां सिग्नल व्यवहार की बारीक बारीकियों को परिभाषित किया जाता है, और ऊपरी स्तर संरचनात्मक होंगे, जहां व्यवहार घटक एक बड़े शीर्ष स्तर "ब्लॉक आरेख" बनाने के लिए एक साथ बंधे हैं यदि आप करेंगे।

कई आर्किटेक्चर पर:

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

यह किताब बहुत काम की है और इस तरह की चीजों का ब्योरा देती है।

अलग-अलग व्यवहार और संरचनात्मक मॉडल होने या बस उन्हें मिश्रण करने के संदर्भ में चीजों को कैसे किया जाना चाहिए, इसके बारे में कोई कठिन और तेज नियम नहीं है। आमतौर पर विशाल फर्मवेयर डिजाइन (या बड़े निगमों में जहां कोड साझा किया जाता है और फिर से उपयोग किया जाता है) मामलों को सरल बनाने के लिए दोनों के बीच अंतर करना उपयोगी होता है, हालांकि दिन के अंत में यह आपके लिए जो भी काम करता है नीचे आता है।


उत्तर के लिए धन्यवाद और पुस्तक पर टिप (हालांकि स्पष्ट रूप से यह एक कठिन-से-प्राप्त आइटम है)।
MartyMacGyver

@MartyMacGyver: हाँ, मैं आमतौर पर Google डॉक्स संस्करण पढ़ता हूं: P
stanri

मैं, लेकिन यह जानबूझकर गायब पृष्ठों ...
MartyMacGyver

2

सबसे पहले, वास्तविक विश्व वास्तुकला डिजाइनों को कड़ाई से वर्गीकृत नहीं किया जा सकता है। खुद को सीमित क्यों करें? हो सकता है कि आप अन्य संस्थाओं को त्वरित करना चाहते हैं और उन्हें "संरचनात्मक रूप से" कनेक्ट कर सकते हैं, लेकिन कुछ "rtl" तर्क जोड़ने के लिए यहां और वहां समवर्ती असाइनमेंट की प्रक्रिया और जोड़ सकते हैं, और शायद कुछ "व्यवहार" कोडिंग पैटर्न का उपयोग करें ताकि सिंथेसाइज़र कुछ में से बाहर निकल जाए। वे विवरण जिनके बारे में आपको कोई चिंता नहीं है (जैसे विशेष रूप से क्षेत्र / पाइपलाइनिंग / प्रदर्शन मापदंडों के साथ एक योजक को जोड़ने के बिना जोड़ना), सभी एक ही वास्तुकला में।

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

एक इकाई को कई तरीकों से लागू किया जा सकता है, यहां तक ​​कि थोड़ा अलग व्यवहार करने की भी अनुमति देता है, इसलिए आपके पास एक ही इकाई के लिए कई आर्किटेक्चर हो सकते हैं। इसके अतिरिक्त, आपके पास केवल (आमतौर पर गैर-संश्लेषक) सिमुलेशन के लिए एक आर्किटेक्चर हो सकता है जो "वास्तविक" संस्करण की तुलना में तेजी से अनुकरण कर सकता है, जो पूरे डिजाइन के रूप में बड़े डिजाइनों का परीक्षण करते समय काम आ सकता है। आप इन वास्तुशिल्प नामों को देंगे जो आपको यह याद रखने में मदद करेंगे कि उन्हें दूसरों के लिए अलग बनाता है, और बस bhv / str / rtl आमतौर पर पर्याप्त या सटीक नहीं है, जो वास्तविक दुनिया के डिजाइनों की संकर प्रकृति को देखते हुए।

आपके विशिष्ट प्रश्नों के संबंध में, वास्तुकला घोषणा एक इकाई नाम से बंधा हुआ है, इसलिए विभिन्न संस्थाओं के लिए एक ही नाम के आर्किटेक्चर के साथ कोई नामस्थान समस्या नहीं है। बस एक ही इकाई के लिए आर्किटेक्चर के लिए अलग-अलग नामों का उपयोग करें।

आर्किटेक्चर विभिन्न फाइलों में निवास कर सकते हैं, आपको बस यह सुनिश्चित करने की आवश्यकता है कि इकाई घोषणा पहले संकलित है।

आप इकाई को इंस्टेंट करते समय या कॉन्फ़िगरेशन स्टेटमेंट का उपयोग करके किस आर्किटेक्चर का उपयोग कर सकते हैं। यदि आप नहीं करते हैं, तो डिफ़ॉल्ट आमतौर पर अंतिम आर्किटेक्चर है जिसे कंपाइलर ने किसी इकाई घोषणा के लिए देखा है।


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