अच्छी तरह से Xilinx भागों की नवीनतम पीढ़ी ने 600 एमएचजेड पर 4.7 टीएमएसीएस और सामान्य उद्देश्य तर्क को उजागर किया। (ये मूल रूप से एक छोटी प्रक्रिया पर फैले हुए विरटेक्स 6 एस हैं।)
इस तरह के एक जानवर पर यदि आप निश्चित बिंदु संचालन में अपने एल्गोरिदम लागू कर सकते हैं, मुख्य रूप से गुणा करते हैं, जोड़ते हैं और घटाते हैं, और वाइड समांतरता और पाइपलाइन समानांतरता का लाभ उठाते हैं आप बिजली और प्रसंस्करण दोनों के मामले में जीवित अधिकांश पीसी खा सकते हैं।
आप इन पर तैर सकते हैं, लेकिन एक प्रदर्शन हिट होगा। डीएसपी ब्लॉक में 48 बिट योग के साथ 25x18 बिट एमएसीसी होता है। यदि आप ऑडबॉल प्रारूपों से दूर हो सकते हैं और सामान्य रूप से होने वाले कुछ फ़्लोटिंग पॉइंट सामान्यीकरण को बाईपास कर सकते हैं तो आप अभी भी इनमें से प्रदर्शन के ट्रक लोड को देख सकते हैं। (यानी 18 बिट इनपुट को सामान्य 24 बिट की बजाय स्ट्रेट फिक्स्ड पॉइंट या 17 बिट मैन्टिसिया के साथ फ्लोट के रूप में उपयोग करें।) डबल्स फ्लोट संसाधनों के बहुत सारे खाने जा रहे हैं, इसलिए यदि आपको इसकी ज़रूरत है, तो आप शायद पीसी पर बेहतर प्रदर्शन करेंगे।
यदि आपके एल्गोरिदम को जोड़ने और घटाने के संचालन के संदर्भ में व्यक्त किया जा सकता है, तो इन में सामान्य उद्देश्य तर्क का उपयोग गैज़िलियन एडर्स को लागू करने के लिए किया जा सकता है। ब्रेसेनहम की रेखा/सर्कल/यड्डा/यड्डा/यादा एल्गोरिदम जैसी चीजें एफपीजीए डिज़ाइन के लिए बहुत अच्छी हैं।
यदि आपको विभाजन की आवश्यकता है ... ईएच ... यह दर्दनाक है, और शायद अपेक्षाकृत धीमी होने जा रहा है जब तक कि आप अपने विभाजन को गुणा के रूप में लागू नहीं कर सकते।
यदि आपको बहुत अधिक परिशुद्धता ट्रिगर फ़ंक्शंस की आवश्यकता है, तो इतना नहीं ... फिर यह किया जा सकता है, लेकिन यह सुंदर या तेज़ नहीं होगा। (जैसे कि इसे 6502 पर किया जा सकता है।) यदि आप सीमित सीमा पर लुकअप टेबल का उपयोग कर सामना कर सकते हैं, तो आपका सुनहरा!
6502 की बात हो रही है, एक 6502 डेमो सांकेतिक शब्दों में बदलनेवाला इन चीजों में से एक गाना बना सकता है। कोई भी जो पुरानी गणित चाल से परिचित है, जो प्रोग्रामर पुराने स्कूल मशीन पर उपयोग करने के लिए उपयोग करते थे, वह अभी भी लागू होगा। आधुनिक प्रोग्रामर की सभी चालें आपको बताती हैं कि "आप के लिए मुक्ति करने दें" उन चीजों के प्रकार हैं जिन्हें आपको गणित को लागू करने के लिए जानने की आवश्यकता है। यदि आपको ऐसी किताब मिल सकती है जो 68000 आधारित अटारी या अमिगा पर 3 डी करने के बारे में बात करती है, तो वे केवल पूर्णांक में सामग्री को कार्यान्वित करने के बारे में चर्चा करेंगे।
वास्तव में कोई भी एल्गोरिदम जिसे लुकअप टेबल का उपयोग करके कार्यान्वित किया जा सकता है, एफपीजीए के लिए बहुत उपयुक्त होगा। न केवल आपके पास भाग के माध्यम से वितरित ब्लॉक्राम हैं, लेकिन तर्क कोशिकाएं स्वयं को विभिन्न आकार के LUTS और मिनी रैम के रूप में कॉन्फ़िगर किया जा सकता है।
आप मुफ्त के रूप में तय सा जोड़तोड़ तरह बातें देख सकते हैं! यह बस रूटिंग द्वारा संभालता है। फिक्स्ड बदलाव, या बिट रिवर्सल कुछ भी लागत नहीं है। डायनेमिक बिट ऑपरेशंस जैसे कि एक परिवर्तनीय राशि से बदलाव की मात्रा कम से कम तर्क होगी और गायों के घर आने तक किया जा सकता है!
सबसे बड़ी हिस्सा 3960 मल्टीप्लायरों है! और 142,200 स्लाइस जो प्रत्येक एक 8 बिट योजक हो सकता है। (कॉन्फ़िगरेशन के आधार पर प्रति स्लाइस या 8 5 बिट प्रति स्लाइस प्रति 4 बिट बिट्स।)
अच्छा सवाल - एक उदाहरण समर्पित डीएसपी अनुप्रयोगों, जैसे फिल्टर, जहां आप कई गुणा/जोड़ों को फेंक सकते हैं और जितनी बिट्स आपको किसी दिए गए समस्या की आवश्यकता होती है, निश्चित संख्या से बाधित होने के बजाय एक पारंपरिक सीपीयू के निष्पादन इकाइयों और शब्द का आकार। –
आम तौर पर जब हम बड़े-ओह नोटेशन के बारे में बात करते हैं तो हम समानांतरता से खुद को चिंता नहीं करते हैं। एक सीपीयू पर एक एफपीजीए में आपको बचाने में अधिकतर समय आपके एल्गोरिदम को पाइपलाइन करके होता है ताकि प्रत्येक घड़ी, आप इनपुट कर सकें और आउटपुट प्राप्त कर सकें (हालांकि आउटपुट घड़ी चक्र के इनपुट के अनुरूप नहीं होगा।) समांतरता का पूरा विचार अभी भी एक है खुला सवाल। यदि हमारे सीपीयू कुछ समझने के लिए काफी समझदार थे, तो इसका इस्तेमाल किए बिना कुछ पैराक्रेलिज़ेबल है, हम संभावित रूप से प्रदर्शन में परिमाण सुधार के आदेश प्राप्त कर सकते हैं। – ldog
उदाहरण के लिए, सॉर्टिंग की समस्या लें। आम तौर पर हम अनुक्रमिक बिंदु से इसे देखते हैं और दावा करते हैं कि रन समय पर ओ (एन लॉग एन) निचला बाध्य है। हालांकि, एन प्रोसेसर के साथ एक एफपीजीए (जो इतनी अपरिहार्य नहीं है) आप अजीब-तरह के सॉर्ट को लागू कर सकते हैं (http://en.wikipedia.org/wiki/Odd-even_sort बबल प्रकार के लिए एक मृत आसान विस्तार) और सॉर्टिंग ओ (एन) समय में होता है! – ldog