当前位置: 首页 > news >正文

Verilog基础:$timeformat系统任务的使用

相关阅读

Verilog基础https://blog.csdn.net/weixin_45791458/category_12263729.html?spm=1001.2014.3001.5482


        $timeformat系统任务用于指定$write$display$strobe$monitor$fwrite$fdisplay$fstrobe$fmonitor系统任务中的格式字符串中,转换说明%t如何对时间数据进行转换。在阅读本文之前,建议先学习编译指令`timescale和系统函数$time的使用,如下面两篇博客所示。Verilog基础:编译指令`timescalehttps://blog.csdn.net/weixin_45791458/article/details/134804982?sharetype=blogdetail&sharerId=134804982&sharerefer=PC&sharesource=weixin_45791458&spm=1011.2480.3001.8118

Verilog基础:$time、$stime和$realtime系统函数的使用https://blog.csdn.net/weixin_45791458/article/details/134815889?sharetype=blogdetail&sharerId=134815889&sharerefer=PC&sharesource=weixin_45791458&spm=1011.2480.3001.8118

        首先给出$timeformat系统任务语法的BNF范式,有关BNF范式的内容可以在之前的文章中找到:

        units_number参数代表了一个指定的单位,是一个范围从-15到0的整数,具体含义如下表所示。

数字代表单位数字代表单位
01s-810ns
-1100ms-91ns
-210ms-10100ps
-31ms-1110ps
-4100us-121ps
-510us-13100fs
-61us-1410fs
-7100ns-151fs

        precision_number参数代表了小数点后的四舍五入的位数。

        suffix_string参数代表了添加的后缀字符串。

        minimum_field_width参数代表了输出最少占用的宽度。

        从调用$timeformat系统任务的仿真时间开始,后续所有使用转换说明%t输出的时间,都会按照设置的单位、精度、后缀字符串和最小字段宽度进行转换。

        默认情况下转换说明%t使用仿真时间精度作为单位(仿真时间精度是一个层次设计的所有模块中最小的时间精度),保留整数,不添加后缀,最小字段宽度为20。

        首先以简单的例1进行说明,该例不涉及$time系统函数。

// 例1
`timescale 1 ns / 1 ps
module top;initial $timeformat(-10, 5, "", 10);initial #1 $display("%t", 5);
endmodule输出:
50.00000

         由于转换说明%t对应了常数5,而top模块的时间单位为1ns,而$timeformat系统任务指定了单位是100ps,转换后原结果需要乘10,即50并保留5位小数。

        再来看一下涉及到$time系统函数的例2。

// 例2
`timescale 10 ns / 1 ns
module top;initial $timeformat(-10, 2, "", 10);initial #1.55 $display("%t", $time);
endmodule输出:
200.00

        正如编译指令`timescale一文中所说,$display系统任务在仿真时间为16ns的时候执行,此时$time系统函数尝试以10ns为单位返回时间值,即1.6,但$time系统函数只能返回整数值,因此四舍五入为2,top模块的时间单位为10ns,而$timeformat系统任务指定了单位是100ps,转换后原结果需要乘100,即200并保留5位小数。

相关文章:

  • 火山引擎扣子的具体作用
  • docker 02网络
  • Java从入门到精通 - 面向对象高级(一)
  • HALCON第五讲-> 形状匹配
  • java枚举 注解 异常 常用类
  • Kubernetes安全机制深度解析(一):从身份认证到资源鉴权
  • js将object转换成string
  • Windows桌面图标修复
  • FastDFS 分布式存储系统深度解析与实践指南
  • 关于transceiver复位测试
  • DC3靶机渗透
  • Linux系统详解
  • 网络原理9-HTTP2
  • RAG 技术详解:结合检索与生成的智能问答新范式
  • shell脚本不同执行方式的区别
  • 2025年度重点专项项目申报指南的通知公布!
  • 多线程(4)
  • golang -- map实现原理
  • C++面试(8)-----求链表中环的入口节点
  • 佰力博与你探讨表面电阻测试的一些方法和测试应用场景
  • 个人网站建设方案实施/百度快速排名 搜
  • 搜中文找不到公司网站是怎么回事/南宁正规的seo费用
  • 建网站注意什么/营销平台有哪些
  • 中国武汉建设信息网首页/网站优化课程
  • 北京大型网站开发/百度一下网页版浏览器
  • 做网站毕业论文/西安网站关键词优化费用