मार्टी उत्कृष्ट उत्तर के अलावा, SystemVerilog विनिर्देश byte
डेटा प्रकार प्रदान करता है।
module tb;
byte b [4];
initial begin
foreach (b[i]) b[i] = 1 << i;
foreach (b[i]) $display("Address = %0d, Data = %b", i, b[i]);
$finish;
end
endmodule
यह बाहर प्रिंट:
Address = 0, Data = 00000001
Address = 1, Data = 00000010
Address = 2, Data = 00000100
Address = 3, Data = 00001000
यह मार्टी reg [7:0] a [0:3];
लिए अवधारणा में इसी तरह की है निम्नलिखित एक 4x8-बिट चर (4 बाइट्स) वाणी, प्रत्येक बाइट एक मूल्य प्रदान करती है, तो सभी मूल्यों को प्रदर्शित करता है । हालांकि, byte
एक 2-राज्य डेटा प्रकार (0 और 1) है, लेकिन reg
4-राज्य (01xz) है। इस सिस्टम वेरिलोग वाक्यविन्यास का समर्थन करने के लिए byte
का उपयोग करने के लिए आपके टूल चेन (सिम्युलेटर, सिंथेसाइज़र इत्यादि) की भी आवश्यकता है। नोट अधिक कॉम्पैक्ट foreach (b[i])
लूप सिंटैक्स भी नोट करें।
सिस्टम वेरिलोग विनिर्देश बहु-आयामी सरणी प्रकारों की विस्तृत विविधता का समर्थन करता है। एलआरएम उन्हें बेहतर से समझा सकता है; आईईईई स्टडी 1800-2005, अध्याय 5.
क्या लूप को <3 के बजाय <3 की आवश्यकता नहीं है? –
@RossAiken सरणी घोषणा [ए: बी] शैली समावेशी सीमा है। तो <= सही है। – siu
@siu - मैंने मूल रूप से गलत किया - रॉस-ऐइकन ने त्रुटि देखी और मैंने जवाब संपादित किया ... – Marty