14 / 37 · अवधारणा
फ्लिप-फ्लॉप, enable और नियंत्रण प्राथमिकता
मान बनाए रखना, लोड और reset को अगली अवस्था के सूत्र से परिभाषित करें तथा अनचाही clock gating से बचें।
पाठ पढ़ना मुफ़्त है। प्रगति सेव करने के लिए नामांकन करें।
रजिस्टर अगली अवस्था का परिणाम संग्रहित करता है
क्लॉक एज से ठीक पहले का मान , एज पर ग्रहण किया इनपुट और अद्यतन के बाद का मान लें। पहले reset, फिर enable प्राथमिकता वाला रजिस्टररजिस्टर कई बिटों की अवस्था संग्रहित करता है। इस पाठ्यक्रम के तुल्यकालिक रजिस्टर निर्धारित इनपुट को क्लॉक एज पर संग्रहित करते हैं। विस्तार से पढ़ें यह है।
enable=0 पर D बदलने से भी संग्रहित मान नहीं बदलता। RTL में यह बनाए रखने वाला पथ न लिखना, संयोजन परिपथ में असाइनमेंट छोड़ने से अलग है। अनुक्रमिक ब्लॉक का मान बनाए रखना रजिस्टर विनिर्देश का हिस्सा है।
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 का टकराव है।
तरंगरूप डेटा देखें
| संकेत | तरंगरूप | बस मान |
|---|---|---|
| edge | 2345 | E0 → E1 → E2 → E3 |
| reset | 0.10 | |
| enable | 01.0 | |
| D | 2.34 | 3C → 99 → 77 |
| Q after | 234. | 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 छूट सकता है; यह संयोजन भी अलग जाँचें।