📄 alt_cusp72_mult.vhd
字号:
END IF;
END IF;
END PROCESS;
end generate;
end generate;
latency7_gen: IF LATENCY = 7 GENERATE
enable_comb_latency7 : enable <= ena and ( a_en or mult_res_en(1) or mult_res_en(2) or mult_res_en(3) or mult_res_en(4) or mult_res_en(5) or mult_res_en(6));
END GENERATE;
latency6_gen: IF LATENCY = 6 GENERATE
enable_comb_latency6 : enable <= ena and ( a_en or mult_res_en(1) or mult_res_en(2) or mult_res_en(3) or mult_res_en(4) or mult_res_en(5));
END GENERATE;
latency5_gen: IF LATENCY = 5 GENERATE
enable_comb_latency5 : enable <= ena and ( a_en or mult_res_en(1) or mult_res_en(2) or mult_res_en(3) or mult_res_en(4));
END GENERATE;
latency4_gen: IF LATENCY = 4 GENERATE
enable_comb_latency4 : enable <= ena and ( a_en or mult_res_en(1) or mult_res_en(2) or mult_res_en(3));
END GENERATE;
latency3_gen: IF LATENCY = 3 GENERATE
enable_comb_latency3 : enable <= ena and ( a_en or mult_res_en(1) or mult_res_en(2));
END GENERATE;
latency2_gen: IF LATENCY = 2 GENERATE
enable_comb_latency2 : enable <= ena and ( a_en or mult_res_en(1));
END GENERATE;
latency1_gen: IF LATENCY = 1 GENERATE
mult_res_en_latency1: enable <= ena and a_en;
END GENERATE;
q_int_drive: q_int <= result;
q_drive: q <= q_int;
altera_24bit_l5_cycloneii : IF LATENCY = 5 AND WIDTH = 24 AND FAMILY = FAMILY_CYCLONEII GENERATE
altmult_add_COMPONENT : hopt_mult_l5
PORT MAP
(
dataa => a,
datab => b,
signa => signa,
signb => signb,
clock0 => clock,
--aclr3 => reset,
ena0 => enable,
result => result
);
END GENERATE;
altera_24bit_l4_cycloneii : IF LATENCY = 4 AND WIDTH = 24 AND FAMILY = FAMILY_CYCLONEII GENERATE
altmult_add_COMPONENT : hopt_mult_l4
PORT MAP
(
dataa => a,
datab => b,
signa => signa,
signb => signb,
clock0 => clock,
--aclr3 => reset,
ena0 => enable,
result => result
);
END GENERATE;
altera_24bit_l3_cycloneii : IF LATENCY = 3 AND WIDTH = 24 AND FAMILY = FAMILY_CYCLONEII GENERATE
altmult_add_COMPONENT : hopt_mult_l3
PORT MAP
(
dataa => a,
datab => b,
signa => signa,
signb => signb,
clock0 => clock,
--aclr3 => reset,
ena0 => enable,
result => result
);
END GENERATE;
altera_latency0_gen : IF LATENCY = 0 GENERATE
altmult_add_COMPONENT : altmult_add
GENERIC MAP
(
WIDTH_A => WIDTH,
WIDTH_B => WIDTH,
WIDTH_RESULT => WIDTHX2,
NUMBER_OF_MULTIPLIERS => 1,
INPUT_REGISTER_A0 => "UNREGISTERED",
INPUT_REGISTER_B0 => "UNREGISTERED",
SIGNED_REGISTER_A => "UNREGISTERED",
MULTIPLIER_REGISTER0 => "UNREGISTERED",
OUTPUT_REGISTER => "UNREGISTERED",
DEDICATED_MULTIPLIER_CIRCUITRY => "YES",
EXTRA_LATENCY => 0
)
PORT MAP
(
dataa => a,
datab => b,
scanina => (OTHERS => '0'),
scaninb => (OTHERS => '0'),
signa => signa,
signb => signb,
result => result
);
END GENERATE;
altera_latency1_gen : IF LATENCY = 1 GENERATE
altmult_add_COMPONENT : altmult_add
GENERIC MAP
(
WIDTH_A => WIDTH,
WIDTH_B => WIDTH,
WIDTH_RESULT => WIDTHX2,
NUMBER_OF_MULTIPLIERS => 1,
INPUT_REGISTER_A0 => "CLOCK0",
--INPUT_ACLR_A0 => "ACLR3",
INPUT_REGISTER_B0 => "CLOCK0",
--INPUT_ACLR_B0 => "ACLR3",
SIGNED_REGISTER_A => "CLOCK0",
--SIGNED_ACLR_A => "ACLR3",
MULTIPLIER_REGISTER0 => "UNREGISTERED",
OUTPUT_REGISTER => "UNREGISTERED",
DEDICATED_MULTIPLIER_CIRCUITRY => "YES",
EXTRA_LATENCY => 0
)
PORT MAP
(
dataa => a,
datab => b,
scanina => (OTHERS => '0'),
scaninb => (OTHERS => '0'),
signa => signa,
signb => signb,
clock0 => clock,
--aclr3 => reset,
ena0 => enable,
result => result
);
END GENERATE;
altera_latency2_gen : IF LATENCY = 2 GENERATE
altmult_add_COMPONENT : altmult_add
GENERIC MAP
(
WIDTH_A => WIDTH,
WIDTH_B => WIDTH,
WIDTH_RESULT => WIDTHX2,
NUMBER_OF_MULTIPLIERS => 1,
INPUT_REGISTER_A0 => "CLOCK0",
--INPUT_ACLR_A0 => "ACLR3",
INPUT_REGISTER_B0 => "CLOCK0",
--INPUT_ACLR_B0 => "ACLR3",
SIGNED_REGISTER_A => "CLOCK0",
--SIGNED_ACLR_A => "ACLR3",
MULTIPLIER_REGISTER0 => "UNREGISTERED",
OUTPUT_REGISTER => "CLOCK0",
--OUTPUT_ACLR => "ACLR3",
DEDICATED_MULTIPLIER_CIRCUITRY => "YES",
EXTRA_LATENCY => 0
)
PORT MAP
(
dataa => a,
datab => b,
scanina => (OTHERS => '0'),
scaninb => (OTHERS => '0'),
signa => signa,
signb => signb,
clock0 => clock,
--aclr3 => reset,
ena0 => enable,
result => result
);
END GENERATE;
altera_latency3_gen : IF LATENCY = 3 AND ( WIDTH = 24 NAND FAMILY = FAMILY_CYCLONEII) GENERATE
altmult_add_COMPONENT : altmult_add
GENERIC MAP
(
WIDTH_A => WIDTH,
WIDTH_B => WIDTH,
WIDTH_RESULT => WIDTHX2,
NUMBER_OF_MULTIPLIERS => 1,
INPUT_REGISTER_A0 => "CLOCK0",
--INPUT_ACLR_A0 => "ACLR3",
INPUT_REGISTER_B0 => "CLOCK0",
--INPUT_ACLR_B0 => "ACLR3",
SIGNED_REGISTER_A => "CLOCK0",
--SIGNED_ACLR_A => "ACLR3",
MULTIPLIER_REGISTER0 => "CLOCK0",
--MULTIPLIER_ACLR0 => "ACLR3",
OUTPUT_REGISTER => "CLOCK0",
--OUTPUT_ACLR => "ACLR3",
DEDICATED_MULTIPLIER_CIRCUITRY => "YES",
EXTRA_LATENCY => 0
)
PORT MAP
(
dataa => a,
datab => b,
scanina => (OTHERS => '0'),
scaninb => (OTHERS => '0'),
signa => signa,
signb => signb,
clock0 => clock,
--aclr3 => reset,
ena0 => enable,
result => result
);
END GENERATE;
END;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -