|
LPM(Library Parameterized Modules)即参数化的宏功能模块库。应用这些功能模块库可以大大提高IC设计的效率。LPM标准在1990年被推出,1993年4月,LPM作为电子设计交换格式(EDIF)的附属标准,纳入了电子工业协会(EIA)的临时标准。
在MAX+PLUS II 和 Quartus II中调用LPM库函数非常方便,用户既可以在图形输入法中直接调用,也可以在HDL源文件中调用。
LPM库如表2-5所示。它是MAX+PLUS II 和 Quartus II 提供的可供调用的一些功能模块。
MAX+PLUS II 的LPM库所在的目录是/maxplus2/max2lib/mega_lpm。
Quartus II 的LPM库所在的目录是/altera/quartus60/libraries/megas。
表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库单元来构造一个四位加法器的方法。
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设置为加法器时的仿真图形 |