specmane

Specman e: How a sequence should be started when gen_and_start_main constrained to FALSE?


I've disabled automatic start of MAIN sequence, so I can control my sequences flow:

extend my_driver {
    keep soft gen_and_start_main == FALSE;   
};

But, I don't find a way to start the sequence not-automatically, since I get compilation error, e.g. the code:

some_tcm()@clock is {
    // some logic
    start sys.my_agent.my_driver.main_sequence.body();
};

Causes an error:

cannot call method - object is NULL

How the sequence should be started not-automatically, when gen_and_start_main field is constrained to FALSE?

Thank you for your help


Solution

  • Starting a sequence can be done using their start_squence() method. you have generate the sequence, and then start it -

        gen sys.my_agent.my_drive.main_sequence keeping {
            .driver == sys.my_agent.my_drive;
        };
    
        sys.my_agent.my_drive.main_sequence.start_sequence();