微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 请教verilog中TASK可以不带输入输出吗

请教verilog中TASK可以不带输入输出吗

时间:10-02 整理:3721RD 点击:
比如以下一段代码:
    module test;
    reg i,j,k;
    reg[1:0] sum;
    initial
     begin
       i=1;j=1;k=1;sum=0;
      #1 add;
      #1 $display("Sum= %b",sum);
     end
  task add;
    sum=i+j+k;
endtask
endmodule
像以上这样 task封装定义中本身没有input和output,而是直接使用该task所在模块已经定义的变量i,j,k和reg,那么执行到display的时候,sum是显示0还是显示3呢?也就是说,task能直接对模块数据进行操作而不必实参-形参传递吗? 还有当实参是wire型时,形参能使用阻塞赋值吗?

自己顶!

基于语法的定义,是不可以的。
其实,就上面的例子,实际跑一下仿真就知道了。

我跑了之后 发现没有错误 难道真的可以不带input、output端口而直接引用当前模块的变量?

恩,可以

不太了解,仿真试下吧

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top