加载中…
个人资料
梦在远方
梦在远方
  • 博客等级:
  • 博客积分:0
  • 博客访问:445
  • 关注人气:1
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

verilog数据类型运算符和表达式

(2012-09-24 20:57:37)
标签:

数据名

数据类型

寄存器

常量

表达式

分类: FPGA学习

数据类型

常量的数据类型

1、二进制b八进制o十进制d十六进制h

<位宽> <进制> <数字>;

<进制> <数字>;//缺省位宽为32位

<数字>;//缺省进制十进制

8'b10101000

12'o2547

8'ha8

168

'b1010

2、x和z值

x为不确定值z代表高阻值

z可以写成?

3、parameter常量的定义

格式

parameter 参数名1=表达式,参数名2=表达式,。。。

用parameter定义一个标识符代表一个常量称为符号常量。。。。。类似于c语言中的宏定义。

常用数据类型

1、连线类型

格式

wire 数据名1,数据名2,。。。//位宽为1位

wire[n:1] 数据名1,数据名2,。。。。

[n:1]代表数据的位宽

连线类型不能出现在过程语句中(initial或always)

2、寄存器类型

寄存器类型变量反映具有状态保持功能的变量,在新的赋值语句执行以前,寄存器类型变量的值一直保持原值。

在always块中,被赋值的信号都必须定义为寄存器类型。

如果仿真时未进行赋值,则仿真工具认为其不确定

格式

reg 数据名1,数据名2.。。。

多位寄存器类型

reg[n-1:0] 数据名1,数据名2,。。。

reg[n:1] 数据名1,数据名2,。。。

运算符和表达式

1、算术运算符

+ - * / % **(平方运算符)

2、关系运算符

 == 等于

!= 不等于

<

>

<=

>=

===等于(包含高阻态z和不确定状态x)

!== 不等于(包含高阻态z和不确定状态x)

声明关系假返回0,真返回1,不确定返回x

3、逻辑运算符

运算结果都是一位逻辑值

 &&

||

4、位运算符

按位进行逻辑运算

1)取反 ~

2)与&

3)或|

4)异或^

5)同或^~

5、缩减运算符

单目运算符包括与&

与非~&

或|

或非~|

异或^

同或~^

缩减运算符是对单个操作数进行逻辑运算,最后结果为一位的二进制数。

reg [3:0] a;

b= &a;//等效于b=((a[0]&a[1])&a[2])&a[3];

6、移位运算符

>>右移

<<左移

7、条件运算符

?:是三目运算符

格式

sigal = condition ?true_expression:false_expression;

类似c中的表达式

8、位连接运算符

可以将多个信号的某些位连接起来进行运算操作,其符号为{}

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有