मैं वेरिलोग के लिए नया हूं लेकिन वर्षों से सी प्रोग्रामर रहा हूं जो मुझे खतरनाक बनाता है।क्या Verilog में __LINE__ की तरह कुछ है?
मैं कक्षा के लिए कुछ Verilog कर रहा हूँ। मैं अपने सिमुलेशन कोड में सी assert() शैली परीक्षण का उपयोग करना चाहता हूँ। https://en.wikipedia.org/wiki/Assert.h
हम सिस्टम वेरिलोग का उपयोग नहीं कर रहे हैं, इसलिए कोई मानक दावा नहीं है जो मुझे मिल सकता है। मैंने निम्नलिखित मैक्रो को एक साथ जोड़ दिया है।
`define ASSERT_EQUALS(x,y) \
repeat(1)\
begin\
if((x) != (y)) \
begin\
$write("assert failed %d != %d\n", (x), (y));\
$finish;\
end\
end
// test the assert(should fail)
`ASSERT_EQUALS(t_data_in,16'hfffe)
जहां तक मैं कह सकता हूं कि लाइन नंबर प्राप्त करने का कोई तरीका नहीं है। तो यदि दावा विफल रहता है, तो मुझे विफलता के स्थान पर वापस लिंक करने का कोई तरीका नहीं मिलता है।
assert failed 65535 != 65534
क्या वर्तमान लाइन नंबर प्राप्त करने का कोई तरीका है? या Verilog में एक दावा परीक्षण करने के लिए एक बेहतर तरीका है?
धन्यवाद!
'__LINE__ सिस्टम वेरिलोग में पेश किया गया था। – toolic
सिस्टम वेरिलोग भी दावे के लिए मूल समर्थन है। –
Icarus Verilog iverilog संस्करण 1.0 के बाद '__LINE__' और '__FILE__' मैक्रोज़ का समर्थन करता है परीक्षण केस [ivltests/fileline.v] (https://github.com/steveicarus/ivtest/blob/master/ivltests/fileline.v) देखें उपयोग – shuckc