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。
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 | class="style8">参数化先进先出队列 | |
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设置为加法器时的仿真图形