问题描述
为什么加法器/减法器架构向导总是有时钟输入,即使没有选择寄存器,(为什么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) 。
没有回复内容