मैंने खुद कुछ बार ऐसा किया है।
आमतौर पर, डिज़ाइन उपकरण एक कपड़े के कार्यान्वयन और संश्लेषण सेटिंग्स के आधार पर एक डीएसपी स्लाइस के बीच चयन करेंगे।
उदाहरण के लिए, Xilinx ISE के लिए, संश्लेषण प्रक्रिया सेटिंग्स, एचडीएल ऑप्शंस में, विकल्पों के साथ एक सेटिंग "-use_dsp48" है: ऑटो, ऑटोमैक्स, हां, नहीं। जैसा कि आप कल्पना कर सकते हैं, यह नियंत्रित करता है कि उपकरण कितनी मेहनत करते हैं। डीएसपी स्लाइस करते हैं। मुझे एक बार एक समस्या हुई थी जहाँ मैंने एक पूर्णांक को 3 से गुणा किया था, जो एक डीएसपी स्लाइस का अनुमान लगाता था - सिवाय इसके कि मैं पहले से ही चिप में प्रत्येक डीएसपी स्लाइस को मैन्युअल रूप से संदर्भित कर रहा था, इसलिए सिंथेसिस विफल हो गया! मैंने सेटिंग को No में बदल दिया, क्योंकि मैं पहले से ही प्रत्येक dsp स्लाइस का उपयोग कर रहा था।
यह संभवतः अंगूठे का एक अच्छा नियम है (मैं अभी बना हुआ हूं): यदि आपका डिज़ाइन 50 मेगाहर्ट्ज से कम पर है, और आप संभवतः चिप में 50% से कम डीएसपी स्लाइस का उपयोग करने जा रहे हैं, तो बस उपयोग करें *, +, और - ऑपरेटर। यह डीएसपी स्लाइस को बिना किसी पाइप लाइन रजिस्टर के बांधेगा। यह वास्तव में शीर्ष गति को सीमित करता है। (मुझे नहीं पता कि जब आप विभाजन का उपयोग करते हैं तो क्या होता है)
हालांकि, अगर ऐसा लगता है कि आप स्लाइस को डीएसपी स्लाइस की अधिकतम गति (स्पार्टन 6 सामान्य स्पीड ग्रेड के लिए 333 मेगाहर्ट्ज) के करीब चलाने जा रहे हैं, तो आप सभी स्लाइस का उपयोग करने जा रहे हैं, आपको मैन्युअल रूप से इनका पता लगाना चाहिए ।
इस मामले में, आपके पास दो विकल्प हैं।
विकल्प 1: मैन्युअल रूप से कच्चे DSP तात्कालिकता टेम्पलेट का उपयोग करें। विकल्प 2: Xilinx Core जेनरेटर से IP ब्लॉक का उपयोग करें। (मैं इस विकल्प का उपयोग करूंगा। उसी समय, आप सभी कोर जीन के बारे में जानेंगे, जो भविष्य में मदद करेगा)
इससे पहले कि आप इनमें से कोई भी करें, डीएसपी स्लाइस उपयोगकर्ता गाइड के पृष्ठों के पहले जोड़े को पढ़ें। स्पार्टन 6, (DSP48A1) के मामले में, यह Xilinx doc UG389 होगा:
http://www.xilinx.com/support/documentation/user_guides/ug389.pdf
पहले कोर जनरेटर विकल्प पर विचार करें। मैं आमतौर पर जिस हिस्से के साथ काम कर रहा हूं, उसके लिए मैं कोर जेनरेटर में एक परीक्षण परियोजना बनाता हूं, जहां मैं सिस्टम को सीखने के लिए किसी भी संख्या में आईपी ब्लॉक बनाता हूं। फिर, जब मैं आईएसई में अपने डिजाइन में एक जोड़ने के लिए तैयार हूं, तो मैं डिज़ाइन पदानुक्रम में राइट क्लिक करता हूं, नए स्रोत पर क्लिक करता हूं, और "आईपी (कोर जनरेटर एंड आर्किटेक्चर विज़ार्ड)" का चयन करता हूं, ताकि मैं ब्लॉक को सीधे संपादित और पुन: उत्पन्न कर सकूं मेरे प्रोजेक्ट से।
कोर जीन में, उन विभिन्न आईपी ब्लॉकों पर एक नज़र डालें जिनसे आप चुन सकते हैं - कुछ दर्जन हैं, जिनमें से अधिकांश बहुत अच्छे हैं।
मल्टीप्लायर कोर वह है जिसे आपको पहले देखना चाहिए। हर पृष्ठ देखें, और डेटशीट बटन पर क्लिक करें। महत्वपूर्ण भाग पूर्णांक बिट चौड़ाई, पाइपलाइन चरणों (विलंबता) और किसी भी नियंत्रण संकेत हैं। यह उन सभी बंदरगाहों को हटाकर सबसे सरल संभव ब्लॉक का उत्पादन करता है जिनकी आपको आवश्यकता नहीं है।
जब मैं पिछले साल 5 क्रम 3 आईआईआर फ़िल्टर बना रहा था, तब से मुझे मैनुअल इंस्टेंटेशन टेम्प्लेट का उपयोग करना पड़ा क्योंकि मैं एक बहुत ही कस्टम कार्यान्वयन का निर्माण कर रहा था, 2 डीएसपी स्लाइस के साथ नमूना दर की तुलना में 4 गुना तेज था। यह कुल दर्द था।