module <模块名>(端口列表);
端口说明
参数定义
数据类型
连续赋值(assign)
过程快(always)
行为描述语句
低层模块
任务和函数
延时说明模块
endmodule
模块有两部分:接口描述。逻辑功能描述,及定义输入是如何影响输出的。
端口就是硬件的管脚(pin)。
位运算符 ~取反 & 按位与 | 按位或
逻辑运算符 && 逻辑与 || 逻辑或 !逻辑非
a>=b A<=B 等号都在右边
等式运算符 == 等于 !=不等于
移位运算符 << 左移位运算符 右移位运算符>>
位拼接 {a,b[3],c[4],3'b101} {4{w}}//等同于{w,w,w,w};
always的原则:同一个变量不要再多个always块中赋值。
顺序块——语句置于begin和end之间,快中语句顺序执行。
并行块——fork和join之间的是并行块语句,块中的语句并行执行。
case(控制信号)//casex casez x和z表示无关位。
endcase
repeat循坏语句 repeat语句的格式:repeat(表达式)语句;
宏定义用一个指定的标识符来代表一个字符串,`define WORDSIZE
文件包含指令:`include "文件名"
时间尺度 ·`timescale 1ns/1ps 模块中所有的时间值都表示是1ns的整数倍。精度为1ps。