SystemVerilog中指定打印格式

前言:本文主要总结一下SystemVerilog中的占位符,通过合理的使用占位符,可以再log中按自己指定的格式打印信息,方便case分析及debug。

一、指定输出打印格式

在指定输出打印格式时,转义字符“%”后跟格式说明字符用于指定输出打印格式,除了(%m, %l, and %%)以外,每个%所指定的输出打印格式在后面都应该有一个对应的表达式参数。

当存在多个格式说明的时候,格式说明与表达式参数按位置关系形成一一对应。

No. 占位符 意义
1 %d或%D    以十进制的形式输出
2 %o或%O    以八进制的形式输出
3 %b或%B    以二进制的形式输出
4 %h或%H    以十六进制的形式输出,打印的字母小写或者大写
5 %x或%X    以十六进制的形式输出
6 %c或%C    以ASCII码字符的形式输出
7 %s或%S    以字符串的形式输出
8 %t或%T    以当前的时间格式的形式输出
9 %e或%E    以指数的形式输出实型数
10 %f或%F    以十进制的形式输出实型数
11 %g或%G    以指数或者十进制的形式输出实型数,无论何种格式都以较短的结果输出
12 %u或%U  Unformatted 2 value data (binary values)
13 %z或%Z  Unformatted 4 value data
14 %v或%V      Display net signal strength
15 %p或%P      Display as an assignment pattern
16 %l或%L          Display library binding information,显示库关联关系
17 %m或%M      Display hierarchical name,显示当前模块的层次名

注:

  • %m和%l分别可以显示打印语句所在当前模块的模块名,和该模块所在的仿真所构建的运行库路径信息,对于调试跟踪来说非常有用,其效果参见以下代码例。
  • %t用于打印时间信息,通常跟$time配合使用
  • %u和%z常用于$fwrite()函数,用于向文件写入数据;其中%u不区分x和z数据,并将其映射为’0’;而%z严格区分x和z数据,将其分别映射为’x’,‘z’。如果需要保持以及区分x(不确定值)和z(高阻)的话,推荐使用%z。
  • %p用于打印聚合表达式,例如解压缩结构,数组和联合(unpacked structure,array,unions),结构体等等,非常方便,其效果如以下代码例所示
`timescale 1ns/1psmodule hvl_top( );typedef struct packed {logic bit1;logic [7:0] byte1;} packet_t;packet_t  my_packet;    logic     x;logic     y = 1'bz;    initial begin        # 100;$display("[1]: %m:  Welcome to SystemVerilog");$display("[2]: %l:  SystemVerilog is very powerful, @%0t(ps)", $realtime());# 100;my_packet.bit1  = 1;my_packet.byte1 = 8'h37;$display("my_packet = %p, @%0t(ps)", my_packet, $realtime);$finish();endendmodule

[SV]SystemVerilog中指定打印格式相关推荐

  1. [SV]SystemVerilog中forever begin end導致的Hang死

    SystemVerilog中forever begin end導致的Hang死 一.當if條件不成立的時候,肯定會hang死. forever beginif(expre == 1) beginrun ...

  2. [SV]SystemVerilog中的基本邏輯與運算 --- (==與===的區別/posedge與negedge是怎麼定義的?)

    SystemVerilog中的基本邏輯與運算 --- ==與===的區別/posedge與negedge是怎麼定義的 一. ==與===的區別 1.1.先看下面的例子 module equal_tes ...

  3. 在html页面中怎么打印区域,在HTML中指定打印区域进行打印机打印

    我们在开发中经常会用到一些指定区域进行打印机打印,但是使用常规方式打印会将全部页面打印,当然相同都为打印,但是打印出来的内容并不是我们需要的东西,进行给大家分享如何设置打印机指定区域进行打印: 该标签 ...

  4. UVM中打印格式及其控制方法

    文章目录 前言 一.UVM中提供的打印宏 二.UVM打印宏打印参数 三.命令行控制打印信息 总结 前言 在基于UVM的验证环境中写代码的时候,经常需要打印一些参数进行调试.本文主要总结一下,在UVM中 ...

  5. 如何在 Python 中以表格格式打印列表?

    在 Python 中,列表是一种常见的数据结构,用于存储和组织数据.当我们需要将列表的内容以表格形式展示时,可以通过特定的方法和技巧来实现.本文将详细介绍如何在 Python 中以表格格式打印列表,以 ...

  6. Python中logging:设置打印级别,打印格式,打印颜色

    目录 前言 一.引入库 二.实现代码 三.运行结果 四.补充知识 logging模块的日志级别 前言 控制log的打印级别,打印格式,控制台根据log级别打印不同的颜色 一.引入库 import lo ...

  7. Systemverilog中时间单位以及相关系统函数

    在Systemverilog中有一些与时间相关的系统函数在TB打印log的时候会使用到,在打印log时间的时候,如果与我们预期的不一致,可以在这方面找原因.下面列出相关的系统函数 $time $sti ...

  8. php 怎么打印条形码,php – 如何在垂直标签中垂直打印zpl条形码

    我正在使用zebraGk420d打印机.我正在使用垂直条形码标签.如何垂直打印文本和条形码.我的zpl代码是这样的 $barcode_ZPL_code="^XA ^FO 150,50^AD, ...

  9. 编写程序将一行英文中指定的字符串替换为另一字符串后输出。注意:查找指定字符串_python 3 笔记(一)...

    输出和定义变量: 输出一句话: print("Hello World"); 显示效果: 定义变量: 基本的变量类型有整型.浮点.字符串和布尔,他们的定义是这样的: int = 10 ...

最新文章

  1. python语言的数据类型有哪些_Python语言有哪些数据类型
  2. 关于session共享
  3. 【转】算法中时间复杂度概括——o(1)、o(n)、o(logn)、o(nlogn)
  4. halcon入门_visionpro和halcon这两款机器视觉软件区别
  5. 高并发-【抢红包案例】之三:使用乐观锁方式修复红包超发的bug
  6. 【NLP】CMU MILA 谷歌 | 三家巨头发布史上最干文本增强总结
  7. C#LeetCode刷题之#383-赎金信(Ransom Note)
  8. 《天天数学》连载37:二月六日
  9. JAVA OOP(一)——OOP概念,类与对象
  10. Java全套视频教程
  11. Mac版本Octane渲染器安装教程支持M1和英特尔全系列分享
  12. 给大学生的劝告——你们为何应该开始接触UNIX/Linux
  13. [sklearn机器学习]线性回归模型
  14. 关于长论文word转PDF,出现图等错误解决办法
  15. 【小白】【新手向】Hexo+Github搭建个人博客
  16. 【NeurIPS2022】阿里提出基于离散化对抗训练的鲁棒视觉新基准
  17. win10系统的定位服务器,系统大神教你Win10笔记本电脑定位跟踪功能技巧
  18. [Image_Codec]常见图片格式的封装及编解码-Android平台(三)JPG
  19. 三、自定义python库下有多个py脚本时,__init__.py的配置
  20. 电化学方法激励电压波形

热门文章

  1. 我是如何用一篇文章给youtube频道引流100万次观看量的
  2. 问题解决的思维模型和工具
  3. “种”下黑科技,守护每株绿,“植”了!
  4. Debug的使用方法(转)
  5. 中国造纸行业发展趋势与盈利前景展望报告2022-2027年
  6. sqlite与mysql的区别
  7. Java将扑克牌花色和数字组合成52张扑克牌集合 并完成在牌堆中抽牌的操作
  8. Android 官方数据库Room --- 配置
  9. Mysql 实现连乘法
  10. ios emoji 键盘_为什么我的iPhone Emoji键盘消失了?