--lpm_mult DEDICATED_MULTIPLIER_CIRCUITRY="NO" DEVICE_FAMILY="Cyclone IV E" DSP_BLOCK_BALANCING="AUTO" LPM_PIPELINE=0 LPM_REPRESENTATION="SIGNED" LPM_WIDTHA=10 LPM_WIDTHB=11 LPM_WIDTHP=21 MAXIMIZE_SPEED=5 dataa datab result CARRY_CHAIN="MANUAL" CARRY_CHAIN_LENGTH=48 --VERSION_BEGIN 13.0 cbx_cycloneii 2013:04:24:18:08:47:SJ cbx_lpm_add_sub 2013:04:24:18:08:47:SJ cbx_lpm_mult 2013:04:24:18:08:47:SJ cbx_mgl 2013:04:24:18:11:10:SJ cbx_padd 2013:04:24:18:08:47:SJ cbx_stratix 2013:04:24:18:08:47:SJ cbx_stratixii 2013:04:24:18:08:47:SJ cbx_util_mgl 2013:04:24:18:08:47:SJ VERSION_END -- Copyright (C) 1991-2013 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 carry_sum (cin, sin) RETURNS ( cout, sout); FUNCTION lcell (in) RETURNS ( out); FUNCTION soft (in) RETURNS ( out); --synthesis_resources = lut 151 SUBDESIGN mult_3go ( dataa[9..0] : input; datab[10..0] : input; result[20..0] : output; ) VARIABLE add10_result[20..0] : WIRE; add14_result[17..0] : WIRE; add18_result[13..0] : WIRE; add22_result[9..0] : WIRE; add26_result[5..0] : WIRE; cs2a[4..0] : carry_sum; cs4a[4..0] : carry_sum; le3a[11..0] : lcell; le5a[11..0] : lcell; le6a[11..0] : lcell; le7a[11..0] : lcell; le8a[11..0] : lcell; le9a[11..0] : lcell; sft11a[20..0] : soft; sft12a[20..0] : soft; sft13a[20..0] : soft; sft15a[17..0] : soft; sft16a[17..0] : soft; sft17a[17..0] : soft; sft19a[13..0] : soft; sft20a[13..0] : soft; sft21a[13..0] : soft; sft23a[9..0] : soft; sft24a[9..0] : soft; sft25a[9..0] : soft; sft27a[5..0] : soft; sft28a[5..0] : soft; sft29a[5..0] : soft; dataa_node[10..0] : WIRE; datab_node[9..0] : WIRE; final_result_node[20..0] : WIRE; w12w[9..0] : WIRE; w13w[11..0] : WIRE; w160w[11..0] : WIRE; w211w[11..0] : WIRE; w258w[11..0] : WIRE; w311w[11..0] : WIRE; w364w : WIRE; w388w : WIRE; w588w[20..0] : WIRE; BEGIN add10_result[] = sft11a[].out + sft12a[].out; add14_result[] = sft15a[].out + sft16a[].out; add18_result[] = sft19a[].out + sft20a[].out; add22_result[] = sft23a[].out + sft24a[].out; add26_result[] = sft27a[].out + sft28a[].out; cs2a[].cin = ( B"0", ((w12w[6..6] & cs2a[2].cout) # w12w[7..7]), ((w12w[4..4] & cs2a[1].cout) # w12w[5..5]), ((w12w[2..2] & cs2a[0].cout) # w12w[3..3]), datab_node[1..1]); cs2a[].sin = ( cs2a[3].cout, ((((((! w12w[7..7]) & w12w[6..6]) & cs2a[2].cout) # ((w12w[7..7] & w12w[6..6]) & (! cs2a[2].cout))) # ((w12w[7..7] & (! w12w[6..6])) & cs2a[2].cout)) # ((w12w[7..7] & (! w12w[6..6])) & (! cs2a[2].cout))), ((((((! w12w[5..5]) & w12w[4..4]) & cs2a[1].cout) # ((w12w[5..5] & w12w[4..4]) & (! cs2a[1].cout))) # ((w12w[5..5] & (! w12w[4..4])) & cs2a[1].cout)) # ((w12w[5..5] & (! w12w[4..4])) & (! cs2a[1].cout))), ((((((! w12w[3..3]) & w12w[2..2]) & cs2a[0].cout) # ((w12w[3..3] & w12w[2..2]) & (! cs2a[0].cout))) # ((w12w[3..3] & (! w12w[2..2])) & cs2a[0].cout)) # ((w12w[3..3] & (! w12w[2..2])) & (! cs2a[0].cout))), datab_node[1..1]); cs4a[].cin = ( B"0", ((w12w[6..6] & cs4a[2].cout) # w12w[7..7]), ((w12w[4..4] & cs4a[1].cout) # w12w[5..5]), ((w12w[2..2] & cs4a[0].cout) # w12w[3..3]), datab_node[1..1]); cs4a[].sin = ( (w12w[8..8] $ cs4a[3].cout), ((((((! w12w[7..7]) & (! w12w[6..6])) & cs4a[2].cout) # (((! w12w[7..7]) & w12w[6..6]) & (! cs4a[2].cout))) # ((w12w[7..7] & w12w[6..6]) & (! cs4a[2].cout))) # ((w12w[7..7] & (! w12w[6..6])) & cs4a[2].cout)), ((((((! w12w[5..5]) & (! w12w[4..4])) & cs4a[1].cout) # (((! w12w[5..5]) & w12w[4..4]) & (! cs4a[1].cout))) # ((w12w[5..5] & w12w[4..4]) & (! cs4a[1].cout))) # ((w12w[5..5] & (! w12w[4..4])) & cs4a[1].cout)), ((((((! w12w[3..3]) & (! w12w[2..2])) & cs4a[0].cout) # (((! w12w[3..3]) & w12w[2..2]) & (! cs4a[0].cout))) # ((w12w[3..3] & w12w[2..2]) & (! cs4a[0].cout))) # ((w12w[3..3] & (! w12w[2..2])) & cs4a[0].cout)), datab_node[0..0]); le3a[].in = (((((w12w[9..9] & (! w12w[8..8])) & (! cs2a[4].sout)) & (! ( dataa_node[], B"0"))) # ((((! w12w[9..9]) & w12w[8..8]) & cs2a[4].sout) & ( dataa_node[], B"0"))) # ((w12w[9..9] & w12w[8..8]) & cs2a[4].sout)); le5a[].in = (! ((! le3a[].out) & (! (cs4a[4].sout & (w12w[9..9] $ ( dataa_node[10..10], dataa_node[])))))); le6a[].in = (! ((! (((! ( dataa_node[], B"0")) & cs2a[0].sout) & (! cs4a[0].sout))) & (! ((((! ( dataa_node[10..10], dataa_node[])) & cs2a[0].sout) & cs4a[0].sout) # ((( dataa_node[10..10], dataa_node[]) & (! cs2a[0].sout)) & cs4a[0].sout))))); le7a[].in = (! ((! (((! ( dataa_node[], B"0")) & cs2a[1].sout) & (! cs4a[1].sout))) & (! ((((! ( dataa_node[10..10], dataa_node[])) & cs2a[1].sout) & cs4a[1].sout) # ((( dataa_node[10..10], dataa_node[]) & (! cs2a[1].sout)) & cs4a[1].sout))))); le8a[].in = (! ((! (((! ( dataa_node[], B"0")) & cs2a[2].sout) & (! cs4a[2].sout))) & (! ((((! ( dataa_node[10..10], dataa_node[])) & cs2a[2].sout) & cs4a[2].sout) # ((( dataa_node[10..10], dataa_node[]) & (! cs2a[2].sout)) & cs4a[2].sout))))); le9a[].in = (! ((! (((! ( dataa_node[], B"0")) & cs2a[3].sout) & (! cs4a[3].sout))) & (! ((((! ( dataa_node[10..10], dataa_node[])) & cs2a[3].sout) & cs4a[3].sout) # ((( dataa_node[10..10], dataa_node[]) & (! cs2a[3].sout)) & cs4a[3].sout))))); sft11a[].in = ( w364w, ( (! w13w[11..11]), ( le5a[10..10].out, ( sft17a[15..15].out, ( sft17a[14..14].out, ( sft17a[13..13].out, ( sft17a[12..12].out, ( sft17a[11..11].out, ( sft17a[10..10].out, ( sft17a[9..9].out, ( sft17a[8..8].out, ( sft17a[7..7].out, ( sft17a[6..6].out, ( sft17a[5..5].out, ( sft17a[4..4].out, ( sft17a[3..3].out, ( sft17a[2..2].out, ( le7a[1..1].out, ( le7a[0..0].out, ( le6a[1..0].out)))))))))))))))))))); sft12a[].in = ( w388w, ( sft17a[17..17].out, ( sft17a[16..16].out, ( sft21a[13..13].out, ( sft21a[12..12].out, ( sft21a[11..11].out, ( sft21a[10..10].out, ( sft21a[9..9].out, ( sft21a[8..8].out, ( sft21a[7..7].out, ( sft21a[6..6].out, ( sft21a[5..5].out, ( sft21a[4..4].out, ( sft21a[3..3].out, ( sft21a[2..2].out, ( sft21a[1..1].out, ( sft21a[0..0].out, ( sft17a[1..1].out, ( sft17a[0..0].out, ( w388w, cs2a[0].sout)))))))))))))))))))); sft13a[].in = add10_result[]; sft15a[].in = ( w388w, ( w364w, ( le5a[9..9].out, ( le5a[8..8].out, ( le5a[7..7].out, ( le5a[6..6].out, ( le5a[5..5].out, ( le5a[4..4].out, ( le5a[3..3].out, ( le5a[2..2].out, ( le5a[1..1].out, ( le5a[0..0].out, ( le9a[1..1].out, ( le9a[0..0].out, ( le8a[1..1].out, ( le8a[0..0].out, ( le6a[3..2].out))))))))))))))))); sft16a[].in = ( w388w, ( w388w, ( (! w311w[11..11]), ( le9a[10..10].out, ( le9a[9..9].out, ( sft25a[8..8].out, ( sft25a[7..7].out, ( sft25a[6..6].out, ( sft25a[5..5].out, ( sft25a[4..4].out, ( sft25a[3..3].out, ( sft25a[2..2].out, ( sft25a[1..1].out, ( sft25a[0..0].out, ( le7a[3..3].out, ( le7a[2..2].out, ( w388w, cs2a[1].sout))))))))))))))))); sft17a[].in = add14_result[]; sft19a[].in = ( w388w, ( w364w, ( (! w258w[11..11]), ( le9a[8..8].out, ( le9a[7..7].out, ( le9a[6..6].out, ( le9a[5..5].out, ( le9a[4..4].out, ( le9a[3..3].out, ( le9a[2..2].out, ( le8a[3..3].out, ( le8a[2..2].out, ( le6a[5..5].out, cs2a[2].sout))))))))))))); sft20a[].in = ( w388w, ( w388w, ( sft25a[9..9].out, ( le8a[10..10].out, ( sft29a[5..5].out, ( sft29a[4..4].out, ( sft29a[3..3].out, ( sft29a[2..2].out, ( sft29a[1..1].out, ( sft29a[0..0].out, ( le7a[5..5].out, ( le7a[4..4].out, ( w388w, le6a[4..4].out))))))))))))); sft21a[].in = add18_result[]; sft23a[].in = ( w388w, ( w364w, ( le8a[9..9].out, ( le8a[8..8].out, ( le8a[7..7].out, ( le8a[6..6].out, ( le8a[5..5].out, ( le8a[4..4].out, ( le6a[7..6].out))))))))); sft24a[].in = ( w388w, ( w388w, ( (! w211w[11..11]), ( le7a[10..10].out, ( le7a[9..9].out, ( le7a[8..8].out, ( le7a[7..7].out, ( le7a[6..6].out, ( w388w, cs2a[3].sout))))))))); sft25a[].in = add22_result[]; sft27a[].in = ( w388w, ( w364w, ( (! w160w[11..11]), ( le6a[10..10].out, ( le6a[9..8].out))))); sft28a[].in = ( w388w, ( w388w, ( w364w, ( w388w, ( w388w, w12w[9..9]))))); sft29a[].in = add26_result[]; dataa_node[] = ( datab[10..0]); datab_node[] = ( dataa[9..0]); final_result_node[] = ( w588w[20..0]); result[] = ( final_result_node[20..0]); w12w[] = datab_node[]; w13w[] = le5a[].out; w160w[] = le6a[].out; w211w[] = le7a[].out; w258w[] = le8a[].out; w311w[] = le9a[].out; w364w = B"1"; w388w = B"0"; w588w[] = ( sft13a[20..19].out, sft13a[18..17].out, sft13a[16..15].out, sft13a[14..13].out, sft13a[12..11].out, sft13a[10..9].out, sft13a[8..7].out, sft13a[6..5].out, sft13a[4..3].out, sft13a[2..1].out, sft13a[0..0].out); END; --VALID FILE