當(dāng)前位置:首頁(yè) > 工業(yè)控制 > 電子設(shè)計(jì)自動(dòng)化
[導(dǎo)讀]設(shè)計(jì)正變得日益復(fù)雜,越來(lái)越多的設(shè)計(jì)包含了處理器 - 甚至包含多個(gè)處理器。由于處理器是設(shè)計(jì)不可分割的一部分,因此我們必須驗(yàn)證在處理器上運(yùn)行的軟件與設(shè)計(jì)的其它部分之間的交互,這一點(diǎn)非常重要。軟件對(duì)當(dāng)今系統(tǒng)的運(yùn)作至關(guān)重要,因而在實(shí)驗(yàn)室中原型芯片完成之前,對(duì)硬件/軟件邊界的驗(yàn)證和確認(rèn)不容出現(xiàn)任何延遲。至少,驗(yàn)證團(tuán)隊(duì)必須完成這項(xiàng)任務(wù),并且自行承擔(dān)風(fēng)險(xiǎn)。相信我們都聽(tīng)說(shuō)過(guò)一些嚴(yán)重錯(cuò)誤的場(chǎng)景,例如,團(tuán)隊(duì)在實(shí)驗(yàn)室中發(fā)現(xiàn),處理器的總線與設(shè)計(jì)的連接順序接反了,或者處理器從低功耗模式下再無(wú)法上電啟動(dòng)。

設(shè)計(jì)正變得日益復(fù)雜,越來(lái)越多的設(shè)計(jì)包含了處理器 - 甚至包含多個(gè)處理器。由于處理器是設(shè)計(jì)不可分割的一部分,因此我們必須驗(yàn)證在處理器上運(yùn)行的軟件與設(shè)計(jì)的其它部分之間的交互,這一點(diǎn)非常重要。軟件對(duì)當(dāng)今系統(tǒng)的運(yùn)作至關(guān)重要,因而在實(shí)驗(yàn)室中原型芯片完成之前,對(duì)硬件/軟件邊界的驗(yàn)證和確認(rèn)不容出現(xiàn)任何延遲。至少,驗(yàn)證團(tuán)隊(duì)必須完成這項(xiàng)任務(wù),并且自行承擔(dān)風(fēng)險(xiǎn)。相信我們都聽(tīng)說(shuō)過(guò)一些嚴(yán)重錯(cuò)誤的場(chǎng)景,例如,團(tuán)隊(duì)在實(shí)驗(yàn)室中發(fā)現(xiàn),處理器的總線與設(shè)計(jì)的連接順序接反了,或者處理器從低功耗模式下再無(wú)法上電啟動(dòng)。

硬件/軟件逐步細(xì)化

一個(gè)顯而易見(jiàn)的解決方案就是在傳統(tǒng)的驗(yàn)證流程中,圍繞硬件/軟件邊界進(jìn)行更多驗(yàn)證。但是,我們無(wú)法直接從以硬件為中心的驗(yàn)證,轉(zhuǎn)變?yōu)閲L試運(yùn)行整個(gè)應(yīng)用程序堆棧。運(yùn)行大量的軟件而存在的復(fù)雜性及生成的大量調(diào)試日志,讓追蹤簡(jiǎn)單錯(cuò)誤也會(huì)變得非常復(fù)雜。

一種高效的方法是在最簡(jiǎn)單的驗(yàn)證環(huán)境中進(jìn)行所有可行的驗(yàn)證,該環(huán)境讓我們能夠執(zhí)行目標(biāo)功能,并且具有最高的可見(jiàn)性,最大程度減少與測(cè)試意圖不相關(guān)的工作。

在本文中,我們將討論涉及到寄存器訪問(wèn)驗(yàn)證的簡(jiǎn)單示例。驗(yàn)證處理器是否能夠正確寫(xiě)入和讀取 IP 寄存器,是非常關(guān)鍵的集成驗(yàn)證任務(wù)。即便是簡(jiǎn)單的 SoC,也包含數(shù)以百計(jì)的寄存器,因而創(chuàng)建測(cè)試來(lái)驗(yàn)證處理器是否能夠讀取和寫(xiě)入所有寄存器將會(huì)是非常耗時(shí)的工作。

圖 1 - 簡(jiǎn)單的 SoC

圖 1 顯示了簡(jiǎn)單的 SoC,它搭載了閃存、DDR 存儲(chǔ)器、緊耦合存儲(chǔ)器以及 UART 和 DMA 引擎,它們的寄存器通過(guò)低速外設(shè)總線來(lái)訪問(wèn)。

雖然最終目標(biāo)是驗(yàn)證在處理器上運(yùn)行的代碼是否能夠訪問(wèn) IP 寄存器,但我們可以首先從基于 UVM 的驗(yàn)證開(kāi)始,更加集中驗(yàn)證某一部分。在UVM 中率先驗(yàn)證存儲(chǔ)器子系統(tǒng)后,我們?cè)谇度胧教幚砥魃险{(diào)通軟件時(shí)將更有信心。使用 Mentor 的 Questa inFact 便攜式激勵(lì)工具,可讓我們將同一測(cè)試的目標(biāo)重定向到 UVM 和嵌入式軟件環(huán)境,從而節(jié)省測(cè)試開(kāi)發(fā)時(shí)間。

使用圖形描述寄存器

Questa inFact 使用了基于圖形的聲明輸入描述,可提供約束編程的功能,增強(qiáng)以迭代方式指定決策的能力。當(dāng)需要對(duì)訪問(wèn)寄存器的規(guī)定約束時(shí),以迭代方式進(jìn)行決策的能力非常有幫助。

首先,我們要捕獲存儲(chǔ)器測(cè)試操作的核心屬性:地址、訪問(wèn)范圍大小、寫(xiě)入數(shù)據(jù)、寫(xiě)入掩碼。寫(xiě)入掩碼指定了在進(jìn)行檢查時(shí)應(yīng)該讀取/寫(xiě)入哪些位,而必須忽略哪些位。

圖 2 - 核心寄存器訪問(wèn)結(jié)構(gòu)體

action 是指要在目標(biāo)驗(yàn)證環(huán)境中執(zhí)行的操作的單位。在下文中,我們將了解更改 body 操作的實(shí)施如何讓我們輕松地將寄存器訪問(wèn)測(cè)試的目標(biāo)重定向到 UVM 和嵌入式軟件環(huán)境。

圖 2 顯示的寄存器訪問(wèn)描述符不包括系統(tǒng)中的 IP 的任何詳細(xì)信息。接下來(lái),我們需要添加這些限制。我們的 DMA 引擎(來(lái)自 opencores.org 的 Wishbone DMA Core)包括一系列的核心寄存器,還有通道描述符寄存器陣列。使用基于圖形的描述,我們能夠以迭代方式描述寄存器地址。

圖 3 - DMA 寄存器地址選擇

圖3的圖形描述顯示了選擇 DMA 寄存器地址的過(guò)程:

· 選擇核心寄存器或通道控制寄存器陣列 (dma_reg)

· 如果選擇通道控制寄存器

o 選擇哪個(gè)通道 (dma_ch)

o 選擇哪個(gè)通道寄存器被作為目標(biāo) (dma_ch_reg)

圖 4 - DMA 寄存器地址選擇規(guī)則

圖 4 顯示了此過(guò)程的文字描述。

圖 5 - DMA 寄存器地址選擇約束

用于指定在約束中編碼的寄存器地址和寫(xiě)入掩碼的更詳細(xì)約束顯示在圖 5 中。請(qǐng)注意,此約束標(biāo)記為“dynamic”(動(dòng)態(tài)),這意味著在圖形范圍內(nèi),它只有在激活之后才會(huì)應(yīng)用 – 在這種情況下,我們已經(jīng)決定訪問(wèn) DMA 寄存器。雖然這些約束是手動(dòng)創(chuàng)建的,但它們也可從機(jī)器可讀取的寄存器描述生成,例如 IP-XACT、SystemRDL 等。

圖 6 - 簡(jiǎn)單 SoC 寄存器訪問(wèn)圖形

整合寄存器訪問(wèn)圖形的 DMA、UART 和 TCM 部分之后,可獲得圖 6 中顯示的圖形。我們可以將它視為流程圖:首先,我們決定要訪問(wèn)哪個(gè) IP,然后基于選定的 IP 來(lái)決定圖形分支,并且做出特定的選擇。例如,最左側(cè)的圖形分支包含 DMA 特定的決策。

定向測(cè)試

即便是小型 SoC,也有超過(guò) 250 個(gè)寄存器,而常規(guī)的 SoC 的寄存器數(shù)量甚至還會(huì)超出很多倍。我們必須確保能夠訪問(wèn)所有這些寄存器,并通過(guò)某種隨機(jī)順序進(jìn)行訪問(wèn)。我們還可能希望集中測(cè)試某一部分 – 例如,僅測(cè)試 UART 寄存器。

Questa inFact 允許結(jié)合使用約束和圖形覆蓋率目標(biāo),將測(cè)試重點(diǎn)放在要實(shí)現(xiàn)的目標(biāo)上。約束指定允許生成哪些測(cè)試,而覆蓋率目標(biāo)則側(cè)重于系統(tǒng)性生成某些測(cè)試。例如,我們可以使用約束來(lái)指定 UART 當(dāng)前尚不能進(jìn)行測(cè)試。使用覆蓋率目標(biāo)可指定某個(gè)特定測(cè)試的重點(diǎn)是 DMA 引擎,但在實(shí)現(xiàn)該目標(biāo)之后,可將目標(biāo)定向到其他可用 IP。

圖 7 - 將 DMA 作為重點(diǎn)的覆蓋目標(biāo)

圖 7 中顯示的覆蓋率目標(biāo)(藍(lán)色陰影區(qū)域)將當(dāng)前測(cè)試活動(dòng)的重點(diǎn)集中于 DMA 寄存器上。Questa inFact 將生成測(cè)試,按照偽隨機(jī)順序,系統(tǒng)地訪問(wèn) DMA 寄存器,然后生成對(duì) DMA、UART、TCM 的混合訪問(wèn)。

映射到 UVM 環(huán)境

截止目前,我們創(chuàng)建的寄存器訪問(wèn)測(cè)試的描述都是獨(dú)立于任何驗(yàn)證環(huán)境的。我們現(xiàn)在必須提供一點(diǎn)膠接邏輯,將我們的測(cè)試圖形連接到子系統(tǒng)級(jí)驗(yàn)證環(huán)境。

圖 8 - 子系統(tǒng)級(jí)驗(yàn)證環(huán)境

在 UVM 子系統(tǒng)級(jí)環(huán)境中,我們使用總線功能模型 (BFM) 取代了處理器的 RTL 模型,以便通過(guò)互連訪問(wèn)寄存器。寄存器測(cè)試圖形封裝在將通過(guò) BFM 訪問(wèn)寄存器的 UVM 虛擬序列 (virtual sequence) 中。

基本“CPU”虛擬序列提供通過(guò)類 API 對(duì) BFM 的訪問(wèn),它支持不同大小的讀取和寫(xiě)入。我們添加了特定的“memcheck”序列,它在“do_memcheck”任務(wù)內(nèi)部執(zhí)行寫(xiě)入、回讀和檢查,如圖 9 所示。

圖 9 - UVM do_memcheck 任務(wù)

將寄存器測(cè)試圖形連接到虛擬序列中的 do_memcheck 任務(wù)所需的映射信息收集在一個(gè)文件中 – 在本例中該文件為 target.rseg。映射信息顯示在圖 10 中。

圖 10 - UVM 序列目標(biāo)映射

映射信息指定:

· 圖形應(yīng)該封裝在從 or1k_memcheck_vseq 擴(kuò)展的類中

· 在 UVM 環(huán)境中,應(yīng)該使用 or1k_memcheck_c 類來(lái)代表 or1k_soc_regacc 結(jié)構(gòu)體。

· 當(dāng) or1k_soc_regacc 內(nèi)部的“body”操作執(zhí)行時(shí),應(yīng)調(diào)用 do_memcheck 任務(wù)。

只需這幾行代碼,我們就能在 UVM 環(huán)境中運(yùn)行寄存器測(cè)試圖形。這讓我們能夠使用標(biāo)準(zhǔn)的 UVM 和 SystemVerilog 調(diào)試工具,驗(yàn)證寄存器連接的基本信息,并對(duì)任何問(wèn)題進(jìn)行調(diào)試。

映射到嵌入式軟件

當(dāng)然,驗(yàn)證確認(rèn) BFM 能夠訪問(wèn)寄存器存儲(chǔ)器,并不一定確保處理器也能夠訪問(wèn)。因此,在處理器上以與嵌入式軟件相同的方式,來(lái)運(yùn)行寄存器訪問(wèn)測(cè)試,仍然非常重要。這種最簡(jiǎn)單的完整 SoC 驗(yàn)證環(huán)境如圖 11 中所示。

圖 11 - 軟件驅(qū)動(dòng)的驗(yàn)證環(huán)境

在本例中,我們將創(chuàng)建以 C 語(yǔ)言編寫(xiě)的一系列測(cè)試,使用處理器寫(xiě)入和回讀寄存器。我們的測(cè)試將使用 do_memcheck 函數(shù)來(lái)執(zhí)行實(shí)際的寫(xiě)入、回讀和檢查。此函數(shù)如圖 12 所示。

圖 12 - 嵌入式軟件 do_memcheck 函數(shù)

與在 UVM 環(huán)境中相同,我們需要指定圖形如何映射到嵌入式軟件環(huán)境。映射信息顯示在圖 13 中。

圖 13 - 嵌入式軟件映射

映射信息指定以下內(nèi)容:

· 必須包括頭文件 or1k_memcheck.h。此文件聲明 do_memcheck 函數(shù)。

· 每次 body 操作執(zhí)行時(shí),必須調(diào)用函數(shù) do_memcheck,傳遞 addr、size、wr_data 和 wr_mask 字段的值。

生成 C 測(cè)試

我們已經(jīng)介紹了要執(zhí)行的寄存器測(cè)試的基于圖形的模型,我們?cè)谌绾紊梢幌盗刑囟y(cè)試方面具有很大靈活性。圖 14 顯示了生成的測(cè)試的一個(gè)示例。在本例中,我們?cè)试S inFact 將目標(biāo)定向到所有三個(gè) IP,但限制該測(cè)試只能通過(guò)圖形進(jìn)行五次迭代。

圖 14 - 示例寄存器測(cè)試

正如您看到的那樣,生成的測(cè)試是定向測(cè)試,在生成過(guò)程中,inFact 填充了隨機(jī)值。雖然特定測(cè)試在每次運(yùn)行時(shí)始終執(zhí)行相同的操作,但我們可以重新生成測(cè)試,每次在回歸運(yùn)行時(shí)使用不同的種子,從而在回歸運(yùn)行中實(shí)現(xiàn)更多隨機(jī)性。

為了實(shí)現(xiàn)對(duì)上文所述的寄存器訪問(wèn)目標(biāo)的覆蓋率,我們需要生成更多針對(duì)性的測(cè)試。由于所有這些測(cè)試都是從單個(gè)描述模型生成的,因此我們可以簡(jiǎn)單地更改測(cè)試生成程序的選項(xiàng),以便在以下兩種方式之間切換:運(yùn)行很多測(cè)試,每個(gè)測(cè)試都對(duì) do_memcheck 進(jìn)行少數(shù)幾次調(diào)用;或者運(yùn)行少數(shù)幾次測(cè)試,每次測(cè)試都對(duì) do_memcheck 進(jìn)行很多次調(diào)用。我們還可以簡(jiǎn)單地調(diào)節(jié)覆蓋率目標(biāo),例如,生成一系列測(cè)試,僅將重點(diǎn)放在 DMA 寄存器測(cè)試上。

總結(jié)

采用步進(jìn)式方法來(lái)驗(yàn)證嵌入式處理器與設(shè)計(jì)其他部分的IP之間的交互,可在驗(yàn)證流程中及早發(fā)現(xiàn)錯(cuò)誤,以便最簡(jiǎn)單地進(jìn)行調(diào)試和糾正,從而節(jié)省時(shí)間。使用便攜式激勵(lì),可從描述的測(cè)試意圖著手,生成高質(zhì)量的測(cè)試,并將目標(biāo)重定向到多個(gè)環(huán)境。這樣可以應(yīng)對(duì)步進(jìn)式方法的主要挑戰(zhàn),即它需要大量的重復(fù)工作,在多個(gè)位置執(zhí)行測(cè)試意圖,另外還需要使用低效率的定向測(cè)試,創(chuàng)建嵌入式軟件測(cè)試。在本文中,我們看到對(duì) SoC 寄存器的測(cè)試意圖的單個(gè)描述如何能夠輕松將目標(biāo)定向到 UVM 和嵌入式軟件環(huán)境,作為 SoC 集成測(cè)試的一部分。我們還看到了如何使用 Mentor 的 Questa inFact 便攜式激勵(lì)工具,對(duì)此測(cè)試意圖進(jìn)行描述,并將目標(biāo)定向到特定環(huán)境。

下一次當(dāng)您開(kāi)始計(jì)劃 SoC 集成測(cè)試時(shí),應(yīng)該考慮到便攜式激勵(lì)和步進(jìn)式測(cè)試方法如何讓您的驗(yà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工具的開(kāi)發(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ì)開(kāi)幕式在貴陽(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)閉