摘 "要: 隨著SoC設計規(guī)模的日益增大,結構逐漸復雜,仿真驗證已經成為Soc設計過程中重要的環(huán)節(jié),其所需時間往往成為整個設計周期的瓶頸,因而研究和應用能夠加快驗證仿真速度的技術變得愈發(fā)重要。Synopsys公司的仿真工具VCS所提供的多核技術就是利用目前計算機所擁有的多個處理器核并行工作,以達到對仿真速度的提升。通過在實際項目中分析和使用多核技術中的設計級并行仿真方法,證明了該多核技術的可行性和有效性。
關鍵詞: SoC驗證; VCS; 多核技術; 設計級并行
中圖分類號: TN710?34 " " " " " " " " " 文獻標識碼: A " " " " " " " " " " " " " "文章編號: 1004?373X(2015)06?0126?03
Research and application of multi?core technology in SoC verification
LIU Rui, SHAO Zhi?yong, KANG Chun?lei, LI Bin
(Verisilicon Inc, Shanghai 201203, China)
Abstract: With the increasing enlargement of SoC design scale and the gradual complexity of its structure, the verification simulation has become an important part of the SoC design process, and its required time often becomes a bottleneck of the entire design cycle, so the research and application of the technology that can speed up the simulation verification is imperative. The multi?core technology offered by Synopsys Company’s simulation tool VCS makes the multiple processors working in parallel to achieve the lifting of the simulation speed. The feasibility and effectiveness of the multi?core technology was proved by analysis in actual project and the design level parallelism (DLP) method which is one of the multi?core technologies.
Keywords: SoC verification; VCS; multi?core technology; design level parallelism
0 "引 "言
近年來,IC設計隨著SoC規(guī)模的不斷擴大,驗證在整個設計流程中所占的比重也越來越大,其所需時間已經占到整個設計周期的70%以上[1?3]。而對于規(guī)模達數(shù)百萬門級,時鐘頻率高達千兆赫茲的集成電路的仿真往往需要很長的時間,因此這一過程也成為設計流程中的瓶頸,制約著整個項目的實際工期[4?6]。如何提高仿真速度以便在有限的時間內覆蓋更多的功能測試點,已經成為一項值得研究的課題。
Synopsys公司的仿真工具VCS提供的多核技術是將仿真過程中的不同部分分配到服務器的多個處理器單元上并行工作,從而達到加速仿真的目的[7]。目前,該多核技術提供了兩種模式:應用級并行方法ALP(Application Level Parallelism)和設計級并行方法DLP(Design Level Parallelism)[8]。
本文主要研究了DLP技術的使用方法,并且對其在實際項目中帶來的仿真速度提升進行了分析。
1 "DLP多核技術的介紹
設計級并行方法DLP是將當前所仿真的對象分割成多個部分,包括一個主模塊(Master)和多個從模塊(Slave)。其中,每個從模塊(Slave)之間需要保持相互的獨立性,不能存在過多的信號交互,尤其不能出現(xiàn)時鐘信號的交互[9]。
通過將這些分割開的部分一一對應到服務器上的各個處理器核上面并行工作,仿真時間可以得到不同程度的縮短。
1.1 "DLP技術的使用條件
DLP技術并不是適用于所有的設計類型,在使用DLP技術之前,必須首先判斷所驗證的設計是否符合下述的使用準則:
(1) 必須分割出至少兩個Slave;
(2) 每一個Slave所消耗的時間需要占整個仿真時間的10%以上;
(3) 所有Slave消耗時間的總和需要占整個仿真時間的50%以上;
(4) 保證驗證環(huán)境所帶來的時間消耗盡可能小。
VCS提供了用于分析性能的Profile工具,該工具可以在仿真過程中生成設計中各個模塊所占用時間的報告,通過對報告的分析來決定是否可以使用DLP技術以及確定對設計進行分割的方法[10]。
使用Profile工具的具體方法如下所示:
(1) 在VCS編譯選項中加入“?simprofile”選項;
(2) 在VCS仿真選項中加入“?simprofile time”選項。
在仿真運行結束后會在當前目錄下自動生成名為“profileReport.html”的報告,選擇基于模塊的視圖,就可以看到整個設計中各個模塊在仿真過程中所消耗的時間。
1.2 "DLP技術的使用方法
在確認所驗證的設計可以使用DLP技術后,VCS提供了兩種方法來對設計進行分割,一種是自動分割方法,另一種是手動分割方法。這里推薦使用手動分割的方法,因為項目工程師更加了解自己當前的設計,知道如何分割更加的合理,而工具提供的自動分割方法可以作為參考。
1.2.1 "自動分割方法
對于自動分割方法的使用,只需在VCS編譯時加入“?parallel+autopart=N”的選項,其中,N是分割后Slave的個數(shù)。如果當前設計適合使用DLP技術,那么VCS將會在當前目錄下生成名為“autopart.cfg”的分割配置文件,而如果當前設計并不適合使用多核技術,那么VCS將會生成名為“autopartFail.txt”的文件來說明分割失敗的原因。
1.2.2 "手動分割方法
對于手動分割方法的使用,只需在VCS編譯時加入“?parallel+design=part.cfg”的選項,其中,“part.cfg”是分割配置文件。該配置文件的具體語法規(guī)則如下:
partition {hierarchical_name(module_identifier),...} ;
其中:“partition”是關鍵詞,代表分割出的一個Slave;“hierarchical_name”是該Slave在整個設計中的層級路徑;“module_identifier”是該Slave對應的模塊定義名字,該配置語句的個數(shù)也就是分割后Slave的個數(shù)。這里需要注意的是,可以將設計中的多個模塊分割在同一個Slave部分中,只需要在配置語句中以逗號隔開這些模塊即可。
2 "DLP多核技術的應用
本文通過在實際項目使用DLP多核技術,成功地縮減了仿真時間,保證了整個項目的驗證工作能夠高效順利地完成。
2.1 "項目介紹
本文所驗證的設計屬于多核類型,主要是由6個Core電路和其他控制電路構成,其系統(tǒng)框圖如圖 1所示。
該設計的數(shù)據(jù)流過程為:芯片通過SPI協(xié)議接收寄存器配置信息和工作任務,主控電路將這些任務分配給Core電路進行計算,Core電路通過一系列的計算過程將最終結果反饋給主控電路。
lt;E:\王芳\現(xiàn)代電子技術201506\現(xiàn)代電子技術15年38卷第6期\Image\29t1.tifgt;
圖1 驗證對象的系統(tǒng)框圖
通過對驗證對象的典型應用進行仿真,并且使用Profile工具統(tǒng)計各個模塊在仿真過程所消耗的時間,可以得到如圖 2所示的結果。
從圖中可以看到,6個Core電路占用了絕大部分的仿真時間(79.70%),而每一個Core電路分別占用的仿真時間都在10%以上,符合DLP技術的使用條件。
lt;E:\王芳\現(xiàn)代電子技術201506\現(xiàn)代電子技術15年38卷第6期\Image\29t2.tifgt;
圖2 驗證對象典型應用的時間消耗圖
2.2 "實驗結果
為了更好地說明DLP技術對仿真速度的提升,本文選取了3個驗證對象的典型應用進行實驗,在每一種應用下,分別進行傳統(tǒng)的單核串行仿真和DLP多核并行仿真,并且采用如表 1所示的3種配置文件對驗證對象進行分割。
2.2.1 "工作量和工作時刻相同
在該場景中,6個Core電路擁有相同的工作量,并且開始工作的時刻也相同,這是該設計在實際應用中最為常見的情況。通過仿真實驗,得到了在不同配置條件下運行所需要的時間,如表2所示。
表1 DLP技術的分割配置文件
表2 工作量和工作時刻相同的仿真運行時間
從表2中可以看出,如果使用傳統(tǒng)的串行方法進行仿真,CPU利用率為100%,即占用一個CPU核運行仿真任務,需要5 471 s才能夠完成一次仿真。而當使用DLP技術,將仿真對象分割為1個Master和2個Slave,CPU利用率將提高到300%,仿真只需要2 633 s即可完成,仿真速度提升了50%以上。同時,隨著Slave分割個數(shù)的增加,仿真速度的提升效果也會隨之增加。當Slave個數(shù)為6時,仿真速度加快了80%以上,效果非常顯著。
2.2.2 "工作量不同
在該場景中只有前3個Core電路被分配有工作任務,而另外3個Core電路并不需要啟動。這種情況得到的仿真結果如表 3所示。
表3 工作量不同的仿真運行時間
從表3中可以看出,使用不同的分割配置文件,DLP技術可以為仿真速度帶來21%~66%不等的提升。與第一種應用場景相比,此處的性能提升有所減少,這是因為有一半的Core電路不需要工作,而將它們單獨分割出來放到某個CPU核運行仿真并不會帶來很多速度上的優(yōu)化。
2.2.3 "工作時刻不同
在該場景中,6個Core電路擁有相同的工作量,但是每個Core電路開始工作的時刻不同,它們是順序地依次打開。這種情況得到的仿真結果如表 4所示。
表4 工作時刻不同的仿真運行時間
從表4中可以看出,DLP技術在不同的分割配置文件情況下為仿真速度帶來最高67%的提升,可以為仿真工作節(jié)省不少的時間。由于每個Core電路開始工作的時刻存在一定的延遲,在整個仿真過程中的某一些時間段,并不是所有的Core電路都在并行的運算,所以該場景性能提升的效果也略低于第一種情況下的數(shù)值。
3 "結 "語
綜上所述,本文重點研究了VCS仿真工具所提供的DLP多核技術,包括其使用條件和使用方法。通過在實際項目中的應用和分析,對于符合DLP技術使用條件的電路設計,該并行技術相較于傳統(tǒng)的單核串行仿真,可以大幅地縮減仿真運行時間,有效地提高驗證工作的效率。因此,多核技術必將成為SoC驗證工作中的一個重要發(fā)展方向。
參考文獻
[1] 吳軍,華更新,劉鴻瑾.SoC驗證方法學研究與應用[J].空間控制技術與應用,2012(5):27?33.
[2] 黃欣.基于UVM的高效驗證平臺設計及運用[J].電子技術與軟件工程,2014(4):28?29.
[3] 宋秀蘭,吳曉波.高性能驗證平臺設計與搭建[J].電子器件,2008(6):1819?1821.
[4] 鄧愛國.基于驗證方法學的IC驗證平臺研究[D].武漢:武漢郵電科學研究院,2009.
[5] PUGH Richard.SoC驗證走出實驗室良機已到[J].中國集成電路,2014(3):36?37.
[6] 汪洋,耿相銘.SoC驗證平臺的聯(lián)合架構設計[J].信息技術,2013(7):75?79.
[7] 代君利.面向多核技術的新一代驗證平臺[J].中國電子商情:基礎電子,2009(5):29?30.
[8] 李響.使用先進技術來加速SoC驗證[J].電子產品世界,2013(12):51?53.
[9] Synopsys. VCS/VCSi user guide [M]. USA: Synopsys, 2014.
[10] Synopsys. VCS/VCSi LCA features [M]. USA: Synopsys, 2014.