RCC協(xié)處理器技術(shù)加速網(wǎng)絡(luò)芯片的設(shè)計(jì)驗(yàn)證
目前,為了將語音和數(shù)據(jù)集成到一個(gè)數(shù)據(jù)網(wǎng)絡(luò)中,網(wǎng)絡(luò)供應(yīng)商正努力提高端口密度、增大端口帶寬、增大信息包長度并提供先進(jìn)的通信管制功能,以便提高網(wǎng)絡(luò)數(shù)據(jù)服務(wù)產(chǎn)品的附加值。為此,要設(shè)計(jì)具備上述所有功能的網(wǎng)絡(luò)芯片,就必須增加測(cè)試項(xiàng)目來驗(yàn)證日益增加的各個(gè)功能組,從而使單個(gè)和回歸測(cè)試項(xiàng)目的仿真時(shí)間大為增加。 在提高仿真速度的所有方法中,RCC協(xié)處理器技術(shù)是加速設(shè)計(jì)驗(yàn)證的最有力工具,它使用方便,能夠沿用現(xiàn)有的設(shè)計(jì)方法和動(dòng)態(tài)校驗(yàn)、熱交換以及波形提取等調(diào)試工具,因而是大型系統(tǒng)級(jí)芯片(SoC)設(shè)計(jì)驗(yàn)證的明智選擇。 集成度等同于復(fù)雜性 過去,網(wǎng)絡(luò)器件相對(duì)都比較簡(jiǎn)單,它由一個(gè)網(wǎng)絡(luò)端口、一個(gè)存儲(chǔ)端口、一個(gè)CPU配置端口以及一個(gè)或多個(gè)專有系統(tǒng)端口構(gòu)成。當(dāng)網(wǎng)絡(luò)數(shù)據(jù)出現(xiàn)時(shí),器件的主要功能是將網(wǎng)絡(luò)數(shù)據(jù)發(fā)送到系統(tǒng)端口。通常,網(wǎng)絡(luò)器件配備一個(gè)FIFO存儲(chǔ)器按順序?qū)?shù)據(jù)從網(wǎng)絡(luò)傳送到系統(tǒng)。這些器件的驗(yàn)證過程簡(jiǎn)單,通過接口以各種速率產(chǎn)生和發(fā)送長度不同的信息包,并保證由系統(tǒng)輸出的信息包在正確的目的地端口能夠完整無缺地接收。 一個(gè)基于SoC技術(shù)的增強(qiáng)性網(wǎng)絡(luò)系統(tǒng)芯片的組成部分可能包括:若干具有多個(gè)隊(duì)列的網(wǎng)絡(luò)端口、一個(gè)具有鏈接表結(jié)構(gòu)的大型快速存儲(chǔ)端口、高級(jí)IP安全功能(Ipsec)、一個(gè)系統(tǒng)或光纖端口以及一個(gè)或多個(gè)嵌入式處理器或DSP。過去,這種系統(tǒng)可能由多家設(shè)計(jì)公司或多個(gè)設(shè)計(jì)團(tuán)隊(duì)開發(fā),然后由網(wǎng)絡(luò)供應(yīng)商將多個(gè)芯片集成到電路板上,每個(gè)設(shè)計(jì)團(tuán)隊(duì)或公司分別設(shè)計(jì)和驗(yàn)證每種芯片。利用高密SoC技術(shù),現(xiàn)在可以把上述所有組件集成到單芯片上,因而網(wǎng)絡(luò)供應(yīng)商可以自行開發(fā)單個(gè)模塊或購買IP來設(shè)計(jì)芯片,但是設(shè)計(jì)完成之后,必須驗(yàn)證所有組件和接口的功能。
多網(wǎng)絡(luò)端口和高帶寬要求意味著需要更高級(jí)更復(fù)雜的內(nèi)存管理子系統(tǒng),該子系統(tǒng)管理的功能包括:多隊(duì)列和多數(shù)據(jù)路徑、多任務(wù)控制/多數(shù)據(jù)緩沖區(qū)描述信息、循環(huán)緩沖區(qū)以及其他功能。具備數(shù)據(jù)加密和壓縮的IP安全結(jié)構(gòu)要集成到數(shù)據(jù)路徑之中,就像用數(shù)據(jù)流算法來減少處理時(shí)間和延遲一樣,其結(jié)構(gòu)之復(fù)雜要求必須驗(yàn)證所有的內(nèi)存訪問組合以及數(shù)據(jù)路徑。 此外,嵌入式處理器子系統(tǒng)的應(yīng)用也在增加。設(shè)計(jì)人員對(duì)嵌入式處理器進(jìn)行編程,來完成系統(tǒng)管理和接口、控制信息包的解析、確定優(yōu)先級(jí)以及確保信息包進(jìn)入恰當(dāng)?shù)年?duì)列。在可編程處理器中,要采用協(xié)同驗(yàn)證方法,它不僅需要進(jìn)行硬件驗(yàn)證,還要利用盡可能多的應(yīng)用程序代碼進(jìn)行軟件仿真。由于軟件和硬件緊密依存,如果芯片的功能或接口未得到充分驗(yàn)證,那么該芯片就有可能報(bào)廢,或者達(dá)不到預(yù)期的功能,或者削弱系統(tǒng)的性能。 增加功能驗(yàn)證覆蓋的方法之一是采用隨機(jī)仿真,該方法盡可能地將設(shè)計(jì)和測(cè)試基準(zhǔn)的參數(shù)進(jìn)行隨機(jī)處理,以便找到過去未曾識(shí)別到的情形。大多數(shù)的隨機(jī)仿真利用由HDL語言程序設(shè)計(jì)的隨機(jī)數(shù)發(fā)生器,為確保隨機(jī)仿真具備真正的隨機(jī)性,需要執(zhí)行大量重復(fù)的仿真。 設(shè)計(jì)驗(yàn)證的新方法 網(wǎng)絡(luò)供應(yīng)商正在其芯片中執(zhí)行數(shù)據(jù)流量生成算法以傳送可區(qū)分的服務(wù)類型。保護(hù)帶寬和服務(wù)質(zhì)量是下一代系統(tǒng)的基本性能。實(shí)現(xiàn)保護(hù)帶寬的方法之一是自適應(yīng)信息包標(biāo)記,該方法根據(jù)網(wǎng)絡(luò)支持的情況,采用優(yōu)先級(jí)技術(shù)對(duì)經(jīng)過適當(dāng)標(biāo)記的信息包進(jìn)行處理,并依靠網(wǎng)絡(luò)邊緣的智能傳輸控制機(jī)制實(shí)現(xiàn)所要求的數(shù)據(jù)吞吐量。與隨機(jī)早期終止(RED)算法結(jié)合,隊(duì)列管理機(jī)制在區(qū)別服務(wù)方面取得了巨大進(jìn)展。當(dāng)隊(duì)列長度超過某一個(gè)閾值時(shí),RED方法按照給定的概率隨機(jī)終止信息包的傳輸。終止概率取決于隊(duì)列長度和最后一個(gè)信息包終止傳輸所花費(fèi)的時(shí)間。由于分配給經(jīng)過標(biāo)記的信息包的終止概率小于未經(jīng)標(biāo)記的信息包,隊(duì)列管理機(jī)制優(yōu)先處理經(jīng)過標(biāo)記的信息包,優(yōu)先級(jí)較高的信息包能獲得保護(hù)帶寬。 傳統(tǒng)的驗(yàn)證技術(shù)不包括所有可能的工作條件,網(wǎng)絡(luò)算法如此高級(jí),使得設(shè)計(jì)驗(yàn)證面臨更大的困難。過去,驗(yàn)證技術(shù)對(duì)單獨(dú)的設(shè)計(jì)功能獨(dú)立測(cè)試,并且在多個(gè)工作站上同時(shí)進(jìn)行驗(yàn)證,許多網(wǎng)絡(luò)公司已經(jīng)采用這種驗(yàn)證技術(shù)在工作站農(nóng)場(chǎng)上并行執(zhí)行多個(gè)仿真??墒?,隨著RED和自適應(yīng)信息包標(biāo)記等更高級(jí)算法的普及應(yīng)用,仿真時(shí)間要比過去長得多才能驗(yàn)證所實(shí)現(xiàn)的算法之功效,并發(fā)現(xiàn)過去由隨機(jī)仿真難以識(shí)別的故障。 收斂時(shí)間 與純數(shù)據(jù)網(wǎng)絡(luò)相比,話音網(wǎng)絡(luò)對(duì)信息包大小的要求更高。然而,對(duì)于話音和數(shù)據(jù)合一網(wǎng)絡(luò),信息包大小的動(dòng)態(tài)變化取決于發(fā)送的信息類型。壓縮話音信息包的清晰度在一定程度上依賴于信息包丟失率和等待遲到信息包所花費(fèi)的時(shí)間??山邮艿男畔鼇G失率是信息包大小的函數(shù)。對(duì)于包含20ms話音數(shù)據(jù)的極小信息包,丟失50%的話音是可以接受的。在一個(gè)具有自適應(yīng)擁塞控制的因特網(wǎng)協(xié)議網(wǎng)絡(luò)中,信息包大小可以根據(jù)網(wǎng)絡(luò)狀態(tài)調(diào)整,另一方面,信息包呈現(xiàn)增大的趨勢(shì),這樣可以降低處理開銷,并增加大型數(shù)據(jù)包的傳輸吞吐量。使用較長數(shù)據(jù)信息包和壓縮話音信息包進(jìn)行仿真,可以驗(yàn)證器件在兩個(gè)極端情況下的行為,同時(shí)需要更多仿真時(shí)間和更多計(jì)算資源。 驗(yàn)證吞吐量難以提高的原因很多,它們包括:系統(tǒng)復(fù)雜度和驗(yàn)證要求的不斷增加;隨機(jī)仿真和回歸仿真的運(yùn)行更長;更新的高級(jí)算法不斷涌現(xiàn);嵌入式處理器協(xié)同驗(yàn)證和大型信息包的應(yīng)用等。在最快的工作站中采用最快的編譯仿真器,系統(tǒng)級(jí)仿真每秒占用2到10個(gè)機(jī)器周期是正常的。在不改變?cè)O(shè)計(jì)方法的條件下,任何提高仿真性能的方法都是適當(dāng)?shù)摹? 經(jīng)過加速的仿真方法 硬件系統(tǒng)能夠把仿真速度提高一個(gè)數(shù)量級(jí),這些硬件系統(tǒng)包括:硬件模擬、硬件加速和可重配置計(jì)算。 在可重配置計(jì)算協(xié)處理器技術(shù)中,所采用的協(xié)處理器包含可對(duì)每個(gè)設(shè)計(jì)專門配置的巨量并行計(jì)算單元結(jié)構(gòu),一個(gè)計(jì)算單元就是專門執(zhí)行一個(gè)函數(shù)運(yùn)算的小型精簡(jiǎn)處理器,例如由Verilog RTL的“case”和“if”語句構(gòu)成的仿真。 經(jīng)過評(píng)估各種加速仿真技術(shù),我們決定選用RCC技術(shù),其運(yùn)行環(huán)境是Axis系統(tǒng)公司提供的Xcite軟件和Sun微系統(tǒng)公司提供的工作站,Xcite軟件支持軟件和硬件驗(yàn)證并提供透明接入RCC技術(shù)的支持。Xcite軟件工具還包含運(yùn)行在Sun微處理器上的已編譯仿真器,從而可運(yùn)行和驗(yàn)證行為級(jí)Verilog和C語言應(yīng)用程序,并利用RCC技術(shù)加速RTL和門級(jí)驗(yàn)證。
驗(yàn)證實(shí)例是用于吉比交換路由器的百萬門級(jí)Verilog SoC設(shè)計(jì)。該設(shè)計(jì)包含500Kb存儲(chǔ)器。邏輯模塊由大約一百萬個(gè)ASIC門構(gòu)成,內(nèi)部包括若干門控時(shí)鐘電路和9個(gè)物理時(shí)鐘。設(shè)計(jì)采用Verilog RTL形式描述,通過一個(gè)測(cè)試基準(zhǔn)在行為級(jí)Verilog和定制C應(yīng)用程序代碼上仿真芯片,行為級(jí)Verilog和定制C應(yīng)用程序代碼之間通過Verilog編程設(shè)計(jì)語言接口(PLI)鏈接。 仿真是關(guān)鍵環(huán)節(jié) 在編寫Verilog代碼之前,要用C語言編寫仿真模型來仿真網(wǎng)絡(luò)路由器的體系結(jié)構(gòu)。而在硬件設(shè)計(jì)之前,要用C參考模型來仿真和驗(yàn)證結(jié)構(gòu)的實(shí)現(xiàn),這包括數(shù)據(jù)隊(duì)列數(shù)、加密與壓縮方法以及信息包優(yōu)先處理方法。通過全模型的應(yīng)用,結(jié)構(gòu)仿真就可以最小軟保護(hù)帶寬驗(yàn)證預(yù)期的信息包延遲,此外,結(jié)構(gòu)仿真也可以根據(jù)隊(duì)列長度終止的隨機(jī)信息包來測(cè)試RED。 由于本設(shè)計(jì)的復(fù)雜度很高,結(jié)構(gòu)C模型可作為預(yù)期結(jié)果的參考模型,因此,C模型要集成到仿真過程之中,以便在仿真失配發(fā)生時(shí)檢測(cè)失配。要從C環(huán)境產(chǎn)生所有的測(cè)試項(xiàng)目,并將激勵(lì)施加到關(guān)鍵C模型和Verilog RTL設(shè)計(jì)上。 為了識(shí)別調(diào)試失配,結(jié)構(gòu)C模型包含與硬件模型匹配的內(nèi)部狀態(tài)。通過比較設(shè)計(jì)內(nèi)部狀態(tài)可以檢測(cè)出失配的原因。為了確定RTL仿真出錯(cuò)的原因,必須捕獲RTL仿真的所有關(guān)鍵的內(nèi)部狀態(tài)。 在使用RCC仿真加速技術(shù)之前,通常要將仿真工作分配給由二十多個(gè)Sun工作站和服務(wù)器構(gòu)成的計(jì)算農(nóng)場(chǎng)。有時(shí)需要幾周時(shí)間,仿真才能檢測(cè)出設(shè)計(jì)錯(cuò)誤,到那時(shí),RTL設(shè)計(jì)的原始仿真模型通常已經(jīng)發(fā)生了很大變化,因而不得不重新仿真最新的設(shè)計(jì)或者修正設(shè)計(jì),這個(gè)過程需要花費(fèi)數(shù)周的仿真時(shí)間以便驗(yàn)證所做的變化是否正確。顯然,提高仿真速度將提高設(shè)計(jì)效率。 優(yōu)化RTL設(shè)計(jì) 在RTL設(shè)計(jì)中,設(shè)計(jì)人員插入綜合控制指令,以指導(dǎo)邏輯綜合門級(jí)編譯過程,取得******性能和最小門數(shù)量,然而,這些綜合指令并不是仿真模型,它們只是RTL設(shè)計(jì)注釋。結(jié)果,當(dāng)比較RTL仿真和門級(jí)仿真結(jié)果時(shí),額外的綜合控制指令常常導(dǎo)致仿真失配。 為了在門級(jí)運(yùn)行邏輯綜合或者在仿真之前盡早識(shí)別和隔離RTL級(jí)的設(shè)計(jì)問題,要采用新的分類工具組,以便在仿真時(shí)執(zhí)行動(dòng)態(tài)核查,例如采用Axis公司的Xsim Xaminer工具。動(dòng)態(tài)核查工具可以在RTL仿真時(shí)精確查找潛在的設(shè)計(jì)實(shí)現(xiàn)問題。與靜態(tài)設(shè)計(jì)核查相比,RTL動(dòng)態(tài)核查工具具備根據(jù)綜合控制指令和自動(dòng)檢測(cè)仿真結(jié)果差異的內(nèi)在智能特性。動(dòng)態(tài)核查還可以檢測(cè)過去靜態(tài)工具不易發(fā)現(xiàn)的設(shè)計(jì)問題。 Xsim Xaminer工具組便于檢測(cè)并糾正并行事件沖突、完全事件沖突、設(shè)計(jì)競(jìng)爭(zhēng)以及未經(jīng)測(cè)試的復(fù)位序列,所有檢測(cè)都在RTL級(jí)完成。通過執(zhí)行動(dòng)態(tài)核查工具,可以在RTL級(jí)隔離潛在的門級(jí)問題。這樣,就可在設(shè)計(jì)早期探測(cè)設(shè)計(jì)實(shí)現(xiàn)問題,減少綜合迭代次數(shù),從而降低成本。 仿真加速 將設(shè)計(jì)編譯到RCC技術(shù)的過程很簡(jiǎn)單,因?yàn)樵O(shè)計(jì)仿真已經(jīng)在Synopsys VCS仿真環(huán)境完成。經(jīng)過若干較小的修改和設(shè)置,不用兩個(gè)小時(shí)就能夠完成編譯設(shè)計(jì)。在此期間,RCC編譯器自動(dòng)地將RTL和門組件映射為RCC計(jì)算元件,在本地編譯仿真器和RCC技術(shù)之間設(shè)置適當(dāng)?shù)耐ㄐ判蛄校?duì)所有可編程邏輯器件(PLD)執(zhí)行布局和布線。 RCC是一個(gè)彌補(bǔ)靜態(tài)時(shí)序分析阱的功能仿真過程,可以將功能驗(yàn)證和時(shí)序驗(yàn)證分為兩個(gè)單獨(dú)的步驟,進(jìn)而集中精力首先獲得正確的RTL功能,這是設(shè)計(jì)過程中耗時(shí)最多的部分。 過去的硬件輔助仿真之所以難用,是因?yàn)槿狈φ{(diào)試工具以及設(shè)置過程冗長。相比之下,RCC仿真技術(shù)易于使用,調(diào)試工具先進(jìn)。RCC容許在仿真時(shí)將源于編譯仿真器的仿真狀態(tài)熱交換到RCC。熱交換性能的兩個(gè)******功能是快速仿真執(zhí)行和全電路調(diào)試。有了熱交換功能,就可以在編譯仿真器內(nèi)仿真復(fù)位序列。在復(fù)位完成后,將仿真狀態(tài)交換到RCC,然后在RCC中加速仿真,最后,將仿真狀態(tài)從RCC交換到編譯仿真器進(jìn)行設(shè)計(jì)調(diào)試。 RCC還可以壓縮所有的節(jié)點(diǎn)變化,并在仿真過程的任何時(shí)域提取波形文件。利用這些功能,可以盡可能快地仿真設(shè)計(jì)錯(cuò)誤,并在不必重新啟動(dòng)仿真過程的條件下,觀測(cè)所有節(jié)點(diǎn)的變化。波形的提取簡(jiǎn)單快捷,仿真和磁盤的開銷很少。例如,仿真進(jìn)行五小時(shí)之后發(fā)現(xiàn)設(shè)計(jì)錯(cuò)誤,此時(shí),不需要重新開始仿真,可以在任意時(shí)間范圍和設(shè)計(jì)層內(nèi)提取所有節(jié)點(diǎn)的波形變化。 RCC技術(shù)能夠極大地提高仿真吞吐量。采用編譯仿真器可以達(dá)到******每秒200個(gè)時(shí)鐘周期,相比之下,RCC技術(shù)可以達(dá)到每秒12,000個(gè)時(shí)鐘周期(速度提高60倍)。 總之,驗(yàn)證是網(wǎng)絡(luò)芯片設(shè)計(jì)面臨的******的設(shè)計(jì)瓶頸。為了實(shí)現(xiàn)完全測(cè)試,必須對(duì)路由信息包進(jìn)行優(yōu)先級(jí)處理并增加信息包長度,這樣必然增加仿真時(shí)間。RCC協(xié)處理器技術(shù)提供了易用、快捷、完全的流線型驗(yàn)證流程。 |