资源描述:
《有关verilog中的一些语法》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、有关Verilog中的一些语法位运算符1)~//取反2)&//按位与3)
2、//按位或4)^//按位异或5)^~//按位同或(异或非)逻辑运算符在VerilogHDL语言中存在三种逻辑运算符:1)&&逻辑与2)
3、
4、逻辑或3)!逻辑非等式运算符在VerilogHDL语言中存在四种等式运算符:1)==(等于)2)!=(不等于)3)===(等于)4)!==(不等于)"=="和"!="又称为逻辑等式运算符。其结果由两个操作数的值决定。由于操作数中某些位可能是不定值x和高阻值z,结果可能为不定值x。而"==="和"!=="运算符则不同,它在对操作数进行比较时对某些位的不定值x和高阻值
5、z也进行比较,两个操作数必需完全一致,其结果才是1,否则为0。"==="和"!=="运算符常用于case表达式的判别,所以又称为"case等式运算符"。位移运算符左移:右边的添0右移:左边的添0,移除的位舍去举例:4’b1001<<1=5’b10010;4’b1001<<2=6’b100100;1<<6=32’b1000000;4’b1001>>1=4’b0100;4’b1001>>4=4’b0000;位拼接运算符1.{a,b[3:0],w,3’b101}也可以写成为{a,b[3],b[2],b[1],b[0],w,1’b1,1’b0,1’b1}2.{4{w}}//这等同
6、于{w,w,w,w}3.{b,{3{a,b}}}//这等同于{b,a,b,a,b,a,b}负数:一个数字可以被定义为负数,只需在位宽表达式前加一个减号,减号必须写在数字定义表达式的最前面。注意减号不可以放在位宽和进制之间也不可以放在进制和具体的数之间。见下例:-8'd5//这个表达式代表5的补数(用八位二进制数表示)wire型变量通常是用来表示单个门驱动或连续赋值语句驱动的网络型数据,常用来表示用于以assign关键字指定的组合逻辑信号。Verilog程序模块中输入输出信号类型缺省时自动定义为wire型。tri型变量则用来表示多驱动器驱动的网络型数据reg:寄存器数据类型
7、的关键字是,通过赋值语句可以改变寄存器储存的值,其作用与改变触发器储存的值相当。reg类型数据的缺省初始值为不定值x,常用来表示用于“always”模块内的指定信号,常代表触发器,在“always”块内被赋值的每一个信号都必须定义成reg,reg型只表示被定义的信号将用在“always”块内memory型数据是通过扩展reg型数据的地址范围来生成的。reg[7:0]mema[255:0];这个例子定义了一个名为mema的存储器,该存储器有256个8位的存储器。该存储器的地址范围是0到255。如果想对memory中的存储单元进行读写操作,必须指定该单元在存储器中的地址。下面
8、的写法是正确的。mema[3]=0;//给memory中的第3个存储单元赋值为0。模块中最重要的部分是逻辑功能定义部分。有三种方法可在模块中产生逻辑。