[发明专利]一种可配置的多进多出FIFO的设计方法及装置有效
申请号: | 202011043662.9 | 申请日: | 2020-09-28 |
公开(公告)号: | CN112181356B | 公开(公告)日: | 2022-08-19 |
发明(设计)人: | 王俊辉;孙彩霞;郑重;郭维;郭辉;雷国庆;隋兵才;黄立波;冯权友;倪晓强;王永文 | 申请(专利权)人: | 中国人民解放军国防科技大学 |
主分类号: | G06F5/06 | 分类号: | G06F5/06;G06F30/343;G06F8/30 |
代理公司: | 湖南兆弘专利事务所(普通合伙) 43008 | 代理人: | 谭武艺 |
地址: | 410073 湖南*** | 国省代码: | 湖南;43 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 配置 多进多出 fifo 设计 方法 装置 | ||
1.一种多进多出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的基本宽度,所述控制单元fifo_ctl的输入信号包括ielem_vld、ielem_cnt、oelem_free,输出信号还包括oelem_valid、emtpy、full、fifo_top_vld,输入信号ielem_vld表示当前周期输入数据是否有效;输入信号ielem_cnt表示当前周期输入数据的有效元素个数;输入信号oelem_free表示当前周期队列下游可接收的元素的个数;输出信号oelem_valid表示当前周期的输出数据是否有效;输出信号emtpy表示FIFO队列是否为空;输出信号full表示当前多进多出FIFO是否已满;输出信号fifo_top_vld表示当前多进多出FIFO中最高输入宽度的位的有效状态。
2.根据权利要求1所述的多进多出FIFO,其特征在于,所述控制单元fifo_ctl输出的读指针rptr表示输出元素的指针位置,随着有效输出而循环增加;写指针wptr表示输入元素的指针位置,根据最后输入的有效元素而循环增加;信号wren根据写指针wptr的值和有效输入元素将对应位置的位置为1,指导数据进入到数据存储单元fifo_dp中;
所述控制单元fifo_ctl包括:
输入转换语句模块BCT,用于将正常二进制编码的输入信号ielem_cnt转变为输入宽度的塔式编码的信号ielem_cnt_dec,N位的塔式编码是指对于二进制表示的x,其从x+1到0位都是为1,其余高位都是为0;
第一状态计算语句模块QVC,用于结合信号ielem_cnt_dec、输入信号ielem_vld和信号queue_vld生成信号queue_vld_inc,信号queue_vld表示当前多进多出FIFO中有效元素个数,信号queue_vld_inc用于表示接收该周期有效的输入元素后多进多出FIFO当前的有效状态;其中,信号queue_vld采用塔式编码,信号queue_vld_inc为将信号queue_vld最左侧的1扩展有效元素的个数;
第二状态计算语句模块QVD,用于根据信号queue_vld_inc输出信号queue_vld_dec_winc,信号queue_vld_dec_winc表示考虑了当前周期有效输入和有效输出以后的FIFO队列有效状态;还用于根据输入信号oelem_free和表示当前多进多出FIFO中有效元素个数的信号queue_vld生成信号queue_vld_dec_woinc,信号queue_vld_dec_woinc表示无有效输入元素时的FIFO队列有效状态的变化;
溢出判断语句模块CO,用于根据queue_vld_inc信号、输入信号oelem_free计算表示是否会发生溢出的信号overflow,如果信号queue_vld_inc右移输入信号oelem_free表示的元素个数后仍然超过多进多出FIFO的深度,则信号overflow就置高表示发生溢出;
选择语句模块MUX,用于在信号overflow的控制选择信号queue_vld_dec_winc或信号queue_vld_dec_woinc作为信号queue_vld_dec,且信号overflow置高时选择信号queue_vld_dec_woinc,否则选择信号queue_vld_dec_winc,信号queue_vld_dec表示本周期最后的队列状态信号;
寄存语句模块FF,用于对信号queue_vld_dec进行寄存器暂存,生成表示当前多进多出FIFO中有效元素个数的信号queue_vld供下个周期使用,且信号full为信号queue_vld的最高位;信号empty为信号queue_vld的最低位取反的结果;信号fifo_top_vld为信号queue_vld中最高输入宽度的指定若干位;信号oelem_valid为输入信号oelem_free与信号queue_vld的与操作的结果。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民解放军国防科技大学,未经中国人民解放军国防科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011043662.9/1.html,转载请声明来源钻瓜专利网。