module是Verilog最先开始学的,通常有模块名、端口定义(输入或者输出端口)、数据类型(wire/regparameter)和逻辑功能(连续型赋值assign、过程快initial begin---end和always等等)
详细举例:
module xxxxxx ( a,b,c,d); 有个分号 //xxxxxx这个是给module取的名字,自己很随意想咋取咋取
//()小括号里面时候端口列表,表示信号输入端口输出端口,这种是1995年的写法
input a; //input 默认wire类型,input wire a这样写也可以
input[2:0] b; //[2:0]表示b有3bit数据
output c;
output[2:0] d;
------------------------------------
-----------------------------------中间进行逻辑功能描述
-----------------------------------
endmodule //有始有终,必须有endmodule
*******************************************************
下面是2001年的写法,建议使用这个
module xxxxxx(
input a, 一定要用逗号隔开
input [2:0] b,
output c,
output[2:0] d
); //分号不能忘
--------------------------------
--------------------------------
-------------------------------
endmodule // 没有分号
注:本章程主要根据B站up主:老肖侃侃芯片与电路----每天挑战一条Verilog语法。下同。