一种SOC芯片系统级验证系统及方法与流程

文档序号:17538761发布日期:2019-04-29 14:18阅读:1373来源:国知局
一种SOC芯片系统级验证系统及方法与流程

本发明涉及集成电路设计技术领域,尤其是一种soc(systemonchip,片上系统)芯片系统级验证系统及方法。



背景技术:

随着集成电路产业的发展,呈现出来的soc芯片也越来越复杂,整体上对于验证的要求也越来越高,在芯片设计的开发周期中,验证的工作时间约占整个周期的80%,所以在这样的大背景下如何提高验证工作效率的研究很有意义。

目前对于soc的验证需要写好基于c语言的驱动程序,通过合适的编译器编译出来驱动指令程序,最后在仿真平台中写到内存中去供cpu取出指令并执行,同时验证仿真平台需要启动控制激励发送,预先编译好的程序无法跟仿真平台做交互,随机性验证的思想也无法很好的应用于仿真中来。

参见图1,现有的常规的soc验证手段是在c语言环境中通过预先编译好c代码(c语言驱动程序)来驱动cpu进行行为的控制,配合仿真环境的激励产生和发送部件来实现仿真;根据预先编译好的c语言驱动程序控制soc芯片中cpu的行为,进而实现对芯片相关功能的配置,仿真平台激励发送部件施加相关的激励信号给soc芯片设计来实现soc芯片系统级验证,驱动的开发编译和仿真环境是两套完全脱离的系统。在进行仿真时验证人员无法灵活调度cpu,cpu的行为完全由预先编译的驱动程序来控制,与仿真环境无法形成很友好的交互,修改验证场景验证人员需要修改c代码的驱动程序以及仿真环境的systemverilog语言的组件,维护两套验证代码对于验证任务越来越复杂的验证人员来说无疑增加了工作量,进而导致工作效率不高。



技术实现要素:

本发明提供一种soc芯片系统级验证方法及系统,用于克服现有技术中在仿真测试过程中对cpu控制的灵活性不足导致验证效率低等缺陷,提高仿真测试过程中对cpu控制的灵活性,简化代码的维护,提高验证效率。

为实现上述目的,本发明提出一种soc芯片系统级验证系统,包括仿真平台及soc芯片;

所述soc芯片包括cpu、与所述cpu相连的调试接口、待验证模块、与所述待验证模块相连的激励发送接口;

所述仿真平台包括:

控制cpu模型,按照接口协议通过所述调试接口与所述待验证模块相连;在验证开始时接收验证开始的指示信号并控制cpu进入调试模式,在验证结束时接收验证结束的指示信号并控制cpu退出调试模式,所述cpu在调试模式下按照所述控制cpu模型的指令动作;

激励发送模型,按照接口协议通过所述激励发送接口与所述待验证模块相连,用于产生激励数据向待验证模块发送,并采集或接收所述待验证模块的响应数据;

结果分析模型,用于对所述验证模块的响应数据进行分析和判断,并输出验证结果,并根据验证结果输出验证结束的指示信号。

为实现上述目的,本发明还提供一种soc芯片系统级验证仿真平台,包括上述soc芯片系统级验证系统中的仿真平台。

为实现上述目的,本发明还提供一种soc芯片系统级验证方法,其特征在于,所述soc芯片包括cpu、与所述cpu相连的调试接口、待验证模块、与所述待验证模块相连的激励发送接口;包括以下步骤:

在仿真平台中编写并编译软件程序;

仿真平台产生验证开始的指示信号,通过调试接口输出并控制soc芯片的cpu进入调试模式;

根据验证场景所需要的工作模式控制cpu配置待验证模块的相关功能;

根据功能的配置产生并发送随机的激励数据到激励发送接口;

接收或采集待验证模块的响应数据并判断是否超时;

在响应数据超时时结束验证并报错,在响应数据未超时时检查响应数据是否正确;

在响应数据错误时结束验证并报错,在响应数据正确时判断是否还有其他激励数据;

在没有其他激励数据时结束验证,在还有其他激励数据时返回根据验证场景所需要的工作模式控制cpu配置待验证模块的相关功能的步骤。

本发明提供的soc芯片系统级验证系统及方法,将soc芯片cpu驱动程序平台融合在仿真平台中,统一在同一编译语言环境中,采用统一的验证平台,完全使用验证环境来控制cpu行为和驱动激励,简化了维护代码的工作,同时可以充分利用随机性验证的方法参与到cpu的驱动控制,可以很好的与仿真平台进行交互,使验证更加灵活和更加高效,便于维护和扩展,从而可以让验证人员更加专注于场景的开发和功能的覆盖,加快验证工作的快速收敛,能提升验证人员的整体工作效率。

附图说明

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

图1为现有技术中实现soc芯片仿真示意图;

图2为本发明实施例一提供的soc芯片系统级验证系统的框架示意图;

图3为本发明实施例二提供的soc芯片系统级验证系统的框架示意图

图4为本发明实施例提供的soc芯片系统级验证方法的流程示意图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

需要说明,本发明实施例中所有方向性指示(诸如上、下、左、右、前、后……)仅用于解释在某一特定姿态(如附图所示)下各部件之间的相对位置关系、运动情况等,如果该特定姿态发生改变时,则该方向性指示也相应地随之改变。

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

在本发明中,除非另有明确的规定和限定,术语“连接”、“固定”等应做广义理解,例如,“固定”可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接,还可以是物理连接或无线通信连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系,除非另有明确的限定。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。

另外,本发明各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。

本发明提出一种soc芯片系统级验证系统。

实施例一

请参照图2,本发明提供一种soc芯片系统级验证系统,包括soc芯片1及仿真平台2;

所述soc芯片1包括cpu11、与所述cpu11相连的调试接口14、待验证模块12、其他设计逻辑13与所述待验证模块12相连的激励发送接口15;

所述仿真平台2包括控制cpu模型21、激励发送模型22和结果分析模型23;其中:

控制cpu模型21按照接口协议通过所述调试接口14与所述待验证模块12相连;在验证开始时接收验证开始的指示信号并控制cpu11进入调试模式,在验证结束时接收验证结束的指示信号并控制cpu11退出调试模式,所述cpu11在调试模式下按照所述控制cpu模型21的指令动作;

优选地,所述控制cpu模型基于uvm验证方法学搭建;根据验证场景需要的工作模式控制cpu对待验证模块的相关功能进行配置,对外围设备(其他设计逻辑13)进行调度。

激励发送模型22按照接口协议通过所述激励发送接口15与所述待验证模块12相连,用于产生激励数据向待验证模块12发送,并采集或接收所述待验证模块12的响应数据;

优选地,所述激励发送模型基于uvm验证方法学搭建,根据工作模式生成激励数据并发送到所述激励发送接口15。

结果分析模型23,用于对所述验证模块12的响应数据进行分析和判断,并输出验证结果,并根据验证结果输出验证结束的指示信号。

基于uvm验证方法学搭建,主要实现验证环境自动化的功能(自动比对,自动结束仿真)。所述结果分析模型在出现待验证模块的响应数据反馈时间超时或没有响应、响应数据错误及激励数据发送完毕中至少一种情况时,均输出验证结束的指示信号。

本发明待验证模块12由cpu控制各个内部部件的动作,整体在仿真环境中可对待验证模块进行灵活控制并配合激励来达到验证某些功能的目的,在芯片开发的周期内,探索行之有效的方法来提高验证效率,利用cpu的debug接口在仿真环境中可以对cpu进行更灵活和有效的控制,结合仿真环境的激励,充分利用systemverilog语言特有的随机性原理,能提升验证的整体工作效率和简化代码的维护,进而提高验证效率。

优选地,仿真平台1通过多个interface(systemverilog语言中定义的接口,连接仿真平台和待测设计)连接到在soc芯片1上的激励发送接口15和调试接口14,利用uvm方法学编写控制cpu模型21和激励发送模型22的可执行模型代码,激励发送接口15包括但不限于i2c,spi,uart等接口;调试接口14包括但不限于jtag,serialwire等接口。调试接口14、激励发送接口15是连接仿真平台2和待测的soc芯片1的桥梁,实现方式是采用了systemverilog中interface的方法。

优选地,所述控制cpu模型21及激励发送模型22内部设置有循环机制,在验证过程中对待验证模块12中的任一功能根据控制cpu模型21内的配置在激励发送模型22中生成多次随机激励数据重复验证该功能。

本发明针对目前soc芯片开发越来越复杂,验证复杂度也在进一步提高,探索有效的方法和方案来提升验证的效率,能够为验证人员提供更加灵活的仿真环境开发和更加高效的验证场景的覆盖,是一种结合了cpu控制、仿真平台控制、验证方法的现代集成电路测试技术。

本发明主要由待测设计(dut,即待验证模块12),调试接口14,常规激励产生的验证环境构成的一种新型验证方法,结合仿真eda工具能在仿真的各个节点自由控制cpu11的各种行为,在特定功能场景下,利用很便捷的控制cpu来管理待测设计的行为,结合验证环境的激励序列输入到待测设计,从而对特定场景下待测设计是否符合设计规格要求进行充分验证。同时由于控制cpu是在验证环境下实现,可以结合随机性验证的特性让芯片验证更加健壮,并且可以实现cpu控制和激励发送的交互性。

实施例二

请参照图3,为具体实现该发明应用于i2c接口的应用:

验证环境主要包括:

1、激励产生和发送部件(激励发送模型22)主要是按照i2c的接口协议通过i2c_interface连接到待测soc设计(soc芯片1)的对应的管脚上,同时可以通过该组件采样待测设计的响应或返回数据。

2、控制cpu组件(控制cpu模型21)主要是按照jtag的接口协议通过jtag_interface连接到待测soc设计的对应的管教上,通过访问cpu的寄存器来让cpu进入调试模式,这个模式下cpu进入halt(暂停)状态,cpu的行为完全由jtag来接管。

3、其他组件(结果分析模型23)主要是验证环境中对仿真做出自动比对和判断,可以控制整体的仿真结束。

待测soc设计主要包括:cpu、i2c控制器、其他逻辑;cpu主要做芯片内各种复杂工作的调度,i2c控制器配置为从设备的工作模式时解析和响应对应的命令,配置为主设备的工作模式时发起对芯片外接的从设备的访问命令。其他逻辑是指存在芯片中的总线和内存等组件。

控制cpu部件,在仿真平台中主要是对待测设计的cpu进行灵活控制,可以在仿真环境中灵活控制cpu的执行动作,是本发明相对目前的仿真技术的最大优势。激励产生和发送部件,在仿真平台中主要是对待测设计施加激励,观察待测设计工作和响应是否正常,施加激励的过程中可以随时通过控制cpu部件控制cpu的行为。控制cpu部件与激励产生和发送部件之间的交互机制:在仿真平台中,控制cpu部件和激励产生发送部件是可以互相交互的,可以由控制cpu部件的某些配置来控制激励随机产生的随机数据,也可以由激励随机产生的某些值来对控制cpu的部件进行一定的行为控制;在激励发送的过程中仿真环境可以随时控制cpu,从而可以对一些芯片异常情况的处理进行更加灵活的验证。

实施例三

本发明实施例还提供一种soc芯片系统级验证仿真平台,包括任意实施例的soc芯片系统级验证系统中的仿真平台。

实施例四

请参照图4,本发明实施例提供与实施例一对应的soc芯片系统级验证方法,包括以下步骤:

s1,仿真运行开始,在仿真平台中编写并编译软件程序;使用芯片常用的仿真工具如(vcs,irun)来编译代码,编译仿真平台和待测的soc设计;运行编译代码,利用仿真工作来启动仿真;

s2,控制cpu进入调试模式,仿真平台产生验证开始的指示信号,通过调试接口输出并控制soc芯片的cpu进入调试模式;

cpu在默认的上电状态会加载指令来运行,由于我们并不使用编译出来的指令来控制cpu,所以我们需要使用仿真环境中的控制cpu组件通过调试接口来控制cpu进入调试模式,以便我们cpu会按照我们仿真环境给出的行为来产生相应动作。利用仿真环境中控制cpu组件来实现;

s3,根据验证场景控制cpu配置待测设计相关功能:根据验证场景所需要的工作模式控制cpu配置待验证模块的相关功能;

待测设计的工作模式调度需要cpu去控制和调度,我们在仿真时需要让待测设计进入我们验证场景需要的工作模式,配合激励来验证该功能是否符合设计指标。利用仿真环境中控制cpu组件来实现;

s4,激励产生并发送:根据功能的配置产生并发送随机的激励数据到激励发送接口;为了重复验证某一功能,可以控制cpu为待验证模块的某一功能配置多次,用于产生多个对同一功能进行验证的激励数据;

仿真环境中根据带约束的随机来产生激励的数据,在驱动(driver)里面按照对应接口的时序要求通过激励发送接口发送数据到待测设计的接口上。利用验证环境中激励产生发送组件来控制。

其他激励发送:在仿真中对某个功能往往需要多次随机激励来更加充分验证该功能,所以需要有循环机制。利用仿真环境中激励产生和发送部件来实现。

s5,待测设计超时:接收或采集待验证模块的响应数据并判断是否超时;

在验证环境里面设定超时机制,设计不符合预期或者其他原因导致待测设计没有响应,仿真运行超时并报错。利用验证环境中其他组件来监控soc芯片的待测设计。

s6,在响应数据超时时结束验证并报错,在响应数据未超时时检查响应数据是否正确;

s7,仿真结束并报错:在响应数据错误时结束验证并报错,在响应数据正确时判断是否还有其他激励数据;

在仿真中出现明显的错误时,这个时候会报出对应的出错是什么样的,让后结束仿真进行后续的查错工作。利用仿真环境中其他组件来实现。

s8,仿真结束:在没有其他激励数据时结束验证,在还有其他激励数据时返回s3。

仿真所有激励发送完毕,正常结束仿真。利用仿真环境中其他组件来实现。

本发明提供的新型的soc验证方法,完全不需要软件编译c代码就可以开展soc的仿真工作,对于提高验证人员的代码维护和开发由重要意义,同时也提高了整体的验证效率。

以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是在本发明的发明构思下,利用本发明说明书及附图内容所作的等效结构变换,或直接/间接运用在其他相关的技术领域均包括在本发明的专利保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1