Empty Sequence in systemverilog

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

  • SVA Handbook 4th Edition, 2016 ISBN 978-1518681448
    // For 10% discount, use code 45KJT5GN @ https://www.createspace.com/5810350
  • A Pragmatic Approach to VMM Adoption 2006 ISBN 0-9705394-9-5
  • Using PSL/SUGAR for Formal and Dynamic Verification 2nd Edition, 2004, ISBN 0-9705394-6-0
  • Real Chip Design and Verification Using Verilog and VHDL, 2002 isbn 0-9705394-2-8
  • Component Design by Example ", 2001 ISBN 0-9705394-0-1
  • VHDL Coding Styles and Methodologies, 2nd Edition, 1999 ISBN 0-7923-8474-1
  • VHDL Answers to Frequently Asked Questions, 2nd Edition ISBN 0-7923-8115

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.