本文转自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学习相关推荐

  1. Block RAM 和Distributed RAM

    ============================================== FPGA block RAM和distributed RAM区别 区别之1 bram 的输出需要时钟,dr ...

  2. FPGA逻辑设计回顾(11)FPGA以及PC中的RAM与ROM

    文章目录 前言 RAM以及ROM在计算机中的应用 什么是存储器? 什么是硬盘驱动器? 其他类型的存储器 什么是RAM? RAM的类型 SRAM DRAM 什么是ROM? ROM的类型 掩膜ROM PR ...

  3. 从底层结构开始学习FPGA(6)----分布式RAM(DRAM,Distributed RAM)

    文章目录 系列目录与传送门 一.什么是RAM?什么是ROM? 二.块RAM和分布式RAM 2.1.BRAM 2.2.DRAM 2.3.使用建议 三.详解分布式RAM 四.实现方式 4.1.推断 4.2 ...

  4. 从底层结构开始学习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 ...

  5. FPGA block RAM和distributed RAM区别(以及xilinx 7系列CLB资源)

    原地地址:FPGA block RAM和distributed RAM区别 区别之1 block ram 的输出需要时钟,distributed ram在给出地址后既可输出数据. 区别之2 distr ...

  6. 浅谈XILINX FPGA CLB单元 汇总 (CLB、LUT、存储单元、Distributed RAM、移位寄存器、多路复用器、进位逻辑(Carry Logic))

    浅谈XILINX FPGA CLB单元 汇总 (CLB.LUT.存储单元.Distributed RAM.移位寄存器.多路复用器.进位逻辑(Carry Logic)) 一.概述 CLB可配置逻辑块是指 ...

  7. XILINX FPGA 7系之 Distribute RAM

    XILINX FPGA 7系之 CLB/LUT 可以知道 CLB 是基本的组成单元,SLICE 也是 CLB 的基本组成单元,为了更好的使用 XILINX FPGA ,有必要在深挖一下 Distrib ...

  8. FPGA中bram和dram差别

    选择distributed memory generator和block memorygenerator标准: Dram和bram差别: 1.bram 的输出须要时钟,dram在给出地址后既可输出数据 ...

  9. Virtex-6中的BRAM(Block RAM)模块、DSP 模块XtremeDSP

    BRAM(Block RAM)模块 Virtex-6中嵌入BRAM,大大拓展了FPGA的应用范围和应用的灵活性.BRAM可被配置为单端口RAM.双端口RAM.内容地址存储器(CAM)以及FIFO等常用 ...

最新文章

  1. ***WindowsXP常用的七种方法
  2. 领英2017报告:机器学习、大数据工程师成为最热门的新兴职业
  3. 【Network Security!】用户组管理与批处理中(:goto)的用法
  4. React16.2的fiber架构
  5. c++禁止进程被结束_多进程任务实现
  6. Fedora中允许mysql远程访问的几种方式
  7. NLP免费直播 | 两周讲透图卷积神经网络、BERT、知识图谱、对话生成
  8. protobuf2和3同时安装_安装protobuf可能遇到的问题
  9. 从Oracle DBA出发,走进GaussDB的世界 - 云和恩墨大讲堂GaussDB专题
  10. Lifecycle使用与分析-基础
  11. php遍历memcache,php遍历memcache所有键值
  12. CentOS 7安装配置vsftpd做FTP服务
  13. 单片机12864c语言,51单片机+带字库液晶12864+DS1302数字时钟C源程序
  14. Android 11 系统修改默认字体
  15. 事务Transaction的理解(一)
  16. CentOS7系统安装参考
  17. 14-网关实战:网关层整合 Swagger 聚合API文档
  18. MT6765 datasheet手册,MT6765参考设计,MT6765芯片资料
  19. java设计最简单记账本_家庭记账本小程序之前端页面设计(java web基础版一)
  20. XML Schema教程

热门文章

  1. c/c++万能头文件#include <bits/stdc++.h>
  2. Nginx防止恶意域名解析
  3. 数据应用系列(1)-ab测试
  4. 云应用系列---云桌面
  5. 双硬盘+双系统引导出问题的另类解决方法
  6. Linux【挂载新的硬盘挂载系统镜像】
  7. PooledDataSource forcefully closed/removed all connections的解决
  8. 无法启动Sql Server服务
  9. 毒性逆转 水平分割。。
  10. 电子助力方向机控制模块_电动转向助力系统的设置(功能校准)