用于仿真片上仿真系统中的重置信号的方法和设备技术方案

技术编号:7400821 阅读:184 留言:0更新日期:2012-06-02 20:56
本发明专利技术涉及一种用于对建模系统中的重置信号进行仿真的方法,该建模系统包括重置控制模块(RCTL)和待重置模块(CP),该方法包括:控制模块的控制线程(IPR)发出重置信号(RST)并且待重置模块接收重置信号;唤醒待重置模块(CP)的线程(PRC),等待重置信号,如果线程(PRC)由重置信号唤醒,则由线程(PRC)激活重置异常,并且如果引发重置异常,则使线程(PRC)等待重引导信号(STT),控制线程向待重置模块发送重引导信号,并且在接收重引导信号之后激活线程(PRC),线程(PRC)执行并且等待重置信号。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术涉及包括在网络中互连的至少一个处理器和一个或者多个外围单元的系统(诸如片上系统S0C)的仿真。
技术介绍
片上系统SOC越来越倾向于向同一集成电路中收集硬件部件(比如异构处理器核芯、专用电路和存储器)以及在这些部件之间链接部件的复杂通信架构(称为“片上网络”N0C)。片上网络通常包括若干点到点数据链路,这些数据链路链接片上系统的硬件部件。由于片上系统的复杂性越来越高,所以希望实施允许在不同设计步骤测试系统的设计、建模和仿真工具以便能够在这些步骤中的每个步骤验证系统。一般而言,开发复杂系统(比如片上系统)从定义以非正式语言编写的规范这样的步骤开始。然后有定义或者选择算法从而使得有可能与规范匹配的步骤。可以使用高级语言(比如Matlab或者C++)来定义算法。定义算法使得有可能转向定义第一抽象级的模型(称为“事务级模型”TLM)的步骤,这些模型描述架构并且因此指定在硬件与软件之间的分布(定义硬件部件和由硬件部件执行的软件)。事务级模型可以收集功能模型PV(程序员视图)和定时模型PVT (程序员视图+定时)。功能模型使得例如有可能对在系统的硬件部件中嵌入的软件仿真。在功能模型中,在硬件部件之间的数据传送可以由理想的唯一通信信道(即具有无限制速率)仿真。定时模型使得有可能过早评估对架构的选择和线程在硬件与软件之间的分布。系统的硬件部件将考虑的时间约束取决于对输送的字大小和通信信道速率的选择。可以使用硬件系统建模语言(比如SystemC)来定义事务级模型,从而使得有可能通过如下模块代表硬件部件,这些模块在模块之间由连接到通信信道的端口链接。硬件和软件部件的行为由如下软件模块描述,这些软件模块用编程语言(比如C++)来编写并且可由仿真器执行。SystemC是Open SystemC Initiative(OSCI)开发的标准IEEE 1666-2005的硬件和软件描述语言主题。因此,系统的所有硬件和软件部件无论其性质和抽象级如何都可以使用SystemC来建模。后继开发步骤包括添加时钟概念以创建准确度为BCA(总线周期精确)周期的模型,该模型指定系统在对系统计时的时钟的每个周期内的行为。然后有用于定义寄存器传送级RTL的步骤,该RTL然后允许迅速和高效合成集成电路。RTL级使用语言(比如VHDL 或者Verilog)来定义每个比特在每个时钟脉冲的值。RTL级然后使得有可能定义如下逻辑门网络,这些逻辑门网络可以由布局和路由工具处理以获得如下二维结构,该二维结构作为用于为集成电路的制造制作掩模的基础。抽象级TLM、BCA和RTL允许在实施系统并且将它嵌入于集成电路中之前透彻研究系统架构的性能。然而,现有仿真工具不允许重置信号的传播在仅在抽象级RTL仿真的片上系统中被仿真。然而希望能够分析重置信号在来自抽象级TLM的仿真系统的全部或者部分中的传播和处理。更具体而言,系统在抽象级TLM由叠构(imbricate)部件或者模块和/或线程建模。模块之间通过可以由信道互连的端口通信。模块可以包括一个或者多个构成该模块的输入和/或输出点的端口。端口与一个或者多个包括如下函数声明(或者在C++术语中为方法)的接口相关联,该声明(或者方法)可以由端口或者通过信道链接到端口的其它模块所属的模块调用。信道是在模块之间的通信手段。它们可以对简单信号以及更复杂的通信手段建模,并且因此包括其它信道或者甚至模块。信道包括端口接口函数的C++代码。模块可以包括方法、线程和其它模块。方法包括在初始化系统时或者在事件例如在模块端口之一上出现时执行的函数。线程描述系统的功能或者行为并且仅在特定事件出现时由仿真器专门激活。线程例如在初始化系统时被起动一次并且包括如下无限循环,该循环具有用于等待事件的一个或者多个指令。如果线程结束,则它不再执行。仿真器包括具体执行通知事件并且激活方法和线程的核芯。对重置信号仿真意味着能够停止线程并且重置方法和线程。仿真器(比如 SystemC)现在仅允许重置整个系统,即重新起动整个情形。因此不可能对系统的部分重置仿真。不可能在重置期间测试在更具体抽象级的系统部分或者嵌入于系统的部件中的软件,这是由于重置要求完全停止仿真。
技术实现思路
因此希望能够至少部分在抽象级TLM对仿真系统中的部分重置信号及其线程进行仿真而不修改仿真器核芯。也希望能够重置模块内部的一些线程。也希望能够对作用于系统不同部分的若干重置信号进行仿真。一个实施例涉及一种用于对建模系统中的重置信号进行仿真的方法,该系统包括重置控制模块和待重置模块,该方法包括由控制模块的控制线程发出重置信号并且由待重置模块接收重置信号。根据一个实施例,该方法包括唤醒待重置模块的线程,该线程等待重置信号,如果待重置模块的线程由重置信号唤醒,则待重置模块的线程引发重置异常,并且如果引发重置异常,则使待重置模块的线程等待重引导信号,控制线程发出向控制模块发送的重引导信号,并且在待重置模块接收重引导信号之后激活待重置模块的线程,该线程执行并且等待重置信号。根据一个实施例,该方法包括声明待重置模块的方法对重置信号敏感,在模块接收重置信号之后声明待重置方法对重引导信号敏感,并且在模块接收重引导信号之后执行方法并且声明它对重置信号敏感。根据一个实施例,该方法包括在模块接收重置信号之后执行用于初始化模块的函数。根据一个实施例,系统的每个线程插入到无限循环中,无限循环包括用于等待重置信号的指令、继而为用于引发重置异常的指令、用于进入异常处理过程的指令,用于进入异常处理过程的指令包括用于等待重引导信号的指令。根据一个实施例,该方法包括将线程中的等待指令替换为等待指令、继而为用于引发如果重置信号已经由线程所属的模块接收则执行的重置异常的指令。根据一个实施例,该方法包括在事件列表中添加用于定义激活执行方法的事件列表的指令,该事件为方法所属的模块接收重置信号。根据一个实施例,该方法包括在系统中发出用于重置系统模块的部分的第一重置信号并且在系统中发出用于重置系统模块的另一部分的第二重置信号。根据一个实施例,该方法包括在控制模块中定义重置信号发出端口、定义待重置模块的重置信号接收端口并且将重置信号发出端口连接到重置信号接收端口。一个实施例也涉及一种仿真系统,该系统包括重置控制模块和待重置模块,控制模块包括配置成发出重置信号的线程,待重置模块包括将在模块接收重置信号之后重置的线程。根据一个实施例,该系统被配置成实施先前定义的方法。根据一个实施例,待重置模块包括声明为对重置信号敏感、在接收重置信号之后声明为对重引导信号敏感并且在接收重引导信号之后执行而且声明为对重置信号敏感的待重置方法。根据一个实施例,模块包括在模块接收重置信号之后执行的初始化函数。根据一个实施例,控制模块包括重置信号发出端口,并且待重置模块包括与控制模块的发出端口连接的重置信号接收端口。本专利技术也涉及一种保存于支持体上的计算机可读和可执行的程序,该程序被配置成在程序由计算机执行时实施先前定义的方法。附图说明下文将关于但不限于以下附图描述本专利技术的实施例,其中-图1示意地示出了系统的例子,-图2示意地示出了系统模块的例子,-图3是示出了在发出重置信号之后在系统中触发的操作的时间图,-图4示意地示出了可以部分重置的系统的另一例子。具体本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】...

【专利技术属性】
技术研发人员:M·菲安迪诺
申请(专利权)人:意法半导体格勒诺布尔二公司
类型:发明
国别省市:

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

1
相关领域技术