基于FPGA的两片高速AD并行采样的程序设计
我现有的工程FPGA的AD采样的原理:利用FPGA(EP3C5E144I7)控制100MSPS的10位并行双通道的AD9218采样,将数据采集多组并累加32000次后再传给POWER PC进行处理。
(比如 在第1秒内不同的时刻采集到数据a1;b1;c1;d1;e1;.......
在第2秒内不同的时刻采集到数据a2,b2,c2,d2,e2,...........
在第3秒内不同的时刻采集到数据a3,b3,c3,d3,e3………..
………………………………………………………………
在第32000秒内不同时刻采集的数据为a32000,b32000,c32000,d32000,e32000……
最终需要将A1=a1+a2+a3…..+a32000;
A2=b1+b2+b3…+b32000
A3=c1+c2+c3+c.+c32000
………………………………………………………
A32000 = a32000+b32000+c32000+d32000+e32000
中的A1,A2,A3,A4,………A32000数据传给POWER PC处理。
目前由于需要将采样的频率提升到200MSPS,所以初步设计考虑将两路AD时钟交错180并行采样,望论坛高人能对程序的设计思路做宝贵的指点。
点击此处下载 ourdev_684538MF8PUB.doc(文件大小:246K) (原文件名:DTS高精度的设计改进方案.doc)
原有的程序设计文件
点击此处下载 ourdev_684540QIZ0VU.rar(文件大小:5K) (原文件名:source.rar) 回复【楼主位】xuwenqiang
-----------------------------------------------------------------------
在第1个时间周期内不同的时刻采集到6500个数据为a1;b1;c1;d1;e1;.......
在第2个时间周期内不同的时刻采集到6500个数据为a2,b2,c2,d2,e2,........
在第3个时间周期内不同的时刻采集到6500个数据为a3,b3,c3,d3,e3......... ……………………………………………………………
在第3200个时间周期内不同时刻采集到6500个数据为a32000,b32000,c32000,d32000,e32000……
最终6500个点需要累加A1=a1+a2+a3…...+a32000
A2=b1+b2+b3…...+b32000
A3=c1+c2+c3...... +c32000
……………………………………………………
中的A1,A2,A3,A4,………A6500数据传给POWER PC处理。
具体的思路即:顺序采样6500个点,然后循环累加32000次。我现在的问题就出在顺序采样的思路上。 cyclone3有m9k专用ram单元,可做双口ram。利用其双端口特性,每次AD采集数据时把ram中的数据从一口读出,两者相加后再从另一口写入即可。
举例:
采集开始前先清零RAM。
第1个周期采集的数据a1,b1,c1,d1,e1...,加上ram中数据0,0,0,0,0...,再写入ram,ram中数据变为a1,b1,c1,d1,e1...;
第2个周期采集的数据a2,b2,c2,d2,e2...,加上ram中数据a1,b1,c1,d1,e1...,再写入ram,ram中数据变为a1+a2,b1+b2,c1+c2,d1+d2,e1+e1...;
以此类推...;
第n个采集周期完成后,ram中的数据为a1+a2+...+an,b1+b2+...+bn,c1+c2+...+cn,d1+d2+...+dn,e1+e2+...+en。 正在做一个类似的方案,参考参考很好,顶 在做DA、AD的采样回放,参考下 正在做一个AD采集的方案,谢谢了 学习了。 不错!~ mark 学习 mark 想法不错,能问下您做的怎么样了吗 学习一下~ mark 学习一下 MARK!! 采样做的不错的是一个叫SP的公司;
http://spdevices.com/
http://spdevices.com/index.php/interleaving 学习 学习学习啦 学习了,很不错
页:
[1]