CN116796674B - 一种异构硬件仿真方法及系统 - Google Patents

一种异构硬件仿真方法及系统 Download PDF

Info

Publication number
CN116796674B
CN116796674B CN202311071149.4A CN202311071149A CN116796674B CN 116796674 B CN116796674 B CN 116796674B CN 202311071149 A CN202311071149 A CN 202311071149A CN 116796674 B CN116796674 B CN 116796674B
Authority
CN
China
Prior art keywords
microprocessors
class
fpga
design
fpga chips
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
CN202311071149.4A
Other languages
English (en)
Other versions
CN116796674A (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.)
Shanghai Hejian Industrial Software Group Co Ltd
Original Assignee
Shanghai Hejian Industrial Software Group 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 Shanghai Hejian Industrial Software Group Co Ltd filed Critical Shanghai Hejian Industrial Software Group Co Ltd
Priority to CN202311071149.4A priority Critical patent/CN116796674B/zh
Priority to CN202311651731.8A priority patent/CN117634374A/zh
Publication of CN116796674A publication Critical patent/CN116796674A/zh
Application granted granted Critical
Publication of CN116796674B publication Critical patent/CN116796674B/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/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3308Design verification, e.g. functional simulation or model checking using simulation
    • G06F30/331Design verification, e.g. functional simulation or model checking using simulation with hardware acceleration, e.g. by using field programmable gate array [FPGA] or emulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • 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)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

本发明涉及芯片验证技术领域,特别是涉及一种异构硬件仿真方法及系统,其通过将微处理器和FPGA芯片互联,其中微处理器的编译速度大于FPGA且仿真性能低于FPGA芯片,通过系统编译器将芯片设计分别划分给多个微处理器和FPGA芯片,其中芯片设计中待调试修正的自主设计模块D划分给微处理器,并对划分后的微处理器和FPGA分配物理互联链路,并分别编译生成可执行文件之后进行协同仿真,由于自主设计模块所在的微处理器的编译速度大于使用FPGA芯片的编译速度,同时保证在FPGA芯片中的成熟设计模块具有较高的仿真性能,兼顾融合了微处理器的迭代速度和FPGA的仿真性能的优势。

Description

一种异构硬件仿真方法及系统
技术领域
本发明涉及芯片验证技术领域,特别是涉及一种异构硬件仿真方法及系统。
背景技术
芯片设计也称为集成电路设计(Integrated circuit design,IC design),是指以集成电路、超大规模集成电路为目标的设计流程。芯片设计一般采用硬件描述语言,例如Verilog、system Verilog、VHDL等,以文本形式来描述数字系统硬件的结构和行为的语言。芯片设计完成之后会进入流片阶段,若芯片设计出现致命问题就会导致流片失败,流片失败的成本很高。为了降低流片失败的风险,在流片之前需要对芯片设计进行充分的验证,及时发现芯片设计中的问题,及时调整芯片设计,保证流片的顺利进行。
数字芯片逻辑功能验证包括:软件仿真(simulation)和硬件仿真(emulation),其中,硬件仿真器架构包括现场可编程逻辑阵列(Field Programmable Gate Array,FPGA)和微处理器。在硬件仿真时,FPGA的编译过程消耗时间比较长,编译的迭代速度低,但仿真性能好。而微处理器编译的迭代速度高,但是仿真性能比较差。目前没有能够兼顾仿真性能和迭代速度的硬件仿真器,因此,如何将IC设计有效划分给FPGA和微处理器充分发挥各自硬件仿真器的优势,成为亟待解决的技术问题。
发明内容
针对上述技术问题,本发明采用的技术方案为:
第一方面,本发明实施例提供了一种异构硬件仿真方法,所述方法包括:
S200,获取互联的硬件仿真器Emu和K个存储器,所述Emu包括N个微处理器、M个FPGA芯片,所述微处理器的编译速度大于FPGA芯片且仿真性能低于FPGA芯片,所述N个微处理器、M个FPGA芯片和K个存储器之间包括L个物理互联链路,其中K≥0,N≥1,M≥1,L≥1。
S400,获取芯片设计DUT,所述DUT包括待调试修正的自主设计模块D。
S600,系统编译器对DUT进行处理,得到Emu中n个微处理器对应的n个第一类可执行文件和m个FPGA芯片对应的m个第二类可执行文件,其中0<n≤N且0<m≤M;包括:
S620,将DUT分别划分到n个微处理器和m个FPGA芯片,其中D被划分到微处理器,得到n个微处理器的第一类设计模块和m个FPGA芯片的第二类设计模块;其中0<n≤N且0<m≤M。
S640,为n个第一类设计模块和m个第二类设计模块之间的传输信号分配物理互联链路,得到n个第一类设计模块的信号传输配置模块和m个第二类设计模块的信号传输配置模块。
S660,根据每个第一类设计模块及其信号传输配置模块分别编译生成微处理器的第一类可执行文件,得到n个第一类可执行文件;根据每个第二类设计模块及其信号传输配置模块分别编译生成FPGA芯片的第二类可执行文件,得到m个第二类可执行文件。
S800,将n个第一类可执行文件分别存入n个微处理器中,将m个第二类可执行文件分别存入m个FPGA芯片中,通过第一类可执行文件和第二类可执行文件控制n个微处理器和m个FPGA芯片进行协同仿真和调试。
第二方面,本发明实施例提供了一种异构硬件仿真系统,所述系统包括互联的硬件仿真器Emu、K个存储器和系统编译器,所述Emu包括N个微处理器和M个FPGA芯片,所述微处理器的编译速度大于FPGA芯片且仿真性能低于FPGA芯片,所述N个微处理器、M个FPGA芯片和K个存储器之间包括L个物理互联链路,其中K≥0,N≥1,M≥1,L≥1;所述系统编译器包括划分器、路由器、n个微处理器编译器和m个FPGA芯片编译器,0<n≤N且0<m≤M;其中:
划分器,用于将芯片设计DUT划分到n个微处理器和m个FPGA芯片,其中所述DUT包括待调试修正的自主设计模块D,D被划分到微处理器,得到n个微处理器的第一类设计模块和m个FPGA芯片的第二类设计模块。
路由器,用于为n个第一类设计模块和m个第二类设计模块之间的传输信号分配物理互联链路,得到n个第一类设计模块的信号传输配置模块和m个第二类设计模块的信号传输配置模块。
微处理器编译器,用于根据第一类设计模块及其信号传输配置模块编译生成微处理器的第一类可执行文件。
FPGA芯片编译器,用于根据第二类设计模块及其信号传输配置模块编译生成FPGA芯片的第二类可执行文件。
服务器,用于将n个第一类可执行文件分别存入n个微处理器中,将m个第二类可执行文件分别存入m个FPGA芯片中,通过第一类可执行文件和第二类可执行文件控制n个微处理器和m个FPGA芯片进行协同仿真和调试。
本发明与现有技术相比具有明显的有益效果,借由上述技术方案,本发明提供的一种异构硬件仿真方法及系统可达到相当的技术进步性及实用性,并具有产业上的广泛利用价值,其至少具有以下有益效果:
本发明提供了一种异构硬件仿真方法及系统,其通过将微处理器和FPGA芯片互联构成异构系统,通过系统编译器将芯片设计分别划分给多个微处理器和FPGA芯片,其中芯片设计中待调试修正的自主设计模块D划分给微处理器,分别编译生成可执行文件之后进行协同仿真。相对于只采用FPGA或者微处理器作为硬件仿真器,本发明能够使仿真的迭代速度等价于微处理器的迭代速度,使仿真性能融合为接近于FPGA的仿真性能,因此本发明兼顾融合了微处理器的迭代速度和FPGA的仿真性能的优势。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种异构硬件仿真方法流程图;
图2为本发明实施例提供的一种异构硬件仿真系统中系统编译器的框图示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
硬件仿真器包括FPGA(Field Programmable Gate Array)和微处理器,FPGA不需要借助软件模拟电路行为,而是直接执行仿真任务,因此其仿真性能较好。在编译过程中,布局布线是一个非常重要的步骤,它决定了逻辑电路在FPGA上的物理布置和电气连接,但是由于在布局布线的过程中需要进行大量的优化和约束设置,导致布局布线的过程耗时较长,进而导致FPGA的编译时间长,迭代速度慢。如果仿真时芯片设计出现了bug,每次修改一个bug,FPGA都需要对修改后的芯片设计重新编译一次,每次编译时间都会比较长,迭代速度低,调试易用性低。微处理器不需要进行布局布线,直接编译的迭代速度快,但是相对于FPGA其仿真性能低,IC设计在仿真调试的过程中,为了融合仿真性能和迭代速度的优势,本发明将FPGA和微处理器结合使用,将芯片设计中需要重点调试修正的自主设计模块划分给微处理器,将芯片设计中的成熟设计模块主要划分给FPGA,然后分别对每个FPGA和微处理器进行编译并生成对应的可执行文件,利用可执行文件控制FPGA和微处理器进行联合仿真,当自主设计模块需要调试时,对修改部分所对应的芯片设计进行重新编译,编译速度相比较FPGA得到较大的提升;同时在后续仿真时,成熟设计模块能够充分发挥FPGA的仿真性能优势,因此融合了仿真性能和迭代速度的优势。
请参阅图1,其示出了本发明实施例提供的一种异构硬件仿真方法流程图,所述方法包括以下步骤:
S200,获取互联的硬件仿真器Emu和K个存储器,所述Emu包括N个微处理器和M个FPGA芯片,所述微处理器的编译速度大于FPGA芯片且仿真性能低于FPGA芯片,所述N个微处理器、M个FPGA芯片和K个存储器之间包括L个物理互联链路,其中K≥0,N≥1,M≥1,L≥1。
可选的,微处理器为布尔微处理器(Boolean Processor)或多核处理器,现有技术中能够用于硬件仿真且编译速度大于FPGA的微处理器均落入本发明的保护范围之内。优选的,微处理器为布尔处理器。需要说明的是,布尔处理器是一种专门用于处理布尔运算的微处理器,其中布尔运算包括AND、OR和NOT操作,布尔处理器在编译生成可执行文件的过程中,并不需要进行布局布线的过程,其编译速度比FPGA快,调试易用性高。
其中,存储器用于支持调试或仿真芯片设计中的内存(memories)。可选的,存储器为随机存储器(Random Access Memory,RAM)。进一步,所述存储器为动态随机存储器DRAM(DynamicRAM)或者静态随机存储器SRAM(Static RAM)。
其中,N个微处理器、M个FPGA芯片和K个存储器之间包括多个物理互联链路,每个物理互联链路为一个互联通道(interconnect channel)。在互联结构中包括第u个存储器同时连接f1个微处理器和f2个FPGA芯片,其中f1和f2均大于等于0。
S400,获取芯片设计DUT(Design under Test),所述DUT包括待调试修正的自主设计模块D。其中,芯片设计DUT为芯片设计的RTL代码,包括自主设计模块D和成熟设计模块P,待调试修正的自主设计模块D为用户自主设计,是需要重点调试的模块,为用户指定。成熟设计P为已经经过反复验证的电路模块,不需要进行大量修改或调整,例如IP核或者上一代已经反复验证的成熟的电路模块。
S600,系统编译器对DUT进行处理,得到Emu中n个微处理器对应的n个第一类可执行文件和m个FPGA芯片对应的m个第二类可执行文件,其中0<n≤N且0<m≤M。其中,可执行文件为二进制代码。
进一步,系统编译器对DUT进行处理的步骤包括:
S620,将DUT分别划分到n个微处理器和m个FPGA芯片,其中D被划分到微处理器,得到n个微处理器的第一类设计模块和m个FPGA芯片的第二类设计模块。
为了方便描述,将FPGA芯片和微处理器统称为硬件仿真器,以下不再声明。
需要说明的是,芯片设计DUT的规模一般比较大,而单个硬件仿真器的硬件资源有限,一个硬件仿真器无法容纳整个芯片设计,因此需要将芯片设计DUT划分为n+m个设计模块,每个设计模块用于在相应的硬件仿真器上实现。
其中,自主设计模块D需要重点调试修正,需要经过多次重复编译,因此将自主设计模块D划分到微处理器中,微处理器能够加快在仿真时的编译速度进而提高仿真效率。并且当D需要重新编译时,也会加快重新编译的速度,提高整体的仿真效率。而自主设计模块以外的成熟设计模块不需要重点调试修正,更偏重仿真,不需要经过多次重复编译,因此将成熟设计模块主要划分到FPGA中,其仿真性能更好。
可选的,划分的步骤包括:分别将自主设计模块D标记为第一类标签、将成熟设计模块P标记为第二类标签,将具有第一类标签的芯片设计分配给微处理器,将具有第二类标签的芯片设计分配给FPGA。
S640,为n个第一类设计模块和m个第二类设计模块之间的传输信号分配物理互联链路,得到n个第一类设计模块的信号传输配置模块和m个第二类设计模块的信号传输配置模块。通过路由算法能够为各个硬件仿真器之间的数据传输和通信分配物理互联链路,现有技术中的路由算法均落入本发明的保护范围之内。需要说明的是,信号传输配置模块中保存了相应的第一类设计模块中传输信号与物理互联链路之间的映射关系。
S660,根据每个第一类设计模块及其信号传输配置模块分别编译生成微处理器的第一类可执行文件,得到n个第一类可执行文件;每个第二类设计模块及其信号传输配置模块分别编译生成FPGA芯片的第二类可执行文件,得到m个第二类可执行文件。需要说明的是,可执行文件为二进制文件。
S800,将n个第一类可执行文件分别存入n个微处理器中,将m个第二类可执行文件分别存入m个FPGA芯片中,通过第一类可执行文件和第二类可执行文件控制n个微处理器和m个FPGA芯片进行协同仿真和调试。
对于硬件仿真迭代速度,本发明通过将自主设计模块划分到微处理器中,在对自主设计模块进行调试和修改时,只需要对微处理器进行重新编译,整个系统的迭代速度等于微处理器的迭代速度。若将DUT全部划分给FPGA,则整个系统的迭代速度等于FPGA的迭代速度。由于微处理器的迭代速度大于FPGA的迭代速度,因此本发明提高了整个系统的迭代速度。例如,对于一个设计模块,一个FPGA的编译时间为26个小时,一个微处理器的编译时间为6个小时,若将DUT全部划分给FPGA,则系统的编译时间为26小时;若采用本发明,则编译时间为6个小时,因此相对于将DUT全部划分给FPGA提高了迭代速度。
对于硬件仿真性能,需要频繁改动的部分占比低,占比较高的成熟设计是在FPGA中实现仿真,FPGA的仿真性能高于微处理器,因此整个系统的仿真性能接近于FPGA的仿真性能。
因此,本发明通过将自主设计模块划分到微处理器中,将成熟设计划分到FPGA中,相对于只采用FPGA或者微处理器作为硬件仿真器,能够使仿真的迭代速度等价于微处理器的迭代速度,使仿真性能融合为接近于FPGA的仿真性能,因此本发明兼顾融合了微处理器的迭代速度和FPGA的仿真性能的优势。
作为一个优选实施例,S600还包括:S630,优化各个微处理器之间物理互联链路的数量。
进一步,S630包括以下步骤:
S632,分别获取划分到第j个微处理器的第一类设计模块Bj和划分到第i个FPGA芯片的第二类设计模块Fi,Bj包括D的子模块Dj;其中,j的取值范围为1到n,i的取值范围为1到m。其中,划分器在进行模块划分时,优先将D划分到同一个微处理器中;当微处理器无法容纳下整个D时,划分器会将D划分成多个子模块并分别划分到多个微处理器中,其中子模块Dj被划分给第j个微处理器的第一类设计模块Bj
S634,获取Fi中与Dj连接的Q个元件cell={cell1,cell2,…,cellq,…,cellQ},cellq为Fi中与Dj跨芯片的第q个元件,其中,q的取值范围为1到Q。需要说明的是,元件可以是时序单元,如寄存器、触发器或锁存器等,还可以是组合逻辑单元,例如门控时钟等。
S636,分别获取cell中每个元件与Dj连接的连线数量Sum1i和每个元件在Fi内的连线数量Sum2i,其中,cellq与Dj连接的连线数量Sum1i,q,cellq在Fi内的连线数量Sum2i,q
S638,当Sum1i,q大于Sum2i,q时,将cellq重新分配到Bj内。将cellq重新分配到连线数量较多的Bj内,能够减少FPGA与微处理器之间的跨芯片连接的连线数量,将片间连接转化为片内连接,缩短信号的传输路径,降低传输路径上的延时,而且通过减少片间连线还能够进一步的降低故障率,提高系统的可靠性。
作为一个优选实施例,当微处理器或FPGA芯片中物理互联链路的数量小于传输信号线路时,通过多路复用器复用相应的物理互联链路,该方法还包括:S300,为微处理器和FPGA芯片的端口分别配置多路复用器。
可选的,每个端口配置的多路复用器为时分复用器或频分复用器,现有技术中其他多路复用器落入本发明的保护范围之内。需要说明的是,同一互联通道两端的端口配置相同类型的时分复用器,不同互联通道的端口可以根据需要选择配置不同类型多路复用器。优选的,多路复用器为时分复用器(Time Division Multiplexer,TDM),TDM用于经由一个互联通道传输多个信号。
作为一个优选实施例,其中,S640还包括:为n个第一类设计模块和m个第二类设计模块之间的传输信号分配时隙资源,根据时隙资源为每个物理互联链路插入多路复用器,得到n个第一类设计模块的信号传输配置模块和m个第二类设计模块的信号传输配置模块。通过路由算法为每个传输信号分配物理互联链路能够明确每个传输信号对应的物理互联链路,时隙资源的分配能够明确同一个物理互联链路需要传输的多个传输信号之间的时隙分配规则。可选的,分配的时隙资源为时分复用比。优选的,时分复用器的时分复用比k为将k个输入信号结合为一个输出信号进行传输。
作为一个优选实施例,所述方法还包括:
S700,获取k个分别与n个微处理器和m个FPGA芯片连接的存储器,将n个微处理器、m个FPGA芯片和k个存储器通过芯粒集成进行封装,其中,0≤k≤K。通过芯粒集成封装的方式能够降低微处理器、FPGA和存储器之间互联的延迟,提高本发明提供的异构仿真系统的性能。
作为一个优选实施例,所述S700采用以下任意一种方式进行封装:将n个微处理器、m个FPGA芯片和k个存储器通过PCB进行互联;将n个微处理器、m个FPGA芯片和k个存储器通过硅中介层进行互联;或者将n个微处理器、m个FPGA芯片和k个存储器穿过硅基板的通孔进行互联。
作为一个优选实施例,本发明提供的异构仿真系统也可以不封装为一个整体,此时,所述n个微处理器和m个FPGA芯片和k个存储器通过PCB板卡或物理连线实现互联,其中,0≤k≤K。
基于与上述方法实施例相同的发明构思,本发明实施例还提供了一种异构硬件仿真系统,所述系统包括互联的硬件仿真器Emu、K个存储器、系统编译器和服务器,所述Emu包括N个微处理器和M个FPGA芯片,所述微处理器的编译速度大于FPGA芯片且仿真性能低于FPGA芯片,所述N个微处理器、M个FPGA芯片和K个存储器之间包括L个物理互联链路,其中K≥0,N≥1,M≥1,L≥1;所述系统编译器包括划分器、路由器、n个微处理器编译器和m个FPGA芯片编译器,如图2所示,0<n≤N且0<m≤M;其中:
划分器,用于将芯片设计DUT划分到n个微处理器和m个FPGA芯片,其中所述DUT包括待调试修正的自主设计模块D,D被划分到微处理器,得到n个微处理器的第一类设计模块和m个FPGA芯片的第二类设计模块。
路由器,用于为n个第一类设计模块和m个第二类设计模块之间的传输信号分配物理互联链路,得到n个第一类设计模块的信号传输配置模块和m个第二类设计模块的信号传输配置模块。
微处理器编译器,用于将第一类设计模块及其信号传输配置模块编译生成微处理器的第一类可执行文件。
FPGA芯片编译器,用于将第二类设计模块及其信号传输配置模块编译生成FPGA芯片的第二类可执行文件。
服务器,用于将n个第一类可执行文件分别存入n个微处理器中,将m个第二类可执行文件分别存入m个FPGA芯片中,通过第一类可执行文件和第二类可执行文件控制n个微处理器和m个FPGA芯片进行协同仿真和调试。需要说明的是,在服务器上设有支持整个硬件仿真系统正确工作的硬件仿真系统运行软件 (emulator runtime software)。
作为一个优选实施例,其中:路由器用于为n个第一类设计模块和m个第二类设计模块之间的传输信号分配物理互联链路和时隙资源,所述系统编译器还包括:多路复用器插入器,用于将根据每个物理互联链路分配的时隙资源插入多路复用器。
需要说明的是,本系统实施例与上述方法实施例的发明构思相同,其中同一命名的技术特征相同,不再赘述。
通过该异构硬件仿真系统将自主设计模块划分给微处理器,将成熟设计划分给FPGA进行仿真,兼顾融合了微处理器的迭代速度和FPGA仿真性能优势。
虽然已经通过示例对本发明的一些特定实施例进行了详细说明,但是本领域的技术人员应该理解,以上示例仅是为了进行说明,而不是为了限制本发明的范围。本领域的技术人员还应理解,可以对实施例进行多种修改而不脱离本发明的范围和精神。本发明公开的范围由所附权利要求来限定。

Claims (9)

1.一种异构硬件仿真方法,其特征在于,所述方法包括:
S200,获取互联的硬件仿真器Emu和K个存储器,所述Emu包括N个微处理器、M个FPGA芯片,所述微处理器的编译速度大于FPGA芯片且仿真性能低于FPGA芯片,所述N个微处理器、M个FPGA芯片和K个存储器之间包括L个物理互联链路,其中K≥0,N≥1,M≥1,L≥1;
S400,获取芯片设计DUT,所述DUT包括待调试修正的自主设计模块D;
S600,系统编译器对DUT进行处理,得到Emu中n个微处理器对应的n个第一类可执行文件和m个FPGA芯片对应的m个第二类可执行文件,其中0<n≤N且0<m≤M;包括:
S620,将DUT分别划分到n个微处理器和m个FPGA芯片,其中D被划分到微处理器,得到n个微处理器的第一类设计模块和m个FPGA芯片的第二类设计模块;
S640,为n个第一类设计模块和m个第二类设计模块之间的传输信号分配物理互联链路,得到n个第一类设计模块的信号传输配置模块和m个第二类设计模块的信号传输配置模块;
S660,根据每个第一类设计模块及其信号传输配置模块分别编译生成微处理器的第一类可执行文件,得到n个第一类可执行文件;根据每个第二类设计模块及其信号传输配置模块分别编译生成FPGA芯片的第二类可执行文件,得到m个第二类可执行文件;
S800,将n个第一类可执行文件分别存入n个微处理器中,将m个第二类可执行文件分别存入m个FPGA芯片中,通过第一类可执行文件和第二类可执行文件控制n个微处理器和m个FPGA芯片进行协同仿真和调试;
其中,S600还包括:
S630,优化各个芯片之间物理互联链路的数量,包括:
S632,分别获取划分到第j个微处理器的第一类设计模块Bj和划分到第i个FPGA芯片的第二类设计模块Fi,Bj包括D的子模块Dj;其中,j的取值范围为1到n,i的取值范围为1到m;
S634,获取Fi中与Dj连接的Q个元件cell={cell1,cell2,…,cellq,…,cellQ}, cellq为Fi中与Dj连接的第q个元件,其中,q的取值范围为1到Q;
S636,分别获取cell中每个元件与Dj物理互联链路的数量Sum1i和每个元件在Fi内的物理链路数量Sum2i,其中,cellq与Dj物理互联链路的数量Sum1i,q,cellq在Fi内的物理链路数量Sum2i,q
S638,当Sum1i,q大于Sum2i,q时,将cellq重新分配到Bj内。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
S300,为微处理器和FPGA芯片的端口分别配置多路复用器。
3.根据权利要求1所述的方法,其特征在于,其中:
S640还包括:为n个第一类设计模块和m个第二类设计模块之间的传输信号分配时隙资源,根据时隙资源为每个物理互联链路插入多路复用器,得到n个第一类设计模块的信号传输配置模块和m个第二类设计模块的信号传输配置模块。
4.根据权利要求3所述的方法,其特征在于,所述多路复用器为时分复用器,所述时隙资源为时分复用比。
5.根据权利要求1所述的方法,其特征在于,所述微处理器为布尔处理器。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
S700,获取k个分别与n个微处理器和m个FPGA芯片连接的存储器,将n个微处理器和m个FPGA芯片和k个存储器通过芯粒集成进行封装,其中,0≤k≤K。
7.根据权利要求6所述的方法,其特征在于,所述S700采用以下任意一种方式进行封装:
将n个微处理器、m个FPGA芯片和k个存储器通过PCB进行互联;
将n个微处理器、m个FPGA芯片和k个存储器通过硅中介层进行互联;
将n个微处理器、m个FPGA芯片和k个存储器穿过硅基板的通孔进行互联。
8.根据权利要求1所述的方法,其特征在于,所述n个微处理器和m个FPGA芯片和k个存储器通过PCB板卡或物理连线实现互联,其中,0≤k≤K。
9.一种异构硬件仿真系统,所述系统包括互联的硬件仿真器Emu、K个存储器和系统编译器,所述Emu包括N个微处理器和M个FPGA芯片,所述微处理器的编译速度大于FPGA芯片且仿真性能低于FPGA芯片,所述N个微处理器、M个FPGA芯片和K个存储器之间包括L个物理互联链路,其中K≥0,N≥1,M≥1,L≥1;所述系统编译器包括划分器、路由器、n个微处理器编译器和m个FPGA芯片编译器,0<n≤N且0<m≤M;其中:
划分器,用于将芯片设计DUT划分到n个微处理器和m个FPGA芯片,其中所述DUT包括待调试修正的自主设计模块D,D被划分到微处理器,得到n个微处理器的第一类设计模块和m个FPGA芯片的第二类设计模块;
路由器,用于为n个第一类设计模块和m个第二类设计模块之间的传输信号分配物理互联链路,得到n个第一类设计模块的信号传输配置模块和m个第二类设计模块的信号传输配置模块;
微处理器编译器,用于根据第一类设计模块及其信号传输配置模块编译生成微处理器的第一类可执行文件;
FPGA芯片编译器,用于根据第二类设计模块及其信号传输配置模块编译生成FPGA芯片的第二类可执行文件;
服务器,用于将n个第一类可执行文件分别存入n个微处理器中,将m个第二类可执行文件分别存入m个FPGA芯片中,通过第一类可执行文件和第二类可执行文件控制n个微处理器和m个FPGA芯片进行协同仿真和调试。
CN202311071149.4A 2023-08-24 2023-08-24 一种异构硬件仿真方法及系统 Active CN116796674B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202311071149.4A CN116796674B (zh) 2023-08-24 2023-08-24 一种异构硬件仿真方法及系统
CN202311651731.8A CN117634374A (zh) 2023-08-24 2023-08-24 一种异构硬件仿真方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311071149.4A CN116796674B (zh) 2023-08-24 2023-08-24 一种异构硬件仿真方法及系统

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202311651731.8A Division CN117634374A (zh) 2023-08-24 2023-08-24 一种异构硬件仿真方法及系统

Publications (2)

Publication Number Publication Date
CN116796674A CN116796674A (zh) 2023-09-22
CN116796674B true CN116796674B (zh) 2023-11-24

Family

ID=88045084

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202311651731.8A Pending CN117634374A (zh) 2023-08-24 2023-08-24 一种异构硬件仿真方法及系统
CN202311071149.4A Active CN116796674B (zh) 2023-08-24 2023-08-24 一种异构硬件仿真方法及系统

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN202311651731.8A Pending CN117634374A (zh) 2023-08-24 2023-08-24 一种异构硬件仿真方法及系统

Country Status (1)

Country Link
CN (2) CN117634374A (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117391007A (zh) * 2023-10-23 2024-01-12 上海合见工业软件集团有限公司 一种获取仿真节点真值表的方法、电子设备及存储介质
CN117610472B (zh) * 2024-01-24 2024-03-29 上海合见工业软件集团有限公司 超大规模集群fpga原型验证系统

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105045763A (zh) * 2015-07-14 2015-11-11 北京航空航天大学 一种基于fpga+多核dsp的pd雷达信号处理系统及其并行实现方法
US9442696B1 (en) * 2014-01-16 2016-09-13 The Math Works, Inc. Interactive partitioning and mapping of an application across multiple heterogeneous computational devices from a co-simulation design environment
US10949591B1 (en) * 2018-11-20 2021-03-16 Synopsys, Inc. Hardware based state signature generation and check for test and debug of semiconductor circuit functionality
US10970442B1 (en) * 2019-10-24 2021-04-06 SK Hynix Inc. Method of debugging hardware and firmware of data storage
CN114004352A (zh) * 2021-12-31 2022-02-01 杭州雄迈集成电路技术股份有限公司 一种仿真实现方法、神经网络编译器以及计算机可读存储介质
CN116627846A (zh) * 2023-07-20 2023-08-22 北京云枢创新软件技术有限公司 确定目标调用标识的位置信息的方法、电子设备和介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9442696B1 (en) * 2014-01-16 2016-09-13 The Math Works, Inc. Interactive partitioning and mapping of an application across multiple heterogeneous computational devices from a co-simulation design environment
CN105045763A (zh) * 2015-07-14 2015-11-11 北京航空航天大学 一种基于fpga+多核dsp的pd雷达信号处理系统及其并行实现方法
US10949591B1 (en) * 2018-11-20 2021-03-16 Synopsys, Inc. Hardware based state signature generation and check for test and debug of semiconductor circuit functionality
US10970442B1 (en) * 2019-10-24 2021-04-06 SK Hynix Inc. Method of debugging hardware and firmware of data storage
CN114004352A (zh) * 2021-12-31 2022-02-01 杭州雄迈集成电路技术股份有限公司 一种仿真实现方法、神经网络编译器以及计算机可读存储介质
CN116627846A (zh) * 2023-07-20 2023-08-22 北京云枢创新软件技术有限公司 确定目标调用标识的位置信息的方法、电子设备和介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
网络设计:用于软件无线电系统的虚级联模块设计、性能分析及实现;王鹏;郏栋;金德鹏;曾烈光;;中国通信(第01期);全文 *

Also Published As

Publication number Publication date
CN117634374A (zh) 2024-03-01
CN116796674A (zh) 2023-09-22

Similar Documents

Publication Publication Date Title
CN116796674B (zh) 一种异构硬件仿真方法及系统
US6058492A (en) Method and apparatus for design verification using emulation and simulation
US5551013A (en) Multiprocessor for hardware emulation
US6009256A (en) Simulation/emulation system and method
US7346903B2 (en) Compiling and linking modules of a cycle-based logic design
US6321366B1 (en) Timing-insensitive glitch-free logic system and method
US10169505B2 (en) Partitioning and routing multi-SLR FPGA for emulation and prototyping
US6421251B1 (en) Array board interconnect system and method
US6026230A (en) Memory simulation system and method
US7036114B2 (en) Method and apparatus for cycle-based computation
US5854752A (en) Circuit partitioning technique for use with multiplexed inter-connections
US20040111252A1 (en) Method and system for emulating a design under test associated with a test environment
US10339243B2 (en) Method and apparatus for automatic hierarchical design partitioning
US20060015313A1 (en) Method of programming a co-verification system
WO1993016433A1 (en) Hardware emulation accelerator and method
JP2004531056A (ja) プログラム可能なコンポーネントを用いるブロックベースの設計方法論
JP2002358340A (ja) 論理エミュレーションに使用される回路、その回路を備える論理基板、論理エミュレータ及び、論理エミュレーションにおける通信方法
US20120136645A1 (en) Managing Communication Bandwidth in Co-Verification of Circuit Designs
EP2541448B1 (en) Method and system for partial reconfiguration simulation
WO2000019528A1 (de) Dram-zellenanordnung und verfahren zu deren herstellung
CN109426671B (zh) 一种边界扫描链的生成方法及装置、计算机可读存储介质
US7703054B2 (en) Circuit emulation and debugging method
Sasaki et al. MIXS: A mixed level simulator for large digital system logic verification
US7337103B2 (en) Method and apparatus for the automatic correction of faulty wires in a logic simulation hardware emulator / accelerator
Golden et al. Design automation and the programmable logic array macro

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