直方图对数字数据的分析通常是一种有用的工具。不过,要从一个直方图获得可靠的结果,必须获得大量数据,通常是要10万到100万个点。如果需要分析一个ADC的数字输出,可以采用一片FPGA(图1)。

  图中显示了直方图、RAM和脉冲发生器部分,用于捕捉和显示基于14 位数据计算出来的直方图。RAM块是FPGA的内置RAM,而直方图块是用于计算的VHDL(高级设计语言)代码。本应用的VHDL代码也可以从http://www.edn.com/file/25820-Compute_a_histogram_in_an_FPGA_with_one_clock_code.doc下载。

  来自ADC的14 位并行数据Device_ Data[13..0]进入直方图块,并进入RAM的Rd_Addr输入端。RAM在其地址位置RAMDataOut[ 15..0]上提供数据。这个数据环回到直方图块,将其加1后送至一个16 位数据的输出端DataOut[15..0]。当WREN(写使能)端为逻辑电平1时,数据被写在管脚Wr_Addr[13..0]处的地址。这种方法与数据来自Device_Data[13..0]是相同的。

  RAM从输入到输出有一个固定的延迟。即,当输入为Rd_Addr时,经过一个固定延迟后,数据出现在其输出端RAMDataOut。这个延迟随不同FPGA而改变。要注意这个延迟,使得有两个时钟的延迟到Device_Data,然后再计算直方图。RAM中的延迟应小于两个时钟周期;否则,就可能有数据丢失。这个约束限制了Device_Clk的最大频率。

  Cntr_Value给出了用于计算直方图的输入数据数量。Pulse_Gen块产生一个脉冲,进入输入端Rst_Cntr,用于复位计数器。此时,直方图部分再次用Cntr_Value的下组输入数据计算直方图。Cntr_Value为15 位,但可以增加它,获得更多的直方图数据。

  Sel_Data与Rst_RAM信号是重置在FPGA RAM中存储的数据。当Rst_RAM脚出现高信号时,直方图块的DataOut脚的所有位均为0。当直方图块的Sel_Data输入脚为高信号时,RAM_Wr_Addr的输出不是Device_Data,而是一个从0上升至16384的内部生成的斜波。直方图块不做计算,因为这样做会重置RAM的地址。

图1,直方图计算电路从一个FPGA的RAM块中获取数据。

  当FPGA完成了直方图计算时,RAM就可以选择Sel_ Data为逻辑高,而将保持Rst_ RAM为逻辑低,从而读取直方图数据。RAM地址中的数据顺序地退出输出脚,并且可以将数据传输给一台PC。由于所有块都以一个单时钟Device_Clk工作,因此本设计很简单,有助于满足时序的约束。可以方便地修改本设计,从而获得16 位或12 位数据直方图。

转载于:https://www.cnblogs.com/yousun/p/3160271.html

用一个时钟在FPGA中计算直方图相关推荐

  1. FPGA中除法是怎么实现的?

      在FPGA中,我们怎么实现除法操作?最简单的方法当然是调IP Core.   在Divider Generator的IP Core中,我们可以选择有/无符号数进行除法,还可以选择除法的延迟.当然, ...

  2. 赛灵思FPGA中的主要时钟资源介绍

    把握DCM.PLL.PMCD 和MMCM 知识是稳健可靠的时钟设计策略的基础. 赛灵思在其FPGA 中提供了丰富的时钟资源,大多数设计人员在他们的FPGA 设计中或多或少都会用到.不过对FPGA设计新 ...

  3. FPGA中的时钟设计1

    关于一款芯片,最权威.最新的资料当然是厂家的官方文件.很多大牛都推荐直接阅读原厂的 datasheet 和 user guide.根据我的体验,这确实是最好的途径.原因有两个: 首先,市面上的书一般都 ...

  4. FPGA中DDR3 mig核的时钟以及带宽说明

    FPGA中MIG IP核配置页面如下图所示. 图中①为DDR3的工作时钟,即DDR3接口端速率时钟:②为用户端时钟配置,分别可配置为DDR3工作时钟的1/2和1/4:③为DDR3接口端的宽度.④为用户 ...

  5. UltraScale新架构FPGA中MGT参考时钟的共享问题

    高速收发器(GT) 高速收发器是FPGA中专用于收发高速数据的硬件结构,UltraScale架构中的GTY收发器是功率高效的收发器,在UltraScale FPGA中支持500Mb/s到30.5Gb/ ...

  6. R语言使用lm构建线性回归模型、并将目标变量对数化(log10)实战:可视化模型预测输出与实际值对比图、可视化模型的残差、模型预测中系统误差的一个例子 、自定义函数计算R方指标和均方根误差RMSE

    R语言使用lm构建线性回归模型.并将目标变量对数化(log10)实战:可视化模型预测输出与实际值对比图.可视化模型的残差.模型预测中系统误差的一个例子 .自定义函数计算R方指标和均方根误差RMSE 目 ...

  7. python神奇时钟项目_怎么在Python项目中利用Pygame绘制一个时钟

    怎么在Python项目中利用Pygame绘制一个时钟 发布时间:2020-11-30 14:24:30 来源:亿速云 阅读:54 作者:Leah 怎么在Python项目中利用Pygame绘制一个时钟? ...

  8. 编写一个抽象类Shape,声明计算图形面积的抽象方法。再分别定义Shape的子类Circle(圆)和Rectangle(矩形),在两个子类中按照不同图形的面积计算公式,实现Shape类中计算面积的方法

    编写一个抽象类Shape,声明计算图形面积的抽象方法.再分别定义Shape的子类Circle(圆)和Rectangle(矩形),在两个子类中按照不同图形的面积计算公式,实现Shape类中计算面积的方法 ...

  9. C语言编程>第六周 ① 编写一个录入函数:用来从键盘接收n个整型数并存放在一个整型数组中。 在主函数中调用该函数计算出这n个整数之和。

    例题:编写一个录入函数:用来从键盘接收n个整型数并存放在一个整型数组中. 在主函数中调用该函数计算出这n个整数之和. 代码如下: /*代码分析:录入函数需要两个参数:一个参数是需要用来存储数字的数组, ...

  10. 对DES中的第一个S盒子S1,计算随机变量 X2⊕Y1⊕Y2⊕Y3⊕Y4 的偏差

    对DES中的第一个S盒子S1,计算随机变量 X2⊕Y1⊕Y2⊕Y3⊕Y4 的偏差 什么是偏差: S盒是DES中连接Bi和Ci的桥梁: 每个Bi都是6bits,每个Ci都是4bits,S盒是一个6bit ...

最新文章

  1. AngularJS $q 和 $q.all 单个数据源和多个数据源合并(promise的说明)
  2. Oracle Data Guard 主库 归档文件 删除策略 .
  3. 变态题大串烧:微软面试问题 -- 三.难题:这类题有一定难度,如果得不到答案,也不能说明什么...
  4. 【深度学习】3D深度学习简介
  5. latex中report目录_在 LaTeX 中将不编号的章节列入目录
  6. python中get和getall_Scrapy框架get() 、getall() 、extract() 、extract_first()的区别
  7. 华为机试HJ52:计算字符串的距离(动态规划)
  8. 【HNOI2006】【Luogu2320】鬼谷子的钱袋(进制,玄学)
  9. 火狐查看html的隐藏域,IE/火狐/Chrome操作display:none对象所遇问题解答
  10. PPT:华为数字化转型实践分享(附下载)
  11. 认知之经济学:经济是如何运行的
  12. Python3图片中竖排文字
  13. ASO优化技巧:利用好App下载周期变化,aso优化技巧介绍
  14. 关于ireport分页的使用
  15. Soft Cosine Measure
  16. 第一期vue项目实践问题与收获总结
  17. Arale Base源码分析(含Attribute)
  18. Windows 7/8 创建WIFI热点
  19. 【python数据分析】pandas数据合并
  20. 六自由度方程组 matlab,采用Matlab的六自由度机器人三维运动学仿真_李庆.pdf

热门文章

  1. clickhouse HDFS引擎
  2. idea报错命令行过长
  3. Hive from_unixtime函数入门
  4. scala zip--拉链操作入门
  5. 剑指offer:2.二维数组的查找(Java版)
  6. zabbix登陆拒绝报没有权限
  7. nfs+lvm解决磁盘空间扩容问题
  8. juqery合成事件toggle方法
  9. C#仿QQ皮肤-Label与ListBox 控件实现----寻求滚动条的解决方案
  10. 一个功能强大超级好用的图表组件Dundas Chart