打印

FPGA 做数据采集 如何对采集的数据进行平均?

[复制链接]
2853|24
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
cuianbin|  楼主 | 2012-10-29 11:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我目前正在做数据采集 FPGA 受到触发信号后 开始采集数据,把数据放到SRAM里面,SRAM 容量为256K*16bit,(可以放20多万个12bit的数据) 我最初的思路是这样的。把SRAM 按地址分成四块,每块5万个点。收到触发信号后我就开始采,采完5万个点后,存到SRAM第一块里面去,停止采集,然后等待下一个触发信号的到来,再采5万个点,再存到SRAM里面第二块里去,如此采集4次,把20万个地址单元填满。因为是触发采集的,理论上这4组5万个点是一样的,现在想来做平均,发现困难重重!
1. 平均次数为4次,要先把SRAM中每个块中对应的四个数据取出来 放到寄存器里,相加后,除以4,存到第一块对应的位置处。这样要重复进行5万次SRAM的写和5万次的读。这个效率。。。。。
2. 4次平均没有什么意义,如果我要进行100次平均,这下可真不知道怎么办了,我这些数据该怎么存怎么取怎么相加相除?
3. 示波器都有平均的功能,而且平均次数100多次完全可以做到,它到底怎样实现的呢?

写的有些多,不知道各位朋友看懂没有,希望能给我指导。

相关帖子

沙发
forrest11| | 2012-10-29 11:20 | 只看该作者
只存5万,第二次触发时就把数据加到第一次数据中去,第三次也是这样,第四次加完后,直接右移2bit,放回原对应位置。计算结束。这里的要求就是要求取数,计算,存数要及时完成。但由于计算简单,并不难实现。

使用特权

评论回复
板凳
cuianbin|  楼主 | 2012-10-29 11:36 | 只看该作者
在sram里面如何进行加?不行的要加必须取出来 2# forrest11

使用特权

评论回复
地板
forrest11| | 2012-10-29 11:54 | 只看该作者
本帖最后由 forrest11 于 2012-10-29 11:58 编辑
在sram里面如何进行加?不行的要加必须取出来 2# forrest11
cuianbin 发表于 2012-10-29 11:36

在2楼已经和你说了,先采样,同时取数,再加,再存数。和你的方案相比,多了取数,相加两项。但SRAM随随便便就能200M时钟,加法也很快,两者加起来100ns肯定能完成。稍微做做就能40ns完成。应该够了吧。如果好好做就是加法时间,做一级pipeline就够了。这样至少你以前能做多快现在也能多快,还省了3/4空间。

使用特权

评论回复
5
cuianbin|  楼主 | 2012-10-29 14:19 | 只看该作者
不断加最后除难道不会溢出? 4# forrest11

使用特权

评论回复
6
forrest11| | 2012-10-29 15:20 | 只看该作者
不断加最后除难道不会溢出? 4# forrest11
cuianbin 发表于 2012-10-29 14:19

你不是只加4次吗?12位加4次不过14位,加16次也不会溢出呀。
加了4次后,重来一次呗,第一次不加了,直接写进去不就行了。

使用特权

评论回复
7
Backkom80| | 2012-10-29 16:43 | 只看该作者
:lol
嘻嘻,时序设计很重要,

使用特权

评论回复
8
cuianbin|  楼主 | 2012-10-31 16:58 | 只看该作者
我要加127次。四次只是打个比方。我第二点里已经说明了啊 6# forrest11

使用特权

评论回复
9
forrest11| | 2012-10-31 19:13 | 只看该作者
本帖最后由 forrest11 于 2012-10-31 19:16 编辑
我要加127次。四次只是打个比方。我第二点里已经说明了啊 6# forrest11
cuianbin 发表于 2012-10-31 16:58

如果加的次数多,就给每个数据预留更多的空间呗。你现在采样12bit,加127次是7bit,所以只要19bit就不会溢出,你可以给每次采样留3byte空间,如果觉得麻烦,就留4byte空间,高一字节保留不用就行了。
每次采样同时,取3byte数据,然后加采样数据,再放回去。算法是一模一样的。就是要计算SRAM存取时间。一共6次,一共75-150ns(8bitsram,如果16bitSRAM,50-100ns左右)。不知道够不够。
加的次数更多,也没有关系,留够bit就行了,做法都一样的,不同的只是位数增多,运行频率降低而已。

使用特权

评论回复
10
cuianbin|  楼主 | 2012-11-1 16:29 | 只看该作者
谢谢!我再想想你说的方法!然后实际做一下看看效果 9# forrest11

使用特权

评论回复
11
forrest11| | 2012-11-1 19:34 | 只看该作者
谢谢!我再想想你说的方法!然后实际做一下看看效果 9# forrest11
cuianbin 发表于 2012-11-1 16:29

在FPGA/CPLD分坛里,我都是要分的,呵呵,学今日猴。
所以有分的话,多加点给我。

使用特权

评论回复
12
wmsk| | 2012-11-1 21:43 | 只看该作者
在FPGA/CPLD分坛里,我都是要分的,呵呵,学今日猴。
所以有分的话,多加点给我。
forrest11 发表于 2012-11-1 19:34
臭不老脸的;P

使用特权

评论回复
13
GoldSunMonkey| | 2012-11-1 22:12 | 只看该作者
在FPGA/CPLD分坛里,我都是要分的,呵呵,学今日猴。
所以有分的话,多加点给我。
forrest11 发表于 2012-11-1 19:34
坏我名声啊。

使用特权

评论回复
14
forrest11| | 2012-11-1 22:18 | 只看该作者
本帖最后由 forrest11 于 2012-11-2 07:17 编辑
臭不老脸的;P
wmsk 发表于 2012-11-1 21:43

说话不要过啊,小心被删o!

使用特权

评论回复
15
forrest11| | 2012-11-2 11:34 | 只看该作者
坏我名声啊。
GoldSunMonkey 发表于 2012-11-1 22:12

我多要点理直气壮啊,你看我回答得多热心啊。

使用特权

评论回复
16
xjsxjtu| | 2012-11-4 20:26 | 只看该作者
我多要点理直气壮啊,你看我回答得多热心啊。
forrest11 发表于 2012-11-2 11:34
必须的。哈哈

使用特权

评论回复
17
GoldSunMonkey| | 2012-11-4 20:36 | 只看该作者
必须的。哈哈
xjsxjtu 发表于 2012-11-4 20:26
必须坏我名声?小心我弄死你。

使用特权

评论回复
18
forrest11| | 2012-11-6 17:55 | 只看该作者
坏我名声啊。
GoldSunMonkey 发表于 2012-11-1 22:12

看啊,我得分了吧,嘿嘿。

使用特权

评论回复
19
ztx7210| | 2012-11-10 19:31 | 只看该作者
必须坏人名声?

使用特权

评论回复
20
forrest11| | 2012-11-12 17:15 | 只看该作者
必须坏人名声?
ztx7210 发表于 2012-11-10 19:31

别瞎说,我只管得分,哪里坏别人名声了?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:来到这个论坛,乐于分享,好好学习!!

86

主题

439

帖子

5

粉丝