前些天调了一个算法,其中用移位做乘法,出错,用chipscope观察,结果fpga将我定义的signal的第一位给优化掉了,但是这个signal在后面的算法中有用到,结果直接导致功能失败。具体信息如下:
data_length3(13 downto 7)<=ff_quotient(6 downto 0);
data_length3(14 downto 14)<="0";
data_length3(6 downto 0)<="0000000";
这时候,ise将我的data_length3中的第一位data_length3(0)给我优化没了,
结果我后面的程序中包含:
data_length3<=data_length3 - data_length4;
结果肯定是不对了。
我看了一下综合报告,意思是data_length3(0)恒为0,直接接地了。
请教各位,如何能避免这种情况?让fpga别瞎优化,把算法都整错了。