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

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


前言

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


以下是本篇文章正文内容,案例多是网上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 file
  fd = $fopen("localtime", "r");
  void'($fscanf(fd,"%s",localtime));
  $fclose(fd);
  void'($system("rm localtime")); // delete file
  return localtime;
endfunction

如果VCS不支持

$system

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

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

import "DPI" function string my_localtime();

在c文件wallclock.c中:

#include <time.h>
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 begin
      t = 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()  #获取当前系统时间
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值