Using fork with randsequence

From what I understand, randsequence runs the sequences inside sequentially, but what if I wanted to run them in parallel?
I tried using fork/join like this:


randsequence (main)
    main: fork
        begin
            one;
        end
        begin
            two;
        end
    join_none
    one: {seq_1(m_sequencer);};
    two: {seq_2(m_sequencer);};
endsequence

But that only resulted in the error: “randsequence production is missing in this item of the case production statement.”

To clarify though, what I originally intended to do is run some sequences in parallel depending on a “case” statement that I get from the cmdline, but when I tried doing this:


fork
    case (seq)
        "seq_1": begin
            seq_1_1(m_sequencer);
            seq_1_2(m_sequencer);
        end
        "seq_2": begin
            seq_2_1(m_sequencer);
            seq_2_2(m_sequencer);
        end
    endcase
join_none

I only get the first sequence inside the selected case to run but the subsequent sequences don’t, that’s when I started searching and came across “randsequence” which I can’t seem to be able to run as well.

Any help with either scenarios would be very appreciated. Thanks a lot.

In reply to m.gawad:

randsequence constructs a serial set of statements. If you want to do anything in parallel, that has to be within a single production.

But it’s not entirely clear what you want to do. A UVM sequencer only works sequentially as well.