2020-10-28
浏览次数: 297

在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的地址端,初始化值为输出值

  • 将现态输出与跳转条件给到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 浏览次数: 572
  • 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通信接口亚博yabo投注网站的解决方案,安路科技是中国fpga供应商,提供高性价比的fpga产品。安路科技eg4系列fpga的usb3.0通信接口亚博yabo投注网站的解决方案的功能框图如下:外围设备通过eg4系列fpga实现与usb3.0的控制器的数据交互,进而实现与usb host的通信。这种亚博yabo投注网站的解决方案适合大多数的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 浏览次数: 624
  • 在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 浏览次数: 297


 
亚博yabo投注网站 copyright ©2018 - 2021 上海安路信息科技股份有限公司
犀牛云提供企业云服务
网站地图