क्या एक FPGA डिजाइन ज्यादातर (या पूरी तरह से) अतुल्यकालिक हो सकता है?


39

हमारे पास विश्वविद्यालय में (5 साल पहले) एक बहुत ही कम FPGA / वेरिलॉग पाठ्यक्रम था, और हम हमेशा हर जगह घड़ियों का उपयोग करते थे।

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

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

मेरी शुरुआती आंखों के लिए, ऐसा प्रतीत होता है कि एकमात्र निर्माण के लिए पूरी तरह से एक घड़ी की आवश्यकता होती है reg, और मेरी समझ यह है कि एक विशिष्ट FPGA (कहते हैं, एक चक्रवात II) में इसके फ्लिप-फ्लॉप्स होंगे जो विशिष्ट घड़ी संकेतों के लिए पूर्व-वायर्ड हैं। क्या ये सही है? क्या इस तरह की कोई अन्य निहित घड़ियाँ हैं और क्या वे आमतौर पर डिज़ाइन द्वारा मैन्युअल रूप से संचालित की जा सकती हैं?


3
मुझे पता है कि कैम्ब्रिज विश्वविद्यालय में साइमन मूर ने अतुल्यकालिक डिजाइन में बहुत सारे शोध किए, जिसमें एक टेस्ट चिप गढ़ा गया था। इसके लिए पूरी तरह से नए डिज़ाइन उपकरण की आवश्यकता होती है, और इसके अजीब दुष्प्रभाव होते हैं: निष्पादन की गति तापमान के विपरीत आनुपातिक, उदाहरण के लिए।
pjc50

जवाबों:


27

एक संक्षिप्त उत्तर होगा: हाँ; एक लंबा जवाब होगा: यह आपके समय के लायक नहीं है।

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

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

व्यवहार में लोग पूरी तरह से समकालिक डिजाइनों का लक्ष्य रखते हैं, लेकिन अगर आपको केवल एक बफर या सिग्नल को उल्टा करने की आवश्यकता है, तो आपको एक फ्लिप फ्लॉप से ​​गुजरने की आवश्यकता नहीं है, जब तक आप इसे ठीक से विवश नहीं करते हैं।

आशा है कि यह इसे थोड़ा साफ करता है।


3
मुझे एसिंक्रोनस FPGA डिज़ाइन वाले कुछ उपकरणों का उपयोग करना था। उनके साथ काम करना कठिन था। कृपया कम से कम समय की कमी का उपयोग करें
टिम विलक्रॉफ्ट 22

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

2
यह उत्तर विशेष रूप से अच्छी सलाह प्रदान नहीं करता है। आप एक घड़ी रहित FPGA बना सकते हैं और यह वास्तव में जगह और मार्ग को सरल बनाता है, समय की आवश्यकताओं के बारे में समस्याओं की एक टन को हटा देता है, और ठीक दानेदार पाइपलाइनिंग के कारण औसत रूप से उच्चतर थ्रूपुट हो सकता है। असली समस्या तब आती है जब आप एक क्लॉक सर्किट को क्लॉकलेस FPGA में मैप करने की कोशिश करते हैं क्योंकि उनके पास बहुत अलग समय की विशेषताएं होती हैं। यह किया जा सकता है, इसे रूपांतरण करने के लिए बस थोड़ा अधिक सामने के अंत प्रसंस्करण की आवश्यकता होती है। vlsi.cornell.edu/~rajit/ps/rc_overview.pdf
बिंघम

20

"क्या कोई तर्क के एक जटिल समूह का निर्माण कर सकता है और इसके माध्यम से जितनी जल्दी हो सके उतने ही तरंगों को भर सकता है?" हाँ। संपूर्ण सीपीयू बनाए गए हैं जो पूरी तरह से अतुल्यकालिक हैं - उनमें से कम से कम एक दुनिया में सबसे तेज सीपीयू था। http://en.wikipedia.org/wiki/Asynchronous_circuit#Asynchronous_CPU

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

मेरे लिए, यह अनुशंसा करने जैसा है कि सभी पुलों को लकड़ी से बनाया जाए, क्योंकि अधिक लोगों के पास इस्पात के काम करने वाले औजारों की तुलना में काष्ठ उपकरण हैं।

सौभाग्य से, अतुल्यकालिक डिजाइन के कुछ लाभ प्राप्त किए जा सकते हैं, जबकि वैश्विक अतुल्यकालिक स्थानीय सिंक्रोनस (GALS) डिजाइन का उपयोग करके ज्यादातर सिंक्रोनस डिजाइन तकनीकों का उपयोग किया जाता है ।


मैं एक वर्ग ग्रिड पर PCBs को रूट करने की आधुनिक प्रवृत्ति के बारे में ठीक उसी तरह महसूस करता हूं , हालांकि प्रवास के लाभ बहुत कम महत्वपूर्ण हैं।
रोमन स्टार्कोव

@romkyns - यह इस तथ्य से अधिक नीचे है कि गैर-आयताकार ग्रिड का उपयोग करने वाले पीसीबी सॉफ्टवेयर लिखना कठिन है
कॉनर वुल्फ

1
@ सुपरकैट: मुझे संदेह है कि आप चार- चरणीय तर्क के लिए अलाउड कर रहे हैं । यह बहु-चरण घड़ी संकेतों में से एक है जिसे लगता है कि यह भूल गया है।
डेविडसी

1
@davidcary: एक तार पर दोनों "चरणों" को छोड़कर - एक चरण, बढ़ते किनारे द्वारा नियंत्रित किया जा रहा है, और एक गिरने वाले किनारे से। मूल रूप से, मैं कुंडी घड़ियों को चार श्रेणियों में विभाजित करूंगा: स्वच्छ उदय, स्वच्छ गिरना, देर से उठना, देर से गिरना। L (L / CB) द्वारा देखे गए लैचेस एक साफ उठती हुई या गिरती हुई धार किसी भी उठती या गिरती हुई धार से डेटा ले सकती है। एल / सीबी एक देर से बढ़ती बढ़त किसी भी गिरते हुए किनारे से एल / सीबी क्लीन राइजिंग एज का डेटा ले सकती है। गिरते हुए किनारे से एल / सीबी एल / सीबी साफ गिरने या किसी भी उठने से डेटा ले सकता है।
सुपरकैट

1
@davidcary: बशर्ते कि किसी भी कुंडी के लिए सबसे तेज प्रसार समय सबसे लंबे समय तक पकड़ से अधिक हो, और बशर्ते कि घड़ी के किनारे तर्क के माध्यम से एक घड़ी के किनारे से सबसे लंबा संकेत पथ, और उस किनारे से "लेट" लेटेज ट्रिगर हो, किसी भी कुंडी से ट्रिगर हो। निम्नलिखित बढ़त, घड़ी के किनारों के बीच न्यूनतम समय से अधिक नहीं है, मुझे लगता है कि इस तरह के डिजाइन को पूरी तरह से विश्वसनीय होना चाहिए और प्रसार देरी के किसी भी संयोजन के तहत आंतरिक रूप से उत्पन्न मेटास्टेबिलिटी से मुक्त होना चाहिए।
सुपरकैट

5

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

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

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


4

बेशक अगर आपकी डिज़ाइन की ज़रूरतें इतनी धीमी हैं कि बहुत अधिक आंतरिक देरी अभी भी समय की तुलना में अधिक परिमाण के आदेश हैं, जिसकी आपको परवाह है, तो यह कोई समस्या नहीं है, और आप इस पर नज़र रखने के लिए समय रिपोर्ट देख सकते हैं, लेकिन वहाँ कोई सीमा नहीं है कि आप कोई आंतरिक स्थिति की जानकारी के साथ क्या कर सकते हैं। यदि आप सिर्फ 100 इनपुट मल्टीप्लेकर जैसा कुछ बनाना चाहते हैं तो ठीक है, बस याद रखें कि प्रत्येक इनपुट में एक अलग प्रसार विलंब होगा। वास्तव में आपको बड़ी संख्या में अप्रत्याशित-विलंबित थरथराने वाले फीडबैक लूपों के साथ कुछ दिलचस्प और अराजक प्रभाव मिल सकते हैं - शायद एक पूरी तरह से async FPGA आधारित सिंथेसाइज़र अगला 'एनालॉग' हो सकता है।


4

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


3
इसके साथ एक खतरा यह है कि जब तक कोई तर्क संकलक को प्रतिबंधित नहीं करता है, तब तक यह तर्क उत्पन्न कर सकता है जिसमें कुछ फाटकों के लिए नकारात्मक प्रसार समय है। उदाहरण के लिए, यदि कोई निर्दिष्ट करता है X=(someComplexFormula)और Y=X & D, और यदि कंपाइलर एक्स के लिए उस फॉर्मूले का विकल्प देता है और यह निर्धारित करता X & Dहै कि उसके बराबर है A & D, तो कंपाइलर एक्स के बजाय, ए और डी के संदर्भ में गणना कर सकता है, इस प्रकार वाई की गणना की अनुमति देता है। एक्स की तुलना में तेजी से आगे बढ़ने के लिए। ऐसे प्रतिस्थापन दहनशील तर्क के साथ मान्य हैं, लेकिन अतुल्यकालिक अनुक्रमिक तर्क पर कहर बरपाते हैं।
15 अक्टूबर को सुपरकैट

@ सुपरकैट - मैंने कभी भी एक्सलिनक्स के उपकरणों के साथ काम नहीं किया है, लेकिन जब मैंने अल्टरना एफपीजीए के साथ काम किया है, तो आपके पास हमेशा आरटीएल के बजाय कनेक्टेड गेट मॉड्यूल के रूप में किसी भी महत्वपूर्ण पथ को निर्दिष्ट करने का विकल्प होता है, जिस बिंदु पर ऐसी कोई भी आशाएं हैं विकलांग।
जूल्स

@ जूल्स: मेरे सभी प्रोग्राम-लॉजिक डिज़ाइन में एबेल का इस्तेमाल किया गया है, जो कुछ हद तक नासमझ भाषा है, लेकिन कुछ सीपीएलडी को लागू करने के तरीकों में चीजों को निर्दिष्ट करना संभव बनाता है, लेकिन जो वीएचडीएल / वेरिलॉग सिंथेसिस टूल के लिए मुश्किलें खड़ी कर सकता है। उदाहरण के लिए, मेरी एक परियोजना पर, मैंने इस तथ्य का फायदा उठाया कि एक्सिलिनक्स भागों में घड़ी, एसिंक्स सेट, और एसिंक्स रीसेट है, एक एसिंक्स-लोड करने योग्य शिफ्ट रजिस्टर को लागू करने के लिए। अगर मुझे FPGA में ऐसी चीज़ें करने की ज़रूरत है, तो कभी भी वेरिलॉग या VHDL का इस्तेमाल नहीं करना चाहिए, मुझे यह कैसे सीखना चाहिए कि ऐसा करने के लिए क्या ज़रूरी है? BTW, यदि स्मृति कार्य करती है, तो मैंने शिफ्टर के लिए टी फ्लॉप का इस्तेमाल किया, और ...
सुपरकैट

... समय ऐसा था कि async लिखना केवल उस समय हो सकता है जब T इनपुट कम होगा, यह मानते हुए कि यदि कोई राइट-पल्स की शुरुआत के पास एक nop- घड़ी हुई है, तो async लिखना इससे बहुत आगे तक बढ़ जाएगा एक स्थिर मूल्य सुनिश्चित करने के लिए, और अगर nop- घड़ी अंत के पास हुई, यह बस एक स्थिर मूल्य latching होगा। मुझे यकीन नहीं है कि वीएचडीएल या वेरिलोग में इस तरह के मामलों को कैसे कुशलतापूर्वक संभाल सकता है।
Supercat

@supercat - इसी तरह की समस्या को देखते हुए, साइक्लोन IV डिवाइस हैंडबुक को देखते हुए, मैं देखता हूं कि उसी समस्या का सबसे अच्छा तरीका "LAB- वाइड सिंक्रोनस लोड" विकल्प का उपयोग करना होगा ("LAB" 16 लॉजिक तत्वों का एक समूह है) , इसलिए यदि इस तरह के रजिस्टर का आकार 16 बिट्स में से कई को समाप्त नहीं करता है, तो कुछ बिट्स बर्बाद हो जाएंगे, लेकिन यह वैसे भी सबसे उपयोगी विकल्प लगता है)। मेरे पास अब दो विकल्प हैं: मैं कार्यात्मक वेरिलॉग लिख सकता हूं जिसके लिए आवश्यक है कि रजिस्टर को लागू करने का एक तरीका चुनने के लिए संश्लेषण उपकरण की आवश्यकता होगी (जो आमतौर पर सबसे अच्छा विकल्प होगा), या, अगर मेरे पास सख्त समय है ...
जूल्स

3

जैसा कि @Andrey ने बताया कि यह आपके समय के लायक नहीं है। विशेष रूप से उपकरण ऐसा नहीं करते हैं, इसलिए आप पूरी तरह से अपने दम पर होंगे। इसके अलावा जब से वे निर्मित रजिस्टरों में है, आप उनका उपयोग न करके कुछ भी नहीं बचा सकते हैं।


3

वास्तव में तीन प्रकार के डिजाइन हैं।

  1. मिश्रित। कोई घड़ियों और कोई प्रतिक्रिया पथ नहीं हैं और सिस्टम में कोई "मेमोरी" नहीं है। जब एक या एक से अधिक इनपुट परिवर्तन परिवर्तन को तर्क करते हैं, हालांकि तर्क। कुछ समय बाद आउटपुट एक नई स्थिति में बस जाता है जहां यह तब तक रहता है जब तक इनपुट फिर से नहीं बदलते।
  2. तुल्यकालिक अनुक्रमिक। एक प्रणाली रजिस्टरों और दहनशील तर्क के ब्लॉक के बाहर बनाई गई है, रजिस्टरों को घड़ियों की एक छोटी संख्या (अक्सर 1) द्वारा देखा जाता है। यदि एक से अधिक घड़ियां हैं, तो एक घड़ी डोमेन से दूसरे में जाने वाले संकेतों पर विशेष पूर्वाग्रहों की आवश्यकता हो सकती है।
  3. अतुल्यकालिक अनुक्रमिक। फीडबैक पथ, कुंडी, रजिस्टर या अन्य तत्व हैं जो पिछली घटनाओं की डिजाइन मेमोरी देते हैं और जो कि easilly विश्लेषित घड़ी लाइनों द्वारा नहीं देखे जाते हैं।

सामान्य तौर पर जब दहनशील तर्क का संश्लेषण / अनुकूलन करते हैं, तो उपकरण यह मान लेंगे कि यह सब मायने रखता है कि अंतिम परिणाम क्या है और उस परिणाम को हल करने के लिए अधिकतम समय की आवश्यकता है।

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

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

एक अतुल्यकालिक अनुक्रमिक प्रणाली में वे धारणाएं खिड़की से बाहर चली जाती हैं। ग्लिट्स मायने रख सकते हैं, उत्पादन में बदलाव के आदेश मायने रख सकते हैं। उपकरण और FPGAs दोनों को ही सिंक्रोनस डिज़ाइन के लिए डिज़ाइन किया गया था। बहुत चर्चा हुई है (यदि आप अधिक जानना चाहते हैं तो google asynchrous FPGA डिज़ाइन) मानक FPGAs पर या असेंबल डिज़ाइन किए गए लोगों पर एसिंक्रोनस सिस्टम को लागू करने की संभावना के बारे में है, लेकिन यह अभी भी मुख्यधारा के बाहर स्वीकृत डिज़ाइन प्रथा है।


2

हाँ। यदि आपके पास कोई प्रक्रिया प्रकार के निर्माण नहीं हैं, तो यह रजिस्टरों को संदर्भित करने जैसी चीजों को नहीं करना चाहिए। ऑनबोर्ड मेमोरी जैसी चीजें होंगी जिनके लिए घड़ियों की आवश्यकता होती है, हालांकि यदि आप वास्तव में चाहते हैं तो आप इन अतुल्यकालिक उत्पन्न कर सकते हैं।


1
क्या इसका मतलब यह है कि आप इसे एक ही उत्तर दें?
केविन वर्मेयर

1

FWIW मुझे लगा कि मुझे अतुल्यकालिक तर्क समाधानों में एक स्पष्ट लक्ष्य जोड़ना चाहिए कि बिजली की खपत में वैश्विक कमी हो।

वे वैश्विक घड़ी / पीएलएल / बफ़र बहुत सारे जूल को जलाते हैं।

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


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