This example implements a tri-state bus. The width of the bus is specified with the LPM_WIDTH parameter and can be changed for your design. The dq and data_out pins are fed by tri-state buses. Because tri-state buses cannot feed internal logic, you should use the lpm_bustri function only if dq and data_out feed pins. This example uses an Include Statement (shown in blue text) to import the contents of the Include File containing the Function Prototype of the lpm_bustri function. An Instance Declaration implements (shown in red text) an instance of the function.
- How to Use AHDL Examples
- Graphic Editor: Parameterized Tri-State Bus
- Implementing Tri-State Buses in Altera Devices
- MAX+PLUS II Help
tribus.tdf
INCLUDE "lpm_bustri";
SUBDESIGN tribus
(
enable_out, enable_in : INPUT;
datain[7..0] : INPUT;
dataout[7..0] : OUTPUT;
dq[7..0] : BIDIR;
)
VARIABLE
u1 : lpm_bustri
WITH (LPM_WIDTH=8);
BEGIN
u1.data[7..0] = datain[7..0];
u1.enabletr = enable_out;
u1.enabledt = enable_in;
dataout[7..0] = u1.result[7..0];
dq[7..0] = u1.tridata[7..0];
END;
Design Examples Disclaimer
These design examples may only be used within Altera Corporation devices and remain the property of Altera. They are being provided on an “as-is” basis and as an accommodation; therefore, all warranties, representations, or guarantees of any kind (whether express, implied, or statutory) including, without limitation, warranties of merchantability, non-infringement, or fitness for a particular purpose, are specifically disclaimed. Altera expressly does not recommend, suggest, or require that these examples be used in combination with any other product not provided by Altera.
