用于在不同时钟域的分块间实现异步FIFO的系统及方法技术方案

技术编号:34174251 阅读:22 留言:0更新日期:2022-07-17 11:31
本发明专利技术提供一种用于在不同时钟域的分块间实现异步FIFO的系统和方法,系统包括第一时钟域的第一分块中的数据缓存模块和写入装置、第二时钟域的第二分块中的读出装置。写入装置将来自第二时钟域的读计数信号同步到第一时钟域,根据同步后的信号和当前第一时钟域的写计数信号产生满指示信号,并根据满指示信号在第一时钟域进行计数;数据缓存模块根据产生的写计数信号缓存写入数据;读出装置将来自第一时钟域的写计数信号同步到第二时钟域,根据同步后的信号和当前第二时钟域的读计数信号产生空指示信号,并根据空指示信号在第二时钟域进行计数,以用于读取缓存数据。本发明专利技术降低了大型芯片设计中分块的时钟树的设计复杂度。大型芯片设计中分块的时钟树的设计复杂度。大型芯片设计中分块的时钟树的设计复杂度。

【技术实现步骤摘要】
用于在不同时钟域的分块间实现异步FIFO的系统及方法


[0001]本专利技术涉及芯片设计
,具体而言,涉及一种用于在不同时钟域的分块间实现异步FIFO的系统和方法。

技术介绍

[0002]芯片设计常常涉及到多个时钟,在大型芯片设计中,通常会将芯片分割成多个Partition(本文中称为分块)以验证整个设计,其中不同的分块使用不同的时钟且属于不同的时钟域,不同的分块的时钟树通常单独生成。目前,通常在不同时钟域的分块间使用异步FIFO(全称为First In First Out,先入先出)来实现数据交互,一种常见方法是将异步FIFO队列设置在一个时钟域中,其中使用不同的时钟作为读时钟和写时钟。可见,设置在一个时钟域的分块中的异步FIFO队列仍需要使用到另一个时钟域的时钟,这导致了不同分块的时钟树的设计复杂度较高。

技术实现思路

[0003]为克服上述现有技术中存在的问题,根据本专利技术的一个实施例,提供一种用于在不同时钟域的分块间实现异步FIFO的系统,包括设置在第一时钟域的第一分块中的数据缓存模块和写入装置,以及设置在第二时钟域的第二分块中的读出装置。写入装置被配置为:将来自第二时钟域的读计数信号同步到第一时钟域;根据同步后的读计数信号和当前第一时钟域的写计数信号产生满指示信号;以及响应于满指示信号指示数据缓存模块未满并且写指示信号指示存在写入数据,在第一时钟域进行计数以产生写计数信号。数据缓存模块被配置为根据所产生的写计数信号将写入数据作为缓存数据缓存到数据缓存模块。读出装置被配置为:将来自第一时钟域的写计数信号同步到第二时钟域;根据同步后的写计数信号和当前第二时钟域的读计数信号产生空指示信号;响应于空指示信号指示数据缓存模块不为空并且读指示信号指示从数据缓存模块读出数据,在第二时钟域进行计数以产生读计数信号;所产生的读计数信号用于从缓存数据中选择并且输出读数据。其中,跨第一时钟域的第一分块和第二时钟域的第二分块交互信号的路径建立有时序约束。
[0004]上述系统还可以包括设置在第二时钟域的第二分块中的读数据隔离模块。上述系统的读出装置还被配置为从所产生的读计数信号获得读地址,经由第一时钟域的第一分块和第二时钟域的第二分块间的接口将读地址传输到数据缓存模块。上述系统的数据缓存模块还被配置为根据读地址从缓存数据中选择读数据,并且将读数据经由所述接口传输到读数据隔离模块。读数据隔离模块被配置为将读数据在第二时钟域进行隔离以产生输出数据。其中,读出装置与所述接口间的路径、从所述接口经由数据缓存模块到达所述接口的路径、所述接口与读数据隔离模块间的路径分别建立有相应的时序约束。
[0005]上述系统还可以包括设置在第二时钟域的第二分块中的多路复用模块和读数据隔离模块。上述系统的数据缓存模块还被配置为经由第一时钟域的第一分块和第二时钟域的第二分块间的接口将缓存数据传输到多路复用模块。上述系统的读出装置还被配置为从
所产生的读计数信号获得读地址,并且将读地址传输到多路复用模块。多路复用模块被配置为根据读地址从缓存数据中选择读数据,并且将读数据传输到读数据隔离模块。读数据隔离模块被配置为将读数据在第二时钟域进行隔离以产生输出数据。其中,数据缓存模块与所述接口间的路径、所述接口与读数据隔离模块间的路径分别建立有相应的时序约束。
[0006]上述系统中,写入装置可以包括:读计数同步器模块,用于经由第一时钟域的第一分块和第二时钟域的第二分块间的接口接收读出装置产生的读计数信号,并且将读计数信号同步到第一时钟域;满指示逻辑模块,用于根据同步后的读计数信号和当前所述第一时钟域的写计数信号产生满指示信号;写计数器模块,用于响应于满指示信号指示数据缓存模块未满并且写指示信号指示存在写入数据,在第一时钟域进行计数以产生写计数信号。读出装置可以包括:写计数同步器模块,用于经由所述接口接收写入装置产生的写计数信号,并且将写计数信号同步到第二时钟域;空指示逻辑模块,用于根据同步后的写计数信号和当前第二时钟域的读计数信号产生空指示信号;读计数器模块,用于响应于空指示信号指示数据缓存模块不为空并且读指示信号指示从数据缓存模块读出数据,在第二时钟域进行计数以产生读计数信号。
[0007]上述系统中,写入装置还可以包括写计数隔离模块,用于将写计数器模块产生的写计数信号在第一时钟域进行隔离,并且将隔离后的写计数信号经由所述接口传输到写计数同步器模块。读出装置还可以包括读计数隔离模块,用于将读计数器模块产生的读计数信号在第二时钟域进行隔离,并且将隔离后的读计数信号经由所述接口传输到读计数同步器模块。其中,写计数隔离模块与所述接口间的路径、所述接口与写计数同步器模块间的路径、读计数隔离模块与所述接口间的路径、所述接口与读计数同步器模块间的路径分别建立有相应的时序约束。
[0008]上述系统中,写入装置还可以包括写计数译码模块,用于对写入装置产生的写计数信号进行译码以产生写地址,例如,在写入装置采用格雷码计数器作为写计数器模块的情况下,写计数译码模块用于将格雷码形式的写计数信号进行译码以产生二进制编码的写地址;所述写地址指示写入数据缓存到数据缓存模块的位置。读出装置还可以包括读计数译码模块,用于对读出装置产生的读计数信号进行译码,并且将译码结果在第二时钟域进行隔离以产生读地址,例如,在读出装置采用格雷码计数器作为读计数器模块的情况下,读计数译码模块用于将格雷码形式的读计数信号进行译码,以得到对应的二进制编码;所述读地址用于从缓存数据中选择读数据。
[0009]根据本专利技术的一个实施例,还提供一种用于在不同时钟域的分块间实现异步FIFO的方法,其中,在第一时钟域的第一分块中设置数据缓存模块和写入装置并且在第二时钟域的第二分块中设置读出装置。该方法包括:由写入装置将来自第二时钟域的读计数信号同步到第一时钟域;根据同步后的读计数信号和当前第一时钟域的写计数信号产生满指示信号;并且响应于满指示信号指示数据缓存模块未满并且写指示信号指示存在写入数据,在第一时钟域进行计数以产生写计数信号。该方法还包括:由数据缓存模块根据所产生的写计数信号将写入数据作为缓存数据进行缓存。该方法还包括:由读出装置将来自第一时钟域的写计数信号同步到第二时钟域;根据同步后的写计数信号和当前第二时钟域的读计数信号产生空指示信号;并且响应于空指示信号指示数据缓存模块不为空并且读指示信号指示从数据缓存模块读出数据,在第二时钟域进行计数以产生读计数信号;所产生的读计
数信号用于从缓存数据中选择并且输出读数据。其中,跨第一时钟域的第一分块和第二时钟域的第二分块交互信号的路径建立有时序约束。
[0010]上述方法还可以包括在第二时钟域的第二分块中设置读数据隔离模块。上述所述方法还可以包括:由读出装置从所产生的读计数信号获得读地址,经由第一时钟域的第一分块和第二时钟域的第二分块间的接口将读地址传输到数据缓存模块;由数据缓存模块根据读地址从缓存数据中选择读数据,并且将读数据经由所述接口传输到读数据隔离模块;以及,由读数据隔离模块将读数据在第二时钟域进行隔离以产生输出数据本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种用于在不同时钟域的分块间实现异步FIFO的系统,其特征在于,包括设置在第一时钟域的第一分块中的数据缓存模块和写入装置,以及设置在第二时钟域的第二分块中的读出装置;其中,所述写入装置被配置为:将来自所述第二时钟域的读计数信号同步到所述第一时钟域;根据同步后的读计数信号和当前所述第一时钟域的写计数信号产生满指示信号;响应于所述满指示信号指示所述数据缓存模块未满并且写指示信号指示存在写入数据,在所述第一时钟域进行计数以产生写计数信号;所述数据缓存模块被配置为:根据所产生的写计数信号将所述写入数据作为缓存数据缓存到所述数据缓存模块;所述读出装置被配置为:将来自所述第一时钟域的写计数信号同步到所述第二时钟域;根据同步后的写计数信号和当前所述第二时钟域的读计数信号产生空指示信号;响应于所述空指示信号指示所述数据缓存模块不为空并且读指示信号指示从所述数据缓存模块读出数据,在所述第二时钟域进行计数以产生读计数信号;所产生的读计数信号用于从所述缓存数据中选择并且输出读数据;其中,跨所述第一时钟域的第一分块和所述第二时钟域的第二分块交互信号的路径建立有时序约束。2.根据权利要求1所述的系统,其特征在于,还包括设置在所述第二时钟域的第二分块中的读数据隔离模块;其中,所述读出装置还被配置为从所产生的读计数信号获得读地址,经由所述第一时钟域的第一分块和所述第二时钟域的第二分块间的接口将所述读地址传输到所述数据缓存模块;所述数据缓存模块还被配置为根据所述读地址从所述缓存数据中选择所述读数据,并且将所述读数据经由所述接口传输到所述读数据隔离模块;所述读数据隔离模块被配置为将所述读数据在所述第二时钟域进行隔离以产生输出数据;其中,所述读出装置与所述接口间的路径、从所述接口经由所述数据缓存模块到达所述接口的路径、所述接口与所述读数据隔离模块间的路径分别建立有相应的时序约束。3.根据权利要求1所述的系统,其特征在于,还包括设置在所述第二时钟域的第二分块中的多路复用模块和读数据隔离模块;其中,所述数据缓存模块还被配置为经由所述第一时钟域的第一分块和所述第二时钟域的第二分块间的接口将所述缓存数据传输到所述多路复用模块;所述读出装置还被配置为从所产生的读计数信号获得读地址,并且将所述读地址传输到所述多路复用模块;所述多路复用模块被配置为根据所述读地址从所述缓存数据中选择所述读数据,并且将所述读数据传输到所述读数据隔离模块;所述读数据隔离模块被配置为将所述读数据在所述第二时钟域进行隔离以产生输出数据;
其中,所述数据缓存模块与所述接口间的路径、所述接口与所述读数据隔离模块间的路径分别建立有相应的时序约束。4.根据权利要求1

3中任一项所述的系统,其特征在于,所述写入装置包括:读计数同步器模块,用于经由所述第一时钟域的第一分块和所述第二时钟域的第二分块间的接口接收所述读出装置产生的读计数信号,并且将所述读计数信号同步到所述第一时钟域;满指示逻辑模块,用于根据所述同步后的读计数信号和当前所述第一时钟域的写计数信号产生所述满指示信号;写计数器模块,用于响应于所述满指示信号指示所述数据缓存模块未满并且写指示信号指示存在写入数据,在所述第一时钟域进行计数以产生写计数信号;以及所述读出装置包括:写计数同步器模块,用于经由所述接口接收所述写入装置产生的写计数信号,并且将所述写计数信号同步到所述第二时钟域;空指示逻辑模块,用于根据所述同步后的写计数信号和当前所述第二时钟域的读计数信号产生所述空指示信号;读计数器模块,用于响应于空指示信号指示所述数据缓存模块不为空并且读指示信号指示从所述数据缓存模块读出数据,在所述第二时钟域进行计数以产生读计数信号。5.根据权利要求4所述的系统,其特征在于,所述写入装置还包括:写计数隔离模块,用于将所述写计数器模块产生的写计数信号在所述第一时钟域进行隔离,并且将隔离后的写计数信号经由所述接口传输到所述写计数同步器模块;所述读出装置还...

【专利技术属性】
技术研发人员:谢耀李智
申请(专利权)人:上海登临科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1