[CU]6.5seqr&driver-m_sequencer
1.m_sequencer
(1) 所有的sequence都有一个m_sequencer句柄.
1 virtual class uvm_sequence #(type REQ=uvm_sequence_item, type RSP=REQ) extends uvm_sequence_base; 2 3 class uvm_sequence_base extends uvm_sequence_item; 4 5 class uvm_sequence_item extends uvm_transaction; 6 ... 7 protected uvm_sequencer_base m_sequencer; 8 ... 9 virtual function void set_sequencer(uvm_sequencer_base sequencer); 10 ... 11 m_sequencer=sequencer; 12 ... 13 endfunction 14 15 endclass
2.m_sequencer的赋值
(1)所有sequence都要在sequencer中启动,如tr_seq.start(env.vsqr). 当sequence启动的时候, 在sequence的task start内,会调用set_item_context函数; 在set_item_context函数内,会调用set_sequencer函数.
(2) set_sequencer函数会使m_sequencer句柄指向执行当前sequence的sequencer,即指向env.vsqr.
//src/seq/uvm_sequence_base.svh virtual task start(uvm_sequencer_base sequencer, uvm_sequence_base parent_sequence=null, int this_priority=-1, bit call_pre_post=1); ... set_sequencer(sequencer); ... endtask //src/seq/uvm_sequence_item.svh virtual function void set_sequencer(uvm_sequencer_base sequencer); m_sequence=sequencer; m_set_p_sequencer(); endfunction virtual function void m_seq_p_sequencer(); return; endfunction
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?