1. 程式人生 > >在SoC設計中採用ESL設計和驗證方法

在SoC設計中採用ESL設計和驗證方法

本文討論電子系統級(ESL)設計和驗證方法學在系統級晶片(SoC)設計中的應用。ESL設計是能夠讓SoC設計工程師以緊密耦合方式開發、優化和驗證複雜系統架構和嵌入式軟體的一套方法學,它還提供下游暫存器傳輸級(RTL)實現的驗證基礎。已有許多世界領先的系統和半導體公司採用ESL設計。他們利用ESL開發具有豐富軟體的多處理器器件,這些器件為創新終端產品獲得成功提供必需的先進功能性和高效能。

為什麼中國的電子產業將會對ESL感興趣?因為中國領先的電子公司正在經歷一場對他們競爭力非常關鍵的轉型。通過採納技術創新策略,中國將成為純粹的智慧財產權(IP)提供者,而不是純粹的IP消費者。那些擁有智慧財產權的公司將持有通向IP庫的鑰匙。

為成功地執行創新策略,中國公司必須採用創新領先公司所使用的先進設計方法學。ESL設計正是這樣一種方法學。它已經被諸多國際系統和半導體公司採用。在中國,大唐已率先在中國3G手機技術-TD-SCDMA開發中採用ESL設計,清華大學及其一些產業合作單位也採用ESL方法學開發先進的地面數字多媒體廣播應用。

圖1:隨著工藝節點的縮小,主要設計工作從硬體實現轉向設計
嵌入式軟體和硬體架構。

嵌入式軟體驅動SoC設計

圖1總結了市場調研公司國際商業策略(International Business Strategies)對SoC設計工程師所做的調查資料。它表明,兩種主要的SoC設計挑戰--與設計嵌入式軟體和硬體架構的相關工作量隨著工藝的縮小而急劇增加,而硬體實現(RTL設計、綜合、物理設計等)工作量的增加則要少得多。請注意,該調查提到的嵌入式軟體由半導體制造商提供,這些軟體不包括由系統生產商開發的使終端產品差異化的軟體。

主要設計工作從硬體實現轉移到嵌入式軟體和硬體架構這種顯著變化表明,晶片已真正成為一個嵌入式系統。

嵌入式軟體開發工作量的增加,主要是由於能夠實現消費產品之間相容性和互操作性的無線及多媒體標準(或者其中之一)越來越多。諸如JPEG、MPEG、3G、GSM/EDGE、IEEE 802.11/a/b/g WLAN、藍芽和UWB等標準,都是現代電子產業獲得商業成功所必需的。

圖2:ESL設計與驗證任務。

架構開發工作量的增加主要是由於SoC需要整合和優化越來越複雜的處理、儲存資源以及通訊協議,這些對以必備的效能執行嵌入式軟體很有必要。實際上,先進SoC現已採用3個或更多微處理器以及3個或更多數字訊號處理器(DSP)。甚至連主流設計也已包含一個微處理器和兩個DSP,而包含兩個微處理器和兩個DSP的情況也很常見。

換句話說,嵌入式軟體現正驅動著SoC設計,而且嵌入式軟體對開發中國自己的通訊和媒體互操作性標準也非常關鍵。

為什麼採用ESL設計

業界領先公司採用ESL設計是因為它使設計工程師能夠及早進行軟體開發,實現快速設計和派生設計、快速硬體驗證以及快速硬體/軟體(HW/SW)驗證。它還提供可以用來驗證下游RTL實現符合系統規範的功能測試平臺。此外,ESL設計工具可綜合針對應用優化的定製處理器,以及快速開發和實現先進演算法。

及早進行軟體開發:對於一個大型軟體開發任務,儘可能早地開始軟體開發很有必要,即使原有軟體的複用程度很高。

採用基於SystemC語言的ESL設計方法學,SoC架構工程師可生成一個用來模擬SoC行為,如果需要,還可模擬SoC週期精確時序的高階模型。這個模型稱為事務級模型(TLM),它使軟體設計工程師在RTL設計或者矽原型完成前的好幾個月就可著手進行軟體開發工作。

圖3:程式設計師檢視TLM。

1.快速設計和派生設計

不斷變化的消費市場要求不斷推出“新的和改進的”產品。一些改進可以通過重新對SoC進行程式設計來獲得,但更多的軟體可能需要更多的硬體資源,因此設計工程師必須採用可實現快速硬體設計和派生設計的方法。

RTL平臺曾被設計用來減少派生設計問題,它通過為未來設計提供一個經過預驗證的架構來實現這一點。然而,為滿足新的市場需求而優化RTL架構以及整合RTL IP所帶來的困難,會顯著減緩設計過程。一個未經優化的架構可能對效能和功耗產生負面影響。最終,設計團隊可能被迫放棄功能性以達到效能和功耗目標。

TLM應用於函式呼叫和資料包傳輸層。這是一個抽象層,“設計意圖”在該層被捕獲,而且該層給設計工程師提供了一個直接而清晰的系統行為檢視。矽IP的SystemC TLM模型很容易整合到SoC架構的TLM中,這使SoC架構師能快速研究並分析多個備選硬體架構和硬體/軟體分割方案(每個方案具有不同的效能和經濟上的折衷)以確定最佳架構。這種方法明顯加快了初始設計,但它最大的好處是在快速轉變的派生設計中採用最初的SoC TLM作為易於更改的平臺。TI便是採用這種方法開發OMAP系列處理器和調變解調器。

2.快速驗證

TLM的抽象級別明顯高於RTL的抽象級別,它描述模組內的電路狀態、精確到納秒的轉換以及精確到位的匯流排行為。因此,意法微電子等領先公司認為,相比使用RTL,使用週期精確的TLM將使硬體驗證和硬體/軟體協同驗證速度快1,000倍或者更多。這種方法不僅可產生用於驗證系統行為和RTL實現的功能測試基準(testbench),它還支援SystemC與RTL的協同模擬,這樣SoC TLM可被當作一個“測試臺”,當下遊RTL實現模組可用時,它們便可在這個測試臺上進行驗證。

高通公司的經驗表明,系統級的HW/SW協同驗證要優於C/RTL實現級的HW/SW協同驗證。一個維特比解碼器設計可在20ms內執行一個資訊包,但是在C/RTL級進行模擬卻需要6個小時,高通估計必須模擬1,000個資訊包才能達到合理的置信度,因此總共需要6,000小時的模擬時間,但這是不現實的。而1,000個資訊包與一個TLM進行協同驗證將只需要6個小時,或者更少。

針對應用優化的處理器的綜合:不斷增強的處理能力需求經常通過採用額外標準通用(GP)處理器核心來滿足。然而,構建GP核心是用來解決廣範圍內的應用,它可能無法以必備的效能執行一個給定軟體演算法,且可能佔用過多芯片面積和功率。另外,它通常還需支付大量的額外IP許可費和版權費。

採用指令集(IS)針對應用需求優化過的處理器可解決這個問題。定製IS處理器可在只有絕對必要的硬體資源條件下提供必備的效能。利用ESL工具,這樣的處理器可以從結構描述或者定製IS本身開始自動綜合。ESL工具還自動生成處理器的軟體開發工具,例如指令集模擬器、彙編器、連結器、反彙編器、偵錯程式和C編譯器。

以英飛凌為例,該公司據稱在兩個月內就為特定應用的多速率DSP開發出網表和開發工具。

3.先進演算法開發

圖4:架構師檢視TLM。

在消費裝置中使用的諸如JPEG和MPEG等很多先進演算法都是數字訊號處理演算法,必須實現這些演算法以達到對不同裝置來說可能不同的效能和功耗目標。先進演算法通常首先設計成浮點算術形式的參考演算法(實際上,像JPEG和MPEG這樣的標準演算法一般都以這種形式實現),然後再轉換成定點算術形式,嵌入式軟體和RTL實現便是從定點算術形式衍生出來的。

針對DSP演算法的圖形化ESL設計以及模擬工具能實現這種流程。對於通訊和多媒體應用,採用可定製DSP演算法的預設計庫能加速演算法開發。另外還存在一些標準演算法庫,例如3G W-CDMA、GSM/EDGE、IS-95 CDMA、IEEE 802.11/a/b/g 無線區域網(WLAN)、藍芽和UWB。當HW/SW分割後,採用微架構庫可加速RTL實現的開發。大唐使用這樣的工具與其他公司合作開發了TD-SCDMA的基帶庫。

TLM方法論

TLM是可實現及早開始軟體開發、ESL設計以及驗證任務的虛擬整合平臺,圖2顯示了TLM在SoC設計中所處的中心位置。

SoC TLM本質上是器件資源的一個網路模型,它全無實現的細節。功能模組的行為模型是根據它們的輸入激勵和輸出響應來建立的。模組通過由API連線至每個模組的一個或者一組匯流排進行通訊,這些通訊過程則被建模成具有相關資料傳輸的資料流機制。這樣避免了不必要的實現細節,這些細節會模糊設計工程師的系統行為檢視並減慢模擬速度。模組行為與通訊分開,可實現功能模組的快速修改或者替換而無需重新設計匯流排,反之亦然,它對快速的IP整合以及複雜的“what if”分析也非常關鍵。

有三種常見的TLM使用模式:程式設計師檢視(PV)、架構師檢視(AV)以及驗證檢視(VV)。儘管這些模式代表三種不同的系統檢視,但是大多數模型都能以所有三種模式進行配置。

1.程式設計師檢視

程式設計師檢視TLM是SoC的一種功能正確模型,它允許使用傳統軟體以及及早開發新軟體。一般情況下,PV TLM由處理器、儲存器、外設的功能模型以及將事務引導到正確儲存器或外設的路由器功能模型組成(見圖3)。

PV使軟體開發人員能夠訪問必需的系統資源和屬性,比如暫存器的可見性、暫存器的精確性和中斷處理等,同時它還可直接連結目標處理器和除錯環境的指令集模擬器(ISS)。目標RTOS的API以及目標處理器的編譯器用來開發軟體物件程式碼,此階段的應用軟體開發只需一個數據流模式(schema)。因此,PV是不定時的,PV模擬可在每秒數百萬條指令的速度範圍內很好地執行。

2.架構師檢視

架構師檢視TLM是具有SoC時序屬性的相同模型。該模型使設計團隊能夠分析SoC效能以便在設計實現之前準確找出瓶頸(見圖4)。最終的硬體/軟體分割決定是在這個檢視中實現的。

時序的捕獲不是顯式就是隱式。顯式時序可以近似地模仿SoC的硬體效能,它用系統事件和事件同步的函式表示,而模組內部時序則可能非常精確。

隱式定時模型使用嵌入到TLM API呼叫中的時序註釋,因此時序註釋獨立於功能性。這允許對各種功能模組的候選架構和實現進行快速修改和效能描述,它還可提高模擬速度,使隱式定時模型的模擬速度超過顯式定時模型。

指令精確的ISS可通過PV-AV事務器連線到一個架構檢視上,允許在執行軟體的同時分析系統性能。PV-AV事務器還能評估在作業系統(OS)中執行應用的架構。OS以PV模式引導,應用則以AV模式執行。

3.驗證檢視TLM

驗證檢視本質上就是AV模型,它在週期精確的時序方面得到增強。這種模型能夠實現可精確預測真實晶片時序的硬體驗證和硬體/軟體驗證,它還使開發團隊能建立用於RTL驗證的測試基準。用Verilog和/或者VHDL編寫的RTL模型一旦完成,便可在VV TLM模型中例示,這樣在完整的SoC實現模型完成之前就能進行系統驗證以及除錯。

VV模擬的執行速度一般比RTL模擬和C/RTL HW/SW協同驗證速度快三個數量級。

這三個TLM檢視組成了全部ESL設計流程(如圖5所示),不同模型可以利用易於設計的處理器和轉換器協同執行。

ESL設計成功案例

領先的系統和半導體公司已經公開宣稱ESL設計的結果超出預期,他們已轉向採用在準矽片多處理器系統模擬模型上開發軟體的標準操作過程,該模型能以近似實時效能執行。在某些情況下,模擬模型僅在兩秒內就可引導普通的RTOS,例如嵌入式Linux。TLM方法具有良好的精確性,在將矽原型交付製造之前,這種精確性對於優化晶片架構的效能和功耗來說很關鍵。

圖5:帶有三種主要TLM使用模式的HW/SW開發流程。

例如,某大型日本印表機公司採用ESL設計方法,因為基於RTL的方法已不能應對每一代印表機所需的架構上的重大修改。該公司對其從低端家庭印表機到高階網路印表機的所有產品都採用相同的基本演算法。然而,不同印表機型別在資料通訊、處理、儲存需求上的重大差異要求那些演算法有明顯不同的實現,包括不同的儲存器架構和通訊匯流排架構。

優化這些不同架構只能在ESL設計提供的TLM抽象級別上才能得到有效實現。不過,簡單地轉向ESL設計而缺少到RTL實現的連結將導致下游問題。該公司用管腳精確的事務器建立了這種允許SystemC TLM與RTL協同驗證的連結。

從RTL轉到ESL設計是一條很好的轉移路徑。ESL是一種“由中間開始(middle-out)”的設計流程,允許重複利用原有的RTL IP。在那些沒有傳統約束的情況下,可以採用“自頂向下”的設計流程。東芝公司便是採用這種流程,利用設計套件開發使用者可配置媒體嵌入式處理器(MeP)。這個設計套件的基礎是使設計工程師能針對特定應用定製配置的ESL設計環境。設計工程師可研究不同配置以確定哪種配置最佳,他們不僅要驗證架構,而且還要驗證每個硬體和軟體模組是否滿足系統要求。

LSI邏輯公司在其ZSP數字訊號處理器核心設計中採用了類似方法。LSI對每種不同的核心開發週期和事務精確的SystemC模型,這使設計工程師能夠對SoC架構中的核心效能建模。這些模型還使設計工程師能對硬軟體互動進行除錯。此外,設計師還可分析處理器的吞吐量和時延以及儲存器效能。

本文小結

ESL設計和驗證方法使設計工程師能夠專注於那些給產品及IP帶來差異化和價值的系統設計屬性,即功能性和效能。這些屬性是由先進演算法、複雜的多處理器和儲存器架構、高階通訊協議以及針對應用優化的處理器(它們都由嵌入式軟體驅動)決定的。RTL實現的精巧性與高效的實現有關,但其價值則存在系統設計中。IP的創新和擁有將成為中國電子產業的下一場革命,而ESL設計和驗證方法學將成為這場革命的支撐力量。

作者:Seyul Choe,亞太區副總裁兼總經理,CoWare公司