有没有办法从寄存器中读取一个值,该寄存器是我模块中的内部信号,并使用Tcl脚本在modelsim脚本窗口中显示它?
我正在寻找适当的命令来解决上述问题。
答案 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