FPGA 学习小组
直播中

alexdos

6年用户 804经验值
擅长:可编程逻辑 电源/新能源 嵌入式技术 模拟技术
私信 关注

【FPGA学习】Verilog HDL有哪几种值集合?怎么写?

值集合
Verilog HDL 有下列 4 种基本的值:
• 0:逻辑 0 或“假”;
• 1:逻辑 1 或“真”;
• x:未知;
• z:高阻。
这 4 种值的解释都内置于语言中。如一个为 z 的值总是意味着高阻抗,一个为 0 的值通常是指逻辑 0。在门的输入或一个表达式中的为“z”的值通常解释成“x”。此外,x 值和 z 值都是不分大小写的。也就是说,值 0x1z 与值 0X1Z 相同。Verilog HDL 中的常量是由以上这四类基本值组成的。
Verilog HDL 中有 3 类常量:整型、实数型和字符串型。下划线符号(_)可以随意用在整数或实数中,它们就数量本身没有意义。它们能用来提高易读性;惟一的限制是下划线符号不能用作为首字符。
1.整型数
整型数可以按如下两种方式书写:简单的十进制数格式和基数格式。
简单的十进制形式的整数定义为带有一个可选的“+”(一元)或“-”(一元)操作符的
数字序列。下面是这种简易十进制形式整数的例子:
  1. 32;// 十进制数 32
  2. -15;// 十进制数-15

基数格式的格式为:
  1. [size ] 'base value

size 定义以位计的常量的位长,base 为 o 或 O(表示八进制)、b 或 B(表示二进制)、d或 D(表示十进制)、h 或 H(表示十六进制),value 是基于 base 的值的数字序列。值 x 和 z以及十六进制中的 a 到 f 不区分大小写。下面是一些具体实例:
  1. 5'O37;// 5 位八进制数
  2. 4'D2;//4 位十进制数
  3. 4'B1x_01;// 4 位二进制数
  4. 7'Hx ;//7 位 x(扩展的 x),即 xxxxxxx
  5. 4'hZ;// 4 位 z(扩展的 z) , 即 zzzz
  6. 4'd-4;//非法,数值不能为负
  7. 8'h 2 A;//在位长和字符之间,以及基数和数值之间允许出现空格
  8. 3' b001;//非法: `和基数 b 之间不允许出现空格
  9. (2+3)'b10;// 非法:位长不能够为表达式

2.实数
实数可以用下列两种形式定义:
• 十进制计数法,例如 2.0、5.678、1、1572.12;
• 科学计数法,例如 23_5.1e2(其值为 23510.0,忽略下划线)、3.6E2(360.0)。
3.字符串
字符串是双引号内的字符序列。字符串不能分成多行书写,例如:
  1. "INTERNAL ERROR"
  2. " REACHED->HERE "

用 8 位 ASCII 值表示的字符可看作是无符号整数。因此字符串是 8 位 ASCII 值的序列。为存储字符串“INTERNAL ERROR”,变量需要 8 * 1 4 位。
  1. reg [1 : 8*14] Message;
  2. . . .
  3. Message = "INTERNAL ERROR"

反斜线()用于对确定的特殊字符转义。
  1. n 换行符
  2. t 制表符
  3. \ 字符本身
  4. " 字符"
  5. 206 八进制数 2 0 6 对应的字符

更多回帖

发帖
×
20
完善资料,
赚取积分