请教关于xilinx ise的优化问题
时间:10-02
整理:3721RD
点击:
前些天调了一个算法,其中用移位做乘法,出错,用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别瞎优化,把算法都整错了。
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别瞎优化,把算法都整错了。
按贴出来的看:data_length3(6 downto 0)<="0000000";都总是"0"啊。所以ISE给你搞成0是对的。
一般来说,ISE不会优化错的。
你还是先分析分析代码吧
如果你不想让ise做优化,可以加keep属性
好难哦!
应该不会吧!
是啊,你那个(6 downto 0)赋值不都是0么。
把你的代码全部贴出来。
感觉上好象是思路问题
你是不是写了大概这样的东西
a<=40
a<= a-b
硬件的话,可不会顺序执行
