Can we use $rose for multibits

hai, all.

I have a doubt, can we use $rose for multi bits.

  1. after the reset I have to check for the grant signal.
  2. grant signal can come at any time after reset is asserted.
  3. grant signal is 8bits {7:0].

property p;
(@(posedge clk) reset |=> $rose(grnt[7:0])
endproperty

can I use $rose in this way, please correct me if am wrong

In reply to vickyvinay:
$rose can not be used for multi bit. $rose(gnt[7:0]) will use only $rose(gnt[0]) least significant bit position. How many grant bits can be toggle during reset one or many ?

In reply to vickyvinay:

You can use
$rose( | gnt )

In reply to kddholak:

after reset we can have multiple grant signals

In reply to dave_59:

hai, dave,

  1. Now can I assume that $rose is used for a single bit?

2.can you provide me some more information regarding this?

note: actually grant signal can be high at any instant of time after reset, so the thing is we need to wait for the grant signal.

for multiple bits, I am a little bit confused.

In reply to vickyvinay:

The $rose expects as argument an expression. For a single bit the situation is clear. A vector itself is not an expression. But you can use it together with another system function ($stable).

In your case I’d use:

property p;
 (@(posedge clk) reset |=> $rose(!$stable(grnt[7:0]))
endproperty

BTW, including the sampling event into the property is a bad coding style because it limits the reusability of this property to all designs with a clock signal named ‘clk’. Write simply

property p;
  reset |=> $rose(!$stable(grnt[7:0]))
endproperty

In reply to chr_sue:

thanks a lot, I will try it and see whether its working or not.