新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 一种在CCSS中与DSP进行联合仿真的方法

一种在CCSS中与DSP进行联合仿真的方法

作者:深圳中兴通讯公司,梅晓艳,吴淑华时间:2004-06-18来源:电子设计应用收藏
摘 要: 本文主要介绍一种在仿真软件CoCentric System Studio(CCSS)环境下运用DSP开发包()进行DSP联合仿真的方法。该方法可以将算法仿真结果与DSP的具体实现结果在同一环境下进行测试、比较,降低了仿真与测试的复杂度,适用于含有DSP的系统仿真。
关键词:

(DSP Developer Kits)作为Synopsys公司的仿真软件CoCentric System Studio的一个组件,允许设计者开发、测试和分析系统设计中关于DSP部分的内容。利用这个工具箱,可以实现在CCSS(CoCentric System Studio)环境中进行DSP软件部分的验证功能。

CCSS中的DDK种类
在CCSS中所支持的DDK 种类如表1所示。
作者所用的DSP属于TI的C5XX系列,在此以TI的 TMS320C5XX DSP Develop Kit为例进行说明。
TMS320C5XX DDK由以下两部分组成:
ystem Studio TI TMS320C5XX Stream Driven Simulator model library
?TMS320C5XX simulator
在库中可以选择多种DSP输入输出的组合,有单输入单输出、单输入二输出等,根据原汇编代码选择相应的模块。所选模块的功能由装载到其内部的汇编代码程序决定。汇编代码是按照模块的input dataset定义的,并且可由用户进行配置。图1所示为DSP Simulator 与System Studio Stream Driven Simulator之间的关系。
System Studio Stream Driven Simulator可以从系统的层次化示意性描述中生成可执行的仿真驱动流。它包括一个仿真核(simulator kernel)和一套可装载的软件模块。仿真核本身并不执行任何数字信号处理功能,但是可以配合可装载软件模块的激活来完成信号处理任务。软件模块与仿真核之间通过标准的软件接口实现互连。
DSP Simulator作为System Studio Stream Driven Simulator的子系统,与仿真核在同一过程执行。在System Studio Stream Driven Simulator来看,DSP Simulator是一个C编写的基本模块,但是该模块的实现由DSP Simulator运行实际程序完成。


图1 DSP Simulator和System Studio Stream Driven Simulator的关系图



图2 环境变量设定


图3 仿真模块

CoCentric中进行流程
修改代码
在装载代码之前,要对代码进行一些修改,以满足联合仿真的要求。装载到TMS320C5XX Stream Driven Simulator model的汇编代码有特殊的结构,所需修改的汇编语言代码结构主要包括下面三个方面:
(1) Initialization Code Section:要以xxxInitBegin和xxxInitEnd作为初始化代码部分的界定符。
(2) Processing Section:要以xxxBegin和xxxEnd作为处理部分的界定符,其中xxx表示汇编代码段的名称。
(3) Data Transfer:为了在System Studio Stream Driven Simulator与TMS320C5XX sim5xx设置通讯的缓存,要开辟两块存储区。输入缓冲以xxxInVectorn开始,输出缓冲以xxxOutVectorn开始。System Studio Stream Driven Simulator必须知道每次汇编代码所消耗和产生的数据信息量,并在xxxLenInVectorn和xxxLenOutVectorn两个存储区加以体现。
生成可执行代码
在进行此步之前,必须保证环境变量指向TMS320C5XX编译器所在目录,可以在Options下的Environment Variables进行设定,如图2所示。
环境变量设置好之后,用下面两个命令编译源代码并装载目标代码:$TMS320C5xx/asm5000 -v50 name.asm和$TMS320C5xx/lnk500 name.cmd。其中name.asm代表汇编源代码程序;name.cmd为初始化sim500的command文件。
交互命令
当INTERACTIVE参数设定为1时,对应的TMS320C5XX模块以交互的形式进行仿真。

以汇编文件copy.asm为例说明仿真流程
程序说明
这个程序完成的功能是将四个数据由输入端拷贝到输出端。起始位置在copyInVector1的数据将被置于起始位置为copyOutVector1的存储区域。两个存储区域所要存储的数据个数在copyLenInVector1和copyLenOutVector1中定义。每次程序部分执行之前,4个数据由Stream Driven Simulator写入以copyInVector1为标志的起始位置,当代码执行完,可以从以copyOutVector1为起始标志的存储区读取数据。(汇编源程序见本刊网站www.eaw.com.cn)
选择模块
汇编源代码有一个输入和一个输出端口,选择tic5xx_1_1,可以满足要求。图3所示的是整个仿真模块。
配置模块
选中tic5xx_1_1模块,点右键出现模块配置对话框,将前面提到的参数interactive设置为1,下面定义余下的三个参数。
-tic5xx_load_file:指的是含有可执行代码的程序;
-tic5xx_init_file:指的是当sim500初始化时装载的程序;
-load_file_name:指明汇编代码的名称。
这个例子中三个文件分别为:copy.out ,copy.take,copy。
需要注意的是:file handling数据类型要设定为Explicit;file format数据类型要设定为ASCII_BL_EOR(Blank Line as End Of Record)。
生成可执行代码
在终端执行下面两条命令:
$TMS320C5xx/asm500 -v50 copy.asm
$TMS320C5xx/lnk500 copy.cmd
如果.out文件正确生成,则可以装载到模块中,进行在CCSS环境下的仿真。

结语
目前,已经实现了在CCSS中进行对DSP功能的验证,这种方法可以大大简化算法与实际DSP实现的验证过程。该方法使在同一环境下,对算法结果与DSP具体实现结果进行比较成为可能,并且很容易对各项测试指标进行测试和统计,是一种省时高效的仿真方法。■

参考文献
1 Synopsys.Inc. CoCentric System Studio Developer Kit Guide (Version 2000.11-CSS1, April 2001).
2 Synopsys.Inc. CoCentric System Studio DSP Developer Kits User Guide (Version 2000.11-CSS1, April 2001)



关键词: DDK DSP仿真

评论


技术专区

关闭