EDA技术教程新内容讲述.ppt

  1. 1、本文档共53页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
EDA技术教程新内容讲述

第9章 调试用系统任务和常用编译预处理语句 系统任务 编译预处理 9.1 系统任务 格式 $monitor (p1,p2,…,p3) $monitor; $monitoron; $monitoroff 任务$monitor提供了监控和输出参数列表中的表达式或变量值的功能。 参数列表中的控制格式字符串和输出列表的规则和$display中的一样。 当启动一个带有一个或多个参数的$monitor任务时,仿真器则建立一个处理机制,使得当参数列表中的变量或表达式的值发生变化时,整个参数列表中的变量或表达式的值都将输出显示。 9.1 系统任务 如果同一时刻,两个或多个参数的值发生变化,则在该时刻只输出显示一次。 $monitoron和$monitoroff 这两个任务的作用是通过打开和关闭监控标志来控制、监控任务$monitor的启动和停止,便于程序员控制$monitor何时发生。 $monitoron用于打开监控任务; $monitoroff用于关闭监控任务; 通常调用$monitoron来启动$monitor时,不管$monitor参数列表中的值是否发生变化,总是立刻输出显示当前时刻参数列表中的值,这样可以在监控的初始时刻设定初始比较值。 9.2 时间度量系统函数 $time Verilog中具有两种类型的时间系统函数,$time $realtime $time $time可以返回一个以64位的整数来表示当前的仿真时刻值。该时刻是以模块的仿真时间尺度为基准的。 $realtime $realtime与$time的作用是一样的,只是$realtime返回的时间数字是一个实型数,该数字也是以时间尺度为基准的。 例9-1 ‘timescale 10ns/1ns module test; reg set; parameter p=1.6; initial begin $monitor($time,,“set=”,set); #p set=0; #p set=1; end endmodule 例9-1运行过程及结果 例 9-2 ‘timescale 10ns/1ns module test; reg set; parameter p=1.55; initial begin $monitor($realtime,,“set=”,set); #p set=0; #p set=1; end endmodule 例9-2运行过程及结果 9.3 编译预处理语句 一、‵define语句 二、‵include语句 三、‵timescale语句 四、 `ifdef 、`else、`endif语句 9.3 编译预处理语句 一、‵define语句 宏定义语句——用一个指定的标志符(即宏名)来代表一个字符串(即宏内容)。 9.3 编译预处理语句 宏名可以用大写字母,也可用小写字母表示;但建议用大写字母,以与变量名相区别。 ‵define语句可以写在模块定义的外面或里面。宏名的有效范围为定义命令之后到源文件结束。 在引用已定义的宏名时,必须在其前面加上符号“‵ ” ! 使用宏名代替一个字符串,可简化书写,便于记忆,易于修改。 预处理时只是将程序中的宏名替换为字符串,不管含义是否正确。只有在编译宏展开后的源程序时才报错。 宏名和宏内容必须在同一行中进行声明! 9.3 编译预处理语句 宏定义不是Verilog HDL语句,不必在行末加分号! 如果加了分号,会连分号一起置换! 9.3 编译预处理语句 在进行宏定义时,可引用已定义的宏名,实现层层置换。 9.3 编译预处理语句 二、‵include语句 文件包含语句——一个源文件可将另一个源文件的全部内容包含进来。 9.3 编译预处理语句 避免程序设计人员的重复劳动!不必将源代码复制到自己的另一源文件中,使源文件显得简洁。 (1)可以将一些常用的宏定义命令或任务(task)组成一个文件,然后用‵include语句将该文件包含到自己的另一源文件中,相当于将工业上的标准元件拿来使用。 (2)当某几个源文件经常需要被其他源文件调用时,则在其他源文件中用‵incl

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档