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
  • 相关阅读:
    ios swift 支持cocoaPods
    iOS 国际化
    ios storyboard全解析 (二)
    ios storyboard全解析 (一)
    UML类图的几个关系自我总结,(入门级)
    crypt 病毒
    js思维导向图
    关于索引的使用
    SQL Server 索引结构及其使用
    关于js数组的那些事
  • 原文地址:https://www.cnblogs.com/testset/p/3447590.html
Copyright © 2011-2022 走看看