CN108038283B - 一种虚拟时钟同步的高效高覆盖率SoC验证平台 - Google Patents
一种虚拟时钟同步的高效高覆盖率SoC验证平台 Download PDFInfo
- Publication number
- CN108038283B CN108038283B CN201711234558.6A CN201711234558A CN108038283B CN 108038283 B CN108038283 B CN 108038283B CN 201711234558 A CN201711234558 A CN 201711234558A CN 108038283 B CN108038283 B CN 108038283B
- Authority
- CN
- China
- Prior art keywords
- module
- signal
- instruction
- clock
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/398—Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明涉及一种虚拟时钟同步的高效高覆盖率SoC验证平台,包括双时钟模块:产生系统所需要的两种时钟信号;待验证模块:执行随机指令,并反馈执行结果;参考模型模块:为系统提供待验证模块的对比结果;初始化模块:提供初始化所需的程序;监视模块:监视待验证模块运行状态;结果对比模块:检查待验证模块执行结果;控制模块:控制整个系统的运行流程;本发明一种SoC随机指令同步测试平台,能够为SoC验证平台中待验证模块中指令和参考模型中指令难以同步的问题提供一种解决方案,大量节省验证时间,降低工作难度,并提高验证的覆盖率。
Description
技术领域
本发明涉及一种虚拟时钟同步的高效高覆盖率SoC验证平台,特别是涉及SoC中微处理器的UVM随机指令测试方法,属于集成电路验证技术领域。
背景技术
UVM(通用验证方法学)随机指令测试在SoC(系统级芯片)验证过程中起着重要的作用,随机指令测试能够降低验证测试激励人为因素的干扰,避免人为编写测试激励的倾向性,充分对SoC设计的边角情况进行验证。
在UVM随机指令测试中需要使用参考SoC模型的结果来和待验证SoC的执行结果进行对比来确定设计的正确性,待验证的SoC是周期精确的,能够逐个周期地给出待验证设计的确切行为;参考SoC模型通常是数学模型,是指令精确的,指令精确的模型运行速度很快,不考虑处理器的精确时序特性,能够给出每条指令的正确结果。
参考SoC模型和待验征SoC设计之间的指令同步问题是UVM随机指令测试平台中经常面临的问题,通常使用的指令同步方案是参考SoC模型和待验征SoC设计基于相同的时钟信号进行指令同步。
上述已有方式存在的缺点主要表现在:基于相同时钟信号进行指令同步方案在进行指令精确的参考模型和周期精确的设计模型之间的同步比较复杂,并且对于不同的设计模型需要使用不同的控制逻辑,在待验征SoC设计改动或更换之后需要重新设计指令同步方案。
发明内容
本发明的目的在于克服现有技术的上述不足,提供指令精确和周期精确交互仿真中虚拟时钟同步系统,该方法能够更好的解决参考SoC模型和待验征SoC设计之间的指令同步问题,在待验征SoC设计改动或更换后不需要重新对UVM随机指令测试平台进行改动,能够大量节省验证时间,降低工作难度,并提高验证的准确性。
本发明的上述目的是通过如下技术方案予以实现的:
提供一种虚拟时钟同步的SoC验证平台,包括双时钟模块、待验证模块、参考模型模块、监视模块、结果对比模块和控制模块;
双时钟模块生成监控时钟和系统时钟;
参考模型模块接收来自控制模块的随机指令信号并执行,每执行一条随机指令就产生相应的指令参考进度信号和相应的指令参考结果信号,将指令参考进度信号传递给监视模块;接收来自控制模块的结果请求信号,将指令参考结果信号传输给结果对比模块;
待验证模块待验证模块,根据系统时钟生成内核时钟,作为时钟信号并传递给控制模块;待验证模块接收来自控制模块的随机指令信号并执行,产生指令执行进度信号、指令执行控制信号和指令执行结果信号,把指令执行进度信号和指令执行控制信号传递给监视模块,指令执行结果信号发送给结果对比模块;
结果对比模块将指令执行结果信号和指令参考结果信号的数值进行逐一对比,如果数值不相等则把结果对比错误信号发送给控制模块;
监视模块:将监控时钟作为时钟信号;接收来自待验证模块的指令执行控制信号,监视模块每周期根据指令执行控制信号判断是否发生仿真异常,当发生仿真异常时,产生仿真异常信号,并传递给控制模块;接收来自待验证模块的指令执行进度信号和来自参考模型模块的指令参考进度信号,每周期进行一次判断,如果指令执行进度信号的数值和指令参考进度信号数值一致,则把进度一致指令发送信号传递给控制模块;
控制模块:将内核时钟信号作为时钟信号,每收到一条进度一致指令后生成一条随机指令信号,并发送给待验证模块和参考模型模块;当接收来自结果对比模块的结果对比错误信号时,终止仿真进程;接收到仿真异常信号后重新开始仿真进程。
优选的,还包括初始化模块,接收来自控制模块的初始化启动信号后,对待验证模块和参考模型模块进行初始化;
监视模块上电后,启动时刻认为待验证模块和参考模块的指令执行进度一致,把进度一致指令发送信号传递给控制模块;
控制模块第一次收到进度一致指令时,向初始化模块发送初始化启动信号,直到初始化程序发送完毕后,停止向初始化模块发送初始化启动信号。
优选的,所述监控时钟根据录入监控时钟周期配置参数生成;所述系统时钟根据系统时钟周期配置参数生成。
优选的,内核时钟信号周期为监控时钟信号的周期的大于1的整数倍。
优选的,所述的参考模型模块使用指令精确的模型;所述待验证模块使用周期精确的模型。
优选的,所述的参考模型模块使用SystemC语言模型;所述待验证模块使用硬件语言描述模型。
优选的,所述指令参考进度信号为能够代表指令在参考模型中执行进度的信号;指令执行进度信号为能够代表指令在待验证模块中执行进度的信号。
优选的,参考模型模块使用SystemC语言模型时,指令参考进度信号选取当前已执行完毕的指令的程序计数值;
所述待验证模块使用SoC中微处理器的流水线模型为取址、译码、执行、存储和写回的五级流水线模型,指令执行进度信号选取正处于流水线译码阶段的指令的程序计数值。
优选的,指令参考结果信号和指令执行结果信号是相同类型的能够代表指令在参考模型和待验证模型中执行完毕后的结果的信号。
优选的,选取参考模型中的所有寄存器的状态值作为指令参考结果信号,选取待验证模块中的所有寄存器的状态值作为指令执行结果信号。
优选的,指令执行控制信号是能够指示指令执行发生错误的信号。
优选的,所述指令执行控制信号选取待验证模块使用模型中的错误指示信号。
本发明与现有技术相比具有如下优点:
(1)本发明提供的虚拟时钟同步的SoC验证平台,能够灵活的配置参考SoC模型和待验征SoC设计之间的指令同步方式,解决指令精确模型和周期精确模型之间的同步问题。
(2)本发明提供的虚拟时钟同步的SoC验证平台使指令同步操作更加简单,大量节省验证时间,降低工作难度。
(3)对于不同的待验证模块,无需重新设计同步方法,仅需配置监控时钟周期配置参数和系统时钟周期配置参数,即可实现同步,通用性好。
(4)本发明通过设置虚拟的监控时钟和系统时钟,实现了待验证模块、参考模型模块的指令同步,解决了指令精确模型和周期精确模型交互仿真中的时钟难以同步问题。
附图说明
图1为本发明虚拟时钟同步的SoC验证平台组成示意图;
图2为本发明监视模块流程图;
图3为本发明UVM控制模块控制流程图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步详细的描述:
如图1所示为虚拟时钟同步的SoC验证平台组成示意图,由图可知该平台包括双时钟模块、待验证模块、参考模型模块、监视模块、初始化模块、结果对比模块、UVM控制模块。
双时钟模块中录入监控时钟周期配置参数和系统时钟周期配置参数,根据监控时钟周期配置参数和系统时钟周期配置参数生成监控时钟和系统时钟;并将监控时钟传输至监视模块,将系统时钟传输至待验证模块;监控时钟周期配置参数和系统时钟周期配置参数的设置需要保证内核时钟信号周期为监控时钟信号的周期的大于1的整数倍。
初始化模块中录入初始化程序,接收来自UVM控制模块的初始化启动信号,初始化程序为一段初始化程序指令,每当接收到UVM控制模块的初始化启动信号之后,就将初始化程序指令传输至待验证模块和参考模型模块,直至所有初始化程序指令发送完毕;
参考模型模块中录入参考模型,接收来自初始化模块的初始化程序指令,执行初始化程序指令进行初始化;接收来自UVM控制模块的随机指令信号,执行随机指令信号,每执行一条随机指令产生相应的指令参考进度信号和相应的指令参考结果信号,将指令参考进度信号传递给监视模块;接收来自UVM控制模块的结果请求信号,将指令参考结果信号传输给结果对比模块;
待验证模块为待验证的SoC设计模型,由硬件语言描述实现对待验证SoC的模拟,待验证模块接收时钟产生模块传递进来的系统时钟信号,把系统时钟信号作为整个待验证模块的时钟,并生成内核时钟传递给UVM控制模块,内核时钟周期为监控时钟信号的周期的大于1的整数倍;待验证模块接收初始化模块传递进来的初始化程序指令进行初始化;待验证模块接收来自UVM控制模块的随机指令信号并执行,待验证模块执行随机指令信号产生指令执行进度信号、指令执行控制信号和指令执行结果信号,待验证模块把指令执行进度信号、指令执行控制信号传递给监视模块;待验证模块把SoC内部的指令执行结果信号发送给结果对比模块;指令执行控制信号是能够指示指令执行发生错误的信号,例如选取SoC模型中的错误指示信号作为指令执行控制信号。
结果对比模块中接收来自待验证模块的指令执行结果信号,接收来自参考模型模块的指令参考结果信号,将指令执行结果信号和指令参考结果信号的数值进行逐一对比,如果数值相等则对比结果一致,不做处理,如果数值不相等则对比结果不一致,表明待验证模块出错,把结果对比错误信号发送给UVM控制模块;
如图2所示为监视模块流程图示意图,由图可知监视模块中接收来自双时钟模块的监控时钟,作为监视模块的监控时钟;接收来自待验证模块的指令执行控制信号,监视模块在监控时钟信号的每一个周期进行一次判断,根据指令执行控制信号判断是否发生仿真异常,当发生仿真异常时,产生仿真异常信号,并把仿真异常信号传递给UVM控制模块;接收来自待验证模块的指令执行进度信号,接收来自参考模型模块的指令参考进度信号,监视模块在监控时钟信号的每一个周期进行一次判断,如果指令执行进度信号的数值和指令参考进度信号数值一致,则认为待验证模块和参考模块的指令执行进度一致,把进度一致指令发送信号传递给UVM控制模块,如果指令执行进度信号的数值和指令参考进度信号数值不一致,表明尚未同步,不做处理;监视模块上电后,启动时刻认为待验证模块和参考模块的指令执行进度一致,把进度一致指令发送信号传递给UVM控制模块。
如图3所示为UVM控制模块控制流程图示意图,由图可知UVM控制模块中接收来自待验证模块的内核时钟信号,UVM控制模块在仿真进程开始时在内核时钟信号每一个周期内都要检测进度一致指令发送信号,第一次收到进度一致指令时,向初始化模块发送初始化启动信号,直到初始化程序发送完毕后,停止向初始化模块发送初始化启动信号;之后每收到一条进度一致指令UVM控制模块生成一条随机指令信号,并把随机指令信号发送给待验证模块和参考模型模块,以实现执行同步,待验证模块和参考模型模块分别执行随机指令,分别输出执行结果,以验证待验证模块功能是否正确;接收来自结果对比模块的结果对比错误信号,UVM控制模块接收到结果对比错误信号以后,终止仿真进程,把结果对比错误信号记录下来供验证人员调试;UVM控制模块接收到仿真异常信号之后重新开始仿真进程,进行整个平台重启。
系统时钟信号的周期和内核时钟信号周期之间的关系由待验证模块中人工录入需要验证的SoC设计代码组成的系统模块决定,监控时钟信号的周期为人为录入的监控时钟周期配置参数决定,监控时钟周期配置参数和系统时钟周期配置参数的设置需要保证内核时钟信号周期为监控时钟信号的周期的大于1的整数倍。
指令参考进度信号为人工录入参考模型中能够代表指令在参考模型中执行进度的信号,对于参考模型是SystemC语言模型的场景,指令参考进度信号可以选取参考模型当前已执行完毕的指令的程序计数值;指令执行进度信号为人工录入需要验证的SoC设计代码组成的系统模块中能够代表指令在待验证模块中执行进度的信号,对于SoC中微处理器的流水线模型为取址、译码、执行、存储、写回的五级流水线模型场景中,待验证模块中指令执行进度信号可选取正处于流水线译码阶段的指令的程序计数值。
指令参考结果信号和指令执行结果信号是相同类型的能够代表指令在参考模型和待验证模型中执行完毕后的结果的信号,通常选取参考模型中的所有寄存器的状态值作为指令参考结果信号,选取待验证模块中的所有寄存器的状态值作为指令执行结果信号。
本发明说明书中未作详细描述的内容属本领域技术人员的公知技术。
Claims (12)
1.一种虚拟时钟同步的SoC验证平台,其特征在于:包括双时钟模块、待验证模块、参考模型模块、监视模块、结果对比模块和控制模块;
双时钟模块生成监控时钟和系统时钟;
参考模型模块接收来自控制模块的随机指令信号并执行,每执行一条随机指令就产生相应的指令参考进度信号和相应的指令参考结果信号,将指令参考进度信号传递给监视模块;接收来自控制模块的结果请求信号,将指令参考结果信号传输给结果对比模块;
待验证模块,根据系统时钟生成内核时钟,作为时钟信号并传递给控制模块;待验证模块接收来自控制模块的随机指令信号并执行,产生指令执行进度信号、指令执行控制信号和指令执行结果信号,把指令执行进度信号和指令执行控制信号传递给监视模块,指令执行结果信号发送给结果对比模块;
结果对比模块将指令执行结果信号和指令参考结果信号的数值进行逐一对比,如果数值不相等则把结果对比错误信号发送给控制模块;
监视模块:将监控时钟作为时钟信号;接收来自待验证模块的指令执行控制信号,监视模块每周期根据指令执行控制信号判断是否发生仿真异常,当发生仿真异常时,产生仿真异常信号,并传递给控制模块;接收来自待验证模块的指令执行进度信号和来自参考模型模块的指令参考进度信号,每周期进行一次判断,如果指令执行进度信号的数值和指令参考进度信号数值一致,则把进度一致指令发送信号传递给控制模块;
控制模块:将内核时钟信号作为时钟信号,每收到一条进度一致指令后生成一条随机指令信号,并发送给待验证模块和参考模型模块;当接收来自结果对比模块的结果对比错误信号时,终止仿真进程;接收到仿真异常信号后重新开始仿真进程。
2.如权利要求1所述的虚拟时钟同步的SoC验证平台,其特征在于,还包括初始化模块,接收来自控制模块的初始化启动信号后,对待验证模块和参考模型模块进行初始化;
监视模块上电后,启动时刻认为待验证模块和参考模块的指令执行进度一致,把进度一致指令发送信号传递给控制模块;
控制模块第一次收到进度一致指令时,向初始化模块发送初始化启动信号,直到初始化程序发送完毕后,停止向初始化模块发送初始化启动信号。
3.根据权利要求1所述的虚拟时钟同步的SoC验证平台,其特征在于:
所述监控时钟根据录入监控时钟周期配置参数生成;所述系统时钟根据系统时钟周期配置参数生成。
4.根据权利要求3所述的虚拟时钟同步的SoC验证平台,其特征在于:
内核时钟信号周期为监控时钟信号的周期的大于1的整数倍。
5.根据权利要求1或2所述的虚拟时钟同步的SoC验证平台,其特征在于:所述的参考模型模块使用指令精确的模型;所述待验证模块使用周期精确的模型。
6.根据权利要求5所述的虚拟时钟同步的SoC验证平台,其特征在于:所述的参考模型模块使用SystemC语言模型;所述待验证模块使用硬件语言描述模型。
7.根据权利要求1或2所述的虚拟时钟同步的SoC验证平台,其特征在于:所述指令参考进度信号为能够代表指令在参考模型中执行进度的信号;指令执行进度信号为能够代表指令在待验证模块中执行进度的信号。
8.根据权利要求7所述的虚拟时钟同步的SoC验证平台,其特征在于:
参考模型模块使用SystemC语言模型时,指令参考进度信号选取当前已执行完毕的指令的程序计数值;
所述待验证模块使用SoC中微处理器的流水线模型为取址、译码、执行、存储和写回的五级流水线模型,指令执行进度信号选取正处于流水线译码阶段的指令的程序计数值。
9.根据权利要求1或2所述的虚拟时钟同步的SoC验证平台,其特征在于:
指令参考结果信号和指令执行结果信号是相同类型的能够代表指令在参考模型和待验证模型中执行完毕后的结果的信号。
10.根据权利要求1或2所述的虚拟时钟同步的SoC验证平台,其特征在于:
选取参考模型中的所有寄存器的状态值作为指令参考结果信号,选取待验证模块中的所有寄存器的状态值作为指令执行结果信号。
11.根据权利要求1或2所述的虚拟时钟同步的SoC验证平台,其特征在于:指令执行控制信号是能够指示指令执行发生错误的信号。
12.根据权利要求1或2所述的虚拟时钟同步的SoC验证平台,其特征在于:所述指令执行控制信号选取待验证模块使用模型中的错误指示信号。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711234558.6A CN108038283B (zh) | 2017-11-30 | 2017-11-30 | 一种虚拟时钟同步的高效高覆盖率SoC验证平台 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711234558.6A CN108038283B (zh) | 2017-11-30 | 2017-11-30 | 一种虚拟时钟同步的高效高覆盖率SoC验证平台 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108038283A CN108038283A (zh) | 2018-05-15 |
CN108038283B true CN108038283B (zh) | 2021-06-08 |
Family
ID=62094397
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711234558.6A Active CN108038283B (zh) | 2017-11-30 | 2017-11-30 | 一种虚拟时钟同步的高效高覆盖率SoC验证平台 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108038283B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109492269B (zh) * | 2018-10-22 | 2023-06-27 | 北方电子研究院安徽有限公司 | 一种基于uvm的数字引信定时电路验证平台 |
TW202024971A (zh) * | 2018-12-26 | 2020-07-01 | 新唐科技股份有限公司 | 晶片自動驗證系統及其方法 |
CN110659172B (zh) * | 2019-09-11 | 2022-12-27 | 上海高性能集成电路设计中心 | 一种微处理器锁机制的指令级校验方法 |
CN111400997B (zh) * | 2020-03-26 | 2023-08-08 | 超睿科技(长沙)有限公司 | 一种基于同步执行的处理器核验证方法、系统及介质 |
CN111611768B (zh) * | 2020-05-21 | 2023-04-25 | 北京百度网讯科技有限公司 | 用于监控时钟信号的方法和装置 |
CN112949231B (zh) * | 2021-02-26 | 2023-01-24 | 浪潮电子信息产业股份有限公司 | 一种基于uvm验证平台的模块验证系统、方法及设备 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102184290B (zh) * | 2011-05-06 | 2013-02-06 | 天津大学 | 嵌入式微处理器的周期精确和位精确系统级模型构建方法 |
US20150049101A1 (en) * | 2013-08-16 | 2015-02-19 | Nobuyuki Suzuki | Display adaptation system for mipi display serial interface applications |
CN104461810B (zh) * | 2014-11-14 | 2018-04-10 | 深圳市芯海科技有限公司 | 一种提高嵌入式处理器功能验证效率的方法 |
CN105207957B (zh) * | 2015-08-18 | 2018-10-30 | 中国电子科技集团公司第五十八研究所 | 一种基于片上网络多核架构的系统 |
CN106547931A (zh) * | 2015-09-17 | 2017-03-29 | 张洪 | Soc软硬件联合验证系统 |
CN105701298A (zh) * | 2016-01-15 | 2016-06-22 | 天津大学 | 基于PowerPC SoC架构的仿真平台设计方法 |
CN106599343B (zh) * | 2016-11-01 | 2020-10-20 | 深圳国微技术有限公司 | 一种提高仿真效率的soc系统验证方法和装置 |
CN107293330B (zh) * | 2017-06-12 | 2020-08-11 | 北京东土军悦科技有限公司 | 对随机存取存储器ram进行仿真验证的方法和仿真验证系统 |
-
2017
- 2017-11-30 CN CN201711234558.6A patent/CN108038283B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN108038283A (zh) | 2018-05-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108038283B (zh) | 一种虚拟时钟同步的高效高覆盖率SoC验证平台 | |
US9804944B2 (en) | Data processing system | |
US20080312900A1 (en) | Simulation apparatus and simulation method | |
CN107656856B (zh) | 一种基于cpld的系统状态显示方法及装置 | |
CN103823698A (zh) | Fpga和dsp目标程序的烧写和启动的方法及设备 | |
Ryzhyk et al. | {User-Guided} Device Driver Synthesis | |
CN113076227A (zh) | Mcu验证方法、系统和终端设备 | |
CN110275818B (zh) | 硅后验证方法、装置及存储介质 | |
CN106681877B (zh) | 芯片调试系统及方法与系统芯片 | |
CN111400997B (zh) | 一种基于同步执行的处理器核验证方法、系统及介质 | |
US8140315B2 (en) | Test bench, method, and computer program product for performing a test case on an integrated circuit | |
CN108121842B (zh) | 多处理器系统芯片的低功耗工作方式的验证方法和装置 | |
CN103713977B (zh) | 一种微处理器ip核比较验证的实现方法 | |
CN1987877A (zh) | 一种原型机的测试系统和方法 | |
JP2007334812A (ja) | シミュレータ及びシミュレーション方法 | |
CN116087752A (zh) | 一种芯片测试方法、系统、装置及介质 | |
CN105067994A (zh) | 定位片上系统时序逻辑错误、错误率计算及其应用方法 | |
CN114968681A (zh) | 监测i2c总线通信异常的方法及装置、i2c主设备 | |
CN107329869B (zh) | 一种片上系统的仿真方法及装置 | |
CN111736654B (zh) | 时钟模型实现方法、装置、计算机设备及存储介质 | |
CN105068835B (zh) | 移动终端及其调试信息显示方法 | |
CN113434421A (zh) | 虚拟设备的测试方法及其装置 | |
US20110320160A1 (en) | Integrated circuit, simulation apparatus and simulation method | |
US7904289B2 (en) | Method and system for testing functionality of a chip checker | |
CN116594830B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |