天天看點

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.

繼續閱讀