当前位置:   article > 正文

Verilog中task使用_verilog task posedge clk

verilog task posedge clk

使用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:声明端口类型和端口方向要分开

  1. task parity_check;
  2. input [15:0] data_in;
  3. output even;
  4. output odd;
  5. wire [15,10] dat_in
  6. wire even, odd;
  7. 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">
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/453987
推荐阅读
相关标签
  

闽ICP备14008679号