www.pudn.com > interupt.rar > mult_4hm.tdf
--lpm_mult CBX_DECLARE_ALL_CONNECTED_PORTS="OFF" DEDICATED_MULTIPLIER_CIRCUITRY="NO" DEVICE_FAMILY="Cyclone" LPM_PIPELINE=0 LPM_WIDTHA=32 LPM_WIDTHB=4 LPM_WIDTHP=36 MAXIMIZE_SPEED=5 dataa datab result CARRY_CHAIN="MANUAL" CARRY_CHAIN_LENGTH=48 --VERSION_BEGIN 7.2SP3 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_stratix 2007:10:18:20:36:46:SJ cbx_stratixii 2007:10:19:15:30:42:SJ cbx_util_mgl 2007:11:07:17:40:20: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 carry_sum (cin, sin) RETURNS ( cout, sout); FUNCTION lcell (in) RETURNS ( out); FUNCTION soft (in) RETURNS ( out); --synthesis_resources = lut 185 SUBDESIGN mult_4hm ( dataa[31..0] : input; datab[3..0] : input; result[35..0] : output; ) VARIABLE add13_result[35..0] : WIRE; add17_result[2..0] : WIRE; add9_result[38..0] : WIRE; cs4a[2..0] : carry_sum; cs5a[2..0] : carry_sum; le6a[33..0] : lcell; le7a[33..0] : lcell; le8a[32..0] : lcell; sft10a[38..0] : soft; sft11a[38..0] : soft; sft12a[38..0] : soft; sft14a[35..0] : soft; sft15a[35..0] : soft; sft16a[35..0] : soft; sft18a[2..0] : soft; sft19a[2..0] : soft; sft20a[2..0] : soft; dataa_node[31..0] : WIRE; datab_node[3..0] : WIRE; final_result_node[35..0] : WIRE; w106w[33..0] : WIRE; w107w[33..0] : WIRE; w108w[33..0] : WIRE; w121w[33..0] : WIRE; w122w[33..0] : WIRE; w138w : WIRE; w207w : WIRE; w209w[33..0] : WIRE; w210w[33..0] : WIRE; w211w[33..0] : WIRE; w224w[33..0] : WIRE; w225w[33..0] : WIRE; w278w : WIRE; w280w : WIRE; w281w[32..0] : WIRE; w282w[32..0] : WIRE; w283w[32..0] : WIRE; w296w : WIRE; w298w : WIRE; w300w : WIRE; w302w : WIRE; w304w : WIRE; w306w : WIRE; w308w : WIRE; w310w : WIRE; w312w : WIRE; w314w : WIRE; w316w : WIRE; w318w : WIRE; w320w : WIRE; w322w : WIRE; w324w : WIRE; w326w : WIRE; w328w : WIRE; w330w : WIRE; w332w : WIRE; w334w : WIRE; w336w : WIRE; w338w : WIRE; w340w : WIRE; w342w : WIRE; w344w : WIRE; w346w : WIRE; w348w : WIRE; w350w : WIRE; w352w : WIRE; w354w : WIRE; w359w : WIRE; w360w : WIRE; w361w : WIRE; w364w : WIRE; w365w : WIRE; w366w : WIRE; w367w : WIRE; w368w : WIRE; w369w : WIRE; w372w : WIRE; w43w[5..0] : WIRE; w601w[38..0] : WIRE; BEGIN add13_result[] = sft14a[].out + sft15a[].out; add17_result[] = sft18a[].out + sft19a[].out; add9_result[] = sft10a[].out + sft11a[].out; cs4a[].cin = ( ((w43w[4..4] & cs4a[1].cout) # w43w[5..5]), ((w43w[2..2] & cs4a[0].cout) # w43w[3..3]), w43w[1..1]); cs4a[].sin = ( ((((((! w43w[5..5]) & w43w[4..4]) & cs4a[1].cout) # ((w43w[5..5] & w43w[4..4]) & (! cs4a[1].cout))) # ((w43w[5..5] & (! w43w[4..4])) & cs4a[1].cout)) # ((w43w[5..5] & (! w43w[4..4])) & (! cs4a[1].cout))), ((((((! w43w[3..3]) & w43w[2..2]) & cs4a[0].cout) # ((w43w[3..3] & w43w[2..2]) & (! cs4a[0].cout))) # ((w43w[3..3] & (! w43w[2..2])) & cs4a[0].cout)) # ((w43w[3..3] & (! w43w[2..2])) & (! cs4a[0].cout))), w43w[1..1]); cs5a[].cin = ( ((w43w[4..4] & cs5a[1].cout) # w43w[5..5]), ((w43w[2..2] & cs5a[0].cout) # w43w[3..3]), w43w[1..1]); cs5a[].sin = ( ((((((! w43w[5..5]) & (! w43w[4..4])) & cs5a[1].cout) # (((! w43w[5..5]) & w43w[4..4]) & (! cs5a[1].cout))) # ((w43w[5..5] & w43w[4..4]) & (! cs5a[1].cout))) # ((w43w[5..5] & (! w43w[4..4])) & cs5a[1].cout)), ((((((! w43w[3..3]) & (! w43w[2..2])) & cs5a[0].cout) # (((! w43w[3..3]) & w43w[2..2]) & (! cs5a[0].cout))) # ((w43w[3..3] & w43w[2..2]) & (! cs5a[0].cout))) # ((w43w[3..3] & (! w43w[2..2])) & cs5a[0].cout)), w43w[0..0]); le6a[].in = (! ((! w121w[]) & (! w122w[]))); le7a[].in = (! ((! w224w[]) & (! w225w[]))); le8a[].in = ((cs4a[2].sout & w282w[]) # (cs5a[2].sout & w283w[])); sft10a[].in = ( w359w, ( w359w, ( w281w[32..32], ( w366w, ( w361w, ( w354w, ( w281w[28..28], ( w281w[27..27], ( w281w[26..26], ( w281w[25..25], ( w281w[24..24], ( w281w[23..23], ( w281w[22..22], ( w281w[21..21], ( w281w[20..20], ( w281w[19..19], ( w281w[18..18], ( w281w[17..17], ( w281w[16..16], ( w281w[15..15], ( w281w[14..14], ( w281w[13..13], ( w281w[12..12], ( w281w[11..11], ( w281w[10..10], ( w281w[9..9], ( w281w[8..8], ( w281w[7..7], ( w281w[6..6], ( w281w[5..5], ( w281w[4..4], ( w281w[3..3], ( w281w[2..2], ( w281w[1..1], ( w281w[0..0], ( w209w[1..1], ( w209w[0..0], ( w106w[1..0])))))))))))))))))))))))))))))))))))))); sft11a[].in = ( w372w, ( w369w, ( w368w, ( w367w, ( w365w, ( w360w, ( w352w, ( w350w, ( w348w, ( w346w, ( w344w, ( w342w, ( w340w, ( w338w, ( w336w, ( w334w, ( w332w, ( w330w, ( w328w, ( w326w, ( w324w, ( w322w, ( w320w, ( w318w, ( w316w, ( w314w, ( w312w, ( w310w, ( w308w, ( w306w, ( w304w, ( w302w, ( w300w, ( w298w, ( w296w, ( w364w, ( w280w, ( w372w, w207w)))))))))))))))))))))))))))))))))))))); sft12a[].in = add9_result[]; sft14a[].in = ( w372w, ( w359w, ( w281w[31..31], ( w281w[30..30], ( w281w[29..29], ( w209w[30..30], ( w209w[29..29], ( w209w[28..28], ( w209w[27..27], ( w209w[26..26], ( w209w[25..25], ( w209w[24..24], ( w209w[23..23], ( w209w[22..22], ( w209w[21..21], ( w209w[20..20], ( w209w[19..19], ( w209w[18..18], ( w209w[17..17], ( w209w[16..16], ( w209w[15..15], ( w209w[14..14], ( w209w[13..13], ( w209w[12..12], ( w209w[11..11], ( w209w[10..10], ( w209w[9..9], ( w209w[8..8], ( w209w[7..7], ( w209w[6..6], ( w209w[5..5], ( w209w[4..4], ( w209w[3..3], ( w209w[2..2], ( w106w[3..2]))))))))))))))))))))))))))))))))))); sft15a[].in = ( w372w, ( w372w, ( (! w209w[33..33]), ( w209w[32..32], ( w209w[31..31], ( w106w[32..32], ( w106w[31..31], ( w106w[30..30], ( w106w[29..29], ( w106w[28..28], ( w106w[27..27], ( w106w[26..26], ( w106w[25..25], ( w106w[24..24], ( w106w[23..23], ( w106w[22..22], ( w106w[21..21], ( w106w[20..20], ( w106w[19..19], ( w106w[18..18], ( w106w[17..17], ( w106w[16..16], ( w106w[15..15], ( w106w[14..14], ( w106w[13..13], ( w106w[12..12], ( w106w[11..11], ( w106w[10..10], ( w106w[9..9], ( w106w[8..8], ( w106w[7..7], ( w106w[6..6], ( w106w[5..5], ( w106w[4..4], ( w372w, w278w))))))))))))))))))))))))))))))))))); sft16a[].in = add13_result[]; sft18a[].in = ( w372w, ( w359w, w359w)); sft19a[].in = ( w372w, ( w372w, (! w106w[33..33]))); sft20a[].in = add17_result[]; dataa_node[] = ( dataa[31..0]); datab_node[] = ( datab[3..0]); final_result_node[] = ( w601w[35..0]); result[] = ( final_result_node[35..0]); w106w[] = le6a[].out; w107w[] = ( B"0", dataa_node[], B"0"); w108w[] = ( B"0", B"0", dataa_node[]); w121w[] = (((! w107w[]) & cs4a[0].sout) & (! cs5a[0].sout)); w122w[] = ((((! w108w[]) & cs4a[0].sout) & cs5a[0].sout) # ((w108w[] & (! cs4a[0].sout)) & cs5a[0].sout)); w138w = sft12a[0..0].out; w207w = cs4a[0].sout; w209w[] = le7a[].out; w210w[] = ( B"0", dataa_node[], B"0"); w211w[] = ( B"0", B"0", dataa_node[]); w224w[] = (((! w210w[]) & cs4a[1].sout) & (! cs5a[1].sout)); w225w[] = ((((! w211w[]) & cs4a[1].sout) & cs5a[1].sout) # ((w211w[] & (! cs4a[1].sout)) & cs5a[1].sout)); w278w = cs4a[1].sout; w280w = sft16a[0..0].out; w281w[] = le8a[].out; w282w[] = ( dataa_node[], B"0"); w283w[] = ( B"0", dataa_node[]); w296w = sft16a[2..2].out; w298w = sft16a[3..3].out; w300w = sft16a[4..4].out; w302w = sft16a[5..5].out; w304w = sft16a[6..6].out; w306w = sft16a[7..7].out; w308w = sft16a[8..8].out; w310w = sft16a[9..9].out; w312w = sft16a[10..10].out; w314w = sft16a[11..11].out; w316w = sft16a[12..12].out; w318w = sft16a[13..13].out; w320w = sft16a[14..14].out; w322w = sft16a[15..15].out; w324w = sft16a[16..16].out; w326w = sft16a[17..17].out; w328w = sft16a[18..18].out; w330w = sft16a[19..19].out; w332w = sft16a[20..20].out; w334w = sft16a[21..21].out; w336w = sft16a[22..22].out; w338w = sft16a[23..23].out; w340w = sft16a[24..24].out; w342w = sft16a[25..25].out; w344w = sft16a[26..26].out; w346w = sft16a[27..27].out; w348w = sft16a[28..28].out; w350w = sft16a[29..29].out; w352w = sft16a[30..30].out; w354w = sft16a[31..31].out; w359w = B"1"; w360w = sft20a[0..0].out; w361w = sft16a[32..32].out; w364w = sft16a[1..1].out; w365w = sft20a[1..1].out; w366w = sft16a[33..33].out; w367w = sft20a[2..2].out; w368w = sft16a[34..34].out; w369w = sft16a[35..35].out; w372w = B"0"; w43w[] = ( B"00", datab_node[]); w601w[] = ( sft12a[38..37].out, sft12a[36..35].out, sft12a[34..33].out, sft12a[32..31].out, sft12a[30..29].out, sft12a[28..27].out, sft12a[26..25].out, sft12a[24..23].out, sft12a[22..21].out, sft12a[20..19].out, sft12a[18..17].out, sft12a[16..15].out, sft12a[14..13].out, sft12a[12..11].out, sft12a[10..9].out, sft12a[8..7].out, sft12a[6..5].out, sft12a[4..3].out, sft12a[2..1].out, sft12a[0..0].out); END; --VALID FILE