CN103713977A - 一种微处理器ip核比较验证的实现方法 - Google Patents

一种微处理器ip核比较验证的实现方法 Download PDF

Info

Publication number
CN103713977A
CN103713977A CN201310528269.2A CN201310528269A CN103713977A CN 103713977 A CN103713977 A CN 103713977A CN 201310528269 A CN201310528269 A CN 201310528269A CN 103713977 A CN103713977 A CN 103713977A
Authority
CN
China
Prior art keywords
microprocessor
instruction
kernel
reference model
verified
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.)
Granted
Application number
CN201310528269.2A
Other languages
English (en)
Other versions
CN103713977B (zh
Inventor
樊宇
张义伟
秦泰
张雁
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
709th Research Institute of CSIC
Original Assignee
709th Research Institute of CSIC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 709th Research Institute of CSIC filed Critical 709th Research Institute of CSIC
Priority to CN201310528269.2A priority Critical patent/CN103713977B/zh
Publication of CN103713977A publication Critical patent/CN103713977A/zh
Application granted granted Critical
Publication of CN103713977B publication Critical patent/CN103713977B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

一种微处理器IP核比较验证的实现方法,其步骤如下:1)统一需验证的微处理器和参考模型的状态;2)需验证的微处理器和参考模型同步执行指定程序段;3)比较仿真结果,判断需验证的微处理器是否正确执行指定程序段。本专利可以模拟处理器运行操作系统需要的外部设备,控制并监测微处理器IP核的运行。当微处理器IP核在本专利提供的仿真环境中运行操作系统或应用程序时,可以通过比较微处理器参考模型与待测试的微处理器IP核在同一环境下的运行状态,快速定位出现分歧的位置,找出一些隐藏较深的设计错误,降低操作系统级别功能验证的工作量。

Description

一种微处理器IP核比较验证的实现方法
技术领域
本专利涉及微处理器验证领域,是一种基于全系统仿真模型软硬件协同的微处理器IP核功能验证方法。
背景技术
随着逻辑综合技术的成熟,布局布线的自动化以及集成电路工艺的迅速发展,单个芯片内集成的功能越来越多,越来越强,以微处理器为核心的SoC(System on Chip)系统成为主流。随着微处理器规模日益增大,体系结构日益复杂,乱序执行、多级流水、大的队列、中断异常处理和多级存储结构等技术纷纷出现, SoC系统复杂度越来越高,设计和验证都变的异常困难。
在SoC系统的设计中,验证已成为芯片设计的瓶颈。目前通常采用两种方式进行功能验证:形式化验证和基于仿真的验证。由于微处理器结构的复杂以及形式化验证的不完善,工业界主要采用基于仿真的验证。基于仿真的验证是将验证用的激励向量同时加载到待测系统和参考模型上,通过比较结果来验证系统功能的正确性。在测试初期,基于仿真的验证方法通常采用简单的激励向量进行验证。但是当验证达到操作系统级别时,功能验证会变得非常复杂,对激励向量会有很高的要求,变得难以编写。而操作系统的验证,需要全系统模型,包括处理器模型,外部设备模型,BIOS固件等。而这些模型实现难度较大,且需要大量的验证。
为了解决在操作系统级别微处理器验证中存在的问题,本专利提出了一种基于全系统仿真模型软硬件协同的微处理器功能验证方法。
发明内容
本发明提出了一种基于全系统仿真模型软硬件协同的微处理器功能验证方法,采用全系统仿真模型中的微处理器软件模型作为参考模型,使用全系统仿真模型的外部设备模型以及BIOS固件构建可运行操作系统的验证环境,采用通用的操作系统产生激励向量,比较参考模型和待验证微处理器IP核在同样环境下,对同一条指令的执行结果。
本专利是一种微处理器IP核比较验证的实现方法,其步骤如下:1)统一需验证的微处理器和参考模型的状态; 2)需验证的微处理器和参考模型同步执行指定程序段;3)比较仿真结果,判断需验证的微处理器是否正确执行指定程序段。
统一需验证的微处理器和参考模型的状态是为了保证在执行程序前微处理器参考模型和待验证IP核的所有状态都是一致,从而确保比较结果的有效性。统一微处理器状态的方式为:获取微处理器参考模型的状态,据此设定待验证IP核的状态。
实现参考模型和待验证微处理器IP模块在指令级别的同步是仿真验证平台的关键。只有实现了指令级别的同步,才能保证验证的有效性。指令级别同步的难点在于如何准确获取微处理器参考模型和待验证IP核在执行一条或一段程序后的处理器状态。指令级同步的方式为:参考模型先执行一条或一段指令,当执行完指定条数的指令或者遇到外部中断时,参考模型记录指令执行的结果并暂停运行,待验证IP核开始执行同一段程序,执行完程序后也记录指令执行的结果。
微处理器参考模型的控制较容易实现,因为微处理器参考模型一般为通用的全系统仿真模型中的微处理器模型或自己设计、实现和验证的软件仿真模型。通过参考模型自带的调试指令就可以启动或暂停微处理器模型,且不会对指令的执行造成任何影响。但微处理器IP核的控制比较复杂,设计者一般不会提供相应的调试命令。微处理器IP核的控制主要有两个难点:若无法预取指令,微处理器不会继续执行已预取的指令,而是暂停运行;执行完指定程序段并等待执行下段程序时,微处理器无法保持状态不变。为了保证微处理器IP核能顺利执行完指定程序段,并保证下段程序执行前和上段程序执行完的状态是完全一致的,本专利在指令流中插入nop,invd,jmp等指令来控制微处理器IP核的运行。这种方式不需要大量改变待验证微处理器IP核的内部实现,就能实现指令级同步。
参考模型和待验证的微处理器IP核运行完同一段指令后,比较两者的执行结果;如果执行结果一致,继续运行下一段程序;如果执行结果不一致,记录错误信息。
    实现本专利的验证平台的总体结构图如图1所示,主要分为两个部分:软件程序和硬件逻辑。
软件程序包括全系统仿真模型和控制程序。现今有些成熟的全系统仿真模型(SIMICS、BOCHS等)包括处理器和相应外部设备模型,可以运行真实的固件、完全未经过修改的内核和驱动代码、嵌入式操作系统和通用/服务器操作系统。验证平台既可以直接采用这些通用的全系统仿真模型,也可以采用自己设计、实现和验证的软件仿真模型。全系统仿真模型必须可以正确运行需测试的操作系统和应用程序,可以实现单步运行,断点设置和状态读取。控制程序是整个验证平台的控制中心,需要实现的功能:控制全系统仿真模型;获取微处理器软件仿真模型的状态;发送微处理器IP核的控制命令;发送外部设备的响应信息;比较微处理器软件仿真模型和微处理器IP核的状态;处理查出的错误。
硬件逻辑包括网络接口、控制模块、接口转换模块和微处理器IP核。网络接口提供控制程序与控制模块之间的数据交互。控制模块需要实现的主要功能:接收和执行控制程序发送的各种命令;发送微处理器IP核的状态;控制微处理器IP核的运行。接口转换模块需要实现的功能:接收和分析软件仿真模型中外部设备的响应信息,以及模拟微处理器IP核连接的外部设备(内存,硬盘接口等)。微处理器IP核是待验证的IP模块,必须提供读取和设定微处理器内部状态的接口。
本发明一种微处理器IP核比较验证方法的优点是:
可以模拟处理器运行操作系统需要的外部设备,控制并监测微处理器IP核的运行。当微处理器IP核在本专利提供的仿真环境中运行操作系统或应用程序时,再也无需采用传统的采样方式在成千上万条指令中寻找微处理器IP核出现错误的位置,可以通过比较可靠的微处理器参考模型与待测试的微处理器IP核在同一环境下的运行状态,快速定位出现分歧的位置。可以找出并定位一些隐藏较深的设计错误,降低操作系统级别功能验证的工作量,加快微处理器系统级验证的速度,简化查错定位的过程,提升验证查错的效率。
附图说明
图1 为总体结构图。
图2 为仿真流程图。
图3 为微处理器状态同步示意图。
图4 为具体实现的示意图。
图5 为中断处理的示意图。
具体实施方式
本专利提出了一种基于全系统仿真模型的软硬件协同的微处理器IP核的功能验证方法,其仿真验证过程如图2所示,可以分为以下三个步骤:
1)微处理器状态的初始化
为了保证微处理器参考模型和待验证IP核在执行程序前,所有状态都是一致,验证系统必须先统一两个微处理器的状态。统一微处理器状态的具体过程如图3所示。图3中,t1表示准备开始同步;t2表示参考模型运行到指定位置;t3表示状态信息和相关命令传递到验证板;t4表示验证板根据收到的信息,强制修改待验证微处理器IP核的状态。整个同步过程可以分为三个阶段:运行参考模型,获取状态信息;传输状态信息;设定微处理器IP核的状态。
2)执行指定程序,进行仿真
一般情况下,指令级别同步的具体过程如图4所示。控制程序控制参考模型执行指令,并记录每条指令执行的结果;当执行完指定条数的指令或者遇到外部中断,控制程序暂停参考模型,此时若待测微处理器IP核处于空闲状态,则向验证板发送这段程序和相关的外部设备信息。硬件控制模块接收到信息后,模拟外部设备响应微处理器IP核的总线请求。微处理器IP核开始执行这段程序。当微处理器完成这段程序的执行后,向PC机发送指令完成信号,微处理器当前状态和指令执行的情况。控制程序接收到调试板发来的完成信号后,对微处理器和参考模型的执行结果进行比较。
微处理器IP核执行指令的过程分为四个阶段来处理:a)微处理器IP核未执行完此段指令,预取指令,内存或I/O读写操作均可以根据接收到的相关信息给出响应。b)微处理器IP核未执行完此段指令,内存或I/O口读写操作仍可以根据接收到的信息给出响应,但预取指令已超出信息的范围;为了保证微处理器不会因为预取请求得不到响应而暂停运行,超出范围的指令均认为是NOP(0x90)指令。c)微处理器已执行完此段指令。硬件控制模块检测到微处理器中正在执行的指令地址已经超出信息的范围,判定微处理器已执行完需要执行的所有指令。此时,硬件控制模块不再响应预取请求,微处理器IP核暂停运行。d)再次接收到下一段指令的相关信息后,为了将微处理器恢复为刚执行完上段指令时的状态,微处理器IP核执行指令INVD(清空Cache);JMP 下段指令的第一条指令地址。当执行完INVD和JMP指令后,cache清空,当前指令地址恢复为下段指令的第一条指令。
在指令的实际执行过程中,可能出现外部中断。外部中断是随机的,且会打乱指令的正常执行顺序。发生外部中断后,微处理器可能会响应中断,先执行中断服务程序,执行完中断服务程序后,再继续执行被打断的指令。如图5所示,为了保证指令执行的顺序完全一致,当控制程序发现参考模型响应外部中断后,将暂停参考模型,等待微处理器IP核响应中断。当微处理器执行完中断前最后一条指令a后,接口转换模块将发出中断请求信号。正常情况下,微处理器无法立即响应中断,为了避免微处理器由于无法取指而暂停运行,中断前最后一条指令a与响应中断之间将插入了若干个NOP。中断服务程序完成后,微处理器将返回响应中断时的指令,为了保证中断返回后执行的指令均为指令a+1,微处理器IP核执行INVD,JMP指令进行再次定位。
3)验证仿真结果
参考模型和待验证的微处理器IP核运行完同一段指令后,验证系统对两者的执行结果进行比较;如果执行结果一致,重复执行2),3)过程,比较下一段程序的运行结果;如果执行结果不一致,可以选择暂停仿真,对出错程序段进行单步仿真验证,找出错误位置并修改,或者选择记录错误相关信息,重复执行1),2),3)过程,强制将微处理器IP核的状态修改为参考模型的状态,继续比较下一段程序。

Claims (3)

1.一种微处理器IP核比较验证的实现方法,其特征在于:其步骤如下:
微处理器状态的初始化
     设定微处理器参考模型和微处理器待验证IP核的状态,保证微处理器参考模型和待验证IP核在执行程序前,所有状态都一致;
执行指定程序,进行仿真
微处理器参考模型和微处理器待验证IP核在相同的仿真环境下,同步执行指定程序段,此步骤的关键是实现参考模型和待验证IP核在指令级别的同步,只有实现了指令级别的同步,才能保证验证的有效性;
  3)验证仿真结果
参考模型和待验证的微处理器IP核运行完同一段指令后,验证系统对两者的执行结果进行比较,据此判断微处理器IP核是否正确执行。
2.根椐权利要求1所述的一种微处理器IP核比较验证的实现方法,其特征在于:为保证微处理器IP核能顺利执行完指定段程序,并保证下段程序执行前和上段程序执行完的状态是完全一致的,将微处理器IP核指令执行的过程分为四个阶段处理:a)微处理器IP核未执行完此段指令,预取指令,内存或I/O读写操作均可以根据接收到的相关信息给出响应;b)微处理器IP核未执行完此段指令,内存或I/O口读写操作仍可以根据接收到的信息给出响应,但预取指令已超出信息的范围,为了保证微处理器不会因为预取请求得不到响应而暂停运行,超出范围的指令均认为是NOP(0x90)指令;c)微处理器已执行完此段指令,硬件控制模块检测到微处理器正在执行的指令地址已经超出信息的范围,判定微处理器已执行完需要执行的所有指令,此时,硬件控制模块不再响应预取请求,微处理器IP核暂停运行;d)再次接收到下一段指令的相关信息后,为了将微处理器恢复为刚执行完上段指令时的状态,微处理器IP核执行指令INVD(清空Cache);JMP 下段指令的第一条指令地址,当执行完INVD和JMP指令后,cache清空,当前指令地址恢复为下段指令的第一条指令。
3.  根椐权利要求1所述的一种微处理器IP核比较验证的实现方法,其特征在于:所述的当控制程序发现参考模型响应外部中断后,将暂停参考模型,等待微处理器IP核响应中断,当微处理器执行完中断前最后一条指令a后,接口转换模块将发出中断请求信号,正常情况下,微处理器无法立即响应中断,为了避免微处理器由于无法取指而暂停运行,中断前最后一条指令a与响应中断之间将插入了若干个NOP指令,中断服务程序完成后,微处理器将返回响应中断时的指令,为了保证能够继续执行指令a+1,微处理器IP核执行INVD,JMP指令进行再次定位。
CN201310528269.2A 2013-10-31 2013-10-31 一种微处理器ip核比较验证的实现方法 Expired - Fee Related CN103713977B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310528269.2A CN103713977B (zh) 2013-10-31 2013-10-31 一种微处理器ip核比较验证的实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310528269.2A CN103713977B (zh) 2013-10-31 2013-10-31 一种微处理器ip核比较验证的实现方法

Publications (2)

Publication Number Publication Date
CN103713977A true CN103713977A (zh) 2014-04-09
CN103713977B CN103713977B (zh) 2015-06-24

Family

ID=50406978

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310528269.2A Expired - Fee Related CN103713977B (zh) 2013-10-31 2013-10-31 一种微处理器ip核比较验证的实现方法

Country Status (1)

Country Link
CN (1) CN103713977B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104898546A (zh) * 2015-05-06 2015-09-09 浙江中控研究院有限公司 一种基于soc的plc在线调试系统和方法
WO2017020590A1 (zh) * 2015-08-05 2017-02-09 深圳市中兴微电子技术有限公司 一种芯片验证方法和装置、设备、存储介质
CN109753415A (zh) * 2017-11-02 2019-05-14 展讯通信(上海)有限公司 处理器验证系统及基于处理器验证系统的处理器验证方法
CN111400997A (zh) * 2020-03-26 2020-07-10 超验信息科技(长沙)有限公司 一种基于同步执行的处理器核验证方法、系统及介质
CN113176974A (zh) * 2021-06-30 2021-07-27 北京智芯微电子科技有限公司 用于验证ip核的方法、装置及系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8079009B1 (en) * 2008-12-08 2011-12-13 Xilinx, Inc. Managing interrupt requests from IP cores
CN103295461A (zh) * 2013-05-13 2013-09-11 西安电子科技大学 一种用于实验的微处理器及其实验方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8079009B1 (en) * 2008-12-08 2011-12-13 Xilinx, Inc. Managing interrupt requests from IP cores
CN103295461A (zh) * 2013-05-13 2013-09-11 西安电子科技大学 一种用于实验的微处理器及其实验方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
樊宇等: "基于虚拟机的微处理器功能验证方法", 《第十六届计算机工程与工艺年会暨第二届微处理器技术论坛论文集》, 17 August 2012 (2012-08-17), pages 478 - 482 *

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104898546A (zh) * 2015-05-06 2015-09-09 浙江中控研究院有限公司 一种基于soc的plc在线调试系统和方法
CN104898546B (zh) * 2015-05-06 2017-07-14 浙江中控研究院有限公司 一种基于soc的plc在线调试系统和方法
WO2017020590A1 (zh) * 2015-08-05 2017-02-09 深圳市中兴微电子技术有限公司 一种芯片验证方法和装置、设备、存储介质
CN106445800A (zh) * 2015-08-05 2017-02-22 深圳市中兴微电子技术有限公司 一种芯片验证的方法和装置
CN109753415A (zh) * 2017-11-02 2019-05-14 展讯通信(上海)有限公司 处理器验证系统及基于处理器验证系统的处理器验证方法
CN109753415B (zh) * 2017-11-02 2022-06-24 展讯通信(上海)有限公司 处理器验证系统及基于处理器验证系统的处理器验证方法
CN111400997A (zh) * 2020-03-26 2020-07-10 超验信息科技(长沙)有限公司 一种基于同步执行的处理器核验证方法、系统及介质
CN111400997B (zh) * 2020-03-26 2023-08-08 超睿科技(长沙)有限公司 一种基于同步执行的处理器核验证方法、系统及介质
CN113176974A (zh) * 2021-06-30 2021-07-27 北京智芯微电子科技有限公司 用于验证ip核的方法、装置及系统
CN113176974B (zh) * 2021-06-30 2021-10-15 北京智芯微电子科技有限公司 用于验证ip核的方法、装置及系统

Also Published As

Publication number Publication date
CN103713977B (zh) 2015-06-24

Similar Documents

Publication Publication Date Title
US6678625B1 (en) Method and apparatus for a multipurpose configurable bus independent simulation bus functional model
US8180620B2 (en) Apparatus and method for performing hardware and software co-verification testing
CN110865971B (zh) Soc芯片的验证系统及其方法
CN103713977B (zh) 一种微处理器ip核比较验证的实现方法
CN113076227A (zh) Mcu验证方法、系统和终端设备
CN110727584B (zh) 一种处理器硅前验证用的rtl与参考模型实时比较方法
CN114168200B (zh) 多核处理器访存一致性的验证系统及方法
CN117422026B (zh) 一种基于risc-v架构的处理器验证系统
CN111400997B (zh) 一种基于同步执行的处理器核验证方法、系统及介质
JP2008507025A (ja) 集積回路テスト用エミュレーション及びデバッグインターフェイス
US20090204384A1 (en) Debugging device, debugging method and hardware emulator
CN117422025A (zh) 一种基于risc-v架构的随机中断调试验证系统
US6567934B1 (en) Method and apparatus for verifying multiprocessing design in a unit simulation environment
CN117892661A (zh) 一种基于risc-v处理器验证的模拟器比对系统
CN106933727B (zh) 处理器中断机制的验证方法及验证装置
US20030101040A1 (en) Hardware simulation using a test scenario manager
Cho et al. A full-system VM-HDL co-simulation framework for servers with PCIe-connected FPGAs
JP2001209556A (ja) 検証支援システム
CN107329869B (zh) 一种片上系统的仿真方法及装置
JP2009104490A (ja) プログラムのテスト装置
CN116048887A (zh) 一种芯片验证方法及装置、系统、电子设备、存储介质
CN111338761B (zh) 一种51单片机虚拟中断控制器及实现方法
CN112765021A (zh) 一种引导程序的调试检验方法、装置、设备及存储介质
Xiao et al. An ISA-level accurate fault simulator for system-level fault analysis
Ryzhyk et al. Improved device driver reliability through hardware verification reuse

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20150624