精华内容
下载资源
问答
  • 区别之1 bram 的输出需要时钟,dram在给出地址后既可输出数据。 区别之2 dram使用更灵活方便些 区别之3 bram有较大的存储空间,dram浪费...但这只是个一般原则,具体的使用得看整个设计中资源的冗余度性能要求

    区别之1
    bram 的输出需要时钟,dram在给出地址后既可输出数据。
    区别之2
    dram使用更灵活方便些
    区别之3
    bram有较大的存储空间,dram浪费LUT资源


    1,物理上看,bram是fpga中定制的ram资源,dram就是用逻辑单元拼出来的。
    2,较大的存储应用,建议用bram;零星的小ram,一般就用dram。但这只是个一般原则,具体的使用得看整个设计中资源的冗余度和性能要求
    3,dram可以是纯组合逻辑,即给出地址马上出数据,也可以加上register变成有时钟的ram。而bram一定是有时钟的。

    原文链接:http://satellitezhang.blog.163.com/blog/static/44978233201010259444359/

    展开全文
  • FPGA中Block RAM和分布式RAM的区别?分别适用的场景是什么?1 Block RAM2 查找表存储器——分布式RAM3 嵌入式存储器的使用方法 FPGA芯片内有两种存储器资源:一种叫block ram,另一种是由LUT配置成的内部存储器(也...

    FPGA中Block RAM和分布式RAM的区别?分别适用的场景是什么?


    FPGA芯片内有两种存储器资源:一种叫block ram,另一种是由LUT配置成的内部存储器(也就是分布式ram)。

    1 Block RAM

    Block ram由一定数量固定大小的存储块构成的,使用BLOCK RAM资源不占用额外的逻辑资源,并且速度快。但是使用的时候消耗的BLOCK RAM资源是其块大小的整数倍。如Xilinx公司的结构中每个BRAM有36Kbit的容量,既可以作为一个36Kbit的存储器使用,也可以拆分为两个独立的18Kbit存储器使用。反过来相邻两个BRAM可以结合起来实现72Kbit存储器,而且不消耗额外的逻辑资源。
    在这里插入图片描述

    如图所示,每个Block RAM都有两套访问存储器所需的地址总线、数据总线及控制信号灯信号,因此其既可以作为单端口存储器,也可以作为双端口存储器。需要注意的时访问BRAM需要和时钟同步,异步访问不支持的。

    2 查找表存储器——分布式RAM

    只有成为SLICEM的逻辑块里的查找表才可以用做分布式RAM。
    利用查找表为电路实现存储器,既可以实现芯片内部存储,又能提高资源利用率。**分布式RAM的特点是可以实现BRAM不能实现的异步访问。**不过使用分布式RAM实现大规模的存储器会占用大量的LUT,可用来实现逻辑的查找表就会减少。
    因此建议仅在需要小规模存储器时,使用这种分布式RAM。

    3 嵌入式存储器的使用方法

    可以利用FPGA厂商提供的IP生成工具,或手动编写HDL程序。
    FPGA内部众多的BRAM和分布式RAM可以并行访问,存储器访问的总带宽很大,在使用FPGA实现应用时,有效利用嵌入式存储器提供的大带宽,是实现高性能硬件的关键。
    综上:
    分布式RAM适用于:小规模存储器或者需异步访问的存储器。
    Block RAM适用于其他场景。

    展开全文
  •  分布式RAM和 BLOCK RAM的选择遵循以下方法:  1. 小于或等于64bit容量的的都用分布式实现  2. 深度在64~128之间的,若无额外的block可用分布式RAM。 要求异步读取就使用分布式RAM。数据宽度大于16时用...



     来源:http://www.eefocus.com/b3574027/blog/15-05/312609_2e5ad.html


    以下分析基于xilinx 7系列

    CLB是xilinx基本逻辑单元,每个CLB包含两个slices,每个slices由4个(A,B,C,D)6输入LUT和8个寄存器组成。

     同一CLB中的两片slices没有直接的线路连接,分属于两个不同的列。每列拥有独立的快速进位链资源。QQ截图20150519192946.png

    slice分为两种类型 SLICEL,  SLICEM .  SLICEL可用于产生逻辑,算术,ROM。 SLICEM除以上作用外还可配置成分布式RAM或32位的移位寄存器。每个CLB可包含两个SLICEL或者一个SLICEL与一个SLICEM.

     

    7系列的LUT包含6个输入 A1 -A6 , 两个输出 O5 , O6 .

    可配置成6输入查找表,O6此时作为输出。或者两个5输入的查找表,A1-A5作为输入 A6拉高,O5,O6作为输出。

     

        一个LUT包含6个输入,逻辑容量为2^6bit,为实现7输入逻辑需要2^7容量,对于更多输入也一样。每个SLICES有4个LUT,256bit容量能够实现最多8bit输入的逻辑。为了实现此功能,每个SLICES还包括3个MUX(多路选择器)

         F7AMUX  用于产生7输入的逻辑功能,用于连接A,B两个LUT 

         F7BMUX  用于产生7输入的逻辑功能, 用于连接C,D两个LUT

         F8MUX    用于产生8输入的逻辑功能, 用于连接4个LUT

     

          对于大于8输入的逻辑需要使用多个SLICES, 会增加逻辑实现的延时。

          一个SLICES中的4个寄存器可以连接LUT或者MUX的输出,或者被直接旁路不连接任何逻辑资源。寄存器的置位/复位端为高电平有效。只有CLK端能被设置为两个极性,其他输入若要改变电平需要插入逻辑资源。例如低电平复位需要额外的逻辑资源将rst端输入取反。但设为上升/下降沿触发寄存器不会带来额外消耗。

     分布式RAM

                SLICEM可以配置成分布式RAM,一个SLICEM可以配置成以下容量的RAM

     

    QQ截图20150519200214.png

            多bit的情况需要增加相应倍数的LUT进行并联。

            分布式RAM和 BLOCK RAM的选择遵循以下方法:

            1. 小于或等于64bit容量的的都用分布式实现

             2. 深度在64~128之间的,若无额外的block可用分布式RAM。 要求异步读取就使用分布式RAM。数据宽度大于16时用block ram.  

          3. 分布式RAM有比block ram更好的时序性能。 分布式RAM在逻辑资源CLB中。而BLOCK RAM则在专门的存储器列中,会产        生较大的布线延迟,布局也受制约。

     移位寄存器(SLICEM)

           SLICEM中的LUT能在不使用触发器的情况下设置成32bit的移位寄存器,  4个LUT可级联成128bit的移位寄存器。并且能够进行SLICEM间的级联形成更大规模的移位寄存器。

     

     

    QQ截图20150519202621.png

     

        MUX

           一个LUT可配置成4:1MUX.

           两个LUT可配置成最多8:1 MUX

           四个LUT可配置成16个MUX

    QQ截图20150519203241.png

     

       同样可以通过连接多个SLICES达成更大规模设计,但是由于SLICE没有直接连线,需要使用布线资源,会增加较大延迟。

     

     进位链

          每个SLICE有4bit的进位链。每bit都由一个进位MUX(MUXCY)和一个异或门组成,可在实现加法/减法器时生成进位逻辑。该MUXCY与XOR也可用于产生一般逻辑。

    展开全文
  • 分布式RAM是如何产生的及其与Block RAM的区别 公司正在用Xilinx V5 330t110,借这个机会好好学习一把。 上册25页列了那么多型号,那么多参数,记也记不住。只能退而求其次,把自己用的这个330t的...

    分布式RAM是如何产生的及其与Block RAM的区别

    公司正在用Xilinx V5 330t和110,借这个机会好好学习一把。
    上册25页列了那么多型号,那么多参数,记也记不住。只能退而求其次,把自己用的这个330t的参数写下来。 也算是有个交代了。


    Vertex 5 330t : XC5VLX330T
    V5: 65nm 工艺, 6输入LUT
    LX: 针对高性能逻辑进行了优化
    CLB: 240x108 = 25920
    SLICE: CLBx2 = 51840
    descret ram: ??? -> 3420kb <- ???
    block ram: 648 x 18kb = 11664 kb

    DSP48E:  192 slice
    rocket I/O: 24
    I/O: 960

    以上有疑问的是的分布式ram
    应该是Slice x LUT/Slice x 2^6
    其中 slice = 51840, 
    LUT/Slice = 4
    6是每个LUT的input数,V5为6输入LUT。
    因此ram = 51840 x 4 x 64 b =12960 kb, 而不是25页上写的3420kb
    只是我计算出来的1/4. 

    不知道我哪里计算错了。
    ======================================================

    分布式RAM是如何产生的及其与Block RAM的区别

    - 问 -
    分布式和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)--------Y1
                             Switch   ------ 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中的块RAM和分布式RAM

    万次阅读 2014-08-15 19:42:14
    在Spartan-3系列FPGA中使用LUT构建分布式RAM
  • CLB是xilinx基本逻辑单元,每个CLB包含两个slices,每个slices由4个(A,B,C,D)6输入LUT8个寄存器组成。  同一CLB中的两片slices没有直接的线路连接,分属于两个不同的列。每列拥有独立的快速进位链资源。 ...
  • 分布式RAM

    千次阅读 2015-09-21 18:11:00
    1.Single RAM  单口RAM的接口定义如下: clk input 时钟信号 ...wr input RAM写使能信号,高电平表示写入 ...addr input RAM地址总线 ...din input RAM写入的数据总线 ... 地址数据一般是在clk的上
  • FPGA中block ram和distributed ram的区别

    千次阅读 2018-04-11 10:07:55
    在Spartan-3系列FPGA中使用LUT构建分布式RAM http://xilinx.eetrend.com/tag/846?quicktabs_1=0利用块RAM实现数据延迟的一些问题 http://bbs.eetop.cn/thread-431323-1-1.html分布式RAM是如何产生的及其与Block ...
  • 块RAM 分布式RAM① Xilinx 的FPGA结构主要由CLB、IOB、IR、Block RAM组成,其中CLB是最最重要的资源。② 以V5为例,1个CLB包括的2个Slice,每个Slice包括4个6输入查找表,4个FlipFlop相关逻辑。在这里需要注意...
  • FPGA可以调用分布式RAM和块RAM两种RAM,当我们编写verilog代码的时候如果合理的编写就可以使我们想要的RAM被综合成BRAM(Block RAM)或者DRAM(Distributed RAM),其中BRAM是block ram,是存在FPGA中的大容量的RAM...
  • 1、Block RAM Xlinx的BRAM可以配置成单口RAM、伪双口RAM、真双口RAM、单口ROM双口ROM五种类型。 2、Block RAM使用的资源 下图以36Kb的BRAM为例,不论BRAM配置成什么模式(上面提到的五种模式),存储的阵列的...
  • 在xinlinx 公司生产的ise软件中,里面ip核的具体分布
  • 原地地址:FPGA block RAM和distributed RAM区别区别之1block ram 的输出需要时钟,distributed ram在给出地址后既可输出数据。区别之2distributed ram使用更灵活方便些区别之3block ram有较大的存储空间,...
  • Spartan 6 block ram

    2021-08-18 13:42:31
    对spartan 6 block ram的底层资源分析,含ug383资源
  • 块RAM 分布式RAM ① Xilinx 的FPGA结构主要由CLB、IOB、IR、Block RAM组成,其中CLB是最最重要的资源。 ② 以V5为例,1个CLB包括的2个Slice,每个Slice包括4个6输入查找表,4个FlipFlop相关逻辑。在这里需要...
  • 内容 :第一部分 Distribute RAM和Block RAM  第二部分 logic cell、logic slice、CLB、Gate 来自 :时间的诗 第一部分 Distribute RAM和Block RAM FPGA内部的RAM分为两部分,一部分就是你的分布式RAM,用
  • Block RAM Distributed RAM

    万次阅读 2011-06-09 13:03:00
    ==============================================FPGA block RAM和distributed RAM区别区别之1bram 的输出需要时钟,dram在给出地址后既可输出数据。区别之2dram使用根灵活方便些区别之3bram有较大的存储空间,dram...
  • 首先,FPGA内部的ram主要是两种,一种是分布式ram,即lut周围的DFF,另一种是专用集成块储存器(vivado叫block ram, quartus ii叫 M9K,M144K等)。 分布式ram的常见用法就是用reg定义的小量寄存器数据如 reg
  • Xilinx_RAM_IP核的使用

    2021-03-17 16:03:41
    Xilinx_RAM_IP核的使用 说明:单口RAM、伪双口RAM、双口RAM的读写,以及RAM资源占用的分析。
  • XILINX FPGA 7系之 Distribute RAM

    千次阅读 2020-01-14 17:21:14
    XILINX FPGA 7系之 CLB/LUT可以知道 CLB 是基本的组成单元,SLICE 也是 CLB 的基本组成单元,为了更好的使用 XILINX FPGA ,有必要在深挖一下 Distribute RAM分布式内存); XILINX 的 “ ug474_7Series_CLB.pdf...
  • distributed ram && block ram

    2013-07-19 10:49:09
     一个CLB包含4个SLICE,其中左边两个SLICE可用于存储、移位寄存器逻辑配置,称为SLICEM;右边的两个SLICE只能用于逻辑组合,称为SLICEL。每个SLICE中有2个LUT,2个存储单元,多路复用器,进位链等。一个LUT一个...
  • FPGA中RAM和reg区别

    千次阅读 2016-08-04 11:07:33
    distributed RAM是分布式RAM,即reg查找表。 块RAM读取数据总要延后一个时钟(SRAM特性),RAM里一次只能访问一个地址的数据,数据宽度不能设置太大。 分布式RAM,即reg查找表。比如设置一个
  • vivado RAM使用

    万次阅读 2018-09-27 09:40:12
    1.双口RAM概述 双口RAM(dual port RAM)在异构系统中应用广泛,通过双口RAM,不同硬件架构的芯片可以实现数据的交互,从而实现通信。例如,一般情况下,ARM与DSP之间的通信,可以利用双口RAM实现,ARM通过EBI总线...
  • XILINX之RAM使用指南(加个人总结)

    万次阅读 2016-08-26 15:44:35
    XILINX之RAM使用指南(加个人总结) 一、 RAM 分类 XILINX 的 RAM 可分为三种,分别是:单口 RAM,简化双口 RAM 和真双口 RAM。如下 图所示:   ...图1 单口 RAM ...图2 简化双口 RAM A 口写入...二、选择数据位宽

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,128
精华内容 1,651
关键字:

ram分布式ram和block