如何例化传递interface数组(generate的妙用)
资料来源
(1) 硅芯思见:【101】如何例化传递interface数组 (qq.com)
1.背景
(1) 进行验证环境搭建时,需要通过interface连接由设计构成的静态世界(static world)和由验证环境构成的动态世界(dynamic world);
注1:static world主要实现元件的例化与连接等操作,包括module, interface, checker, primitive等的例化,还包括设计层次的确定; 在仿真开始后,static world确定的结构和原件不能被再次创建或者销毁,直到仿真结束关闭;
注2:dynamic world可以在仿真进行的过程中被创建或者销毁;
注3:interface/virtual interface是沟通静态世界和动态世界的桥梁;
(2)对于单个interface可以使用uvm_config_db/uvm_resource_db机制将interface传递到动态世界中,但当遇到需要连接多个相同的interface(即interface数组)到环境时,应该如何实现?
2.例化传递interface数组
2.1方法一之将interface数组中每个interface单独进行连接
2.2方法二之generate block使用
注:下面图中部分code有更好的实现方法,可以使用for循环+automatic变量,有可能还需要用到wait_fork;