FPGA中block ram的特殊用法列举

2020-10-28
浏览次数: 198

在FPGA中block ram是很常见的硬核资源,合理的利用这些硬件资源一定程度上可以优化整个设计,节约资源利用率,充分开发FPGA芯片中的潜在价值,本文根据前人总结的一些用法,结合安路科技FPGA做简单总结,说明基本原理。


用法一:使用双口模式拆分成2个小容量的BRAM

基本原理如下:


  • 以1K*9bit双端口配置模式为例,一个bram9k,可以当作两个512*9k rom

  • 将A端口的地址最高位固定接0,B端口的地址最高位固定接1,则通过A端口只能访问0~511的地址空间,通过B端口只能访问512~1023地址空间,互不冲突,相当于两个小容量的rom


用法二:用作并行数据的多周期延时

基本原理如下:





  • 将bram例化成简单双端口模式,并将写端口固定使能为写,读端口固定使能为读。

  • 将ram模式配置成  “读优先模式”,每次在写某个地址之前会先把该地址的数据输出

  • 用一个模长为N(N=4)的计数器,反复向ram中写数据,会得到一个延时为N+1的输出数据

    如下图:

FPGA中block ram的特殊用法列举




用法三:用作高速大规模计数器

基本原理如下:


  • 以9Kbit  bram为例,设置成双端口,1k*9bit模式

  • A端口doa[7:0]是低8bit 计数器输出,doa[8]是进位信号,给到B端口的使能

  • B端口dob[7:0]是高8bit计数器输出。

  • 由于B端口数据有一个周期延时,将A端口数据延时一个周期之后与B端口构成16bit计数器

  • 也即一个9Kbit bram可以构造成一个16bit的计数器

  • 设计原型是两个8bit的计数器级联构造16bit计

  • rom初始化文件

        

FPGA中block ram的特殊用法列举

FPGA中block ram的特殊用法列举




用法四:构造高速复杂的状态机

一般状态机原理框图如下:


FPGA中block ram的特殊用法列举



基于rom的状态机原理如下:


FPGA中block ram的特殊用法列举


  • 首先明确 状态划分,状态跳转条件,状态输出

  • 将现态输出与输入给到rom_a的地址端,初始化值为输出值

  • 将现态输出与跳转条件给到rom_b的地址端,初始化值为次态输出

  • 若状态不多,可以将rom_a与rom_b合并成一个真双口的rom



关于更多细节请参考如下相关文档:

1. 《基于FPGA的数字信号处理》 高亚军 电子工业出版社

2. EF2_datahseet_V3.9


作者:张全全






相关推荐
  • FPGA(Field Programmable Gate Array),现场可编程逻辑器件,具有可多次重复编程,当前FPGA已经发展到具有大容量、高速度SERDES、内嵌ARM等SIP硬核资源,广泛用于视频、通信等多个领域。FPGA内部的PLL,BRAM等硬核资源非常宝贵,不同的FPGA等级,BRAM容量也相差很大,容量越多的BRAM,通常是逻辑门数比较多的器件,价格也相对昂贵。当使用低、中等资源规模的FPGA,需要大容量存储应用时,通常选择SDRAM等存储器件,做容量扩展,而SDRAM有比较复杂的接口操作时序,需要提供灵活且高效的控制器,对于应用产品研发人员以及产品面市时间,提出了更多的挑战。FPGA中常用的BRAM分为以下三种。本方案提供一种与BRAM类似的接口,实现64Mb的虚拟BRAM,使用者按照BRAM接口来操作,来实现大数据缓存。实现的虚拟BRAM具有以下特点▲   接口时序上,使用者不需关心SDRAM器件的时序、激活、预充电、刷新等繁琐操作;▲   每次读写操作长度可以支持超长包(65K及以上);▲   虚拟BRAM具有随机跳地址读写、数据掩码操作,通过组合,可实现多种灵活的存储方式;▲   方案中使用的32bit位宽 64Mb容量的SDRAM,理论带宽支持6.4Gbps,实际带宽可以跑6.1Gbps,读写效率在95%以上;▲   逻辑资源少,花费查找表242个,寄存器533个。可轻量快捷的嵌入到客户工程中;▲   时钟频率Fmax可以支持200Mhz以上,基本满足市场上所有SDRAM器件的最大频率;▲   EG4S可直接使用,外挂时,支可持安路其他系列FPGA器件;▲通过修文件中的宏定义,可以支持市场上不同容量大小,不同...
    2021 - 01 - 15 浏览次数: 289
  • Universal Serial Bus 3.0(简称为USB3.0)接口,特点是传输速率非常快,理论上能达到5Gbps,比常见的的480Mbps的High Speed USB(简称为USB 2.0)快10倍,全面超越IEEE 1394和eSATA。外形和普通的的USB接口基本一致,能兼容USB 2.0和USB 1.1设备。USB3.0因其高带宽、速度快在各个领域得到了广泛的应用。本文提供了一种基于安路科技EG4系列FPGA的USB3.0通信接口解决方案,安路科技是中国FPGA供应商,提供高性价比的FPGA产品。安路科技EG4系列FPGA的USB3.0通信接口解决方案的功能框图如下:外围设备通过EG4系列FPGA实现与USB3.0的控制器的数据交互,进而实现与USB HOST的通信。这种解决方案适合大多数的USB3.0应用场景,比如外围设备是高清的工业相机,通过FPGA缓存处理数据,经过USB3.0控制器实现与具有USB HOST的CPU平台的通信。EG4系列FPGA含有丰富的I/O资源,可以支持不同的I/O标准,因此可以和很多的外围设备进行通信。如下图所示,USB3.0控制器一般是32bits的标准FIFO接口和FPGA通信,控制接口一般采用UART、I2C、SPI等接口。32位并行接口的数据突发速率高达400MB/s,FPGA端时钟为100MHz。EG4系列FPGA特点:◆多达19600个 LUTs◆ 通用用户I/O数量最多达215个,支持多种I/O电平标准◆ 最大支持156 Kbits分布存储器◆ 最大支持1 Mbits 嵌入块存储器◆嵌入块存储器容量9 Kbits,可配置为真双口,8Kx1到512x18模式◆ 专用FIFO控制逻辑◆ 嵌入块存储器容量32 Kbits,可配置为真双口,可设置为2K*16或4K*8◆ 内嵌2M X 32bits的SDRAM(EG4S系列...
    2021 - 01 - 14 浏览次数: 374
  • 在FPGA中block ram是很常见的硬核资源,合理的利用这些硬件资源一定程度上可以优化整个设计,节约资源利用率,充分开发FPGA芯片中的潜在价值,本文根据前人总结的一些用法,结合安路科技FPGA做简单总结,说明基本原理。用法一:使用双口模式拆分成2个小容量的BRAM基本原理如下:以1K*9bit双端口配置模式为例,一个bram9k,可以当作两个512*9k rom将A端口的地址最高位固定接0,B端口的地址最高位固定接1,则通过A端口只能访问0~511的地址空间,通过B端口只能访问512~1023地址空间,互不冲突,相当于两个小容量的rom用法二:用作并行数据的多周期延时基本原理如下:将bram例化成简单双端口模式,并将写端口固定使能为写,读端口固定使能为读。将ram模式配置成  “读优先模式”,每次在写某个地址之前会先把该地址的数据输出用一个模长为N(N=4)的计数器,反复向ram中写数据,会得到一个延时为N+1的输出数据如下图:用法三:用作高速大规模计数器基本原理如下:以9Kbit  bram为例,设置成双端口,1k*9bit模式A端口doa[7:0]是低8bit 计数器输出,doa[8]是进位信号,给到B端口的使能B端口dob[7:0]是高8bit计数器输出。由于B端口数据有一个周期延时,将A端口数据延时一个周期之后与B端口构成16bit计数器也即一个9Kbit bram可以构造成一个16bit的计数器设计原型是两个8bit的计数器级联构造16bit计数rom初始化文件        用法四:构造高速复杂的状态机一般状态机原理框图如下:基于rom的状态机原理如下:首先明确 状态划分,状态跳转条件,状态输出将现态输出与输入给到rom_a的地址端,初始化值为输出...
    2020 - 10 - 28 浏览次数: 198


友情链接:
Copyright ©2018 - 2021 上海安路信息科技股份有限公司
犀牛云提供企业云服务