Altifigence Academy

11 / 63 · अवधारणा

डिकोडर, one-hot चयन और वैध इनपुट

द्विआधारी पते को अलग चयन लाइनों में बदलें तथा enable, सीमा और चयन की अपरिवर्तनीय शर्तें बनाएँ।

पते को चयन लाइनों में बदलना

NN-बिट डिकोडरडिकोडर द्विआधारी कोड के अनुरूप आउटपुट लाइन सक्रिय करता है। enable होने पर निष्क्रिय अवस्था में सभी आउटपुट 0 रखे जा सकते हैं। इनपुट पते से अधिकतम 2N2^N आउटपुटों में से एक चुनता है। enable ee वाला आउटपुट did_i इस तरह परिभाषित कर सकते हैं।

di=e∧(a=i)d_i=e\land(a=i)

2-to-4 डिकोडर में d0=ea‾1a‾0d_0=e\overline a_1\overline a_0, d1=ea‾1a0d_1=e\overline a_1a_0, d2=ea1a‾0d_2=ea_1\overline a_0, d3=ea1a0d_3=ea_1a_0 हैं। enable=0 पर सभी आउटपुट 0 और enable=1 पर ठीक एक आउटपुट 1 है।

enable=1 पर a1a0 पता बदलें: d0 से d3 में केवल एक सक्रिय होगा। enable=0 करके देखें कि सभी चयन लाइनें निष्क्रिय होती हैं।

पते से one-hot चयन लाइनों तक

d[i] = enable AND (2 × a1 + a0 = i)

डिफ़ॉल्ट मान कार्य पूरा करता है

SystemVerilog
module decoder2 (
  input logic en,
  input logic [1:0] addr,
  output logic [3:0] select
);
  always_comb begin
    select = 4'b0000;
    if (en) begin
      case (addr)
        2'd0: select = 4'b0001;
        2'd1: select = 4'b0010;
        2'd2: select = 4'b0100;
        2'd3: select = 4'b1000;
        default: select = 4'b0000;
      endcase
    end
  end
endmodule

प्रारंभिक डिफ़ॉल्ट असाइनमेंट सभी निष्पादन पथों को ढकता है, ताकि पुराना आउटपुट याद न रखा जाए। केवल always_comb नाम देने से अपरिभाषित शाखाएँ अपने आप सही परिपथ नहीं बन जातीं।

जब आउटपुट संख्या दो की घात न हो

10 उपकरणों में चयन के लिए चार-बिट पता चाहिए, लेकिन 10 से 15 अमान्य हैं। इनके लिए सभी आउटपुट 0 और त्रुटि फ़्लैग 1 जैसी नीति विनिर्दिष्ट करें। कोई कोड उपयोग में नहीं है, इसका अर्थ मनमाना आउटपुट स्वीकार्य होना नहीं है।

सत्यापन में इनपुट-आउटपुट संबंध के साथ क्या कई चयन लाइनें एक साथ सक्रिय हैं और disable होने पर क्या सभी बंद हैं भी जाँचें। ऐसी अपरिवर्तनीय शर्तेंअपरिवर्तनीय शर्त हर अनुमत निष्पादन में हमेशा सत्य रहने वाली शर्त। मसलन चार स्थान वाली FIFO में संग्रहित वस्तुओं की संख्या हमेशा 0 से 4 के बीच रहती है। विस्तार से पढ़ें मेमोरी write enable और बस चयन में विशेष महत्त्व रखती हैं। बड़ा डिकोडर पता संकेतों का fan-out और तार लोड भी बढ़ाता है, इसलिए पदानुक्रमित डिकोडिंग उपयोगी हो सकती है।

खुद आज़माएँ

10 आउटपुट वाला पता डिकोडर बनाएँ। पता चौड़ाई, अमान्य इनपुटों की संख्या और en=0 पर अनिवार्य शर्त तय करें।

व्याख्या पढ़ें

पता चौड़ाई ⌈log⁡210⌉=4\lceil\log_2 10\rceil=4 बिट है और छह कोड अमान्य हैं। en=0 पर पते से स्वतंत्र होकर सभी चयन लाइनें 0 होनी चाहिए। अमान्य पते पर भी सभी 0 और अलग त्रुटि संकेत देने का विनिर्देश चुन सकते हैं।

आपका चयन इस ब्राउज़र पर लागू होता है। फ़ुटर से कभी भी बदलें।