Hello,
I have read about empty sequence in couple of forums but I did not get clear understanding of what they mean. Can some one explain with a simple example?
What is the meaning of this !busy[*0:$] ? Assuming busy is a one bit signal
Thanks
Hello,
I have read about empty sequence in couple of forums but I did not get clear understanding of what they mean. Can some one explain with a simple example?
What is the meaning of this !busy[*0:$] ? Assuming busy is a one bit signal
Thanks
In reply to sandeep1291:
Hello,
I have read about empty sequence in couple of forums but I did not get clear understanding of what they mean. Can some one explain with a simple example?
What is the meaning of this !busy[*0:$] ? Assuming busy is a one bit signal
Using 0 as a sequence repetition number results in an empty sequence; for example a[*0].
I explain the topic of empty matches in my SVA book, link to 2 pages on that topic is below.
http://systemverilog.us/empty.pdf
Ben Cohen
http://www.systemverilog.us/ ben@systemverilog.us
Hi Sandeep,
If busy is a single bit signal, then it is like a boolean expression checking for busy to go low and remain low for zero to N cycles(or end of simulation). It is commonly used in concurrent assertions. * inidcates repeatative. $ indicates the from this point to end
In reply to RAGHU_BHAT:
Hi Raghuraj,
As a follow up question In this link please refer example describing ‘go to repetition operators’ how is that sequence mentioned reflects the waveform given?
Thanks
In reply to sandeep1291:
No, the sequence given in the link for goto repetition does not reflect the waveform. To describe given waveform, property should look like this,
property gotoProp;
req |=> (busy [->2]) ##1 gnt;
endproperty
According to Waveform for goto repetition operation, When req goes HIGH, from next cycle to the point gnt goes HIGH, busy should be HIGH 2 times, not necessarily consecutively.