|
|
Parameterized memory multiplier megafunction. The altmemmult megafunction enables RAM-based signed or unsigned multiplier functions. The altmemmult megafunction is available for Cyclone, Stratix, and Stratix GX devices only.
Altera® recommends instantiating this function as described in Using the MegaWizard® Plug-In Manager.
This topic contains the following information:
FUNCTION altmemmult (clock, coeff_in[WIDTH_C-1..0], data_in[WIDTH_D-1..0], sclr, select[WIDTH_S-1..0],
sload_data, sload_coeff )
WITH (WIDTH_D, WIDTH_C, WIDTH_S = 1, WIDTH_R, COEFFICIENT0, TOTAL_LATENCY, MAX_CLOCK_CYCLES_PER_RESULT,
RAM_BLOCK_TYPE, DATA_REPRESENTATION )
RETURNS (result[WIDTH_R-1..0], result_valid, load_done);
COMPONENT altmemmult
GENERIC
(WIDTH_D : INTEGER;
WIDTH_C : INTEGER;
WIDTH_S : INTEGER := 1;
WIDTH_R : INTEGER;
NUMBER_OF_COEFFICIENTS : INTEGER := 1;
TOTAL_LATENCY : INTEGER;
MAX_CLOCK_CYCLES_PER_RESULT : INTEGER := 1;
RAM_BLOCK_TYPE : STRING := "AUTO" ;
COEFFICIENT0 : INTEGER;
DATA_REPRESENTATION : STRING := "SIGNED";
COEFF_REPRESENTATION : STRING := "SIGNED");
PORT (clock, sclr, sload_data, sload_coeff : IN STD_LOGIC_VECTOR;
coeff_in : IN STD_LOGIC_VECTOR(WIDTH_C-1..0);
data_in : IN STD_LOGIC_VECTOR(WIDTH_D-1..0);
select : IN STD_LOGIC_VECTOR(WIDTH_S-1..0);
result_valid, load_done : OUT STD_LOGIC_VECTOR;
result : OUT STD_LOGIC_VECTOR(WIDTH_R-1..0));
END COMPONENT;
LIBRARY altera_mf; USE altera_mf.altera_mf_components.all;
INPUT PORTS
| Port Name | Required | Description | Comments |
|---|---|---|---|
clock |
Yes | Clock input port for the multiplier. | |
coeff_in[] |
No | Coefficient input port for the multiplier. | Input port [WIDTH_C-1..0] wide. The current version of the Quartus® II software does not support the sload_coeff port. |
data_in[] |
Yes | Data input port to the multiplier. | Input port [WIDTH_D-1..0] wide. |
sclr |
No | Synchronous clear input. | If unused, the default value is active high. |
select[] |
No | Fixed coefficient selection. | Input port [WIDTH_S-1..0] wide. If only one coefficient exists, the select[] input port is not available. The current version of the Quartus II software does not support the sload_coeff port. |
sload_data |
No | Signal that specifies new multiplication operation and cancels any existing multiplication operation. | If the MAX_CLOCK_CYCLES_PER_RESULT parameter has a value of 1, the sload_data input port is ignored. |
sload_coeff |
No | Replaces the current selected coefficient value with the value specified in the coeff_in input port. |
The current version of the Quartus II software does not support the sload_coeff port. |
OUTPUT PORTS
| Port Name | Required | Description | Comments |
|---|---|---|---|
result[] |
Yes | Multiplier output port. | Output port [WIDTH_R-1..0] wide. |
result_valid |
Yes | Indicates when the output is the valid result of a complete multiplication. | If the MAX_CLOCK_CYCLES_PER_RESULT parameter has a value of 1, the result_valid output port is not used. |
load_done |
No | Indicates when the new coefficient has finished loading. | The current version of the Quartus II software does not support the load_done port. |
| Parameter | Type | Required | Comments |
|---|---|---|---|
WIDTH_D |
Integer | Yes | Specifies the width of the data_in[] port. |
WIDTH_C |
Integer | Yes | Specifies the width of the coeff_in[] port. |
NUMBER_OF_COEFFICIENTS |
Integer | No | Specifies the number of coefficients that are stored in the lookup table. |
WIDTH_S |
Integer | No | Specifies the width, in bits, of the select[] port. |
WIDTH_R |
Integer | Yes | Specifies the width, in bits, of the result[] port. |
COEFFICIENT0 |
Integer | Yes | Specifies value of the first fixed coefficient. |
COEFFICIENT1..COEFFICIENTn |
Integer | Yes | Specifies additional coefficients in the lookup table. |
TOTAL_LATENCY |
Integer | Yes | Specifies the total number of clock cycles from the start of a multiplication to the time the result is available at the output. |
MAX_CLOCK_CYCLES_PER_RESULT |
Integer | No | Specifies the number of clock cycles per result. |
DATA_REPRESENTATION |
String | No | Specifies whether the data_in[] input port is signed or unsigned. |
COEFF_REPRESENTATION |
String | No | Specifies whether the coeff_in[] input port and the pre-loaded coefficients are signed or unsigned. |
RAM_BLOCK_TYPE |
String | No | Specifies the ram block type. Values are "AUTO", "SMALL", "MEDIUM", "M512", and "M4K". If omitted, the default is AUTO. |
| This topic prints best in Landscape orientation. |
|
- PLDWorld - |
|
|
| Created by chm2web html help conversion utility. |