CN105373663B - 一种带条目占用指示的异步缓冲实现方法 - Google Patents
一种带条目占用指示的异步缓冲实现方法 Download PDFInfo
- Publication number
- CN105373663B CN105373663B CN201510790736.8A CN201510790736A CN105373663B CN 105373663 B CN105373663 B CN 105373663B CN 201510790736 A CN201510790736 A CN 201510790736A CN 105373663 B CN105373663 B CN 105373663B
- Authority
- CN
- China
- Prior art keywords
- asynchronous
- entry
- asynchronous buffer
- reading
- buffer
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供了一种带条目占用指示的异步缓冲实现方法,包括:提供一个通用异步缓冲;然后在所述异步缓冲的设计中增加一个输出端口,用于输出一个基于读时钟域的缓冲已占用条目的指针;异步接口的读方根据所述指针的值判断异步缓冲中已经写进的条目的数量;异步接口的读方基于异步缓冲中已经写进的条目的数量,可根据需要,动态地设定存储转发阈值。
Description
技术领域
本发明涉及计算机技术领域和成电路逻辑设计领域,更具体地说,本发明涉及一种带条目占用指示的异步缓冲实现方法。
背景技术
在集成电路设计领域,异步缓冲应用广泛,主要用作逻辑设计中工作频率不同的接口间的频率转换交接。但是,现有的异步缓冲的功能都仅限于频率转换交接,而不能同时实现其它功能。
发明内容
本发明所要解决的技术问题是针对现有技术中存在上述缺陷,提供一种多功能的带条目占用指示的异步缓冲实现方法。
为了实现上述技术目的,根据本发明,提供了一种带条目占用指示的异步缓冲实现方法,包括:
第一步骤:提供一个通用异步缓冲;
第二步骤:然后在所述异步缓冲的设计中增加一个输出端口,用于输出一个基于读时钟域的缓冲已占用条目的指针;
第三步骤:异步接口的读方根据所述指针的值判断异步缓冲中已经写进的条目的数量;
第四步骤:异步接口的读方基于异步缓冲中已经写进的条目的数量,可根据需要,动态地设定存储转发阈值。
优选地,所述指针的位宽等于异步缓冲的可用单元的个数。
优选地,在阈值方式下,当异步缓冲内存储的数据条目数达到预先设定的阈值或者一个包总长度对应的条目数时,异步缓冲的读时钟域端口读出当前的包。
优选地,在存储转发模式下,当异步缓冲内存储的数据条目数达到一个包总长度对应的条目数时,异步缓冲的读时钟域端口读出当前的包。
通过采用根据本发明的带条目占用指示的异步缓冲实现方法,使得不仅能够实现异步接口间频率转换的功能,还能够通过条目占用指示的方式为接口的读方提供一种可变阈值的存储转发缓冲的功能。
附图说明
结合附图,并通过参考下面的详细描述,将会更容易地对本发明有更完整的理解并且更容易地理解其伴随的优点和特征,其中:
图1示意性地示出了根据本发明优选实施例的带条目占用指示的异步缓冲实现方法的流程图。
需要说明的是,附图用于说明本发明,而非限制本发明。注意,表示结构的附图可能并非按比例绘制。并且,附图中,相同或者类似的元件标有相同或者类似的标号。
具体实施方式
为了使本发明的内容更加清楚和易懂,下面结合具体实施例和附图对本发明的内容进行详细描述。
为了提高集成电路单位面积的使用效率,通过采用根据本发明的带条目占用指示的异步缓冲实现方法,使得既能够实现异步接口间频率转换的异步缓冲,还可实现读方接口可变阈值的存储转发缓冲。
具体地,图1示意性地示出了根据本发明优选实施例的带条目占用指示的异步缓冲实现方法的流程图。
如图1所示根据本发明优选实施例的带条目占用指示的异步缓冲实现方法包括:
第一步骤S1:提供一个通用异步缓冲;例如,该异步缓冲包括与写时钟、写地址、写数据、满标志、以及读时钟、读指针、读数据、空标志相关的一些端口。
第二步骤S2:然后在所述异步缓冲的设计中增加一个输出端口,用于输出一个基于读时钟域的缓冲已占用条目的指针(pkg_cnt[ASIZE:0]),其中所述指针的位宽(ASIZE+1)等于异步缓冲的可用单元的个数(即深度)。所述指针即形成一个条目占用指示。
例如,可采用下述设置实现:
pkg_cnt[ASIZE:0]=gray2bin(r2_gray_wp[ASIZE:0])-gray2bin(r_gray_rp[ASIZE:0])
其中r2_gray_wp[ASIZE:0]是异步缓冲基于格雷码的写地址并转换到读时钟域,r_gray_rp[ASIZE:0]是异步缓冲读地址。
第三步骤S3:异步接口的读方根据所述指针的值判断异步缓冲中已经写进(即存储)的条目的数量;
第四步骤S4:异步接口的读方基于异步缓冲中已经写进的条目的数量,可根据需要,动态地设定存储转发阈值,以利用异步缓冲实现存储转发缓冲功能。
在具体示例中,例如首先实现一个128X128比特大小的通用异步缓冲,然后在这个异步缓冲的设计中增加输出一个基于读时钟域的缓冲已占用条目的指针(pkg_cnt[7:0]),指针的位宽为8,即为所设计的异步缓冲的可用单元个数即深度。
可设置pkg_cnt[7:0]=gray2bin(r2_gray_wp[7:0])-gray2bin(r_gray_rp[7:0]);其中r2_gray_wp[7:0]是异步缓冲基于格雷码的写地址并转换到读时钟域,r_gray_rp[7:0]是异步缓冲读地址,使用上述设计后,异步接口的读方就能根据指针pkg_cnt的值得知异步缓冲已经写进了多少个条目,从而根据需要设定存储转发阈值,用异步缓冲实现存储转发缓冲功能。
进一步地,可设置Assign hvout=!o_empty&(pkg_cnt>={(策略==1)?min{阈值,包长度}:包长度})
在阈值方式下,当异步缓冲内存储的数据条目数达到预先设定的阈值或者一个包总长度对应的条目数时,异步缓冲的读时钟域端口可以读出当前的包;在非阈值方式下(即在存储转发模式下),当异步缓冲内存储的数据条目数达到一个包总长度对应的条目数时,异步缓冲的读时钟域端口可以读出当前的包。
本发明专利的有益效果是,设计了一种新型的带条目占用指示的异步缓冲实现方法,使得异步缓冲既可用作异步接口间频率转换,还可用作接口的读方的可变阈值的存储转发缓冲。
可以理解的是,虽然本发明已以较佳实施例披露如上,然而上述实施例并非用以限定本发明。对于任何熟悉本领域的技术人员而言,在不脱离本发明技术方案范围情况下,都可利用上述揭示的技术内容对本发明技术方案作出许多可能的变动和修饰,或修改为等同变化的等效实施例。因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均仍属于本发明技术方案保护的范围内。
Claims (3)
1.一种带条目占用指示的异步缓冲实现方法,其特征在于包括:
第一步骤:提供一个通用异步缓冲;
第二步骤:在所述异步缓冲的设计中增加一个输出端口,用于输出一个基于读时钟域的缓冲已占用条目的指针;
第三步骤:异步接口的读取方根据所述指针的值判断异步缓冲中已经写进的条目的数量;
第四步骤:异步接口的读取方基于异步缓冲中已经写进的条目的数量,动态地设定存储转发阈值;
其中,在阈值方式下,当异步缓冲内存储的数据条目数达到预先设定的阈值或者一个包总长度对应的条目数时,异步缓冲的读时钟域端口读出当前的包。
2.根据权利要求1所述的方法,其特征在于,所述指针的位宽等于异步缓冲的可用单元的个数。
3.根据权利要求1或2所述的方法,其特征在于,在存储转发模式下,当异步缓冲内存储的数据条目数达到一个包总长度对应的条目数时,异步缓冲的读时钟域端口读出当前的包。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510790736.8A CN105373663B (zh) | 2015-11-17 | 2015-11-17 | 一种带条目占用指示的异步缓冲实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510790736.8A CN105373663B (zh) | 2015-11-17 | 2015-11-17 | 一种带条目占用指示的异步缓冲实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105373663A CN105373663A (zh) | 2016-03-02 |
CN105373663B true CN105373663B (zh) | 2018-06-26 |
Family
ID=55375858
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510790736.8A Active CN105373663B (zh) | 2015-11-17 | 2015-11-17 | 一种带条目占用指示的异步缓冲实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105373663B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1560868A (zh) * | 2004-02-10 | 2005-01-05 | 中国科学院计算技术研究所 | 用双端口随机存取存储器实现异步先进先出数据传输 |
CN101667451A (zh) * | 2009-09-11 | 2010-03-10 | 西安电子科技大学 | 高速数据交换接口的数据缓存器及其数据缓存控制方法 |
CN104572655A (zh) * | 2013-10-12 | 2015-04-29 | 腾讯科技(北京)有限公司 | 数据处理的方法、装置及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101818967B1 (ko) * | 2012-06-15 | 2018-01-16 | 인텔 코포레이션 | 명확화 없는 비순차 load store 큐 |
-
2015
- 2015-11-17 CN CN201510790736.8A patent/CN105373663B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1560868A (zh) * | 2004-02-10 | 2005-01-05 | 中国科学院计算技术研究所 | 用双端口随机存取存储器实现异步先进先出数据传输 |
CN101667451A (zh) * | 2009-09-11 | 2010-03-10 | 西安电子科技大学 | 高速数据交换接口的数据缓存器及其数据缓存控制方法 |
CN104572655A (zh) * | 2013-10-12 | 2015-04-29 | 腾讯科技(北京)有限公司 | 数据处理的方法、装置及系统 |
Non-Patent Citations (1)
Title |
---|
基于FPGA的异步FIFO缓存设计;肖静娴 等;《电子测量技术》;20091115;第32卷(第11期);第92-94页 * |
Also Published As
Publication number | Publication date |
---|---|
CN105373663A (zh) | 2016-03-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103559146B (zh) | 一种提高NAND flash控制器读写速度的方法 | |
CN105680848B (zh) | 基于区域时钟的优化fpga芯片布局的方法 | |
KR101470136B1 (ko) | 데이터 변환 방법, 데이터 변환 장치 및 데이터 변환 프로그램 | |
CN105653481B (zh) | 基于PCIe总线的数据传输方法和装置 | |
CN103077148A (zh) | 一种基于pcie的主机通讯方法和主机 | |
CN105488237B (zh) | 基于fpga的寄存器使能信号优化方法 | |
KR102198615B1 (ko) | 듀얼 프로그램 동작을 사용하는 불휘발성 메모리 장치, 그것을 포함하는 메모리 시스템 및 그들의 동작 방법 | |
CN104750432B (zh) | 一种数据存储方法及装置 | |
US20230305956A1 (en) | Method for accelerating reading of storage medium, read acceleration hardware module, and memory | |
CN105373663B (zh) | 一种带条目占用指示的异步缓冲实现方法 | |
CN107704200A (zh) | 一种数据存放方法 | |
CN104461934B (zh) | 一种适合ddr存储器的时域解卷积交织装置及方法 | |
CN103957211A (zh) | 客户端与前端页面之间的数据通信方法及装置 | |
CN103200111B (zh) | 一种信元交换方法及装置 | |
WO2019127416A1 (zh) | 连通域检测方法、电路、设备、计算机可读存储介质 | |
CN102769513B (zh) | 以太网数据帧时延损伤实现方法 | |
CN105760558A (zh) | Fpga芯片中多输入查找表的布局方法 | |
CN105512075B (zh) | 高速输出、输入接口电路及数据传输方法 | |
CN109408873A (zh) | 一种多维阵列信号控制方法、装置及计算机可读存储介质 | |
CN105512090B (zh) | 一种基于fpga的网络节点内数据缓冲的组织方法 | |
CN104199895B (zh) | 一种基于双体内存系统的大数据实时排序处理器 | |
CN107766259A (zh) | 页表缓存的访问方法、页表缓存、处理器芯片和存储单元 | |
CN104751879B (zh) | 基于fpga实现cam功能的方法 | |
CN105589815B (zh) | 一种存储器间的数据搬移的方法 | |
JP5379075B2 (ja) | データ入出力装置、データ記憶方法及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |