| 
		 | 	
  
Parameterized tri-state buffer. Altera® recommends using TRI primitives rather than lpm_bustri for easier implementation and to improve compilation time. However, the lpm_bustri function may be useful for controlling both unidirectional and bidirectional I/O bus controllers.
Altera also recommends instantiating this function as described in Using the MegaWizard® Plug-In Manager.
This topic contains the following information:
FUNCTION lpm_bustri (data[LPM_WIDTH-1..0], enabletr, enabledt) WITH (LPM_WIDTH) RETURNS (tridata[LPM_WIDTH-1..0], result[LPM_WIDTH-1..0]);
COMPONENT lpm_bustri
   GENERIC (LPM_WIDTH: POSITIVE;
      LPM_TYPE: STRING := "LPM_BUSTRI";
      LPM_HINT: STRING := "UNUSED");
   PORT (data: IN STD_LOGIC_VECTOR(LPM_WIDTH-1 DOWNTO 0);
      enabledt, enabletr: IN STD_LOGIC := '0';
      result: OUT STD_LOGIC_VECTOR(LPM_WIDTH-1 DOWNTO 0);
      tridata: INOUT STD_LOGIC_VECTOR(LPM_WIDTH-1 DOWNTO 0));
END COMPONENT;
LIBRARY lpm; USE lpm.lpm_components.all;
INPUT PORTS
| Port Name | Required | Description | Comments | 
|---|---|---|---|
data[] | 
    Yes | Data input to the tridata[] bus. | 
    Input port LPM_WIDTH wide. Either 
      data[] or result[] must be used. Both may be used. | 
  
enabletr | 
    No | If high, enables tridata[] onto 
      the result bus. | 
    Required if result[] is present 
      (default = 0). | 
  
enabledt | 
    No | If high, enables data onto the tridata[] 
      bus. | 
    Required if data[] is present (default 
      = 0). | 
  
OUTPUT PORTS
| Port Name | Required | Description | Comments | 
|---|---|---|---|
result[] | 
    No | Output from the tridata[] bus. | 
    Output port LPM_WIDTH wide. Either 
      data[] or result[] must be used. Both can be used. | 
  
BIDIRECTIONAL PORTS
| Port Name | Required | Description | Comments | 
|---|---|---|---|
tridata[] | 
    Yes | Bidirectional bus signal. | Bidirectional port LPM_WIDTH wide. | 
  
| Parameter | Type | Required | Description | 
|---|---|---|---|
LPM_WIDTH | 
    Integer | Yes | Width of the data[], result[], 
      and tridata[] ports. | 
  
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. | 
Some of the input and output ports of the lpm_bustri function are optional. The following three configurations are valid:
Only the input ports data[LPM_WIDTH-1..0] 
      and enabledt are present, and only the output ports tridata[LPM_WIDTH-1..0] are present. This configuration has the following function:
| Input | Output | 
|---|---|
enabledt | 
        tridata[LPM_WIDTH-1..0] | 
      
| 0 | Z | 
| 1 | DATA[LPM_WIDTH-1..0] | 
      
Only the input ports tridata[LPM_WIDTH-1..0] 
      and enabletr are present, and only the output ports result[LPM_WIDTH-1..0] 
      are present. This configuration has the following function:
| Input | Output | 
|---|---|
enabletr | 
        result[LPM_WIDTH-1..0] | 
      
| 0 | Z | 
| 1 | tridata[LPM_WIDTH-1..0] | 
      
All ports are present: input ports data[LPM_WIDTH-1..0], 
      enabledt, and enabletr; output ports result[LPM_WIDTH-1..0]; 
      and bidirectional ports tridata[LPM_WIDTH-1..0]. 
      This configuration has the following function:
| Input | Bidirectional | Output | |
|---|---|---|---|
enabledt | 
              enabletr | 
              tridata[LPM_WIDTH-1..0] | 
              result[LPM_WIDTH-1..0] | 
            
| 0 | 0 | Z (input) | Z | 
| 0 | 1 | Z (input) | tridata[LPM_WIDTH-1..0] | 
            
| 1 | 0 | data[LPM_WIDTH-1..0] | 
              Z | 
| 1 | 1 | data[LPM_WIDTH-1..0] | 
              data[LPM_WIDTH-1..0] | 
            
Uses one I/O cell or one logic cell per bit.
| This topic prints best in Landscape orientation. | 
| 
       - PLDWorld -  | 
    
| 
       
  | 
  
| Created by chm2web html help conversion utility. |