CN107329869B - 一种片上系统的仿真方法及装置 - Google Patents
一种片上系统的仿真方法及装置 Download PDFInfo
- Publication number
- CN107329869B CN107329869B CN201610280807.4A CN201610280807A CN107329869B CN 107329869 B CN107329869 B CN 107329869B CN 201610280807 A CN201610280807 A CN 201610280807A CN 107329869 B CN107329869 B CN 107329869B
- Authority
- CN
- China
- Prior art keywords
- software
- hardware
- instruction
- simulation
- chip
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/26—Functional testing
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
一种片上系统的仿真方法及装置,所述方法包括:确定每条软件执行指令与所述片上系统的硬件部分的时钟关系,其中,所述软件执行指令为所述片上系统的软件部分在软件仿真平台上运行的指令,基于所述时钟关系对所述片上系统的软件部分和硬件部分进行协同仿真,所述协同仿真是指所述软件仿真平台和硬件仿真平台同步地对所述软件部分和硬件部分进行仿真。上述方案可以提高片上系统仿真的准确性。
Description
技术领域
本发明涉及仿真测试技术领域,特别是涉及一种片上系统的仿真方法及装置。
背景技术
片上系统(System on Chip,SOC)技术,又称为系统级芯片技术,是指将系统关键部件集成在一块芯片上的技术,它通常是客户定制的或是面向特定用途的标准产品。SOC技术可以有效降低信息系统产品的开发成本,提高系统的可靠性,因此得到广泛的应用。
目前,SOC的仿真分为软件部分仿真和硬件部分仿真,分别在软件仿真平台和硬件仿真平台上实现。然而,这样的仿真方法验证效果较差,仿真效果与SOC实际运行效果相差较大。
发明内容
本发明解决的技术问题是使片上系统的仿真更接近于实际运行情况,提高仿真的准确性。
为解决上述问题,本发明实施例提供了一种数据传输方法,所述方法包括:
确定每条软件执行指令与所述片上系统的硬件部分的时钟关系,其中,所述软件执行指令为所述片上系统的软件部分在软件仿真平台上运行的指令;基于所述时钟关系对所述片上系统的软件部分和硬件部分进行协同仿真,所述协同仿真是指所述软件仿真平台和硬件仿真平台同步地对所述软件部分和硬件部分进行仿真。
可选地,基于所述时钟关系对所述片上系统的软件部分和硬件部分进行协同仿真,包括:
所述软件仿真平台执行每条指令后中断,以判断所述指令的类型,当判断结果表明所述指令是所述软件执行指令时,根据所述时钟关系得到所述硬件部分的驱动时钟数;
所述硬件仿真平台对所述硬件部分进行仿真,仿真的时钟数等于所述驱动时钟数。
可选地,在所述软件仿真平台上运行的指令还包括控制指令,基于所述时钟关系对所述片上系统的软件部分和硬件部分进行协同仿真,还包括:当判断结果表明所述指令为所述控制指令时,继续执行下一条指令。
可选地,所述软件仿真平台以调试模式单步执行指令。
可选地,基于所述时钟关系对所述片上系统的软件部分和硬件部分进行协同仿真,还包括:
所述硬件仿真平台仿真的时钟数达到所述驱动时钟数时,所述软件仿真平台继续执行下一条指令。
本发明实施例还提供一种片上系统的仿真装置,所述装置包括:
确定单元,适于确定每条软件执行指令与所述片上系统的硬件部分的时钟关系,其中,所述软件执行指令为所述片上系统的软件部分在软件仿真平台上运行的指令;
仿真单元,适于基于所述时钟关系对所述片上系统的软件部分和硬件部分进行协同仿真,所述协同仿真是指所述软件仿真平台和硬件仿真平台同步地对所述软件部分和硬件部分进行仿真。
可选地,所述仿真单元包括:
驱动时钟数获取子单元,适于在所述软件仿真平台执行每条指令后中断,判断所述指令的类型,并且判断结果表明所述指令是所述软件执行指令时,根据所述时钟关系得到所述硬件部分的驱动时钟数;
硬件仿真子单元,适于控制所述硬件仿真平台对所述硬件部分进行仿真,仿真的时钟数等于所述驱动时钟数。
可选地,在所述软件仿真平台上运行的指令还包括控制指令,所述仿真单元还适于当判断结果表明所述指令为所述控制指令时,继续执行下一条指令。
可选地,所述软件仿真平台以调试模式单步执行指令。
可选地,所述仿真单元还适于控制在所述硬件仿真平台仿真的时钟数达到所述驱动时钟数时,所述软件仿真平台继续执行下一条指令。
与现有技术相比,本发明实施例的技术方案具有以下有益效果:
本发明实施例的技术方案通过确定每条软件执行指令与所述片上系统的硬件部分的时钟关系,基于所述时钟关系对所述片上系统的软件部分和硬件部分进行协同仿真。由于根据软件部分和硬件部分的时钟关系进行仿真,可以实现片上系统中软硬件交互逻辑的模拟,仿真软件操作和硬件动作之间的时序关系,从而使得仿真效果更接近于真实情况。
附图说明
图1是本发明实施例中的一种片上系统的仿真方法的流程图;
图2是本发明实施例中的一种片上系统的仿真装置的结构示意图。
具体实施方式
目前,SOC的仿真分为软件部分仿真和硬件部分仿真,分别在软件仿真平台和硬件仿真平台上实现。然而,验证效果较差,仿真效果与SOC实际运行效果相差较大。其中的原因主要是软件仿真与硬件仿真独立运行,软件执行和硬件逻辑之间的时序关系无法体现,无法仿真软件和硬件之间的时序关系。
本发明实施例的技术方案通过确定每条软件执行指令与所述片上系统的硬件部分的时钟关系,基于所述时钟关系对所述片上系统的软件部分和硬件部分进行协同仿真。由于根据软件部分和硬件部分的时钟关系进行仿真,可以实现片上系统中软硬件交互逻辑的模拟,仿真软件操作和硬件动作之间的时序关系,从而使得仿真效果更接近于真实情况,提高片上系统仿真的准确性。
为使本发明的上述目的、特征和有益效果能够更为明显易懂,下面结合附图对本发明的具体实施例做详细的说明。
图1是本发明实施例中的一种片上系统的仿真方法的流程图。下面参照图1所示的步骤进行说明。
步骤S101:确定每条软件执行指令与所述片上系统的硬件部分的时钟关系,其中,所述软件执行指令为所述片上系统的软件部分在软件仿真平台上运行的指令。
一个大规模的片上系统设计通常是由高层的算法设计开始的,按照所需实现的功能及其复杂程度的不同划分为软件设计和硬件设计两大模块,再分别逐渐细化至最后实现。
基于现有的设计情况,在具体实施中,片上系统分为软件部分和硬件部分,软件部分可以是运行于SOC的核心处理器上的软件,硬件部分可以是核心处理器以外的外围硬件。软件部分的仿真可以在所述软件仿真平台上实现,硬件部分的仿真可以通过下载硬件设计模块到FPGA硬件仿真平台上实现。所述软件仿真平台可以是一些现有的仿真工具,其可以编译和链接所述软件部分。
需要说明的是,具体采用何种软件仿真平台和硬件仿真平台不应构成对本发明的限制。
在具体实施中,在仿真开始前,需要将所述软件部分移植到所述软件仿真平台上,即将所述软件部分编译成所述软件仿真平台上的指令,即得到所述软件执行指令。
所述软件部分在CPU上运行,运行所述软件部分所在的CPU硬件电路也需要时钟来驱动。在具体实施中,可以根据现有的分析测试等手段确定每条所述软件执行指令与所述片上系统的硬件部分的时钟关系。
所述时钟关系表征了所述软件部分运行后,所述硬件部分相应的运行多少个时钟。更具体而言,每条软件执行指令运行后,硬件部分相应运行了多少个时钟。
需要说明的是,本领域的技术人员应该理解如何获取每条软件执行指令与所述片上系统的硬件部分的时钟关系,在此不在赘述。
步骤S102:基于所述时钟关系对所述片上系统的软件部分和硬件部分进行协同仿真,所述协同仿真是指所述软件仿真平台和硬件仿真平台同步地对所述软件部分和硬件部分进行仿真。
在具体实施中,由于确定了所述时钟关系,可以根据所述时钟关系和所述软件部分执行指令的时钟数来确定所述硬件部分需要多少驱动时钟数,该驱动时钟数则也就是下一步硬件部分运行的时钟数。
在具体实施中,除对应于软件部分的软件执行指令以外,在所述软件仿真平台上运行的指令还包括控制指令,所述控制指令可以是为控制仿真所述片上系统而编写的指令。
在具体实施中,在所述软件仿真平台以调试模式启动仿真,单步执行所述软件仿真平台上运行的指令,每条指令执行后系统发生中断,在接收到中断指令后判断该指令的类型。针对判断结果的实施分两种情况:
当判断结果表明该指令是所述软件执行指令,则根据所述软件执行指令需要的时钟数和所述时钟关系得到所述驱动时钟数,硬件部分则以该驱动时钟数进行仿真,即硬件部分执行的时钟数为所述驱动时钟数;当判断结果表明该指令是所述控制指令时,则继续执行下一条指令。
在具体实施中,所述硬件仿真平台仿真的时钟数达到所述驱动时钟数时,所述软件仿真平台继续执行下一条指令。
可以理解的是,执行下一条指令后,系统发生中断,可以继续判断该指令是否为所述软件执行指令,针对判断结果的实施可参照上述说明,不再赘述,直至执行完最后一条指令。通过以上过程实现所述软件部分与硬件部分同步仿真。
本发明实施例的技术方案通过确定每条软件执行指令与所述片上系统的硬件部分的时钟关系,基于所述时钟关系对所述片上系统的软件部分和硬件部分进行协同仿真。由于根据软件部分和硬件部分的时钟关系进行仿真,可以实现片上系统中软硬件交互逻辑的模拟,仿真软件操作和硬件动作之间的时序关系,实现片上系统的软件部分和硬件部分的同步,从而使得仿真效果更接近于真实情况,提高片上系统仿真的准确性。
而现有技术中软件部分和硬件部分各自独立运行,无法体现软件部分运行和硬件部分执行之间的时序关系,也就无法仿真软件部分和硬件部分之间的时序关系,那么当所述软件部分与所述硬件部分之间存在逻辑交互时,软件部分与硬件部分之间的逻辑就无法实现模拟,从而难以保证仿真效果的准确性。
图2是本发明实施例中的一种片上系统的仿真装置。如果所示的片上系统的仿真装置可以包括:
确定单元201,适于确定每条软件执行指令与所述片上系统的硬件部分的时钟关系,其中,所述软件执行指令为所述片上系统的软件部分在软件仿真平台上运行的指令;
仿真单元202,适于基于所述时钟关系对所述片上系统的软件部分和硬件部分进行协同仿真,所述协同仿真是指所述软件仿真平台和硬件仿真平台同步地对所述软件部分和硬件部分进行仿真。
在具体实施中,所述仿真单元202包括:
驱动时钟数获取子单元,适于在所述软件仿真平台执行每条指令后中断,判断所述指令的类型,并且判断结果表明所述指令是所述软件执行指令时,根据所述时钟关系得到所述硬件部分的驱动时钟数;
硬件仿真子单元,适于控制所述硬件仿真平台对所述硬件部分进行仿真,仿真的时钟数等于所述驱动时钟数。
在具体实施中,在所述软件仿真平台上运行的指令还包括控制指令,所述仿真单元202还适于控制当判断结果表明所述指令为所述控制指令时,继续执行下一条指令。
在具体实施中,所述软件仿真平台以调试模式单步执行指令。
在具体实施中,所述仿真单元202还适于控制在所述硬件仿真平台仿真的时钟数达到所述驱动时钟数时,所述软件仿真平台继续执行下一条指令。
本发明实施例的技术方案通过确定每条软件执行指令与所述片上系统的硬件部分的时钟关系,基于所述时钟关系对所述片上系统的软件部分和硬件部分进行协同仿真。由于根据软件部分和硬件部分的时钟关系进行仿真,可以实现片上系统中软硬件交互逻辑的模拟,仿真软件操作和硬件动作之间的时序关系,实现片上系统的软件部分和硬件部分的同步,从而使得仿真效果更接近于真实情况,提高片上系统仿真的准确性。
而现有技术中软件部分和硬件部分各自独立运行,无法体现软件部分运行和硬件部分执行之间的时序关系,也就无法仿真软件部分和硬件部分之间的时序关系,那么当所述软件部分与所述硬件部分之间存在逻辑交互时,软件部分与硬件部分之间的逻辑就无法实现模拟,从而难以保证仿真效果的准确性。
有关所述片上系统的仿真装置的说明可对应参照上述片上系统的仿真装置的说明,不再赘述。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于计算机可读存储介质中,存储介质可以包括:ROM、RAM、磁盘或光盘等。
以上对本发明实施例的方法及系统做了详细的介绍,本发明并不限于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。
Claims (8)
1.一种片上系统的仿真方法,其特征在于,包括:
确定每条软件执行指令与所述片上系统的硬件部分的时钟关系,其中,所述软件执行指令为所述片上系统的软件部分在软件仿真平台上运行的指令;
基于所述时钟关系对所述片上系统的软件部分和硬件部分进行协同仿真,所述协同仿真是指所述软件仿真平台和硬件仿真平台同步地对所述软件部分和硬件部分进行仿真;所述基于所述时钟关系对所述片上系统的软件部分和硬件部分进行协同仿真,包括:所述软件仿真平台执行每条指令后中断,以判断所述指令的类型,当判断结果表明所述指令是所述软件执行指令时,根据所述时钟关系得到所述硬件部分的驱动时钟数;所述硬件仿真平台对所述硬件部分进行仿真,仿真的时钟数等于所述驱动时钟数。
2.根据权利要求1所述的片上系统的仿真方法,其特征在于,在所述软件仿真平台上运行的指令还包括控制指令,基于所述时钟关系对所述片上系统的软件部分和硬件部分进行协同仿真,还包括:
当判断结果表明所述指令为所述控制指令时,继续执行下一条指令。
3.根据权利要求1所述的片上系统的仿真方法,其特征在于,所述软件仿真平台以调试模式单步执行指令。
4.根据权利要求1所述的片上系统的仿真方法,其特征在于,基于所述时钟关系对所述片上系统的软件部分和硬件部分进行协同仿真,还包括:
所述硬件仿真平台仿真的时钟数达到所述驱动时钟数时,所述软件仿真平台继续执行下一条指令。
5.一种片上系统的仿真装置,其特征在于,包括:
确定单元,适于确定每条软件执行指令与所述片上系统的硬件部分的时钟关系,其中,所述软件执行指令为所述片上系统的软件部分在软件仿真平台上运行的指令;
仿真单元,适于基于所述时钟关系对所述片上系统的软件部分和硬件部分进行协同仿真,所述协同仿真是指所述软件仿真平台和硬件仿真平台同步地对所述软件部分和硬件部分进行仿真;所述仿真单元包括:驱动时钟数获取子单元,适于在所述软件仿真平台执行每条指令后中断,判断所述指令的类型,并且判断结果表明所述指令是所述软件执行指令时,根据所述时钟关系得到所述硬件部分的驱动时钟数;硬件仿真子单元,适于控制所述硬件仿真平台对所述硬件部分进行仿真,仿真的时钟数等于所述驱动时钟数。
6.根据权利要求5所述的片上系统的仿真装置,其特征在于,在所述软件仿真平台上运行的指令还包括控制指令,所述仿真单元还适于当判断结果表明所述指令为所述控制指令时,继续执行下一条指令。
7.根据权利要求5所述的片上系统的仿真装置,其特征在于,所述软件仿真平台以调试模式单步执行指令。
8.根据权利要求5所述的片上系统的仿真装置,其特征在于,所述仿真单元还适于控制所述硬件仿真平台在仿真的时钟数达到所述驱动时钟数时,所述软件仿真平台继续执行下一条指令。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610280807.4A CN107329869B (zh) | 2016-04-29 | 2016-04-29 | 一种片上系统的仿真方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610280807.4A CN107329869B (zh) | 2016-04-29 | 2016-04-29 | 一种片上系统的仿真方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107329869A CN107329869A (zh) | 2017-11-07 |
CN107329869B true CN107329869B (zh) | 2020-04-21 |
Family
ID=60193114
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610280807.4A Active CN107329869B (zh) | 2016-04-29 | 2016-04-29 | 一种片上系统的仿真方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107329869B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109711071B (zh) * | 2018-12-29 | 2023-05-05 | 成都海光集成电路设计有限公司 | 一种服务器SoC软硬件协同仿真加速方法及系统 |
CN109557460B (zh) * | 2019-02-18 | 2019-05-28 | 深兰人工智能芯片研究院(江苏)有限公司 | 一种基于fpga的卷积神经网络算法的测试方法及设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1928877A (zh) * | 2006-08-17 | 2007-03-14 | 电子科技大学 | Soc软硬件一体化设计验证方法 |
CN102521444A (zh) * | 2011-12-08 | 2012-06-27 | 青岛海信信芯科技有限公司 | 软硬件协同仿真/验证方法及装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7783469B2 (en) * | 2007-01-05 | 2010-08-24 | International Business Machines Corporation | Methods and computer program products for benchmarking multiple collaborative services provided by enterprise software |
JP5625714B2 (ja) * | 2010-10-07 | 2014-11-19 | 富士通セミコンダクター株式会社 | シミュレーション装置、プログラム、記憶媒体、及び方法 |
-
2016
- 2016-04-29 CN CN201610280807.4A patent/CN107329869B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1928877A (zh) * | 2006-08-17 | 2007-03-14 | 电子科技大学 | Soc软硬件一体化设计验证方法 |
CN102521444A (zh) * | 2011-12-08 | 2012-06-27 | 青岛海信信芯科技有限公司 | 软硬件协同仿真/验证方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN107329869A (zh) | 2017-11-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105205249B (zh) | 一种soc调试验证系统及其软硬件协同方法 | |
De Schutter | Better Software. Faster!: Best Practices in Virtual Prototyping | |
US10360322B2 (en) | Simulation of virtual processors | |
CN104750603B (zh) | 一种多核dsp软件仿真器及其物理层软件测试方法 | |
US8904321B1 (en) | System and method for automatically generating coverage constructs and constraint solver distributions | |
US20190034318A1 (en) | Hardware-Software Co-Verification for Debugging Firmware on a Hardware Simulator | |
US20130204602A1 (en) | Simulation apparatus and method for verifying hybrid system | |
CN104268310A (zh) | 使用专用图形界面调用uvm验证环境的方法 | |
CN102508752B (zh) | 一种单片机硬件仿真器和仿真方法 | |
JP2008310727A (ja) | シミュレーション装置及びシミュレーション方法 | |
CN111400997B (zh) | 一种基于同步执行的处理器核验证方法、系统及介质 | |
CN103713977B (zh) | 一种微处理器ip核比较验证的实现方法 | |
CN107329869B (zh) | 一种片上系统的仿真方法及装置 | |
Lin et al. | Functional verifications for SoC software/hardware co-design: From virtual platform to physical platform | |
CN109753415B (zh) | 处理器验证系统及基于处理器验证系统的处理器验证方法 | |
CN116306392A (zh) | 芯片仿真装置、方法、电子设备和存储介质 | |
Feng et al. | Design and application of reusable SoC verification platform | |
CN111338761B (zh) | 一种51单片机虚拟中断控制器及实现方法 | |
CN113792522A (zh) | 仿真验证方法、装置及计算设备 | |
CN116048887A (zh) | 一种芯片验证方法及装置、系统、电子设备、存储介质 | |
CN107526585B (zh) | 基于Scala的FPGA开发平台及其调试、测试方法 | |
US8914274B1 (en) | Method and system for instruction set simulation with concurrent attachment of multiple debuggers | |
CN117933155B (zh) | 一种多进程联合仿真系统及方法、电子设备和存储介质 | |
CN111338427B (zh) | 一种实现SystemC半实物仿真时间同步的方法 | |
JPS6349851A (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 |