|
Parameterized decoder megafunction. Altera® recommends using lpm_decode
for data input widths less than or equal to 8. In addition, if the project uses only a few sparse outputs of the decoder, Altera recommends using lpm_compare
with one input set to a fixed value, instead of lpm_decode
.
Altera also recommends instantiating this function as described in Using the MegaWizard® Plug-In Manager.
This topic contains the following information:
FUNCTION lpm_decode (data[LPM_WIDTH-1..0], enable, clock, aclr) WITH (LPM_WIDTH, LPM_DECODES, LPM_PIPELINE) RETURNS (eq[LPM_DECODES-1..0]);
COMPONENT lpm_decode GENERIC (LPM_WIDTH: POSITIVE; LPM_DECODES: POSITIVE; LPM_PIPELINE: INTEGER := 0; LPM_TYPE: STRING := "LPM_DECODE"; LPM_HINT: STRING := "UNUSED"); PORT (data: IN STD_LOGIC_VECTOR(LPM_WIDTH-1 DOWNTO 0); aclr, clock: IN STD_LOGIC := '0'; clken, enable: IN STD_LOGIC := '1'; eq: OUT STD_LOGIC_VECTOR(LPM_DECODES-1 DOWNTO 0)); END COMPONENT;
LIBRARY lpm; USE lpm.lpm_components.all;
INPUT PORTS
Port Name | Required | Description | Comments |
---|---|---|---|
data[] |
Yes | Data input. Treated as an unsigned binary encoded number. | Input port LPM_WIDTH wide. |
enable |
No | Enable. All outputs low when not active. | If absent, the default value is active (high). |
clock |
No | Clock for pipelined usage. | The clock port provides pipelined operation for
the lpm_decode function. For LPM_PIPELINE parameter
values other than 0 (default value), the clock port must be connected. |
clken |
No | Clock enable for pipelined usage. | If omitted, the default is 1. |
aclr |
No | Asynchronous clear for pipelined usage. | The pipeline initializes to an undefined (X)
logic level. The aclr port can be used at any time to reset
the pipeline to all 0s asynchronously to the clock signal. |
OUTPUT PORTS
Port Name | Required | Description | Comments |
---|---|---|---|
eq[] |
Yes | Decoded output. | Output port LPM_DECODES wide. If
data[] >= LPM_DECODES , all eq[]
are 0. |
Parameter | Type | Required | Description |
---|---|---|---|
LPM_WIDTH |
Integer | Yes | Width of the data[] port, or the
input value to be decoded. |
LPM_DECODES |
Integer | Yes | Number of explicit decoder outputs. LPM_DECODES
<= 2 ^ LPM_WIDTH . |
LPM_PIPELINE |
Integer | No | Specifies the number of Clock cycles of latency
associated with the eq[] output. A value of zero (0) indicates
that no latency exists, and that a purely combinatorial function will be
instantiated. If omitted, the default is 0 (non-pipelined). |
LPM_HINT |
String | No | Allows you to specify Altera-specific
parameters in VHDL Design Files (.vhd).
The default is "UNUSED" . |
LPM_TYPE |
String | No | Identifies the library of parameterized modules (LPM) entity name in VHDL Design Files. |
Inputs | Outputs | |
---|---|---|
enable |
data[LPM_WIDTH- 1. .0] |
eq[LPM_DECODES- 1. .0] |
0 | X | 0000...00 |
1 | LPM_DECODES- 1 |
1000...00 |
1 | LPM_DECODES- 2 |
0100...00 |
... | ... | ... |
1 | 1 | 0000...10 |
1 | 0 | 0000...01 |
The enable
input port is optional. When enable
is omitted, the decoder is permanently enabled.
Uses one logic cell per output for up to 16 outputs, and two logic cells per output for more than 16 outputs.
This topic prints best in Landscape orientation. |
- PLDWorld - |
|
Created by chm2web html help conversion utility. |