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