芯片設(shè)計(jì)調(diào)試是一門困難的學(xué)科,而片上系統(tǒng) (SoC) 設(shè)計(jì)則更是如此。這就像眾所周知的大海撈針。對(duì)于 SoC 設(shè)計(jì),它是兩個(gè)大海撈針,一個(gè)用于軟件,另一個(gè)用于硬件。軟件開發(fā)團(tuán)隊(duì)經(jīng)常將集體矛頭指向硬件團(tuán)隊(duì),聲稱這是一個(gè)硬件錯(cuò)誤,而硬件團(tuán)隊(duì)則迅速回?fù)?,聲稱這是一個(gè)軟件錯(cuò)誤。如果沒有有效的驗(yàn)證工具來查明問題,就很難知道誰(shuí)是對(duì)的。這就是硬件仿真的用武之地。
硬件仿真對(duì)于調(diào)試硬件和測(cè)試 SoC 設(shè)計(jì)中硬件和軟件的集成非常重要,遠(yuǎn)遠(yuǎn)早于第一個(gè)芯片。當(dāng)工程組的兩個(gè)不同部分(硬件設(shè)計(jì)師和軟件開發(fā)人員)使用仿真時(shí),他們能夠共享相同的系統(tǒng)和設(shè)計(jì)表示。SoC 設(shè)計(jì)的組合軟件和硬件視圖使它們能夠協(xié)同工作以調(diào)試硬件和軟件交互。
作為大多數(shù) SoC 驗(yàn)證流程的基礎(chǔ),硬件仿真允許工程團(tuán)隊(duì)更有策略地進(jìn)行規(guī)劃并實(shí)施基于多個(gè)抽象級(jí)別的調(diào)試方法。工程團(tuán)隊(duì)不必彼此獨(dú)立地鉆進(jìn)兩個(gè)干草堆。相反,他們可以跨嵌入式軟件和底層硬件之間的邊界跟蹤錯(cuò)誤,以確定問題出在軟件還是硬件上。
實(shí)現(xiàn)基于多個(gè)抽象級(jí)別的調(diào)試方法從最高級(jí)別的嵌入式軟件開始,然后在抽象級(jí)別向下移動(dòng)以跟蹤各個(gè)硬件元素的行為。事實(shí)上,從包含數(shù)十億個(gè)時(shí)鐘周期的數(shù)據(jù)庫(kù)開始,軟件調(diào)試器可以將問題定位到幾百萬(wàn)個(gè)時(shí)鐘周期內(nèi)。在這個(gè)級(jí)別,軟件開發(fā)人員可以識(shí)別軟件代碼中的源代碼,或者他們的硬件設(shè)計(jì)同行可以使用軟件感知硬件調(diào)試方法來專注于較低的抽象級(jí)別。該方法要求通過硬件事務(wù)器實(shí)現(xiàn)監(jiān)視器、檢查器和斷言,以避免速度下降并幫助將問題縮小到幾千個(gè)周期。
一旦審查了這兩個(gè)級(jí)別收集的數(shù)據(jù),硬件仿真允許工程組向下移動(dòng)到信號(hào)級(jí)別。它可以通過所識(shí)別時(shí)間段的寄存器傳輸電平(RTL)波形分析信息,并追蹤其可能的來源。要么發(fā)現(xiàn)了硬件錯(cuò)誤,要么清除了硬件故障。如果是后者,它會(huì)迫使決定回到軟件環(huán)境。
導(dǎo)航多個(gè)級(jí)別的調(diào)試抽象
在不同的抽象級(jí)別之間導(dǎo)航——從軟件到硬件再到后面——避免了長(zhǎng)時(shí)間的模擬運(yùn)行和大量的詳細(xì)數(shù)據(jù)。
軟件模擬器無法實(shí)現(xiàn)多級(jí)調(diào)試方法,因?yàn)樗鼈兲鵁o法有效執(zhí)行嵌入式軟件。實(shí)際上,它們將運(yùn)行數(shù)月來處理數(shù)十億個(gè)設(shè)計(jì)周期,這些設(shè)計(jì)的大小達(dá)到數(shù)億個(gè)專用集成電路 (ASIC) 等效門。對(duì)于消費(fèi)電子設(shè)備或任何其他電子設(shè)備的供應(yīng)商來說,這是一個(gè)不可接受的時(shí)間限制。
雖然仍被廣泛使用,但在驗(yàn)證場(chǎng)景中推動(dòng)其成功的原始仿真風(fēng)格的在線仿真 (ICE) 模式現(xiàn)在在基于事務(wù)的驗(yàn)證中面臨著可行的替代方案。從概念上講,這個(gè)想法很簡(jiǎn)單。測(cè)試是在高級(jí)抽象上編寫的,從高級(jí)命令到位級(jí)信號(hào)的轉(zhuǎn)換從測(cè)試臺(tái)轉(zhuǎn)移到稱為事務(wù)器的專用實(shí)體中。通過將事務(wù)處理器映射到硬件仿真器上,與基于仿真的驗(yàn)證相比,可以輕松實(shí)現(xiàn) 5 或 6 個(gè)數(shù)量級(jí)的加速。
工程組使用事務(wù)處理程序來構(gòu)建虛擬測(cè)試環(huán)境,而不是 ICE 物理目標(biāo)系統(tǒng),方法是用一組等效的事務(wù)處理程序替換一組基于 I/O 協(xié)議的速度適配器。
基于事務(wù)的加速簡(jiǎn)化了設(shè)計(jì)調(diào)試。通過完全控制并非由硬件測(cè)試臺(tái)提供的設(shè)計(jì)時(shí)鐘,調(diào)試變得更加容易和高效。通過控制時(shí)鐘頻率,可以停止仿真的被測(cè)設(shè)計(jì) (DUT) 模型、讀取其內(nèi)存內(nèi)容、強(qiáng)制某些寄存器或轉(zhuǎn)儲(chǔ)波形。
傳統(tǒng)上,在 ICE 環(huán)境中調(diào)試需要由來自目標(biāo)系統(tǒng)的不可控時(shí)鐘驅(qū)動(dòng)的硬件邏輯分析儀。該設(shè)置導(dǎo)致了不確定的行為并損害了調(diào)試 DUT 的能力。硬件仿真供應(yīng)商最近通過將其轉(zhuǎn)換為確定性行為的方法解決了 ICE 外圍設(shè)備的隨機(jī)行為。
多層次的協(xié)同驗(yàn)證視角
一旦軟件設(shè)計(jì)人員和硬件開發(fā)人員使用硬件仿真體驗(yàn)了基于事務(wù)的驗(yàn)證,他們的整個(gè)驗(yàn)證視角就會(huì)發(fā)生變化。無需繁瑣的 ICE 硬件即可快速設(shè)置強(qiáng)大的測(cè)試環(huán)境的能力意味著更容易和更有效的調(diào)試。目標(biāo)可能是相同的——在更短的時(shí)間內(nèi)做出更好的設(shè)計(jì)——但現(xiàn)在的體驗(yàn)可能會(huì)變得不那么具有挑戰(zhàn)性。
工程團(tuán)隊(duì)發(fā)現(xiàn)現(xiàn)代硬件仿真器是測(cè)試硬件和在 SoC 設(shè)計(jì)中集成硬件和軟件的必要條件。它使他們能夠更有策略地進(jìn)行規(guī)劃并成功實(shí)施硬件/軟件聯(lián)合驗(yàn)證。
審核編輯:郭婷
-
芯片
+關(guān)注
關(guān)注
455文章
50714瀏覽量
423136 -
嵌入式
+關(guān)注
關(guān)注
5082文章
19104瀏覽量
304796 -
soc
+關(guān)注
關(guān)注
38文章
4161瀏覽量
218160
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論