CN111295658A - 模拟装置、模拟方法和模拟程序 - Google Patents

模拟装置、模拟方法和模拟程序 Download PDF

Info

Publication number
CN111295658A
CN111295658A CN201780096441.8A CN201780096441A CN111295658A CN 111295658 A CN111295658 A CN 111295658A CN 201780096441 A CN201780096441 A CN 201780096441A CN 111295658 A CN111295658 A CN 111295658A
Authority
CN
China
Prior art keywords
simulation
unit
change
execution
instruction
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
CN201780096441.8A
Other languages
English (en)
Other versions
CN111295658B (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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Publication of CN111295658A publication Critical patent/CN111295658A/zh
Application granted granted Critical
Publication of CN111295658B publication Critical patent/CN111295658B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3055Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2117/00Details relating to the type or aim of the circuit design
    • G06F2117/08HW-SW co-design, e.g. HW-SW partitioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2119/00Details relating to the type or aim of the analysis or the optimisation
    • G06F2119/12Timing analysis or timing optimisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Debugging And Monitoring (AREA)

Abstract

在模拟装置(100)中,计算部(113)计算执行多个指令代码的各指令代码(221)所花费的执行处理时间。存储部(140)存储变更设定信息(230),在该变更设定信息(230)中设定有变更规则,该变更规则变更处理单位中包含的多个指令代码的执行处理时间。变更部(115)按照变更设定信息230中设定的变更规则将执行处理时间变更为变更处理时间。此外,变更部(115)将多个指令代码的各指令代码的变更处理时间计入整体时刻(240)。模拟执行部(116)使用整体时刻(240)执行目标程序(210)的模拟。监视部(120)在模拟的执行中监视目标模型的状态。

Description

模拟装置、模拟方法和模拟程序
技术领域
本发明涉及模拟装置、模拟方法和模拟程序。
背景技术
存在如下的模拟器:在主计算机构建包含作为模拟目标的目标CPU(CentralProcessing Unit:中央处理单元)的目标模型,进行模拟。该模拟器具有包含时间信息的测试脚本、解释该测试脚本的脚本解释部和执行脚本的脚本执行部。脚本执行部根据解释结果,在脚本中记载的时间,驱动脚本中记载的信号。根据这样的结构,即使在没有实机或硬件模拟器的情况下,模拟器也能够进行系统测试。
在专利文献1中,公开有通过联动地进行多个硬件模型的模拟来进行软件的动作验证的方式。专利文献1的方式通过对硬件模型的时间经过进行加速,缩短软件的动作验证所需的时间。
现有技术文献
专利文献
专利文献1:日本特开2000-267889号公报
发明内容
发明要解决的课题
在专利文献1的技术中,无法进行基于CPU负载变动或硬件等待这样的定时偏差即定时鲁棒的动作验证。
本发明的目的在于,能够进行基于定时鲁棒的动作验证,提高验证品质。
用于解决课题的手段
本发明的模拟装置进行模拟,该模拟是在构建于虚拟环境的目标模型中执行包含由多个指令代码构成的处理单位的目标程序,其中,该模拟装置具有:
计算部,其计算执行所述多个指令代码的各指令代码所花费的执行处理时间;
存储部,其存储变更设定信息,在该变更设定信息中设定有所述处理单位和变更规则,该变更规则变更所述处理单位中包含的所述多个指令代码的执行处理时间;
变更部,其按照所述变更设定信息中设定的所述变更规则将所述执行处理时间变更为变更处理时间,将所述多个指令代码的各指令代码的变更处理时间计入表示所述模拟的时刻设定的整体时刻;
模拟执行部,其使用所述整体时刻执行所述目标程序的模拟;以及
监视部,其在所述模拟的执行中监视所述目标模型的状态。
发明效果
在本发明的模拟装置中,变更部按照变更规则将执行处理时间变更为变更处理时间。而且,变更部将多个指令代码的各指令代码的变更处理时间计入模拟的整体时刻。此外,模拟执行部使用整体时刻执行目标程序的模拟。而且,监视部在模拟的执行中监视目标模型的状态。因此,根据本发明的模拟装置,能够通过简单的结构产生执行指令代码的定时偏差,进行基于定时鲁棒的动作验证,因此,能够提高验证质量。
附图说明
图1是实施方式1的模拟装置100的结构图。
图2是实施方式1的模拟装置100的模拟处理S100的流程图。
图3是用于说明实施方式1的模拟处理S100的图。
图4是示出实施方式1的变更设定信息230的例子的图。
图5是示出实施方式1的监视对象信息250的例子的图。
图6是在实施方式1中不变更执行处理时间而进行模拟时的示意图。
图7是在实施方式1中变更执行处理时间而进行模拟时的示意图。
图8是实施方式1的变形例的模拟装置100的结构图。
具体实施方式
以下,使用附图对本发明的实施方式进行说明。另外,在各图中,对相同或对应的部分标注相同的标号。在实施方式的说明中,对于相同或对应的部分,适当省略或简化说明。
实施方式1
***结构的说明***
使用图1对本实施方式的模拟装置100的结构进行说明。
模拟装置100是计算机。模拟装置100具有处理器910,并且具有存储器921、辅助存储装置922、输入接口930和输出接口940这样的其他硬件。处理器61经由信号线与其他硬件连接,控制这些其他硬件。
作为功能要素,模拟装置100具有CPU模型110、监视部120、HW(硬件)模型130和存储部140。CPU模型110具有指令取出部111、指令执行部112、计算部113、判定部114、变更部115和模拟执行部116。HW模型130具有存储器模型131、外部IO模型132、外围设备模型133和CPU总线模型134。在存储部140存储有变更设定信息230、整体时刻240和监视对象信息250。
模拟装置100使由CPU模型110和HW模型130构成的虚拟模型为模拟的目标模型。由CPU模型110和HW模型130构成的目标模型是构建于模拟装置100的虚拟环境的虚拟模型。
CPU模型110和监视部120的功能通过软件来实现。
存储部140设置于存储器921。在存储器921除了存储部140之外,还存储有使目标模型工作的目标程序210。此外,存储器921具有指令存储器220,该指令存储器220存储目标程序210的指令代码221。
在图1中,HW模型130被记载于处理器910的外部,但是,HW模型130是由处理器910和各种硬件虚拟地构建的。
处理器910是执行模拟程序的装置。模拟程序是实现CPU模型110和监视部120的功能的程序。
处理器910是进行运算处理的IC(Integrated Circuit:集成电路)。处理器910的具体例是CPU、DSP(Digital Signal Processo:数字信号处理器)、GPU(GraphicsProcessing Unit:图形处理单元)。
存储器921是临时存储数据的存储装置。存储器921的具体例是SRAM(StaticRandom Access Memory:静态随机存取存储器)或DRAM(Dynamic Random Access Memory:动态随机存取存储器)。
辅助存储装置922是保管数据的存储装置。辅助存储装置922的具体例是HDD。此外,辅助存储装置922也可以是SD(注册商标)存储卡、CF、NAND闪存、软盘、光盘、迷你盘、蓝光(注册商标)盘、DVD这样的移动存储介质。另外,HDD是Hard Disk Drive(硬盘驱动器)的缩写。SD(注册商标)是Secure Digital(安全数字)的缩写。CF是CompactFlash(致密闪存)的缩写。DVD是Digital Versatile Disk(数字多功能盘)的缩写。
输入接口930是与鼠标、键盘或触摸面板这样的输入装置连接的端口。具体而言,输入接口930是USB(Universal Serial Bus:通用串行总线)端子。另外,输入接口930也可以是与LAN(Local Area Network:局域网)连接的端口。模拟装置100经由输入接口930取得变更设定信息230或监视对象信息250这样的信息,并存储到存储部140。
输出接口940是与显示器这样的输出设备的缆线连接的端口。具体而言,输出接口940是USB端子或HDMI(注册商标)(High Definition Multimedia Interface:高清晰度多媒体接口)端子。具体而言,显示器是LCD(Liquid Crystal Display:液晶显示器)。模拟装置100经由输出接口940将监视部120的监视结果这样的信息显示到显示器。
模拟程序被读入处理器910,并由处理器910执行。存储器921不仅存储模拟程序,还存储OS(Operating System:操作系统)。处理器910一边执行OS一边执行模拟程序。模拟程序和OS也可以存储于辅助存储装置922。存储于辅助存储装置922的模拟程序和OS被加载到存储器921,并由处理器910执行。另外,也可以将模拟程序的一部分或全部组装到OS。
模拟装置100也可以具有替代处理器910的多个处理器。这些多个处理器分担执行模拟程序。与处理器910同样地,各个处理器是执行模拟程序的装置。
由模拟程序利用、处理或输出的数据、信息、信号值和变量值存储于存储器921、辅助存储装置922或处理器910内的寄存器或闪存。
模拟程序使计算机执行将CPU模型110和监视部120的各部的“部”改写成“处理”、“过程”或“工序”的各处理、各过程或各工序。CPU模型110和监视部120的各部是指令取出部111、指令执行部112、计算部113、判定部114、变更部115、模拟执行部116和监视部120的各部。此外,模拟方法是通过模拟装置100执行模拟程序进行的方法。
模拟程序可以存储在计算机能读取的记录介质中来提供。此外,模拟程序也可以作为程序产品来提供。
***动作的说明***
使用图2,对本实施方式的模拟装置100的模拟处理S100进行说明。此外,图3是用于说明本实施方式的模拟处理S100的图。在图3中,为了说明模拟处理S100的动作,将作为处理对象的指令存储器220的地址和指令代码221与该处理的执行处理时间和变更后的变更处理时间的例子对应起来记载。
模拟装置100进行模拟,该模拟是在构建于虚拟环境的目标模型中执行包含由多个指令代码构成的处理单位的目标程序。目标程序210具有多个处理单位。此外,多个处理单位分别由多个指令代码构成。模拟装置100基于表示模拟的时刻设定的整体时刻240进行模拟。
在步骤S101中,指令取出单元111从指令存储器220取出指令代码221。在图3的例子中,指令取出部111从指令存储器220的地址0x0005取出ADR作为指令代码221。
在步骤S102中,指令执行部112执行所取出的指令代码221。在图3的例子中,指令执行部112执行从指令存储器220取出的ADR。
在步骤S103中,计算部113计算执行多个指令代码的各指令代码所花费的执行处理时间。具体而言,计算部113针对在步骤S102中执行的指令代码221,计算执行指令代码221所花费的执行处理时间。在图3的例子中,计算部113计算出ADR的执行处理时间为3个周期。
在步骤S104中,判定部114判定由指令取出部111取出的指令代码221是否包含在变更设定信息230中设定的处理单位内。即,判定部114判定由指令取出部111取出的指令代码221是否是应该变更执行处理时间的处理单位中包含的指令代码。处理单位是函数或任务这样的处理的单位。
使用图4对本实施方式的变更设定信息230进行说明。
在变更设定信息230中设定有处理单位和变更规则,该变更规则变更处理单位中包含的多个指令代码的执行处理时间。目标程序210包含多个处理单位,但在变更设定信息230中设定有多个处理单位中的变更执行处理时间的处理单位。即,变更设定信息230中设定的处理单位是变更构成本处理单位的指令代码的执行处理时间的处理单位。
变更设定信息230包含处理单位的名称、指令存储器220中的处理单位的开始地址和指令存储器220中的处理单位的结束地址。具体而言,在变更设定信息230中设定有处理单位名称231、开始地址232、结束地址233、大小234和变更规则235。处理单位名称231是由多个指令代码构成的处理单位的名称。开始地址232是处理单位的指令存储器220中的开始地址。结束地址233是处理单位的指令存储器220中的结束地址。大小234是处理单位的大小。变更规则235是变更指令代码的执行处理时间的变更方法。变更规则235例如由正负倍率或正负固定值指定。另外,只要将结束地址233和大小234中的至少任意一方设定在变更设定信息230即可。即,只要有表示处理单位的结束为何处的信息即可。只要是表示处理单位的结束为何处的信息即可,也可以不是地址或大小而是其他信息。
在图4中,对于处理单位funcA,设定有变更成使执行处理时间延长30%的变更规则235。另外,对于处理单位funcB,设定有变更成使执行处理时间缩短10%的变更规则235。
在指令代码221的指令存储器220中的地址包含在开始地址232与结束地址233之间的情况下,判定部114判定为该指令代码221包含在变更设定信息230中设定的处理单位内。即,判定部114判定是否存在变更设定信息230中设定的处理单位中的、包含从指令存储器220取出的指令代码的地址的处理单位。在存在包含指令代码的地址的处理单位的情况下,处理进入步骤S105。在不存在包含指令代码的地址的处理单位的情况下,处理进入步骤S106。
另外,开始地址232和结束地址233可以是虚拟地址也可以是物理地址。在处理器内部进行处理的虚拟地址和存储器的物理地址有时相同有时不同。在不同的情况下,进行从虚拟地址变换成物理地址的处理,本实施方式也能够应对这样的处理。
另外,在图2中,判定部114判定由计算部113计算出执行处理时间的指令代码是否包含在变更对象的处理单位内。但是,判定部114也可以监视模拟执行中的指令代码的执行,向变更部115通知执行中的指令是要变更执行处理时间的指令代码。
在步骤S105中,变更部115按照变更设定信息230中设定的变更规则变更执行处理时间,设为变更处理时间。具体而言,在图3的指令代码ADR的地址0x0005包含在图4的funcA的地址0xXXX~0xYYY中的情况下,ADR是要变更执行处理时间的指令代码。而且,变更规则为“+30%”。因此,变更部115设ADR的执行处理时间3个周期为增加30%的3.9个周期。这里,将变更后的3.9个周期称作变更处理时间。
在步骤S106中,变更部115将多个指令代码的各指令代码的变更处理时间计入表示模拟整体的时刻设定的整体时刻240。具体而言,变更部115将指令代码的执行处理时间计入存储部140中存储的整体时刻240。这里,在指令代码包含在应该变更执行处理时间的处理单位内的情况下,计入整体时刻240的时间是在步骤S105中变更的变更后的执行处理时间即变更处理时间。此外,在指令代码不包含在应该变更执行处理时间的处理单位内的情况下,计入在整体时刻240的时间是在步骤S103中计算出的执行处理时间。
在步骤S107中,变更部115针对执行模拟的目标程序210中包含的全部处理单位的全部指令代码,判定处理是否完成。如果针对全部处理单位处理已完成,则处理进行到步骤S108。如果存在处理未完成的处理单位,则处理返回到步骤S101。
在步骤S108中,模拟执行部116使用整体时刻240执行模拟。具体而言,模拟执行部116基于整体时刻240,使用CPU模型110执行目标程序210,进行HW模型130的模拟。
在步骤S109中,监视部120在模拟的执行中监视目标模型的状态。在存储部140中存储有监视对象信息250,在该监视对象信息250中设定有目标模型中的作为监视对象的监视对象模型、表示监视对象模型的状态的状态信息和状态信息的期待值。监视部120基于监视对象信息250对监视对象模型的状态信息的时刻变化状况进行监视,输出监视结果。具体而言,监视部120监视模拟装置100内的任意模型的任意内部状态。此外,监视部120针对监视对象信息250中设定的监视对象模型的状态信息,通过在显示器显示该时刻变化状况这样的方法通知给外部。
使用图5对本实施方式的监视对象信息250进行说明。
在监视对象信息250中设定有由CPU模型和HW模型130构成的目标模型中的、作为监视部120应该监视的对象的监视对象模型251。在图5中,作为监视对象模型251的例子记载有计时器。此外,设定有表示监视对象模型251的状态的状态信息252。设定有软件的内部变量名称、寄存器名称、信号名称或地址这样的信息,作为监视对象模型251的状态信息252。此外,设定有状态信息252的期待值253。期望值253也称作监视条件。设定有与前时刻相等、或者比前时刻大、或者比前时刻大值以上、或者比前时刻小、或者比前时刻小值以上这样的信息,作为期待值253。
监视部120在模拟的执行中针对CPU模型和HW模型130,对监视对象模型的对象信号或者对象变量的时刻变化状况进行监视。监视部120向外部通知监视结果。例如,在对象信号或对象变量采取了除了期待值以外的值的情况下,监视部120也可以向外部通知表示发生不良情况的警告信息。
以下,对监视对象模型251的其他具体例进行说明。
作为监视对象模型251的具体例,存在存储器。此外,作为具体例,存在DMA(DirectMemory Access:直接存储器访问)、中断控制器、马达、FPGA或ASIC这样的外围设备模型。FPGA是Field-Programmable Gate Array(现场可编程门阵列)的缩写。ASIC是ApplicationSpecific Integrated Circuit(面向特定用途的集成电路)的缩写。此外,作为具体例,存在UART(Universal Asynchronous Receiver/Transmitter:通用异步收发器)或PCIe这样的外部IO模型。此外,CPU模型也是监视对象模型251之一。
在存储器中,监视特定地址中存储的数据或存储器的输入输出引脚(地址、片选或写使能等)。目标程序的变量基本上存储于存储器,通过地址指定进行监视。
在DMA或中断控制器中,监视存储设定和状态的寄存器或中断引脚等。
在马达中,主要监视引脚。监视马达的输出引脚是否正在输出假想值这样的状态。
在FPGA或ASIC中,与DMA等同样地,监视内部寄存器或输入输出引脚等。
在UART或PCIe中,与DMA等同样地,监视内部寄存器等。由于通信数据必然存储于接收寄存器或发送寄存器,因此,监视其通信数据。此外,由于接收中或错误这样的状态也存储于寄存器,因此,监视该状态。在UART或PCIe中,与DMA等同样地,也监视外部引脚。
在CPU模型中,监视CPU特有的内部寄存器。具体而言,监视程序计数器(PC)、状态寄存器或通用寄存器值这样的信息。
图6是不变更执行处理时间而进行模拟时的示意图。图7是变更执行处理时间而进行模拟时的示意图。
使用图6和图7进一步说明本实施方式的模拟处理。
在图6中,按照任务A、任务C和任务B的顺序执行处理。在任务B的中途进行任务A用数据集处理。然后,在任务B的处理完成之后,通过计时器中断来启动任务A。即,任务A和任务B取得同步。
图7示出了通过在图6的模拟中产生定时鲁棒来进行定时鲁棒验证的状态。
(1)在图7中,设关于任务B的设定规则为将执行处理时间延长30%。通过上述的步骤S101~步骤S107的处理,任务B的各指令代码的执行处理时间被延长30%。因此,任务B的各指令代码的执行定时被变更。
(2)与图6同样地,按照任务A、任务C和任务B的顺序执行处理。
(3)延长任务B的各指令代码的执行处理时间,使得在任务A用数据集处理中产生计时器中断。因此,在任务A用数据集处理中产生计时器中断。
(4)通过计时器中断启动任务A。但是,由于任务A用数据集处理未完成,因此,任务A用不希望的数据执行运算,发生不良情况。
(5)监视部120在模拟的执行中,对监视对象信息250中设定的监视对象模型的状态信息进行监视,将监视结果通知给外部。这样,在图7的模拟处理中,通过产生定时鲁棒,能够容易地进行定时鲁棒验证,能够提高模拟装置100的验证性能。
***其他结构***
<变形例1>
模拟装置100也可以具有经由网络与其他装置进行通信的通信装置。通信装置具有接收器和发送器。通信装置以有线或无线的方式与LAN、互联网或电话线路这样的通信网连接。具体而言,通信装置是通信芯片或NIC(Network Interface Card:网络接口卡)。模拟装置100也可以经由通信装置从外部装置接收变更设定信息230或监视对象信息250,并存储到存储部140。或者,模拟装置100也可以经由通信装置将监视部120的监视结果发送到外部的装置。
<变形例2>
在本实施方式中,在变更设定信息中设定有处理单位的名称、处理单位的开始地址和结束地址。而且,判定部使用指令代码的地址、处理单位的开始地址和结束地址,判定出指令代码是否包含在处理单位内。
作为变形例2,也可以在变更设定信息中设定处理单位的名称和变更时刻的范围。在该情况下,在执行由指令取出部取出的指令代码的时刻包含在变更设定信息的变更时刻的范围内的情况下,判定部判定为指令代码包含在变更设定信息中设定的处理单位内。然后,变更部按照变更规则,变更被判定为包含在变更对象的处理单位内的指令代码的执行处理时间。其他处理与本实施方式相同。
<变形例3>
在本实施方式中,通过软件来实现指令取出部111、指令执行部112、处理时间计算部113、判定部114、处理时间变更部115、模拟执行部116和监视部120的功能。以下,有时将指令取出部111、指令执行部112、处理时间计算部113、判定部114、处理时间变更部115、模拟执行部116和监视部120的功能称作CPU模型110和监视部120的功能。作为变形例,CPU模型110和监视部120的功能也可以通过硬件来实现。
图8是示出本实施方式的变形例的模拟装置100的结构的图。
模拟装置100具有电子电路909、存储器921、辅助存储装置922、输入接口930和输出接口940。
电子电路909是实现CPU模型110和监视部120的功能的专用电子电路。
具体而言,电子电路909是单一电路、复合电路、程序化的处理器、并行程序化的处理器、逻辑IC、GA、ASIC或FPGA。GA是Gate Array(门阵列)的缩写。
CPU模型110和监视部120的功能可以通过一个电子电路来实现,也可以分散在多个电子电路中来实现。
作为另一变形例,也可以是,CPU模型110和监视部120的一部分功能通过电子电路来实现,剩余的功能通过软件来实现。
处理器和电子电路分别也称作处理线路。即,在模拟装置100中,CPU模型110和监视部120的功能通过处理线路来实现。
在模拟装置100中,也可以将指令取出部、指令执行部、处理时间计算部、判定部、处理时间变更部、模拟执行部和监视部的“部”替换成“工序”或者“处理”。此外,也可以将指令取出处理、指令执行处理、处理时间计算处理、判定处理、处理时间变更处理、模拟执行处理和监视处理的“处理”替换成“程序”、“程序产品”或者“记录有程序的计算机能读取的存储介质”。
***本实施方式的效果说明***
在本实施方式的模拟装置100中,变更部基于变更设定信息来变更变更对象的指令代码的执行处理时间,将变更后的执行处理时间计入模拟的整体时刻。因此,根据模拟装置100,能够模拟指令的执行定时的偏差。此外,在模拟装置100中,监视部监视目标模型的内部状态的时刻变化状况,该目标模型模拟指令的执行定时的偏差。因此,根据模拟装置100,能够进行定时鲁棒验证,能够确保考虑到CPU负载变动或硬件等待这样的干扰因素的测试质量。
此外,在本实施方式的模拟装置100中,指定模拟的目标程序的任意处理单位,仅对指定的处理单位变更执行处理时间。在模拟装置100中,由于正在使用设定变更信息,因此,能够以软件的函数或任务这样的处理单位来指定变更指令的执行处理时间。此外,在模拟装置100中,能够按照处理单位以任意的变更规则变更模拟时刻。即,在模拟装置100中,能够以任意的变更规则变更仅软件的一部分的处理时间。而且,在模拟装置100中,在变更后的虚拟时间内,模拟对象的目标模型整体同步地进行动作。这样,在模拟装置100中,能够进行任务之间或软件和硬件之间的处理定时的重叠这样的事件的模拟和验证。因此,根据模拟装置100,能够以简单的结构实现定时鲁棒验证。
此外,在本实施方式的模拟装置100中,监视部除了监视要执行的指令的地址之外,还监视用目标模型模拟的寄存器、信号和软件内部变量这样的信息。此外,在模拟装置100中,能够使用存储部的监视对象信息来管理目标模型的监视对象。因此,根据模拟装置100,能够根据对模拟的要求灵活地设定监视对象。
在本实施方式中,将模拟装置的各部作为独立的功能块进行了说明。但是,模拟装置的结构也可以不是上述的实施方式的结构。模拟装置的功能块只要能够实现在上述的实施方式中说明的功能即可,可以是任意的结构。
也可以组合实施本实施方式中的多个部分。或者,也可以实施该实施方式中的1个部分。此外,也可以将该实施方式作为整体或部分地任意组合实施。
另外,上述实施方式只是本质上优选的例示,并不旨在限制本发明的范围、本发明的应用物的范围和本发明的用途的范围。上述实施方式能够根据需要进行各种变更。
标号说明
100:模拟装置;110:CPU模型;111:指令取出部;112:指令执行部;113:计算部;114:判定部;115:变更部;116:模拟执行部;120:监视部;130:HW模型;131:存储器模型;132:外部IO模型;133:外围设备模型;134:CPU总线模型;140:存储部;210:目标程序;220:指令存储器;221:指令代码;230:变更设定信息;231:处理单位名称;232:开始地址;233:结束地址;234:大小;235:变更规则;240:整体时刻;250:监视对象信息;251:监视对象模型;252:状态信息;253:期待值;909:电子电路;910:处理器;921:存储器;922:辅助存储装置;930:输入接口;940:输出接口;S100:模拟处理。

Claims (9)

1.一种模拟装置,该模拟装置进行模拟,该模拟是在构建于虚拟环境的目标模型中执行包含由多个指令代码构成的处理单位的目标程序,其中,该模拟装置具有:
计算部,其计算执行所述多个指令代码的各指令代码所花费的执行处理时间;
存储部,其存储变更设定信息,在该变更设定信息中设定有所述处理单位和变更规则,该变更规则变更所述处理单位中包含的所述多个指令代码的执行处理时间;
变更部,其按照所述变更设定信息中设定的所述变更规则将所述执行处理时间变更为变更处理时间,将所述多个指令代码的各指令代码的变更处理时间计入表示所述模拟的时刻设定的整体时刻;
模拟执行部,其使用所述整体时刻执行所述目标程序的模拟;以及
监视部,其在所述模拟的执行中监视所述目标模型的状态。
2.根据权利要求1所述的模拟装置,其中,
所述目标程序包含多个处理单位,
在所述变更设定信息中设定有所述多个处理单位中的要变更执行处理时间的处理单位,
所述模拟装置具有:
指令取出部,其从存储有构成所述多个处理单位的各个处理单位的所述多个指令代码的指令存储器中取出指令代码;以及
判定部,其判定由所述指令取出部取出的指令代码是否包含在所述变更设定信息中设定的处理单位内,
在由所述指令取出部取出的指令代码包含在所述变更设定信息中设定的处理单位内的情况下,所述变更部按照所述变更设定信息中设定的所述变更规则,变更所述执行处理时间。
3.根据权利要求2所述的模拟装置,其中,
所述变更设定信息包含处理单位的名称、所述指令存储器中的处理单位的开始地址和所述指令存储器中的处理单位的结束地址,
在由所述指令取出部取出的指令代码在所述指令存储器中的地址包含于所述开始地址与所述结束地址之间的情况下,所述判定部判定为所述指令代码包含在所述变更设定信息中设定的处理单位内。
4.根据权利要求2所述的模拟装置,其中,
在所述变更设定信息中设定有处理单位的名称和变更时刻的范围,
在执行由所述指令取出部取出的指令代码的时刻包含于所述变更时刻的范围内的情况下,所述判定部判定为所述指令代码包含在所述变更设定信息中设定的处理单位内。
5.根据权利要求1~4中的任意一项所述的模拟装置,其中,
在所述变更设定信息中,作为所述变更规则,用正负倍率或正负固定值进行指定。
6.根据权利要求1~5中的任意一项所述的模拟装置,其中,
所述存储部存储监视对象信息,在该监视对象信息中设定有所述目标模型中的作为监视对象的监视对象模型、表示所述监视对象模型的状态的状态信息和所述状态信息的期待值,
所述监视部基于所述监视对象信息,监视所述监视对象模型的所述状态信息的时刻变化状况,输出监视结果。
7.根据权利要求6所述的模拟装置,其中,
在所述监视对象信息中设定有软件的内部变量名称、寄存器名称、信号名称或地址,作为所述监视对象模型的所述状态信息。
8.一种模拟装置的模拟方法,该模拟装置进行模拟,该模拟是在构建于虚拟环境的目标模型中执行包含由多个指令代码构成的处理单位的目标程序,该模拟装置具有存储部,该存储部存储变更设定信息,在该变更设定信息中设定有所述处理单位和变更规则,该变更规则变更所述处理单位中包含的所述多个指令代码的执行处理时间,其中,
计算执行所述多个指令代码的各指令代码所花费的执行处理时间,
按照所述变更设定信息中设定的所述变更规则将所述执行处理时间变更为变更处理时间,将所述多个指令代码的各指令代码的变更处理时间计入表示所述模拟的时刻设定的整体时刻,
使用所述整体时刻执行所述目标程序的模拟,
在所述模拟的执行中监视所述目标模型的状态。
9.一种模拟装置的模拟程序,该模拟装置进行模拟,该模拟是在构建于虚拟环境的目标模型中执行包含由多个指令代码构成的处理单位的目标程序,该模拟装置具有存储部,该存储部存储变更设定信息,在该变更设定信息中设定有所述处理单位和变更规则,该变更规则变更所述处理单位中包含的所述多个指令代码的执行处理时间,其中,该模拟程序使作为计算机的所述模拟装置执行以下处理:
计算处理,计算执行所述多个指令代码的各指令代码所花费的执行处理时间;
变更处理,按照所述变更设定信息中设定的所述变更规则将所述执行处理时间变更为变更处理时间,将所述多个指令代码的各指令代码的变更处理时间计入表示所述模拟的时刻设定的整体时刻;
模拟执行处理,使用所述整体时刻执行所述目标程序的模拟;以及
监视处理,在所述模拟的执行中监视所述目标模型的状态。
CN201780096441.8A 2017-11-10 2017-11-10 模拟装置、模拟方法和计算机能读取的存储介质 Active CN111295658B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2017/040605 WO2019092849A1 (ja) 2017-11-10 2017-11-10 シミュレーション装置、シミュレーション方法およびシミュレーションプログラム

Publications (2)

Publication Number Publication Date
CN111295658A true CN111295658A (zh) 2020-06-16
CN111295658B CN111295658B (zh) 2023-05-09

Family

ID=66439099

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780096441.8A Active CN111295658B (zh) 2017-11-10 2017-11-10 模拟装置、模拟方法和计算机能读取的存储介质

Country Status (6)

Country Link
US (1) US11106478B2 (zh)
JP (1) JP6667733B2 (zh)
CN (1) CN111295658B (zh)
AU (1) AU2017438670B2 (zh)
DE (1) DE112017008061T5 (zh)
WO (1) WO2019092849A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11025544B2 (en) * 2019-06-07 2021-06-01 Intel Corporation Network interface for data transport in heterogeneous computing environments
CN113238491B (zh) * 2021-04-12 2023-05-05 湖南三一智能控制设备有限公司 执行机构的仿真测试方法、装置、智能臂架及工程车辆

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1117154A (zh) * 1993-12-27 1996-02-21 山武-霍尼韦尔公司 控制器
JP2011125498A (ja) * 2009-12-17 2011-06-30 Kyoraku Sangyo Kk 遊技機、主制御部、主制御基板、中間部、周辺基板、認証方法及び認証プログラム
WO2012049728A1 (ja) * 2010-10-12 2012-04-19 富士通株式会社 シミュレーション装置,方法,およびプログラム
CN103109491A (zh) * 2010-09-15 2013-05-15 三菱电机株式会社 通信装置及延迟检测方法
CN104204976A (zh) * 2012-03-15 2014-12-10 欧姆龙株式会社 信息处理装置、模拟方法及程序
CN104956592A (zh) * 2012-12-21 2015-09-30 恩德斯+豪斯流量技术股份有限公司 具有电流接口的变送器电路以及具有这种变送器电路的测量设备

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02118848A (ja) 1988-10-28 1990-05-07 Nec Corp 計算機装置
JPH09198282A (ja) * 1996-01-19 1997-07-31 Matsushita Electric Works Ltd コンピュータ性能評価システム及び評価方法
JPH10161906A (ja) 1996-11-29 1998-06-19 Toshiba Corp ソフトウェア実行装置及びソフトウェア実行方法
JPH10221410A (ja) 1997-02-07 1998-08-21 Mitsubishi Electric Corp Lsiの自動論理検証方式
JPH10240582A (ja) * 1997-03-03 1998-09-11 Toshiba Corp 計算機システムの性能評価方法及び装置
US6067604A (en) 1997-08-11 2000-05-23 Compaq Computer Corporation Space-time memory
JPH11232136A (ja) 1998-02-17 1999-08-27 Ricoh Co Ltd オブジェクト指向ソフトウエア開発支援装置
JP2000267889A (ja) 1999-03-15 2000-09-29 Hitachi Ltd ソフトウェアのシミュレーション検証方式
JP2001282327A (ja) 2000-03-31 2001-10-12 Omron Corp シミュレーションシステム及びシミュレータ並びに管理サーバ及び記録媒体
JP2007011720A (ja) 2005-06-30 2007-01-18 Sharp Corp システムシミュレータ、システムシミュレート方法、制御プログラムおよび可読記録媒体
DE102006059829A1 (de) 2006-12-15 2008-06-19 Slawomir Suchy Universalcomputer
JP2008262318A (ja) 2007-04-11 2008-10-30 Fujitsu Ten Ltd ソフトウェア評価装置及びその信号モニタ方法
US8560985B1 (en) * 2007-06-07 2013-10-15 Cadence Design Systems, Inc. Configuration-based merging of coverage data results for functional verification of integrated circuits
US8494832B2 (en) * 2007-06-20 2013-07-23 Sanjeev Krishnan Method and apparatus for software simulation
JP2009157456A (ja) 2007-12-25 2009-07-16 Toshiba Corp プログラム検証装置、プログラム検証方法、検証プログラム
JP2010128722A (ja) 2008-11-26 2010-06-10 Canon Inc シミュレーションシステム、シミュレーション方法及びプログラム
JP2010244183A (ja) 2009-04-02 2010-10-28 Nec Corp 装置検査システム、装置検査方法、装置検査プログラム
JP5454349B2 (ja) 2010-05-12 2014-03-26 富士通セミコンダクター株式会社 性能推定装置
US9201989B2 (en) * 2013-01-25 2015-12-01 Globalfoundries Inc. Interpolation techniques used for time alignment of multiple simulation models
US10733331B2 (en) 2015-03-11 2020-08-04 Nec Corporation Information processing apparatus, information processing method, and recording medium
JP2017084082A (ja) 2015-10-27 2017-05-18 富士電機株式会社 シミュレーション装置、試験シナリオファイル作成方法、及び試験シナリオファイルを用いた試験方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1117154A (zh) * 1993-12-27 1996-02-21 山武-霍尼韦尔公司 控制器
JP2011125498A (ja) * 2009-12-17 2011-06-30 Kyoraku Sangyo Kk 遊技機、主制御部、主制御基板、中間部、周辺基板、認証方法及び認証プログラム
CN103109491A (zh) * 2010-09-15 2013-05-15 三菱电机株式会社 通信装置及延迟检测方法
WO2012049728A1 (ja) * 2010-10-12 2012-04-19 富士通株式会社 シミュレーション装置,方法,およびプログラム
CN103154890A (zh) * 2010-10-12 2013-06-12 富士通株式会社 模拟装置、方法以及程序
CN104204976A (zh) * 2012-03-15 2014-12-10 欧姆龙株式会社 信息处理装置、模拟方法及程序
CN104956592A (zh) * 2012-12-21 2015-09-30 恩德斯+豪斯流量技术股份有限公司 具有电流接口的变送器电路以及具有这种变送器电路的测量设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
宋杰;孙宗哲;李甜甜;鲍玉斌;于戈;: "面向代码的软件能耗优化研究进展" *

Also Published As

Publication number Publication date
JP6667733B2 (ja) 2020-03-18
DE112017008061T5 (de) 2020-06-18
AU2017438670B2 (en) 2020-07-23
US11106478B2 (en) 2021-08-31
US20200257545A1 (en) 2020-08-13
CN111295658B (zh) 2023-05-09
AU2017438670A1 (en) 2020-05-07
JPWO2019092849A1 (ja) 2020-04-02
WO2019092849A1 (ja) 2019-05-16

Similar Documents

Publication Publication Date Title
US9489924B2 (en) Boot display device detection and selection techniques in multi-GPU devices
US8707102B2 (en) Method and program for verifying operation of processor
JP6667733B2 (ja) シミュレーション装置、シミュレーション方法およびシミュレーションプログラム
JP6234639B2 (ja) シミュレーション装置及びシミュレーション方法及びシミュレーションプログラム
US8886512B2 (en) Simulation apparatus, computer-readable recording medium, and method
JP2004070457A (ja) シミュレーション用カバレッジ算出装置及びシミュレーション用カバレッジ算出方法
US20190369997A1 (en) Simulation device, simulation method, and computer readable medium
CN114385524B (zh) 嵌入式固件仿真系统及其方法、装置和电子设备
JP2011039781A (ja) 協調シミュレーション装置及びシミュレーション方法
WO2018163291A1 (ja) アーキテクチャ選定装置、アーキテクチャ選定方法およびアーキテクチャ選定プログラム
CN114237705A (zh) 验证方法、装置、电子设备和计算机可读存储介质
US20100077383A1 (en) Simulation method and storage medium for storing program
CN109753308B (zh) 指令通路验证系统及指令通路监测方法
JP5387521B2 (ja) 論理検証シナリオ生成装置、及び、論理検証シナリオ生成プログラム
CN111552958B (zh) 一种程序运行特征提取方法和装置
JP2016045676A (ja) デバッグ回路、デバッガ装置、半導体装置及びデバッグ方法
EP3961389A1 (en) Virtual machine for developing and testing target code for hardware designs
CN117436405B (zh) 一种仿真验证方法、装置及电子设备
CN115292189A (zh) 车辆测试方法、装置、电子设备及存储介质
JP6234640B2 (ja) シミュレーション装置及びシミュレーション方法及びシミュレーションプログラム
KR20170065845A (ko) 프로세서 및 제어 방법
JP6664158B2 (ja) シミュレーション装置及びシミュレーション方法及びシミュレーションプログラム
WO2010095635A1 (ja) 回路設計支援装置、回路設計支援方法、ならびに、コンピュータ読み取り可能な記録媒体
CN116382893A (zh) 基于协处理器的运算方法、装置、存储介质及电子设备
JP2007328775A (ja) シミュレーション装置、シミュレーション方法及びシミュレーションプログラム

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