19种数据类型

##### 1. reg、memory

- reg格式

  ```verilog
  reg [n-1:0] 数据名1, ... ,数据名i;	// 共i个数据，每个数据n位
  reg [n:1] 数据名1, ... ,数据名i;	// 共i个数据，每个数据n位
  ```

- memory格式

  ```verilog
  reg [n-1:0] 存储器名[m-1:0];
  reg [n:1] 存储器名[m:1];
  ```

  

##### 2. wire

常用来表示单门驱动或连续赋值语句驱动的网络型数据

- 真值的规则

  全0为0，全1为1，0、1混合为x，有x为x，有z则同另一个

- 格式

  ```verilog
  wire [n-1:0] 数据名1, ... ,数据名i;	// 共i条总线，每条总线n条线路
  wire [n:1] 数据名1, ... ,数据名i;	// 共i条总线，每条总线n条线路
  ```

##### 3. integer

- 格式

  <位宽><进制><数字>：完整形式

  <进制><数字>：位宽由机器系统决定，至少32位

  <进制><数字>：进制默认为10进制

- 进制的种类

  2进制(b/B)，8进制(o/O)，10进制(d/D)，16进制(h/H)

- 数字的表示

  x：不定值

  z、?：高阻值

  负数：位宽前加一个减号

  _：分割数字以提高可读性

##### 4. parameter

- 格式

  `parameter 参数名1=表达式, 参数名2=表达式, ...;`

- 改变参数的方法

  使用`#()`或`defparam`

##### 5. large
##### 6. medium
##### 7. scalared
##### 8. time
##### 9. small
##### 10. tri

常用来表示多驱动器驱动的网络型数据

- 真值的规则

  全0为0，全1为1，0、1混合为x，有x为x，有z则同另一个

##### 11. trio
##### 12. tril
##### 13. triand
##### 14. trior
##### 15. trireg
##### 16. vectored
##### 17. wand
##### 18. wor