preface
uvm_sequence #(REQ,RSP)扩展自uvm_sequence_base。为创建一个由item或者sequence组成的stream流提供了接口。
1.属性
typedef uvm_sequencer_param_base #(REQ, RSP) sequencer_t;
sequencer_t param_sequencer;
REQ req;
RSP rsp;
2. function void send_request(uvm_sequence_item request, bit rerandomize = 0);//该函数主要是调用m_sequencer.send_request把一个REQ类型的request送给driver,在送前根据rerandomize决定是否随机化
3. function REQ get_current_item();//返回sequencer正在处理的item,由于sequencer的type和sequence严格匹配,所以param_sequencer.get_current_item()返回的就是REQ类型的
4.virtual task get_response(output RSP response, input int transaction_id = -1);//从response_queue中返回一个item并检查是不是RSP类型的
5. virtual function void put_response(uvm_sequence_item response_item);//如果item是RSP类型的就放入response_queue,如果不是报错
6. virtual function void put_base_response(input uvm_sequence_item response);执行具体的把reponse放入队列的操作,并检查是否超过了队列的最大深度8,被5调用
7.function void do_print (uvm_printer printer);打印rsp, req
8. virtual function uvm_sequence_item create_request ();产生一个req实例并返回
9. virtual function uvm_sequence_item create_response ();产生一个rsp实例并返回
location
C:\Documents and Settings\zhliu\Desktop\uvm-1.0p1\src\seq\uvm_sequence.svh