不同语言返回系统时间的方法

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 content 前言一、verilog二、习语嫣1.头文件:time.h2.3. 三、pyt

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

content

  • 前言
  • 一、verilog
  • 二、习语嫣
    • 1.头文件:time.h
    • 2.
    • 3.
  • 三、python


前言

第一篇博客,总结一下各个语言返回系统时间的方法,欢迎补充。


以下是本篇文章正文内容,案例多是网上cv而来,算是帮大家搜集整理一下吧

一、verilog

使用$system()运行任何系统命令,包括系统的日期命令

initial begin 
$system("date"); 
end

最新版本应支持§20.18.1中定义的

$system

假设在基于UNIX的环境中运行,则可以执行以下操作:

function string get_localtime();    int fd;string localtime;void'($system("data > localtime")); // temp filefd = $fopen("localtime", "r");void'($fscanf(fd,"%s",localtime));$fclose(fd);void'($system("rm localtime")); // delete filereturn localtime;
endfunction

如果VCS不支持

$system

那么可以用C语言创建一个函数,并用SystemVerilog文件在VCS中编译它。在SystemVerilog中,添加

导入以允许访问C函数。假设方法名为my_localtime,返回时间为字符串,则导入应如下所示:

import "DPI" function string my_localtime();

在c文件wallclock.c中:

#include 
wallclock() {time_t t;t = time(NULL);return (ctime(&t));//return time(NULL);
}

localtime()是C库的函数,返回的不是字符串。命名您自己的函数,而不是localtime,否则,由于共享库顺序依赖关系,模拟器可能调用错误的函数。

date

命令输出类似于:

Mon Aug 7 14:00:34 PDT 2017

调用 $fscanf时,使用的格式是

%s

,因此它将匹配一个字符串(根据LRM,这是一个非空白字符序列)。由于第4个字符是空白,因此

localtime

字符串将仅包含输出的前3个字符(即一周中的第几天)。$system在退出时直接返回系统调用的返回值,但该值仅为一到两个字节,通常为0或错误代码。在模拟器中提取时间的常用技术是将其写入一个文件,如我在回答中发布的链接中所述。在UVM中,是否可以转储每个阶段所花费的挂钟时间?看起来您是在谈论模拟器运行每个阶段所花费的时间。如果是,答案是肯定的,在每个阶段之前和之后调用 $system,每次将输出写入文件并读回。然后测量差异。

import "DPI-C" function string wallclock();module try;//int unsigned   t;string t;initial begint = wallclock();$write("time=%0s\n", t);end
endmodule

二、习语嫣

1.头文件:time.h

代码如下(示例):

time_time(time_t*)

2.

代码如下(示例):

now()

该处使用的url网络请求的数据。

3.

sysdate()

三、python

from datetime import datetime
start = datetime.now()  #获取当前系统时间
from datetime import datetime
start = datetime.now()  #获取当前系统时间