新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 一種在CCSS中與DSP進(jìn)行聯(lián)合仿真的方法

一種在CCSS中與DSP進(jìn)行聯(lián)合仿真的方法

作者:深圳中興通訊公司,梅曉艷,吳淑華 時間:2004-06-18 來源:電子設(shè)計應(yīng)用 收藏
摘 要: 本文主要介紹一種在仿真軟件CoCentric System Studio(CCSS)環(huán)境下運用DSP開發(fā)包()進(jìn)行DSP聯(lián)合仿真的方法。該方法可以將算法仿真結(jié)果與DSP的具體實現(xiàn)結(jié)果在同一環(huán)境下進(jìn)行測試、比較,降低了仿真與測試的復(fù)雜度,適用于含有DSP的系統(tǒng)仿真。
關(guān)鍵詞:

(DSP Developer Kits)作為Synopsys公司的仿真軟件CoCentric System Studio的一個組件,允許設(shè)計者開發(fā)、測試和分析系統(tǒng)設(shè)計中關(guān)于DSP部分的內(nèi)容。利用這個工具箱,可以實現(xiàn)在CCSS(CoCentric System Studio)環(huán)境中進(jìn)行DSP軟件部分的驗證功能。

CCSS中的DDK種類
在CCSS中所支持的DDK 種類如表1所示。
作者所用的DSP屬于TI的C5XX系列,在此以TI的 TMS320C5XX DSP Develop Kit為例進(jìn)行說明。
TMS320C5XX DDK由以下兩部分組成:
ystem Studio TI TMS320C5XX Stream Driven Simulator model library
?TMS320C5XX simulator
在庫中可以選擇多種DSP輸入輸出的組合,有單輸入單輸出、單輸入二輸出等,根據(jù)原匯編代碼選擇相應(yīng)的模塊。所選模塊的功能由裝載到其內(nèi)部的匯編代碼程序決定。匯編代碼是按照模塊的input dataset定義的,并且可由用戶進(jìn)行配置。圖1所示為DSP Simulator 與System Studio Stream Driven Simulator之間的關(guān)系。
System Studio Stream Driven Simulator可以從系統(tǒng)的層次化示意性描述中生成可執(zhí)行的仿真驅(qū)動流。它包括一個仿真核(simulator kernel)和一套可裝載的軟件模塊。仿真核本身并不執(zhí)行任何數(shù)字信號處理功能,但是可以配合可裝載軟件模塊的激活來完成信號處理任務(wù)。軟件模塊與仿真核之間通過標(biāo)準(zhǔn)的軟件接口實現(xiàn)互連。
DSP Simulator作為System Studio Stream Driven Simulator的子系統(tǒng),與仿真核在同一過程執(zhí)行。在System Studio Stream Driven Simulator來看,DSP Simulator是一個C編寫的基本模塊,但是該模塊的實現(xiàn)由DSP Simulator運行實際程序完成。


圖1 DSP Simulator和System Studio Stream Driven Simulator的關(guān)系圖



圖2 環(huán)境變量設(shè)定


圖3 仿真模塊

CoCentric中進(jìn)行流程
修改代碼
在裝載代碼之前,要對代碼進(jìn)行一些修改,以滿足聯(lián)合仿真的要求。裝載到TMS320C5XX Stream Driven Simulator model的匯編代碼有特殊的結(jié)構(gòu),所需修改的匯編語言代碼結(jié)構(gòu)主要包括下面三個方面:
(1) Initialization Code Section:要以xxxInitBegin和xxxInitEnd作為初始化代碼部分的界定符。
(2) Processing Section:要以xxxBegin和xxxEnd作為處理部分的界定符,其中xxx表示匯編代碼段的名稱。
(3) Data Transfer:為了在System Studio Stream Driven Simulator與TMS320C5XX sim5xx設(shè)置通訊的緩存,要開辟兩塊存儲區(qū)。輸入緩沖以xxxInVectorn開始,輸出緩沖以xxxOutVectorn開始。System Studio Stream Driven Simulator必須知道每次匯編代碼所消耗和產(chǎn)生的數(shù)據(jù)信息量,并在xxxLenInVectorn和xxxLenOutVectorn兩個存儲區(qū)加以體現(xiàn)。
生成可執(zhí)行代碼
在進(jìn)行此步之前,必須保證環(huán)境變量指向TMS320C5XX編譯器所在目錄,可以在Options下的Environment Variables進(jìn)行設(shè)定,如圖2所示。
環(huán)境變量設(shè)置好之后,用下面兩個命令編譯源代碼并裝載目標(biāo)代碼:$TMS320C5xx/asm5000 -v50 name.asm和$TMS320C5xx/lnk500 name.cmd。其中name.asm代表匯編源代碼程序;name.cmd為初始化sim500的command文件。
交互命令
當(dāng)INTERACTIVE參數(shù)設(shè)定為1時,對應(yīng)的TMS320C5XX模塊以交互的形式進(jìn)行仿真。

以匯編文件copy.asm為例說明仿真流程
程序說明
這個程序完成的功能是將四個數(shù)據(jù)由輸入端拷貝到輸出端。起始位置在copyInVector1的數(shù)據(jù)將被置于起始位置為copyOutVector1的存儲區(qū)域。兩個存儲區(qū)域所要存儲的數(shù)據(jù)個數(shù)在copyLenInVector1和copyLenOutVector1中定義。每次程序部分執(zhí)行之前,4個數(shù)據(jù)由Stream Driven Simulator寫入以copyInVector1為標(biāo)志的起始位置,當(dāng)代碼執(zhí)行完,可以從以copyOutVector1為起始標(biāo)志的存儲區(qū)讀取數(shù)據(jù)。(匯編源程序見本刊網(wǎng)站www.eaw.com.cn)
選擇模塊
匯編源代碼有一個輸入和一個輸出端口,選擇tic5xx_1_1,可以滿足要求。圖3所示的是整個仿真模塊。
配置模塊
選中tic5xx_1_1模塊,點右鍵出現(xiàn)模塊配置對話框,將前面提到的參數(shù)interactive設(shè)置為1,下面定義余下的三個參數(shù)。
-tic5xx_load_file:指的是含有可執(zhí)行代碼的程序;
-tic5xx_init_file:指的是當(dāng)sim500初始化時裝載的程序;
-load_file_name:指明匯編代碼的名稱。
這個例子中三個文件分別為:copy.out ,copy.take,copy。
需要注意的是:file handling數(shù)據(jù)類型要設(shè)定為Explicit;file format數(shù)據(jù)類型要設(shè)定為ASCII_BL_EOR(Blank Line as End Of Record)。
生成可執(zhí)行代碼
在終端執(zhí)行下面兩條命令:
$TMS320C5xx/asm500 -v50 copy.asm
$TMS320C5xx/lnk500 copy.cmd
如果.out文件正確生成,則可以裝載到模塊中,進(jìn)行在CCSS環(huán)境下的仿真。

結(jié)語
目前,已經(jīng)實現(xiàn)了在CCSS中進(jìn)行對DSP功能的驗證,這種方法可以大大簡化算法與實際DSP實現(xiàn)的驗證過程。該方法使在同一環(huán)境下,對算法結(jié)果與DSP具體實現(xiàn)結(jié)果進(jìn)行比較成為可能,并且很容易對各項測試指標(biāo)進(jìn)行測試和統(tǒng)計,是一種省時高效的仿真方法。■

參考文獻(xiàn)
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)



關(guān)鍵詞: DDK DSP仿真

評論


技術(shù)專區(qū)

關(guān)閉