zoukankan      html  css  js  c++  java
  • how to set interface arrays : Illegal index into array of interfaces

    error information

    Illegal index into array of interfaces

     

    the reason 

    link 

    http://forums.accellera.org/topic/677-ies-102-using-config-db-to-set-array-of-interfaces/
     

    https://forum.verificationacademy.com/forum/verification-methodology-discussion-forum/uvm-forum/24462-setting-array-interfaces-uvm-config-database
    copy as

    The problem is that an array of instances (module, interface, or program), is not the same as an aggregate data type you know as an array variable. An array variable is a collection of identically typed elements.

    With an array variable, you know what arrayvar[1].somthing refers to is identical in definition to arrayvar[2].something, except that is located somewhere else memory. You can simply multiply the variable index value by some constant value to find the offset in memory where it is located.

    An array of instances is just a shortcut for declaring a set of numbered instances. Because of Verilog generate and parameter overrides statements, with an array of instances, you don't necessarily have a regular array. It's possible what arrayinst[1].something refers to something completely different than what arrayinst[2].something does. So the compiler requires a constant index value to know what that particular something is. You typically use a generate/for_loop to do this.

     

    and please note

    What you need to do is pull the loop outside the initial block

    code snippet
    for(genvar i=0;i<N;i++) begin : for_loop 
    initial begin : config
    string if_name;
    $sformat(if_name, "IF[%0d]", i);
    uvm_config_db#(virtual my_if_type)::set(uvm_root::get(), "*", if_name, my_if[i]);
    end : config
    end : for_loop
  • 相关阅读:
    pl2303 驱动
    tomcat 启动脚本
    Linux下Shell命令加减乘除计算
    定时删除文件夹"$1"下最后修改时间大于当前时间"$2"天的文件
    mysql 拼接字符
    jquery iframe父子框架中的元素访问方法
    在线工具
    js对数组对象的操作以及方法的使用
    HTML 设置字体
    10月1号 备忘录
  • 原文地址:https://www.cnblogs.com/testset/p/3447590.html
Copyright © 2011-2022 走看看