uvm_subscriber虚类的问题
时间:10-02
整理:3721RD
点击:
各位:最近在搭建uvm平台。目前遇到一个问题。就是采用coverage class 来统计功能覆盖率,不用调用write函数能够正常统计覆盖率。coverage class是继承uvm_subscriber这个虚类,并且将纯虚方法write进行实现。问题是,在env中对coverage类进行了初始化,然后将monitor的analysis_port和coverage的analysis_imp进行相连。没有调用write这个函数,但是write却可以执行。(mentor 提供的abc 例子)
我在linlux下做了实验,首先创建一个虚类,里面写一个纯虚函数,然后通过一个类继承这个虚类,通过实验发现,不调用这个方法,仿真不会做相应的操作。
mentor中的uvm_subscriber这个类中有段说明:write函数是通过外部子component的uvm_analysisport 来调用的 。这块实在是不明白 、
还请大神赐教
谢谢
我在linlux下做了实验,首先创建一个虚类,里面写一个纯虚函数,然后通过一个类继承这个虚类,通过实验发现,不调用这个方法,仿真不会做相应的操作。
mentor中的uvm_subscriber这个类中有段说明:write函数是通过外部子component的uvm_analysisport 来调用的 。这块实在是不明白 、
还请大神赐教
谢谢
write函数是不通过现实的调用就能够执行 。 但是不清楚是怎么调用的 。
当port与imp连接,调用port.write()时,会去查询与之连接的imp,然后调用其writer(),对试用者来说这些操作是透明的,使用者只需要知道将port与imp连接起来,然后imp必须实现write()函数,port就能将内容传递到imp中处理即可。
多谢。你知道port.write()写操作在哪里调用write(T t)吗?看样子这个是绑定的我在uvm_subscriber中重新洗了个纯虚函数,只是名字和write不同,其它相同,在coverage中只有显示的调用才会执行方法,否则不执行。
不清楚哪里调用了write函数。