專利名稱:仿真方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信領(lǐng)域,具體而言,涉及一種仿真方法及系統(tǒng)。
技術(shù)背景集成電^各或現(xiàn)場(chǎng)可編禾呈門陣列(Field Programable Gate Array , 簡稱為FPGA)都需要在驅(qū)動(dòng)和業(yè)務(wù)軟件的支持下才能實(shí)現(xiàn)其特定 功能,在芯片開發(fā)仿真階段,如何實(shí)現(xiàn)驅(qū)動(dòng)和業(yè)務(wù)軟件的配置管理 功能,決定了芯片仿真的充分性和完備性。目前,常規(guī)的做法是在功能開發(fā)階段,采用寄存器傳輸語言 (Register Transfer Language,筒稱為RTL )或SYSTEMC描述語言 編寫程序,才莫擬驅(qū)動(dòng)和業(yè)務(wù)軟件功能,完成對(duì)芯片的初始化、配置 和管理,完成芯片的功能仿真和驗(yàn)證。在硬件調(diào)試階段,在目標(biāo)軟 件環(huán)境實(shí)現(xiàn)真實(shí)的驅(qū)動(dòng)和業(yè)務(wù)專欠件。該方法可以滿足功能不多、配置管理相對(duì)簡單的芯片仿真需求。 但是,對(duì)于大規(guī)模和功能復(fù)雜芯片,用RTL實(shí)現(xiàn)與實(shí)際功能一致的 業(yè)務(wù)軟件的工作是一項(xiàng)龐大的工作,在轉(zhuǎn)換成實(shí)際驅(qū)動(dòng)和業(yè)務(wù)軟件 過程中,會(huì)再次消耗大量工作量。模擬程序和實(shí)際軟件之間的微小 差異,將導(dǎo)致硬件調(diào)試時(shí)遇到的問題無法在仿真環(huán)境中的再現(xiàn)。同 時(shí)真實(shí)驅(qū)動(dòng)軟件的開發(fā)需要在硬件階段才能完成,導(dǎo)致開發(fā)周期的 延長。目前,在芯片仿真階段,相關(guān)技術(shù)中缺少完整的跨平臺(tái)軟硬件十辦同開發(fā)方法。
發(fā)明內(nèi)容
針對(duì)相關(guān)技術(shù)中的在芯片開發(fā)仿真階段中工作量大、調(diào)試復(fù)雜、開發(fā)周期長的問題而提出本發(fā)明,為此,本發(fā)明的主要目的在于提供一種仿真方案,以解決上述問題至少之一。
為了實(shí)現(xiàn)上述目的, 一艮據(jù)本發(fā)明的一個(gè)方面,才是供了一種仿真方法。
根據(jù)本發(fā)明的仿真方法,用于硬件設(shè)備驅(qū)動(dòng)和/或業(yè)務(wù)軟件的開
發(fā),包括設(shè)置硬件接口抽象模塊,硬件接口抽象模塊用于為硬件設(shè)備驅(qū)動(dòng)和/或業(yè)務(wù)軟件提供真實(shí)的訪問接口 ;設(shè)置中央處理器CPU接口抽象模塊,CPU接口抽象模塊用于與芯片仿真模型連接,產(chǎn)生符合芯片仿真模型的時(shí)序;硬件接口抽象模塊與CPU接口抽象模塊進(jìn)行報(bào)文交互。
優(yōu)選地,硬件接口抽象模塊與CPU接口抽象模塊通過虛擬總線連接,并通過虛擬總線進(jìn)行報(bào)文交互。
優(yōu)選地,硬件接口抽象模塊與CPU接口抽象模塊通過虛擬總線連接并進(jìn)行交互包括硬件接口抽象模塊與CPU接口抽象模塊通過通訊協(xié)議連接,硬件接口抽象模塊和CPU接口抽象模塊之間交互的數(shù)據(jù)被封裝成通訊協(xié)議所要求的格式的數(shù)據(jù)包。
優(yōu)選地,硬件接口抽象模塊與CPU接口抽象模塊通過虛擬總線進(jìn)行交互包括硬件接口抽象模塊接收來自硬件設(shè)備驅(qū)動(dòng)的讀/寫命令,并將根據(jù)以下至少之一產(chǎn)生讀/寫命令的數(shù)據(jù)包讀/寫命令的地
6址、讀/寫命令對(duì)應(yīng)的數(shù)據(jù)的長度、讀/寫命令對(duì)應(yīng)的數(shù)據(jù)的類型;硬件接口抽象模塊通過虛擬總線向CPU接口抽象模塊發(fā)送數(shù)據(jù)包。
優(yōu)選地,硬件接口抽象模塊與CPU接口抽象模塊通過虛擬總線進(jìn)行交互包括在硬件接口抽象模塊接收來自硬件設(shè)備驅(qū)動(dòng)的寫命令時(shí),硬件接口抽象模塊將寫命令對(duì)應(yīng)的待寫的數(shù)據(jù)封裝成數(shù)據(jù)包,并通過虛擬總線發(fā)送給CPU接口抽象模塊。
優(yōu)選地,石更件4妄口抽象4莫塊與CPU 4妄口抽象才莫塊通過虛擬總線進(jìn)行交互包括硬件接口抽象模塊通過虛擬總線獲取來自CPU接口抽象才莫塊的消息,其中,當(dāng)消息為讀返回命令時(shí),則結(jié)束石更件i殳備驅(qū)動(dòng)的讀i青求,并返回讀請(qǐng)求所對(duì)應(yīng)的翁:據(jù);當(dāng)命令為來自外部i殳備的讀命令時(shí),則直一妄發(fā)起直4妄存儲(chǔ)寄存器訪問DMA讀取4喿作,在讀取到讀命令對(duì)應(yīng)的數(shù)據(jù)后,向外部設(shè)備返回讀取到的數(shù)據(jù);當(dāng)命令為來自外部設(shè)備的寫命令時(shí),則直接發(fā)起DMA寫操作,將寫命令對(duì)應(yīng)的數(shù)據(jù)寫入內(nèi)存。
優(yōu)選地,通訊協(xié)議包括傳輸控制協(xié)議。
為了實(shí)現(xiàn)上述目的,才艮據(jù)本發(fā)明的另一方面, -提供了一種仿真系統(tǒng)。
根據(jù)本發(fā)明的仿真系統(tǒng),用于硬件設(shè)備驅(qū)動(dòng)和/或業(yè)務(wù)軟件的開發(fā)包括硬件接口抽象模塊,用于為硬件設(shè)備驅(qū)動(dòng)和/或業(yè)務(wù)軟件提供真實(shí)的訪問接口; CPU接口抽象模塊,與芯片仿真模型連接,用于產(chǎn)生符合芯片仿真模型的時(shí)序;硬件接口抽象模塊與CPU接口抽象^t塊進(jìn)行報(bào)文交互。
優(yōu)選地,上述系統(tǒng)還包括虛擬總線,用于連接硬件4妄口抽象模塊與CPU接口抽象模塊,并在硬件接口抽象模塊和CPU接口抽象模塊之間進(jìn)行報(bào)文交互。優(yōu)選地,虛擬總線具體用于通過通訊協(xié)議連接硬件接口抽象模
塊與CPU 4妄口抽象才莫塊,并將硬件接口抽象才莫塊和CPU接口抽象
模塊之間交互的數(shù)據(jù)封裝成通訊協(xié)議所要求的格式的數(shù)據(jù)包。
通過本發(fā)明,采用設(shè)置向上層提供硬件操作設(shè)置硬件接口抽象模塊、硬件抽象接口模塊和連接至硬件接口抽象模塊的芯片仿真模型,解決了相關(guān)技術(shù)中的在芯片開發(fā)仿真階段中工作量大、調(diào)試復(fù)雜、開發(fā)周期長的問題,4吏驅(qū)動(dòng)和業(yè)務(wù)軟件可以無縫移植到實(shí)際的軟硬件環(huán)境,實(shí)現(xiàn)并行開發(fā),進(jìn)而加快了項(xiàng)目開發(fā)進(jìn)度。
此處所說明的附圖用來^是供對(duì)本發(fā)明的進(jìn)一步理解,構(gòu)成本申請(qǐng)的一部分,本發(fā)明的示意性實(shí)施例及其說明用于解釋本發(fā)明,并
不構(gòu)成對(duì)本發(fā)明的不當(dāng)限定。在附圖中
圖1是才艮據(jù)本發(fā)明實(shí)施例的仿真方法的流程圖2是根據(jù)本發(fā)明實(shí)施例的仿真方法中模塊的示意圖一;
圖3是根據(jù)本發(fā)明實(shí)施例的仿真方法中模塊的示意圖二;
示意圖5是根據(jù)本發(fā)明實(shí)施例的硬件接口抽象模塊處理驅(qū)動(dòng)硬件操作的功能流程圖6是根據(jù)本發(fā)明實(shí)施例的硬件接口抽象模塊和虛擬總線之間消息的處理流^f呈圖;圖7是根據(jù)本發(fā)明實(shí)施例的硬件接口抽象模塊處理虛擬總線報(bào)文消息的流程圖8是根據(jù)本發(fā)明實(shí)施例的硬件接口抽象模塊處理片上總線或芯片外部總線直接存儲(chǔ)寄存器訪問操作請(qǐng)求和中斷處理的流程圖9是4艮據(jù)本發(fā)明實(shí)施例的仿真系統(tǒng)的結(jié)構(gòu)框圖。
具體實(shí)施例方式
功能相克述
相關(guān)技術(shù)中的在芯片開發(fā)仿真階段中工作量大、調(diào)試復(fù)雜、開發(fā)周期長的問題,本發(fā)明實(shí)施例4是供了一種仿真方案,通過該方案在仿真才莫型和軟件環(huán)境之間建立通信,將軟件對(duì)石更件訪問需求傳輸
到仿真平臺(tái)中由模型來完成,同時(shí)模型執(zhí)行的結(jié)果和模型產(chǎn)生的中斷消息以及才莫型的直4妄存4渚寄存器訪問(Directory Memory Access ,簡稱為DMA):燥作傳替給軟件環(huán)境。虛擬總線屏蔽了硬件的實(shí)現(xiàn)細(xì)節(jié),l是供一個(gè)真實(shí)的石更件環(huán)境給軟件,實(shí)現(xiàn)虛擬和真實(shí)環(huán)境的統(tǒng)一。該方案的處理原則如下設(shè)置硬件接口抽象模塊,硬件接口抽象模塊用于為硬件設(shè)備驅(qū)動(dòng)和/或業(yè)務(wù)軟件提供真實(shí)的訪問接口 ;設(shè)置中央處理器CPU接口抽象模塊,CPU接口抽象模塊用于與芯片仿真模型連接,產(chǎn)生符合芯片仿真模型的時(shí)序;硬件接口抽象模塊與CPU接口抽象模塊進(jìn)行報(bào)文交互。
需要說明的是,在不沖突的情況下,本申請(qǐng)中的實(shí)施例及實(shí)施例中的特征可以相互組合。下面將參考附圖并結(jié)合實(shí)施例來詳細(xì)說明本發(fā)明。
在以下實(shí)施例中,在附圖的;克禾呈圖示出的步驟可以在i者如一組計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)系統(tǒng)中執(zhí)行,并且,雖然在流程圖中示出了邏輯順序,^f旦是在某些情況下,可以以不同于此處的順序沖丸行所示出或描述的步驟。
方法實(shí)施例
根據(jù)本發(fā)明的實(shí)施例,提供了一種仿真方法,用于硬件設(shè)備驅(qū)動(dòng)和/或業(yè)務(wù)軟件的開發(fā),圖1是根據(jù)本發(fā)明實(shí)施例的仿真方法的流
程圖,如圖1所示,該流程包括如下步驟S102至步驟S106:
步驟S102,設(shè)置硬件接口抽象模塊,硬件接口抽象模塊用于為硬件設(shè)備驅(qū)動(dòng)和/或業(yè)務(wù)軟件提供真實(shí)的訪問接口 ;
步驟S104,設(shè)置中央處理器CPU接口抽象模塊,CPU接口抽象模塊用于與芯片仿真模型連接,產(chǎn)生符合芯片仿真模型的時(shí)序;
步驟S106,硬件4妄口抽象才莫塊與CPU 4妄口抽象才莫塊進(jìn)行凈艮文交互。
在步驟S106中,硬件接口抽象模塊與CPU接口抽象模塊通過虛擬總線連接,并通過虛擬總線進(jìn)行報(bào)文交互。
硬件接口抽象模塊與CPU接口抽象模塊通過通訊協(xié)議連接,硬件接口抽象模塊和CPU接口抽象模塊之間交互的數(shù)據(jù)被封裝成通訊協(xié)議所要求的格式的數(shù)據(jù)包,下面從以下幾個(gè)方面對(duì)此進(jìn)行詳細(xì)的描述。
方面 一 ,硬件接口抽象模塊接收來自硬件設(shè)備驅(qū)動(dòng)的讀/寫命令,并將根據(jù)以下至少之一產(chǎn)生讀/寫命令的數(shù)據(jù)包讀/寫命令的地址、讀/寫命令對(duì)應(yīng)的數(shù)據(jù)的長度、讀/寫命令對(duì)應(yīng)的數(shù)據(jù)的類型;硬件接口抽象模塊通過虛擬總線向CPU接口抽象模塊發(fā)送數(shù)據(jù)包。
10方面二 ,在硬件接口抽象模塊接收來自硬件設(shè)備驅(qū)動(dòng)的寫命令時(shí),硬件接口抽象模塊將寫命令對(duì)應(yīng)的待寫的數(shù)據(jù)封裝成數(shù)據(jù)包,
并通過虛擬總線發(fā)送給CPU接口抽象模塊。
方面三,硬件4妄口抽象才莫塊通過虛擬總線獲取來自CPU 4妄口抽
象才莫塊的消息,其中,當(dāng)消息為讀返回命令時(shí),則結(jié)束硬件設(shè)備驅(qū)
動(dòng)的讀請(qǐng)求,并返回讀請(qǐng)求所對(duì)應(yīng)的數(shù)據(jù);當(dāng)命令為來自外部設(shè)備的讀命令時(shí),則直接發(fā)起直接存儲(chǔ)寄存器訪問DMA讀取操作,在讀取到讀命令對(duì)應(yīng)的數(shù)據(jù)后,返回外部設(shè)備的讀操作;當(dāng)上述命令為來自外部設(shè)備的寫命令時(shí),則直接發(fā)起DMA寫操作,將寫命令對(duì)應(yīng)的凄史據(jù)寫入內(nèi)存。
優(yōu)選地,通訊協(xié)議包括傳輸控制協(xié)議。
下面乂人四個(gè)方面7于本實(shí)施例進(jìn)4于詳細(xì)的i兌明。
方面一
在目標(biāo)軟件(即,業(yè)務(wù)軟件)環(huán)境底層實(shí)現(xiàn)一個(gè)硬件接口抽象模塊,該硬件接口抽象一莫塊對(duì)上層驅(qū)動(dòng)(即,硬件設(shè)備驅(qū)動(dòng))和業(yè)務(wù)軟件4是供基本的石更件l喿作,其中,硬件才喿作可以包括^f旦不限于對(duì)硬件寄存器讀寫訪問、系統(tǒng)內(nèi)存和目標(biāo)期間的塊數(shù)據(jù)拷貝、響應(yīng)硬件中斷功能等,該模塊用于將硬件操作封裝成和目標(biāo)軟件系統(tǒng)一致的系統(tǒng)調(diào)用,以便上層的硬件設(shè)備驅(qū)動(dòng)和/或業(yè)務(wù)軟件進(jìn)行調(diào)用。而在實(shí)際硬件環(huán)境中,該硬件接口抽象模塊被實(shí)際硬件提供的硬件操作代替,實(shí)際的硬件接口為PCI或者LOCAL BUS,因此,只需要開發(fā)接口的驅(qū)動(dòng),位于基本硬件操作之上的驅(qū)動(dòng)和業(yè)務(wù)軟件無需j奮改可以直4妄4吏用。方面二
在本實(shí)施例中還涉及到一個(gè)和芯片仿真模型連接的CPU接口 抽象模塊。該CPU接口抽象模塊連接到芯片內(nèi)部片上總線或者直接 連接到芯片的外部CPU接口總線,實(shí)現(xiàn)對(duì)內(nèi)部設(shè)備的訪問和控制。 屏蔽掉CPU側(cè)接口硬件細(xì)節(jié),直接連接到軟件開發(fā)環(huán)境。
方面三
在實(shí)際的開發(fā)中,常用的才喿作系統(tǒng)平臺(tái)有vxworks, linux, windows mobile系統(tǒng)等,常用的才莫型<方真淬欠件有Modelsim, Ncsim, SystemC等。因此,各種仿真平臺(tái)需要在不同的才乘作系統(tǒng)環(huán)境運(yùn)4亍, 例如Windows, Linux等??梢圆捎肨CP協(xié)議實(shí)現(xiàn)3爭平臺(tái)通信,但 是不仫 f又限于此通信協(xié)議,例如,如果仿真和軟件環(huán)境在同一臺(tái)計(jì) 算機(jī)上運(yùn)行,也可以采用共享存貯器方式實(shí)現(xiàn)進(jìn)程間通信,或者在 通信要求較高的場(chǎng)合,采用專用硬件來實(shí)現(xiàn)跨平臺(tái)間通信。
方面四
在硬件接口抽象模塊和CPU接口抽象模塊之間可以采用通信 協(xié)議進(jìn)行通訊,該通信協(xié)議把硬件接口抽象模塊的基本硬件操作封 裝成數(shù)據(jù)包傳輸給芯片仿真平臺(tái)的CPU接口抽象模塊,交給仿真模 型執(zhí)行。需要返回給軟件平臺(tái)的數(shù)據(jù)由CPU接口抽象模塊封裝成包
后再傳輸給硬件接口抽象模塊,通過基本硬件抽象接口模塊傳輸給 軟件。模型的中斷信號(hào)狀態(tài)也封裝成數(shù)據(jù)包傳輸給硬件接口抽象才莫 塊,交給中斷服務(wù)程序執(zhí)行。
下面將結(jié)合附圖和實(shí)施例對(duì)本發(fā)明進(jìn)行詳細(xì)描述。
圖2是根據(jù)本發(fā)明實(shí)施例的仿真方法中模塊的示意圖一,如圖 2所示,包括業(yè)務(wù)軟件101,硬件設(shè)備驅(qū)動(dòng)程序102 (即,硬件設(shè)備驅(qū)動(dòng)),硬件接口抽象模塊103, CPU接口抽象模塊104,虛擬總 線105,芯片外部總線106和芯片仿真環(huán)境107。
圖3是根據(jù)本發(fā)明實(shí)施例的仿真方法中模塊的示意圖二,如圖 3所示,包括業(yè)務(wù)軟件IOI,硬件設(shè)備驅(qū)動(dòng)程序102,硬件接口抽 象模塊103, CPU接口抽象模塊104,虛擬總線105,芯片片上總線 106和芯片仿真環(huán)境107,與圖2不同的是,在圖3中CPU接口抽 象模塊直接和內(nèi)部總線相連。下面基于圖2和圖3對(duì)本實(shí)施例進(jìn)行 說明。
圖2和圖3中的業(yè)務(wù)軟件IOI是實(shí)現(xiàn)芯片功能對(duì)應(yīng)的應(yīng)用軟件, 其功能實(shí)現(xiàn)構(gòu)建在硬件設(shè)備驅(qū)動(dòng)程序102的基礎(chǔ)上。硬件設(shè)備驅(qū)動(dòng) 程序102封裝了;更件的實(shí)現(xiàn)細(xì)節(jié),將不同的硬件實(shí)現(xiàn)封裝成統(tǒng)一的 接口。硬件設(shè)備驅(qū)動(dòng)程序102調(diào)用基本硬件操作來實(shí)現(xiàn)對(duì)硬件的控 制和訪問。對(duì)新開發(fā)的芯片,需要重新開發(fā)全部硬件設(shè)備驅(qū)動(dòng)程序 102和部分業(yè)務(wù)庫t件101.
圖2和圖3中的硬件接口抽象模塊用于硬件驅(qū)動(dòng)和仿真模型間 的通信。對(duì)驅(qū)動(dòng)側(cè),該接口模擬實(shí)際的硬件行為,提供硬件操作接 口 ,并采用虛擬總線105和芯片仿真環(huán)境107連接,如果是實(shí)際的 單板,則釆用實(shí)際總線連接到芯片。
CPU接口抽象模塊104接收來自虛擬總線105的報(bào)文,并產(chǎn)生 符合芯片接口要求的時(shí)序,從而實(shí)現(xiàn)對(duì)芯片外部或內(nèi)部總線106的 訪問。
其中,虛擬總線105是某種跨平臺(tái)的通信手段,其命令和數(shù)據(jù) 采用封包的方式傳輸,圖4是才艮據(jù)本發(fā)明實(shí)施例的虛擬總線上的數(shù) 據(jù)報(bào)文組成結(jié)構(gòu)的示意圖,如圖4所示,硬件操作被轉(zhuǎn)換成報(bào)文頭 和可選的數(shù)據(jù)部分,報(bào)文頭包括一個(gè)報(bào)文類型,例如,寫命令、讀命令、讀返回命令、中斷狀態(tài)更新命令等。對(duì)于寫命令和讀返回命 令,后面需要有相應(yīng)的數(shù)據(jù)部分,其長度由報(bào)文頭中的長度字段決 定。另外定義了一個(gè)起始地址字段。但是,實(shí)際實(shí)現(xiàn)時(shí)根據(jù)硬件支 持的命令會(huì)有所增減。
CPU接口抽象模塊104和硬件接口抽象模塊103需要根據(jù)硬 件、軟件的要求產(chǎn)生相應(yīng)的命令及數(shù)據(jù),并對(duì)返回的數(shù)據(jù)進(jìn)行處理。 下面結(jié)合圖5至圖8對(duì)進(jìn)行詳細(xì)的說明。
圖5是根據(jù)本發(fā)明實(shí)施例的硬件接口抽象模塊處理驅(qū)動(dòng)硬件操 作的功能流程圖,如圖5所示,硬件接口抽象模塊103如果接收到 來自硬件設(shè)備驅(qū)動(dòng)(即,驅(qū)動(dòng)層)的讀寫命令,會(huì)根據(jù)讀寫命令的 地址,數(shù)據(jù)長度及類型產(chǎn)生對(duì)應(yīng)的4艮文頭并通過虛擬總線發(fā)送給 CPU接口抽象才莫塊104,如果是寫命令,再把待寫的數(shù)據(jù)也通過虛 擬總線105發(fā)送給CPU接口抽象模塊104。
圖6是根據(jù)本發(fā)明實(shí)施例的硬件接口抽象模塊和虛擬總線之間 消息的處理流程圖,如圖6所示,硬件接口抽象模塊103也不斷的 監(jiān)測(cè)來自虛擬總線的消息報(bào)文。如果是讀返回命令,則結(jié)束驅(qū)動(dòng)層 的都請(qǐng)求,返回?cái)?shù)據(jù);如果是來自外部設(shè)備(外設(shè))的讀寫命令, 則直接發(fā)起DMA操作,對(duì)寫操作直接把數(shù)據(jù)寫入指定內(nèi)存,對(duì)讀 操作則從內(nèi)存取數(shù)據(jù),結(jié)束外設(shè)讀操作。如果來自外設(shè)的是中斷狀 態(tài)切換,則根據(jù)中斷信號(hào)狀態(tài)決定是否執(zhí)行驅(qū)動(dòng)程序的中斷服務(wù)程 序。
圖7是根據(jù)本發(fā)明實(shí)施例的硬件接口抽象模塊處理虛擬總線報(bào) 文消息的流程圖,圖8是根據(jù)本發(fā)明實(shí)施例的硬件接口抽象模塊處 理片上總線或芯片外部總線DMA才喿作i青求和中斷處理的流程圖, 如圖7和圖8所示,CPU接口抽象模塊功能和硬件接口功能基本相 似,對(duì)于相同的在此不再贅述,不同的在于,CPU接口模塊只會(huì)產(chǎn)生中斷狀態(tài)更新命令,而硬件接口抽象模塊只會(huì)響應(yīng)中斷請(qǐng)求。硬
件接口抽象模塊對(duì)驅(qū)動(dòng)軟件提供接口 ,沒有時(shí)序,而CPU接口抽象
模塊需要和芯片接口模型通信,其接口時(shí)序必須滿足設(shè)計(jì)要求。
綜上所述,由圖2和圖3可見,如果采用真實(shí)的硬件單板調(diào)試 軟件,只需要用硬件接口驅(qū)動(dòng)程序代替硬件接口抽象模塊,而其他 軟件模塊完全相同。因此,通過本實(shí)施例可以實(shí)現(xiàn)基于仿真模型基 礎(chǔ)上的驅(qū)動(dòng)和業(yè)務(wù)軟件開發(fā),移植到實(shí)際硬件系統(tǒng)中時(shí)只需要增加 實(shí)際石更件4妄口的驅(qū)動(dòng),而石更件驅(qū)動(dòng)和業(yè)務(wù)軟件可以無縫移才直。
系鄉(xiāng)克實(shí)施例
根據(jù)本發(fā)明的實(shí)施例,提供了一種仿真系統(tǒng),用于硬件設(shè)備驅(qū) 動(dòng)和/或業(yè)務(wù)軟件的開發(fā),圖9是根據(jù)本發(fā)明實(shí)施例的仿真系統(tǒng)的結(jié) 構(gòu)框圖,如圖9所示,該系統(tǒng)包括硬件接口抽象模塊92、 CPU接 口抽象沖莫塊94,下面對(duì)該系統(tǒng)進(jìn)行詳細(xì)的描述。
硬件接口抽象才莫塊92,用于為硬件設(shè)備驅(qū)動(dòng)和/或業(yè)務(wù)軟件提 供真實(shí)的訪問接口; CPU接口抽象模塊94,與芯片仿真模型連接, 用于產(chǎn)生符合芯片仿真模型的時(shí)序;硬件接口抽象模塊與CPU接口 抽象纟莫塊進(jìn)行^艮文交互。
如圖8所示,該系統(tǒng)還包^"虛擬總線,該虛擬總線用于連4妄石更 件接口抽象模塊與CPU接口抽象模塊,并在硬件接口抽象模塊和 CPU接口抽象才莫塊之間進(jìn)行報(bào)文交互。
虛擬總線具體用于通過通訊協(xié)議連4妄 >硬件4妄口抽象才莫塊與 CPU接口抽象模塊,并將硬件接口抽象模塊和CPU接口抽象模塊 之間交互的數(shù)據(jù)封裝成通訊協(xié)議所要求的格式的數(shù)據(jù)包。綜上所述,通過本發(fā)明的上述實(shí)施例,可以實(shí)現(xiàn)基于模型的驅(qū)
動(dòng)和業(yè)務(wù)軟件的開發(fā),方《更芯片功能的仿真和調(diào)試;同時(shí),開發(fā)的 石更件驅(qū)動(dòng)和業(yè)務(wù)4欠件可以無縫移才直到實(shí)際的4欠石更件環(huán)境中,,人而實(shí) 現(xiàn)了并行開發(fā),加快了項(xiàng)目開發(fā)進(jìn)度。
顯然,本領(lǐng)域的技術(shù)人員應(yīng)該明白,上述的本發(fā)明的各模塊或 各步驟可以用通用的計(jì)算裝置來實(shí)現(xiàn),它們可以集中在單個(gè)的計(jì)算 裝置上,或者分布在多個(gè)計(jì)算裝置所組成的網(wǎng)絡(luò)上,可選地,它們 可以用計(jì)算裝置可執(zhí)行的程序代碼來實(shí)現(xiàn),從而,可以將它們存儲(chǔ)
在存儲(chǔ)裝置中由計(jì)算裝置來執(zhí)行,或者將它們分別制作成各個(gè)集成 電路模塊,或者將它們中的多個(gè)模塊或步驟制作成單個(gè)集成電路模 塊來實(shí)現(xiàn)。這樣,本發(fā)明不限制于任何特定的硬件和軟件結(jié)合。
以上所述〗又為本發(fā)明的優(yōu)選實(shí)施例而已,并不用于限制本發(fā)明, 》寸于本4頁i或的才支術(shù)人員來i兌,本發(fā)明可以有各種更改和變"i匕。凡在 本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等, 均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種仿真方法,用于硬件設(shè)備驅(qū)動(dòng)和/或業(yè)務(wù)軟件的開發(fā),其特征在于,包括設(shè)置硬件接口抽象模塊,所述硬件接口抽象模塊用于為硬件設(shè)備驅(qū)動(dòng)和/或業(yè)務(wù)軟件提供真實(shí)的訪問接口;設(shè)置中央處理器CPU接口抽象模塊,所述CPU接口抽象模塊用于與芯片仿真模型連接,產(chǎn)生符合所述芯片仿真模型的時(shí)序;所述硬件接口抽象模塊與CPU接口抽象模塊進(jìn)行報(bào)文交互。
2. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述硬件接口抽象 模塊與所述CPU接口抽象模塊通過虛擬總線連接,并通過所述虛擬總線進(jìn)4于4良文交互。
3. 根據(jù)權(quán)利要求2所述的方法,其特征在于,所述硬件接口抽象 模塊與所述CPU接口抽象模塊通過所述虛擬總線連接并進(jìn)行 交互包括所述石更件4妄口抽象沖莫塊與所述CPU 4妄口抽象才莫塊通過通 訊協(xié)議連接,所述硬件接口抽象模塊和所述CPU接口抽象模 塊之間交互的數(shù)據(jù)被封裝成所述通訊協(xié)議所要求的格式的數(shù) 據(jù)包。
4. 根據(jù)權(quán)利要求2所述的方法,其特征在于,所述硬件接口抽象 才莫塊與所述CPU接口抽象模塊通過所述虛擬總線進(jìn)行交互包 括所述硬件接口抽象模塊接收來自所述硬件設(shè)備驅(qū)動(dòng)的讀/ 寫命令,并將根據(jù)以下至少之一產(chǎn)生所述讀/寫命令的數(shù)據(jù)包 所述讀/寫命令的地址、所述讀/寫命令對(duì)應(yīng)的ft據(jù)的長度、所 述讀/寫命令對(duì)應(yīng)的數(shù)據(jù)的類型;所述硬件接口抽象一莫塊通過所述虛擬總線向所述CPU接 口抽象模塊發(fā)送所述數(shù)據(jù)包。
5. 根據(jù)權(quán)利要求2所述的方法,其特征在于,所述硬件接口抽象 模塊與所述CPU接口抽象模塊通過所述虛擬總線進(jìn)行交互包 括在所述硬件接口抽象模塊接收來自所述硬件設(shè)備驅(qū)動(dòng)的 寫命令時(shí),所述硬件接口抽象模塊將所述寫命令對(duì)應(yīng)的待寫的 數(shù)據(jù)封裝成數(shù)據(jù)包,并通過所述虛擬總線發(fā)送給所述CPU接 口抽象模塊。
6. 根據(jù)權(quán)利要求2所述的方法,其特征在于,所述硬件接口抽象 模塊與所述CPU接口抽象模塊通過所述虛擬總線進(jìn)行交互包 括所述硬件接口抽象模塊通過所述虛擬總線獲取來自所述 CPU接口抽象模塊的消息,其中,當(dāng)所述消息為讀返回命令時(shí),則結(jié)束所述硬件設(shè)備驅(qū)動(dòng)的 讀請(qǐng)求,并返回所述讀請(qǐng)求所對(duì)應(yīng)的數(shù)據(jù);當(dāng)所述命令為來自外部設(shè)備的讀命令時(shí),則直接發(fā)起直接 存4諸寄存器"i方問DMA讀耳又」燥作,在讀取到所述讀命令對(duì)應(yīng)的 數(shù)據(jù)后,向所述外部設(shè)備返回所述讀取到的數(shù)據(jù);當(dāng)所述命令為來自所述外部設(shè)備的寫命令時(shí),則直接發(fā)起DMA寫操作,將所述寫命令對(duì)應(yīng)的數(shù)據(jù)寫入內(nèi)存。
7. 才艮據(jù)4又利要求3所述的方法,其特4正在于,所述通訊協(xié)i義包4舌 傳輸控制協(xié)議。
8. —種仿真系統(tǒng),用于硬件設(shè)備驅(qū)動(dòng)和/或業(yè)務(wù)軟件的開發(fā),其 特征在于,包4舌硬件接口抽象模塊,用于為硬件設(shè)備驅(qū)動(dòng)和/或業(yè)務(wù)軟件 提供真實(shí)的訪問接口;CPU接口抽象模塊,與芯片仿真模型連接,用于產(chǎn)生符 合所述芯片仿真模型的時(shí)序;所述硬件4妾口抽象沖莫塊與CPU才秦口抽象沖莫塊進(jìn)行纟艮文交互。
9. 根據(jù)權(quán)利要求8所述的系統(tǒng),其特征在于,還包括虛擬總線,用于連接所述硬件接口抽象模塊與所述CPU 接口抽象模塊,并在所述硬件接口抽象模塊和所述CPU接口 抽象模塊之間進(jìn)行報(bào)文交互。
10. 根據(jù)權(quán)利要求9所述的系統(tǒng),其特征在于,所述虛擬總線具體 用于通過通訊協(xié)議連接所述硬件接口抽象模塊與所述CPU接 口抽象模塊,并將所述硬件接口抽象模塊和所述CPU接口抽 象模塊之間交互的數(shù)據(jù)封裝成所述通訊協(xié)議所要求的格式的 數(shù)據(jù)包。
全文摘要
本發(fā)明公開了一種仿真方法及系統(tǒng),該方法用于硬件設(shè)備驅(qū)動(dòng)和/或業(yè)務(wù)軟件的開發(fā),包括設(shè)置硬件接口抽象模塊,硬件接口抽象模塊用于為硬件設(shè)備驅(qū)動(dòng)和/或業(yè)務(wù)軟件提供真實(shí)的訪問接口;設(shè)置中央處理器CPU接口抽象模塊,CPU接口抽象模塊用于與芯片仿真模型連接,產(chǎn)生符合芯片仿真模型的時(shí)序;硬件接口抽象模塊與CPU接口抽象模塊進(jìn)行報(bào)文交互。通過本發(fā)明使驅(qū)動(dòng)和業(yè)務(wù)軟件可以無縫移植到實(shí)際的軟硬件環(huán)境,實(shí)現(xiàn)并行開發(fā),進(jìn)而加快了項(xiàng)目開發(fā)進(jìn)度。
文檔編號(hào)G06F17/50GK101630343SQ20091016618
公開日2010年1月20日 申請(qǐng)日期2009年8月18日 優(yōu)先權(quán)日2009年8月18日
發(fā)明者劉衡祁, 彧 李, 王志忠, 繆眾林 申請(qǐng)人:中興通訊股份有限公司