vivado 亚稳态_【DNN Weaver FPGA实现】Vivado BRAM资源使用

2023-10-27

1、BRAM配置测试

我们知道Vivado中BRAM大小分为18K和36K两种,这两种BRAM在何种配置下会如何分配资源,需要进行一定的考量。由于Vivado可以配置生成任意bit数的IO位宽,所以我对BRAM配置进行了简单的实验,结果如下所示。

18bit位宽,1K深度,共18Kb

可以看到,18bit位宽,1K深度可以正常使用18Kb的小BRAM。

16bit位宽,1152深度,共18Kb

如果使用16bit访存位宽,1152深度,依然是18Kb大小来生成BRAM,会导致资源无法映射到18Kb的BRAM中,而是使用了36Kb大小的BRAM,这导致了一半的BRAM被浪费。

8bit位宽,2304深度,共18Kb

8bit位宽,2048深度,共16Kb

上面两张图可以看到,如果使用较低的8bit位宽实现18Kb大小的RAM,也无法调用18K BRAM。但是如果将深度缩减为2K(经过测试2049深度也是调用了36K BRAM,所以深度必须是2K以下),即RAM大小减小为16Kb,则可以调用18K BRAM,减少资源浪费,这就很有意思了。

根据上述思路,我又对16bit位宽进行测试,设定深度为1K,则调用了18K BRAM,并且深度也是必须小于等于1K才会调用,否则就是36K BRAM,即RAM大小必须小于等于16Kb。依此类推,4bit位宽如果想使用18K BRAM,则必须深度小于等于4K,即RAM小于等于16Kb。

官方文档给出的BRAM原型分配

从官方文档中找到了对上述内容的解释,其实BRAM有16K×1、8K×2、4K×4、2K×9、1K×18、512×36等6种原型方案,所有的BRAM配置方案均在这些原型的基础上进行叠加拼接得到。所以说如果使用了1152×16的配置方案,则需要至少2块1K×18串联来满足深度要求,或者两块2K×9并联(4个4K×4并联等其他方案也可,但太浪费BRAM)来满足位宽要求,所以必须要占用36K BRAM。并且如果有更大的深度或者位宽出现时,可能会有很多种不同的解决方案,Vivado中也提供了相应的三种方案,Minimum Area Algorithm、Low Power Algorithm、Fixed Primitive Algorithm,帮助生成最适合项目需求的RAM形式。详见文档pg058-blk-mem-gen,42~45页。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

vivado 亚稳态_【DNN Weaver FPGA实现】Vivado BRAM资源使用 的相关文章

  • SpringCloud——微服务

    微服务技术栈 在之前的开发过程中 我们将所有的服务都部署在一台服务器中 当我们的服务开始越来越多 业务越来越复杂 当一台服务器不能承担我们的业务的时候 就需要将不同的业务分开部署在不同的服务器上 这每一个单独分离的服务 就是微服务 这些搭载
  • 数据结构 常见的八大数据结构汇总 为什么要学习数据结构?解读数据结构!进阶必看!

    文章目录 什么是数据结构 概念解释 为什么要学习数据结构 常见的数据结构 0 数组 1 链表 2 栈 3 队列 4 树 5 散列表 又叫哈希表 6 堆 7 图 思维导图 横向 纵向 什么是数据结构 数据结构 Data Structure 是
  • 使用Arduino开发ESP32:串口(Serial port) HardwareSerial库使用说明

    HardwareSerial库使用 使用演示 上图中通过HardwareSerial库实现了对串口1的使用 具体说明见下文 详细说明 使用HardwareSerial库需要先声明一个对象 例如上文图中的HardwareSerial mySe
  • MySQL基本操作(三)

    MySQL基本操作 三 看过MySQL基本操作 二 的应该已经体会到mysql数据库下user表的妙用了 我相信你也已经做过一些尝试了 比如自建用户名无需密码登录 自建任意主机登录等等 这样的尝试会增加你对mysql的兴趣 Ok 你第一次登
  • VC得到当前目录与得到应用程序目录的一个应用

    得到当前目录的函数 GetCurrentDirectory 得到应用程序目录的函数是 GetModuleFileName 用法都很简单 不知道就看MSDN吧 我先用这2个函数分别写一个实现同一个功能的函数 以下是代码片段 函 数 名 Rea
  • Candy算法--理解

    Canny边缘检测算子的目标是找到一个最优的边缘检测算法 最优边缘检测的含义是 好的检测 算法能够尽可能多地标识出图像中的实际边缘 好的定位 标识出的边缘要与实际图像中的实际边缘尽可能接近 边缘过粗 难以精确定位 最小响应 图像中的边缘只能
  • kafka中partition数量与消费者对应关系以及Java实践

    kafka是由Apache软件基金会开发的一个开源流处理平台 kafka是一种高吞吐量的分布式发布订阅消息系统 它可以处理消费者在网站中的所有动作流数据 kafka中partition类似数据库中的分表数据 可以起到水平扩展数据的目的 比如
  • wifi服务器dns未响应,wifi显示dns未响应怎么解决

    产品型号 ASUS S340MC 系统版本 Windows 10 1 先重启电脑试试 或者将路由器关掉重新打开 2 设置系统网络服务 1 点击电脑左下角的 开始 找到并点击 设置 2 在Windows设置界面点击 网络和Internet 接
  • 如何通过python实现一个web自动化测试框架?

    要实现一个web自动化测试框架 可以使用Python中的Selenium库 它是最流行的Web应用程序测试框架之一 以下是一个基本的Python Selenium测试框架的示例 如果你想学习更详细的web自动化测试教程 我这边给你推荐一个详
  • Ant Design Pro V4 修改请求配置(api改为服务器地址 请求Content-Type改为form)

    修改api地址 Ant Design Pro 如果 dev 环境要接入自己的服务端api 需要修改 config proxy ts 中的代理设置 原配置 dev api target https preview pro ant design
  • Flutter中的widget

    StatelessWidget和 StatefulWidget是 flutter的基础组件 日常开发中自定义 Widget都是选择继承这两者之一 也是在往后的开放中 我们最多接触的Widget StatelessWidget 无状态的 展示
  • 小新700黑苹果_联想小新Pro14、Pro13、YOGA 14s 2021都有啥区别——联想的刀工

    结论 小新Pro13 13寸爆款 2 5K屏幕 35W散热 小新Pro14 14寸爆款 2 2K屏幕 38W散热 YOGA 14s 14寸旗舰 2 8K高刷新率屏幕 38W散热 从小新Pro13说起 联想2019年发布的小新Pro13这个机
  • Window入侵排查思路

    一 开机启动项 1 在Windows系统中查看启动项 首先要排查的就是开机自启项 开始菜单里的程序中的自启 C Users Administrator AppData Roaming Microsoft Windows StartMenu
  • 【js】使用window.addEventListener后报错 Cannot read properties of null (reading ‘getAttribute‘)的解决方法

    场景 使用window addEventListener resize function 给echarts图表做自适应 但是在切换路由时 其他页面的控制台会疯狂报错 Cannot read properties of null readin
  • 50种网络故障及解决方法

    1 故障现象 网络适配器 网卡 设置与计算机资源有冲突 分析 排除 通过调整网卡资源中的IRQ和I O值来避开与计算机其它资源的冲突 有些情况还需要通过设置主板的跳线来调整与其它资源的冲突 2 故障现象 网吧局域网中其他客户机在 网上邻居
  • 常用几种数据库,取前10条记录的sql语句写法

    access select top 10 from table1 where 1 1 db2 select column from table where 1 1 fetch first 10 rows only mysql select
  • spring源码--09--IOC高级特性--BeanPostProcessor后置处理器的实现

    spring源码 09 IOC高级特性 BeanPostProcessor后置处理器的实现 1 BeanPostProcessor 后置处理器是一个监听器 可以监听容器触发的Bean声明周期事件 后置处理器向容器注册以后 容器中管理的Bea
  • Linux THREAD 线程技术

    NPTL Nativ Posix Thread Library 1 几种线程类型 用户级线程 1 用户级线程无法被系统识别为调度单位 所以不会分发跟多的CPU使用资源 时间片 2 用户级线程无需系统干预 因定义与使用全部在用户层完成 上下文
  • Vue脚手架(vue-cli)搭建和目录结构详解

    一 环境搭建 1 安装node npm webpack 不多说 2 安装vue cli脚手架构建工具 打开命令行工具输入 npm install vue cli g 安装完成之后输入 vue V 注意这里是大写的 V 如果出现相应的版本号

随机推荐

  • 布隆过滤器(Bloom Filter)

    TOC 布隆过滤器 Bloom Filter 1 什么是布隆过滤器 1 布隆过滤器的简单介绍 布隆过滤器 Bloom Filter 是1970年由布隆提出的 它实际上是一个很长的二进制向量和一系列随机映射函数 布隆过滤器可以用于检索一个元素
  • 该重视软件方法了,实现:利润 = 需求 - 设计

    本文篇幅有些长 但是相比阅读各类书籍 然后理解和吸收 会大大节省很多时间 对于一些书中难以理解的部分做了改进 帮助更好的理解 可能阅读本文需要一些软件方法的基础知识 才能更好理解和吸收 甚至提出反馈建议 希望文本对大家有帮助 当然这需要运用
  • vue3组合式api <script setup> props 父子组件的写法

    父组件传入子组个的变量 子组件是无法直接修改的 只能通过 emit的方式 让父组件修改 之后子组件更新
  • 入门机器学习(西瓜书+南瓜书)线性回归和逻辑回归总结(python代码实现)

    入门机器学习 西瓜书 南瓜书 线性回归和逻辑回归总结 python代码实现 一 线性回归理论总结 1 1 通俗理解 通俗理解的线性回归就是求解方程 拿一个最简单的例子来说就是对 y k x b y k
  • scipy提示GLIBCXX缺失,‘GLIBCXX_3.4.29‘ not found (required by xxx)

    credit https askubuntu com q 1393285 https askubuntu com a 1422639 使用ubuntu的test toolchain发布源 sudo add apt repository pp
  • SpringBoot 集成 Swagger 3.0 和 knife4j 文档教程

    SpringBoot 项目集成 Swagger 3 0 文档 添加依赖 在 SpringBoot 项目中 在 pom 文件中添加 Swagger 3 0 的依赖
  • Node.js中的回调函数详解

    Node js中的回调函数详解 回调函数概述 回调函数定义 回调函数主要用途 回调函数用法 回调函数基本格式 简单的回调函数实例 执行顺序理解 回调函数实例 回调函数概述 回调函数在很多地方都有用到 本文主要介绍Node js的回调函数 主
  • spring:集成JDBC

    spring作为一站式框架 提供了控制层的 SpringMVC 和 持久层的 Spring JdbcTemplate 1 导入相关的jar包 pom xml mysql
  • tomcat 和 jboss的热部署(热发布)问题

    所谓的热部署 热发布 下面称为 热部署 就是说 在web工程发布之后 不可避免的 会遇到修改BUG的问题 现在的热部署就是为了解决这个问题 其功能就是说 在不停止web服务的同时 对jsp和java类进行修改 修改后的效果同时还能够在页面上
  • 改变python默认版本方法

    通过软链接命令 ln 此方法为系统级修改 先删除默认的Python软链接 sudo rm rf usr bin python 然后创建一个新的软链接指向需要的Python版本 sudo ln s usr bin python3 usr bi
  • 在idea中启动Vue项目报错Love-Swiper

    今天在重新配置idea时出现的这个错误 由于已经修改完毕 无法重现 大概报错为 Love Swiper 主要错误原因时没有安装vue的这个组件 使用以前语句即可 npm i vue awesome swiper save ignore sc
  • linux中python操作redis读取数据写入文件

    编写python脚本 扫描redis中终端在线集合和查询终端状态表 在redis中 终端在线集合是有序集合存储方式 成员是终端状态表名 终端状态表以hash方式存储 是一个string类型的field和value的映射表 1 脚本第一行是指
  • 常见伪代码指令及使用

    1 声明statement 1 1 Assignment statement赋值语句 variable expression e g将表达式3 4赋给变量result result 3 4 1 2 compound statements 复
  • 2维正态分布-矩阵表示-推导过程

  • 国内主流在用的10大后台UI框架,私活必备

    目录 vue Element Admin AdminLTE ant design pro tabler ng2 admin Gentelella iview admin blur admin vue admin material dashb
  • 今夜你会不会想起我

    夜渐渐的深了 疲惫了一天 还是觉得想写点什么 于是跳下床 把目光所及之处整理了一下 坐下来打开电脑 蓝光从电脑开关处不断的跳跃 随着windows熟悉的声音响起 输入密码 进入桌面 没有登录QQ 只是点开音乐播放器 单曲循环着一首老歌 一首
  • 强烈推荐

    一 前言 在开发中 我们经常会遇到这样一类需求 需要在网页上显示天气预报 股票数据或者实时排行榜单等实时变化的数据 对于此类需求 一种较为原始的做法就是让客户端每隔一段时间主动去轮询服务器 但这种做法有一个很大的弊端 如果客户端的数量很大
  • nginx中的脚本(理论篇)

    按照常规的打法或者按照常规的思路 针对变量的开发 也就是我们在ngx变量实现原理中介绍的那样 定义指令 设计结构体保存指令值 设计方法支持变量插入 利用自带的方法创建注册变量 利用自带的方法获取变量值等等 利用这些基本知识或功能点来开发变量
  • 密码设置十准则

    不论是互联网还是日常生活 我们都离不开密码设置 很多互联网用户都知道 即便是进行了密码设置 在很多时候我们也并不是那么安全 其实很多黑客之所以成功盗QQ 破解邮箱 往往就是因为我们的密码设置过于简单 如果自己设置的密码被别人猜到或破译 那么
  • vivado 亚稳态_【DNN Weaver FPGA实现】Vivado BRAM资源使用

    1 BRAM配置测试 我们知道Vivado中BRAM大小分为18K和36K两种 这两种BRAM在何种配置下会如何分配资源 需要进行一定的考量 由于Vivado可以配置生成任意bit数的IO位宽 所以我对BRAM配置进行了简单的实验 结果如下