|
4.3.3 LPM_MULT |
Copyright © 1998 University of Manchester |
Description | Comments | |||
Multiplicand | Vector, LPM_WidthA wide | |||
Multiplier | Vector, LPM_WidthB wide | |||
Partial Sum | Vector, LPM_WidthS wide. Note 1 | |||
Product | Vector, LPM_WidthP wide. Note 2 | |||
Clock for pipelined usage | Note 3 | |||
Asynchronous Clear | Note 4 |
Note 1: An extra bit should be reserved in the LPM_WidthS if a carry out is expected from addition of the Product and the Partial Sum. LPM_WidthS should be larger than LPM_WidthA plus LPM_WidthB to guarantee that the carry out will be represented in Result.
Note 2: The product is a vector, LPM_WidthP bits wide. If LPM_WidthP is less than the maximum of either LPM_WidthA plus LPM_WidthB or LPM_WidthS, then only the LPM_WidthP most significant bits are present.
Note 3: The clock port provides for pipelined operation of the LPM_MULT. If a latency other 0 (default value) is specified, then the clock port must be connected.
Note 4: The pipelined initializes to undefined. The Aclr port
may be used at any time to reset the pipeline to all 0's asynchronously
to clock.
Value | Comments | ||
LPM Value > 0 | Width of DataA | ||
LPM Value > 0 | Width of DataB | ||
LPM Value > 0 | Width of Sum. Required if the Sum port is used. | ||
LPM Value > 0 | Width of Result. This represents the LPM_WidthP most significant bits. | ||
UNSIGNED or SIGNED | Default is UNSIGNED. | ||
LPM Value > = 0 | Default is 0 - non-pipelined |
The LSB of the product of DataA and DataB is aligned with the LSB of Sum.
A3 | A2 | A1 | A0 | |||||
B1 | B0 | |||||||
P5 | P4 | P3 | P2 | P1 | P0 | |||
S7 | S6 | S5 | S4 | S3 | S2 | S1 | S0 | |
X7 | X6 | X5 | X4 | X3 | X2 | X1 | X0 | |
R5 | R4 | R3 | R2 | R1 | R0 |
The partial product is represented by P, and the full product by X. Both are internal only.
Copyright © 1998 University of Manchester |