AHDL: Tri-State Buses Converted to a Multiplexer
In this example, three tri-state buses feed a flipflop. Because Altera devices do not have
internal device tri-state buses (i.e., tri-state buffers only exist in I/O cells),
MAX+PLUS II converts the tri-state bus to a multiplexer.
For more information on using this example in your project, go to:
tribus.tdf
SUBDESIGN tribus
(
ina[7..0], inb[7..0], inc[7..0], oe_a, oe_b, oe_c, clock
: INPUT;
out[7..0] : OUTPUT;
)
VARIABLE
tri_a[7..0], tri_b[7..0], tri_c[7..0] : TRI;
mid[7..0] : TRI_STATE_NODE;
flip[7..0] : DFF;
BEGIN
-- Declare the data inputs to the tri-state buses
tri_a[] = ina[];
tri_b[] = inb[];
tri_c[] = inc[];
-- Declare the output enable inputs to the tri-state buses
tri_a[].oe = oe_a;
tri_b[].oe = oe_b;
tri_c[].oe = oe_c;
-- Connect the outputs of the tri-state buses together
mid[] = tri_a[];
mid[] = tri_b[];
mid[] = tri_c[];
-- Feed the output pins
flip[].d = mid[];
flip[].clk = clock;
out[] = flip[].q;
END;
Feedback
Did this information help you?
If not, please log onto mySupport to file a technical request or enhancement.
Altera does not warrant that this solution will work for the customer's intended purpose and disclaims all liability for use of or reliance on the solution.
|