做一个矩阵算法,一开始没有考虑平行化,程序可综合,仿真正确。
为了提高速度而平行化,从新划分了地址,分出了18个ram,3个一组,一共6组,运算的时候一次可以取12个数。
可是综合错误:
Portability:3 - This Xilinx application has run out of memory or has encountered a memory conflict. Current memory usage is 2067352 kb. You can try increasing your system's physical or virtual memory. If you are using a Win32 system, you can increase your application memory from 2GB to 3GB using the /3G switch in your boot.ini file. For more information on this, please refer to Xilinx Answer Record #14932. For technical support on this issue, you can open a WebCase with this project attached at
http://www.xilinx.com/support.
我理解是程序太大了,所以运行不了。
但我的程序很简洁,fsm 800行,处理器200行,
Ram都是标准的dual port,但占了总共的百分之90.
我试着删除用于平行化ram,直到都删了仍然通不过综合,报上面出现的错误。
有人碰到过相同的问题吗?怎么解决呀?
此帖出自
小平头技术问答
内存不够给ISE用了。跟你逻辑代码没有关系啊。
2个矩阵是输入,
3个矩阵是运算的中间过程,被反复的读取,
再4个矩阵是输出。
我之前是把以上9个矩阵写在6个RAM相同里,每个矩阵里都有相同的9个矩阵,用的6个RAM进行平行化运算。
完全没问题。
可是后来按要求9个矩阵都增大了,如果放9个在一个RAM里,就只够1个RAM了。
我现有的RAM只够把中间过程平行化,3个矩阵放在18个RAM里(3个一组,6组),同时取12个数。
可是这种方法就出错了。
memory conflict是内存冲突的意思。
我是从RAM1里取6个数从,从RAM2取6个数,运算玩写入ram3.
是不是我以上的做法引起了内存冲突呢。
有人知道吗
[ 本帖最后由 timdong 于 2013-3-15 21:39 编辑 ]
一周热门 更多>