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

📄 mult_orn.tdf

📁 采用VHDL语言实现17阶的数字低通滤波器的设计
💻 TDF
字号:
--lpm_mult CBX_DECLARE_ALL_CONNECTED_PORTS="OFF" DEVICE_FAMILY="Cyclone" DSP_BLOCK_BALANCING="Auto" LPM_PIPELINE=0 LPM_REPRESENTATION="SIGNED" LPM_WIDTHA=12 LPM_WIDTHB=12 LPM_WIDTHP=24 LPM_WIDTHS=1 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 192 
SUBDESIGN mult_orn
( 
	dataa[11..0]	:	input;
	datab[11..0]	:	input;
	result[23..0]	:	output;
) 
VARIABLE
	add10_result[23..0]	:	WIRE;
	add14_result[20..0]	:	WIRE;
	add18_result[16..0]	:	WIRE;
	add22_result[12..0]	:	WIRE;
	add26_result[8..0]	:	WIRE;
	add30_result[4..0]	:	WIRE;
	cs1a[5..0] : carry_sum;
	cs3a[5..0] : carry_sum;
	le2a[12..0] : lcell;
	le4a[12..0] : lcell;
	le5a[12..0] : lcell;
	le6a[12..0] : lcell;
	le7a[12..0] : lcell;
	le8a[12..0] : lcell;
	le9a[12..0] : lcell;
	sft11a[23..0] : soft;
	sft12a[23..0] : soft;
	sft13a[23..0] : soft;
	sft15a[20..0] : soft;
	sft16a[20..0] : soft;
	sft17a[20..0] : soft;
	sft19a[16..0] : soft;
	sft20a[16..0] : soft;
	sft21a[16..0] : soft;
	sft23a[12..0] : soft;
	sft24a[12..0] : soft;
	sft25a[12..0] : soft;
	sft27a[8..0] : soft;
	sft28a[8..0] : soft;
	sft29a[8..0] : soft;
	sft31a[4..0] : soft;
	sft32a[4..0] : soft;
	sft33a[4..0] : soft;
	dataa_node[11..0]	: WIRE;
	datab_node[11..0]	: WIRE;
	final_result_node[23..0]	: WIRE;
	w10w[12..0]	: WIRE;
	w11w[12..0]	: WIRE;
	w185w[12..0]	: WIRE;
	w186w[12..0]	: WIRE;
	w187w[12..0]	: WIRE;
	w195w[12..0]	: WIRE;
	w196w[12..0]	: WIRE;
	w212w	: WIRE;
	w233w	: WIRE;
	w237w	: WIRE;
	w239w[12..0]	: WIRE;
	w240w[12..0]	: WIRE;
	w241w[12..0]	: WIRE;
	w249w[12..0]	: WIRE;
	w250w[12..0]	: WIRE;
	w275w	: WIRE;
	w277w	: WIRE;
	w279w	: WIRE;
	w283w	: WIRE;
	w285w	: WIRE;
	w286w[12..0]	: WIRE;
	w287w[12..0]	: WIRE;
	w288w[12..0]	: WIRE;
	w296w[12..0]	: WIRE;
	w297w[12..0]	: WIRE;
	w314w	: WIRE;
	w316w	: WIRE;
	w318w	: WIRE;
	w320w	: WIRE;
	w322w	: WIRE;
	w324w	: WIRE;
	w326w	: WIRE;
	w328w	: WIRE;
	w330w	: WIRE;
	w332w	: WIRE;
	w334w	: WIRE;
	w338w	: WIRE;
	w340w	: WIRE;
	w341w[12..0]	: WIRE;
	w342w[12..0]	: WIRE;
	w343w[12..0]	: WIRE;
	w351w[12..0]	: WIRE;
	w352w[12..0]	: WIRE;
	w369w	: WIRE;
	w371w	: WIRE;
	w373w	: WIRE;
	w375w	: WIRE;
	w377w	: WIRE;
	w379w	: WIRE;
	w381w	: WIRE;
	w383w	: WIRE;
	w385w	: WIRE;
	w387w	: WIRE;
	w389w	: WIRE;
	w393w	: WIRE;
	w395w	: WIRE;
	w396w[12..0]	: WIRE;
	w397w[12..0]	: WIRE;
	w398w[12..0]	: WIRE;
	w406w[12..0]	: WIRE;
	w407w[12..0]	: WIRE;
	w424w	: WIRE;
	w426w	: WIRE;
	w428w	: WIRE;
	w430w	: WIRE;
	w432w	: WIRE;
	w434w	: WIRE;
	w436w	: WIRE;
	w438w	: WIRE;
	w440w	: WIRE;
	w442w	: WIRE;
	w444w	: WIRE;
	w448w	: WIRE;
	w450w	: WIRE;
	w451w	: WIRE;
	w452w	: WIRE;
	w453w	: WIRE;
	w454w	: WIRE;
	w455w	: WIRE;
	w456w	: WIRE;
	w458w	: WIRE;
	w459w	: WIRE;
	w460w	: WIRE;
	w461w	: WIRE;
	w462w	: WIRE;
	w463w	: WIRE;
	w464w	: WIRE;
	w465w	: WIRE;
	w466w	: WIRE;
	w467w	: WIRE;
	w468w	: WIRE;
	w469w	: WIRE;
	w470w	: WIRE;
	w471w	: WIRE;
	w472w	: WIRE;
	w473w	: WIRE;
	w474w	: WIRE;
	w475w	: WIRE;
	w476w	: WIRE;
	w479w	: WIRE;
	w736w[23..0]	: WIRE;
	w7w[11..0]	: WIRE;
	w8w[12..0]	: WIRE;
	w9w[12..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;
	add30_result[] = sft31a[].out + sft32a[].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 = ( B"0", ((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[10..10] $ cs3a[4].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[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[11..11] & (! w7w[10..10])) & (! cs1a[5].sout)) & (! w10w[])) # ((((! w7w[11..11]) & w7w[10..10]) & cs1a[5].sout) & w10w[])) # ((w7w[11..11] & w7w[10..10]) & cs1a[5].sout));
	le4a[].in = (! ((! w9w[]) & (! (cs3a[5].sout & (w7w[11..11] $ w11w[])))));
	le5a[].in = (! ((! w195w[]) & (! w196w[])));
	le6a[].in = (! ((! w249w[]) & (! w250w[])));
	le7a[].in = (! ((! w296w[]) & (! w297w[])));
	le8a[].in = (! ((! w351w[]) & (! w352w[])));
	le9a[].in = (! ((! w406w[]) & (! w407w[])));
	sft11a[].in = ( w451w, ( (! w8w[12..12]), ( w8w[11..11], ( w473w, ( w456w, ( w444w, ( w442w, ( w389w, ( w387w, ( w334w, ( w332w, ( w279w, ( w277w, ( w233w, ( w324w, ( w322w, ( w320w, ( w318w, ( w316w, ( w314w, ( w239w[1..1], ( w239w[0..0], ( w185w[1..0])))))))))))))))))))))));
	sft12a[].in = ( w479w, ( w476w, ( w475w, ( w474w, ( w472w, ( w470w, ( w455w, ( w440w, ( w438w, ( w385w, ( w383w, ( w330w, ( w328w, ( w275w, ( w375w, ( w373w, ( w371w, ( w369w, ( w459w, ( w340w, ( w458w, ( w285w, ( w479w, w237w)))))))))))))))))))))));
	sft13a[].in = add10_result[];
	sft15a[].in = ( w479w, ( w451w, ( w8w[10..10], ( w8w[9..9], ( w8w[8..8], ( w8w[7..7], ( w8w[6..6], ( w8w[5..5], ( w8w[4..4], ( w8w[3..3], ( w381w, ( w8w[1..1], ( w326w, ( w396w[1..1], ( w396w[0..0], ( w341w[1..1], ( w341w[0..0], ( w286w[1..1], ( w286w[0..0], ( w185w[3..2]))))))))))))))))))));
	sft16a[].in = ( w479w, ( w479w, ( (! w396w[12..12]), ( w396w[11..11], ( w396w[10..10], ( w469w, ( w467w, ( w454w, ( w436w, ( w434w, ( w452w, ( w379w, ( w428w, ( w426w, ( w424w, ( w460w, ( w395w, ( w239w[3..3], ( w239w[2..2], ( w479w, w283w))))))))))))))))))));
	sft17a[].in = add14_result[];
	sft19a[].in = ( w479w, ( w451w, ( (! w341w[12..12]), ( w396w[9..9], ( w396w[8..8], ( w396w[7..7], ( w464w, ( w453w, ( w8w[2..2], ( w430w, ( w8w[0..0], ( w341w[3..3], ( w341w[2..2], ( w286w[3..3], ( w286w[2..2], ( w185w[5..5], w338w))))))))))))))));
	sft20a[].in = ( w479w, ( w479w, ( w471w, ( w341w[11..11], ( w468w, ( w466w, ( w465w, ( w463w, ( w432w, ( w462w, ( w377w, ( w461w, ( w450w, ( w239w[5..5], ( w239w[4..4], ( w479w, w185w[4..4]))))))))))))))));
	sft21a[].in = add18_result[];
	sft23a[].in = ( w479w, ( w451w, ( w341w[10..10], ( w341w[9..9], ( w396w[6..6], ( w396w[5..5], ( w396w[4..4], ( w396w[3..3], ( w396w[2..2], ( w286w[5..5], ( w286w[4..4], ( w185w[7..6]))))))))))));
	sft24a[].in = ( w479w, ( w479w, ( (! w286w[12..12]), ( w286w[11..11], ( w341w[8..8], ( w341w[7..7], ( w341w[6..6], ( w341w[5..5], ( w341w[4..4], ( w239w[7..7], ( w239w[6..6], ( w479w, w393w))))))))))));
	sft25a[].in = add22_result[];
	sft27a[].in = ( w479w, ( w451w, ( w286w[10..10], ( w286w[9..9], ( w286w[8..8], ( w286w[7..7], ( w286w[6..6], ( w185w[9..9], w448w))))))));
	sft28a[].in = ( w479w, ( w479w, ( (! w239w[12..12]), ( w239w[11..11], ( w239w[10..10], ( w239w[9..9], ( w239w[8..8], ( w479w, w185w[8..8]))))))));
	sft29a[].in = add26_result[];
	sft31a[].in = ( w479w, ( w451w, ( (! w185w[12..12]), ( w185w[11..11], w7w[11..11]))));
	sft32a[].in = ( w479w, ( w479w, ( w451w, ( w479w, w185w[10..10]))));
	sft33a[].in = add30_result[];
	dataa_node[] = ( dataa[11..0]);
	datab_node[] = ( datab[11..0]);
	final_result_node[] = ( w736w[23..0]);
	result[] = ( final_result_node[23..0]);
	w10w[] = ( dataa_node[], B"0");
	w11w[] = ( dataa_node[11..11], dataa_node[]);
	w185w[] = le5a[].out;
	w186w[] = ( dataa_node[], B"0");
	w187w[] = ( dataa_node[11..11], dataa_node[]);
	w195w[] = (((! w186w[]) & cs1a[0].sout) & (! cs3a[0].sout));
	w196w[] = ((((! w187w[]) & cs1a[0].sout) & cs3a[0].sout) # ((w187w[] & (! cs1a[0].sout)) & cs3a[0].sout));
	w212w = sft13a[0..0].out;
	w233w = sft17a[8..8].out;
	w237w = cs1a[0].sout;
	w239w[] = le6a[].out;
	w240w[] = ( dataa_node[], B"0");
	w241w[] = ( dataa_node[11..11], dataa_node[]);
	w249w[] = (((! w240w[]) & cs1a[1].sout) & (! cs3a[1].sout));
	w250w[] = ((((! w241w[]) & cs1a[1].sout) & cs3a[1].sout) # ((w241w[] & (! cs1a[1].sout)) & cs3a[1].sout));
	w275w = sft21a[6..6].out;
	w277w = sft17a[9..9].out;
	w279w = sft17a[10..10].out;
	w283w = cs1a[1].sout;
	w285w = sft17a[0..0].out;
	w286w[] = le7a[].out;
	w287w[] = ( dataa_node[], B"0");
	w288w[] = ( dataa_node[11..11], dataa_node[]);
	w296w[] = (((! w287w[]) & cs1a[2].sout) & (! cs3a[2].sout));
	w297w[] = ((((! w288w[]) & cs1a[2].sout) & cs3a[2].sout) # ((w288w[] & (! cs1a[2].sout)) & cs3a[2].sout));
	w314w = sft17a[2..2].out;
	w316w = sft17a[3..3].out;
	w318w = sft17a[4..4].out;
	w320w = sft17a[5..5].out;
	w322w = sft17a[6..6].out;
	w324w = sft17a[7..7].out;
	w326w = sft25a[4..4].out;
	w328w = sft21a[7..7].out;
	w330w = sft21a[8..8].out;
	w332w = sft17a[11..11].out;
	w334w = sft17a[12..12].out;
	w338w = cs1a[2].sout;
	w340w = sft21a[0..0].out;
	w341w[] = le8a[].out;
	w342w[] = ( dataa_node[], B"0");
	w343w[] = ( dataa_node[11..11], dataa_node[]);
	w351w[] = (((! w342w[]) & cs1a[3].sout) & (! cs3a[3].sout));
	w352w[] = ((((! w343w[]) & cs1a[3].sout) & cs3a[3].sout) # ((w343w[] & (! cs1a[3].sout)) & cs3a[3].sout));
	w369w = sft21a[2..2].out;
	w371w = sft21a[3..3].out;
	w373w = sft21a[4..4].out;
	w375w = sft21a[5..5].out;
	w377w = sft33a[0..0].out;
	w379w = sft25a[5..5].out;
	w381w = sft25a[6..6].out;
	w383w = sft21a[9..9].out;
	w385w = sft21a[10..10].out;
	w387w = sft17a[13..13].out;
	w389w = sft17a[14..14].out;
	w393w = cs1a[3].sout;
	w395w = sft25a[0..0].out;
	w396w[] = le9a[].out;
	w397w[] = ( dataa_node[], B"0");
	w398w[] = ( dataa_node[11..11], dataa_node[]);
	w406w[] = (((! w397w[]) & cs1a[4].sout) & (! cs3a[4].sout));
	w407w[] = ((((! w398w[]) & cs1a[4].sout) & cs3a[4].sout) # ((w398w[] & (! cs1a[4].sout)) & cs3a[4].sout));
	w424w = sft25a[2..2].out;
	w426w = sft25a[3..3].out;
	w428w = sft29a[2..2].out;
	w430w = sft29a[3..3].out;
	w432w = sft33a[2..2].out;
	w434w = sft25a[7..7].out;
	w436w = sft25a[8..8].out;
	w438w = sft21a[11..11].out;
	w440w = sft21a[12..12].out;
	w442w = sft17a[15..15].out;
	w444w = sft17a[16..16].out;
	w448w = cs1a[4].sout;
	w450w = sft29a[0..0].out;
	w451w = B"1";
	w452w = sft29a[4..4].out;
	w453w = sft29a[5..5].out;
	w454w = sft25a[9..9].out;
	w455w = sft21a[13..13].out;
	w456w = sft17a[17..17].out;
	w458w = sft17a[1..1].out;
	w459w = sft21a[1..1].out;
	w460w = sft25a[1..1].out;
	w461w = sft29a[1..1].out;
	w462w = sft33a[1..1].out;
	w463w = sft33a[3..3].out;
	w464w = sft29a[6..6].out;
	w465w = sft33a[4..4].out;
	w466w = sft29a[7..7].out;
	w467w = sft25a[10..10].out;
	w468w = sft29a[8..8].out;
	w469w = sft25a[11..11].out;
	w470w = sft21a[14..14].out;
	w471w = sft25a[12..12].out;
	w472w = sft21a[15..15].out;
	w473w = sft17a[18..18].out;
	w474w = sft21a[16..16].out;
	w475w = sft17a[19..19].out;
	w476w = sft17a[20..20].out;
	w479w = B"0";
	w736w[] = ( sft13a[23..23].out, sft13a[22..22].out, sft13a[21..21].out, sft13a[20..20].out, sft13a[19..19].out, sft13a[18..18].out, sft13a[17..17].out, sft13a[16..16].out, sft13a[15..15].out, sft13a[14..14].out, sft13a[13..13].out, sft13a[12..12].out, sft13a[11..11].out, sft13a[10..10].out, sft13a[9..9].out, sft13a[8..8].out, sft13a[7..7].out, sft13a[6..6].out, sft13a[5..5].out, sft13a[4..4].out, sft13a[3..3].out, sft13a[2..2].out, sft13a[1..1].out, sft13a[0..0].out);
	w7w[] = datab_node[];
	w8w[] = le4a[].out;
	w9w[] = le2a[].out;
END;
--VALID FILE

⌨️ 快捷键说明

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