我知道什么时候使用 report
和 severity
Modelsim 将仿真时刻显示为发送到控制台的消息的一部分。无论如何,是否可以将这个时间瞬间“获取”为字符串变量,以便我可以用这个“时间”字符串打印我自己的消息?
最佳答案
模拟时间可通过 now
获得。函数,它将返回值 time
类型。 image
time
的属性type 可用于将其转换为字符串 time'image(now)
.因此,您可以在自己的消息中打印模拟时间:
report "This is the time: " & time'image(now);
添加:如果需要额外的字符串操作,那么模拟时间字符串可以用如下代码表示在一个变量中:
process is
variable sim_time_str_v : string(1 to 30); -- 30 chars should be enough
variable sim_time_len_v : natural;
begin
...
sim_time_len_v := time'image(now)'length;
sim_time_str_v := (others => ' ');
sim_time_str_v(1 to sim_time_len_v) := time'image(now);
report "Sim time string length: " & integer'image(sim_time_len_v);
report "Sim time string.......:'" & sim_time_str_v & "'";
...
然而,当涉及到文本字符串操作时,VHDL 很麻烦,因为存储某些操作的结果需要知道长度。对于更高级的字符串操作,然后是
access
类型结合功能可用于模拟。
关于vhdl - 将 Modelsim 仿真时间作为字符串变量获取?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18393723/