Altifigence Academy

14 / 37 · अवधारणा

फ्लिप-फ्लॉप, enable और नियंत्रण प्राथमिकता

मान बनाए रखना, लोड और reset को अगली अवस्था के सूत्र से परिभाषित करें तथा अनचाही clock gating से बचें।

रजिस्टर अगली अवस्था का परिणाम संग्रहित करता है

क्लॉक एज से ठीक पहले का मान QkQ_k, एज पर ग्रहण किया इनपुट DkD_k और अद्यतन के बाद का मान Qk+1Q_{k+1} लें। पहले reset, फिर enable प्राथमिकता वाला रजिस्टररजिस्टर कई बिटों की अवस्था संग्रहित करता है। इस पाठ्यक्रम के तुल्यकालिक रजिस्टर निर्धारित इनपुट को क्लॉक एज पर संग्रहित करते हैं। विस्तार से पढ़ें यह है।

Qk+1={0rk=1Dkrk=0, ek=1Qkrk=0, ek=0Q_{k+1}=\begin{cases} 0 & r_k=1\\ D_k & r_k=0,\ e_k=1\\ Q_k & r_k=0,\ e_k=0 \end{cases}

enable=0 पर D बदलने से भी संग्रहित मान नहीं बदलता। RTL में यह बनाए रखने वाला पथ न लिखना, संयोजन परिपथ में असाइनमेंट छोड़ने से अलग है। अनुक्रमिक ब्लॉक का मान बनाए रखना रजिस्टर विनिर्देश का हिस्सा है।

SystemVerilog
module enabled_register (
  input logic clk, rst, en,
  input logic [7:0] d,
  output logic [7:0] q
);
  always_ff @(posedge clk) begin
    if (rst) q <= 8'b0;
    else if (en) q <= d;
  end
endmodule

यह परिपथ तुल्यकालिक active-high reset उपयोग करता है। किसी एज पर reset और enable दोनों 1 हों तो 0 संग्रहित होगा। क्रम बदलने से कार्य बदलता है, इसलिए प्राथमिकता केवल टिप्पणी में नहीं, कोड और परीक्षण में भी रखें।

हर स्तंभ एक उदयी किनारेउदयी किनारा (rising edge) क्लॉक के 0 से 1 होने का क्षण। यह CLK=1 के पूरे स्तर-अंतराल से अलग है। विस्तार से पढ़ें का अवलोकन है। इनपुट एज से ठीक पहले के हैं और after नाम वाली अवस्थाएँ अद्यतन के ठीक बाद की हैं। स्तंभ नमूनों का क्रम बताते हैं, भौतिक प्रसार विलंबप्रसार विलंब इनपुट बदलने के बाद आउटपुट सही मान पर स्थिर होने तक का समय। तार्किक समतुल्यता और समय-संबंधी गुण अलग हैं। विस्तार से पढ़ें नहीं। प्रारंभिक Q=0xA5 है। पहला स्तंभ मान बनाए रखना, दूसरा लिखना और तीसरा reset तथा enable का टकराव है।

reset, enable और hold की प्राथमिकता
तरंगरूप डेटा देखें
तरंगरूप डेटा: हर अक्षर एक अंतराल है; बिंदु पिछली अवस्था बनाए रखता है; p एक क्लॉक चक्र है।
संकेततरंगरूपबस मान
edge2345E0 → E1 → E2 → E3
reset0.10
enable01.0
D2.343C → 99 → 77
Q after234.A5 → 3C → 00

enable सीधे क्लॉक काटने का संकेत नहीं है

मनमाना gated_clk = clk & en बनाकर क्लॉक उपयोग करने पर en बदलने से छोटे पल्स या अप्रत्याशित एज बन सकते हैं। clock enable RTL किस सेल में बदलेगा, यह संश्लेषण और कार्यान्वयन प्रवाह की ज़िम्मेदारी है। शक्ति बचाने के लिए clock gating उपयुक्त सेल और टाइमिंग सत्यापन के साथ अलग डिज़ाइन किया जाता है।

reset, load और enable साथ सक्रिय होने पर प्राथमिकता स्पष्ट होती है। केवल एक-एक नियंत्रण चालू करके देखना पर्याप्त नहीं। उदाहरणतः q=A5, en=0, d=3C पर पुराना मान रहे; अगली एज पर en=1 हो तो 3C संग्रहित हो।

खुद आज़माएँ

q=0xA5 पर rst=1, en=1, d=0x3C वाली एज आती है; अगली पर rst=0, en=0 हैं। दोनों एजों के बाद q क्या होगा?

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

पहली एज पर reset प्राथमिक होने से 0, अगली पर enable=0 होने से वही 0 रहता है। यदि reset को en की शर्त के भीतर लिखें, तो en=0 वाला reset छूट सकता है; यह संयोजन भी अलग जाँचें।

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