प्राथमिकता एनकोडर

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

बड़े एनकोडर बनाने के लिए प्राथमिकता एनकोडर को आसानी से एरे में जोड़ा जा सकता है, जैसे छह 4-टू-2 प्राथमिकता एनकोडर से बना एक 16-टू-4 एनकोडर - चार 4-टू-2 एनकोडर जिनके सिग्नल स्रोत उनके इनपुट से जुड़े होते हैं, और शेष दो एनकोडर पहले चार के आउटपुट को इनपुट के रूप में लेते हैं। सभी संभावित इनपुट कंप्यूटर विन्यास को संभालने के मामले में, प्राथमिकता एनकोडर एक सरल एनकोडर सर्किट में सुधार है।

== प्राथमिकता एनकोडर का पुनरावर्ती निर्माण  == एक प्राथमिकता-एनकोडर, जिसे अग्रणी शून्य डिटेक्टर (एलजेडडी) या अग्रणी शून्य काउंटर (एलजेडसी) भी कहा जाता है, एक प्राप्त करता है $$n$$-बिट इनपुट वेक्टर और इनपुट वेक्टर में पहले बाइनरी '1' के सूचकांक का पता लगाता है। एक वैध संकेत इंगित करता है कि क्या इनपुट वेक्टर में कोई बाइनरी '1' पाया गया था, इसलिए सूचकांक वैध है।

प्राथमिकता-एनकोडर को रिकर्सन द्वारा कुशलतापूर्वक निर्मित किया जा सकता है। इनपुट वेक्टर को विभाजित किया गया है $$k$$ के साथ बराबर टुकड़े $$n/k$$ बिट्स एक प्राथमिकता एनकोडर $$\textrm{PE}_{n/k}$$ प्रत्येक टुकड़े के लिए 𝑛/𝑘 की एक संकीर्ण चौड़ाई लागू की जाती है। प्रत्येक का वैध बिट $$k$$ $$\textrm{PE}_{n/k}$$एक को जाता है $$k$$ अंश $$\textrm{PE}_{n/k}$$ पहले वैध टुकड़े का पता लगाने के लिए। इस टुकड़े का स्थान समग्र सूचकांक का उच्च भाग है, और समग्र सूचकांक के निचले हिस्से का उत्पादन करने के लिए टुकड़े के भीतर ही सटीक स्थान निर्धारित करता है।

प्रस्तावित संरचना की गहराई है $$\lceil\log_kn\rceil$$, जबकि हार्डवेयर क्षेत्र की जटिलता है $$\mathcal{O}(n)$$. यदि अल्टेरा के स्ट्रैटिक्स वी या समकक्ष उपकरण का उपयोग किया जाता है, $$k=4$$ उच्च प्रदर्शन और क्षेत्र संपीड़न प्राप्त करने के लिए इसकी अनुशंसा की जाती है, क्योंकि मक्स को 6-एलयूटी, इसलिए एक संपूर्ण एएलएम का उपयोग करके कार्यान्वित किया जा सकता है।

पुनरावर्ती प्राथमिकता-एनकोडर के लिए एक ओपन-सोर्स वेरिलॉग जनरेटर ऑनलाइन उपलब्ध है। वेरिलॉग में प्राथमिकता एनकोडर का व्यवहारिक विवरण इस प्रकार है।  // प्राथमिकता एनकॉन्डर का व्यवहारिक विवरण; // https://github.com/AmeerAbdelhadi/Indirectly-Indexed-2D-Binary-Content-Addressable-Memory-BCAM

मॉड्यूल pe_bhv (इनपुट सीएलके, // पाइपलाइन प्राथमिकता एनकोडर के लिए घड़ी   इनपुट आरएसटी, // पाइपलाइन प्राथमिकता एनकोडर के लिए रजिस्टर रीसेट    इनपुट [ओएचडब्ल्यू -1:0] ओएचटी, // एक-हॉट इनपुट / [ओएचडब्ल्यू -1:0]    आउटपुट reg [`log2(OHW)-1:0] बिन, // पहला '1' इंडेक्स/ [`log2(OHW)-1:0]    आउटपुट रेग वीएलडी); // यदि कोई पाया गया तो बाइनरी मान्य है // गैर निश्चित लूप लंबाई के लिए while लूप का उपयोग करें // इंटेल के क्वार्टस II के साथ अच्छी तरह से संश्लेषित हमेशा @(*) प्रारंभ करें बिन = {`log2(OHW){1'b0}}; वीएलडी = ओएचटी[बिन] ; जबकि ((!vld) && (bin!=(OHW-1))) शुरू होता है बिन = बिन + 1 ; वीएलडी = ओएचटी[बिन]; अंत अंत
 * 1) (पैरामीटर OHW = 512) // एनकोडर एक-हॉट इनपुट चौड़ाई

एंडमॉड्यूल 

सरल एनकोडर


एक एनकोडर (डिजिटल) सर्किट एक-हॉट से बाइनरी कनवर्टर है। अर्थात यदि 2 हैंnइनपुट लाइनें, और अधिकतम उनमें से केवल एक ही कभी ऊंची होगी, इस 'हॉट' लाइन का बाइनरी कोड एन-बिट आउटपुट लाइनों पर निर्मित होता है।