仿真方法和仿真系统技术方案

技术编号:2825850 阅读:269 留言:0更新日期:2012-04-11 18:40
预备了仿真执行单元1、执行列表形成单元2和执行列表3。仿真执行单元1在每个周期不执行所有功能模型4,而仅执行在由执行列表形成单元2形成的执行列表3中描述的这样的处理操作。在接收到从每个硬件发送的、关于状态改变的通知后,执行列表形成单元2动态形成处理操作的执行列表3,所述处理操作与状态改变结合在每个周期执行。结果,仿真执行单元1在每个周期执行适于状态改变的这样的处理操作,以便以高速执行仿真。

【技术实现步骤摘要】

本专利技术涉及在起始时包含如处理器和DSP(数字信号处理器)的硬件的各个功能的系统LSI的仿真技术。更具体地,本专利技术关注于当采用的系统级语言典型地已知为C/C++和SystemC时,基于包括时钟的时间概念的周期基(cycle base)执行仿真的技术。
技术介绍
在通过使用HDL(硬件描述语言)语言(Verilog和VHDL)的传统RTL(寄存器传送级)描述中,仿真可以与每个事件同步地执行。然而,与关于系统LSI的规模增长相关联,在操作整个系统LSI的大规模仿真中,事件的总数增加。结果,在RTL描述级,存在降低了仿真速度这一问题。为了解决上述问题,当前,这样的机制能够通过利用如SystemC的系统级语言来实现高速仿真。然而,即使在采用系统级语言的仿真中,当仿真基于包括时间概念的周期基而执行时,每个硬件的功能模型也在每个周期执行。例如,根据通过SystemC的系统级语言进行的描述,在当执行仿真时采用时钟的时间概念这样的情形中,当利用SC_THREAD/SC_CTHREAD/SC_METHOD时,当与时钟同步执行的处理操作被定义为处理时,执行处理操作(例如,参照非专利公开1)。非专利公开1:题为“System Design based upon SystemC”的日本书籍,作者Thorsten Grotker、Stan Liao、Grant Martin和Stuart Swan,由M.Kakimoto、M.Kawarabayashi和T.Hasegawa翻译,MARUZEN K.K.于2003年1月30日出版。由于执行使用系统语言的仿真,所以可以容易地进行周期基的仿真描述。而且,可以对每个硬件模型描述周期基上每个硬件的操作描述。然而,当系统LSI的规模进一步增加并且软件处理操作的规模增加时(该软件处理操作期望由系统LSI的仿真器执行),要在周期基的描述中执行的处理操作增加,使得期望高速执行仿真。-->例如,在通过采用上述SystemC的示例中,在SC-THREAD中登记的处理必须与对SC_THREAD设置的时钟的上升沿(或者,下降沿)同步执行。结果,如果构成系统LSI的对象的模型总数增加,则增加的模型使处理总数增加。如果当前负载情况不是所有块都在操作这种最大负载情况,则执行各个模型的操作已经被描述的各个处理。然而,存在许多情况,其中没有执行可能对系统有影响的操作。即使在这样的情况下,由于执行了处理,各个模型的处理调用也可能构成仿真的开销。结果,在传统的仿真方法中,在与每个周期同步执行的每个处理操作中,操作必须通过检查系统的状态而改变,或执行必须通过检查执行各个处理操作的主例程中系统的状态而控制。图9示出用于描述通过检查系统的状态而改变操作的传统仿真系统的流程图。即,在图9(a)所示的主例程处理操作中,系统被初始化(步骤S41);判断是否继续执行仿真(步骤S42);并且当继续执行仿真时(是),判断硬件处理操作1的执行(步骤S43)。在步骤S43中,传统仿真方法的处理操作前进到图9(b)中所示的硬件处理操作1,然后判断当前处理状态是否是处理可执行的状态(步骤S51);并且在当前处理状态是处理可执行的状态时(是),执行硬件处理操作1(步骤S52)。类似地,在硬件处理操作2(步骤S44)和另一硬件处理操作3(步骤S45)中,传统仿真方法的处理操作前进到图9(b)中示出的硬件处理操作2和3,其中判断当前处理状态是否是处理可执行的状态(步骤S51);并且如果当前处理状态是处理可执行的状态(是),则执行硬件处理操作2或3(步骤S52)。图10示出传统仿真方法的流程图,在传统仿真方法中,检查在用于执行各个处理操作的主例程中系统的状态,以便控制执行。即,在图10(a)所示的主例程处理操作中,系统被初始化(步骤S61);判断是否继续执行仿真(步骤S62);并且进一步,判断硬件处理操作1是否在处理可执行状态下(步骤S63);同样,当硬件处理操作1在处理可执行状态下时(是),执行硬件处理操作1(步骤S64和S71)。类似地,判断硬件处理操作2是否在处理可执行状态下(步骤S65);并-->且当硬件处理操作2在处理可执行状态下时(是),执行硬件处理操作2(步骤S66和S71)。而且,判断硬件处理操作3是否在处理可执行状态下(步骤S67);并且当硬件处理操作3在处理可执行状态下时(是),执行硬件处理操作3(步骤S68和S71)。与上述传统的仿真方法相反,作为能够实现高速仿真的方法,存在这样的方法,其用于在抽象时间概念时实现没有时间概念的仿真。在装配系统的仿真中,时间概念构成重要的元素,在所述装配系统的仿真中主要执行在硬件结构已经被定义为系统LSI后,在开发阶段的实时处理操作;并且存在另一重要之处:由定时器进行的时间管理和周期性的处理操作以高精确度仿真。时间概念的抽象已经通过改变图9和图10中所示的主例程的处理操作自身来实现。现在将描述不抽象时间概念的情况和抽象时间概念的情况之间的比较。当时间概念没有抽象时,例如,在图9的仿真情况下,为了执行5次硬件处理操作1(步骤S43),传统仿真方法的处理操作需要5次经过从主例程的仿真继续(步骤S42)开始的循环(从步骤S42到S45定义)。现在假设该循环对应硬件的1个周期的处理操作,则硬件处理操作1被执行5次的操作对应执行5个周期的处理操作。换句话说,在这种情况下,当保持每周期的状态时,处理操作提升到5个周期。与上述情况相反,在时间概念被抽象的情况下,当执行第一硬件处理操作时,执行5次硬件处理操作1。在此情况下,可以减少主例程的循环总数,使得仿真可以以高速执行。然而,不能实现这些周期中的每个的硬件状态。另一方面,在传统的仿真方法中,仿真速度由于其他因素而降低。在此情况下,进行传统仿真方法的描述。图11描述构成仿真对象的系统LSI的块结构。该仿真对象系统LSI由处理器(CPU)5、存储器11、时钟发生器9、重置控制器10、硬件引擎“A”6、另一硬件引擎“B”7和另一硬件引擎“C”8配置。首先,图12中表示了用于根据传统方法执行仿真的装置。仿真执行单元1在每个周期利用CPU 5执行每个硬件引擎6、7和8.图13描述仿真执行单元1的处理流操作。当开始仿真时,执行初始化操作(步骤S81),并且此后执行主例程。在主例程中,CPU模型5获取存储器11的指令,然后在CPU执行的处理操作(步骤S83)中执行获取的指令。当执行硬件引擎6、7和8的每个时,各个硬件引擎6、7和8根据CPU-->5的设置值执行各个定义的处理操作(步骤S84、S85和S86)。假定当时钟发生器9、重置控制器10和存储器11不在每个周期执行处理操作时,时钟发生器9、重置控制器10、和存储器11仅当从CPU 5发出访问时才执行处理操作。还假设在收到从CPU 5发出的访问后,时钟发生器9基于其写入值,控制各个硬件引擎6、7和8的时钟提供状态。还假设在从CPU 5收到访问后,重置控制器10基于其写入值,释放各个硬件引擎6、7和8的重置状况。还假设当执行硬件引擎6、7和8的每一个时,各个硬件引擎6、7和8检查该时钟发生器9的设置状态和重置控制器10的设置状态;如果已经提供时钟并且已经释放重置状况,则各个硬件引擎6、7和8执行定本文档来自技高网...

【技术保护点】
一种用于系统大规模集成LSI的仿真方法,包括:通过接收关于系统状态的通知而形成处理操作的列表的步骤,所述处理操作响应于所述系统的状态而在每个周期被执行;以及在每次已经经过1个周期时执行在所形成的列表中描述的处理操作的步骤。

【技术特征摘要】
JP 2007-2-26 045446/071.一种用于系统大规模集成LSI的仿真方法,包括:通过接收关于系统状态的通知而形成处理操作的列表的步骤,所述处理操作响应于所述系统的状态而在每个周期被执行;以及在每次已经经过1个周期时执行在所形成的列表中描述的处理操作的步骤。2.如权利要求1所述的仿真方法,其中:响应于提供给功能模型的时钟的状态而形成所述列表。3.如权利要求2所述的仿真方法,其中:响应于所述功能模型的重置的状态而形成所述列表。4.如权利要求1所述的仿真方法,其中:在接收到与所述系统相关的多个状态的通知后,响应于所述多个状态的组合而形成所述列表。5.如权利要求4所述的仿真方法,其中:所述多个状态的通知包括从中央处理单元CPU发出的通知;以及所述CPU的执行被添加到所述列表或从所述列表删除。6.一种用于系统LSI的仿真系统,包括:执行列表形成单元,用于通过接收关于系统的状态的通知而形成处理操作的列表,所述处理操作响应于所述系统的状态而在每个周期被执行;以及仿真执行单元,用于在每次已经经过1个周期时执行在所形成的列表中描述的处理操作。7.如权利要求6所述的仿真系统,还包括:时钟发生器,用于响应于提供给功能模型的时钟的状态,形成所述列表。8.如权利要求7所述的仿真系统,其...

【专利技术属性】
技术研发人员:片野智明
申请(专利权)人:松下电器产业株式会社
类型:发明
国别省市:JP[]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1