module、task、function区别与应用举例
前言
module、task、function区别与应用举例
一、module
1.作用:
完成不同模块之间的数据流输入输出,完成交互;
2.三个的区别:
module是这三个中最广泛,级别最高的模块,他可以实现Verilog的一切功能,兼容最大;
1.可以包含initial、always块等等模块;
2.可以包含时间延迟控制语句比如#,repeat,@(posedge clk)等的调用;
3.可以调用其他的module、task、function,实现模块的连接与灵活调用;
3.格式:
module 模块名称 (input 端口1,
input 端口2,
.....
output 端口,
output 端口);
wire
reg
assign
always@(*)begin end
always@(posedge clk)begin end
initial begin end
task
function
#5;
@(posedge clk);
repeat()
.....
module 其他模块例化();
endmodule
4.注意:
主要注意所有未定义端口默认为wire,连续赋值用assign
而出现在always中的或者initial等模块中的变量用reg
且不在这些块中的变量也有情况用reg;
5.实例:
module addr_2(
input [3:0]A,
input[3:0]B,
output [3:0]C);
initial
begin
#5;
A=5;B=6;
task

本文详细介绍了Verilog中module、task和function的概念、区别及使用场景。module作为最高级别的模块,可以包含各种控制语句并实例化其他模块;task用于组织代码,便于复用,但不能包含特定控制语句;function则主要用于组合逻辑计算,不能包含时间控制语句。通过实例,展示了它们在实际设计中的应用。
最低0.47元/天 解锁文章
419

被折叠的 条评论
为什么被折叠?



