新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 通過(guò)將SystemC和SystemVerilog集成在單個(gè)環(huán)境中獲得事務(wù)級(jí)建模和高級(jí)驗(yàn)證功能

通過(guò)將SystemC和SystemVerilog集成在單個(gè)環(huán)境中獲得事務(wù)級(jí)建模和高級(jí)驗(yàn)證功能

作者: 時(shí)間:2017-06-06 來(lái)源:網(wǎng)絡(luò) 收藏
盡管業(yè)界對(duì)SystemC或SystemVerilog哪個(gè)更適用于系統(tǒng)設(shè)計(jì)和驗(yàn)證仍有爭(zhēng)論,但已經(jīng)不需要在兩個(gè)之間作出選擇。通過(guò)互補(bǔ)的方式對(duì)它們高效地加以利用可以促進(jìn)那些高級(jí)驗(yàn)證方法的成功運(yùn)用。這些高級(jí)驗(yàn)證方法通常會(huì)采用受限隨機(jī)測(cè)試生成、功能覆蓋、聲明和事務(wù)級(jí)建模(TLM)功能。

通過(guò)支持面向?qū)ο蟮木幊谭椒?,這兩種語(yǔ)言都能對(duì)更高層的抽象進(jìn)行建模,而且都包含象隨機(jī)化這樣的驗(yàn)證組件。兩者之間也有些區(qū)別。例如SystemC完全支持TLM,包括在高層抽象進(jìn)行描述、記錄和事務(wù)瀏覽;而SystemVerilog不完全支持TLM,但它支持聲明、功能覆蓋和改進(jìn)的受限隨機(jī)測(cè)試生成功能,因此也具有顯著的驗(yàn)證優(yōu)勢(shì)。這兩種語(yǔ)言在功能上多少有些重疊,因此用這兩種語(yǔ)言建立系統(tǒng)時(shí)可以做到平滑轉(zhuǎn)換。

可以在多個(gè)抽象層實(shí)現(xiàn)的高級(jí)驗(yàn)證方法和建模技術(shù)能夠最佳地發(fā)揮TLM的優(yōu)勢(shì)。事務(wù)常用于建模硬件系統(tǒng),而系統(tǒng)軟件的語(yǔ)義很容易被表示為高層事務(wù)。這樣系統(tǒng)架構(gòu)師、軟件、驗(yàn)證和硬件工程師之間就能直接進(jìn)行交流。更高層抽象和TLM可以使大量軟件被用作測(cè)試平臺(tái)的一部分,并允許在RTL編碼完成之前開(kāi)始測(cè)試平臺(tái)開(kāi)發(fā)。當(dāng)RTL設(shè)計(jì)實(shí)現(xiàn)時(shí),驗(yàn)證工程師就可以插入將RTL事務(wù)轉(zhuǎn)換成信號(hào)層事務(wù)的事務(wù)處理器。

另外,設(shè)計(jì)領(lǐng)域和學(xué)科之間的這種高性能橋梁可以改善公司各個(gè)設(shè)計(jì)與驗(yàn)證團(tuán)隊(duì)的所有成員之間的交流和合作。它允許軟件工程師和系統(tǒng)架構(gòu)師與驗(yàn)證和硬件工程師直接分享數(shù)據(jù)。這種交叉學(xué)科交流本身也有助于發(fā)現(xiàn)和解決設(shè)計(jì)過(guò)程早期出現(xiàn)的問(wèn)題,從而進(jìn)一步提高設(shè)計(jì)質(zhì)量和驗(yàn)證的產(chǎn)能。


圖1:在多個(gè)抽象層工作并使用高級(jí)驗(yàn)證方法可以為系統(tǒng)級(jí)平臺(tái)的建立提供極好的機(jī)會(huì),此時(shí)驗(yàn)證復(fù)雜SoC所需的多學(xué)科匯聚要比以前早得多。

標(biāo)準(zhǔn)集成可進(jìn)一步方便高級(jí)驗(yàn)證

設(shè)計(jì)復(fù)雜性意味著驗(yàn)證小組必須能夠產(chǎn)生更多冗余度更少的測(cè)試,以便更快地覆蓋目標(biāo)性能。最佳的驗(yàn)證解決方案可以幫助工程師利用高級(jí)驗(yàn)證技術(shù)和方法實(shí)現(xiàn)更高的驗(yàn)證產(chǎn)能,例如基于聲明的驗(yàn)證、受約束的隨機(jī)測(cè)試、功能覆蓋和測(cè)試平臺(tái)自動(dòng)化。

這些方法已被一些前沿設(shè)計(jì)公司所采用,其中大多數(shù)設(shè)計(jì)公司開(kāi)發(fā)私有工具來(lái)支持這些方法。這些私有工具被證明可以增加驗(yàn)證效率和產(chǎn)能,并能提高設(shè)計(jì)質(zhì)量。然而,私有特性也阻礙了這些工具的廣泛采納。通常這些定制語(yǔ)言的集成以及獨(dú)立內(nèi)核和專(zhuān)用接口的整合限制被證明是相當(dāng)困難的。

克服這些障礙的第一步是由公認(rèn)的標(biāo)準(zhǔn)組織如OSCI、Accellera和IEEE開(kāi)發(fā)出標(biāo)準(zhǔn)的驗(yàn)證語(yǔ)言和庫(kù)。這些新語(yǔ)言也必須克服其它HDL語(yǔ)言的設(shè)計(jì)與驗(yàn)證限制,因?yàn)檫@些HDL語(yǔ)言缺少對(duì)更高層抽象的驗(yàn)證支持。第二步是提供能夠全面支持在單個(gè)內(nèi)核和用戶(hù)接口中集成這些語(yǔ)言的仿真環(huán)境。這種語(yǔ)言的集成可以從根本上改變高級(jí)驗(yàn)證方法的部署,使之最佳匹配項(xiàng)目需要,而不受語(yǔ)言或工具的限制。

SystemVerilog和SystemC是適合高級(jí)設(shè)計(jì)與驗(yàn)證使用的最重要語(yǔ)言。SystemVerilog和SystemC設(shè)計(jì)構(gòu)造允許在更高抽象層進(jìn)行建模,從而有利于下一代設(shè)計(jì)的創(chuàng)建與驗(yàn)證。

SystemVerilog是許多現(xiàn)成的專(zhuān)有和標(biāo)準(zhǔn)驗(yàn)證與設(shè)計(jì)語(yǔ)言積累的結(jié)果,因此它能與現(xiàn)有的HDL環(huán)境無(wú)縫集成。SystemVerilog可以加快高級(jí)功能驗(yàn)證的構(gòu)建,實(shí)現(xiàn)缺陷檢測(cè)的自動(dòng)化和設(shè)計(jì)的完全覆蓋,包括難以預(yù)料的偏僻案例。它能改善建模質(zhì)量,使之具有更好的可視性和更少的缺陷,并且能夠通過(guò)支持受限隨機(jī)測(cè)試、自動(dòng)化、聲明、覆蓋和測(cè)試平臺(tái)復(fù)用改善測(cè)試平臺(tái)架構(gòu)的質(zhì)量。

SystemC能讓工程師在更高抽象層捕獲設(shè)計(jì),并使用包括軟件在內(nèi)的高層測(cè)試策略執(zhí)行驗(yàn)證。系統(tǒng)級(jí)測(cè)試平臺(tái)也可以在RTL級(jí)復(fù)用,實(shí)現(xiàn)驗(yàn)證產(chǎn)能的提高。SystemC包括一個(gè)功能強(qiáng)大的并發(fā)建模層,非常方便創(chuàng)建無(wú)時(shí)序、并發(fā)的系統(tǒng)級(jí)架構(gòu)模型。因?yàn)镾ystemC是C++的擴(kuò)展,因此它有許多固有屬性,如類(lèi)、模板和多種繼承性,這些屬性自己就能建立適合功能驗(yàn)證的可復(fù)用事務(wù)級(jí)組件。用于開(kāi)發(fā)軟件的同一可執(zhí)行平臺(tái)常被用于整個(gè)系統(tǒng)的驗(yàn)證。這種驗(yàn)證在項(xiàng)目初期就會(huì)發(fā)生,而事務(wù)級(jí)模型可以成為整個(gè)系統(tǒng)非常好的參考。

一個(gè)全面集成的多語(yǔ)言仿真環(huán)境允許用SystemVerilog或SystemC編寫(xiě)的高級(jí)測(cè)試平臺(tái)和設(shè)計(jì)組件使用任何設(shè)計(jì)語(yǔ)言。混合和匹配多個(gè)語(yǔ)言的能力可以使設(shè)計(jì)人員在多個(gè)抽象層上共享數(shù)據(jù),并在單次仿真中集成多個(gè)運(yùn)算模型。不管設(shè)計(jì)人員處于哪個(gè)設(shè)計(jì)階段,工程師都可以使用事務(wù)器接口從不同抽象層連接即插即用模型,從而滿(mǎn)足不同層的需求。這樣不僅擴(kuò)展了通過(guò)接口的數(shù)據(jù)類(lèi)型,還能對(duì)包括VHDL在內(nèi)的所有標(biāo)準(zhǔn)語(yǔ)言之間的測(cè)試平臺(tái)復(fù)用提供支持,從而推進(jìn)高級(jí)驗(yàn)證方法的廣泛采用。

進(jìn)一步的功能驗(yàn)證

高效驗(yàn)證需要兩個(gè)關(guān)鍵要素,而這兩個(gè)要素都可以由SystemVerilog和SystemC保證。首先,驗(yàn)證環(huán)境必須能夠盡可能自動(dòng)地檢測(cè)缺陷,在這樣的環(huán)境中象聲明、自動(dòng)化響應(yīng)檢查器和記分板等功能都會(huì)派上用場(chǎng)。其次,驗(yàn)證環(huán)境必須能夠產(chǎn)生能引起缺陷的正確激勵(lì)信號(hào)。激勵(lì)可以通過(guò)定向測(cè)試或受限隨機(jī)技術(shù)生成,這些技術(shù)能以相對(duì)較少的代碼遍歷各種情況。

SystemVerilog和SystemC SCV允許用戶(hù)在約束方面描述激勵(lì)情景,規(guī)定驅(qū)動(dòng)設(shè)計(jì)的信號(hào)或事務(wù)所需的邏輯值。這樣仿真器可以為激勵(lì)產(chǎn)生隨機(jī)值,并具有能確保所生成的情景有效的約束條件。新的情景可以通過(guò)簡(jiǎn)單地重新運(yùn)行具有不同隨機(jī)種子的仿真器形成,從而產(chǎn)生不同但等同有效的激勵(lì),因此可以用來(lái)檢查新的功能。

使用隨機(jī)化和約束條件可以在驗(yàn)證產(chǎn)能方面產(chǎn)生許多實(shí)質(zhì)性的改善。其它語(yǔ)言只能通過(guò)使用面向?qū)ο蠡蛎嫦蚍绞降膹?fù)雜編程技術(shù)才能提供這些性能。雖然SystemVerilog在其面向?qū)ο蟮募軜?gòu)中包括隨機(jī)化和約束條件,但它也能提供多種方式來(lái)部署這些性能,而且不需要學(xué)習(xí)面向?qū)ο蟮木幊碳夹g(shù),因此這些先進(jìn)技術(shù)得到了廣泛使用。

一旦測(cè)試平臺(tái)中整合了隨機(jī)化功能,就需要通過(guò)功能覆蓋判斷實(shí)際上可能會(huì)發(fā)生哪一種情景。SystemVerilog功能覆蓋將跟蹤設(shè)計(jì)的哪個(gè)功能會(huì)被運(yùn)用,因此不會(huì)在同一功能上浪費(fèi)時(shí)間。

橋接設(shè)計(jì)和小組層次

因?yàn)榭紤]驗(yàn)證過(guò)程的前后總是有所幫助,因此高效的方法是把測(cè)試平臺(tái)的重點(diǎn)放在設(shè)計(jì)該做什么,而不要放在如何做設(shè)計(jì)上。最便利的做事方式是在事務(wù)級(jí)編寫(xiě)測(cè)試平臺(tái)。提高抽象層次可以增加產(chǎn)能,因?yàn)檫@樣可以使高層功能得到驗(yàn)證,并且糾正速度比較低抽象層快??梢酝ㄟ^(guò)某種自動(dòng)方式使用受限隨機(jī)、聲明、形式或其它技術(shù)處理細(xì)節(jié),也可以在更廣泛的設(shè)計(jì)和驗(yàn)證工程師之間劃分細(xì)節(jié)。

事務(wù)是指在受限時(shí)間周期內(nèi)系統(tǒng)中發(fā)生的所有活動(dòng)集合。感興趣活動(dòng)在特定時(shí)間開(kāi)始,在一段時(shí)間后結(jié)束。在特定設(shè)計(jì)單元中或在兩個(gè)單元之間發(fā)生的所有操作、狀態(tài)修改、數(shù)據(jù)移動(dòng)和運(yùn)算都是事務(wù)。事務(wù)級(jí)模型用來(lái)在高層抽象描述復(fù)雜系統(tǒng),允許設(shè)計(jì)師在進(jìn)入完整實(shí)現(xiàn)的低層細(xì)節(jié)之前解決架構(gòu)問(wèn)題。在功能驗(yàn)證方面,基于事務(wù)的測(cè)試平臺(tái)允許驗(yàn)證工程師在構(gòu)思設(shè)計(jì)的層次驗(yàn)證正確操作。

因?yàn)槭聞?wù)級(jí)模型提供的細(xì)節(jié)要比Verilog和VHDL RTL模型少得多,因此與在寄存器傳輸級(jí)建模的可執(zhí)行平臺(tái)相比,它們?cè)诜抡鏁r(shí)的運(yùn)行速度非???。SystemC事務(wù)模型也很快,甚至可以用作軟件開(kāi)發(fā)平臺(tái),從而支持早期的軟件開(kāi)發(fā)和軟硬件協(xié)同仿真。另外,事務(wù)級(jí)和SystemC功能模型也具有足夠快的速度,可用于系統(tǒng)級(jí)架構(gòu)化建模和分析。

事務(wù)瀏覽功能可使SystemC TLM供從事項(xiàng)目的所有工程師使用,從而進(jìn)一步提高設(shè)計(jì)和調(diào)試的效率。SystemC和TLM可以為系統(tǒng)架構(gòu)師和編程人員建立多產(chǎn)的公共平臺(tái)。事務(wù)的可視性可以表明由模型產(chǎn)生和消耗的特殊事務(wù)序列以及彼此之間的關(guān)系。

SystemC和TLM還能為所有等級(jí)的設(shè)計(jì)層次上的復(fù)用提供重要的機(jī)會(huì)。例如,硬件設(shè)計(jì)師可以在預(yù)先定義的接口上用較低層RTL模型代替高層C模型。通過(guò)復(fù)用不同抽象層上的測(cè)試平臺(tái)組件可以在多個(gè)工程學(xué)科之間建立聯(lián)系路徑,增加信息共享,提高效率。

集成語(yǔ)言的價(jià)值

將多個(gè)先進(jìn)的編程語(yǔ)言集成在單個(gè)環(huán)境中可以使硬件設(shè)計(jì)師選擇復(fù)用用SystemC編寫(xiě)的測(cè)試平臺(tái),或選擇用SystemVerilog創(chuàng)建的額外驗(yàn)證組件?,F(xiàn)在架構(gòu)師、編程人員和硬件設(shè)計(jì)師可以充分利用具有SystemVerilog聲明、受限隨機(jī)生成、功能覆蓋和測(cè)試平臺(tái)自動(dòng)化等功能的可復(fù)用測(cè)試平臺(tái)組件。

有許多理由要求在同一仿真中整合用不同語(yǔ)言編寫(xiě)的以及在不同抽象層次的模塊。IP有許多來(lái)源,也有許多種形式。而且在集成過(guò)程中,很有可能所有的模塊不會(huì)同時(shí)出現(xiàn)在相同的抽象層次。比如,在自頂向下的流程中,原本所有模塊都是事務(wù)級(jí)模型。在逐步調(diào)整的過(guò)程中,一些模塊會(huì)被RTL所替換。

SystemVerilog直接編程接口(DPI)可以在SystemC和SystemVerilog之間提供必要的高性能、易用性鏈接。有了SystemVerilog DPI后,系統(tǒng)架構(gòu)師和軟件工程師就可以用SystemC做設(shè)計(jì),然后直接移動(dòng)到SystemVerilog域進(jìn)行驗(yàn)證,并允許他們充分利用受限隨機(jī)技術(shù)、測(cè)試平臺(tái)自動(dòng)化、聲明和功能覆蓋等功能。

因?yàn)槭侵苯舆B接,SystemVerilog DPI要比編程語(yǔ)言接口(PLI)等標(biāo)準(zhǔn)應(yīng)用編程接口(API)更便利更快速。SystemVerilog面向?qū)ο蟮奶匦砸哺菀讋?chuàng)建可復(fù)用測(cè)試環(huán)境,因?yàn)樗试S約束和其它方面通過(guò)繼承進(jìn)行控制或覆蓋。不過(guò)對(duì)于不準(zhǔn)備或不愿意從事面向?qū)ο蟮木幊倘藛T而言,在事務(wù)級(jí)編寫(xiě)測(cè)試和約束的能力也能顯著增加測(cè)試效率。


SystemVerilog DPI開(kāi)放了一個(gè)公共的通信通道,因此允許跨越許多語(yǔ)言和引擎實(shí)現(xiàn)測(cè)試平臺(tái)的復(fù)用。

統(tǒng)一的驗(yàn)證環(huán)境

為了充分發(fā)揮這種混合語(yǔ)言環(huán)境的先進(jìn)驗(yàn)證性能,設(shè)計(jì)小組需要一個(gè)基于標(biāo)準(zhǔn)的解決方案,以便他們利用每種語(yǔ)言的長(zhǎng)處,包括可應(yīng)用于多個(gè)抽象層的可復(fù)用驗(yàn)證組件。

仿真仍然是高級(jí)驗(yàn)證方法的核心。仿真器應(yīng)該從根本上支持SystemVerilog、SystemC、Verilog和VHDL。對(duì)單個(gè)內(nèi)核中HDL和高層驗(yàn)證語(yǔ)言的根本性支持可以獲得更快的性能和高度集成的調(diào)試和分析環(huán)境。如果在使用公共圖形用戶(hù)接口的統(tǒng)一內(nèi)核中支持所有的語(yǔ)言,并且語(yǔ)言的混合是透明的,那么肯定能獲得很大的靈活性,語(yǔ)言之間也很容易移植。

仿真器應(yīng)該將SystemVerilog和SystemC的設(shè)計(jì)與驗(yàn)證功能集成在統(tǒng)一的環(huán)境中,并設(shè)定最大化產(chǎn)能的階段。一個(gè)全面的混合語(yǔ)言設(shè)計(jì)環(huán)境允許用SystemVerilog或SystemC編寫(xiě)的高級(jí)測(cè)試平臺(tái)與包括Verilg或VHDL在內(nèi)的任何設(shè)計(jì)語(yǔ)言一起使用。

這樣,架構(gòu)師和設(shè)計(jì)師就可以選用他們所專(zhuān)長(zhǎng)的任何語(yǔ)言,然后與項(xiàng)目的其他成員一起共享成果。在不同學(xué)科之間的這座橋梁可建立用于開(kāi)放通信線的整體協(xié)作過(guò)程。結(jié)果將形成在線對(duì)話(huà),使得許多問(wèn)題和機(jī)會(huì)可以在設(shè)計(jì)開(kāi)發(fā)過(guò)程的早期獲得討論澄清,而此時(shí)這些問(wèn)題解決起來(lái)會(huì)更容易,代價(jià)也較低。

高級(jí)驗(yàn)證方法和事務(wù)級(jí)建模的有機(jī)結(jié)合可以創(chuàng)造出極大的靈活性,顯著地提高驗(yàn)證產(chǎn)能和設(shè)計(jì)質(zhì)量,同時(shí)在系統(tǒng)架構(gòu)師、軟件設(shè)計(jì)師、硬件設(shè)計(jì)師和驗(yàn)證工程師之間促成更好的交流。使用高層SystemC和事務(wù)級(jí)模型可以加速設(shè)計(jì)創(chuàng)建,推進(jìn)架構(gòu)化選擇的開(kāi)發(fā)。SystemVerilog可以通過(guò)聲明和功能覆蓋等高級(jí)驗(yàn)證技術(shù)加快系統(tǒng)有效性的確認(rèn)。


評(píng)論


技術(shù)專(zhuān)區(qū)

關(guān)閉