CN113805860A - 基于c语言的代码生成方法、装置、电子设备及存储介质 - Google Patents
基于c语言的代码生成方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN113805860A CN113805860A CN202110981874.XA CN202110981874A CN113805860A CN 113805860 A CN113805860 A CN 113805860A CN 202110981874 A CN202110981874 A CN 202110981874A CN 113805860 A CN113805860 A CN 113805860A
- Authority
- CN
- China
- Prior art keywords
- data
- verified
- code
- operation mode
- language
- 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
- 238000000034 method Methods 0.000 title claims abstract description 67
- 238000013507 mapping Methods 0.000 claims abstract description 22
- 230000005540 biological transmission Effects 0.000 claims description 20
- 230000004044 response Effects 0.000 claims description 8
- 239000000126 substance Substances 0.000 claims 1
- 238000012795 verification Methods 0.000 abstract description 64
- 230000000694 effects Effects 0.000 abstract description 12
- 238000012423 maintenance Methods 0.000 abstract description 6
- 238000004088 simulation Methods 0.000 description 62
- 230000006870 function Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 6
- 238000004590 computer program Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 238000011161 development Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/31—Programming languages or programming paradigms
- G06F8/315—Object-oriented languages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
- G06F30/3308—Design verification, e.g. functional simulation or model checking using simulation
Abstract
本申请提出一种基于C语言的代码生成方法、装置、电子设备及存储介质,其中,该方法包括:生成SV语言数据包,并根据SV语言数据包映射生成对应的C语言数据包,其中,C语言数据包中包括运行模式和地址信息;在C语言驱动和SV语言驱动的驱动下,根据运行模式和地址信息,获取待验证代码对应的运行模式的写入数据;将运行模式的写入数据,写入待验证代码并运行,以获取待验证数据;获取参考代码,根据写入数据运行参考代码,生成参考数据;根据待验证数据和参考数据,生成目标代码。本申请中,待验证代码的相关配置信息可以实现自主传输,降低了人工操作以及代码维护的成本,从而有效提高了芯片验证的效率,优化了芯片验证的效果。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种基于C语言的代码生成方法、装置、电子设备及存储介质。
背景技术
随着技术的发展,为了实现多种芯片的工作场景,需要对芯片的多种功能进行性能的验证。
相关技术中,驱动工程师可以基于验证环境所用的语言环境,人工编辑相关配置参数,并通过设定方式传输给验证工程师,验证工程师基于该配置参数对芯片性能进行验证,人工成本耗费较大,维护成本较高。
发明内容
本申请的目的旨在至少在一定程度上解决上述技术中的技术问题之一。
本申请提出一种基于C语言的代码生成方法,以人工成本的消耗,有效提升验证效率。
本申请第一方面提出了一种基于C语言的代码生成方法,包括:生成SV语言数据包,并根据所述SV语言数据包映射生成对应的C语言数据包,其中,所述C语言数据包中包括运行模式和地址信息;在C语言驱动和SV语言驱动的驱动下,根据所述运行模式和所述地址信息,获取待验证代码对应的运行模式的写入数据;将所述运行模式的写入数据,写入所述待验证代码并运行,以获取待验证数据;获取参考代码,根据所述写入数据运行所述参考代码,生成参考数据;根据所述待验证数据和所述参考数据,生成目标代码。
本申请第一方面提出的一种基于C语言的代码生成方法,还具备如下技术特征,包括:
根据本申请一实施例,所述在C语言驱动和SV语言驱动的驱动下,根据所述运行模式和所述地址信息,获取待验证代码对应的运行模式的写入数据,包括:运行C语言驱动,将所述运行模式和所述地址信息传输至第一模拟数据接口,并运行SV语言驱动,将所述运行模式和所述地址信息写入所述第一模拟数据接口,其中,所述第一模拟数据接口用于将所述运行模式和所述地址信息传输至第一模拟寄存器;从所述第一模拟寄存器中读取所述运行模式和所述地址信息;在所述运行模式下,根据所述地址信息,获取所述运行模式的所述写入数据。
根据本申请一实施例,所述在所述运行模式下,根据所述地址信息,获取所述运行模式的写入数据,包括:将从所述第一模拟寄存器中读取的所述存储地址,传输至第二模拟寄存器,其中,所述第二模拟寄存器用于将所述存储地址传输至第二模拟数据接口;根据所述存储地址,通过所述第二模拟数据接口获取所述写入数据,回传至所述第二模拟寄存器;从所述第二模拟寄存器中读取所述写入数据。
根据本申请一实施例,所述生成SV语言数据包,包括:获取所述运动模式和所述写入数据的存储地址之间的固定配置列表;根据所述待验证代码的待验证属性参数,从所述固定配置列表中确定所述运行模式和所述运行模式对应的所述写入数据的所述存储地址;根据所述存储地址生成所述地址信息,并基于所述运行模式和所述地址信息,生成所述SV语言数据包。
根据本申请一实施例,所述生成SV语言数据包,包括:根据所述待验证代码的所述待验证属性参数,从可用运行模式中,随机选择任一运行模式作为所述运行模式;随机地为所述运行模式匹配对应的所述写入数据的所述存储地址,并根据所述存储地址生成所述地址信息;基于所述运行模式和所述地址信息,生成所述SV语言数据包。
根据本申请一实施例,所述根据所述待验证数据和所述参考数据,生成目标代码,包括:响应于所述待验证数据和所述参考数据匹配,则将所述待验证代码确定为所述目标代码;响应于所述待验证数据和所述参考数据不匹配,则获取所述待验证代码的故障信息,对所述故障信息进行修复,并返回运行修复后的所述待验证代码,直至修复后的所述待验证数据和所述参考数据匹配,则生成所述目标代码。
本申请第二方面提出了一种基于C语言的代码生成装置,包括:映射模块,用于生成SV语言数据包,并根据所述SV语言数据包映射生成对应的C语言数据包,其中,所述C语言数据包中包括运行模式和地址信息;传输模块,用于在C语言驱动和SV语言驱动的驱动下,根据所述运行模式和所述地址信息,获取待验证代码对应的运行模式的写入数据;写入模块,用于将所述运行模式的写入数据,写入所述待验证代码并运行,以获取待验证数据;参考模块,用于获取参考代码,根据所述写入数据运行所述参考代码,生成参考数据;生成模块,用于根据所述待验证数据和所述参考数据,生成目标代码。
本申请第二方面提出的一种基于C语言的代码生成装置,还具备如下技术特征,包括:
根据本申请一实施例,所述传输模块,还用于:运行C语言驱动,将所述运行模式和所述地址信息传输至第一模拟数据接口,并运行SV语言驱动,将所述运行模式和所述地址信息写入所述第一模拟数据接口,其中,所述第一模拟数据接口用于将所述运行模式和所述地址信息传输至第一模拟寄存器;从所述第一模拟寄存器中读取所述运行模式和所述地址信息;在所述运行模式下,根据所述地址信息,获取所述运行模式的所述写入数据。
根据本申请一实施例,所述传输模块,还用于:将从所述第一模拟寄存器中读取的所述存储地址,传输至第二模拟寄存器,其中,所述第二模拟寄存器用于将所述存储地址传输至第二模拟数据接口;根据所述存储地址,通过所述第二模拟数据接口获取所述写入数据,回传至所述第二模拟寄存器;从所述第二模拟寄存器中读取所述写入数据。
根据本申请一实施例,所述映射模块,还用于:获取所述运行模式和所述写入数据的存储地址之间的固定配置列表;根据所述待验证代码的待验证属性参数,从所述固定配置列表中确定所述运行模式和所述运行模式对应的所述写入数据的所述存储地址;根据所述存储地址生成所述地址信息,并基于所述运行模式和所述地址信息,生成所述SV语言数据包。
根据本申请一实施例,所述映射模块,还用于:根据所述待验证代码的所述待验证属性参数,从可用运行模式中,随机选择任一运行模式作为所述运行模式;随机地为所述运行模式匹配对应的所述写入数据的所述存储地址,并根据所述存储地址生成所述地址信息;基于所述运行模式和所述地址信息,生成所述SV语言数据包。
根据本申请一实施例,所述生成模块,还用于:响应于所述待验证数据和所述参考数据匹配,则将所述待验证代码确定为所述目标代码;响应于所述待验证数据和所述参考数据不匹配,则获取所述待验证代码的故障信息,对所述故障信息进行修复,并返回运行修复后的所述待验证代码,直至修复后的所述待验证数据和所述参考数据匹配,则生成所述目标代码。
本申请第三方面实施例提出了一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本申请第一方面提出的基于C语言的代码生成方法。
本申请第四方面实施例提出了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行本申请第一方面提出的基于C语言的代码生成方法。
本申请第五方面实施例提出了一种计算机程序产品,当所述计算机程序产品中的指令处理器执行时,执行本申请第一方面提出的基于C语言的代码生成方法。
本申请提出的基于C语言的代码生成方法及装置,将SV语言数据包转化为C语言数据包,并通过C语言驱动的运行实现C语言数据包的信息传输,进一步地,通过SV语言驱动的运行实现C语言数据包中的信息的写入,从而使得待验证代码可以读取C语言数据包中的运行模式和地址信息,从而在该运行模式下获取对应的写入数据,并写入待验证代码中。待验证代码根据运行模式运行,从而生成待验证数据。获取参考数据后,基于参考数据与待验证数据的对比结果,生成目标代码。本申请中,通过C语言驱动程序和C语言数据包,使得待验证代码的相关配置信息可以实现自主传输,降低了人工操作以及代码维护的成本,从而有效提高了芯片验证的效率,优化了芯片验证的效果。
本申请附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。
附图说明
本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为本申请一实施例的基于C语言的代码生成方法的流程示意图;
图2为本申请另一实施例的基于C语言的代码生成方法的流程示意图;
图3为本申请一实施例的基于C语言的代码生成装置的示意图;
图4为本申请另一实施例的基于C语言的代码生成方法的流程示意图;
图5为本申请另一实施例的基于C语言的代码生成方法的流程示意图;
图6为本申请另一实施例的基于C语言的代码生成方法的流程示意图;
图7为本申请一实施例的基于C语言的代码生成装置的结构示意图;
图8为本申请另一实施例的基于C语言的代码生成装置的结构示意图;
图9是本申请一实施例的电子设备的框图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本申请,而不能理解为对本申请的限制。
下面参考附图描述本公开实施例的基于C语言的代码生成方法、装置、电子设备及存储介质。
图1为本申请一实施例的基于C语言的代码生成方法的流程示意图,如图1所示,该方法包括:
S101,生成SV语言数据包,并根据SV语言数据包映射生成对应的C语言数据包,其中,C语言数据包中包括运行模式和地址信息。
伴随着芯片技术的发展,芯片的应用规模也越来越大,对于芯片性能的验证工作在整个芯片设计的流程中的占比也越来越重。因此,需要更加快速高效的实现对于芯片性能的验证。
可选地,可以为芯片的性能验证搭建对应的验证环境,比如,基于硬件描述和验证语言(system verilog,SV)实现通用验证方法学(UVM)的验证环境的搭建,并编写可模拟芯片的待验证代码。
由于待验证代码可以模拟芯片的各种功能的实现,因此,可以通过对待验证代码的验证来实现对芯片性能的验证,有效降低芯片验证的成本,优化了可操作性。
本申请实施例中,可以将SV语言数据包映射生成C语言数据包,可以理解为,SV语言数据包将其本身的有效信息,比如运行模式和地址信息,通过映射的方法,映射至空白C语言数据包中,进而生成与SV语言携带相同有效信息的C语言数据包。
进一步地,可以基于待验证代码待验证性能构建SV语言数据包,并将其进行格式映射,生成相应的C语言数据包。可以理解为,从SV语言数据包中提取待验证代码验证的相关有效信息,并在C语言的环境下进行编辑,从而生成与SV语言数据包中携带的信息相同的C语言数据包。
其中,SV语言数据包中包括了待验证代码的设定运行模式,以及在该运行模式下待验证代码运行所需的数据的地址信息,因此,生成的C语言数据包中同样包括了待验证代码的设定运行模式,以及在该运行模式下待验证代码运行所需的数据的地址信息。
通过地址信息可以获取相关数据,并基于设定的运行模式运行,从而实现待验证代码的运行。
S102,在C语言驱动和SV语言驱动的驱动下,根据运行模式和地址信息,获取待验证代码对应的运行模式的写入数据。
本申请实施例中,由于整体的验证环境是基于SV语言搭建的,因此,需要与C语言数据包对应的驱动程序,使得C语言数据包可以在SV语言的环境中实现数据传输。
因此,可以预先定义C语言驱动程序,基于C语言驱动程序的运行,使得C语言数据包可以在验证环境中的有效传输。
实现中,C语言数据包需要传输至设定的模块,从而使得待验证代码可以获取到C语言数据包中的相关数据。由于接收C语言数据包的设定模块为SV语言环境下的设定模块,因此,为了将C语言数据包中的相关数据写入设定模块,需要调用SV语言驱动,基于SV语言驱动的运行,使得C语言数据包中的运行模式,和运行模式下可用的写入数据的地址信息可以被写入设定的模块。
进一步地,待验证代码从设定模块中读取运行模式,并通过该运行模式,根据写入数据的地址信息获取待验证代码运行所需的写入数据。
S103,将运行模式的写入数据,写入待验证代码并运行,以获取待验证数据。
实现中,芯片可以实现多种功能,因此,可以通过对每种功能的单独验证从而实现对于芯片性能的整体验证。进一步地,通过对待验证代码每种性能的单独验证,从而实现对于待验证代码的整体性能的验证。
其中,C语言数据包中的运行模式,可以理解为,可以实现待验证代码当前需要验证的性能的代码运行模式。
进一步地,运行模式中包括了写入数据的获取策略,通过该获取策略,从写入数据的存储地址中获取当前待验证代码验证所需的写入数据,并写入待验证代码。
比如,设定运行模式包括的写入数据的获取策略为,N个地址为一组,每次获取N个存储地址对应的N组写入数据,因此,从第一个存储地址顺序读取地址信息,获取N个存储地址后,从该N个存储地址获取N组写入数据,写入待验证代码。
然后返回从N+1个存储地址开始,获取N+1至N+N共N个的存储地址,继续获取N组写入数据,并写入待验证代码,直至获取全部的写入数据。
进一步地,运行模式限定了待验证代码运行方式,因此,在全部的写入数据写入待验证代码后,基于该限定的运行方式运行待验证代码。
可选地,可以预先定义写入数据的使能位的使能状态对应的取值,基于该使能位的状态取值可以实现对待验证代码的运行控制,可以理解为,基于识别到的写入数据中的使能位的取值,判断待验证代码是否开始运行。
进一步地,当待验证代码识别到任一条写入数据的使能位的取值对应非使能状态时,则继续进行写入数据的获取。
相应地,当待验证代码识别到任一条写入数据的使能位的取值对应使能状态时,则停止写入数据的获取,并将该条写入数据作为最后一条写入数据。基于使能位的使能状态,使用当前获取到的写入数据在运行模式下运行待验证代码,进而获取当前验证的待验证数据。
S104,获取参考代码,根据写入数据运行参考代码,生成参考数据。
本申请实施例中,为了确定待验证代码的性能实现的效果,可以通过与参考数据的对比,从而实现待验证代码验证结果的确定。
因此,可以获取参考代码,将待验证代码获取到的写入数据写入参考代码中,并运行参考代码,进而生成参考数据。
需要说明的是,参考代码可以与待验证代码不同,可以理解为,参考代码与待验证代码在正确无误的状态下的性能相同,任一可以实现上述效果的代码均可以被设定为参考代码,此处不做限定。
S105,根据待验证数据和参考数据,生成目标代码。
本申请实施例中,可以将待验证数据与参考数据进行对比,并通过对比结果实现待验证代码验证结果的确定。
进一步地,当待验证代码的验证结果无误时,可以理解为,当前待验证代码的性能满足实际所需,因此,可以将当前验证的待验证代码确定为目标代码。
实现中,可以基于不同性能对应的属性参数,对待验证代码进行多次验证,并通过对不同的属性参数对应的验证结果的综合分析,实现待验证代码的完整验证。
可选地,可以将待验证代码在不同的属性参数下的验证结果存储在设定的待验证数据存储位置,在每个轮次的待验证代码的验证过程中,根据每个轮次输出的验证结果确定当前验证的待验证代码的待验证数据是否与参考数据匹配,并根据匹配结果对当前轮次验证的待验证代码进行相应的处理。
进一步地,完成当前轮次的待验证代码的验证后,根据下一轮次需要验证的待验证代码的属性参数,生成相应的SV语言数据包,并继续进行映射转化,生成相应的C语言数据包,进而进行后续的验证工作,直至待验证代码完成全部的验证工作,并生成目标代码。
本申请提出的基于C语言的代码生成方法,将SV语言数据包转化为C语言数据包,并通过C语言驱动的运行实现C语言数据包的信息传输,进一步地,通过SV语言驱动的运行实现C语言数据包中的信息的写入,从而使得待验证代码可以读取C语言数据包中的运行模式和地址信息,从而在该运行模式下获取对应的写入数据,并写入待验证代码中。待验证代码根据运行模式运行,从而生成待验证数据。获取参考数据后,基于参考数据与待验证数据的对比结果,生成目标代码。本申请中,通过C语言驱动程序和C语言数据包,使得待验证代码的相关配置信息可以实现自主传输,降低了人工操作以及代码维护的成本,从而有效提高了芯片验证的效率,优化了芯片验证的效果。
上述实施例中,关于C语言数据包的传输和写入,可结合图2进一步理解,图2为本申请另一实施例的基于C语言的代码生成方法的流程示意图,如图2所示,该方法包括:
S201,运行C语言驱动,将运行模式和地址信息传输至第一模拟数据接口,并运行SV语言驱动,将运行模式和地址信息写入第一模拟数据接口,其中,第一模拟数据接口用于将运行模式和地址信息传输至第一模拟寄存器。
本申请实施例中,芯片性能的验证环境可以如图3所示,包括C语言数据包模拟生成器31、第一模拟数据接口32、第一模拟寄存器33、待验证代码模拟运行器34、第二模拟寄存器35、第二模拟数据接口36、写入数据模拟存储器37以及待验证数据模拟存储器38。
其中,C语言数据包模拟生成器可以将SV语言数据包进行映射,进而生成相应的C语言数据包,并基于C语言驱动的运行,将C语言数据包传输至第一模拟数据接口32。
实现中,第一模拟数据接口32是SV语言环境下的模拟数据接口,因为,为了将C语言数据包中携带的相关信息写入第一模拟数据接口32中,可以运行SV语言驱动,基于SV语言驱动的运行,将C语言数据包中携带的相关信息写入SV语言环境下的第一模拟数据接口32.
可选地,可以将C语言数据包中的运行模式和地址信息逐条写入第一模拟数据接口32中,其中,每写入一条运行模式和地址信息,需要调用一次SV语言驱动,直至全部的运行模式和地址信息写入第一模拟数据接口32中。
进一步地,第一模拟数据接口32将写入其中的运行模式和写入数据的地址信息传输至第一模拟寄存器33中。
可选地,第一模拟数据接口32可以逐条将运行模式和地址信息进行传输,可以理解为,当第一模拟数据接口32调用SV语言驱动写入一条运行模式和地址信息时,将写入的信息直接传输至第一模拟寄存器33,直至全部的信息传输完毕。
需要说明的是,第一模拟数据接口32和第一模拟寄存器33之间可以基于APB总线传输协议进行数据传输,也可以基于其他可以传输运行模式和地址信息的协议进行数据传输,此处不做限定。
S202,从第一模拟寄存器中读取运行模式和地址信息。
本申请实施例中,第一模拟寄存器33获取到C语言数据包中的全部信息后,待验证代码模拟运行器34可以从第一模拟寄存器33里读取信息。
可选地,可以基于APB协议从第一模拟寄存器33中读取运行模式,以及地址信息,其中,运行模式限定了待验证代码的运行方式,地址信息可以指向写入数据的存储地址。
S203,在运行模式下,根据地址信息,获取运行模式的写入数据。
本申请实施例中,运行模式可以限定写入数据的获取策略,该获取策略限定了写入数据的获取次数以及每次获取的写入数据的数量。
进一步地,将从第一模拟寄存器中读取的存储地址,传输至第二模拟寄存器,其中,第二模拟寄存器用于将存储地址传输至第二模拟数据接口。
实现中,待验证代码模拟运行器34可以从第一模拟寄存器33中读取存储地址,并将其传输至第二模拟寄存器35,第二模拟寄存器35将地址信息传输至第二模拟数据接口36。
可选地,待验证代码模拟运行器34、第二模拟寄存器35、第二模拟数据接口36可以基于片上总线协议(the Advanced Peripheral Bus,APB)进行存储地址的信息传输,也可以基于其他可以传输地址信息的协议,此处不做限定。
进一步地,根据存储地址,通过第二模拟数据接口36获取写入数据,回传至第二模拟寄存器35。
实现中,存储地址指向了写入数据的存储位置,因此,基于获取到的存储地址,可以实现对于该地址存储的写入数据的获取。
可选地,可以通过第二模拟数据接口36进行写入数据的获取,第二模拟寄存器35将地址信息传输至第二模拟数据接口36,第二模拟数据接口36从存储信息中携带的位置获取到写入数据后,回传至第二模拟寄存器35中。
进一步地,从第二模拟寄存器中读取写入数据。
实现中,写入数据回传至第二模拟寄存器35中后,待验证代码模拟运行器34可以从第二模拟寄存器35中读取其中的写入数据,并写入待验证代码中。
比如,运行模式限定了写入数据的获取策略是逐条实现的,则在该模式下,待验证代码模拟运行器34从第一模拟寄存器33中逐条读取一条写入数据的存储地址,并将该条存储地址传输给第二模拟寄存器35,第二模拟寄存器35将该条存储地址传输至第二模拟数据接口36,第二模拟数据接口36从写入数据模拟存储器37上,获取该条存储地址上的写入数据,并回传至第二模拟寄存器35中。
进一步地,待验证代码模拟运行器34从第二模拟寄存器35中读取该条写入数据,并将其写入待验证代码。写入待验证代码后,待验证代码模拟运行器34继续从第一模拟寄存器33中获取下一条写入数据的存储地址,并将其传输至第二模拟寄存器35中,第二模拟寄存器35将该条存储地址传输至第二模拟数据接口36,第二模拟数据接口36从写入数据模拟存储器37上,获取该条存储地址上的写入数据,并回传至第二模拟寄存器35中,进一步地,待验证代码模拟运行器34从第二模拟寄存器35中读取该条写入数据,并将其写入待验证代码。
以此类推,直至待验证代码模拟运行器34读取到全部的写入数据,并将其全部写入待验证代码中。
进一步地,待全部的写入数据写入待验证代码中后,待验证代码可以基于从第一模拟寄存器33中读取的运行模型运行待验证代码,进而获取本次验证的待验证数据。
本申请提出的基于C语言的代码生成方法,通过C语言驱动的运行,将C语言数据包传输至第一模拟数据接口,并基于SV语言驱动的运行,将C语言数据包中的运行模式和地址信息写入第一模拟数据接口,进而将运行模式和地址信息传输至第一模拟寄存器中,待验证代码从第一模拟寄存器中读取运行模型和地址信息,并基于运行模式将地址信息传输至第二模拟寄存器中,第二模拟寄存器将地址信息传输至第二模拟数据接口,第二模拟数据接口基于地址信息获取写入数据,并回传至第二模拟寄存器,待验证代码从第二模拟寄存器中读取写入数据并将其写入待验证代码。本申请中,通过C语言驱动程序和C语言数据包,使得待验证代码的相关配置信息可以实现自主传输,降低了人工操作以及代码维护的成本,从而有效提高了芯片验证的效率,优化了芯片验证的效果。
本申请实施例中,SV语言数据包的生成是芯片验证得以实现的基础,其中,可以基于芯片的待验证性能确定SV语言数据包中需要携带的相关信息。
作为一种可能的实现方式,可以通过固定的配置确定SV语言数据包中的相关信息,可结合图4进一步理解,图4为本申请另一实施例的基于C语言的代码生成方法的流程示意图,如图4所示,该方法包括:
S401,获取运行模式和写入数据的存储地址之间的固定配置列表。
本申请实施例中,由于芯片可以实现多种类型的功能,因此,在对芯片的性能进行验证的过程中,待验证代码存在多种运行模式。可以理解为,不同的性能的验证对应着不同的运行模式,因此,可以基于待验证代码当前进行验证的性能确定其运行模式。
实现中,验证环境中的写入数据可能无法在每个运行模式下实现通用,因此,可以预先对每个运行模式下可以使用的写入数据进行配置,进而生成运行模式和写入数据的存储地址之间的固定配置列表。
可以理解为,固定配置列表中,运行模式与其对应的写入数据的存储地址可以打包生成一组数据,在进行SV语言数据包的生成过程中,确定运行模式后,直接将与该运行模式同组的存储地址作为地址信息。
可选地,固定配置列表可以由人工预先定义,其中,可以根据历史验证数据的相关信息,确定在每个运行模式下,运行效果与验证效果较好的写入数据,并将该部分写入数据的存储地址与对应的运行模式配置为一组数据。进一步地,将全部的运行模式对应的数据组进行整合,从而生成固定配置列表。
需要说明的是,固定配置列表中运行模式和写入数据的存储地址之间的配置关系,在实际的芯片运行中同样适用。
S402,根据待验证代码的待验证属性参数,从固定配置列表中确定运行模式和运行模式对应的写入数据的存储地址。
进一步地,根据待验证代码所需验证的属性参数,可以从固定配置列表中选择可用的运行模式,以及该运行模式下对应的写入数据的存储地址。
可选地,可以预先构建待验证属性参数和运行模式之间的连接关系,以及运行数据和其固定匹配的写入数据的存储信息之间的连接关系,并存储于设定位置。
当确定待验证代码的待验证属性参数时,基于该连接关系即可确定对应的运行模式。进一步地,从固定配置列表中选择运行模式后,基于运行模式和写入数据的存储地址之间的连接关系,获取对应的存储地址。
S403,根据存储地址生成地址信息,并基于运行模式和地址信息,生成SV语言数据包。
本申请实施例中,SV语言数据包存在设定的格式,因此,获取到存储地址后,可以将存储地址生成相应的地址信息,与运行模式一起写入空白SV语言数据包中,从而生成本次待验证代码验证所需的SV语言数据包。
本申请提出的基于C语言的代码生成方法,预定义运行模式和存储地址之间的固定配置列表,基于待验证的属性参数从固定配置列表中确定运行模式和对应的写入数据的存储地址,从而生成SV语言数据包。本申请中,基于固定配置列表中的配置关系,确定运行模式以及对应的写入数据的存储地址,优化了待验证代码的验证效果,有效提高了SV语言数据包的生成效率,从而提高了芯片性能对应的待验证代码的验证效率。
作为另一种可能实现的方式,可以为SV语言数据包随机配置其中的相关信息,可结合图5进一步理解,图5为本申请另一实施例的基于C语言的代码生成方法的流程示意图,如图5所示,该方法包括:
S501,根据待验证代码的待验证属性参数,从可用运行模式中,随机选择任一运行模式作为运行模式。
本申请实施例中,验证环境中存在多种待验证代码的运行模式,其中,不同的性能的验证对应着不同的运行模式。
实现中,待验证代码是基于硬件模拟语言模拟的待验证芯片,由于需要对待验证芯片的不同性能分别进行验证,因此,可以将待验证芯片所需验证的不同性能与待验证代码的属性参数一一映射,使得可以基于对验证代码的不同属性参数的验证,实现对于待验证芯片的不同性能的验证。
进一步地,为了更加直观的获取待验证芯片的不同性能的验证结果,待验证芯片可以通过不同的方式运行,从而使得运行的结果可以更加直观的呈现待验证性能的当前状态。
相应地,可以根据待验证代码需要验证的不同的属性参数,为其配置相应的运行模式,从而使得运行结果可以更加直观的呈现待验证属性参数的当前状态。
因此,可以根据待验证代码的待验证的属性参数,从可以实现该属性参数验证的运行模式中,随机地选择一个,作为待验证代码的运行模式。
S502,随机地为运行模式匹配对应的写入数据的存储地址,并根据存储地址生成地址信息。
本申请实施例中,每个运行模式下存在多条可以在该运行模式下运行的写入数据。
因此,确定运行模式后,可以随机地从该运行模式下可用的多条写入数据对应的存储地址中,随机选择设定数量的写入数据的存储地址,进一步地,基于SV语言数据包的格式设定,将写入数据的存储地址生成相应的地址信息。
可选地,为了保证待验证代码的验证效果,写入数据的存储地址存在设定的数量门限值,因此,可以在大于或者等于该门限值,同时小于写入数据的存储地址的上限值的范围内,为运行模式随机选择一定数量的写入数据的存储地址。
S503,基于运行模式和地址信息,生成SV语言数据包。
本申请实施例中,可以将运行模式和地址信息写入空白SV语言数据包中,从而生成相应的SV语言数据包。
本申请提出的基于C语言的代码生成方法,通过随机配置的方法,为待验证代码确定运行模式和地址信息,从而生成相应的SV语言数据包。本申请中,随机地为待验证代码确定运行模式和写入数据的存储地址,有效降低了人工消耗成本。
上述实施例中,根据待验证数据和参考数据之间的对比结果,实现待验证代码的验证,可结合图6进一步理解,图6为本申请另一实施例的基于C语言的代码生成方法的流程示意图,如图6所示,该方法包括:
S601,响应于待验证数据和参考数据匹配,则将待验证代码确定为目标代码。
本申请实施例中,可以将待验证数据和参考数据之间进行对比,并基于对比的结果对待验证代码的性能进行判断。
进一步地,当待验证数据与参考数据之间匹配时,可以理解为,当前验证的待验证代码的性能与参考代码的性能匹配,因此,当前验证的待验证代码所模拟的芯片的性能可以满足实际应用所需。
在该场景下,可以将当前验证的待验证代码确定为目标代码。
S602,响应于待验证数据和参考数据不匹配,则获取待验证代码的故障信息,对故障信息进行修复,并返回运行修复后的待验证代码,直至修复后的待验证数据和参考数据匹配,则生成目标代码。
本申请实施例中,当待验证数据与参考数据不匹配时,可以理解为,当前验证的待验证代码的性能,与参考代码的性能之间存在差距,因此,当前验证的待验证代码所模拟的芯片,在当前验证的属性参数对应的性能方面,无法满足实际所需。
可选地,在该场景下,待验证代码可以输出响应的故障信息返回码,根据返回码中携带的故障类型和故障位置,可以对当前验证的待验证代码进行修复。
进一步地,为了验证修复的效果,可以对修复后的待验证代码再次进行相同属性参数的验证,并生成新的待验证数据。
将新的待验证数据与参考数据进行比较,并基于比较结果再次对待验证代码的验证结果进行判断。直至新的待验证数据与参考数据匹配,则可以理解为,修复后的待验证代码的性能与参考代码的性能匹配,因此,待验证代码模拟的芯片的性能可以满足实际所需。
进一步地,则可以将该修复完成的待验证代码作为目标代码输出。
需要说明的是,对待验证代码的验证是根据不同的属性参数分别进行多次的运行验证,从而实现待验证代码的整体验证。因此,可以将验证的中间结果存储与设定的待验证数据模拟存储器中,在对全部的属性参数验证完毕后,从待验证数据模拟存储器中读取历史待验证数据,并基于历史待验证数据与历史参考数据的对比结果,实现待验证代码的整体验证结果的确定。
其中,如图3所示,待验证数据模拟存储器38与待验证代码模拟运行器34连接。
本申请提出的基于C语言的代码生成方法,通过参考数据与待验证数据之间的匹配结果,确定待验证代码的验证结果,从而实现目标代码的确定。本申请中,通过与参考数据的对比,使得待验证代码可以基于验证结果实现有效的修复调整,从而实现了对于待验证代码的有效验证。
与上述几种实施例提出的基于C语言的代码生成方法相对应,本申请的一个实施例还提出了一种基于C语言的代码生成装置,由于本申请实施例提出的基于C语言的代码生成装置与上述几种实施例提出的基于C语言的代码生成方法相对应,因此上述基于C语言的代码生成方法的实施方式也适用于本申请实施例提出的基于C语言的代码生成装置,在下述实施例中不再详细描述。
图7为本申请另一实施例的基于C语言的代码生成装置的结构示意图,如图7所示,基于C语言的代码生成装置700,包括映射模块71、传输模块72、写入模块73、参考模块74、生成模块75,其中:
映射模块71,用于生成SV语言数据包,并根据SV语言数据包映射生成对应的C语言数据包,其中,C语言数据包中包括运行模式和地址信息;
传输模块72,用于在C语言驱动和SV语言驱动的驱动下,根据运行模式和地址信息,获取待验证代码对应的运行模式的写入数据;
写入模块73,用于将运行模式的写入数据,写入待验证代码并运行,以获取待验证数据;
参考模块74,用于获取参考代码,根据写入数据运行参考代码,生成参考数据;
生成模块75,用于根据待验证数据和参考数据,生成目标代码。
图8为本申请另一实施例的基于C语言的代码生成装置的结构示意图,如图8所示,基于C语言的代码生成装置800,包括映射模块81、传输模块82、写入模块83、参考模块84、生成模块85,其中:
需要说明的是,映射模块71、传输模块72、写入模块73、参考模块74、生成模块75和映射模块81、传输模块82、写入模块83、参考模块84、生成模块85,具有相同的结构和功能。
本申请实施例中,传输模块82,还用于:
运行C语言驱动,将运行模式和地址信息传输至第一模拟数据接口,并运行SV语言驱动,将运行模式和地址信息写入第一模拟数据接口,其中,第一模拟数据接口用于将运行模式和地址信息传输至第一模拟寄存器;从第一模拟寄存器中读取运行模式和地址信息;在运行模式下,根据地址信息,获取运行模式的写入数据。
本申请实施例中,传输模块82,还用于:
将从第一模拟寄存器中读取的存储地址,传输至第二模拟寄存器,其中,第二模拟寄存器用于将存储地址传输至第二模拟数据接口;根据存储地址,通过第二模拟数据接口获取写入数据,回传至第二模拟寄存器;从第二模拟寄存器中读取写入数据。
本申请实施例中,映射模块81,还用于:
获取运行模式和写入数据的存储地址之间的固定配置列表;根据待验证代码的待验证属性参数,从固定配置列表中确定运行模式和运行模式对应的写入数据的存储地址;根据存储地址生成地址信息,并基于运行模式和地址信息,生成SV语言数据包。
本申请实施例中,映射模块81,还用于:
根据待验证代码的待验证属性参数,从可用运行模式中,随机选择任一运行模式作为运行模式;随机地为运行模式匹配对应的写入数据的存储地址,并根据存储地址生成地址信息;基于运行模式和地址信息,生成SV语言数据包。
本申请实施例中,生成模块85,还用于:
响应于待验证数据和参考数据匹配,则将待验证代码确定为目标代码;响应于待验证数据和参考数据不匹配,则获取待验证代码的故障信息,对故障信息进行修复,并返回运行修复后的待验证代码,直至修复后的待验证数据和参考数据匹配,则生成目标代码。
本申请提出的基于C语言的代码生成装置,将SV语言数据包转化为C语言数据包,并通过C语言驱动的运行实现C语言数据包的信息传输,进一步地,通过SV语言驱动的运行实现C语言数据包中的信息的写入,从而使得待验证代码可以读取C语言数据包中的运行模式和地址信息,从而在该运行模式下获取对应的写入数据,并写入待验证代码中。待验证代码根据运行模式运行,从而生成待验证数据。获取参考数据后,基于参考数据与待验证数据的对比结果,生成目标代码。本申请中,通过C语言驱动程序和C语言数据包,使得待验证代码的相关配置信息可以实现自主传输,降低了人工操作以及代码维护的成本,从而有效提高了芯片验证的效率,优化了芯片验证的效果。
为达到上述实施例,本申请还提出了一种电子设备、一种计算机可读存储介质和一种计算机程序产品。
为了实现上述实施例,本申请还提出一种存储有计算机指令的非瞬时计算机可读存储介质,计算机指令用于使计算机执行图1至图6实施例的基于C语言的代码生成方法。
为了实现上述实施例,本申请还提出一种计算机程序产品,当计算机程序产品中的指令处理器执行时,执行图1至图6实施例的基于C语言的代码生成方法。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本申请的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。如,如果用硬件来实现和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (14)
1.一种基于C语言的代码生成方法,其特征在于,包括:
生成SV语言数据包,并根据所述SV语言数据包映射生成对应的C语言数据包,其中,所述C语言数据包中包括运行模式和地址信息;
在C语言驱动和SV语言驱动的驱动下,根据所述运行模式和所述地址信息,获取待验证代码对应的运行模式的写入数据;
将所述运行模式的写入数据,写入所述待验证代码并运行,以获取待验证数据;
获取参考代码,根据所述写入数据运行所述参考代码,生成参考数据;
根据所述待验证数据和所述参考数据,生成目标代码。
2.根据权利要求1所述的方法,其特征在于,所述在C语言驱动和SV语言驱动的驱动下,根据所述运行模式和所述地址信息,获取待验证代码对应的运行模式的写入数据,包括:
运行C语言驱动,将所述运行模式和所述地址信息传输至第一模拟数据接口,并运行SV语言驱动,将所述运行模式和所述地址信息写入所述第一模拟数据接口,其中,所述第一模拟数据接口用于将所述运行模式和所述地址信息传输至第一模拟寄存器;
从所述第一模拟寄存器中读取所述运行模式和所述地址信息;
在所述运行模式下,根据所述地址信息,获取所述运行模式的所述写入数据。
3.根据权利要求2所述的方法,其特征在于,所述在所述运行模式下,根据所述地址信息,获取所述运行模式的写入数据,包括:
将从所述第一模拟寄存器中读取的所述存储地址,传输至第二模拟寄存器,其中,所述第二模拟寄存器用于将所述存储地址传输至第二模拟数据接口;
根据所述存储地址,通过所述第二模拟数据接口获取所述写入数据,回传至所述第二模拟寄存器;
从所述第二模拟寄存器中读取所述写入数据。
4.根据权利要求2所述的方法,其特征在于,所述生成SV语言数据包,包括:
获取所述运行模式和所述写入数据的存储地址之间的固定配置列表;
根据所述待验证代码的待验证属性参数,从所述固定配置列表中确定所述运行模式和所述运行模式对应的所述写入数据的所述存储地址;
根据所述存储地址生成所述地址信息,并基于所述运行模式和所述地址信息,生成所述SV语言数据包。
5.根据权利要求2所述的方法,其特征在于,所述生成SV语言数据包,包括:
根据所述待验证代码的所述待验证属性参数,从可用运行模式中,随机选择任一运行模式作为所述运行模式;
随机地为所述运行模式匹配对应的所述写入数据的所述存储地址,并根据所述存储地址生成所述地址信息;
基于所述运行模式和所述地址信息,生成所述SV语言数据包。
6.根据权利要求5所述的方法,其特征在于,所述根据所述待验证数据和所述参考数据,生成目标代码,包括:
响应于所述待验证数据和所述参考数据匹配,则将所述待验证代码确定为所述目标代码;
响应于所述待验证数据和所述参考数据不匹配,则获取所述待验证代码的故障信息,对所述故障信息进行修复,并返回运行修复后的所述待验证代码,直至修复后的所述待验证数据和所述参考数据匹配,则生成所述目标代码。
7.一种基于C语言的代码生成装置,其特征在于,包括:
映射模块,用于生成SV语言数据包,并根据所述SV语言数据包映射生成对应的C语言数据包,其中,所述C语言数据包中包括运行模式和地址信息;
传输模块,用于在C语言驱动和SV语言驱动的驱动下,根据所述运行模式和所述地址信息,获取待验证代码对应的运行模式的写入数据;
写入模块,用于将所述运行模式的写入数据,写入所述待验证代码并运行,以获取待验证数据;
参考模块,用于获取参考代码,根据所述写入数据运行所述参考代码,生成参考数据;
生成模块,用于根据所述待验证数据和所述参考数据,生成目标代码。
8.根据权利要求7所述的装置,其特征在于,所述传输模块,还用于:
运行C语言驱动,将所述运行模式和所述地址信息传输至第一模拟数据接口,并运行SV语言驱动,将所述运行模式和所述地址信息写入所述第一模拟数据接口,其中,所述第一模拟数据接口用于将所述运行模式和所述地址信息传输至第一模拟寄存器;
从所述第一模拟寄存器中读取所述运行模式和所述地址信息;
在所述运行模式下,根据所述地址信息,获取所述运行模式的所述写入数据。
9.根据权利要求8所述的装置,其特征在于,所述传输模块,还用于:
将从所述第一模拟寄存器中读取的所述存储地址,传输至第二模拟寄存器,其中,所述第二模拟寄存器用于将所述存储地址传输至第二模拟数据接口;
根据所述存储地址,通过所述第二模拟数据接口获取所述写入数据,回传至所述第二模拟寄存器;
从所述第二模拟寄存器中读取所述写入数据。
10.根据权利要求8所述的装置,其特征在于,所述映射模块,还用于:
获取所述运行模式和所述写入数据的存储地址之间的固定配置列表;
根据所述待验证代码的待验证属性参数,从所述固定配置列表中确定所述运行模式和所述运行模式对应的所述写入数据的所述存储地址;
根据所述存储地址生成所述地址信息,并基于所述运行模式和所述地址信息,生成所述SV语言数据包。
11.根据权利要求8所述的装置,其特征在于,所述映射模块,还用于:
根据所述待验证代码的所述待验证属性参数,从可用运行模式中,随机选择任一运行模式作为所述运行模式;
随机地为所述运行模式匹配对应的所述写入数据的所述存储地址,并根据所述存储地址生成所述地址信息;
基于所述运行模式和所述地址信息,生成所述SV语言数据包。
12.根据权利要求11所述的装置,其特征在于,所述生成模块,还用于:
响应于所述待验证数据和所述参考数据匹配,则将所述待验证代码确定为所述目标代码;
响应于所述待验证数据和所述参考数据不匹配,则获取所述待验证代码的故障信息,对所述故障信息进行修复,并返回运行修复后的所述待验证代码,直至修复后的所述待验证数据和所述参考数据匹配,则生成所述目标代码。
13.一种电子设备,其特征在于,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-6中任一项所述的方法。
14.一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述计算机指令用于使所述计算机执行权利要求1-6中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110981874.XA CN113805860A (zh) | 2021-08-25 | 2021-08-25 | 基于c语言的代码生成方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110981874.XA CN113805860A (zh) | 2021-08-25 | 2021-08-25 | 基于c语言的代码生成方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113805860A true CN113805860A (zh) | 2021-12-17 |
Family
ID=78894062
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110981874.XA Pending CN113805860A (zh) | 2021-08-25 | 2021-08-25 | 基于c语言的代码生成方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113805860A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114528792A (zh) * | 2022-02-18 | 2022-05-24 | 杭州爱芯元智科技有限公司 | 芯片验证方法、装置、电子设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170115969A1 (en) * | 2015-10-21 | 2017-04-27 | Vayavya Labs Pvt. Ltd | System and method for automatically generating device drivers for run time environments |
CN112306882A (zh) * | 2020-11-06 | 2021-02-02 | 山东云海国创云计算装备产业创新中心有限公司 | 一种基于c算法模型的芯片算法模块验证方法及系统 |
CN112685315A (zh) * | 2021-01-05 | 2021-04-20 | 电子科技大学 | 面向c源码的自动化形式化验证工具及方法 |
CN113032195A (zh) * | 2021-03-24 | 2021-06-25 | 上海西井信息科技有限公司 | 芯片仿真验证方法、系统、设备及存储介质 |
-
2021
- 2021-08-25 CN CN202110981874.XA patent/CN113805860A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170115969A1 (en) * | 2015-10-21 | 2017-04-27 | Vayavya Labs Pvt. Ltd | System and method for automatically generating device drivers for run time environments |
CN112306882A (zh) * | 2020-11-06 | 2021-02-02 | 山东云海国创云计算装备产业创新中心有限公司 | 一种基于c算法模型的芯片算法模块验证方法及系统 |
CN112685315A (zh) * | 2021-01-05 | 2021-04-20 | 电子科技大学 | 面向c源码的自动化形式化验证工具及方法 |
CN113032195A (zh) * | 2021-03-24 | 2021-06-25 | 上海西井信息科技有限公司 | 芯片仿真验证方法、系统、设备及存储介质 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114528792A (zh) * | 2022-02-18 | 2022-05-24 | 杭州爱芯元智科技有限公司 | 芯片验证方法、装置、电子设备及存储介质 |
CN114528792B (zh) * | 2022-02-18 | 2023-08-29 | 杭州爱芯元智科技有限公司 | 芯片验证方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101842821B (zh) | 无人驾驶交通工具模拟系统 | |
CN112286746B (zh) | 针对axi从设备接口的通用验证平台及方法 | |
CN106990983B (zh) | 单片机烧写方法、装置、系统及单片机 | |
CN110297472A (zh) | 设备控制方法、终端、受控设备、电子设备和存储介质 | |
KR20170115742A (ko) | 로봇 소프트웨어의 상호 운용성 시험 시나리오 생성 장치 및 방법 | |
US7957951B2 (en) | Address translation system for use in a simulation environment | |
CN113805860A (zh) | 基于c语言的代码生成方法、装置、电子设备及存储介质 | |
CN108196861A (zh) | 一种数据升级方法及其诊断设备 | |
CN115277882A (zh) | Can报文数据库建立方法、装置、车载电子设备及存储介质 | |
CN108749339A (zh) | 一种墙体彩绘打印方法、装置及墙体彩绘机 | |
CN113326670A (zh) | 原型验证系统、方法、处理单元、及设备 | |
US20220147040A1 (en) | Electronic Control Device and Method for Setting Control Data | |
CN114996067A (zh) | 适用于芯片验证的序列生成器的配置方法及其装置 | |
CN114780326B (zh) | 一种跨平台标定测试方法、装置及设备 | |
KR20230076317A (ko) | 모의 시험 장치 및 그 제어 방법 | |
CN114328063A (zh) | 基于映像机制的仿真方法、装置和电子设备 | |
WO2012105238A1 (ja) | デジタル制御装置およびその実行方法 | |
CN116227395B (zh) | 数字芯片的仿真测试方法、装置及电子设备 | |
CN111371799A (zh) | Mctp控制器收发数据的控制方法、装置及设备 | |
CN111177877A (zh) | 基于应用容器引擎的本地仿真方法、装置及存储介质 | |
JP7072697B1 (ja) | 電子制御装置、電子制御装置の試験装置、及び電子制御装置の試験方法 | |
JP2007172128A (ja) | I/oシミュレータ装置 | |
CN114444423B (zh) | 基于验证平台的数据处理方法、系统及电子设备 | |
CN110912840B (zh) | 基于交换机端口的统一接口装置及底层设备信息获取方法 | |
CN117540555A (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 |