2017-08-19 80 views
1

我有3個序列和4個序列。如何用特定的音序器附加UVM序列?

我想

  1. 序器1運行序列1,
  2. 序2運行序列1,
  3. 定序器3以串行順序運行序列2,序列3。
  4. 序列發生器4以序列順序運行序列1,序列2。

一種方法這樣做是測試類

task run_phase(uvm_phase phase); 
fork 
    sequence1.start(sequencer1); 
    sequence1.start(sequencer2); 
    begin 
    sequence2.start(sequencer3); 
    //wait for request.... 
    sequence3.start(sequencer3); 
    end 
    begin 
    sequence2.start(sequencer4); 
    //wait for req.... 
    sequence1.start(sequencer4); 
    end 
join 
endtask 

裏面我該怎麼辦內各序相同,比內測試做什麼?

回答

0

你寫的是做你想做的事的最好方法(在fork之前提出異議並在join之後放棄它)。所有其他方法都難以在fork之前或join之後添加其他序列。

您可以使用uvm_config_db設置每個順控程序的「default_sequence」,但需要爲sequencer3和4創建另一個順序層,以所需順序啓動sequence1和2。您還需要處理每個默認序列內的提高/降低反對意見。

另一種選擇是不使用通用序列發生器,而是可以定義序列發生器並覆蓋run_phase以啓動每個序列或一系列序列。