verilog之用户定义原语UDP详细解释

一、UDP的含义

         用户定义的原语是从英语User Defined Primitives 直接翻译过来的,简称UDP。利用UDP用户可以定义自己设计的基本逻辑元件的功能。也就是说,可以利用UDP来定义自己特色的用于仿真的基本逻辑元件模块并建立相应的原语库。这样就可以与调用verilog HDL基本逻辑元件的方法来调用原语库中相应的元件模块,并进行仿真。由于UDP是由查找表的方法来确定其输出的,用仿真器进行仿真时,对他的处理速度较对一般的用户编写的模块快的多。与一般的用户模块比较,UDP更为基本,它只能描述简单的能用真值表表示的组合或时序逻辑。UDP模块的结构与一般模块类似,只是不用module而改用primitive关键词开始,不用endmodule而改用endprimitive关键词结束。在verilog语法中,还规定了UDP的形式定义以及与一般模块的异同点,下面将详细介绍。

二、UDP的语法

      primitive  元件名(输出端口名,输入端口名1,输入端口名2,输入端口名3,...... ,输入端口名n)

                          output  输出端口名;

                           input 输入端口名1,输入端口名2,输入端口名3,...... ,输入端口名n;

                           reg  输出端口名;

                           initial

                            begin

                            输出端口寄存器或时序逻辑内部寄存器赋初值(0,1或X);

                            end

                            table

                             //输入1    输入2    输入3    输入4    。。。    输入n :输出

                              逻辑值    逻辑值   逻辑值   逻辑值   。。。:逻辑值   ;

                              逻辑值    逻辑值   逻辑值   逻辑值   。。。:逻辑值   ;

                              逻辑值    逻辑值   逻辑值   逻辑值   。。。:逻辑值   ;

                              逻辑值    逻辑值   逻辑值   逻辑值   。。。:逻辑值   ;

                              endtable

endprimitive

三、注意事项

(1)UDP只能有一个输出端,而且必定是端口说明列表的第一项。

(2)UDP可以有多个输入端,最多允许有10个输入端。

(3)UDP所有的端口变量必须是标量,也就是必须是1位位宽的。

(4)在UDP的真值表中,只允许出现0,1,x的3中逻辑值,高阻态z不允许出现;

(5)只有输出端才可以被定义为寄存器类型变量。

(6)initial语句用于为时序电路内部寄存器赋初值,只允许0,1,X的3种逻辑值,默认值为X。

 

 

你可能感兴趣的:(笔记,verilog,基础知识)