- 3
- 0
- 约4.38千字
- 约 29页
- 2018-03-09 发布于河南
- 举报
HDL语法与要素
第6章 Verilog HDL语法与要素 6.1 Verilog语言要素 Verilog 程序由符号流构成,符号包括 空白符(White space) 注释(Comments) 操作符(Operators) 数字(Numbers) 字符串(Strings) 标识符(Identifiers) 关键字(Keywords)等 ◆ 整数 ◆ 实数 ◆ 字符串 整数(integer) 整数按如下方式书写: +/-size basevalue 即 +/-位宽进制数字 size 为对应二进制数的宽度;base为进制;value是基于进制的数字序列。 进制有如下4种表示形式: ◆ 二进制(b或B) ◆ 十进制(d或D或缺省) ◆ 十六进制(h或H) ◆ 八进制(o或O) 整数(integer) 字符串(Strings) 字符串是双引号内的字符序列。 字符串不能分成多行书写。例如: INTERNAL ERROR 字符串的作用主要是用于仿真时,显示一些相关的信息,或者指定显示的格式。 6.3 数据类型 Verilog有下面四种基本的逻辑状态。 ◆ 0:低电平、逻辑0或逻辑非 ◆ 1:高电平、逻辑1或“真” ◆ x或X:不确定或未知的逻辑状态 ◆ z或Z:高阻态 Verilog中的所有数据类型都在上述4类逻辑状态中取值,其中x和z都不区分大小写,也就是说,值0x1z与值0X1Z是等同的。 6.5 向量 1.标量与向量 宽度为1位的变量称为标量,如果在变量声明中没有指定位宽,则默认为标量(1位)。举例如下: wire a; //a为标量 reg clk; //clk为标量reg型变量 线宽大于1位的变量(包括net型和variable型)称为向量(vector)。向量的宽度用下面的形式定义: [msb : lsb] 比如: wire[3:0] bus; //4位的总线 2.位选择和域选择 在表达式中可任意选中向量中的一位或相邻几位,分别称为位选择和域选择,例如: A=mybyte[6]; //位选择 B=mybyte[5:2]; //域选择 再比如: reg[7:0] a,b; reg[3:0] c; reg d; d=a[7]b[7]; //位选择 c=a[7:4]+b[3:0]; //域选择 6.6 运算符(Operators) 1.算术运算符(Arithmetic operators) 常用的算术运算符包括: + 加 - 减 * 乘 / 除 % 求模 2.逻辑运算符(Logical operators) 逻辑与 || 逻辑或 ! 逻辑非 3.位运算符(Bitwise operators) 位运算,即将两个操作数按对应位分别进行逻辑运算。 ~ 按位取反 按位与 | 按位或 ^ 按位异或 ^~,~^ 按位同或(符号^~与~^是等价的) 4.关系运算符(Relational operators) 小于 = 小于或等于 大于 = 大于或等于 5.等式运算符(Equality Operators) == 等于 != 不等于 === 全等 !== 不全等 6.缩位运算符(Reduction operators) 与 ~ 与非 | 或 ~| 或非 ^ 异或 ^~,~^ 同或 7.移位运算符(shift operators) 右移 左移 8.条件运算符(conditional operators) ?: 三目运算符,其定义方式如下: signal=condition?true_expression:false_expression; 即:信号=条件?表达式1:表达式2; 当条件成立时,信号取表达式1的值,反之取表达式2的值。 9.位拼接运算符(concatenation operators) { } 该运算符将两个或多个信号的某些位拼接起来。使用如下: {信号1的某几位,信号2的某几位,……,信号n的某几位} 习 题 * * 主要内容 6.1 Verilog语言要素 6.2 常量 6.3 数据类型 6.4 参数 6.5 向量 6.6 运算符 空白符和注释 空白符(White space) 空白符包括:空格、tab、换行和换页。空白符使代码错落有致,阅读起来更方便。在综合时空白符被忽略。 注释(Comment) ◆ 单行注释:以“//”开始到本行结束,不允许续行 ◆ 多行注释:多行注释以“/*”开始,到“*/”结束 标识符(Identifiers) 标识符(Iden
原创力文档

文档评论(0)