显示任务:$display,$write, 前者总会输出一个换行符,后者不会。固定输出格式版:$displayb/$displayo/$displayh/$writeb/$writeo/$writeh。

(%m 显示模块路径, \转义字符) $fmonitor(file, "%m:%t addr = %h data = %h", $realtime, addr, data);

监控任务:$monitor, $strobe, 前者同一仿真时候只能触发一个task,还有控制任务$monitoron, $monitoroff。后者在某一时刻,记录变量的值到log和STDOUT,在该时刻所有Event已经触发,仿真时间将向前走时。forever @(negedge clock)   $strobe("At time %t, data is %h", $time,data);

文件读写:$fopen, $fclose 句柄必须是一个interger类型。类型r/w/a(append),r+/w+/a+ 缺省时,默认是写。

interger Write_Out_file;  Write_out_file = $fopen("Write_Out_File.txt");  $fdisplay (Write_Out_File, "%h\n%h", addr, data);  $fclose(Write_Out_File);

$fdisplay, $fwrite, $fstrobe, $fmonitor 用法类似,只需要加一个文件句柄。类似的有$fwriteo, $fwriteb, $fwriteh等。

其他几个特殊的任务:

c = $fgetc (fd); 读一个byte到c中。

$swrite, $sformat(output_reg, formal_string, list_of_argument) 按字符串格式输出到一个reg variable。

$fgets(str, fd);读入一行字符到str中。

$fscanf(fd, format, args); 按标准输入到文件fd。

$sscanf(str, format, args);按标准输入到reg str。

$fflush(fd); 将buffer立即输出到fd文件中。

写入memory:$readmemb/readmemh 二进制与16进制。 reg[7:0] mem[1:256];  initial  $readmemh("mem_data", mem, 128, 1);

(mem_data中只能有空格,制表符等,注释,2进制/16进制数据。第三位起始地址,第四位结束地址,不特殊写明时,默认从0--$)

@address in hex    data

@2f                      ff(十六进制)

$sdf_annotate("sdf_file",,,,,,):将sdf文件读入设计中。可选参数module_instance(反标module,缺省当前模块),log_file(指定输出log的名字),mtm_spec(min/typ/max反标种类),scale_factor(scale因子),scale_type(scale在min/typ/max选择)。

第一组,检查时序窗口的稳定性,包括:setup、hold、recovery和removal。
setup:$setup (data_event, reference_event, limit, notifier);
当reference_event time - limit < data_event time < reference_event time时,就会报告setup time violations。
hold:  $hold   (reference_event, data_event, limit, notifier);
当reference_event time < data_event time < reference_event time + limit时,就会报告hold time violations。
setup/hold:$setuphold (reference_event, data_event, setup_limit, hold_limit, notifier);
   $setuphold是$setup和$hold两者的联合。例如:
   $setuphold (posedge clk, negedge d, 2, 1, notifier); 等于
   $setup (negedge d, posedge clk, 2, notifier); 和 $hold (posedge clk, negedge d, 1, notifier);
数据事件常常是数据信号,而参考事件常常是时钟信号。

参考:http://www.cnblogs.com/poiu-elab/archive/2012/08/25/2655937.html

仿真控制:$finish, $stop

随机数产生:$random(seed), $dist_uniform(seed, start, end); 返回有符号32位的随机数。

command line input:$test$plusargs(string)

Run simulator with +HELLO   initial  begin

if ($test$pluargs("HELLO"))   $display();

end

$value$pluargs(user_string, variable)

Run simulator with +TESTNAME = THIS TEST  initial  begin

if ($value$pluargs("TESTNAME = %s", testname))   start_test();

end

verilog中的ifdef和ifndef后加name,但是endif之后不能加。

verilog中的行分隔符,之间换行即可,靠";"分行。

标识符可以放在begin...end/ fork...join/ module...endmodule/ task...endtask/ function...endfunction中来更明确。

Verilog篇(二)系统函数的更多相关文章

  1. Verilog学习笔记基本语法篇(十一)········ 常用系统函数

    1)系统任务:$monitor   格式: $monitor(p1,p2,p3...pn); $monitor; $monitoron; $monitoroff; 任务$monitor提供了监控输出列 ...

  2. 【基于WPF+OneNote+Oracle的中文图片识别系统阶段总结】之篇二:基于OneNote难点突破和批量识别

    篇一:WPF常用知识以及本项目设计总结:http://www.cnblogs.com/baiboy/p/wpf.html 篇二:基于OneNote难点突破和批量识别:http://www.cnblog ...

  3. Jmeter(二十五)Jmeter之系统函数

    都忘了Jmeter4.0已发布((*^▽^*))具体优化项还没体验,记录一下,传送门:http://jmeter.apache.org/download_jmeter.cgi Jmeter的系统函数已 ...

  4. PHP实用系统函数之数组篇

    PHP中十分实用的系统函数 array array_merge 说明:array  array_merge ( array $array1 [, array $... ] ) 将一个或多个数组的单元合 ...

  5. Verilog语言中的系统任务和系统函数

    Verilog语言中预先定义了一些任务和函数,用于完成一些特殊的功能,它们被称为系统任务和系统函数,这些函数大多数都是只能在Testbench仿真中使用的,使我们更方便的进行验证. `timescal ...

  6. 学习如何看懂SQL Server执行计划(二)——函数计算篇

    二.函数计算部分 --------------------标量聚合--------------------/* 标量聚合-主要在聚合函数操作中产生 计算标量:根据行中的现有值计算出一个新值 流聚合:在 ...

  7. .Net程序员学用Oracle系列(11):系统函数(下)

    1.聚合函数 1.1.COUNT 函数 1.2.SUM 函数 1.3.MAX 函数 1.4.MIN 函数 1.5.AVG 函数 2.ROWNUM 函数 2.1.ROWNUM 函数简介 2.2.利用 R ...

  8. java学习笔记-JavaWeb篇二

    JavaWEB篇二 45 HttpSession概述46 HttpSession的生命周期 47 HttpSession常用方法示例48 HttpSessionURL重写 49 HttpSession ...

  9. 第五篇:Python函数基础篇

    本篇介绍什么是函数.函数的特性.函数的定义.函数的调用.以及函数的参数.以及关于全局变量和局部变量的使用等等. 一.什么是函数: 函数是最基本的一种代码抽象方式,为了实现某种特定的功能而组织的带名字的 ...

随机推荐

  1. java分形树

    import java.awt.*; import java.awt.event.*; import java.util.Random; import javax.swing.*; /** * * @ ...

  2. SQLSERVER 16进制与10进制转换

    最近工控项目中遇到的16进制与10进制转换,在.NET中比较容易实现,在SQLSERVER中发现没有直接的转换,尤其是出现超出范围的long负数,即无符号64位整数在sqlserver中的存储.网上找 ...

  3. QQ聊天气泡(图片拉伸不变样)、内容尺寸定制(高度随字数、字体而变)

    - (void)viewDidLoad { [super viewDidLoad]; self.view.backgroundColor = [UIColor whiteColor]; /** QQ聊 ...

  4. 访问路径:https://i.cnblogs.com/posts?categoryid=925678

    https://i.cnblogs.com/posts?categoryid=925678

  5. h5固定表头公共样式

    <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scal ...

  6. Linux就这个范儿 第9章 特种文件系统

    Linux就这个范儿 第9章 特种文件系统 http://book.douban.com/reading/32081222/ P326 有一种文件系统,根本不在磁盘上.这种文件系统就是大名顶顶的ram ...

  7. Oracle ORA-12519: TNS:no appropriate service handler found 解决

    有时候连得上数据库,有时候又连不上. 可能是数据库上当前的连接数目已经超过了它能够处理的最大值. select count(*) from v$process --当前的连接数select value ...

  8. 小白教你玩转php的闭包

    php5.3有一个非常赞的新特性,那就是支持匿名函数(闭包).匿名函数可用于动态创建函数,并保存到一个变量中.举个栗子: $func = function(){ exit('Hello world!! ...

  9. Unicode和多字节字符集 (MBCS) 杂谈

    这个估计是很多人曾经头疼过的问题,现在的VC版本基本都支持Unicode和多字节字符集 (MBCS),在进行MFC编程时VC的默认设置是unicode字符集.但是我们通常需要做一些代码移植的工作,如果 ...

  10. WebDriver中启动不同的浏览器

    import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.firefox.FirefoxDriver; im ...