[发明专利]基于单片块RAM的并行写入多FIFO实现方法有效
申请号: | 201110346434.3 | 申请日: | 2011-11-01 |
公开(公告)号: | CN102520902A | 公开(公告)日: | 2012-06-27 |
发明(设计)人: | 邹复民;龚志鹏;姚进根;陈建顺;杨伟艺 | 申请(专利权)人: | 福建富顺电子有限公司 |
主分类号: | G06F5/06 | 分类号: | G06F5/06 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 363000 福建省*** | 国省代码: | 福建;35 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 单片 ram 并行 写入 fifo 实现 方法 | ||
技术领域
本发明属于信息技术应用领域。具体是涉及一种采用单片块RAM实现多个要求并行写入和随机顺序读出的FIFO的实现方法,为低成本FPGA的应用提供一种解决方案。
背景技术
随着大规模可编程技术的发展,FPGA的应用在电子设计中应用越来越广泛。FPGA主要由输入输出控制块、可编程逻辑块、可编程连线、嵌入式存储块(块RAM)等部分组成,其中块RAM是非常宝贵的片上资源,应用灵活、功能强大,可定制实现RAM、ROM、CAM、DPRAM、FIFO等各种存储结构。其中,FIFO应用尤其广泛,在数据缓存、异步时钟域数据传输几乎不可或缺。对于低端FPGA芯片,块RAM的数量非常有限,若采用ip核向导来定制FIFO,每个块RAM只能实现一个FIFO。单片块RAM的容量一般比较大,如altera的为9Kbit,xilinx的达18Kbit,在一般设计现实中,作为数据缓存的FIFO往往不需要这么大的容量,而一个块RAM例化一个FIFO后,剩余的存储空间不能再用于别的用途,白白浪费掉了,导致资源利用率低。特别是在FIFO数量需求较多、且每个FIFO的深度要求较小、但要求各FIFO能够在一定程度上并行写入时,FPGA设计经常出现总体存储容量充足,但存储器个数严重不足的问题。
发明内容
本发明的目的是提供了一种在一片块RAM中实现多个可并行写入和随机顺序读出的FIFO的方法,可充分利用现有的存储容量,大大提高存储器的利用率,显著降低产品成本,提升市场竞争力。
本发明所要解决的技术问题在于用单片块RAM设计多个可并行写入和随机顺序读出的FIFO。本发明采用以下技术方案解决上述技术问题:
基于单片块RAM的并行写入多FIFO实现方法,该方法包括5个步骤:
(1)将块RAM例化成DPRAM用于存储各通道FIFO数据,每通道FIFO在DPRAM中都有对应的存储空间,各存储空间互不重叠;
(2)写入控制逻辑能接受各通道FIFO并行数据写入要求,并将数据写入相应的相应输入缓冲区;
(3)写入控制逻辑在输入缓冲区接到数据后,产生内部写命令,将各FIFO数据从输入缓冲区取出,依次写入各FIFO在DPRAM对应的存储空间;
(4)在接到外部读出请求时,读出控制逻辑将根据要求,将数据从DPRAM对应的存储空间读出,并送往FIFO数据输出端口;
(5)标记设置逻辑用于设置各通道FIFO的空(full)、满(empty)、可编程空(prog_empty)和可编程满(prog_full)标志,以满足并行写入和随机顺序读出的访问需求。
所述步骤(1)中,通过调用FPGA开发平台的IP核例化工具将块RAM用例化成DPRAM;根据FIFO的通道数目在DPRAM中设置储存区,每通道FIFO在DPRAM中都有对应的存储空间,各存储空间互不重叠;DPRAM的高位地址用于选择各FIFO的存储空间,DPRAM的低位地址用于存储空间内部访问。
所述步骤(2)中,
输入缓冲区与写入控制逻辑接收到FIFO并行数据写入请求信号wr_en后:
1)检测到full信号为0且ready信号为1时,内部写控制将latch信号置1,将外部数据写入各通道FIFO相应输入缓冲区,输入缓冲区深度可根据并行要求设置;
2)将表示接收数据准备就绪标记ready置为0,在缓冲区数据写入DPRAM之前不再接收新的数据。
所述步骤(3)中,
输入缓冲区写入控制逻辑在输入缓冲区接到数据后,控制控制逻辑产生内部写DPRAM命令wr_en_inter,将各通道FIFO数据从相应输入缓冲区取出,依次写入各通道FIFO在DPRAM对应的存储空间:
1)内部写控制将通道编号ch_code_w设为0,确定是选择将通道0的FIFO的数据从缓冲区写入DPRAM;
2)根据当前通道号ch_code_w,地址选择器选择的当前地址指针write_p为write_p_0;
3)根据当前通道号ch_code_w,数据选择器选择通道0的数据缓冲输出作为DPRAM写入端数据输入;
4)ch_code_w与write_p_0组合,得到存储器的写入端访问地址wr_addr,其中ch_code_w为wr_addr高位,write_p_0为低位;
5)若full_0为0,则写入数据;
6)写入数据后,write_p加1;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于福建富顺电子有限公司,未经福建富顺电子有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110346434.3/2.html,转载请声明来源钻瓜专利网。