linux 系统时间date vcs根据时间产生随机种子

前言

2023.3.20 首先介绍时间,再介绍如何根据时间产生随机种子


一、date

date:用来显示或设定系统的日期与时间
使用方法:date [OPTION]... [+FORMAT]

1、OPTION:可选的参数

-d:显示时间
-s:设置时间
-r:显示文件的上次修改时间
--help:显示帮助信息
--version:输出版本信息

2、FORMAT:设定显示格式

注意+加号和输出格式的选项之间没有空格,否则会出现语法错误
%a :星期几的缩写 (Sun…Sat)
%A :星期的完整名称(Sunday…Saturday)。
%b :缩写的月份名称(例如,Jan)
%B :完整的月份名称(例如,January)
%c :本地日期和时间(例如,Thu Mar 3 23:05:25 2005)
%C :世纪,和%Y类似,但是省略后两位(例如,20)
%d :日 (01…31)
%D :日期,等价于%m/%d/%y
%e :一月中的一天,格式使用空格填充,等价于%_d
%F :完整的日期;等价于 %Y-%m-%d
%g :ISO 标准计数周的年份的最后两位数字
%G :ISO 标准计数周的年份,通常只对%V有用
%h :等价于 %b
%H :小时 (00…23)
%I 小时 (01…12)
%j :一年中的第几天 (001…366)
%k :小时,使用空格填充 ( 0…23); 等价于 %_H
%l :小时, 使用空格填充 ( 1…12); 等价于 %_I
%m :月份 (01…12)
%M :分钟 (00…59)
%n :新的一行,换行符
%N :纳秒 (000000000…999999999)
%p :用于表示当地的AM或PM,如果未知则为空白
%P :类似 %p, 但是是小写的
%r :本地的 12 小时制时间(例如 11:11:04 PM)
%R :24 小时制 的小时与分钟; 等价于 %H:%M
%s :自 1970-01-01 00:00:00 UTC 到现在的秒数
%S :秒 (00…60)
%t :插入水平制表符 tab
%T :时间; 等价于 %H:%M:%S
%u :一周中的一天 (1…7); 1 表示星期一
%U : 一年中的第几周,周日作为一周的起始 (00…53)
%V :ISO 标准计数周,该方法将周一作为一周的起始 (01…53)
%w :一周中的一天(0…6),0代表星期天
%W : 一年中的第几周,周一作为一周的起始(00…53)
%x :本地的日期格式(例如,12/31/99)
%X :本地的日期格式(例如,23:13:48)
%y :年份后两位数字 (00…99)
%Y :年
%z :+hhmm 格式的数值化时区格式(例如,-0400)
%: z :+hh:mm 格式的数值化时区格式(例如,-04:00)(ps:冒号和z之间没有空格,是为了显示)
%:: z :+hh:mm:ss格式的数值化时区格式(例如,-04:00:00)
%::: z :数值化时区格式,相比上一个格式增加’:'以显示必要的精度(例如,-04,+05:30)
%Z :时区缩写 (如 EDT)

3、时间格式

MMDDhhmm[[CC]YY][.ss]:CC 为年份前两位数字,YY 为年份后两位数字
root权限者可以修改系统的时间,修改后使用命令clock -w 来将系统时间写入 CMOS 中,这样下次重新开机时系统时间才会持续保持最新的正确值。

date
Mon Mar 20 14:56:30 CST 2023

date +"%Y-%m-%d"
2023-03-20

date -d "1 day ago" +"%Y-%m-%d"   //显示一天前的时间
2023-03-19

date '+%T'  //和 date +%T 输出是相同的
14:57:11

二、随机种子

  • 仿真的时候会发现每次随机产生的数据都是相同的,是因为默认的随机种子是相同的。
  • 随机过程的原理是根据随机种子产生一个新的随机种子和随机数,下一次的随机根据新的随机种子产生,依次类推。
  • 随机数并不是完全随机的,而是伪随机数生成器RNG产生的,只不过是算法过于复杂,看上去像是随机产生的
  • 假如给到初始随机种子一个整数,0或1这种,接下来的随机化可能还是比较简单,所以根据时间来随机产生,但是时间随机也是会有同样的问题。

这几种方式都可以产生随机种子

SEED = `date +%N`
SEED = `date +%s`
SEED = ${shell date +%s}

此外,vcs还有一些随机种子设置的编译选项
+ntb_random_seed = ${SEED}:设置随机种子
+ntb_random_seed_aotumatic:用这个仿真代码不需要再去写seed变量,自动会进行随机
+plusargs_save :将设置的随机变量的种子传递到tb文件,和系统函数$value$plusargs("seed=%0d",seed)搭配使用

参考链接:【数字IC快速入门】Makefile脚本了解

  • 1
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值