从我的设计中的寄存器(被声明为内部信号)中读取值并显示它的转录窗口

时间:2016-12-13 14:47:08

标签: tcl modelsim

有没有办法从寄存器中读取一个值,该寄存器是我模块中的内部信号,并使用Tcl脚本在modelsim脚本窗口中显示它?

我正在寻找适当的命令来解决上述问题。

1 个答案:

答案 0 :(得分:0)

从Modelsim v10.3a的手册页面中,您可以找到以下用于显示信号值的命令:

  

<强>检查

     

...它检查一个或多个对象,并在Transcript窗口中显示当前值(或指定的先前时间的值)。   可以检查以下对象:

     
      
  • VHDL - 信号,共享变量,过程变量,常量,泛型和FILE对象
  •   
  • Verilog - 网络,寄存器,参数和变量。
  •   
     

要显示先前的值,请使用-time选项指定所需的时间。

注意,此命令需要注册表的完整路径(参见下面的示例)。

为了将来参考,如果您希望显示内存值,请查看 mem save mem display 命令。

示例

假设您有以下说明摘要:

entity core is
   port ( ... );
end core;

architecture behav of core is
   signal regA : std_logic;
begin
   ....
   -- here your regA signal is assigned some values
end behav;

在您的测试平台中实例化为

entity tb
end

architecture behav of tb is
begin
  UUT: entity work.core
  port map ( ... );

end behav;

编译完文件后,您必须运行模拟直到您想要显示信号值的那一刻(或过去)。

run 30 ns

以下命令在30 ns显示regA值:

examine /tb/core/regA

...并在10 ns恢复其值:

examine -time 10 ns /tb/core/regA