1、第六章 Verilog的数据类型及逻辑系统 学习 Verilog逻辑值系统 学习 Verilog中不同类的数据类型 理解每种数据类型的用途及用法 数据类型说明的语法学习内容:Verilog采用的四值逻辑系统0, Low, False, Logic Low, Ground,VSS, Negative Assertion1, High, True, Logic High, Power,VDD, VCC, Positive AssertionX Unknown: Occurs at Logical Which Cannot be Resolved ConflictHiZ, High Impedanc
2、e, Tri- Stated,Disabled Driver (Unknown)主要数据类型Verilog主要有三类 (class)数据类型: net (线网) : 表示器件之间的物理连接 register (寄存器) :表示抽象存储元件 parameters(参数 ) : 运行时的常数 (run-time constants)net(线网)net需要被持续的驱动,驱动它的可以是门和模块。当 net驱动器的值发生变化时, Verilog自动的将新值传送到 net上。在例子中,线网 out由 or门驱动。当 or门的输入信号置位时将传输到线网 net上。net类的类型(线网) 有多种 net类型
3、用于设计 (design-specific)建模和工艺(technology-specific)建模 没有声明的 net的缺省类型为 1 位 (标量 )wire类型。但这个缺省类型可由下面的编译指导改变:default_nettype net类 型 功 能wire, trisupply1, supply0wor, triorwand, triandtriregtri1, tri0标 准内部 连 接 线 (缺省 )电 源和地多 驱动 源 线 或多 驱动 源 线 与能保存 电 荷的 net无 驱动时 上拉 /下拉综合编译器不支持的 net类型net类的类型(线网) wire类型是最常用的类型,只有
4、连接功能。 wire和 tri类型有相同的功能。用户可根据需要将线网定义为 wire或 tri以提高可读性。例如,可以用 tri类型表示一个 net有多个驱动源。或者将一个 net声明为 tri以指示这个 net可以是高阻态 Z(hign-impedance)。可推广至 wand和triand、 wor和 trior wand、 wor有线逻辑功能;与 wire的区别见下页的表。 trireg类型很象 wire类型,但 trireg类型在没有驱动时保持以前的值。这个值的强度随时间减弱。 修改 net缺省类型的编译指导:default_nettype nettype不能是 supply1和 su
5、pply0。net类在发生逻辑冲突时的决断 Verilog有预定义的决断函数 支持与工艺无关的逻辑冲突决断 wire-and用于集电极开路电路 wire-or用于射极耦合电路寄存器类 ( register) 寄存器类型在赋新值以前保持原值 寄存器类型大量应用于行为模型描述及激励描述。在下面的例子中,reg_a、 reg_b、 reg_sel用于施加激励给 2:1多路器。 用行为描述结构给寄存器类型赋值。给 reg类型赋值是在过程块中。寄存器类的类型 寄存器类有四种数据类型寄存器 类 型 功能reg 可定 义 的无符号整数 变 量,可以是 标 量 (1位 )或矢量,是最常用的寄存器 类 型int
6、eger 32位有符号整数 变 量,算 术 操作 产 生二 进 制 补码 形式的结 果。通常用作不会由硬件 实现 的的数据 处 理。real 双精度的 带 符号浮点 变 量,用法与 integer相同。time 64位无符号整数 变 量,用于仿真 时间 的保存与 处 理realtime 与 real内容一致,但可以用作 实 数仿真 时间 的保存与处 理 不要混淆寄存器数据类型与结构级存储元件,如 udp_dffVerilog中 net和 register声明语法 net声明range delay , net_name;net_type: net类型range: 矢量范围,以 MSB: LSB格式delay: 定义与 net相关的延时net_name: net名称,一次可定义多个 net, 用逗号分开。 寄存器声明range , reg_name;reg_type:寄存器类型range: 矢量范围,以 MSB: LSB格式。只对 reg类型有效reg_name :寄存器名称,一次可定义多个寄存器,用逗号分开