[发明专利]一种可配置的多进多出FIFO的设计方法及装置有效
申请号: | 202011043662.9 | 申请日: | 2020-09-28 |
公开(公告)号: | CN112181356B | 公开(公告)日: | 2022-08-19 |
发明(设计)人: | 王俊辉;孙彩霞;郑重;郭维;郭辉;雷国庆;隋兵才;黄立波;冯权友;倪晓强;王永文 | 申请(专利权)人: | 中国人民解放军国防科技大学 |
主分类号: | G06F5/06 | 分类号: | G06F5/06;G06F30/343;G06F8/30 |
代理公司: | 湖南兆弘专利事务所(普通合伙) 43008 | 代理人: | 谭武艺 |
地址: | 410073 湖南*** | 国省代码: | 湖南;43 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 配置 多进多出 fifo 设计 方法 装置 | ||
本发明公开了一种多进多出FIFO,包括控制单元fifo_ctl和数据存储单元fifo_dp,控制单元fifo_ctl的输出端和数据存储单元fifo_dp之间连接有信号wren、读指针rptr和写指针wptr一共三组信号,本发明能够支持上下游流量控制的FIFO队列的多进多出,实现数据的快速缓存和流量控制,适用于多种场景;本发明还提供一种针对该多进多出FIFO的可配置的设计方法,能够实现多进多出FIFO的设计工作的可配置化,通过一次编写python代码,即可实现多种FIFO队列,可以极大加速设计过程,减少设计缺陷。
技术领域
本发明涉及芯片设计领域,具体涉及一种可配置的多进多出FIFO的设计方法及装置,包括一种多进多出FIFO,以及针对该多进多出FIFO的可配置化设计方法。
背景技术
在芯片设计中,为了实现信号处理中数据的暂存需求,通常会设置各种宽度和长度的队列。一般而言,鉴于数字芯片设计中流水线式的数据流方式,其所使用的队列都是先进先出(First-In-First-Out, FIFO)队列。而且,多种输入宽度、存储宽度、输出宽度和流控策略的FIFO会在同一设计中被同时用到。虽然这些队列的基本功能相同,但其输入宽度、存储宽度、输出宽度和流控策略的不同,使得这些队列通常都是采用单独设计的方式:根据所需要的关键参数,单独设计并实现每个队列的逻辑,然后再分别进行验证。这样的做法,需要消耗大量的时间和资源分别一一进行设计与验证。而且,由于通常这些FIFO会被不同的设计师与验证师所使用,其设计与验证中所遇到的问题与积累的经验,无法快速进行共享。因此,迫切需要一种可配置的多进多出FIFO的设计方法和装置,既能够根据一套可配置的代码快捷生成可用的FIFO,又能够在设计与验证的循环中不断完善可配置代码,实现经验共享和资源高效利用。
当前,多进多出FIFO的设计一般有2个方法。第一种方法是直接编写所有参数都已经固定的FIFO的verilog代码。然后,针对这一种配置进行设计和验证。第二种方法是在第一种的基础上,利用宏支持一定的可配置。这种方法通常可以实现FIFO中元素宽度、FIFO深度等参数的可配置。输入宽度和输出宽度的可配置需要利用ifdef/else/endif等宏定义开关来进行。在这种方法中,不同配置中不变的逻辑可以实现共享,但是与输入和输出宽度直接相关的逻辑就需要利用一种单独的情形。这就使得该方法无法支持更多的输入和输出宽度组合,而且不同组合之间代码基本是并行的,仍然需要分别进行设计和验证。
由此可见,现有的方法都无法真正实现多进多出FIFO的可配置化,大大增加了芯片设计的开销,也增加了基于可配置化进行性能探索等工作的难度。
发明内容
本发明要解决的技术问题:针对现有技术的上述问题,提供一种多进多出FIFO,本发明能够实现支持上下游流量控制的FIFO队列的多进多出,能够实现数据的快速缓存和流量控制,适用于多种场景;本发明还提供一种针对该多进多出FIFO的可配置的设计方法,本发明能够实现多进多出FIFO的设计工作的可配置化,通过一次编写python代码,即可实现多种FIFO队列,可以极大加速设计过程,减少设计缺陷。
为了解决上述技术问题,本发明采用的技术方案为:
一种多进多出FIFO,包括控制单元fifo_ctl和数据存储单元fifo_dp,所述控制单元fifo_ctl和数据存储单元fifo_dp均带有时钟输入信号clk和复位控制信号rst,所述控制单元fifo_ctl的输出端和数据存储单元fifo_dp之间连接有信号wren、读指针rptr和写指针wptr一共三组信号,其中信号wren用于表示每个元素是否要根据输入进行更新;读指针rptr用于表示当前输出的指针;写指针wptr用于表示当前输入的指针;所述数据存储单元fifo_dp带有输入信号data_in和输出信号data_out,所述输入信号data_in的输入带宽为输入宽度*元素宽度,所述输出信号data_out的输出带宽为输出宽度*元素宽度,元素宽度为多进多出FIFO的基本宽度。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民解放军国防科技大学,未经中国人民解放军国防科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011043662.9/2.html,转载请声明来源钻瓜专利网。