2017-08-19 78 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以启动每个序列或一系列序列。