Verilog HDL任务和函数.ppt

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

* 任务和函数 学习指南 【知识目标】 (1) 掌握Verilog任务说明语句的定义和使用; (2) 掌握Verilog函数说明语句的定义和使用; (3) 了解任务和函数的联系与区别; (4) 掌握常用的系统自定义任务和函数。 【技能目标】 (1) 熟练使用Verilog任务说明语句进行硬件编程; (2) 熟练使用Verilog函数说明语句进行硬件编程; (3) 在编程中熟练调用常用的Verilog预定义系统任务和函数。 【重点难点】 (1) 任务和函数的联系与区别; (2) 各种预定义函数的使用方式。 1 任务(Task)说明语句 任务可以在always或者initial模块中的任何过程语句中调用。任务的调用可以包含一个参数列表,参数列表中的各个参数将按照其在任务中的定义顺序,依次传递给任务中相对应的端口变量。其传递规则类似于用顺序端口连接方式来实例化子模块,任务调用时,仿真的运行控制转移到任务模块中。当任务结束后,仿真控制权才回归到任务调用之后的下一条语句。在一个任务中,可以启动另外一个任务,而新启动的任务又可以再次启动新的任务。当所有的任务在该仿真时刻运行完毕时,仿真运行控制权才转移回来。 定义任务的语法如下所示: task 任务名; 端口声明和变量定义; 一个或多个过程语句; endtask 1 任务(Task)说明语句 任务的调用语法如下所示: 任务名 (参数1, 参数2,参数3,....); 【例1】设计一个进行延迟的任务。该任务延迟指定个时钟周期后返回。 // example_8_1: A sample task to perform delay module delay_task (); // 定义时钟,时钟周期为10 reg clk; initial clk = 1b1; always #5 clk = ~clk; // 记录延迟周期数 reg [31:0] cnt_num; initial begin #0 $display(Time1 = %0d, $time); // 调用delay任务延迟指定的时钟周期数 delay(10); $display(Time2 = %0d, $time); // 调用delay_5x10任务,延迟50个时钟周期。该任务返回实际的 1 任务(Task)说明语句 // 延迟周期数。 delay_5x10(cnt_num); $display(Time3 = %0d; count_number = %0d, $time, cnt_num); #10 $finish; end // 定义任务delay,该任务执行指定周期数的延迟 task delay; input [31:0] cnt; begin repeat (cnt) @ (posedge clk); end endtask // 定义任务delay_5x10,该任务执行50个时钟周期的延迟 task delay_5x10; 1 任务(Task)说明语句 output [31:0] cnt_num; begin cnt_num = 0; // 连续5次调用任务delay_10,因此总共延迟5*10=50个时钟周期 repeat (5) begin delay_10(cnt_num, cnt_num); end end endtask // 定义任务delay_10,该任务执行10个时钟周期的延迟 task delay_10; input [31:0] cnt_init; output [31:0] cnt_num; begin cnt_num = cnt_init; repeat (10) begin 1 任务(Task)说明语句 // 在任务里可直接引模块中定义的变量clk @ (posedge clk) cnt_num = cnt_

文档评论(0)

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

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

版权声明书
用户编号:7065136142000003

1亿VIP精品文档

相关文档