--altiobuf_bidir CBX_AUTO_BLACKBOX="ALL" DEVICE_FAMILY="Cyclone III" ENABLE_BUS_HOLD="FALSE" NUMBER_OF_CHANNELS=1 OPEN_DRAIN_OUTPUT="FALSE" USE_DIFFERENTIAL_MODE="FALSE" USE_DYNAMIC_TERMINATION_CONTROL="FALSE" USE_TERMINATION_CONTROL="FALSE" datain dataio dataout oe
--VERSION_BEGIN 9.1SP2 cbx_altiobuf_bidir 2010:03:24:20:43:42:SJ cbx_mgl 2010:03:24:21:01:05:SJ cbx_stratixiii 2010:03:24:20:43:43:SJ  VERSION_END


-- Copyright (C) 1991-2010 Altera Corporation
--  Your use of Altera Corporation's design tools, logic functions 
--  and other software and tools, and its AMPP partner logic 
--  functions, and any output files from any of the foregoing 
--  (including device programming or simulation files), and any 
--  associated documentation or information are expressly subject 
--  to the terms and conditions of the Altera Program License 
--  Subscription Agreement, Altera MegaCore Function License 
--  Agreement, or other applicable license agreement, including, 
--  without limitation, that your use is for the sole purpose of 
--  programming logic devices manufactured by Altera and sold by 
--  Altera or its authorized distributors.  Please refer to the 
--  applicable agreement for further details.


FUNCTION cycloneiii_io_ibuf (i, ibar)
WITH ( bus_hold, differential_mode, simulate_z_as)
RETURNS ( o);
FUNCTION cycloneiii_io_obuf (i, oe, seriesterminationcontrol[TERM_CTRL_WIDTH-1..0])
WITH ( bus_hold, open_drain_output, TERM_CTRL_WIDTH = 16)
RETURNS ( o, obar);

--synthesis_resources = cycloneiii_io_ibuf 1 cycloneiii_io_obuf 1 
SUBDESIGN altiobuf_bidir0_iobuf_bidir_quo
( 
	datain[0..0]	:	input;
	dataio[0..0]	:	bidir;
	dataout[0..0]	:	output;
	oe[0..0]	:	input;
) 
VARIABLE 
	ibufa[0..0] : cycloneiii_io_ibuf
		WITH (
			bus_hold = "false"
		);
	obufa[0..0] : cycloneiii_io_obuf
		WITH (
			bus_hold = "false",
			open_drain_output = "false"
		);

BEGIN 
	ibufa[].i = dataio[];
	obufa[].i = datain[];
	obufa[].oe = oe[];
	dataio[] = obufa[].o;
	dataout[] = ibufa[].o;
END;
--VALID FILE
