www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

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

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

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

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

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

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

3. 能夠部分驗證FPGA的控制算法。

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

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

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

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

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

這種方法對簡單案例很有效,但隨著處理器測試模塊中測試模塊的增多,這種方法將變得越來越復(fù)雜。另外,因為需要比較從FPGA UART發(fā)送到UART測試模塊的數(shù)據(jù),仍然需要在模塊之間建立一定的通信機制。

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

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

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

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

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

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

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

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

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

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

例子

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

..初始化UART

..初始化UART測試模塊

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

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

..比較結(jié)果

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

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

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

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

本文小結(jié)

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

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

LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: 驅(qū)動電源

在工業(yè)自動化蓬勃發(fā)展的當(dāng)下,工業(yè)電機作為核心動力設(shè)備,其驅(qū)動電源的性能直接關(guān)系到整個系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動勢抑制與過流保護是驅(qū)動電源設(shè)計中至關(guān)重要的兩個環(huán)節(jié),集成化方案的設(shè)計成為提升電機驅(qū)動性能的關(guān)鍵。

關(guān)鍵字: 工業(yè)電機 驅(qū)動電源

LED 驅(qū)動電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個照明設(shè)備的使用壽命。然而,在實際應(yīng)用中,LED 驅(qū)動電源易損壞的問題卻十分常見,不僅增加了維護成本,還影響了用戶體驗。要解決這一問題,需從設(shè)計、生...

關(guān)鍵字: 驅(qū)動電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動電源的公式,電感內(nèi)電流波動大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關(guān)鍵字: LED 設(shè)計 驅(qū)動電源

電動汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動汽車的核心技術(shù)之一是電機驅(qū)動控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機驅(qū)動系統(tǒng)中的關(guān)鍵元件,其性能直接影響到電動汽車的動力性能和...

關(guān)鍵字: 電動汽車 新能源 驅(qū)動電源

在現(xiàn)代城市建設(shè)中,街道及停車場照明作為基礎(chǔ)設(shè)施的重要組成部分,其質(zhì)量和效率直接關(guān)系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進步,高亮度白光發(fā)光二極管(LED)因其獨特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關(guān)鍵字: 發(fā)光二極管 驅(qū)動電源 LED

LED通用照明設(shè)計工程師會遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關(guān)鍵字: LED 驅(qū)動電源 功率因數(shù)校正

在LED照明技術(shù)日益普及的今天,LED驅(qū)動電源的電磁干擾(EMI)問題成為了一個不可忽視的挑戰(zhàn)。電磁干擾不僅會影響LED燈具的正常工作,還可能對周圍電子設(shè)備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關(guān)鍵字: LED照明技術(shù) 電磁干擾 驅(qū)動電源

開關(guān)電源具有效率高的特性,而且開關(guān)電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機重量也有所下降,所以,現(xiàn)在的LED驅(qū)動電源

關(guān)鍵字: LED 驅(qū)動電源 開關(guān)電源

LED驅(qū)動電源是把電源供應(yīng)轉(zhuǎn)換為特定的電壓電流以驅(qū)動LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: LED 隧道燈 驅(qū)動電源
關(guān)閉