2009-10-18 7 views
8

क्या कोई अच्छा, मौजूदा सॉफ़्टवेयर टूल उपलब्ध है जो सी हेडर फ़ाइलों को पंजीकृत ऑफसेट्स के साथ उचित # डिफाइन के साथ-साथ वीएचडीएल से बिट परिभाषाओं के साथ उत्पन्न करने में सहायता के लिए उपलब्ध है। ? यदि ऐसे किसी भी उपकरण मौजूद हैं, तो वे वीएचडीएल पर क्या प्रतिबंध लगाते हैं और कैसे चीजें जिन्हें नामित किया जाना चाहिए?डिवाइस ड्राइवर और एफपीजीए के बीच रजिस्टर और बिट फील्ड परिभाषाओं को कैसे साझा करें

अब तक, मैं इन उपकरणों पाया है लेकिन वे नहीं कर रहे हैं मैं वास्तव में क्या देख रहा हूँ:

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

उत्तर

2

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

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

मैंने उन परियोजनाओं पर काम किया है जहां नियंत्रण जानकारी एक मास्टर स्प्रेडशीट में रखी गई थी और जो कुछ भी हमें इससे उत्पन्न हुआ था। चिप्स के एक परिवार पर, मैंने स्प्रेडशीट से निर्यात की गई CSV फ़ाइलों से इस सामग्री को उत्पन्न करने के लिए कुछ पायथन स्क्रिप्ट लिखीं। एक अन्य प्रोजेक्ट पर, स्प्रेडशीट में आरटीएल फाइलें जेनरेट करने के लिए मैक्रोज़ शामिल थे जिन्हें हमें चाहिए था।

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

मैंने परियोजनाओं पर भी काम किया है प्रलेखन और हेडर फाइलें आरटीएल-बैट से बैक-पोर्ट की गई थीं, यह एक दुःस्वप्न था। प्रलेखन आमतौर पर डिजाइन के पीछे लगी हुई है, और अक्सर नियंत्रण क्षेत्र 'गायब हो जाते हैं'। मैं इस तरह की एक परियोजना में फिर से शामिल नहीं होना चाहूंगा;)

5

आप Doxygen पर एक नज़र डाल सकते हैं, यह वीएचडीएल भाषा का समर्थन करता है और इंटरमीडिएट फाइलों का उपयोग करके आप जानकारी को कम या ज्यादा आसानी से निकालने में सक्षम हो सकते हैं। एक उप-उत्पाद आपका आरटीएल कोड प्रलेखन होगा।

एक और विकल्प वाईएसी/लेक्स परिभाषाओं से सी पार्सर बनाना है, तो आप कई here पा सकते हैं। वहां से, आप वीएचडीएल को पार्स कर सकते हैं, जानकारी निकाल सकते हैं (आपको यह निर्धारित करना होगा कि अपने रजिस्टरों की परिभाषा कैसे प्राप्त करें) और सी हेडर फ़ाइल तैयार करें। यह शायद काफी जटिल है।

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

इससे कोई भी दस्तावेज बनाने में भी मदद मिलेगी।

आप निश्चित रूप से मेकफ़ाइल/या ऐसी स्क्रिप्ट में प्रक्रिया को स्वचालित कर सकते हैं जो सिमुलेशन/संश्लेषण से पहले डेटाबेस तैयार करता है।

0

साझा जानकारी का वास्तविक स्रोत आपका मूल डिज़ाइन है, इसलिए मैं मूल रूप से उस फ़ॉर्म में प्रवेश करूंगा जो प्रक्रिया में आसान है। यहाँ विचारों के एक जोड़े ...


  1. उपयोग YAML हैं। (या, श्वास, एक्सएमएल, या यहां तक ​​कि आपके डिज़ाइन का एक बहुत ही सरल डीएसएल।) मूल डेटा को परिभाषित करें। इसे VHDL और C. के रूप में डंप करने के लिए स्क्रिप्ट लिखें। सभी स्क्रिप्टिंग भाषाएं YAML का समर्थन करती हैं और इसे शैल टूल के साथ भी पार्स करने के लिए डिज़ाइन किया गया है। आप सरलीकृत वीएचडीएल या सी का भी उपयोग कर सकते हैं, और इसी सी या वीएचडीएल में एक साधारण पाठ परिवर्तन के माध्यम से इसे बदलने के लिए एक स्क्रिप्ट लिख सकते हैं।

  2. सी प्रीप्रोसेसर में यह सब करें। आप मैक्रो कॉल पर एक सेट लिख सकते हैं जो रजिस्टर लेआउट निर्दिष्ट करता है। इसके बाद आपके पास #if या शायद दो अलग .h फ़ाइलें हो सकती हैं जो आपकी परिभाषा मैक्रोज़ के दो अलग-अलग संस्करणों को परिभाषित करती हैं, जो कि वीएचडीएल में फैली हुई है और एक जो सी में परिभाषाओं को फैलाती है।

2

हमारा डिज़ाइन समूह हमारे प्रोग्राममेबल सिस्टम-ऑन-चिप के लिए पंजीकरण परिभाषाओं को कैप्चर करने के लिए SystemRDL का उपयोग करता है। हम विभिन्न लक्ष्यों के लिए अनुकूलित स्क्रिप्ट के साथ डेनाली ब्लूप्रिंट का उपयोग करते हैं - रजिस्टर मानचित्र, पीडीएफ दस्तावेज, सत्यापन, सी हेडर फाइल इत्यादि उत्पन्न करते हैं।

हम अभी तक आरटीएल स्रोत उत्पन्न करने के लिए इसका उपयोग नहीं कर रहे हैं।

http://www.spiritconsortium.org/releases/SystemRDL
http://www.google.com/search?q=SystemRDL

+0

बहुत ही दिलचस्प। .. – Marty

3

मैं मार्टी से सहमत हैं, घर में स्क्रिप्ट बनाने बात की इस तरह करने के लिए मजेदार है, लेकिन लंबे समय में समस्या हो सकती है।

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

आप टीसीएल एपीआई का उपयोग कर कस्टम आउटपुट उत्पन्न कर सकते हैं। यह विभिन्न इनपुट प्रारूपों जैसे कि एक्सएमएल, आईपी-एक्सएसीटी, सिस्टमआरडीएल, आदि जैसे

इस दृष्टिकोण का लाभ यह है कि आपके पास एक विनिर्देश है और सबकुछ स्वचालित रूप से सिंक हो जाता है।

वर्तमान में समर्थित संपादक हैं: एमएस वर्ड 2003 & 2007, ओपनऑफिस, स्टार ऑफिस और फ्रेममेकर।

कंपनी का नाम::

आप http://www.agnisys.com

यहाँ पर अधिक जानकारी प्राप्त कर सकते हैं उपलब्ध समाधान की पूरी सूची है वाणिज्यिक उपकरण (समाधान प्रदान)

  1. Agnisys: IDesignSpec (वर्ड के लिए प्लगइन/एक्सेल/ओपनऑफिस, और लिनक्स और विंडोज़ पर कमांड लाइन इंटरफ़ेस)
  2. एंटेंटा: 1 टीम-उत्पत्ति-रजिस्टर्स (डेस्कटॉप एप्लिकेशन) -> Synopsys द्वारा प्राप्त। उपकरण उपलब्ध नहीं है।
  3. डुओलॉग: बिटवाइज (ग्रहण आधारित अनुप्रयोग) -> एआरएम द्वारा प्राप्त, उपकरण अभी भी उपलब्ध है।
  4. पीडीटीआई: स्पेक्ट्राग (वेब ​​आधारित एप्लिकेशन) -> उपकरण अब और उपलब्ध नहीं है।
  5. Semifore: CSRCompiler (कमांड लाइन इंटरफेस)

नि: शुल्क/OpenSource उपकरण

  1. Veripool: VRegs
  2. ParadigmWorks: Spec2Reg
1

जवाब देर से एक सा आ सकते हैं, लेकिन हम एक एक्सएमएल स्रोत से दस्तावेज, वीएचडीएल और सी स्रोत उत्पन्न करने के लिए मुफ्त नेटपीपी लाइब्रेरी और कुछ संशोधित एक्सएसएल स्टाइल शीट का उपयोग करते हैं। एक वीएचडीएल सिम्युलेटर एक्सटेंशन भी है जो वीएचडीएल और सी पुस्तकालयों को नेटवर्किंग सक्षम 'वर्चुअल एफपीजीए' बनाने के लिए डेटा का आदान-प्रदान देता है। इसे ghdlex कहा जाता है, मुझे बिल्कुल याद नहीं है कि यह कहां है, लेकिन आप netpp डाउनलोड क्षेत्र के तहत http://section5.ch वेबसाइट पर कहीं भी पाएंगे। यह एक बिट का उपयोग करने के मुश्किल है, लेकिन अच्छी तरह से, यह मुफ़्त है ..

0

Spectareg आप एक ही स्थान पर रजिस्टरों निर्दिष्ट और विभिन्न वातावरण के लिए कई outputs बनाने की अनुमति देता है (जैसे। VHDL, सी, Verilog)

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