1)逻辑0:gnd
逻辑1:VCC
逻辑X:1/0
逻辑Z:高阻态
2)二进制:4’b0101(四位二进制数5 ,二进制表示0101,《8421》)
十进制:4’d9 (四位十进制数9 ,二进制表示1001,《8421》)
十六进制:4’hf (四位十六进制数15 ,二进制表示1111,《8421》)
Quartus无位数及格式时,默认为32位十进制
16’b1001_1010_1010_1001=16’h9AA9
3)标识符用于定义模块名、端口名、信号名(变量)
不建议大小写混用,内部信号全部小写。
4)数据类型
4-1)寄存器类型,reg
reg[31:0] delay_cnt; ///定义32位寄存器
寄存器初始值为X,没给出位宽时默认32位
reg只能在always和initial语句中赋值
always语句中带有时钟信号,则该寄存器为触发器
always语句中不带有时钟信号,则该寄存器为硬件连线
4-2)线网类型,wire、tri
实体之间的连线,不能存储值
reg类型数据不赋初值状态为X,wire类型数据不赋初值状态为Z
4-3)参数类型,parameter
定义参数,非实体
参数类型数据常用于定义状态机的状态、数据的位宽和延迟大小
5)运算符
算数运算符:+ 、- 、* 、5/2=2 、5%2=1
关系运算符:> , < , >= , <= , == , !=
逻辑运算符:&& , || , !
条件运算符:result=(a>=b)?a:b;条件为真时选a,假时选b
位运算符:~ 、& 、| 、^ (异或相同为0不同为1),当位宽不一致时,少的高位补零
移位运算符:<<(左移为宽增加,空位0补齐),>>(位宽不变,空位0补齐)
位拼接运算符:{a,b}