本申请公开一种多比特异步接口电路,涉及集成电路领域,电路包括写入端的写寄存组和数据分配器,读出端的读寄存组和数据选择器,以及位于写入端和读出端之间的数据寄存矩阵和同步电路;写寄存组连接数据分配器的输入端,数据分配器的输出端连接数据寄存矩阵的写入端口;读寄存组连接数据选择器的输出端,数据选择器的输入端连接数据寄存矩阵的读出端口;同步电路分别连接写入端和读出端时钟,用于异步时钟同步。本申请采用寄存器矩阵,通过选择器和分配器构成异步接口电路,寄存器组合可根据数据类型改变位宽、位深和最大延迟约束,提高通用性、灵活性和资源利用率。灵活性和资源利用率。灵活性和资源利用率。
【技术实现步骤摘要】
多比特异步接口电路
[0001]本申请实施例涉及集成电路
,特别涉及一种跨时钟域的多比特异步接口电路。
技术介绍
[0002]在高性能、低功耗的大规模集成电路的设计(包括FPGA/IP/SOC/AISC)中,很多时候会存在不同的时钟域,在这些不同时钟域的电路之间经常需要交换数据,数据包括单比特和多比特两种形态,数据跨时钟域传输时会不可避免的产生竞争冒险或毛刺,从而导致亚稳态问题。
[0003]相关技术中,针对亚稳态问题普遍采用异步先入先出存储器(FIFO)来实现,其主要使用双端口随机静态存储器(SRAM)来控制读写操作,但SRAM的使用需要适配项目工艺、数据位宽、SRAM深度以及设计代码和工艺库等,这就意味着SRAM选型需要更高比特位宽,人工从单元库中对比功能、大小、面积和功耗,然后替换掉RTL代码来适配当前项目,这些会导致SRAM资源的浪费,无法确保最大延迟时序约束,对电路设计的通用性和灵活性造成一定影响。
技术实现思路
[0004]本申请提供了一种多比特异步接口电路,所述电路包括写入端的写寄存组和数据分配器,读出端的读寄存组和数据选择器,以及位于写入端和读出端之间的数据寄存矩阵和同步电路;
[0005]所述写寄存组连接所述数据分配器的输入端,所述数据分配器的输出端连接所述数据寄存矩阵的写入端口,用于将所述写寄存组中指定寄存器的数据写入到所述数据寄存矩阵中的目标位置;
[0006]所述读寄存组连接所述数据选择器的输出端,所述数据选择器的输入端连接所述数据寄存矩阵的读出端口,用于从所述数据寄存矩阵中的目标位置读出数据到所述读寄存组中指定的寄存器;
[0007]所述同步电路分别写入端和读出端时钟,用于异步时钟同步。
[0008]具体的,所述写寄存组和所述读寄存组分别是N位单比特寄存器组成的寄存器单元行,且单元行分别连接到所述数据分配器的输入端和所述选择器的输出端。
[0009]具体的,所述数据寄存矩阵是M组N位单比特寄存器组成的二维寄存器阵列,用于接收所述数据分配器写入的数据,并基于生成的写地址存储至目标位置;其中,所述写地址根据所述数据寄存矩阵的存储空间和各个寄存器的存储状态确定。
[0010]具体的,所述写入端还设置有写入控制电路,读出端还设置有读出控制电路;所述写入控制电路连接所述数据分配器和所述同步电路,用于确定所述写地址并发送至所述同步电路和所述数据分配器;所述读出控制电路连接所述数据选择器和所述同步电路,用于确定读地址并发送至所述同步电路和所述数据选择器。
[0011]具体的,写入端和所述数据寄存矩阵工作在写时钟状态,读出端工作在读时钟状态。
[0012]具体的,所述同步电路中包含S个同步器,对应的级数为S级,读出时钟端时钟周期为T_read;电路的最大延迟约束max_delay=(T_read)*(S
‑
1)。
[0013]上述技术方案带来的有益效果至少包括:通过将传统的双端口SRAM替换为二维寄存器矩阵,且将读出方和写入方设计为参数可配置的单比特寄存组,因而可以根据具体的读出或写入数据类型来决定寄存组的M值,再通过纯电路设计的数据分配器和数据选择器来选取通道、写入对应矩阵位置以及读出数据。读和写的同步过程同步电路设定,确保数据存取准确无误。寄存器配置的方式不需要改动设计代码,不需要使用特定工艺库,适用于任何工艺节点的项目,且数据位宽和位深任意配置,适应任意时钟频率和传输速率,实用场景广泛、通用性更高。
附图说明
[0014]图1是经典FIFO接口电路的结构示意图;
[0015]图2是本申请实施例提供的多比特异步接口电路的结构示意图;
[0016]图3是本申请实施例提供的读寄存组和写寄存组的结构示意图;
[0017]图4是本申请实施例提供的数据寄存矩阵的结构示意图;
[0018]图5是本申请实施例提供的同步电路的结构示意图;
[0019]图6是经典FIFO接口电路的时序电路图;
[0020]图7是本申请实施例提供的时序电路图。
具体实施方式
[0021]为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
[0022]在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
[0023]多比特跨时钟域传输的主流设计方案是采用异步先入先出存储器(FIFO)来实现,如图1所示,此方案主要部件是双端口随机存取静态存储器(SRAM),工作于各自独立时钟域的读写入控制电路,以及在读写时钟域之间的相互同步读写地址的同步电路。该SRAM为双时钟输入,一个是写时钟,另一个是读时钟,此类设计架构存在以下问题:
[0024]1.此类SRAM必须根据项目工艺的不同而采用不同的设计,往往需要工程师人工从单元库中对比功能、大小、面积、功耗,然后替换掉RTL代码来适配当前项目。
[0025]2.在不同的设计或项目中,读写交换数据的位宽往往会不同,比如8、32、 64、128比特等,或者其他任意比特。在某些情况下比如比特位宽是31或者68 的时候,往往没有完全匹配的sram,只能采用更大的sram来满足,比如用32 或72比特位宽的sram,会造成设计面积、功耗的浪费。
[0026]3.在不同的设计或项目中,有时候会遇到写入和读出端口的速率相差较大,必须通过增加sram的深度以防止溢出或丢失数据,这也需要改变sram的设计,而往往也会遇到
深度不能完全匹配从而导致设计面积、功耗的浪费。
[0027]4.此类SRAM在写和读端口上和端口之间有特殊的时序要求,必须工程师人工对比确保时序要求可以满足设计要求。
[0028]5.此类SRAM对后端的布局布线有特定要求,后端实现工程师必须手动操作来满足要求。
[0029]以上要求都限制了SRAM的接口电路的灵活性和通用性,不可避免的造成成本投入过高以及资源浪费等。
[0030]图2是本申请实施例提供的多比特异步接口电路的结构示意图。该电路结构分为读出端和写入端,具体包括写入端的写寄存组和数据分配器,读出端的读寄存组和数据选择器,以及位于写入端和读出端之间的数据寄存矩阵和同步电路。写寄存组连接数据分配器的输入端,数据分配器的输出端连接数据寄存矩阵的写入端口,用于将写寄存组中指定寄存器的数据写入到数据寄存矩阵中的目标位置。读寄存组连接数据选择器的输出端,数据选择器的输入端连接数据寄存矩阵的读出端口,用于从数据寄存矩阵中的目标位置读出数据到读寄存组中指定的寄存器。同步电路分别连接写入端和读出端时钟,用于异步时钟同步。
[0031]SRAM连接的寄存器在存储时无法自适应位宽和位深,所以本申请将写入和读出部分改用寄存器组和成的寄存组和数据存储本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种多比特异步接口电路,其特征在于,所述电路包括写入端的写寄存组和数据分配器,读出端的读寄存组和数据选择器,以及位于写入端和读出端之间的数据寄存矩阵和同步电路;所述写寄存组连接所述数据分配器的输入端,所述数据分配器的输出端连接所述数据寄存矩阵的写入端口,用于将所述写寄存组中指定寄存器的数据写入到所述数据寄存矩阵中的目标位置;所述读寄存组连接所述数据选择器的输出端,所述数据选择器的输入端连接所述数据寄存矩阵的读出端口,用于从所述数据寄存矩阵中的目标位置读出数据到所述读寄存组中指定的寄存器;所述同步电路分别连接写入端和读出端时钟,用于异步时钟同步。2.根据权利要求1所述的电路,其特征在于,所述写寄存组和所述读寄存组分别是N位单比特寄存器组成的寄存器单元行,且单元行分别连接到所述数据分配器的输入端和所述选择器的输出端。3.根据权利要求2所述的电路,其特征在于,所述数据寄存矩阵是M组N位单比特寄存器组成的二维寄存器阵列...
【专利技术属性】
技术研发人员:陈生伟,
申请(专利权)人:深存科技无锡有限公司,
类型:新型
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。