【问题标题】:get dependencies of vhdl entity in modelsim在modelsim中获取vhdl实体的依赖关系
【发布时间】:2014-06-24 07:23:36
【问题描述】:

我在 ModelSim 中成功编译了一个大型 VHDL 设计。设计在这里并不重要,我的问题是关于任何 VHDL 设计的 ModelSim 命令。

现在假设我有一个实体 E1,我想知道 E1 正在使用/实例化的所有包和实体。 我想在这样的 Tcl 过程中使用这个命令

proc get_dependency_list_of_entity { E1 } {
 ...
}

换句话说:如何使用 ModelSim 命令提取 vhdl 模块的所有依赖项。

我的做法是这样的: 命令write report -tcl 返回足够的信息来提取 E1 的库,比如 L1。

现在vdir -lib L1 命令返回所有在 L1 中编译的实体和包。但是,这些当然太多了。它还列出了与 E1 无关的软件包。

那么有没有办法通过 ModelSim 命令获取 vhdl 模块的依赖模块?

【问题讨论】:

    标签: dependencies tcl vhdl modelsim


    【解决方案1】:

    我终于找到了解决办法。

    命令 vdir -lib $lib -prop dpnd $entity 会返回如下内容:

     data: ENTITY E1
    #     Depends on: P ieee std_logic_unsigned RYmj:=TK`k=k>D@Cz`zoB3
    #     Depends on: P ieee std_logic_arith 4`Y?g_lldn;7UL9IiJck01
    #     Depends on: P std textio 5>J:;AW>W1[[dW0I6EN1Q0
    #     Depends on: P ieee std_logic_1164 5=aWaoGZSMWIct0i^f`XF1
    #   ARCHITECTURE BODY rtl
    #     Depends on: E L2 E2 3B3>6RbjY07ohgTgj<M4r0
    #     Depends on: E L3 E3 5?a[d8Ikz7>zWX`U97gNE2
    #     Depends on: P ieee std_logic_unsigned RYMj;=TK`k=k>C@Cz`zoB3
    #     Depends on: P ieee std_logic_arith 7`F?g_lkdn;7UL9IiJck01
    #     Depends on: P std textio 5>J:;AW>w0[[dW0I6EN1Q0
    #     Depends on: P ieee std_logic_1164 5=aWboGZSMlIcH0i^f`XF1
    #     Depends on: E work E1 ;4e7E?eQ@DHPeB>5WUDQK3 
    

    P 代表包,E 代表实体。所以你可以使用正则表达式(就像我在提取函数中一样)来提取你想要的数据。

        proc get_dependency_list_of_entity { lib entity } {
    
            set vdir_data [ vdir -lib $lib -prop dpnd $entity ]
    
                set match [extracting $vdir_data "^ *Depends on: (.+)"]
                ...
            }
            ...
         }
    

    正如我在问题中已经提到的:有一些方法可以使用 vdir 和 write report -tcl 获取实体库

    【讨论】:

      猜你喜欢
      • 2013-01-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-28
      • 2017-01-07
      • 1970-01-01
      • 2017-07-15
      相关资源
      最近更新 更多