FPGA CPU, अधिकतम गति कैसे प्राप्त करें?


14

मैं अभी FPGAs में शामिल हो रहा हूं, और अगर मैं सही तरीके से समझता हूं, तो आप कोड का उपयोग करके तर्क गेट्स को एक साथ जोड़ रहे हैं। इसलिए अगर मैं वेरिलोग में सीपीयू डिज़ाइन करता हूं, तो इसे कुछ लॉजिक गेट्स को एक साथ जोड़ना चाहिए और काम करना चाहिए, लेकिन मुझे कैसे पता चलेगा कि मेरा DIY सीपीयू कितनी तेजी से चल सकता है? यह किस पर निर्भर करता है?


12
@KingDuken मैं आपके मन में सीपीयू जैसी कोई चीज़ डिजाइन करने के लिए वेरिलोग के विकल्प के बारे में उत्सुक हूं (VHDL I presume :)) नहीं?
यूजीन श।

1
@KingDuken वह समस्या नहीं है जो मुझे हो रही है, मैंने पहले ही अपना CPU बना लिया है और यह ब्रेडबोर्ड पर आर्किटेक्चर है और इसे एक FPGA में पोर्ट करना चाहता हूं। मेरा सवाल है, मैं कैसे गणना कर सकता हूं कि मेरे सीपीयू के लिए अधिकतम आवृत्ति की घड़ी क्या होगी, इसकी सीमा क्या है?

4
आप "स्थैतिक समय विश्लेषण" गूगल करना चाहते हैं
फोटॉन

14
@KingDuken किसी ऐसे व्यक्ति के रूप में जिसने दो सीपीयू डिज़ाइन किए हैं, यह वास्तव में समय लेने वाला नहीं है। आपके पास 1-2 महीने में एक काम करने वाला प्रोसेसर हो सकता है, अगर आप जानते हैं कि आप क्या कर रहे हैं।
user110971

2
@KingDuken मजेदार तथ्य: Sun / Oracle ने अपने UltraSPARC T1 और T2 प्रोसेसर के लिए वेरिलॉग स्रोत कोड जारी किया है। मैं व्यक्तिगत रूप से कई लोगों को देखा है, और वे सभी काम किया है। FYI करें, वे भी Specint_rate2006 जीतने गए थे! : डी जो स्पष्ट रूप से दिखाता है कि वेरिलोग या अन्य एचडीएल में सीपीयू को डिजाइन करना कितना असंभव है। मैंने अपने आप को एक शौक के रूप में एक दो बार किया है, और यह वास्तव में कुछ भी असंभव नहीं है (एक बार जब आप इसे, हमेशा की तरह इसे
दबाते हैं

जवाबों:


29

एक डिजाइन की गति कई चीजों से सीमित होती है। सबसे बड़ी संभावना होगी कि आपके डिज़ाइन में कॉम्बीनेटरियल लॉजिक के माध्यम से प्रसार में देरी होगी, जिसे महत्वपूर्ण पथ कहा जाता है । यदि आप एक तेज़ FPGA का उपयोग करते हैं और अपने HDL को बहुत सावधानी से लिखते हैं, तो आप शायद 700 मेगाहर्ट्ज को किसी वीरटेक्स अल्ट्रास्केल + जैसी चीज़ पर मार सकते हैं। एक निचले छोर पर FPGA, उदाहरण के लिए एक संयमी 6, एक उचित आंकड़ा शायद 250 मेगाहर्ट्ज की तरह अधिक है। इसके लिए आपको हर जगह पाइप लाइनिंग की आवश्यकता होती है, ताकि आपके पास राज्य घटकों (तर्क के स्तरों को कम करना), कम प्रशंसक-बाहरी (तर्क तत्वों पर लोड करना कम से कम), और बिना भीड़ वाले चूहों (कुशल मार्ग) के बीच पूर्ण न्यूनतम मात्रा में दहनशील तर्क न हों।

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

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

यदि आप अपने डिज़ाइन को ऑप्टिमाइज़ कर सकते हैं ताकि महत्वपूर्ण पथ सीमा नहीं है, तो आप घड़ी निर्माण और वितरण (PLLs, DCM, घड़ी बफ़र और वैश्विक घड़ी नेट) में सीमाओं तक चलेंगे। इन सीमाओं को भाग डेटाशीट में पाया जा सकता है, लेकिन गैर-तुच्छ डिजाइन के साथ उनके पास प्राप्त करना मुश्किल है। मैंने 500 मेगाहर्ट्ज पर एक वीरटेक्स अल्ट्रास्केल पर सामान चलाया है, लेकिन यह अन्य घटकों को ट्रिगर सिग्नल प्रदान करने के लिए केवल कुछ मुट्ठी भर काउंटर हैं।


22

आप अपने डिज़ाइन को लक्ष्य तकनीक (एक विशेष FPGA) में संश्लेषित करते हैं और स्थिर समय विश्लेषण उपकरण आपको बताते हैं कि न्यूनतम घड़ी की अवधि क्या है।

या, आप पहली बार डिज़ाइन में बाधाएँ जोड़ते हैं, और फिर उपकरण आपको बताएंगे कि वे मिले हैं या नहीं।


क्या कारण है कि बाधाओं को पूरा नहीं किया जाएगा? घड़ी की अवधि क्या है? क्या यह FPGA के उपयोग पर निर्भर करता है या यह FPGA के पूरे परिवार के लिए समान है? (या शायद अस्तित्व में हर FPGA के लिए?)

3
यह FPGA की गति पर निर्भर करता है, और आप अपने डिजाइन में FFs के बीच कितना कॉम्बिनेटरियल तर्क रखते हैं।
डेव ट्वीड

9
@ appmaker1358, क्या आपने FPGA के लिए डेटाशीट पढ़ने की कोशिश की है? स्पीड रेटिंग सबसे महत्वपूर्ण मापदंडों में से एक है जिसे डेटाशीट में कहा जाता है।
फोटॉन

2
गति सबसे लंबे समय तक चलने वाले मार्ग से सीमित होगी, जो दो स्टेटफुल तत्वों (फ्लिप फ्लॉप, रैम, आदि) के बीच तर्क और मार्ग के माध्यम से सबसे लंबे समय तक प्रसार में देरी होगी। अलग-अलग FPGAs के अलग-अलग समय पैरामीटर होंगे और इसलिए एक डिज़ाइन अलग-अलग FPGAs पर अलग-अलग गति प्राप्त करेगा। FPGA के कुछ हिस्से हैं जो आवृत्ति सीमित हैं - हालांकि घड़ी वितरण घटक और PLL में आमतौर पर सीमाएं होती हैं, लेकिन HDL को लिखना मुश्किल होता है जो गैर-तुच्छ डिजाइनों के पास हो जाता है।
alex.forencich

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

13

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

आर्किटेक्चर बनाने के लिए समर्पित पूरे डिज़ाइन अनुशासन हैं जो किसी दिए गए प्रक्रिया से सबसे बाहर निकलने के लिए इस देरी को कम करते हैं - पाइपलाइनिंग, समानांतर निष्पादन, सट्टा निष्पादन, और आगे। यह एक आकर्षक, कार्य शामिल है, एक FPGA से बाहर प्रदर्शन के अंतिम औंस (या उस बात के लिए, एक ASIC)।

उस ने कहा, FPGA विक्रेताओं अपने भागों के लिए अलग गति ग्रेड देंगे, जो अधिकतम मेगाहर्ट्ज दर के अनुरूप हैं। उदाहरण के लिए -2 Xilinx Artix एक '250 मेगाहर्ट्ज' हिस्सा है जो मोटे तौर पर बोल रहा है, हालांकि यह उच्च-पिपली वाले डिज़ाइनों के लिए उच्च घड़ी दरों में सक्षम है।

जब आप FPGA संश्लेषण और जगह-और-मार्ग उपकरण के साथ बातचीत करते हैं, तो आपको अपने डिजाइन के लिए बाधाएं देने की आवश्यकता होगी । ये बताएं कि टूल फ़्लो फ़्लॉप-टू-फ़्लॉप विलंब को आप प्राप्त करने की कोशिश कर रहे हैं। Quartus (Altera) और Vivado (Xilinx) में ये बाधाएँ SDC नामक एक सिंटैक्स का उपयोग करती हैं, जो Synopsys Design Constraints के लिए है। एसडीसी शुरू में ASIC दुनिया से आया था और FPGA उद्योग द्वारा भी अपनाया गया है। एसडीसी को जानें - इससे आपको मनचाहे परिणाम प्राप्त करने में मदद मिलेगी।

Altera और Xilinx के पास SDC वाक्यविन्यास और कई अन्य विषयों का उपयोग करने में सहायता के लिए ऑनलाइन समुदाय हैं।

उस सभी ने कहा, यदि आप गति के बारे में परवाह करते हैं तो आपको एक FPGA पर विचार करना चाहिए, जिसमें सीपीयू हार्ड मैक्रो हो, जैसे कि Zynq।


-2

सीपीयू वैश्विक घड़ियों की तुलना में तेजी से नहीं चलेगा, ताकि यह कितनी तेजी से चल सकता है। आमतौर पर अधिकतम घड़ी दर की जानकारी FGPA डेटाशीट में सूचीबद्ध होती है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.