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

📄 sign_div_unsign_b5g.tdf

📁 基于fpga的屏幕测试程序
💻 TDF
字号:
--sign_div_unsign DEN_REPRESENTATION="SIGNED" DEN_WIDTH=9 LPM_PIPELINE=0 MAXIMIZE_SPEED=9 NUM_REPRESENTATION="SIGNED" NUM_WIDTH=19 denominator numerator quotient remainder
--VERSION_BEGIN 5.0 cbx_cycloneii 2004:12:20:14:28:52:SJ cbx_lpm_add_sub 2005:04:12:13:30:42:SJ cbx_lpm_divide 2005:03:14:22:01:08:SJ cbx_mgl 2005:05:19:13:51:58:SJ cbx_stratix 2005:06:02:09:53:04:SJ cbx_stratixii 2004:12:22:13:27:12:SJ cbx_util_mgl 2005:04:04:13:50:06:SJ  VERSION_END


--  Copyright (C) 1988-2005 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 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 alt_u_div_3pd (denominator[8..0], numerator[18..0])
RETURNS ( den_out[8..0], quotient[18..0], remainder[8..0]);
FUNCTION add_sub_ra8 (cin, dataa[8..0], datab[8..0])
RETURNS ( result[8..0]);
FUNCTION add_sub_j6b (cin, dataa[8..0], datab[8..0])
RETURNS ( result[8..0]);
FUNCTION add_sub_48b (cin, dataa[18..0], datab[18..0])
RETURNS ( result[18..0]);

--synthesis_resources = lut 40 
SUBDESIGN sign_div_unsign_b5g
( 
	denominator[8..0]	:	input;
	numerator[18..0]	:	input;
	quotient[18..0]	:	output;
	remainder[8..0]	:	output;
) 
VARIABLE 
	divider : alt_u_div_3pd;
	adder : add_sub_ra8;
	compl_adder1 : add_sub_j6b;
	compl_adder_4 : add_sub_48b;
	adder_out[8..0]	: WIRE;
	den_choice[8..0]	: WIRE;
	gnd_wire	: WIRE;
	neg_num[18..0]	: WIRE;
	neg_quot[18..0]	: WIRE;
	norm_num[18..0]	: WIRE;
	num_choice[18..0]	: WIRE;
	pre_neg_den[8..0]	: WIRE;
	pre_neg_quot[18..0]	: WIRE;
	pre_quot[18..0]	: WIRE;
	protect_quotient[18..0]	: WIRE;
	protect_remainder[8..0]	: WIRE;
	q_is_neg	: WIRE;
	vcc_wire	: WIRE;
	zero_wire[8..0]	: WIRE;
	zero_wire_3[18..0]	: WIRE;

BEGIN 
	divider.denominator[] = den_choice[];
	divider.numerator[] = norm_num[];
	adder.cin = gnd_wire;
	adder.dataa[] = den_choice[];
	adder.datab[] = protect_remainder[];
	compl_adder1.cin = vcc_wire;
	compl_adder1.dataa[] = (! denominator[]);
	compl_adder1.datab[] = zero_wire[];
	compl_adder_4.cin = vcc_wire;
	compl_adder_4.dataa[] = (! pre_quot[]);
	compl_adder_4.datab[] = zero_wire_3[];
	adder_out[] = adder.result[];
	den_choice[] = ((denominator[] & (! denominator[8..8])) # (pre_neg_den[] & denominator[8..8]));
	gnd_wire = B"0";
	neg_num[] = (! num_choice[]);
	neg_quot[] = (! protect_quotient[]);
	norm_num[] = ((num_choice[] & (! num_choice[18..18])) # (neg_num[] & num_choice[18..18]));
	num_choice[] = numerator[];
	pre_neg_den[] = compl_adder1.result[];
	pre_neg_quot[] = compl_adder_4.result[];
	pre_quot[] = ((protect_quotient[] & (! num_choice[18..18])) # (neg_quot[] & num_choice[18..18]));
	protect_quotient[] = divider.quotient[];
	protect_remainder[] = divider.remainder[];
	q_is_neg = denominator[8..8];
	quotient[] = ((pre_quot[] & (! q_is_neg)) # (pre_neg_quot[] & q_is_neg));
	remainder[] = ((protect_remainder[] & (! num_choice[18..18])) # (adder_out[] & num_choice[18..18]));
	vcc_wire = B"1";
	zero_wire[] = B"000000000";
	zero_wire_3[] = B"0000000000000000000";
END;
--VALID FILE

⌨️ 快捷键说明

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