专栏首页Lauren的FPGA如何利用BRAM实现数据延迟

如何利用BRAM实现数据延迟

思考一下:

如何用foreach语句实现对变量赋值,其中所需值来自于一个给定的列表。

实际上,在Tcl 8.5版本以前,大家常利用foreach命令的副作用将列表中的元素分发给独立的变量。例如,将列表xx中的值分别赋给变量x、y和z。这里break命令作为一个失效安全保障,以处理xx中包含了多余3个元素的情况。

在很多设计中都会遇到数据延迟线(Delay Line),尤其是在数字信号处理的相关设计中,例如FIR滤波器就需要延迟线。延迟线有多种实现方式,例如可以通过移位寄存器实现(基于SLICEM中的LUT),也可以通过触发器实现(基于SLICE中的FF),还可以通过BRAM实现。采用BRAM的实现方法如下图所示。

图中将BRAM配置为单端口RAM。其中RAM的工作模式为读优先(Read_First,又称为Read Before Write,即同时对同一地址进行读写操作时,将首先读出该地址空间原有的数据,然后再将新数据写入该地址空间。关于三种模式的具体区别,可阅读这篇文章:write_first/read_first/no_change什么区别),写使能信号WE恒接高。假定计数器模值为4,相应的时序如下图所示。RAM初始值设置为0。在第一帧地址内,从0号地址读出的数据为0,再将数据A写入0号地址,从1号地址读出的数据为0,再将数据B写入1号地址。类似地,数据C和D分别写入2号和3号地址。在第二帧地址内,从0号地址读出的数据即为在第一帧地址内写入的数据A,类似地,从1号、2号和3号地址中读出的数据分别为B、C和D。由于对RAM的输出选择了一级寄存,因此从输入端DIN到输出端DOUT共有5级时钟周期的延迟。

Xilinx FPGA中SLICEM里的LUT可配置为移位寄存器,以UltraScale系列FPGA为例,一个LUT6可配置为深度为32的移位寄存器,实现深度为32的数据延迟(在DCP中看到的SRL16E或SRLC32E,其实就是移位寄存器)。但对于大位宽、深延迟的场合,采用SRL16E或SRLC32E将占用较多的CLB资源,例如,数据位宽为72-bit,延迟深度为1024,则需要消耗的LUT6为2304个(72x1024/32);而采用BRAM,只需要2个36Kb BRAM和少许LUT(实现计数器),且在功耗上有一定的优势。

思考一下:

大位宽的数据延迟或数据缓存,采用LUT实现时会有哪些弊端?

本文分享自微信公众号 - Lauren的FPGA(Lauren_FPGA),作者:LaurenGao

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-04-09

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 学习笔记:多层感知器

    克服单层感知器局限性的有效办法就是在输入层和输出层之间引入一个或多个隐层作为输入样本的内部表示,从而将单层感知器变成多层感知器(MLP,Multilayer P...

    Lauren的FPGA
  • 学习笔记:人工智能、机器学习和深度学习什么关系

    提到人工智能,很多工程师就会想到机器学习、神经网络或者深度学习。这几个概念有一定的区别,也有一定的关系。

    Lauren的FPGA
  • 深度解析ug1292(3)

    通常,我们优先解决建立时间违例。Setup slack与逻辑延迟、布线延迟、时钟歪斜和时钟不确定性有关。因此,首先要明确这几个因素中哪个因素对建立时间违例起关键...

    Lauren的FPGA
  • 十张图看懂未来的大数据世界

    随着互联网云时代的来临,大数据与云计算就像一个硬币的正反两面,势必会影响到社会生活的方方面面,改变我们现有的规则和秩序。伴随着大数据与云计算产业的不断发展,未来...

    华章科技
  • 数据猿专访京东万象杜宇甫:数据交易行业需要“破界”

    数据猿导读 在一个良性的生态中,同时存在着竞争与合作的关系。生态中的企业互相竞争,演化出更加适合市场的数据产品,为想要购买合法数据的企业创造更高的价值,促进整个...

    数据猿
  • 干货 | 从小白到大数据技术专家的学习历程

    ·大数据处理技术怎么学习呢?首先我们要学习Java语言和Linux操作系统,这两个是学习大数据的基础,学习的顺序不分前后。

    华章科技
  • 详解机器学习的八种方法,专业挖掘大数据

    导读:机器学习可以帮助企业做出更好的抉择,但小狗周期往往短暂。本文分析了使用机器学习的八种方法,有助于企业最大限度地提高成功几率。

    挖掘大数据
  • jquery ajax请求成功,数据返回成功,seccess不执行的问题

    1.状态码返回200--表明服务器正常响应了客户端的请求; 2.通过firebug和IE的httpWatcher可以看出服务器端返回了正常的数据...

    大道七哥
  • 精华版PPT丨大数据与信息安全报告

    近日,中国信息化百人会发布了《大数据与信息安全》报告。报告指出,大数据的发展将会带来国际层面、国家安全、社会政治、国民经济、军事安全、个人隐私等方面的信息安全挑...

    小莹莹
  • 大数据24小时 | 神策数据完成A轮400万美元融资 IBM将建大数据学习社区

    滴滴出行宣布与IT在线教育平台Udacity合作,将推出大数据算法竞赛 ? 近日,滴滴出行将其发展目标投向教育领域,与硅谷的IT在线教育平台Udacity达成战...

    数据猿

扫码关注云+社区

领取腾讯云代金券