CN101719177A - 系统建模和仿真的方法及装置 - Google Patents

系统建模和仿真的方法及装置 Download PDF

Info

Publication number
CN101719177A
CN101719177A CN200910237044A CN200910237044A CN101719177A CN 101719177 A CN101719177 A CN 101719177A CN 200910237044 A CN200910237044 A CN 200910237044A CN 200910237044 A CN200910237044 A CN 200910237044A CN 101719177 A CN101719177 A CN 101719177A
Authority
CN
China
Prior art keywords
module
bus
clock cycle
system clock
events
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
CN200910237044A
Other languages
English (en)
Other versions
CN101719177B (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.)
Nantong City Science And Technology Park Investment And Development Co Ltd
Original Assignee
Vimicro 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 Vimicro Corp filed Critical Vimicro Corp
Priority to CN2009102370445A priority Critical patent/CN101719177B/zh
Publication of CN101719177A publication Critical patent/CN101719177A/zh
Application granted granted Critical
Publication of CN101719177B publication Critical patent/CN101719177B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Debugging And Monitoring (AREA)

Abstract

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

Description

系统建模和仿真的方法及装置
技术领域
本发明涉及仿真领域,特别是指一种系统建模和仿真的方法及装置。
背景技术
随着系统设计的复杂性提高,对系统进行仿真变得越来越重要。以SoC(System On a Chip,片上系统)为例,用于连接SoC系统各个模块的总线的结构和性能成为系统性能的关键,系统设计的中心逐渐由模块的处理能力转到系统的总线结构,即各个模块之间数据的高效传输逐渐成为系统设计的中心。图1为一种典型的SOC系统的结构示意图,就SoC系统建模和仿真而言,现存的技术方案包括采用基于硬件描述语言的时钟精确的系统模型,例如Verilog、VHDL(Very-High-Speed Integrated Circuit Hardware DescriptionLanguage,超高速积体电路硬件描述语言)、SystemC等专用的语言,但是基于硬件描述语言的时钟精确的系统模型,不仅要对总线状态的变化进行仿真,而且要对与总线连接的模块内部的处理过程进行仿真,带来的问题是仿真速度比较慢。
发明内容
本发明要解决的技术问题是提供一种仿真速度比较快的系统的建模与仿真方法及装置。
为解决上述技术问题,本发明的实施例提供技术方案如下:
一方面,提供一种系统的建模方法,包括:
根据所述系统中模块和总线之间的连接关系,指定所述模块和所述总线之间的对应关系;
将所述模块的功能模拟为功能函数,所述功能函数描述所述模块的端口状态和总线事件之间的对应关系,所述总线事件描述所述模块对应的总线的状态在时间点的变化;
确定系统时钟周期,所述系统时钟周期小于/等于系统中最短的模块时钟周期;
查找出每个系统时钟周期内需要被驱动的模块;
按照所述模块的驱动时间顺序,将所述模块排序,生成每个系统时钟周期的模块列表;
所述查找出每个系统时钟周期内需要被驱动的模块的步骤具体为:通过检测每个系统时钟周期内出现的模块时钟上升沿和/或模块时钟下降沿,查找出每个系统时钟周期内需要被驱动的模块。
所述按照所述模块的驱动时间顺序,将所述模块排序,生成每个系统时钟周期的模块列表的步骤具体为:按照所述模块的时钟上升沿和/或时钟下降沿的出现时刻,将所述模块排序,生成每个系统时钟周期的模块列表。
另一方面,提供一种系统的建模装置,包括:
指定单元,用于根据所述系统中模块和总线之间的连接关系,指定所述模块和所述总线之间的对应关系;
模拟单元,用于将所述模块的功能模拟为功能函数,所述功能函数描述所述模块的端口状态和总线事件之间的对应关系,所述总线事件描述所述模块对应的总线的状态在时间点的变化;
时钟周期确定单元,用于确定系统时钟周期,所述系统时钟周期小于/等于系统中最短的模块时钟周期;
查找单元,用于查找出每个系统时钟周期内需要被驱动的模块;
排序单元,用于按照所述模块的驱动时间顺序,将所述模块排序,生成每个系统时钟周期的模块列表。
另一方面,提供一种系统的仿真方法,包括:
步骤101,获取当前系统时钟周期对应的模块列表;
步骤102,按照模块的驱动时间顺序,依次从所述当前系统时钟周期的模块列表中获取一个模块;
步骤103,调用所述模块的功能函数,对系统中总线的状态进行仿真,所述功能函数描述所述模块的端口状态和总线事件之间的对应关系,所述总线事件描述所述模块对应的总线的状态在时间点的变化。
所述的系统的仿真方法,还包括:
步骤104,检测所述当前系统时钟周期对应的模块列表中是否有未调用的模块,如果检测的结果为是,则返回所述步骤102;
步骤105,如果检测的结果为否,则检测所述当前系统时钟周期是否为最后一拍,如果为最后一拍,则结束,否则,将下一个系统时钟周期作为当前系统时钟周期,返回所述步骤101。
所述步骤103包括:
读取所述模块的端口状态;
将所述模块的端口状态作为所述模块的功能函数的输入,运行所述模块的功能函数,生成运行结果;
根据所述运行结果,判断是否需要在总线事件列表中插入总线事件;
如果判断的结果为是,则按照总线事件时间点的顺序,在所述总线事件列表中插入所述总线事件。
所述步骤103之前,还包括:
获取所述系统中模块和总线的对应关系;
判断所述总线事件列表中是否有所述模块对应的总线的事件,并且,所述总线的事件的时间点位于所述模块的驱动时间之前,同时,所述总线的事件未被处理;
如果判断的结果为是,则按照所述总线的事件时间点顺序,依次根据所述总线的事件修改总线的状态;否则,执行步骤103。
所述总线的状态包括:地址、数据和传输类型。
另一方面,提供一种系统的仿真装置,包括:
第一获取单元,用于获取当前系统时钟周期对应的模块列表;
第二获取单元,用于按照模块的驱动时间顺序,依次从所述当前系统时钟周期的模块列表中获取一个模块;
调用单元,用于调用所述模块的功能函数,对系统中总线的状态进行仿真,所述功能函数描述所述模块的端口状态和总线事件之间的对应关系,所述总线事件描述所述模块对应的总线的状态在时间点的变化。
所述的系统的仿真装置,还包括:
第一检测单元,用于检测所述当前系统时钟周期对应的模块列表中是否有未调用的模块,当检测的结果为是时,则使所述第二获取单元继续运行;
第二检测单元,用于当检测的结果为否时,检测所述当前系统时钟周期是否为最后一拍,当不是最后一拍时,则将下一个系统时钟周期作为当前系统时钟周期,使所述第一获取单元继续运行。
所述的系统的仿真装置,还包括:
第三获取单元,用于获取所述系统中模块和总线的对应关系;
判断单元,用于判断所述总线事件列表中是否有所述模块对应的总线的事件,并且,所述总线的事件的时间点位于所述模块的驱动时间之前,同时,所述总线的事件未被处理;
修改单元,用于当判断的结果为是,则按照所述总线的事件时间点顺序,依次根据所述总线的事件修改总线的状态。
本发明的实施例具有以下有益效果:
上述方案中,对系统进行建模和仿真时,将模型的抽象层次定位于总线级别,将模块内部的功能用串行执行的方式描述,不需要对模块内部的运行进行仿真,因此,加快了仿真速度。
附图说明
图1为一种典型的SOC系统的结构示意图;
图2为本发明所述的系统的建模方法的一实施例的流程示意图;
图3为对图1所述的SOC系统建模后,SOC系统的结构示意图;
图4为本发明系统的建模装置的一实施例的结构示意图;
图5为本发明系统的仿真方法的一实施例的流程示意图;
图6为本发明系统的仿真方法的另一实施例的流程示意图;
图7为本发明系统的仿真装置的一实施例的结构示意图;
图8为本发明系统的仿真装置的另一实施例的结构示意图;
图9为AXI总线与模块之间的连接关系示意图;
图10为图9中AXI协议中模块1向模块2发起一次请求并且被模块2接收的握手过程的示意图。
具体实施方式
为使本发明的实施例要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。
本发明的实施例针对现有技术中仿真速度慢的问题,提供一种系统的建模和仿真的方法及装置。
如图2所示,为本发明所述的系统的建模方法的一实施例的流程示意图,包括:
步骤21,根据所述系统中模块和总线之间的连接关系,指定所述模块和所述总线之间的对应关系;
其中,步骤21中,指定系统中各个模块和各个总线的对应关系。所述总线和所述模块之间的对应关系可以为总线和所述模块端口之间的对应关系。系统可以用模块、端口、总线这三个元素的组合来描述。其中,模块,用于描述总线上相连的可以发起请求和接收请求的模块。端口,用于描述模块上连接总线的端口,每个模块至少包含一个端口。总线的状态,用于描述总线的状态,如地址、数据、传输类型等。
步骤22,将所述模块的功能模拟为功能函数,所述功能函数描述所述模块的端口状态和总线事件之间的对应关系,所述总线事件描述所述模块对应的总线的状态在时间点的变化。
该方案中,对系统建模时,采用统一的方法描述系统的总线行为,保证系统总线行为的时钟精确,对于模块内部的行为则根据具体模块的功能用串行方式描述,在后续仿真过程中,不需要对模块内部的处理进行仿真,因此能够加快仿真速度。
模块的功能函数是对模块功能的建模,用于描述模块对端口状态的变化做出的响应,该响应可以出现在下一个时钟周期,也可以出现在若干时钟周期之后。
使用“总线事件”描述系统的总线的动态行为,总线事件表示在某个时间点总线的状态发生了改变,时间点用绝对时间表示。总线事件组成一个总线事件列表,在该列表中,所有总线事件按照时间先后顺序排队。
步骤23,确定系统时钟周期,所述系统时钟周期小于/等于系统中最短的模块时钟周期;
在后续的仿真过程中,每一个循环相当于一个系统时钟周期。在系统中,可能存在多个异步时钟,每个模块都有自己的时钟周期和时钟相位,系统时钟周期必须小于/等于系统中所有模块的时钟周期。
步骤24,查找出每个系统时钟周期内需要被驱动的模块;
其中,步骤24具体为:通过检测每个系统时钟周期内出现的模块时钟上升沿,查找出每个系统时钟周期内被驱动的模块;和/或通过检测每个系统时钟周期内出现的模块时钟下降沿,查找出每个系统时钟周期内被驱动的模块。
步骤25,按照所述模块的驱动时间顺序,将所述模块排序,生成每个系统时钟周期的模块列表。其中,步骤25具体为:通过检测每个系统时钟周期内出现的模块时钟上升沿和/或模块时钟下降沿,查找出每个系统时钟周期内需要被驱动的模块。
以对图1中一种典型的SoC系统的建模为例,对该系统建模后,该系统的结构可以表示为图3。
基于上述对系统的仿真,以下描述对系统的仿真,通过仿真可以描述总线的动态行为。
如图4所示,为本发明所述的系统的建模装置5的一实施例的结构示意图,包括:
指定单元51,用于根据所述系统中模块和总线之间的连接关系,指定所述模块和所述总线之间的对应关系;
模拟单元52,用于将所述模块的功能模拟为功能函数,所述功能函数描述所述模块的端口状态和总线事件之间的对应关系,所述总线事件描述所述模块对应的总线的状态在时间点的变化。
该方案中,对系统建模时,采用统一的方法描述系统的总线行为,保证系统总线行为的时钟精确,对于模块内部的行为则根据具体模块的功能用串行方式描述,在后续仿真过程中,不需要对模块内部的处理进行仿真,因此能够加快仿真速度。
时钟周期确定单元53,用于确定系统时钟周期,所述系统时钟周期小于/等于系统中最短的模块时钟周期;
查找单元54,用于查找出每个系统时钟周期内需要被驱动的模块;具体为:通过检测每个系统时钟周期内出现的模块时钟上升沿,查找出每个系统时钟周期内被驱动的模块;和/或通过检测每个系统时钟周期内出现的模块时钟下降沿,查找出每个系统时钟周期内被驱动的模块。
排序单元55,用于按照所述模块的驱动时间顺序,将所述模块排序,生成每个系统时钟周期的模块列表,具体为:按照所述模块的时钟上升沿和/或时钟下降沿的出现时刻,将所述模块排序,生成每个系统时钟周期的模块列表。
如图5所示,为本发明所述的系统的仿真方法的一实施例的流程示意图,包括:
步骤71,获取当前系统时钟周期对应的模块列表;
步骤72,按照模块的驱动时间顺序,依次从所述当前系统时钟周期的模块列表中获取一个模块;
步骤73,调用所述模块的功能函数,对系统中总线的状态进行仿真,所述功能函数描述所述模块的端口状态和总线事件之间的对应关系,所述总线事件描述所述模块对应的总线的状态在时间点的变化。
所述总线的状态包括:地址、数据和传输类型等。
该方案中,对系统进行仿真时,将模型的抽象层次定位于总线级别,将模块内部的功能用串行执行的方式描述,不需要对模块内部的运行进行仿真,因此,加快了仿真速度。
如图6所示,为本发明所述的系统的仿真方法的一实施例的流程示意图,包括:
步骤81,获取当前系统时钟周期对应的模块列表;
步骤82,按照模块的驱动时间顺序,依次从所述当前系统时钟周期的模块列表中获取一个模块;
步骤83,获取所述系统中模块和总线的对应关系;
步骤84,判断所述总线事件列表中是否有所述模块对应的总线的事件,并且,所述总线的事件的时间点位于所述模块的驱动时间之前,同时,所述总线的事件未被处理;
步骤85,如果判断的结果为是,则按照所述总线的事件时间点顺序,依次根据所述总线的事件修改总线的状态;然后执行步骤86。否则,直接执行步骤86。
步骤86,调用所述模块的功能函数,所述功能函数描述所述模块的端口状态和总线事件之间的对应关系,所述总线事件描述所述模块对应的总线的状态在时间点的变化;
其中,步骤86包括:步骤861,读取所述模块的端口状态;步骤862,将所述模块的端口状态作为所述模块的功能函数的输入,运行所述模块的功能函数,生成运行结果;步骤863,根据所述运行结果,判断是否需要在总线事件列表中插入总线事件;步骤864,如果判断的结果为是,则按照总线事件时间点的顺序,在所述总线事件列表中插入所述总线事件。
步骤87,检测所述当前系统时钟周期对应的模块列表中是否有未调用的模块,如果检测的结果为是,则返回所述步骤82;
步骤88,如果检测的结果为否,则检测所述当前系统时钟周期是否为最后一拍,如果为最后一拍,则结束,否则,将下一个系统时钟周期作为当前系统时钟周期,返回所述步骤81。
本发明中,在系统的每个循环之内,系统查找出当前系统时钟周期之内需要驱动的所有模块(例如,检测当前系统时钟周期内出现的模块时钟上升沿),根据事件列表中位于每个模块被驱动时刻(例如,模块时钟上升沿)之前的事件,修改总线状态,然后调用该模块的功能函数,根据总线对应的模块的端口状态,建立新的事件插入总线事件列表中。
如图7所示,为本发明所述的系统的仿真装置的一实施例的结构示意图,包括:
第一获取单元91,用于获取当前系统时钟周期对应的模块列表;
第二获取单元92,用于按照模块的驱动时间顺序,依次从所述当前系统时钟周期的模块列表中获取一个模块;
调用单元93,用于调用所述模块的功能函数,对系统中总线的状态进行仿真,所述功能函数描述所述模块的端口状态和总线事件之间的对应关系,所述总线事件描述所述模块对应的总线的状态在时间点的变化。
该方案中,对系统进行仿真时,将模型的抽象层次定位于总线级别,将模块内部的功能用串行执行的方式描述,不需要对模块内部的运行进行仿真,因此,加快了仿真速度。
如图8所示,为本发明所述的系统的仿真装置的另一实施例的结构示意图,还包括:
第三获取单元94,用于获取所述系统中模块和总线的对应关系;
判断单元95,用于判断所述总线事件列表中是否有所述模块对应的总线的事件,并且,所述总线的事件的时间点位于所述模块的驱动时间之前,同时,所述总线的事件未被处理;
修改单元96,用于当判断的结果为是,则按照所述总线的事件时间点顺序,依次根据所述总线的事件修改总线的状态。
调用单元97,用于调用所述模块的功能函数,所述功能函数描述所述模块的端口状态和总线事件之间的对应关系,所述总线事件描述所述模块对应的总线的状态在时间点的变化;
第一检测单元98,用于检测所述当前系统时钟周期对应的模块列表中是否有未调用的模块,当检测的结果为是时,则使所述第二获取单元92继续运行;
第二检测单元99,用于当检测的结果为否时,检测所述当前系统时钟周期是否为最后一拍,当不是最后一拍时,则将下一个系统时钟周期作为当前系统时钟周期,使所述第一获取单元91继续运行。
本发明实施例所述的系统的建模和仿真方法及装置有以下效果:
(1)仿真的执行时序同实际硬件相吻合,可以严格反映硬件的性能。
(2)可以比较方便的修改系统中总线和所述模块之间的对应关系,以描述新的总线结构。
(3)相对于其它建模方式,如硬件描述语言,单线程的、基于C/C++等通用高级语言的建模方法,本发明为用高级语言实现的、用于描述系统总线行为的统一的系统级建模和仿真方案,有足够快的仿真速度,满足架构性能评估的需求。
(4)定义了一个通用系统,用于系统总线的建模和仿真,工程师可以专注于模块行为的描述,以加快建模速度。
(5)不同的模块具有通用的接口,方便协同开发仿真模型,提高了模型的可重用性。
(6)现有技术中通用高级语言的串行执行特性,并不适合描述并行执行的硬件结构,因此存在开发周期长、调试困难的问题,本发明的方案将模型的抽象层次定位于总线级别,将模块内部的功能用串行执行的方式描述,用于快速实现模块的功能,用模块、端口、状态、总线事件和总线事件列表等元素严格描述总线信号的硬件行为,能够保证总线行为的周期精确性和模型的可重用性。
(7)上述方案采用了适合于架构评估阶段的抽象层次,着重于系统总线的行为描述,在保证建模速度和仿真速度的同时实现了时钟精确的总线行为描述。对系统进行仿真时,将模型的抽象层次定位于总线级别,将模块内部的功能用串行执行的方式描述,不需要对模块内部的运行进行仿真,因此,加快了仿真速度。
以下以AXI总线的握手过程为例,说明系统的建模和仿真方法。
如图9所示,为AXI总线与模块之间的连接关系。AXI总线包含5个通道,都以VALID/READY(有效/完毕)信号为握手信号,为简便起见,这里只描述单个通道的信号。在该系统中,有两个模块:模块1和模块2。模块1和模块2被同一个时钟驱动。每个模块都有一个端口,模块1包含一个Master(主)端口,模块2包含一个Slave(从)端口。AXI总线0的状态包含了VALID信号、READY信号和INFORMATION(信息内容)信号,总线0对应于AXI总线的一个通道。VALID信号表示发起请求,由模块1的Master端口驱动。READY信号表示请求被接收,由模块2的Slave端口驱动,INFORMATION信号表示请求内容,由模块1的Master端口驱动。VALID和READY信号取值范围为0(低电平)或1(高电平),INFORMATION信号的取值范围依AXI通道而定。
如图10所示,为按照AXI协议,模块1向模块2发起一次请求并且被模块2接收的握手过程(这是可能的交互过程的一种)。这一过程如下:
VALID信号和READY信号的初始值都为低电平。
模块1在第一个时钟上升沿之后发起请求。在第1个时钟上升沿之后,VALID信号被模块1置为高电平,同时INFORMATION信号被修改为请求内容。
在第二个时钟上升沿后,模块2将VALID信号和INFORMATION信号锁存,经过一些逻辑之后,模块2将READY信号置为高电平。由于模块1在第二个时钟上升沿锁存到的READY信号为低电平,所以它维持VALID信号和INFORMATION信号。
在第三个时钟上升沿之后,模块2将READY信号置为低电平,由于模块1这次锁存到的READY信号为高,表示请求被接收,模块1将VALID信号置为低电平,这也意味着这时INFORMATION信号无意义。至此,握手过程结束。
在本发明实施例所述的系统仿真的方法中,这一握手的流程将表现为如下的过程:
首先,指定模块和总线之间的关系,即模块1的Master端口同AXI总线0相对应,模块2的Slave端口同AXI总线0相对应。
然后,确定系统时钟周期。由于这个例子只包含一个时钟信号(ACLK),所以将这唯一的时钟信号作为系统时钟信号。这样,在每一个系统时钟上升沿,需要驱动的模块是模块0和模块1,由于两个模块由同一个时钟驱动,所以二者驱动的时间先后不重要,下面的描述中以先驱动模块0再驱动模块1为例(也可以先驱动模块1再驱动模块0)。
其次,开始系统时钟循环:
第0个系统时钟上升沿:
对于模块0,在该模块的驱动时间之前,没有总线事件需要处理,调用该模块的功能函数,读取Master端口的状态(此时VALID和READY信号均为低电平),此时没有请求需要发起,无需插入总线事件。
对于模块1,在该模块的驱动时间之前,没有总线事件需要处理,调用该模块的功能函数,读取Slave端口的状态(此时VALID和READY信号均为低电平),此时没有请求需要处理,无需插入总线事件。
第1个系统时钟上升沿:
对于模块0,在该模块的驱动时间之前,没有总线事件需要处理,调用该模块的功能函数,读取Master端口的状态(此时VALID和READY信号均为低电平),根据该模块的功能函数,此时发起请求,所以在总线事件列表中插入总线事件0,该总线事件0描述了在这一时刻之后,VALID信号变为高,INFORMATION信号变为请求内容。
对于模块1,在该模块的驱动时间之前,没有总线事件需要处理,调用该模块的功能函数,读Slave端口的状态(此时VALID和READY信号均为低电平),此时没有请求需要处理,无需插入总线事件。
第2个系统时钟上升沿:
对于模块0,在该模块的驱动时间之前,判断所述总线事件列表是否有未处理的所述模块对应的总线事件,并且,所述总线事件的时间点位于取出的所述模块的驱动时间之前;因此,总线事件列表中的总线事件0需要处理。处理该总线事件0之后,AXI总线0的VALID信号变为高,INFORMATION信号变为请求内容,调用该模块的功能函数,读取Master端口的状态(此时VALID信号为高电平,READY信号为低电平,INFORMATION信号为请求的内容),由于READY信号为低电平,表明上一个请求尚未被接收,所以维持VALID信号和INFORMATION信号不变,无需插入总线事件。
对于模块1,在该模块的驱动时间之前,没有总线事件需要处理(总线事件0已经在调用模块0的功能函数前被处理了),调用该模块的功能函数,读取Slave端口的状态(此时VALID信号为高电平,READY信号为低电平),VALID信号为高电平,表明有请求,根据模块1的功能函数,判断该请求可以接收,需要将READY信号置为高电平,即在总线事件列表中插入总线事件1,该总线事件1表示在此时刻之后,READY信号为高电平。
第3个系统时钟上升沿:
对于模块0,在该模块的驱动时间之前,总线事件列表中的总线事件1需要处理,处理该总线事件1之后,AXI总线0的READY信号变为高,调用该模块的功能函数,读取Master端口的状态(此时VALID信号为高电平,READY信号为高电平),由于READY信号为高电平,表明上一个请求已经被接收,同时模块0没有其它请求需要发送,所以将VALID信号置为低电平,即插入总线事件2,该总线事件2表示在此时刻之后,VALID信号为低电平。
对于模块1,在该模块的驱动时间之前,没有总线事件需要处理(总线事件1已经在调用模块0的功能函数前被处理了),调用该模块的功能函数,读取Slave端口的状态(此时VALID信号为高电平,READY信号为高电平),VALID信号和READY信号同时为高,表明对应的请求在上一拍已经被接收,根据模块1的功能函数,需要将READY信号置为低电平,即向总线事件列表插入总线事件3,该总线事件3表示在此时刻之后,READY信号为低电平。
第4个系统时钟上升沿:
对于模块0,在该模块的驱动时间之前,总线事件列表中的总线事件2和3需要处理,处理该总线事件之后,AXI总线0的READY信号变为低,VALID信号变为低,调用该模块的功能函数,根据模块的功能进行操作。
对于模块1,在该模块的驱动时间之前,没有总线事件需要处理(总线事件2,3已经在调用模块0的功能函数前被处理了),调用该模块的功能函数,根据模块的功能进行操作。
按照以上的流程,完成了一次AXI协议的握手过程的仿真。
在实际的仿真中,可以包含多个总线、不同的异步时钟。另外,在模块的功能函数中可以加入复杂的控制功能描述模块的功能,也可以加入各种统计功能描述需要统计的信息,从而完成整个系统的仿真,并且给出统计结果。
综上,本发明的上述技术方案用于在系统的架构设计阶段进行架构性能的评估,以找到一种性能最优化的系统架构。在架构评估阶段对系统建模时,采用统一的方法描述系统的总线行为,保证系统总线行为的时钟精确,同时保证仿真系统的可重用性,而对于模块内部的行为则根据具体模块的功能用串行方式描述。
本发明的上述实施例不仅应用于SoC系统的建模和仿真,也可用于其他系统的建模和仿真。
本领域技术人员可以理解,本发明所述的建模方法和仿真方法可以结合在一起处理,先进行建模,然后进行仿真。同理,建模装置和仿真装置可以集成在一个装置中。在建模中生成的每个系统时钟周期的模块列表,可以在仿真中多次调用。因此,可以进行一次建模,多次仿真。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (11)

1.一种系统的建模方法,其特征在于,包括:
根据所述系统中模块和总线之间的连接关系,指定所述模块和所述总线之间的对应关系;
将所述模块的功能模拟为功能函数,所述功能函数描述所述模块的端口状态和总线事件之间的对应关系,所述总线事件描述所述模块对应的总线的状态在时间点的变化;
确定系统时钟周期,所述系统时钟周期小于/等于系统中最短的模块时钟周期;
查找出每个系统时钟周期内需要被驱动的模块;
按照所述模块的驱动时间顺序,将所述模块排序,生成每个系统时钟周期的模块列表。
2.根据权利要求1所述的系统的建模方法,其特征在于,
所述查找出每个系统时钟周期内需要被驱动的模块的步骤具体为:通过检测每个系统时钟周期内出现的模块时钟上升沿和/或模块时钟下降沿,查找出每个系统时钟周期内需要被驱动的模块。
所述按照所述模块的驱动时间顺序,将所述模块排序,生成每个系统时钟周期的模块列表的步骤具体为:按照所述模块的时钟上升沿和/或时钟下降沿的出现时刻,将所述模块排序,生成每个系统时钟周期的模块列表。
3.一种系统的建模装置,其特征在于,包括:
指定单元,用于根据所述系统中模块和总线之间的连接关系,指定所述模块和所述总线之间的对应关系;
模拟单元,用于将所述模块的功能模拟为功能函数,所述功能函数描述所述模块的端口状态和总线事件之间的对应关系,所述总线事件描述所述模块对应的总线的状态在时间点的变化;
时钟周期确定单元,用于确定系统时钟周期,所述系统时钟周期小于/等于系统中最短的模块时钟周期;
查找单元,用于查找出每个系统时钟周期内需要被驱动的模块;
排序单元,用于按照所述模块的驱动时间顺序,将所述模块排序,生成每个系统时钟周期的模块列表。
4.一种系统的仿真方法,其特征在于,包括:
步骤101,获取当前系统时钟周期对应的模块列表;
步骤102,按照模块的驱动时间顺序,依次从所述当前系统时钟周期的模块列表中获取一个模块;
步骤103,调用所述模块的功能函数,对系统中总线的状态进行仿真,所述功能函数描述所述模块的端口状态和总线事件之间的对应关系,所述总线事件描述所述模块对应的总线的状态在时间点的变化。
5.根据权利要求4所述的系统的仿真方法,其特征在于,还包括:
步骤104,检测所述当前系统时钟周期对应的模块列表中是否有未调用的模块,如果检测的结果为是,则返回所述步骤102;
步骤105,如果检测的结果为否,则检测所述当前系统时钟周期是否为最后一拍,如果为最后一拍,则结束,否则,将下一个系统时钟周期作为当前系统时钟周期,返回所述步骤101。
6.根据权利要求5所述的系统的仿真方法,其特征在于,所述步骤103包括:
读取所述模块的端口状态;
将所述模块的端口状态作为所述模块的功能函数的输入,运行所述模块的功能函数,生成运行结果;
根据所述运行结果,判断是否需要在总线事件列表中插入总线事件;
如果判断的结果为是,则按照总线事件时间点的顺序,在所述总线事件列表中插入所述总线事件。
7.根据权利要求6所述的系统的仿真方法,其特征在于,所述步骤103之前,还包括:
获取所述系统中模块和总线的对应关系;
判断所述总线事件列表中是否有所述模块对应的总线的事件,并且,所述总线的事件的时间点位于所述模块的驱动时间之前,同时,所述总线的事件未被处理;
如果判断的结果为是,则按照所述总线的事件时间点顺序,依次根据所述总线的事件修改总线的状态;否则,执行步骤103。
8.根据权利要求5所述的系统的仿真方法,其特征在于,所述总线的状态包括:地址、数据和传输类型。
9.一种系统的仿真装置,其特征在于,包括:
第一获取单元,用于获取当前系统时钟周期对应的模块列表;
第二获取单元,用于按照模块的驱动时间顺序,依次从所述当前系统时钟周期的模块列表中获取一个模块;
调用单元,用于调用所述模块的功能函数,对系统中总线的状态进行仿真,所述功能函数描述所述模块的端口状态和总线事件之间的对应关系,所述总线事件描述所述模块对应的总线的状态在时间点的变化。
10.根据权利要求9所述的系统的仿真装置,其特征在于,还包括:
第一检测单元,用于检测所述当前系统时钟周期对应的模块列表中是否有未调用的模块,当检测的结果为是时,则使所述第二获取单元继续运行;
第二检测单元,用于当检测的结果为否时,检测所述当前系统时钟周期是否为最后一拍,当不是最后一拍时,则将下一个系统时钟周期作为当前系统时钟周期,使所述第一获取单元继续运行。
11.根据权利要求9所述的系统的仿真装置,其特征在于,还包括:
第三获取单元,用于获取所述系统中模块和总线的对应关系;
判断单元,用于判断所述总线事件列表中是否有所述模块对应的总线的事件,并且,所述总线的事件的时间点位于所述模块的驱动时间之前,同时,所述总线的事件未被处理;
修改单元,用于当判断的结果为是,则按照所述总线的事件时间点顺序,依次根据所述总线的事件修改总线的状态。
CN2009102370445A 2009-11-02 2009-11-02 片上系统建模和仿真的方法及装置 Active CN101719177B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2009102370445A CN101719177B (zh) 2009-11-02 2009-11-02 片上系统建模和仿真的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2009102370445A CN101719177B (zh) 2009-11-02 2009-11-02 片上系统建模和仿真的方法及装置

Publications (2)

Publication Number Publication Date
CN101719177A true CN101719177A (zh) 2010-06-02
CN101719177B CN101719177B (zh) 2012-08-15

Family

ID=42433751

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2009102370445A Active CN101719177B (zh) 2009-11-02 2009-11-02 片上系统建模和仿真的方法及装置

Country Status (1)

Country Link
CN (1) CN101719177B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101968808A (zh) * 2010-10-26 2011-02-09 北京理工大学 一种基于仿真特定领域的仿真信息自动排序方法
CN102637224A (zh) * 2012-03-19 2012-08-15 西北工业大学 一种采用iosem接口方式的紧耦合仿真通用模型实现方法
CN102930090A (zh) * 2012-10-22 2013-02-13 中兴通讯股份有限公司 高级语言实现硬件非阻塞赋值的建模方法
CN104881554A (zh) * 2015-06-15 2015-09-02 华中科技大学 一种适用于ic装备工件定位运动台的仿真系统及其建模方法
CN104991883A (zh) * 2015-06-04 2015-10-21 青岛海信信芯科技有限公司 片间互联的发送、接收装置及发送、接收方法及系统
CN110703630A (zh) * 2019-11-11 2020-01-17 积成电子股份有限公司 一种通过二次装置仿真时间继电器对仿真时钟进行修正的方法
CN111881634A (zh) * 2020-06-19 2020-11-03 成都天奥测控技术有限公司 一种电子系统行为级仿真验证方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7290192B2 (en) * 2003-03-31 2007-10-30 Advantest Corporation Test apparatus and test method for testing plurality of devices in parallel
US7460989B2 (en) * 2004-10-14 2008-12-02 International Business Machines Corporation Method and apparatus for modeling multiple concurrently dispatched instruction streams in super scalar CPU with a sequential language

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101968808A (zh) * 2010-10-26 2011-02-09 北京理工大学 一种基于仿真特定领域的仿真信息自动排序方法
CN101968808B (zh) * 2010-10-26 2012-07-04 北京理工大学 一种基于仿真特定领域的仿真信息自动排序方法
CN102637224A (zh) * 2012-03-19 2012-08-15 西北工业大学 一种采用iosem接口方式的紧耦合仿真通用模型实现方法
CN102930090A (zh) * 2012-10-22 2013-02-13 中兴通讯股份有限公司 高级语言实现硬件非阻塞赋值的建模方法
WO2014063531A1 (zh) * 2012-10-22 2014-05-01 中兴通讯股份有限公司 高级语言实现硬件非阻塞赋值的建模方法
CN102930090B (zh) * 2012-10-22 2015-12-16 中兴通讯股份有限公司 高级语言实现硬件非阻塞赋值的建模方法
CN104991883A (zh) * 2015-06-04 2015-10-21 青岛海信信芯科技有限公司 片间互联的发送、接收装置及发送、接收方法及系统
WO2016192211A1 (zh) * 2015-06-04 2016-12-08 青岛海信信芯科技有限公司 片间互联的发送、接收装置及发送、接收方法及系统
CN104881554A (zh) * 2015-06-15 2015-09-02 华中科技大学 一种适用于ic装备工件定位运动台的仿真系统及其建模方法
CN104881554B (zh) * 2015-06-15 2018-03-09 华中科技大学 适用于ic装备工件定位运动台的仿真系统及其建模方法
CN110703630A (zh) * 2019-11-11 2020-01-17 积成电子股份有限公司 一种通过二次装置仿真时间继电器对仿真时钟进行修正的方法
CN111881634A (zh) * 2020-06-19 2020-11-03 成都天奥测控技术有限公司 一种电子系统行为级仿真验证方法
CN111881634B (zh) * 2020-06-19 2023-09-08 成都天奥测控技术有限公司 一种电子系统行为级仿真验证方法

Also Published As

Publication number Publication date
CN101719177B (zh) 2012-08-15

Similar Documents

Publication Publication Date Title
CN101719177B (zh) 片上系统建模和仿真的方法及装置
JP4994393B2 (ja) 単一のマスターモデルから異なる抽象化レベルの複数のモデルを生成するシステムと方法
CN107256303B (zh) 快速获取数字门级电路内部节点仿真状态的方法
CN100573537C (zh) 一种soc芯片系统级验证系统及方法
CN101719170B (zh) 集成电路的仿真测试方法
CN101499937A (zh) 一种基于fpga的软硬件协同仿真验证系统及方法
CN112463497A (zh) 一种基于uvm的spi验证平台
US10409936B2 (en) Method and apparatus for modelling power consumption of integrated circuit
CN103927219A (zh) 可重构专用处理器核的周期精确的仿真模型及其硬件架构
US7822591B2 (en) Logic circuit model conversion apparatus and method thereof; and logic circuit model conversion program
CN102760176B (zh) 硬件事务级仿真方法、引擎及系统
US5826061A (en) System and method for modeling metastable state machine behavior
CN201522707U (zh) 基于fpga的软硬件协同仿真验证系统
CN100535868C (zh) 一种实时位真仿真开发系统及其方法
CN102147829A (zh) 一种ic功能验证方法
CN116776793B (zh) 静态时序分析和前仿真相结合的多周期路径约束验证方法
US20090234620A1 (en) Verification support apparatus, verification support method, and computer product
CN104866640A (zh) 一种全fifo电路设计方法及其通用验证平台
CN112711213B (zh) 一种基于RiscV内核的导航采集解算Soc处理系统及其方法
Lungeanu et al. Distributed simulation of VLSI systems via lookahead-free self-adaptive optimistic and conservative synchronization
CN100527138C (zh) 集成电路元件的模拟实例产生方法与装置
Guo et al. A SPI interface module verification method based on UVM
Abbes et al. IP integration methodology for SoC design
KR101683636B1 (ko) 혼합회로 시뮬레이션 시스템 및 방법
Davies et al. Timing verification for asynchronous design

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: WUXI VIMICRO MICROELECTRONICS CO., LTD.

Free format text: FORMER OWNER: BEIJING ZHONGXING MICROELECTRONICS CO., LTD.

Effective date: 20110527

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: 100083 15/F, SHINING BUILDING, NO. 35, XUEYUAN ROAD, HAIDIAN DISTRICT, BEIJING TO: 214028 610, NATIONAL INTEGRATED CIRCUIT DESIGN PARK (CHUANGYUAN BUILDING), NO. 21-1, CHANGJIANG ROAD, WUXI NEW DISTRICT, JIANGSU PROVINCE, CHINA

TA01 Transfer of patent application right

Effective date of registration: 20110527

Address after: 214028 national integrated circuit design Park, 21-1 Changjiang Road, New District, Jiangsu, Wuxi, China, 610

Applicant after: Wuxi Vimicro Co., Ltd.

Address before: 100083, Haidian District, Xueyuan Road, Beijing No. 35, Nanjing Ning building, 15 Floor

Applicant before: Beijing Vimicro Corporation

C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: NANTONG CHONGCHUAN SCIENCE AND TECHNOLOGY PARK INV

Free format text: FORMER OWNER: WUXI VIMICRO CO., LTD.

Effective date: 20150120

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: 214028 WUXI, JIANGSU PROVINCE TO: 226006 NANTONG, JIANGSU PROVINCE

TR01 Transfer of patent right

Effective date of registration: 20150120

Address after: Jiangsu province Nantong City Chongchuan road 226006 No. 1

Patentee after: Nantong city science and technology park investment and Development Co. Ltd.

Address before: 214028 national integrated circuit design Park, No. 21-1 Changjiang Road, New District, Jiangsu, Wuxi, 610

Patentee before: Wuxi Vimicro Co., Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20190808

Address after: 226000 Chenggang Group II, Chongchuan District, Nantong City, Jiangsu Province

Patentee after: Nantong Lean Electronics Co., Ltd.

Address before: Jiangsu province Nantong City Chongchuan road 226006 No. 1

Patentee before: Nantong city science and technology park investment and Development Co. Ltd.

TR01 Transfer of patent right

Effective date of registration: 20200103

Address after: Jiangsu province Nantong City Chongchuan road 226000 No. 1

Patentee after: Nantong city science and technology park investment and Development Co. Ltd.

Address before: 226000 Chenggang Group II, Chongchuan District, Nantong City, Jiangsu Province

Patentee before: Nantong Lean Electronics Co., Ltd.

TR01 Transfer of patent right