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)

转义字符可以分为以下三类:

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

注意: system_verilog中仅包含以上几种类型的转义字符(IEEE Std 1800TM-2017),未出现于上表中的其他类型将输出原来字符。如转义字符’ \b ‘的输出结果为‘ b ’。这与 c 语言中不同, c 语言中的 ‘ \b ’为退格,而SV中为字符’ b '.

转义字符 >> 输出示例:

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 数据显示尺寸

数字尺寸 >> 输出示例:

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 强度显示格式

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

表2.5.2中定义了 4 种驱动强度和 3 种电荷存储强度:驱动强度与 gate output 和 continuous assignment有关;电荷存储强度用于 trireg 类型 net. (see clause 28 gate-level and switch-level modeling)

那么逻辑字符和强度字符如何配合使用呢?

  • 对逻辑 ‘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

Assignment pattern format >> 输出格式:

2.8 字符串格式

>> IEEE Standard for SystemVerilog - Unified Hardware Design, Specification and Verification Language, 1800TM-2017
>> clause 21 Input/output system tasks and system functions

转载请注明出处!

【转载】System_Verilog打印格式相关推荐

  1. System_Verilog打印格式

    system_verilog display format 1. 简介 $display 和 $write的区别: $display系的系统函数:会在输出的末尾自动添加换行符(newline char ...

  2. 常用的NSLOG日志打印格式

    2019独角兽企业重金招聘Python工程师标准>>> 常用的NSLOG日志打印格式 以下是常用的LOG打印,如果有特殊,请@我 ,这边会不定期更新. %@        对象 %d ...

  3. java 蓝牙打印_Android蓝牙打印机,带你真正了解各种打印格式

    注意:本文原创,转载请注明出处.欢迎关注我的 简书 . 本文主要讲解蓝牙打印机在打印小票的过程中,如何打印各种常见格式.由于之前需要调试打印格式,但是苦于网上没有详细的讲解教程,无奈只能自给自足,自己 ...

  4. 蓝牙打印 设置打印样式_Android蓝牙打印机,带你真正了解各种打印格式

    注意:本文原创,转载请注明出处.欢迎关注我的 简书 . 本文主要讲解蓝牙打印机在打印小票的过程中,如何打印各种常见格式.由于之前需要调试打印格式,但是苦于网上没有详细的讲解教程,无奈只能自给自足,自己 ...

  5. Android蓝牙打印机,带你真正了解各种打印格式

    本文主要讲解蓝牙打印机在打印小票的过程中,如何打印各种常见格式.由于之前需要调试打印格式,但是苦于网上没有详细的讲解教程,无奈只能自给自足,自己封装了一个.如果各位盆友正在或者曾经苦恼蓝牙打印机的打印 ...

  6. 论文打印格式混乱?Word转换成PDF就好了

    今天上网看到这么一个帖子: Word文档打印时格式会混乱已经是很多人都知道的了,特别是写论文的同学,很多人都直接使用PDF编辑器直接写论文. 如果你用的是Word写论文怎么办?没关系,介绍一个在线Wo ...

  7. Smartforms 设置纸张打印格式

    在sap做一个打印报表,要先设置一个纸张打印格式,下面以工厂中常用来打印的针孔纸为例,在sap设置该纸张的打印格式,以用于报表: 1.运行事务代码SPAD:选择工具栏上的[完全管理]按钮-->选 ...

  8. smartforms设置纸张打印格式

    在sap做一个打印报表,要先设置一个纸张打印格式,下面以工厂中常用来打印的针孔纸为例,在sap设置该纸张的打印格式,以用于报表: 1.运行事务代码SPAD:选择工具栏上的[完全管理]按钮-->选 ...

  9. Smartforms 在sap系统设置纸张打印格式

    在sap做一个打印报表,要先设置一个纸张打印格式,下面以工厂中常用来打印的针孔纸为例,在sap设置该纸张的打印格式,以用于报表: 1.运行事务代码SPAD:选择工具栏上的[完全管理]按钮-->选 ...

最新文章

  1. 为什么在重庆比北京更容易迷路?Nature子刊:大脑GPS系统呈蜂窝状,弯路多了就“变形”...
  2. Unity3D学习笔记(四)Unity的网络基础(C#)
  3. AAC音频文件时长计算
  4. CSS 盒子模型(Box model)中的 padding 与 margin
  5. Express — 使用步骤
  6. eclipse java工程目录_转载:Eclipse下的java工程目录
  7. 解决:Intellij idea 启动项目报错 error:java: 无效的源发行版: 8
  8. Linux防火墙屏蔽ip6,观点|Linux 发行版们应该禁用 IPv4 映射的 IPv6 地址吗?
  9. Ambari--主机管理
  10. ueditor编辑器图片自定义存放目录及路径修改
  11. 基于视频会议系统的应急指挥项目建设方案
  12. 7z解压缩软件下载安装教程
  13. asdm 对应 java 版本,asdm不能登录问题;浏览器必须是ie,不能是chrome或者firefox;java的版本,尤其是安全等级和例外需要调整...
  14. OSChina 周四乱弹 ——丑到端水水更流,举杯浇丑丑更丑
  15. sin函数对照表_三角函数数值对照表.pdf
  16. php strict,PHP 5.4中的E_STRICT和E_ALL有什么区别?
  17. java 学习7.13 正则表达式 Pattern和Matcher类 Math类 Random类 System类 BigDecimal类 Date类 SimpleDateFormat类 Cale
  18. 兑换记录html页面,兑换码记录.html
  19. Android发送图片到指定邮箱(仅客户端简单实现,不需服务端配合)
  20. 在windows生成SSH秘钥连接linux远程主机

热门文章

  1. 地图的开发研究--基于openlayers+geoserver+tomcat的离线地图--postgis空间数据库
  2. html中的样式表CSS
  3. 【智慧农业】温室控制系统解决方案
  4. 数据科学技术与应用【中国大学MOOC】:机器学习建模分析(三)_第五次单元测验_答案
  5. Openstack(课堂随笔)
  6. 作者:周傲英(1965-),男,华东师范大学副校长、数据科学与工程学院院长。...
  7. k8s的etcd部署以及实现pod通信
  8. asp.net台球俱乐部管理系统
  9. 有哪些手机拍照扫描软件?向你分享这3个
  10. 2021年Top 5主流用户界面(UI)控件推荐