FPGA的BRAM和distributed RAM学习
本文转自AutoESL,原文链接:https://bbs.21ic.com/icview-272894-1-1.html,转载时请注明出处及相应链接。
————————————————
xilinx spartan3an系列fpga:
一个CLB包含4个SLICE,其中左边两个SLICE可用于存储、移位寄存器和逻辑配置,称为SLICEM;右边的两个SLICE只能用于逻辑组合,称为SLICEL。每个SLICE中有2个LUT,2个存储单元,多路复用器,进位链等。一个LUT和一个存储单元称为一个LOGIC CELL,因此通常一个SLICE等效于2.25个LOGIC CELL。
1、bram 的输出需要时钟,dram在给出地址后既可输出数据。
2、bram有较大的存储空间,是fpga定制的ram资源;而dram是逻辑单元拼出来的,浪费LUT资源
3、dram使用更灵活方便些
补充:
1、较大的存储应用,建议用bram;零星的小ram,一般就用dram。但这只是个一般原则,具体的使用得看整个设计中资源的冗余度和性能要求
2、dram可以是纯组合逻辑,即给出地址马上出数据,也可以加上register变成有时钟的ram。而bram一定是有时钟的。
3、如果要产生大的FIFO或timing要求较高,就用BlockRAM。否则,就可以用Distributed RAM。
在Xilinx Asynchronous FIFO CORE的使用时,有两种RAM可供选择,Block memory和Distributed memory。差别在于,前者是使用FPGA中的整块双口RAM资源,而后者则是拼凑起FPGA中的查找表形成。
问 -
分布式和Block RAM的区别答 -
CLB单元生成的distribute ram ,CLB是FPGA的基本单元,block ram也是基本单元,但分布ram要由CLB单元生成。由CLB生成分布式ram,消耗逻辑资源。而block ram则固定在fpga内,无论使用与否都存在于那里。当block ram不够用时可以用逻辑资源生成分布式ram。问 -
分布式RAM是如何产生的?答 -
这里以Virtex4为例说明:一个CLB由4个Slice组成,这4个Slice又分SliceM和SliceL,其中M是Memory的首字母,L是Logic的首字母,比较SliceM和SliceL,他们的区别就是SliceM的查找表具有RAM和ROM的功能,而SliceL的则不具备。所以SliceM比SliceL多的功能就是做存储器和移位。这样就很清楚了:SliceM可实现Distribut RAM,而Distribut RAM是由SliceM中的LUT实现。CLB的结构下所示:Matric -------SliceM(2) SliceL(3)--------Y1Switch ------ SliceM(0) SliceL(1)--------Y0| || |X0 X1
这里XNYM,X--列,N--列号,Y--行,M--行号,Xilinx FPGA内部结构是一种阵列结构。
问 -
请问SliceM除了可实现Distribut RAM之外还能实现什么功能?
SliceM实现Distribut RAM时使用SliceM中的SRL16存储单元么?答 -
如果看SliceM的图,是看不到里面有专么这个SRL16的。其实SRL16就是一个基于查找表结构的移位寄存器。而SRL16以primitive形式存在而已。在userguide中,也画了SRLC16的图,它就是一个查找表。比较SliceM和SliceL,他们的区别就是SliceM的查找表具有RAM和ROM的功能,而SliceL的则不具备。所以SliceM比SliceL多的功能就是做存储器和移位。“SliceM实现Distribut RAM时使用SliceM中的SRL16存储单元么?” 因为SRL16用的就是LUT,所以,如果这个LUT作为Distribute RAM使用了,则就不能再作为SRL16使用了。
FPGA的BRAM和distributed RAM学习相关推荐
- Block RAM 和Distributed RAM
============================================== FPGA block RAM和distributed RAM区别 区别之1 bram 的输出需要时钟,dr ...
- FPGA逻辑设计回顾(11)FPGA以及PC中的RAM与ROM
文章目录 前言 RAM以及ROM在计算机中的应用 什么是存储器? 什么是硬盘驱动器? 其他类型的存储器 什么是RAM? RAM的类型 SRAM DRAM 什么是ROM? ROM的类型 掩膜ROM PR ...
- 从底层结构开始学习FPGA(6)----分布式RAM(DRAM,Distributed RAM)
文章目录 系列目录与传送门 一.什么是RAM?什么是ROM? 二.块RAM和分布式RAM 2.1.BRAM 2.2.DRAM 2.3.使用建议 三.详解分布式RAM 四.实现方式 4.1.推断 4.2 ...
- 从底层结构开始学习FPGA(8)----Block RAM(BRAM,块RAM)
文章目录 系列目录与传送门 1.什么是BRAM 2.BRAM的组成 3.BRAM的使用 3.1.RAM 3.2.ROM 3.3.FIFO 4.一些需要注意的 4.1.自带的输出寄存器 4.2.BRAM ...
- FPGA block RAM和distributed RAM区别(以及xilinx 7系列CLB资源)
原地地址:FPGA block RAM和distributed RAM区别 区别之1 block ram 的输出需要时钟,distributed ram在给出地址后既可输出数据. 区别之2 distr ...
- 浅谈XILINX FPGA CLB单元 汇总 (CLB、LUT、存储单元、Distributed RAM、移位寄存器、多路复用器、进位逻辑(Carry Logic))
浅谈XILINX FPGA CLB单元 汇总 (CLB.LUT.存储单元.Distributed RAM.移位寄存器.多路复用器.进位逻辑(Carry Logic)) 一.概述 CLB可配置逻辑块是指 ...
- XILINX FPGA 7系之 Distribute RAM
XILINX FPGA 7系之 CLB/LUT 可以知道 CLB 是基本的组成单元,SLICE 也是 CLB 的基本组成单元,为了更好的使用 XILINX FPGA ,有必要在深挖一下 Distrib ...
- FPGA中bram和dram差别
选择distributed memory generator和block memorygenerator标准: Dram和bram差别: 1.bram 的输出须要时钟,dram在给出地址后既可输出数据 ...
- Virtex-6中的BRAM(Block RAM)模块、DSP 模块XtremeDSP
BRAM(Block RAM)模块 Virtex-6中嵌入BRAM,大大拓展了FPGA的应用范围和应用的灵活性.BRAM可被配置为单端口RAM.双端口RAM.内容地址存储器(CAM)以及FIFO等常用 ...
最新文章
- ***WindowsXP常用的七种方法
- 领英2017报告:机器学习、大数据工程师成为最热门的新兴职业
- 【Network Security!】用户组管理与批处理中(:goto)的用法
- React16.2的fiber架构
- c++禁止进程被结束_多进程任务实现
- Fedora中允许mysql远程访问的几种方式
- NLP免费直播 | 两周讲透图卷积神经网络、BERT、知识图谱、对话生成
- protobuf2和3同时安装_安装protobuf可能遇到的问题
- 从Oracle DBA出发,走进GaussDB的世界 - 云和恩墨大讲堂GaussDB专题
- Lifecycle使用与分析-基础
- php遍历memcache,php遍历memcache所有键值
- CentOS 7安装配置vsftpd做FTP服务
- 单片机12864c语言,51单片机+带字库液晶12864+DS1302数字时钟C源程序
- Android 11 系统修改默认字体
- 事务Transaction的理解(一)
- CentOS7系统安装参考
- 14-网关实战:网关层整合 Swagger 聚合API文档
- MT6765 datasheet手册,MT6765参考设计,MT6765芯片资料
- java设计最简单记账本_家庭记账本小程序之前端页面设计(java web基础版一)
- XML Schema教程