用一个时钟在FPGA中计算直方图
直方图对数字数据的分析通常是一种有用的工具。不过,要从一个直方图获得可靠的结果,必须获得大量数据,通常是要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中计算直方图相关推荐
- FPGA中除法是怎么实现的?
在FPGA中,我们怎么实现除法操作?最简单的方法当然是调IP Core. 在Divider Generator的IP Core中,我们可以选择有/无符号数进行除法,还可以选择除法的延迟.当然, ...
- 赛灵思FPGA中的主要时钟资源介绍
把握DCM.PLL.PMCD 和MMCM 知识是稳健可靠的时钟设计策略的基础. 赛灵思在其FPGA 中提供了丰富的时钟资源,大多数设计人员在他们的FPGA 设计中或多或少都会用到.不过对FPGA设计新 ...
- FPGA中的时钟设计1
关于一款芯片,最权威.最新的资料当然是厂家的官方文件.很多大牛都推荐直接阅读原厂的 datasheet 和 user guide.根据我的体验,这确实是最好的途径.原因有两个: 首先,市面上的书一般都 ...
- FPGA中DDR3 mig核的时钟以及带宽说明
FPGA中MIG IP核配置页面如下图所示. 图中①为DDR3的工作时钟,即DDR3接口端速率时钟:②为用户端时钟配置,分别可配置为DDR3工作时钟的1/2和1/4:③为DDR3接口端的宽度.④为用户 ...
- UltraScale新架构FPGA中MGT参考时钟的共享问题
高速收发器(GT) 高速收发器是FPGA中专用于收发高速数据的硬件结构,UltraScale架构中的GTY收发器是功率高效的收发器,在UltraScale FPGA中支持500Mb/s到30.5Gb/ ...
- R语言使用lm构建线性回归模型、并将目标变量对数化(log10)实战:可视化模型预测输出与实际值对比图、可视化模型的残差、模型预测中系统误差的一个例子 、自定义函数计算R方指标和均方根误差RMSE
R语言使用lm构建线性回归模型.并将目标变量对数化(log10)实战:可视化模型预测输出与实际值对比图.可视化模型的残差.模型预测中系统误差的一个例子 .自定义函数计算R方指标和均方根误差RMSE 目 ...
- python神奇时钟项目_怎么在Python项目中利用Pygame绘制一个时钟
怎么在Python项目中利用Pygame绘制一个时钟 发布时间:2020-11-30 14:24:30 来源:亿速云 阅读:54 作者:Leah 怎么在Python项目中利用Pygame绘制一个时钟? ...
- 编写一个抽象类Shape,声明计算图形面积的抽象方法。再分别定义Shape的子类Circle(圆)和Rectangle(矩形),在两个子类中按照不同图形的面积计算公式,实现Shape类中计算面积的方法
编写一个抽象类Shape,声明计算图形面积的抽象方法.再分别定义Shape的子类Circle(圆)和Rectangle(矩形),在两个子类中按照不同图形的面积计算公式,实现Shape类中计算面积的方法 ...
- C语言编程>第六周 ① 编写一个录入函数:用来从键盘接收n个整型数并存放在一个整型数组中。 在主函数中调用该函数计算出这n个整数之和。
例题:编写一个录入函数:用来从键盘接收n个整型数并存放在一个整型数组中. 在主函数中调用该函数计算出这n个整数之和. 代码如下: /*代码分析:录入函数需要两个参数:一个参数是需要用来存储数字的数组, ...
- 对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 ...
最新文章
- AngularJS $q 和 $q.all 单个数据源和多个数据源合并(promise的说明)
- Oracle Data Guard 主库 归档文件 删除策略 .
- 变态题大串烧:微软面试问题 -- 三.难题:这类题有一定难度,如果得不到答案,也不能说明什么...
- 【深度学习】3D深度学习简介
- latex中report目录_在 LaTeX 中将不编号的章节列入目录
- python中get和getall_Scrapy框架get() 、getall() 、extract() 、extract_first()的区别
- 华为机试HJ52:计算字符串的距离(动态规划)
- 【HNOI2006】【Luogu2320】鬼谷子的钱袋(进制,玄学)
- 火狐查看html的隐藏域,IE/火狐/Chrome操作display:none对象所遇问题解答
- PPT:华为数字化转型实践分享(附下载)
- 认知之经济学:经济是如何运行的
- Python3图片中竖排文字
- ASO优化技巧:利用好App下载周期变化,aso优化技巧介绍
- 关于ireport分页的使用
- Soft Cosine Measure
- 第一期vue项目实践问题与收获总结
- Arale Base源码分析(含Attribute)
- Windows 7/8 创建WIFI热点
- 【python数据分析】pandas数据合并
- 六自由度方程组 matlab,采用Matlab的六自由度机器人三维运动学仿真_李庆.pdf