Board logo

标题: 在Spartan-6系列FPGA中使用块RAM的心得(1)---‘连载――我与FPGA活动’ [打印本页]

作者: pengpengpang    时间: 2014-2-27 23:01     标题: 在Spartan-6系列FPGA中使用块RAM的心得(1)---‘连载――我与FPGA活动’

Xilinx公司提供了大量的存储器资源,包括了内嵌的块存储器、分布式存储器以及16位的移位寄存器。利用这些资源可以生成深度、位宽可配置的RAM、 ROM、FIFO以及移位寄存器等存储逻辑。其中,块存储器是硬件存储器,不占用任何逻辑资源,其余两类都是Xilinx专有的存储结构,由FPGA芯片的查找表和触发器资源构建的,每个查找表可构成16*1位的分布式存储器或移位寄存器。一般来讲,块存储器是宝贵的资源,通常用于大数据量的应用场合,而其余两类用于小数据量环境。(主要参考《FPGA开发实用教程》一书)。最近使用块RAM解决了以前遗留的数据存储问题,所以在此把设计期间的心得分享一下。
          首先要提一下为何使用块RAM资源。在大功率交流控制算法中,我使用了SHEPWM这样的PWM方法,其中涉及到了大量的曲线拟合操作:是4阶的多项式拟合,最终产生的拟合系数有896个。这些系数是范围大概从-100000到100000之间的浮点有符号数,为了保证足够的精度,将所有的系数都乘了10000倍的系数变为整数,之后其位宽达到了惊人的44位!
          在写程序时,一开始就想省事,直接把这些系数定义为reg类型的,即
           reg[43:0] cof1[27:0],这样的形式。
          经过综合软件的综合之后,所有的系数都被综合之后存到了LUT中,结果最终LUT的占用率达到276%,造成了设计根本无法实现(http://xilinx.eetrend.com/blog/662)。大家在遇到此类问题时一般使用什么样的思路来解决呢?




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0