Verilog中task使用

使用Verilog-2001语法,格式更简洁:

Verilog 1995:Using the Task Function, Combine Port List, Type Information, and Task
By combining the port list and type information, the above features are applicable to
functions and tasks as the task below illustrates:

Verilog 1995:声明端口类型和端口方向要分开

task parity_check;
input [15:0] data_in;
output even;
output odd;
wire [15,10] dat_in
wire even, odd;
…
endtask

 

Verilog 2001 Combined Functions Port List, Data Information, Data Type, and TaskCombining all aspects of port list, data information, data type, and task, the Verilog2001 standard for this example can be written most succinctly as shown below.

task parity_check (
input wire [15:0] data_in,
output wire even,
output wire odd);


task ... nedtask之间必须有begin ...end模块,否则有错:** Error: ....../tb_fifo_lfsr_sc.v(76): BEGIN - END required around task/function statements

如:task push(input [data_w-1:0] din);   尾部必须有分号收尾

Verilog 2001:把端口声明和端口类型在一行内声明,且可以像module一样,参数列表放在一个括号内

testbench中写的FIFO 读写任务:

task push(input [data_w-1:0] din);
begin
wreq = 1;
d = din*2;
@(posedge clk);
#3;
d = {data_w{1'bx}};
wreq = 0;
@(posedge clk);
end
endtask

task pop;
begin
rreq = 1;
@(posedge clk);
#3;
rreq = 0;
#5;
//@(posedge clk);
end
endtask

程序中调用实例:

for(ii=0;ii<50;ii=ii+1) begin
  push(ii);
end

pop();
pop();
pop();
pop();

</pre><pre name="code" class="plain">
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值