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
    +关注

    关注

    1664

    文章

    22503

    浏览量

    639275
  • BRAM
    +关注

    关注

    0

    文章

    43

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    RAM存储器的地址冲突场景

    RAM 是基于 FPGA 的系统设计的关键组件,通常用于其高速数据存储功能。然而,地址冲突可能会带来重大挑战,影响系统的可靠性和性能。本文我们将探讨简单双端口 RAM 模块
    的头像 发表于 04-24 09:59 3238次阅读
    块<b class='flag-5'>RAM</b>存储器<b class='flag-5'>中</b>的地址冲突场景

    变频器的特殊用法

    变频器作为电力电子技术的重要应用设备,其核心功能是通过改变电源频率实现对电机转速的精确控制。然而在实际工业场景和创意应用,工程师们早已突破传统认知,开发出一系列令人惊叹的特殊用法。这些创新实践不仅拓展了变频器的应用边界,更展现
    的头像 发表于 03-03 17:08 609次阅读

    HLS设计的BRAM使用优势

    高层次综合(HLS)是一种将高级编程语言(如C、C++或SystemC)转换为硬件描述语言(HDL)的设计方法。在FPGA设计,设计者可以灵活地利用FPGA内部的资源,如块RAM(B
    的头像 发表于 01-28 14:36 416次阅读

    三菱PLC特殊辅助继电器指令功能用法教程

    ‌三菱PLC的M8000指令大全‌包括了一系列特殊功能寄存器,这些寄存器在PLC的运行起着重要的作用。
    的头像 发表于 01-23 16:22 1590次阅读
    三菱PLC<b class='flag-5'>特殊</b>辅助继电器指令功能<b class='flag-5'>用法</b>教程

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

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

    C语言的printf基本用法介绍

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

    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 2634次阅读
    聊聊<b class='flag-5'>FPGA</b><b class='flag-5'>中</b>的TDC原理

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

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

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

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

    PLL用法

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

    Xilinx Shift RAM IP概述和主要功能

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

    FPGA从0到1学习资料集锦

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