1.module 结构
module 程序名称(
input x,y;#输入信号
output .....;#输出信号
);#末尾加分号
程序正文
endmodule #程序结尾,无符号
2.数据类型:
reg:寄存器类型,数据存储单元,默认初始值为X。只能在always和intial语句中被赋值。
例:reg[31:0] x;#32位寄存信号 reg y;#一位寄存信号
wire:线网类型,不能存储数值,模块的输入输出默认为wire型,初始值为Z,值由它的驱动决定。在assign中赋值。
例:wire key ;
tri:多驱动器驱动的网络型数据。
memory:存储器,通过扩展reg的地址范围构成。
例:reg[3:0] memo[255:0] 256个地址的4为寄存器
paramter:常量。
例:paramter one =2'd00;
3.常用运算符
~:按位取反 ~1111=0000
!:逻辑取反
& :按位与
&&:逻辑与
| :按位或
| :逻辑或
^ :异或
^~ : 同或
=:赋值操作
<=:无阻塞赋值
==:等于
===:相同
!=:不等于
!==:不相同
<<:左移
>>:右移
{ , , , }:拼接符号
{{}}:复制
**:次幂
?: :条件错做符
+:加
-:减
*:乘
/:除
%:取模。模运算中,取第一个数的符号。
4.关键字
module :模块
input:输入信号
output:输出信号
inout:双向端口
begin:起始
end:结束
edge:边沿
posedge:上升沿
negedge:下降沿
case endcase:case语句
if:判断
esle:
for:
endmodule:模块结束