第12章.用户自定义原语教学课件PPT.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《第12章.用户自定义原语教学课件PPT.ppt》由会员分享,可在线阅读,更多相关《第12章.用户自定义原语教学课件PPT.ppt(20页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、完整版教学课件完整版教学课件第12章.用户自定义原语EDA技术与Verilog HDL语言第十二章 用户自定义原语Page 3本章学习目标本章学习目标 理解编写理解编写UDP的规则,明白的规则,明白UDP的各个组成部分。的各个组成部分。 学会编写表示时序和表示组合逻辑的两种不同的学会编写表示时序和表示组合逻辑的两种不同的UDP。 理解理解UDP的调用(实例引用)方法。的调用(实例引用)方法。 为使为使UDP的行为表达得更加简洁和易懂,应记住定义的行为表达得更加简洁和易懂,应记住定义UDP的各种缩写符号。的各种缩写符号。 阐述编写阐述编写UDP的指导原则。的指导原则。Page 412.1 UDP
2、的基础知识的基础知识 Verilog语言提供了一整套标准的原语,例如and,nand,or,nor和not等,它们是该语言的一部分,即通常所说的内置原语。然而在设计过程中,设计者有时希望使用自己编写的原语。Verilog语言具有定义这种自定义原语的能力,这种原语就是用户自定义原语(User-Defined Primitive,UDP)。 UDP是自成体系的,在UDP中不能调用其他模块或者其他原语。UDP的调用方式和门级原语的调用方式完全相同。 UDP的类型有两种: 1表示组合逻辑的UDP。输出仅取决于输入信号的组合逻辑。四选一的多路选择器是典型的表示组合逻辑的UDP的例子; 2表示时序逻辑的U
3、DP。下一个输出值不但取决于当前的输入值,还取决于当前的内部状态。锁存器和触发器是两个典型的表示时序逻辑的UDP的例子。 UDP定义的组成部分和编写规则。 Page 512.1.1 UDP定义的组成定义的组成UDP的定义以关键字primitive作为开始,然后指定原语名称、输出端口和输入端口。在端口声明部分将端口声明为output或者input。 在表示时序的UDP中,输出端口必须被声明为reg类型,而且还需要有一条可选的initial语句,用于初始化时序逻辑UDP的输出端口。 UDP状态表是UDP中最重要的部分,它以关键字table开始, 以关键字endtable结束。状态表定义了如何根据输
4、入状态和当前状态得到输出值,该表也是一个查找表,类似于逻辑真值表。 原语定义以关键字endprimitive结束。 Page 612.1.2 UDP的定义规则的定义规则 UDP定义必须遵循以下几条规则: 1UDP只能采用标量(即1位)输入端口,允许有多个输入端口。 2UDP只能允许一个标量(即1位)输出端口。输出端口必须出现在端口列表的第一个位置,绝对不允许有多个输出端口。 3在声明部分,输出端口以关键字output声明。因为表示时序逻辑的UDP需要保存状态,所以其输出端口必须声明为reg类型。 4输入端口以关键字input声明。 5表示时序逻辑的UDP中的状态可以用initial语句初始化。
5、该语句是可选的,它将一个1位的值赋给reg类型的输出。 6状态表的项可以包含0,1或x。UDP不能处理z值。传送给UDP的z值被当做x值。 7UDP与模块同级,因而UDP不能在模块内部定义,但可以在模块内部调用(实例引用)。UDP的调用方法与门级原语的调用方法完全相同。 8UDP不支持inout端口。Page 712.2.1 表示组合逻辑的表示组合逻辑的UDP的定义的定义 状态表是UDP定义中最重要的部分。用表示与门的UDP模型来解释状态表最容易使读者理解。下面让我们不使用Verilog语言所提供的与门,自己来定义一个表示与门的原语,并将其命名为udp_and。 本例的定义中没有将输出声明为r
6、eg,并且没有initial语句。注意,这里缺少的两部分描述仅用于表示时序逻辑UDP的定义,后面章节将会阐述。 Page 812.2.2 状态表项状态表项 仔细观察一下udp_and的状态表。表示组合逻辑的UDP状态表中的每一行的语法形式如下: 关于状态表项需要注意以下几点: 1状态表每一行中状态表每一行中 的顺序必须与它们在端口列表中的出现顺序的顺序必须与它们在端口列表中的出现顺序相同。相同。设计UDP时必须牢记这一点,这一点非常重要。设计者经常搞错输入的顺序,因而得到错误的输出值。 2输入和输出以“ : ”分隔。 3状态表的每一行以“ ; ”结束。 4能够产生确定输出值的所有输入项组合都必
7、须在状态表中列出。否则,如果在状态表各行中找不到与这组输入对应的项,相应的输出就是x。商业模型中经常使用默认输出值x。注意,udp_and的状态表不处理a或b的值为x的情况。 Page 912.2.2 状态表项(续)状态表项(续) 如果a = x并且b = 0,Verilog语言提供的与门的输出为0,但是udp_and的输出为x,这是因为相应的输入组合在定义udp_and的状态表的行项中无法找到。这也就是说,状态表的说明不完整。 下面的例子中自定义的表示或门的UDP完整地说明了所有可能的输入组合情况。Page 1012.2.3 无关项的缩写表示无关项的缩写表示 上例中,当a和b两个输入的其中一
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 12 用户 自定义 教学 课件 PPT
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内