FPGA经验谈系列文章——9、块储存器的高效使用

embedded/2024/11/27 1:09:33/

前言

        每个7系列的FPGA都包含多个36Kb容量的块存储器,俗称BlockRAM。一个BlockRAM是36Kb,它能够拆分成独立的两个18Kb,因此最小的使用单位就是18Kb。如果只想使用1Kb怎么办?不好意思,也得占用半个块存储资源18Kb。那如果使用了19Kb的话,那么就得使用一个完整的36Kb的BlockRAM了。因此我们尽量规划好存储资源的使用,特别是在存储资源紧张的时候合理规划,不要浪费,小存储需求可以采用SLICEM中的LUT构建的分布式RAM来解决。

配置种类

        一个BlockRAM可以配置成各种深度和宽度的组合,使用非常灵活。

        每个36Kb的BRAM根据位宽与深度的不同,可以配成成如下形式(深度 ×位宽):32K x 1, 16K x 2, 8K x 4, 4K x 9, 2K x 18, 1K x 36, 512 x 72。

        每个18Kb的BRAM根据位宽与深度的不同,可以配成成如下形式(深度 ×位宽):16K x 1, 8K x2,  4K x 4, 2K x 9, 1K x 18 , 512 x 36。

        同时BlockRAM的实现形式也可以配置成几种

        (1)真双口RAM(True Dual-p


http://www.ppmy.cn/embedded/140773.html

相关文章

PyTorch2

Tensor的常见操作: 获取元素值: 注意: 和Tensor的维度没有关系,都可以取出来! 如果有多个元素则报错; import torch def test002():data torch.tensor([18])print(data.item())pass if __name__ &qu…

[极客大挑战 2019]BabySQL--详细解析

信息搜集 进入界面: 输入用户名为admin,密码随便输一个: 发现是GET传参,有username和password两个传参点。 我们测试一下password点位能不能注入: 单引号闭合报错,根据报错信息,我们可以判断…

深度学习——3种常见的Transformer位置编码【sin/cos、基于频率的二维位置编码(2D Frequency Embeddings)、RoPE】

🌺历史文章列表🌺 深度学习——优化算法、激活函数、归一化、正则化深度学习——权重初始化、评估指标、梯度消失和梯度爆炸深度学习——前向传播与反向传播、神经网络(前馈神经网络与反馈神经网络)、常见算法概要汇总万字长文解读…

基于 DRNN 神经网络整定的 PID 解耦控制

1. 基本原理 DRNN(Dynamic Recurrent Neural Network, 动态递归神经网络)是一种带有时间反馈的神经网络,能够建模系统的动态特性,适用于非线性、多变量、时变系统的控制。结合 PID 解耦控制,利用 DRNN 进行动态建模和…

5.5 W5500 TCP服务端与客户端

文章目录 1、TCP介绍2、W5500简介2.1 关键函数socketlistensendgetSn_RX_RSRrecv自动心跳包检测getSn_SR 1、TCP介绍 TCP 服务端: 创建套接字[socket]:服务器首先创建一个套接字,这是网络通信的端点。绑定套接字[bind]:服务器将…

python VS c++

一、语法特点 Python: 语法简洁、优雅,代码可读性极强,采用缩进来表示代码块,摒弃了像 C 那样使用大括号的传统方式,使得代码看上去十分清晰简洁。例如: ​ if 5 > 3:print("5大于3") elif 5 …

Python人工智能项目报告

一、实践概述 1、实践计划和目的 在现代社会,计算机技术已成为支撑社会发展的核心力量,渗透到生活的各个领域,应关注人类福祉,确保自己的工作成果能够造福社会,同时维护安全、健康的自然环境,设计出具有包…

『VUE』34. 异步组件(详细图文注释)

目录 加载速度的优化示例代码总结 欢迎关注 『VUE』 专栏,持续更新中 欢迎关注 『VUE』 专栏,持续更新中 加载速度的优化 实际项目中你可能会有几十个组件,如果一开始就加载了全部组件(哪怕其中有些组件你暂时用不到)这无疑大大增加了响应时间,用户体验…