系统建模和仿真的方法及装置制造方法及图纸

技术编号:4251096 阅读:240 留言:0更新日期:2012-04-11 18:40
本发明专利技术提供一种系统建模和仿真的方法及装置,涉及仿真领域,为解决现有技术中仿真速度慢的问题而设计。所述建模方法包括:根据所述系统中总线和模块之间的连接关系,指定所述总线和所述模块之间的对应关系;将所述模块的功能模拟为功能函数,所述功能函数描述所述模块的端口状态和总线事件之间的对应关系,所述总线事件描述所述模块对应的总线的状态在时间点的变化;确定系统时钟周期,所述系统时钟周期小于/等于系统中最短的模块时钟周期;查找出每个系统时钟周期内需要被驱动的模块;按照所述模块的驱动时间顺序,将所述模块排序,生成每个系统时钟周期的模块列表。本发明专利技术能加快系统仿真速度。

【技术实现步骤摘要】

本专利技术涉及仿真领域,特别是指一种系统建模和仿真的方法及装置
技术介绍
随着系统设计的复杂性提高,对系统进行仿真变得越来越重要。以SoC(System On a Chip,片上系统)为例,用于连接SoC系统各个模块的总线的结构和性能成为系统 性能的关键,系统设计的中心逐渐由模块的处理能力转到系统的总线结构,即各个模块 之间数据的高效传输逐渐成为系统设计的中心。图1为一种典型的SOC系统的结构示 意图,就SoC系统建模和仿真而言,现存的技术方案包括采用基于硬件描述语言的时钟 精确的系统模型,例如Verilog、 V亂(Very-High-Speed Integrated Circuit Hardware DescriptionLanguage,超高速积体电路硬件描述语言)、SystemC等专用的语言,但是基于 硬件描述语言的时钟精确的系统模型,不仅要对总线状态的变化进行仿真,而且要对与总 线连接的模块内部的处理过程进行仿真,带来的问题是仿真速度比较慢。
技术实现思路
本专利技术要解决的技术问题是提供一种仿真速度比较快的系统的建模与仿真方法 及装置。 为解决上述技术问题,本专利技术的实施例提供技术方案如下 —方面,提供一种系统的建模方法,包括 根据所述系统中模块和总线之间的连接关系,指定所述模块和所述总线之间的对 应关系; 将所述模块的功能模拟为功能函数,所述功能函数描述所述模块的端口状态和总 线事件之间的对应关系,所述总线事件描述所述模块对应的总线的状态在时间点的变化; 确定系统时钟周期,所述系统时钟周期小于/等于系统中最短的模块时钟周期; 查找出每个系统时钟周期内需要被驱动的模块; 按照所述模块的驱动时间顺序,将所述模块排序,生成每个系统时钟周期的模块 列表; 所述查找出每个系统时钟周期内需要被驱动的模块的步骤具体为通过检测每个 系统时钟周期内出现的模块时钟上升沿和/或模块时钟下降沿,查找出每个系统时钟周期 内需要被驱动的模块。 所述按照所述模块的驱动时间顺序,将所述模块排序,生成每个系统时钟周期的 模块列表的步骤具体为按照所述模块的时钟上升沿和/或时钟下降沿的出现时刻,将所 述模块排序,生成每个系统时钟周期的模块列表。 另一方面,提供一种系统的建模装置,包括 指定单元,用于根据所述系统中模块和总线之间的连接关系,指定所述模块和所 述总线之间的对应关系;4 模拟单元,用于将所述模块的功能模拟为功能函数,所述功能函数描述所述模块 的端口状态和总线事件之间的对应关系,所述总线事件描述所述模块对应的总线的状态在 时间点的变化; 时钟周期确定单元,用于确定系统时钟周期,所述系统时钟周期小于/等于系统 中最短的模块时钟周期; 查找单元,用于查找出每个系统时钟周期内需要被驱动的模块; 排序单元,用于按照所述模块的驱动时间顺序,将所述模块排序,生成每个系统时钟周期的模块列表。 另一方面,提供一种系统的仿真方法,包括 步骤101,获取当前系统时钟周期对应的模块列表; 步骤102,按照模块的驱动时间顺序,依次从所述当前系统时钟周期的模块列表中 获取一个模块; 步骤103,调用所述模块的功能函数,对系统中总线的状态进行仿真,所述功能函数描述所述模块的端口状态和总线事件之间的对应关系,所述总线事件描述所述模块对应的总线的状态在时间点的变化。 所述的系统的仿真方法,还包括 步骤104,检测所述当前系统时钟周期对应的模块列表中是否有未调用的模块,如 果检测的结果为是,则返回所述步骤102 ; 步骤105,如果检测的结果为否,则检测所述当前系统时钟周期是否为最后一拍, 如果为最后一拍,则结束,否则,将下一个系统时钟周期作为当前系统时钟周期,返回所述 步骤101。 所述步骤103包括 读取所述模块的端口状态; 将所述模块的端口状态作为所述模块的功能函数的输入,运行所述模块的功能函 数,生成运行结果; 根据所述运行结果,判断是否需要在总线事件列表中插入总线事件; 如果判断的结果为是,则按照总线事件时间点的顺序,在所述总线事件列表中插入所述总线事件。 所述步骤103之前,还包括 获取所述系统中模块和总线的对应关系; 判断所述总线事件列表中是否有所述模块对应的总线的事件,并且,所述总线的事件的时间点位于所述模块的驱动时间之前,同时,所述总线的事件未被处理; 如果判断的结果为是,则按照所述总线的事件时间点顺序,依次根据所述总线的事件修改总线的状态;否则,执行步骤103。 所述总线的状态包括地址、数据和传输类型。 另一方面,提供一种系统的仿真装置,包括 第一获取单元,用于获取当前系统时钟周期对应的模块列表; 第二获取单元,用于按照模块的驱动时间顺序,依次从所述当前系统时钟周期的 模块列表中获取一个模块; 调用单元,用于调用所述模块的功能函数,对系统中总线的状态进行仿真,所述功 能函数描述所述模块的端口状态和总线事件之间的对应关系,所述总线事件描述所述模块 对应的总线的状态在时间点的变化。 所述的系统的仿真装置,还包括 第一检测单元,用于检测所述当前系统时钟周期对应的模块列表中是否有未调用 的模块,当检测的结果为是时,则使所述第二获取单元继续运行; 第二检测单元,用于当检测的结果为否时,检测所述当前系统时钟周期是否为最 后一拍,当不是最后一拍时,则将下一个系统时钟周期作为当前系统时钟周期,使所述第一 获取单元继续运行。 所述的系统的仿真装置,还包括 第三获取单元,用于获取所述系统中模块和总线的对应关系; 判断单元,用于判断所述总线事件列表中是否有所述模块对应的总线的事件,并 且,所述总线的事件的时间点位于所述模块的驱动时间之前,同时,所述总线的事件未被处 理; 修改单元,用于当判断的结果为是,则按照所述总线的事件时间点顺序,依次根据所述总线的事件修改总线的状态。 本专利技术的实施例具有以下有益效果 上述方案中,对系统进行建模和仿真时,将模型的抽象层次定位于总线级别,将模 块内部的功能用串行执行的方式描述,不需要对模块内部的运行进行仿真,因此,加快了仿真速度。附图说明 图1为一种典型的S0C系统的结构示意图; 图2为本专利技术所述的系统的建模方法的一实施例的流程示意图; 图3为对图1所述的S0C系统建模后,S0C系统的结构示意图; 图4为本专利技术系统的建模装置的一实施例的结构示意图; 图5为本专利技术系统的仿真方法的一实施例的流程示意图; 图6为本专利技术系统的仿真方法的另一实施例的流程示意图; 图7为本专利技术系统的仿真装置的一实施例的结构示意图; 图8为本专利技术系统的仿真装置的另一实施例的结构示意图; 图9为AXI总线与模块之间的连接关系示意图; 图10为图9中AXI协议中模块1向模块2发起一次请求并且被模块2接收的握 手过程的示意图。具体实施例方式为使本专利技术的实施例要解决的技术问题、技术方案和优点更加清楚,下面将结合 附图及具体实施例进行详细描述。 本专利技术的实施例针对现有技术中仿真速度慢的问题,提供一种系统的建模和仿真 的方法及装置。 如图2所示,为本专利技术所述的系统的建模方法的一实施例的流程示意图,包括 步骤21,根据所述系统中模块和总线之间的连接关系,指定所述模块和所述总线 之间的对应关系; 其中,步骤21本文档来自技高网...

【技术保护点】
一种系统的建模方法,其特征在于,包括:根据所述系统中模块和总线之间的连接关系,指定所述模块和所述总线之间的对应关系;将所述模块的功能模拟为功能函数,所述功能函数描述所述模块的端口状态和总线事件之间的对应关系,所述总线事件描述所述模块对应的总线的状态在时间点的变化;确定系统时钟周期,所述系统时钟周期小于/等于系统中最短的模块时钟周期;查找出每个系统时钟周期内需要被驱动的模块;按照所述模块的驱动时间顺序,将所述模块排序,生成每个系统时钟周期的模块列表。

【技术特征摘要】
一种系统的建模方法,其特征在于,包括根据所述系统中模块和总线之间的连接关系,指定所述模块和所述总线之间的对应关系;将所述模块的功能模拟为功能函数,所述功能函数描述所述模块的端口状态和总线事件之间的对应关系,所述总线事件描述所述模块对应的总线的状态在时间点的变化;确定系统时钟周期,所述系统时钟周期小于/等于系统中最短的模块时钟周期;查找出每个系统时钟周期内需要被驱动的模块;按照所述模块的驱动时间顺序,将所述模块排序,生成每个系统时钟周期的模块列表。2. 根据权利要求1所述的系统的建模方法,其特征在于,所述查找出每个系统时钟周期内需要被驱动的模块的步骤具体为通过检测每个系统时钟周期内出现的模块时钟上升沿和/或模块时钟下降沿,查找出每个系统时钟周期内需要被驱动的模块。所述按照所述模块的驱动时间顺序,将所述模块排序,生成每个系统时钟周期的模块列表的步骤具体为按照所述模块的时钟上升沿和/或时钟下降沿的出现时刻,将所述模块排序,生成每个系统时钟周期的模块列表。3. —种系统的建模装置,其特征在于,包括指定单元,用于根据所述系统中模块和总线之间的连接关系,指定所述模块和所述总线之间的对应关系;模拟单元,用于将所述模块的功能模拟为功能函数,所述功能函数描述所述模块的端口状态和总线事件之间的对应关系,所述总线事件描述所述模块对应的总线的状态在时间点的变化;时钟周期确定单元,用于确定系统时钟周期,所述系统时钟周期小于/等于系统中最短的模块时钟周期;查找单元,用于查找出每个系统时钟周期内需要被驱动的模块;排序单元,用于按照所述模块的驱动时间顺序,将所述模块排序,生成每个系统时钟周期的模块列表。4. 一种系统的仿真方法,其特征在于,包括步骤101,获取当前系统时钟周期对应的模块列表;步骤102,按照模块的驱动时间顺序,依次从所述当前系统时钟周期的模块列表中获取一个模块;步骤103,调用所述模块的功能函数,对系统中总线的状态进行仿真,所述功能函数描述所述模块的端口状态和总线事件之间的对应关系,所述总线事件描述所述模块对应的总线的状态在时间点的变化。5. 根据权利要求4所述的系统的仿真方法,其特征在于,还包括步骤104,检测所述当前系统时钟周期对应的模块列表中是否有未调用的模块,如果检测的结果为是,则返回所述步骤102 ;步骤105,如果检测的结果为否,则检测所述当前系统时钟周期是否为最...

【专利技术属性】
技术研发人员:俞力杰
申请(专利权)人:北京中星微电子有限公司
类型:发明
国别省市:11[中国|北京]

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

1