在MAX+PLUS II 和 Quartus II中調用LPM庫函數非常方便,用戶既可以在圖形輸入法中直接調用,也可以在HDL源文件中調用。
MAX+PLUS II 的LPM庫所在的目錄是/maxplus2/max2lib/mega_lpm。
表2-5LPM庫單元列表
模塊分類 | 宏單元 | 簡要說明 |
門單元模塊 | lpm_and | 參數化與門 |
lpm_bustri | 參數化三態緩衝器 | |
lpm_clshift | 參數化組合邏輯移位器 | |
lpm_constant | 參數化常數產生器 | |
lpm_decode | 參數化譯碼器 | |
lpm_inv | 參數化反向器 | |
lpm_mux | 參數化多路選擇器 | |
busmux | 參數化總線選擇器 | |
mux | 多路選擇器 | |
lpm_or | 參數化或門 | |
lpm_xor | 參數化異或門 | |
算術運算模塊 | lpm_abs | 參數化絕對值運算 |
lpm_add_sub | 參數化的加/減法器 | |
lpm_compare | 參數化比較器 | |
lpm_counter | 參數化計數器 | |
lpm_mult | 參數化乘法器 | |
存儲器模塊 | lpm_ff | 參數化D觸發器 |
lpm_latch | 參數化鎖存器 | |
lpm_ram_dq | 輸入輸出分開的參數化RAM | |
lpm_ram_io | 輸入輸出複用的參數化RAM | |
lpm_rom | 參數化ROM | |
lpm_shitreg | 參數化移位寄存器 | |
csfifo | 參數化先進先出隊列 | |
csdpram | 參數化雙口RAM | |
其它功能模塊 | pll | 參數化鎖相環電路 |
ntsc< | NTSC圖象控制信號產生器 |
下面介紹利用LPM庫單元來構造一個四位加法器的方法。
lpm_add_sub是參數化加/減法器,利用它既可以設計加法器,也可以設計減法器。先在圖形編
輯器中進行編輯,如圖2-7所示。
圖2-7參數化的加/減法lpm_add_sub
指定它的參數值如下,
LPM_WIDTH = 4(模塊信號寬度爲4位)
LPM_DIRECTION = “ADD”(將模塊設置爲加法器)
LPM_REPRESENTATION = “UNSIGNED”(將輸入輸出數據設爲無符號數)
然後還要設定端口。這裏只使用lpm_add_sub庫單元的四個端口,分別是數據輸入端
data-a[]和data-b[]、數據輸出端result[]和進位輸出端cout。仿真結果如下圖2-8所示。
圖2-8lpm_add_sub設置爲加法器時的仿真圖形