vhdl - 将 Modelsim 仿真时间作为字符串变量获取?

标签 vhdl

我知道什么时候使用 reportseverity 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/

相关文章:

VHDL block 和 protected 输入 - 此代码的作用是什么?

arrays - 如何在VHDL中初始化记录数组?

generics - VHDL:使用整数通用的长度来确定选择行的数量

将实数转换为十六进制单精度表示并再次返回的 Matlab 函数/脚本

select - VHDL:多值选择

vhdl - 用 VHDL 编码状态机

case - VHDL 案例语句中的选项顺序

vhdl - 使用 VHDL 代码生成纯正弦波作为 FPGA 的输出

port - VHDL:使用 inout 端口是不好的做法吗?

vhdl - 将 VHDL 逻辑向量转换为用户定义的字符串以进行仿真