FPGA任意波形发生器ROM资源不足

2019-03-25 09:22发布

用FPGA做一个任意波形双通道信号发生器,波形通过查表ROM获得,每个通道可选择产生正弦,方波,三角波,锯齿波,既一个通道需要用4个ROM,双通道也就需要8个ROM。 现在用这个方法遇到一个问题,就是FPGA提供的存储空间不足,如果ROM是8位256个点的话,生成的ROM.mif文件大小为3.6K一个,FPGA能容得下8个这样的ROM ,但是要提高波形的相位分辨率(0.1度),显然8位256点的ROM是不能满足的,我用了12位4096点的mif波形文件,但是它的资源大小达到了56K一个,而FPGA的ROM,RAM空间只有160K左右,不能支持那么大的8个ROM。 请问有什么方法能解决ROM不足的问题! 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
10条回答
eeleader
1楼-- · 2019-03-25 15:59
< /

我提出一点看法:

   你为啥要两个通道8个ROM。说有通道共有4ROM为啥不行?

q297505453
2楼-- · 2019-03-25 18:04
因为是双通道,如果两个通道同时产生正弦波,每个通道就需要调用一个正弦波ROM,每个通道一个。好像两个通道不能公用一个ROM吧!对这方面我也不是很清楚
仙猫
3楼-- · 2019-03-25 22:29
 1、双通道甚至多通道,只要波形数据相同(相位可以不同)则完全可以用同一个ROM。
 2、用双端口ROM的话,可以两边共用同一套数据。
 3、如仍沿用单口ROM,也可分时取得数据,只要PLD的速度够,再多通道也能共用数据。
 4、利用数据表的对称性,只需在ROM储存一部分数据,比如正弦波或只存第1象限的数据,其余的2~4象限计算出来。
 5、有些特殊波形如方波、三角波等可能连ROM都不要,直接通过参数计算得到数据。
 6、……等等,或许还有别的方法。
q297505453
4楼-- · 2019-03-25 22:57
2-port的ROM它的输出位宽只有8位,16位的,没有12位的。。
如果mif文件为8位,4096个点;ROM为(12位输入,8位输出),请问输出的波形一个周期是256个点,还是4096个点?输出波形的分辨率为多少?
仙猫
5楼-- · 2019-03-26 03:12
 FPGA里存储器的宽度和深度应该是可以定制的吧,不过要注意有些存储器块是有最小尺寸规定的,定制得比最小尺寸小时并不能节省资源。
 就算数据宽非12位不可的话,也可考虑用3个8位的ROM拼凑成2张12位的数据表,精打细算一点都不浪费资源。
q297505453
6楼-- · 2019-03-26 05:51
 精彩回答 2  元偷偷看……

一周热门 更多>