1.Verilog语言区分大小写
2.关键字
循环语句:for ; forever ; repeat ; while
分支语句: if else ; case end-case ;
3.数据类型
reg ; wire ; interger ; parameter ;
边沿信号 : posedge ; negedge
Verilog 数据对象
1.数据对象有8种:线网型(net) 寄存器型(reg) 储存器型(memory)
整型(integer) 时间型(time) 实数型(real)
参数型(parameter) 字符型(string)
数据类型以驱动的方式来分类,
reg:可以存储数据
wrie:连接两个引脚,不能储存数据
signed:表示有符号的数据对象
wire cout //定义一个数据对象cout,是1位的wire类型
wand da //定义一个数据对象da,是1位的wand类型
supply1 vcc //定义一个数据对象vcc,是1位的supply1类型
wire[7:0] data //定义一个数据对象data,是8位的wire类型
//定义多位数据对象默认是vectored类型
wire vectored[7:0] bus //显示指明是vectored类型的8位wire
wire scalared[7:0] adr //显示指明是scalared类型的8位wire
wire signed[7:0] data //定义一个有符号的8位wire,它是以2的补码形式出现
算数运算符
+:加法运算或者正值运算,a+b、+a
— :减法运算或者负值运算:a—b、—a
* :乘法运算:a*b
/ :除法运算:a/b
% :求余运算:a%b,%两侧的数据必须为整型数据;
关系运算符
a < b :a小于b
a > b :a大于b
a == b :a等于b
a != b :a不等于b
a <= b :a小于或等于b
a >= b :a大于或等于b
逻辑运算符
&&:逻辑与:a&&b,a和b同时为真时才为真,否则为假
||:逻辑或:a||b,a和b同时为假时才为假,否则为真
! :a为真时,!a为假
移位运算符:
在Verilog HDL中有4种移位运算符:<< (逻辑左移) 和 >>(逻辑右移),<<<(算数左移)和>>>(算数右移)其使用方法如下:a>>n或a<<n,a是操作数,n表示移动几位,这两种移位运算都用0填补移出的空位。
reg [3:0] a,c;
reg [5:0] b;
a = 4'h1001;
b = a<<2; 此时b=6'h100100
c = a>>2; 此时c=4'h0010
左移位数增加,右移位数不变
位拼接运算符:
位拼接运算符可以把两个或多个信号的某些位拼接起来进行运算操作。其使用方法如下:
{数据1的某几位,数据2的某几位,…,…,数据n的某几位}
a = 4'h1101;
b = 6'h111000;
c = 2'h11;
d = {a[3],b[2:0],c};此时d = 100011
e = {2{b}}; 此时e = {b,b} = 111000111000
f = {a,b,2{a,c}} 此时f = {a,b,a,c,a,c} = 111111000110111110111