CN117272892B - 电路验证方法、装置、存储介质及电子设备 - Google Patents

电路验证方法、装置、存储介质及电子设备 Download PDF

Info

Publication number
CN117272892B
CN117272892B CN202311549904.5A CN202311549904A CN117272892B CN 117272892 B CN117272892 B CN 117272892B CN 202311549904 A CN202311549904 A CN 202311549904A CN 117272892 B CN117272892 B CN 117272892B
Authority
CN
China
Prior art keywords
fpga
sub
module
networking
modules
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
Application number
CN202311549904.5A
Other languages
English (en)
Other versions
CN117272892A (zh
Inventor
陈辰
柏承双
冯立彬
陈泽民
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xi'an Xintong Semiconductor Technology Co ltd
Original Assignee
Xi'an Xintong Semiconductor Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Xi'an Xintong Semiconductor Technology Co ltd filed Critical Xi'an Xintong Semiconductor Technology Co ltd
Priority to CN202311549904.5A priority Critical patent/CN117272892B/zh
Publication of CN117272892A publication Critical patent/CN117272892A/zh
Application granted granted Critical
Publication of CN117272892B publication Critical patent/CN117272892B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/34Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

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)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

本公开涉及一种电路验证方法、装置、存储介质及电子设备。在通过预设FPGA组网上的多个FPGA对ASIC的分割结果进行原型验证的过程中,可以基于预设FPGA组网的拓扑结构和多个子模块在ASIC中的连接关系,将预设FPGA组网中放置的至少一个子模块进行移动,得到目标FPGA组网,该目标FPGA组网上的每个目标FPGA上均分配有分割的子模块,并且目标FPGA组网中包括的多个目标FPGA在物理拓扑上全联通,这样,可以避免由于两个子模块所在的FPGA之间因没有直连导致分割结果在后端验证过程中无法综合的问题出现。

Description

电路验证方法、装置、存储介质及电子设备
技术领域
本公开涉及电路设计技术领域,具体地,涉及一种电路验证方法、装置、存储介质及电子设备。
背景技术
ASIC(Application-Specific Integrated Circuit,专用集成电路)设计是针对特定应用而设计的半导体解决方案。ASIC设计过程涉及多个步骤,其中,通过FPGA(FieldProgrammable Gate Array,现场可编程逻辑门阵列)对设计的ASIC进行原型验证,属于其关键步骤之一。FPGA原型验证可以帮助芯片设计人员提前发现和修复芯片设计中的问题,提高产品的可靠性和性能。
发明内容
本公开的目的是提供一种电路验证方法、装置、存储介质及电子设备。
根据本公开实施例的第一方面,提供一种电路验证方法,可以获取预设现场可编程逻辑门阵列FPGA组网,预设FPGA组网上放置有对专用集成电路ASIC进行分割得到的多个子模块;根据所述预设FPGA组网的拓扑结构和所述多个子模块在所述ASIC中的连接关系,对所述预设FPGA组网中放置的至少一个子模块进行移动,得到目标FPGA组网;所述目标FPGA组网中包括的多个目标FPGA在物理拓扑上全联通,每个所述目标FPGA上均分配有所述子模块;通过所述目标FPGA组网对所述ASIC进行验证。
可选地,所述根据所述预设FPGA组网的拓扑结构和所述多个子模块在所述ASIC中的连接关系,对所述预设FPGA组网中放置的至少一个子模块进行移动,得到目标FPGA组网包括:
根据所述拓扑结构和所述连接关系,从所述预设FPGA组网中确定至少一个第一FPGA和每个所述第一FPGA分别对应的第二FPGA,所述第一FPGA上放置的子模块需要移动至对应的所述第二FPGA;
针对每个所述第一FPGA,将所述第一FPGA上放置的子模块移动至对应的所述第二FPGA后,得到所述目标FPGA组网。
可选地,所述根据所述拓扑结构和所述连接关系,从所述预设FPGA组网中确定至少一个第一FPGA和每个所述第一FPGA分别对应的第二FPGA包括:
根据所述连接关系确定多个子模块组合,每个所述子模块组合中包括两个相互连接的子模块;
针对每个所述子模块组合,根据所述拓扑结构确定所述子模块组合中两个子模块所在的FPGA之间的物理拓扑连接;
根据每个所述子模块组合分别对应的所述物理拓扑连接,确定至少一个第一FPGA和每个所述第一FPGA分别对应的第二FPGA。
可选地,所述根据每个所述子模块组合分别对应的所述物理拓扑连接,确定至少一个第一FPGA和每个所述第一FPGA分别对应的第二FPGA包括:
针对每个所述子模块组合,在所述物理拓扑连接表征所述子模块组合中的两个子模块所在的FPGA之间连接有至少一个FPGA,并且所述至少一个FPGA上均未分配有所述子模块的情况下,从所述两个子模块中确定目标子模块,所述目标子模块包括被分配至第三FPGA上的子模块,所述第三FPGA连接的至少一个FPGA上分配有所述子模块;
将所述两个子模块中除所述目标子模块之外的另一子模块所在的FPGA作为所述第一FPGA,将至少一个所述FPGA中与所述第三FPGA连接的FPGA作为所述第二FPGA。
可选地,所述根据每个所述子模块组合分别对应的所述物理拓扑连接,确定至少一个第一FPGA和每个所述第一FPGA分别对应的第二FPGA包括:
针对每个所述子模块组合,在所述物理拓扑连接表征所述子模块组合中的两个子模块所在的FPGA之间连接有至少两个FPGA,并且所述至少两个FPGA中有至少一个FPGA未分配有所述子模块的情况下,从未分配有所述子模块的所述至少一个FPGA中确定所述第二FPGA,所述第二FPGA为与第四FPGA连接的FPGA,所述第四FPGA为所述至少两个FPGA中分配有所述子模块的FPGA;
从所述两个子模块中确定目标子模块,所述目标子模块包括被分配至第三FPGA上的子模块,所述第三FPGA为与所述第四FPGA直接连接的FPGA;并将所述两个子模块中除所述目标子模块之外的另一子模块所在的FPGA作为所述第一FPGA。
可选地,所述方法还包括:
针对每个所述子模块组合,在根据所述物理拓扑连接确定所述子模块组合中的两个子模块不满足预设拓扑条件的情况下,确定所述两个子模块中需要移动的子模块所在的所述第一FPGA,以及所述第一FPGA对应的所述第二FPGA;
其中,所述预设拓扑条件包括:
所述子模块组合中的两个子模块所在的FPGA连接;或者,
所述子模块组合中的两个子模块所在的FPGA之间连接有至少一个FPGA,并且所述至少一个FPGA上均分配有所述子模块。
可选地,所述获取预设现场可编程逻辑门阵列FPGA组网包括:
对所述ASIC进行分割,得到多个所述子模块;
将每个所述子模块分别放置到所述预设FPGA组网中。
根据本公开实施例的第二方面,提供一种电路验证装置,所述装置包括:
获取模块,用于获取预设现场可编程逻辑门阵列FPGA组网,预设FPGA组网上放置有对专用集成电路ASIC进行分割得到的多个子模块;
移动模块,用于根据所述预设FPGA组网的拓扑结构和所述多个子模块在所述ASIC中的连接关系,对所述预设FPGA组网中放置的至少一个子模块进行移动,得到目标FPGA组网;所述目标FPGA组网中包括的多个FPGA在物理拓扑上全联通,并且每个所述FPGA上均分配有所述子模块;
验证模块,用于通过所述目标FPGA组网对所述ASIC进行验证。
根据本公开实施例的第三方面,提供一种非临时性计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本公开第一方面所述方法的步骤。
根据本公开实施例的第四方面,提供一种电子设备,包括:
存储器,其上存储有计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现本公开第一方面所述方法的步骤。
通过上述技术方案,在通过预设FPGA组网上的多个FPGA对ASIC的分割结果进行原型验证的过程中,可以基于预设FPGA组网的拓扑结构和多个子模块在ASIC中的连接关系,将预设FPGA组网中放置的至少一个子模块进行移动,得到目标FPGA组网,该目标FPGA组网上的每个目标FPGA上均分配有分割的子模块,并且目标FPGA组网中包括的多个目标FPGA在物理拓扑上全联通,这样,可以避免由于两个子模块所在的FPGA之间因没有直连导致分割结果在后端验证过程中无法综合的问题出现,提升对ASIC进行原型验证的成功率。
本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:
图1是根据一示例性实施例示出的一种电路验证方法的流程图。
图2是根据一示例性实施例示出的一种预设FPGA组网的拓扑结构示意图。
图3是根据图1所示实施例示出的一种电路验证方法的流程图。
图4是根据一示例性实施例示出的一种预设FPGA组网中部分FPGA组网的拓扑结构示意图。
图5是根据图4所示实施例示出的一种目标FPGA组网的拓扑结构示意图。
图6是根据一示例性实施例示出的一种预设FPGA组网中部分FPGA组网的拓扑结构示意图。
图7是根据图6所示实施例示出的一种目标FPGA组网的拓扑结构示意图。
图8是根据一示例性实施例示出的一种电路验证装置的框图。
图9是根据一示例性实施例示出的一种电子设备的框图。
具体实施方式
以下结合附图对本公开的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本公开,并不用于限制本公开。
需要说明的是,本公开中所有获取信号、信息或数据的动作都是在遵照所在地相应的数据保护法规政策的前提下,并获得由相应装置所有者给予授权的情况下进行的。
本公开主要应用于对ASIC设计进行原型验证的场景中。在对大型的ASIC设计进行原型验证的过程中,需要使用分割算法将ASIC设计分割成多个子模块,然后通过工具(如EDA(Electronic Design Automation,电子设计自动化))将分割后的子模块放置到多个FPGA上进行验证。
通常情况下,准备的FPGA资源数量是远远多于验证ASIC设计所需要的FPGA的资源,因此,将分割后的子模块放置到多个FPGA后,其实际被分配有子模块的FPGA的数量远远小于准备的FPGA资源数量,这会出现实际分配有子模块的两个FPGA之间因相隔太远而没有互连线,从而造成后端的ASIC验证出错。
为解决上述存在的问题,本公开提供一种电路验证方法、装置、存储介质及电子设备。下面结合附图对本公开的具体实施方式进行详细说明。
图1是根据一示例性实施例示出的一种电路验证方法的流程图,如图1所示,该方法包括以下步骤:
在步骤S101中,获取预设现场可编程逻辑门阵列FPGA组网,预设FPGA组网上放置有对专用集成电路ASIC进行分割得到的多个子模块。
其中,该预设FPGA组网包括多个FPGA。考虑到目前的ASIC设计越来越复杂,单个FPGA已不能满足原型验证要求,因此,本公开采用多个FPGA互联的方式验证ASIC设计。
一种可能的实现方式中,可以对待验证的ASIC进行分割(即Partition),得到多个子模块,这里的子模块可以理解为ASIC对应的完整电路中的部分电路。其中,对ASIC进行分割的具体分割算法可以参考相关文献中的记载,在此不作具体限定。也就是说,在本步骤中,可以对ASIC进行分割,得到多个子模块;将每个子模块分别放置到预设FPGA组网中。
在对ASIC设计进行分割得到多个子模块后,可以将每个子模块的RTL代码移植到预设FPGA组网中的一个FPGA,并使用EDA工具对RTL进行逻辑综合、布局布线等操作,生成适合FPGA的二进制文件,将该二进制文件下载到FPGA芯片后,即可进行FPGA原型验证。
在步骤S102中,根据预设FPGA组网的拓扑结构和多个子模块在ASIC中的连接关系,对预设FPGA组网中放置的至少一个子模块进行移动,得到目标FPGA组网;目标FPGA组网中包括的多个目标FPGA在物理拓扑上全联通,每个目标FPGA上均分配有子模块。
示例地,图2是根据一示例性实施例示出的一种预设FPGA组网的拓扑结构示意图,如图2所示,该预设FPGA组网由多个FPGA(即图2中的F1、 F2、 F3、F4、F5、F6、F7、F8、F9、F10、F11、F12、F13、F14、F15、F16、F17、F18、F19、F20、F21、F22、F23、F24、F25)组成。基于图2所示的预设FPGA组网的拓扑结构可以知道,多个FPGA中,部分FPGA之间存在直接连接关系(如图2所示的预设FPGA组网的拓扑结构中,F1、 F2、 F3、F4、F5依次直接连接,F5、F10、F15、F20、F25依次直接连接,F11、F12、F13、F14、F15依次直接连接,F21、F22、F23、F24、F25依次直接连接,F7、F8、F9依次直接连接,F8、F13、F18依次直接连接,F4、F9、F14、F19依次直接连接,F1、F6、F11、F16依次直接连接,F17、F18、F19依次直接连接),另一部分FPGA之间不存在直连关系(例如,图2中的F7和F9之间通过F8连接,F7和F9之间即不存在直接连接关系,F11和F15之间连接有F12、F13、F14,因此,F11和F15之间也不存在直接连接关系)。还有一部分FPGA之间不存在连接关系(如图2中的F6、F7之间,F9、F10之间,F16、F17之间,F16、F21之间,F18、F23之间,F19、F20之间,以及F19、F24之间均不存在连接关系)。在该预设FPGA组网上分配有对ASIC进行分割得到的多个子模块,如图2所示,预设FPGA组网中的F1上分配有子模块A,F2上分配有子模块C,F5上分配有子模块B等等。以图2中的部分组网F1→F2→F3→F4→F5为例,F1、F2、F5上均分配有子模块,并且ASIC的连接关系中,子模块A与子模块C连接,子模块C与子模块B连接,但基于图2所示的拓扑结构可以确定子模块C所在的F2与子模块B所在的F5之间不存在直连关系,这种模块分配方式会使得ASIC验证时后端综合出错,因此,本公开可以将子模块B从F5移动至F3,这样,移动后的子模块B所在的F3与F2存在直连关系,并且F2上也分配有子模块,通过组网F1→F2→F3可以对子模块A、子模块C以及子模块B进行原型验证,避免验证过程中的后端综合出错。上述示例仅是举例说明,本公开对此不作限定。
在步骤S103中,通过目标FPGA组网对ASIC进行验证。
由于目标FPGA组网上的多个目标FPGA在物理拓扑上全联通,并且每个目标FPGA上均分配有子模块,因此,可以通过该目标FPGA组网对ASIC成功进行原型验证。本公开采用目标FPGA组网对ASIC进行验证的具体验证方式,可以参考相关文献中的描述,在此不作具体限定。
采用上述方法,在通过预设FPGA组网上的多个FPGA对ASIC的分割结果进行原型验证的过程中,可以基于预设FPGA组网的拓扑结构和多个子模块在ASIC中的连接关系,将预设FPGA组网中放置的至少一个子模块进行移动,得到目标FPGA组网,该目标FPGA组网上的每个目标FPGA上均分配有分割的子模块,并且目标FPGA组网中包括的多个目标FPGA在物理拓扑上全联通,这样,可以避免由于两个子模块所在的FPGA之间因没有直连导致分割结果在后端验证过程中无法综合的问题出现,提升对ASIC进行原型验证的成功率。
图3是根据图1所示实施例示出的一种电路验证方法的流程图,如图3所示,步骤S102包括以下子步骤:
在步骤S1021中,根据拓扑结构和连接关系,从预设FPGA组网中确定至少一个第一FPGA和每个第一FPGA分别对应的第二FPGA,第一FPGA上放置的子模块需要移动至对应的第二FPGA。
在本步骤一种可能的实现方式中,可以根据连接关系确定多个子模块组合,每个子模块组合中包括两个相互连接的子模块;针对每个子模块组合,根据拓扑结构确定子模块组合中两个子模块所在的FPGA之间的物理拓扑连接;根据每个子模块组合分别对应的物理拓扑连接,确定至少一个第一FPGA和每个第一FPGA分别对应的第二FPGA。
举例来说,假设待验证的ASIC设计分割后包括A、B、C三个子模块,基于ASIC设计中的电路连接关系可以确定子模块A与子模块B连接,子模块B与子模块C连接,那么可以确定两个子模块组合,其中一个子模块组合中包括子模块A和子模块B两个子模块,另一个子模块组合中包括子模块B和子模块C两个子模块,此处仅是举例说明,本公开对此不作限定。
在确定出多个该子模块组合后,基于预设FPGA组网的拓扑结构可以确定出每个子模块组合中的两个子模块所在的FPGA之间的物理拓扑连接。其中,两个子模块所在的FPGA之间的物理拓扑连接可能包括以下几种情况:
(1)两个子模块所在的FPGA之间连接有至少一个FPGA,并且至少一个FPGA上均未分配有子模块。
(2)两个子模块所在的FPGA之间连接有至少两个FPGA,并且至少两个FPGA中有至少一个FPGA未分配有子模块。
(3)两个子模块所在的FPGA直接连接。
(4)两个子模块所在的FPGA之间连接有至少一个FPGA,并且至少一个FPGA上均分配有子模块。
在本公开中,两个子模块所在的FPGA之间的物理拓扑连接不同,其对应的确定第一FPGA和每个第一FPGA分别对应的第二FPGA的方式也不相同,下面针对上述几种物理拓扑连接下,如何确定第一FPGA和每个第一FPGA分别对应的第二FPGA分别进行说明。
对应于情况(1),针对每个子模块组合,在物理拓扑连接表征子模块组合中的两个子模块所在的FPGA之间连接有至少一个FPGA,并且至少一个FPGA上均未分配有子模块的情况下,从两个子模块中确定目标子模块,目标子模块包括被分配至第三FPGA上的子模块,第三FPGA连接的至少一个FPGA上分配有子模块;将两个子模块中除目标子模块之外的另一子模块所在的FPGA作为第一FPGA,将至少一个FPGA中与第三FPGA连接的FPGA作为第二FPGA。
示例地,图4是根据一示例性实施例示出的一种预设FPGA组网中部分FPGA组网的拓扑结构示意图,如图4所示,五个FPGA(即F1、F2、F3、F4和F5)依次连接,其中,F1、F2、F5上均分配有子模块,F3和F4上未分配有子模块,假设基于ASIC设计中的电路连接关系可以确定两个子模块组合,其中一个子模块组合(可描述为组合1)中包括子模块A和子模块C两个子模块,另一个子模块组合(可描述为组合2)中包括子模块B和子模块C两个子模块,针对组合1中的子模块A和子模块C,这两个子模块所在的FPGA是F1和F2,如图4所示,F1和F2之间的物理拓扑连接为直接连接关系(即情况(3)所述的物理拓扑连接),此种情况下子模块A和子模块C均无需移动;针对组合2中的子模块C和子模块B,这两个子模块所在的FPGA是F2和F5,如图4所示,F2和F5之间连接有两个FPGA(即F3和F4),但F3和F4上均没有分配分割的子模块,因此,F2和F5之间的物理拓扑连接属于连接有至少一个FPGA,并且至少一个FPGA上均未分配有子模块的情况(即情况(1)所述的物理拓扑连接),此种情况下需要从子模块C和子模块B中确定目标子模块,目标子模块包括被分配至第三FPGA上的子模块,第三FPGA连接的至少一个FPGA上分配有子模块,如图4所示,子模块C所在的F2连接有F1和F3,其中,F1上分配有子模块A,那么子模块C即为该目标子模块,子模块C所在的F2即为该第三FPGA;之后可以将子模块C和子模块B中除目标子模块(即子模块C)之外的另一子模块(即子模块B)所在的FPGA作为第一FPGA,子模块B所在的FPGA是F5,那么F5即为该第一FPGA,将至少一个FPGA中(即F3和F4中)与第三FPGA(即F2)连接的FPGA作为第二FPGA,如图4所示,F3和F4中,F3与F2直接连接,那么F3即为该第二FPGA,上述示例仅是举例说明,本公开对此不作限定。
示例地,图5是根据图4所示实施例示出的一种目标FPGA组网的拓扑结构示意图。在确定出F5为该第一FPGA,F3为该第二FPGA后,可以将F5上分配的子模块B移动至F3,得到图5所示的目标FPGA组网。如图5所示,目标FPGA组网上的F1、F2、F3三个FPGA上均分配有子模块,并且三个FPGA在物理拓扑上全联通,这样,基于图5所示的目标FPGA组网对子模块A、B、C进行验证的过程中,不会出现两个子模块所在的FPGA之间因没有直接互联,使得在图转回到RTL设计时,综合出错的问题。
对应情况(2),针对每个子模块组合,在物理拓扑连接表征子模块组合中的两个子模块所在的FPGA之间连接有至少两个FPGA,并且至少两个FPGA中有至少一个FPGA未分配有子模块的情况下,从未分配有子模的至少一个FPGA中确定第二FPGA,第二FPGA为与第四FPGA连接的FPGA,第四FPGA为至少两个FPGA中分配有子模块的FPGA;从两个子模块中确定目标子模块,目标子模块包括被分配至第三FPGA上的子模块,第三FPGA为与第四FPGA直接连接的FPGA;并将两个子模块中除目标子模块之外的另一子模块所在的FPGA作为第一FPGA。
示例地,图6是根据一示例性实施例示出的一种预设FPGA组网中部分FPGA组网的拓扑结构示意图。如图6所示,五个FPGA(即F1、F2、F3、F4和F5)依次连接,其中,F1、F2、F3、F5上均分配有子模块,F4上未分配有子模块,基于ASIC设计中的电路连接关系可以确定两个子模块组合,其中一个子模块组合(可描述为组合1)中包括子模块A和子模块C两个子模块,另一个子模块组合(可描述为组合2)中包括子模块B和子模块C两个子模块,其中,子模块D由于与其它子模块不存在连接关系,因此,子模块D不属于任一子模块组合。针对组合1中的子模块A和子模块C,这两个子模块所在的FPGA是F1和F2之间的物理拓扑连接为直接连接关系,此种情况下子模块A和子模块C均无需移动。
针对组合2中的子模块C和子模块B,这两个子模块所在的FPGA是F2和F5,如图6所示,F2和F5之间连接有两个FPGA(即F3和F4),其中,F3分配有子模块D,F4上没有分配子模块,因此,F2和F5之间的物理拓扑连接属于连接有至少两个FPGA,并且至少两个FPGA中有至少一个FPGA未分配有子模块的情况(即情况(2)所述的物理拓扑连接),此种情况下需要从未分配有子模块的至少一个FPGA中确定第二FPGA,如图6所示,F4上没有分配子模块,F4即为该第二FPGA,图6所示的F3即为该第四FPGA;之后可以从子模块C和子模块B中确定目标子模块,目标子模块包括被分配至第三FPGA上的子模块,第三FPGA为与第四FPGA直接连接的FPGA,如图6所示,F3即为该第四FPGA,子模块C和子模块B中,子模块C所在的F2与F3直接连接,因此,子模块C即为该目标子模块;这样,可以将子模块C和子模块B中除目标子模块(即子模块C)之外的另一子模块,即子模块B所在的FPGA作为该第一FPGA,如图6所示,子模块B所在的F5即为该第一FPGA,上述示例仅是举例说明,本公开对此不作限定。
示例地,图7是根据图6所示实施例示出的一种目标FPGA组网的拓扑结构示意图。在确定出F5为该第一FPGA,F4为该第二FPGA后,可以将F5上分配的子模块B移动至F4,得到图7所示的目标FPGA组网。如图7所示,目标FPGA组网上的F1、F2、F3、F4四个FPGA上均分配有子模块,并且四个FPGA在物理拓扑上全联通,这样,基于图7所示的目标FPGA组网对子模块A、B、C、D进行验证的过程中,不会出现两个子模块所在的FPGA之间因没有直接互联,使得在图转回到RTL设计时,综合出错的问题。
在步骤S1022中,针对每个第一FPGA,将第一FPGA上放置的子模块移动至对应的第二FPGA后,得到目标FPGA组网。
在本步骤中,针对每个子模块组合,在根据该子模块组合中两个子模块所在的FPGA之间的物理拓扑连接确定出第一FPGA和该第一FPGA对应的第二FPGA后,可以将该第一FPGA上放置的子模块移动至对应的该第二FPGA。其中图5和图7即示例性的给出了移动后的该目标FPGA组网的示意图。
需要说明的是,针对每个该子模块组合,可以在根据物理拓扑连接确定子模块组合中的两个子模块不满足预设拓扑条件的情况下,确定两个子模块中需要移动的子模块所在的第一FPGA,以及第一FPGA对应的第二FPGA;换句话说,在根据物理拓扑连接确定子模块组合中的两个子模块满足预设拓扑条件的情况下子模块组合中的两个子模块无需移动。
其中,该预设拓扑条件包括:
子模块组合中的两个子模块所在的FPGA连接;或者,子模块组合中的两个子模块所在的FPGA之间连接有至少一个FPGA,并且至少一个FPGA上均分配有子模块。
该预设拓扑条件对应上文中的情况(3)和(4),情况(3)已在图4和图6对应的示例中进行了描述,在此不再赘述。对于情况(4),以图6所示的子模块C和子模块B对应的组合2为例,假设在图6所示的部分FPGA组网的拓扑示意图基础上,F4上也分配有子模块(可记为子模块E),也就是说,子模块C所在的F2与子模块B所在的F5之间连接有两个FPGA,并且F2和F5之间连接的两个FPGA(即F3、F4)上均分配有子模块的情况下,F5上的子模块B无需移动,在进行原型验证的过程中,子模块C和子模块B可以通过F3、F4上分配的子模块进行综合,此处仅是举例说明,本公开对此不作限定。
图8是根据一示例性实施例示出的一种电路验证装置的框图,如图8所示,该装置800包括:
获取模块801,用于获取预设现场可编程逻辑门阵列FPGA组网,所述预设FPGA组网上放置有对专用集成电路ASIC进行分割得到的多个子模块;
移动模块802,用于根据所述预设FPGA组网的拓扑结构和所述多个子模块在所述ASIC中的连接关系,对所述预设FPGA组网中放置的至少一个子模块进行移动,得到目标FPGA组网;所述目标FPGA组网中包括的多个目标FPGA在物理拓扑上全联通,每个所述目标FPGA上均分配有所述子模块;
验证模块803,用于通过所述目标FPGA组网对所述ASIC进行验证。
可选地,所述移动模块802用于根据所述拓扑结构和所述连接关系,从所述预设FPGA组网中确定至少一个第一FPGA和每个所述第一FPGA分别对应的第二FPGA,所述第一FPGA上放置的所述子模块需要移动至对应的所述第二FPGA;针对每个所述第一FPGA,将所述第一FPGA上放置的子模块移动至对应的所述第二FPGA后,得到所述目标FPGA组网。
可选地,所述移动模块802用于根据所述连接关系确定多个子模块组合,每个所述子模块组合中包括两个相互连接的子模块;针对每个所述子模块组合,根据所述拓扑结构确定所述子模块组合中两个子模块所在的FPGA之间的物理拓扑连接;根据每个所述子模块组合分别对应的所述物理拓扑连接,确定至少一个第一FPGA和每个所述第一FPGA分别对应的第二FPGA。
可选地,所述移动模块802用于针对每个所述子模块组合,在所述物理拓扑连接表征所述子模块组合中的两个子模块所在的FPGA之间连接有至少一个FPGA,并且所述至少一个FPGA上均未分配有所述子模块的情况下,从所述两个子模块中确定目标子模块,所述目标子模块包括被分配至第三FPGA上的子模块,所述第三FPGA连接的至少一个FPGA上分配有所述子模块;将所述两个子模块中除所述目标子模块之外的另一子模块所在的FPGA作为所述第一FPGA,将至少一个所述FPGA中与所述第三FPGA连接的FPGA作为所述第二FPGA。
可选地,所述移动模块802用于针对每个所述子模块组合,在所述物理拓扑连接表征所述子模块组合中的两个子模块所在的FPGA之间连接有至少两个FPGA,并且所述至少两个FPGA中有至少一个FPGA未分配有所述子模块的情况下,从未分配有所述子模块的所述至少一个FPGA中确定所述第二FPGA,所述第二FPGA为与第四FPGA连接的FPGA,所述第四FPGA为所述至少两个FPGA中分配有所述子模块的FPGA;从所述两个子模块中确定目标子模块,所述目标子模块包括被分配至第三FPGA上的子模块,所述第三FPGA为与所述第四FPGA直接连接的FPGA;并将所述两个子模块中除所述目标子模块之外的另一子模块所在的FPGA作为所述第一FPGA。
可选地,所述移动模块802,用于针对每个所述子模块组合,在根据所述物理拓扑连接确定所述子模块组合中的两个子模块不满足预设拓扑条件的情况下,确定所述两个子模块中需要移动的子模块所在的所述第一FPGA,以及所述第一FPGA对应的所述第二FPGA;
其中,所述预设拓扑条件包括:
所述子模块组合中的两个子模块所在的FPGA连接;或者,
所述子模块组合中的两个子模块所在的FPGA之间连接有至少一个FPGA,并且所述至少一个FPGA上均分配有所述子模块。
可选地,所述获取模块801,用于对所述ASIC进行分割,得到多个所述子模块;将每个所述子模块分别放置到所述预设FPGA组网中。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图9是根据一示例性实施例示出的一种电子设备的框图。如图9所示,该电子设备900可以包括:处理器901,存储器902。该电子设备900还可以包括多媒体组件903,输入/输出(I/O)接口904,以及通信组件905中的一者或多者。
其中,处理器901用于控制该电子设备900的整体操作,以完成上述的电路验证方法中的全部或部分步骤。存储器902用于存储各种类型的数据以支持在该电子设备900的操作,这些数据例如可以包括用于在该电子设备900上操作的任何应用程序或方法的指令,以及应用程序相关的数据,例如联系人数据、收发的消息、图片、音频、视频等等。该存储器902可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(Static Random Access Memory,简称SRAM),电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,简称EEPROM),可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,简称EPROM),可编程只读存储器(Programmable Read-Only Memory,简称PROM),只读存储器(Read-Only Memory,简称ROM),磁存储器,快闪存储器,磁盘或光盘。多媒体组件903可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器902或通过通信组件905发送。音频组件还包括至少一个扬声器,用于输出音频信号。I/O接口904为处理器901和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件905用于该电子设备900与其他设备之间进行有线或无线通信。无线通信,例如Wi-Fi,蓝牙,近场通信(Near FieldCommunication,简称NFC),2G、3G、4G、NB-IOT、eMTC、或其他5G等等,或它们中的一种或几种的组合,在此不做限定。因此相应的该通信组件905可以包括:Wi-Fi模块,蓝牙模块,NFC模块等等。
在一示例性实施例中,电子设备900可以被一个或多个应用专用集成电路(Application Specific Integrated Circuit,简称ASIC)、数字信号处理器(DigitalSignal Processor,简称DSP)、数字信号处理设备(Digital Signal Processing Device,简称DSPD)、可编程逻辑器件(Programmable Logic Device,简称PLD)、现场可编程门阵列(Field Programmable Gate Array,简称FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述的电路验证方法。
在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的电路验证方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器902,上述程序指令可由电子设备900的处理器901执行以完成上述的电路验证方法。
在另一示例性实施例中,还提供一种计算机程序产品,该计算机程序产品包含能够由可编程的装置执行的计算机程序,该计算机程序具有当由该可编程的装置执行时用于执行上述的电路验证方法的代码部分。
以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,可以对本公开的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。
另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本公开对各种可能的组合方式不再另行说明。
此外,本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。

Claims (6)

1.一种电路验证方法,其特征在于,所述方法包括:
获取预设现场可编程逻辑门阵列FPGA组网,预设FPGA组网上放置有对专用集成电路ASIC进行分割得到的多个子模块;
根据所述预设FPGA组网的拓扑结构和所述多个子模块在所述ASIC中的连接关系,对所述预设FPGA组网中放置的至少一个子模块进行移动,得到目标FPGA组网;所述目标FPGA组网中包括的多个目标FPGA在物理拓扑上全联通,每个所述目标FPGA上均分配有所述子模块;
通过所述目标FPGA组网对所述ASIC进行验证;
所述根据所述预设FPGA组网的拓扑结构和所述多个子模块在所述ASIC中的连接关系,对所述预设FPGA组网中放置的至少一个子模块进行移动,得到目标FPGA组网包括:
根据所述拓扑结构和所述连接关系,从所述预设FPGA组网中确定至少一个第一FPGA和每个所述第一FPGA分别对应的第二FPGA,所述第一FPGA上放置的子模块需要移动至对应的所述第二FPGA;
针对每个所述第一FPGA,将所述第一FPGA上放置的子模块移动至对应的所述第二FPGA后,得到所述目标FPGA组网;
所述根据所述拓扑结构和所述连接关系,从所述预设FPGA组网中确定至少一个第一FPGA和每个所述第一FPGA分别对应的第二FPGA包括:
根据所述连接关系确定多个子模块组合,每个所述子模块组合中包括两个相互连接的子模块;
针对每个所述子模块组合,根据所述拓扑结构确定所述子模块组合中两个子模块所在的FPGA之间的物理拓扑连接;
根据每个所述子模块组合分别对应的所述物理拓扑连接,确定至少一个第一FPGA和每个所述第一FPGA分别对应的第二FPGA;其中,所述物理拓扑连接不同,确定所述第一FPGA和每个所述第一FPGA分别对应的第二FPGA的方式也不相同;
所述根据每个所述子模块组合分别对应的所述物理拓扑连接,确定至少一个第一FPGA和每个所述第一FPGA分别对应的第二FPGA包括:
针对每个所述子模块组合,在所述物理拓扑连接表征所述子模块组合中的两个子模块所在的FPGA之间连接有至少一个FPGA,并且所述至少一个FPGA上均未分配有所述子模块的情况下,从所述两个子模块中确定目标子模块,所述目标子模块包括被分配至第三FPGA上的子模块,所述第三FPGA连接的至少一个FPGA上分配有所述子模块;将所述两个子模块中除所述目标子模块之外的另一子模块所在的FPGA作为所述第一FPGA,将至少一个所述FPGA中与所述第三FPGA连接的FPGA作为所述第二FPGA;
针对每个所述子模块组合,在所述物理拓扑连接表征所述子模块组合中的两个子模块所在的FPGA之间连接有至少两个FPGA,并且所述至少两个FPGA中有至少一个FPGA未分配有所述子模块的情况下,从未分配有所述子模块的所述至少一个FPGA中确定所述第二FPGA,所述第二FPGA为与第四FPGA连接的FPGA,所述第四FPGA为所述至少两个FPGA中分配有所述子模块的FPGA;从所述两个子模块中确定目标子模块,所述目标子模块包括被分配至第三FPGA上的子模块,所述第三FPGA为与所述第四FPGA直接连接的FPGA;并将所述两个子模块中除所述目标子模块之外的另一子模块所在的FPGA作为所述第一FPGA。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
针对每个所述子模块组合,在根据所述物理拓扑连接确定所述子模块组合中的两个子模块不满足预设拓扑条件的情况下,确定所述两个子模块中需要移动的子模块所在的所述第一FPGA,以及所述第一FPGA对应的所述第二FPGA;
其中,所述预设拓扑条件包括:
所述子模块组合中的两个子模块所在的FPGA连接;或者,
所述子模块组合中的两个子模块所在的FPGA之间连接有至少一个FPGA,并且所述至少一个FPGA上均分配有所述子模块。
3.根据权利要求1或2所述的方法,其特征在于,所述获取预设现场可编程逻辑门阵列FPGA组网包括:
对所述ASIC进行分割,得到多个所述子模块;
将每个所述子模块分别放置到所述预设FPGA组网中。
4.一种电路验证装置,其特征在于,所述装置包括:
获取模块,用于获取预设现场可编程逻辑门阵列FPGA组网,预设FPGA组网上放置有对专用集成电路ASIC进行分割得到的多个子模块;
移动模块,用于根据所述预设FPGA组网的拓扑结构和所述多个子模块在所述ASIC中的连接关系,对所述预设FPGA组网中放置的至少一个子模块进行移动,得到目标FPGA组网;所述目标FPGA组网中包括的多个目标FPGA在物理拓扑上全联通,每个所述目标FPGA上均分配有所述子模块;
验证模块,用于通过所述目标FPGA组网对所述ASIC进行验证;
所述移动模块,用于根据所述拓扑结构和所述连接关系,从所述预设FPGA组网中确定至少一个第一FPGA和每个所述第一FPGA分别对应的第二FPGA,所述第一FPGA上放置的子模块需要移动至对应的所述第二FPGA;针对每个所述第一FPGA,将所述第一FPGA上放置的子模块移动至对应的所述第二FPGA后,得到所述目标FPGA组网;
所述移动模块,用于根据所述连接关系确定多个子模块组合,每个所述子模块组合中包括两个相互连接的子模块;针对每个所述子模块组合,根据所述拓扑结构确定所述子模块组合中两个子模块所在的FPGA之间的物理拓扑连接;根据每个所述子模块组合分别对应的所述物理拓扑连接,确定至少一个第一FPGA和每个所述第一FPGA分别对应的第二FPGA;其中,所述物理拓扑连接不同,确定所述第一FPGA和每个所述第一FPGA分别对应的第二FPGA的方式也不相同;
所述移动模块,用于:
针对每个所述子模块组合,在所述物理拓扑连接表征所述子模块组合中的两个子模块所在的FPGA之间连接有至少一个FPGA,并且所述至少一个FPGA上均未分配有所述子模块的情况下,从所述两个子模块中确定目标子模块,所述目标子模块包括被分配至第三FPGA上的子模块,所述第三FPGA连接的至少一个FPGA上分配有所述子模块;将所述两个子模块中除所述目标子模块之外的另一子模块所在的FPGA作为所述第一FPGA,将至少一个所述FPGA中与所述第三FPGA连接的FPGA作为所述第二FPGA;
针对每个所述子模块组合,在所述物理拓扑连接表征所述子模块组合中的两个子模块所在的FPGA之间连接有至少两个FPGA,并且所述至少两个FPGA中有至少一个FPGA未分配有所述子模块的情况下,从未分配有所述子模块的所述至少一个FPGA中确定所述第二FPGA,所述第二FPGA为与第四FPGA连接的FPGA,所述第四FPGA为所述至少两个FPGA中分配有所述子模块的FPGA;从所述两个子模块中确定目标子模块,所述目标子模块包括被分配至第三FPGA上的子模块,所述第三FPGA为与所述第四FPGA直接连接的FPGA;并将所述两个子模块中除所述目标子模块之外的另一子模块所在的FPGA作为所述第一FPGA。
5.一种非临时性计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1-3中任一项所述方法的步骤。
6.一种电子设备,其特征在于,包括:
存储器,其上存储有计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现权利要求1-3中任一项所述方法的步骤。
CN202311549904.5A 2023-11-21 2023-11-21 电路验证方法、装置、存储介质及电子设备 Active CN117272892B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311549904.5A CN117272892B (zh) 2023-11-21 2023-11-21 电路验证方法、装置、存储介质及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311549904.5A CN117272892B (zh) 2023-11-21 2023-11-21 电路验证方法、装置、存储介质及电子设备

Publications (2)

Publication Number Publication Date
CN117272892A CN117272892A (zh) 2023-12-22
CN117272892B true CN117272892B (zh) 2024-03-26

Family

ID=89212759

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311549904.5A Active CN117272892B (zh) 2023-11-21 2023-11-21 电路验证方法、装置、存储介质及电子设备

Country Status (1)

Country Link
CN (1) CN117272892B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019000340A1 (zh) * 2017-06-29 2019-01-03 华为技术有限公司 网络拓扑结构映射方法及装置、终端、存储介质
CN112732636A (zh) * 2021-01-11 2021-04-30 上海金卓科技有限公司 基于多fpga的芯片原型验证系统的配置方法、装置和设备
CN114781316A (zh) * 2022-06-21 2022-07-22 上海国微思尔芯技术股份有限公司 组网布局方法、装置、设备和存储介质
CN116451624A (zh) * 2023-06-20 2023-07-18 北京汤谷软件技术有限公司 一种电路设计的分割方法及装置
CN116578528A (zh) * 2023-04-17 2023-08-11 湖南泛联新安信息科技有限公司 一种多模混合互连架构的多fpga原型验证平台硬件体系结构

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3029971B1 (en) * 2014-12-03 2019-04-03 Hitachi Solutions, Ltd. Method and apparatus for managing verification processing of communication messages in a communication system including a plurality of nodes

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019000340A1 (zh) * 2017-06-29 2019-01-03 华为技术有限公司 网络拓扑结构映射方法及装置、终端、存储介质
CN112732636A (zh) * 2021-01-11 2021-04-30 上海金卓科技有限公司 基于多fpga的芯片原型验证系统的配置方法、装置和设备
CN114781316A (zh) * 2022-06-21 2022-07-22 上海国微思尔芯技术股份有限公司 组网布局方法、装置、设备和存储介质
CN116578528A (zh) * 2023-04-17 2023-08-11 湖南泛联新安信息科技有限公司 一种多模混合互连架构的多fpga原型验证平台硬件体系结构
CN116451624A (zh) * 2023-06-20 2023-07-18 北京汤谷软件技术有限公司 一种电路设计的分割方法及装置

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
A FPGA Based Prototype Verification in Automotive Mixed Signal Integrated Circuit Development;Fei Gong.etc;《IEEE》;20131231;全文 *
一种评估单粒子效应的XDL网表级电路拓扑关系构建方法;高翔;周国昌;赖晓玲;朱启;杨玉辰;;空间电子技术;20170225(01);全文 *
可通达的电路板设计;Ron Wilson;;电子设计技术;20100115(01);全文 *

Also Published As

Publication number Publication date
CN117272892A (zh) 2023-12-22

Similar Documents

Publication Publication Date Title
CN1716568A (zh) 用于掩膜可编程逻辑器件的开关方法
Chang et al. Postlayout logic restructuring using alternative wires
CN112183000B (zh) 一种支持互连约束的超图划分方法
WO2014048338A1 (en) Method for testing broadside path delay fault of digital combination integrated circuit
CN117272892B (zh) 电路验证方法、装置、存储介质及电子设备
US10285080B2 (en) Using synergistic shapely values to increase robustness of a cellular network
US20220164439A1 (en) Circuit design method and associated circuit
CN110543664B (zh) 一种面向具有特有结构fpga的工艺映射方法
CN113176975B (zh) 监控数据的处理方法、装置、存储介质和电子设备
US8885636B2 (en) Method and system for platform-independent VoIP dial plan design, validation, and deployment
CN104965937B (zh) 经由布尔可满足性的设备引脚复用配置求解和代码生成
CN113961218A (zh) 交换机远程批量升级方法、装置、设备及存储介质
Vansteenkiste et al. Maximizing the reuse of routing resources in a reconfiguration-aware connection router
US8561018B2 (en) Method of generating intermediate module between higher-level module and lower level module
US9009646B1 (en) Finding I/O placement with a router
CN114745466B (zh) 一种基于Linux系统手机互联插件化设计系统和方法
GB2440378A (en) Generating and validating a sequence of network configuration change commands
US10331833B2 (en) Optimized generation of overall netlist and bit stream
CN117787172A (zh) 布线资源图的构建方法、装置、计算机设备及存储介质
CN114006813B (zh) 一种虚拟专线分配的路由动态生成方法及系统
CN114244830B (zh) 一种文件网关应用非功能测试方法和系统
JPH0926986A (ja) テストパタン生成方法及び遅延検証方法
US20230336435A1 (en) Model-based inventory of wireless telecommunication networks
FI20175579A1 (en) Plan for a wireless network with multi-band access points
CN116484782A (zh) 一种基于fpga的io布局方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant