0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

FPGA中block ram的特殊用法列举

电子设计 来源:电子设计 作者:电子设计 2020-12-24 14:28 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

FPGA中block ram是很常见的硬核资源,合理的利用这些硬件资源一定程度上可以优化整个设计,节约资源利用率,充分开发FPGA芯片中的潜在价值,本文根据前人总结的一些用法,结合安路科技FPGA做简单总结,说明基本原理。

用法一:使用双口模式拆分成2个小容量的BRAM

基本原理如下:

· 以1K*9bit双端口配置模式为例,一个bram9k,可以当作两个512*9k rom

· 将A端口的地址最高位固定接0,B端口的地址最高位固定接1,则通过A端口只能访问0~511的地址空间,通过B端口只能访问512~1023地址空间,互不冲突,相当于两个小容量的rom

用法二:用作并行数据的多周期延时

· 将bram例化成简单双端口模式,并将写端口固定使能为写,读端口固定使能为读。

· 将ram模式配置成 “读优先模式”,每次在写某个地址之前会先把该地址的数据输出

· 用一个模长为N(N=4)的计数器,反复向ram中写数据,会得到一个延时为N+1的输出数据

用法三:用作高速大规模计数器

基本原理如下:

· 以9Kbit bram为例,设置成双端口,1k*9bit模式

· A端口doa[7:0]是低8bit 计数器输出,doa[8]是进位信号,给到B端口的使能

· B端口dob[7:0]是高8bit计数器输出。

· 由于B端口数据有一个周期延时,将A端口数据延时一个周期之后与B端口构成16bit计数器

· 也即一个9Kbit bram可以构造成一个16bit的计数器

· 设计原型是两个8bit的计数器级联构造16bit计数

· rom初始化文件

审核编辑:符乾江
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1655

    文章

    22282

    浏览量

    630078
  • BRAM
    +关注

    关注

    0

    文章

    41

    浏览量

    11560
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    请问如何用C语言列举当前所有网口?

    如何用C语言列举当前所有网口?
    发表于 11-25 07:23

    C语言的printf基本用法介绍

    is %d !\" 的 %d 被替换成了 abc 的值,其他字符没有改变。这说明 %d 比较特殊,不会原样输出,会被替换成对应的变量的值。 再来看: int a=100; int b
    发表于 11-12 07:04

    Xilinx BRAM IP核配置及其例化

    首先在IP catalog搜索 BRAM ,点击BRAM GENERATOR。 接口方式有五种,一般使用simple dual port ram Simple Dual Port RAM,简单双
    发表于 10-24 06:10

    ram ip核的使用

    1、简介 ram 的英文全称是 Random Access Memory,即随机存取存储器, 它可以随时把数据写入任一指定地址的存储单元,也可以随时从任一指定地址读出数据, 其读写速度是由时钟频率
    发表于 10-23 07:33

    如何从 flash 把代码搬运到 ram 运行的?

    没有已经移植适配过的芯片 运行机制是从 flash 把代码搬运到 ram 运行的
    发表于 09-28 11:03

    聊聊FPGA的TDC原理

    今天我们不谈高大上的物理学,只聊聊如何在 FPGA ,用一串加法器和 D 触发器,“数清楚时间”——这就是时间数字转换器(TDC)的魅力。
    的头像 发表于 09-02 15:15 910次阅读
    聊聊<b class='flag-5'>FPGA</b><b class='flag-5'>中</b>的TDC原理

    AI狂飙, FPGA会掉队吗? ()

    在上篇,我们介绍了FPGA的前面两个特点:硬件可编程、并行与实时,也列举了这两个特点带来的诸多机会。在本文中,我们将继续介绍另外两个特点,以集齐FPGA的四大特点和生存机会。
    的头像 发表于 08-08 09:36 763次阅读
    AI狂飙, <b class='flag-5'>FPGA</b>会掉队吗? (<b class='flag-5'>中</b>)

    嵌入式系统,FLASH 的程序代码必须搬到 RAM 运行吗?

    嵌入式系统里,FLASH 的程序代码并非必须搬到 RAM 运行,这得由硬件配置、实际性能需求和应用场景共同决定。就像很多低端单片机,无论是依赖片内 Flash 还是外挂的 SPI NOR
    的头像 发表于 08-06 10:19 1130次阅读
    嵌入式系统<b class='flag-5'>中</b>,FLASH <b class='flag-5'>中</b>的程序代码必须搬到 <b class='flag-5'>RAM</b> <b class='flag-5'>中</b>运行吗?

    linux系统awk特殊字符命令详解

    在Linux系统,awk 是一种非常强大的文本处理工具,能够对文本数据进行分析、格式化和筛选。利用其内置的特殊字符和操作符,用户可以实现复杂的数据处理任务。以下对一些常见的awk特殊字符和操作符
    的头像 发表于 07-28 16:38 412次阅读

    TLE9893 怎么将代码放在ram运行?

    如题,我希望将我的中断回调函数放进ram运行以保证他的运行速度更快。那么我该怎么修改程序才能做到呢?或者有没有相关的例程给我参考一下。
    发表于 07-14 08:00

    PLL用法

    易灵思的FPGA在生成PLL的方式与别的厂家稍有区别,这与其的core和interface架构是相对应的。对于易灵思的FPGA来讲,PLL,GPIO,MIPI,LVDS和DDR相对于core部分都是
    的头像 发表于 06-07 16:18 1022次阅读
    PLL<b class='flag-5'>用法</b>

    UIAbility组件基本用法说明

    UIAbility组件基本用法 UIAbility组件的基本用法包括:指定UIAbility的启动页面以及获取UIAbility的上下文UIAbilityContext。 指定UIAbility
    发表于 05-16 06:32

    Xilinx Shift RAM IP概述和主要功能

    Xilinx Shift RAM IP 是 AMD Xilinx 提供的一个 LogiCORE IP 核,用于在 FPGA 实现高效的移位寄存器(Shift Register)。该 IP 核利用
    的头像 发表于 05-14 09:36 820次阅读

    FPGA从0到1学习资料集锦

    RAM 也往往容量非常小。现在的 FPGA 不 仅包含以前的 LE,RAM也更大更快更灵活,管教 IOB 也更加的复杂,支持的 IO 类型也更多,而且内部还集成了一些特殊功能单元,包
    发表于 05-13 15:41

    ADS1191的RLD block是怎样组合电极生成病人驱动信号的?

    希望TI庄家帮我解决一下RLD block、Lead-off detection的作用、用法的疑惑
    发表于 01-13 06:43