CN115828840A - 一种用于soc自动仿真验证的方法及系统 - Google Patents
一种用于soc自动仿真验证的方法及系统 Download PDFInfo
- Publication number
- CN115828840A CN115828840A CN202211427733.4A CN202211427733A CN115828840A CN 115828840 A CN115828840 A CN 115828840A CN 202211427733 A CN202211427733 A CN 202211427733A CN 115828840 A CN115828840 A CN 115828840A
- Authority
- CN
- China
- Prior art keywords
- file
- format
- header file
- module
- 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
Images
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
- Debugging And Monitoring (AREA)
Abstract
本发明涉及SOC芯片技术领域,公开了一种用于SOC自动仿真验证的方法及系统。本发明针对当前传统的SOC验证需要大量人工辅助,不仅费时费力,而且也容易因验证过程的人为因素导致验证出现遗漏或错误的难点,设计出一种高效、快捷的SOC验证方法,该方法不仅解决了在SOC验证流程中费时费力的问题,杜绝了人为因素导致SOC仿真过程出现遗漏或错误的风险,节省了人力成本和时间成本,还能够灵活便捷地作为模块嵌入到SOC仿真验证的流程中,有效地提升了SOC验证的效率。
Description
技术领域
本发明涉及SOC芯片技术领域,具体涉及一种用于SOC自动仿真验证的方法及系统。
背景技术
SOC是系统级芯片的简称,当前,随着片上系统功能复杂度的急剧增加,芯片的规模越来越大,芯片的功能验证越来越重要和复杂,给SOC的验证环节带来了巨大的挑战,在整个SOC的开发环节之中,验证成为最耗时的环节。
当前,对于SOC验证来说,往往由验证人员去统一整理各个IP的中断号、地址空间定义、寄存器地址来进行SOC的验证,而由于IP内部寄存器数量众多,且每个IP的验证需要涉及中断、寄存器访问等基本操作,导致传统的SOC验证不仅工作量大、费时费力,而且也容易因验证过程的人为因素导致验证容易出现遗漏或错误。因此,设计出一种高效、快捷的SOC验证方法对提高SOC的开发速度具有重要的意义。
发明内容
为了解决上述背景技术中提到的至少一个问题,本发明提出了一种用于SOC自动仿真验证的方法及系统。
一种用于SOC自动仿真验证的方法,包括步骤:
步骤S1,在验证环境中,导入验证程序并新建公共目录;
步骤S2,建立验证过程中的文档,通过代码将文档解析成头文件,并将解析得到的头文件放置在公共目录下,
文档包括:地址空间映射文档、中断列表文档和IP寄存器描述文档,
头文件包括:.h格式头文件、.S格式头文件、.svh格式头文件和.sv格式头文件,
具体解析过程为:
将中断列表文档解析为.h格式、.S格式的中断头文件,以及.svh格式的头文件;
将地址空间映射文档解析为.h格式、.S格式的地址空间映射头文件,以及.svh格式的地址空间映射头文件;
将IP寄存器描述文档解析为.h格式的IP偏移地址头文件、.h格式的IP寄存器模型头文件,以及.sv格式的寄存器模型文件。
步骤S3,用C语言、shell语言、python语言和systemverilog语言编写第一模块,调用代码编译工具对第一模块进行编译并生成存储器编程文件,
具体过程为:
步骤S301,通过代码编写用于提取路径的第一模块;
步骤S302,第一模块提取出公共目录下头文件的路径,并将提取到的路径导入到第一模块中;
步骤S303,调用代码编译工具,对第一模块进行编译;
步骤S304,编译生成hex文件,并由验证环境将生成的hex文件加载到内存中。
步骤S4,用C语言、shell语言、python语言和systemverilog语言编写第二模块,对第二模块进行编译并生成可执行文件,并通过执行可执行文件进行仿真,具体过程为:
步骤S401,通过代码编写用于提取路径的第二模块;
步骤S402,第二模块提取公共目录下的头文件、寄存器模型文件,并导入到第二模块中;
步骤S403,调用代码编译工具,对第二模块进行编译来生成可执行文件;
步骤S404,生成的可执行文件通过与存储器编程文件建立链接,来实现对存储器编程文件的调用。
步骤S5,通过执行可执行文件来进行仿真,并通过输出日志结果判断是否仿真成功,具体过程为:
步骤S501,通过执行可执行文件来进行仿真;
步骤S502,输出仿真的日志结果并进行保存;
步骤S503,通过查看仿真的日志结果输出来判断是否仿真成功,具体的,
如果日志结果输出为“False”字段,则表示执行仿真失败;
如果日志结果输出为“True”字段,则表示执行仿真成功。
一种用于SOC自动仿真验证的系统,包括:
执行单元,其配置为在验证环境中,导入验证程序并执行该验证程序;
解析单元,其配置为将文档解析成头文件;
文档包括:地址空间映射文档、中断列表文档和IP寄存器描述文档,
头文件包括:.h格式头文件、.S格式头文件、.svh格式头文件和.sv格式头文件,
具体解析过程为:
将中断列表文档解析为.h格式、.S格式的中断头文件,以及.svh格式的头文件,
将地址空间映射文档解析为.h格式、.S格式的地址空间映射头文件,以及.svh格式的地址空间映射头文件,
将IP寄存器描述文档解析为.h格式的IP偏移地址头文件、.h格式的IP寄存器模型头文件,以及.sv格式的寄存器模型文件;
编译单元,其配置为编写第一模块和第二模块,并对第一模块和第二模块进行编译得到存储器编程文件和可执行文件;
仿真单元,其配置为通过执行可执行文件来进行仿真。
本发明提出了一种用于SOC自动仿真验证的方法及系统,与现有的技术相比,具有以下有益效果:
本发明提出的方法,解决了在SOC验证流程中需要大量人工辅助的问题,杜绝了人为因素导致SOC仿真过程出现遗漏或错误的风险,节省了人力成本和时间成本。
本发明提出的方法,能够作为模块嵌入到SOC仿真验证的流程中,灵活便捷,提升了SOC验证的效率。
附图说明
图1是本发明的流程示意图;
图2是本发明的验证文档解析成头文件的示意图。
具体实施方式
为了使本发明的目的、特征能够更加的明显和易懂,下面通过实施例并结合附图对本技术方案进行详细说明。
如图1所示,一种用于SOC自动仿真验证的方法及系统,
方法包括步骤:
步骤S1,在验证环境中,导入验证程序并新建公共目录。
步骤S2,建立验证过程中的文档,通过代码将文档解析成头文件,并将解析得到的头文件放置在公共目录下。
如图2所示,文档包括:地址空间映射文档、中断列表文档和IP寄存器描述文档。
头文件包括:.h格式头文件、.S格式头文件、.svh格式头文件和.sv格式头文件。
具体解析过程为:
将中断列表文档解析为.h格式、.S格式的中断头文件,以及.svh格式的头文件。
将地址空间映射文档解析为.h格式、.S格式的地址空间映射头文件,以及.svh格式的地址空间映射头文件。
将IP寄存器描述文档解析为.h格式的IP偏移地址头文件、.h格式的IP寄存器模型头文件,以及.sv格式的寄存器模型文件。
步骤S3,用C语言、shell语言、python语言和systemverilog语言编写第一模块,调用代码编译工具对第一模块进行编译并生成存储器编程文件。
具体过程为:
步骤S301,通过代码编写用于提取路径的第一模块。
步骤S302,第一模块提取出公共目录下头文件的路径,并将提取到的路径导入到第一模块中。
步骤S303,调用代码编译工具,对第一模块进行编译。
步骤S304,编译生成hex文件,并由验证环境将生成的hex文件加载到内存中。
步骤S4,用C语言、shell语言、python语言和systemverilog语言编写第二模块,对第二模块进行编译并生成可执行文件,并通过执行可执行文件进行仿真,具体过程为:
步骤S401,通过代码编写用于提取路径的第二模块。
步骤S402,第二模块提取公共目录下的头文件、寄存器模型文件,并导入到第二模块中。
步骤S403,调用代码编译工具,对第二模块进行编译来生成可执行文件。
步骤S404,生成的可执行文件通过与存储器编程文件建立链接,来实现对存储器编程文件的调用。
步骤S5,通过执行可执行文件来进行仿真,并通过输出日志结果判断是否仿真成功,具体过程为:
步骤S501,通过执行可执行文件来进行仿真。
步骤S502,输出仿真的日志结果并进行保存。
步骤S503,通过查看仿真的日志结果输出来判断是否仿真成功,具体的,
如果日志结果输出为“False”字段,则表示执行仿真失败。
如果日志结果输出为“True”字段,则表示执行仿真成功。
系统包括:
执行单元,其配置为在验证环境中,导入验证程序并执行该验证程序。
解析单元,其配置为将文档解析成头文件。
文档包括:地址空间映射文档、中断列表文档和IP寄存器描述文档。
头文件包括:.h格式头文件、.S格式头文件、.svh格式头文件和.sv格式头文件。
具体解析过程为:
将中断列表文档解析为.h格式、.S格式的中断头文件,以及.svh格式的头文件。
将地址空间映射文档解析为.h格式、.S格式的地址空间映射头文件,以及.svh格式的地址空间映射头文件。
将IP寄存器描述文档解析为.h格式的IP偏移地址头文件、.h格式的IP寄存器模型头文件,以及.sv格式的寄存器模型文件。
编译单元,其配置为编写第一模块和第二模块,并对第一模块和第二模块进行编译得到存储器编程文件和可执行文件。
仿真单元,其配置为通过执行可执行文件来进行仿真。
至此,按照本发明公开的方法,已实施完一次本发明的工作过程。
虽然,本说明书中已经用一般性说明及具体实施方案对本发明作了详尽的描述,但在本发明基础上,可以对之作一些修改或改进,这对本领域技术人员而言是显而易见的。因此,在不偏离本发明精神的基础上所做的这些修改或改进,均属于本发明要求保护的范围。
Claims (10)
1.一种用于SOC自动仿真验证的方法,其特征在于,包括步骤:
步骤S1,在验证环境中,导入验证程序并新建公共目录;
步骤S2,建立验证过程中的文档,通过代码将文档解析成头文件,并将解析得到的头文件放置在公共目录下;
步骤S3,编写第一模块,调用代码编译工具对第一模块进行编译并生成存储器编程文件;
步骤S4,编写第二模块,对第二模块进行编译并生成可执行文件;
步骤S5,通过执行可执行文件来进行仿真,并通过输出日志结果判断是否仿真成功。
2.根据权利要求1所述的用于SOC自动仿真验证的方法,其特征在于,步骤S2中所述的将验证文档解析成头文件,
文档包括:地址空间映射文档、中断列表文档和IP寄存器描述文档,
头文件包括:.h格式头文件、.S格式头文件、.svh格式头文件和.sv格式头文件,
具体解析过程为:
将中断列表文档解析为.h格式、.S格式的中断头文件,以及.svh格式的头文件;
将地址空间映射文档解析为.h格式、.S格式的地址空间映射头文件,以及.svh格式的地址空间映射头文件;
将IP寄存器描述文档解析为.h格式的IP偏移地址头文件、.h格式的IP寄存器模型头文件,以及.sv格式的寄存器模型文件。
3.根据权利要求2所述的用于SOC自动仿真验证的方法,其特征在于,所述验证软件的头文件包括:.h格式文件和.S格式文件;所述验证环境的头文件包括:.svh格式文件和.sv格式文件。
4.根据权利要求1所述的用于SOC自动仿真验证的方法,其特征在于,步骤S3包括步骤:
步骤S301,通过代码编写用于提取路径的第一模块;
步骤S302,第一模块提取出公共目录下头文件的路径,并将提取到的路径导入到第一模块中;
步骤S303,调用代码编译工具,对第一模块进行编译;
步骤S304,编译生成存储器编程文件,并由验证环境将生成的存储器编程文件加载到内存中。
5.根据权利要求1所述的用于SOC自动仿真验证的方法,其特征在于,步骤S4包括步骤:
步骤S401,通过代码编写用于提取路径的第二模块;
步骤S402,第二模块提取公共目录下的头文件、寄存器模型文件,并导入到第二模块中;
步骤S403,调用代码编译工具,对第二模块进行编译来生成可执行文件;
步骤S404,生成的可执行文件通过与存储器编程文件建立链接,来实现对存储器编程文件的调用。
6.根据权利要求1所述的用于SOC自动仿真验证的方法,其特征在于,步骤S3中所述的存储器编程文件是hex格式的文件,步骤S4中所述的可执行文件是.simv格式的文件。
7.根据权利要求1所述的用于SOC自动仿真验证的方法,其特征在于,步骤S3中所述的第一模块和步骤S4中的第二模块,被用来验证SOC功能,具体是由C语言、shell语言、python语言和systemverilog语言编写。
8.根据权利要求1所述的用于SOC自动仿真验证的方法,其特征在于,步骤S5包括步骤:
步骤S501,通过执行可执行文件来进行仿真;
步骤S502,输出仿真的日志结果并进行保存;
步骤S503,通过查看仿真的日志结果输出来判断是否仿真成功,具体为:
如果日志结果输出为“False”字段,则表示执行仿真失败;
如果日志结果输出为“True”字段,则表示执行仿真成功。
9.一种用于SOC自动仿真验证的系统,其特征在于,包括:
执行单元,其配置为在验证环境中,导入验证程序并执行该验证程序;
解析单元,其配置为将文档解析成头文件;
编译单元,其配置为编写第一模块和第二模块,并对第一模块和第二模块进行编译得到存储器编程文件和可执行文件;
仿真单元,其配置为通过执行可执行文件来进行仿真。
10.根据权利要求9所述的SOC软硬件协同的仿真系统,其特征在于,所述解析单元还配置为:
文档包括:地址空间映射文档、中断列表文档和IP寄存器描述文档,
头文件包括:.h格式头文件、.S格式头文件、.svh格式头文件和.sv格式头文件,
具体解析过程为:
将中断列表文档解析为.h格式、.S格式的中断头文件,以及.svh格式的头文件,
将地址空间映射文档解析为.h格式、.S格式的地址空间映射头文件,以及.svh格式的地址空间映射头文件,
将IP寄存器描述文档解析为.h格式的IP偏移地址头文件、.h格式的IP寄存器模型头文件,以及.sv格式的寄存器模型文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211427733.4A CN115828840A (zh) | 2022-11-15 | 2022-11-15 | 一种用于soc自动仿真验证的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211427733.4A CN115828840A (zh) | 2022-11-15 | 2022-11-15 | 一种用于soc自动仿真验证的方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115828840A true CN115828840A (zh) | 2023-03-21 |
Family
ID=85528211
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211427733.4A Pending CN115828840A (zh) | 2022-11-15 | 2022-11-15 | 一种用于soc自动仿真验证的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115828840A (zh) |
-
2022
- 2022-11-15 CN CN202211427733.4A patent/CN115828840A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210209008A1 (en) | Unit testing method based on automatic generation of path coverage test cases | |
US20080127113A1 (en) | Method and system for implementing watchpoints | |
US6467082B1 (en) | Methods and apparatus for simulating external linkage points and control transfers in source translation systems | |
CN109189479B (zh) | 一种用于处理器指令集的并行自动化验证方法 | |
CN115841089A (zh) | 一种基于uvm的系统级芯片验证平台及验证方法 | |
JPH05257709A (ja) | 並列化判別方法およびそれを用いた並列化支援方法 | |
US7895575B2 (en) | Apparatus and method for generating test driver | |
CN113297073B (zh) | 芯片中算法模块的验证方法、装置、设备及可读存储介质 | |
CN101344855A (zh) | 一种基于编译的跟踪代码中特定对象的控制方法及装置 | |
JPH0748182B2 (ja) | プログラム・エラー検出方法 | |
CN114036072A (zh) | 一种支持自动化检测程序缺陷的方法和系统 | |
CN110688269A (zh) | 采用axi总线接口的rtl代码自动化验证装置及方法 | |
CN115828840A (zh) | 一种用于soc自动仿真验证的方法及系统 | |
CN113836023B (zh) | 一种基于体系结构交叉检查的编译器安全性测试方法 | |
CN107402799B (zh) | 在x86电脑超高速解释执行tms320c25芯片汇编指令的方法 | |
CN115374017A (zh) | 一种仿真运行可执行文件时抓取现场的方法及计算设备 | |
CN111258838B (zh) | 验证组件生成方法、装置、存储介质及验证平台 | |
US7222064B1 (en) | Instruction processor emulation having inter-processor messaging accounting | |
Bartels et al. | Formal modeling and verification of low-level software programs | |
Ecker et al. | The Scale4Edge RISC-V Ecosystem | |
CN113204939A (zh) | 一种全芯片仿真验证方法 | |
US20090112568A1 (en) | Method for Generating a Simulation Program Which Can Be Executed On a Host Computer | |
Matoussi et al. | Loop aware ir-level annotation framework for performance estimation in native simulation | |
Guarnieri et al. | On the reuse of TLM mutation analysis at RTL | |
Tang et al. | Accelerating SoC Security Verification and Vulnerability Detection Through Symbolic Execution |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |