5 / 37 · अवधारणा
logic, wire, X/Z और स्पष्ट बिट चौड़ाई
प्रकार, ड्राइवर और भंडारण अलग करें तथा लिटरल, तुलना, विस्तार और अज्ञात मान जाँचें।
पाठ पढ़ना मुफ़्त है। प्रगति सेव करने के लिए नामांकन करें।
प्रकार, ड्राइवर और भंडारण अलग प्रश्न हैं
logic चार-अवस्था वाला प्रकार है; wire एक नेट कनेक्शन बताता है जो चार अवस्थाएँ भी वहन कर सकता है। ड्राइवर नियमों के अनुसार logic चर संयोजन परिणाम या क्लॉक अवस्था हो सकता है। नाम flip-flop की गारंटी नहीं: सतत असाइनमेंट, संयोजन प्रक्रिया या किनारे की प्रक्रिया खोजें। साधारण सिग्नल पर एक नियत स्रोत रखें। समाधान वाली बहु-ड्राइवर नेट और द्विदिश इंटरफ़ेस के लिए अलग विद्युत और औज़ार अनुबंध चाहिए; वे इन उदाहरणों में नहीं हैं।
चौड़ाई और अर्थ तय करें
logic [7:0] u आठ बिना चिह्न वाले बिट रखता है; logic signed [7:0] s उन्हीं बिटों को टूज़ कॉम्प्लिमेंट समझता है। 8'hFF, u के लिए 255 और s के लिए −1 है। packed वेक्टर बिट साथ रखता है, समय में आठ क्रमिक मान नहीं।
module typed_examples (
input logic [3:0] a, b,
input logic signed [7:0] s,
output logic [4:0] full_sum,
output logic signed [8:0] extended_s,
output logic negative,
output logic any_bit, all_bits, parity
);
assign full_sum = {1'b0, a} + {1'b0, b};
assign extended_s = {s[7], s};
assign negative = s < 8'sd0;
assign any_bit = |a;
assign all_bits = &a;
assign parity = ^a;
endmoduleextended_s चिह्न बिट दोहराता है; शून्य जोड़ना −1 को +255 कर देता है। Concatenation बिना चिह्न का व्यंजक है, इसलिए signed गणना में स्पष्ट अर्थ या सही मध्यवर्ती मान चाहिए। यहाँ चाहा बिट पैटर्न signed गंतव्य को मिलता है। चौड़ाई महत्वपूर्ण हो तो 4'd15,8'hFF,8'sd0 लिखें। बिना आकार का पूर्णांक व्यंजक बढ़ा सकता है: दोनों ऑपरेंड और असाइनमेंट संदर्भ देखें, केवल बायाँ पक्ष नहीं।
ऑपरेटरों के तीन परिवार
a & b हर बिट पर काम करता है; a && b दोनों वेक्टर सत्य हैं या नहीं जाँचकर एक बिट देता है;&a सभी बिट 1 होने की reduction करता है। a=0011, b=0101 पर 0001,1,0 मिलते हैं। ^a parity निकालता है,0011 के लिए 0। अस्पष्ट व्यंजक को मध्यवर्ती मानों में बाँटकर हर सीमा दर्ज करें।
अज्ञात तीसरा वोल्टेज नहीं
X अज्ञात और Z उच्च प्रतिबाधा दर्शाते हैं, निश्चित वोल्टेज नहीं। दो-अवस्था मॉडल चार-अवस्था व्यवहार साबित नहीं करता। X को शून्य छिपाने के बजाय स्पष्ट रीसेट करें। निर्णय न हो तो ==, X दे सकता है; टेस्टबेंच में actual !== expected ज्ञात अपेक्षा के सामने X/Z बताता है। Case equality सामान्य हार्डवेयर में भौतिक X पहचानना नहीं है।
अभ्यास: बढ़ाएँ, जोड़ें, तुलना करें
a=15, b=1 पर full_sum=10000। s=8'h80 पर extended_s=110000000, negative=1; s=8'h7F पर 001111111, negative=0। शून्य, अधिकतम धनात्मक, न्यूनतम ऋणात्मक और −1 जाँचें। {1'b0, s} करें और ऋणात्मक त्रुटियाँ पकड़ें। !== को != करें और actual में X डालें: अज्ञात शर्त चाही त्रुटि रिपोर्ट न कर सकेगी।