[SV]SystemVerilog中指定打印格式
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中指定打印格式相关推荐
- [SV]SystemVerilog中forever begin end導致的Hang死
SystemVerilog中forever begin end導致的Hang死 一.當if條件不成立的時候,肯定會hang死. forever beginif(expre == 1) beginrun ...
- [SV]SystemVerilog中的基本邏輯與運算 --- (==與===的區別/posedge與negedge是怎麼定義的?)
SystemVerilog中的基本邏輯與運算 --- ==與===的區別/posedge與negedge是怎麼定義的 一. ==與===的區別 1.1.先看下面的例子 module equal_tes ...
- 在html页面中怎么打印区域,在HTML中指定打印区域进行打印机打印
我们在开发中经常会用到一些指定区域进行打印机打印,但是使用常规方式打印会将全部页面打印,当然相同都为打印,但是打印出来的内容并不是我们需要的东西,进行给大家分享如何设置打印机指定区域进行打印: 该标签 ...
- UVM中打印格式及其控制方法
文章目录 前言 一.UVM中提供的打印宏 二.UVM打印宏打印参数 三.命令行控制打印信息 总结 前言 在基于UVM的验证环境中写代码的时候,经常需要打印一些参数进行调试.本文主要总结一下,在UVM中 ...
- 如何在 Python 中以表格格式打印列表?
在 Python 中,列表是一种常见的数据结构,用于存储和组织数据.当我们需要将列表的内容以表格形式展示时,可以通过特定的方法和技巧来实现.本文将详细介绍如何在 Python 中以表格格式打印列表,以 ...
- Python中logging:设置打印级别,打印格式,打印颜色
目录 前言 一.引入库 二.实现代码 三.运行结果 四.补充知识 logging模块的日志级别 前言 控制log的打印级别,打印格式,控制台根据log级别打印不同的颜色 一.引入库 import lo ...
- Systemverilog中时间单位以及相关系统函数
在Systemverilog中有一些与时间相关的系统函数在TB打印log的时候会使用到,在打印log时间的时候,如果与我们预期的不一致,可以在这方面找原因.下面列出相关的系统函数 $time $sti ...
- php 怎么打印条形码,php – 如何在垂直标签中垂直打印zpl条形码
我正在使用zebraGk420d打印机.我正在使用垂直条形码标签.如何垂直打印文本和条形码.我的zpl代码是这样的 $barcode_ZPL_code="^XA ^FO 150,50^AD, ...
- 编写程序将一行英文中指定的字符串替换为另一字符串后输出。注意:查找指定字符串_python 3 笔记(一)...
输出和定义变量: 输出一句话: print("Hello World"); 显示效果: 定义变量: 基本的变量类型有整型.浮点.字符串和布尔,他们的定义是这样的: int = 10 ...
最新文章
- python语言的数据类型有哪些_Python语言有哪些数据类型
- 关于session共享
- 【转】算法中时间复杂度概括——o(1)、o(n)、o(logn)、o(nlogn)
- halcon入门_visionpro和halcon这两款机器视觉软件区别
- 高并发-【抢红包案例】之三:使用乐观锁方式修复红包超发的bug
- 【NLP】CMU MILA 谷歌 | 三家巨头发布史上最干文本增强总结
- C#LeetCode刷题之#383-赎金信(Ransom Note)
- 《天天数学》连载37:二月六日
- JAVA OOP(一)——OOP概念,类与对象
- Java全套视频教程
- Mac版本Octane渲染器安装教程支持M1和英特尔全系列分享
- 给大学生的劝告——你们为何应该开始接触UNIX/Linux
- [sklearn机器学习]线性回归模型
- 关于长论文word转PDF,出现图等错误解决办法
- 【小白】【新手向】Hexo+Github搭建个人博客
- 【NeurIPS2022】阿里提出基于离散化对抗训练的鲁棒视觉新基准
- win10系统的定位服务器,系统大神教你Win10笔记本电脑定位跟踪功能技巧
- [Image_Codec]常见图片格式的封装及编解码-Android平台(三)JPG
- 三、自定义python库下有多个py脚本时,__init__.py的配置
- 电化学方法激励电压波形