[发明专利]一种基于SystemC的AADL软构件模型仿真测试实例生成方法无效
申请号: | 201110182872.0 | 申请日: | 2011-06-30 |
公开(公告)号: | CN102231132A | 公开(公告)日: | 2011-11-02 |
发明(设计)人: | 马春燕;董云卫;朱晓燕;朱宇峰 | 申请(专利权)人: | 西北工业大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 西北工业大学专利中心 61204 | 代理人: | 陈星 |
地址: | 710072 *** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明提出了一种基于SystemC的AADL软构件模型仿真测试实例生成方法,首先给出了将数据构件、端口和连接转换为SystemC仿真测试实例的转换技术;然后,依据构件的包含关系,从构件树的底层(子程序)到树的中间层(线程、进程)逐步骤给出了将各构件转换为SystemC仿真测试实例的转换技术;最后给出了子系统和系统构件的转换技术。通过本发明,用户可以实现基于SystemC AADL软构件的仿真,包括软构件之间交互、执行时间和以及线程调度的仿真等。用户也可以将本发明与基于SystemC的AADL执行平台构件仿真相结合,对软硬件进行协同仿真,根据仿真结果迭代构造和精化设计模型,以尽早发现设计模型中存在的问题,保障设计模型的质量。 | ||
搜索关键词: | 一种 基于 systemc aadl 构件 模型 仿真 测试 实例 生成 方法 | ||
【主权项】:
一种基于SystemC的AADL软构件模型仿真测试实例生成方法,其特征在于:包括以下步骤:步骤1:将AADL模型的数据构件转换为SystemC格式的仿真测试实例,转换规则为:如果数据构件的类型是SystemC支持的基本数据类型,则将数据构件转换为SystemC中的基本数据类型,否则转换为用户自定义的数据类型;步骤2:将AADL模型的构件端口和连接转换为SystemC格式的仿真测试实例,其中构件端口和连接包括数据端口和连接、事件端口和连接和事件数据端口和连接,各转换规则为:转换数据端口和连接:将AADL模型的in、out、inout类型的数据端口分别转换为SystemC格式下基本端口类型sc_in、sc_out、sc_inout的端口变量,其中T是端口传输数据的数据类型;将系统、子系统或进程中的子模块端口直接关联到其所属父/子模块的端口进行通讯,将系统、子系统或进程中的模块端口绑定到信号sc_signal而与其他同级模块的端口相连进行通讯;将线程的数据端口连接转换为信号sc_signal类型变量;转换事件端口和连接:将AADL模型的事件端口转换为SystemC中的先进先出队列通道sc_fifo类型的变量;事件端口连接的转换方法为:将参与事件端口连接的两个构件转换后分别绑定到事件端口对应的通道变量,并调用通道的read()和write()方法向通道读或写事件;转换事件数据端口和连接:将事件数据端口转换为SystemC中的自定义端口sc_port类型的变量,InterfaceType是端口所要连接通道的接口类型;事件数据端口连接的转换方法为:将参与事件数据端口连接的两个构件转换后,分别将两个转换后构件的事件数据端口变量与一个sc_fifo通道类型的变量绑定并调用通道的read()和write()方法向通道读或写事件数据;步骤3:将AADL模型的子程序构件转换为SystemC格式的C++函数,若子程序带有参数,则其中in类型的参数作为函数的参数采用值传递方式传递到参数内部使用,out或inout类型参数作为函数的参数采用引用传递方式传递到参数内部使用;将AADL模型的子程序行为附件转换为函数体,函数体通过switch‑case语句实现,switch语句测试子程序行为附件的状态,case语句测试子程序行为附件状态转换的条件,在case语句内实现状态转换后的计算过程;步骤4:将AADL模型的线程构件转换为SystemC中的SC_THREAD(threadName),其中threadName是以线程名命名的C++函数,该函数实现以下部分:仿真线程初始化:用wait(Init_execution_time,SC_MS)来模拟线程初始化时消耗的时间,Init_execution_time是定义的一个int型的变量,其值为线程的属性Initialize_Execution_Time中规定的初始化执行时间最大与最小值之间的一个随机值;仿真子程序调用:若线程中调用的子程序,则直接调用子程序经过步骤3转换后得到的SystemC格式的C++函数;仿真线程行为附件:将线程行为附件转换为函数体,函数体通过switch‑case语句实现,switch语句测试线程行为附件的状态,case语句测试线程行为附件状态转换的条件,在case语句内实现状态转换后的计算过程;仿真线程端口与其他构件端口间的通讯:采用步骤2中的转换方法将线程端口及线程端口与其他构件端口间的连接进行转换;比较线程的执行时间与线程周期,若线程的执行时间没有到周期值,则线程消耗一定的时间直到该周期结束;采用wait(final_execution_time,SC_MS)实现仿真AADL线程的终止消耗时间,final_execution_time是int型变量,其值为AADL模型Finalize_Execution_Time属性中规定的终止执行时间最大与最小值之间的一个随机值;步骤5:将AADL模型的进程转换为SystemC中包含一个模块SC_MODULE(进程名)的文件;将AADL模型的进程实现转换为SystemC中定义的文件<进程名.cpp>;文件实现以下部分:采用步骤2中的转换方法将进程端口及进程端口与其他构件端口间的连接进行转换,实现进程端口及进程端口与其他构件端口间的通讯仿真;声明线程转换的函数,声明线程调用的子程序转换的函数;在模块构造函数函数SC_CTOR(P_进程名)中,注册进程包含的线程,并声明各线程的敏感事件;文件<进程名.cpp>中包含步骤4线程函数threadName的函数实现,以及步骤3中子程序的函数实现;步骤6:将AADL模型的系统构件转换为SystemC中包含一个模块SC_MODULE(S_系统名)的文件<系统名.h>,文件<系统名.h>实现以下部分:采用步骤2中的转换方法将系统端口进行转换,实现系统端口的仿真;声明系统子构件的转换函数;在SC_MODULE(S_系统名)模块构造函数SC_CTOR(系统名)中,按照步骤2,实现系统端口与其他构件端口连接的仿真。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西北工业大学,未经西北工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201110182872.0/,转载请声明来源钻瓜专利网。
- 上一篇:区域公路网交通安全态势预警系统及其方法
- 下一篇:网站管理系统