架构向导,XtremeDSP Slice  – 为什么加法器/减法器架构向导总是有时钟输入,即使没有选择寄存器,或者为什么ACASCREG,BCASCREG或MREG在HDL中总是设置为'1'?-Altera-Intel社区-FPGA CPLD-ChipDebug

架构向导,XtremeDSP Slice – 为什么加法器/减法器架构向导总是有时钟输入,即使没有选择寄存器,或者为什么ACASCREG,BCASCREG或MREG在HDL中总是设置为'1'?

问题描述

为什么加法器/减法器架构向导总是有时钟输入,即使没有选择寄存器,(为什么ACLCREG,BCASCREG或MREG在HDL中始终设置为’1’)?

这可以通过多种配置来看到,但是在创建组合DSP48或不使用3级流水线的DSP48时经常会发现这种情况。

解决/修复方法

这是XtremeDSP Slice Adder / Subtracter Architecture Wizard输出中的已知错误。

可以通过使用HDL在DSP48E上推断来解决这个问题。

这将确保代码更易于移植,并确保代码实现DSP48E。

组合加法器示例代码:

VHDL

库IEEE;

使用IEEE.STD_LOGIC_1164.ALL;

使用IEEE.NUMERIC_STD.ALL;

实体add_sub_dsp48是

port(A:在std_logic_vector(17 downto 0);

B:在std_logic_vector(17 downto 0);

P_OUT:out std_logic_vector(18 downto 0));

结束add_sub_dsp48;

架构add_sub_dsp48的行为是

– 可以将这两行注释掉以使用综合工具

– 决定是否应该使用DSP48。

attribute use_dsp48:string;

P_OUT的属性use_dsp48:信号为“是”;

开始

– 需要一个属性来推断DSP48E。

– 需要进行类型转换,因为DSP48E是带符号的2s补码组件。

– 如果输入和输出定义为SIGNED类型,则转换

– 没有必要。

P_OUT <= STD_LOGIC_VECTOR(签名(A)+签名(B));

结束行为;

有关使用体系结构向导的备用解决方案列表,请参阅(Xilinx答复30101)

请登录后发表评论

    没有回复内容