開發(fā)片上系統(tǒng) (SoC) 需要管理設(shè)計(jì)的許多復(fù)雜方面。晶體管的絕對數(shù)量是壓倒性的,但復(fù)雜性不僅僅是數(shù)量。SoC 包含具有精確功能規(guī)范和一系列要求的高度復(fù)雜的特性。除了設(shè)計(jì)的復(fù)雜性之外,驗(yàn)證每個(gè)功能和整個(gè) SoC 是否滿足其規(guī)范和要求也是一個(gè)巨大的挑戰(zhàn)。
除了設(shè)計(jì)和驗(yàn)證的復(fù)雜性之外,整個(gè)過程的項(xiàng)目管理也令人生畏。沒有一種解決方案可以解決 SoC 復(fù)雜性的所有方面,甚至大部分方面。然而,一些技術(shù)可以解決問題的特定部分,例如基于圖形的場景模型,這種形式可以直接降低驗(yàn)證復(fù)雜性,同時(shí)為管理 SoC 設(shè)計(jì)和項(xiàng)目復(fù)雜性提供附帶好處。
SoC驗(yàn)證
可以在示例數(shù)碼相機(jī) SoC 設(shè)計(jì)的上下文中說明基于圖形的場景模型的作用(圖 1)。原始圖像由相機(jī)模塊從電荷耦合器件 (CCD) 陣列(正面或背面)捕獲。它可以顯示給用戶,由照片處理器操作,通過 USB 端口傳輸,或保存到 SD 卡。一系列此類圖像可被視為視頻流,并由視頻處理器和 SoC 中的其他知識(shí)產(chǎn)權(quán) (IP) 塊進(jìn)行類似處理。
圖 1:具有數(shù)碼相機(jī)功能的 SoC 的復(fù)雜設(shè)計(jì)。
SoC 具有相互交織的數(shù)據(jù)流并支持一些并行性。使用兩個(gè)嵌入式 CPU,可以同時(shí)對多個(gè) IP 塊進(jìn)行編程。此外,如果結(jié)構(gòu)具有交叉開關(guān)功能,則多個(gè)數(shù)據(jù)流可以在不同的 IP 塊和內(nèi)存之間并行運(yùn)行,如果不需要內(nèi)存緩沖區(qū),則可以直接在 IP 塊之間運(yùn)行。驗(yàn)證要求在架構(gòu)支持時(shí)并行執(zhí)行所有這些可能的流程,以模仿相機(jī)中的實(shí)際最終用途。
如果要開發(fā)測試平臺(tái)環(huán)境,驗(yàn)證團(tuán)隊(duì)必須了解所有數(shù)據(jù)流和所有可能的交互。將 SoC 純粹視為黑匣子并不能提供足夠的驗(yàn)證;在大型設(shè)計(jì)中,嚴(yán)格地通過操縱輸入來激發(fā)深層行為是很困難的。因此,SoC 驗(yàn)證團(tuán)隊(duì)幾乎總是開發(fā)在嵌入式處理器上運(yùn)行的 C 語言測試,作為他們方法的一部分。當(dāng)然,手寫測試也很困難,要對相互協(xié)調(diào)的多個(gè)處理器和測試臺(tái)進(jìn)行手寫測試以充分發(fā)揮 SoC 的作用,幾乎是不可能的。
基于圖的場景模型
驗(yàn)證團(tuán)隊(duì)在理解芯片內(nèi)所有可能的行為和數(shù)據(jù)流方面面臨挑戰(zhàn)。紙質(zhì)規(guī)范很難消化,并且受制于自然語言的所有不精確性。由于描述的復(fù)雜性以及并非所有設(shè)計(jì)類型都適合聲明性語言這一事實(shí),嘗試使用純形式化方法描述完整的 SoC 的嘗試沒有成功。
一種獲得認(rèn)可的方法是基于圖形的場景模型。這樣的模型是一種形式主義——有向圖——但不需要形式語言。它可以使用標(biāo)準(zhǔn) C/C++ 語言加上一些來自標(biāo)準(zhǔn)巴科斯-瑙爾形式 (BNF) 表示法的結(jié)構(gòu)來描述。該圖顯示了 SoC 中 IP 塊之間的互連和合法數(shù)據(jù)流。場景模型類似于 SoC 架構(gòu)師可能在板上繪制的數(shù)據(jù)流圖,不同之處在于它的左側(cè)是輸出和結(jié)果,右側(cè)是輸入。
如圖 2所示,可能的最終用戶場景包括:
從其中一個(gè) CCD 陣列讀取并顯示在屏幕上、寫入 SD 卡或發(fā)送到 USB 端口的原始圖像
從其中一個(gè) CCD 陣列讀取的原始圖像,由照片處理器編碼為 JPEG,然后寫入 SD 卡或發(fā)送到 USB 端口
從其中一個(gè) CCD 陣列讀取的一系列原始圖像,由視頻處理器編碼為 MPEG,然后寫入 SD 卡或發(fā)送到 USB 端口
從 SD 卡或 USB 端口讀取并顯示在屏幕上的原始圖像,寫入 SD 卡或發(fā)送到 USB 端口
從 SD 卡或 USB 端口讀取的 JPEG 圖像,由照片處理器解碼并顯示在屏幕上,寫入 SD 卡或從 USB 端口發(fā)送
從 SD 卡或 USB 端口讀取的 MPEG 流,由視頻處理器解碼并顯示在屏幕上,寫入 SD 卡或從 USB 端口發(fā)送
圖 2:數(shù)碼相機(jī) SoC 的高級場景模型。
因?yàn)閳鼍澳P褪欠謱拥?,所以圖 2中的每個(gè)圖形節(jié)點(diǎn)(目標(biāo))都可以展開以顯示相應(yīng) IP 塊設(shè)計(jì)的詳細(xì)信息。該模型可以由 SoC 團(tuán)隊(duì)自上而下開發(fā),也可由 IP 開發(fā)人員自下而上開發(fā)。自上而下的開發(fā)更為常見,因?yàn)轫?xiàng)目通常開始使用場景模型來解決全芯片 SoC 驗(yàn)證問題。這可能需要 IP 開發(fā)人員的一些參與來填寫較低級別的詳細(xì)信息。如果一個(gè)項(xiàng)目完全采用該方法,那么場景模型也用于驗(yàn)證單個(gè) IP 塊,然后組合成一個(gè)全芯片模型。
場景模型提供了對 SoC 設(shè)計(jì)和芯片制造前必須覆蓋的驗(yàn)證空間的洞察。這通過幫助定義測試計(jì)劃來解決驗(yàn)證的復(fù)雜性。場景模型還有助于解決設(shè)計(jì)復(fù)雜性,因?yàn)樗芟裥酒軜?gòu)師可能繪制的數(shù)據(jù)流圖的擴(kuò)展版本來解釋設(shè)計(jì)的工作原理。因此,該圖成為架構(gòu)師、設(shè)計(jì)師、驗(yàn)證工程師、嵌入式程序員和啟動(dòng)團(tuán)隊(duì)之間可以使用的通用模型。這也降低了項(xiàng)目管理的復(fù)雜性,無論是在單個(gè)項(xiàng)目中,還是在共享設(shè)計(jì)部分的多個(gè)項(xiàng)目中。
場景模型自動(dòng)化
圖形場景模型的最大價(jià)值可能在于它可用于生成 C 測試用例,以在仿真、在線仿真 (ICE)、現(xiàn)場可編程門陣列 (FPGA) 原型或 SoC 芯片中的嵌入式處理器上運(yùn)行在培養(yǎng)實(shí)驗(yàn)室。生成器從左到右遍歷圖表,從期望的結(jié)果到輸入,組裝一系列步驟,這些步驟返回到產(chǎn)生特定結(jié)果所需的輸入值集。圖形決策點(diǎn)和數(shù)據(jù)值是隨機(jī)的,因此每個(gè)演練都會(huì)產(chǎn)生一個(gè)獨(dú)特的測試用例。這種自動(dòng)化消除了在 SoC 項(xiàng)目的任何階段(從模擬一直到實(shí)驗(yàn)室)手寫測試的需要。用戶報(bào)告說,他們可以使用以前用于手寫測試的 20% 的團(tuán)隊(duì)來獲得更好的自動(dòng)化結(jié)果,
可以將約束添加到圖形中以阻止根據(jù)規(guī)范非法的路徑,隔離尚未準(zhǔn)備好驗(yàn)證的設(shè)計(jì)部分,或?qū)y試用例生成偏向某些方向。例如,圖 2所示的圖表允許從 SD 卡讀取原始圖像,由照片處理器處理,然后顯示在屏幕上的場景。這是一個(gè)不必要的步驟,因?yàn)榭梢灾苯语@示原始圖像;用戶可以很容易地添加一個(gè)約束,即只有 JPEG 編碼的圖像被發(fā)送到照片處理器,以消除不必要的測試。
生成的測試用例是多線程和多處理器的,具有跨線程、處理器和內(nèi)置測試臺(tái)的所有通信。目標(biāo)是在允許的最大流量和并行度下對 SoC 進(jìn)行壓力測試。在相機(jī) SoC 中,可能會(huì)在從 SD 卡讀取前一個(gè)圖像并顯示在屏幕上的同時(shí)將相機(jī)圖像寫入 USB端口。這種級別的活動(dòng)不太可能發(fā)生在手寫 C 測試或傳統(tǒng)的仿真測試平臺(tái)中,因此可以提供更完整的設(shè)計(jì)驗(yàn)證。
把它們放在一起
與任何自動(dòng)測試生成方法一樣,SoC 團(tuán)隊(duì)需要一種方法來評估驗(yàn)證的徹底性并確定何時(shí)流片。除了捕獲設(shè)計(jì)和驗(yàn)證空間外,場景模型還用作系統(tǒng)級覆蓋模型。由于遍歷圖表的確定性,驗(yàn)證工程師在測試用例生成時(shí)準(zhǔn)確地知道圖表中的最終用戶場景(路徑)和目標(biāo)已被覆蓋。他們不需要收集和整合運(yùn)行時(shí)覆蓋來評估驗(yàn)證進(jìn)度。更重要的是,他們可以避免花費(fèi)數(shù)周時(shí)間運(yùn)行額外的模擬測試,這些測試對覆蓋結(jié)果幾乎沒有任何影響。
場景模型和自動(dòng)測試用例生成形成閉環(huán)覆蓋系統(tǒng)。驗(yàn)證工程師可以指向任何未發(fā)現(xiàn)的路徑或目標(biāo),生成器將生成一個(gè)覆蓋它的測試用例。這同樣適用于跨覆蓋路徑或目標(biāo)。Breker 的 TrekSoC 系列產(chǎn)品提供閉環(huán)覆蓋和場景模型的其他優(yōu)勢。
基于圖的場景模型捕獲關(guān)鍵的設(shè)計(jì)和驗(yàn)證知識(shí),通過通用模型實(shí)現(xiàn) SoC 項(xiàng)目團(tuán)隊(duì)成員之間更好的溝通,減少流程中多個(gè)點(diǎn)的人工工作,加快進(jìn)度,更完整地驗(yàn)證設(shè)計(jì)以增加獲得第一名的機(jī)會(huì)- 硅成功。
審核編輯:郭婷
-
處理器
+關(guān)注
關(guān)注
68文章
19349瀏覽量
230373 -
usb
+關(guān)注
關(guān)注
60文章
7962瀏覽量
265171 -
soc
+關(guān)注
關(guān)注
38文章
4183瀏覽量
218548
發(fā)布評論請先 登錄
相關(guān)推薦
評論