--altmult_add CBX_DECLARE_ALL_CONNECTED_PORTS="OFF" DEVICE_FAMILY="Cyclone II" DSP_BLOCK_BALANCING="Auto" INPUT_ACLR_A0="ACLR0" INPUT_ACLR_A1="ACLR0" INPUT_ACLR_B0="ACLR0" INPUT_ACLR_B1="ACLR0" INPUT_REGISTER_A0="CLOCK0" INPUT_REGISTER_A1="CLOCK0" INPUT_REGISTER_B0="CLOCK0" INPUT_REGISTER_B1="CLOCK0" MULTIPLIER1_DIRECTION="ADD" MULTIPLIER_ACLR0="ACLR0" MULTIPLIER_ACLR1="ACLR0" MULTIPLIER_REGISTER0="CLOCK0" MULTIPLIER_REGISTER1="CLOCK0" NUMBER_OF_MULTIPLIERS=2 OUTPUT_ACLR="ACLR0" OUTPUT_REGISTER="CLOCK0" REPRESENTATION_A="SIGNED" REPRESENTATION_B="SIGNED" WIDTH_A=18 WIDTH_B=18 WIDTH_RESULT=18 clock0 dataa datab result CARRY_CHAIN="MANUAL" CARRY_CHAIN_LENGTH=48
--VERSION_BEGIN 7.2 cbx_alt_ded_mult_y 2007:03:05:16:04:08:SJ cbx_altmult_add 2007:08:27:13:54:20:SJ cbx_cycloneii 2007:06:13:15:47:32:SJ cbx_lpm_add_sub 2007:08:06:16:01:34:SJ cbx_lpm_mult 2007:07:20:16:47:26:SJ cbx_mgl 2007:08:03:15:48:12:SJ cbx_padd 2007:07:12:14:48:24:SJ cbx_parallel_add 2007:01:30:03:53:08:SJ cbx_stratix 2007:05:02:16:27:14:SJ cbx_stratixii 2007:06:28:17:26:26:SJ cbx_util_mgl 2007:06:01:06:37:30:SJ  VERSION_END


-- Copyright (C) 1991-2007 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 ded_mult_jf51 (aclr[3..0], clock[3..0], dataa[17..0], datab[17..0], ena[3..0])
RETURNS ( result[35..0]);
FUNCTION soft (in)
RETURNS ( out);

--synthesis_resources = lut 39 reg 39 
OPTIONS ALTERA_INTERNAL_OPTION = "{-to dffe10} POWER_UP_LEVEL=LOW;{-to dffe11} POWER_UP_LEVEL=LOW;{-to dffe12} POWER_UP_LEVEL=LOW;{-to dffe13} POWER_UP_LEVEL=LOW;{-to dffe14} POWER_UP_LEVEL=LOW;{-to dffe15} POWER_UP_LEVEL=LOW;{-to dffe16} POWER_UP_LEVEL=LOW;{-to dffe17} POWER_UP_LEVEL=LOW;{-to dffe18} POWER_UP_LEVEL=LOW;{-to dffe19} POWER_UP_LEVEL=LOW;{-to dffe20} POWER_UP_LEVEL=LOW;{-to dffe21} POWER_UP_LEVEL=LOW;{-to dffe22} POWER_UP_LEVEL=LOW;{-to dffe23} POWER_UP_LEVEL=LOW;{-to dffe24} POWER_UP_LEVEL=LOW;{-to dffe25} POWER_UP_LEVEL=LOW;{-to dffe26} POWER_UP_LEVEL=LOW;{-to dffe27} POWER_UP_LEVEL=LOW;{-to dffe28} POWER_UP_LEVEL=LOW;{-to dffe29} POWER_UP_LEVEL=LOW";
OPTIONS ALTERA_INTERNAL_OPTION = "{-to dffe3} POWER_UP_LEVEL=LOW;{-to dffe30} POWER_UP_LEVEL=LOW;{-to dffe31} POWER_UP_LEVEL=LOW;{-to dffe32} POWER_UP_LEVEL=LOW;{-to dffe33} POWER_UP_LEVEL=LOW;{-to dffe34} POWER_UP_LEVEL=LOW;{-to dffe35} POWER_UP_LEVEL=LOW;{-to dffe36} POWER_UP_LEVEL=LOW;{-to dffe37} POWER_UP_LEVEL=LOW;{-to dffe38} POWER_UP_LEVEL=LOW;{-to dffe39} POWER_UP_LEVEL=LOW;{-to dffe4} POWER_UP_LEVEL=LOW;{-to dffe40} POWER_UP_LEVEL=LOW;{-to dffe41} POWER_UP_LEVEL=LOW;{-to dffe5} POWER_UP_LEVEL=LOW;{-to dffe6} POWER_UP_LEVEL=LOW;{-to dffe7} POWER_UP_LEVEL=LOW;{-to dffe8} POWER_UP_LEVEL=LOW;{-to dffe9} POWER_UP_LEVEL=LOW";

SUBDESIGN mult_add_vjs1
( 
	clock0	:	input;
	dataa[35..0]	:	input;
	datab[35..0]	:	input;
	result[17..0]	:	output;
) 
VARIABLE
	add42_result[38..0]	:	WIRE;
	ded_mult1 : ded_mult_jf51;
	ded_mult2 : ded_mult_jf51;
	dffe10 : dffe
		WITH (
			power_up = "low"
		);
	dffe11 : dffe
		WITH (
			power_up = "low"
		);
	dffe12 : dffe
		WITH (
			power_up = "low"
		);
	dffe13 : dffe
		WITH (
			power_up = "low"
		);
	dffe14 : dffe
		WITH (
			power_up = "low"
		);
	dffe15 : dffe
		WITH (
			power_up = "low"
		);
	dffe16 : dffe
		WITH (
			power_up = "low"
		);
	dffe17 : dffe
		WITH (
			power_up = "low"
		);
	dffe18 : dffe
		WITH (
			power_up = "low"
		);
	dffe19 : dffe
		WITH (
			power_up = "low"
		);
	dffe20 : dffe
		WITH (
			power_up = "low"
		);
	dffe21 : dffe
		WITH (
			power_up = "low"
		);
	dffe22 : dffe
		WITH (
			power_up = "low"
		);
	dffe23 : dffe
		WITH (
			power_up = "low"
		);
	dffe24 : dffe
		WITH (
			power_up = "low"
		);
	dffe25 : dffe
		WITH (
			power_up = "low"
		);
	dffe26 : dffe
		WITH (
			power_up = "low"
		);
	dffe27 : dffe
		WITH (
			power_up = "low"
		);
	dffe28 : dffe
		WITH (
			power_up = "low"
		);
	dffe29 : dffe
		WITH (
			power_up = "low"
		);
	dffe3 : dffe
		WITH (
			power_up = "low"
		);
	dffe30 : dffe
		WITH (
			power_up = "low"
		);
	dffe31 : dffe
		WITH (
			power_up = "low"
		);
	dffe32 : dffe
		WITH (
			power_up = "low"
		);
	dffe33 : dffe
		WITH (
			power_up = "low"
		);
	dffe34 : dffe
		WITH (
			power_up = "low"
		);
	dffe35 : dffe
		WITH (
			power_up = "low"
		);
	dffe36 : dffe
		WITH (
			power_up = "low"
		);
	dffe37 : dffe
		WITH (
			power_up = "low"
		);
	dffe38 : dffe
		WITH (
			power_up = "low"
		);
	dffe39 : dffe
		WITH (
			power_up = "low"
		);
	dffe4 : dffe
		WITH (
			power_up = "low"
		);
	dffe40 : dffe
		WITH (
			power_up = "low"
		);
	dffe41 : dffe
		WITH (
			power_up = "low"
		);
	dffe5 : dffe
		WITH (
			power_up = "low"
		);
	dffe6 : dffe
		WITH (
			power_up = "low"
		);
	dffe7 : dffe
		WITH (
			power_up = "low"
		);
	dffe8 : dffe
		WITH (
			power_up = "low"
		);
	dffe9 : dffe
		WITH (
			power_up = "low"
		);
	sft43a[38..0] : soft;
	sft44a[38..0] : soft;
	sft45a[38..0] : soft;
	aclr0	: NODE;
	dataa_bus[35..0]	: WIRE;
	datab_bus[35..0]	: WIRE;
	ena0	: NODE;
	w101w	: WIRE;
	w103w	: WIRE;
	w105w	: WIRE;
	w107w	: WIRE;
	w109w	: WIRE;
	w150w	: WIRE;
	w151w	: WIRE;
	w152w	: WIRE;
	w153w	: WIRE;
	w228w	: WIRE;
	w273w[38..0]	: WIRE;
	w39w	: WIRE;
	w41w	: WIRE;
	w43w	: WIRE;
	w45w	: WIRE;
	w47w	: WIRE;
	w49w	: WIRE;
	w51w	: WIRE;
	w53w	: WIRE;
	w55w	: WIRE;
	w57w	: WIRE;
	w59w	: WIRE;
	w61w	: WIRE;
	w63w	: WIRE;
	w65w	: WIRE;
	w67w	: WIRE;
	w69w	: WIRE;
	w71w	: WIRE;
	w73w	: WIRE;
	w75w	: WIRE;
	w77w	: WIRE;
	w79w	: WIRE;
	w81w	: WIRE;
	w83w	: WIRE;
	w85w	: WIRE;
	w87w	: WIRE;
	w89w	: WIRE;
	w91w	: WIRE;
	w93w	: WIRE;
	w95w	: WIRE;
	w97w	: WIRE;
	w99w	: WIRE;

BEGIN 
	add42_result[] = sft43a[].out + sft44a[].out;
	ded_mult1.aclr[] = ( B"000", aclr0);
	ded_mult1.clock[] = ( B"111", clock0);
	ded_mult1.dataa[] = ( dataa_bus[17..0]);
	ded_mult1.datab[] = ( datab_bus[17..0]);
	ded_mult1.ena[] = ( B"111", ena0);
	ded_mult2.aclr[] = ( B"000", aclr0);
	ded_mult2.clock[] = ( B"111", clock0);
	ded_mult2.dataa[] = ( dataa_bus[35..18]);
	ded_mult2.datab[] = ( datab_bus[35..18]);
	ded_mult2.ena[] = ( B"111", ena0);
	dffe10.clk = clock0;
	dffe10.clrn = (! aclr0);
	dffe10.d = w53w;
	dffe10.ena = ena0;
	dffe11.clk = clock0;
	dffe11.clrn = (! aclr0);
	dffe11.d = w55w;
	dffe11.ena = ena0;
	dffe12.clk = clock0;
	dffe12.clrn = (! aclr0);
	dffe12.d = w57w;
	dffe12.ena = ena0;
	dffe13.clk = clock0;
	dffe13.clrn = (! aclr0);
	dffe13.d = w59w;
	dffe13.ena = ena0;
	dffe14.clk = clock0;
	dffe14.clrn = (! aclr0);
	dffe14.d = w61w;
	dffe14.ena = ena0;
	dffe15.clk = clock0;
	dffe15.clrn = (! aclr0);
	dffe15.d = w63w;
	dffe15.ena = ena0;
	dffe16.clk = clock0;
	dffe16.clrn = (! aclr0);
	dffe16.d = w65w;
	dffe16.ena = ena0;
	dffe17.clk = clock0;
	dffe17.clrn = (! aclr0);
	dffe17.d = w67w;
	dffe17.ena = ena0;
	dffe18.clk = clock0;
	dffe18.clrn = (! aclr0);
	dffe18.d = w69w;
	dffe18.ena = ena0;
	dffe19.clk = clock0;
	dffe19.clrn = (! aclr0);
	dffe19.d = w71w;
	dffe19.ena = ena0;
	dffe20.clk = clock0;
	dffe20.clrn = (! aclr0);
	dffe20.d = w73w;
	dffe20.ena = ena0;
	dffe21.clk = clock0;
	dffe21.clrn = (! aclr0);
	dffe21.d = w75w;
	dffe21.ena = ena0;
	dffe22.clk = clock0;
	dffe22.clrn = (! aclr0);
	dffe22.d = w77w;
	dffe22.ena = ena0;
	dffe23.clk = clock0;
	dffe23.clrn = (! aclr0);
	dffe23.d = w79w;
	dffe23.ena = ena0;
	dffe24.clk = clock0;
	dffe24.clrn = (! aclr0);
	dffe24.d = w81w;
	dffe24.ena = ena0;
	dffe25.clk = clock0;
	dffe25.clrn = (! aclr0);
	dffe25.d = w83w;
	dffe25.ena = ena0;
	dffe26.clk = clock0;
	dffe26.clrn = (! aclr0);
	dffe26.d = w85w;
	dffe26.ena = ena0;
	dffe27.clk = clock0;
	dffe27.clrn = (! aclr0);
	dffe27.d = w87w;
	dffe27.ena = ena0;
	dffe28.clk = clock0;
	dffe28.clrn = (! aclr0);
	dffe28.d = w89w;
	dffe28.ena = ena0;
	dffe29.clk = clock0;
	dffe29.clrn = (! aclr0);
	dffe29.d = w91w;
	dffe29.ena = ena0;
	dffe3.clk = clock0;
	dffe3.clrn = (! aclr0);
	dffe3.d = w39w;
	dffe3.ena = ena0;
	dffe30.clk = clock0;
	dffe30.clrn = (! aclr0);
	dffe30.d = w93w;
	dffe30.ena = ena0;
	dffe31.clk = clock0;
	dffe31.clrn = (! aclr0);
	dffe31.d = w95w;
	dffe31.ena = ena0;
	dffe32.clk = clock0;
	dffe32.clrn = (! aclr0);
	dffe32.d = w97w;
	dffe32.ena = ena0;
	dffe33.clk = clock0;
	dffe33.clrn = (! aclr0);
	dffe33.d = w99w;
	dffe33.ena = ena0;
	dffe34.clk = clock0;
	dffe34.clrn = (! aclr0);
	dffe34.d = w101w;
	dffe34.ena = ena0;
	dffe35.clk = clock0;
	dffe35.clrn = (! aclr0);
	dffe35.d = w103w;
	dffe35.ena = ena0;
	dffe36.clk = clock0;
	dffe36.clrn = (! aclr0);
	dffe36.d = w105w;
	dffe36.ena = ena0;
	dffe37.clk = clock0;
	dffe37.clrn = (! aclr0);
	dffe37.d = w107w;
	dffe37.ena = ena0;
	dffe38.clk = clock0;
	dffe38.clrn = (! aclr0);
	dffe38.d = w109w;
	dffe38.ena = ena0;
	dffe39.clk = clock0;
	dffe39.clrn = (! aclr0);
	dffe39.d = w150w;
	dffe39.ena = ena0;
	dffe4.clk = clock0;
	dffe4.clrn = (! aclr0);
	dffe4.d = w41w;
	dffe4.ena = ena0;
	dffe40.clk = clock0;
	dffe40.clrn = (! aclr0);
	dffe40.d = w152w;
	dffe40.ena = ena0;
	dffe41.clk = clock0;
	dffe41.clrn = (! aclr0);
	dffe41.d = w153w;
	dffe41.ena = ena0;
	dffe5.clk = clock0;
	dffe5.clrn = (! aclr0);
	dffe5.d = w43w;
	dffe5.ena = ena0;
	dffe6.clk = clock0;
	dffe6.clrn = (! aclr0);
	dffe6.d = w45w;
	dffe6.ena = ena0;
	dffe7.clk = clock0;
	dffe7.clrn = (! aclr0);
	dffe7.d = w47w;
	dffe7.ena = ena0;
	dffe8.clk = clock0;
	dffe8.clrn = (! aclr0);
	dffe8.d = w49w;
	dffe8.ena = ena0;
	dffe9.clk = clock0;
	dffe9.clrn = (! aclr0);
	dffe9.d = w51w;
	dffe9.ena = ena0;
	sft43a[].in = ( w151w, ( w151w, ( w151w, ( (! ded_mult1.result[35..35]), ( ded_mult1.result[34..34], ( ded_mult1.result[33..33], ( ded_mult1.result[32..32], ( ded_mult1.result[31..31], ( ded_mult1.result[30..30], ( ded_mult1.result[29..29], ( ded_mult1.result[28..28], ( ded_mult1.result[27..27], ( ded_mult1.result[26..26], ( ded_mult1.result[25..25], ( ded_mult1.result[24..24], ( ded_mult1.result[23..23], ( ded_mult1.result[22..22], ( ded_mult1.result[21..21], ( ded_mult1.result[20..20], ( ded_mult1.result[19..19], ( ded_mult1.result[18..18], ( ded_mult1.result[17..17], ( ded_mult1.result[16..16], ( ded_mult1.result[15..15], ( ded_mult1.result[14..14], ( ded_mult1.result[13..13], ( ded_mult1.result[12..12], ( ded_mult1.result[11..11], ( ded_mult1.result[10..10], ( ded_mult1.result[9..9], ( ded_mult1.result[8..8], ( ded_mult1.result[7..7], ( ded_mult1.result[6..6], ( ded_mult1.result[5..5], ( ded_mult1.result[4..4], ( ded_mult1.result[3..3], ( ded_mult1.result[2..2], ( ded_mult1.result[1..0]))))))))))))))))))))))))))))))))))))));
	sft44a[].in = ( w228w, ( w228w, ( w228w, ( (! ded_mult2.result[35..35]), ( ded_mult2.result[34..34], ( ded_mult2.result[33..33], ( ded_mult2.result[32..32], ( ded_mult2.result[31..31], ( ded_mult2.result[30..30], ( ded_mult2.result[29..29], ( ded_mult2.result[28..28], ( ded_mult2.result[27..27], ( ded_mult2.result[26..26], ( ded_mult2.result[25..25], ( ded_mult2.result[24..24], ( ded_mult2.result[23..23], ( ded_mult2.result[22..22], ( ded_mult2.result[21..21], ( ded_mult2.result[20..20], ( ded_mult2.result[19..19], ( ded_mult2.result[18..18], ( ded_mult2.result[17..17], ( ded_mult2.result[16..16], ( ded_mult2.result[15..15], ( ded_mult2.result[14..14], ( ded_mult2.result[13..13], ( ded_mult2.result[12..12], ( ded_mult2.result[11..11], ( ded_mult2.result[10..10], ( ded_mult2.result[9..9], ( ded_mult2.result[8..8], ( ded_mult2.result[7..7], ( ded_mult2.result[6..6], ( ded_mult2.result[5..5], ( ded_mult2.result[4..4], ( ded_mult2.result[3..3], ( ded_mult2.result[2..2], ( ded_mult2.result[1..0]))))))))))))))))))))))))))))))))))))));
	sft45a[].in = add42_result[];
	aclr0 = GND;
	dataa_bus[] = ( dataa[35..0]);
	datab_bus[] = ( datab[35..0]);
	ena0 = VCC;
	result[17..0] = w273w[17..0];
	w101w = sft45a[31..31].out;
	w103w = sft45a[32..32].out;
	w105w = sft45a[33..33].out;
	w107w = sft45a[34..34].out;
	w109w = sft45a[35..35].out;
	w150w = sft45a[36..36].out;
	w151w = B"1";
	w152w = sft45a[37..37].out;
	w153w = sft45a[38..38].out;
	w228w = B"0";
	w273w[] = ( dffe41.q, dffe40.q, dffe39.q, dffe38.q, dffe37.q, dffe36.q, dffe35.q, dffe34.q, dffe33.q, dffe32.q, dffe31.q, dffe30.q, dffe29.q, dffe28.q, dffe27.q, dffe26.q, dffe25.q, dffe24.q, dffe23.q, dffe22.q, dffe21.q, dffe20.q, dffe19.q, dffe18.q, dffe17.q, dffe16.q, dffe15.q, dffe14.q, dffe13.q, dffe12.q, dffe11.q, dffe10.q, dffe9.q, dffe8.q, dffe7.q, dffe6.q, dffe5.q, dffe4.q, dffe3.q);
	w39w = sft45a[0..0].out;
	w41w = sft45a[1..1].out;
	w43w = sft45a[2..2].out;
	w45w = sft45a[3..3].out;
	w47w = sft45a[4..4].out;
	w49w = sft45a[5..5].out;
	w51w = sft45a[6..6].out;
	w53w = sft45a[7..7].out;
	w55w = sft45a[8..8].out;
	w57w = sft45a[9..9].out;
	w59w = sft45a[10..10].out;
	w61w = sft45a[11..11].out;
	w63w = sft45a[12..12].out;
	w65w = sft45a[13..13].out;
	w67w = sft45a[14..14].out;
	w69w = sft45a[15..15].out;
	w71w = sft45a[16..16].out;
	w73w = sft45a[17..17].out;
	w75w = sft45a[18..18].out;
	w77w = sft45a[19..19].out;
	w79w = sft45a[20..20].out;
	w81w = sft45a[21..21].out;
	w83w = sft45a[22..22].out;
	w85w = sft45a[23..23].out;
	w87w = sft45a[24..24].out;
	w89w = sft45a[25..25].out;
	w91w = sft45a[26..26].out;
	w93w = sft45a[27..27].out;
	w95w = sft45a[28..28].out;
	w97w = sft45a[29..29].out;
	w99w = sft45a[30..30].out;
END;
--VALID FILE
