Randsequence (main) rand join A B; - ncvlog: *E,RSNOPROD (test.sv,90|27): randsequence production has no production items [SystemVerilog LRM, randsequence]

Guys,

I’m getting ncvlog: *E,RSNOPROD (test.sv,90|27): randsequence production has no production items [SystemVerilog LRM, randsequence] for the randsequence as below.

    randsequence (main)
    main              : rand join seq_pio seq_pio_multi seq_pio_ext seq_pio_multi_ext seq_dma seq_dma_ext seq_fpdma;

    seq_pio           : Write Read; //always write follwed by read
    seq_pio_multi     : Write_Multiple Read_Multiple;
    seq_pio_ext       : Write_Extended Read_Extended;
    seq_pio_multi_ext : Write_Multi_Ext Read_Multi_Ext;
    seq_dma           : DMA_Write DMA_Read;
    seq_dma_ext       : DMA_Write_Ext DMA_Read_Ext;
    seq_fpdma         : FPDMA_Write FPDMA_Read;

   Write      : {
                    ...
                 };

    Read      : {
                    ...
                 };
...

endsequence

Let me know if I’m missing any.

John

In reply to John Verif:

The code seems okay.

Does the version of your simulator support rand join ? Check from the reference document at the installation path or contact cadence Application Engineer.

Yes, It was tool issue. Cadence supports “rand join” only above 12.1 version.

In our project we are using ncsim 11.1.

How can implement similar functionality in other way?

Basically every write should happen before corresponding read.

Like below,

Write should happen before Read at any combinations
Write_Multiple should happen before Read_Multiple at any combinations.
DMA_Write should happen before DMA_Read at any combinations

Any clue?

John