有没有办法在VCS/UVM中获取系统时间?我正在寻找类似于Perl的localtime(time)
的东西。是否可以打印每个uvm_info
的系统时间?在VCS中获取系统时间
回答
取决于您使用的VCS版本。最新版本应支持$system
,如IEEE Std 1800-2012 § 20.18.1中所定义。假设你在一个基于UNIX环境中运行,你可以这样做:
function string get_localtime();
int fd;
string localtime;
void'($system("data > localtime")); // temp file
fd = $fopen("localtime", "r");
void'($fscanf(fd,"%s",localtime));
$fclose(fd);
void'($system("rm localtime")); // delete file
return localtime;
endfunction
如果你的版本VCS不支持$system
或者如果您更符合使用C/C++,然后用DPI(见IEEE Std 1800-2012 § 35)。在C中创建一个函数,并使用SystemVerilog文件在VCS中进行编译。在SystemVerilog中,添加import
以允许访问您的C函数。假设你的方法名称为my_localtime和和返回的时间是一个字符串,进口应该是这样的:
import "DPI" function string my_localtime();
'localtime()'是C库的一个函数,它返回'struct tm *'不是一个字符串。为'localtime'命名自己的函数,否则,由于共享库顺序依赖关系,模拟器可能会调用错误的函数。 – jclin 2014-09-26 03:25:11
是否有一个内置的DPI函数来获取时间,以便我不必编写一个? – Jean 2014-10-24 17:04:43
@Greg:linux'date'命令输出如下:'Mon Aug 7 14:00:34 PDT 2017'。当你调用'$ fscanf'时,你使用'%s'作为格式,所以它会匹配一个字符串(这是一个非空白字符序列,按照LRM)。由于第四个字符是空格,因此'localtime'字符串将只包含输出的前3个字符(即星期几)。 – AndresM 2017-08-07 21:12:03
在C文件wallclock.c:
#include <time.h>
wallclock() {
time_t t;
t = time(NULL);
return (ctime(&t));
//return time(NULL);
}
在SV文件:
import "DPI-C" function string wallclock();
module try;
//int unsigned t;
string t;
initial begin
t = wallclock();
$write("time=%0s\n", t);
end
endmodule
- 1. 在iPhone中获取系统时间
- 2. 获取系统时间在VB.NET
- 3. 如何从系统中获取时间?
- 4. 获取当前系统时间?
- 5. 获取当前系统时间
- 6. 获取当前系统日期时间
- 7. 在Java中获取系统最后一次启动时间
- 8. 如何在Netbeans中获取系统时间?
- 9. 在Java中获取系统正常运行时间
- 10. 如何在C++中获取系统时间?
- 11. 如何使用Data.Time.Clock在Haskell中获取系统时间?
- 12. 获取UTC时间而不依赖操作系统时间
- 13. getrusage()获取系统时间,用户时间。 Unix编程帮助
- 14. 获取系统时间和用户时间
- 15. 获取系统
- 16. 在SQL系统日期时间前10分钟获取记录
- 17. 通过VBA(访问/ Excel)中获取系统运行时间
- 18. 获取操作监听器中的系统时间
- 19. 如何获取网络系统日期时间使用该系统的IP
- 20. 获取当前系统时间,然后想在该时间添加30分钟
- 21. 如何获取timePicker与系统时间的时差
- 22. 在时间管理系统
- 23. 从时区获取当前时间,而不是系统/移动时间
- 24. 在不使用系统时间的情况下在java中获取UTC
- 25. 如何在MFC(VC++)中获取系统日期和时间中的AM/PM?
- 26. 在python中获取系统状态
- 27. 设置系统时间与在Linux中
- 28. 如何从proc文件获取系统时间?
- 29. 以C#获取并设置系统时间
- 30. 使用Qt获取系统空闲时间
有没有办法提取命令的输出? – Jean 2014-09-27 21:50:03
$系统在退出时直接返回系统调用的返回值,但这个值只有一到两个字节,通常是0或错误代码。在模拟器中提取时间的常用技巧是将其写入文件中,如我在答案中发布的链接中所述。 – Ari 2014-09-29 17:40:15
在UVM中可以转储每个阶段花费的挂钟时间吗? – Jean 2014-09-29 18:11:52