【转载】System_Verilog打印格式
system_verilog display format
1. 简介
- $display 和 $write的区别:
- $display系的系统函数:会在输出的末尾自动添加换行符(newline character);
- $write系的系统函数:光标会停留在输出的末尾,不会自动换行。
- $display 和 $write相同之处:
- 按照参数列表的顺序输出参数;
- 参数可以是引号内的字符串(quoted string literal),表达式(expression) 和数值(value);
- 未指定输出格式的 string 和未压缩的 byte 数据类型,将按照字符串类型输出;
- 其他未指定输出格式的数据类类型是非法的。
- 未指定 转义字符 输出特殊字符和特殊格式时,$dispaly 和 $write 的输出类型默认为 string。
2. 转义字符 (Escape sequences)
- ’ \ ’ 表示其后跟随:文字或者不可打印字符(Literal or Nonprintable Character);
- ’ % ’ 表示其后跟随:格式规范,为后续参数指定格式(Format Specification);
- ’ %% ’ 表示其后跟随:%字符 (percent sign character).
2.1 转义字符 ‘\’
Escaped Sequence | Character Produced by Escaped Sequence |
---|---|
\n | newline character -> 换行符 |
\t | tab character -> 制表符 |
\\ | \ character -> 反斜杠 |
\" | “ character -> 引号 |
\v | vertical tab -> 纵向制表符 |
\f | form feed -> 换页符 |
\a | Bell -> 响铃 |
%% | % character -> 百分号 |
\ddd | (1)三位八进制指定的字符,0 ≤ d ≤ 7; (2)字符少于3位,输出非八进制数字; (3)大于\377出错; |
\xdd | 两位十六进制数字指定的字符,0 ≤ d ≤ F |
2.2 格式说明符 ‘%’
2.2.1 整型数据格式
Argument | Description |
---|---|
%h or %H | hexadecimal -> 十六进制 |
%d or %D | decimal -> 十进制 |
%o or %O | octal -> 八进制 |
%b or %B | binary->二进制 |
%c or %C | ASCII -> ASCII码 |
%l or %L | Library binding information -> 库索引 |
%t or %T | time->时间 |
%u or %U | unformatted 2 value data ->二值类型 |
%z or %Z | unformatted 4 value data ->四值类型 |
%v or %V | net signal strength -> 线网型信号强度 |
%m or %M | hierarchical name -> 层次名 |
%p or %P | assignment pattern -> |
%s or %S | string -> 字符串 |
- ‘%h’ ~ ‘%z’ 将整形数据显示为对应格式,应用比较常见,此处不再赘述;
- ‘%l’ 可以显示既定module的library信息,如果某module例化自library0,例化名称为module1,那么最终的打印信息格式为“ library0.module1 ” ;
- ‘%t’ 根据不同module的时间精度(precision)和时间单元(unit)显示的格式可能不同;
- ‘%u’ ‘%z’ 常用于$fwrite函数,用于向文件写入数据;其中%u不区分’x’和’z’数据,并将其映射为’0’;%z严格区分x和’z’数据,将其分别映射为’x’,‘z’。
2.2.2 实数显示格式
Argument | Description |
---|---|
%e or %E | exponential -> 指数型 |
%f or %F | decimal ->十进制 |
%g or %G | exponential or decimal (shorter one) |
数字类型 >> 输出示例:
2.3 数据显示尺寸
- 对表达式参数而言,写入输出文件的尺寸是自动调整的。例如:12 bit的数据在以 ‘hex’ 格式输出的时候自动调整为3个字符长度,以 ‘decimal’ 格式输出的时候,自动调整为4个字符长度,因为参数输出的最大值为FFF(hexadecimal)和4095(decimal)。
- 默认设置:以十进制显示的数据格式,参数首部的 ‘0’(leading zeros)会被自动替换成空格(space);对其他格式而言,leading zeros 正常显示;ps:如上图第一行打印信息。
- 可以在%和字母之间插入域宽(field width),改写显示的格式。注意:域宽只能是非负十进制整型常亮(non-negative decimal integer constant) ;
- field width == 0 : 以最小位宽显示,去除首部的空格和0;
- field width == others :以others的值显示位宽,不去除首部的空格和0;
- argument width < others: 向左扩展,增加位宽至others;(arguments 值靠在右侧)
- argument width > others: 显示完整数据位宽(> others);
- decimal & string 向左扩展时,补空格 ’ '(space),其他格式,补充 ‘0’.
数字尺寸 >> 输出示例:
2.4 ‘x’ & ‘z’ 态数据显示
- 十进制 显示规则 (decimal specification)
- 全部 bits 为 ‘x’ 态 : 单个小写 ‘x’ (single lowercase x);
- 全部 bits 为 ‘z’ 态:单个小写 ‘z’ (single lowercase z);
- 部分 bits 为 ‘x’ 态:单个大写 ‘X’ (single uppercase X);
- 部分 bits 为 ‘z’ 态:单个大写 ‘Z’ (single uppercase Z);
- 部分 bits 为 ‘x’ 态 & 部分 bits 为 ‘z’ 态:单个大写 ‘X’ (single uppercase X); (x takes precedence over z)
- 十六进制/八进制 显示规则 (hexadecimal/octal specification)
- 每 4 bits 为一组,映射 hex 的一位;每 3 bits 为一组,映射 octal 的一位; (single digit)
- 某组内全部 bits 为 ‘x’ 态 : 单个小写 ‘x’ (single lowercase x);
- 某组内全部 bits 为 ‘z’ 态:单个小写 ‘z’ (single lowercase z);
- 某组内部分 bits 为 ‘x’ 态:单个大写 ‘X’ (single uppercase X);
- 某组内部分 bits 为 ‘z’ 态:单个大写 ‘Z’ (single uppercase Z);
- 某组内部分 bits 为 ‘x’ 态 & 部分 bits 为 ‘z’ 态:单个大写 ‘X’ (single uppercase X); (x takes precedence over z)
- 二进制 显示规则 (binary specification)
- each bit 分别显示为 ‘0’ ‘1’ ‘x’ ‘z’;
‘x’ & ‘z’ 态 >> 输出示例:
2.5 强度显示格式
- %v or %V 格式定义用于显示 标量线网型数据 的强度。
- 标量线网型数据显示为三个字符(3-character),前两个表示强度(strength character),第三个代表参数当前的逻辑值(current logic character);
- 逻辑字符和强度字符的可选范围如表2.5.1 和表2.5.2所示:
Table 2.5.1 Logic value of scalar nets
Arguments | Description |
---|---|
0 | value 0 -> 逻辑0 |
1 | value 1 -> 逻辑1 |
X | unknown value -> 不定值 ‘x’ |
Z | high-impedance -> 高阻 ‘z’ |
L | 0 or high-impedance -> 0 或 ‘z’ |
H | 1 or high-impedance -> 1 或 ‘z’ |
Table 2.5.2 Strength of scalar nets
Mnemonics | Strength name | Strength levels |
---|---|---|
Su | Supply drive | 7 |
St | Strong drive | 6 |
Pu | Pull drive | 5 |
La | Large capacitor | 4 |
We | weak drive | 3 |
Me | Medium capacitor | 2 |
Sm | Small capacitor | 1 |
Hi | High-impedance | 0 |
对逻辑 ‘0’ 和 ‘1’ :
- 信号强度为定值时,使用助记符(mnemonic)表示强度字符;
- 信号强度为区间时,使用两位10进制数字表示强度字符范围(strength level中的等级,0~7);
对不定值’x’ :
- 信号强度和逻辑’0’ & '1’相同时,使用助记符(mnemonic)表示强度字符;
- 信号强度和逻辑’0’ & '1’相同时,使用两位10进制数字分别表示逻辑 ‘0’ 和 ‘1’ 的强度(strength level中的等级);
对于高阻态’z’
- 只能采用 0 等级的Hi,表示高阻 ‘z’ 态的信号强度;
对于 L 和 H:
- 只能使用助记符(mnemonic)表示信号强度;
信号强度 >> 输出示例:
2.6 层次名格式 (Hierarchical name)
2.7 Assignment pattern format
- %p or %P 格式说明符可用于打印聚合表达式,例如解压缩结构,数组和联合(unpacked structure,array,unions).
- 对于解压缩的数据结构,遍历搜索该结构并打印找到的单值数据类型(single data type),单值类型数据的输出需要遵循以下要求:
- 枚举类型:显示枚举类型的name (其值在enum类型的有效范围内),否则显示value;
- 字符串:显示为双引号内的字符串形式(quoted string);
- 各种句柄:显示默认格式名字,如果为空句柄显示 null;
- 其他格式:按照未定义的默认格式显示。
- %0p 格式说明符使得unpacked structure,array,unions可以以更短的形式显示打印;
- %p 和 %0p 也可以用于打印单值表达式,此时显示结果和上述的几种显示格式相同。
Assignment pattern format >> 输出格式:
2.8 字符串格式
- %s or %S 格式说明符用于将ASCII代码以字符样式打印。
- 对于出现在字符串中的每个%s,相应的参数应遵循参数列表中的字符串定义。
- 相关参数被映射为一个8位十六进制ASCII码序列,每8位代表一个字符。
- 如果参数是变量,则其值是右对齐的,以便该值的最右边的位是字符串中最后一个字符的LSB。
- 字符串末尾不需要终止字符或值,并且永远不会打印前导零(leading zeros)。
- 打印字符串时,一般使用%s即可满足要求,可以打印出全部字符。
>> IEEE Standard for SystemVerilog - Unified Hardware Design, Specification and Verification Language, 1800TM-2017
>> clause 21 Input/output system tasks and system functions
转载请注明出处!
【转载】System_Verilog打印格式相关推荐
- System_Verilog打印格式
system_verilog display format 1. 简介 $display 和 $write的区别: $display系的系统函数:会在输出的末尾自动添加换行符(newline char ...
- 常用的NSLOG日志打印格式
2019独角兽企业重金招聘Python工程师标准>>> 常用的NSLOG日志打印格式 以下是常用的LOG打印,如果有特殊,请@我 ,这边会不定期更新. %@ 对象 %d ...
- java 蓝牙打印_Android蓝牙打印机,带你真正了解各种打印格式
注意:本文原创,转载请注明出处.欢迎关注我的 简书 . 本文主要讲解蓝牙打印机在打印小票的过程中,如何打印各种常见格式.由于之前需要调试打印格式,但是苦于网上没有详细的讲解教程,无奈只能自给自足,自己 ...
- 蓝牙打印 设置打印样式_Android蓝牙打印机,带你真正了解各种打印格式
注意:本文原创,转载请注明出处.欢迎关注我的 简书 . 本文主要讲解蓝牙打印机在打印小票的过程中,如何打印各种常见格式.由于之前需要调试打印格式,但是苦于网上没有详细的讲解教程,无奈只能自给自足,自己 ...
- Android蓝牙打印机,带你真正了解各种打印格式
本文主要讲解蓝牙打印机在打印小票的过程中,如何打印各种常见格式.由于之前需要调试打印格式,但是苦于网上没有详细的讲解教程,无奈只能自给自足,自己封装了一个.如果各位盆友正在或者曾经苦恼蓝牙打印机的打印 ...
- 论文打印格式混乱?Word转换成PDF就好了
今天上网看到这么一个帖子: Word文档打印时格式会混乱已经是很多人都知道的了,特别是写论文的同学,很多人都直接使用PDF编辑器直接写论文. 如果你用的是Word写论文怎么办?没关系,介绍一个在线Wo ...
- Smartforms 设置纸张打印格式
在sap做一个打印报表,要先设置一个纸张打印格式,下面以工厂中常用来打印的针孔纸为例,在sap设置该纸张的打印格式,以用于报表: 1.运行事务代码SPAD:选择工具栏上的[完全管理]按钮-->选 ...
- smartforms设置纸张打印格式
在sap做一个打印报表,要先设置一个纸张打印格式,下面以工厂中常用来打印的针孔纸为例,在sap设置该纸张的打印格式,以用于报表: 1.运行事务代码SPAD:选择工具栏上的[完全管理]按钮-->选 ...
- Smartforms 在sap系统设置纸张打印格式
在sap做一个打印报表,要先设置一个纸张打印格式,下面以工厂中常用来打印的针孔纸为例,在sap设置该纸张的打印格式,以用于报表: 1.运行事务代码SPAD:选择工具栏上的[完全管理]按钮-->选 ...
最新文章
- 为什么在重庆比北京更容易迷路?Nature子刊:大脑GPS系统呈蜂窝状,弯路多了就“变形”...
- Unity3D学习笔记(四)Unity的网络基础(C#)
- AAC音频文件时长计算
- CSS 盒子模型(Box model)中的 padding 与 margin
- Express — 使用步骤
- eclipse java工程目录_转载:Eclipse下的java工程目录
- 解决:Intellij idea 启动项目报错 error:java: 无效的源发行版: 8
- Linux防火墙屏蔽ip6,观点|Linux 发行版们应该禁用 IPv4 映射的 IPv6 地址吗?
- Ambari--主机管理
- ueditor编辑器图片自定义存放目录及路径修改
- 基于视频会议系统的应急指挥项目建设方案
- 7z解压缩软件下载安装教程
- asdm 对应 java 版本,asdm不能登录问题;浏览器必须是ie,不能是chrome或者firefox;java的版本,尤其是安全等级和例外需要调整...
- OSChina 周四乱弹 ——丑到端水水更流,举杯浇丑丑更丑
- sin函数对照表_三角函数数值对照表.pdf
- php strict,PHP 5.4中的E_STRICT和E_ALL有什么区别?
- java 学习7.13 正则表达式 Pattern和Matcher类 Math类 Random类 System类 BigDecimal类 Date类 SimpleDateFormat类 Cale
- 兑换记录html页面,兑换码记录.html
- Android发送图片到指定邮箱(仅客户端简单实现,不需服务端配合)
- 在windows生成SSH秘钥连接linux远程主机
热门文章
- 地图的开发研究--基于openlayers+geoserver+tomcat的离线地图--postgis空间数据库
- html中的样式表CSS
- 【智慧农业】温室控制系统解决方案
- 数据科学技术与应用【中国大学MOOC】:机器学习建模分析(三)_第五次单元测验_答案
- Openstack(课堂随笔)
- 作者:周傲英(1965-),男,华东师范大学副校长、数据科学与工程学院院长。...
- k8s的etcd部署以及实现pod通信
- asp.net台球俱乐部管理系统
- 有哪些手机拍照扫描软件?向你分享这3个
- 2021年Top 5主流用户界面(UI)控件推荐