The LPM Functions

 

The LPM presently contains 25 different modules, as shown in Table 1. The small size of the LPM library belies its power. Each of the modules contain parameters that allow the module to expand in many dimensions. For example, the LPM_COUNT module allows the user to specify the width of the counter to be any number from 1-bit to infinity.

CONST INV AND OR XOR
LATCH FF SHIFTREG RAM_DQ RAM_IO
ROM DECODE MUX CLSHIFT COMPARE
ADD_SUB MULTIPLER COUNTER ABS BUSTRI
FSM TTABLE INPAD OUTPAD BIPAD

Figure 1. Current list of LPM Modules

In addition to width, the user can specify the features and functionality of the counter. For example, parameters indicate whether the counter counts up or down, or loads synchronously or synchronously or asynchronously.

The result is that the single module LPM_COUNT can replace over 30 7400-style counters. The complete list of options for the LPM_COUNT module is shown in Figure 2.

By having several parameterized aspects, the 25 modules of LPM are able to duplicate the functionality of other design libraries that contain 100's of components. The reduced size of the LPM in relation to these other libraries (such as a 74-series TTL library) greatly simplifies the design entry and debugging task.

Counter width
Direction (up, down, or dynamic)
Enable(clock or count)
Load style (synch. or asynch.)
Load data (variable or constant)
Set or clear (synch. or asynch.)

Figure 2. Parameters and Options for the LPM_COUNT Module.

 

Back Home Up Next

Copyright © 1998 University of Manchester