Verilog HDL语言的用户自定义元件

Verilog HDL语言提供了一种扩展基元的方法,允许用户自己定义元件(User Defined Primitives,UDP)。通过UDP,可以把一块组合逻辑电路或时序逻辑电路封装在一个UDP内,并把这个UDP作为一个基本门元件来使用。需要注意的是,UDP是不能综合的,只能用来仿真

1、定义UDP的语法:

primitive 元件名(输出端口名, 输入端口名1, 输入端口名2,…)
    output 输出端口名;
    input 输入端口名1, 输入端口名2,…;
    reg 输出端口名;

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

    table
    // 输入1    输入2    …    :    输出
    逻辑值       逻辑值        :  逻辑值;
    逻辑值       逻辑值        :  逻辑值; 
    …    …    …    …;
    endtable
endprimitive

2、UDP的调用

UDP名 例化名 (连接端口1信号名, 连接端口2信号名, …, 连接端口n信号名);

3、注意事项:

a. UDP只能有一个输出端,而且必须是端口说明列表的第一项。

b. UDP可以有多个输入端,最多允许10个输入端。

c. UDP所有端口变量必须是标量,也就是必须是1位的。

d. 在UDP的真值表项中,只允许出现0、1、X三种逻辑值,高阻态Z是不允许的。

e. initial语句用于为时序电路内部寄存器赋初值时,只允许赋0、1、X的三种逻辑值,默认值为X.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值