當(dāng)前位置:首頁(yè) > 測(cè)試測(cè)量 > 測(cè)試測(cè)量
[導(dǎo)讀]傳統(tǒng)的測(cè)試平臺(tái)實(shí)現(xiàn)只能按順序設(shè)置工作參數(shù),無(wú)法動(dòng)態(tài)響應(yīng)被測(cè)設(shè)備的要求。因此這種測(cè)試方法會(huì)遺漏軟件和硬件之間的某些復(fù)雜時(shí)序交互。隨著FPGA功能的逐漸強(qiáng)大,軟件和FPGA之間的交互信息量也在不斷增加。本文討論的

傳統(tǒng)的測(cè)試平臺(tái)實(shí)現(xiàn)只能按順序設(shè)置工作參數(shù),無(wú)法動(dòng)態(tài)響應(yīng)被測(cè)設(shè)備的要求。因此這種測(cè)試方法會(huì)遺漏軟件和硬件之間的某些復(fù)雜時(shí)序交互。隨著FPGA功能的逐漸強(qiáng)大,軟件和FPGA之間的交互信息量也在不斷增加。本文討論的以消息驅(qū)動(dòng)的測(cè)試平臺(tái)能夠模擬FPGA實(shí)際運(yùn)行環(huán)境對(duì)FPGA進(jìn)行仿真測(cè)試。該方法除了能為測(cè)試平臺(tái)所要求的物理接口模型建模外,還能對(duì)控制FPGA的部分軟件進(jìn)行建模。因此允許人們?cè)跍y(cè)試平臺(tái)和FPGA之間建立動(dòng)態(tài)交互渠道,從而改善FPGA的測(cè)試覆蓋率。

測(cè)試平臺(tái)應(yīng)該真實(shí)反映FPGA在實(shí)際硬件環(huán)境中的工作狀況。以前也經(jīng)常出現(xiàn)仿真通過(guò)了但在實(shí)際在線使用時(shí)FPGA出故障的情況。

有時(shí)很容易找出故障原因,有時(shí)則很難。一旦找到問(wèn)題的癥結(jié)我們會(huì)捫心自問(wèn):“為什么不早點(diǎn)發(fā)現(xiàn)這個(gè)問(wèn)題呢?”很多時(shí)候這些問(wèn)題發(fā)生在軟件和硬件之間的灰色區(qū)域。在仿真FPGA時(shí)我們應(yīng)該在何處下手呢?如果我們忽略軟件是如果使用FPGA的,那么我們以后肯定能找出問(wèn)題的原因。因此不受硬件的約束、積極吸收一些軟件功能才是明智不舉。這樣做有以下一些優(yōu)點(diǎn):

1. 由于覆蓋了一部分硬件與軟件之間的灰色區(qū)域,測(cè)試覆蓋率可以得到改善。

2. 能夠更好地理解軟硬件的交互以前二者之間的交互時(shí)序。

3. 能夠部分驗(yàn)證FPGA的控制算法。

我們?nèi)绾卧O(shè)計(jì)這種測(cè)試平臺(tái)呢?

在FPGA和處理器系統(tǒng)中,軟件設(shè)置好FPGA寄存器后就可以與FPGA進(jìn)行交互通信了。這種測(cè)試平臺(tái)可以同時(shí)滿足這二種情況。不過(guò)后者令人更有興趣,也更難一些。讓我們考慮一下如圖1所示的系統(tǒng),它的FPGA內(nèi)部有一個(gè)處理器接口和二個(gè)UART。

FPGA內(nèi)部的這些模塊通過(guò)內(nèi)部總線連接在一起。為了控制UART,外部微處理器需要通過(guò)處理器接口和FPGA內(nèi)部總線訪問(wèn) UART內(nèi)部的寄存器。波特率、奇偶校驗(yàn)等UART參數(shù)必須由軟件先行初始化設(shè)置。在工作期間,軟件在訪問(wèn)數(shù)據(jù)寄存器之前必須查詢UART狀態(tài)寄存器或等待中斷,否則數(shù)據(jù)寄存器的內(nèi)容可能是無(wú)效的。

測(cè)試平臺(tái)部分由三個(gè)測(cè)試模塊組成,其中有二個(gè)測(cè)試模塊與UART接口,另一個(gè)與FPGA處理器接口相接。必須配置好測(cè)試模塊,以確保UART測(cè)試模塊的工作參數(shù)和UART工作參數(shù)相同。

為了仿真通過(guò)UART給UART測(cè)試模塊發(fā)送數(shù)據(jù)的工作過(guò)程,需要二次循環(huán)。每次循環(huán)都要檢查UART的狀態(tài)寄存器,當(dāng)狀態(tài)寄存器指示允許寫入時(shí)再向發(fā)送數(shù)據(jù)寄存器寫入數(shù)據(jù)。這二次循環(huán)需要在處理器測(cè)試模塊中完成,因?yàn)橹挥幸粋€(gè)VHDL進(jìn)程可以驅(qū)動(dòng)FPGA處理器接口信號(hào)。

這種方法對(duì)簡(jiǎn)單案例很有效,但隨著處理器測(cè)試模塊中測(cè)試模塊的增多,這種方法將變得越來(lái)越復(fù)雜。另外,因?yàn)樾枰容^從FPGA UART發(fā)送到UART測(cè)試模塊的數(shù)據(jù),仍然需要在模塊之間建立一定的通信機(jī)制。

由于已經(jīng)對(duì)硬件和部分軟件作了建模,因此可以研究一下軟件在系統(tǒng)中是如何工作的,從而幫助我們作出正確的比較結(jié)果。

首先我們需要構(gòu)筑能夠匹配FPGA功能的軟件,以便我們擁有能夠管理每個(gè)FPGA模塊的軟件任務(wù)。該軟件任務(wù)可以作為這種模塊的設(shè)備驅(qū)動(dòng)器。參考高級(jí)操作系統(tǒng)提供的功能,軟件任務(wù)之間的通信可以通過(guò)消息管道和信號(hào)機(jī)實(shí)現(xiàn)。在VHDL中可以使用相同的結(jié)構(gòu)。軟件任務(wù)類似于 VHDL進(jìn)程。雖然不象C等高級(jí)語(yǔ)言那樣方便,但還是可以創(chuàng)建消息隊(duì)列的。利用信號(hào)可以很簡(jiǎn)單地構(gòu)建信號(hào)機(jī),然后依靠接收進(jìn)程等待這一信號(hào)的變化。至此我們就具備了用VHDL創(chuàng)建軟件驅(qū)動(dòng)器的所有條件。

那么這樣一種測(cè)試平臺(tái)的結(jié)構(gòu)是怎樣的呢?圖2是測(cè)試平臺(tái)內(nèi)部消息流程的一個(gè)簡(jiǎn)單例子。

命令是由命令解析器從腳本文件中讀取的。以命令解析器為目的的命令在本地得到處理,而其它消息發(fā)送到相應(yīng)的模塊。腳本命令被轉(zhuǎn)換成標(biāo)準(zhǔn)消息格式。這種消息格式一般由一條記錄組成,該記錄包含消息目的地、消息源、消息類型和數(shù)據(jù)陣列指針等字段。消息送到目的地后再進(jìn)行進(jìn)一步處理。

目標(biāo)模塊不斷查詢消息隊(duì)列是否有輸入消息。當(dāng)有消息到達(dá)時(shí),它會(huì)檢查消息類型并決定如何處理該消息。一般用case語(yǔ)句區(qū)分不同的命令。在每個(gè)case語(yǔ)句中,可以立即執(zhí)行命令(比如希望用一些數(shù)據(jù)填充某些RAM的情形),也可以通過(guò)激發(fā)被某個(gè)進(jìn)程監(jiān)視的脈沖信號(hào)觸發(fā)并啟動(dòng)這個(gè)進(jìn)程。

值得注意的是我們可以從測(cè)試平臺(tái)中的任何模塊向其它任何模塊發(fā)送消息。因?yàn)橛羞@樣的反饋路徑,因此能夠構(gòu)建查詢循環(huán)。圖3 給出了UART測(cè)試模塊的結(jié)構(gòu)。

模塊被分成三大部分:物理接口、軟件接口和本地?cái)?shù)據(jù)存儲(chǔ)模塊。

物理接口用來(lái)管理與FPGA的連接。在該模塊內(nèi)有二個(gè)VHDL進(jìn)程為測(cè)試UART建模。第一個(gè)進(jìn)程收集來(lái)自FPGA UART RxD引腳的數(shù)據(jù),并把數(shù)據(jù)存放在本地?cái)?shù)據(jù)存儲(chǔ)器中。第二個(gè)進(jìn)程將來(lái)自本地?cái)?shù)據(jù)存儲(chǔ)器的數(shù)據(jù)通過(guò)TxD信號(hào)發(fā)送給FPGA UART。

軟件接口對(duì)運(yùn)行于實(shí)際微處理器的軟件算法進(jìn)行建模。在該模塊內(nèi)也有二個(gè)進(jìn)程。第一個(gè)進(jìn)程將本地?cái)?shù)據(jù)存儲(chǔ)器中的數(shù)據(jù)發(fā)送給 FPGA UART。這些進(jìn)程和物理接口進(jìn)程的區(qū)別在于這時(shí)的數(shù)據(jù)交換是通過(guò)UART數(shù)據(jù)寄存器而不是UART TxD和RxD信號(hào)完成的。這就要求我們可以從UART測(cè)試模塊訪問(wèn)FPGA UART寄存器。通過(guò)交換UART測(cè)試模塊和進(jìn)程接口模塊之間的消息隊(duì)列中的消息實(shí)現(xiàn)對(duì)FPGA UART寄存器的訪問(wèn)。

控制接口用于啟動(dòng)物理接口內(nèi)的進(jìn)程。共享變量和信號(hào)用于軟件和物理接口模塊之間的通信。

例子

下面研究一下可能運(yùn)行于圖1所示的FPGA上的測(cè)試。在測(cè)試中需要將緩沖數(shù)據(jù)通過(guò)每個(gè)UART發(fā)送到相應(yīng)的測(cè)試模塊。對(duì)每個(gè)UART來(lái)說(shuō)測(cè)試包含以下一些步驟:

..初始化UART

..初始化UART測(cè)試模塊

..初始化發(fā)送數(shù)據(jù)的緩存

..緩存非空時(shí)循環(huán)

..比較結(jié)果

利用簡(jiǎn)單的腳本命令如WRITE_REGISTER就可完成UART和UART測(cè)試模塊的初始化。將要發(fā)送的緩存數(shù)據(jù)存放于 UART測(cè)試模塊中??梢杂媚_本命令設(shè)置該數(shù)據(jù)。循環(huán)相對(duì)要復(fù)雜些,包括將來(lái)自UART測(cè)試模塊的消息發(fā)送給處理器接口模塊,并用指令讀取UART狀態(tài)寄存器。一經(jīng)讀取,處理器接口模塊就會(huì)向UART測(cè)試模塊回送一條帶狀態(tài)寄存器值的消息。然后由UART測(cè)試模塊決定是否發(fā)送數(shù)據(jù)。

UART測(cè)試模塊的其它部分收集來(lái)自FPGA TxD引腳的數(shù)據(jù)。待收集完所有數(shù)據(jù)后,就可以比對(duì)接收數(shù)據(jù)和期望數(shù)據(jù)了。

處理器接口模塊相對(duì)簡(jiǎn)單些,它在輸入隊(duì)列和處理器上接收消息。通常這些消息要么是寫寄存器命令,要么是讀寄存器命令。如果是寫寄存器命令,來(lái)源于消息的數(shù)據(jù)和地址就被寫入FPGA處理器接口,其寫入方式與實(shí)際處理器向FPGA寫入的方式相同。如果是讀寄存器命令,則地址來(lái)自消息。FPGA處理器接口完成讀周期,讀到的數(shù)據(jù)放在消息中再發(fā)送回請(qǐng)求讀的模塊。

其它測(cè)試模塊以相同的方式寫入U(xiǎn)ART測(cè)試模塊。大多數(shù)測(cè)試模塊具有相同的結(jié)構(gòu),而由消息驅(qū)動(dòng)測(cè)試平臺(tái)建立的架構(gòu)能使新測(cè)試模塊的插入非常容易。

本文小結(jié)

FPGA加上微處理器構(gòu)成了典型系統(tǒng)的基礎(chǔ)。FPGA和微處理器之間的交互常常很難預(yù)測(cè)和查錯(cuò)。消息驅(qū)動(dòng)測(cè)試平臺(tái)則有助于仿真這些交互,從而減少硬件測(cè)試期間可能會(huì)遇到的問(wèn)題。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉