Verilog笔记
assign语句 always语句 底层模块调用语句
module endmodule是每个程序都必备的,代表我们创建了一个模块和结束一个模块的创建。既然创建了模块,那么这个模块必然有模块名,以及参数,还有中间的各种语句。参数有输入参数、输出参数等,以及reg、wire类型;语句有assign语句(只对wire变量操作)、always@语句(只对reg变量操作)等。
例:我们规定了一个模块名DFF1(输入输出变量CLK,D,Q);Q为输出变量,CLK、D为输入变量,同时Q是reg类型;我们编写always@语句(当CLK上升沿触发时,D赋值给Q);模块结束。(always@语句的操作对象必须是reg类型,由于不定义默认是wire类型,所以我们让输出定义为reg类型。)注:输入参数必须是wire类型,与always@语句无关。
模块名(输入输出变量名);输入输出变量定义(包括数据类型定义);