精华内容
下载资源
问答
  • 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适用于其他场景。

    展开全文
  • 区别之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/

    展开全文
  •  分布式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也可用于产生一般逻辑。

    展开全文
  •  来源:... 以下分析基于xilinx 7系列 CLB是xilinx基本逻辑单元,每个CLB包含两个slices,每个slices由4个(A,B,C,D)6输入LUT8个寄存器组成。  同一CLB...

     来源: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个寄存器组成。每个Cyclone的基本逻辑单元ALM包含2个LE,每个LE包含1个LUT和1和寄存器,

     同一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也可用于产生一般逻辑。

                </div>
    
    展开全文
  • 分布式RAM是如何产生的及其与Block RAM的区别 公司正在用Xilinx V5 330t110,借这个机会好好学习一把。 上册25页列了那么多型号,那么多参数,记也记不住。只能退而求其次,把自己用的这个330t的...
  • 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实现数据延迟的一些问题 ... 问 -分布式和Block RAM的区别- 答 -CLB单元生成的d...
  • 块RAM 和 分布式RAM① Xilinx 的FPGA结构主要由CLB、IOB、IR、Block RAM组成,其中...在这里需要注意的是Slice分两种,SliceM和SliceL,它们都包括前面的东西,但是很特别的是SliceM还增加了基于查找表的分布式RAM和...
  • 块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...
  • 内容 :第一部分 Distribute RAM和Block RAM  第二部分 logic cell、logic slice、CLB、Gate 来自 :时间的诗 第一部分 Distribute RAM和Block RAM FPGA内部的RAM分为两部分,一部分就是你的分布式的RAM,用
  • FPGA中RAM和reg区别

    千次阅读 2016-08-04 11:07:33
    FPGA中RAM分为block RAM和 distributed RAM,block RAM是嵌入的RAM块,譬如M4K,M9K等;distributed RAM是分布式RAM,即reg和查找表。 块RAM读取数据总要延后一个时钟(SRAM特性),RAM里一次只能访问一个地址的...
  • xilinx FPGA 内部RAM学习笔记

    千次阅读 2019-05-04 17:43:11
    DRAM:distribution RAM 分布式RAM 需要零星内存时使用。 BRAM 包含单口RAM,简单双口RAM,真双口RAM 单口RAM :只有数据口A,通过A进行读写; 简单双口RAM:包含数据口AB,通过A写入数据,通过B读出数据; 真...
  • FPGA的嵌入式RAM

    2016-01-26 22:43:00
    FPGA中的嵌入式RAM分为两种:专用的BRAM和分布是RAM(用LUT实现的)。这两种RAM又可以配置成单端口和双端口的RAM和ROM。双端口RAM又可以根据读写地址是否在同一块分为Double Port 和Two...Block RAM和分布式RAM 在...
  • 【整合】FPGA调用RAM资源

    千次阅读 2018-10-12 17:06:27
    FPGA可以调用分布式RAM和块RAM两种RAM,当我们编写verilog代码的时候如果合理的编写就可以使我们想要的RAM被综合成BRAM(Block RAM)或者DRAM(Distributed RAM),其中BRAM是block ram,是存在FPGA中的大容量的RAM...
  • 另外资源可以通过寄存器搭,也就是分布式RAM。前者一般用于提供较大的存储空间,后者则提供小的存储空间。  在实际应用过程中,一般使用的包括,单端口、双端口RAM,ROM等形式等不同的形式。 实际应用中FIFO也是...
  • 一、背景 Xilinx Zynq带MicroBlaze的FPGA都存在处理器端FPGA端的概念,如果处理器的C代码...(1)Block RAM:Block RAM是PL部分的存储器阵列,为了与DRAM(分布式RAM)区分开,所以叫块RAM。ZYNQ的每一个BRAM 3..
  • Xilinx公司提供了大量...其中,块存储器是硬件存储器,不占用任何逻辑资源,其余两类都是Xilinx专有的存储结构,由FPGA芯片的查找表触发器资源构建的,每个查找表可构成16 1位的分布式存储器或移位寄存器。一般来...
  • SliceM与SliceL

    千次阅读 2013-08-26 11:24:33
    李虎: CLB中分为SliceM和SliceL。他们其中都有LUT。 SliceM(M是指Memory)和SliceL(L是指Logic)的区别是,SliceM中含有能够把LUT资源重新整合为Ram和Rom的逻辑。这就是所谓的Distributed ...分布式和Block RAM的
  • Xilinx FIFO使用小结

    千次阅读 2020-06-08 11:21:39
    FIFO的使用非常广泛,一般用于不同时钟域之间的数据传输,或者用于不同数据宽度之间的数据匹配。...这里主要是block RAM和distribute RAM之间的区别。简而言之,block RAM是FPGA中定制的ram资源,而distribute
  • 在Zedboard板子上面有三个存储器,分别是DDR3、QSPISD卡,另外在PL端有Block RAM存储器阵列,为了与DRAM(分布式RAM)区分开,所以叫块RAM。ZYNQ的每一个BRAM 36KB,7020的BRAM有140个(4.9M),7030有265个(9.3M...
  • FPGA主要由6部分组成: 1、可编程IO单元 可编程输入输出单元,是芯片与外界电路...不仅可以用于实现组合逻辑、时序逻辑,还可以配置为分布式RAM和分布式ROM。 3、嵌入式RAM资源 即Block RAM,可配置为单双口RAM,F
  • xilinx Fast Fourier Transform v9.1 的使用 1 IP简介 •正向反向复数FFT,运行时间可配置 •变换大小N = 2m,m = 3 – 16 •数据采样精度bx = 8 – 34 ...•Block RAM或分布式RAM,用于数据相...
  • 本博客为跟Xilinx SAE 学HLS系列视频讲座-高亚军的学习笔记。 软件工程师怎么了解FPGA架构 FPGA属于硬件可编程器件,Xilinx的FPGA...内存单元包括Block RAM和分布式RAM(LUT in SLICEM)。在7系列的FPGA中,36kb的Bloc
  • Vivado中FFT9.1 IP核的使用(1)

    千次阅读 2020-06-29 17:25:24
    目录 1、xilinx FFT IP介绍 2、FFT IP接口介绍 3、xilinx FFT IP的仿真测试 4、参考: 1、xilinx FFT IP介绍 ...1)正向反向复数FFT,运行时间可配置。...8)Block RAM或分布式RAM,用于数据相位因
  • AG1280 CPLD Q48&Q32 with PLL

    2020-01-04 11:31:43
    该器件具有1280个LUT和最多40个用户IO,提供68Kbits的嵌入式Block RAM和10Kbits的分布式RAM,每个器件一个PLL提供时钟乘法和相移,以及通过JTAG接口的嵌入式FLASH配置,片内时钟发生器和宽输出频率范围。 该器件是...
  • AG1280Q48 & Q32

    2020-01-14 14:21:46
    —提供68Kbits的嵌入式Block RAM和10Kbits的分布式RAM —每个器件一个PLL提供时钟乘法和相移 —通过JTAG接口的嵌入式FLASH配置,片内时钟发生器和宽输出频率范围 —即时接通,非易失性,多重可编程架构 —提供...

空空如也

空空如也

1 2
收藏数 39
精华内容 15
关键字:

ram分布式ram和block