# How to monitor an expected sequence, with time ranges

**URL:** <https://forum.uvvm.org/t/how-to-monitor-an-expected-sequence-with-time-ranges/325>\
**Category:** Uncategorized\
**Created:** [October 11, 2022, 7:48am UTC](https://forum.uvvm.org/t/how-to-monitor-an-expected-sequence-with-time-ranges/325 "2022-10-11T07:48:35Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Eric](https://avatars.discourse-cdn.com/v4/letter/e/898d66/32.png) [@Eric](https://forum.uvvm.org/u/Eric)\
**Post date:** [October 11, 2022, 7:48am UTC](https://forum.uvvm.org/t/how-to-monitor-an-expected-sequence-with-time-ranges/325/1 "2022-10-11T07:48:35Z")

</div>

Hi,

How do you code an expected behavior but without exact timing requirements?  
To keep it simple, say I want to monitoring a GPIO output signal  
With this intended behaviour:  
 ![image_2022-10-11_094547459](https://europe1.discourse-cdn.com/flex017/uploads/uvvm/original/1X/baa358d1c66fe8d15b41e0eb30240f5fc65cb31d.png)

So requirements are:

1. When start goes high, at time A, then B needs to be high between 100 and 200 ns.
2. One clock cycle later, at time C it needs to drop again
3. When dropped it needs to rise again between maximum of 300 ns at time D
4. When high again at time D it needs to drop between 400 and 600 ns at time E

Rgds,  
Eric

---

<div class="post-metadata">

**Author:** ![EspenTa](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.uvvm.org/espenta/32/52_2.png) [@EspenTa](https://forum.uvvm.org/u/EspenTa)\
**Post date:** [October 13, 2022, 8:52am UTC](https://forum.uvvm.org/t/how-to-monitor-an-expected-sequence-with-time-ranges/325/2 "2022-10-13T08:52:10Z")

</div>

Hi Eric,  
This sounds like a really DUT specific behaviour, so I don’t think it makes sense to make general functionality for this in UVVM. If you find a good way to make this general then please submit a pull request.  
I think I would have made a dedicated process for this scenario. Initially trigger on rising START (or a correct pulse on START - depending on more detailed requirements) and then follow the requiremens you described and handle exceptions the right way.  
I assume the await\_value() command in Utility library would be essential here.

– Espen

---

<div class="post-metadata">

**Author:** ![Eric](https://avatars.discourse-cdn.com/v4/letter/e/898d66/32.png) [@Eric](https://forum.uvvm.org/u/Eric)\
**Post date:** [October 17, 2022, 7:50am UTC](https://forum.uvvm.org/t/how-to-monitor-an-expected-sequence-with-time-ranges/325/3 "2022-10-17T07:50:13Z")

</div>

Hi Espen,

Thanks for your answer. Yes it is very specific DUT behavior, and it was not my intension to request special UVVM function for this.

It was more my lack of understanding on how to

- deal with signals that might toggle in a certain window-of-time.
- program the monitor in the test bench to expect a certain sequence of expected values, in this case ‘0’ and ‘1’.

Rgds,  
Eric

---

<div class="post-metadata">

**Author:** ![EspenTa](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.uvvm.org/espenta/32/52_2.png) [@EspenTa](https://forum.uvvm.org/u/EspenTa)\
**Post date:** [October 18, 2022, 5:51pm UTC](https://forum.uvvm.org/t/how-to-monitor-an-expected-sequence-with-time-ranges/325/4 "2022-10-18T17:51:54Z")

</div>

Hi Eric,

I understand.  
Hope you find a good way to handle this.

Regards  
Espen
