【system verilog】继续探究IC前端仿真中的“时间”,timescale,timeunit/timeprecision设置

  • Post author:
  • Post category:其他


前言

仿真中的时间单位/时间精度设置是保证验证环境稳定高效的重要手段,但是很多场景下却常常被忽视。如果没有设置合理的相对统一的时间单位/时间精度,不仅延时、打印等信息会不准确,多模块/环境协同时也会隐藏难以发现的问题。

因此,继续探究仿真中的时间概念,timescale,timeunit/timeprecision等。

timeunit/timeprecision

timeunit/timeprecision即仿真时间单位/时间精度,是仿真时间这个维度上两个重要的概念。

时间单位就是作用域对于相对延迟而言,#1时默认延迟的时间,一般而言timeunit的设置对于绝对延迟(#200ns)没有影响,不过VCS有一个意外情况疑似bug;大部分的仿真器默认的timeunit是1ns。

时间精度就是作用域能够感知的最小延时,当timeprecision=1ps时,#0.4ps会被忽略,#0.5ps会被认为#1ps,。

说起timeunit/timeprecision可能还会有点生疏,但是timescale就很熟悉了,`timescale = 1ns/1ps即timeunit=1ns,timeprecision=1ps,这个我们会在后面做细致探究。

相对时间/绝对时间

相对时间就是相对于timeunit为单位的时间,当timeunit=10ns时,#100就是#100*10ns即1000ns;绝对时间就是不想理会当前域的timeunit/timeprecision配置,延时一个绝对时间值,当然timeprecision精度以下的小数值还是会被四舍五入。

当timeunit/timeprecision



版权声明:本文为moon9999原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。