Verilog语法#1
1. 模块声明
Module nameOfModule(<端口名列表>);
<逻辑代码>;
Endmodule
2. 端口声明:input output inout
Input + clk :1bit时钟
Input + wire+名字:输入信号
Input + [高位:地位] +名字:某bit的输入信号
3. 常量
关键字 parameter
关键字 + name = defaultValue;
关键字 + [highbit:lowbit] + name = defaultValue
4. 输入输出信号类型|:wire reg
Input和inout只能是wire;
output可以是wire也可以是reg;
定义同上。
5. If和case用法;
If(条件)Begin
…
End
想要else,下一行跟else接着跟beginend;
Case(条件)
Value1:dosomething
Value2:dosomething
…
Default:dosomething
Endcase
6. For循环:
for(变量名=初值;判断;变量名=新值)
换行
beginend;
7. 任务
类似子函数,但是没有返回值;(初步理解为代码段)
8. Assign
用来连接信号(即赋值操作)assign wire名字=变量或常量名字;
9. Always模块
用法1:always@(*)换行beginend;组合逻辑电路用法。
用法2:always@(posedge或negedge)换行beginend;单个触发。
用法2:always@(posedge or negedge)换行beginend;多个触发。
10. 运算操作符
|:或||:逻辑或
&:与&&:逻辑与
11. 赋值操作
= 是阻塞赋值(效果同c,等待赋值完成再执行下一句,串行);
<=是非阻塞,赋值操作一次并行完成,不等待