Home > Community > Forums > Functional Verification > How to filter X -> 0 or X -> 1 from signals for events

Email

* Required Fields

Recipients email * (separate multiple addresses with commas)

Your name *

Your email *

Message *

Contact Us

* Required Fields
First Name *

Last Name *

Email *

Company / Institution *

Comments: *

 How to filter X -> 0 or X -> 1 from signals for events 

Last post Thu, Oct 4 2012 5:23 AM by hannes. 3 replies.
Started by jaichandra 22 Aug 2012 12:41 AM. Topic has 3 replies and 1379 views
Page 1 of 1 (4 items)
Sort Posts:
  • Wed, Aug 22 2012 12:41 AM

    • jaichandra
    • Not Ranked
    • Joined on Tue, Sep 22 2009
    • Posts 5
    • Points 85
    How to filter X -> 0 or X -> 1 from signals for events Reply

    Hi all,

              I am having problem in filtering the changes from x->1 and x->0 on a singal which i use to generate events.

           For example,

                I have a simple port "a" of type in, which is connected to a DUT signal. DUT drives x on the signal "a" for some time initially

     (10ns)   and then drives the value 1. I declared an event as shown below. clk_r is a clock rising event. The first clk_r event is available

      well after signal "a" settles with the value 1.

          event a_e is rise(a$)@clk_r; 

       Because of the change from x->1 on the signal "a", i receive an event on a_e on the first clk_r event.

       Can anyone suggest me how i can filter this unwanted event.

    • Post Points: 20
  • Fri, Aug 31 2012 4:20 AM

    • MDK1234
    • Not Ranked
    • Joined on Wed, Aug 29 2012
    • Posts 4
    • Points 80
    Re: How to filter X -> 0 or X -> 1 from signals for events Reply

    By default, ICC records transitions 1 -> 0 and 0 -> 1. To record transitions X -> 0 and

    X -> 1, use the set_toggle_includex command.

    Consider transition 0 -> X -> 1 -> 0 -> X -> 1.

    In the absence of the set_toggle_includex command,

    The number of rise transitions is 0.

    The number of fall transitions is 1 (1 -> 0).

    With this command,

    The number of rise transitions is 2 (X -> 1 and X -> 1).

    The number of fall transitions is 1 (1 -> 0).

    • Post Points: 20
  • Thu, Sep 6 2012 9:47 PM

    • jaichandra
    • Not Ranked
    • Joined on Tue, Sep 22 2009
    • Posts 5
    • Points 85
    Re: How to filter X -> 0 or X -> 1 from signals for events Reply

    Hi MDK1234,

             Thanks for your reply. I created a work around for my issue by using the reset signal and ignoring the initial transitions from x->1 by checking if the reset is true.

       Thanks again for your reply.

     

     

    • Post Points: 20
  • Thu, Oct 4 2012 5:23 AM

    • hannes
    • Top 150 Contributor
    • Joined on Fri, Nov 14 2008
    • Bracknell, Berkshire
    • Posts 48
    • Points 855
    Re: How to filter X -> 0 or X -> 1 from signals for events Reply
    Hello Jaichandra,

    you can also use an event port and multi-value logic (MVL), which can distinguish between U, Z, X, 0 and 1:

    sd_rise : in event_port is instance;
       keep sd_rise.hdl_path() == “whatever you have for the other port”;
       keep sd_rise.edge() == MVL_0_TO_1;

    Regards,
    -hannes
    • Post Points: 5
Page 1 of 1 (4 items)
Sort Posts:
Started by jaichandra at 22 Aug 2012 12:41 AM. Topic has 3 replies.