[发明专利]一种实现任意深度低传输延时的异步FIFO的方法及装置有效
申请号: | 201910563113.5 | 申请日: | 2019-06-26 |
公开(公告)号: | CN110427168B | 公开(公告)日: | 2023-03-07 |
发明(设计)人: | 陶常勇;刘勤让;沈剑良;朱珂;吕平;刘冬培;陈艇;汪欣;汤先拓;张世海;付豪;刘长江;张华;林德伟;何丽丽 | 申请(专利权)人: | 天津芯海创科技有限公司;天津市滨海新区信息技术创新中心 |
主分类号: | G06F5/06 | 分类号: | G06F5/06 |
代理公司: | 天津滨海科纬知识产权代理有限公司 12211 | 代理人: | 戴文仪 |
地址: | 300457 天津市滨海新*** | 国省代码: | 天津;12 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 实现 任意 深度 传输 延时 异步 fifo 方法 装置 | ||
1.一种实现任意深度低传输延时的异步FIFO的装置,其特征在于:
包括双口RAM,其左侧的接口工作在写侧工作时钟域下,其右侧的接口工作于读侧工作时钟域下,左侧接口连接full_gen模块、wr_addr模块、wr_addr_incr模块、rd_addr_cp模块和wr_div_flag模块,所述full_gen模块、wr_addr模块、wr_addr_incr模块、rd_addr_cp模块和wr_div_flag模块均工作于写侧工作时钟域下,右侧接口连接empty_gen模块、rd_addr模块、rd_addr_incr模块、wr_addr_cp模块和rd_div_flag模块,所述empty_gen模块、rd_addr模块、rd_addr_incr模块、wr_addr_cp模块、rd_div_flag模块均工作于读侧工作时钟域下;
所述wr_addr模块用于实现对fifo写地址的控制,每当产生wr一次有效写指示并且full信号为0时,wr_addr加1,wr_addr的输出作为RAM的写地址,其中,full为fifo满指示,din为写入fifo中的数据,wr为din的写有效指示信号;
wr_div_flag模块为一个周期计时模块,根据wr_div给出的分频指示,以固定间隔输出分频指示信号给wr_addr_incr模块时钟,其中wr_div为fifo写侧分频器输出的分频系数控制信号;
所述wr_addr_incr模块用于记录wr_addr的增长量,记录相邻两次wr_div_flag输出的分频指示期间,wr_addr增长的数量,并将增长的编码为wr_incr_flag指示信号;
所述rd_addr_cp模块用于在wr_clk时钟域内维护读侧地址值的镜像,根据rd_incr_flag指示信号,转换为wr_clk时钟域下rd_addr_cp每个工作时钟周期需要增长的量,并进行累加;
所述full_gen模块在wr_clk时钟域内,通过比较wr_addr和rd_addr_cp的变化关系,给出fifo的full指示信号;
所述full_gen模块在比较wr_addr和rd_addr_cp的变化关系前,设置wr_addr_w1和rd_addr_cp_w1两个1bit的指示信号,每当wr_addr或rd_addr_cp从fifo_deepth向全0反转时,相对应的wr_addr_w1和rd_addr_cp_w1的最高位也发生一次反转,那么,当wr_addr_w1*fifo_deepth+wr_addr-rd_addr_cp_w1*fifo_deepth-rd_addr_cp的值等于fifo_deepth时,给出full信号指示,其中,fifo_deepth为RAM的深度;
所述empty_gen模块在比较rd_addr和wr_addr_cp的变化关系前,设置rd_addr_w1和wr_addr_cp_w1两个1bit的指示信号,每当rd_addr或wr_addr_cp从fifo_deepth向全0反转时,相对应的rd_addr_w1和wr_addr_cp_w1的最高位也发生一次反转,那么,当wr_addr_cp_w1*fifo_deepth+wr_addr_cp-rd_addr_w1*fifo_deepth-rd_addr的值等于0时,给出emtpy信号指示,其中,fifo_deepth为RAM的深度;
所述rd_addr模块用于实现对fifo读地址的控制,每当产生rd一次有效读指示并且empty信号为0时,rd_addr加1,rd_addr的输出可作为RAM的读地址,其中,empty为fifo的空指示,dout为读出的数据,rd为fifo的读有效指示信号;
所述rd_div_flag模块为一个周期计时模块,根据rd_div给出的分频指示,以固定间隔输出分频指示信号给rd_addr_incr模块时钟,其中,rd_div为读侧分频器的分频系数控制信号;
所述rd_addr_incr模块用于记录rd_addr的增长量,记录相邻两次rd_div_flag输出的分频指示期间,rd_addr增长的数量,并将增长的编码为rd_incr_flag指示信号;
所述wr_addr_cp模块用于在rd_clk时钟域内维护写侧地址值的镜像,根据wr_incr_flag指示信号,转换为rd_clk时钟域下wr_addr_cp每个工作时钟周期需要增长的量,并进行累加;
所述empty_gen模块在rd_clk时钟域内,通过比较rd_addr和wr_addr_cp的变化关系,给出fifo的empty指示信号;
所述rd_incr_flag和wr_incr_flag指示每发生一次电平翻转,地址需要增加。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于天津芯海创科技有限公司;天津市滨海新区信息技术创新中心,未经天津芯海创科技有限公司;天津市滨海新区信息技术创新中心许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910563113.5/1.html,转载请声明来源钻瓜专利网。