用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不足的问题!
此帖出自
小平头技术问答
我提出一点看法:
你为啥要两个通道8个ROM。说有通道共有4ROM为啥不行?
2、用双端口ROM的话,可以两边共用同一套数据。
3、如仍沿用单口ROM,也可分时取得数据,只要PLD的速度够,再多通道也能共用数据。
4、利用数据表的对称性,只需在ROM储存一部分数据,比如正弦波或只存第1象限的数据,其余的2~4象限计算出来。
5、有些特殊波形如方波、三角波等可能连ROM都不要,直接通过参数计算得到数据。
6、……等等,或许还有别的方法。
如果mif文件为8位,4096个点;ROM为(12位输入,8位输出),请问输出的波形一个周期是256个点,还是4096个点?输出波形的分辨率为多少?
就算数据宽非12位不可的话,也可考虑用3个8位的ROM拼凑成2张12位的数据表,精打细算一点都不浪费资源。
一周热门 更多>