Library of Parameterized Modules (LPM)
In recent years, programmable logic architectures have experienced dramatic increases in device density, complexity, performance, and features, creating new challenges for system designers. At the same time, designers are striving to maintain architecture independence without sacrificing silicon efficiency and to cut time-to-market for their new products.
At the beginning of the nineties, designers saw the need for electronic design automation (EDA) tools that included a standard set of functions supported by all EDA and integrated circuit (IC) vendors; the EDA tools of the day could not bridge the gap between architecture independence and efficiency. Schematic-based design entry, though providing superior efficiency, dealt with low level, technology-dependent functions. High-level design languages offered architecture independence, but not without a significant loss of silicon efficiency and performance. The library of parameterized modules (LPM), accepted as an Electronic Industries Association (EIA) interim standard in 1993, was a first step to meeting designers' needs.
What is the LPM?
The LPM standard is an extension to the Electronic Design Interface Format (EDIF), which is an industry-standard syntax for transferring designs between the tools of different EDA vendors. Before the LPM, EDIF netlist files would typically contain architecture-specific logic functions. The LPM provides an architecture-independent library of logic functions or modules that are parameterized to achieve scalability and adaptability. Designers can vary the parameters to represent a wide variety of logic functions, greatly simplifying design entry tasks. The LPM is supported by most EDA tool vendors, including Altera's partners in the ACCESS® program: Cadence, Exemplar, Mentor Graphics, Synopsys, Synplicity, and Viewlogic. Altera has supported the standard since 1993 and includes LPM functions with the Quartus™ and MAX+PLUS® II software.
LPM Support in the Quartus II and MAX+PLUS II Software
Altera has implemented parameterized modules from the LPM version 2.1.0 that offer architecture-independent design entry for all devices supported by the Quartus II and MAX+PLUS II software. The Quartus II and MAX+PLUS II Compiler includes built-in compilation support for LPM functions used in schematic, Altera Hardware Description Language (AHDL), Very High Speed Integrated Circuit Hardware Description Language (VHDL), Verilog HDL, and EDIF Input Files (.edf).
Table 1 lists the LPM functions available in the Quartus II and MAX+PLUS II software.
| Table 1. LPM Functions |
| Type |
Function |
Description |
| Gates |
lpm_and |
Parameterized AND gate |
lpm_bustri |
Parameterized tri-state buffer |
lpm_clshift |
Parameterized combinatorial logic shifter or barrel shifter |
lpm_constant |
Parameterized constant generator |
lpm_decode |
Parameterized decoder |
lpm_inv |
Parameterized inverter |
lpm_mux |
Parameterized multiplexer |
lpm_or |
Parameterized OR gate |
lpm_xor |
Parameterized XOR gate |
| Arithmetic Components |
lpm_abs |
Parameterized absolute value megafunction |
lpm_add_sub |
Parameterized adder/subtractor |
lpm_compare |
Parameterized comparator |
lpm_counter |
Parameterized counter |
lpm_mult |
Parameterized multiplier |
| Storage Components |
lpm_dff |
Parameterized D-type flipflop and shift register |
lpm_ff |
Parameterized flipflop |
lpm_latch |
Parameterized latch |
lpm_ram_dq |
Parameterized RAM with separate input and output ports |
lpm_ram_io |
Parameterized RAM with a single I/O port |
lpm_rom |
Parameterized ROM |
lpm_shiftreg |
Parameterized shift register |
lpm_tff |
Parameterized T-type flipflop |
Implementing LPM Functions
Instructions for implementing LPM functions in Quartus II and MAX+PLUS II designs with AHDL, Verilog HDL, VHDL, and the Graphic Editor can be found in Quartus II and MAX+PLUS II ACCESS Key Guidelines. The Quartus II and MAX+PLUS II MegaWizard® Plug-In Manager also provides a wizard to help you easily create custom megafunction variations in AHDL, Verilog HDL, VHDL, or Graphic Editor schematic designs for all supported LPM functions.
Instructions for implementing LPM functions using tools from the ACCESS partners and MAX+PLUS II software can be found in the NativeLink® Guidelines and MAX+PLUS II ACCESS Key Guidelines.
Altera Megafunctions
In addition to the LPM functions and other parameterized megafunctions that are provided with the Quartus II and MAX+PLUS II software, Altera offers a complete library of megafunctions, including Altera MegaCore™ functions and megafunctions from the Altera Megafunction Partners Program (AMPPSM). The majority of these functions can be test-driven for free with the OpenCore™ feature, which permits designers to instantiate and simulate a MegaCore or AMPP function in their design before licensing.
Related Links:
|