1.逻辑值
0
1
z:高阻态,无驱动
还有一种状态是,亚稳态,介于0 1之间。
2.关键字
module:模块的开始 endmodule:模块的结束
input:输入信号 output:输出信号 inout:输入输出信号
3.变量
线网型变量 wire
寄存器型变量 reg
4.参数
parameter//实例化时参数可修改
localparam//不可修改
5.常量
基数表示法
格式:[换算为二进制后的总长度]['][数值进制符号][与数值进制符号对应的数值]
eg:8'd171 表示为位宽是8bit,十进制的171
h:16进制 o:8进制 b:2进制 d:10进制
Verilog会为常量自动匹配合适的位宽,当总位宽大于实际位宽,则在左边自动补零,当总位宽小于实际位宽,则在左边自动截停超出的位数。如果直接写参数,如100,表示位宽为32bit的十进制数100。
阻塞赋值(顺序赋值)"="
a=1;
b=2;
c=3;
begin
a = b;
c = a;
end
a=2;
b=2;
c=2;
非阻塞赋值(同时进行)“<=”
a=1;
b=2;
c=3
begin
a <= b;
c <= a;
end
a=2;
b=2;
c=1;
always语句
assign语句
算数运算符和C一样
操作符 | 操作符号 | 优先级 |
---|---|---|
单目运算 | + - ! ~ | 最高 |
乘、除、取模 | * / % | |
加减 | + - | |
移位 | << >> | |
关系 | < <= > >= | |
等价 | == != === !=== | |
归约 | & ~& | |
^ ~^ | ||
| ~| | ||
逻辑 | && | |
|| | ||
条件 | ?: | 最低 |