首页> 中国专利> 验证模型及其构建方法、芯片验证方法和验证系统

验证模型及其构建方法、芯片验证方法和验证系统

摘要

本申请实施例涉及一种验证模型及其构建方法、芯片验证方法和验证系统,验证模型的构建方法,包括:获取处理器的RTL模型,RTL模型被配置有对应的目标处理功能;通过System Verilog语言对RTL模型进行抽象以建立总线功能模型,总线功能模型用于与待验证设计连接;对总线功能模型进行封装,并对封装后的总线功能模型配置应用程序编程接口,验证模型在应用程序编程接口被调用时,总线功能模型用于执行对应的目标处理功能,以对待验证设计进行验证。通过获取抽象层次较高的总线功能模型,可以提高了仿真验证的收敛速度。而且在验证过程中,可以通过System Verilog语言语句直接调用应用程序编程接口,从而省去了对C语言语句的编译、汇编过程,提高了验证效率。

著录项

  • 公开/公告号CN115859872A

    专利类型发明专利

  • 公开/公告日2023-03-28

    原文格式PDF

  • 申请/专利权人 OPPO广东移动通信有限公司;

    申请/专利号CN202111116404.3

  • 发明设计人 周建伟;

    申请日2021-09-23

  • 分类号G06F30/33(2020.01);G06F113/18(2020.01);G06F115/08(2020.01);G06F115/02(2020.01);

  • 代理机构华进联合专利商标代理有限公司 44224;

  • 代理人纪婷婧

  • 地址 523860 广东省东莞市长安镇乌沙海滨路18号

  • 入库时间 2023-06-19 19:07:35

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2023-04-14

    实质审查的生效 IPC(主分类):G06F30/33 专利申请号:2021111164043 申请日:20210923

    实质审查的生效

  • 2023-03-28

    公开

    发明专利申请公布

说明书

技术领域

本申请实施例涉及芯片设计技术领域,特别是涉及一种验证模型及其构建方法、芯片验证方法和验证系统。

背景技术

片上系统(System on Chip,缩写SoC)是一个将计算机或其他电子系统集成到单一芯片上的集成电路。SoC芯片一般由处理器核(Central Processing unit,缩写CPU)、内存控制器核(Memory Controller,缩写MC)、其他输入输出接口的知识产权核(Intellectual Property Core,缩写IP)以及其他辅助功能模块如时钟锁相环核(PhaseLocked Loops,缩写PLL)和电压规划控制器核(Voltage Regulator,缩写VR)等组成。在SoC芯片设计过程中,需要通过验证手段确定上述IP核等结构的内部电路是否存在疏漏。但是,现有的芯片验证手段需要复杂的编译、汇编等操作,大大影响了SoC芯片的验证效率。

发明内容

本申请实施例提供了一种验证模型及其构建方法、芯片验证方法和验证系统,可以优化SoC芯片的验证效率。

一种验证模型的构建方法,包括:

获取处理器的RTL模型,所述RTL模型被配置有对应的目标处理功能;

通过System Verilog语言对所述RTL模型进行抽象以建立总线功能模型,所述总线功能模型用于与待验证设计连接;

对所述总线功能模型进行封装,并对封装后的所述总线功能模型配置应用程序编程接口,验证模型在所述应用程序编程接口被调用时,所述总线功能模型用于执行对应的所述目标处理功能,以对所述待验证设计进行验证。

一种芯片验证方法,包括:

采用如上述的验证模型的构建方法构建验证模型;

生成并输出调用语句至所述验证模型,所述调用语句用于调用对应的所述应用程序编程接口,以使所述总线功能模型执行对应的所述目标处理功能对所述待验证设计进行验证。

一种验证模型,采用如上述的验证模型的构建方法构建生成。

一种芯片验证系统,包括:

待验证设计;

如上述的验证模型,所述验证模型通过AHB总线、AXI总线和APB总线中的一种与所述待验证设计连接。

上述验证模型的构建方法,通过获取抽象层次较高的总线功能模型,可以去除处理器中的门级网表,从而省略了基于门级网表的仿真验证时间,提高了仿真验证的收敛速度。而且,基于System Verilog语言编写总线功能模型并配置相应的应用程序编程接口,在验证过程中,可以通过System Verilog语言语句直接调用应用程序编程接口,从而省去了对C语言语句的编译、汇编过程,从而有效提高了SoC芯片的验证效率。

附图说明

为了更清楚地说明本申请实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为一实施例的验证模型的构建方法的流程图之一;

图2为一实施例的功耗管理模型的状态转换示意图;

图3为一实施例的验证模型的构建方法的流程图之二;

图4为一实施例的验证模型的构建装置的结构框图;

图5为一实施例的构建设备的内部结构示意图;

图6为一实施例的芯片验证方法的流程图之一;

图7为一实施例的芯片验证方法的流程图之一;

图8为一实施例的芯片验证系统的结构框图。

具体实施方式

为了便于理解本申请实施例,下面将参照相关附图对本申请实施例进行更全面的描述。附图中给出了本申请实施例的首选实施例。但是,本申请实施例可以以许多不同的形式来实现,并不限于本文所描述的实施例。相反地,提供这些实施例的目的是使对本申请实施例的公开内容更加透彻全面。

除非另有定义,本文所使用的所有的技术和科学术语与属于本申请实施例的技术领域的技术人员通常理解的含义相同。本文中在本申请实施例的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请实施例。本文所使用的术语“及/或”包括一个或多个相关的所列项目的任意的和所有的组合。

可以理解,本申请所使用的术语“第一”、“第二”等可在本文中用于描述各种元件,但这些元件不受这些术语限制。这些术语仅用于将第一个元件与另一个元件区分。举例来说,在不脱离本申请的范围的情况下,可以将第一字段称为第二字段,且类似地,可将第二字段称为第一字段。第一字段和第二字段两者都是字段,但其不是同一字段。

此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本申请的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。在本申请的描述中,“若干”的含义是至少一个,例如一个,两个等,除非另有明确具体的限定。

本申请实施例的构建方法用于构建验证模型,验证是指基于验证平台通过处理器执行测试用例对待验证设计的功能进行检测的手段。测试用例(Test Case)指对一项特定的软件产品进行测试任务的描述文档,体现了测试方案、方法、技术和策略。其内容包括测试目标、测试环境、输入数据、测试步骤、预期结果、测试脚本等。也即,测试用例是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,用于核实是否满足某个特定需求。待验证设计(Design Under Test,DUT)是指设计人员根据设计规格说明书完成硬件设计后,需要被进行功能验证的硬件设计。

具体地,本申请实施例的待验证设计为IP核,即,验证模型用于对IP核的功能进行验证。其中,IP核是指一段具有特定电路功能的硬件描述语言程序,IP核可以被移植到不同的SoC芯片中,以通过自身的特定电路功能支持SoC芯片的运行。具体地,验证模型从验证平台获取调用语句,响应于调用语句生成相应的激励数据,并向IP核写入生成的激励数据,验证平台根据IP核根据激励数据产生的输出结果验证IP核的功能是否正确,以完成完整的验证操作。

图1为一实施例的验证模型的构建方法的流程图之一,参考图1,在本实施例中,验证模型的构建方法包括步骤102至106。

步骤102,获取处理器的RTL模型,所述RTL模型被配置有对应的目标处理功能。

其中,RTL(Register Transfer Level,寄存器传输级)模型是指采用寄存器级别的描述方式来描述电路的数据流方式的模型。即,RTL模型将算术运算单元(ALU)、多路选择器(MUX)等模块展开为由各种逻辑门和基本触发器,并用门级网表描述逻辑门和触发器的连接关系,以构成具有目标处理功能的硬件电路。示例性地,逻辑门例如包括与非门、非门等,基本触发器例如包括D触发器、JK触发器等。

步骤104,通过System Verilog语言对所述RTL模型进行抽象以建立总线功能模型,所述总线功能模型用于与待验证设计连接。

其中,总线功能模型(Bus Function Model,BFM)可以理解为具有某一特定功能的模型,即总线功能模型只考虑算法的输出结果,而不考虑数据流的实际处理过程。因此,总线功能模型更加适用于仿真验证的使用场景。

对所述RTL模型进行抽象可以省略对逻辑门和触发器的连接关系的描述内容,即,省略了门级网表。可以理解的是,若通过基于包括门级网表的RTL模型对待验证设计进行验证,在运行过程中,需要考虑信号传输的路径和时序因素,因此运行速度较慢,会大大影响验证结果的收敛速度。而实质上,信号传输的路径和时序因素对待验证设计的影响相对较小。例如,若待验证设计的功能存在明显的功能缺陷,即使省略了模型中的路径和时序因素,待验证设计也无法实现需要的功能。即,基于抽象的总线功能模型也能够验证发现上述缺陷问题,从而在一定程度上确保验证结果的准确性。

步骤106,对所述总线功能模型进行封装,并对封装后的所述总线功能模型配置应用程序编程接口,验证模型在所述应用程序编程接口被调用时,所述总线功能模型用于执行对应的所述目标处理功能,以对所述待验证设计进行验证。

其中,应用程序编程接口(Application Programming Interface,API)是指预先定义的接口(如函数、HTTP接口),或指软件系统不同组成部分衔接的约定,应用程序编程接口用于提供应用程序与验证人员基于某软件或硬件得以访问的一组例程,而又无需访问源码,或理解内部工作机制的细节。因此,通过封装并配置应用程序编程接口,可以方便地供验证人员进行调用,并执行相应的验证。而且,在硬件仿真阶段就能对系统软件进行调试,大大节省了项目的开发时间。

在本实施例中,通过把RTL模型抽象为抽象层次较高的、不具有时序概念的总线功能模型,可以去除处理器中的门级网表,从而省略了基于门级网表的仿真验证时间,提高了仿真验证的收敛速度。而且,基于System Verilog语言编写总线功能模型并配置相应的应用程序编程接口,在验证过程中,可以通过System Verilog语言语句直接调用应用程序编程接口,从而省去了对C语言语句的编译、汇编过程,从而有效提高了SoC芯片的验证效率。而且,也可以无需验证人员掌握C语言、ASM语音等复杂的编程语言,而仅需要了解SystemVerilog语言即可实现对应用程序编程接口的调用,降低了验证人员的操作难度。此外,由于本实施例的测试用例可以方便的移植,在硬件仿真阶段就能对系统软件进行调试,大大节省了开发时间。

在其中一个实施例中,所述RTL模型为数据运算模型,数据运算模型可以理解为数据处理单元(Data Processing Unit,DPU)的模型,数据处理器具有数据运算和传输功能。其中,所述对所述总线功能模型进行封装并提供应用程序编程接口,包括:对所述总线功能模型进行封装,并提供System Verilog语言的应用程序编程接口WR32(第一字段、第二字段和第三字段),所述第一字段、所述第二字段和所述第三字段中的一个为运算结果的目标存储地址,所述第一字段、所述第二字段和所述第三字段中的另一个为待运算数据及其运算方式,所述第一字段、所述第二字段和所述第三字段中剩余的一个为执行运算的处理器名称。

具体地,上述应用程序编程接口例如可以为WR32(addr,data,cpu_name),其中,addr即为第一字段,data即为第二字段,即为第三字段。例如,当需要通过具有数据运算功能的总线功能模型对数据0x4+0x5运算,并将运算结果发送给双倍速率同步动态随机存储器(Data Rate Synchronous Dynamic Random-Access Memory,DDR SRAM)中的地址0x1000时,可以通过WR32(32’h1000,(32’h4+32’h5),AP)的System Verilog语句调用对应的应用程序编程接口,以对待验证设计进行验证。其中,32’h1000为目标存储地址,32’h4+32’h5为待运算数据及其运算方式,AP为执行运算的处理器名称。

在相关技术中,对IP核进行验证的操作较为复杂,需要利用进阶精简指令集机器(Advanced RISC Machine,ARM)编译器或者GCC(GNU Compiler Collection,GNU编译器)将C语言语句编译、汇编为处理器可以执行的十六进制机器指令,随后通过SV后门加载到顶层只读储存器(Read-Only Memory,ROM)中,CPU再从顶层ROM中取指令、译码、执行,再将数据通过数据总线传输给DDR。具体地,以前述的对数据0x4+0x5运算,并将运算结果发送给DDR0x1000为例,对相关技术中的验证操作进行说明。上述验证操作具体包括以下多个步骤。

1)编写嵌入式C Code:*(volatile unsigned int*)0x1000=(0x4+0x5)。

2)ARM编译器或者GCC编译器将C语言语句编译为如下的汇编代码:

MOV r0,#4

MOV r1,#5

ADD r1,r0,r1

LDR r3,#4096;0x1000

STR r1,[r3]

3)ARM编译器或者GCC编译器将汇编代码转变成如下的机器可以执行的十六进制指令:

2004

2105

f201 0100

f813 5802

4)SV后门将十六进制指令通过如下语句加载到顶层ROM中:

SoC Top Rom:

f880_32c9_f813_5802

f201_0100_2105_2004

5)CPU上电解复位,DPU发起从顶层ROM中取指令、译码、执行的动作。

6)DPU执行结束后,将运算结果数据0x9发送给DDR中的地址0x1000。

根据上述对数据0x4+0x5运算的对比示例可知,通过将RTL模型抽象为总线功能模型,无需再进行编译、汇编、加载十六进制指令到顶层ROM等操作,从而大大节省了验证时间。而且,总线功能模型运算时只占用仿真机器时间,而没有电路级的时钟概念,所以运算速度会大大提高。即,本实施例的验证模型的构建方法可以大大提高验证速度。

在其中一个实施例中,所述RTL模型为功耗管理模型,功耗管理模型可以理解为功耗管理单元(Power Management Unit,PMU)的模型。功耗管理单元用于监控电源连接和电池充电、控制其他集成电路的电源、在闲置时关闭不必要的系统组件、控制睡眠和电源功能(开和关)等,以实现更高的电源转换效率和更低功耗。因此,功耗管理模型需要执行大量的状态转换功能。

具体地,图2为一实施例的功耗管理模型的状态转换示意图,参考图2,功耗管理模型具有多种工作状态,多种工作状态包括关闭状态、关闭(仿真)状态、调试(DebugRecovery)状态、开启状态、单指令多数据模块(Single Instruction Multiple Data,SIDM)动态保留状态以及核心(Core)动态保留状态。在相关技术中,转换功能要基于有限状态机(Finite State Machine,FSM)实现。以开启状态、以及核心(Core)动态保留状态之间的状态转换为例,因此,从开启状态转换到核心动态保留状态需要进行2次状态转换,即先由开启状态转换至单指令多数据模块动态保留状态,再由单指令多数据模块动态保留状态转换至核心动态保留状态,从而导致转换过程的时间较长,进而会影响仿真的速度。

在本实施例中,所述通过System Verilog语言对所述RTL模型进行抽象以建立总线功能模型,包括:通过System Verilog语言对所述功耗管理模型进行抽象,以建立包括多条if-else语句的总线功能模型,所述if-else语句用于控制电源在满足预设条件时转换至对应的工作状态。示例性地,if-else语句例如可以为如下语句:

If(第一预设条件)PSTATE=4’h1;

else if(第二预设条件)PSTATE=4’h2;

else if(第三预设条件)PSTATE=4’h3;

其中,第一预设条件、第二预设条件和第三预设条件为不同的条件,4’h1、4’h2和4’h3为三种不同的状态。例如4’h1为开启状态,4’h2为单指令多数据模块动态保留状态,4’h3为核心动态保留状态。可以理解的是,上述状态仅用于示例性说明,而不用于限定本实施例的保护范围,可以根据需要选择相应的预设条件和工作状态。在本实施例中,基于if-else语句,可以直接从开启状态转换到核心动态保留状态,从而实现了不同状态之间的高效率转换,进而可以提高基于本实施例的构建方法所构建的验证模型的验证速度。

在其中一个实施例中,所述处理器包括多个所述RTL模型。示例性地,多个RTL模型例如可以包括数据运算模型和功耗管理模型。其中,所述通过System Verilog语言对所述RTL模型进行抽象以建立对应的总线功能模型,包括:通过System Verilog语言分别对各所述RTL模型进行抽象,以建立多个对应的所述总线功能模型,各所述总线功能模型分别被配置有不同的所述目标处理功能。即,对具有数据运算功能的RTL模型进行抽象,以建立具有数据运算功能的总线功能模型,并对具有功耗管理功能的RTL模型进行抽象,以建立具有功耗管理功能的总线功能模型。在本实施例中,通过构建多个总线功能模型,可以对待验证设计的更多功能进行验证,从而提高验证模型的普适性和灵活性。

图3为一实施例的验证模型的构建方法的流程图之二,参考图3,在本实施例中,验证模型的构建方法包括步骤302至308。

步骤302,获取处理器的多个RTL模型。

步骤304,通过System Verilog语言分别对各所述RTL模型进行抽象,以建立多个对应的所述总线功能模型,各所述总线功能模型分别被配置有不同的所述目标处理功能。

步骤306,分别对各所述总线功能模型进行封装,并对封装后的各所述总线功能模型配置一一对应的应用程序编程接口。

步骤308,将封装后的多个所述总线功能模块集成于同一验证模组,并为所述验证模组配置多个所述应用程序编程接口,以响应于调用语句调用对应的一个所述应用程序编程接口。

即,本实施例的构建方法还包括步骤。具体地,集成的验证模组即可以理解为本实施例构建的验证模型,通过将多个总线功能模块集成于同一验证模组,可以基于一个集成的验证模组实现对多种功能的验证,而不必针对不同的验证功能不断切换验证模型,从而简化验证人员的操作复杂度。

图4为一实施例的验证模型的构建装置的结构框图。参考图4,验证模型的构建装置包括RTL模型获取模块402、抽象模块404和封装模块406。其中,所述RTL模型获取模块402用于获取处理器的RTL模型,所述RTL模型被配置有对应的目标处理功能。抽象模块404用于通过System Verilog语言对所述RTL模型进行抽象以建立总线功能模型,所述总线功能模型用于与待验证设计连接。封装模块406用于对所述总线功能模型进行封装,并对封装后的所述总线功能模型配置应用程序编程接口,验证模型在所述应用程序编程接口被调用时,所述总线功能模型用于执行对应的所述目标处理功能,以对所述待验证设计进行验证。

上述验证模型的构建装置中各个模块的划分仅用于举例说明,在其他实施例中,可将验证模型的构建装置按照需要划分为不同的模块,以完成上述验证模型的构建装置的全部或部分功能。

关于验证模型的构建装置的具体限定可以参见上文中对于验证模型的构建方法的限定,在此不再赘述。上述验证模型的构建装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

本申请实施例中提供的验证模型的构建装置中的各个模块的实现可为计算机程序的形式。该计算机程序可在终端或服务器上运行。该计算机程序构成的程序模块可存储在电子设备的存储器上。该计算机程序被处理器执行时,实现本申请实施例中所描述方法的步骤。

图5为一实施例的构建设备的内部结构示意图。参考图5,该构建设备包括通过系统总线连接的处理器和存储器。其中,该处理器用于提供计算和控制能力,支撑整个构建设备的运行。存储器可包括非易失性存储介质及内存储器。非易失性存储介质存储有操作系统和计算机程序。该计算机程序可被处理器所执行,以用于实现以下各个实施例所提供的一种验证模型的构建方法。内存储器为非易失性存储介质中的操作系统计算机程序提供高速缓存的运行环境。该构建设备可以是手机、平板电脑、PDA(Personal DigitalAssistant,个人数字助理)、POS(Point of Sales,销售终端)、车载电脑、穿戴式设备等任意终端设备。

本申请实施例还提供了一种计算机可读存储介质。一个或多个包含计算机可执行指令的非易失性计算机可读存储介质,当所述计算机可执行指令被一个或多个处理器执行时,使得所述处理器执行验证模型的构建方法的步骤。

本申请所使用的对存储器、存储、数据库或其它介质的任何引用可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM),它用作外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDR SDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)。

一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行验证模型的构建方法。

图6为一实施例的芯片验证方法的流程图之一,参考图6,在本实施例中,芯片验证方法包括步骤602至604。

步骤602,采用如上述的验证模型的构建方法构建验证模型;

步骤604,生成并输出调用语句至所述验证模型,所述调用语句用于调用对应的所述应用程序编程接口,以使所述总线功能模型执行对应的所述目标处理功能对所述待验证设计进行验证。

在本实施例中,基于前述的验证模型的构建方法构建的验证模型,能够简化验证过程的复杂度,从而提供一种验证的收敛速度较快的芯片验证方法。

图7为一实施例的芯片验证方法的流程图之一,参考图7,在本实施例中,芯片验证方法包括步骤至。

步骤702,采用如上述的验证模型的构建方法构建验证模型。

步骤704,生成并输出调用语句至所述验证模型,所述调用语句用于调用对应的所述应用程序编程接口,以使所述总线功能模型执行对应的所述目标处理功能对所述待验证设计进行验证。

步骤706,获取所述待验证设计输出的验证结果。

步骤708,当所述验证结果与预设结果不同时,获取所述待验证设计的目标引脚在验证过程中的信号波形图。

步骤710,根据所述信号波形图确定所述验证结果的错误原因。

其中,预设结果由调用语句决定,即,各调用语句分别被配置有对应的预设结果。验证过程中的信号波形图包括但不限于时钟信号clk的波形图、复位信号rst_n的波形图、数据信号data的波形图等。数据信号data的波形图即待验证设计接收到的输入数据的波形图,例如可以为8bit的报文数据流。具体地,当所述验证结果与预设结果不同时,说明当前的待验证设计的功能存在错误。因此,当功能存在错误,获取验证过程中的信号波形图,可以找到出现错误的时间节点,从而确定验证结果的错误原因,即,待验证设计中的哪处设计存在错误。在本实施例中,基于System Verilog语言的总线功能模型,可以通过获取信号波形图的方式确定待验证设计中的异常,相较于其他语言需要编写trace函数,并获取trace信号的异常查找方式,大大简化了操作的复杂性,从而提高了验证的效率。

应该理解的是,虽然各流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,各流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

本申请实施例还提供了一种验证模型,采用如上述的验证模型的构建方法构建生成。基于前述构建方法,本实施例的验证模型的结构和调用方式较为简单,而且抽象层次较高,可以大大简化验证过程的复杂性,并可以提高验证过程的收敛速度。

图8为一实施例的芯片验证系统的结构框图,参考图8,在本实施例中,芯片验证系统包括待验证设计802和如上述的验证模型804,验证模型804包括至少一种总线功能模型8042,所述验证模型804与外部的验证平台806连接,并通过AHB总线、AXI总线和APB总线中的一种与所述待验证设计802连接。

其中,AHB总线是指Advanced High Performance Bus总线,即高级高性能总线。AXI总线是指Advanced eXtensible Interface总线,即高级可扩展接口总线。APB总线是指Advanced Peripheral Bus,即外围总线。验证平台806用于生成并输出调用语句至所述验证模型804,所述调用语句用于调用对应的所述应用程序编程接口,以使所述总线功能模型8042执行对应的所述目标处理功能对所述待验证设计806进行验证。具体地,验证模型804从验证平台806获取测试用例,并根据测试用例生成对应的调用语句。示例性地,测试平台806可以根据待验证设计的类型自动生成多个测试用例,也可以接收验证人员输入的测试用例,本实施例不做限定。在本实施例中,基于前述验证模型,本实施例提供了一种验证速度较快的芯片验证系统。

在其中一个实施例中,所述待验证设计为内存芯片。验证模型用于验证DDR的数据读写功能,基于前述的验证模型,验证人员只需要懂System Verilog语言即可完成对DDR的使能,且只需要维护一套使能DDR工作的环境。而且,采用总线功能模型对DDR进行验证时,不需要设置后仿过程,通过先对其他器件的功能进行验证,如果其他器件的功能验证不存在问题,则处理器发生时序问题的概率相对较低。因此,完成仿真验证后,再基于实体SoC芯片测试时序是否正常即可,从而大大减少了验证时间,提升了验证速度。

以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请实施例的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请实施例构思的前提下,还可以做出若干变形和改进,这些都属于本申请实施例的保护范围。因此,本申请实施例专利的保护范围应以所附权利要求为准。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号