《VerilogHDL6用户定义的原语.ppt》由会员分享,可在线阅读,更多相关《VerilogHDL6用户定义的原语.ppt(11页珍藏版)》请在金锄头文库上搜索。
1、第6章 用户定义的原语 在前一章中,我们介绍了在前一章中,我们介绍了Verilog HDL提供的内置提供的内置基本门。本章讲述基本门。本章讲述Verilog HDL指定用户定义原语指定用户定义原语UDP的能力。的能力。 UDP的实例语句与基本门的实例语句完全相同,即的实例语句与基本门的实例语句完全相同,即UDP实例语句的语法与基本门的实例语句语法一致。实例语句的语法与基本门的实例语句语法一致。6.1 UDP的定义的定义使用具有如下语法的使用具有如下语法的UDP说明定义说明定义UDP。 UDP的定义不依赖于模块定义,因此出现在模块定义以外。也可以的定义不依赖于模块定义,因此出现在模块定义以外。也
2、可以在单独的文本文件中定义在单独的文本文件中定义UDP。UDP只能有一个输出和只能有一个输出和一个或多个输入。第一一个或多个输入。第一个端口必须是输出端口。个端口必须是输出端口。输出可以取值输出可以取值0、1或或x (不允许取不允许取z值值)。输入中出。输入中出现值现值z以以x处理。处理。UDP的行的行为以表的形式描述。为以表的形式描述。在在UDP中可以描述下面两类行为:中可以描述下面两类行为:1) 组合电路组合电路2) 时序电路时序电路(边沿触发和电平触发边沿触发和电平触发)6.2 组合电路组合电路UDP 在组合电路在组合电路UDP中,表规定了不同的输入组合和相对应的输出值。中,表规定了不同
3、的输入组合和相对应的输出值。没有指定的任意组合输出为没有指定的任意组合输出为x。下面以。下面以2-1多路选择器为例加以说明。多路选择器为例加以说明。字符字符?代表不必代表不必关心相应变量的关心相应变量的具体值,即它可具体值,即它可以是以是0、1或或x。在多路选择器的表中没有在多路选择器的表中没有输入组合输入组合01x项项(还有其它还有其它一些项一些项);在这种情下,输;在这种情下,输出的缺省值为出的缺省值为x(对其它未对其它未定义的项也是如此定义的项也是如此)。图图6-1为使用为使用2-1多路选择器原语组成的多路选择器原语组成的4-1多路选择器的示例。多路选择器的示例。 如上例所示,在如上例所
4、示,在UDP实例中,总共可以指定实例中,总共可以指定2个时延,这是由于个时延,这是由于UDP的输出可以取值的输出可以取值0、1或或x(无截止时延无截止时延)。6.3 时序电路时序电路UDP 在时序电路在时序电路UDP中,使用中,使用1位寄存器描述内部状态。该寄存器的值位寄存器描述内部状态。该寄存器的值是时序电路是时序电路UDP的输出值。共有两种不同类型的时序电路的输出值。共有两种不同类型的时序电路UDP:一种模:一种模拟电平触发行为;另一种模拟边沿触发行为。时序电路拟电平触发行为;另一种模拟边沿触发行为。时序电路UDP使用寄存器使用寄存器当前值和输入值决定寄存器的下一状态当前值和输入值决定寄存
5、器的下一状态(和后继的输出和后继的输出)。6.3.1 初始化状态寄存器初始化状态寄存器 时序电路时序电路UDP的状态初始化可以使用带有一条过程赋值语句的初始的状态初始化可以使用带有一条过程赋值语句的初始化语句实现。形式如下:化语句实现。形式如下:初始化语句在初始化语句在UDP定义中出现。定义中出现。6.3.2 电平触发的时序电路电平触发的时序电路UDP 下面是下面是D锁存器建模的电平触发的时序电路锁存器建模的电平触发的时序电路UDP示例。只要时钟示例。只要时钟为低电平为低电平0,数据就从输入传递到输出;否则输出值被锁存。,数据就从输入传递到输出;否则输出值被锁存。表示没有变化表示没有变化注意注
6、意UDP的状的状态存储在寄存态存储在寄存器器D中。中。6.3.3 边沿触发的时序电路边沿触发的时序电路UDP 下例用边沿触发时序电路下例用边沿触发时序电路UDP为为D边沿触发触发器建模。初始化边沿触发触发器建模。初始化语句用于初始化触发器的状态。语句用于初始化触发器的状态。0转化到转化到10转化到转化到X?(0 X 1)转化到转化到0任意转换任意转换对任意未定义对任意未定义的转换,输出的转换,输出缺省为缺省为x。 假定假定D_Edge_FF为为UDP定义,它现在就能够象基本门一样在定义,它现在就能够象基本门一样在模块中使用,如下面的模块中使用,如下面的4位寄存器所示。位寄存器所示。6.3.4
7、边沿触发和电平触发的混合行为边沿触发和电平触发的混合行为 在同一个表中能够混合电平触发和边沿触发项。在这种情况下,边在同一个表中能够混合电平触发和边沿触发项。在这种情况下,边沿变化在电平触发之前处理,即电平触发项覆盖边沿触发项。沿变化在电平触发之前处理,即电平触发项覆盖边沿触发项。6.4 另一实例另一实例 下面是下面是3位表决电路的位表决电路的U D P描述。如果输入向量中存在描述。如果输入向量中存在2个或更个或更多的多的1,则输出为,则输出为1。6.5 表项汇总表项汇总出于完整性考虑,下表列出了所有能够用于出于完整性考虑,下表列出了所有能够用于U D P原语中表项的可能值。原语中表项的可能值。