⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mult_4sm.tdf

📁 基于cyclone系列FPGA的模拟幅度调制的VHDL代码
💻 TDF
字号:
--lpm_mult CBX_DECLARE_ALL_CONNECTED_PORTS="OFF" DEVICE_FAMILY="Cyclone" DSP_BLOCK_BALANCING="Auto" LPM_REPRESENTATION="SIGNED" LPM_WIDTHA=11 LPM_WIDTHB=11 LPM_WIDTHP=11 MAXIMIZE_SPEED=5 dataa datab result CARRY_CHAIN="MANUAL" CARRY_CHAIN_LENGTH=48
--VERSION_BEGIN 7.2 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: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 carry_sum (cin, sin)
RETURNS ( cout, sout);
FUNCTION lcell (in)
RETURNS ( out);
FUNCTION soft (in)
RETURNS ( out);

--synthesis_resources = lut 163 
SUBDESIGN mult_4sm
( 
	dataa[10..0]	:	input;
	datab[10..0]	:	input;
	result[10..0]	:	output;
) 
VARIABLE
	add13_result[18..0]	:	WIRE;
	add17_result[15..0]	:	WIRE;
	add21_result[11..0]	:	WIRE;
	add25_result[7..0]	:	WIRE;
	add29_result[3..0]	:	WIRE;
	add9_result[21..0]	:	WIRE;
	cs1a[5..0] : carry_sum;
	cs3a[4..0] : carry_sum;
	le2a[10..0] : lcell;
	le4a[11..0] : lcell;
	le5a[11..0] : lcell;
	le6a[11..0] : lcell;
	le7a[11..0] : lcell;
	le8a[11..0] : lcell;
	sft10a[21..0] : soft;
	sft11a[21..0] : soft;
	sft12a[21..0] : soft;
	sft14a[18..0] : soft;
	sft15a[18..0] : soft;
	sft16a[18..0] : soft;
	sft18a[15..0] : soft;
	sft19a[15..0] : soft;
	sft20a[15..0] : soft;
	sft22a[11..0] : soft;
	sft23a[11..0] : soft;
	sft24a[11..0] : soft;
	sft26a[7..0] : soft;
	sft27a[7..0] : soft;
	sft28a[7..0] : soft;
	sft30a[3..0] : soft;
	sft31a[3..0] : soft;
	sft32a[3..0] : soft;
	dataa_node[10..0]	: WIRE;
	datab_node[10..0]	: WIRE;
	final_result_node[21..0]	: WIRE;
	w12w[10..0]	: WIRE;
	w14w[10..0]	: WIRE;
	w164w[11..0]	: WIRE;
	w165w[11..0]	: WIRE;
	w166w[11..0]	: WIRE;
	w175w[11..0]	: WIRE;
	w176w[11..0]	: WIRE;
	w192w	: WIRE;
	w213w	: WIRE;
	w216w	: WIRE;
	w218w[11..0]	: WIRE;
	w219w[11..0]	: WIRE;
	w220w[11..0]	: WIRE;
	w228w[11..0]	: WIRE;
	w229w[11..0]	: WIRE;
	w254w	: WIRE;
	w256w	: WIRE;
	w260w	: WIRE;
	w262w	: WIRE;
	w263w[11..0]	: WIRE;
	w264w[11..0]	: WIRE;
	w265w[11..0]	: WIRE;
	w273w[11..0]	: WIRE;
	w274w[11..0]	: WIRE;
	w291w	: WIRE;
	w293w	: WIRE;
	w295w	: WIRE;
	w297w	: WIRE;
	w299w	: WIRE;
	w301w	: WIRE;
	w303w	: WIRE;
	w305w	: WIRE;
	w307w	: WIRE;
	w309w	: WIRE;
	w313w	: WIRE;
	w315w	: WIRE;
	w316w[11..0]	: WIRE;
	w317w[11..0]	: WIRE;
	w318w[11..0]	: WIRE;
	w326w[11..0]	: WIRE;
	w327w[11..0]	: WIRE;
	w344w	: WIRE;
	w346w	: WIRE;
	w348w	: WIRE;
	w350w	: WIRE;
	w352w	: WIRE;
	w354w	: WIRE;
	w356w	: WIRE;
	w358w	: WIRE;
	w360w	: WIRE;
	w362w	: WIRE;
	w366w	: WIRE;
	w368w	: WIRE;
	w369w[11..0]	: WIRE;
	w370w[11..0]	: WIRE;
	w371w[11..0]	: WIRE;
	w379w[11..0]	: WIRE;
	w380w[11..0]	: WIRE;
	w397w	: WIRE;
	w399w	: WIRE;
	w401w	: WIRE;
	w403w	: WIRE;
	w405w	: WIRE;
	w407w	: WIRE;
	w409w	: WIRE;
	w411w	: WIRE;
	w413w	: WIRE;
	w415w	: WIRE;
	w419w	: WIRE;
	w421w	: WIRE;
	w422w	: WIRE;
	w423w	: WIRE;
	w424w	: WIRE;
	w425w	: WIRE;
	w426w	: WIRE;
	w427w	: WIRE;
	w429w	: WIRE;
	w430w	: WIRE;
	w431w	: WIRE;
	w432w	: WIRE;
	w433w	: WIRE;
	w434w	: WIRE;
	w435w	: WIRE;
	w436w	: WIRE;
	w437w	: WIRE;
	w438w	: WIRE;
	w439w	: WIRE;
	w440w	: WIRE;
	w441w	: WIRE;
	w442w	: WIRE;
	w443w	: WIRE;
	w444w	: WIRE;
	w445w	: WIRE;
	w448w	: WIRE;
	w681w[21..0]	: WIRE;
	w7w[11..0]	: WIRE;

BEGIN 
	add13_result[] = sft14a[].out + sft15a[].out;
	add17_result[] = sft18a[].out + sft19a[].out;
	add21_result[] = sft22a[].out + sft23a[].out;
	add25_result[] = sft26a[].out + sft27a[].out;
	add29_result[] = sft30a[].out + sft31a[].out;
	add9_result[] = sft10a[].out + sft11a[].out;
	cs1a[].cin = ( B"0", ((w7w[8..8] & cs1a[3].cout) # w7w[9..9]), ((w7w[6..6] & cs1a[2].cout) # w7w[7..7]), ((w7w[4..4] & cs1a[1].cout) # w7w[5..5]), ((w7w[2..2] & cs1a[0].cout) # w7w[3..3]), w7w[1..1]);
	cs1a[].sin = ( cs1a[4].cout, ((((((! w7w[9..9]) & w7w[8..8]) & cs1a[3].cout) # ((w7w[9..9] & w7w[8..8]) & (! cs1a[3].cout))) # ((w7w[9..9] & (! w7w[8..8])) & cs1a[3].cout)) # ((w7w[9..9] & (! w7w[8..8])) & (! cs1a[3].cout))), ((((((! w7w[7..7]) & w7w[6..6]) & cs1a[2].cout) # ((w7w[7..7] & w7w[6..6]) & (! cs1a[2].cout))) # ((w7w[7..7] & (! w7w[6..6])) & cs1a[2].cout)) # ((w7w[7..7] & (! w7w[6..6])) & (! cs1a[2].cout))), ((((((! w7w[5..5]) & w7w[4..4]) & cs1a[1].cout) # ((w7w[5..5] & w7w[4..4]) & (! cs1a[1].cout))) # ((w7w[5..5] & (! w7w[4..4])) & cs1a[1].cout)) # ((w7w[5..5] & (! w7w[4..4])) & (! cs1a[1].cout))), ((((((! w7w[3..3]) & w7w[2..2]) & cs1a[0].cout) # ((w7w[3..3] & w7w[2..2]) & (! cs1a[0].cout))) # ((w7w[3..3] & (! w7w[2..2])) & cs1a[0].cout)) # ((w7w[3..3] & (! w7w[2..2])) & (! cs1a[0].cout))), w7w[1..1]);
	cs3a[].cin = ( ((w7w[8..8] & cs3a[3].cout) # w7w[9..9]), ((w7w[6..6] & cs3a[2].cout) # w7w[7..7]), ((w7w[4..4] & cs3a[1].cout) # w7w[5..5]), ((w7w[2..2] & cs3a[0].cout) # w7w[3..3]), w7w[1..1]);
	cs3a[].sin = ( ((((((! w7w[9..9]) & (! w7w[8..8])) & cs3a[3].cout) # (((! w7w[9..9]) & w7w[8..8]) & (! cs3a[3].cout))) # ((w7w[9..9] & w7w[8..8]) & (! cs3a[3].cout))) # ((w7w[9..9] & (! w7w[8..8])) & cs3a[3].cout)), ((((((! w7w[7..7]) & (! w7w[6..6])) & cs3a[2].cout) # (((! w7w[7..7]) & w7w[6..6]) & (! cs3a[2].cout))) # ((w7w[7..7] & w7w[6..6]) & (! cs3a[2].cout))) # ((w7w[7..7] & (! w7w[6..6])) & cs3a[2].cout)), ((((((! w7w[5..5]) & (! w7w[4..4])) & cs3a[1].cout) # (((! w7w[5..5]) & w7w[4..4]) & (! cs3a[1].cout))) # ((w7w[5..5] & w7w[4..4]) & (! cs3a[1].cout))) # ((w7w[5..5] & (! w7w[4..4])) & cs3a[1].cout)), ((((((! w7w[3..3]) & (! w7w[2..2])) & cs3a[0].cout) # (((! w7w[3..3]) & w7w[2..2]) & (! cs3a[0].cout))) # ((w7w[3..3] & w7w[2..2]) & (! cs3a[0].cout))) # ((w7w[3..3] & (! w7w[2..2])) & cs3a[0].cout)), w7w[0..0]);
	le2a[].in = (((w7w[10..10] & cs1a[5].sout) # ((w7w[10..10] & (! cs1a[5].sout)) & (! w14w[]))) # (((! w7w[10..10]) & cs1a[5].sout) & w14w[]));
	le4a[].in = (! ((! w175w[]) & (! w176w[])));
	le5a[].in = (! ((! w228w[]) & (! w229w[])));
	le6a[].in = (! ((! w273w[]) & (! w274w[])));
	le7a[].in = (! ((! w326w[]) & (! w327w[])));
	le8a[].in = (! ((! w379w[]) & (! w380w[])));
	sft10a[].in = ( w422w, ( (! w12w[10..10]), ( w443w, ( w427w, ( w415w, ( w413w, ( w362w, ( w360w, ( w309w, ( w307w, ( w256w, ( w213w, ( w301w, ( w299w, ( w297w, ( w295w, ( w293w, ( w291w, ( w218w[1..1], ( w218w[0..0], ( w164w[1..0])))))))))))))))))))));
	sft11a[].in = ( w448w, ( w445w, ( w444w, ( w442w, ( w440w, ( w426w, ( w411w, ( w409w, ( w358w, ( w356w, ( w305w, ( w254w, ( w350w, ( w348w, ( w346w, ( w344w, ( w430w, ( w315w, ( w429w, ( w262w, ( w448w, w216w)))))))))))))))))))));
	sft12a[].in = add9_result[];
	sft14a[].in = ( w448w, ( w12w[9..9], ( w12w[8..8], ( w12w[7..7], ( w12w[6..6], ( w12w[5..5], ( w12w[4..4], ( w12w[3..3], ( w12w[2..2], ( w354w, ( w303w, ( w369w[1..1], ( w369w[0..0], ( w316w[1..1], ( w316w[0..0], ( w263w[1..1], ( w263w[0..0], ( w164w[3..2]))))))))))))))))));
	sft15a[].in = ( w448w, ( (! w369w[11..11]), ( w369w[10..10], ( w369w[9..9], ( w439w, ( w437w, ( w425w, ( w407w, ( w405w, ( w423w, ( w401w, ( w399w, ( w397w, ( w431w, ( w368w, ( w218w[3..3], ( w218w[2..2], ( w448w, w260w))))))))))))))))));
	sft16a[].in = add13_result[];
	sft18a[].in = ( w448w, ( w422w, ( (! w316w[11..11]), ( w369w[8..8], ( w369w[7..7], ( w369w[6..6], ( w434w, ( w424w, ( w12w[1..1], ( w12w[0..0], ( w316w[3..3], ( w316w[2..2], ( w263w[3..3], ( w263w[2..2], ( w164w[5..5], w313w)))))))))))))));
	sft19a[].in = ( w448w, ( w448w, ( w441w, ( w316w[10..10], ( w438w, ( w436w, ( w435w, ( w433w, ( w403w, ( w352w, ( w432w, ( w421w, ( w218w[5..5], ( w218w[4..4], ( w448w, w164w[4..4])))))))))))))));
	sft20a[].in = add17_result[];
	sft22a[].in = ( w448w, ( w422w, ( w316w[9..9], ( w316w[8..8], ( w369w[5..5], ( w369w[4..4], ( w369w[3..3], ( w369w[2..2], ( w263w[5..5], ( w263w[4..4], ( w164w[7..6])))))))))));
	sft23a[].in = ( w448w, ( w448w, ( (! w263w[11..11]), ( w263w[10..10], ( w316w[7..7], ( w316w[6..6], ( w316w[5..5], ( w316w[4..4], ( w218w[7..7], ( w218w[6..6], ( w448w, w366w)))))))))));
	sft24a[].in = add21_result[];
	sft26a[].in = ( w448w, ( w422w, ( w263w[9..9], ( w263w[8..8], ( w263w[7..7], ( w263w[6..6], ( w164w[9..9], w419w)))))));
	sft27a[].in = ( w448w, ( w448w, ( (! w218w[11..11]), ( w218w[10..10], ( w218w[9..9], ( w218w[8..8], ( w448w, w164w[8..8])))))));
	sft28a[].in = add25_result[];
	sft30a[].in = ( w448w, ( w422w, ( (! w164w[11..11]), w7w[10..10])));
	sft31a[].in = ( w448w, ( w448w, ( w422w, w164w[10..10])));
	sft32a[].in = add29_result[];
	dataa_node[] = ( dataa[10..0]);
	datab_node[] = ( datab[10..0]);
	final_result_node[] = ( w681w[21..0]);
	result[] = ( final_result_node[21..11]);
	w12w[] = le2a[].out;
	w14w[] = dataa_node[];
	w164w[] = le4a[].out;
	w165w[] = ( dataa_node[], B"0");
	w166w[] = ( dataa_node[10..10], dataa_node[]);
	w175w[] = (((! w165w[]) & cs1a[0].sout) & (! cs3a[0].sout));
	w176w[] = ((((! w166w[]) & cs1a[0].sout) & cs3a[0].sout) # ((w166w[] & (! cs1a[0].sout)) & cs3a[0].sout));
	w192w = sft12a[0..0].out;
	w213w = sft16a[8..8].out;
	w216w = cs1a[0].sout;
	w218w[] = le5a[].out;
	w219w[] = ( dataa_node[], B"0");
	w220w[] = ( dataa_node[10..10], dataa_node[]);
	w228w[] = (((! w219w[]) & cs1a[1].sout) & (! cs3a[1].sout));
	w229w[] = ((((! w220w[]) & cs1a[1].sout) & cs3a[1].sout) # ((w220w[] & (! cs1a[1].sout)) & cs3a[1].sout));
	w254w = sft20a[6..6].out;
	w256w = sft16a[9..9].out;
	w260w = cs1a[1].sout;
	w262w = sft16a[0..0].out;
	w263w[] = le6a[].out;
	w264w[] = ( dataa_node[], B"0");
	w265w[] = ( dataa_node[10..10], dataa_node[]);
	w273w[] = (((! w264w[]) & cs1a[2].sout) & (! cs3a[2].sout));
	w274w[] = ((((! w265w[]) & cs1a[2].sout) & cs3a[2].sout) # ((w265w[] & (! cs1a[2].sout)) & cs3a[2].sout));
	w291w = sft16a[2..2].out;
	w293w = sft16a[3..3].out;
	w295w = sft16a[4..4].out;
	w297w = sft16a[5..5].out;
	w299w = sft16a[6..6].out;
	w301w = sft16a[7..7].out;
	w303w = sft24a[4..4].out;
	w305w = sft20a[7..7].out;
	w307w = sft16a[10..10].out;
	w309w = sft16a[11..11].out;
	w313w = cs1a[2].sout;
	w315w = sft20a[0..0].out;
	w316w[] = le7a[].out;
	w317w[] = ( dataa_node[], B"0");
	w318w[] = ( dataa_node[10..10], dataa_node[]);
	w326w[] = (((! w317w[]) & cs1a[3].sout) & (! cs3a[3].sout));
	w327w[] = ((((! w318w[]) & cs1a[3].sout) & cs3a[3].sout) # ((w318w[] & (! cs1a[3].sout)) & cs3a[3].sout));
	w344w = sft20a[2..2].out;
	w346w = sft20a[3..3].out;
	w348w = sft20a[4..4].out;
	w350w = sft20a[5..5].out;
	w352w = sft32a[0..0].out;
	w354w = sft24a[5..5].out;
	w356w = sft20a[8..8].out;
	w358w = sft20a[9..9].out;
	w360w = sft16a[12..12].out;
	w362w = sft16a[13..13].out;
	w366w = cs1a[3].sout;
	w368w = sft24a[0..0].out;
	w369w[] = le8a[].out;
	w370w[] = ( dataa_node[], B"0");
	w371w[] = ( dataa_node[10..10], dataa_node[]);
	w379w[] = (((! w370w[]) & cs1a[4].sout) & (! cs3a[4].sout));
	w380w[] = ((((! w371w[]) & cs1a[4].sout) & cs3a[4].sout) # ((w371w[] & (! cs1a[4].sout)) & cs3a[4].sout));
	w397w = sft24a[2..2].out;
	w399w = sft24a[3..3].out;
	w401w = sft28a[2..2].out;
	w403w = sft32a[1..1].out;
	w405w = sft24a[6..6].out;
	w407w = sft24a[7..7].out;
	w409w = sft20a[10..10].out;
	w411w = sft20a[11..11].out;
	w413w = sft16a[14..14].out;
	w415w = sft16a[15..15].out;
	w419w = cs1a[4].sout;
	w421w = sft28a[0..0].out;
	w422w = B"1";
	w423w = sft28a[3..3].out;
	w424w = sft28a[4..4].out;
	w425w = sft24a[8..8].out;
	w426w = sft20a[12..12].out;
	w427w = sft16a[16..16].out;
	w429w = sft16a[1..1].out;
	w430w = sft20a[1..1].out;
	w431w = sft24a[1..1].out;
	w432w = sft28a[1..1].out;
	w433w = sft32a[2..2].out;
	w434w = sft28a[5..5].out;
	w435w = sft32a[3..3].out;
	w436w = sft28a[6..6].out;
	w437w = sft24a[9..9].out;
	w438w = sft28a[7..7].out;
	w439w = sft24a[10..10].out;
	w440w = sft20a[13..13].out;
	w441w = sft24a[11..11].out;
	w442w = sft20a[14..14].out;
	w443w = sft16a[17..17].out;
	w444w = sft20a[15..15].out;
	w445w = sft16a[18..18].out;
	w448w = B"0";
	w681w[] = ( sft12a[21..21].out, sft12a[20..20].out, sft12a[19..19].out, sft12a[18..18].out, sft12a[17..17].out, sft12a[16..16].out, sft12a[15..15].out, sft12a[14..14].out, sft12a[13..13].out, sft12a[12..12].out, sft12a[11..11].out, sft12a[10..10].out, sft12a[9..9].out, sft12a[8..8].out, sft12a[7..7].out, sft12a[6..6].out, sft12a[5..5].out, sft12a[4..4].out, sft12a[3..3].out, sft12a[2..2].out, sft12a[1..1].out, sft12a[0..0].out);
	w7w[] = ( datab_node[10..10], datab_node[]);
END;
--VALID FILE

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -