verilog的四种逻辑状态
状态 | 含义 |
---|---|
0 | 低电平,逻辑0 |
1 | 高电平,逻辑1 |
x或X | 不确定或未知的逻辑状态 |
z或Z | 高阻态 |
其中X如:一个非门有两个输入时
Z如:存储器的片选信号为未被选中时
整数及其表示
+/- <size>’<base_format><number>
数制 | 基数符号 | 合法表示符 |
---|---|---|
二进制 | b或B | 0,1,x,X,z,Z |
十六进制 | h或H | 0-f,A-F,x,X,z,Z |
八进制 | o或O | |
十进制 | d或D |
size一定要写!
例:
8’b10001101
8’ha6
4’b1x_01 //4位二进制数1x01,x为不确定位,利用_来分隔数字增强可读性
错误表示:
4’d-4 //应为-4’d4
3’ b001 //'和b之间不能有空格
(4+4)'b11 //位宽不能是表达式
实数及其表示
硬件设计语言中无实数。
实数可以用于测试仿真。
对实数采用以下两种表示方式可以将实数转化为整数:
定点表示:约定小数点位置就在那里
浮点表示:将小数点的位置用二进制数表示出来
- 十进制表示法
如3.0,4.54等,但不能出现.5,.两边必须都有数。 - 科学计数法
564.2e2== 564.2x100==56420.0
数据类型
连线型
以电流指标来衡量电路的能力,根据对电流的驱动强度不同,连线类型的数据分为如下等级:
标记符 | 名称 | 强弱程度 |
---|---|---|
supply | 电源级驱动 | 最强 |
strong | 强驱动 | l |
pull | 上拉级驱动 | l |
large | 大容性 | l |
weak | 弱驱动 | l |
medium | 中性驱动 | l |
small | 小容性 | ↓ |
highz | 高容性(高阻状态) | 最弱 |
连线型数据类型主要有:
- wire:只有0、1、不定状态三种类型
- tri:三态,0、1、高阻状态、不定状态
wire/tri | 0 | 1 | x | z |
---|---|---|---|---|
0 | 0 | x | x | 0 |
1 | x | 1 | x | 1 |
x | x | x | x | x |
z | 0 | 1 | x | z |
连线型变量的声明:
<连线型数据类型><驱动强度><信号线位宽(默认1根线)><延迟><信号列表>
如:
tri [7:0] tribus;
trieg(large) storeline;
寄存器型
组合电路:只有连线型变量
时序电路:有寄存器型变量
reg型:
reg a;(默认位宽为1,1根线)
reg[3:0] b; //代表有4根信号线的reg型变量b
reg[8:1]c,d,e; //定义了三个名称分别为c,d,e的8位reg型变量
寄存器型变量的声明:
reg<位宽><信号列表>
如:
reg [7:0] regb;
存储器型(RAM)
存储器型变量的声明:
reg<range1><存储器名称><range2>
range1:数据位宽
range2:存储深度,即地址范围
如:
reg[7:0] mem1[255:0]; //定义了一个数据位宽为8位,存储深度为256的存储器mem1
抽象数据类型
包括整型(integer),时间型(time),实型(real),参数型(parameter)。(是保留关键字)