基于SRAM存内计算宏单元的通用顶层测试电路系统及方法
- 国知局
- 2024-09-05 14:52:08
本发明涉及集成电路,特别涉及一种基于sram存内计算宏单元的通用顶层测试电路系统及方法。
背景技术:
1、在传统的冯·诺依曼架构中,存储器的性能制约了系统整体性能的进一步提升,这也被称作冯诺依曼架构的存储墙问题。此外,人工智能技术的蓬勃发展使得算力的需求大幅增加,但传统的数字计算阵列大量的能量和时间消耗在数据的传输上,难以满足边缘测的高效计算。因此,基于sram的存内计算作为高吞吐量、面积效率和能量效率的一种新型架构近年来不断发展。
2、随着存内计算的不断发展,在电流域、电荷域、时域和数字域等完成计算的存内计算架构相继被提出,而不同架构之间的仿真测试要求各不相同,即使是同一计算架构下的存内计算宏单元也有着不同的输入和输出带宽和测试需求。同时,受限于芯片面积,流片时的芯片引脚数量也不固定,并且由于存内计算宏单元的高吞吐量和并行度,其所需要的输入/输出带宽远远大于芯片引脚所能提供的带宽。因此,存内计算宏单元的顶层电路需要对不同的测试需求、计算架构、输入/输出带宽和接口进行适配,而传统的顶层架构需要设计和测试人员针对不同的待测存内计算宏单元逐一进行适配,导致测试成本与人工成本高、测试效率低,不可避免的增加了测试难度与时间开销。因此,需要一个通用的顶层测试电路架构及方法来满足各种不同的存内计算宏单元的测试需求。
技术实现思路
1、本发明提供一种基于sram存内计算宏单元的通用顶层测试电路系统及方法,指令集与各个硬件模块之间的操作相互解耦,通用性高,通过硬件架构与指令集的协同优化,降低了顶层测试电路系统的设计时间、测试成本与人工参与,提升了基于静态随机存储器(static random access memory,sram)存内计算宏单元的测试效率。
2、本发明第一方面实施例提供一种基于sram存内计算宏单元的通用顶层测试电路系统,包括:锁相环(phase locked loop,pll)电路、指令译码单元、输入数据移位单元、宏单元输入数据/指令存储单元、权重自更新控制单元、待测存内计算宏单元阵列、输出数据存储单元和输出数据选择单元;
3、所述pll电路的输入与所述顶层测试电路对应的时钟输入信号引脚相连,输出多个不同频率的时钟通过输入时钟选择器后与所述指令译码单元、所述输入数据移位单元、所述宏单元输入数据/指令存储单元、所述待测存内计算宏单元阵列、所述输出数据存储单元和所述输出数据选择单元相连;
4、所述指令译码单元的输入与所述顶层测试电路对应的输入引脚相连,将输入数据信号送入所述顶层测试电路内部,用于通过指令对应操作码将单指令多数据(singleinstruction multiple data,simd)指令进行译码,得到所述输入数据移位单元、所述宏单元输入数据/指令存储单元、所述待测存内计算宏单元阵列、所述权重自更新控制单元、所述输出数据存储单元和所述输出数据选择单元的控制信号;
5、所述输入数据移位单元的输入与所述指令译码单元的输出相连,输出与所述宏单元输入数据/指令存储单元的输入相连,用于在接收到暂停装载宏单元输入数据/指令存储单元指令时,对所述指令译码单元译码后得到的输入数据和存内计算宏单元控制指令进行移位,以使得输入数据和指令并行存入宏单元输入数据/指令存储单元;
6、所述宏单元输入数据/指令存储单元的输出与所述待测存内计算宏单元阵列中的译码逻辑单元相连;
7、所述权重自更新控制单元的输入与所述宏单元输入数据/指令存储单元的输出相连,输出与所述待测存内计算宏单元的输入相连,用于在顶层测试电路收到权重自更新指令时,接收所述指令译码单元译码得到的控制信号,根据控制信号对所选择的所述待测存内计算宏单元按照对应的权重更新模式,自起始地址到结束地址进行权重的自动更新;
8、所述待测存内计算宏单元阵列中包括多个译码逻辑单元和多个待测存内计算宏单元,所述译码逻辑单元接受到来自所述宏单元输入数据/指令存储单元或所述权重自更新控制单元的数据/指令,根据所述指令译码单元译码得到的宏单元选择信号,对所述待测存内计算宏单元阵列的其中之一进行选择,通过所述宏单元输入数据/指令存储单元读出得到的数据及指令控制信号,或所述权重自更新控制单元输出的数据及指令控制信号,对被选择的所述待测存内计算宏单元进行控制;
9、所述输出数据存储单元的输入与所述待测存内计算宏单元阵列的输出相连,输出与所述输出数据选择单元的输入相连,用于存储对应的待测存内计算宏单元计算所得到的测试输出结果;
10、所述输出数据选择单元的输出与所述顶层测试电路的输出引脚相连,用于在所述顶层测试电路收到读出输出数据存储单元指令时,接收所述指令译码单元译码得到的控制信号,按照对应所述输出数据存储单元的地址将锁存的测试输出结果进行读出,并将测试输出结果通过并行转串行的操作进行输出。
11、可选地,在本发明的一个实施例中,所述pll电路的输入时钟主频为16.25或32.5mhz,输出时钟主频为输入时钟主频的4倍与8倍频,通过输入时钟选择控制信号对所述顶层测试电路的输入时钟进行选择,以满足待测存内计算宏单元阵列测试需求。
12、可选地,在本发明的一个实施例中,所述宏单元输入数据/指令存储单元物理电路上由sram进行实现,其中,所述宏单元输入数据/指令存储单元的位宽,与所述待测存内计算宏单元阵列输入位宽最大的待测存内计算宏单元相匹配,所述宏单元输入数据/指令存储单元的深度,与所述待测存内计算宏单元所需的指令条数匹配。
13、可选地,在本发明的一个实施例中,根据控制信号对所选择的所述待测存内计算宏单元按照对应的权重更新模式,自起始地址到结束地址进行权重的自动更新,包括:
14、根据所述指令译码单元译码得到的宏单元选择信号、权重更新模式、更新起始地址与结束地址控制信号,对所选择的所述待测存内计算宏单元按照对应的权重更新模式,自起始地址到结束地址进行权重的自动更新。
15、可选地,在本发明的一个实施例中,所述输出数据存储单元物理电路上由sram进行实现,其中,所述输出数据存储单元的输入位宽与所述待测存内计算宏单元阵列中输出位宽最大的待测存内计算宏单元相匹配;所述输出数据存储单元的深度与所述待测存内计算宏单元所需要锁存的输出结果数量匹配,所述输出数据存储单元的输出与所述输出数据选择单元的输入相连。
16、可选地,在本发明的一个实施例中,所述输出数据选择单元接收所述指令译码单元译码得到的控制信号,按照对应所述输出数据存储单元的地址将锁存的测试输出结果进行读出,并将测试输出结果通过并行转串行的操作进行输出,包括:
17、所述输出数据选择单元根据译码得到的所述输出数据存储单元的地址和输出多路选择控制信号,按照对应所述输出数据存储单元的地址将锁存的测试输出结果进行读出,并根据输出多路选择控制信号将测试输出结果通过并行转串行的操作进行输出。
18、可选地,在本发明的一个实施例中,所述输出数据选择单元在所述顶层测试电路收到读出宏单元输入数据/指令存储单元指令时,如果所述指令译码单元译码得到的控制信号为输出直通控制信号,则根据译码得到的多路选择控制信号直接将所述待测存内计算宏单元阵列的测试输出结果进行部分选择输出。
19、可选地,在本发明的一个实施例中,所述simd指令包括空闲指令、暂停装载宏单元输入数据/指令存储单元指令、装载宏单元输入数据/指令存储单元指令、读出宏单元输入数据/指令存储单元、读出输出数据存储单元指令和权重自更新指令;其中,
20、所述空闲指令在经过所述指令译码单元译码后,不进行任何控制操作,整个顶层测试电路系统处于空闲状态;
21、所述暂停装载宏单元输入数据/指令存储单元指令包括操作码和输入数据/指令比特位,对所述指令译码单元和所述数据移位单元进行控制,通过所述指令译码单元译码得到的数据/指令比特位进行移位操作,其余顶层测试电路系统的单元处于空闲状态;
22、所述装载宏单元输入数据/指令存储单元指令包括操作码和输入数据/指令比特位,对所述指令译码单元、所述数据移位单元和宏单元输入数据/指令存储单元进行控制,通过所述指令译码单元译码得到的数据/指令进行移位操作,并将多个周期暂停装载宏单元输入数据/指令存储单元指令和本周期装载宏单元输入数据/指令存储单元指令的移位结果存入所述宏单元输入数据/指令存储单元;
23、所述读出宏单元输入数据/指令存储单元指令包括操作码、宏单元选择信号、输出数据存储单元地址、输入数据/指令存储单元地址、输出直通控制信号和输出多路选择控制信号比特位,对所述指令译码单元、所述数据移位单元、所述宏单元输入数据/指令存储单元、所述待测存内计算宏单元阵列、所述输出数据存储单元和所述输出数据选择单元进行控制,通过所述指令译码单元译码得到的各个控制信号,按照所述输入数据/指令存储单元地址对其对应地址进行读出并根据宏单元选择信号选择对应的待测存内计算宏单元,将读出的数据/指令送入所述待测存内计算宏单元,按照输出直通控制信号对所述待测存内计算宏单元的输出进行处理;
24、所述读出输出数据存储单元指令包括操作码、输出数据存储单元地址和输出多路选择控制信号比特位,对所述输出数据存储单元和所述输出数据选择单元进行控制,通过所述输出数据存储单元地址信号对所述输出数据存储单元进行读操作,进而通过输出多路选择控制信号选择部分输出数据存储单元的读出结果送到顶层测试电路的输出引脚,供外界读取;
25、所述权重自更新指令包括操作码、宏单元选择信号、权重更新模式控制信号、权重更新起始地址和权重更新结束地址比特位,通过所述指令译码单元译码得到的宏单元选择信号选择对应的待测存内计算宏单元,根据权重更新起始地址和权重更新结束地址对被选择的待测存内计算宏单元按照权重更新模式控制信号进行自动权重更新,所述权重更新模式控制信号包括四种不同的权重自更新模式,权重全1模式,权重01交替模式,权重10交替模式和权重全0模式。
26、可选地,在本发明的一个实施例中,所述输出直通控制信号包含对所述输出数据存储单元和所述输出数据选择单元进行四种不同的操作,分别为:所述输出数据存储单元和所述输出数据选择单元空闲操作、写操作、直通操作和并行写与直通操作;
27、所述输出数据存储单元和所述输出数据选择单元空闲操作即不对所述输出数据存储单元和所述输出数据选择单元进行任何控制;
28、所述输出数据存储单元写操作即按照所述输出数据存储单元地址将所述待测存内计算宏单元的输出进行锁存;
29、所述输出数据存储单元和所述输出数据选择单元直通操作即按照所述输出多路选择控制信号将所述待测存内计算宏单元的输出选择部分直接送到顶层测试电路的输出引脚,供外界读取;
30、所述输出数据存储单元并行写与直通操作,即按照所述输出数据存储单元地址与所述输出多路选择控制信号同时进行写操作和直通操作。
31、本发明第二方面实施例提供一种基于sram存内计算宏单元的通用顶层测试电路系统的测试方法,用于上述实施例所述的基于sram存内计算宏单元的通用顶层测试电路系统,所述测试方法包括以下步骤:
32、包括以下步骤:
33、s100,获取测试数据/指令,其中,测试数据包括测试权重数据和测试输入数据;
34、s102,通过暂停装载宏单元输入数据/指令存储单元和\或装载宏单元输入数据/指令存储单元指令将测试数据/指令装载进宏单元输入数据/指令存储单元中;
35、s103,通过读出宏单元输入数据/指令存储单元指令对存入宏单元输入数据/指令存储单元的数据/指令进行读出,送入待测宏单元阵列对待测宏单元进行控制,并根据输出直通控制信号对宏单元的输出进行处理;
36、s104,在执行完对应待测存内计算宏单元的计算指令并根据指令周期将其对应的测试输出结果进行锁存后,通过读出输出数据存储单元指令将输出数据存储单元存储的待测宏单元测试输出数据进行读出;
37、s105,对比测试结果及预设结果判断待测宏单元的功能是否正确。
38、可选地,在本发明的一个实施例中,在步骤s102中,若测试权重数据在四种基础的权重更新模式内,还包括:
39、s101,通过权重自动更新指令对待测存内计算宏单元进行自动权重更新。
40、本发明实施例的基于sram存内计算宏单元的通用顶层测试电路系统及方法,具有以下优点和积极效果:
41、通过从硬件设计方面将宏单元输入数据/指令存储单元、待测存内计算宏单元阵列和输出数据存储单元三级电路模块解耦,可将对待测存内计算宏单元的控制和保存/输出待测存内计算宏单元的输出结果两种操作相互独立,提升了顶层测试电路系统及方法的通用性;通过暂停装载宏单元输入数据/指令存储单元指令与装载宏单元输入数据/指令存储单元指令可实现对任意待测宏单元所需的数据/指令长度进行装载,装载累计长度可变,可兼容不同数据/指令长度的待测存内计算宏单元;通过权重自更新指令可实现对待测存内计算宏单元在四种常用的权重模式下的自动权重更新,避免了人为控制待测宏单元写入地址及对应地址权重数据的写入过程;降低了顶层测试电路系统的设计时间、测试成本与人工参与,提升了基于sram存内计算宏单元的测试效率。
42、本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
本文地址:https://www.jishuxx.com/zhuanli/20240905/288588.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。
下一篇
返回列表