标签:方法 一个 技术分享 es2017 function images width 行数据 idt
virtual class uvm_tlm_fifo_base从uvm_component继承过来;
内部定义了两个imp,两个port,imp中的两个参数,一个表示trans的type,另一个指向该fifo_base;
所以imp中的方法实现,是在该fifo实现的;
put_imp,实现trans的put,
get_peek_imp,实现trans的get或peek,
两个analysis_port主要用来将trans,write出去,put进来的,使用put_ap;
get进来的,使用get_ap;
剩下定义的2个put_export是连接到put_imp上的,
定义的6个get_peek是连接到get_peek_imp上的,
这些export供其他的component进行连接,注意每个export只能来接一个port或export。
定义各种function 原型;
fifo status类型; flush,size,used,is_empty,is_full,
put类型;put,try_put,can_put,ok_to_put,
get和peek类似。
在fifo_base之上,扩展出了两个fifo,一个tlm_fifo,一个analysis_fifo
tlm_fifo,内部实现了一个类型为T的mailbox,来进行数据的保存;
在new的时候,根据指定的size大小,指定mailbox的大小;
m_pending_blocked_gets,表示目前fifo中,被block住的个数;
put block 没有相应的标志
fifo status的function;
flush的操作,在目前有block的get时,会报错;
put,get,peek task;写到mailbox的同时,使用analysis port write;
try_get,try_peek,try_put, function;try_peek没有动作很奇怪;
can_put,can_get,can_peek function;
tlm_analysis_fifo,其中主要支持了write function;
新增加了一个analysis_imp的变量;
调用tlm_fifo的try_put,调用put_ap进行write函数;
标签:方法 一个 技术分享 es2017 function images width 行数据 idt
原文地址:http://www.cnblogs.com/-9-8/p/7611850.html