BRAM IP Native模式使用

news2024/11/18 3:29:24

简介

        BRAM(‌Block RAM)是‌FPGA(Field-Programmable Gate Array)中的一种专用RAM资源,固定分布在FPGA内部的特定位置。该内容主要对BRAM(Block RAM”的缩写)Native模式下IP界面做详细描述和使用。

界面介绍

Basic界面

  

        1、选择对外接口,可以是AXI总线控制读写也可以是Native本地模式接口,本章节我们只介绍Native常规模式下的BRAM控制。

        2、存储类型分别有RAM模式和ROM模式;

        (1)Single-port ROM:

        该模式对外接口如下:

        简单的理解就是根据地址输出指定数据,数据写入COE文件并保存,保存方法后面会讲解;

        (2)

        该模式下支持一个ROM可同时访问两个地址空间的数据。

        (3)Single-port RAM

        不同于ROM模式的是RAM支持在线读写功能,并且初始化内容可以是COE里的值,对外接口如下:

        单口RAM的读写公用一个地址,当wea = 1时写使能代表写数据有效,为0的时候读有效。单口BRAM的优点时接口比较简单,缺点是读写不能同时进行,即写的时候无需对BRAM进行读操作。

        (4)Simple Dual-port RAM

        该模式下写地址和读地址分开,可以实现同时进行BRAM地址空间读写操作,至于读写优先级可在IP配置里设置,稍后做介绍。

        (5)True Dual-port RAM

        和Simple Dual-port RAM一样可以支持同时读写操作,但有所不同,具体如下:

        Simple Dual-port RAM(伪双口RAM)‌的特点是一个端口只用于写入,另一个端口只用于读取。这种设计简化了硬件设计,因为它不需要两个端口同时进行读操作或者同时写操作。在资源使用方面,伪双口RAM使用的资源相对较少,因为它只需要保证读写操作不会同时发生。

        ‌True Dual-port RAM(真双口RAM)‌则允许两个端口同时进行读写操作。这意味着两个端口都可以独立地进行读或写操作,或者一个端口进行读操作时,另一个端口可以进行写操作。这种设计提供了更高的数据吞吐量和更快的处理速度,因为它允许数据在两个端口之间并行处理。然而,这种设计也增加了设计的复杂性,因为需要确保两个端口的读写操作不会发生冲突。在资源使用方面,真双口RAM使用的资源是伪双口RAM的两倍,因为它需要支持两个端口同时进行读写操作。

        总的来说,伪双口RAM和真双口RAM的主要区别在于读写端口的独立性和资源使用。伪双口RAM虽然资源使用较少,但读写操作不能同时进行;而真双口RAM虽然资源使用较多,但允许两个端口同时进行读写操作,提供了更高的数据吞吐量和更快的处理速度‌。

        PORT界面

        1、写数据宽度设置;

        2、读数据宽度设置;

        3、写数据深度设置;

        4、读数据深度结合前面1、2、3的设置自动生成深度;

        5、写有效过程中数据输出模式选择,时序如下:

        (1)写优先级

        数据实时跟新新写入的数据;

        (2)读优先级

        数据显示之前的数据,新写入的数据没有实时更新;

        (3)写数据有效时输出数据不发生变化

        在写入过程中,数据输出不变化。

        显示设计应用中一般对写入的新数据不会要求实时输出的值,所以一般场景下选择什么模式输出并不影响。

        6、读写使能,可以选择一直使能(always enable),在写模式下ENA和WEA同时为1时写有效,读模式下ENB为1,读数据有效。

        7、添加寄存器输出,都是为了提高BRAM的运行频率或者改善时序的(当然也增加了延迟);

        (1)Primitives Output Register ,使用BRAM内部的寄存器打拍输出

        (2)Primitives Output Register ,使用SLICE的寄存器打拍输出

        (3)SoftECC Input Register ,当使用软ECC的时候,用SLICE的寄存器打拍。

        (4)REGCEA,当使用Primitives Output Register时,可以用REGCEA 来使能/去使能相应的输出。

        一般情况下时序不紧张的情况下可以不做打拍延时,最终数据输出延时周期可在SUMMARY里看到,如下图所示:

        8、RSTA Pin ,BRAM复位,高有效

        9、Output Reset Value ,复位时,输出的值;

        另外选择复位后还有复位的设置,如下图所示:

        Reset Prority ,复位优先级。它的选项有CE 和 SR 。当我们选择CE的时候,只有ENA为高时,RSTA复位才生效。当我们选择SR时,无论ENA是高是低,RSTA复位都会生效,如下图所示:

        CE模式下复位:

        SE模式下复位:

Other Options

        1、给BRAM赋予初值,需要用到COE文件,COE的格式如下:

        COE文件可以通过VIVADO创建,选择load init file并点击edit,如下图所示:

BRAM的基础介绍就到这里,有疑问欢迎留言

        

        

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2119545.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C语言进阶版第9课—指针(3)

文章目录 1. 字符指针变量2. 数组指针变量3. 二维数组传参的本质4. 函数指针变量5. typedef关键字6. 函数指针数组7. 函数指针数组的应用—转移表 1. 字符指针变量 练习题 2. 数组指针变量 在学习数组指针前,我们先回忆一下什么是指针数组指针数组 → 存放指针的数…

基于单片机的人脸识别的智能门禁系统设计

文章目录 前言资料获取设计介绍功能介绍设计清单核心代码具体实现截图参考文献设计获取 前言 💗博主介绍:✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师,一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等…

Unity Addressables 使用说明(一)概述

使用 Adressables 组织管理 Asset Addressables 包基于 Unity 的 AssetBundles 系统,并提供了一个用户界面来管理您的 AssetBundles。当您使一个资源可寻址(Addressable)时,您可以使用该资源的地址从任何地方加载它。无论资源是在…

【C++ Primer Plus习题】14.2

大家好,这里是国中之林! ❥前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。有兴趣的可以点点进去看看← 问题: 解答: main.cpp #include <iostream> #include "wine.h" …

【PWN · 栈溢出 | GOT劫持】[2024 · 长城杯]consumption

通过代码审计&#xff0c;找到栈溢出漏洞点&#xff0c;覆盖关键栈变量&#xff0c;实现任意地址写 前言 本题主要是套壳了Cjson&#xff0c;实则是约定了输入格式。通过仔细代码审计&#xff0c;即可找到栈溢出&#xff0c;并实现利用 一、题目 查阅网上资料&#xff0c;得知…

如何提取视频中的音频?新手也能轻松搞定

在数字媒体处理中&#xff0c;从视频文件中提取音频是一个常见需求。无论你是希望为视频制作单独的音频版本&#xff0c;还是想将某段视频的背景音乐用于其他项目&#xff0c;掌握音频提取技术都至关重要。本文将详细介绍几种提取视频中音频的方法&#xff0c;帮助你轻松实现这…

【自考zt】【软件工程】【21.04】(部分)

一、单选 二、填空 三、简答 四、应用 小结&#xff1a;

DeepSeek缓存命中技术,成本降低10倍

DeepSeek系列升级&#xff1a; DeepSeek发布最新的缓存命中技术&#xff0c;有效降低成本至0.1元/百万tokens&#xff0c;适用于文件读取和固定提示词。 点评&#xff1a;由于token消耗大部分是在系统提示词中&#xff0c;妥善使用确实可以极大降低成本&#xff0c;同时还能保证…

音视频入门基础:WAV专题(11)——FFmpeg源码中计算WAV音频文件每个packet的pts_time、dts_time的实现

音视频入门基础&#xff1a;WAV专题系列文章&#xff1a; 音视频入门基础&#xff1a;WAV专题&#xff08;1&#xff09;——使用FFmpeg命令生成WAV音频文件 音视频入门基础&#xff1a;WAV专题&#xff08;2&#xff09;——WAV格式简介 音视频入门基础&#xff1a;WAV专题…

ssm微信小程序校园失物招领论文源码调试讲解

第二章 开发技术与环境配置 以Java语言为开发工具&#xff0c;利用了当前先进的SSM框架&#xff0c;以MyEclipse10为系统开发工具&#xff0c;MySQL为后台数据库&#xff0c;开发的一个微信小程序校园失物招领。 2.1 Java语言简介 Java是由SUN公司推出&#xff0c;该公司于20…

[git操作] git创建仓库上传github报错

操作流程如下 使用 git init使用 git remote add origin 项目ssh链接git add . 报错如下 Bus error (core dumped)然后执行任何别的操作都会报错&#xff1a; fatal: Unable to create path .. /.git/index.lock: File exists.Another git process seems to be running in …

​全国计算机软件中级资料分享

全国计算机软件中级资料分享 软考资料分析 软件设计师中间 免费资料 链接:https://pan.baidu.com/s/1GqbgIq_D0uZd-uuhIhG-Sg?pwd2atp 提取码:2atp 复制这段内容后打开百度网盘手机App&#xff0c;操作更方便哦 求个免费关注不过分吧。

vue实现评论滚动效果

vue插件实现滚动效果 一、安装组件 官网地址&#xff1a;https://chenxuan0000.github.io/vue-seamless-scroll/ 1、vue2安装 npm install vue-seamless-scroll --savevue3安装 npm install vue3-seamless-scroll --save二、组件引入 <template><div v-if"…

OpenCV 与 Matplotlib 的结合使用:轮毂检测与目标跟踪

目录 绘制轮廓图像 实现思路 1. 读取图像并转换为灰度图像 2. 二值化处理 3. 查找轮廓 4. 绘制轮廓 5. 显示结果 代码实现 效果展示 动态逐步显示轮廓结果 实现思路 1. 读取图像并缩放 2. 转换为灰度图像 3. 二值化处理 4. 查找轮廓 5. 动态显示轮廓 6. 显示最…

基于图神经网络的最大独立集问题的目标分支

文章目录 Abstract1 Introduction2 Related Work分支顶点选择图神经网络Abstract 分支归约方法结合了分支约束原则和归约规则,在处理以前无法管理的现实世界实例方面特别成功。分支策略决定下一个要在哪个顶点上进行分支。最近,最广泛使用的策略是选择最高度的顶点。 在这项…

C++为什么要引入智能指针?

智能指针的必要性 C 引入智能指针主要是为了解决手动管理动态分配内存时可能出现的几个问题&#xff0c;特别是内存泄漏、野指针和异常安全等问题。智能指针通过封装原始指针的操作&#xff0c;提供自动化的内存管理机制&#xff0c;以减少这些问题的发生。 具体来说&#xff…

c++基础补充

c基础补充 函数补充函数声明函数的分文件编写 指针补充占用大小空指针坏指针野指针 C内存分区模型 函数补充 函数声明 #include <iostream> using namespace std;int max(int a,int b);int main() {int result max(1,3);cout << result << endl;return 0;…

皮肤表皮层

表皮层的细胞大都是由基底层细胞分裂分化而来, 1:角质层 2:透明层 3:颗粒层 4:棘状层 5:基底层角质层 组成:由10-20 死细胞组成 细胞膜很厚 细胞核及胞器消失 细胞间隙被脂质连接 透明层 只出现在手掌和脚掌中 颗粒层 2-4层细胞角质细胞 活细胞 棘状层 有免疫…

chapter13-常用类——(Date、Calendar、LocalDate)—day17

目录 488-Date介绍 489-Date应用实例 490-Calendar介绍 491-Calendar应用实例 492-第三代日期使用 493-第三代日期方法 494-String翻转 495-注册处理题 496-字符串统计 497-String内存布局测试题 488-Date介绍 IDEA里面的properties是set/get方法 489-Date应用实例 49…

网络编程(UDP)

UDP编程 UDP&#xff1a;全双工通信、面向无连接、不可靠 UDP&#xff08;User Datagram Protocol&#xff09;用户数据报协议&#xff0c;是不可靠的无连接的协议。在数据发送前&#xff0c;因为不需要进行连接&#xff0c;所以可以进行高效率的数据传输。 适用场景 发送小尺寸…