$strobe$monitor$display
$strobe:
当该时刻的所有事件处理完后,在这个时间步的结尾打印一行格式化的文本,
语法
$strobe( Argument,...);
$fstrobe( Mcd, Argument,...);
Mcd = Expression {整数值}
规则
• 这些系统任务的变量的语法和它们所写的文本和几乎和$display 任务一样
• 当$strobe 被调用的时刻所有活动都完成了,$strobe 才打印文本,这包括所有阻塞性和非阻塞性赋值的作用
提示
在写仿真结果时请尽量使用$strobe 少用$display 或$write 这保证了选通的线网和寄存器被写入稳定
的值
举例
initial
begin
a = 0;
$display(a); // displays 0
$strobe(a); // displays 1 ...
a = 1; // ... 因为这条语句
end
$monitor
当一个或多个指定的线网或寄存器列表改变值的时候,写出一行文本.这个命令用于在测试设备中监控仿真行为.
语法
$monitor( Argument,...);
$fmonitor( Mcd, Argument,...);
$monitoron; {打开监控标志}
$monitoroff; {关闭监控标志}
Mcd = Expression {整数值}
规则
• 这些系统任务的变量的语法和它们所写的文本和几乎和$display 任务一样.
• 只有一个$monitor 进程,但同时可以运行任意数量的$fmonitor 进程.
• 第二次或者再次调用$monitor 会取消任何现有的$monitor 进程,而且用新的$monitor 进程代替.
• $monitoroff 禁能监控,$monitoron 重新使能监控.基于当前的$monitor 进程而不管值是否发生改 变,$monitoron 立即产生监控显示.
• 没有$fmonitor 相当于$monitoron 和$monitoroff
• 系统函数$time ,$stime 和$realtime 不从$monitor 等或$fmonitor 等触发显示.
$display 和$write
写格式化的文本到标准输出或仿真器的log 或者一个文件
语法
$display( Argument,...);
$fdisplay( Mcd, Argument,...);
$write( Argument,...);
$fwrite( Mcd, Argument,...);
Mcd = Expression {整数值}
规则
• $display 和$write 的唯一区别是$display 在文本的结束写一个换行字符而$write 不写.
• 变量可以是字符串或表达式或者空白[两个相邻的逗号]
• 写出的字符串可能包含格式说明符,如果是,每个字符串的后面必须紧跟足够的表达式为字符串的所有 格式表达式提供值(%m)除外
• 字符串可以包含以下的转义字符
\n 换行
\t 制表符
\” 双引号
\\ 反斜杠
\nnn 八进制字符的ASCII 值
.未知和高阻值被如下写出.注意八进制和十六进制数一个数字分别表示3 位或4 位.对于十进制
数未知和高阻值用一个数字表示.
. 小写的x 或z 表示这个数字代表的所有位都未知.
. 大写的X 或Z 表示这个数字代表的某些位,不是所有位,未知
• 如果一个变量列表包含两个相邻的逗号,这里将写入一个空格.
格式说明符
• 字符串允许有下面的格式说明符
%b %B 二进制
%o %O 八进制
$d $D 十进制
%h %H 十六进制
%e %E %f %F %g %G 实数
%c %C 字符
%s %S 字符串
%v %V 二进制和强度
%t %T 时间
%m %M 层次实例
• %v 打印的强度如下,电源- Su ,强- St ,拉- Pu ,大- La, 弱- We ,中等- Me ,小- Sm ,高- Hi
%v 也打印值H 和L (这些用%b 打印时是X)
• 最小的区域宽度值在%字符后面(例如%10d), 对于十进制数,前面的零用空格代替,但对于 其他基数前面 的零也要打印出来.最小的区域宽度是0 表示区域已经足够大可以显示值.
• 实数的说明符格式(%e %f 和%g)和C 编程语言的格式完全兼容,例如%10.3g 指出最小的区域宽度是10 , 小数点后面有3 位.
• 不用格式说明符书写的表达式用十进制格式书,写但一些额外的任务有不同的默认格式,例如:
$displayb ,$fwriteo 和$displayh 在不用格式说明符时分别将数字表达式写成二进制八进制和十六进制值.
举例
$display("Illegal opcode %h in %m at %t",
Opcode, $realtime);
$writeh("Register values (hex.): ",
reg1,, reg2,, reg3,, reg4,"\n");
随机推荐
- jQuery file upload上传图片的流程
先触发_onChange[jquery.fileupload.js] _onChange: function (e) { var that = this, data = { fileInput: $( ...
- 算法中Amortised time的理解
ref:http://stackoverflow.com/questions/200384/constant-amortized-time 如果非要翻译成中文,我觉得摊算时间或均摊时间(注意,它和平均 ...
- zay大爷的神仙题目 D1T1-大美江湖
在前几天的时候,千古神犇zay(吊打zhx那个)出了一套神仙题目,所以我得来分析分析QWQ 先补个网易云链接QWQ 毕竟是T1嘛,还算是比较简单的,那道题,读完题目就发现是个中等模拟(猪国杀算大模拟的 ...
- 【mysql】如何通过navicat配置表与表的多对一关系,一对一关系?设计外键的效果
背景: 现在要将接口自动化测试结果持久化,当前只是每次运行接口测试,将测试结果通过邮件发送给项目组成员.邮件内容如下: 表设计: 为了呈现这个结果:我设计了2张表run_result和run_deta ...
- 三:flask-配置文件的两种方式
项目中,配置的参数一般采用配置文件的形式,方便统一管理 第一种方式:模块的形式:使用app.config.from_object(config)的方式加载配置文件,此方式需要导入配置文件视为模块 第二 ...
- RESR API (一)之Requests
Requests 如果您正在做基于REST的Web服务,您应该忽略request.POST. - Malcom Tredinnick,Django开发团队 REST框架的Request类扩展了标准的H ...
- Lua增加一个节点到文件中
新建一个文件touch /etc/config/ddns 增加一个节点到文件中uci set ddns.newadd=config <config>:即配置文件,如ddns,ipv6等&l ...
- python基础:multiprocessing的使用
不同于C++或Java的多线程,python中是使用多进程来解决多项任务并发以提高效率的问题,依靠的是充分使用多核CPU的资源.这里是介绍mulitiprocessing的官方文档:https://d ...
- 2019暑假第二周(hadoop在个人电脑上的搭建)
一,Hadoop和NoSQL数据库的学习,大多需要Linux环境. 搭建Linux环境可以分为两种方式: (1)在电脑上安装双操作系统,即同时安装Linux和Windows操作系统,在电脑启动的时候, ...
- mysql源码包安装
一.准备编译环境 # yum -y install ncurses ncurses-devel openssl-devel bison gcc gcc-c++ make cmake # wget ht ...