【问题标题】:Get internal signals of vhdl design in ncvhdl (alternative to modelsim's signal spy)在ncvhdl中获取vhdl设计的内部信号(替代modelsim的signal spy)
【发布时间】:2014-07-02 09:13:17
【问题描述】:

在 ModelSim 中你可以使用类似的东西

在modelsim中我们可以使用 init_signal_spy("../.../sig", mysignal);

获取深层层次结构信号。 有没有办法通过 Cadence 的 NCVhdl 获取此类信号?

这应该被标记为“SimVision”,这是工具的名称,但该标记似乎不存在。

【问题讨论】:

    标签: vhdl modelsim cadence


    【解决方案1】:

    如果 Cadence 工具支持 VHDL-2008,您可以通过外部名称访问设计的其​​他级别中的信号、共享变量或常量。

    直接用法如下。

    A <= <<signal .tb_top.u_comp1.my_sig : std_logic_vector >>; 
    

    请注意,对象必须在引用之前详细说明。由于 VHDL 设计是按照实例化的顺序进行详细说明的,因此以后的设计可能会参考之前的设计。

    使用别名创建本地简称:

    alias u1_my_sig is <<signal u1.my_sig : std_logic_vector >>; 
    

    路径开始于:

    • “。” = 路径从顶层开始:“.tb_top.my_sig”
    • “u1” = 路径从当前级别开始:“u1.my_sig”
    • “^” = 路径从当前层以上开始:“^u2.my_sig”

    【讨论】:

    • 但是整个文件必须编译为 VHDL 2008,这并不总是可能的
    • 如果文件在 VHDL-93 中编译,那么它应该在 VHDL-2008 中编译。如果您的模拟器不支持 VHDL-2008 外部名称,请提交错误报告。这是供应商优先考虑这些事情的唯一方法。
    • 在没有 -V93 的情况下首先编译我的测试平台时,我收到错误消息“:此功能仅在 93[13.7] 中允许”。我想它需要 87 作为默认值。但是使用 -V200X 一切正常。所以你的解决方案应该对我有用。
    【解决方案2】:

    可以看到here,这个函数叫做nc_mirror

     nc_mirror (destination => "destination",
    
               source => "source",
    
               verbose => "verbose"); 
    

    它需要一个目标和一个源,其作用与 init_signal_spy 对 modelsim 的作用相同。第三个参数是可选的。此外,它还支持镜像数组或记录。

    this interesting answer 中提供了一个封装包,它将 nc_mirror 或 init_spy_signal(和其他)转换为函数“probe”。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-10
      相关资源
      最近更新 更多