net类的类型(线网) wire类型是最常用的类型,只有连接功能。 wire和tri类型有相同的功能。用户可根据需要将线网定义为wire或tri以提高可 读性。例如,可以用tri类型表示一个ne有多个驱动源。或者将一个ne声明为 tri以指示这个ne可以是高阻态Z(hign- impedance)。可推广至wand和 triand、 wor和 trior wand、wor有线逻辑功能;与wire的区别见下页的表。 trireg类型很象wre类型,但 trireg类型在没有驱动时保持以前的值。这个值的 强度随时间减弱 修改net缺省类型的编译指导: default nettype <nettype> neotype不能是 supply1和 Supply0
net类的类型(线网) • wire类型是最常用的类型,只有连接功能。 • 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> nettype不能是supply1和supply0
net类在发生逻辑冲突时的决断 Verilog有预定义的决断函数 支持与工艺无关的逻辑冲突决断 wire-and用于集电极开路电路 b wire-or用于射极耦合电路 Wire/Tri Wand /Triand Wor/Trior 0 z 0 1 x z 00xx0 00000 x 0 xx xXX x0 xx X z0 1x z X Z
net类在发生逻辑冲突时的决断 • Verilog有预定义的决断函数 • 支持与工艺无关的逻辑冲突决断 – wire-and用于集电极开路电路 – wire-or用于射极耦合电路
寄存器类( register) 寄存器类型在赋新值以前保持原值 寄存器类型大量应用于行为模型描述及激励描述。在下面的例子中 rega、regb、 reg sell用于施加激励给2:1多路器。 用行为描述结构给寄存器类型赋值。给reg类型赋值是在过程块中。 reg_a sel g sel out reg_ b b1
寄存器类 (register) • 寄存器类型在赋新值以前保持原值 • 寄存器类型大量应用于行为模型描述及激励描述。在下面的例子中, reg_a、reg_b、reg_sel用于施加激励给2:1多路器。 • 用行为描述结构给寄存器类型赋值。给reg类型赋值是在过程块中
寄存器类的类型 寄存器类有四种数据类型 寄存器类型功能 reg 可定义的无符号整数变量,可以是标量(1位)或矢量,是 最常用的寄存器类型 nteger32位有符号整数变量,算术操作产生二进制补码形式的 结果。通常用作不会由硬件实现的的数据处理。 rea 双精度的带符号浮点变量,用法与 Integer相同。 time 64位无符号整数变量,用于仿真时间的保存与处理 realtime与real内容一致,但可以用作实数仿真时间的保存与 处理 ·不要混淆寄存器数据类型与结构级存储元件,如 udp dff
寄存器类的类型 • 寄存器类有四种数据类型 寄存器类型 功能 reg 可定义的无符号整数变量,可以是标量(1位)或矢量,是 最常用的寄存器类型 integer 32位有符号整数变量,算术操作产生二进制补码形式的 结果。通常用作不会由硬件实现的的数据处理。 real 双精度的带符号浮点变量,用法与integer相同。 time 64位无符号整数变量,用于仿真时间的保存与处理 realtime 与real内容一致,但可以用作实数仿真时间的保存与 处理 • 不要混淆寄存器数据类型与结构级存储元件,如udp_dff
Verilog中net和 register声明语法 net声明 <net type> [range] [delay <net name>[, net name]i net type:net类型 range 矢量范围,以[MsB:工sB]格式 delay 定义与net相关的延时 net name:net名称,一次可定义多个net,用逗号分开。 寄存器声明 <reg type> [range] <reg name>[, reg name]i reg type:寄存器类型 range: 矢量范围,以[MsB:LSB]格式。只对xeg类型有效 reg name:寄存器名称,一次可定义多个寄存器,用逗号分开
Verilog中net和register声明语法 • net声明 <net_type> [range] [delay] <net_name>[, net_name]; net_type: net类型 range: 矢量范围,以[MSB:LSB]格式 delay: 定义与net相关的延时 net_name: net名称,一次可定义多个net, 用逗号分开。 • 寄存器声明 <reg_type> [range] <reg_name>[, reg_name]; reg_type:寄存器类型 range: 矢量范围,以[MSB:LSB]格式。只对reg类型有效 reg_name :寄存器名称,一次可定义多个寄存器,用逗号分开