CN117724914A - 芯片FPGA原型验证的debug方法、电子设备和介质 - Google Patents
芯片FPGA原型验证的debug方法、电子设备和介质 Download PDFInfo
- Publication number
- CN117724914A CN117724914A CN202311731729.1A CN202311731729A CN117724914A CN 117724914 A CN117724914 A CN 117724914A CN 202311731729 A CN202311731729 A CN 202311731729A CN 117724914 A CN117724914 A CN 117724914A
- Authority
- CN
- China
- Prior art keywords
- data
- fpga prototype
- target
- chip
- prototype verification
- 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.)
- Pending
Links
- 238000012795 verification Methods 0.000 title claims abstract description 136
- 238000000034 method Methods 0.000 title claims abstract description 49
- 238000004088 simulation Methods 0.000 claims abstract description 75
- 230000005284 excitation Effects 0.000 claims abstract description 52
- 230000008569 process Effects 0.000 claims description 13
- 238000012545 processing Methods 0.000 claims description 12
- 230000002159 abnormal effect Effects 0.000 claims description 10
- 230000008859 change Effects 0.000 claims description 4
- 125000004122 cyclic group Chemical group 0.000 claims description 4
- 238000013507 mapping Methods 0.000 claims description 4
- 239000000758 substrate Substances 0.000 claims 4
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012163 sequencing technique Methods 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000010485 coping Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
本发明涉及芯片验证技术领域,尤其涉及一种芯片FPGA原型验证的debug方法、电子设备和介质,方法包括:步骤S1、获取待验证芯片的仿真验证代码;步骤S2、生成FPGA原型验证系统;步骤S3、配置FPGA原型验证系统的初始状态,向FPGA原型验证系统的输入端口发送激励数据,进行芯片FPGA原型验证,将输入端口接收的激励数据、时钟数据和状态数据转存至存储模块中;步骤S4、当FPGA原型验证系统运行至目标触发点之后,从存储模块中获取目标debug数据;步骤S5、将目标debug数据按照时序回灌至所述RTL仿真模型中进行debug。本发明提高了对芯片FPGA原型验证的debug的效率和准确性。
Description
技术领域
本发明涉及芯片验证技术领域,尤其涉及一种芯片FPGA原型验证的debug方法、电子设备和介质。
背景技术
随着芯片验证技术的不断发展,在FPGA原型系统对芯片硬件逻辑进行更全面的验证的需求日益增加,这必然要求调试(debug)方法必须能够有效应对各种复杂场景的问题。FPGA原型系统仅能直接获取到输入端口的数据,无法获取到内部信号的变化状况,传统的debug方法应用于FPGA原型验证系统时通常只能提供有限的信息,并且仅适用于简单场景的问题。而当芯片硬件逻辑更加复杂,出现的问题难以重现或存在一些上板后的物理特性时,传统的debug方法难以在短时间内快速发现问题,也无法准确定位。由此可知,如何提供一种能够解决出现在FPGA原型系统上进行硬件逻辑验证过程中出现的一些复杂的问题的方式,实现更加精准、快速的问题定位,提高对芯片FPGA原型验证的debug的效率和准确性成为亟待解决的技术问题。
发明内容
本发明目的在于,提供一种芯片FPGA原型验证的debug方法、电子设备和介质,提高了对芯片FPGA原型验证的debug的效率和准确性。
根据本发明第一方面,提供了一种芯片FPGA原型验证的debug方法,包括:
步骤S1、基于RTL仿真模型对待验证芯片进行仿真验证,所述RTL仿真模型基于待验证芯片的原始RTL代码构建生成,根据RTL仿真模型的仿真验证结果更新待验证芯片的原始RTL代码,生成待验证芯片的仿真验证代码;
步骤S2、基于所述待验证芯片的仿真验证代码生成待验证芯片的门级网表,将所述待验证芯片的门级网表烧录到FPGA中,生成FPGA原型验证系统;
步骤S3、配置所述FPGA原型验证系统的初始状态,向所述FPGA原型验证系统的输入端口发送激励数据,在所述FPGA原型验证系统中进行芯片FPGA原型验证,将所述输入端口接收的激励数据、激励数据对应的时钟数据和FPGA原型验证系统的状态数据转存至存储模块中;
步骤S4、当所述FPGA原型验证系统运行至目标触发点之后,从所述存储模块中获取目标debug数据,所述目标debug数据包括目标范围内的激励数据、激励数据对应的时钟数据和FPGA原型验证系统的状态数据;
根据本发明第二方面,提供一种电子设备,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被设置为用于执行本发明第一方面所述的方法。
根据本发明第三方面,提供一种计算机可读存储介质,所述计算机指令用于执行本发明第一方面所述的方法。
本发明与现有技术相比具有明显的优点和有益效果。借由上述技术方案,本发明提供的一种芯片FPGA原型验证的debug方法、电子设备和介质可达到相当的技术进步性及实用性,并具有产业上的广泛利用价值,其至少具有以下有益效果:
本发明基于RTL仿真模型对待验证芯片进行仿真验证获取待验证芯片的仿真验证代码,基于待验证芯片的仿真验证代码构建FPGA原型验证系统,再FPGA原型验证系统进行芯片FPGA原型验证过程中,将输入端口接收的激励数据、激励数据对应的时钟数据和FPGA原型验证系统的状态数据转存至存储模块中,从所述存储模块中获取目标debug数据,再将目标debug数据回灌至RTL仿真模型中,实现对芯片FPGA原型验证的debug,提高了对芯片FPGA原型验证的debug的效率和准确性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的芯片FPGA原型验证的调试方法流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供了一种芯片FPGA(Field-Programmable Gate Array)原型验证的调试(debug)方法,如图1所示,包括以下步骤:
步骤S1、基于原始寄存器传输级(Register Transfer Level,简称RTL)仿真模型对待验证芯片进行仿真验证,所述RTL仿真模型基于待验证芯片的原始RTL代码构建生成,根据RTL仿真模型的仿真验证结果更新待验证芯片的原始RTL代码,生成待验证芯片的仿真验证代码。
其中,具体可以采用通用验证方法学(Universal Verification Methodology,UVM)的方式或软件仿真方式对待验证芯片进行仿真验证,在此不再赘述。
步骤S2、基于所述待验证芯片的仿真验证代码生成待验证芯片的门级网表,将所述待验证芯片的门级网表烧录到FPGA中,生成FPGA原型验证系统。
可以理解的是,FPGA即为现场可编程门阵列。
步骤S3、配置所述FPGA原型验证系统的初始状态,向所述FPGA原型验证系统的输入端口发送激励数据,在所述FPGA原型验证系统中进行芯片FPGA原型验证,将所述输入端口接收的激励数据、激励数据对应的时钟数据和FPGA原型验证系统的状态数据转存至存储模块中。
需要说明的是,输入端口按照时钟进行分组,转存的输入端口接收的激励数据可以是输入端口全部的激励数据,也可以是从输入端口选择Y个时钟对应的输入激励数据作为待转存数据,待转存数据大小为X。
步骤S4、当所述FPGA原型验证系统运行至目标触发点之后,从所述存储模块中获取目标debug数据,所述目标debug数据包括目标范围内的激励数据、激励数据对应的时钟数据和FPGA原型验证系统的状态数据。
步骤S5、将所述目标debug数据按照时序回灌至所述RTL仿真模型中进行debug。
需要说明的是,FPGA原型验证系统中的信号是不能直接读取到的,而RTL仿真模型中的信号可以直接读取到。所述FPGA原型验证系统基于硬件实现,本发明实施例采用软硬件结合的技术,在FPGA原型系统验证中通过设置触发条件来收集相关数据。当触发条件满足时,保存现场数据,并将数据回灌RTL仿真模型,实现对FPGA原型系统中的场景进行一比一的还原。通过对比结果,快速、精准定位芯片FPGA原型验证的问题。
在FPGA原型验证过程中,FPGA原型验证系统的状态可能始终保持初始状态不变,也可能随着激励数据的输入发生状态变化。所述存储模块包括第一存储区域和第二存储区域,所述步骤S3中,将所述输入端口接收的激励数据、激励数据对应的时钟数据和FPGA原型验证系统的状态数据转存至存储模块中,包括:
步骤S31、将所述输入端口接收的激励数据、激励数据对应的时钟数据作为待存储数据,将所述待存储数据按序存储至所述第一存储区域中,当所述第一存储区域存满后,再返回所述第一存储区域的起始位置以循环覆盖的方式按序存储所述待存储数据。
具体的,以FPGA原型验证系统输入端口从输入端口选择Y个时钟对应的输入激励数据作为待转存数据,待转存数据大小为X为例,所述第一存储区域包括N个存储单元(B1,B2,…,Bn,…,BN),Bn为第n个存储单元,n的取值范围为1到N,Bn大小大于(X+Y);所述软件控制模块控制将所述FPGA原型验证模块的输入端口中所述选择的Y个时钟对应的待转存数据以及所述选择的Y个时钟数据作为待存储数据,按照B1,B2,…,Bn,…,BN的顺序向所述第一存储区域存储所述待存储数据,当向Bn中存储所述待存储数据时,先判断Bn当前剩余的存储空间是否大于等于(X+Y),若是,则将所述待存储数据存储至Bn中,否则,将所述待存储数据存储至Bn+1中,当存储至BN且BN中的存储空间小于(X+Y)时,将所述待存储数据存储至B1中。当向Bn中存储数据时,若Bn中存储有数据,则以覆盖的方式向Bn中存储数据。
需要说明的是,第一存储区域为存储模块中的一部分存储区域,即仅为存储模块的一部分,本发明以循环覆盖的方式向第一存储区域中存储FPGA原型验证系统的输入端口的输入激励数据以及对应的时钟数据,FPGA原型验证系统的输入端口的输入激励数据以及对应的时钟数据最多占用的存储空间为第一存储区域的空间,而不是整个存储模块的空间,节省了FPGA原型验证系统的输入端口的输入激励数据以及对应的时钟数据做占据存储空间的大小,此外,在未发现异常的情况下,才会继续向第一存储区域的空间中存储数据,因此第一存储区域中被覆盖的数据均为非目标debug数据。通过循环覆盖的方式使得第一存储区域中始终保存的是当前时刻临近一段时间的数据。
步骤S32、将FPGA原型验证系统的状态数据存储至所述第二存储区域中,建立FPGA原型验证系统的状态数据和激励数据的映射关系。
作为一种实施例,若所述待验证芯片为状态保持不变的芯片,则将初始状态信息存储至所述第二存储区域。
作为一种实施例,若所述待验证芯片为状态可变芯片所述待验证芯片为状态可变芯片,则将FPGA原型验证过程中所出现的所有状态数据均记录在所述第二存储区域中,并建立FPGA原型验证系统的状态数据和激励数据的映射关系,当所述第二存储区域中的一个状态数据在第一存储区域存储的数据全部被覆盖时,将该状态数据以及对应的映射关系信息从所述第二存储区域中删除。
作为一种实施例,可以在所述第二存储区域中也设置N个存储单元,与第一存储区域中的N个存储单元(B1,B2,…,Bn,…,BN)一一对应,每个存储单元对应存储述第一存储区域中的一个存储单元中所存储的激励数据的其实FPGA原型验证系统的状态数据。
需要说明的是,一般在FPGA原型验证系统上出现的bug在较为复杂的场景下才会出现。因此本发明实施例首先实现了一个复杂的触发机制,该触发机制采用了一个有限状态机的形式,并通过硬件实现了具体的状态机。通过软件进行配置后,该触发机制能够有效地工作,达到捕捉复杂bug的目的。作为一种实施例,所述FPGA原型验证系统还包括设置在所述FPGA板上的触发配置表和数据处理模块,所述步骤S4包括:
步骤S401、所述数据处理模块实时从FPGA原型系统的预设接口读取中间状态数据,基于所述输出数据和触发配置表确定目标触发点。
作为一种实施例,所述触发配置表包括M条触发配置信息{A1,A2,…,Am,…,AM},Am为第m条触发配置信息,m的取值范围为1到M,Am=(A1m,A2m,A3m),A1m为Am的触发位标识信息,A2m为Am的触发约束信息,A3m为Am的触发执行指令;A3m包括跳转至Aj、将当前时刻确定为目标触发点;j的取值范围为1到M,Aj≠Am,设置A1为初始目标Am。通过设置每一Am,可以应用于各种复杂的应用场景,所述触发配置表中的每一A1m、A2m和A3m均根据待验证芯片的验证需求配置生成,所有A3m对应的跳转信息即可确定对应的流程,触发配置表具体可以通过有限状态机来实现。
具体可以通过软件控制模块配置FPGA原型验证模块的初始状态,向FPGA原型验证模块的输入端口输入激励信息。需要说明的是,所述软件控制模块也是通过FPGA原型验证模块的输入端口配置FPGA原型验证模块的初始状态。
FPGA原型验证系统从初始状态开始运行,基于输入端口接收的激励信息对所述待验证芯片执行FPGA原型验证,数据处理模块实时从FPGA原型系统的预设接口读取中间状态数据,当所读取的中间状态数据出现当前目标Am对应的目标A1m时,判断后续读取的中间状态数据是否符合当前目标Am对应的目标A2m,当符合目标A2m时,若当前目标Am对应的目标A3m为将当前时刻确定为目标触发点指令,则将当前触发点确定为目标触发点,否则,将目标A3m对应的Aj更新为目标Am,继续从FPGA原型系统的预设接口读取中间状态数据进行判断,直至确定目标触发点。需要说明的是,FPGA原型系统中包括多个接口,用户无法直接读取接口数据,通过设置在FPGA上的数据处理模块可以读取并结合触发配置表进行判断。
FPGA原型系统的预设接口的位数是固定的,例如为64位,那么从FPGA原型系统的预设接口读取中间状态数据永远为64位,数据处理模块并非每次需要对这全部的64位数据进行处理,而可能进针对其中的某几位数据,可以灵活设置,因此更进一步可以涵盖多种复杂验证场景。作为一种实施例,A1m包括第一判断位A11m和A11m对应的第一判断值A12m,A2m包括第二判断位A21m和A21m对应的约束条件A22m;所述数据处理模块用于实时从FPGA原型系统的预设接口读取中间状态数据,判断当前读取的中间状态数据中当前目标Am对应的目标A11m的值是否为当前目标Am对应的目标A12m,若是,则判断后续读取的中间状态数据中目标Am对应的目标A21m对应的值是否符合目标Am对应的目标A22m,若符合,则执行目标Am对应的A3m。
作为一种实施例,A22m包括目标A21m对应的值大于预设约束值A23 m、目标A21m对应的值大于等于预设约束值A23m、目标A21m对应的值小于预设约束值A23m、目标A21m对应的值小于等于预设约束值A23m、目标A21m对应的值等于预设约束值A23m。所述数据处理模块包括比较器,所述比较器支持大于、大于等于、小于、小于等于、等于的比较操作。若目标A22m为目标A21m对应的值大于预设约束值A23m、目标A21m对应的值大于等于预设约束值A23m、目标A21m对应的值小于预设约束值A23m、目标A21m对应的值小于等于预设约束值A23m、目标A21m对应的值等于预设约束值A23m中的任何一个,则将目标A21m对应的值和预设约束值A23m输入所述比较器中,判断目标A21m对应的值是否符合目标Am对应的目标A22m。比较器会基于具体的A22m对输入的目标A21m对应的值和预设约束值A23m进行对比,从而得出是否符合目标A22m的结论。
作为一种实施例,A22m包括目标A21m对应的值出现等于预设数值A24m的次数达到预设次数值A25m;所述数据处理模块中设置有计数器。若目标A22m为当前目标Am对应的目标A11m的值等于当前目标Am对应的目标A12m,则启用所述计数器开始记录目标A21m对应的值出现等于预设数值A24m的次数,若达到预设次数值A25m,则确定符合目标A2m。
作为一种实施例,A22m包括进入目标Am的时间达到预设时间长度A26m;所述数据处理模块包括计时器。若目标A22m为进入目标Am的时间达到预设时间长度A26m,则启动所述计时器,从当前目标Am对应的目标A11m的值等于当前目标Am对应的目标A12m时开始计时,当所计时间达到预设时间长度A26m,则确定符合目标A2m。
当所述FPGA原型验证系统运行至目标触发点时,所述软件控制模块基于所述目标触发点获取所述第一存储区域中所存储的数据作为目标debug数据。需要说明的是,获取目标debug数据时,最多只需处理第一存储区域对应的数据量的数据,极大减小了数据处理量,提高了目标debug数据的获取效率。其中,目标触发点为需要进行debug的点,所述步骤S4包括:
步骤S41、当所述FPGA原型验证系统运行至目标触发点之后,根据预设的相对触发点的存储比例向所述第一存储区域中存储待存储数据,然后将所述第一存储区域中的数据确定为目标范围内的所激励数据、激励数据对应的时钟数据。
当确定目标触发点之后,可以根据不同的应用需求获取目标触发点前后不同范围内的数据:
作为一种实施例,当所述FPGA原型验证系统运行至目标触发点时,所述软件控制模块将所述目标触发点对应的Bn作为终点,不再向所述第一存储区域存储数据,将当前所述第一存储区域中的数据按照存入顺序排序后得到所述目标debug数据。
作为一种实施例,当所述FPGA原型验证系统运行至目标触发点时,所述软件控制模块将所述目标触发点对应的Bn作为起点,继续从FPGA原型验证系统的获取(N-1)个待存储数据,依次存储至所述第一存储区域,然后将所述第一存储区域中的数据按照存入顺序排序后得到所述目标debug数据。
作为一种实施例,当所述FPGA原型验证系统运行至目标触发点时,所述软件控制模块将所述目标触发点对应的Bn作为起点,继续从FPGA原型验证系统的获取D×N/(C+D)个待存储数据,依次存储至所述第一存储区域,然后将所述第一存储区域中的数据按照存入顺序排序后得到所述目标debug数据,其中,C和D为占比参数,所述目标debug数据中,目标触发点以及目标触发点之前的数据量与目标触发点之后的数据量比值为C:D。
步骤S42、从所述第二存储区域中,获取目标范围内的激励数据对应的FPGA原型验证系统的状态数据。
作为一种实施例,若所述待验证芯片为状态保持不变的芯片,当所述FPGA原型验证系统运行至目标触发点时,所述软件控制模块将所述第二存储区域中所存储的初始状态信息也确定为目标debug数据。
作为一种实施例,若所述待验证芯片为状态可变芯片所述待验证芯片为状态可变芯片,当所述FPGA原型验证系统运行至目标触发点时,所述软件控制模块从所述第二存储区域中获取所述第一存储区域中每一被确定为目标debug数据的数据对应的状态信息,将所述第一存储区域中每一被确定为目标debug数据的数据对应的状态信息也确定为目标debug数据。
作为一种实施例,所述目标debug数据包括(E1,E2,…,En,…,EN),En为第n组目标debug数据,En=(E1n,E2n,E3n),E1n为En对应的激励数据,E2n为E1n对应的时钟数据,E3n为En对应的起始FPGA原型验证系统的状态数据,E1,E2,…,En,…,EN按照时序排序。需要说明的是E1n包括多个按照执行顺序排列的激励数据,E2n中包括多个与E1n中的激励数据一一对应的时钟数据,E3n中仅包括一组En对应的起始FPGA原型验证系统的状态数据,无需存储E1n中每一激励数据对应的FPGA原型验证系统的状态数据。
所述步骤S5包括:
步骤S51、设置N个RTL仿真模型。
步骤S52、将第n个RTL仿真模型的起始状态设置为E3n。
步骤S53、并行将每一E1n输入对应的第n个RTL仿真模型中进行仿真,根据E1n和E2n的对应关系设置时钟数据,实时观测每一RTL仿真模型中信号的变化,确定目标异常点。
其中,激励数据对应的时钟数据为时钟频率,因此根据E1n和E2n的对应关系设置时钟频率即可。
通过步骤S51-步骤S53实现在RTL仿真模型的状态与FPGA原型验证系统的状态保持一致的前提下,按照FPGA原型验证系统的时序向RTL仿真模型中发送对应的记录数据,从而在RTL仿真模型上复现FPGA原型验证系统的数据,进而基于RTL仿真模型实现对FPGA原型验证系统的验证。
需要说明的是,若串行执行E1,E2,…,En,…,EN会非常缓慢。由于En中已经包括了激励数据、时钟数据以及对应的起始FPGA原型验证系统的状态数据,因此可以在RTL仿真模型中独立复现每一组目标debug数据,并行执行所有En,能够极大提高对芯片FPGA原型验证的debug的效率。
作为一种实施例,所述步骤S53包括:
步骤S531、在并行将每一E1n输入对应的第n个RTL仿真模型中进行仿真的过程中,若基于第n个RTL仿真模型出现异常点,则结束第(n+1)个RTL仿真模型至第N个RTL仿真模型的仿真操作,N个RTL仿真模型仿真均结束后,将最先出现的异常点确定为目标异常点。
需要说明的是,目标异常点在靠前位置,因此当发现一个异常点时,后边的仿真过程均可不用再关注,因此结束第(n+1)个RTL仿真模型至第N个RTL仿真模型的仿真操作,节约计算资源。
本发明实施例基于RTL仿真模型对待验证芯片进行仿真验证获取待验证芯片的仿真验证代码,基于待验证芯片的仿真验证代码构建FPGA原型验证系统,再FPGA原型验证系统进行芯片FPGA原型验证过程中,将输入端口接收的激励数据、激励数据对应的时钟数据和FPGA原型验证系统的状态数据转存至存储模块中,从所述存储模块中获取目标debug数据,再将目标debug数据回灌至RTL仿真模型中,实现对芯片FPGA原型验证的debug,提高了对芯片FPGA原型验证的debug的效率和准确性。
需要说明的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各步骤描述成顺序的处理,但是其中的许多步骤可以被并行地、并发地或者同时实施。此外,各步骤的顺序可以被重新安排。当其操作完成时处理可以被终止,但是还可以具有未包括在附图中的附加步骤。处理可以对应于方法、函数、规程、子例程、子程序等等。
本发明实施例还提供一种电子设备,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被设置为用于执行本发明实施例所述的方法。
本发明实施例还提供一种计算机可读存储介质,所述计算机指令用于执行本发明实施例所述的方法。
以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明,任何熟悉本专业的技术人员,在不脱离本发明技术方案范围内,当可利用上述揭示的技术内容作出些许更动或修饰为等同变化的等效实施例,但凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。
Claims (10)
1.一种芯片FPGA原型验证的debug方法,其特征在于,包括:
步骤S1、基于RTL仿真模型对待验证芯片进行仿真验证,所述RTL仿真模型基于待验证芯片的原始RTL代码构建生成,根据RTL仿真模型的仿真验证结果更新待验证芯片的原始RTL代码,生成待验证芯片的仿真验证代码;
步骤S2、基于所述待验证芯片的仿真验证代码生成待验证芯片的门级网表,将所述待验证芯片的门级网表烧录到FPGA中,生成FPGA原型验证系统;
步骤S3、配置所述FPGA原型验证系统的初始状态,向所述FPGA原型验证系统的输入端口发送激励数据,在所述FPGA原型验证系统中进行芯片FPGA原型验证,将所述输入端口接收的激励数据、激励数据对应的时钟数据和FPGA原型验证系统的状态数据转存至存储模块中;
步骤S4、当所述FPGA原型验证系统运行至目标触发点之后,从所述存储模块中获取目标debug数据,所述目标debug数据包括目标范围内的激励数据、激励数据对应的时钟数据和FPGA原型验证系统的状态数据;
步骤S5、将所述目标debug数据按照时序回灌至所述RTL仿真模型中进行debug。
2.根据权利要求1所述的方法,其特征在于,
所述步骤S1中,采用UVM的方式或软件仿真方式对待验证芯片进行仿真验证。
3.根据权利要求1所述的方法,其特征在于,
所述存储模块包括第一存储区域和第二存储区域,所述步骤S3中,将所述输入端口接收的激励数据、激励数据对应的时钟数据和FPGA原型验证系统的状态数据转存至存储模块中,包括:
步骤S31、将所述输入端口接收的激励数据、激励数据对应的时钟数据作为待存储数据,将所述待存储数据按序存储至所述第一存储区域中,当所述第一存储区域存满后,再返回所述第一存储区域的起始位置以循环覆盖的方式按序存储所述待存储数据;
步骤S32、将FPGA原型验证系统的状态数据存储至所述第二存储区域中,建立FPGA原型验证系统的状态数据和激励数据的映射关系。
4.根据权利要求1所述的方法,其特征在于,
所述FPGA原型验证系统还包括设置在所述FPGA板上的触发配置表和数据处理模块,所述步骤S4包括:
步骤S401、所述数据处理模块实时从FPGA原型系统的预设接口读取中间状态数据,基于所述输出数据和触发配置表确定目标触发点。
5.根据权利要求3所述的方法,其特征在于,
所述步骤S4包括:
步骤S41、当所述FPGA原型验证系统运行至目标触发点之后,根据预设的相对触发点的存储比例向所述第一存储区域中存储待存储数据,然后将所述第一存储区域中的数据确定为目标范围内的所激励数据、激励数据对应的时钟数据;
步骤S42、从所述第二存储区域中,获取目标范围内的激励数据对应的FPGA原型验证系统的状态数据。
6.根据权利要求1所述的方法,其特征在于,
所述目标debug数据包括(E1,E2,…,En,…,EN),En为第n组目标debug数据,En=(E1n,E2n,E3n),E1n为En对应的激励数据,E2n为E1n对应的时钟数据,E3n为En对应的起始FPGA原型验证系统的状态数据,E1,E2,…,En,…,EN按照时序排序,所述步骤S5包括:
步骤S51、设置N个RTL仿真模型;
步骤S52、将第n个RTL仿真模型的起始状态设置为E3n;
步骤S53、并行将每一E1n输入对应的第n个RTL仿真模型中进行仿真,根据E1n和E2n的对应关系设置时钟数据,实时观测每一RTL仿真模型中信号的变化,确定目标异常点。
7.根据权利要求6所述的方法,其特征在于,
所述步骤S53包括:
步骤S531、在并行将每一E1n输入对应的第n个RTL仿真模型中进行仿真的过程中,若基于第n个RTL仿真模型出现异常点,则结束第(n+1)个RTL仿真模型至第N个RTL仿真模型的仿真操作,N个RTL仿真模型仿真均结束后,将最先出现的异常点确定为目标异常点。
8.根据权利要求1-7中任意一项所述的方法,其特征在于,
激励数据对应的时钟数据为时钟频率。
9.一种电子设备,其特征在于,包括:
至少一个处理器;
以及,与所述至少一个处理器通信连接的存储器;
其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被设置为用于执行前述权利要求1-8任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,存储有计算机可执行指令,所述计算机可执行指令用于执行前述权利要求1-8中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311731729.1A CN117724914A (zh) | 2023-12-15 | 2023-12-15 | 芯片FPGA原型验证的debug方法、电子设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311731729.1A CN117724914A (zh) | 2023-12-15 | 2023-12-15 | 芯片FPGA原型验证的debug方法、电子设备和介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117724914A true CN117724914A (zh) | 2024-03-19 |
Family
ID=90204762
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311731729.1A Pending CN117724914A (zh) | 2023-12-15 | 2023-12-15 | 芯片FPGA原型验证的debug方法、电子设备和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117724914A (zh) |
-
2023
- 2023-12-15 CN CN202311731729.1A patent/CN117724914A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113312879B (zh) | 芯片电路功能验证系统、方法、设备及存储介质 | |
CN113076227B (zh) | Mcu验证方法、系统和终端设备 | |
KR20210149045A (ko) | 인공 지능 칩 검증 | |
US8271252B2 (en) | Automatic verification of device models | |
US8711160B1 (en) | System and method for efficient resource management of a signal flow programmed digital signal processor code | |
CN110941934A (zh) | 一种fpga原型验证开发板分割仿真系统、方法、介质及终端 | |
CN115705446A (zh) | 集成电路的后仿真方法和装置 | |
CN117150995B (zh) | 驱动源码追踪方法、电子设备和介质 | |
CN117910398A (zh) | 仿真逻辑系统设计的方法、电子装置和存储介质 | |
CN117634370A (zh) | 一种Verilog代码的功能验证方法及平台 | |
CN117435483A (zh) | 基于Formal工具的仿真验证激励生成方法、装置、介质及终端 | |
KR102558036B1 (ko) | Python을 활용한 RTL 설계 검증 자동화 방법 및 시스템 | |
CN117724914A (zh) | 芯片FPGA原型验证的debug方法、电子设备和介质 | |
CN115470125B (zh) | 基于日志文件的调试方法、设备以及存储介质 | |
CN112580291B (zh) | 一种进行集成电路实验的方法和设备 | |
CN117724912A (zh) | 芯片fpga原型验证的目标触发点确定系统 | |
CN111679924B (zh) | 构件化软件系统可靠性仿真方法、装置及电子设备 | |
US9600613B1 (en) | Block-level code coverage in simulation of circuit designs | |
CN114416460A (zh) | 分析基带性能的方法和仿真系统 | |
CN117724913A (zh) | 芯片FPGA原型验证的目标debug数据获取系统 | |
JPH0962720A (ja) | デジタル信号処理回路シミュレーション装置 | |
US7650579B2 (en) | Model correspondence method and device | |
CN115292102B (zh) | 仿真方法、电子设备、可读存储介质 | |
CN115510782B (zh) | 定位验证错误的方法、电子设备和存储介质 | |
CN116151187B (zh) | 处理触发条件的方法、装置和存储介质 |
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 |