硬件:module/endmodule; interface/endinterface
软件:program/endprogram; class/endclass
硬件过程块 inital 与always
always: module与interface中使用
initial: module、interface与program中使用
软件方法 function 与task 1
比较点 | 函数 | 任务 |
---|---|---|
参数列表 | input、output、inout、ref | |
返回值 | 可以返回值 return;也可以不返回值 void | 任务没有返回值 |
时序逻辑 | 函数不能包含任何时序控制逻辑 | 任务不能出现always语句,但可以包含其他时序控制,如延时语句 |
调用 | 函数只能调用函数,不能调用任务 | 任务可以调用函数和任务 |
仿真时刻 | 函数总在零时刻就开始执行 | 任务可以在非零时刻执行 |
书写规范 | 函数不能单独作为一 条语句出现,只能放在赋值语言的右端 | 任务可以作为一 条单独的语句出现语句块中 |
verilog和SV有些不同,verilog可参考https://www.runoob.com/w3cnote/verilog-task.html ↩︎